mii*_*kas 5 django gettext internationalization
目前,我的 Django 项目的模板文件中有以下代码:
\n\n{% blocktrans with type=content.get_type %}Edit this {{ type }}{% endblocktrans %}\nRun Code Online (Sandbox Code Playgroud)\n\n是{{ type }}一个字符串,可以具有诸如"lecture"和之类的值"exercise"。这是在中的输出.po:
msgid "Edit this %(type)s"\nmsgstr ""\nRun Code Online (Sandbox Code Playgroud)\n\n这对于英语等不共轭对象的语言来说效果很好。对于这样做的语言,例如芬兰语,这会导致问题。
\n\n在芬兰语中,名词“lecture”翻译为“luento”,在这种特定情况下所需的分词形式是共轭的“luento a ”。名词“exercise”翻译为“teht\xc3\xa4v\xc3\xa4”或“harjoitus”,其分词形式为“teht\xc3\xa4v\xc3\xa4 \xc3 \xa4 ”和“harjoitus ta ”。
\n\n例如,有没有办法在这种情况下为单词添加特定的翻译?或者也许有某种基于条件的方式来填充msgstr?
显然以下内容不起作用,因为单词的共轭形式以不同的字符结尾:
\n\nmsgstr "Muokkaa t\xc3\xa4t\xc3\xa4 %(type)sa"\nRun Code Online (Sandbox Code Playgroud)\n\n(这将正确地产生“luentoa”,但错误地产生“teht\xc3\xa4v\xc3\xa4a”。)
\nGNU 的gettext 手册建议人们尽可能翻译整个句子:
\n\n\n\n\n整个句子也很重要,因为在许多语言中,句子中某些单词的词尾变化取决于句子另一部分的性别或数量(单数/复数)。单词之间的相互依赖性通常比英语中更多。结果是,要求译者翻译两个半句,然后通过愚蠢的字符串连接将这两个半句组合起来,对于许多语言来说是行不通的,尽管它适用于英语。这就是为什么翻译人员需要处理整个句子。
\n
假设您获得了"Edit this %(type)s"适用于芬兰语的结构。例如,一旦您想支持法语,它就行不通。对于您提到的类型,您必须使用以下法语句子:
\xc3\x89diter cette le\xc3\xa7on\n\xc3\x89diter cet exercice\nRun Code Online (Sandbox Code Playgroud)\n\n(第一句话可能必须翻译为\xc3\x89diter ce cours。“le\xc3\xa7on”或“cours”中哪一个最好取决于英语中“lecture”在您使用它的上下文中准确指代的内容。)你看问题,根据您使用的单词,您可能需要在type.
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |