本土化

来自MyaWiki.Org
跳转到导航 跳到搜索

其他语言:
德语大花英语大花T·E·E·E·E大花丹麦语大花埃斯帕诺大花弗兰·阿斯大花葡萄牙语大花蒂娜大花第二章大花第二章大花第二章大花阿尔法大花第二章大花塞特大花小精灵
I18N文档 本土化 ·系统消息 ·消息API ·语言 ·翻译网 ·书写系统 ·方向性
捷径:
I18N
I18N
L10N
对于维基媒体基金会本地化团队,请参见维基媒体语言工程
在这个wiki上翻译页面,请参见项目:语言政策

本页给出了MiaWiKi的技术说明。国际化与本地化I18NL10N系统,并给出代码应该知道的提示。我们的口头禅是I18N不应该是事后的想法它是你软件最早的一个重要组成部分,也是核心软件之一。原则 关于MiaWiKi的

目录

翻译资源

翻译网

翻译网支持维基翻译所有核心信息维基百科 扩展名和扩展名。如果您想与本页中有关编辑文件、Git、创建补丁等的所有技术细节无关,直接转到翻译网

所有的用户界面消息的翻译都应该经过代码库,而不是直接提交给代码。文档必须在源代码中完成。

核心MeaWiWi和扩展必须使用系统消息来显示在用户界面中显示的任何文本。手册:特殊页面 如果扩展写得很好,它可能包含在翻译网 几天之后,工作人员注意到了这件事。格里特 如果没有注意到,联系他们如果它太不稳定无法翻译,请在代码或提交中注明,并在必要时与他们联系。

也见本地化系统概述什么可以本地化

查找消息

帮助:系统消息 说明如何查找要翻译的特定字符串。特别是,请注意QQX技巧 ,这是在媒体维基1.18

I18N邮件列表

你可以订阅I18N目前交通不畅。

代码结构

首先,你有一个语言对象语言 这个对象包含所有可本地化的消息字符串 以及其他重要的语言特定设置和自定义行为(UpHeCube、LabeCube、打印日期、格式化编号);说明书 自定义文法规则 等。

该对象由两个来源构成:自身的子类版本(类)和消息文件(消息)。

还有MasaGeCuCH类,它通过MyaWiKi命名空间处理文本输入。消息 对象和使用WfMeXAGE()快捷功能,定义在包含/全局函数遗产代码可能仍然在使用旧代码。WFMSG*()函数,现在被认为有利于上述消息对象。

一般用途(用于开发人员)

也见手册:消息API

语言对象

获取语言对象有两种方法。瓦格朗 美元汇率 对于任意的语言,你可以使用一个对象来构造一个对象。语言:工厂(EN)通过替换用语言的代码。你也可以使用。WFGETLangObjo($代码);如果美元代码可能已经是一个语言对象。语言/ Names.php

语言对象需要做特定于语言的功能,通常要做数字、时间和日期格式化,还要构造列表和其他东西。后退语言 但是细节在正常使用中是不相关的。

使用消息

MiTaWiKi使用中央代码中的键引用的消息的存储库。获得文本基于密钥的系统使一些事情变得更容易,比如精炼原始文本和跟踪消息的变化。当然,缺点是使用的消息列表和这些密钥的源文本列表可能会失去同步。在实践中,这不是一个大问题,唯一重要的问题是有时额外的消息不再被使用,仍然停留在翻译中。

为了使消息键更易于管理和易于查找,也可以使用GRIP,总是将它们完全写入,而不太依赖于动态创建它们。

/可以在这里使用的消息:
//m扩展连接成功
//m扩展连接警告
//MyMyDebug连接错误
美元文本 = WFMEST “扩展连接”  美元地位 >解析();

PHP和JavaScript中消息功能的详细使用手册:消息API

添加新消息

参见:本地化文件格式

选择消息键

参见:手册:编码约定系统消息

消息键必须是全局唯一的。这包括核心MyIaWiKi和所有扩展和皮肤。

在消息名中坚持小写字母、数字和破折号;大多数其他字符之间不太实用或根本不起作用。

请按照全局或局部约定命名。对于扩展,使用标准的前缀,最好是小写的扩展名,后面是连字符(“--”)。

  • API使用的消息。这些必须从APIIAL蚜虫-API-误差. 在这个前缀放扩展前缀之后。
  • 与日志相关的消息。这些必须从登录-日志名称日志描述
  • 用户权限。特殊名称:ListGyrPrices显示的右侧名称的键值必须从右-. 完成“你没有2美元的许可”的动作的名称,原因如下:“必须以行动
  • 修订标签必须从标签
  • 特殊页标题必须以特殊

