糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > lt;xliff:ggt;标签

lt;xliff:ggt;标签

时间:2023-12-28 11:41:04

相关推荐

lt;xliff:ggt;标签

摘要:

这是Android4.3Mms源代码中的strings.xml的一段代码:

<!--Settings item desciption for integer auto-delete sms message limit -->

<string name="pref summary delete limit"><xliff:g id="count">%1$s</xliff:g>messages per conversation</String>

在这里google的project师们使用了<xliff:g >标签,这个标签主要在动态插入内容时候使用。有点类似于占位符的作用。

这里我们简介一下<xliff:g>。

简单介绍:

xliff是XML Localization Interchange File Format的缩写。也就是XML本地化数据交换格式的意思。配合string结点一起使用,用于动态设置某些值。

一,在strings.xml文件里定义的方法:

<string name="pref summary delete limit"><xliff:g id="count">%1$s</xliff:g>messages per conversation</String>

经常使用的属性:

id:当前xliff结点的唯一标识。

属性example表示举例说明,可选属性。

Java 语言的格式化输出使用演示样例:

StringBuilder sb = new StringBuilder();// Send all output to the Appendable object sbFormatter formatter = new Formatter(sb, Locale.US);// Explicit argument indices may be used to re-order output.formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")// -> " d c b a"// Optional locale as the first argument can be used to get// locale-specific formatting of numbers. The precision and width can be// given to round and align the value.formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);// -> "e = +2,7183"// The '(' numeric flag may be used to format negative numbers with// parentheses rather than a minus sign. Group separators are// automatically inserted.formatter.format("Amount gained or lost since last statement: $ %(,.2f",balanceDelta);// -> "Amount gained or lost since last statement: $ (6,217.58)"

格式字符串语法:

产生格式化输出的每一个方法都须要格式字符串和參数列表。格式字符串是一个String,它能够包括固定文本以及一个或多个嵌入的格式说明符。请考虑下面演示样例:

Calendar c = ...;String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

此格式字符串是format方法的第一个參数。它包括三个格式说明符 "%1$tm"、"%1$te" 和 "%1$tY"。它们指出应该怎样处理參数以及在文本的什么地方插入它们。格式字符串的其余部分是包括"Dukes Birthday: "和其它不论什么空格或标点符号的固定文本。參数列表由传递给位于格式字符串之后的方法的全部參数组成。

在上述演示样例中,參数列表的大小为 1。由对象Calendarc组成。

常规类型、字符类型和数值类型的格式说明符的语法例如以下:

%[argument_index$][flags][width][.precision]conversion

可选的argument_index是一个十进制整数。用于表明參数在參数列表中的位置。

第一个參数由 "1$" 引用,第二个參数由 "2$" 引用。依此类推。

可选flags是改动输出格式的字符集。

有效标志集取决于转换类型。

可选width是一个非负十进制整数。表明要向输出中写入的最少字符数。

可选precision是一个非负十进制整数,通经常使用来限制字符数。特定行为取决于转换类型。

所需conversion是一个表明应该怎样格式化參数的字符。

给定參数的有效转换集取决于參数的数据类型。

用来表示日期和时间类型的格式说明符的语法例如以下:

%[argument_index$][flags][width]conversion

可选的argument_index、flags和width的定义同上。

所需的conversion是一个由两字符组成的序列。第一个字符是't''T'。第二个字符表明所使用的格式。这些字符类似于但不全然等同于那些由 GNUdate和 POSIXstrftime(3c)定义的字符。

与參数不正确应的格式说明符的语法例如以下:

%[flags][width]conversion

可选flags和width的定义同上。

所需的conversion是一个表明要在输出中所插内容的字符。

二,在java代码中动态的方法:

getResources().getString(int id,Object...formatArgs);

以下贴出Android官方问其中相关的方法:

public String getString(int id, Object... formatArgs) throws NotFoundException {

String raw = getString(id);

return String.format(mConfiguration.locale, raw, formatArgs);

}

id:字符串资源ID;

formatArgs:将用于替换格式的參数。从return语句中能够看到。这里调用了String的format方法,jdk文档中给出的解释是格式字符串中由格式说明符引用的參数。

假设还有格式说明符以外的參数,则忽略这些额外的參数。參数的数目是可变的。能够为 0。參数的最大数目受Java Virtual Machine Specification所定义的java数组最大维度的限制。有关null參数的行为依赖于转换。

版权声明:本文博客原创文章,博客,未经同意,。

如果觉得《lt;xliff:ggt;标签》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。