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

 更新时间:2022年12月05日 14:34:46   作者:是张鱼小丸子鸭  
这篇文章主要介绍了JavaScript @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: 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按钮,可以做语言的切换

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

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

相关文章

  • js+html5实现可在手机上玩的拼图游戏

    js+html5实现可在手机上玩的拼图游戏

    这篇文章主要介绍了js+html5实现可在手机上玩的拼图游戏,涉及javascript结合html5进行图形操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • js实现简单的网页换肤效果

    js实现简单的网页换肤效果

    本文主要分享了js实现简单的网页换肤效果的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 用于table内容排序

    用于table内容排序

    用于table内容排序...
    2006-07-07
  • js实现鼠标移入图片放大效果

    js实现鼠标移入图片放大效果

    这篇文章主要为大家详细介绍了js实现鼠标移入图片放大效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • javascript中Function类型详解

    javascript中Function类型详解

    这篇文章主要介绍了javascript中Function类型详解的相关资料,需要的朋友可以参考下
    2015-04-04
  • 序列化模块json代码实例详解

    序列化模块json代码实例详解

    这篇文章主要介绍了序列化模块json代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 浅谈JS装饰器以及装饰器在TS中的使用方式

    浅谈JS装饰器以及装饰器在TS中的使用方式

    这篇文章主要带大家探讨一下JS装饰器以及装饰器在TS中的使用方式,文中有详细的代码示例,对装饰器不太了解的同学可以参考阅读本文学习了一下
    2023-07-07
  • JavaScript中split() 使用方法汇总

    JavaScript中split() 使用方法汇总

    本文向大家重点讲解一下Javascript中split函数使用,它可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回,相信本文介绍你对split函数的用法有明确的认识。
    2015-04-04
  • 微信小程序自定义菜单切换栏tabbar组件代码实例

    微信小程序自定义菜单切换栏tabbar组件代码实例

    这篇文章主要介绍了微信小程序自定义菜单切换栏tabbar组件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 遍历json 对象的属性并且动态添加属性的实现

    遍历json 对象的属性并且动态添加属性的实现

    下面小编就为大家带来一篇遍历json 对象的属性并且动态添加属性的实现。小编觉的挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论