API
Translate API
Package
@foo-i18n/t
The translate
function is responsible of returning the correct
string from a specified messages dictionary, supporting gender
and plurality
.
Declarations
type Messages = {
[key: string]: PluralMessage | GenderedMessage | string;
};
type NamespaceMessages = {
[key: string]: Messages;
};
function translate(
msg: NamespaceMessages
): (ns: string) => (text: string, values?: unknown) => string;
The function args
ns
,text
, andvalues
are inferred frommsg
. The signatures above have been simplified.
Usage
import { translate, type NamespaceMessages } from '@foo-i18n/t';
// NamespaceMessages-compliant dictionary
const messages = {
hello: {
'Hello {name}': 'Hello {name}',
},
} satisfies NamespaceMessages;
// retrieve the translator for messages
const translator = translate(messages);
// retrieve the translate function for
// namespace 'hello' (auto-completed)
const t = translator('hello');
// translate 'Hello {name}' (auto-completed, and
// placeholder 'name' is mandatory)
console.log(t('Hello {name}', { name: 'John' }));
// "Hello John"