翻译和固定数量的字母单词
Translation and fixed number of letters words
在我的软件的一部分中,我需要不同语言的具有固定字母数的单词列表。
我的软件已经国际化(使用 gettext
,并且运行良好)。但是,由于无法将 4 个字母的英语单词翻译成另一种语言的 4 个字母单词(除了一些例外情况),我无法想象让 gettext
处理这些单词列表的合理方式.
所以,现在,我决定像这样存储我的话(英文和法文名称的缩写示例):
FOUR_LETTERS_WORDS = { 'fr': ["ANGE", "ANIS", "ASIE", "AUBE", "AVEN", "AZUR"],
'en': ["LEFT", "LAMP", "ATOM", "GIRL", "PLUM", "NAVY", "GIFT", "DARK"] }
(这是python语法,但问题与使用的编程语言关系不大)
列表的长度不需要相同;他们不需要包含相同的词。
我的问题如下:如果我的软件要翻译成另一种语言,比如德语,那么所有属于 gettext
范围内的字符串都将列在 pot 文件中并将可供翻译。但是,我还需要一个包含 4 个字母的德语单词列表,它不会出现在翻译文件中。
我想知道我是否需要考虑问一下译者he/she是否也可以提供这样的单词列表,或者是否有更好的方法来处理这种情况? (也许可以通过 gettext
找到令人满意的解决方法?)。
编辑意识到这个问题实际上与编程语言没有太大关系,所以删除了 python* 标签
您可以使用 gettext 来完成。可以使用 "keys" 而不是完整的句子进行翻译。
如果您在 .po
文件中使用句子并且不想翻译主要语言(比如英语),则不需要翻译它们,只提供这些的翻译文件字。如果 gettext 找到一个翻译文件,它会使用它,否则它会显示密钥(msgid
)。可以是一个完整的句子,也可以是一个key,没关系。
为此,您只需为这些词使用特定的文本域并使用 dgettext()
函数。该域允许您根据上下文或您选择的任何标准(功能、子包等)分隔文件。
要统计这些字,可没那么容易。例如,您可以使用 grep -c
来计算它们。您可以提供一个特定的密钥,其中包含 4 个字母单词的数量(这将是一个肮脏的 hack,您可能不会真正依赖它)。
也许 Python 中还有另一种方式,我不懂这种语言...
在我的软件的一部分中,我需要不同语言的具有固定字母数的单词列表。
我的软件已经国际化(使用 gettext
,并且运行良好)。但是,由于无法将 4 个字母的英语单词翻译成另一种语言的 4 个字母单词(除了一些例外情况),我无法想象让 gettext
处理这些单词列表的合理方式.
所以,现在,我决定像这样存储我的话(英文和法文名称的缩写示例):
FOUR_LETTERS_WORDS = { 'fr': ["ANGE", "ANIS", "ASIE", "AUBE", "AVEN", "AZUR"],
'en': ["LEFT", "LAMP", "ATOM", "GIRL", "PLUM", "NAVY", "GIFT", "DARK"] }
(这是python语法,但问题与使用的编程语言关系不大)
列表的长度不需要相同;他们不需要包含相同的词。
我的问题如下:如果我的软件要翻译成另一种语言,比如德语,那么所有属于 gettext
范围内的字符串都将列在 pot 文件中并将可供翻译。但是,我还需要一个包含 4 个字母的德语单词列表,它不会出现在翻译文件中。
我想知道我是否需要考虑问一下译者he/she是否也可以提供这样的单词列表,或者是否有更好的方法来处理这种情况? (也许可以通过 gettext
找到令人满意的解决方法?)。
编辑意识到这个问题实际上与编程语言没有太大关系,所以删除了 python* 标签
您可以使用 gettext 来完成。可以使用 "keys" 而不是完整的句子进行翻译。
如果您在 .po
文件中使用句子并且不想翻译主要语言(比如英语),则不需要翻译它们,只提供这些的翻译文件字。如果 gettext 找到一个翻译文件,它会使用它,否则它会显示密钥(msgid
)。可以是一个完整的句子,也可以是一个key,没关系。
为此,您只需为这些词使用特定的文本域并使用 dgettext()
函数。该域允许您根据上下文或您选择的任何标准(功能、子包等)分隔文件。
要统计这些字,可没那么容易。例如,您可以使用 grep -c
来计算它们。您可以提供一个特定的密钥,其中包含 4 个字母单词的数量(这将是一个肮脏的 hack,您可能不会真正依赖它)。
也许 Python 中还有另一种方式,我不懂这种语言...