2016-12-20 20 views
1

androidでは、strings.xmlファイル内の文字列を簡単に翻訳できます。私はjavaの文字列を翻訳できる別の方法はありますか?たとえば、サーバーから文字列を取得してから変換する必要があります。これはstrings.xmlファイルでは実行できません。strings.xmlリソースファイルを使用せずに文字列を変換するにはどうすればよいですか?

これに関する公式な文書はありますか?

+0

あなたは、あなたのアプリケーションの中にマップするキーを具体的な文字列リソースに転送することができます。 – GoneUp

答えて

2

あなたが探しているのはオンデマンド翻訳です。無料の解決策はありませんafaik あなたにとって最良の方法は、おそらくサーバ側で翻訳を行い、正しいstringをデバイスに取り込むことです。

あなたは

Locale.getDefault().getDisplayLanguage(); 

とアクティブlenguageあなたのAndroidアプリケーションを呼び出すことができますし、サーバーへのパラメータとして、この値を渡すことができます。

ここでは、switchifなどの方法を使用して、文字列の変換された値を返すことができます。

希望この役立ちます

編集

のは、あなたが今、あなたはあなたに入力パラメータを追加することができます

http://myurl.com/getMyStrings

に似たものを使用して、サーバからの文字列を呼び出している想像してみましょう電話番号

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これは一例であり、私はあなたがサーバーを呼び出しているのか分からないが、この目的のためにどのような場合にあなたは私が実際に何ロケール結果と

+0

あなたはオンデマンド翻訳を支払わずに私のサーバ上の文字列を翻訳することができますと言っていますか? – grant

+0

@ espa_networkはい、クライアント側の解決策についてはわかりません。たぶん誰かが翻訳や類似のオンラインapiのようなツールを提供するかもしれません。私は私の質問にいくつかの行を追加します –

+0

オンデマンド翻訳プロバイダのドキュメントを参照できますか? – grant

1

をパラメータを追加する必要があります私のサーバは、実行時に外部辞書ファイルからの初期化で構築された別の言語(翻訳)の値を持つ言語のキーをマップするハッシュマップを作成しています。

クライアントが「サーバー文字列」を要求すると、私は彼にロケール言語を渡させ、ハッシュマップで対応する値を探してクライアントに返します。

もう1つの方法は、Google translateのような外部の翻訳APIに文字列を渡すことですが、これによって待ち時間とコストが増加します。要求される前に翻訳する必要がある文字列がわかっている場合は、その文字列は必要ありません。

+0

あなたは "あなたが要求される前に翻訳する必要がある文字列がわかっているなら、それは必要ありません。ストリングはアプリのユーザーの入力になるため、わかりません。 – grant

+0

あなたがあらかじめそれらを知らないのであれば、翻訳APIが必要です。あるいは翻訳エンジンを構築してください。他の魔法はありません。 – Matt

+0

それはまさに私が知る必要があったものです。価格についての公式文書に私を紹介することはできますか? – grant

関連する問題