扑是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 {@ }世界{@ b>}”
}
在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保存为占位符,而所有其他数据都保存为自定义属性。如果占位符被视为文字,则跳过。
考虑占位符有两个重要规则:
有效语法中的所有占位符被解释为占位符如果没有
占位符
属性中的属性。有效语法中的占位符被视为文字如果消息没有
占位符
财产,但占位符没有相应的进入占位符
地图。换句话说,如果占位符
属性存在,必须完成。
自定义属性
虽然可以创建以前缀为前缀的自定义属性X-
,Lokalise目前忽略了它们,因为它们是特定于工具的。
全球属性
最高层面可以有一套全球的适用于整个资源捆绑包的属性。全局属性名称是前缀的@@
。
@@ locale.
。翻译文件的区域设置。在导入过程中保存为关键语言。@@语境
。描述所有资源的上下文。目前忽略了。@@上一次更改
。ARB文件的最后修改日期时间。应该以ISO8601格式提供,例如:2020-09-08T09:42-07:00
。目前忽略导入,但在导出期间使用导出包中包含的所有键之间的最新修改日期。@@作者
。翻译文件的作者。目前忽略了。
你可以找到完整的GitHub上的ARB规范。