@umijs/plugin-locale使用

介绍

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: true ,locales 要改成 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}', }
  • 相应的 momentLocale 和 antd 配置

配置完以上代码之后,我们需要重新运行一下项目,页面可能会报一些红色波浪线错误,但不影响使用,原因是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按钮,可以做语言的切换

以上是plugin-locale的简单操作,详情请查看umi官网@umijs/plugin-locale

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用`@umijs/plugin-qiankun`插件,需要先安装它: ```shell npm install @umijs/plugin-qiankun --save-dev ``` 然后,在你的umijs项目中,打开 `.umirc.ts` 或者 `.umirc.js` 配置文件,添加插件到 `plugins` 数组中: ```javascript export default { // ... plugins: [ // ... '@umijs/plugin-qiankun', ], // ... }; ``` 接下来,您需要在配置文件中配置微前端应用的相关参数,例如子应用的入口、路由等等。以下是一些常用的配置项: ```javascript export default { qiankun: { master: { // 主应用启动后默认进入的子应用,通常为第一个注册的子应用 defaultApp: '', // 主应用的生命周期钩子,在这里可以初始化主应用的状态 // 例如:在主应用挂载前,初始化一些全局状态 beforeLoad: () => {}, // 挂载主应用 mount: () => {}, // 卸载主应用 unmount: () => {}, }, // 注册的子应用列表 apps: [ { // 子应用名称 name: '', // 子应用的入口地址 entry: '', // 子应用的路由前缀 base: '', // 子应用启动后需要传递给子应用的参数 props: {}, // 子应用的生命周期钩子,在这里可以初始化子应用的状态 // 例如:在子应用挂载前,初始化一些子应用的状态 beforeLoad: () => {}, // 挂载子应用 mount: () => {}, // 卸载子应用 unmount: () => {}, }, // ... 其他子应用 ], // 是否开启调试模式,调试模式下会输出一些额外的信息 debug: true, }, // ... }; ``` 配置完成后,您可以使用 `umi build` 命令打包您的主应用和子应用。最后,您可以使用 `umi serve` 命令启动您的主应用,并在浏览器中查看微前端应用的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值