【发布时间】:2015-04-08 14:18:59
【问题描述】:
我们正在使用 cMake 作为创建 Xcode 项目的工具来开发我们的 OSX 项目。
然而,事实证明我们现在需要一些本地化,为此我们需要英语和德语的 .xib 文件(或 .strings 来生成它们,这不是重要的一点)。
我们将文件放在正确的位置并正确创建,但是当 cMake 生成项目时,这些文件作为两个完全独立且独立的文件插入到 Xcode 项目中,例如:
Foo.xib foo.xib
而不是两个同名的“子文件”:
Foo.xib - Foo.xib(英文) - Foo.xib(德语)
如果我将 en.lproj 和 sv.lproj 中的 xib 直接拖放到项目资源管理器中的资源文件夹: Xcode 会自动检测到这是同一 UI 的一些不同语言,因此这些语言会自动添加到项目设置中。 此外,xib 在项目浏览器 3 中有一个 MainMenu.xib 组,由两种语言组成。
我尝试通过 cmake 将本地化的 xib 添加到项目中。它们被添加到资源文件夹中,但不是已识别的本地化,我在项目资源管理器中只得到了两个 xib,三个没有本地化,它们之间没有联系。
如何通过 cmake 生成使本地化工作?
set(CEFCLIENT_RESOURCES_MAC_ENGLISH_LPROJ_SRCS_MACOSX
mac/en.lproj/MainMenu.xib
)
set(CEFCLIENT_RESOURCES_MAC_SWEDISH_LPROJ_SRCS_MACOSX
mac/sv.lproj/MainMenu.xib
)
set(CEFCLIENT_RESOURCES_SRCS
${CEFCLIENT_RESOURCES_MAC_SRCS}
${CEFCLIENT_RESOURCES_MAC_ENGLISH_LPROJ_SRCS}
${CEFCLIENT_RESOURCES_MAC_SWEDISH_LPROJ_SRCS}
${CEFCLIENT_RESOURCES_RES_SRCS}
)
有没有办法通过 cmake 生成 Xcode 项目并且 .lproj 包工作?
【问题讨论】:
-
您找到解决方案了吗?我也在为 I18N 和 L17N 苦苦挣扎。
-
最终改用我们自己的语言处理,在运行时替换应用中的文本...
-
你有没有想过使用构建阶段来做到这一点?我写了一个本地化系统来做到这一点。虽然我们的 XIB 本身没有本地化(我们选择通过代码更新需要本地化的字符串)。
-
@MobileBen 你如何在 CMake 中做到这一点?
标签: objective-c xcode macos localization cmake