带有HTML标记的l20n?

Mar*_*rib 4 html localization l20n

如果我想创建这样的东西,我将如何使用l20n:

About <strong>Firefox</strong>
Run Code Online (Sandbox Code Playgroud)

我想将整个短语翻译成一个整体,但我也想要标记.我不想这样做:

<aboutBrowser "About {{ browserBrandShortName }}">
<aboutBrowserStrong "About &lt;strong&gt;{{ browserBrandShortName }}&lt;/strong&gt;">
Run Code Online (Sandbox Code Playgroud)

......因为翻译本身现在已经重复了.

我知道这可能不在l20n的范围内,但它可能是现实世界中常见的情况.是否有某种既定的方法可以解决这个问题?

Sta*_*szy 7

有时复制翻译是您可以做的最好的事情.冗余在本地化方面很好:它允许对翻译成其他语言的假设更少.L20n的核心原则之一是只有定位器才能知道它们真正需要什么.

你的解决方案实际上没问题

你提出的解决方案实际上非常好.你试图表达的重点完全有可能<strong>在我们可能不知道的某种语言中有一些未知的含义.例如,某些语言可能会使用declensions或postposition来表示"关于某事",在这种情况下,作为开发人员,您不应该对<strong>元素的确切位置做出太多假设.整个翻译可能是一个被单词包围的单词<strong>.

这是你的代码,使用L20n的多行字符串文字格式化:

<aboutBrowser "About {{ browserBrandShortName }}">
<aboutBrowserEmphasized """
  About <strong>{{ browserBrandShortName }}</strong>
""">
Run Code Online (Sandbox Code Playgroud)

请注意,为了使其按预期工作,您需要使用添加data-l10n-overlay属性到DOM节点data-l10n-id=aboutBrowserEmphasized.否则,<并且>将被转义.

做一些假设很重要

让我快速离题并提出错误859035 -从Firefox OS 安装WebApp时,不要为Size&Author使用相同的"未知"实体.讲英语的开发人员假设他们可以使用"未知"形容词来限定安装对话框中的大小和作者.但是,在某些语言中,如法语或波兰语,形容词必须在性别和复数方面与对象一致.所以尽管在英语中我们只能有一个字符串:

<unknown "Unknown">
Run Code Online (Sandbox Code Playgroud)

...其他语言可能需要两个单独的字符串用于它们所使用的每个上下文.在法语中,你会说"auteur inconnu"(未知的作者,男性化)但是"taille inconnue"(未知的大小,女性化):

<unknownSize "inconnue">
<unknownAuthor "inconnu">
Run Code Online (Sandbox Code Playgroud)

在英语中,这意味着一些冗余:

<unknownSize "Unknown">
<unknownAuthor "Unknown">
Run Code Online (Sandbox Code Playgroud)

......但这没关系,因为最终本地化的质量得到了提高.在任何地方使用独特的字符串并谨慎重用通常是一种很好的做法.理想情况下,您允许对所有字符串进行不同的翻译.如果你考虑像威尔士这样的语言,即使像"是"和"否"这样简单而常见的东西也会很棘手:

威尔士人每次都没有一句话可以使用是和没有问题.使用的单词取决于问题的形式.您通常必须使用问题中使用的动词的相关形式,或者在动词不是您使用的第一个元素'ie'/'nage'的问题中回答.