文章轉(zhuǎn)載自:http://blog.csdn.net/xipiaoyouzi/article/details/7891153
今天看了一個(gè)google的demo,發(fā)現(xiàn)部分資源字符串在/res/values/string.xml中包含有類似xliff的節(jié)點(diǎn),剛才查了一下,Xliff是XML Localization Interchange File Format 的縮寫,中文名為XML本地化數(shù)據(jù)交換格式。
對(duì)于在Android的資源字符串中,可能會(huì)有類似下面的 <xliff:g id="FILE_NAME">%1$s</xliff:g> 寫法,這里,id我們可以隨便定義,后面的%1$s的1%表示這是第一個(gè)可替換量,s表示字符串
詳細(xì)的介紹如下:
屬性id可以隨便命名
屬性example表示舉例說明,可以省略
%n$ms:代表輸出的是字符串,n代表是第幾個(gè)參數(shù),設(shè)置m的值可以在輸出之前放置空格
%n$md:代表輸出的是整數(shù),n代表是第幾個(gè)參數(shù),設(shè)置m的值可以在輸出之前放置空格,也可以設(shè)為0m,在輸出之前放置m個(gè)0
%n$mf:代表輸出的是浮點(diǎn)數(shù),n代表是第幾個(gè)參數(shù),設(shè)置m的值可以控制小數(shù)位數(shù),如m=2.2時(shí),輸出格式為00.00
例如一個(gè)String中有多個(gè)需要替換的變量,可以在xml中定義如下變量:
<string name="info">your name is <xliff:g id="NAME">%1$s</xliff:g>, and your age is<xliff:g id="AGE">%2$s</xliff:g> </string>
程序中動(dòng)態(tài)加載:
TextView tv = (TextView) findViewById(R.id.textView);
String info = getResources().getString(R.string.info,"jnhoodlum","22"); tv.setText(info);
最后要注意一點(diǎn):在String里要增加XLIFF的 xmlns:
<resources xmlns:android="http://schemas.android.com/apk/res/android"xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">