在很多的andorid samples中的strings.xml中很多都带有<xliff:g>标签。比如:
<stringname="countdown"><xliff:g id="time" example="5days>%1$s</xliff:g>until holiday </string>。其中Xliff是XMLLocalization Interchange File Format 的缩写,中文名为XML本地化数据交换格式。
不明白是什么用途,网上也有一些文章有相关介绍,但是也都没说明白和不带该标签的字符串有什么区别,故特地研究了一番。
Xliff:g标签出自android文档localizationchecklist中(https://developer.android.com/intl/zh-cn/distribute/tools/localization-checklist.html).里面有说说明为:
Markmessage parts that should not be translated
Oftenstrings contain contain text that shouldn’t be translated to other languages.Common examples might be a piece of code, a placeholder for a value, a specialsymbol, or a name. As you prepare you strings for translation, look for andmark text that should remain as-is, without translation, so that translatorsdon’t change it.
标记不应翻译的消息部分
有时候字符串中包含不应被翻译为其他语言的文本。 常见的示例包括代码、某个值的占位符、特殊符号或名称。 在准备翻译字符串时,请查找并标记应该保留原样而不需要翻译的文本,这样翻译人员就不会更改这些内容。
要标记不应翻译的文本,请使用 <xliff:g> 占位符标记。以下示例标记可确保文本“%1$s”在翻译过程中不会被更改(否则这条消息会被破坏)。
是不是看了上面的说明仍然一头雾水,反正我是觉得看了和没看差不多。只知道是用于标记不应翻译的场景。但是什么是不应翻译的场景呢,不清楚。
故先标记该文章,作用有2:
1.希望有了解这块的同学帮忙解答疑惑,在此表示感谢;
2.如果后续看到问题答案,以便回来更新。