mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-06-28 22:30:01 +00:00
[node-polyglot] Add types for new options and static methods from latest release (#37991)
* [node-polyglot] Update types to match v2.3.1 * [node-polyglot] Update tests to match types * [node-polyglot] Run prettier on test file * [node-polyglot] Add myself to the contributors list Co-Authored-By: Liam Ross <liamross.code@gmail.com>
This commit is contained in:
committed by
Andrew Casey
parent
f0ffba1350
commit
b5deac6480
16
types/node-polyglot/index.d.ts
vendored
16
types/node-polyglot/index.d.ts
vendored
@@ -1,7 +1,8 @@
|
||||
// Type definitions for node-polyglot v0.4.3
|
||||
// Type definitions for node-polyglot v0.4.4
|
||||
// Project: https://github.com/airbnb/polyglot.js
|
||||
// Definitions by: Tim Jackson-Kiely <https://github.com/timjk>
|
||||
// Liam Ross <https://github.com/liamross>
|
||||
// Michael Mok <https://github.com/pmmmwh>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
declare namespace Polyglot {
|
||||
@@ -12,18 +13,27 @@ declare namespace Polyglot {
|
||||
[interpolationKey: string]: any;
|
||||
}
|
||||
|
||||
interface InterpolationTokenOptions {
|
||||
prefix?: string;
|
||||
suffix?: string;
|
||||
}
|
||||
|
||||
interface PolyglotOptions {
|
||||
phrases?: any;
|
||||
locale?: string;
|
||||
allowMissing?: boolean;
|
||||
onMissingKey?: (key: string, options?: Polyglot.InterpolationOptions, locale?: string) => string;
|
||||
warn?: (message: string) => void;
|
||||
interpolation?: InterpolationTokenOptions;
|
||||
}
|
||||
|
||||
function transformPhrase(phrase: string, options?: number | Polyglot.InterpolationOptions, locale?: string): string;
|
||||
}
|
||||
|
||||
declare class Polyglot {
|
||||
constructor(options?: Polyglot.PolyglotOptions);
|
||||
|
||||
extend(phrases: any): void;
|
||||
extend(phrases: any, prefix?: string): void;
|
||||
|
||||
t(phrase: string, options?: number | Polyglot.InterpolationOptions): string;
|
||||
|
||||
@@ -34,6 +44,8 @@ declare class Polyglot {
|
||||
locale(locale?: string): string;
|
||||
|
||||
has(phrase: string): boolean;
|
||||
|
||||
unset(phrases: any, prefix?: string): void;
|
||||
}
|
||||
|
||||
export = Polyglot;
|
||||
|
||||
@@ -1,70 +1,105 @@
|
||||
|
||||
import Polyglot = require("node-polyglot");
|
||||
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"});
|
||||
var allowMissingPolyglot = new Polyglot({
|
||||
phrases: {"hello": "Hello"},
|
||||
allowMissing: true
|
||||
});
|
||||
var onMissingKeySimplePolyglot = new Polyglot({
|
||||
phrases: {"hello": "Hello"},
|
||||
onMissingKey: (key: string): string => {
|
||||
return 'ouups!';
|
||||
}
|
||||
});
|
||||
var onMissingKeyComplexPolyglot = new Polyglot({
|
||||
phrases: {"hello": "Hello"},
|
||||
onMissingKey: (key: string, options: Polyglot.InterpolationOptions, locale: string): string => {
|
||||
return 'ouups!';
|
||||
}
|
||||
});
|
||||
var polyglot = new Polyglot();
|
||||
var phrasedPolyglot = new Polyglot({ phrases: { hello: 'Hello' } });
|
||||
var localePolyglot = new Polyglot({ locale: 'fr' });
|
||||
var allowMissingPolyglot = new Polyglot({
|
||||
phrases: { hello: 'Hello' },
|
||||
allowMissing: true,
|
||||
});
|
||||
var onMissingKeySimplePolyglot = new Polyglot({
|
||||
phrases: { hello: 'Hello' },
|
||||
onMissingKey: (key: string): string => {
|
||||
return 'ouups!';
|
||||
},
|
||||
});
|
||||
var onMissingKeyComplexPolyglot = new Polyglot({
|
||||
phrases: { hello: 'Hello' },
|
||||
onMissingKey: (key: string, options: Polyglot.InterpolationOptions, locale: string): string => {
|
||||
return 'ouups!';
|
||||
},
|
||||
});
|
||||
var warnPolyglot = new Polyglot({
|
||||
warn: (message: string): void => {
|
||||
return;
|
||||
},
|
||||
});
|
||||
var interpolationPrefixPolyglot = new Polyglot({
|
||||
interpolation: { prefix: '$[' },
|
||||
});
|
||||
var interpolationSuffixPolyglot = new Polyglot({ interpolation: { suffix: ']' } });
|
||||
}
|
||||
|
||||
function translate(): void {
|
||||
var polyglot = new Polyglot();
|
||||
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.extend({
|
||||
hello: 'Hello',
|
||||
hello_name: 'Hola, %{name}.',
|
||||
nav: {
|
||||
sidebar: {
|
||||
welcome: 'Welcome',
|
||||
},
|
||||
},
|
||||
num_cars: '%{smart_count} car |||| %{smart_count} cars',
|
||||
});
|
||||
polyglot.extend(
|
||||
{
|
||||
hello: 'Hello',
|
||||
hello_name: 'Hola, %{name}.',
|
||||
},
|
||||
'nested',
|
||||
);
|
||||
|
||||
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.has("hello");
|
||||
polyglot.has("world");
|
||||
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.has('hello');
|
||||
polyglot.has('world');
|
||||
|
||||
polyglot.clear();
|
||||
polyglot.replace({
|
||||
hello: 'hey',
|
||||
nav: {
|
||||
sidebar: {
|
||||
welcome: 'Greetings',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (polyglot.locale("fr")) {
|
||||
};
|
||||
|
||||
if (polyglot.locale()) {
|
||||
};
|
||||
polyglot.unset('hello');
|
||||
polyglot.unset({
|
||||
hello_name: 'Hola, %{name}.',
|
||||
});
|
||||
polyglot.unset('hello', 'nested');
|
||||
polyglot.unset(
|
||||
{
|
||||
hello_name: 'Hola, %{name}.',
|
||||
},
|
||||
'nested',
|
||||
);
|
||||
|
||||
polyglot.clear();
|
||||
|
||||
if (polyglot.locale('fr')) {
|
||||
}
|
||||
|
||||
if (polyglot.locale()) {
|
||||
}
|
||||
}
|
||||
|
||||
function transform(): void {
|
||||
Polyglot.transformPhrase('Hello');
|
||||
Polyglot.transformPhrase('Hola, %{name}.', { name: 'Spike' });
|
||||
Polyglot.transformPhrase('%{smart_count} car |||| %{smart_count} cars', 0);
|
||||
Polyglot.transformPhrase('%{smart_count} car |||| %{smart_count} cars', { smart_count: 0 });
|
||||
Polyglot.transformPhrase('Bonjour', undefined, 'fr');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user