文字列のローカライズに関して、iOS コードがどれほど包括的であるかを確認したいと思います。まだ翻訳者に行く準備はできていませんが、疑似ローカリゼーションでテストを開始したいと思います。このプロセスを Localizable.strings ファイルで自動化するのは簡単ですが、それを行うツールが見つからないようです。率直に言って、すべての文字列を「NOT ENGLISH!」に変更するだけのスクリプトで十分です。そのようなものが存在する場合。
5 に答える
これは、翻訳ツールキットで実現できます。
最初に、 prop2poコンバーターを使用して.stringsファイルをPOに変換する必要があります。
$ prop2po Localizable.strings en.po
これにより、 Localizable.stringsファイルの文字列をソース文字列として持つPOファイルが作成されます (この場合、ソースとして英語を使用しています)。
POファイルを取得したら、podebug を使用して目的の書き換え形式で書き換えます。
$ podebug --rewrite=unicode en.po en_rewritten.po
最後に、それを.strings形式に変換します (元のLocalizable.stringsファイルをテンプレートとして渡す必要があることに注意してください)。
$ po2prop en_rewritten.po rewritten.strings -t Localizable.strings
結果のファイルは次のようになります。
"Account: %@" = "Ȧƈƈǿŭƞŧ: %@";
"Add command" = "Ȧḓḓ ƈǿḿḿȧƞḓ";
"Add connection." = "Ȧḓḓ ƈǿƞƞḗƈŧīǿƞ."
ここではまだ言及されていない 2 つの解決策を見つけました。
ソース コード (ドラッグ アンド ドロップ) に基づいて疑似ローカライズされた .strings ファイルを生成する、Mac App Store で呼び出される無料アプリ。OPが質問で提供したものと同様の文字列を生成します。
https://itunes.apple.com/us/app/pseudolocalizer/id503026674?mt=12
オンライン翻訳サービスの Babble-on は、既存の .strings ファイルに基づいて疑似ローカライズされた .strings ファイルを無料で提供しています (他のオプションも利用可能です)。GUI をテストするために、元の英語よりも長い文字列を生成する追加のオプションがあります。
Translate Toolkit はソリューションを提供できますが、私は bash スクリプトを使用したより簡単なアプローチを探していました。[changesDictionary.txt] ファイルを作成し (この投稿の最後にある形式を参照)、言語ファイルをパラメーターとして次のスクリプトを実行します。
# 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
スクリプトは、次の形式の [changeDictionary.txt] ファイルを探します。
"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"
この例を使用することも、独自のものを作成することもできます。ファイル内の最後の 3 つの変更文字列に注意してください。これは、行末とパラメータを通常の状態に戻すためです。スクリプトを簡素化するためにこのアプローチを選択しました (パフォーマンスは最適化されていないと思います)。
Tethras ( www.tethras.com )でのサービスの一環として、疑似ローカリゼーションを提供しています。疑似ローカリゼーションは無料です。文字列内のすべての文字にアクセントを付け、テキストの長さを 30% 延長します。これは、ハードコードされた文字列をテストするだけでなく、翻訳中のテキスト拡張によってレイアウトがどうなるかを確認するのにも役立ちます。
例:
平文
Wè prôvïdè psèúdô lôçálïzátïôñ ás párt ôƒ ôúr sèrvïçè át Tèthrás (www.tèthrás.çôm). ôñè two thrèè ƒôúr ƒïvè sïx Psèúdô lôçálïzátïôñ ïs ƒrèè. ôñè two thrèè Wè áçèñt áll ôƒ thè çháráçtèrs ïñ ¥ôúr strïngs áñd èxtèñd the lèñgth ôƒ thè tèxt b¥ 30%. ôñè twô thrèè ƒôúr ƒïvè sïx Thïs wïll hèlp ¥ôú tèst ñôt ôñl¥ ƒôr hárd çôdèd strïñgs, bút wïll álsô lèt ¥ôú sèè whát háppèñs tô ¥ôúr lá¥ôúts dúè tô tèxt èxpáñsïôñ dúrïñg tráñslátïôñ. ôñè two thrèè ƒôúr ƒïvè sïx sèvèñ èight ñïñè tèñ
ローカライズ可能な文字列
"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
Apple が提供するツールを使用できます。リソース プログラミング ガイドの文字列セクションですべて説明されています。