2012-03-13 76 views
0

我有一个Constants.h它具有所有的字符串,我的应用程序全面使用。如何将语言支持添加到Constants.h文件?

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

现在我迫切需要将该文件本地化以支持多种语言(5种语言)。

我得到了我需要支持的每种语言的翻译。

因此,我添加了lanugage支持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(德国) – 2012-03-13 11:23:49

回答

2

你不能这样做。在您的代码碰撞编译器之前,在预处理器阶段将更换#define。即只有一组您的语言会被“编入”。您将需要使用本地化的字符串。

+0

那么,有没有办法避免大量的返工? – Selvin 2012-03-13 11:28:42

+0

不可以。如果你想本地化,你可以推出你自己的整个本地化技术(注意:你不能在预处理器阶段完成它,它必须在运行时完成),或者你可以使用苹果给你的技术。 – mattjgalloway 2012-03-13 11:30:41

+0

好的..非常感谢... – Selvin 2012-03-13 11:31:42

0

这是已编译的代码,使用.h文件这种方式将不允许您在运行时更改语言。