【问题标题】:Django InternationalizationDjango 国际化
【发布时间】:2011-11-01 11:42:59
【问题描述】:

我有一个类似的问题在这里找到Why doesn't Django produce locale files from template files in another directory?

但是我不明白解决方案。我的结构:

Project
   App1
      locale
      templates
   App2
      locale
      templates
   templates
      somefilethatneedstranslation.html

现在当我从 App1 运行这个命令时:

python ../manage.py App1 -l nl

它很好地为 App1 语言环境文件夹中的 App1 模板创建了一个 po 文件

但是我希望我的全局模板也被翻译.. 注意:我不希望我的项目根目录中有一个语言环境文件夹,所以我尝试从 App1 向模板文件夹添加一个符号链接,但它不会将翻译结果附加到App1/locale/po 文件

来自 App1 文件夹

ln -s ../templates/locale/* translations
python ../manage.py App1 -l nl --symlinks

我错过了什么?

注意:

来自模板文件夹

python ../manage.py templates -l nl

可以,但它不会因为显然模板不是已安装的应用程序,似乎我错过了明显的......

【问题讨论】:

  • 您要将全局模板的翻译存储在哪里?
  • 好吧 django 1.4 alpha 告诉我项目根目录中的语言环境文件夹已被弃用..所以我想还有其他地方吗? django 没有为全局模板翻译提供开箱即用的方法,感觉真的很奇怪?
  • 从项目目录运行“django-admin.py makemessages -l nl”会发生什么?
  • 错误:此脚本应从 Django SVN 树或您的项目或应用树运行。如果您确实从 SVN 结帐或您的项目或应用程序中运行它,也许您只是缺少 conf/locale(在 django 树中)或 locale(用于项目和应用程序)目录?它不是自动创建的,如果您想为您的项目或应用程序启用 i18n,您必须手动创建它。编辑:可能是因为我的项目根目录中没有语言环境文件夹,但又不应该有?
  • 尝试在您的项目中创建区域设置文件夹。你是说你不在乎你的翻译在哪里,那为什么不把它们放到“语言环境”呢?

标签: python django


【解决方案1】:

完整的弃用消息(在translation docs 中也有解释)是:

不再支持项目目录中的翻译。 LOCALE_PATHS 设置。

这条消息可能有点不清楚。虽然在项目目录中自动发现翻译已被弃用,但使用LOCALE_PATHS 引用项目级语言环境文件夹是完全可以接受的。

如果您有项目级模板,则将这些模板翻译到特定于应用程序的语言环境位置是没有意义的:保留项目级语言环境目录,在 LOCALE_PATHS 中引用它。

【讨论】:

  • 谢谢,我想我错过了那部分:)
猜你喜欢
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 2019-08-05
  • 2016-03-28
相关资源
最近更新 更多