我想构建一个多语言的python程序。基于这些链接(1,2),我以以下格式构造和构建了程序。
+---commandHandlers
| | agreements.py
| | basics.py
| | __init__.py
|
+---responseTexts
| | agreementResponces.py
| | basicResponces.py
| | __init__.py
| |
| +---locales
| | | default.pot
| | | ReadMe.md
| | |
| | \---fa
| | \---LC_MESSAGES
| | default.mo
| | default.po
我有两个问题。
第一件事是,每当我添加需要翻译的新文本时,我都应该使用以下命令,这会破坏我之前翻译的数据。
cd responseTexts
xgettext -d default -o locales/default.pot basicResponces.py agreementResponces.py
cp locales/default.pot locales/fa/LC_MESSAGES/default.po
msgfmt -o locales/fa/LC_MESSAGES/default.mo locales/fa/LC_MESSAGES/default
我知道我可以复制粘贴新生成的文本,而不必使用cp
,但是您知道这非常无聊且不合理。
第二个问题是如何更改default.pot的标头
"Content-Type: text/plain; charset=CHARSET\n"
到
"Content-Type: text/plain; charset=UTF-8\n"
?
在我忘记之前,是否可以通过任何方法将目录作为Windows中xgettext
的输入?因为下面的命令对我不起作用。
xgettext -d default -o locales/default.pot -D .
已更新
使用msgmerge作为msgmerge locales/fa/LC_MESSAGES/default.po locales/default.pot > locales/fa/LC_MESSAGES/default.po
也不起作用:))