我尝试用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
您可以在命令行中运行pygettext。 但是您应该首先运行python。 就你而言:
相关问题 更多 >
编程相关推荐