このプロジェクトについて
Localeは、Unicode CLDR(Common Locale Data Repository)データセットから生成された、強い型付けのロケール識別子を提供するRustワークスペースです。READMEによると、CLDR 48.1.0に基づく766のUnicodeロケールをカバーし、データは公式のCLDR-JSONリポジトリから取得されています。
ワークスペースには2つのクレートが含まれます。locale-rsは、ロケール管理とフォーマットのための本番ライブラリです。locale-devはコード生成ツールで、GitHubで最新のCLDR-JSONリリースを確認し、キャッシュされたデータをダウンロードまたは再利用して、locale-rsのコードを再生成し、出力をフォーマットおよびリントします。この設計により、ハードコードされた文字列に依存するのではなく、ライブラリを新しいUnicodeリリースと同期させることができます。
READMEで説明されている中核機能には、コンパイル時に検証された列挙型バリアントとしての型安全なロケール、ネイティブ数字を使用したロケール対応の数値フォーマット、ICU互換の通貨パターン、日時フォーマット用のローカライズされた月名と曜日名が含まれます。パースは、ハイフン、アンダースコア、または混合大文字小文字を受け入れます。ロケール交渉は、フォールバックチェーンを使用して利用可能なオプションから最適な一致を見つけ、ファジー提案はタイポや不明なロケールの修正を提案します。READMEには、ラテン、アラビア・インド、デーヴァナーガリー、ベンガル、タミル、タイ、チベットなど、多くのサポートされている数字システムもリストされています。
使用例では、Locale::en_GBなどの直接の列挙型アクセス、FromStrまたはfrom_flexibleによるパース、言語および地域サブタグの抽出、フォールバックロケールの取得を示しています。数値フォーマットは、ToFormattedStringトレイトを通じてデモされ、英語では1,234,567、ドイツ語では1.234.567のようなグループ化された出力を生成します。交渉と提案の例も提供されています。
READMEは、ゼロコストの抽象化とゼロサイズのロケール列挙型バリアントを主張しています。num-formatクレートからのアーキテクチャ的影響に言及しています。ライセンスは、プロジェクトコードに対してデュアルMITまたはApache-2.0であり、ロケールデータはUnicode License V3の下でUnicode CLDRから派生しています。貢献は主にlocale-devの生成ロジック、またはlocale-rsのヘルパーメソッド、テスト、例に向けられています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.