This changes i18n format from i18next json to fluent Spec version 1.0.0
Source can be loaded via npm or downloaded from this repo.
# npm package
$ npm install i18next-fluent
Wiring up:
import i18next from "i18next";
import Fluent from "i18next-fluent";
i18next.use(Fluent).init(i18nextOptions);
- As with all modules you can either pass the constructor function (class) to the i18next.use or a concrete instance.
- If you don't use a module loader it will be added to
window.i18nextFluent
When using this module, only the fluent format is respected, this means the i18next format interpolation etc. will not work.
So for example instead of Hy {{name}}!
it is Hi {$name}!
{
bindI18nextStore: true,
fluentBundleOptions: { useIsolating: false }
}
Options can be passed in by setting options.i18nFormat in i18next.init:
import i18next from "i18next";
import Fluent from "i18next-fluent";
i18next.use(Fluent).init({
i18nFormat: options
});
You can use the i18next-fluent-backend to directly load fluent files in fluent syntax from the server.
import i18next from "i18next";
import Fluent from "i18next-fluent";
i18next.use(Fluent).init({
lng: "en",
resources: {
en: {
translation: {
hello: "Hello { $name }."
}
}
}
});
i18next.t("hello", { name: "fluent" }); // -> Hello fluent.