Pyramid は翻訳に gettext *.po ファイルを使用します。これは、アプリケーションを国際化するための非常に優れた安定した方法です。1 つの欠点は、アプリ自体から変更できないことです。通常のユーザーが自分で翻訳を変更できるようにする方法が必要です。Djangoはファイルを直接変更することを許可し、変更後にアプリ全体を再起動します。変更は頻繁に行われるため、私にはその自由がありません。
このタスクに役立つパッケージが見つからなかったため、Localizerをオーバーライドすることにしました。私のアイデアは、 ZopeプロジェクトがLocalizerで登録済みドメインを検索し、見つからない場合はデフォルトの翻訳戦略に戻るように、翻訳ドメインを使用することに基づいています。
問題は、ローカライザー自体にカスタム翻訳ソリューションを配置する良い方法が見つからなかったことです。私が考えることができるのは、get_localizerメソッドを再実装し、 Localizer全体を書き直すことだけです。ただし、マッピングの補間や翻訳文字列に関連するその他の微調整など、ここにコピーペーストする必要があるものがいくつかあります。