5

hereの指示を読んで従いましたが、po ファイルの javascript に文字列が表示されないようです。

structure of my project is: 
cb/    
   cb_app    
   cb    
   static_files    
   templates

まず、これらを url.py にコピーしました。

js_info_dict = {
    'packages': ('cb_app',),
}

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

次に、このスクリプトを html に追加しました。

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

翻訳を取得したい実際のスクリプトは、次のように単純です。

$(document).ready(function () { 
    $('#id_sales_item').chosen({no_results_text: gettext('No results match')}); 
});

...そして同じhtmlで利用されています。

それで、私がしなければならないことは他にありますか?

cb/cb次に、 fromと fromの両方で以下の行を実行するだけでしたcb/cb_app

django-admin.py makemessages -l en_GB

cb/cb/localeしかし、どちらにも「一致する結果がありません」という兆候はまだありませんcb/cb_app/locale

任意のヒント?

4

1 に答える 1

4

私はついに問題を発見しました。

ドキュメントでは、メッセージを Django プロジェクトから 1 回、Django アプリから 1 回作成することを提案しています。そうすれば、2つのlocaleディレクトリになります。いずれにせよ、JavaScript の翻訳は取得されません。これはかなり混乱しています。

私が見つけた最もクリーンな解決策は、settings.py次の行に移動して挿入することです (上記のプロジェクト階層も参照してください)。

LOCALE_PATHS = ( '/home/kave/projects/cb/locale',)

次にlocale、project-root-directory という名前のディレクトリを作成します (上記のパスを参照)。

url.pyandにもエントリを適用することを忘れないでくださいhtml(上記参照)。

最後に、ローカルが 1 つの場所に統合されたので、project-root-directory: に移動し/home/kave/projects/cb、次の 2 つのコマンドを実行します。

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

最初のコマンドは、プロジェクトとアプリの両方のサブフォルダーから翻訳テキストを取得します。2 番目は、JavaScript の翻訳を 2 番目の po ファイルに取得します。

それでおしまい。

于 2012-09-11T21:53:17.937 に答える