首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Android xliff:g

如何使用Android xliff:g
EN

Stack Overflow用户
提问于 2016-01-26 07:28:56
回答 2查看 18.1K关注 0票数 24

有人能解释一下字符串/本地化的xliff:g吗?

我知道xliff:g不应该翻译<>中的任何东西,但我很困惑如何在代码中准确地使用它。

在我的例子中,我有一个例子是我的西班牙语翻译实践:

代码语言:javascript
复制
<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d/xliff:g</string>

我现在正在尝试使用xliff:g获得本地化的字符串。这里的id是什么?它是做什么的?它叫什么?

另外,什么是%d,它能做什么?example的意义是什么?另外,我该如何将其调用到代码中呢?

为什么不能只执行下面的代码来插入下面的xml:

代码语言:javascript
复制
<string name="quant">Quantity: </string>

转换为java,如下所示:

代码语言:javascript
复制
getString(R.string.quant) + quantity

因此,它将数量变量连接到getString

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-26 08:21:09

在你的例子中有一个小的拼写错误,应该有一个结束标记:

代码语言:javascript
复制
<string name="order_quantity">Cantidad: <xliff:g id="quantity" example="2">%d</xliff:g></string>

id属性仅用于标识替换参数表示的内容(在本例中,它表示数量)。正如您所说,这是一个注释,实际上并不是以编程方式使用的。

也就是说,在Android Studio中,如果您为字符串启用了代码折叠,则在显示折叠的字符串时,它将替换ID。你会看到类似这样的东西:

代码语言:javascript
复制
// This...
mTextView.setText(getString(R.string.order_quantity, 2));

// Will show as this when folded:
mTextView.setText("Cantidad: {quantity}");

至于你的第二个问题,为什么不直接使用字符串连接呢?在其他语言中,替换可能不会出现在字符串的末尾。你可以有类似这样的东西:

代码语言:javascript
复制
values/strings.xml
    <string name="order_quantity">%d items</string>

values-es/strings.xml
    <string name="order_quantity">Cantidad: %d</string>

因此,您可以看到,在这种情况下,简单地将字符串附加在一起不会给出有效的结果。

票数 36
EN

Stack Overflow用户

发布于 2019-04-07 10:58:32

%d用于将内存的一部分表示为整数。它最常用于将一些数字打印到标准输出,如下所示:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int n = 42;
    printf("The answer to life, universe and everything is %d", n);
    return 0;
}

与Java不同,在Java中,您可以简单地连接数字和字符串等,而C使用这个%来表示正在编写的内容。%d表示,例如,在printf()中,逗号后面将有一个参数(在我们的例子中是n),它应该表示为int。

另请参阅Official Android Developers Documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35004433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档