我遇到的一个项目具有跟随结构的本地化
每种语言都有一个目录,在该目录下将有一个与目录+'.arb'扩展名相同的文件。
en/en.arb
我无法找到解释此文件格式的文档。 来自.arb文件的示例内容
"FOO_123": "Your pending cost is {COST}",
"@FOO_123": {
"source_text": "Your pending cost is {COST}",
"placeholders": {
"COST": {
"example": "$123.45",
"description": "cost presented with currency symbol"
}
}
我能找到的最接近的是this。
这是了解'.arb'文件的权威文件吗?
其值具有href的锚标记的资源是什么样的?这是正确的方法吗?
"FOO_124": "Refer to this {LINK}", "@FOO_124": { "source_text": "Refer to this {LINK}", "placeholders": { "LINK": { "example": "<a href="https://en.wikipedia.org/">Encyclopedia</a>", "description": "Link to the Encyclopedia page" } }
答案 0 :(得分:1)
ARB是Google的本地化格式,它在the web和flutter framework
中使用来自ARB (Application Resource Bundle Specification)
应用程序资源包(简称ARB)是本地化资源 简单的格式(基于JSON),可扩展的格式(词汇可以是 在不影响现有工具和使用的情况下添加),并且直接可用 (应用程序可以直接通过这种格式访问资源 而不转换为其他形式。
在ARB中,可本地化的资源被编码为JSON对象。每 资源将具有一个由资源密钥标识的资源条目,并且 带有资源属性键的可选资源属性条目。
这个答案是对我的搜索的总结,希望可以节省别人的时间。
答案 1 :(得分:1)
ARB代表应用程序资源包。
它实际上是用于类固醇的JSON文件,用于本地化,扩展名为.arb。由于它基于JSON,因此它仅定义了标准化的方法,如何在键值对周围添加更多信息。
它用于Web和Flutter应用程序的本地化。
请注意,official ARB specification是通用的,有时可能与本地化库的实现有所不同。
关于其中带有锚标记的翻译,这再次取决于本地化库的实现。 下面显示了Flutter中的示例。
ARB文件示例:
{
...
"commonLink": "link",
"@commonLink": {
"description": "Link desc."
},
"commonReferContent": "Refer to this ",
"@commonReferContent": {
"description": "Refer content desc."
}
...
}
用法示例:
...
RichText(
text: TextSpan(children: [
TextSpan(
style: TextStyle(color: Colors.black),
text: S.of(context).commonReferContent,
),
TextSpan(
style: TextStyle(
color: Theme.of(context).primaryColor,
decoration: TextDecoration.underline),
text: S.of(context).commonLink,
recognizer: TapGestureRecognizer()
..onTap = handleReferLinkTap),
]),
),
...
有关Flutter中ARB的更多详细信息,请查看this article。