如何翻译部分文本在html与i18n

How to translate part of text in html with i18n?

本文关键字:文本 html i18n 何翻译 翻译      更新时间:2023-09-26

我试图使用i18next来翻译我的应用程序,其中有一些html复选框。下面是HTML代码:

<p> <input type="checkbox" data-i18n= "content.body" id="CNCities" /> Beijing, Shanghai, Guangzhou... </p>
<p> <input type="checkbox" data-i18n= "content.body" id="AsiaCities"/> Beijing, Shanghai, Seoul, Tokyo... </p>

我可以写一个json文件把它们翻译成中文,像这样:

{
"CNCities": "北京, 上海,广州...",
"AsiaCities": "北京,上海,首尔,东京...."
}

显然,在不同的集合中会有相当多的城市名称被重复。因此,我试图有这样一个json字典,并使其工作:

{
"Beijing": "北京",
"Shanghai": "上海",
"Seoul": "首尔"
}

那么什么是适当的javascript代码,使其工作?或者i18n不是用于此目的的解决方案,我使用了gettext之类的东西?

翻译位置名是相当困难的,我不认为常规的I18n库能很好地处理这种情况。

基本上,正如你已经提到的,许多地方在大多数语言中都有共同的名称。您需要做的是,只在名称不同的情况下进行翻译。我认为,正确的解决方案应该包括一些数据库,其中包括英语名称作为id,以及特定位置的翻译,如果给定语言不同的话。

唯一的问题是,这很难做到。到目前为止,我还没有看到任何一家公司能做到这一点。这并不奇怪,因为只有少数几个强大到足以尝试这样做(Facebook,谷歌,…)。你需要的是庞大的国际用户基础;这些人会翻译他们家乡的名字等等。正如你所看到的,只有少数服务允许翻译位置名称…我很遗憾,但Facebook不是其中之一。