dip*_*ipu 9 java android internationalization
我想知道在添加运行时数据的语句中处理国际化的正确方法是什么.例如1)您的输入"xyz"非常好!2)当你从"Barney and Freinds"转到"海绵宝宝"节目时,你已经"4岁了".
双引号值是在运行时获得或计算的用户数据.我的平台主要是Java/Android.西方语言的正确解决方案优于较弱的通用语言.
Bal*_*usC 12
要检索本地化文本(消息),请使用java.util.ResourceBundle
API.要格式化消息,请使用java.text.MessageFormat
API.
基本上,首先创建一个属性文件,如下所示:
key1 = Your input {0} is excellent! key2 = You were {0} old when you switched from {1} to {2} shows.
{n}
你可以传入的东西是参数的占位符MessageFormat#format()
.
然后像这样加载它:
ResourceBundle bundle = ResourceBundle.getBundle("filename", Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
然后按键获取消息,执行:
String key1 = bundle.getString("key1");
String key2 = bundle.getString("key2");
Run Code Online (Sandbox Code Playgroud)
然后格式化它,执行:
String formattedKey1 = MessageFormat.format(key1, "xyz");
String formattedKey2 = MessageFormat.format(key2, "4 years", "Barney and Friends", "Spongebob");
Run Code Online (Sandbox Code Playgroud)
关于Android,这个过程更容易.您只需将所有这些String
消息放入res/values/strings.xml
文件中即可.然后,您可以使用不同语言创建该文件的版本,并将该文件放在values
包含语言代码的文件夹中.例如,如果您想添加西班牙语支持,您只需创建一个名为的文件夹res/values-es/
,并将您的西班牙语版本放入strings.xml
其中.Android将自动决定使用哪个文件,具体取决于手机的配置.
归档时间: |
|
查看次数: |
1406 次 |
最近记录: |