2017-12-09 22 views
0

小さなXcodeプロジェクト(Xcode 9とSwift 4)をローカライズしようとしています。そのプロジェクトでは、私は複数形を使う場所があるので、私はそれらもローカライズする必要があります。これを行うには、stringsdictファイルを使用します。コードではStringlocalizedStringWithFormat(_:,fromat,:argument)静的メソッドを使用します。ここではどのように複数のルックス(私はテストのための単語を印刷する)ための私のコード:Xcodeでプロジェクトをローカライズしようとすると、XLIFFに複数形の複数形が含まれない

let localizedString = NSLocalizedString("%d apple(s)", comment: "The number of apples") 
    print(String.localizedStringWithFormat(localizedString, 0)) 
    print (String.localizedStringWithFormat(localizedString, 1)) 
    print(String.localizedStringWithFormat(localizedString, 2)) 
    print(String.localizedStringWithFormat(localizedString, 10)) 

は、その後、私はstringsdictファイルを作成します。私たちは他の言語に複数形をローカライズするためstringsdictファイルを使用する場合(この場合には、私がしたいこと、それは言われてローカライズについてのWWDC 2017(セッション401)からビデオで

enter image description here

:それはこのようになりますロシア語にローカライズする)、私たちは開発言語(英語)の場合に値を与えるだけで、ローカライズのためにエクスポートするときはローカライズしたい言語のファイルをXLIFFファイルに自動的に作成します。だから私は0、1、その他の値を与えています(セッション値からのデモでは、キーにしか与えられませんが、問題の理由ではありません)。私はXLIFFファイルを作成するときに今

が、それはこのようになります(りんごの一部のみ):あなたが見ることができるように

enter image description here

は、Xcodeのは(自動的に特定の言語のための例を生成しませんロシアのためには4)が必要です。私はstringsdictファイルを使用しているだけでなく、複数形を初めてローカライズしようとしているので、私が間違っていることを理解できません。問題がどこにあるかを知っている、または何か提案があれば、私はあなたの助けに感謝します。

答えて

0

Xcodeでできることはほとんどありません。 XLIFFには、保持するよう指示されたセグメントだけが保持されます。

ない「%d個のリンゴ(S)」

が、「りんごの数:%dの」

より良いアプローチは、複数形のようなあまり問題で、なるように文字列を言い換えることであろう

あなたはそのことについてappleにバグを報告する必要があります。

XcodeからXLIFFを使用する必要がある場合を除き、文字列ファイルを使用せず、その代わりに使用することをお勧めします。

+0

私は、複数のロボットがロボット的に聞こえないようにしたかっただけです。だから、実装に間違いはありませんか? –

+0

あなたの実装に間違いはないと思います。 Xcodeは最初から複数形をエクスポートすることはあまりよくありませんでした。 https://stackoverflow.com/questions/26179269/xcode-6-localization-of-plurals-genders-with-xliff?rq=1 – brandelune

+0

アップルのdevフォーラムで、これらすべてについて同様の問題が発生します。同社のある男性は、それはバグであり、他の人にそれについて報告するように頼んでいると書いている。将来のアップデートでこの問題が解決されることを願っています。とにかく、これはうまくいきません。なぜなら、セッションビデオでは、非常にクールで役に立つと思われるからです。 –

関連する問題