2

私はこれまで英語以外を翻訳したことがなかったので、誰かがこれを調べてくれることを期待していたので、文法上の矛盾があるかどうかわからない.

私は持っている:

en:
  articles:
    name: "Articles"

  comments:
    name: "Comments"

  # things
  no_results: "There are no %{things}"
  my: "My %{things}"

次に、ビューファイルで、たとえば次のようにします。

#title= t('articles.name')

%ul
  %li= link_to t('my', things: t('articles.name')), articles_path(user)

.no_results= t('no_results', things: t('comments.name').downcase)

私がやろうとしているのは、翻訳を DRY することですが、メソッドを使用して混乱することもありません。

  • 複数形にする
  • 特異化する
  • 小文字
  • 大文字にする

テキストで使用されるモデルの最も一般的な形式は、大文字と複数形のようです。そのため、「Articles」と「Article」または「article」を選択しました。ビューファイルと次のような方法で上記の方法を優先しますか?

articles:
  one: "Article"
  other: "Articles"

..この混乱に発展する可能性があります:

articles:
  one:     "Article"
  other:   "Articles"
  one_l:   "article"
  other_l: "articles"
4

2 に答える 2

2

言語が異なれば、文の作成方法に関する規則も異なります。翻訳をドライアップすると、外国語で文法的に正しくない文になる可能性があります。一度にテキストの論理ブロックに固執することをお勧めします。たとえば、段落、文、式、単語などです。

たとえば、アプリケーションを翻訳したいすべての言語で、「my」という単語は常に「記事」という単語の前に来て、「my」の単語は 1 つだけであると想定しています。

一部の言語では、「my」のバージョンは、それに付随する単語によって異なる場合があります。ブルガリア語をよく知っているので使用します。「私の車」は「Moiata kola」に、「私のトラック」は「Moiat kamion」に翻訳されます。「私の」の直訳ではありません。

また、一部の言語では、「Articles」が「my」の前に来る「Articles of my」のように言わなければならない場合もあります。さまざまな言語で「articles」が「my」の前に来るように設定できますが、翻訳に複数の変数が含まれていると問題が発生する可能性があります。

「私の記事」、「記事はありません」、「私の車」、「車はありません」など、それぞれに別の行を用意します。

于 2012-07-03T17:24:41.547 に答える
1

あなたがあなたの投稿で説明した実践、すなわち:

articles:
 one: "Article"
 other: "Articles"

私見は有効で適切です。少なくとも、私が取り組んできたプロジェクトでよく遭遇しました。あなたが言及した「混乱」に関して:

  one_l:   "article"
  other_l: "articles"

downcase基本的に任意の文字列でaを呼び出すことができるので、心配する必要はありません。与えられた言語で単数形と複数形を持っている限り、あなたは良いです。

の配置の違い%{things}は当然です。収まる場所に配置します。たとえば、5つの異なる言語で:

 not_saved:
    one: ! '1 fejl medførte at denne %{resource} ikke kunne gemmes:'
    other: ! '%{count} fejl medførte at denne %{resource} ikke kunne gemmes:'

 not_saved:
    one: ! '1 error prohibited this %{resource} from being saved:'
    other: ! '%{count} errors prohibited this %{resource} from being saved:'

  not_saved:
    one: ! '1 virhe esti %{resource} tallentamisen:'
    other: ! '%{count} virhettä esti %{resource} tallentamisen:'

  not_saved:
    one: ! 'Én feil gjorde at %{resource} ikke kunne lagres:'
    other: ! '%{count} feil gjorde at %{resource} ikke kunne lagres:'

  not_saved:
    one: ! '1 fel hindrade denna %{resource} från att sparas:'
    other: ! '%{count} fel hindrade denna %{resource} från att sparas:'

お役に立てば幸い

于 2012-07-04T08:32:32.357 に答える