我正在使用需要支持国际化的Ember / Handlebars的Javascript MVC网站。我已经有了完成翻译的代码,但我很好奇本地化大块文本(多个段落,列表等)的最佳实践。是否更好地本地化每个段落,单独列出项目或使本地化包含HTML?
HTML:
<p>{{i18n first_paragraph}}</p>
<p>{{i18n second_paragraph}}</p>
<ul>
<li>{{i18n first_item}}</li>
<li>{{i18n second_item}}</li>
<li>{{i18n third_item}}</li>
</ul>
本地化文件:
first_paragraph: 'some text',
second_paragraph: 'some text',
first_item: 'some text',
second_item: 'some text',
third_item: 'some text'
VS
HTML:
{{i18n page_content}}
本地化文件:
page_content: '<p>some text</p><p>some text</p><ul><li>some text</li><li>some text</li><li>some text</li></ul>
感谢您的任何建议
答案 0 :(得分:1)
第一种选择更具规范性。为什么?因为您从语义标记中抽象出了本地化(这是对数据实体执行的逻辑:在本地化案例中,字符串)。
这可能现在看起来不那么重要,但是当你突然想要支持另一种语言时会发生什么?如果你已经将你的本地化抽象为 - 在你的情况下 - 一个Handlebars Helper,你可以在该Helper中的数组中添加翻译。如果您的本地化与您的标记混杂在一起,那么您将不得不以一种草率(耗时且容易出错)的方式浏览您的本地化文件。