1

パラメータに基づいて存在または削除された部分で動的に構築されるフレーズが与えられた場合、ローカリゼーションをサポートするために考えられる解決策は何ですか? たとえば、動的に挿入された部分を表す太字の部分を持つ次の 2 つの句について考えてみましょう。

  • 犬は発見され、犬小屋を持っていて、ボールを追いかけています。
  • その犬は白くて、輪になって走っています

英語の場合、これは単にフレーズ部分を連結するか、パラメーターに基づいて選択できるリソース ファイルにいくつかのトークンで満たされた文字列を含めることで解決できます。しかし、これらのソリューションは、他の言語にローカライズする必要があるか、より多くのパラメーターが必要になると、機能しないか、すぐに醜くなります. 上記の例では、犬の外観が常に存在する唯一の部分であると仮定すると、ローカライズされたリソースの実装は次のリソース文字列で構成される場合があります。

 AppearanceOnly:    The dog is %appearance%.
 ActivityOnly:      The dog is %appearance% and is %activity%.
 AssessoryOnly:     The dog is %appearance% and has %accessory%.
 AccessoryActivity: The dog is %appearance%, has %accessory% and is %activity%.

これは機能しますが、必要な文字列の数は、パラメーターの数に応じて指数関数的に増加します。

この課題を解決するのに役立つベスト プラクティスを広く探しています。私が見つけた唯一の解決策は、単純にフレーズを言い換えることですが、自然な文の構造を失うことになります。

  • 犬:斑点,犬小屋,ボールを追いかける

提案、リンク、考え、例、または「あなたは頭がおかしい、言い直してください!」フィードバックは大歓迎です:)ありがとう!

4

1 に答える 1

1

最良のアプローチは、おそらく文を別の文に分割することです。犬には犬小屋があります。その犬はボールを追いかけています。」これは退屈に見えるかもしれませんが、最初のものを除いて「犬」のすべての出現を置き換えると、重大な代名詞の問題が発生します. 多くの言語では、使用される代名詞は、それが参照する名詞によって異なります。(英語でも、犬が彼なのか、彼女なのか、それなのかははっきりしません。)

分離の理由は、異なる言語には異なる動詞体系があるためです。たとえば、ロシア語では、主語を共有する 3 つの動詞を含む 1 つの文に 3 つの文を実際に結合することはできません。(ロシア語では、動詞「to be」を現在形では使用しません。代わりに、単に「Dog – spotted」と同等の意味で、「to have」に対応する動詞はありません。代わりに、次の動詞を使用します。 「at dog doghouse」に相当する. フィンランド語は「to have」に関して似ています. このような問題は、「所有する」または「所有する」に対応する単語を使用して、「強制的な」ローカリゼーションで処理されることがありますが、控えめに言っても、結果は奇妙に見えます。)

さらに、言語では、主語、動詞、および目的語の自然順序が異なります。あなたの最初のアプローチは暗黙のうちに SVO 注文を前提としています。マークのない通常の語順は常に主語から始まると考えるべきではありません。"%subject% %copula% %appearance% (ここで、%copula% は英語で「is」、「are」、または「am」) のような文型を使用する代わりに、2 つのパラメーターを指定して関数を呼び出す必要があります。言語依存のコピュラがあるかコピュラがなく、言語の規則によって語順が決定される文を返します. はい、複雑になります. 生成されたステートメントのローカライズは、処理するとすぐにかなり複雑になります.構造的に非常に類似した言語以外は何もありません。

于 2012-08-14T09:03:16.877 に答える