Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@boomfly/svelte-i18n

kaisermann5MIT3.3.0TypeScript support: included

Internationalization library for Svelte

svelte, i18n, internationalization, localization, translation

readme

npm version

svelte-i18n

Internationalization for Svelte.

svelte-i18n helps you localize your app using the reactive tools Svelte provides. By using stores to keep track of the current locale, dictionary of messages and to format messages, we keep everything neat, in sync and easy to use on your svelte files.

Requirements

  • Node: >= 11.15.0
  • Browsers: Chrome 38+, Edge 16+, Firefox 13+, Opera 25+, Safari 8+.
<script>
  import { _ } from 'svelte-i18n'
</script>

<h1>{$_('page.home.title')}</h1>

<nav>
  <a>{$_('page.home.nav', { default: 'Home' })}</a>
  <a>{$_('page.about.nav', { default: 'About' })}</a>
  <a>{$_('page.contact.nav', { default: 'Contact' })}</a>
</nav>
// en.json
{
  "page": {
    "home": {
      "title": "Homepage",
      "nav": "Home"
    },
    "about": {
      "title": "About",
      "nav": "About"
    },
    "contact": {
      "title": "Contact",
      "nav": "Contact Us"
    }
  }
}

changelog

3.3.0 (2020-11-24)

Features

  • 🎸 add $json method to get raw dictionary values (52400b5), closes #109 #83

3.2.7 (2020-11-23)

Bug Fixes

3.2.6 (2020-11-20)

Changed

  • Don't minify CLI for better debugging.

3.2.5 (2020-11-08)

Bug Fixes

  • 🐛 regression of flat keys separated by dot (d87caef)

3.2.4 (2020-11-07)

Bug Fixes

  • 🐛 possible interpolation value types (0caaead)

3.2.3 (2020-11-06)

Bug Fixes

  • 🐛 prevent extraction of non-deterministic message ids (9b6adb6), closes #89

3.2.2 (2020-11-05)

Bug Fixes

  • 🐛 update estree-walker and intl-messageformat (44e71d7)

3.2.1 (2020-11-05)

Bug Fixes

  • 🐛 interpolate values for default values and missing keys (330f20b), closes #101

3.2.0 (2020-11-05)

Features

  • 🎸 Support getting deep localized objects/arrays (ff54136), closes #83

3.1.0 (2020-09-20)

Bug Fixes

  • export correct configuration type (68e8c51)

3.0.4 (2020-05-31)

Bug Fixes

  • 🐛 also wait for loaders added while loading (e560514)

3.0.3 (2020-03-29)

Bug Fixes

  • 🐛 prevent server from breaking on locale.set (07ef1da), closes #55

3.0.2 (2020-03-06)

Bug Fixes

  • 🐛 ignore loadingDelay for the initialLocale (9d82a98), closes #53 #53

3.0.1 (2020-02-03)

Features

  • 🎸 add runtime typings (7bf47d8), closes #43
  • 🎸 make date,time and number formatters tree-shakeable (6526245)
  • 🎸 make getClientLocale tree-shakeable (31b556b)

BREAKING CHANGES

  • It's now needed to explicitly import the getClientLocale method to use its heuristics when setting the initial locale. This makes the method and its helpers to be tree-shakeable.
import { init, getClientLocale } from 'svelte-i18n'

init({
  initialLocale: getClientLocale({ ... })
})
  • Changes completely the API. Now, to format a number, date or time, the developer must explicitly import the formatter store:

import { time, date, number } from 'svelte-i18n'

3.0.0 (2020-02-03)

Features

  • 🎸 add runtime typings (90bf171), closes #43
  • 🎸 make date,time and number formatters tree-shakeable (fb82a40)
  • 🎸 make getClientLocale tree-shakeable (4881acb)

BREAKING CHANGES

  • It's now needed to explicitly import the getClientLocale method to use its heuristics when setting the initial locale. This makes the method and its helpers to be tree-shakeable.
import { init, getClientLocale } from 'svelte-i18n'

init({
  initialLocale: getClientLocale({ ... })
})
  • Changes completely the API. Now, to format a number, date or time, the developer must explicitly import the formatter store:

import { time, date, number } from 'svelte-i18n'

2.3.1 (2020-01-29)

Bug Fixes

  • 🐛 types from v3 branch leaking to master branch :shrug: (88f7762)
  • memoizing of formatters when no locale is given. (#47) (27871f9)

2.3.0 (2020-01-23)

Features

2.2.4 (2020-01-21)

2.2.3 (2020-01-15)

Refactor

  • 💡 remove deepmerge and dlv dependencies (270aefa)

2.2.2 (2020-01-14)

Bug Fixes

  • 🐛 lookup message not caching correctly (bb8c68f)
  • 🐛 mjs causing an elusive bug in webpack module resolution (b2dc782), closes #36

2.2.1 (2020-01-08)

Bug Fixes

  • 🐛 lookup message not caching correctly (b9b6fa4)

2.2.0 (2020-01-07)

Bug Fixes

  • 🐛 make message formatter default to current locale (0c57b9b)

Features

  • add low level API to get access to the formatters (#31) (86cca99)

2.1.1 (2019-12-02)

Bug Fixes

  • 🐛 fix conflict artifacts (feb7ab9)

2.1.0 (2019-11-30)

Bug Fixes

  • 🐛 allow to wait for initial locale load (0b7f61c)
  • 🐛 fallback behaviour and simplify API contact points (64e69eb)
  • 🐛 consider generic locales when registering loaders (1b0138c)
  • 🐛 flush use the same promise if it wasn't resolved yet (66972d4)
  • client locale parameters typo (#11) (d1adf4c)

Features

  • 🎸 add warnOnMissingMessages (efbe793)

  • 🐛 fallback behaviour and simplify API contact points (6e0df2f

  • 🎸 addMessagesTo method (d6b8664)

  • 🎸 add $loading indicator store (bd2b350)
  • 🎸 add custom formats support (d483244)
  • 🎸 add pathname and hostname pattern matching (b19b690)
  • 🎸 add preloadLocale method (0a0e4b3)
  • 🎸 add waitInitialLocale helper (6ee28e7)
  • 🎸 also look for message in generic locale (e5d7b84), closes #19
  • 🎸 export a store listing all locales available (f58a20b)
  • 🎸 locale change automatically updates the document lang (64c8e55)

Performance Improvements

  • ⚡️ delay the $loading state change for quick loadings (6573f51)

BREAKING CHANGES

  • This PR modifies the formatter method arguments.