問題タブ [python-babel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python gae、babel、i18nによる国際化。正しい文字列を出力できません
messages.poファイル内。
"Project-Id-Version:PROJECT VERSION \ n" "Report-Msgid-Bugs-To:EMAIL @ ADDRESS \ n" "POT-Creation-Date:2013-01-19 19:26 + 0800 \ n" "PO-改訂日:2013-01-19 19:13 + 0800 \ n ""最終翻訳者:フルネーム\ n ""言語チーム:en_US \ n ""複数形式:nplurals = 2;複数=(n! = 1)\ n "" MIME-Version:1.0 \ n "" Content-Type:text / plain; charset = utf-8 \ n "" Content-Transfer-Encoding:8bit \ n "" Generated-By:Babel 0.9 .6 \ n "
#〜msgid "Hello-World"
#〜msgstr "Hello World"
ハンドラー内:
htmlファイル:
Webページに移動すると、「HelloWorld」ではなく「Hello-World」という文字列が返されます。何が悪いのかわかりません。誰でも助けることができますか?
python - coffin 拡張機能を備えた Babel と jinja2
コマンドラインツールを使用して、jinja2/coffin テンプレートを Babel で翻訳しようとしています。問題は、関数 babel_extract が {% url %} や {% csrf_token %} などの棺桶タグでジャムすることです。
まず、問題を検出するために、jinja.ext.babel_extract を変更し、レンダリング中の例外に「print e」を追加しました。
Babel で抽出メソッドを実行すると、次のエラーが出力されます。
次に、babel 構成を編集して Coffin ライブラリを追加しました。また、環境変数を設定して、django プロジェクトを Python パスに追加し、django 設定モジュールを settings.py に設定しました。
ここで、extract メソッドを実行すると、次のエラーが発生します。
extracting messages from templates/brands.html (extensions="coffin.template.Library", encoding="utf-8")
Traceback (most recent call last):
File "/usr/local/bin/pybabel", line 9, in <module>
load_entry_point('Babel==0.9.6', 'console_scripts', 'pybabel')()
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 1107, in main
return CommandLineInterface().run(sys.argv)
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 651, in run
return getattr(self, cmdname)(args[1:])
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 912, in extract
for filename, lineno, message, comments in extracted:
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 171, in extract_from_dir
strip_comment_tags):
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 201, in extract_from_file
strip_comment_tags))
File "/Library/Python/2.7/site-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 275, in extract
for lineno, funcname, messages, comments in results:
File "/Library/Python/2.7/site-packages/jinja2/ext.py", line 588, in babel_extract
auto_reload=False
File "/Library/Python/2.7/site-packages/jinja2/environment.py", line 279, in __init__
self.extensions = load_extensions(self, extensions)
File "/Library/Python/2.7/site-packages/jinja2/environment.py", line 76, in load_extensions
result[extension.identifier] = extension(environment)
TypeError: __init__() takes exactly 1 argument (2 given)
python - setup.pyのBabelのmessage_extractors構成:タプルの3番目のパラメーター
PythonプロジェクトでBabelを使い始めたいと思います。ドキュメントに従って、次のようなsetup.py
ものがあります。
そして、すべてが正常に動作します。ここで、3番目のパラメーター(に設定None
)が何を意味し、(それを知るために)何を渡すことができるのか疑問に思いました。Babelのドキュメントを調べましたが、何も見つかりませんでしたが、BabelのMakoのドキュメントでこれを確認しました。
そして、私は疑問に思っていました:このinput_encoding
オプションはあなたがそこに渡すことができるもののようです。私はすべてのPython、テンプレートなどでUnicodeとUTF-8を使用しているので、これが指定する有効なオプションである可能性があると考えました(おそらく、暗黙の仮定であるかどうかはわかりません)。
だから今私はこの振る舞いを文書化する何かを探していますが、私が見つけたバベルのドキュメントの一部でさえ、3番目のパラメーターが何であるかについて何も言っていませんでした。
これを詳細に説明するいくつかの役立つリンクを共有して、私に教えてください。前もって感謝します。
更新dict
:最後の引数はオプションのようであり、おそらく拡張機能に渡されていることがわかりました(例mako
)。最後のパラメータをからに設定するNone
と{'input_encoding': 'utf-8'}
、mako.exceptions.CompileException
不満がUnicode decode operation of encoding 'ascii' failed
消えました。したがって、これが答えのように見えますが、私はまだこれに関するドキュメントを探しています。
python - pybabel 構成ファイルで jinja2 カスタム タグをブラックリストに登録する
テンプレートの文言を翻訳するためにpybabelを使用しています。テンプレートは jinja2 によって処理されます。ブレッドクラムを自動的に生成する jinja2 拡張機能を作成しました。ただし、babel で文言を抽出することは現在不可能です。
結果は次のとおりです。
(バベルの卵をデバッグしました)。
問題の原因はわかっています。コマンド ラインから文言を抽出するときに、ブレッドクラム拡張機能が babel に読み込まれません。それをロードする方法や、babel conf ファイルでブラックリストにタグを宣言する方法を知っている人はいますか?
どうもありがとう!!
python - UbuntuでRhode Codeをセットアップしようとして、遭遇しました
ここにリストされているRhode Codeのセットアップ方法に関する指示に従います。
http://pythonhosted.org/RhodeCode/setup.html
私はコマンドを使用することになっているステップにいました:
次のエラーが発生しました。
システムにbabelをインストールしましたが、何らかの理由でpasterが認識しません。
何かご意見は?
システム情報:
Ubuntu 12.04.1 LTS
EC2 マイクロ インスタンス
python - Jinja2 で現在のロケールを取得する
私のウェブサイトでは、Flask + Jinja2 と Flask-Babel を翻訳に使用しています。このサイトには 2 つの言語 (URL によって異なります) があり、それらを切り替えるためのリンクを追加したいと思います。これを正しく行うには、現在のロケールの名前を取得する必要がありますが、ドキュメントにそのような関数が見つかりませんでした。それはまったく存在しますか?
python - python gettext 同時に異なる言語
i18nにはフラスコ、pybabelを使用しています。ユーザーにメールを送信する必要がある場合があります。そして、自分の言語でメールを送りたいです。言語コードはデータベースに保存されるため、問題はテンプレートを適切な言語に翻訳することです。これが私の送信機能の一部です:
テンプレートの例:
必要なのは、set_langauge(lang)
各テンプレートがレンダリングされる前に呼び出すことができるようなものだけです。どうすればいいですか?
ありがとう。
python - Babel が認識しているすべての文字列のリストを取得するにはどうすればよいですか?
主な文字列が英語であるアプリケーションがあり、その後、通常どおり (Flask と Flask-Babel を使用して) さまざまな .po/.mo ファイルでさまざまな翻訳が行われます。Python コード内のどこかにあるすべての英語の文字列のリストを取得することは可能ですか? 具体的には、誰かがログインして、実際の Python コードや .po/.mo ファイルを突っ込むことなく、特定の場所で使用する任意のフレーズを選択できるようにする管理インターフェイスを Web サイトに用意したいと考えています。このフレーズは時間の経過とともに変化する可能性がありますが、翻訳する必要があるため、Babel が知っているものである必要があります。
私は実際の .pot ファイルにアクセスできるので、それを解析することができましたが、可能であればよりクリーンな方法を望んでいました。
python - jinja2 とその i18n 拡張 (babel を使用) をフラスコ外で使用する方法
フラスコアプリケーションの外でbabelでjinja2を使用するにはどうすればよいですか。pybabel コマンドを使用して入力された locale dir があるとします。翻訳ファイルを読み込んで、テンプレート ファイルを翻訳したいと考えています。