文档更改iTop如何翻译
由 superadmin 于 2024/12/13, 16:39 最后修改
Summary
Details
- Page properties
-
- Content
-
... ... @@ -31,181 +31,20 @@ 31 31 32 32 字典实际上是一个PHP文件。它必须以UTF-8字符集编码(这是必须的)。我们建议像下面的示例一样省略PHP的结束标记: 33 33 34 -(% class="box" %) 35 -((( 36 -<?php 34 +{{{<?php 37 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 -\*/ 36 + \* Localized data 37 + \* 38 + \* @copyright Copyright (C) 2015 John Foo Ltd 39 + \* @author John Foo (john@foo.com) 40 + \* @license http://opensource.org/licenses/AGPL-3.0 41 + \*/ 42 + 44 44 Dict::Add('PT BR', 'Brazilian', 'Portuguese', array( 45 45 'Menu:ChangeManagement' => 'Gerenciamento Mudanças', 46 46 'Menu:Change:Overview' => 'Visão geral', 47 - 'Menu:NewChange' => 'New Change~~~~', 48 -)); 49 -))) 46 + 'Menu:NewChange' => 'New Change~~', 47 +));}}} 50 50 51 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 - 79 -|=Key syntax|=Purpose|=Example 80 -|Class:<classname>|Translating the **name** of a class|Class:Ticket 81 -|Class:<classname>/Attribute:<fieldname>|Translating a field **label**|Class:Ticket/Attribute:ref 82 -|Class:<classname>/Attribute:<fieldname>/Value:<value>|Translating a **value** of an Enum attribute|Class:UserRequest/Attribute:status/Value:new 83 -|Class:<classname>/Attribute|Formatting the friendlyname **value**. (//see example below//)|‘Class:Person/Name’ ⇒ ‘%2$s %1$s’ 84 - 85 -//Friendlyname 语法//: 在这个示例中 86 - 87 -{{{'Class:Person/Name' \=> '%2$s, %1$s', /\* example: "Christie, Agatha" \*/ 88 -}}} 89 - 90 -* %1$s 对应于Person类的命名XML标签中的第一个字段,因此是 first_name。 91 -* %2$s 对应于Person类的命名XML标签中的第二个字段,因此是 name。 92 - 93 -这允许指定不同的顺序,并且甚至是一些其他字符和分隔符。 94 - 95 -您可以通过以下链接获取有关 friendlyname 的更多信息:[[friendlyname>>url:https://www.itophub.io/wiki/page?do=export_code&id=3_1_0:customization:translation&codeblock=2]]。 96 - 97 - 98 -(% class="box" %) 99 -((( 100 -<classes\> 101 - <class id\="Person"\> 102 - <properties\> 103 - <naming\> 104 - <attributes\> 105 - <attribute id\="first\_name"/> <!~-~- mapped to %1$s ~-~-> 106 - <attribute id\="name"/> <!~-~- mapped to %2$s ~-~-> 107 - </attributes\> 108 - </naming\> 109 -))) 110 - 111 -== 字典关键词的命名约定 == 112 - 113 -新条目的命名应根据其领域和目的,从最不具体的信息开始命名。 114 - 115 -最常用的分隔符是’:’,但也可以找到’/‘和’-’。 116 - 117 -(% class="box" %) 118 -((( 119 -'Core:BulkExport:TextFormat' \=> 'Text fields containing some HTML markup', 120 -'UI:CSVImport:TextQualifierCharacter' \=> 'Text qualifier character', 121 -'DayOfWeek-Sunday-Min' \=> 'Su', 122 -))) 123 - 124 - 125 -使用后缀来定义相同标签的变种: 126 - 127 -* + 表示短描述(通常显示在工具提示中) 128 -* ? 表示帮助/解释(可以跨多行) 129 - 130 -(% class="box" %) 131 -((( 132 -'Core:SynchroAtt:update' \=> 'Update ?', 133 -'Core:SynchroAtt:update+' \=> 'Used to update the object', 134 -'UI:CSVImport:AdvancedMode' \=> 'Advanced mode', 135 -'UI:CSVImport:AdvancedMode+' \=> 136 - 'In advanced mode the "id" (primary key) of the objects can be used to update and rename objects.' 137 - .'However the column "id" (if present) can only be used as a search criteria' 138 - .' and can not be combined with any other search criteria.', 139 -))) 140 - 141 -当建立了命名约定后,标识符应该指定为 :,就像以下示例中的方式: 142 - 143 -(% class="box" %) 144 -((( 145 -'Class:Event/Attribute:date' \=> 'Date', 146 -'Class:Event/Attribute:date+' \=> 'date and time at which the changes have been recorded', 147 -))) 148 - 149 -请注意,在这种情况下,分隔符应该是 ‘/’。 150 - 151 -==== ==== 152 - 153 -==== 枚举值 ==== 154 - 155 -枚举或枚举集的值使用自己的语法: 156 - 157 -(% class="box" %) 158 -((( 159 - 'Class:Action/Attribute:status/Value:test' \=> 'Being tested', 160 - 'Class:Action/Attribute:status/Value:test+' \=> 'Action has maybe a different behavior than when in production', 161 - 'Class:Action/Attribute:status/Value:enabled' \=> 'In production', 162 - 'Class:Action/Attribute:status/Value:enabled+' \=> '', 163 - 'Class:Action/Attribute:status/Value:disabled' \=> 'Inactive', 164 - 'Class:Action/Attribute:status/Value:disabled+' \=> 'Action is not effective', 165 -))) 166 - 167 -==== 实体覆盖 ==== 168 - 169 -子类可以覆盖属性(或值)的标签/工具提示,即使该属性已在其父类之一中定义。 170 - 171 -(% class="box" %) 172 -((( 173 - 'Class:ActionEmail/Attribute:status/Value:test+' \=> 'Only the Test recipient is notified', 174 - 'Class:ActionEmail/Attribute:status/Value:enabled+' \=> 'All To, Cc and Bcc emails are notified', 175 - 'Class:ActionEmail/Attribute:status/Value:disabled+' \=> 'The email notification will not be sent', 176 - 'Class:ActionEmail/Attribute:test\_recipient' \=> 'Test recipient', 177 -))) 178 - 179 -=== 关系 === 180 - 181 -默认链接相关的操作/图标工具提示、弹出窗口标题和确认消息如下所示。 182 - 183 -它们可以根据需要进行自定义,甚至可以根据类别/关联设置属性进行定制化(请参阅下文)。 184 - 185 - 186 -==== 1:n 关系 ==== 187 - 188 -|=通用字典条目代码|=用途|=英文|=法文 189 -|UI:Links:Create:Button+|列表右上角的**加号图标**工具提示|Create a %4$s|Créer un(e) %4$s 190 -|UI:Links:Create:Modal:Title|**子对象创建**弹出窗口标题|Create a %4$s in %2$s|Ajouter un(e) %4$s à %2$s 191 -|UI:Links:ModifyObject:Button+|行右端的**铅笔图标**工具提示|Modify this object|Modifier cet objet 192 -|UI:Links:ModifyObject:Modal:Title|**子对象修改**弹出窗口标题|Modify %5$s|Modifier %5$s 193 -|UI:Links:Remove:Button+|行右端的**减号图标**工具提示|Remove this %4$s|Retirer cet(te) %4$s 194 -|UI:Links:Remove:Modal:Title|**子对象从其宿主中移除**弹出窗口标题|Remove a %4$s from its %1$s|Retirer un(e) %4$s de son/sa %1$s 195 -|UI:Links:Remove:Modal:Message|**子对象移除**的确认消息|Do you really want to remove %5$s from %2$s?|Voulez vous vraiment retirer %5$s de %2$s? 196 -|UI:Links:Delete:Button+|行右端的**垃圾桶图标**工具提示|Delete this %4$s|Supprimer cet(te) %4$s 197 -|UI:Links:Delete:Modal:Title|**子对象删除**弹出窗口标题|Delete a %4$s|Supprimer un(e) %4$s 198 -|UI:Links:Delete:Modal:Message|**子对象删除**的确认消息|Do you really want to delete %5$s?|Voulez vous vraiment supprimer %5$s? 199 - 200 -==== n:n 关系 ==== 201 - 202 -|=通用字典条目代码|=用途|=英文|=法文 203 -|UI:Links:Add:Button+|列表右上角的**加号图标**工具提示|Add a %4$s|Ajouter un %4$s 204 -|UI:Links:Add:Modal:Title|**链接创建**弹出窗口标题|Add a %4$s to %2$s|Ajouter un %4$s à %2$s 205 -|UI:Links:ModifyLink:Button+|行右端的**铅笔图标**工具提示|Modify this link|Modifier cette relation 206 -|UI:Links:ModifyLink:Modal:Title|**链接修改**弹出窗口标题|Modify the link between %2$s and %5$s|Modifier la relation entre %2$s et %5$s 207 -|UI:Links:Remove:Button+|行右端的**减号图标**工具提示|Remove this %4$s|Retirer ce %4$s 208 -|UI:Links:Remove:Modal:Title|**链接删除**弹出窗口标题|Remove %4$s|Retirer un %4$s 209 -|UI:Links:Remove:Modal:Message|**链接删除**的确认消息|Do you really want to remove %5$s from %2$s?|Voulez vous vraiment retirer %5$s de %2$s? 210 - 211 211