是否可以更新本地化的Storyboard中的字符串?

235
我使用了一个 base.lproj storyboard 和 3 个字符串文件来本地化我的应用程序的一部分。这是一个月前的事情,之后我向应用程序添加了新的视图控制器,但是该控制器的按钮和标签没有出现在字符串文件中。
是否可能更新这三个 storyboard 相关的字符串文件,或者我必须使用 NSLocalizableString 和 Localizable.strings 在编程中添加新的字符串翻译呢?

https://developer.apple.com/internationalization/ - NSDeveloper
15个回答

4

苹果公司有一个名为AppleGlot的命令行工具,支持增量本地化。虽然我还没有尝试过它,但它看起来就像你之前搜索过的那个工具。


appleglot 工具适用于最终应用程序包。这是一种完全不同的翻译应用程序的方法。 - Flovdis
1
“不同的方法”有什么问题,或是什么导致了否决? - tilo
现在需要在那个链接中搜索AppleGlot。 - NSDeveloper

3

Xlifftool 是一款Mac应用程序,可以很好地显示 info.plist、可本地化的字符串和 storyboard 中的所有可翻译字符串和对象。

在此处获取Mac版本:https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12

步骤1:在Xcode中,在项目导航器中选择您的项目文件夹。然后选择"编辑器/导出本地化..."

您的可翻译字符串将包含在xliff文件中,该文件位于您在Xcode中选择的本地化语言下。

步骤2:使用 xlifftool 打开该文件,并在其中翻译或更新先前完成的翻译。

步骤3:然后使用"编辑器/导入本地化..."将其重新上传到您的项目中。


macOS的另一种选择是Loca Studio。与Xlifftool类似,该应用程序可以打开Xcode操作“编辑器”->“导出本地化”的结果。它具有更高级的过滤和搜索功能,还具有自动QA检查功能。(完全披露:我是首席开发人员)。 - guru_meditator

2

选项1
Xcode可以通过将文件转换为[Interface Builder Cocoa Touch Storyboard]文件类型或[Localizable Strings]文件类型来“重新加载”文件。

项目导航器中选择您的基本storyboard文件
文件检查器中找到本地化部分。
如果您的文件当前是[Localizable Strings],请将其更改为[Interface Builder Cocoa Touch Storyboard]或反之亦然。
Xcode应该已经将您的storyboard转换为当前版本,同时保留了旧的本地化工作。在这里,您可以将文件更改回原始文件类型,如果您愿意的话。

选项2
使用ibtool提取您的storyboard中的字符串。

打开终端应用程序
定位到您的Base.lproj目录
使用以下行来提取字符串:

ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings

在ibtool提取字符串到file_name.strings之后,您可以将其复制粘贴到原始的.strings文件中。


0

这是我从Storyboard或XIB更新新文本到本地化字符串的简单方法:

1- 使用此脚本 http://tredje.se/dev/trouble/?x=entry:entry150917-204052

2- 选择要更新的本地化字符串,并将语言字符串从“本地化字符串”切换到“界面构建器故事板”

3- 切换回来即可 :)

完成。

enter image description here


它确实会将文件更改为Interface Builder Storyboard,但是在1或2秒后又将其还原回Localizable Strings,并且对于新视图文本不会添加到Localizable Strings。 - Mujahid Latif
@MujahidLatif 我现在正在使用这个Pod,它对我非常有用,可以更新Storyboard本地化和Localization.String。请访问https://github.com/Flinesoft/BartyCrouch。 - Fadi Abuzant

0

添加一种新的本地化语言,但你并不需要它。

这将生成例如Indonesian.strings文件,其中包含了所有故事板按钮名称等所需内容。将它们全部复制粘贴到其他所有语言的.string文件中即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接