是否可以在 android 应用程序中限制语言,即当用户更改语言时,我只希望英语和法语语言需要生效。问题是当用户选择荷兰语时,选项菜单名称是英文但更多(系统生成的菜单如果有更多选项要显示,则选项)是荷兰语。我希望更多是英语。
请帮助
尼茨
问问题
2385 次
3 回答
8
您可以在应用程序中以编程方式设置语言环境:
Configuration configuration = context.getResources().getConfiguration();
configuration.locale = new Locale(selectedLanguage);
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
其中 selectedLanguage 是一个包含您的语言缩写的变量,而 context 包含对 Context 的引用。
这些关于 SO 的早期答案进一步讨论了可能的解决方案:
于 2012-06-26T13:50:55.690 回答
1
当您按下菜单键时,选项中显示的“更多”一词是系统生成的字符串,因此无论您的应用程序支持什么系统语言,它都会匹配任何系统语言。
如果您希望“更多”一词以法语或英语显示,则必须减少您拥有的菜单项的数量,以便系统不会显示它,然后手动添加“更多”选项。您手动添加的更多选项不会自动显示其余菜单选项,因此您必须将它们移动到它们自己的上下文菜单中。
于 2012-06-28T20:23:40.767 回答
0
我认为您可以通过两种方式解决您的问题。
第一个,将您的“更多”资源字符串更改为如下资源文件:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"tools:ignore="MissingTranslation">
<string name="more_btn">More</string>
</resources>
或者,您可以简单地将字符串值复制到 values-fr 和 values-en 目录中。
于 2012-06-30T22:42:46.503 回答