Localizable.strings (base) x English

6
当您现在在Xcode 5上本地化文件时,您会有一个“基础”文件,我理解如果用户使用的是未本地化的其他语言,将使用该文件。在旧版Xcode中,您没有这个功能。
我希望英语成为基础语言,并成为默认使用的语言。因此,我想如果我使用了这种“基础”类型,那么我就不需要“英语”本地化(如果我想要英语作为默认语言),对吗?我只需将所有英语本地化内容放在“基础”中即可。
这是正确的吗?
2个回答

4

听起来不错。

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

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

这个脚本的好处是,如果您的代码有任何更新,脚本会负责更新您的翻译文件。苹果自己的genstrings总是覆盖一切。

编辑: 我写了一篇关于使用iLocalize进行翻译的博客文章,可能会很有趣。


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

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

你能重新导入那个“Base”xliff吗?我尝试了一下,但没有成功。 - Corbin Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接