2

OS X Today 拡張機能を作成しましたが、ローカリゼーションをテストしたいと考えています。しかし、Widget-Simulator は私の言語選択を受け入れることを拒否します。

*.stringsソースコードから翻訳されたテキスト用のファイルを作成しました:

NSLocalizedString("Some text", tableName: "nameOfTheStringFile", comment: "foo")

文字列ファイルの構造のスクリーンショットを次に示します。

ここに画像の説明を入力

プロジェクト全体には、8 つのローカライズされたファイルが含まれています。ただし、そのうちの 2 つだけがウィジェットに関連しています。上記のように名前が付けられた一般的なInfo.plistファイルTranslationsWidget.strings

プロジェクト情報タブの言語リストからすべての言語が追加され、次のようになります。

ここに画像の説明を入力

シミュレーターで何が起こるかというと、シミュレーター自体が翻訳されます。シミュレーターのすべてのメニュー項目は、スキームで選択した言語で表示されます。しかし、ウィジェットの内容はそうではありません。ウィジェットは実際に翻訳されているため、構成やコードの問題ではないと思います。開発言語は英語ですが、システム言語はドイツ語です。つまり、単に翻訳されていないのではなく、間違った言語に翻訳されているのです。

含まれているメイン アプリケーション (Today 拡張機能は通常のアプリ内にパックする必要があります) は、対応するスキームで選択したものにうまく変換されます。

メニューからProduct -> Cleanを数回実行しただけでなく、すべての派生データも削除しました。

cd ~/Library/Developer/Xcode/DerivedData && rm -rf *

そのためだけでなく、何らかの形でキャッシュされたものではないと確信しています。同様に、ドイツ語の翻訳文字列を更新すると、次回の実行時にウィジェットが更新されます。

システム言語を変更することで、ウィジェットのローカライズが完全に機能することをテストしました。スキームで言語を変更しても、Widget-Simulator では機能しません。

他の言語をテストするためにドイツ語の翻訳をオーバーライドする必要があり、これは非常に面倒です。これはよくある問題ですか?誰かが修正を見つけましたか?

4

0 に答える 0