3

Androidアプリケーションで言語を制限することは可能ですか?つまり、ユーザーが言語を変更したときに、英語とフランス語の言語のみを有効にする必要があります。問題は、ユーザーがオランダ語を選択した場合、オプションメニューの名前は英語ですがMORE(システム生成メニュー表示するオプションが他にもある場合は、オプション)はオランダ語です。英語でもっと表示したいです。 NITZを
助けてください

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

メニューキーを押したときにオプションに表示される「More」という単語はシステムで生成された文字列であるため、アプリがサポートしているものに関係なく、システム言語が何であれ一致します。

「More」という単語をフランス語または英語で表示する場合は、システムに表示されないようにメニュー項目の数を減らしてから、手動で「More」オプションを追加する必要があります。手動で追加するオプションが多いと、残りのメニューオプションが自動的に表示されないため、それらを独自のコンテキストメニューに移動する必要があります。

于 2012-06-28T20:23:40.767 に答える
0

私はあなたが2つの方法であなたの問題を解決できると思います。

まず、「More」リソース文字列を次のようなリソースファイルに変更します。

<?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 に答える