diff --git a/node-polyglot/node-polyglot-tests.ts b/node-polyglot/node-polyglot-tests.ts new file mode 100644 index 0000000000..fee07d79e9 --- /dev/null +++ b/node-polyglot/node-polyglot-tests.ts @@ -0,0 +1,47 @@ +import Polyglot = require("node-polyglot"); + +function instantiatePolyglot(): void { + var polyglot = new Polyglot(); + var phrasedPolyglot = new Polyglot({phrases: {"hello": "Hello"}}); + var localePolyglot = new Polyglot({locale: "fr"}); +} + +function translate(): void { + var polyglot = new Polyglot(); + + polyglot.extend({ + "hello": "Hello", + "hello_name": "Hola, %{name}.", + "nav": { + "sidebar": { + "welcome": "Welcome" + } + }, + "num_cars": "%{smart_count} car |||| %{smart_count} cars" + }); + + polyglot.t("hello"); + polyglot.t("hello_name"); + polyglot.t("nav.sidebar.welcome"); + polyglot.t("num_cars", {smart_count: 0}); + polyglot.t("num_cars", 0); + polyglot.t("hello_name", {name: "Spike"}); + polyglot.t("i_like_to_write_in_language", { + _: "I like to write in %{language}.", + language: "Javascript" + }); + + polyglot.replace({ + "hello": "hey", + "nav": { + "sidebar": { + "welcome": "Greetings" + } + } + }); + + polyglot.clear(); + + polyglot.locale("fr"); + polyglot.locale(); +} diff --git a/node-polyglot/node-polyglot.d.ts b/node-polyglot/node-polyglot.d.ts new file mode 100644 index 0000000000..1b3469f028 --- /dev/null +++ b/node-polyglot/node-polyglot.d.ts @@ -0,0 +1,42 @@ +// Type definitions for node-polyglot v0.4.1 +// Project: https://github.com/airbnb/polyglot.js +// Definitions by: Tim Jackson-Kiely +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module "node-polyglot" { + module Polyglot { + interface InterpolationOptions { + name?: string; + smart_count?: number; + _?: string; + } + + interface PolyglotOptions { + phrases?: any; + locale?: string; + } + } + + class Polyglot { + constructor(options?: Polyglot.PolyglotOptions); + + extend(phrases: any): void; + + t(phrase: string): string; + + t(phrase: string, smartCount: number): string; + + t(phrase: string, interpolationOptions: Polyglot.InterpolationOptions): string; + + clear(): void; + + replace(phrases: any): void; + + locale(): string; + + locale(locale: string): void; + } + + export = Polyglot; +} +