Class: Translator
The messages in the language of the current request. With the I18nMiddleware on the entrypoint, each request gets one Translator of its negotiated language, shared by the objects of the request: the controller, the @Scoped providers and the access control rules inject it with @Inject(Translator). It is a scoped provider, autoloaded: it needs no registration. Without the middleware (or out of a request), its methods throw I18nTranslatorException; use I18n.translator there.
Example
import {Application} from 'lakutata'
import {buildEntrypoints, Controller} from 'lakutata/com/entrypoint'
import {expressHTTPEntrypoint} from 'lakutata/adapter/express'
import {CLIAction, GET} from 'lakutata/decorator/ctrl'
import {Inject} from 'lakutata/decorator/di'
import {buildI18nOptions, I18nMiddleware, Translator} from 'lakutata/com/i18n'
class OrderController extends Controller {
@Inject(Translator)
protected readonly translator: Translator
//GET /orders/count?lang=zh-CN, or the lang cookie, or Accept-Language
@GET('/orders/count')
@CLIAction('count-orders')
public async count(): Promise<string> {
return `${this.translator.locale}: ${this.translator.t('order.count', {count: 3})}`
}
}
Application.run(() => ({
id: 'shop.app',
name: 'Shop',
components: {
i18n: buildI18nOptions({
messages: {
'en': {order: {count: '{count, plural, one {# order} other {# orders}}'}},
'zh-CN': {order: {count: '{count} 个订单'}}
}
}),
entrypoint: buildEntrypoints({
controllers: [OrderController],
middlewares: [I18nMiddleware],
http: expressHTTPEntrypoint({port: 3000})
})
},
bootstrap: ['entrypoint']
}))Extends
Implements
Constructors
Constructor
new Translator(
cradleProxy):Translator
Called by the container only: an object is created through a container (see the class description), never with new.
Parameters
cradleProxy
Record<string | symbol, any>
The container's resolution proxy.
Returns
Translator
Inherited from
Properties
constructor
constructor:
Function
The initial value of Object.prototype.constructor is the standard built-in Object constructor.
Inherited from
Provider.constructor
locale
readonlylocale:string
The request's language tag, negotiated by the I18nMiddleware among the supported languages (the same as context.locale); undefined without the middleware.
Implementation of
Accessors
$id
Get Signature
get $id():
string|symbol
The name the object was registered under (its key in the module options), or a symbol of its class for an object registered by its class or built without registration.
Returns
string | symbol
Inherited from
$symbol
Get Signature
get $symbol():
symbol
A symbol unique to the instance (made from its $uuid), created on first read.
Returns
symbol
Inherited from
$uuid
Get Signature
get $uuid():
string
A random UUID identifying the instance.
Returns
string
Inherited from
className
Get Signature
get
staticclassName():string
The name of the class.
Returns
string
Inherited from
className
Get Signature
get className():
string
The name of the object's class.
Returns
string
Inherited from
Methods
[asyncDispose]()
[asyncDispose]():
Promise<void>
Dispose the object at the end of an await using block, as BaseObject.dispose.
Returns
Promise<void>
Resolves once the object is destroyed.
Inherited from
acceptsOption()
staticacceptsOption(name,value):boolean
Whether the class accepts an option which is not one of its @Configurable properties (an option it reads with getConfigurableRecords()): the modules check the options of the objects they declare and warn of the options the classes do not accept. Override it in the classes reading options without configurable properties.
Parameters
name
string
The option name.
value
unknown
The option value.
Returns
boolean
true when the option is accepted; false by default.
Inherited from
assign()
Call Signature
staticassign<T,U>(target,source):T&U
Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.
Type Parameters
T
T extends object
U
U
Parameters
target
T
The target object to copy to.
source
U
The source object from which to copy properties.
Returns
T & U
Inherited from
Call Signature
staticassign<T,U,V>(target,source1,source2):T&U&V
Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.
Type Parameters
T
T extends object
U
U
V
V
Parameters
target
T
The target object to copy to.
source1
U
The first source object from which to copy properties.
source2
V
The second source object from which to copy properties.
Returns
T & U & V
Inherited from
Call Signature
staticassign<T,U,V,W>(target,source1,source2,source3):T&U&V&W
Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.
Type Parameters
T
T extends object
U
U
V
V
W
W
Parameters
target
T
The target object to copy to.
source1
U
The first source object from which to copy properties.
source2
V
The second source object from which to copy properties.
source3
W
The third source object from which to copy properties.
Returns
T & U & V & W
Inherited from
Call Signature
staticassign(target, ...sources):any
Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.
Parameters
target
object
The target object to copy to.
sources
...any[]
One or more source objects from which to copy properties
Returns
any
Inherited from
create()
Call Signature
staticcreate(o):any
Creates an object that has the specified prototype or that has null prototype.
Parameters
o
object | null
Object to use as a prototype. May be null.
Returns
any
Inherited from
Call Signature
staticcreate(o,properties):any
Creates an object that has the specified prototype, and that optionally contains specified properties.
Parameters
o
object | null
Object to use as a prototype. May be null
properties
PropertyDescriptorMap & ThisType<any>
JavaScript object that contains one or more property descriptors.
Returns
any
Inherited from
date()
date(
value,options?):string
Format a date (and its time when the options ask for it) in the request's language, in the component's timeZone (the process's one without it).
Parameters
value
number | Date
The date, or a timestamp in milliseconds.
options?
DateTimeFormatOptions
The options of Intl.DateTimeFormat ({dateStyle: 'long'}); their timeZone replaces the component's one.
Returns
string
The formatted date.
Throws
When the entrypoint has no I18nMiddleware, or out of a request.
Implementation of
defineProperties()
staticdefineProperties<T>(o,properties):T
Adds one or more properties to an object, and/or modifies attributes of existing properties.
Type Parameters
T
T
Parameters
o
T
Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.
properties
PropertyDescriptorMap & ThisType<any>
JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.
Returns
T
Inherited from
defineProperty()
staticdefineProperty<T>(o,p,attributes):T
Adds a property to an object, or modifies attributes of an existing property.
Type Parameters
T
T
Parameters
o
T
Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.
p
PropertyKey
The property name.
attributes
PropertyDescriptor & ThisType<any>
Descriptor for the property. It can be for a data property or an accessor property.
Returns
T
Inherited from
dispose()
dispose():
Promise<void>
Destroy the object: its beforeDestroy(), the objects it created, then its destroy(). Calling it more than once destroys once. A disposed singleton or scoped object is dropped from its container, which creates a new one on the next request. Using a destroyed object (getObject(), buildObject()) throws an ObjectDestroyedException.
Returns
Promise<void>
Resolves once the object is destroyed.
Throws
The error of the object's own beforeDestroy() or destroy() (an AggregateError when several fail); the errors of the objects it created are reported through the application's logger instead.
Inherited from
entries()
Call Signature
staticentries<T>(o): [string,T][]
Returns an array of key/values of the enumerable own properties of an object
Type Parameters
T
T
Parameters
o
{[s: string]: T; } | ArrayLike<T>
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
[string, T][]
Inherited from
Call Signature
staticentries(o): [string,any][]
Returns an array of key/values of the enumerable own properties of an object
Parameters
o
{ }
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
[string, any][]
Inherited from
format()
format(
message,params?):string
Format an ICU MessageFormat message which is not in the catalogs, in the request's language.
Parameters
message
string
The message (Hello, {name}).
params?
Record<string, unknown>
The arguments of the message, by their names.
Returns
string
The formatted message. With missing: 'key', {name} in place of a missing argument, a plain number for a currency argument without a currency (each with a warning, once).
Throws
When the entrypoint has no I18nMiddleware, or out of a request.
Throws
When the message is not valid ICU MessageFormat.
Throws
When an argument is missing, or a currency argument has no currency, and the missing option is 'throw'.
Implementation of
freeze()
Call Signature
staticfreeze<T>(f):T
Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
Type Parameters
T
T extends Function
Parameters
f
T
Object on which to lock the attributes.
Returns
T
Inherited from
Call Signature
staticfreeze<T,U>(o):Readonly<T>
Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
Type Parameters
T
T extends object
U
U extends string | number | bigint | boolean | symbol
Parameters
o
T
Object on which to lock the attributes.
Returns
Readonly<T>
Inherited from
Call Signature
staticfreeze<T>(o):Readonly<T>
Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
Type Parameters
T
T
Parameters
o
T
Object on which to lock the attributes.
Returns
Readonly<T>
Inherited from
fromEntries()
Call Signature
staticfromEntries<T>(entries):object
Returns an object created by key-value entries for properties and methods
Type Parameters
T
T = any
Parameters
entries
Iterable<readonly [PropertyKey, T]>
An iterable object that contains key-value entries for properties and methods.
Returns
object
Inherited from
Call Signature
staticfromEntries(entries):any
Returns an object created by key-value entries for properties and methods
Parameters
entries
Iterable<readonly any[]>
An iterable object that contains key-value entries for properties and methods.
Returns
any
Inherited from
getMethod()
getMethod(
name,throwExceptionIfNotFound?): (...args) =>any
Get a method bound to the object, to call it by name.
Parameters
name
string | symbol
The method name or symbol.
throwExceptionIfNotFound?
boolean
Throw when the method does not exist, instead of returning a function doing nothing; false by default.
Returns
The bound method, or a function doing nothing (returning undefined) when it does not exist.
(...args) => any
Throws
When the method does not exist and throwExceptionIfNotFound is true.
Inherited from
getOwnPropertyDescriptor()
staticgetOwnPropertyDescriptor(o,p):PropertyDescriptor|undefined
Gets the own property descriptor of the specified object. An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.
Parameters
o
any
Object that contains the property.
p
PropertyKey
Name of the property.
Returns
PropertyDescriptor | undefined
Inherited from
Provider.getOwnPropertyDescriptor
getOwnPropertyDescriptors()
staticgetOwnPropertyDescriptors<T>(o): { [P in string | number | symbol]: TypedPropertyDescriptor<T[P]> } &object
Returns an object containing all own property descriptors of an object
Type Parameters
T
T
Parameters
o
T
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
{ [P in string | number | symbol]: TypedPropertyDescriptor<T[P]> } & object
Inherited from
Provider.getOwnPropertyDescriptors
getOwnPropertyNames()
staticgetOwnPropertyNames(o):string[]
Returns the names of the own properties of an object. The own properties of an object are those that are defined directly on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.
Parameters
o
any
Object that contains the own properties.
Returns
string[]
Inherited from
getOwnPropertySymbols()
staticgetOwnPropertySymbols(o):symbol[]
Returns an array of all symbol properties found directly on object o.
Parameters
o
any
Object to retrieve the symbols from.
Returns
symbol[]
Inherited from
Provider.getOwnPropertySymbols
getProperty()
getProperty<
T>(propertyKey,defaultValue?):T
Read an own property of the object.
Type Parameters
T
T = any
Parameters
propertyKey
string
The property name.
defaultValue?
T
The value returned when the object has no own property of this name.
Returns
T
The property value, or the default value.
Inherited from
getPrototypeOf()
staticgetPrototypeOf(o):any
Returns the prototype of an object.
Parameters
o
any
The object that references the prototype.
Returns
any
Inherited from
has()
has(
key):boolean
Tell whether a key has a message in the request's language or in the languages it falls back to.
Parameters
key
string
The key of the message.
Returns
boolean
true when Translator.t finds a message for the key.
Throws
When the entrypoint has no I18nMiddleware, or out of a request.
Implementation of
hasMethod()
hasMethod(
name):boolean
Whether the object has a method of this name or symbol (a function of its class, not an own property).
Parameters
name
string | symbol
The method name or symbol.
Returns
boolean
true when the method exists.
Inherited from
hasOwn()
statichasOwn(o,v):boolean
Determines whether an object has a property with the specified name.
Parameters
o
object
An object.
v
PropertyKey
A property name.
Returns
boolean
Inherited from
hasOwnProperty()
hasOwnProperty(
v):boolean
Determines whether an object has a property with the specified name.
Parameters
v
PropertyKey
A property name.
Returns
boolean
Inherited from
hasProperty()
hasProperty(
propertyKey):boolean
Whether the object has an own property (not a method or accessor of its class) of this name or symbol.
Parameters
propertyKey
string | symbol
The property name or symbol.
Returns
boolean
true when the property exists.
Inherited from
is()
staticis(value1,value2):boolean
Returns true if the values are the same value, false otherwise.
Parameters
value1
any
The first value.
value2
any
The second value.
Returns
boolean
Inherited from
isExtensible()
staticisExtensible(o):boolean
Returns a value that indicates whether new properties can be added to an object.
Parameters
o
any
Object to test.
Returns
boolean
Inherited from
isFrozen()
staticisFrozen(o):boolean
Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.
Parameters
o
any
Object to test.
Returns
boolean
Inherited from
isPrototypeOf()
isPrototypeOf(
v):boolean
Determines whether an object exists in another object's prototype chain.
Parameters
v
Object
Another object whose prototype chain is to be checked.
Returns
boolean
Inherited from
isSealed()
staticisSealed(o):boolean
Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.
Parameters
o
any
Object to test.
Returns
boolean
Inherited from
keys()
Call Signature
statickeys(o):string[]
Returns the names of the enumerable string properties and methods of an object.
Parameters
o
object
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
string[]
Inherited from
Call Signature
statickeys(o):string[]
Returns the names of the enumerable string properties and methods of an object.
Parameters
o
{ }
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
string[]
Inherited from
number()
number(
value,options?):string
Format a number in the request's language (1234.5 gives 1,234.5 in English, 1.234,5 in German).
Parameters
value
number | bigint
The number.
options?
NumberFormatOptions
The options of Intl.NumberFormat ({style: 'currency', currency: 'EUR'}); the component's currency option is not applied here.
Returns
string
The formatted number.
Throws
When the entrypoint has no I18nMiddleware, or out of a request.
Implementation of
preventExtensions()
staticpreventExtensions<T>(o):T
Prevents the addition of new properties to an object.
Type Parameters
T
T
Parameters
o
T
Object to make non-extensible.
Returns
T
Inherited from
propertyIsEnumerable()
propertyIsEnumerable(
v):boolean
Determines whether a specified property is enumerable.
Parameters
v
PropertyKey
A property name.
Returns
boolean
Inherited from
propertyNames()
propertyNames():
string[]
The names of the object's own properties (not its class's methods and accessors).
Returns
string[]
The names.
Inherited from
propertySymbols()
propertySymbols():
symbol[]
The symbols of the object's own properties.
Returns
symbol[]
The symbols.
Inherited from
seal()
staticseal<T>(o):T
Prevents the modification of attributes of existing properties, and prevents the addition of new properties.
Type Parameters
T
T
Parameters
o
T
Object on which to lock the attributes.
Returns
T
Inherited from
setProperty()
setProperty(
propertyKey,value):void
Set a property of the object; the value is not validated, even for a @Configurable property.
Parameters
propertyKey
string
The property name.
value
any
The value.
Returns
void
Inherited from
setPrototypeOf()
staticsetPrototypeOf(o,proto):any
Sets the prototype of a specified object o to object proto or null. Returns the object o.
Parameters
o
any
The object to change its prototype.
proto
object | null
The value of the new prototype or null.
Returns
any
Inherited from
t()
t<
K>(key,params?):string
Give the message of a key in the request's language, formatted with its arguments (see I18n.t).
Type Parameters
K
K extends string
Parameters
key
K
The key of the message (order.count).
params?
The arguments of the message, by their names.
Returns
string
The formatted message. With missing: 'key', the key itself when it is missing, {name} in place of a missing argument, a plain number for a currency argument without a currency (each with a warning, once).
Throws
When the entrypoint has no I18nMiddleware, or out of a request.
Throws
When no message has the key and the missing option is 'throw'.
Throws
When an argument is missing, or a currency argument has no currency, and the missing option is 'throw'.
Throws
When the message is not valid ICU MessageFormat.
Implementation of
toLocaleString()
toLocaleString():
string
Returns a date converted to a string using the current locale.
Returns
string
Inherited from
toString()
toString():
string
Returns a string representation of an object.
Returns
string
Inherited from
valueOf()
valueOf():
Object
Returns the primitive value of the specified object.
Returns
Object
Inherited from
values()
Call Signature
staticvalues<T>(o):T[]
Returns an array of values of the enumerable own properties of an object
Type Parameters
T
T
Parameters
o
{[s: string]: T; } | ArrayLike<T>
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
T[]
Inherited from
Call Signature
staticvalues(o):any[]
Returns an array of values of the enumerable own properties of an object
Parameters
o
{ }
Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
Returns
any[]