我已经安装了 django-rosetta 进行翻译,通过 django 命令制作了 .po 和 .mo 文件
django-admin.py makemessages -l ar
并通过 django-rosetta 翻译所有单词,
现在,当我将语言从英语更改为阿拉伯语时,它会显示一些阿拉伯语单词和一些英语单词,尽管我已将所有这些单词翻译成阿拉伯语,
您是否重新启动了网络服务器?
这意味着您的项目标签将立即被翻译,不幸的是您仍然需要重新启动网络服务器才能使更改生效。 (新:如果您的网络服务器支持,您可以在保存更改时强制自动重新加载已翻译的目录。请参阅conf/settings.py 中有关 ROSETTA_WSGI_AUTO_RELOAD 变量的注释。
您运行什么类型的服务器?
我在 Apache2 和 FastCGI 上也遇到了同样的问题。我必须重新启动 FastCGI 进程才能看到修改。
您是否已将本地路径正确添加到您的设置中?
PROJECT_PATH = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]
LOCALE_PATHS = (
os.path.join(PROJECT_PATH, "locale"),
)
您是否有标记为模糊的翻译? (在 Rosetta 中,您可以过滤以仅显示模糊翻译。)如果某些字符串模糊,请确保它们正确翻译,取消选中模糊标志并保存翻译。
翻译未显示的另一个原因可能是某些 Python 格式化字符串(例如“My %s apple”)未在翻译的字符串中正确再现。如果格式代码不平衡,Rosetta 应该警告您,并且实际翻译不会写入文件。
您使用的是哪个版本的 django?
就我而言,我在 Django v3 中遇到了这个问题。我将其更新到 Django v4.1+ 后,它起作用了。
请提供有关版本的信息。