2012-12-18 13 views
13

私たちは、文字列のローカライズに当社のiOSコードにしてきた方法を包括見始めるしたいと思います。我々はまだ翻訳に行く準備ができていないが、私はpseudo localizationでテストを開始したいと思います。 Localizable.stringsファイルでこのプロセスを自動化するのは簡単なはずですが、それを行うツールを見つけることはできません。率直に言えば、すべての文字列を「ENGLISH NOT」に変更したスクリプトには満足しています。そんなことがあれば。iOS擬似ローカリゼーションに適したツールはありますか?

+0

+1、さらに他のものは[ショッピング](http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-としてフラグこれかもしれませんがショッピング/)質問。 – newenglander

答えて

18

の文字列セクションで説明しています。

まずあなたがprop2poコンバータを使用してPO.stringsファイルを変換する必要があります。

$ prop2po Localizable.strings en.po 

これはのLocalizable.stringsファイルの文字列とPOファイルを作成します。ソースストリングとして(この場合、私はソースとして英語を使用しています)。

POファイルを取得したら、desired rewrite formatpodebugを使用して書き換えます。

$ 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." = "Ȧḓḓ ƈǿƞƞḗƈŧīǿƞ." 
+0

はい!これはまさに私が探していたものです。もし誰かがこれを見て、 "su/python/installup.py"を使って "su。 – Mike

+0

近いので、私は仕事に最初の2つのステップを持ってではなく、第三: '%po2prop -tのLocalizable.strings en_rewritten.po rewritten.strings' ' 処理1つのファイル...' 'po2prop:警告:エラー処理:入力en_rewritten.po、出力rewritten.strings、テンプレートLocalizable.strings: 'ascii'コーデックは位置10-11の文字をエンコードできません:序数は範囲外です(128) [######### ###################] 100% ' –

+0

あなたのPOファイルにASCII以外の文字場所のコメント?もしそうなら、[bug 2101](http://bugs.locamotion.org/show_bug.cgi?id=2101)が関連しているかもしれません。 – julen

-1

あなたは、アップルが提供するgenstringsツールを使用することができます。これは、すべてあなたがTranslate Toolkitでこれを達成することができますResource Programming Guide

+0

'genstrings'は私がすでにやっているLocalizable.stringsファイルを生成しますが、どちらのキーでも値やデフォルト値として使用できます。私はgenstringsの出力を取得し、擬似ローカリゼーションの値を変更するものを探しています。 – Mike

1

私たちはTethrasで私たちのサービスの一部として擬似的なローカリゼーションを提供しています(www.tethras.com)。疑似局所化は無料です。私たちはあなたの弦の中のすべての文字をアクセントにして、テキストの長さを30%伸ばします。これは、ハードコーディングされた文字列だけでなく、翻訳中にテキストが拡大されてレイアウトがどのようになるかを確認するのに役立ちます。

例:

テキスト

我々提供擬似局在一部としてôƒ私たちのサービスにTèthrás (www.tèthrás.çôm)。ワンツースリーƒôúrƒïvè六擬似ローカライズされ ƒrèè。一つ二つ三つ我々アクセントすべてôƒザ文字に¥我々のストリング と延びザ長ôƒザテキスト¥30%B。ワンツースリーƒôúrƒïvè六 この意志ヘルプ¥OUテストしないONL¥ƒôrハードコードされた文字列であろうが、また してみましょう¥OUを参照してください何が起こるTô¥たちのLá¥アウトに起因するテキスト拡張中 翻訳。

ローカライズ可能です。文字列

"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 ôñè "; 

翻訳の前にあなたのアプリのローカライズ可能性をテストしたいと思っています。これにより、実際の翻訳プロセスで多くの時間と労力を節約できます。

3

ですが、翻訳ツールキットでは解決策が提供されていますが、私は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]ファイルのスクリプトを見て

この例を使用するか、自分で作成することができます。最後の3文字をファイルに書き留めてください。これは、行とパラメーターの終わりを通常の状態に戻すためです。私はスクリプトを簡略化するためにこのアプローチを選択しました(私はパフォーマンスが最適化されていないと思います)。

3

私はまだここに記載されていない2つのソリューションに出くわした:

  • ソースコードに基づいてpseudolocalized .stringsファイルを生成マックのAppストアで呼び出さ無料アプリ(ドラッグ&ドロップ)。それは質問に提供されたOPと同様の文字列を生成します。

    https://itunes.apple.com/us/app/pseudolocalizer/id503026674?mt=12

  • オンライン翻訳サービスせせらぎオンは、既存の.stringsファイル(他のオプション)に基づいて自由pseudolocalized .stringsファイルを提供しています。彼らはあなたのGUIをテストするためにオリジナルの英語よりも長い文字列を生成する余分なオプションを持っています。

    http://www.ibabbleon.com/pseudolocalization.html

+1

Babble-onの無料サービスの利点は、翻訳されていない文字列を簡単に見つけることができるASIAN(漢字)と、フランス語とドイツ語のような言語を模倣するために30%長いEUROPEAN 。これはあなたのGUIをテストするのに最適です。 – Localizer

+0

もう一つの素早く無料のツールはhttp://www.pseudolocalize.comです - 擬似ローカライズされたバージョンを返すためのワンクリック – JerSchneid

+0

@JerSchneidはLocalizable.stringsファイルでは動作しません –

関連する問題