2012-06-22 46 views
3

是否可以在Android應用程序中限制語言,即當用戶更改語言時,我只希望英語和法語需要生效。問題是當用戶選擇荷蘭語時,選項菜單名稱有英文但更多(系統生成的菜單選項,如果有更多的選項可以顯示)在荷蘭語。我想要更多英文。
請幫助
NITZAndroid:在應用程序中限制語言

+0

那麼你想要做的是修改用戶的語言設置,使系統級菜單工作不同?爲什麼? –

+0

我的應用程序將只支持兩種語言!!!!我想更多地使用英語或法語 – NitZRobotKoder

+2

所以你說荷語的人會一直了解英語嗎?爲什麼不聯繫一些可以翻譯應用程序中的字符串使其成爲多語言的人? – TimVK

回答

1

當你按下菜單鍵,顯示了在選項單詞「更多」是一個系統生成的字符串,因此無論您的應用程序支持什麼,它都會匹配系統語言。

如果希望單詞「More」以法語或英語顯示,則必須減少菜單項的數量,以便系統不顯示它,然後手動添加「更多「選項。手動添加的選項越多,不會自動顯示剩餘的菜單選項,因此您必須將它們移動到其自己的上下文菜單中。

8

你可以在你的應用程序設置語言環境:

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

其中selectedLanguage是握着你的語言縮寫的變量,上下文保存到上下文的引用。

上所以這些早期的答案討論可能的解決方案的更多:

Change language settings (locale) for the device

Changing Locale within the app itself

Change language programmatically in Android

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> 

或者,你可以簡單地複製該字符串值轉換成數值-FR和值恩目錄。

+0

我在哪裏放置選項1? – NitZRobotKoder

+0

@NitZRobotKoder,我以爲你正在實現你自己的上下文菜單。本質上,我認爲你不能這樣做,但我不能100%確定。 – yugidroid