gpt4 book ai didi

django-admin makemessages --no-obsolete 似乎不起作用

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

首先,我期待 --no-obsolete会注释掉 msgidmsgstr如果 gettext被删除了吧

我的测试方式是:

  • 我写了 gettext("some string here")在查看
  • 我跑了makemessages命令
  • 它写了一个 .po文件按预期
  • 然后我删除了gettext()查看和保存的文件中的行,已验证 runserver在职的。
  • 我跑了makemessages --no-obsolete并且它没有对 .po 做任何更改文件。
  • .po文件内容提取。
    #. Translators: This message is a test of wrap line
    #: servers/views.py:31
    msgid "Do let me know if it works."
    msgstr ""

    开发环境

    Django = 1.11
    OS = Mac/Ubuntu 14.04



    设置.py
    LANGUAGE_CODE = 'en-us'

    TIME_ZONE = 'UTC'

    USE_I18N = True

    USE_L10N = True

    USE_TZ = True

    LOCALE = (
    os.path.join(os.path.dirname(__file__), "locale"),
    )

    最佳答案

    现在在 Julien 和 Tarun 的帮助下,我发现了以下观察结果。
    python manage.py makemessages -l <locale>
    如果没有 gettext在正在处理的文件中,上述命令不会write/update .po文件。这意味着如果对应的 .po之前的文件有 msgstr 的条目和 msgid ,那么它不会删除这些条目,除非正在处理的文件至少有一个 gettext .

    Note: Above behavior is irrespective of --no-obsolete



    现在制作--no-obsolete按预期工作,我们需要按照以下步骤操作。
  • 第一件事就是跑 python manage.py makemessages -l <locale> ,这会写 .po文件与 msgidmsgstr .
  • 现在设置 msgstr并运行 python manage.py compilemessages -l <locale> .此命令写入 .mo文件与 .po 位于同一目录中文件。
  • 现在下次运行时makemessages再次( 没有 --no-obsolete ),.po.mo文件被比较和丢失/删除 gettext评论在 .po文件。
  • 当你运行 makemessages --no-obsolete ,注释条目将从 .po 中删除文件。
  • E.g
    如果你有 3 gettext条目,然后运行 ​​ makemessages第一次,它会写 3 msgid和 3 msgstr.po文件。现在,如果您删除所有 gettext条目, .po运行后文件不会更新 makemessages再一次,但如果你保持至少 1 gettext在同一文件中输入并运行 makemessages再次,它会删除所有 msgidmsgstr对于已删除 gettext条目。

    但是如果你运行 compilemessages之后 makemessages , .mo创建文件,然后用于后续 makemessages命令 .po.mo比较文件,然后 msgidmsgstr评论于 .po已删除文件 gettext条目。

    最后当你运行 makemessages--no-obsolete选择来自 .po 的评论消息文件被永久删除。

    关于django-admin makemessages --no-obsolete 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339298/

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