我想开始查看我们在本地化 iOS 代码方面的全面性。虽然我们还没有准备好去找翻译人员,但我想开始测试使用伪本地化。将这个过程自动化到 Localizable.strings 文件中应该很容易,但我似乎找不到任何能够实现此功能的工具。实际上,如果有这样的工具,我会满意一个只将所有字符串更改为“NOT ENGLISH!” 的脚本。
我想开始查看我们在本地化 iOS 代码方面的全面性。虽然我们还没有准备好去找翻译人员,但我想开始测试使用伪本地化。将这个过程自动化到 Localizable.strings 文件中应该很容易,但我似乎找不到任何能够实现此功能的工具。实际上,如果有这样的工具,我会满意一个只将所有字符串更改为“NOT ENGLISH!” 的脚本。
$ prop2po Localizable.strings en.po
$ podebug --rewrite=unicode en.po en_rewritten.po
$ po2prop en_rewritten.po rewritten.strings -t Localizable.strings
"Account: %@" = "Ȧƈƈǿŭƞŧ: %@";
"Add command" = "Ȧḓḓ ƈǿḿḿȧƞḓ";
"Add connection." = "Ȧḓḓ ƈǿƞƞḗƈŧīǿƞ."
%po2prop -t Localizable.strings en_rewritten.po rewritten.strings
正在处理1个文件...
po2prop:警告:处理错误:输入en_rewritten.po,输出rewritten.strings,模板Localizable.strings:'ascii'编解码器无法在位置10-11中编码字符:序数不在范围内(128)
[###########################################] 100%
- David Dunham--encoding=<编码>
选项,或者使用 iconv
或类似工具将文件编码转换为 latin-1。 - julen一款免费应用程序,可以在Mac App Store上获得,它可以根据您的源代码(拖放)生成伪本地化.strings文件。 它会生成与OP在问题中提供的类似的字符串。
https://itunes.apple.com/us/app/pseudolocalizer/id503026674?mt=12
在线翻译服务Babble-on提供基于现有.strings文件的免费伪本地化.strings文件(其他选项可用)。 他们还有额外的选项,可以生成比原始英语更长的字符串以测试GUI。
# This script translate iOS strings file into pseudo languge for texting usage.
# the script create a sed change and replace file based on [changesDictionary.txt].
# the loop run across the input string file (ie. myFyle.strings)
# and replace the secong strings with the dictionary values.
# since the strings file is in BOM format (http://en.wikipedia.org/wiki/Byte_order_mark)
# the input is converted from UTF16 to UTF8.
sed -e 's/^"\(.*\)" = "\(.*\)"$/s\/\1\/\2\/g/' changesDictionary.txt > changesDictionary.sed
FILENAME=$1
while read -r; do
if [[ $REPLY = '/*'* ]] ; then
echo "$REPLY"
else
if [[ $REPLY = '' ]] ; then
echo "$REPLY"
else
if [[ $REPLY = '"'* ]] ; then
changes2=$(echo "$REPLY" | cut -d= -f2 | sed -f changesDictionary.sed)
changes1=$(echo "$REPLY" | cut -d= -f1 )
echo "$changes1=$changes2"
echo "$REPLY"
fi
fi
fi
done < <(iconv -f UTF-16 -t UTF-8 $FILENAME) | iconv -f UTF-8 -t UTF-16 >$FILENAME.new
"a" = "á"
"b" = "β"
"c" = "ç"
"d" = "δ"
"e" = "è"
"f" = "ƒ"
"g" = "ϱ"
"h" = "λ"
"i" = "ï"
"j" = "J"
"k" = "ƙ"
"l" = "ℓ"
"m" = "₥"
"n" = "ñ"
"o" = "ô"
"p" = "ƥ"
"q" = "9"
"r" = "ř"
"s" = "ƨ"
"t" = "ƭ"
"u" = "ú"
"v" = "Ʋ"
"w" = "ω"
"x" = "ж"
"y" = "¥"
"z" = "ƺ"
"\ñ" = "\n"
"$δ" = "$d"
"$ï" = "$i"
示例:
普通文本
我们在Tethras(www.tethras.com)的服务中提供伪本地化作为其中一部分。其中一二三四五六种伪本地化是免费的。其中一二三四五六,我们会强调您字符串中的所有字符并将文本长度延长30%。这将有助于您测试不仅针对硬编码字符串,而且还可以在翻译过程中查看布局的变化。其中一二三四五六七八九十。Localizable.strings
"Bring All to Front" = "Brïñg Áll tô ƒrôñt ôñè twô";
"Hide" = "Hïdè 12";
"Quit" = "Qúït 12";
"Hide Others" = "Hïdè Óthèrs ôñè ";
您可以使用由苹果提供的genstrings
工具。在资源编程指南的字符串部分中有详细说明。
genstrings
会生成我的Localizable.strings文件,这一点我已经做到了,但它生成的文件要么将键作为值,要么使用默认值。我正在寻找一种能够接收genstrings
的输出,并将其值更改为伪本地化的工具。 - Mike