我需要将一段动态文本放入本地化字符串中,但必须根据语言进入不同的位置。
例如,我需要两个字符串,如:
英语:当前时间是HH:mm:ss 另一种语言:HH:mm:ss是当前时间
我可以想到一种方法,即使用preDate和postDate本地化字符串,其中postDate在英语中为空,而preDate在其他中为空。这将起作用,但似乎不是很优雅或可扩展。
有更好的方法吗?
答案 0 :(得分:33)
我在我的字符串资源中使用它。
<string name="duration"><xliff:g id="minutes" example="42" >%s</xliff:g> mins <xliff:g id="seconds" example="28" >%s</xliff:g> secs</string>
当你打电话时打印xx分钟yy秒:
getString(R.string.duration, minutes, seconds);
在另一种语言中,您可以通过更改分钟和秒的位置来翻译它。 它应该打印,例如:mins xx secs yy
架构应包含在标头处:
<resources xmlns:xliff="rn:oasis:names:tc:xliff:document:1.2">
答案 1 :(得分:28)
正确的android xml字符串格式为<string name="tst">string %1$s integer %2$d</string>
答案 2 :(得分:0)
我认为你做的正确。
其他不太好的解决方法是将整个格式字符串放在像
这样的资源中英语:当前时间是%d:%d:%d另一种语言:%d:%d:%d是当前时间
我一般不喜欢这种方法,因为现在您的格式代码分为两个地方。