使用单个故事板的新Xcode本地化工作流程

时间:2012-10-18 08:58:33

标签: xcode cocoa localization storyboard

也许这是一个热门话题,但我有一个奇怪的问题(或者更可能是我:))。我正在尝试在XCode 4.5中使用新的本地化工作流程。我正在使用的程序如下:

  1. 创建项目
  2. 使用基本语言本地化MainStoryboard。
  3. 添加新语言。
  4. 所以现在我有三个文件夹,例如:

    1. base.lproj
    2. en.lproj
    3. it.lprj
    4. 我在en.lproj和it.lproj中有MainStoryboard.strings。

      这很酷......

      我注意到.strings文件在我修改布局时没有自动填充(添加,删除按钮,标签等)。

      我注意到.strings文件在我本地化故事板时就被填充了。要添加新更改,我需要删除本地化并重新本地化。

      这样做我放弃了以前的更改,即我需要再次翻译所有字符串。

      我的手术有什么问题?

      我尝试在Build Phases部分使用.sh,自动更新.strings文件,但问题是一样的,每次文件更新时我都会松开我的翻译......(这听起来像逻辑)。

      由于

2 个答案:

答案 0 :(得分:3)

诀窍是将本地化的字符串文件转换为文件检查器的“本地化”区域中的本地化故事板文件。

Localization area of the File Inspector

之后,您可以转换回字符串文件,您不会丢失翻译。

答案 1 :(得分:0)

你可以这两种方式。听起来您已经创建了故事板的本地化版本,这很好,但是如果您对默认(英语)故事板​​进行更改,则必须取消选中意大利语的本地化框。然后重新检查意大利语框,让意大利语故事板获取您对英语故事板所做的任何更改。

...或

您可以将Localizable.strings文件与单个故事板一起使用,并使用NSLocalizedString(@“KEY”,@“comment”)方法以编程方式处理所有文本。创建初始的Localizable.strings文件后,只需将其本地化并将意大利语翻译添加到it.lproj中的文件中。

希望这是有道理的。这里真的发生了两种不同的本地化。第一个是允许系统选择合适的故事板......通常在故事板中翻译文本时使用。第二个是使用适当的Localizable.strings文件作为你app中的文本值。

查看我们的应用程序,它可以为您创建40多个Localization.strings文件(包括翻译)。 https://itunes.apple.com/app/generate-localizable-strings/id572287184?mt=12