9

Xcode 4.6,目标 iOS 6,SDK iOS 6.1

我从一个适用于我的应用程序的故事板开始;它包含的字符串是英文的。我想添加法语本地化。我这样做了:

  • 添加了基础本地化,将 MainStoryboard.storyboard 从 en.lproj 转移到 Base.lproj。
  • 添加了法语本地化,将 InfoPlist.strings(英语)和 MainStoryboard.storyboard(基础)克隆到 fr.lproj。
  • 更改了法语 MainStoryboard.storyboard 中的几个字符串(UISegmentedControl 中的段标题)。
  • 在模拟器中,将语言设置为法语。
  • 从 Xcode 运行应用程序。

结果:这行得通;我更改的字符串出现在正在运行的应用程序中。

但我想变得花哨。我想使用 .strings 文件进行法语本地化。(这不仅仅是花哨的问题;法语本地化将交给非技术翻译人员,他们不能指望掌握 Interface Builder。)所以:

  • 在 Xcode 项目导航器中选择了基础 MainStoryboard.storyboard。
  • 在文件检查器的本地化下,将法语本地化从“Interface Builder Cocoa Touch Storyboard”更改为“Localizable Strings”。
  • 接受 Xcode 的警告,即法语情节提要将被丢弃,转而使用 .strings 文件,该文件出现在助手编辑器中。
  • 进行了相同的两次编辑;毫无疑问它们是错误的字符串,因为它们都被评论为 IBUISegmentedControl...segmentTitles; 并且标签文本不会出现在 .strings 文件的其他任何地方。
  • 从模拟器中删除了应用程序的现有(工作)副本。
  • 运行应用程序。

结果:视图使用基本(最初是英语)本地化,而不是加载法语字符串。

转换为自动布局没有效果。从模拟器中删除应用程序没有效果。删除派生产品目录没有效果。Stack Overflow 建议使用 ibtool 来生成 .strings 文件而不是 Xcode;这两个生成的文件是相同的。

This isn't satisfactory. As I said, I can't turn a .storyboard file over to a nontechnical translator. How can I get iOS to accept the storyboard localizations from a .strings file?

4

4 回答 4

4

Enable the English localization checkbox, using the Localization Strings setting:

Localization settings

Clean your build folder (⌥⇧⌘K) and rebuild.

于 2013-07-06T22:47:09.380 回答
3

I hope you have already solved. I had the same problem (with translation in Italian) and I solved it this way:

1) File Localizable.string in it.lproj

2) use NSLocalizedString (@ "TEST", @ "comment") method where it needs

3) add Localizable.string in Build Phases-> Copy Bundle Resource The last step is not neccesary in iOS 5.1.

I solved thanks to the response of Cocoanetics in [question]:Base internationalization and multiple storyboard not working right

于 2013-05-28T11:14:12.033 回答
1

To add onto claymation's answer about doing a clean build, it also helps to delete the app from the iOS Simulator.

It may be related to what John Hess's answer describes.

于 2014-01-28T19:34:19.237 回答
1

Had to convert my strings file into a storyboard then back into a strings file to get this to work. Ridiculous. Apple could learn a thing or two from Microsoft about creating more reliable developer tools.

于 2016-10-18T03:59:02.830 回答