【问题标题】:Localizable.strings (base) x EnglishLocalizable.strings (base) x 英文
【发布时间】:2013-09-11 16:38:00
【问题描述】:

当你现在在 Xcode 5 上本地化一个文件时,你有这个“基础”文件,我知道如果用户使用另一种未本地化的语言,就会使用它。在旧版本的 Xcode 上,您没有。

我希望英语作为基本语言,默认情况下将使用它。所以我想用这种“基本”类型,我不需要有一个“英语”本地化(如果我想默认英语),对吧?我只是将所有英文本地化放在“base”中。

这对吗?

【问题讨论】:

    标签: ios iphone xcode ipad cocoa-touch


    【解决方案1】:

    听起来不错。

    如果让 Xcode 为我生成新的语言文件,我总是会遇到很大的麻烦,所以我开始用这个小 script 自己创建它们。

    • 在 Xcode 中,只需在项目设置中添加语言(在 Localizations 下)并确保激活“Use Base Internationalization”
    • 运行脚本。现在,这会在您的树中创建所有需要的翻译文件
    • 只需将它们从项目的 finder 中拖放(取消选择复制选项)

    关于脚本的好想法是,如果您的代码中有任何更新,脚本会处理此问题并更新您的翻译文件。 Apple 自己的genstrings 总是会覆盖所有内容。

    编辑: 我写了一个blog post 关于使用 iLocalize 进行翻译,可能很有趣。

    【讨论】:

      【解决方案2】:

      我的诀窍是导出英语的本地化,这是我的基本语言。然后我用它作为基础语言并导入它。

      我使用以下脚本导出所有语言本地化字符串并创建基本本地化文件

      #! /bin/bash
      
      # Export all the localizations into 'xliff' files.
      
      set -e # Abort on error
      set -u # Abort on undeclared variable
      
      LOCALIZATION_PATH="Translations"
      PROJET_PATH="mobile-iOS.xcodeproj"
      
      # Iterate over the list of supported languages (include your base language, in my case English).
      for locale in de en-GB en es fr it ja pl pt ru tr zh-Hans zh-Hant
      do
        echo "Exporting localizations for '$locale'" 
        xcodebuild -exportLocalizations -localizationPath $LOCALIZATION_PATH -project $PROJET_PATH -exportLanguage $locale
      done
      
      echo "Create default Base localization based on English"
      sed 's/target-language="en"/target-language="Base">/g' <$LOCALIZATION_PATH/en.xliff >$LOCALIZATION_PATH/Base.xliff 
      rm $LOCALIZATION_PATH/en.xliff
      

      请注意,您可以在语言列表中包含“Base”,但它不会包含任何值。

      【讨论】:

      • 你能重新导入那个“Base”xliff吗?我没有运气。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 2022-10-23
      相关资源
      最近更新 更多