【问题标题】:Using keywords vs real phrases for translation [closed]使用关键字与真实短语进行翻译[关闭]
【发布时间】:2012-09-04 18:58:06
【问题描述】:

对于一个有大量固定字符串(标签、公告等)的网站,我将在项目中添加国际化,我想知道您在原始代码中使用关键字与真实短语的经验?哪个更好用?

检查这个例子 - 在 django 中:

真正的短语:

<p>
    {% trans "Welcome to my website" %}
</p>

关键字:

<p>
    {% trans "WELCOME_MESSAGE" %}
</p>

当然使用真实的短语更容易,但我有一些不好的经历。考虑一个通用词,{% trans "contacts" %} 用作页面标题,而在其他地方用在像 {{selected_contacts_count}}{% trans "contacts" %} 这样的短语中,contacts 作为页面标题的翻译可能与 contacts 作为一个单词的翻译不同短语,所以这是一个冲突。

【问题讨论】:

    标签: python django internationalization translation templating


    【解决方案1】:

    当然关键字更好,不仅因为它们对程序员来说更容易阅读,而且还可以更快地在文件中查找这些字符串,而且您不会“束缚”于一种语言(例如英语)

    【讨论】:

      【解决方案2】:

      我认为这主要是个人品味的问题。

      使用真实的短语你会遇到提到的冲突,你可以使用你的例子

      改为{% blocktrans %}{{selected_contacts_count}} contacts{% endblocktrans %}。

      使用关键字,您必须为所有翻译创建一个唯一的关键字,随着项目的发展,这可能并不容易,因此事先设计某种命名约定可能是个好主意。

      【讨论】:

        【解决方案3】:

        关键字。

        在某个地方,某个时间,某个地方,你需要一个翻译表。它可能是平面文件,也可能是数据库存储,但它可能看起来像这样:

        field | language | message
        

        构建和维护基于关键字的系统会容易得多:

        WELCOME_MESSAGE | EN | Welcome to our online h ome
        WELCOME_MESSAGE | FR | bienvenue chez nous en ligne
        WELCOME_MESSAGE | SW | kuwakaribisha nyumbani kwetu online
        

        如果您将数据插入到这些翻译中,您可能会遇到的一个问题是必须处理复数形式:

        There is one item.  
        There are four items.
        
        You have one new message.
        You have four new messages.
        

        所以在前进时请记住这一点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多