Har*_*rel 5 django internationalization django-i18n django-rosetta jquery-globalize
我有一个基于 Django 的 API 层,它在内部使用 Django 的 i18n 设施(ugettext 等)来提供对某些输出的翻译。该 API 提供一个单页 Javascript 应用程序,该应用程序通过 CLDN/消息文件等使用 jQuery 的 Globalize 及其自己的消息传递工具。
目前,我为 Globalize 的消息模块以 JSON 文件的形式为 UI 生成了自己的语言文件。
理想情况下,我想从一个位置驱动所有可翻译文本。我希望使用 Django 作为可翻译语言的唯一真实来源(因为我可以使用 Rosetta 作为促进翻译的一种方式)。然而,如何让两者一起工作并不是那么简单,我试图避免在它们可能已经存在的地方发明我自己的约定,以防止将来与其他开发人员混淆。
首先,有些文本块比几个单词还大。使用 Django 的 ugettext 我应该提供要翻译的文本或作为参数显示的文本 - 仅提供一个键并要求翻译存在(否则,只显示键)是否是好的约定?
其次,这种用例是否有既定的约定?
如果规范对这种情况有意义,我不想重新发明轮子或偏离规范。
第三- 我应该在两者之间做出选择吗?或者翻译是否可以存在于 Django/API 世界中,然后在 UI 请求时输出为 Globalize/messages 格式?或者我应该使用 Django 为 Javascript 提供的 gettext 实现?
谢谢
Django的 JS 国际化非常强大,并且具有所有良好的实践。你也说了,最好不要重新发明轮子。
我认为,如果您的同事习惯使用 Django,他们会很欣赏这一举动。
我不是专家,但是 Django 的 i18n 可以管理每个块的多个单词,它可以提供段落,文件.po
将是这样的:
msgid ""
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
" Duis ut lacus nec lacus rhoncus luctus."
" Donec luctus fringilla massa, eu accumsan odio vestibulum fermentum."
" Fusce arcu urna, tincidunt id turpis sed, rutrum lobortis sem."
msgstr ""
"Translation goes here, and it can be on multiple lines"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
421 次 |
最近记录: |