1.0.0 • Published 4 months ago

com.hydroper.fluent v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

Fluent Project rapid integration

Rapidly support Fluent Project's 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 com.hydroper.fluent

Example TypeScript:

import { FluentBox } from "com.hydroper.fluent";

class Main
{
    fluentBox: FluentBox;

    constructor()
    {
        this.fluentBox = new FluentBox({
            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.fluentBox.load()))
        {
            // failed to load
            return;
        }

        console.log(this.fluentBox.getMessage("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 FluentBox object when necessary by invoking fluentBox.clone(); to change the current locale.

The fluentBox.clone(); method clones the FluentBox object, but still re-uses resources from the original object, avoiding resource duplication.

1.0.0

4 months ago