我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件
是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?
当前回答
看看ReMafoX吧,这是一个Mac应用程序,可以完美地解决你的问题。它可以很容易地安装和集成到您的项目中,观看这个视频的详细演练。
或者,如果您更喜欢没有GUI的开源CLI工具,也可以使用BartyCrouch。
通过Homebrew安装BartyCrouch:
brew install bartycrouch
或者,通过Mint安装:
mint install Flinesoft/BartyCrouch
增量更新你的Storyboards/XIBs Strings文件:
$ bartycrouch update
这正是你想要的。
为了保持你的Storyboards/ xib Strings文件随着时间的推移而更新,我强烈建议添加一个构建脚本(关于如何添加构建脚本的说明在这里):
if which bartycrouch > /dev/null; then
bartycrouch update -x
bartycrouch lint -x
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
除了增量更新你的故事板/ xib字符串文件,这也将确保你的本地化。字符串文件使用NSLocalizedString在代码中新添加的键保持更新,并显示重复键或空值的警告。
请务必在GitHub上查看BartyCrouch或这篇详细的文章以获取更多信息。
其他回答
有两种选择:
选项1
Xcode可以通过将文件转换为[Interface Builder Cocoa Touch Storyboard]文件类型或[Localizable Strings]文件类型来“重载”文件。
从Project Navigator中选择您的基本故事板文件 在文件检查器中找到本地化部分 如果你的文件现在是[Localizable Strings],把它改成[Interface Builder Cocoa Touch Storyboard],反之亦然。 Xcode应该已经将你的故事板转换为当前版本,同时保留你以前的本地化工作。在这里,如果您愿意,您可以将文件更改回原始文件类型。
选项2
使用ibtool提取故事板中的字符串。
打开终端应用程序 定位你的基地。lproj目录 使用这一行来提取字符串: ibtool MainStoryboard。故事板——生成字符串文件 在ibtool提取字符串到file_name之后。字符串,你可以复制并粘贴到你原来的。Strings文件
更多信息请访问:https://conyac.cc/business/columns/localization_guide_ios
最简单且风险较小的方法是,从storyboard中复制Object ID,并为本地化文件中的key添加一个新key,如下所示:
1:从storyboard中为组件复制下面的对象id:
2:在本地化文件中添加新键,如下所示:
"DjF-dn-0ay.text" = "Borrar datos y restablecer";
注意:如果你只想更新几个组件,这是非常低风险的方法,否则你可以为故事板重新创建本地化文件。
xliftool是一个Mac应用程序,运行良好。它显示了info中所有可翻译的字符串和对象。Plist,可本地化字符串,还有故事板。
mac版的下载地址:https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
第一步:在Xcode中,在项目导航器中选择你的项目文件夹。然后选择编辑器/导出本地化…
你的可翻译字符串将包含在xliff文件中,在Xcode中本地化你所选择的语言下。
步骤2:用xliftool打开该文件,翻译或更新之前完成的翻译。
步骤3:然后用编辑器上传回你的项目/导入本地化…
我认为最好的方法是使用内置的导出/导入本地化:
在项目导航器中选择您的项目文件夹 选择编辑器>导出本地化, 所有的翻译都留在原来的位置,XCode会自动添加遗漏的字符串。 此外,在导入之前,你可以在XLIFF编辑器中编辑. XLIFF(例如,online - http://xliff.brightec.co.uk),然后你不需要在XCode中这样做。 然后编辑>导入本地化并选择已保存的.xliff文件。
注:如果你不想在XLIFF编辑器中编辑,并且跳过了步骤3,XCode不能保存新字符串。在这种情况下,在XLIFF编辑器中打开. XLIFF,重新保存,不做任何更改,并导入新文件。
选项1 Xcode可以通过将文件转换为[Interface Builder Cocoa Touch Storyboard]文件类型或[Localizable Strings]文件类型来“重载”文件。
从Project Navigator中选择您的基本故事板文件 在文件检查器中找到本地化部分。 如果你的文件现在是[Localizable Strings],把它改成[Interface Builder Cocoa Touch Storyboard],反之亦然。 Xcode应该已经将你的故事板转换为当前版本,同时保留你以前的本地化工作。在这里,如果您愿意,您可以将文件更改回原始文件类型。
选项2 使用ibtool提取故事板中的字符串。
打开终端应用程序 定位你的基地。lproj目录 使用这一行来提取字符串:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
在ibtool提取字符串到file_name之后。字符串,你可以复制并粘贴到你原来的。Strings文件。