翻译: Difference between revisions

mNo edit summary
Tag: 2017 source edit
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:




= 国际化(I18N)发展规则 =
=国际化(i18n)开发原则=
在Dolibarr代码中,通过使用对象$langs中可用的方法(关键值作为此方法的参数进行翻译)进行翻译。$Langs对象包含使用的语言的定义。此对象始终在所有页面中定义。
在 Dolibarr 代码中,翻译是通过调用 $langs 对象上的方法来完成的,该方法的参数是要翻译的字符串的键。$langs 对象包含用户语言的定义。它在所有页面中都有定义。
 


有两种方法:
有两种方法:


<syntaxHighlight lang="ini">
<syntaxhighlight lang="ini">
  $langs->trans('TRAD_STRING');
  $langs->trans('TRAD_STRING');
</syntaxHighlight>
</syntaxhighlight>


此方法返回键TRAD_STRING的翻译,并将结果编码为HTML实体,以允许在HTML页面上正确显示(甚至使用特殊字符)。
*此方法返回TRAD_STRING的翻译,同时将结果编码为HTML实体,以便在HTML页面中正确显示特殊字符


<syntaxHighlight lang="ini">
<syntaxhighlight lang="ini">
  $langs->transnoentitiesnoconv('TRAD_STRING');
  $langs->transnoentitiesnoconv('TRAD_STRING');
</syntaxHighlight>
</syntaxhighlight>
 
*此方法返回TRAD_STRING的翻译,但不对结果进行编码(字符串在内存中存储为UTF-8格式)。


此方法返回键TRAD_STRING的翻译,但结果是没有特定编码的已翻译字符串(字符串在内存中存储为UTF-8格式)。
这两种方法都可以接受替换翻译结果字符串中 %s 值的附加参数。


这两种方法可以接受用于在翻译的字符串中替换字符串%s的参数。
注意:如果将一个字符串翻译结果作为参数使用,则该结果应通过函数$langs->transnoentitiesnoconv返回,否则最终字符串将被编码两次。


注意:如果将字符串本身作为参数使用,则必须使用$langs->transnoentitiesnoconv方法,否则字符串将被编码两次。
示例:


Example:
<syntaxhighlight lang="ini">
<syntaxHighlight lang="ini">
  print $langs->trans("STRING_TO_TRANSLATE",$langs->transnoentitiesnoconv("STRING_PARAM1"))
  print $langs->trans("STRING_TO_TRANSLATE",$langs->transnoentitiesnoconv("STRING_PARAM1"))
</syntaxHighlight>
</syntaxhighlight>


= 把Dolibarr译成另一种语言 =
=把 Dolibarr 译成另一种语言=
见 [[Translator documentation]]
请参阅 [[翻译文档]] 页面

Latest revision as of 01:19, 27 September 2023





国际化(i18n)开发原则

在 Dolibarr 代码中,翻译是通过调用 $langs 对象上的方法来完成的,该方法的参数是要翻译的字符串的键。$langs 对象包含用户语言的定义。它在所有页面中都有定义。

有两种方法:

 $langs->trans('TRAD_STRING');
  • 此方法返回TRAD_STRING的翻译,同时将结果编码为HTML实体,以便在HTML页面中正确显示特殊字符
 $langs->transnoentitiesnoconv('TRAD_STRING');
  • 此方法返回TRAD_STRING的翻译,但不对结果进行编码(字符串在内存中存储为UTF-8格式)。

这两种方法都可以接受替换翻译结果字符串中 %s 值的附加参数。

注意:如果将一个字符串翻译结果作为参数使用,则该结果应通过函数$langs->transnoentitiesnoconv返回,否则最终字符串将被编码两次。

示例:

 print $langs->trans("STRING_TO_TRANSLATE",$langs->transnoentitiesnoconv("STRING_PARAM1"))

把 Dolibarr 译成另一种语言

请参阅 翻译文档 页面