Provider
The abstract Provider
class is used to provide translations to the application.
import {Provider} from '@schukai/monster/source/i18n/provider.mjs';
Fetch Provider
The FetchProvider
class is used to provide translations from a remote server.
import {Fetch} from '@schukai/monster/source/i18n/providers/fetch.mjs';
const provider = new Fetch(
'https://example.com/translations${language}.json',
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
);
provider.getTranslations('en-US').then(translations => {
console.log(translations);
});
The URL can contain the placeholder ${language}
, ${script}
, ${region}
, ${variants}
, ${extlang}
and ${privateUse}
.
The placeholders will be replaced with the language, country and locale of the current document.
import {Fetch} from '@schukai/monster/source/i18n/providers/fetch.mjs';
const provider = new Fetch(
'https://example.com/translations/${language}/${region}.json',
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
}
);
provider.getTranslations('en-US').then(translations => {
console.log(translations);
});
Embed Provider
The EmbedProvider
class is used to provide translations from a local tag.
You must add a script tag with the type application/json
. This Tag must contain a JSON object with the translations.
<script id="mmylocale" type="application/json">
{
"key": "translation"
}
</script>
Now you can use the EmbedProvider
to get the translations.
import {Embed} from '@schukai/monster/source/i18n/providers/embed.mjs';
const provider = new Embed('mmylocale');
provider.getTranslations('en-US').then(translations => {
console.log(translations);
});