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。由對象Calendar c 組成。
- 常規類型、字符類型和數值類型的格式說明符的語法例如以下: %[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 和 POSIX strftime(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;标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让Bootstrap 3兼容IE8浏览器
- 下一篇: 【Oracle 集群】Linux下Ora