All Projects β†’ ember-intl β†’ Ember Intl

ember-intl / Ember Intl

Licence: mit
Localization library for any Ember Application or Addon

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Ember Intl

Eo Locale
🌏Internationalize js apps πŸ‘”Elegant lightweight library based on Internationalization API
Stars: ✭ 290 (-29.61%)
Mutual labels:  hacktoberfest, translation, i18n, intl, icu
Js Lingui
πŸŒπŸ“– A readable, automated, and optimized (5 kb) internationalization for JavaScript
Stars: ✭ 3,249 (+688.59%)
Mutual labels:  translation, i18n, intl, icu
Eslint Plugin I18n Json
Fully extendable eslint plugin for JSON i18n translation files.
Stars: ✭ 101 (-75.49%)
Mutual labels:  translation, i18n, intl, icu
Ember I18n Changeset Validations
ember-i18n support for ember-changeset-validations messages
Stars: ✭ 11 (-97.33%)
Mutual labels:  i18n, ember, ember-addon
Translation
The Translation component provides tools to internationalize your application.
Stars: ✭ 6,196 (+1403.88%)
Mutual labels:  translation, i18n, intl
Kiwi
🐀 Kiwi-ε›½ι™…εŒ–ε…¨ζ΅η¨‹θ§£ε†³ζ–Ήζ‘ˆ
Stars: ✭ 1,872 (+354.37%)
Mutual labels:  translation, i18n, intl
Webfactoryicutranslationbundle
Enables ICU message formatting for translations in Symfony applications.
Stars: ✭ 27 (-93.45%)
Mutual labels:  translation, i18n, icu
Ember Cli Addon Docs
Easy, beautiful docs for your OSS Ember addons
Stars: ✭ 162 (-60.68%)
Mutual labels:  hacktoberfest, ember, ember-addon
Ember Styleguide
This is a UI addon that intends to help standardize the Ember family of websites and make it easier to make the Ember website an Ember app.
Stars: ✭ 69 (-83.25%)
Mutual labels:  hacktoberfest, ember, ember-addon
Ember Bootstrap
Ember-cli addon for using Bootstrap as native Ember components.
Stars: ✭ 475 (+15.29%)
Mutual labels:  hacktoberfest, ember, ember-addon
Formatjs
The monorepo home to all of the FormatJS related libraries, most notably react-intl.
Stars: ✭ 12,869 (+3023.54%)
Mutual labels:  translation, i18n, intl
Ember Service Worker
A pluggable approach to Service Workers for Ember.js
Stars: ✭ 227 (-44.9%)
Mutual labels:  hacktoberfest, ember, ember-addon
Weblate
Web based localization tool with tight version control integration.
Stars: ✭ 2,719 (+559.95%)
Mutual labels:  hacktoberfest, translation, i18n
ember-i18n-cp-validations
ember-i18n support for ember-cp-validations
Stars: ✭ 20 (-95.15%)
Mutual labels:  i18n, ember, ember-addon
Gotext
Go (Golang) GNU gettext utilities package
Stars: ✭ 292 (-29.13%)
Mutual labels:  translation, i18n
Gatsby Plugin Intl
Gatsby plugin that turns your website into an internationalization-framework out of the box.
Stars: ✭ 300 (-27.18%)
Mutual labels:  i18n, intl
Code Sleep Python
Awesome Projects in Python - Machine Learning Applications, Games, Desktop Applications all in Python 🐍
Stars: ✭ 306 (-25.73%)
Mutual labels:  hacktoberfest, translation
Ember Light Table
Lightweight, contextual component based table for Ember 2.3+
Stars: ✭ 310 (-24.76%)
Mutual labels:  ember, ember-addon
Ember Websockets
Ember.js websockets and socket.io addon
Stars: ✭ 336 (-18.45%)
Mutual labels:  ember, ember-addon
Cs193p Developing Apps For Ios Spring 2020
Stanford ε…¬εΌ€θ―Ύ CS193p - Developing Apps for iOS 2020 ζ˜₯ε­£ε­¦ζœŸε­—εΉ•ηΏ»θ―‘
Stars: ✭ 348 (-15.53%)
Mutual labels:  hacktoberfest, translation

