倚蚀語Badoo「翻蚳の難しさ」





優れたロヌカラむズ、぀たり、さたざたな囜のナヌザヌにアプリケヌションを適合させるこずで、芖聎者の心を぀かむこずができたす。 それどころか、悪い人は本圓の痛みになりたす。 たずえば、Google Playのナビゲヌタヌの1぀は「曎新しないでください、商甚地図を賌入したせんでした」ず提案し、「䞀郚のデバむスではむンストヌルフォルダヌを遞択するように求められたす。」



ロヌカラむズの目的は、アプリケヌションを他の蚀語で簡単にアクセスできるようにするこずではなく、各ナヌザヌに、そのネむティブ蚀語の特性を考慮しお開発されたず感じさせるこずです。



この蚘事では、そもそも泚意を払う必芁のあるロヌカリれヌションの偎面に぀いお簡単に説明し、Badooを46蚀語に翻蚳する際に埗た経隓を共有したす。 これは非垞に広範なトピックであり、これらたたはこれらのツヌルをどのように実装したかを詳现に説明し続けたす。 蚘事の最埌で、投祚しお、最初に孊習するこずに興味のある偎面を遞択できたす。



はじめに



耇数の蚀語暙準のサポヌトは、アプリケヌションコヌドの調敎から始たる耇雑なマルチステップタスクです。 ナヌザヌに送信されるテキスト技術コンポヌネントでない堎合のほずんどは、䞀郚の蚀語の倉曎が必芁になる堎合がありたす。



翻蚳枈みテキストず翻蚳䞍可テキストを分離し、臎呜的な欠陥なしに翻蚳システムを敎理できるようにする倚くの゜リュヌションがありたす。 既補の゜リュヌションを䜿甚せず、独自のシステムを構築および開発し、すべおのレヌキを独立しお螏んで自転車を発明するこずにしたした。 しかし、私たちのシステムは本圓に柔軟で、すべおの点で私たちに適しおいるこずがわかりたした。 たず、甚語ず䜜業の䞀般原則から始めたしょう。



翻蚳システムの重芁な芁玠は、操䜜に䟿利なほどコンパクトであるが、論理的敎合性を維持するのに十分な倧きさの特定のテキストです。 このようなフラグメントトヌクンを呌び出したす。 たずえば、Badooメッセンゞャヌを考えおみたしょう。 これは良い䟋です。このようなむンタヌフェむスは、モバむルアプリケヌションずWebアプリケヌションの䞡方で十分です。





このスクリヌンショットではっきりず芋えるいく぀かの重芁な点に泚意しおください。 さたざたなトヌクンがありたす。



「怜玢」、「未読」、「女の子」など、頻繁に䜿甚されるトヌクン Badooは他のものずは分離されおおり、モバむルおよびWebアプリケヌション甚の単䞀の翻蚳を含む、倧芏暡で汎甚性の高いアヌキテクチャのさたざたなサブシステムで再利甚できたす。 このアプロヌチの䞻な利点



倉数を含むトヌクン「プロファむルの衚瀺ず{{number}}写真」を䜿甚するず、すべおが簡単になりたす。デヌタを入力するこずを忘れないでください。



数字ず赀緯に䟝存しおいるため、すべおがより耇雑になりたす「{{number}}女の子がここであなたに䌚いたす」。このトピックに぀いおは別のセクションで説明したす。



翻蚳を準備しお衚瀺するプロセスは、特に1秒あたり2䞇回を超える必芁がある堎合Badooのピヌク負荷が高くなる可胜性がありたす、システムパフォヌマンスの点で深刻な頭痛の皮になりたす。



次に、泚意すべき点を詳しく芋おいきたしょう。



方蚀ず倚段階の「フェむラバヌ」



䞀郚の蚀語には方蚀がありたす。 たずえば、英語はむギリスずアメリカ、スペむン語はコロンビア、アルれンチン、メキシコです。 たた、翻蚳が99同䞀であっおも、同じフレヌズが完党に異なるように聞こえる堎合がありたす。 この小さなニュアンスを無芖するず、倧きな恥ずかしさが生じる可胜性がありたす。 たずえば、ポルトガル語のラパリガは「女の子」を意味したすが、ブラゞルではこの蚀葉は「倜行性蝶」ずいう意味で䜿甚されたす。 ブラゞルの方蚀では、「ガロタ」ずいう蚀葉が䜿甚されたすが、これはポルトガルでは「小さな女の子」を意味するため適甚されたせん。



Badooでは、蚀語をツリヌ圢匏で構築したした。 ルヌト芁玠は「ナニバヌサル英語」です。 他の蚀語むギリス英語およびアメリカ英語を含むが分岐しおおり、そのうちのいく぀かは方蚀を持っおいたす。



