35 html translation gettext internationalization
我正在为我们的网络应用程序开发多语言支持.我们在gettext库周围使用Django的助手.除了如何处理包含重要HTML标记的句子之外,一切都非常容易.这是一个简单的例子:
Please <a href="/login/">log in</a> to continue.
Run Code Online (Sandbox Code Playgroud)
以下是我能想到的方法:
更改链接以包括整个句子.无论在这种情况下改变是否是一个好主意,该解决方案的问题在于,当两者理想地独立时,UI变得依赖于i18n的需要.
将上面的整个字符串标记为翻译(包括格式).然后,翻译字符串也将直接包含HTML.这样做的问题是更改HTML格式需要更改所有翻译.
紧紧耦合多个翻译,然后使用字符串插值来组合它们.例如,可以单独标记短语"Please%s to continue"和"log in"进行翻译,然后合并."登录"已本地化,然后包装在HREF中,然后插入到翻译的短语中,这使%s保持翻译以标记链接应该去的位置.这种方法使代码复杂化并破坏了翻译字符串的独立性.
还有其他选择吗?其他人如何解决这个问题?
Mik*_*ler 18
解决方案2就是您想要的.发送整个句子,嵌入HTML标记.
原因:
小智 12
2,具有潜在的扭曲.
你当然可以本地化整个字符串,如:
loginLink=Please <a href="/login">log in</a> to continue
Run Code Online (Sandbox Code Playgroud)
但是,根据您的工具和本地化组,他们可能更愿意为您执行以下操作:
// tokens in this string add html links
loginLink=Please {0}log in{1} to continue
Run Code Online (Sandbox Code Playgroud)
这将是我的首选方法.如果您具有忽略某些字符的本地化工具,则可以使用不同的替换模式.例如
loginLink=Please %startlink%log in%endlink% to continue
Run Code Online (Sandbox Code Playgroud)
然后在你正在使用的任何语言的jsp,servlet或等效语言中执行替换...
免责声明:我自己在软件国际化方面没有经验.
<strong />重点听起来像一个好主意.但是,那些带有(X)HTML的翻译可能无法在其他任何地方轻松使用.如果是我,我想我会采用第二种方法,但我会将URI放入格式化参数中,这样就可以更改,而无需更改所有这些翻译.
Please <a href="%s">log in</a> to continue.
Run Code Online (Sandbox Code Playgroud)
你应该记住,如果你采用这种方法,你可能需要教你的译员基本的(X)HTML知识,这样他们就不会搞砸你的标记,以便他们知道他们写的那些文本会有什么期望.无论如何,这些额外的知识可能会导致更好的语义标记,因为如上所述,文本可以用(X)HTML进行翻译和注释,以反映本地的写作风格.
| 归档时间: |
|
| 查看次数: |
7180 次 |
| 最近记录: |