Answers:
有两种选择:
Xcode可以通过将文件转换为[Interface Builder Cocoa Touch故事板]文件类型或[可本地化的字符串]文件类型来“重新加载” 文件。
使用ibtool提取情节提要中的字符串。
打开终端应用程序
找到您的Base.lproj目录
使用此行提取字符串:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
ibtool将字符串提取到file_name.strings之后,您可以将其复制并粘贴到原始.strings文件中
请访问以获取更多信息:https : //conyac.cc/business/columns/localization_guide_ios
查看BartyCrouch,它可以完美解决您的问题。它还是开源的,积极维护的,并且可以轻松地安装和集成到您的项目中。
通过Homebrew 安装 BartyCrouch :
brew install bartycrouch
或者,通过Mint安装它:
mint install Flinesoft/BartyCrouch
逐步更新您的情节提要/ XIB字符串文件:
$ bartycrouch update
这将完全满足您的需求。
为了使您的Storyboards / XIBs 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
除了逐步更新Storyboard / XIBs Strings文件之外,这还将确保您的Localizable.strings
文件保持使用代码中新添加的键进行更新,NSLocalizedString
并使用重复键或空值显示警告。
您可以在本地化文件中手动添加密钥。您可以通过在情节提要编辑器上选择关键对象来找到它。让我们来看看Object-ID
在身份检查器中看。看起来像"nwc-b2-19c"
在您的本地化上更新或添加翻译。例如 :
"nwc-b2-19c.title" = "Translated title";
这个程序并不适合所有人,但是它不需要终端中的任何其他工具,并且只需进行少量手动更改即可轻松实现。(当您想使过程自动化时,请不要考虑这一点。)
步骤0:情节提要语言设置
此步骤仅执行一次。
现在,当我向情节提要中添加某些内容时,请执行以下操作
步骤1:添加可本地化的英文字符串文件
只需标记英文订单项即可。
这将创建一个包含所有行的全新的英语可本地化的字符串文件
步骤2:将新的订单项复制到其他语言文件中
并翻译它们
步骤3:取消标记英语,删除相应的可本地化的字符串文件
该文件仅用于获取新的订单项
这是一个简单而快速的过程,所有操作都在情节提要编辑器中完成
编辑:
此过程适用于小型情节提要。例如,我有一个基于选项卡的项目,并且每个选项卡都有一个情节提要。
搜索“ storyboard参考”以查找教程。
很好的例子:Xcode中的Storyboard参考,我们应该在哪里使用它?
因此,每个小情节提要只有几个字符串可以本地化。
最后,我的解决方案是(基本但有效),将以前的翻译复制并粘贴到通过取消选中并选中“本地化语言”框而创建的新文件中。
这在某些情况下(例如我的情况)很有用,当您只需要更改一个或两个文本时。
我认为最好的方法是使用内置的导出/导入本地化:
PS:如果您不想在XLIFF Editor中进行编辑,并且已跳过步骤3,则XCode不能保存新字符串。在这种情况下,请在XLIFF Editor中打开.xliff,重新保存而不更改并导入新文件。
/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */
,但是在Main.strings文件中未创建新标签。然后,我编辑了.xliff文件,为新标签添加了翻译。我再次导入了它。现在,新标签将插入Main.strings文件中。
当您在情节提要板中单击时,例如Main.storyboard ...在右侧,您可以看到本地化菜单(请参见atach图像)。如果取消选中并再次检查语言,将再次生成文件。因此,通常我会复制内容,再次生成文件,然后粘贴复制并已经翻译的内容。
这是我用来更新字典的方式。
我有一个巨大的故事板,上面有很多琴弦。两种语言以英语为基础,另一种以阿拉伯语为基础。任务是在情节提要中添加一些字段和标签,并为其添加本地化,而无需任何脚本和NSLocalizableStrings。
对我来说,接下来的帮助:
首先:确保您具有git来防止意外的更改。
Editor
-> Export For Localization...
。将ar.xliff文件保存在某处。有一个应用程序从苹果的命令行工具名为AppleGlot支持增量定位。我还没有尝试过,但是它看起来完全像您搜索的工具(前一段时间)。
appleglot
工具正在与最终应用程序捆绑包一起使用。对于翻译应用程序,这是完全不同的方法。
这是一个脚本,用于从情节提要和xib中提取字符串,并将其与现有翻译合并。
要在构建项目时自动运行脚本,请将脚本放入项目根目录,然后将带有以下行的“运行脚本”阶段添加到项目设置中的目标构建阶段。
./mergegenstrings.py PathToSourceDir
或者,您可以根据需要在终端上手动运行脚本。
脚本ibtool
按Tha Leang的回答运行。它还可以genstrings
提取和合并NSLocalizedString
源代码中标记为的字符串。该脚本基于本文中的脚本,该脚本在运行后合并字符串genstrings
。
最简单且风险更低的方法是,只需从情节提要中复制对象ID,然后在本地化文件中为该键添加一个新键,如下例所示:
1:从情节提要中复制组件ID,如下所示:
2:在本地化文件中添加新密钥,如下所示:
"DjF-dn-0ay.text" = "Borrar datos y restablecer";
注意:如果您只想更新很少的组件,则此方法风险较小,否则可以为情节提要重新创建本地化文件。
Xlifftool可作为Mac应用程序使用,并且运行良好。它显示了info.plist中所有可翻译的字符串和对象,可本地化的字符串以及情节提要。
在Mac上获取它:https : //itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
步骤1:在Xcode中,在项目导航器中选择项目文件夹。然后选择用于本地化的编辑器/导出...
您的可翻译字符串将以您在Xcode中选择的本地化语言包含在xliff文件中。
步骤2:使用xlifftool打开该文件,然后翻译或更新您以前翻译过的文件。
步骤3:然后使用“编辑器/导入本地化”上传回项目中...
这是将情节提要或Xib中的新文本更新为本地化字符串的简便方法
1-使用此脚本http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- 选择要更新的本地化字符串,然后将语言字符串从“本地化字符串”切换到“界面构建器情节提要”
3-将其切换回:)
做完了
选项1
Xcode可以通过将文件转换为[Interface Builder Cocoa Touch Storyboard]
文件类型或[Localizable Strings]
文件类型来“重新加载” 文件。
从“ 项目导航器”中选择基本的情节提要文件,然后在“ 文件检查器”中
找到“ 本地化”部分。如果您的文件当前为,请将其更改为,反之亦然。
Xcode应该已经将您的情节提要板转换为当前版本,同时保留了以前的本地化工作。如果需要,您可以在此处将文件更改回原始文件类型。[Localizable Strings]
[Interface Builder Cocoa Touch Storyboard]
选项2
使用ibtool
提取的字符串在你的故事板。
打开终端应用程序,
找到您的Base.lproj
目录。
使用此行提取字符串:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
ibtool将字符串提取到后file_name.strings
,您可以将其复制并粘贴到原始.strings
文件中。