3

是否可以在 android 应用程序中限制语言,即当用户更改语言时,我只希望英语和法语语言需要生效。问题是当用户选择荷兰语时,选项菜单名称是英文但更多(系统生成的菜单如果有更多选项要显示,则选项)是荷兰语。我希望更多是英语。
请帮助
尼茨

4

3 回答 3

8

您可以在应用程序中以编程方式设置语言环境:

  Configuration configuration = context.getResources().getConfiguration();
  configuration.locale = new Locale(selectedLanguage);
  context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());

其中 selectedLanguage 是一个包含您的语言缩写的变量,而 context 包含对 Context 的引用。

这些关于 SO 的早期答案进一步讨论了可能的解决方案:

更改设备的语言设置(区域设置)

在应用程序本身内更改区域设置

在 Android 中以编程方式更改语言

于 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 回答