是Google的开源UI软件开发套件用于从单个代码库开发Android,iOS,Linux,Mac,Windows,Google Fuchsia和Web的应用程序。如果您想了解本地化浮动应用程序的基础知识,可以检查在我们的博客中“扑打本地化和国际化”邮寄

虽然两者杰森ALB文件可以在扑动中,后者格式是优选的。ARB格式类似于JSON,但它不像键值格式一样简单。ARB文件可以存储具有占位符,复数和性别支持等附加功能的字符串资源

这是一个例子:

{
“@@ locale”:“en_us”,
“title_bar”:“我很酷的家”,
“@标题栏”: {
“类型”:“文本”,
“上下文”:“主页”,
“描述”:“页面标题”。
},
“msg_ok”:“一切正常。”,
“foo_123”:“您的待处理费用是{cost}”,
“@ foo_123”:{
“类型”:“文本”,
“上下文”:“主页:mainpanel”,
“描述”:“余额声明。”,
“source_text”:“您的待处理成本是{cost}”,
“占位符”:{
“成本”: {
“示例”:“$ 123.45”,
“描述”:“成本用货币符号呈现”
}
},
“屏幕”:“数据:图像/ png; base64,ivborw0kggo ...”,
“视频”:“http://www.youtube.com/ajigliech”
},
“bar_231”:“图像/ image_bar.jpg”
}


在Arb中,可本地化资源被编码为JSON对象。每个资源都有一个资源条目由资源密钥标识,以及可选的资源属性条目使用Resource属性密钥。

请注意,只要摇动用于创建跨平台应用程序,就会将从ARB文件导入的翻译密钥分配其他平台。

文件结构

资源ID和资源值

资源ID.是给定命名空间内的资源标识符。资源价值在ARB文件中始终字符串:

{“title_bar”:“我的示例”}

占位符

占位符用卷曲括号包裹,也可以包含位置要么变量的名称

{
“你好”:“你好{0}”,
“你好”:“你好{name}”
}

在Lokalise:

请注意,您可以将这些占位符转换为通用的人进口到Lokalise。

特殊的占位符语法(与@直接在打开卷曲支架之后,用于通过翻译器修改某些内容:

{
“hello_with_markup”:“hello {@ }世界{@ }”
}

在Lokalise:

复数和性别支持

ICU语法用于支持复数和性别。但请注意,ARB中的复数和性别支持是实验性的。

{
“PageHomeBirthday”:“{性别,选择,
男性{他的生日}
女性{她的生日}
其他{他们的生日}}“,

“pagehomeinboxcount”:“{count,复数,
零{你没有新的消息}
一个{你有1个新留言}
其他{你有{count}新邮件}}“
}

在Lokalise(性别支持):

请注意,如果您的ARB文件包含复数,则可以启用检测ICU复数导入过程中的选项:

在这种情况下,您的钥匙将被识别为复数:

资源属性

资源也可以具有一组附加属性。这些属性嵌入到由原始资源ID Plus键入的属性项中@字首。属性项的值部分是一个地图对象,其中包含属性列表作为名称/值对。

  • 类型(细绳)。可能的值:文字|图像|CSS.类型将保存为一个自定义属性。默认情况下将自定义属性添加到导出包中。

  • 语境(细绳)。描述此资源适用的上下文。上下文是分层组织的,不同的级别分隔(冒号)。语境将保存到Lokalise内翻译密钥的“上下文”字段。默认情况下,上下文将添加到导出包中。

  • 描述(细绳)。描述资源。保存到翻译键的“描述”字段。如果您想将键描述添加到下载的翻译包,请启用包括描述出口期间的选项。

  • 截屏(细绳)。图像位置或基本64个编码图像数据的URL。保存为屏幕截图(对于基础-64编码的图像数据)或作为自定义属性(用于URL)。默认情况下将自定义属性添加到导出包中。请注意,默认情况下,导出的URL将导向斜杠转义为此http://www.example.com/sample.转向http:\ / \ / www.example.com \ / sample。如果您不希望发生这种情况,请启用UNESCAPE向前斜线出口过程中的选项。

  • 视频(细绳)。App / Resource /小部件的视频URL在操作中。保存为自定义属性。默认情况下将自定义属性添加到导出包中。请注意,默认情况下,导出的URL将导向斜杠转义为此http://www.youtube.com/sample.转向http:\ / / www.youtube.com \ / sample。如果您不希望发生这种情况,请启用UNESCAPE向前斜线出口过程中的选项。

  • source_text.(细绳)。翻译的源文本。目前被Lokalise忽略了。

  • 占位符(目的)。作为Lokalise保存为占位符,而所有其他数据都保存为自定义属性。如果占位符被视为文字,则跳过。

考虑占位符有两个重要规则:

  1. 有效语法中的所有占位符被解释为占位符如果没有占位符属性中的属性。

  2. 有效语法中的占位符被视为文字如果消息没有占位符财产,但占位符没有相应的进入占位符地图。换句话说,如果占位符属性存在,必须完成。

自定义属性

虽然可以创建以前缀为前缀的自定义属性X-,Lokalise目前忽略了它们,因为它们是特定于工具的。

全球属性

最高层面可以有一套全球的适用于整个资源捆绑包的属性。全局属性名称是前缀的@@

  • @@ locale.。翻译文件的区域设置。在导入过程中保存为关键语言。

  • @@语境。描述所有资源的上下文。目前忽略了。

  • @@上一次更改。ARB文件的最后修改日期时间。应该以ISO8601格式提供,例如:2020-09-08T09:42-07:00。目前忽略导入,但在导出期间使用导出包中包含的所有键之间的最新修改日期。

  • @@作者。翻译文件的作者。目前忽略了。

你可以找到完整的GitHub上的ARB规范

这是否回答你的问题?