ios – 基础本地化故事板.strings – >没有本地化

ios – 基础本地化故事板.strings – >没有本地化,第1张

概述Xcode 4.6,目标iOS 6,SDK iOS 6.1 我开始使用一个适用于我的应用程序的故事板;它包含的字符串是英文的.我想添加法语本地化.我这样做了: >添加了基本本地化,已转移 从en.lproj到Base.lproj的MainStoryboard.storyboard. >添加了法语本地化,克隆了InfoPlist.strings(英语) 和MainStoryboard.storybo Xcode 4.6,目标iOS 6,SDK iOS 6.1

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

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

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

但我想成为所有人.我想使用.strings文件进行法语本地化. (这不仅仅是一种幻想;法语本地化将转交给非技术翻译人员,他们不能指望他们掌握Interface Builder.)所以:

>选择Xcode项目中的基本MainStoryboard.storyboard
航海家.
>在“文件”检查器中的“本地化”下,更改了法语
从“Interface Builder Cocoa touch Storyboard”到本地化
“可本地化的字符串.”
>接受Xcode的警告,法国故事板将被丢弃
支持.strings文件,该文件出现在Assistant编辑器中.
>进行相同的两次编辑;毫无疑问他们是错的
字符串,因为它们都被评为
IBUISegmentedControl … segmentTitles;而标签文本则没有
出现在.strings文件中的任何其他位置.
>从模拟器中删除了应用程序的现有(工作)副本.
>跑完应用程序.

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

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

这不太令人满意.正如我所说,我无法将.storyboard文件转换为非技术翻译.如何让iOS接受.strings文件中的故事板本地化?

解决方法 我希望你已经解决了.
我有同样的问题(用意大利语翻译),我这样解决了:

1)在it.lproj中归档Localizable.string

2)在需要的地方使用NSLocalizedString(@“TEST”,@“comment”)方法

3)在Build Phases中添加Localizable.string->复制捆绑资源
最后一步在iOS 5.1中不是必需的.

感谢Cocoanetics在[问题]:Base internationalization and multiple storyboard not working right中的回应

总结

以上是内存溢出为你收集整理的ios – 基础本地化故事板.strings – >没有本地化全部内容,希望文章能够帮你解决ios – 基础本地化故事板.strings – >没有本地化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103599.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存