...如果是这样,如何?使用区域设置强制Android使用不支持的语言的特定strings.xml文件
我们制造专用于Android设备的工业环境。它基本上是一款平板电脑,但只有一个应用程序在运行。用户不需要访问设备的任何其他功能,甚至系统设置(如WiFi和时间设置)也可以通过我们的应用程序执行,而不是通过Android设置小部件执行。 所以基本上他们看到的每个按钮和消息都使用我们的strings.xml
文件。
目前我们所有的客户都满意地使用默认的美国英语设置,但我们很快会有一些客户想要当地语言并向我们提供翻译文件。目前,其中一个是罗马尼亚语,它不是在该设备上具有任何本机支持的语言(Samsung Galaxy tab 4);另一个是捷克。
因此,我们希望将strings.xml
文件添加到适当的res文件夹中,非英文语言和我们的应用程序中的下拉列表中选择我们正在使用的语言。以编程方式,我们认为我们可以用Locale
设置哪个strings.xml
文件,它使用,因此,例如,如果罗马尼亚已经从下拉列表中选择的,我们会用Locale
到平板电脑上设置成罗马尼亚所以我们所有的应用程序的用户界面将采用罗马尼亚strings.xml
文件。
我们的设置(包括新下拉列表)无法由客户访问 - 它们由现场服务工程师在客户现场设置。
问题:
- 将这项工作?即,即使设备没有对该语言的本机支持,我们是否可以通过
Locale
来控制它使用哪个strings.xml
文件? - 由于罗马尼亚是不是与此设备,我们假定系统消息仍然会拿出在英语中本身支持的语言。这是真的? (这不是问题 - 系统消息对于我们的应用程序来说并不常见,我们的产品用户会接受支持,如果发生这种情况,我只想确保如果我们将
Locale
设置为罗马尼亚语或捷克语或某些没有本地支持的其他语言,如果它试图发布系统消息,它不会崩溃平板电脑)。
您需要为您的设备创建根目录并添加您的语言标识符。可能是你需要自定义ROM。访问https://source.android.com/ – Qamar
我在我的Activity.onCreate()中使用了一些这样的事情来定义使用witch strings.xml。 ?没有U带 “RO”, “” RO” 开关(VAR){ 壳体1试试: LOC =新区域设置( “日”, “CH”); 断裂; 情况2: LOC = new Locale(“de”,“DE”); break; } Locale.setDefault(loc); – canisLupusLupus