質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

3回答

1698閲覧

外国語の対応行いたい

marimori

総合スコア21

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

2クリップ

投稿2016/07/19 05:05

androidアプリを作成していまして、その中でDB(sqlite)を使用してスピナーの切り替えで、言語の切り替えを行いたいのですが、実装方法わかりません。
android 言語切り替え sqliteみたいな調べ方をしてるのですがイマイチ参考サイトがでてきません。
実装するにあたってのキーワードだったり、サイトだったり知っている方いらっしゃいましたら教えて頂きたいです。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_Roboto

2016/07/19 05:10

こんにちは。 スピナーで、言語を選びたいのですか? 日本語、英語・・・ それとも出てくる選択肢全体を切り替えたいのですか? 例えば テスト -> test 等ですか?
marimori

2016/07/19 05:18

BJCRobotさん スピナーで英語と選択した場合に、他画面などのテキスト等を英語に切り替えたいってことです。 説明不足で申訳ありません。
guest

回答3

0

検索するのなら「android アプリ 多言語対応」の様なキーワードで検索してみてください。
例えばこの様なサイトが見つかると思います。

投稿2016/07/19 05:09

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marimori

2016/07/19 05:21

PineMatsuさん ご回答ありがとうございます。 そのようなキーワードで調べていきたいと思います。
guest

0

やってみたことは無いですが、下記のようにするとできるかもしれないです。

  • 対応する言語で表示する文字列をres/stringで作成する。
  • Spinnerで選択された言語に対応するLocaleを決める。
  • 次の画面の初期化時にContext#getResources().getConfiguration().setLocale()にLocaleを渡す。

投稿2016/07/19 05:49

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yona

2016/07/19 07:23

リンク先とは考え方が異なります。 確かに端末にはLocaleと言う仕組みがあります、これは端末の設定です。 通常のアプリケーションだとこの設定をOSが解釈し適切なresを使用してくれます。 しかし、貴方の質問からは「最初の画面は日本語」、「その後の画面は外国語」が表示される仕様と読み取れます。 そのため動的にアプリケーションのLocale設定を変更する必要があると思われたので回答の実装方法を提案しました。 でも、よく考えると「次の画面で表示される文字列が固定かどうか」で回答が変わりますね。
marimori

2016/07/19 07:29

yonaさん 回答ありがとうございます。 確かに端末の設定と書いてありました。 次の画面で表示される文字列は固定じゃありません。
yona

2016/07/19 07:45

固定じゃ無い場合はやはりユーザーが選択した言語に対応する「Locale」または「自作のコード」を次の画面に渡して表示を切り替えるしかないですね。
marimori

2016/07/19 07:48

yonaさん 回答ありがとうございます。 なるほど。できればアプリ内での切り替えを行いたいので、やはり自作するしかないんですかね。 調べてはいるんですが、アプリ内での切り替えしている参考サイトが見つからなかったので。
guest

0

ベストアンサー

補足ありがとうございます。 通常はそのような実装はせず、
PineMatsuさんの回答のようにAndroid自体に多言語対応の仕組みが用意されています。

ですが、質問のとおりであるとすれば、スピナーから取得した値を
次の画面にいく際にIntentで渡して、表示を変えればよいと思います。
(翻訳とかでしょうか?)

ちなみにスピナーの選択肢は、SQLite使わなくてもXMLでも指定できるので、
あまり変化がない選択肢ということであれば、その方が良いかもしれませんね。

参考ページ
Android Spinnerの選択肢をXMLで指定する

投稿2016/07/19 05:28

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_Roboto

2016/07/19 05:32

あー、だから、「多言語対応」ではなく「外国語」の対応なのですね ^_^;
marimori

2016/07/19 05:48

BJCRobotさん 多言語じゃなく外国語ですね。すいません。 わざわざSQLite使わなくてもXMLで指定できるんですね! この実装方法でやってみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問