All Projects → phensley → cldr-engine

phensley / cldr-engine

Licence: Apache-2.0 license
Internationalization and localization in Typescript with Unicode CLDR, batteries included

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to cldr-engine

I18N
I18N Library for .NET, and Delphi
Stars: ✭ 48 (+41.18%)
Mutual labels:  i18n, internationalization, localization, cldr
Js Lingui
🌍📖 A readable, automated, and optimized (5 kb) internationalization for JavaScript
Stars: ✭ 3,249 (+9455.88%)
Mutual labels:  i18n, internationalization, localization, messageformat
rosetta
A blazing fast internationalization (i18n) library for Crystal with compile-time key lookup.
Stars: ✭ 23 (-32.35%)
Mutual labels:  i18n, internationalization, localization, locale
Locale2
💪 Try as hard as possible to detect the client's language tag ("locale") in node or the browser. Browserify and Webpack friendly!
Stars: ✭ 65 (+91.18%)
Mutual labels:  i18n, unicode, internationalization, localization
React Native Globalize
Internationalization (i18n) for React Native
Stars: ✭ 246 (+623.53%)
Mutual labels:  i18n, internationalization, localization
Flutter translate
Flutter Translate is a fully featured localization / internationalization (i18n) library for Flutter.
Stars: ✭ 245 (+620.59%)
Mutual labels:  i18n, internationalization, localization
awesome-translations
😎 Awesome lists about Internationalization & localization stuff. l10n, g11n, m17n, i18n. Translations! 🌎🌍
Stars: ✭ 54 (+58.82%)
Mutual labels:  i18n, localization, locale
typesafe-i18n
A fully type-safe and lightweight internationalization library for all your TypeScript and JavaScript projects.
Stars: ✭ 1,227 (+3508.82%)
Mutual labels:  i18n, internationalization, localization
Weblate
Web based localization tool with tight version control integration.
Stars: ✭ 2,719 (+7897.06%)
Mutual labels:  i18n, internationalization, localization
ad localize
ADLocalize is a simple way to manage your localization files. Supported wording sources : CSVs and Google Sheets. Localization file generation available for iOS, Android, JSON (i18next), YAML and Java properties
Stars: ✭ 22 (-35.29%)
Mutual labels:  i18n, internationalization, localization
go-localize
i18n (Internationalization and localization) engine written in Go, used for translating locale strings.
Stars: ✭ 45 (+32.35%)
Mutual labels:  i18n, internationalization, localization
L10ns
Internationalization workflow and formatting
Stars: ✭ 234 (+588.24%)
Mutual labels:  i18n, internationalization, localization
Lang.js
🎭 Laravel Translator class in JavaScript!
Stars: ✭ 232 (+582.35%)
Mutual labels:  i18n, internationalization, localization
locale-switcher
Browser Extension to quickly change your browser locale.
Stars: ✭ 75 (+120.59%)
Mutual labels:  internationalization, localization, locale
Serge
Continuous localization platform
Stars: ✭ 212 (+523.53%)
Mutual labels:  i18n, internationalization, localization
awesome-i18n
🌍 A curated list of i18n resources for all kind of languages and frameworks
Stars: ✭ 205 (+502.94%)
Mutual labels:  i18n, internationalization, localization
figma-static-localizer
A Figma plugin for static localization
Stars: ✭ 30 (-11.76%)
Mutual labels:  i18n, internationalization, localization
rails
Rails translation made _('simple').
Stars: ✭ 65 (+91.18%)
Mutual labels:  i18n, internationalization, localization
lisan
🌈i18n, Reimagined! 🚀A blazing fast and super small i18n library for Javascript
Stars: ✭ 85 (+150%)
Mutual labels:  i18n, internationalization, localization
Node Gettext
A JavaScript implementation of gettext, a localization framework.
Stars: ✭ 175 (+414.71%)
Mutual labels:  i18n, internationalization, localization

cldr-engine

Internationalization in Typescript with Unicode CLDR, batteries included.

build codecov npm version

Links

Install

Install the NPM package:

npm install --save @phensley/cldr

Using Yarn:

yarn add @phensley/cldr

Versioning

This project follows semantic versioning:

PATCH

  • Bug fixes
  • Backwards-compatible
  • Resource pack compatibility maintained (packs from 1.0.0 are guaranteed to work for all 1.0.* versions)

MINOR

  • New features
  • Backwards-compatible
  • Internal schema breaking changes (applications must load resource packs from the same major.minor version)
  • CLDR data upgrades which maintain backwards-compatibility

MAJOR

  • Public API breaking changes
  • CLDR data upgrades which change break API compatibility (unit deprecation / renaming, etc)

Features

Package Naming

Packages with the cldr-* prefix represent pieces of the larger library and are designed to work together. The @phensley/cldr package pulls in the full functionality of the library.

Packages without the cldr-* prefix can be used in an application individually without pulling in the larger core library.

You can use any of the packages independent of the rest of the library:

package size dependencies
@phensley/cldr-utils min+gzip
@phensley/decimal min+gzip
@phensley/language-tag min+gzip
@phensley/locale min+gzip size includes language-tag package
@phensley/locale-matcher min+gzip size includes locale and language-tag packages
@phensley/messageformat min+gzip size includes cldr-utils, decimal, and plurals packages
@phensley/plurals min+gzip size includes decimal package
@phensley/timezone min+gzip size includes cldr-utils package
@phensley/unit-converter min+gzip size includes cldr-utils and decimal packages

Goals

  • Support a broad set of CLDR features in the browser "out of the box".
  • Support all scripts and regions for a language in a single compact resource pack.
  • Resolve the CLDR data size and dimensionality problems.
    • In the case of English: ~40MB of JSON for 105 locales is compressed to a 194KB resource pack (44KB gzip), a factor of approx. 200:1 uncompressed, 1000:1 with gzip compression.
  • No additional library dependencies required.
  • No custom extraction of CLDR data or precompilation of formatters required.
  • Correctness and consistency across browsers, Node.js, and other Javascript ES5 runtime environments.
  • Provide type-safety, reducing programming errors.
  • No familiarity with CLDR structure is required for developers to use this library.
  • High performance.
  • Arbitrary precision decimal math, to achieve the same accuracy in the browser as on the server.

License

Copyright 2018-present Patrick Hensley

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Affiliation

This project is not affiliated with the Unicode Inc. or the Unicode CLDR project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].