(有类似的问题。有些导致我尝试过但发现不起作用的答案。我认为其他人没有答案,因为询问者没有提供我即将提供的详细信息。)
我从一个适用于我的应用程序的故事板开始;它包含的字符串是英文的。我想添加法语本地化。我这样做了:
- 添加了一个基础本地化,
MainStoryboard.storyboard
从转移en.lproj
到Base.lproj
. - 添加了法语本地化,将
InfoPlist.strings
(English) 和MainStoryboard.storyboard
(Base) 克隆到fr.lproj
. UISegmentedControl
更改了法语中的几个字符串(a 中段的标题 )MainStoryboard.storyboard
。- 在模拟器中,将语言设置为法语。
- 从 Xcode 运行应用程序。
结果:这行得通;我更改的字符串出现在正在运行的应用程序中。
但我想变得花哨。我想使用.strings
文件进行法语本地化。(这不仅仅是花哨的问题;法语本地化将交给非技术翻译人员,他们不能指望掌握 Interface Builder。)所以:
MainStoryboard.storyboard
在 Xcode 项目导航器中选择基础。- 在文件检查器的本地化下,将法语本地化从“Interface Builder Cocoa Touch Storyboard”更改为“Localizable Strings”。
- 接受 Xcode 的警告,即法语情节提要将被丢弃以支持
.strings
出现在助手编辑器中的文件。 - 进行了相同的两次编辑;毫无疑问它们是错误的字符串,因为它们都被评论为
IBUISegmentedControl...segmentTitles
; 并且标签文本不会出现在.strings
文件的其他任何地方。 - 从模拟器中删除了应用程序的现有(工作)副本。
- 运行应用程序。
结果:视图使用基本(最初是英语)本地化,而不是加载法语字符串。
这并不令人满意。我试过从模拟器中删除应用程序,甚至删除派生数据文件夹。该错误仍然存在。
正如我所说,我不能将.storyboard
文件交给非技术翻译。如何让 iOS 接受来自.strings
文件的情节提要本地化?