メールのテンプレートを国際化していきたいです。デフォルトでは、Pyramid1.4とChameleonを使用しています。
私は、TranslationStringをPageTextTemplateの本体として直接使用してみました。
default_email_body=r"""
Hello${salutation}${letter_comma}
... full text with several ${data.attributes} ...
Cordialment,
${sender.name}."""
email_body_template = PageTextTemplate(_('proposed-email-body',
default_email_body,
mapping=params))
email_body = email_body_template.render()
ただしemail_body
、デフォルト値の代わりにmsgidが割り当てられます。これを行うとpython setup.py extract_messages
、デフォルトのテキストが自動的に挿入されません。
翻訳ドメインを接続するために何か特別なことをする必要がありますか?
これを達成するためのより良い方法はありますか?
少しコンテキスト
私の実際の要件は、いくつかのオブジェクトから電子メールを作成することです。ユーザーがページに移動すると、そのページは通常のHTMLページを返すだけでなく、テキストがレビュー担当者に自動的に送信される電子メールを作成します。レビュー担当者はテキストをクライアントに再送信するか、拒否します。この場合、電子メールテキストのi18nには2つの可能な要件があります。
- サイトのユーザーの言語を使用して、
- または受信者(クライアント)の言語を使用する
これまでのところ1番目を選択しており、時間が許せばクライアントがそれをプッシュする場合は、2番目のオプションを実行します。
カメレオンを使用したi18nのピラミッドに関するドキュメントは、ZPTテンプレートのみを参照しており、TXTテンプレートは参照していません。しかし、私たちの電子メールテキストはプレーンテキストです。
したがって、プレーンテキストテンプレートに対してi18nを実行する方法のドキュメントにはギャップがあります。
何か案は?