2011-12-22 4 views
0

私はいくつかの言語で様々な論理ブロックを翻訳するiPhoneにいくつかのフレーズを持っています。 例えば、英語では次のようになります。iPhoneで特定のフレーズをローカライズする方法は?

フランス語では、要素の数、種類を考えると、私は非常にこの問題を解決する方法を得ることはありません

Vous avez 5 chameaux dans le magasin de Paris 

なります

You have 5 camels in the Paris store 

要素(この例ではラクダ)と場所は可変です。この例では目的に合わせてラクダを選んだのですが、最後に「S」を追加して多重性を英語や他の言葉のようにマークすることはできません。私たちが話していたボトルの場合:

Vous avez 5 bouteilles dans le magasin de Paris 

誰も考えがありますか?私は実際には、X、Sを追加するかどうかを決定する文法的なシステムを実装すべきだとは思わない。使用言語で多重度の兆候であるものはどれも...

NSLocalizedStringが現在内部で使用されている@"%@ %d %@ %@ %@"という形式のNSStringWithFormatと、適切な言語データベースからフライで最初に構築された%@と、ローカライゼーション文字列ファイルから最初に取得されたものと同様のものがあります。%@また、@ rckoenesの答えを詳しく説明するために、彼が提案したことは既に実装されていますが、問題はないと私は説明しました:D

答えて

0

Localizable.stringsファイルの文字列形式の翻訳を作成します。 、実際に

"OnCamel" = "Vous avez %d chameau dans le magasin de %@" 
"MultipleCamels" = "Vous avez %d chameaux dans le magasin de %@" 
+0

いいえ、これは動作しません。これは多重度の標準問題を解決しますが、私の例で説明したように、1つのchameau、2つのchameauxのような言語固有の形は、しばらくの間は解決されません。そして、1 chien、2 chiens、間違って1 chameau、2 chameausと言うアプリを持っているのはかなり醜いです:D – Kheldar

+0

あなたはあなたのウェブサイトを更新したいと思っています、 "正式に"は "旧式"にしてください:D Goeiemiddag! – Kheldar

+0

それはうまくいくと思います。 Aangepast;) – rckoenes

0

"OnCamel" = "You have %d camel in the %@ store" 
"MultipleCamels" = "You have %d camels in the %@ store" 

はどこLocalizable.stringsフランスのようになります。Localizable.strings日本語については、次のようになり

NSString *camelStringFormat = nil; 

if (numberOFCamels > 1) { 
    camelStringFormat = NSLocalizedString(@"OnCamel", @"Translation for one camel"); 
} else { 
    camelStringFormat = NSLocalizedString(@"MultipleCamels", @"Translation for multiple camels"); 
} 

NSString *camelString = [NSString stringWithFormat:camelStringFormat, numberOFCamels, city]; 

ザ・コード内のような何かを慎重に検討した結果、whiによってこの問題をアイコン化する方が簡単ですつまり、の代わりにの図形要素を使用します。このようにして、複数の文法規則の問題を避けることができます。しかし文法的なローカリゼーションを扱うiPhone APIを誰もが知っているなら、私はまだ知的に興味があります。とりわけ、iPhone 4Sの広告では、の視覚障害者がiPhoneを使用していることがわかりました。

また、画面が煩雑になり、経験を合理化しました。

関連する問題