new Runtime(localeopt, pluralFuncopt, formattersopt)
A set of utility functions that are called by the compiled Javascript functions, these are included locally in the output of compile().
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
locale |
string |
<optional> |
The parsed locale |
pluralFunc |
function |
<optional> |
Pluralization function for the locale |
formatters |
Array.<function()> |
<optional> |
Optional custom formatting functions |
- Source:
Members
fmt :Object.<string, function()>
Custom formatting functions called by {var, fn[, args]*}
syntax
For examples, see MessageFormat.formatters
Type:
- Object.<string, function()>
- Source:
- See:
pluralFuncs :Object.<string, function()>
Pluralization functions included in compiled output
Type:
- Object.<string, function()>
- Source:
Methods
number(value, offsetopt)
Utility function for #
in plural rules
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
value |
number | The value to operate on |
||
offset |
number |
<optional> |
0 | An optional offset, set by the surrounding context |
- Source:
plural(value, offset, lcfunc, data, isOrdinalnullable) → {string}
Utility function for {N, plural|selectordinal, ...}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
value |
number | The key to use to find a pluralization rule |
|
offset |
number | An offset to apply to |
|
lcfunc |
function | A locale function from |
|
data |
Object.<string, string> | The object from which results are looked up |
|
isOrdinal |
boolean |
<nullable> |
If true, use ordinal rather than cardinal rules |
- Source:
Returns:
The result of the pluralization
- Type
- string
select(value, data) → {string}
Utility function for {N, select, ...}
Parameters:
Name | Type | Description |
---|---|---|
value |
number | The key to use to find a selection |
data |
Object.<string, string> | The object from which results are looked up |
- Source:
Returns:
The result of the select statement
- Type
- string
toString()
Custom stringifier
- Source:
Example
var mf = new MessageFormat('en');
console.log(mf.runtime.toString())
> var pluralFuncs = {
> en: function (n, ord) {
> var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n,
> n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
> if (ord) return (n10 == 1 && n100 != 11) ? 'one'
> : (n10 == 2 && n100 != 12) ? 'two'
> : (n10 == 3 && n100 != 13) ? 'few'
> : 'other';
> return (n == 1 && v0) ? 'one' : 'other';
> }
> };
> var fmt = {};
> var number = function (value, offset) {
> if (isNaN(value)) throw new Error("'" + value + "' isn't a number.");
> return value - (offset || 0);
> };
> var plural = function (value, offset, lcfunc, data, isOrdinal) {
> if ({}.hasOwnProperty.call(data, value)) return data[value]();
> if (offset) value -= offset;
> var key = lcfunc(value, isOrdinal);
> if (key in data) return data[key]();
> return data.other();
> };
> var select = function (value, data) {
> if ({}.hasOwnProperty.call(data, value)) return data[value]();
> return data.other()
> };