Package Exports
- @isaac-m/svelte-intl
- @isaac-m/svelte-intl/dist/index.es.js
- @isaac-m/svelte-intl/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@isaac-m/svelte-intl) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
svelte-intl
Fork of Panya/svelte-intl.
Sizes (svelte-intl and format-message):
Internationalize your Svelte 4 apps using format-message.
Svelte 2
For Svelte 2 version see this branch.
Installation
npm i svelte-intl format-message # format message is a peer dependencyUsage
<script context="module">
import { locale, translations, getBrowserLocale } from 'svelte-intl';
// If you want to split your bundle, you can call this multiple times,
// the dictionaries will be merged.
translations.update({
en: {
hello: 'Hello, {name}',
},
pt: {
hello: 'Olá, {name}',
},
})
locale.set(getBrowserLocale('en')) // try to use window.navigator.language
</script>
<script>
// use _ or translate
import { _ } from 'svelte-intl'
export let name = 'John'
</script>
<h1> {$_('hello', { name })} </h1>API
translate (or "_")
Translation store
- Type:
svelte.Readable<typeof formatMessage>
Example
<script>
import { get } from 'svelte/store'
import { translate } from 'svelte-intl'
const title = get(translate)('title')
</script>
<h1> Title: {title} </h1>
<h1> Reactive Title: {$translate('title')} </h1>translations
Available translations
- Type: Object
set(translations) => void: Replace translations (avoid this)update(translations) => void: Add more translationssubscribe: Store subscription, avoid using this directly
locale
Current locale
- Type: like
svelte.Readable<string>, but with safe update and set (logs error if locale is not found) - Note: Set and update return a
booleanindicating if the locale was found
locales
Available locales, derived from translation
- Type:
svelte.Readable<string[]>
Usage
<!-- LanguageSelector.svelte -->
<script>
import { locale, locales } from 'svelte-intl'
const setLocale = e => locale.set(e.target.value)
</script>
<select value={$locale} on:change={setLocale}>
{#each $locales as l}
<option value={l}> {l} </option>
{/each}
</select>options
See format-message options
Just calloptions.set({ }):)
- Type:
svelte.Readable<formatMessage.SetupOptions>(but update merges with current config)
getBrowserLocale
Tries to match the
window.navigator.languageto the available dictionaries
- Params:
- defaultLocale {string}: If no match is found, returns this