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

Package detail

svelte-i18n

kaisermann141kMIT4.0.1TypeScript support: included

Internationalization library for Svelte

svelte, i18n, internationalization, localization, translation

readme

:information_source: svelte-i18n is due to some reworking, like moving from a singleton to instances. This will be worked on when I find the time and priority :pray:

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

4.0.1 (2024-10-21)

Features

4.0.0 (2023-10-16)

Bug Fixes

BREAKING CHANGES

  • package is now esm-only

  • chore(deps-dev): bump postcss from 8.4.29 to 8.4.31

Bumps postcss from 8.4.29 to 8.4.31.

3.7.4 (2023-09-04)

Bug Fixes

  • use named import for IntlMessageFormat (fc837dc)

3.7.3 (2023-09-03)

Bug Fixes

  • use IntlMessageFormat.resolveLocale (2e42e58)

3.7.2 (2023-09-03)

Chores

  • use esbuild for bundling.

3.7.1 (2023-09-03)

Bug Fixes

  • validate initialLocale before using it (#217) (ebeec58)

3.7.0 (2023-07-04)

Features

  • add svelte@4 as peer dep (c0b9fc0)

3.6.0 (2022-11-25)

Features

  • add unwrapFunctionStore utility (fafa641)

3.5.2 (2022-11-23)

Bug Fixes

3.5.1 (2022-11-22)

Bug Fixes

  • better handling of --config CLI parameter (124d4b7)
  • make typescript strict and fix small issues (7b49a74)
  • svelte.config not being loaded properly by CLI (309896c)

3.5.0 (2022-11-22)

Bug Fixes

  • better handling of --config CLI parameter (124d4b7)
  • make typescript strict and fix small issues (7b49a74)

3.4.1 (2022-11-19)

Bug Fixes

  • make typescript strict and fix small issues (7b49a74)

3.4.0 (2022-04-05)

Features

3.3.13 (2021-10-11)

Bug Fixes

  • check modules for defineMessages imports (#163) (ec939ab)

3.3.12 (2021-09-30)

Bug Fixes

  • fallback delve to undefined for an undefined key (64e8ae2)

3.3.11 (2021-09-30)

Bug Fixes

  • fallback delve to undefined for an undefined key (64e8ae2)

3.3.10 (2021-08-24)

Bug Fixes

  • enable typescript strictNullChecks (bf4189a)

3.3.9 (2021-03-27)

Bug Fixes

  • 🐛 only set lang attr if lang is not nullish (1c516c9), closes #133

3.3.8 (2021-03-27)

Bug Fixes

  • 🐛 support more specific fallback locale (i.e en-GB vs en) (5db1dbc), closes #137

3.3.7 (2021-03-17)

Bug Fixes

  • clear locale lookup cache when new messages are added (#130) (88ad5b2)

3.3.6 (2021-02-25)

Bug Fixes

  • 🐛 generated types directory (396e181)
  • 🐛 support deep properties keyed with dots (980bc18), closes #129

3.3.5 (2021-02-21)

Bug Fixes

  • 🐛 support deep properties keyed with dots (c13ed35), closes #129

3.3.4 (2021-02-15)

Bug Fixes

3.3.3 (2021-02-15)

3.3.2 (2021-02-11)

Bug Fixes

  • expose intl-messageformat option ignoreTag and default to true for backwards compatibility. (#121) (341ed7f)

3.3.1 (2021-02-11)

Bug Fixes

  • 🐛 default $json type to any (41d8e4d)

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.