2017-09-19 1 views
0

ugettextへのforamtの使用方法は?ugettextへのユーザーフォーマット

# is not valid code 
from django.utils.translation import ugettext as _ 

def index(req): 
    return _('Hello world {}').format('Users') 

鉱石使用(сreateもっと重複):

_('Hello world {}'.format('Users')) 
+3

文字列 'Users'を翻訳するかどうかによって異なります。 – Sayse

+0

@Sayseなぜですか?文字列: "Hello world Users"が機能します。 – users

+0

私の前のコメント、またはあなたがあなたのコメントに何を意味していたのかは不明です – Sayse

答えて

4

" 'こんにちは、世界{}'" 最初の意志マーク翻訳可能文字列として及び(最終的には翻訳された)文字列にformat('Users')を適用します。あなたの.poファイルに「Hello world {}」があります

format('Users')は、Hello world {}に最初に適用されるので、 「Hello world Users」になります。実際には、「Hello world Users」文字列をugettextに渡す場合とまったく同じです。

翻訳にはformat()の使用について尋ねているので、最初に(実際にはリテラル文字列 "Users"の代わりに引数としていくつかの変数を使用している)と仮定します。

実際には、キーワードargs(つまり_('Hello world {users}').format(users=somevarhere))を使用することをお勧めします。トランスレータは、プレースホルダが何を意味するかについてヒントを持ち、複数のプレースホルダを持つ文字列の場合、ターゲット言語に従って並べ替えることができます。

関連する問題