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

目录
  • 介绍
  • 启用方式
  • 使用
  • 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按钮,可以做语言的切换

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

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

(0)

相关推荐

  • javascript跟随滚动效果插件代码(javascript Follow Plugin)

    Js 跟随滚动效果插件支持定义多个跟随ID,采用css fixed属性,不支持ie6,兼容其他主流浏览器.支持定义滚动到底部的最小高度,不会覆盖底部页面大小resize后,插件会自动重置参数=======Js 跟随滚动效果插件1.支持定义多个跟随ID,采用css fixed属性,不支持ie6,兼容其他主流浏览器.2.支持定义滚动到底部的最小高度,不会覆盖底部3.页面大小resize后,插件会自动重置参数=======使用方法 代码如下  复制代码 代码如下: <script type="t

  • Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式

    默认情况下,生成的页面代码可能与下面的代码类似: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head&g

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

    目录 介绍 启用方式 使用 App.ts配置 在组件中使用 getAllLocales getLocale useIntl setLocale 介绍 plugin-locale是一个国际化的插件,用于解决i18n问题,约定式的多语言支持,可以进行多个国际语言的切换 启用方式 在umirc.ts文件中配置locale:{}开启 使用 在src下创建一个locales文件夹,在文件夹下配置我们的语言文件 中文语言文件:zh-CN.js export default { WELCOME_TO_UMI_

  • 30个精美的jQuery幻灯片效果插件和教程

    这是一种在有限的网页空间内展示更多内容的良好方式,而且能吸引用户注意力.如果你想知道这是如何实现的,那么本文收集的30个幻灯片插件和教程将帮助您实现这种效果. JCOVERFLIP Live Demo CREATE A CUSTOM IMAGE GALLERY WITH JCAROUSEL Live Demo COIN SLIDER Live Demo LOOPEDSLIDER Live Demo NIVO SLIDER Live Demo COLORFUL SLIDERS WITH JQUER

  • 推荐40款强大的 jQuery 导航插件和教程(上篇)

    在这篇文章中,我为大家收集了40款非常棒的 jQuery 导航插件和教程.导航作为网站重要的组成部分,能够帮助用户找到他们想要的内容,因此导航设计的好坏决定了用户能够在你的网站停留更长的时间,浏览更多的内容.在下面的集合中,你会发现很多便利的 jQuery 导航插件和有用的教程,帮助你实现充满吸引力的网站导航,让你网站更有组织性和交互性. A Stylish Navigation Menu With jQuery ( 演示 | 下载 ) Making a Fresh Content Accord

  • Spring Mybatis 分页插件使用教程

    Mybatis分页切入点 Mybatis内部有个plugins(插件)概念,本质上属于拦截器的思想.具体的解析可见他文MyBatis拦截器原理探究.本文将在此基础上直接展示实际项目的实现代码和其他的相关解析 分页具体代码实现 首先我们可以定义方言抽象类,用于实现分页AbstractDialect.java public abstract class AbstractDialect{ /** * 是否支持limit和偏移量 * @return */ public abstract boolean

  • 推荐40个简单的 jQuery 导航插件和教程(下篇)

    在这篇文章中,我为大家收集了40款非常棒的 jQuery 导航插件和教程.导航作为网站重要的组成部分,能够帮助用户找到他们想要的内容,因此导航设计的好坏决定了用户能够在你的网站停留更长的时间,浏览更多的内容.在下面的集合中,你会发现很多便利的 jQuery 导航插件和有用的教程,帮助你实现充满吸引力的网站导航,让你网站更有组织性和交互性. Creating CSS3 Dropdown Menu ( 演示 | 下载 ) Creating a CSS3 Dropdown Menu ( 演示 | 下载

  • 分享5个好用的javascript文件上传插件

    文件上传是我们开发网站程序时经常遇到的功能,选择一个功能强大,使用简单的上传插件可以节省我们很多开发时间,下面就为大家介绍5个不错的javascript文件上传插件 这篇文章的资源均来自https://dcrazed.com/html5-jquery-file-upload-scripts/ .我选择了其中自己觉得可用性比较强的几个. Mini AJAX File Upload Form 这个插件的UI和体验都非常棒,不过它依赖于下面介绍的jQuery File Upload plugin. 特

  • IDEA使用Docker插件(菜鸟教程)

    目录 说明 一.开启Docker远程访问 二.连接docker 三.镜像的拉取 四.容器的创建与运行 五.docker一键部署springboot项目 可能的错误: 说明 之前docker的学习,包括镜像拉取,容器创建等操作都需要自己手动敲命令来实现,但是如果在idea中使用Docker插件,就可以不用敲命令也可以实现对docker的操作,不得不说idea这个工具是真的强!!!本文会持续更新,不断地扩充 本文仅为记录学习轨迹,如有侵权,联系删除 注意:一般是用的服务器,作为测试这里就采用虚拟机+

  • 拥有一个属于自己的javascript表单验证插件

    自己编写了一个表单验证插件,使用起来很简单,以后还可以扩展更多的功能,比如ajax验证. 每个需要验证的表单元素下面有一个span标签,这个标签的class有一个valid表示需要验证,如果有nullable则表示可为空:rule表示验证规则,msg表示错误提示信息:to表示要验证的元素的name值,如果元素是单个的,to可以不写.该插件会遍历每个有valid的span标签,找出它前面需要验证的元素,根据rule验证,如果验证不通过,则显示边框为红色,鼠标放在元素上时显示错误信息. 验证时机:1

  • eclipse中maven插件安装教程

    本文实例为大家分享了maven插件安装教程,供大家参考,具体内容如下 如果能打印如上信息,说明到此 Maven已经在你的电脑上安装完成. mvn 是 mavn 的一个指令,mvn -version 是查看版本信息,我的操作系统是 64位的 WIN7,安装的 maven 是 3.3.9 如果能打印如上信息,说明到此 Maven已经在你的电脑上安装完成. 修改maven的仓库的存放的位置: 找到 maven 下的 conf 下的 settings.xml 配置文件,我的是在 D:\Server\ma

  • 20个非常棒的 jQuery 幻灯片插件和教程分享

    滑块和幻灯片效果是常用的内容展示方式之一,这是一种在有限的网页空间内展示系列项目时非常好的方法.今天这篇文章就与大家分享20个非常棒的 jQuery 幻灯片插件和教程. > Slider Gallery with jQuery Create an Image Rotator with Description (CSS/jQuery) Create a Slick and Accessible Slideshow Using jQuery Simple JQuery Image Slide Sho

随机推荐