<xliff:g>标签

时间:2022-09-10 13:44:34

摘要:

这是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 sb
Formatter 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_indexflags
    width
    的定义同上。

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

  • 与參数不正确应的格式说明符的语法例如以下:
       %[flags][width]conversion
     

    可选 flagswidth 的定义同上。

    所需的 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:g&gt;标签的更多相关文章

  1. Android中string&period;xml中的的标签xliff&colon;g(转载)

    转自:http://blog.csdn.net/xuewater/article/details/25687987 在资源文件中写字符串时,如果这个字符串时动态的,又不确定的值在里面,我们就可以用xl ...

  2. &lt&semi;xliff&colon;g&gt&semi;标签

    摘要: 这是Android4.3Mms源码中的strings.xml的一段代码: <!--Settings item desciption for integer auto-delete sms ...

  3. js中构造字符串若放入Grails中gsp的&lt&semi;g&colon;link&gt&semi;标签出错

    Grails的ajax使用json格式返回,在js中构造字符串时若放入<g:link>标签,字符串构造就会错误 如下就会发生错误,导致回调函数无法执行 function show(obj) ...

  4. android xml中的xliff属性

    <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff=&quot ...

  5. HTML的基本结构与标签的初步了解

    一.初步了解HTML HTML是一种超文本标签语言,浏览器则是用来"解释和执行"HTML源码的工具. HTML的基本结构 <!DOCTYPE html> <htm ...

  6. 潭州课堂25班:Ph201805201 django 项目 第三十四课 后台文章标签更新功能 ,创建功能实现&lpar;课堂笔记)

    g更改标签:,前台要向后台传来 id, name, 对标签进行校验:标签不能为空,标签是否已经存在, 流程: def put(self, request, tag_id): ''' 更改标签 :par ...

  7. &lt&semi;Android 基础(十八)&gt&semi; XLIFF

    介绍 XLIFF ,XML Localization Interchange File Format,XML本地化数据交换格式. 实际使用 1.布局文件 activity_main.xml <? ...

  8. TextView里的文 html

    一.[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android. ...

  9. 你所不知道的string&period;xml

    String 能被应用程序或者其他资源文件(比如layout XML)引用的单个字符串. 注意:字符串是简单类型资源,是用名称(name)(而非XML文件名)来直接引用的.因此,在一个XML文件里,可 ...

随机推荐

  1. 使用ansible编译安装运维工具tmux

    实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 软件介绍:tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD, ...

  2. WebService究竟是什么?

    一.序言 大家或多或少都听过WebService(Web服务),有一段时间非常多计算机期刊.书籍和站点都大肆的提及和宣传WebService技术,当中不乏非常多吹嘘和做广告的成分.可是不得不承认的是W ...

  3. crawler spec

    使用说明 0.写在前面 1.本程序完成的抓取网页并保存其文件的工作. 2.目前的版本还需将工程文件导入eclipse中运行. 3.加载主类MyCrawler生成可执行文件. 4.程序主界面: 1 准备 ...

  4. Mac OS X 在Finder新建文本文件

    Automator 新建一个 Application添加一个动作 "Run AppleScript"代码如下 on run {input, parameters} tell app ...

  5. mongodb type it for more

    当使用MongoChef Core 链接mongodb的时候 ,需要查看更多的数据时候,系统提示  type it for more 可以设置系统参数 DBQuery.shellBatchSize = ...

  6. SpringMVC常见注解

    @RequestParam( value="name", require=false ) String wrap  参数绑定:require=false 表示前端对 name 这个 ...

  7. BZOJ&lowbar;4765&lowbar;普通计算姬&lowbar;分块&plus;dfs序&plus;树状数组

    BZOJ_4765_普通计算姬_分块 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些 .普通计算机能 ...

  8. IDEA中创建maven项目后解决main文件夹下目录不全的问题

    IDEA创建maven-archetype-webapp项目的时候,创建完成后发现在main文件夹下没有java,resource等源文件夹. 解决方法: 1.选择File->Project S ...

  9. MySQL 存储过程返回多个值

    MySQL  存储过程返回多个值   在本教程中,您将学习如何编写/开发返回多个值的存储过程. MySQL存储函数只返回一个值.要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程 ...

  10. Linux学习1-Xshell连接阿里云ECS服务器

    前言 前段时间双十一活动,头脑发热买了个阿里云的服务器,买了后也不知道怎么用一直放着在.最近想起来,于是看了下阿里云ECS的相关资料. 由于平常一直用xshell比较多,不太习惯阿里云的ESC终端连接 ...