2

Yiiは、en_us言語の翻訳メッセージファイルを提供していません。代わりに、コアメッセージが正しいことを信頼することが期待されます。

コアメッセージが保持されている場所を見つけることに成功した場合でも、コアファイルをいじりたくありません。これは、A。アドバイスが不適切であり、B。将来のバージョンリビジョンで変更が上書きされるためです。

他の言語のメッセージファイルをコピーして、翻訳されたメッセージが英語のメッセージと同じになるようにすべてのメッセージを手作業で編集する唯一の方法はありますか?修正が必要な1つの単語。

私がこれを取り上げる理由はこれです...

存在しないページに移動すると、エラーメッセージは次のようになります。'要求されたビュー"{name}"が見つかりません。' 「要求されたビュー「{name}」が見つかりませんでした。」

私は、彼らがこのステートメントで時制を混合していると主張します(「要求された」=過去形および「is」=現在形)。

正しいか間違っているかに関わらず、私は彼らの文法に「不快」です。

4

2 に答える 2

4

これを機能させるためにコアファイルにパッチを当てる必要はありません。http://www.yiiframework.com/wiki/18/how-to-customize-yii-core-messages/を ご覧ください。

main.php で言語を en_us に設定しようとすると、protected/messages/en_us でローカルの yii.php を使用することを期待して、うまくいきません。main.php の「en_us」の言語設定がコア言語と同じであるため、翻訳されません。そのため、翻訳を強制する必要があります。

解決策は、変更/修正したいメッセージのみを上書きする新しい言語を作成することです。したがって、上記のリンクに示されている例に従って、main.php の言語として de の代わりにenを使用します。protected/messages の下に de フォルダーではなく en フォルダーを作成します。

次に、ローカルの en フォルダーにカスタマイズした yii.php ファイルを作成します。

return array (
  'The requested view "{name}" is not found.' => 'The requested view "{name}" was not found.',
);

この方法では、コア ファイルを調整する必要はありません。また、変更はフレームワークのバージョン アップグレード後も維持されます。

参考までに、GREP を使用して見つけた Yii::t(' yii ',...) 呼び出しが実際には Yii::t(' zii ',...) に対するものである場合は、代わりに zii.phpファイルが必要です。protected/messages/en フォルダー内の yii.php ファイル。上記の yii.php コードとまったく同じフォーマットを使用します。

これは、検索結果がない場合に返されるようなメッセージに役立ちます。

于 2010-11-18T06:18:39.823 に答える
4

Yii はオープンソースです。パッチを提出してみませんか?

メッセージは yii-read-only/framework/messages/ にあります。yii-read-only/framework/messages/config.php も参照してください。

また、yiic のメッセージ コマンドを使用することもできます。

実際の問題については、fgrep でメッセージを見つけることができます。

fgrep -rn "要求されたビュー" *

そして結果:

framework/web/actions/CViewAction.php:110:              throw new CHttpException(404,Yii::t('yii','The requested view "{name}" is not found.', 

そこに行って、SVNトランクをチェックアウトし、変更してから「svn diff」を実行し、Googleコードでパッチを送信してください。

于 2010-02-06T14:27:29.813 に答える