在网上找到了很多 关于国际化的相关内容, 但是跟我的实际情况又不太一样, 特此记录
-
开启
基本上开启很简单 就是将这个config.ts
中
将locale 中的antd
改成true, 别的locale 中的内容按需求自己写locale: {
antd: true,
},这样的话 你的页面右上角就出现了翻译切换按钮
先保证src/locales 这个路径下有东西 , 没有自己去官网抄怎么加上
-
菜单栏
当你修改了你的中英文 , 你会发现 , 表格上自带的重置,搜索 已经给你翻译好了, 但是左侧的菜单栏以及很多你自己写的按钮是没有翻译的, 这个时候应该怎么办?
在你的路由设置中 肯定会有一个页面/接口 啦记录你的菜单
我的大概样子是长这个样子的routes: [ { path: '/a', name: 'a', icon: 'workspace', routes: [ { path: '/a', redirect: '/a/b', }, { name: 'c', icon: 'smile', path: '/a/c', component: './a/c', }, ], },
恰巧呢你的
/src/locales/
中 你的en-us.ts
文件里 引用了一个menu的文件, 然后在同目录的en-US
文件夹里找到了menu.ts
这个时候你就可以修改/添加了 例如menu.c:'我想展示c'
将你的name 填到key
中注意层级关系,然后记得中英文对照, 这个时候打包编译 这个时候切换你就能看见你修改的那条菜单已经实现了切换 -
按钮
你肯定会写一些按钮 例如说
<button> 批量删除<button>
这种基本不回给你翻译的 , 此时要怎么办呢
先导包
import { FormattedMessage } from ‘umi’;
然后把你的汉字替换掉
<button>
<FormattedMessage
id="pages.searchTable.batchDeletion"
defaultMessage="批量删除"/>
<button>
这个id 不是空穴来风的 是在你antd_pro/src/locales/en-US/pages.ts
中自己写的或新加的, 记得把需要的语种都加上
columns
的改法也是很简单
{
// title:'序号',
title:<FormattedMessage
id="pages.searchTable.batchDeletion"
defaultMessage="批量删除"/>,
dataindex:'id'
}
发现只要是字符串的地方都可以直接替换, 非常的好用 , 记得有{‘字符串’}
的地方 也要加上{<FormattedMessage}
剩下的就不过多书写了, 如果有新的想法, 或者挫折再说