xliff XML本地化数据交换格式

下面主要介绍android文本资源文件/res/values/strings.xml中xliff标签。
预备知识:
1、什么是xliff?
     参照http://baike.baidu.com/view/4160854.htm。

2、java格式化字符串有哪些?
     参照http://wenku.baidu.com/view/56f3ed0e52ea551810a687eb.html,写的很详细。

3、android中获取资源文件getString()方法
     该方法有两种形式,getString(int  resId)和getString(int  resId,object arg1,object arg2,...)。
     下面主要介绍的是第二种形式,即getString(int  resId,object arg1,object arg2,...)。

开始今天的主题:
先看一个strings.xml的定义:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="name">我叫<xliff:g id="id1" example="tom">%1$s</xliff:g>身高<xliff:g id="id2" example="170">%2$d</xliff:g>CM</string>
</resources>
该文件与普通文件的区别:
1、具有命名空间xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2",这个必须要有。
2、在<string>标签中含有<xliff:g>标签。
<xliff:g>标签介绍:
属性id可以随便命名
属性example表示举例说明,可以省略
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
更多参照预备知识2中的java格式化字符串

举例说明:
针对上面的strings.xml文件,在代码里这样表示
TextView txt = new TextView(this);
txt.setText(getString(R.string.name),"android",180);
输出结果为:我叫android身高180CM

OK,以上希望对看帖的人有帮助。如有不对或需要补充的地方请指出。

 

你可能感兴趣的:(xliff XML本地化数据交换格式)