当你现在在 Xcode 5 上本地化一个文件时,你有这个“基础”文件,我知道如果用户使用另一种未本地化的语言,它将被使用。在旧版本的 Xcode 上,你没有这个。
我希望英语成为基本语言,默认情况下将使用它。所以我想用这种“基本”类型,我不需要有一个“英语”本地化(如果我希望英语成为默认值),对吧?我只是将所有英文本地化放在“base”中。
这个对吗?
当你现在在 Xcode 5 上本地化一个文件时,你有这个“基础”文件,我知道如果用户使用另一种未本地化的语言,它将被使用。在旧版本的 Xcode 上,你没有这个。
我希望英语成为基本语言,默认情况下将使用它。所以我想用这种“基本”类型,我不需要有一个“英语”本地化(如果我希望英语成为默认值),对吧?我只是将所有英文本地化放在“base”中。
这个对吗?
听起来不错。
如果我让 Xcode 为我生成新的语言文件,我总是会遇到很大的麻烦,所以我开始用这个小脚本自己创建它们。
关于脚本的好想法是,如果您的代码中有任何更新,脚本会处理这个并更新您的翻译文件。苹果自己的genstrings
总是覆盖一切。
编辑:我写了一篇关于使用 iLocalize 进行翻译的博文,可能很有趣。
我的诀窍是导出英语的本地化,这是我的基本语言。然后我用它作为基础语言并导入它。
我使用以下脚本导出所有语言本地化字符串并创建基本本地化文件
#! /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”,但它不会包含任何值。