バーベル開発

バベルタは図書館として長い歴史を持っていて、Tracプロジェクトに遡ることができます。以来、独立して開発されたプロジェクトに発展し、CLDRプロジェクトのデータアクセスを実現してきた。

本稿では,開発を支援したい場合には,プロジェクトの一般的なルールを可能な限り説明しようとしている.

CLDRを追跡する

一般に,このプロジェクトの目標はCLDRデータと可能な限り緊密に連携することである.これは過去にいくつかの憂鬱な問題をもたらした。なぜならデータは私たちの統制に完全に含まれていないからだ。挫折感を最小限にするために、一般に、以下のようにCLDR更新を処理する。

  • バベルタの主なバージョンだけがCLDRデータを向上させることができる。

  • CLDRデータに対してカスタムエラー修復を行わないようにしてください。

  • バベルタワー内部のCLDRを迂回して間違いをしてはいけません。もしあなたがデータで問題を発見したら、上流に報告してください。

  • データの解析をできるだけ早く調整して、そうでなければ後で暴走します。これは特に多様性ともっと多くを変えるためにもっと大きな更新が必要だ。

  • 変更する可能性のある特定のCLDRデータに対してはなるべくテストを行わないようにする.

Pythonバージョン

現在、以下のPythonバージョンをサポートしなければなりません。

  • Python 2.7

  • Python 3.4以降

  • PyPy Tracking 2.7および3.2以降

PyPyは現在3.3をサポートしていないが,従来のUnicode文字をサポートしており,全体を大きく簡略化している.

文書はPython 2上に構築されなければならず、Python 3による文書のサポートはオプションの目標です。文書中のコード例は、2.xおよび3.xよりも優先的に2.xおよび3.x上で動作可能なスタイルで書かれることが好ましい。

UNICODE

Unicodeはバーベルタワーでは大変なことです。以下にルールの設定方式を示す.

  • 内部では、すべてがUnicodeであり、これこそ意味のあるUnicodeです。このルールの例外は,Python 2上で従来バイトであったものである.例えば、可能であれば、Python 2上のファイル名はバイトとみなされるべきである。

  • 境界で明示的に符号化/復号する。決して書き換えられない方法でコードを仮定してはいけない.UTF−8は、一般にデフォルト符号化とみなされるべきである。

  • Dot Not Use(使用しない) unicode_literals 使用するのではなく u'' 文字列文法。なぜなら,前者は誤って文字列をUnicodeにアップグレードし,無数のUnicode問題を導入しているからである.(例えば、文書文字列)。

日付と時間帯

一般に、Babel内のすべてのタイムゾーンサポートは、それが依存するpytzに基づいている。Babelは、それらのオブジェクトのみが実際に正しく動作するAPIを有するので、タイムゾーンオブジェクトがpytzに基づくものであると仮定すべきである(UTCに基づくタイムゾーンのAPI問題ではないため)。

仮定してみましょう

  • 可能な場合にはUTCを使用する.

  • 現地時間には特に気をつけなければなりません。正確な時間帯を知らない場合は現地時間を使わないでください。

  • time 日付がないのは非常に無駄な概念だ。それの時間帯を支持しようとしないでください。そうである場合、現在のローカル日付は、UTC日付ではなく、現在のローカル日付であると仮定する。