国际化(L10N)全流程使用

最喜欢这种分享了,收藏了,用到再看 :partying_face:

问楼主几个问题:
1.本地化的图片可以使用图集吗?是使用自动图集吗?
2.代码如何动态获取某个文本,或者拼接使用?比如按钮上 “点击x次”,x会动态变化的。

  1. 我个人还没有试过图集,原理上应该是可以的,感觉要求图集里的元素尺寸完全一样就行。
  2. 点击x次 个人感觉最简单是方法是分成两个key,单独翻译。比如"点击"hitKey,"次"countKey , 这样的话在其他地方用到点击和次也能复用key, 然后在拼在一起就行了
    label.string = l10n.t(hitKey) + x + l10n.t(countKey)

L10N是本地化的,i18n是国际化的,我看官方文档:

  • 国际化 需要软件里包括多种语言的文本和图片数据,并根据用户所用设备的默认语言或菜单选择进行实时切换。
  • 本地化 是在发布软件时针对某一特定语言的版本定制文本和图片内容。

这个L10N是发布两款不同语言的软件的作用吗?比如一款中文,一款英文软件?
而i18n是只需一款软件,可以根据不同设备语言进行切换语言?
还是说L10N也能根据设备自动切换语言?

这2个一样的,就是用法不同,L10N内置了自动翻译啥的,看着比较高级,但我还是喜欢用i18n :rofl:

1赞

i18n在21年最后一次更新了,已经不维护了,我3.8版本的按官网弄报错,评论都说3.4用不了,咋整

我觉得可以考虑弄两种Label, 一个可支持了l10n, 一个不需要。那么自动搜索就能跳过后者了~~
不然手工删除挺麻烦的。

动态切换语言需要重启,这一点就很不友好啊 :sweat_smile: 老板不会同意的 :rofl:

1赞

新用户进入默认就会识别用户语言,切换语言是个频率很少的操作,重启还是可以接受的,并且稳定性要好很多,并且多语言相关的资源也需要下载的,

这种拼接的方式对于多语言翻译来说不太友好,毕竟有些长语句翻译后,语序会有变化,有没有什么方式能把’点击${x}次’'这种能整体用l10n的方式呢?

l10n.t(key, x)

麻烦可以给个具体的例子么?我试了很久都没解决,万分感谢

https://forum.cocos.org/t/topic/136913/64?u=jare

1赞

感谢感谢!!!

请问构建界面这里的参数,命令行构建时,能否通过命令行传入?
image

你可以在 /localization-editor/src/lib/builder/hooks.ts 的 onAfterInit 打印一下 options 看看

好的。我试试。

不同意?给你老板一个大逼斗。让他看看你的厉害