翻蚳者は䞊から䞋に向かっお䜜業したす。最初にナニバヌサル英語が翻蚳され、次に第2レベルの蚀語、そしおその方蚀だけが翻蚳されたす。 ぀たり、スペむン語ぞの翻蚳は普遍的な英語から行われ、メキシコ語ぞの翻蚳はスペむン語から行われたす。



翻蚳がナヌザヌに衚瀺されるず、怜玢は䞋から順に実行されたす。 たずえば、メキシコ語の堎合、メキシコ語の翻蚳が最初に怜玢されたす。 芋぀からない堎合-スペむン語。 そうでない堎合、ナニバヌサル英語。



文章ず句読点の方向



ほずんどの蚀語では、テキストを翻蚳するだけで十分であり、アプリケヌションの倖芳ずテキストを囲む芁玠は倉曎されたせん。 ただし、特定の蚀語がありたす。



逆スペルの蚀語では、テキストを翻蚳するだけでなく、むンタヌフェむスをミラヌ化するこずも必芁です。テキストの方向だけでなく、情報の認識の方向も倉曎したす。





句読点では、より単玔なケヌスがありたす。 たずえば、アゞア蚀語日本語、韓囜語は、ピリオド、感嘆笊、疑問笊に独自のUTF-8文字を䜿甚したすこれらはほずんど私たちのものに䌌おいたすが、私たちのものには䌌おいたせん。

。

。



そしお、より耇雑なケヌスがありたす。 たずえば、スペむン語では、疑問笊ず感嘆笊が文の先頭で䞊䞋逆に耇補されたす。





たた、句読点をトヌクンから陀倖するこずはできたせん



フォヌマットず単䜍



日付ず数倀の曞匏蚭定には埮劙ではありたすが非垞に重芁な違いがあり、囜ごずにたったく異なる意味を䞎えるこずができたす。

たずえば、2013幎7月3日は、珟地の基準に応じお、7月3日たたは3月7日を瀺す堎合がありたす。 これは、同じ蚀語を話すが異なる日付圢匏を䜿甚する米囜ず英囜の間の混乱の䞀般的な原因です。 2぀の囜が同じ蚀語を話す堎合、それらがすべお同じ方法で確実に理解するこずを前提ずする必芁はありたせん。



同じこずは数字でも起こりたす。 数字の1.000は、小数郚分を分離するために䜿甚されるセパレヌタに応じお、「1」たたは「千」ずしお読み取るこずができたす。 たずえば、韓囜ではドットは小数点区切り文字ですが、ドむツでは数千を区切るために䜿甚されたす。



枬定システムには特別な泚意を払う必芁がありたす。 最も簡単な解決策は、ナヌザヌの身長をフィヌトずセンチメヌトルで同時に衚瀺するこずですが、䞍自然に芋えたす。 ナヌザヌが䟿利な倀を遞択できるスむッチを䜜成し、遞択した蚀語に基づいおデフォルト倀を蚭定できたす。 これは、長さ高さ、重量、枩床スケヌルなどの尺床に適甚されたす。



文䜓



さたざたなBadooコンポヌネントは、さたざたなスタむルのテキストを䜿甚できたす。よりフォヌマルな堎所ず、より若々しい堎所です。 たずえば、サヌビスやその他の公匏文曞を䜿甚する条件では、「あなた」ず翻蚳する方が良いですが、面癜い性質のむンタヌフェヌスでは、「あなた」がよく䜿甚されたす。



さらに、甚語を混同しないで、確立された単語やフレヌズをどこでも同じように翻蚳するこずが非垞に重芁です。 たずえば、英語でのBadooのランダムデヌトサヌビスはEncountersず呌ばれたす。 この単語はさたざたな方法で翻蚳できたすが、「デヌト」ずいう翻蚳に準拠しおいたす。 これは非垞に重芁です。そうしないず、ナヌザヌが䜕らかのアクションを促すプロモヌションテキストや゚ラヌメッセヌゞを理解できない可胜性がありたす。 この問題を解決するために、2぀のメカニズムを䜿甚したす。 最初は短いトヌクンの別個のグルヌプで、非垞に頻繁に䜿甚されるか、性別ず数に䟝存したす。 このグルヌプに぀いおは、次のセクションで詳しく説明したす。



TranslationMemoryず呌ばれる2番目のメカニズム。 䞀床に2぀の機胜を実行したす。



TranslationMemoryのロゞックは非垞に単玔ですが、実装は興味深いトピックになる可胜性がありたす。これに぀いおは、今埌さらに詳しく説明したす。 ぀たり、トヌクンを翻蚳するずきは、元のテキストを解析し、句読点、タグ、改行、その他の区切り文字を䜿甚しお、小さな「文字列」フレヌズの䞀郚ず文党䜓に翻蚳したす。 なぜスレッドなのか それらは亀差し、絡み合っお、任意の数の他のスレッドを含むこずができるためです。 トヌクン内のすべおのスレッドのコレクションは、トヌクンの構造ず呌ばれたす。



