2017-03-17 18 views
3

rawフォルダ内に英語で1つ、raw-frフォルダ内でフランス語で1つのJSONファイルが2つあります。しかし、デバイスでどの言語を選択しても、アプリケーションは常にファイルをrawの下に読み込みます。次のように私は、JSONファイルをロードしています:AndroidローカライズされたJSONファイル

InputStream inputStream = context.getResources().openRawResource(R.raw.countries); 

フォルダ構造は次のとおりです。

    • 解像度
      • 描画可能なレイアウト
      • 値 - fr
      • ...
      • 生-FR

    私が何か間違ったことをやっていますか?これを達成するより良い方法はありますか?

    +0

    @JaydeepPatel:彼はすでに 'raw-fr'フォルダに置かれているファイルの中で自分自身でフランス語でテキストを翻訳しています。 – Yashasvi

    +0

    はい、 'raw'の下のファイルは英語であり、' raw-fr 'の下のファイルはフランス語です。アプリは常に英語で読み込みます。 –

    +0

    確認のために、ここにあなたのディレクトリ構造を投稿できますか – Yashasvi

    答えて

    0

    あなたは正しい言語を選択していないと思います。選択された言語に対応するリソースディレクトリが見つからない場合にのみ、デフォルト言語を選択します。 デフォルト値が存在しない場合は、アプリケーションがクラッシュします(前述のようにhere)。

    valuesフォルダを削除してみてください。

    OR

    は、それが唯一の英語のために使われているように、values-envaluesの名前を変更してください。

    P.S.私はちょうどvaluesvalues-frで試しました。デバイス上でフランス語を選択すると、values-frの文字列が表示されます。

    +0

    正しい' values-fr'ファイルを読み込むので正しい言語を選択していると思います。 JSONファイルを 'raw-fr'にロードしないでください... –

    +0

    ああ、私は' raw-fr 'とチェックしてあなたに戻ってきます – Yashasvi

    関連する問題