您的位置:首页 > 教程 > JavaScript > JavaScript @umijs/plugin-locale插件使用教程

JavaScript @umijs/plugin-locale插件使用教程

2022-12-05 15:08:23 来源:易采站长站 作者:

JavaScript @umijs/plugin-locale插件使用教程

目录介绍启用方式使用App.ts配置在组件中使用getAllLocalesgetLocaleuseIntlsetLocale介绍plugin-locale是一个国际化的插件,用于解决i18n问题,约定...

目录
介绍
启用方式
使用
App.ts配置
在组件中使用
getAllLocales
getLocale
useIntl
setLocale

介绍

plugin-locale是一个国际化的插件,用于解决i18n问题,约定式的多语言支持,可以进行多个国际语言的切换

启用方式

在umirc.ts文件中配置locale:{}开启

使用

在src下创建一个locales文件夹,在文件夹下配置我们的语言文件

中文语言文件:zh-CN.js

export default {
    WELCOME_TO_UMI_WORLD: '{name},欢迎光临umi的世界',
  };

英文语言文件:en-US.js

export default {
    WELCOME_TO_UMI_WORLD: "{name}, welcome to umi's world",
  };

注意:如果项目配置了singular: truelocales要改成locale

App.ts配置

import zhTW from 'antd/es/locale/zh_TW';
import {addLocale} from 'umi'
// 动态增加新语言
addLocale(
  'zh-TW',
  {
    // id 列表
    name: '妳好,{name}',
  },
  {
    momentLocale: 'zh-tw',
    antd: zhTW,
  },
);

动态的增加语言,增加语言之后可以通过getAllLocales获取列表

addLocale 三个参数。

name语言的 key。例如 zh-TW
message语言的 id 列表。 例如:{// id 列表 name: '妳好,{name}',}
相应的momentLocaleantd配置

配置完以上代码之后,我们需要重新运行一下项目,页面可能会报一些红色波浪线错误,但不影响使用,原因是ts类型问题,如果不想报红色波浪线,可以在后面加上:any,这是最快的解决方案,但是一般不推荐使用

在组件中使用

getAllLocales

获取当前获得所有国际化文件的列表,默认会在locales文件夹下寻找类似en-US.(js|json|ts)文件

import { getAllLocales } from 'umi';
console.log(getAllLocales()); // [en-US,zh-CN,...]

getLocale

获取当前选择的语言

import { getLocale } from 'umi';
console.log(getLocale()); // en-US | zh-CN

useIntl

useIntl是最常用的 api,它可以获得formatMessage等 api 来进行具体的值绑定

import styles from './index.less';
import { getAllLocales } from 'umi';
import { useIntl} from 'umi';
export default function IndexPage() {
  const intl = useIntl();
  console.log(intl);
  return (
    <div className={styles.title}>
      <h1>Page index</h1>
      <div>{intl.messages.WELCOME_TO_UMI_WORLD}</div>
    </div>
  );
}

通过useIntl可以把我们的语言文件中内容渲染到页面

setLocale

设置切换语言,默认会刷新页面,可以通过设置第二个参数为false,来实现无刷新动态切换

import styles from './index.less';
import { getAllLocales } from 'umi';
import { useIntl, setLocale } from 'umi';
export default function IndexPage() {
  const intl = useIntl();
  console.log(intl);
  console.log(getAllLocales()); // [en-US,zh-CN,...]
  return (
    <div className={styles.title}>
      <h1>Page index</h1>
      <div>{intl.messages.WELCOME_TO_UMI_WORLD}</div>
      <button
        onClick={() => {
          setLocale('zh-CN', false);
        }}
      >
        切换中文
      </button>
      <button onClick={() => {
          setLocale('en-US', false);
        }}>切换英文</button>
    </div>
  );
}

给定了两个button按钮www.cppcns.com,可以做语言的切换

以上是plugin-locale的简单操作,[email protected]/pluginandroid-locale

到此这篇关于JavaScript @umijs/plugin-locale插件使用教程的文章就介绍到这了,更多相关JS @umijs/plugin-locale内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

如有侵权,请发邮件到 [email protected]

相关文章

  • vue跳转页面的几种方法(推荐)

    vue跳转页面的几种方法(推荐)

    vue跳转不同页面的多种方法 1:router-link跳转 !-- 直接跳转 --router-link to='/testDemo' button点击跳转2/button/router-link !-- 带参数跳转 --router-link :to="{path:'testDemo',query:{setid:123456}}" button点击跳转
    2020-03-26
  • Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除

    Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除

    最近有使用vue+elementUI实现多图片上传的需求,遂做此纪录。 本次主要写一下前端的实现细节,至于后台以Multipart[ ]数组接收即可,不再赘述,网上一搜大把文章可供参考。 本次使用
    2020-03-23
  • 微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能

    微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能

    上效果图: 一:搜索框功能实现 1.在首页做一个搜索框的样式并实现跳转到搜索页面 view class='page_row' bindtap="suo" view class="search" view class="df search_arr" icon class="searchcion" size='20' type='search'/
    2020-03-10
  • 微信小程序实现canvas分享朋友圈海报

    微信小程序实现canvas分享朋友圈海报

    本文实例为大家分享了微信小程序分享朋友圈海报的具体代码,供大家参考,具体内容如下 思路:生成朋友圈海报放在公共文件,首先需要绘制canvas,点击分享朋友圈按钮,在手机屏幕
    2020-06-21
  • 详解ES6 Modules

    详解ES6 Modules

    当下, 我们几乎所有的项目都是基于 webpack、rollup 等构建工具进行开发的,模块化已经是常态。 我们对它并不陌生,今天,我们就再系统的回顾一下ES6的模块机制, 并总结下常用的操
    2020-07-04
  • Vue-router 报错NavigationDuplicated的解决方法

    Vue-router 报错NavigationDuplicated的解决方法

    版本:3.1.x 报错原因: 使用push()、replace()进行导航时,不能重复导航到当前路由。 解决办法: 方法1:在定义路由的文件中router/index.js const originalPush = VueRouter.prototype.pushVueRouter.protot
    2020-03-31
  • vue使用better-scroll实现滑动以及左右联动

    vue使用better-scroll实现滑动以及左右联动

    本文实例为大家分享了vue实现滑动以及左右联动效果的具体代码,供大家参考,具体内容如下 一、首先需要在项目中引入better-scroll 1. 在package.json 直接写入 "better-scroll":"^1.15.1" 版本以
    2020-06-30
  • Vue如何提升首屏加载速度实例解析

    Vue如何提升首屏加载速度实例解析

    在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响
    2020-06-25