CakePHP(少なくとも1.3)は、__d()関数を提供します。
あなたが翻訳したい単語の文法的意義を指定するには、「ドメイン」を使用することができ
__d($domain, $message, $return)
:それは次のように使われています。コードを書いたら、CakePHPのi18nコンソールタスクを実行します。これによりAPP/locale /に複数の.potファイルが作成され、名前は.potになります。 Filenameは$ domainなので、あなたが定義したそれぞれの文法上の意味のための.potファイルを得るでしょう(実際には、私はこれについて適切な言葉を知らない)。
CakePHPのi18nコンソールタスクは、翻訳機能のためにあなたのアプリのファイルを検索し、翻訳される文字列をファイルに配置します。少なくとも、それは動作すると思います。翻訳したいコンテンツが動的である場合(あなたの場合)、コンソールタスクはあなたの文字列を見つけることができません。つまり、自分で.potファイルを構築する必要があります。 すべて翻訳が必要なコンテンツが動的である場合は、文法的に重要な意味で翻訳機能を含むファイルを1つ作成し、コンソールタスクを実行して、少なくとも適切なファイルを作成することができます。
生成された.potファイルには、変換が必要な文字列に対して次の3行が含まれます(その文字列が複数回使用されていない限り、その場合は1つの出現があり、それぞれの発生について)。その前にハッシュタグを持つ行がちょうどあなたの参照のためである
#: /app_controller.php:129
msgid "Home"
msgstr ""
(文字列が発生した場所を確認するために)あなたがファイルを自分で構築した場合、あなたはそれを追加する必要はありません。 'msgid'は翻訳したい/ senctenceで、 'msgstr'は提供された翻訳です。 ファイルを自分でビルドするには、これらの3行を繰り返しコピーし、msgidを変更して何かを翻訳として入力するだけです。私は、これらのファイルを構築する最も簡単な方法は、最初にファイルを作成してから、コンテンツをコピーすることです(msgidはこれらすべてのファイルに対して同じです)。次に適切な翻訳を入力します。
完了後、.potファイルをAPP/locale // LC_MESSAGES /に移動し、拡張子を.poに変更します。
この方法は、翻訳機能が翻訳に必要な前に.poファイルのハードコーディングに依存しているため、翻訳する単語の数が固定されている場合にのみ有効です。あなたがユーザー入力を翻訳している場合、おそらくこれは理想的な解決策ではありません。
出典:
文法的な違いは何ですか*prvého*と* prvej *の間?どんなコンテキスト情報が必要ですか? – deceze
また、「最初の」動的ですか?私。 1→「最初」、2→「秒」などを動的に生成しますか?あなただけの文法の違いは言うまでもなく、英語だけではかなり難しいです。この場合の簡単な選択は、序章を避け、「レベル1のパート1の等級1の評価」を出力することです。そうでなければ、たくさんのコードを書く必要があります。 :) – deceze
文法上の違いは、男性の性別、性別、単数については_prvého_の形式であるということです。 _prvej_は女性の性別、性別、単数形の形式です。はい、スロバキア語では、物事は自分の性別を持つことができます。 ノーマルが必要です。私は数字で置き換えることはできません –