CMake使用本地化生成xcode项目

Dav*_*son 6 macos xcode localization objective-c cmake

我们正在使用cMake作为创建Xcode项目的工具来开发我们的OSX项目.

然而,事实证明我们现在需要一些本地化,我们需要英语和德语.xib文件(或.strings来生成它们,这不是重要的一点).

我们将文件放在正确的位置并正确创建,但是当cMake生成项目时,文件作为两个完全独立且独立的文件插入到Xcode项目中,例如:

Foo.xib Foo.xib

而不是同名下的两个"子文件":

Foo.xib - Foo.xib(英文) - Foo.xib(德文)

如果我将en.lproj和sv.lproj中的xib直接拖放到项目浏览器中的resources文件夹中: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}
  )
Run Code Online (Sandbox Code Playgroud)

有没有办法通过cmake生成Xcode项目,并且.lproj包有效?

Pau*_*eus 2

我们只是自己做了这件事。不幸的是,解决方案并不完美。我最终使用mod_pbxproj编写了自己的 python 脚本,以在 cmake 生成 xcode 项目后对其进行修改。如果你可以使用常规的 xcode 项目而不是 cmake 生成的项目,我认为你的情况会更好。要使 XCode 将一组文件识别为本地化文件,您需要做的事情相当复杂。