Rapidly support Project Fluent translation in your web application. Both client-side and server-side applications are supported.
That is an updated version of com.hydroper.ftl.
Install dependency:
npm install @hydroperx/piExample TypeScript:
import { PI } from "@hydroperx/pi";
class Main {
pi: PI;
constructor() {
this.pi = new PI({
locales: ["en"],
fallbacks: {
// "pt-BR": ["en"],
},
defaultLocale: "en",
source: "res/lang",
files: [
"_", // res/lang/LANG/_.ftl
],
clean: true,
// specify either 'http' or 'fileSystem' as load method
method: "fileSystem",
});
this.initialize();
}
async initialize() {
if (!(await this.pi.load())) {
// failed to load
return;
}
console.log(this.pi.get("hello", { to: "Diantha" }));
}
}
new Main();Example FTL file at res/lang/en/_.ftl:
hello = Hello, { $to }!
Usually, for server applications, set the clean option to false and clone the PI object when necessary by invoking pi.clone(); to change the current locale.
The pi.clone(); method clones the PI object, but still re-uses resources from the original object, avoiding resource duplication.