创建消息时要注意的其他事项

  1. 确保您正在使用适当的消息处理(解析){{-替换、脱逃HTML等
  2. 如果你的消息是核心的一部分,它通常应该被添加到语言/I18N/E.JSON,虽然一些组件,如安装程序和ApiHelp有自己的消息文件。
  3. 如果您的消息在扩展中,则将其添加到I18N/E.JSON文件或杰森在适当的子目录中文件。如果扩展有大量消息,则可以创建子目录I18N. 所有的消息目录,包括默认的I18N/,必须列在通讯录段在扩展子或者在$WGMasiges 变量。
  4. 停下来考虑一下消息的措辞。是否尽可能清楚?会不会被误解?如有可能,请向其他开发人员或本地化者征求意见。跟随国际化提示
  5. 添加文档到QQ.JSON在同一目录中。阅读更多有关消息文档

不应翻译的消息

  1. 忽略消息是只存在于英语消息文件中的消息。它们是不需要翻译的消息,因为它们只引用其他消息或语言中性特征,例如{{SITNAME}}“。
  2. 只有当目标语言发生变化时,可选的消息才可以被翻译。

标记这样的消息:

删除现有消息

把它从杰森QQ.JSON不要打扰其他语言。翻译网 将自动处理这些。

更改现有消息

  1. 考虑更新消息文档(参见添加新消息
  2. 如果旧的翻译不适合新的含义,则更改消息键。这还包括消息处理(解析、转义、参数等)的更改。在没有技术更改的情况下改进消息的措辞通常不是改变密钥的原因。在翻译中,翻译将被标记为过时,以便他们可以成为译者的目标。更改消息键不需要与I18N团队交谈或提交支持请求。但是,如果你有特殊情况或问题,请进。MiaWiki-I18N或者在支持页面翻译网
  3. 如果扩展支持翻译网 请只更改英文源消息和/或键,以及附带的条目QQ.JSON. 如果需要,TraseTeWik.NET团队将负责更新翻译,将它们标记为过时,清理文件或更正可能的密钥。这也适用于当你只改变HTML标签之类的东西时,你可以在不使用这些语言的情况下改变其他语言。这些行动大多发生在翻译网并将达到Git约一天的延迟。

命名空间和特殊页面别名的本地化

命名空间 和特殊的页面名称(“近期变化”特殊:近期变化“”也是可译的。

命名空间

目前〔1〕在TractLeWik.NET上禁用命名空间名称转换,因此您需要自己在GeRIT或文件A中这样做。Phabricator:任务要求别人去做。

若要让扩展名引入的自定义命名空间进行翻译,请创建扩展名看起来像这样的文件:

<?PHP
/**
* MyExchange引入的命名空间的翻译。
*
*@文件
*/

$命名空间 = 数组();

/对于wikIS,未安装MyEx展扩展。
如果 定义 “NSL MyExpRead”   {
	定义 “NSL MyExpRead” 二千五百一十 
}

如果 定义 “NSYMyExpExsixTalk”   {
	定义 “NSYMyExpExsixTalk” 二千五百一十一 
}

*******
$命名空间[ ]“恩”] = 数组
	NSY MyExcel = > “MyMaMeSpess”
	NSY语言 = > “闲聊”


**芬兰(Suomi)*/
$命名空间[ ]“FI”] = 数组
	NSY MyExcel = > 尼米亚瓦鲁特尼
	NSY语言 = > ‘克斯库斯特勒努’

然后加载命名空间转换文件MyExeltual.PHP通过$WGExchange消息文件[ ]“扩展名空间”] = 目录名 一个文件 '/MyExputial.NealSpPix.php

现在,当用户在其芬兰(wi-wiki)wiki上安装MyDebug时,自定义名称空间将被神奇地翻译成芬兰,用户不需要做任何事情!

还记得将扩展的命名空间(S)注册到扩展默认命名空间 网页

特殊页面别名

特殊页面手册页 获取最新信息。以下似乎无效。

为此格式创建特殊页别名的新文件:

<?PHP
/**
*用于MyExelt扩展的别名。
*
*@文件
*@群内扩展
*/

别名 = 数组();

*******
别名[ ]“恩”] = 数组
	“我的扩展” = > 数组 “我的扩展” 


**芬兰(Suomi)*/
别名[ ]“FI”] = 数组
	“我的扩展” = > 数组 利斯·奥萨尼 

然后将其加载到扩展的安装文件中:$WGExchange消息文件[ ]“肌伸长别名”] = 目录名 一个文件 '/MyExt.别名.php ''

当您的特殊页代码使用特殊页面::“MyDebug”$-> GETTILE()(在提供特殊的类:MyLoad)中,如果可用的话,将使用本地化别名。

消息参数

有些消息带有参数。1美元2美元3美元……在(静态)消息文本中,在运行时被替换。典型的参数值是“删除3个版本”中的“3”?或者“用户名”(“鲍伯最后编辑的页面”中的“鲍伯”)、页面名称、链接等,或者有时是其他消息。它们可以是任意复杂的。

为每个特定消息定义的参数列表被放置在位于“MalaWiKi”的“语言/文件夹”文件夹中的特殊文件“qqq.json”中。文档

