私たちは人が写真を比較したり、アプリケーションのローカライズをテストしたりするのを助けます

皆さん、こんにちは。

それはテストについてであり、むしろローカライズのテストについてでさえあります。
一般的なケースでは、2つの画像の違いの検索を容易にするタスクにも適用できます。





私はついに自分のアイデアを人々に見せることに決めました。誰かが重宝する可能性があります。

タスク条件:
アプリケーションがあり、そのデスクトップインターフェイスが多くの言語に翻訳されているため、すべてがすべての言語に翻訳されていることを確認する必要があります。
心配なのですが、言語を知らなくても正しいローカリゼーションをどのように確認できますか?
(現実の条件下では、コントロールからテキストを取得することはできません。つまり、必要なコントロールに必要なテキストが含まれていることを確認することはできません。

生活を簡略化するために、すべての可能なテキスト(すべての言語)のアプリケーションのスクリーンショットを受け取るスクリプトを作成します(この場合、アプリケーションごとに200枚未満のスクリーンショット)。

出力には、言語の名前と多数のスクリーンショットを含むフォルダーがあります。
今から分析する必要があります。
理論的には、すべてが大丈夫かどうかにかかわらず、人はこの束全体を見て、外国語の奇妙な碑文を見ることが予想されます...
これは現実ですが、そのような人の生活を楽にします。

アイデア
言語のセットには、人によく知られている1つの言語があります。通常は英語であり、通常、人はその言語のアプリケーションを非常によく知っています。
よく知られている言語を「不明」と「比較」しましょう。そうすれば、写真に何が期待されているかを理解しやすくなります。
T.O. 最も単純な場合-「未知の」言語に混ぜます-既知の
例えば

スクリーンショットがありました
001-danish.png
002-danish.png
など

英語を混ぜます
次のようなものが得られます
001-danish.png
001-english.png
002-danish.png
002-english.png

現在、人は一貫して写真を比較し、必要に応じて写真を切り替えて、コンテキストを把握しながら「比較」することができます。何かが間違っていることを理解しやすくなります。

一般に、それはすでに簡単です。

アイデア開発
些細なことはまだありますが、彼らが何かを翻訳するのを忘れたことを見るのはいいことです。 テキストは収縮したままで、通常は英語です。
言語間をクリックするだけでスキップできます。

しかし、ここで2番目のアイデアが生まれました。人を助けて、写真のさまざまな領域を強調しましょう。 人はどこを見るべきかをよく知っており、翻訳しなかったことは驚くべきことです。

それはどのように見えますか。




ここで、アルバムアーティスト、作曲家、ディスク番号に翻訳がないことがわかります。


この「美」はimagemagicで行われます
コンポジットなどの関数のみを使用します。

これがruby + rmagicの関数スクリプトです

def CompareImage_v2(file1,file2,outname1,outname2) f1 = Magick::Image.read(file1).first f2 = Magick::Image.read(file2).first difference = f1.composite(f2, Magick::CenterGravity, Magick::DifferenceCompositeOp) # Make a blurry copy. blurry = difference.blur_image(0.0,4.5) mask = blurry.threshold(Magick::QuantumRange*0.02) mask2 = mask.edge(1) mask2 = mask2.level_colors("black", "red", true) # change blob color result=f1.composite(mask, Magick::CenterGravity, Magick::DifferenceCompositeOp) result=result.composite(mask2, Magick::CenterGravity, Magick::DifferenceCompositeOp) result.write(outname1) { self.quality = $image_quality } result=f2.composite(mask, Magick::CenterGravity, Magick::DifferenceCompositeOp) result=result.composite(mask2, Magick::CenterGravity, Magick::DifferenceCompositeOp) result.write(outname2) { self.quality = $image_quality } GC.start #memory leak fix end 


理論的には、きれいなコンソールimagemagicで行うことができます-ルビー版の私見は私よりも適しています;)

方法は理想からほど遠い
彼は特定のタスクを解決します
重要な制限は、ウィンドウはすべての言語で同じである必要があり、ウィンドウ内のすべての位置が保持され、テキストのみが異なる必要があるということです。

完全なスクリプトを表示できます
$ in_foldeには、eng、fre、gerのスクリーンショット形式のフォルダーがあり、$ out_folderの出力が結果です。

行末のトリミングの確認も人の良心にかかっていますが、通常は常に「。」があります。極端な場合は、「fakelanguage」と入力してそのようなものを検索できます。

あなたの瞬間とこの問題を解決する方法を楽しみにしています。
ps必要に応じて、Windowsでrmagicを使用する方法を投稿できます...

敬具セルゲイ・エロヒン、ハリコフ。

Source: https://habr.com/ru/post/J140971/


All Articles