ember-intl

npm Version Ember Version CI npm Ember Observer Score

Notable Features

  • πŸ’΅ Locale-aware numbers. Formatting of currencies, decimals, and percentages
  • πŸ“… Locale-aware dates and times formatting
  • πŸ•‘ Locale-aware display of relative time. i.e, "in 1 day", "2 years ago", etc.
  • πŸ’¬ ICU Message Syntax. Pluralization and formatted segments (numbers, datetime, etc.)
  • 🌐 Support for 150+ languages
  • πŸ•΅πŸ» Translation linting (detects missing translations & translation argument mismatches)
  • πŸ“œ Built largely on standards. ICU message syntax & Native Intl API
  • ⚑ Extensive Ember Service API and template helpers for formatting and translating
  • πŸŽ‰ Advanced addon support to provide translations to the host app

Documentation

5.x

4.x (legacy)

Migrating from 4.x to 5.x

Notable Changes

  • Improved the internals for loading translations on boot
  • Polyfills have been remove and no longer bundle pluralization rules as they're available natively via the Intl.PluralRules API

Breaking Changes

  • Node 8 support dropped
  • Improved ICU-spec compliance, special characters are now escaped via a single quote ' instead of a slash \
  • Intl.RelativeTime polyfill has been replaced with the native API which behaves entirely different than the previous older spec implementation (read about in the Migration Document)
  • intl.lookup() API will no longer return missing translation warnings
  • Removes shortNumber formatting in favor of now supported native implementation using the "notation" property i.e.,
this.intl.formatNumber(1000, {
  notation: "compact" ,
  compactDisplay: "short"
}); // -> 1k

All of this will result in smaller bundles, faster build times, and less work done on app boot.

When you're ready to upgrade, head over to the Migration Document to read more in detail about what changed.

TypeScript Support

Support for TypeScript has been added in v5.5.0. If you have any custom types, you can remove them now. When injecting the intl service, type it like so:

import Component from '@glimmer/component';
import type IntlService from 'ember-intl/services/intl';

export default class ExampleComponent extends Component {
  @service intl!: IntlService;
}

You may encounter seemingly unrelated type errors when updating to [email protected]^5.5.0, like:

./node_modules/@types/es-abstract/GetIntrinsic.d.ts(555,58): error TS2339: Property 'flat' does not exist on type 'any[]'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(556,61): error TS2339: Property 'flatMap' does not exist on type 'any[]'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(597,57): error TS2339: Property 'flat' does not exist on type 'any[]'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(598,60): error TS2339: Property 'flatMap' does not exist on type 'any[]'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(949,47): error TS2339: Property 'fromEntries' does not exist on type 'ObjectConstructor'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(965,48): error TS2339: Property 'allSettled' does not exist on type 'PromiseConstructor'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1064,64): error TS2339: Property 'matchAll' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1082,65): error TS2339: Property 'trimStart' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1084,63): error TS2339: Property 'trimEnd' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1115,63): error TS2339: Property 'matchAll' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1133,64): error TS2339: Property 'trimStart' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1135,62): error TS2339: Property 'trimEnd' does not exist on type 'String'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1145,94): error TS2339: Property 'description' does not exist on type 'Symbol'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1153,44): error TS2339: Property 'matchAll' does not exist on type 'SymbolConstructor'.
./node_modules/@types/es-abstract/GetIntrinsic.d.ts(1163,93): error TS2339: Property 'description' does not exist on type 'Symbol'.

You can fix these by adding ES2020 to your compilerOptions.lib or setting the compilerOptions.target to ES2020 in tsconfig.json. See #1426 for more details.

Migrating from ember-i18n

There's an ember-i18n-to-intl-migrator tool that is used to convert your translations files and application code to ember-intl.

If you have any questions or issues, please open in ember-i18n-to-intl-migrator/issues

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].