Changes for page iTop如何翻译
Last modified by superadmin on 2024/12/13, 16:39
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Content
-
... ... @@ -3,8 +3,10 @@ 3 3 4 4 ➡️ 介绍如何对iTop语言进行本地化 5 5 6 + 6 6 == 原则 == 7 7 9 + 8 8 在 iTop 和 iTop 模块中,语言由两个要素确定: 9 9 10 10 * ISO 639-1 语言代码。例如:pt 表示葡萄牙语。 ... ... @@ -12,6 +12,7 @@ 12 12 13 13 本地化依赖于字典文件,这些文件的名称以小写语言代码作为前缀,例如:pt_br.dictionary.itop.core.php。这些文件是数据模型的一部分,因此在每次修改后都需要进行编译(重新运行安装或使用工具包)。 14 14 17 + 15 15 在 iTop 中,嵌入的字典文件位于以下位置: 16 16 17 17 * <itop-root>/dictionaries/ ... ... @@ -23,4 +23,53 @@ 23 23 24 24 出于兼容性原因,作为扩展分发的模块保留了它们的字典文件在根文件夹中的方式,但iTop核心模块(datamodels/2.x)已经进行了修改。 25 25 26 -== == 29 + 30 +== 字典文件格式 == 31 + 32 +字典实际上是一个PHP文件。它必须以UTF-8字符集编码(这是必须的)。我们建议像下面的示例一样省略PHP的结束标记: 33 + 34 +(% class="box" %) 35 +((( 36 +<?php 37 +/\*\* 38 +\* Localized data 39 +\* 40 +\* @copyright Copyright (C) 2015 John Foo Ltd 41 +\* @author John Foo (john@foo.com) 42 +\* @license http:~/~/opensource.org/licenses/AGPL-3.0 43 +\*/ 44 +Dict::Add('PT BR', 'Brazilian', 'Portuguese', array( 45 + 'Menu:ChangeManagement' => 'Gerenciamento Mudanças', 46 + 'Menu:Change:Overview' => 'Visão geral', 47 + 'Menu:NewChange' => 'New Change~~~~', 48 +)); 49 +))) 50 + 51 + 52 +注意事项: 53 + 54 +* 函数调用的第一个参数是大写的语言代码。 55 +* 函数调用的第二个参数是英语中的语言名称。 56 +* 函数调用的第三个参数是目标语言中的语言名称。 57 +* Dict::Add 函数的行在所有相同语言的字典文件中必须相同(是的,这里有冗余信息)。 58 +* 请注意某些字符串末尾的 ~~~~。这个后缀不会显示给最终用户。它由Combodo在发布新版本时添加,用于显示哪些新字符串需要翻译。 59 + 60 +== 一些通用规则 == 61 + 62 +一些通用规则: 63 + 64 +* **保持一致性:** 重复使用已经翻译的术语(例如,“经理”是许多关键词中使用的词汇)。 65 +* **英文术语:** 如果在上下文中更容易理解,可以保留英文术语。 66 +* **避免过于口语化的表述:** iTop是一款既被公司使用又被其客户使用的产品。 67 +* **不要硬编码“iTop”名称:** 使用常量(它们在 core/config.class.inc.php 中定义): 68 +** ITOP_APPLICATION:应用程序包的完整名称,例如“iTop Community”或“iTop Professional”。 69 +** ITOP_APPLICATION_SHORT:应用程序的名称,例如“iTop”。 70 +* **类名命名方式:** 使用驼峰命名法。 71 +* **数据模型项目命名标准:** Class:<classname>、Class:<classname>/Attribute:<fieldname>。例如:Class:Ticket、Class:Ticket/Attribute:ref、Class:UserRequest/Attribute:status/Value:new。 72 +* **字段标签翻译:** 请在定义字段的类中进行翻译,而不是在子类中进行。例如,对于 Class:Ticket/Attribute:ref 是可以的,但对于 Class:Change/Attribute:ref 则不应该。如果需要后者,可以使用自定义模块将其添加到您的iTop实例中。 73 +* **操作标签中的类别:** 尽量不要在通用用户的操作标签中提及类别。但对于管理员用户可以这样做。如果使用类别标签,请将其大写化,例如将“notification”改为“Notification”。 74 +* **特殊条目 Class:<classname>/Attribute:friendlyname:** 在英文中显示为“Full name”,如果没有翻译,它不对应于特定的类字段,而是对应于用作外部键、对象列表和对象详情中的对象标签的魔法属性。 75 + 76 +这些规则有助于维护和确保翻译的一致性。 77 + 78 +