%1$s、%1$d的使用
s为字符串,d为整形。1表示替换的第一个参数,第二个则写为:%2$d/s。
string.xml中:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
String text = getResources().getString(R.string.welcome_messages, username, mailCount);
<xliff:g>标签
属性值举例说明
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
也可简单写成:
%d:表示整数
%f :表示浮点数
%s :表示字符串
string.xml中(要添加xliff的xmlns):
-
<?xml version="1.0" encoding="utf-8"?>
-
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
-
<string name="test_xliff">小红今年
<xliff:g id="xxx">%d
</xliff:g>岁了,上
<xliff:g id="yyy">%s
</xliff:g>年级!
</string>
Java代码中:
String test = getResources().getString(R.string.test_xliff, 7, "小学二");
复数字符串(Quantity Strings)
在英语里,数量1是个特殊情况,我们写成“1 book”,但其他任何数量都要写成“n books”。
Android提供了诸如getQuantityString()的方法来选择合适的资源,支持的全集包括zero、one、 two、few、many和other。
string.xml中:
-
<plurals name="numberOfSongsAvailable">
-
<item quantity="one">One song found.
</item>
-
<item quantity="other">%d songs found.
</item>
-
</plurals>
Java代码中:
-
int count = getNumberOfsongsAvailable();
-
String songsFound = getResources().getQuantityString(R.plurals.numberOfSongsAvailable, count, count);
对于字符串“%d songs found”,第一个count参数选择合适的复数字符串,第二个count参数插入占位符%d中。如果复数字符串资源不包含格式化信息,就不需要给getQuantityString()传递第三个参数。转自zifeiyu12345的博客:https://blog.csdn.net/zifeiyu12345/article/details/49304223