我正在用英语和印尼语两种语言提出申请。为此,我在 res 文件夹中创建了两个字符串文件(values-en 和 values-in)
在我的一项活动中,我选择语言并更改语言环境。我正在使用以下代码执行此操作-
将语言 ID 传递给此方法-
public void setLocale(String lang) {
Locale myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
但是在将语言更改为印度尼西亚语之后发生了奇怪的事情。我的一些文本变成了印度尼西亚语,一些变成了英语。
例如-我有两个按钮(提交和上传收据)在活动中。
SUBMIT btn has- 英文是 SUBMIT,印度尼西亚文是 KIRIM
<string name="submit_btn_text">Submit</string> for english
<string name="submit_btn_text">Kirim</string> for indonesian
和 UPLOAD RECEIPT btn has- 在英语中它的文本是 Upload Receipt 在印度尼西亚它是 Upload Penerimaan
<string name="upload_receipt">Upload Receipt</string> for english
<string name="upload_receipt">Upload Penerimaan</string> for indonesian
但是在印度尼西亚提交 btn 文本到Kirim 但 Upload Receipt btn 仍然是“Upload Receipt”。它不会更改为 Upload Penerimaan。
这是如何发生的,因为其他文本会根据语言环境进行更改。此外,我在所有对话框弹出窗口中都面临同样的问题。所有对话框中的文本都保留为英文。
应该做什么?