代码之家  ›  专栏  ›  技术社区  ›  Marko Zadravec

django翻译:找不到msguniq

  •  0
  • Marko Zadravec  · 技术社区  · 6 年前

    我想在django应用程序中进行翻译。

    我在跟踪 this tutorial 但我遇到了麻烦。

    在我运行代码之后

    python manage.py makemessages -l 'de'
    

    我明白错误

    CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.
    

    奇怪的是,我已经安装了gettext

    Warning: gettext 0.19.8.1 is already installed and up-to-date
    To reinstall 0.19.8.1, run `brew reinstall gettext`
    

    设置如下:

    # Translations
    # Provide a lists of languages which your site supports.
    LANGUAGES = (
        ('en', _('English')),
        ('de', _('German')),
    )
    # Set the default language for your site.
    LANGUAGE_CODE = 'en'
    # Tell Django where the project's translation files should be.
    LOCALE_PATHS = (
        os.path.join(BASE_DIR, 'locale'),
    )
    print(LOCALE_PATHS)
    
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.locale.LocaleMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

    有人知道会出什么问题吗?

    3 回复  |  直到 6 年前
        1
  •  0
  •   mewpeter    6 年前

    你试过使用django admin吗:

    django-admin makemessages -l de

    你有符号链接吗?

    brew link gettext --force

    另外,当我把它安装到brew上时,还有一些额外的步骤。你做那些了吗?

    • 我正在更新.zshrc,但是如果您使用bash,它将是,比如说,.bashrc

    如果需要先运行此软件: echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc

    编译器要查找此软件,可能需要设置: ldflags:-l/usr/local/opt/gettext/lib cppflags:-i/usr/local/opt/gettext/include export LDFLAGS=-L/usr/local/opt/gettext/lib export CPPFLAGS=-I/usr/local/opt/gettext/include

        2
  •  0
  •   Ralf    6 年前

    你试过没有在语言周围加引号的命令吗?

    python manage.py makemessages -l de
    

    django makemessages

        3
  •  0
  •   Daniel Hepper    6 年前

    看看你能不能跑 msguniq 手动:

    $ msguniq --help
    

    如果出现命令未找到错误,请确保 PATH 已为brew正确设置环境变量。