html - l20n 与 HTML 标记?

标签 html localization l20n

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

About <strong>Firefox</strong>

我想翻译整个短语,但我也想要标记。我不想这样做:

<aboutBrowser "About {{ browserBrandShortName }}">
<aboutBrowserStrong "About &lt;strong&gt;{{ browserBrandShortName }}&lt;/strong&gt;">

...因为翻译本身现在被复制了。

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

最佳答案

有时复制翻译是您能做的最好的事情。冗余有利于本地化:它允许对翻译成其他语言做出更少的假设。 L20n 的核心原则之一是 only the localizer will know what they really need .

你的方案其实还可以

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

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

<aboutBrowser "About {{ browserBrandShortName }}">
<aboutBrowserEmphasized """
  About <strong>{{ browserBrandShortName }}</strong>
""">

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

少做假设很重要

让我快速离题并提出Bug 859035 — Do not use the same "unknown" entity for Size & Author when installing a WebApp来自火狐操作系统。讲英语的开发人员假设他们可以使用“未知”形容词来限定安装对话框中的大小和作者。但是,在某些语言中,如法语或波兰语,形容词必须在性别和复数方面与宾语一致。所以即使在英语中我们也只能有一个字符串:

<unknown "Unknown">

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

<unknownSize "inconnue">
<unknownAuthor "inconnu">

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

<unknownSize "Unknown">
<unknownAuthor "Unknown">

...不过没关系,因为最终本地化的质量得到了提高。在任何地方都使用唯一的字符串并有节制地重复使用通常是一种很好的做法。理想情况下,您允许对所有字符串进行不同的翻译。如果您考虑像威尔士语这样的语言,即使像"is"和“否”这样简单和常见的事情也会变得棘手:

Welsh doesn't have a single word to use every time for yes and no questions. The word used depends on the form of the question. You must generally answer using the relevant form of the verb used in the question, or in questions where the verb is not the first element you use either 'ie' / 'nage'.

关于html - l20n 与 HTML 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160042/

相关文章:

html - 如何在 multipart/form-data HTTP POST 请求中指定字符编码?

html - 如何延迟加载大背景图片

android - 调用 requestLocationUpdates() 时不能将 Activity 用作 LocationListener 的实例

无上下文的 flutter 本地化

Javascript 多次 click() 事件不会在 IE 中触发

css - Div 的高度得到扩展,但元素出现在 div 的工作空间之外

vb.net - .NET本地化: Japanese Characters Display as Squares

javascript - l20n:服务器端 Node resolveValues错误

javascript - 如何在 l20n.js 中使用 html