[解決済み] ugettext_lazy はどのような場合に使用するのですか?
質問
ugettextの使用について質問があります。
ugettext_lazy
を翻訳に使用します。
私は、モデルにおいて、私は
ugettext_lazy
一方、ビューでは ugettext です。
しかし、他の場所、私が使うべきは
ugettext_lazy
もあるのでしょうか?フォームの定義はどうでしょうか?
両者にパフォーマンスの違いはあるのでしょうか?
編集する
そしてもうひとつ。時々、代わりに
ugettext_lazy
,
ugettext_noop
が使用されます。ドキュメントにあるように
ugettext_noop
の文字列は、翻訳対象としてマークされ、ユーザーに表示される前に可能な限り最新のタイミングで翻訳されます。
ugettext_lazy
を行うのでしょうか?モデルやフォームにどちらを使うべきか、まだ決めかねています。
どのように解決するのですか?
ugettext()
vs.
ugettext_lazy()
フォームやモデルなどの定義には
ugettext_lazy
なぜなら、この定義のコードは一度だけ実行されるからです (大抵は django の起動時に)。
ugettext_lazy
つまり、例えばモデル上の属性名にアクセスする度に、文字列は新しく翻訳されます - このことは、django を起動してから異なる言語でこのモデルを見ている可能性があるので、完全に理にかなっています
ビューや類似の関数呼び出しでは
ugettext
は問題なく使用できます。
ugettext
は新しく実行されるので、常にリクエストに合った正しい翻訳を得ることができます!
について
ugettext_noop()
として ブライス の回答で指摘されているように、この関数は文字列を翻訳可能であるとマークしますが、翻訳されていない文字列を返します。これは、翻訳された文字列と翻訳されていない文字列の2つの場所で文字列を使用する場合に便利です。次の例を見てほしい。
import logging
from django.http import HttpResponse
from django.utils.translation import ugettext as _, ugettext_noop as _noop
def view(request):
msg = _noop("An error has occurred")
logging.error(msg)
return HttpResponse(_(msg))
関連
-
python string splicing.join()とsplitting.split()の説明
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み] Pythonの "assert "はどのように使うのですか?
-
[解決済み] を付けるべきでしょうか?(shebang)を付けるべきか、またどのような形で付けるべきか?
-
[解決済み] Pythonのdictsで'has_key()'と'in'のどちらを使うべきですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
任意波形を生成してtxtで保存するためのPython実装
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない