Skip to main content
 首页 » 编程设计

python之Django 翻译 : User data --vs-- Site Content --vs-- UI static text

2025年05月04日26mayingbao

我对如何进行国际化和本地化感到困惑,所以我将网站数据分类如下:

  1. 网站内容:由网站托管的内容,即有关主题的数据。例如:手机网站(有关手机型号、规范、价格等的数据)

  2. 用户数据:用户随时间添加的数据。例如:评论、评论、个人资料信息等。

  3. UI Text :随 UI(模板)变化的静态文本。例如:菜单、页脚、页眉等。

希望我对数据进行了很好的分类。


可能的翻译方法:

from django.utils.translation import ugettext

还有哪些选择?


翻译问题(Django):

  1. 网站内容(动态):如何从数据库中获取动态内容的 .po 文件? (ugettext 是正确的工具吗?)
  2. 用户数据(动态):如何翻译这些动态数据? (.po 文件?)如果用户用英语发表评论而其他人用西类牙语发表评论怎么办?
  3. UI Text (static) :这是静态文本,可以用 .po 文件完成,并且可以用模板更改。那么,有没有更好的方法呢?

i18n 和 l10n 在实践中是如何处理的?

请您参考如下方法:

  • UI 文本:gettext 是必经之路。
  • 用户数据(动态):非常简单:您根本不需要翻译。您唯一可以做的就是要求用户提供一种以上的语言(只有少数人会这样做)或使用机器翻译(会惹恼人们——通常他们更喜欢英语而不是蹩脚的翻译)。尤其是当这样的翻译进入 google 索引时,获取它们而不是原始英文内容会非常烦人。
  • 站点内容:您需要为 gettext 提供一种方法来提取数据库中的字符串,并且它们不应经常更改(否则工作量会很烦人)。使用 gettext 的替代方法是在数据库中存储多种语言。