Skip to content

hydroperx/pi.js

Repository files navigation

PI

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.

Getting Started

Install dependency:

npm install @hydroperx/pi

Example 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 }!

Server Usage

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.

About

Product Internationalization - Rapid integration of Project Fluent translations in TypeScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published