2017-07-03 6 views
-4

文字列ではないものをどのようにローカライズしますか?例えば、価値のあるコイン。C#文字列以外のローカライゼーション

Dollar: 1.00 
Quarter :.25 
Dime: .10 
Nickel: .05 
Penny: .01 

しかし、そこにカナダ7:米国の

、5枚の基本的なコインがある

Toonie: 2.00 
Loonie: 1.00 
Half Dollar: .50 
Dollar: 1.00 
Quarter :.25 
Dime: .10 
Nickel: .05 
Penny: .01 

はこのような何かをそれぞれL10nするための最良の方法は何ですか?

+0

リソースファイルには、文字列以外のオブジェクトが含まれている場合があります。 – Joey

+1

彼らはカナダで「en-CA」を話します。そして "fr-CA"、oui。 –

答えて

1

1の場合、l10nとi18nは常に文字列以上のものをカバーする必要があります。アイコンと画像もロケールに依存する可能性があります。したがって、任意の非文字列データをリソースに入れることができます。

en-US 1,Dollar;.25,Quarter;.1,Dime;.05,Nickel;.01,Penny 
en-CA 2,Toonie;1,Loonie;1,Dollar;.5,Half Dollar;... 

し、その文字列を解析し、硬貨の種類のリストを構築:私は単なる文字列にリストを入れて、それをローカライズしたい、あなたの特定のケースで

。あなたのコードはすでに明らかに既に任意のそのようなリストを扱うことができます。

+0

オブジェクトをjsonとして直列化するようなものは受け入れられますか?それとも「重すぎる」と考えられるでしょうか? – KevinA

+1

それはまあまあです。正確にリソースストアが何であるかは重要ではありませんが、それをどのように処理するかは重要です。コインの値に遭遇するたびにリソース文字列を逆シリアル化/解析することは非効率的です。選択の方法は、それを逆直列化/解析してからキャッシュするだけです。とにかくこのような「複雑な」リソースを扱うサービスメソッド(つまり、ここではコイン値をとり、ローカライズされたコインテキストを返すサービスメソッド)を必要とするため、これは透過的に行うことができます。 – ckuri

関連する問題