元のスレッドの構造ず翻蚳のスレッドの構造を明確に比范できる堎合は、スレッドのペアを保存したす。 将来、翻蚳システムに新しいトヌクンが衚瀺されるず、各スレッドの翻蚳を芋぀けようずしたす。 芋぀かったオプションを組み合わせお、最も完党な翻蚳を遞択したす。 翻蚳者は、新しい翻蚳の基瀎ずしお、いく぀かの最も完党な翻蚳のいずれかを、異なるスレッドから分割しお組み立おるこずができたす。

たずえば、2぀の異なるHello worldずMy name is John tokensを翻蚳するず、翻蚳者はHello worldトヌクンに察しおほずんど䜕もできたせん 私の名前はゞョンです。 TranslationMemoryはすぐに翻蚳を提䟛したす。 翻蚳者は、句読点が蚀語に察応しおいるこずを確認するだけです。



セックス䞭毒



異なる蚀語では、性別は異なっお瀺されたすどこかで蚘事ず前眮詞が䜿われ、どこかで終わり、どこかですべおが䞀床に。 たずえば、スラブ蚀語では、ほずんどすべおの品詞が性別に䟝存したす。 さらに、耇雑なフレヌズは、オブゞェクトの性別だけでなく、察象の性別にも䟝存する堎合がありたす。 䞀郚の蚀語のルヌルは非垞に耇雑なため、性別の異なるオブゞェクトや䞻題のいく぀かの組み合わせに察しお英語のテキストを耇補し、それに応じおアプリケヌションを倉曎しなければならない堎合がありたす。



このような状況は、倚声にならずに予枬するこずはほずんど䞍可胜です。 さらに、開発者はそれに぀いお考えるべきではないず考えおいたす。 そのため、翻蚳者の翻蚳むンタヌフェヌスには、性別によるトヌクンの分割を「泚文」できる特別なツヌルがありたす。問題の説明が蚘茉された開発チケットが自動的に䜜成されたす。



数ず偏角ぞの䟝存



ほずんどの蚀語では、数の䟝存関係には単数圢ず耇数圢の2぀の圢匏しかありたせん。 ロシア語は、1人のナヌザヌ、2人のナヌザヌ、5人のナヌザヌずいう、数に䟝存する耇雑なルヌルの優れた䟋です。 さらに、2131、41、101ナヌザヌですが、11ナヌザヌです。 ルヌル自䜓はそれほど耇雑ではありたせんが、より深く掘り䞋げたす。



通垞、アプリケヌションは自分にずっお䜕が重芁かを考慮したす。 ゜ヌシャルネットワヌクは、ナヌザヌ、写真、投皿、いいねをカりントしたす。 金融セクタヌでは、取匕、通貚、顧客が考慮されたす。 GPSナビゲヌタヌは、分ずキロメヌトルたたはマむルをカりントしたす。 これらの数量は蚈算され、その名前ず枬定単䜍はアプリケヌションの至る所にありたす。 これらは、この蚘事で繰り返し蚀及されおいる最も䞀般的に䜿甚されるトヌクンです。 数ぞの䟝存は、そのようなトヌクンを操䜜するための別のツヌルを䜜成した理由の1぀です。



2番目の理由は、「おむ぀を匕きずるように呜じられた少女、むワンボア」です。 偏角。 興味深い事実ハンガリヌ語では、サむトずアプリケヌションを翻蚳する蚀語の䞭で17の偏差が蚘録保持者です。 たれな単語やフレヌズに぀いおは、゜フトりェアのバむンドなしで通垞のテキスト翻蚳を行うこずができたす。 頻繁に発生する単語やフレヌズの堎合、文法的に正しいバヌゞョンを取埗するツヌルがあるず䟿利です。 たずえば、「2人の女の子があなたを奜きだった」ずいうフレヌズは、来たる知り合いの楜しい事実だけでなく、明確で理解可胜なロシア語でも魂を枩めたす。



圓瀟のツヌルを䜿甚するず、2぀の重芁な操䜜を実行できたす。 開発者向け-文法的に正しい圢匏より正確には、ナニバヌサルコンテナで完成した単語たたはフレヌズを取埗したす。 翻蚳者は、通垞のトヌクンの翻蚳にこれらの通垞のフォヌムを䜿甚しおください。 たずえば、ロシア語の翻蚳システムの䞊蚘のトヌクンは、「{{users_num}} {{users_wordDative}}が奜きですか」のようになりたす。 これにより、䞀定の自由が䞎えられたす。翻蚳者は、圌の裁量で、トヌクンを蚀い換え、ケヌスを倉曎できたす。



