pygettext不会将字符串读入.pot文件

2024-05-18 04:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用pygettext创建一个多语言应用程序。我重复这里描述的步骤:https://phrase.com/blog/posts/translate-python-gnu-gettext/

可翻译字符串应显示在.pot文件的底部:

#: src/main.py:5
msgid "Hello world"
msgstr ""
#: src/main.py:6
msgid "This is a translatable string"
msgstr ""

问题是在我的例子中,虽然创建了.pot文件,但msgid是空的。 看起来pygettext在代码中没有看到它们

我的整个.pot文件就是这样的:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2021-01-16 13:50+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=cp1251\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"

我的python代码:

# main.py
import gettext
_ = gettext.gettext


def print_some_strings():
    print(_("Hello world"))
    print(_("This is a translatable string"))


if __name__ == '__main__':
    print_some_strings()

项目结构:

pdf_invoices
│ └── en
│     └── LC_MESSAGES
│         └── base.pot
└──__main__.py

创建.pot文件的命令:

C:\>C:\Users\belose\Anaconda3\Tools\i18n\pygettext.py 
-d C:\Users\belose\PycharmProjects\pdf_invoices\__main__.py 
-o C:\Users\belose\PycharmProjects\pdf_invoices\locales\ru\base.pot

Tags: 文件pysrcpdfmainyearusersgettext
1条回答
网友
1楼 · 发布于 2024-05-18 04:28:00

您可以在命令行中运行pygettext。 但是您应该首先运行python。 就你而言:

    C:\>python C:\Users\belose\Anaconda3\Tools\i18n\pygettext.py
   -d C:\Users\belose\PycharmProjects\pdf_invoices\__main__.py 
   -o C:\Users\belose\PycharmProjects\pdf_invoices\locales\ru\base.pot

相关问题 更多 >