我有一个不同的英语,法语和西班牙语字符串。即使将Locale设置为French,显示的字符串仍为英文。 我在名为values-fr-rFR的values目录下创建了一个字符串资源文件。 我的代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Configuration c = getResources().getConfiguration();
c.setLocale(new Locale("fr", "FR"));
getApplicationContext().createConfigurationContext(c);
TextView textId = (TextView)findViewById(R.id.helloId);
textId.setText(R.string.hello);
}
有人可以说我的代码有什么问题吗?在这里,我可以将Locale更改为“fr”。但是textView textId中显示的字符串仍然是英文。
答案 0 :(得分:0)
您需要确保拥有一个xml文件,其中包含您要使用的文本的本地化版本。例如,如果您引用Android docs:
英文字符串(默认语言环境),/ values / strings.xml:
<resources>
<string name="hello_world">Hello World!</string>
</resources>
西班牙语字符串(区域设置),/ values-es / strings.xml:
<resources>
<string name="hello_world">¡Hola Mundo!</string>
</resources>
然后你可以这样做:
// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);
// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);
所有示例和进一步阅读都可以在Android开发者网站上找到:https://developer.android.com/training/basics/supporting-devices/languages.html