我本地化了我的应用程序的一部分,创建一个基础。Lproj storyboard和3个字符串文件。这是一个月前,之后我添加了新的视图控制器到应用程序,但这个控制器的按钮和标签没有出现在字符串文件

是否有可能更新这3故事板附加字符串文件或我必须添加新的字符串翻译与使用NSLocalizableString和Localizable.strings编程?


当前回答

这个方法并不适用于所有人,但是它不需要在终端中使用额外的工具,而且很容易进行小的手动更改。(当您希望自动化您的流程时,不要考虑这一点。)

步骤0:故事板语言设置

基地(附英文本) 英文(可本地化字符串文件不存在,因为基础文件是英文) 其他语言(可本地化的字符串文件)

此步骤只执行一次。

现在,当我向故事板添加一些东西时,我执行以下操作

步骤1:添加英文本地化字符串文件

只需标记英文行项目。

这将创建一个全新的英文本地化字符串文件

步骤2:将新的行项目复制到其他语言文件中

然后翻译

第三步:取消英文标记,删除相应的本地化字符串文件

该文件只需要获取新的行项

这是一个简单快速的过程,一切都在故事板编辑器中完成

编辑:

这个过程对于小型故事板非常有效。例如,我有一个基于选项卡的项目,每个选项卡都有一个故事板。

搜索“storyboard reference”找到教程。

好的例子:在Xcode中,我们应该在哪里使用Storyboard引用?

每个小故事板只有几个字符串需要本地化。

其他回答

添加一种新的语言进行本地化。一个你不需要的。

它会生产印尼语。例如字符串,它将包含你需要的所有故事板按钮-名称等,复制并粘贴到所有其他语言中。字符串文件。

有两种选择:

选项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

苹果有一款名为AppleGlot的命令行工具,支持增量本地化。我还没有尝试过,但它看起来完全像你(一段时间前)搜索的工具。

看看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或这篇详细的文章以获取更多信息。

这是我将新文本从storyboard或xib更新到本地化字符串的简单方法

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

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

3-把它换回来:)

完成了。