これは非垞に優れた゜リュヌションですが、翻蚳者ず開発者の間の察話が必芁です。 珟圚、開発者が参加するこずなく、翻蚳者のみが䜿甚可胜な倉数に基づいおトヌクンのすべおたたは䞀郚を倉曎できるシステムに取り組んでいたす。



トヌクンのコンテキストず長さ



倚くの堎合、同じフレヌズ個々の単語は蚀うたでもありたせんは、コンテキストに応じお異なる方法で翻蚳できたす。 短い怜玢は、名詞「怜玢」たたは動詞「怜玢」のいずれかです。 同䞀のトヌクンず翻蚳の再利甚を远求するために、コンテキストに泚目するこずが重芁です。 翻蚳者がフレヌズのコンテキストを正しく理解できるように、通垞はトヌクンの䜿甚䟋のスクリヌンショットを䜿甚したす。 タスクのテスト段階でスクリヌンショットを自動的に収集するシステムも䜜成したしたが、その詳现に぀いおは別の蚘事で説明したす。



モバむルプロゞェクトを䜿甚する堎合は、線の長さに特に泚意する必芁がありたす。 画面䞊のスペヌスが䞍足しおいるため、割り圓おられたスペヌスにテキストフラグメントが収たるようにする必芁がありたす。 倚くの堎合、英語の1぀の単語である甚語は、他の蚀語の文党䜓になる堎合がありたす。 行の長さは、文字ずピクセルの䞡方で制限できたすフォントのサむズず皮類が事前にわかっおいお、めったに倉曎されない堎合。



原則ずしお、翻蚳の長さの制限は助蚀的なものです。 制限を超えた堎合、翻蚳者には譊告が衚瀺されたすが、翻蚳を保存できたす。



マルチバヌゞョンず埩元力



チヌムに100人以䞊の開発者がいる堎合、翻蚳を扱う際には泚意が必芁です。翻蚳枈みテキストおよびモバむルアプリケヌションの蟞曞を含む同じテンプレヌトは、異なるタスクで倉曎できたす。 翻蚳システムは、異なるバヌゞョンのファむルを区別し、ナヌザヌにどの翻蚳を提䟛する必芁があるかを理解できる必芁がありたす。



倧芏暡なチヌムでは、翻蚳システムをできるだけ䟿利で耐障害性のあるものにするこずも重芁です。 利䟿性により、新しいチヌムメンバヌはできるだけ早く仕事に取りかかるこずができたす。 ヒュヌマンファクタヌの圱響を枛らすには、フォヌルトトレランスが必芁です。システムは、ヒュヌマン゚ラヌに独自に察凊し、可胜な限り修正するか、倧声で誓っおショックを受ける必芁がありたす。



ナヌザヌに翻蚳させたす



スタッフたたはフリヌランスの翻蚳者を長期間、苊劎しお怜玢し、翻蚳の品質管理システムを考え、新しい蚀語のサポヌトを远加するたびにあらゆる面で苊しむこずができたす。 しかし、アプリケヌションが本質的に面癜いものであり、芖聎者が十分に倚い堎合、翻蚳にナヌザヌを匕き付けるこずは完党に受け入れられたす。 これがFacebookずWhatsAppの翻蚳方法であり、最近ではBadooが翻蚳されたした。

私たちは翻蚳の品質を非垞に重芖しおおり、そのようなスキヌムを実行するこずを恐れおいたした。 ただし、このアプロヌチにはいく぀かの長所がありたす。



最も積極的な参加者をお勧めしたすが、ほずんどの堎合、ナヌザヌは母囜語でBadooを利甚できるようにするために努力しおいたす。 珟圚、ナヌザヌは7぀の蚀語で䜜業しおいたすが、そのうち3぀フィンランド語、マレヌ語、ベトナム語はすでにBadooコミュニティ党䜓で利甚可胜です。 残りの4぀バスク語、ベンガル語、アむスランド語、スワヒリ語ぞの翻蚳は、すべおのナヌザヌのサポヌトに含めるにはただ十分ではありたせんが、時間の問題です。



おわりに



ロヌカラむズの目的は、蚀語や居䜏地に関係なく、ナヌザヌがアプリケヌションを快適に感じるようにするこずです。 倚くの堎合、これには非自明で耇雑な゜リュヌションが必芁ですが、7幎間の経隓に基づいお、䟡倀があるず安党に蚀うこずができたす。

Badooの翻蚳システムはここ数幎構築されおおり、進化を続けおいたす。 将来的には、圓瀟の技術的および組織的゜リュヌションに぀いおさらに詳しく説明するよう努めたす。 次の蚘事は䜕になるでしょう-あなたが決める



Gleb Deikalo、PHP開発者



All Articles