最好用复数词、性别词和语法咒语。{{复数:1美元子页}子页}比…好子{{复数:$1页〉页}它使搜索变得更容易。

在消息中切换…

也见手册:信息API关于性别、语法、复数的注释

参数值有时会影响消息的准确措辞或语法变化。我们不求助于“他/她的用户页面的1美元(子)页”的丑陋结构,因为这些对用户来说是很差的,我们可以做得更好。但是,我们根据在运行时已知的值来分析开关。静态消息文本然后在列表中提供每一个可能的选择,前面是开关的名称,以及对有差别的值的引用。解析器函数 有几种类型的交换机可用。这些只在进行完全解析时工作,或者{{-转换,用于消息。

关于复数的几个问题

也见手册:信息API关于性别、语法、复数的注释

MiTaWiKi支持复数,这使得产品更美观。例如:

“未删除短” = > “取消删除{{复数:1美元”一个编辑$ 1编辑}

如果对于特定的数字有一个明确的复数形式,则有可能使用下面的语法

盒子有{复数:1美元一个鸡蛋1美元鸡蛋12个=一打鸡蛋}。
注意所有数字的复数用法
参见:复数的

当一个数字必须插入到一个消息文本中时,要知道一些语言即使在大于1的情况下也必须使用复数。ST,2,3研发,4,11…,12,13,21…ST,22,23研发,…等。

不要尝试提供三种不同的信息,例如“没有项目计数”,“一个项目计数”,“更多的项目计数”。更确切地说,让一个消息把他们全部,留给它的翻译和复数,以妥善处理他们各自的语言呈现的任何可能的差异。

如果可能的话,总是把数字作为参数。{{复数:}}如果可能的话,对源消息进行语法分析,即使它在英语中没有意义。

支持分数,但复数规则可能不完整。

将列表项的数目作为参数传递给列出列表的消息

不要假设只有单数和复数。许多语言有两种以上的形式,这取决于所用的实际数字,而且它们必须使用。语法当列表中列出的列表显示了读者可见的内容时,与列表项的数目不同。因此,每当您的代码计算列表时,包括伯爵(名单)作为标题的参数、引线、页脚和其他有关列表的信息,即使计数不在英语中使用。还有一种中立的方式来谈论不可见的列表,这样你就可以在额外的页面上链接到列表,而不必预先对项目进行计数。


通过性别称呼用户名

也见手册:信息API关于性别、语法、复数的注释
“FoBar编辑评论” = > 请审查{{性别:1美元〉他和她的}编辑。

如果您在消息中引用了一个用户,将用户名作为参数传递给消息,并在消息文档中添加一个提到性别的支持。如果性别可能会被用于翻译具有性别变化的语言,则将其显式添加到英语语言源消息中。

如果您直接处理当前登录的用户,请将用户名作为参数空:

“FoBar登录用户” = > 你说{性别:你是男性,你是女性,你的性别没有什么}。
MIDAWIKI版本: 1.31以上
GRITIT改变398772

如果你把用户名包含在消息中(例如“1美元谢谢你”),考虑通过它。WfTraceWiKeTeXT()首先,确保字符像*不解释。

用户有语法性别
也见性别

当一个消息谈论一个用户,或与一个用户有关,或者直接对一个用户讲话时,应该将用户名作为参数传递给消息。因此,语言必须或希望使用适当的性别依赖语法,可以这样做。这一点即使在用户名不打算出现在消息中时也应该这样做,例如在“在他/她的谈话页面上通知用户”,这是更好的“在{{性别:1美元〉他He她}{ }谈话页面”中用英语通知用户。

这并不意味着你被鼓励对“信息”语言“性感化”:只要能做到清晰和精确,请使用中性语言。

通过语法在句子内部使用语境

也见手册:信息API关于性别、语法、复数的注释

例如,对于芬兰语来说,语法化的转换是绝对必要的,语言文件独立于站点,即删除维基百科参考文献。在芬兰语中,“关于维基百科”成为“Tietoja Wikipediasta”,“你可以上传到维基百科”成为“沃特TaleTaTaTeoSton WikiaAdAn”。后缀是根据单词的用法而添加的,加上对基础的小修改。

MiTaWiKi有超过20种语言的语法转换功能。其中一些只是维基媒体网站名称的字典,但是其他一些则有简单的算法,除了最常见的情况之外,这些算法都会失败。

即使在MyaWiKi有任意的语法转换之前,它也有一个名词/名词的区分。这个区分对于某些语言来说是必要的,如果你想把月份名称替换成句子。

在参数和消息中过滤特殊字符

参数替换的另一个(更简单的)问题是HTML逃逸。尽管简单得多,但MiTaWiKi却做得相当差。

消息文档

有一个伪语言代码QQQ对于消息文档。它是ISO 639代码中的一个供私人使用。在那里,我们不保留每个消息的翻译,而是收集英语句子。关于每一条消息告诉我们它在哪里使用,给出关于如何翻译它的提示,并列举和描述它的参数,链接到相关的消息,等等。翻译网当编辑消息时,这些提示被显示给译者。

程序员必须对每一个消息进行文档化。消息文档是一个重要的资源——不仅仅是对于翻译人员,而且是对于模块的所有维护者。QQQ入口必须也要添加;不这样做的修订标记为“V-1“直到添加文档为止。

文件编制QQQ文件只有在添加新消息时才被直接编辑,或者当以需要文档更改的方式更改现有的英文消息时,例如添加或删除参数。在其他情况下,文档通常应在TurtTraceWiKi中编辑。消息键/QQQ,就好像它是一个翻译。这些编辑将连同翻译一起导出到源库。

文档中应该包含的有用信息包括:

  1. 消息处理(解析、转义、纯文本)。
  2. 具有示例值的参数类型。
  3. 使用消息的地方(页面,用户界面中的位置)。
  4. 如何在使用消息时使用(页面标题、按钮文本等)。
  5. 与此消息一起使用的其他消息,或者该消息引用的其他消息。
  6. 当在上下文中看到消息时可以理解的其他信息,而不是单独显示消息时的情况(这是当它被翻译时的情况)。
  7. 如果适用的话,请注意语法。例如,英语中的“打开”既可以是动词也可以是形容词。在许多其他语言中,单词是不同的,不可能猜测如何在没有文档的情况下翻译它们。
  8. 形容词,如“残疾人”、“开放”或“封锁”,必须总是说他们所描述的东西。在许多语言中,形容词必须具有他们所描述的名词的性别。也可能发生不同种类的事物需要不同的形容词。
  9. 如果消息具有特殊属性,例如,如果它是一个页面名称,或者它不应该是直接翻译,而是适应于文化或项目。
  10. 消息是否出现在其他消息附近,例如在列表或菜单中。单词的措辞或语法特征可能与附近的信息相似。此外,列表中的项目可能必须与列表的标题正确相关。
  11. 必须翻译的消息的部分,如泛型命名空间名称、URL或标签。
  12. 解释潜在的不明确的单词,例如缩略语,如“CTA”,或特定的行话,如“模板”、“抑制”或“存根”。(请注意,首先最好避免这样的词!)
  13. 截屏非常有用。不要裁剪——信息显示的全屏图像给出完整的上下文,并可以在多条消息中重复使用。

其他一些提示:

  • 记住,译者经常在没有实际使用软件的情况下翻译这些信息。
  • 最常见的是,译者没有任何上下文信息,既没有模块,也没有其他消息。
  • 在大多数情况下,单独修改消息是没有用的。
  • 不要使用设计师的术语,如“导航”或“组合”。
  • 考虑写一篇文章词汇在您的模块中使用的技术术语。如果你这样做,从消息链接到它。

可以通过使用其他链接链接到其他消息{{MSGMW*消息键} }. 如果部分消息来自其他消息(如果这不能避免),或者如果一些消息被一起显示或在相同的上下文中,请这样做。

NET提供了一些文档的默认模板:

请查看模板页以获取更多信息。

国际化暗示

此外文档翻译者要求考虑一些提示,以便使他们的工作更容易、更有效,并允许对所有语言进行实际和良好的本地化。即使只在英语中添加或编辑消息,人们也应该意识到所有语言的需求。每个消息被翻译成超过300种语言,这应该以尽可能好的方式来完成。正确地执行这些提示通常会帮助你写出更好的英文信息。

这些是主要的地方,你可以找到经验丰富和知识渊博的人对I18N的帮助:

请问问那里!

正确使用消息参数和开关

这是一个正确的措辞为您的消息的先决条件。

避免消息重用

这似乎是违反直觉的,因为复制和复制代码通常是不好的做法,但在系统消息中经常需要。虽然这两个概念可以用英语中的同一个词来表达,但这并不一定意味着它们可以在每种语言中用同一个词来表达。“OK”是一个很好的例子:在英语中,这是一个通用的按钮标签,但是在一些语言中,他们更喜欢使用与按钮所执行的操作相关的按钮标签。另外一个例子实际上是任何形容词:一个单词,如“多个”,根据许多语言的性别变化,所以不能重复使用它来描述几个不同的东西,并且你必须创建几个单独的消息。译者阻碍了信息的再利用。

如果您添加了多个相同的消息,请添加消息文档来描述它们的上下文中的差异。不要担心翻译的额外工作。翻译记忆在这些方面有很大帮助,同时如果需要的话,保持灵活性以有不同的翻译。

避免支离破碎或“拼凑”的信息

语言具有不同的词序,以及复杂的语法和句法规则。很难翻译“乐高”消息,即由多个文本形成的消息,可能有一些间接(也称为“串连接”)。

最好把每一个信息都变成一个完整的短语。如果需要的话,几个句子通常可以更容易地组合成一个文本块。当你想在一条消息中组合多个字符串时,把它们作为参数传递,因为翻译人员可以在翻译时正确地为他们的语言排序。

相互引用的消息

规则中的一个例外可能是相互引用的消息:“在标记为“{{int:名称}}”的字段中输入原始作者的名字,然后单击“{{int:继续} }”。当软件开发人员或wiki操作员更改消息“名称”或“继续”时,这会使消息一致。如果没有INT黑客入侵,开发者和运营商必须意识到所有相关的信息需要修改,当他们改变一个。

从句子中的日期分开的时间

有些语言必须在日期和时间之间插入一些东西,语法上取决于句子中的其他单词。因此,他们将无法使用日期/时间相结合。其他人可能会发现组合方便,因此通常是最好的选择提供三个参数值(日期/时间,日期,时间),在这种情况下,在每一个翻译离开第一个或最后两个未使用的需要。

避免{{SITNAME}}在信息中

{{SITNAME}}有几个缺点。它可以是任何东西(缩写词,词,短句,等。),取决于语言,可能需要使用{{Frase} }每次发生。不管怎样,每个消息都有{{SITNAME}}将需要在大多数维基语言中对安装代码的每个新wiki进行审查。在大多数情况下,当没有一般情况时语法对于一个语言的配置,Wiki操作员必须添加或修改PHP代码以便得到{{Frase} }{{SITNAME}}工作。这需要更多的技能和更多的理解,而不是别的。使用“Wiki”之类的泛型引用更方便。这不会使设备从本地更改这些消息以供使用。{{SITNAME}}但至少他们不需要,他们可以推迟消息的适应,直到维基已经运行和使用。

避免引用视觉布局和位置

渲染的地方取决于皮肤。通常,从左到右写的语言的屏幕布局与用于从右到左写入的语言相比是镜像的,但并不总是如此,而且对于某些语言和维基来说,不是完全的。手持设备、窄窗等可以显示彼此下方的块,这些块会在大型显示器上并排出现。由于站点和用户编写的JavaScript脚本和小工具可以和隐藏某些部件,或者以不可预知的方式移动周围的东西,所以没有可靠的方法来了解实际布局。

将布局信息绑定到内容语言是错误的,因为用户界面语言可能不是页面的内容语言,而布局可能是两者的混合,这取决于环境。非视觉用户代理,如声学屏幕阅读器和其他辅助设备甚至没有视觉布局的概念。因此,在大多数情况下,您不应该引用视觉布局位置,尽管语义布局术语仍然可以使用(“表单中的先前步骤”等)。

MIdiaWiKi不支持基于接口的当前方向性来显示不同的消息或消息片段(参见T30997

即将推出的浏览器和MeavaWiKi支持东亚和北亚自上而下的写作〔2〕将使屏幕布局更加不可预测,至少有八种可能的布局(左/右起始位置,顶部/底部起始位置,并且首先发生)。

避免引用屏幕颜色

渲染的颜色取决于许多因素,包括皮肤、站点和用户编写的JavaScript脚本和小工具,以及本地用户代理由于可访问性或技术限制的原因而进行的漫游。非视觉用户代理,如声学屏幕阅读器和其他辅助设备甚至没有颜色的概念。因此,你不应该提及屏幕颜色。(出于同样的原因,您也不应该只依赖颜色作为通知用户状态的机制。)

在每个输入字段之前和之后都有消息元素

这是一个建议的指导方针,在MIDAWIKI开发中没有成为标准。

虽然英语允许在表单项-冒号-空间输入字段中有效地使用提示,但许多其他语言却没有。即使在英语中,你也常常希望使用“距离:α-米”,而不是“距离(米)”。离开<文本>元素之外,你应该想到每一个输入字段遵循“距离:××米”的模式。所以:

  • 给它两个信息,即使是2个一个是空的英语和一些其他语言,或
  • 允许输入通过我一美元参数。

避免消息中未翻译的HTML标记

不需要翻译的HTML标记,如封闭< div >S,上面或下面的统治者,和类似的,通常不应该是消息的一部分。他们不必要地加重译者的负担,增加信息文件的大小,并在翻译过程中造成意外地被修改或跳过的风险。一般来说,如果可能的话,避免消息中的原始HTML。

信息往往比你想象的要长!

略读外文信息文件,你发现邮件几乎不会比中文短,比英语短,而且通常比英语长得多。

特别是在表单中,在输入字段前面,英语消息往往简洁、简短。这在翻译过程中通常是不存在的。尤其是真正的非技术性的第三世界语言,白话文、中间语或古语言需要多个单词甚至完整的句子来解释外来的或技术的提示。例如,简短的英文信息“TSV文件”可能必须按字面意思翻译成语言:

请在这里键入一个名称,表示一系列计算机数据的集合,这些数据是由一系列有序的一系列打字机线组成的,它们各自被组织成一系列信息字段,其中所说的信息字段是栅栏,它们之间的栅栏是将打字机托架滑到下一个预定义位置的那种单一符号。我们走了:谢谢!

诚然,这是一个极端的例子,但是你得到了这个特性。在一个列中想象这个句子,在这个列中,每个单词都占据一条自己的线,输入字段在下一列中垂直居中。

避免使用非常相近、相似或相同的词来表示不同的事物或概念。

例如,页面可以具有更老的版本(特定日期、时间和编辑),包括所述页面的过去版本。单词修改和版本可以互换使用。出现了一个问题,当版本化的页面被修改,并且修改,即修改它们的过程,也被提及。这可能不会造成严重的问题时,两个同义词的“修订”有不同的翻译。然而,不要依赖它。最好避免使用“修订版”,即“版本”,以避免被误解。

基本词可能有不可预见的内涵,或者根本不存在。

有些词很难翻译,因为它们在MyaWiKi中有着非常特殊的用途。根本不翻译例如,没有一个词“用户”与“使用某种东西的人”有关。同样地,在科尔希英语单词“命名空间”和“公寓”翻译同一个词。坚持KoLSLCH,他们说“确证者和参与者”一词,因为任何提及“使用”也将强烈暗示“滥用”。“维基农场”这个词被翻译成“稳定的维基”,因为一个单一的种植园将是一个矛盾的语言,而不理解。等。

期待未翻译的词

这是一个建议的指南,尚未成为MealaWiKi开发的标准。

专有名称、标签名并不少见。等。而计算机中的英语不是翻译,而是作为外来词或外来词。在后一种情况下,一些特别挑剔的翻译者可以用HTML标记来标记这些词属于另一种语言,例如< Sang-Lang=“EN”XML:LAN=“EN”></SPAN >

您可能需要考虑确保消息输出处理程序通过未标记的标记,尽管存在明显的安全风险。

允许解释内联标记

这是一个建议的指南,尚未成为MealaWiKi开发的标准。

有时在目标语言中有缩略语、技术术语或一般含糊的词,可能无法被新来者立即理解,但对有经验的计算机用户来说是显而易见的。为了避免冗长解释的屏幕混乱,而不让新来者搁浅,译者可以选择增加解释。< ABBR>注释,当浏览器移动鼠标时,由浏览器显示。

例如,MyaWiKi核心消息外定向-8关于图像旋转,这在英语中是简单的旋转90°连续波“摩洛哥阿拉伯语翻译为:

M WWER 90°< ABBR标题=“KS(α-ijiAh)AQARIB S- SA A”>S</ABBR>

赠予

M·WWER 90°阿氏

当需要时解释“逆时针”的缩写。

您可能需要考虑确保消息输出处理程序在未加密的情况下传递这样的标记,即使原始消息不使用它们。

使用<代码>< var ><KBD>需要的标签

在讨论技术参数、值或键盘输入时,使用HTML标记适当地标记它们。<代码>< var ><KBD>. 因此,它们被排版成普通文本。这澄清了他们对读者的理解,避免了混淆、错误和错误的陈述。确保消息处理程序允许这样的标记。

符号、冒号、括号等是消息的一部分。

许多符号也是可本地化的。有些脚本比拉丁语脚本具有其他类型的括号。冒号在某些语言的标签或输入提示符之后可能不合适。将这些符号包含在消息中有助于进行更好的、更少的以盎格鲁为中心的翻译,同时也减少了代码混乱。

例如,在挪威语、瑞典语、丹麦语、德语和日语中有不同的引号约定。[ 3 ]

如果需要在本地化圆括号、括号或引号中包一些文本,可以使用圆括号(1美元)或托架[ 1美元]或引号“1美元”这样的信息:

WFMEST 括号 >罗帕拉姆 *文本插入括号内* >逃脱()
WFMEST 括号 >罗帕拉姆 *文本到括号内* >逃脱()
WFMEST “引号” >罗帕拉姆 /*文本进入引号* >逃脱()

不要指望符号和标点在翻译中生存

从右到左写的语言(与英语相反)通常将箭头符号与“下一个”和“先前”链接交换,并且它们相对于消息文本的放置可能也可能不被反转。省略可译为“等”或词。疑问句、感叹号、冒号将被放置在句子的末尾,而不是一次或两次。因此,总是在消息正文中包含所有这些内容,并且永远不要尝试以编程方式插入它们。

使用完全停止

用句号结束正常句子。这通常是翻译者知道它们不是标题或列表项的唯一指示器,这可能需要不同的翻译。

连杆锚

链接的WiKiTeXT

链接锚可以通过多种技术方式传递给消息:

  1. 通过WiKiTeX:……[维基页锚]……
  2. 通过WiKiTeX:……[一些URL锚]或…
  3. 锚文本是MyaWiKi命名空间中的消息。<i>避开它!</i>

后者往往是难以或不可能处理的翻译,避免支离破碎或“拼凑”的信息这里也一样。一些网址“不包含空格。

使用有意义的链接锚

注意你的措辞。链接锚在搜索引擎的页面评估中起着重要的作用——链接词和目标锚。确保锚点很好地描述目标页面。避免常用词和一般词。例如,“点击这里”是绝对不行的。〔4〕因为目标页面几乎从来没有关于“点击这里”。不要把它放在链接周围的句子中,因为“这里”不是点击的地方。相反,使用精确的动作词告诉用户在链接之后会得到什么,比如“你可以”。上传文件如果你愿意的话。”

也见帮助用户预测他们要去哪里神秘肉导航

避免行话和俚语

避免开发人员和电力用户的行话。尽量使用简单的语言。当你想通知用户某事发生或没有发生时,避免说“成功”、“成功”、“失败”、“错误发生”等。这是因为开发者认为一切都是真的或假的,但用户通常只想知道到底发生了什么或者没有发生什么,以及他们应该做些什么(如果有的话)。所以:

  • “文件被成功重命名”->“文件被重命名”
  • “文件重命名失败”->“已经有这个名称的文件。”请选择一个不同的名字。

每行一句话

这是一个建议的指南,尚未成为MealaWiKi开发的标准。

尝试在一行中有一个句子或类似的块。这有助于比较不同语言中的消息,并且可以用作翻译记忆中的分割和对齐的提示。

注意空白和行中断

MiTawiki的本地化消息通常是在Wiki中编辑的,无论是Wiki操作还是在维基上的翻译。翻译网. 您应该知道空白,特别是在消息的开头或结尾,会如何影响编辑器:

  • 消息的开头或结尾的换行符是脆弱的,通常会被意外删除。使用活动文本启动和结束消息;如果需要在其周围设置换行符或段落中断,则周围的代码应处理将其添加到返回的文本中。
  • 消息的开头或结尾处的空间也可能在编辑过程中被删除,并且应该避免。如果需要一个空间来输出,通常你的代码应该追加它,或者你应该使用一个不中断的空间,比如Nbsp(在这种情况下检查你的逃逸设置!)

使用标准资本化

资本化给译者提供了翻译的提示,例如单字、列表或菜单项、短语或完整句子。正确(标准)的资本化也可以在搜索引擎对页面的评估中发挥作用。MiTaWiKi应用句子格那只敏捷的棕色狐狸跳过了那只懒狗。)在接口消息中。

永远记住,许多书写系统根本没有大写字母,有些确实有字母,不同于英语。因此,不要用全帽来强调。使用CSS或HTML< EM ><强>每份如下:

强调

在正常文本中,强调喜欢黑体字斜体字类似的应该是消息文本的一部分。强调地方性的惯例经常不同,尤其是一些亚洲的脚本有自己的。译者必须能够调整重点,以他们的目标语言和领域。尝试使用“< EM >“和”<强>在您的用户界面中允许以每种语言或每种脚本为基础进行标记。

在现代英语和欧洲风格的屏幕布局中,强调较少使用。消息文档尽管如此,它可能会给翻译提供有价值的提示。强调,可以,也应该在其他文化语境中适当地使用,只要译者知道它。

本地化系统概述

本地化的更新

如上所述,翻译发生在翻译Wik.I.NET和其他系统被劝阻。这里是本地化更新工作流的高级概述:

  • 开发商添加或更改系统消息
  • 用户翻译新的或更改的系统消息在TraseTeWik.NET上。
  • 自动化工具导出这些消息,构建新版本消息文件中,为核心和扩展添加添加或更新的消息,并将它们提交给吉特
  • Wiki然后可以从Git存储库中提取更新的系统消息。

维基媒体项目和任何其他wiki都可以立即受益于本地化工作。本地化更新 扩展〔5〕这就比较了最新的英语消息到英语消息的产生。如果它们不相同,则产品翻译被更新并可供用户使用。

一旦版本控制在版本控制系统中,维基媒体基金会就有一个更新扩展存储库的校验或克隆的日常工作。这是2009年9月首次成立的。〔6〕

因为TraseWik.NET的更改也被每天推送到代码中,这意味着每一个消息的更改都可能在几天内被应用到所有现有的MyeWiki安装,而不需要任何人工干预或创伤性代码更新。

正如你所看到的,这是一个多步骤的过程。随着时间的推移,我们发现很多事情都会出错。如果你认为这个过程被破坏了,请务必在我们的报告。支持页面,或者创建新的bug灭菌器. 一定要描述一个精确的观察。

处理支持请求

主页翻译:开发人员本地化

译者可能对你创造的一些信息有疑问。提供一个支持请求系统允许译者有能力问你,项目所有者,关于消息的问题,以便他们可以更好地翻译。这个简短的教程指导您处理处理TraseWik.NET支持请求的工作流程。

消息源

代码查找系统消息 从这些来源:

  • MyaWiKi命名空间。当标准消息不适合或不需要时,这允许Wiki使用或覆盖它们的所有消息(参见旧的本地翻译系统
    • MIDAWIKI:消息键是默认消息,
    • MIDAWiki:消息键/语言代码是当用户选择了Wiki默认语言之外的语言时使用的消息。
  • 从消息文件:
    • 核心MyaWiKi本身和当前维护的大部分扩展使用每个语言的文件,命名为杰森在哪里ZYX是语言的语言代码。
    • 一些较旧的扩展使用组合消息文件来保存所有语言中的所有消息,通常命名为MyExtensionName .I18N.PHP
    • 许多维基媒体基金会维基访问来自维基百科 扩展,允许他们在WMF Wiki上标准化消息,而不将它们强加在每一个MyaWiki安装上。
    • 一些扩展使用其他技术。


高速缓存

系统消息是MeaWiWi的一个更重要的组件,主要是因为它被用于每个Web请求。PHP消息文件很大,因为它们存储了数以千计的消息键和值。加载这个文件(并且可能多个文件,如果用户的语言不同于内容语言)有很大的内存和性能成本。

MiTaWiKi内置了很多缓存机制,这使得代码更难理解。自从1.16以来,有一个新的缓存系统,它可以缓存消息。国开行 文件或数据库中,自定义的消息被缓存在文件系统中。内存缓存 (或替代),取决于配置。

下表概述了所涉及的设置:

缓存存储位置 $WGROCALLISION CCACHECOF
“商店”=“数据库”
小精灵
“存储”=“检测”
(默认)
“存储”=“文件”
小精灵
“存储”=“数组”
(MW大于1.26的实验)
$WGCACH目录 =假
(默认)
L10N高速缓存表 L10N高速缓存表 错误(未定义路径) 错误(未定义路径)
<i>=路径</i> L10N高速缓存表 本地文件系统(CDB) 本地文件系统(CDB) 本地文件系统(PHP数组)
MiaWiKi版本: 1.27.0~1.27.2
GRIT IT ID3E2D2

在MyaWiKi 1.27.0和1.27.1中,自动检测有利于文件后端。万一“存储”=“检测”(默认值),文件后端与路径从$WGCACH目录 . 如果未设置此值(默认值),则使用由操作系统确定的临时目录。如果无法检测临时目录,则使用数据库后端作为后备。由于共享主机上的文件冲突和安全问题,这一点从1.27.2和1.23.0恢复。T127127T161453

函数回溯

为了更好地直观地描述缓存层,这里给出了在检索消息时调用哪些方法的函数回溯。请参阅下面各节说明每一层。

  • 消息::
  • MigaGeCase::GET()
  • 语言::GETMISAGE()
  • LoalIsIsCase::GETSuiMeMe()
  • LCSTAR::GET()

消息处理

这个消息处理类是消息缓存的最高级别。它从消息类中调用,并返回消息的最终原始内容。该层处理以下逻辑:

最后一颗子弹很重要。语言后退 允许MeaWiki在另一种语言上退回,如果原件没有要求的消息。正如下一节中提到的,大部分的语言回退解析发生在较低的级别。然而,只有消息处理层检查数据库是否已重写消息。因此,将从数据库中重写的消息集成到回退链中。如果不使用数据库,则整个层将被禁用。

本地化缓存

本地化缓存

LCSTART

这个LCSTART类只是一个后端实现,它由LoalAlsIsCuffic类用于实际缓存和检索消息。袋装材料类,它用于MyaWiKi中的一般缓存,有许多不同的缓存类型(配置使用$WGROCALLISION CCACHECOF):

  • “DB”(默认)-缓存数据库中的消息
  • “文件”(默认为$WGCACH目录设置)-使用国开行在本地文件中缓存消息
  • “ACCEL”-用途空气污染指数或另一个用于存储数据的操作码缓存

WikimdiaFoundation使用“文件”选项,因为它比数据库更快,而且比APC缓存更可靠,因此特别推荐,尤其是因为APC与PHP版本5.5或更高版本不兼容。

许可证

任何语言的编辑都必须按照以下条款进行许可通用公共许可证要包含在MyaWiKi软件中。其他扩展可以在不同的许可证下进行。

老地方翻译系统

利用MIDAWIKI1.1.0,建立了一个新的本地化MyaWiKi系统。用户不必编辑语言文件,而是要求开发人员应用更改,用户可以直接从Wiki编辑界面字符串。这是2005年8月使用的系统。人们可以找到他们想要翻译的信息。特殊:所有消息然后编辑相关字符串MediaWiki:命名空间一旦编辑,这些变化是活的。不再需要请求更新,而是等待开发人员检查和更新文件。

该系统对于维基百科项目来说是非常好的,但是副作用是,与软件一起传输的MeaWiKi语言文件不再是最新的,而且开发人员更难将元数据保持在与真实语言文件同步的情况下。

由于默认的语言文件不能提供足够的翻译材料,我们面临两个问题:

  1. 新的维基媒体项目创建在一个没有更新很长时间的语言中,需要对接口进行全面的重新翻译。
  2. MeaWiKi的其他用户(包括在同一语言中的维基媒体项目)留下了未翻译的接口。对于那些没有很多翻译的小型语言来说,这尤其是不幸的。

这不再是一个大问题,因为TraseTeWik.Ni广告显著地被几乎所有的翻译使用。当地翻译有时也会发生,但他们强烈反对。本地消息大多必须被删除,将相关的翻译移到TurraseWik.NET上,只在站点上留下特定的定制;有一个巨大的积压,尤其是在旧项目中,这个工具有助于清理。

保持消息集中和同步

英语信息很少与代码不同步。经验表明,把所有的英语信息放在同一个地方是方便的。修改英文文本可以不用引用代码就行,就像翻译一样。程序员有时对默认文本做出非常差的选择。

附录

什么可以本地化

在MiTaWiKi上有很多东西是可本地化的,并不是所有的都是直接可用的。翻译网翻译:维基:翻译:MiaWiKi. 如果某事需要开发商对代码的干预,你可以在PHB上请求或问翻译:维基:支持如果你不知道该怎么做。

语言后退图
  • 后退语言(也就是说,当翻译不可用时,使用更紧密相关的语言,而不是默认的后退,这是英语)。
  • 方向性(从左到右或从右到左,RTL)
  • 基于RTL的方向标记字符
  • 取决于RTL的箭头
  • 不能使用斜体字的语言
  • 数字格式化(逗号)添加或不数字分隔符;变换数字;变换分隔符)〔7〕
  • 截断(多字节)
  • 屈折语言的语法转换
  • 多元变换
  • 格式化有效期[ ]需要澄清]
  • 差值分割(中文)
  • 转换成语言变体(在不同的正字法或脚本之间)
  • 特定语言用户偏好选项
  • 链路跟踪 和链接前缀,例如[Fo]这些是可以在Wiki链接的关闭/打开括号之后粘贴的字母,但是在屏幕上呈现为链接的一部分(即,可点击和相同颜色)。默认情况下,链接线索是“A Z”;你可能想把你的语言中使用的加重或非拉丁字母添加到列表中。
  • 语言代码(最好按照标准BCP 47中的最新RFC使用)RFC 5646,与其关联的IANA数据库。避免被弃用的、祖传的和私人使用的代码:看看标准ISO 639中的含义,避免在ISO 635-5和ISO 639代码中分配的代码,这些代码不是在IANA数据库中导入的,用于BCP 47)。
  • 强调类型
  • 这个引用 扩展有一个特殊的页面文件,每种语言,CyeTy-文本-ZYX语言代码ZYX

整洁的功能性:

  • I18N喷洒日期
  • 罗马数字格式化

命名空间别名

命名空间名称别名是可以用来解决现有命名空间的附加名称。它们很少需要,但当它们不存在时,通常会在现有wiki中造成严重破坏。

您需要命名空间名称别名:

  1. 当语言有变体时,这些变体会以不同的方式拼写一些命名空间,并且希望编辑器能够使用变体拼写。在用户偏好中可选择变量。除了WiKiTeXT之外,用户总是看到他们所选择的变体,但是当编辑或搜索时,可以使用任意的变体。
  2. 当现有的维基语言、回落语言或本地化改变时,它改变了一些命名空间名称。为了不破坏已经存在于Wiki中的链接,这些链接使用旧的命名空间名称,需要在更改之前或之前添加每个已更改的命名空间名称到其命名空间名称别名。

泛型英文命名空间名称在所有本地化中总是作为命名空间名称别名存在,因此您不需要,也不应该添加这些名称空间别名。

别名不能翻译翻译网,但可以要求在那里或上布吉拉转换:WiMeWikii命名空间名称别名

区域设置

一些语言设置在地理上有所不同;MiTaWiKi没有区域概念,它只有语言和语言变体。

这些设置需要设置为一个语言的默认值,然后个别wiki可以改变他们所希望的配置。

时间和日期格式

时间和日期显示在特殊的页面和相似的地方。默认的时间和日期格式用于签名,因此它应该是该语言的用户最常用和最广泛理解的格式。匿名用户也可以看到默认格式。

如果您熟悉PHP的时间()格式,您可以尝试自己构建格式。MyaWiKi使用类似的格式字符串,具有一些额外的特性。开发商

旧编辑窗口工具栏按钮

不要与更普遍的事物混淆维基编辑器 “高级工具栏”,具有类似的功能。

当编辑Wiki页面时,用户已经允许其进入特殊:偏好在一个可以编辑的文本区域上方显示一组图标。〔1〕但是我们没有任何信息。我们需要的是一套适当的尺寸。PNG文件。大量的样本可以在公共场所:类别:ButtonToolbar还有一个空按钮图像从…出发

注意,这只能在您的语言已经在MealaWiKi中启用时完成,这通常意味着它的消息的一部分已被翻译;否则您必须等待,并在稍后完成。

遗失

<b>本节缺少有关扩展的I18N系统的更改。格式是标准化的,消息是自动加载的。</b>

信息源

推荐信

  1. γ HTTPS://GRITIT.Wikimdia.Org/R/211677
  2. γ HTTP://DEV.W3.OR/CSSWG/CSS3-WORDES/MODES/
  3. γ W:行情
  4. γ HTTP://www. W3.Org/Qua/TiPS/NOCLICKIKE
  5. γ 它通过本地化缓存进行工作,例如在维基媒体项目上进行日常更新;技术细节关于具体实施。
  6. γ 本地化更新更新LoalIsAccess更新是实时的
  7. γ 这些语言由各自的语言配置。语言/班/ LanguageXx.php语言/消息/ MessagesXx.php文件

也见