djangoを使って中国語ブログを作っています。投稿テキスト、ブログ タイトル、ブログ ナビゲーション、コメントや連絡先フォームのラベル タグなど、制御できるものはすべて中国語で記述します。私が制御できない唯一のことは、「このフィールドは必須です。」、「有効な電子メール アドレスを入力してください。」などのエラーを送信するフォームです。django のコメント フレームワークとフォーム ライブラリを使用してコメント フォームと連絡先フォームを作成しているため、その英語版を中国語版に置き換える方法がわかりません。
だから私はジャンゴの国際化に頼っています。django ドキュメントに続いて、django が提供するフォームの元の html ファイルに翻訳文字列を追加します。
{% for error in field.errors %}
<li>{% trans error %}</li>
{% endfor %}
{% for error in form.sender.errors %}
<li>{% trans error %}</li>
{% endfor %}
次に、プロジェクトのルート ディレクトリにメッセージ ファイルを作成し、「django.middleware.locale.LocaleMiddleware」を MIDDLEWARE_CLASSES 設定に追加します。
.po ファイルでは、{% trans 'Welcome to my site' %} のように、定数文字列に記録があります。
msgid "Welcome to my site."
msgstr ""
しかし、{% trans error %} のような変数の内容には記録がありません。
私はまだ続けて、ブログをリロードします。「このフィールドは必須です」と表示されました。はコメント フォームと連絡先フォームの両方で中国語に翻訳されていますが、「有効なメール アドレスを入力してください」は英語のままです。次のように、手動で新しいレコードを追加してみます
msgid "Enter a valid email address."
msgstr "XXXXXXX"
.po ファイルに変換しますが、効果はありません。
なぜdjangoはいくつかのエラーメッセージを翻訳し、他のエラーメッセージを無視するのですか?
django が一部の文字列を自動的に翻訳できない場合、または django が自動的に提供する翻訳が気に入らない場合、独自の翻訳を提供できますか? もしそうなら、.poファイルには対応するレコードがないので、翻訳された文字列をどこに置くのですか?