Internationalization 翻译和固定字数

Internationalization 翻译和固定字数,internationalization,gettext,Internationalization,Gettext,在我的软件的一部分中,我需要用不同的语言列出具有固定字母数的单词列表 我的软件已经国际化了(使用gettext,而且运行良好)。但是,由于不可能将英语中的4个字母的单词翻译成另一种语言中的4个字母的单词(除了一些例外),我无法想象一种合理的方式让gettext处理这些单词列表 所以,现在,我决定像这样存储我的单词(英文和法文名称的缩写示例): (这是python语法,但问题与所使用的编程语言无关) 列表不需要具有相同的长度;它们不需要包含相同的单词 我的问题如下:如果我的软件要翻译成另一种语言,

在我的软件的一部分中,我需要用不同的语言列出具有固定字母数的单词列表

我的软件已经国际化了(使用
gettext
,而且运行良好)。但是,由于不可能将英语中的4个字母的单词翻译成另一种语言中的4个字母的单词(除了一些例外),我无法想象一种合理的方式让
gettext
处理这些单词列表

所以,现在,我决定像这样存储我的单词(英文和法文名称的缩写示例):

(这是python语法,但问题与所使用的编程语言无关)

列表不需要具有相同的长度;它们不需要包含相同的单词

我的问题如下:如果我的软件要翻译成另一种语言,比如德语,那么
gettext
范围内的所有字符串都将列在pot文件中,并且可以进行翻译。但是,我还需要一个4个字母的德语单词的列表,它不会出现在翻译文件中

我想知道我是否需要考虑询问翻译人员,他/她是否也可以提供此类单词的列表,或者是否有更好的方法来处理这种情况?(也许可以通过
gettext
?)找到令人满意的解决方法)


EDIT意识到这个问题实际上与编程语言没有多大关系,因此删除了python*标记,您可以使用gettext来完成。翻译时可以用“键”代替完整的句子

如果您在
.po
文件中使用句子,并且不想翻译主要语言(比如英语),则无需翻译它们,只需提供这些单词的翻译文件。如果gettext找到一个翻译文件,它将使用它,否则它将显示该键(
msgid
)。它可以是一个完整的句子,也可以是一把钥匙,这无关紧要

为此,只需为这些单词使用特定的文本域,并使用
dgettext()
函数即可。域允许您根据上下文或您选择的任何标准(功能性、子包等)分离文件

要数一数这些词,就不那么容易了。例如,您可以使用
grep-c
对它们进行计数。您可以提供一个包含4个字母和单词的特定密钥(这可能是一个肮脏的黑客攻击,您可能无法真正依赖它)。
也许Python还有另一种方式,我不懂这种语言

FOUR_LETTERS_WORDS = { 'fr': ["ANGE", "ANIS", "ASIE", "AUBE", "AVEN", "AZUR"],
                       'en': ["LEFT", "LAMP", "ATOM", "GIRL", "PLUM", "NAVY", "GIFT", "DARK"] }