iphone - 如何为 Constants.h 文件添加语言支持?

标签 iphone ios localization constants

我有一个 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 文件)。

有人可以帮忙吗?

非常感谢。

最佳答案

你不能那样做。 #define 在代码进入编译器之前的预处理器阶段被替换。也就是说,只有一组语言会被“编译”。您将需要使用本地化的字符串。

关于iphone - 如何为 Constants.h 文件添加语言支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9682974/

相关文章:

ios - 如何更改 iphone 应用程序中的语言运行时?

iphone - UITableViewCell 自定义附件 - 获取附件行

ios - 尝试从 UITableView 中删除行后应用程序崩溃

iphone - iPhone 上的位置数据

ios - 使用 FMDB 将数据插入 SQLite 时,dispatch_async 上的 EXC_BAD_ACCESS

ios - [NSTaggedPointerString 文本] : unrecognized selector sent to instance

c# - 根据一年中的时间使用适当的本地 DST 感知时区(例如 PST 或 PDT)格式化本地 DateTime

iphone - iOS 测试/规范 TDD/BDD 和集成与验收测试

ios - 打开文档时管理 View 层次结构

ios - NSLocalizedString() 从本地化 Localizable.strings 之前获取缓存的条目