i18n

ソフトウェアのスクリーンショット:
i18n
ソフトウェアの詳細:
バージョン: 0.1
日付のアップロード: 14 Apr 15
開発者: Antonio Cuni
ライセンス: 無料
人気: 17

Rating: 3.0/5 (Total Votes: 1)

国際化は、国際化されたアプリケーションのワークフローや開発を簡素化しようとするパッケージです これは、特定のgettextのとバベルで、既存のツール薄いラッパです。
の基本的な使い方
#のdemo.py

i18n.translatorインポート翻訳から
supported_languages​​ = ['語it_IT'、 'はfr_FR'、 'をde_DE']
位イタリアン翻訳を活性化する
TR =翻訳( '/パス/に/ルート」、supported_languages​​、「語it_IT')
印字TR ._( 'こんにちは、世界!')
どこで/パスは/ / rootに/プロジェクトのルートディレクトリです。インスタンス化されると、翻訳クラスが自動的に翻訳が保存されている/ルート/言語に/パス/というディレクトリが作成されます。
の抽出メッセージ
実際の翻訳を行う前に、あなたがpybabelエキスとpybabel更新のラッパーである、国際化モジュール上のextractコマンドを呼び出すことによって、ソースファイルからのメッセージを抽出する必要があります。
  Pythonの-m国際化--root = /パス/に/ルート--languages​​ =語it_IT、fr_FRの、de_DEのエキス
抽出物は、_()、gettextの()またはngettext()への呼び出しや言語/ template.potというファイルを作成し、内部包まれたすべてのメッセージを検索します。これは、アプリケーションで見つかったすべてのメッセージが含まれている標準のgettextのpo file`です。
また、また、$コードは上記の例でsupported_languages​​(語it_IT、はfr_FRやde_DEのに記載されている言語の一つである言語/ $コード/ LC_MESSAGES / messages.po、などのサポートされている各言語のメッセージカタログファイルを作成します)(抽出)。
カタログファイルは今の例QT言語学者やフリーソフトウェアのひとつのために、多くの既存のツールのいずれかを使用して変換される準備ができている。アプリケーションが正しく機能するために、全体の言語/階層が保存される必要がある。私たちは、アプリケーションに属する他のファイルと一緒にバージョン管理システム内のさまざまなmessages.poファイルを追跡するために提案する。
のメッセージを更新する
アプリケーションの開発中に、あなたは確かに翻訳される新しいメッセージを追加します。 extractコマンドは自動的にこのケースを処理:それは既存のカタログファイルを見つけた場合、(既存の翻訳を含む)は、それらのコンテンツを新たに抽出されたメッセージにマージされます。
のコンパイルカタログ
これは、gettextのでそれらを使用する前に、カタログファイルをコンパイルする必要がある。デフォルトでは、私たちの翻訳オブジェクトが自動的に.moという、対応するファイルを生成する、言語/で見つかったすべてのカタログをコンパイルします。コンパイルはカタログファイルが変更された場合にのみ行われます。これはほとんどの場合、あなたはカタログのコンパイルを心配する必要はありませんことを意味します。
あなたはこの手順の詳細に制御を持っていることを好む場合は、翻訳のコンストラクタに偽自動コンパイル=を渡すと、コマンドラインから手動でコンパイルすることができます:
  Pythonの-m国際化--root = /パス/に/ルート--languages​​ =語it_IT、fr_FRの、de_DEにコンパイルする
データベースの中の保存の翻訳
いくつかの用途では、新しい翻訳を定義し、および/またはデフォルトのものを上書きするユーザーをできるように便利です。 I18Nは、翻訳のサブクラスであるDBTranslatorクラス、このユースケースをサポートしています。変換する場合、DBTranslatorは最初のデータベース内を検索します。メッセージが見つからない場合は、標準のgettext行動に委譲。
DBTranslatorはSQLAlchem​​yのに基づいています。そのコンストラクタは、追加のエンジンパラメータを取ります。
i18n.dbtranslatorインポートDBTranslatorから
SQLAlchem​​yの輸入create_engineから
エンジン= create_engine( 'sqliteを:///db.sqlite')
ROOT = '/パス/に/ルート」
LANGUAGES = ['語it_IT'、 'はfr_FR']
DEST_LANGUAGE = '語it_IT」
TR = DBTranslator(ROOT、言語、DEST_LANGUAGE、エンジン=エンジン)
印字TR ._(「Hello World」の)
DBTranslatorは自動的にDBのテーブルtranslation_entriesを作成します。そして、テーブルを操作するためのユーザインターフェースを提供するために、アプリケーション次第である。テストのためには、DB内の新しい翻訳を挿入するadd_translation()メソッドを使用することができます。
tr.add_translation(「語it_IT」、「Hello World」の、「CIAOモンド」)
印字TR ._(「Hello World」の)#プリント「CIAOモンド」
のグローバルTranslatorの使い方
設計では、国際化は完全に任意のグローバル状態を回避しようとします。これは、あなたが好きなだけ翻訳及びDBTranslator、別のディレクトリおよび/またはデータベースを参照し、各1をインスタンス化できることを意味します。これはテストのために特に便利です。
しかし、実際にはほとんどのプロジェクトは、プロジェクト内のすべてのコンポーネントのメッセージについて知っている世界的な翻訳者を使用したい。デモアプリケーションはtranslate.pyモジュールでそれを行う方法を示しています。
輸入PY
i18n.translatorインポート翻訳から
#このファイルを含むディレクトリにプロジェクトのルートを設定する
ROOT = py.path.local(__ファイル__)。DIRPATH()
LANGUAGES = ['語it_IT'、 'はfr_FR'、 'をde_DE']
TR =翻訳(ROOT、言語、「語it_IT ')
_ = tr._
ngettext = tr.ngettext
__name__ == '__main__'の場合:
  tr.cmdline(sys.argvの)
この方法では、アプリケーションの残りの部分は、単純にインポートし、translate.pyから_()とngettext()を使用することができます。または、お好みでも、輸入直接TRオブジェクトにメッセージを翻訳するTR ._()とtr.ngettext()を使用しています。
コー​​ドの最後の2行は手動でルートdirとサポートされている言語を指定しなくてもエキスを呼び出し、コマンドラインからコン​​パイルするための便利な方法を可能にします。ただ実行します。
  Pythonのtranslate.pyエキス#が...またはコンパイル

の要件

  • のPythonます。

同じようなソフトウェア

speaklater
speaklater

20 Feb 15

babel-obviel
babel-obviel

20 Feb 15

pinyin
pinyin

20 Feb 15

PHP Net_IDNA
PHP Net_IDNA

11 May 15

開発者の他のソフトウェア Antonio Cuni

pdbpp
pdbpp

11 May 15

へのコメント i18n

コメントが見つかりません
コメントを追加
画像をオンにする!