定位字符串γ

在Ma金宝搏188thJax V2.2和以后,用户界面可以本地化为使用英语以外的语言。这包括所有信息字符串、菜单项,警告消息,等等。为了实现这一点,eachstring is given an ID that is used to obtain the localized version ofthe string.因此“找不到文件”消息可能具有ID未找到.每种语言的本地化数据与ID关联未找到正确翻译英语短语“file notfound”。

Mathjax的金宝搏188一些函数,喜欢金宝搏188mathjax.message.set()。,无法接受本地化字符串作为其参数。要在本例中使用本地化字符串,使用一个数组,该数组由id后跟englishstring(后跟字符串的任何替换参数,下面看)例如,

金宝搏188.消息.集合([“未发现”“找不到文件”

would cause the "File not found" message to be displayed (in thecurrently selected language) in the 金宝搏188MathJax message area at the bottomof left of the browser window.注意金宝搏188mathjax.message.set()。仍然可以接受未本地化的字符串,传统上:

金宝搏188.消息.集合“找不到文件”

这里的信息总是用英语,不管选择的语言。

也给出了英文字符串(除了theid)的原因,is because 金宝搏188MathJax needs to have a fallback string to use in casethe localization data doesn't translate that ID,or if the localizationdata has failed to load.除了ID之外,还提供英文字符串可以保证回退可用。

金宝搏188Mathjax的本地化系统在本地化API文档。

参数替换γ

Localized messages may need to include information,和文件名一样,只有在需要消息时才会知道。In this case,消息字符串充当模板,Mathjax将在适当的位置将需要的值插入其中。金宝搏188要使用这种替换,您需要在本地化字符串数组中包含下列值:使用特殊的序列% 1% 2,等。,在消息中应该出现的位置上的参数。例如,

金宝搏188.消息.集合([“未发现”“找不到文件%1”文件名

将导致变量中存储的名称文件名插入到位于% 1.Note that the localized string could use the parameters in a differentorder from how they appear in English,所以M金宝搏188athjax可以处理不同语序的语言。

Although it would be rare to need more than 9 substitution parameters,you can use%10% 11,等。,为了得到第10个,11日很快。如果需要一个参数直接跟随一个数字,使用%{ 1 } 0(rather than%10)得到第一个参数后直接跟一个零。

%除数字或{按照百分比符号生成字符,所以%%would producea single%,和%:只会生产.

复数形式γ

有些语言处理复数形式与英语不同。在英语中,有两种形式:一种用于单个项目,它还可以用来做其他的事情。例如,你会对一条信息说“你有一条新消息”,但是“你有三条新消息”,其中有三条(或两条,或零,或者其他任何东西)。

要处理复数,在消息字符串中使用特殊的“复数”指令。格式是

%{plural:%nγ文本1γ课文2}

哪里%N是对控制要使用的文本的参数(应为数字)的引用。对于英语,会有两个文本,一个(文本1)当数字为1时,一个(课文2)当它是其他东西的时候。其他语言可能有更多的形式(例如,威尔士语有六种不同的复数形式,0(零)的差一,1(一),2(二),3(少)6(多),and anythingelse,所以威尔士语翻译的复数形式有六种不同的文本)。如何将数值映射到文本字符串的详细信息由所选语言的翻译数据处理。

作为一个例子,你可以使用

金宝搏188.消息.集合([“新消息”“您有%1个新的%复数:%1消息消息”n

哪里n是保存新消息数的变量。

或者,

金宝搏188.消息.集合([“新消息”“您有%{复数:% 1”新消息%% 1新消息}n

演示如何在复数文本中进行替换。

请注意,翻译字符串可能包含这样的构造,即使原始的英语字符串不包含。例如

金宝搏188.消息.集合([“单独”“我们在这个家庭里只有1岁,但在这个世界上是孤独的。”n

could be translated into French by

“nous sommes%1 dans cette famille mais%复数:%1 seul seuls en ce monde。”

Note that if one of the options for the plural forms requires aliteral close brace,它的报价可以是百分之一。For instance,

%{plural:%γ {只有%}γ {or 更多%}

会产生 {}}当第一个参数为1时,和 {or 更多}otherwise.

如果消息需要包含类似于这些选择器之一的文本字符串,原文%can be quoted.所以%%复数:%%1 a_b_将是文本字符串%复数:%1_a_b_.

数字形式γ

十进制数在不同语言中的表示方式不同。例如,3.14159是数学常数pi近似值的英文表示,金宝搏188在欧洲国家,它会写314159。金宝搏188在将数字插入本地化字符串之前,Mathjax将把它转换为properformat。例如

金宝搏188.消息.集合([“PI”“pi的值约为%1”三点一四一五九

将值显示为三点一四一五九在英语中,但是三十一万四千一百五十九iffrench是所选语言。

ID和域γ

因为MaTJAX金宝搏188由多个独立的组件组成,并且可以由第三方代码扩展,两个不同的组件可能希望对一个字符串使用相同的ID值,导致Toan ID名称冲突。为了避免这种情况,金宝搏188Mathjax允许标识符领域用于分离单个集合的标识符与另一个组件的标识符集合。例如,每个输入jax都有自己的域,和许多Mathjaxextensio金宝搏188ns一样。这意味着你只需要担心与你自己领域的冲突,因此,如果使用theid,就可以更容易地管理其唯一性。

要使用具有您的ID的域,将ID替换为由域和ID组成的数组。例如,tex输入jax使用域特克斯,所以

金宝搏188.消息.集合[[〔〕“特克斯”“错撑”“缺少右大括号”

将消息设置为与ID关联的转换错撑特克斯领域。

Some functions that take localization strings automatically prepend thedomain to the ID (if one isn't already given).例如,这个错误()tex input jax的函数使用特克斯未提供域ifone,所以

特克斯.误差([“错撑”“缺少右大括号”

will generate the错撑错误来自特克斯域,无需指定特克斯域显式。

HTML片段γ

金宝搏188Mathjax提供了一种在javascript中指定HTML代码的方法,称为HTML片段.这些通常包括需要本地化的文本,so you can include localization strings(like those described above) within an HTML snippet in any locationwhere you would normally have a regular text string.例如,小行星

[
  "Follow this link: "
  [“A”,{HREF“http://www.金宝搏188mathjax.org”};
    [“IMG”,{SRC“外部的GIF”}
  ] ]
]

包括文本“follow this link:”,应本地化。您可以将其更改为本地化字符串,使其转换为选定的语言:

[
  [“跟随链接”“跟踪此链接”“:”
  [“A”,{HREF“http://www.金宝搏188mathjax.org”};
    [“IMG”,{SRC“外部的GIF”}
  ] ]
]

(这里我们用身份证追随链接获得译文。Notethat you can include substitution parameters as usual:

[
  [“点击消息”“单击查看%1个新的复数形式:%1 message messages”n“:”
  [“A”,{HREF"messages.html"};
    [“IMG”,{SRC“外部的GIF”}
  ] ]
]

甚至可以将HTML片段替换为本地化字符串(当它位于HTML片段中时):

[
  [“金宝搏188马蒂查克林”“这是记录在% 1网站”,[
    [“A”,{HREF“http://docs.金宝搏188mathjax.org”};“金宝搏188马蒂雅克斯”
  ] ]
]

注:然而,下一节给出了一个更好的方法来解决这个问题。

因为一个HTML代码段可能包含几个需要打压的字符串,您可能希望能够指定要用于的域全部的the strings within the snippet.Within a snippet,you can usean entry of the form[域,代码段]强制使用默认域处理代码段domain.例如。

[
  [“特克斯”,[
    [“UL”,{},
      [“礼”,{},[[“错撑”“缺少右大括号”]
      [“礼”,{},[[“超文本”“额外右大括号”]
    ] ]
  ]
  [“MathML”,[
    [“UL”,{},
      [“礼”,{},[[“未知节点”“未知节点类型:%1”类型]
      [“礼”,{},[[“坏属性”“非法属性:%1”attr]
    ] ]
  ]
]

会创建两个无序列表,其中一个翻译自特克斯域,还有一个来自数学模型领域。

要总结HTML代码段的格式,它是一个数组,每个条目都是下列之一:

  • 文本字符串,在生成的HTML中变成文本;这是浓缩的。
  • 窗体数组[标签][“标记”,属性],or[“标记”,属性,HTML代码段],它成为给定的htmltag,with the given properties,containing the given HTML-snippetas its children.
  • 窗体数组[身份证,信息]or[ID、消息、参数],这是第一次翻译,执行参数替换,and the result added to theHTML (either as text or as HTML tags if the message includedMarkdown syntax).请注意身份证件可以是身份证,也可以是混乱的[域,ID ],参数可以是htmlsnippets本身。
  • 窗体数组[域,HTML代码段],这是一个HTML片段,它的本地化是从给定域完成的。

Markdown Notationγ

HTML代码段允许您创建样式化标记,like bold or italics,but this requires breaking the text up into smaller strings that fallin between HTML tags.这就很难翻译了,因为字符串不是完整的短语。要用粗体创建字符串,斜体字,超链接更容易本地化,金宝搏188Mathjax允许在有限的markdownSyntax中编写HTML片段中的字符串(非常有限的)。你可以使用*粗体***斜体*****粗体斜体***[链接文本](URL),和“代码”获得大胆,斜体字,粗体斜体字,超链接,和代码块。例如,上面的链接示例可以通过

[
  [“金宝搏188马蒂查克林”"This is documented at the [金宝搏188MathJax](%1) website"
                 “http://docs.金宝搏188mathjax.org”]
]

虽然

[
  [“渲染器”“*渲染器*:用于选择输出渲染器”]
]

将产生相当于渲染器 选择 这个 输出 提供用适当的语言。