androidでは、strings.xmlファイル内の文字列を簡単に翻訳できます。私はjavaの文字列を翻訳できる別の方法はありますか?たとえば、サーバーから文字列を取得してから変換する必要があります。これはstrings.xmlファイルでは実行できません。strings.xmlリソースファイルを使用せずに文字列を変換するにはどうすればよいですか?
これに関する公式な文書はありますか?
androidでは、strings.xmlファイル内の文字列を簡単に翻訳できます。私はjavaの文字列を翻訳できる別の方法はありますか?たとえば、サーバーから文字列を取得してから変換する必要があります。これはstrings.xmlファイルでは実行できません。strings.xmlリソースファイルを使用せずに文字列を変換するにはどうすればよいですか?
これに関する公式な文書はありますか?
あなたが探しているのはオンデマンド翻訳です。無料の解決策はありませんafaik あなたにとって最良の方法は、おそらくサーバ側で翻訳を行い、正しいstring
をデバイスに取り込むことです。
あなたは
Locale.getDefault().getDisplayLanguage();
とアクティブlenguageあなたのAndroidアプリケーションを呼び出すことができますし、サーバーへのパラメータとして、この値を渡すことができます。
ここでは、switch
、if
などの方法を使用して、文字列の変換された値を返すことができます。
希望この役立ちます
編集
のは、あなたが今、あなたはあなたに入力パラメータを追加することができます
に似たものを使用して、サーバからの文字列を呼び出している想像してみましょう電話番号http://myurl.com/getMyString?lng=myLenguage
myLenguageはロケール結果である必要があります。
今、サーバー側で、いくつかのコードを追加できます。たとえば、
switch(myLngParam){
case "English":
return "My english string";
case "Italiano":
return "La mia stringa in italiano";
case "Español":
return "something else";
default:
return "default";
}
この方法では、ロケールに応じて異なる文字列を使用できます。
注:Obiouvslyこれは一例であり、私はあなたがサーバーを呼び出しているのか分からないが、この目的のためにどのような場合にあなたは私が実際に何ロケール結果と
をパラメータを追加する必要があります私のサーバは、実行時に外部辞書ファイルからの初期化で構築された別の言語(翻訳)の値を持つ言語のキーをマップするハッシュマップを作成しています。
クライアントが「サーバー文字列」を要求すると、私は彼にロケール言語を渡させ、ハッシュマップで対応する値を探してクライアントに返します。
もう1つの方法は、Google translateのような外部の翻訳APIに文字列を渡すことですが、これによって待ち時間とコストが増加します。要求される前に翻訳する必要がある文字列がわかっている場合は、その文字列は必要ありません。
あなたは、あなたのアプリケーションの中にマップするキーを具体的な文字列リソースに転送することができます。 – GoneUp