0

iPhoneには、いくつかの言語のさまざまな論理ブロックに翻訳されるフレーズがいくつかあります。たとえば、英語では次のようになります。

You have 5 camels in the Paris store

フランス語ではどこになりますか

Vous avez 5 chameaux dans le magasin de Paris

要素の数、要素のタイプ(この例ではラクダ)、場所が可変であることを考えると、これを解決する方法がよくわかりません。この例では、英語やその他の単語のように多重度をマークするために末尾に「S」を追加するだけでは不十分なため、意図的にラクダを選択しました。それがボトルだった場合、私たちは話していました:

Vous avez 5 bouteilles dans le magasin de Paris

誰かアイデアがありますか?X、S、またはその他の言語の多重度のマークを追加するかどうかを決定するために、文法システムを実装する必要があるとは思いません...

NSLocalizedStringは現在、フォームのNSStringWithFormat内で使用されて@"%@ %d %@ %@ %@"おり、2番目と最後%@は適切な言語データベースからオンザフライで構築され、最初と3番目%@はローカリゼーション文字列ファイルから取得されていることを明確にする必要があります。また、@ rckoenesの回答を詳しく説明するために、彼が提案したことはすでに実装されていますが、説明したように、それは問題ではありません:Dに問題があります

4

2 に答える 2

0

私がすることは、Localizable.stringsファイル内の文字列形式で翻訳を作成することです。

inコードは次のようなことをします:

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];

englisLocalizable.stringsの場所は次のようになります。

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

フランスの場所Localizable.stringsは次のようになります。

"OnCamel" = "Vous avez %d chameau dans le magasin de %@"
"MultipleCamels" = "Vous avez %d chameaux dans le magasin de %@"
于 2011-12-22T13:54:05.670 に答える
0

実際には、慎重に検討した結果、この問題をアイコン化する方が簡単です。つまり、テキストの代わりにグラフィック要素を使用します。このようにして、言語における複数の文法規則の問題を回避します。文法的なローカリゼーションを扱う iPhone API を知っている人がいれば、私はまだ知的に興味があります。特に、iPhone 4S の広告は、視覚障害者が iPhone を使用していて、アイコンが彼らにあまり適していないことを示していました。

また、乱雑になっていた画面を変形させ、エクスペリエンスを合理化することもできます。

于 2011-12-22T15:12:53.403 に答える