8

ガイドに従おうとしましたが、十分に明確ではありません。

  1. これをurls.pyに追加しました

    urlpatterns = patterns('',
        (r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
    )
    
  2. 次のコマンドを使用して lang ファイルを生成しました。

    django-admin.py makemessages -d djangojs -l fr
    

root_folder/locale/fr/LC_MESSAGESdjango.po&が含まれるようにdjangojs.poなりalert(gettext('this is to be translated'));、js ファイルの 1 つにdjangojs.po.

  1. django-admin.py compilemessagesサーバーを実行して再起動しました。

  2. これを私のbase.htmlに追加しました:

    <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
    

翻訳を動的にロードするときにパッケージ名を渡さないという例外を避けるために、「ロケール」を追加したことに注意してください。

  1. ブラウザ/jsi18n/locale/からアクセスすると、Django の翻訳機能しか得られません。

    /* gettext library */
    
    var catalog = new Array();
    
    function pluralidx(count) { return (count == 1) ? 0 : 1; }
    
    
    function gettext(msgid) {
    ....
    

「これは翻訳する必要があります」が表示されないのはなぜですか? URL を渡さずに特定の言語を表示するのはどのような基準ですか?

4

2 に答える 2

13

あなたの問題を解決する方法は正確にはわかりませんが、私にとってどのように機能するかをお伝えできます。

localeフォルダは私のアプリ内にありますtickets

urls.py

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('tickets',),
}

urlpatterns = patterns('',
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
    ...

base.html

<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>

メッセージファイルを作成するには:

python -m django-admin makemessages -d djangojs -l fr
python -m django-admin compilemessages

うまくいけば、あなたはこれから何かを拾うことができます.

于 2013-10-28T09:15:53.820 に答える
6

私の特定のケースでは、js メッセージは生成およびコンパイルされますが、i18n 言語の URL を使用するとテンプレートまたはページにレンダリングされません。

これは、javascript カタログを通常のパターンではなく、i18n URL パターンに追加する必要があるためです。

urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )

=>

urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
于 2014-11-26T11:07:06.300 に答える