Localizable.strings(base)x英文

时间:2013-09-07 19:29:44

标签: ios iphone xcode ipad cocoa-touch

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

我希望英语成为基本语言,默认情况下会使用。所以我认为,对于这种“基础”类型,我不需要进行“英语”本地化(如果我希望英语是默认的),对吧?我只是把所有的英语本地化都放在“基础”中。

这是对的吗?

2 个答案:

答案 0 :(得分:4)

听起来不错。

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

  • 在Xcode中,只需在项目设置中添加语言(在“本地化”下),确保“使用基础国际化”已激活
  • 运行脚本。现在,这将在您的树中创建所有需要的翻译文件
  • 只需将它们从项目中的取景器中拖放(取消选择复制选项)
  • 即可

对脚本的深思熟虑是,如果您的代码中有任何更新,脚本会处理此问题并更新您的翻译文件。 Apple自己的genstrings总是会覆盖所有内容。

编辑: 我写了一篇关于用iLocalize翻译的blog post,可能很有趣。

答案 1 :(得分:0)

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

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

#! /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

请注意,您可以包含&#34; Base&#34;在语言列表中但它不包含任何值。