是否关联于某个问题吗:
目前amis 页面的国际化必须要修改 amis json,无法把资源文件独立出来交给翻译人员。
https://aisuda.bce.baidu.com/amis/zh-CN/docs/extend/i18n#json-%E9%85%8D%E7%BD%AE%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%A4%9A%E8%AF%AD%E8%A8%80
预期的解决方案:
- 提供 标准的数据映射 t 函数
- 可以在 env 中重写 t 函数,例如使用 i18next 实现国际化
任何附加信息:
参考 i18next 官网,初始化 i18next,并注册为自定义过滤器。
https://www.i18next.com/overview/getting-started
import {registerFilter} from 'amis';
import i18next from 'i18next';
await i18next.init({
lng: 'en', // if you're using a language detector, do not define the lng option
debug: true,
resources: {
en: {
translation: {
"key": "hello world"
}
}
}
});
registerFilter('t', (key: string) =>
typeof input === 'string' ? i18next.t(key) : ""
);
amis json
{
"type": "tpl",
"tpl": "Hello ${key | t}"
}
7条答案
按热度按时间ymzxtsji1#
需要以下组件属性支持数据映射( https://aisuda.bce.baidu.com/amis/zh-CN/docs/concepts/data-mapping):
1.nav组件的links数组的label属性
2.tree组件的options数组的label属性
3.tabs组件的tabs数组的title属性
4.radios组件下的option下的label属性
5.input-text组件的placeholder属性
6.submit组件下的confirmTexts
7.form组件的messages属性
8.input-file组件的btnLabel属性
9.select组件的options属性的label属性
368yc8dk2#
steedos/steedos-platform#5067
dw1jzc5e3#
需要以下组件属性支持数据映射( https://aisuda.bce.baidu.com/amis/zh-CN/docs/concepts/data-mapping): 1.nav组件的links数组的label属性 2.tree组件的options数组的label属性 3.tabs组件的tabs数组的title属性 4.radios组件下的option下的label属性 5.input-text组件的placeholder属性 6.submit组件下的confirmTexts
kq4fsx7k4#
早就可以使用全局文本替换进行国际化了
ycggw6v25#
早就可以使用全局文本替换进行国际化了
感谢回复,这个我们看过的,我们评估下来没有在表达式中实现自定义t函数方便。
qacovj5a6#
需要有单独的t函数,支持从服务端获得国际化配置
yshpjwxd7#
👍 Thanks for this!
🏷 I have applied any labels matching special text in your issue.
Please review the labels and make any necessary changes.