gpt4 book ai didi

Django 无法为 djangojs 生成消息

转载 作者:行者123 更新时间:2023-12-03 10:36:21 25 4
gpt4 key购买 nike

目前我在尝试为 Django 翻译 javascript 文件时遇到了这个问题。我有 url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript-catalog'),在 urls.py 中并在模板中获取那个。当我运行 django-admin.py makemessages 时,这似乎不是翻译的问题。命令,它会抛出一些错误,我不知道为什么。

   $ django-admin.py makemessages -d djangojs -l nl_NL --keep-pot
CommandError: errors happened while running msguniq
/Users/../../src/locale/djangojs.pot:120: context separator <EOT> within string
/Users/../../src/locale/djangojs.pot:121: context separator <EOT> within string
msguniq: found 2 fatal errors

这是我在 djangojs.pot 中找到的内容文件
#: static/jsi18n/djangojs.js:38 static/jsi18n/djangojs.js:46
#: static/jsi18n/nl/djangojs.js:84 static/jsi18n/nl/djangojs.js:92
msgid " "
msgid_plural ""
msgstr[0] ""
msgstr[1] ""

当我用空字符串删除这些行并再次运行命令时,它只会在命令运行后再次添加它们。以前有人遇到过这个问题吗?

最佳答案

Error Description



这里发生了什么,它创建了 djangojs.js 文件如 静态/js/i18n/nl_NL/djangojs.js 对于所有支持的语言和每个语言文件,它都有 '\x04' 这些文件中的字符串

所以当你运行这个命令时
django-admin.py makemessages -d djangojs -l nl_NL

它认为这些 ** djangojs.js** 文件是用于为 i18n 获取这些字符串的有效源代码,因此它认为这些 '\x04' 字符串并在 中为它创建一个 msgid .po 文件并在 中创建此条目.pot 文件
msgid "^D"
msgstr ""

^D <EOT>字符,这就是 django 在以下错误中所说的
djangojs.pot:120: context separator <EOT> within string

因此,无论出现此错误的地方,您的命令都会在此处退出而未完成。修复后,您需要重新运行此命令以完全执行它。

Solution



你需要做到以下几点
  • 无需更改您的任何 djangojs.js 文件
  • 不考虑 djangojs.js i18n 的文件

  • 因此,为了解决这个问题,您需要忽略这些文件,并且不要通过添加 --ignore 来考虑 i18n(国际化)这些文件。 makemessages 命令中的关键字如下所示
    django-admin makemessages --locale=$bn --domain=djangojs --ignore=static/js/i18n/*

    它会修复你的错误。 :)

    关于Django 无法为 djangojs 生成消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39530816/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com