Internationalization library for Svelte
Go to file
Christian Kaisermann b2dc7828c5 fix: 🐛 mjs causing an elusive bug in webpack module resolution
Changed i18n.mjs to i18n.esm.js to prevent webpack to only accept .mjs
imports inside the library. Webpack was importing the cjs version of
Intl-Formatmessage and messing things up.

Issues: #36
2020-01-13 21:20:04 -03:00
.github chore: 🤖 test on latest node (for Intl purposes) 2019-11-28 23:16:05 -03:00
example Update example files 2019-11-29 19:47:05 -03:00
src fix: 🐛 lookup message not caching correctly 2020-01-08 11:33:01 -03:00
test fix: 🐛 lookup message not caching correctly 2020-01-08 11:33:01 -03:00
.babelrc Namespace i18n store methods with "i18n" property 2018-08-08 20:17:08 -03:00
.editorconfig I'm sorry Typescript, it's not you... 2018-08-07 18:53:07 -03:00
.eslintignore feat: 🎸 add waitInitialLocale helper 2019-11-22 13:51:18 -03:00
.eslintrc test: 💍 add tests for formatters 2019-11-27 13:26:18 -03:00
.gitignore docs: ✏️ link to wiki 2019-11-22 13:51:18 -03:00
.nvmrc chore: 🤖 change nvmrc version 2019-11-28 23:19:05 -03:00
.prettierrc refactor: 💡 separation of a lot of concerns 2019-11-22 13:51:18 -03:00
CHANGELOG.md chore(release): v2.2.1 🎉 2020-01-08 11:33:01 -03:00
LICENSE 👶 Initial commit 2018-07-25 22:50:55 -03:00
package-lock.json chore: 🤖 update lock 2020-01-08 11:33:01 -03:00
package.json fix: 🐛 mjs causing an elusive bug in webpack module resolution 2020-01-13 21:20:04 -03:00
README.md refactor: 💡 readme 2019-12-02 23:41:34 -03:00
rollup.config.js WIP - add Lang.svelte component 2019-11-22 13:51:18 -03:00
tsconfig.json chore(release): v2.1.1 🎉 2019-12-02 20:20:24 -03:00

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"
    }
  }
}

Go see the documentation