Django翻译:用户数据 --vs-- 网站内容 --vs-- UI静态文本?

2 投票
1 回答
558 浏览
提问于 2025-04-17 05:28

我对如何进行国际化和本地化感到有些困惑,所以我把一个网站的数据分成了以下几类:

  1. 网站内容:这是网站上托管的内容,也就是关于某个主题的数据。例如:手机网站(关于手机型号、规格、价格等的数据)。

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

  3. 用户界面文本:这是随着用户界面(模板)变化的静态文本。例如:菜单、页脚、标题等。

希望我对数据的分类是正确的。


翻译的可能方法:

from django.utils.translation import ugettext

还有其他选择吗?


翻译问题(Django):

  1. 网站内容(动态):如何为数据库中的动态内容生成.po文件?(ugettext是合适的工具吗?)
  2. 用户数据(动态):如何翻译这些动态数据?(.po文件?)如果一个用户用英语评论,另一个用户用西班牙语评论怎么办?
  3. 用户界面文本(静态):这是静态文本,可以通过.po文件来处理,并且可能会随着模板的变化而变化。那么,有没有更好的方法呢?

国际化(i18n)和本地化(l10n)在实际中是如何处理的?

1 个回答

1

用户界面文本:使用gettext是个不错的选择。

用户数据(动态):非常简单:你根本不需要翻译它。你唯一能做的就是让用户提供多种语言(但实际上只有少数人会这样做),或者使用机器翻译(这会让人很不爽——通常他们更喜欢英文而不是糟糕的翻译)。尤其是当这样的翻译被谷歌收录时,看到这些翻译而不是原版英文内容会让人非常烦。

网站内容:你需要提供一种方式,让gettext能够提取你数据库中的字符串,而且这些内容不应该经常更改(否则工作量会非常大)。使用gettext的替代方案是将多种语言存储在数据库中。

撰写回答