【问题标题】:django translating variable by name instead of contentdjango 按名称而不是内容翻译变量
【发布时间】:2012-09-26 13:39:01
【问题描述】:

我想使用 django i18n 系统来翻译我的网站内容。

这个目的之一是<meta keywords="word1, word2"> 标签。目前我正在翻译 "word1, word2" 字符串,但如果我更改它,其余的翻译将无法正常工作。

最好只设置变量并告诉翻译系统“使用此变量内容的英文版本”。

我想避免在数据库中设置它,因为它可以在模板或其他 html/python 文件中指定。我想避免额外的数据库/缓存命中。

有什么方法可以显示不同语言版本的变量 - 而不是内容?

我知道这可以通过包含带有{% if LANGUAGE_CODE == "xx" %} 条件的模板来完成,但也许还有其他方法?

【问题讨论】:

  • 你应该批准你的接受率

标签: django internationalization


【解决方案1】:

使用占位符文本并创建一个en.po 文件,其中只有一个包含值的翻译。请注意,您将负责让翻译人员了解英文内容,而不是将其包含在相应的 .po 文件中。

<meta keywords={% trans "META KEYWORDS" %} />

【讨论】:

  • 我的原生 lng 是 'pl',代码中的所有字符串都是用这种语言编写的。我已经添加了一个 'pl' gettext 文件,现在我可以像你提到的那样编写 {% trans "META KEYWORDS" %} 了。问题是在 Rosetta 中,有些字符串会从波兰语翻译成 .. 波兰语,因为有些充当伪变量,有些是波兰语字符串,不需要翻译成 .. 波兰语。有点乱。将不得不考虑它。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多