Python 使用关键词与真实短语进行翻译

Python 使用关键词与真实短语进行翻译,python,django,internationalization,translation,templating,Python,Django,Internationalization,Translation,Templating,对于一个有大量固定字符串(标签、公告等)的网站,我将向项目中添加国际化,我想了解您在原始代码中使用关键字与真实短语的经验?哪一个更好用 检查此示例-在django中: 实际用语: <p> {% trans "Welcome to my website" %} </p> {%trans“欢迎访问我的网站”%} 关键词: <p> {% trans "WELCOME_MESSAGE" %} </p> {%trans“欢迎信息”

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

检查此示例-在django中:

实际用语:

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

{%trans“欢迎访问我的网站”%}

关键词:

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

{%trans“欢迎信息”%}


当然,使用真正的短语更容易,但我有一些不好的经历。考虑一个通用词,<代码> { %RANTANCE“联系人”%} /代码>,用作页面的标题,并在短语中使用,如“代码> {{SealthEdTraceStAcQue}} {%TrANS”联系人“%},“代码>联系人< /代码>的翻译可作为一个词中的一个词与“代码>联系人< /代码>的翻译不同,所以这是一种冲突。

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

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

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

使用真实的短语,您将遇到上述冲突,例如您可能使用的示例

{%blocktrans%}{{selected_contacts_count}}}contacts{%endblocktrans%}


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

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

使用真实的短语,您将遇到上述冲突,例如您可能使用的示例

{%blocktrans%}{{selected_contacts_count}}}contacts{%endblocktrans%}

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

关键字

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

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.
因此,在前进的过程中,请记住这一点。

关键字

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

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.
因此,在前进的过程中,请记住这一点