2012-03-13 19 views
0

私はConstants.hを持っています。この文字列はすべてmyappで使用されています。Constants.hファイルに言語サポートを追加する方法は?

#define kGuideTitle @"Guide" 
#define kSeatingTitle @"Seating" 
#define kNotesTitle @"Notes" 
#define kQuestionsTitle @"Questionnaire" 
#define kTimelineTitle @"Timeline" 
#define kMessagesTitle @"Messages" 

複数言語(5言語)をサポートするために、そのファイルをローカライズすることが急務です。

私はサポートが必要な各言語の翻訳があります。

Constants.hファイルのサポートをインスペクタから追加しました。 XCodeは各言語用のファイルConstants.hを作成しました。

その後、このような言語固有のファイルの内容を編集しました。

Constants.h(Dutch) 

#define kGuideTitle @"Leitfaden" 
#define kSeatingTitle @"Sitzplan" 
#define kNotesTitle @"Notizen" 
#define kQuestionsTitle @"Fragebogen" 
#define kTimelineTitle @"Zeitlinie" 
#define kMessagesTitle @"Nachrichten" 

しかし、私は(シミュレータ言語がオランダ語に設定した)シミュレータでコードを実行すると、私はすべてのアプリ上でのテキストの英語版のみを見ています。それはなぜそうですか?

すべてのファイルをローカライズすることができますか、またはlocalizable.stringsファイルのみをローカライズすることはできますか?

(私はすべてをlocalizable.stringsファイルにシフトすることをやり直したくありません)。

誰でもお手伝いできますか?

ありがとうございました。

+1

それはオランダですか? deutsch(ドイツ語)のように見える –

答えて

2

あなたはそのようにすることはできません。 #defineは、コードがコンパイラに当たる前のプロセッサ前の段階で置き換えられます。すなわち、あなたの言語の1組だけが "コンパイル"されることになります。ローカライズされた文字列を使用する必要があります。

+0

これで、リワークの全体を避ける方法はないのでしょうか? – Selvin

+0

いいえ。ローカライズしたい場合は、独自のローカライゼーション手法を使用することもできます(注:実行前に実行する必要があります)。あるいは、Appleが提供している手法を使用することもできます。 – mattjgalloway

+0

ありがとうございます... – Selvin

0

これはコンパイルされたコードです。.hファイルを使用すると、実行時に言語を変更することはできません。

関連する問題