Package Exports
- mocoolka-i18n
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mocoolka-i18n) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
mocoolka-setting
Mocoolka-i18n is base module for mocoolka application. The module is for internationalization and localization that leverage the official Unicode CLDR JSON data.
Install
$ npm install mocoolka-i18nUsage
edit file "messages.mk-message.json" on intl directory
{
"root": {
"i18n" :{
"E-MISS-MESSAGE" : "Missing required message content '{value}'.",
"E-MISS-FORMAT-MESSAGE" : "format {type} error. value:{value} options:{options} language:{language}.",
"E-MISS-FORMAT-DATE" : "format date '{value}' error in language:{language} using options '{options}'.",
"E-MISS-FORMAT-PLURAL" : "format plural '{value}' error in language:{language} using options '{options}'.",
"E-MISS-FORMAT-NUMBER" : "format number '{value}' error in language:{language} using options '{options}'.",
"E-MISS-FORMAT-RELATIVE-TIME" : "format relative date '{value}' error in language:{language} using options '{options}' and unit '{unit}'.",
"E-MISS-FORMAT-CURRENCY" : "formatCurrency error. currencySymbol:{currencySymbol} value:{value} options:{options} language:{language}",
"E-MISS-FORMAT-UNIT" : "formatUnit error. unit:{unit} value:{value} options:{options} language:{language}"
},
"ERROR": {
"E-MISS-TYPE" : "The variable({variable})'s type expected is '{expected}',actual is '{actual}'",
"E-DIR-NOT-EXIST" : "The path ({path}) is not a directory",
"E-FILE-NOT-EXIST" : "The file be not found on '{path}'",
"E-LANG-NOT-SUPPORT" : "The language ({language}) be not supported by Application.Application support is '{supportLanguages}'",
"E-NOT-INIT" : "The module ({moduleName}) must init ,please first call function.",
"E-NOT-BLANK": "The variable can't be blank",
"E-MISS-PARSE-FILE" :"The error be throw while file be parsed on '{path}'",
"E-MISS-CALLBACK" :"callback function must exist"
}
},
"zh-Hans":{
"i18n" :{
"E-MISS-PARSE-FILE" :"CLDR文件读取时发生错误{path}",
"E-MISS-MESSAGE" : "'{value}'消息没有被发现,请核对配置消息配置文件.",
"E-MISS-FORMAT-DATE" : "日期'{value}'格式化时发生错误,使用语言{language}选项为'{options}'.",
"E-MISS-FORMAT-CURRENCY" : "格式化货币发生错误. 货币符号{currencySymbol} 值:{value} 选项:{options} 语言:{language}",
"E-MISS-FORMAT-UNIT" : "格式化单位时货币发生错误. 单位:{unit} 值:{value} 选项:{options} 语言:{language}"
},
"ERROR": {
"E-MISS-TYPE" : "类型错误。期望是 {expected},实际是 {actual}",
"E-DIR-NOT-EXIST" : "{path} 文件路径不存在",
"E-FILE-NOT-EXIST" : "没有找到指定的文件'{path}'",
"E-LANG-NOT-SUPPORT" : "CLDR不支持{languageNotSupport} be not supported by CLDR.支持的语言有 {supportLanguages}",
"E-NOT-INIT" : " 模块必须先初始化 {moduleName} ,请先调用初速化函数 {initFunction}.",
"E-NOT-BLANK": "变量不能为空值",
"E-MISS-CALLBACK" :"要求的回调函数不存在"
}
}
}start micro service
const i18nService = require('mocoolka-i18n');
i18nService(__dirname);format date
serviceTools.standClientPromise('mocoolka-i18n', 'formatDate',
{value: (new Date()).toUTCString()}).then(data=> {
console.log(data)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatDate',
{value: (new Date()).toUTCString(), language: 'zh-Hans'}).then(data=> {
console.log(data)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatDates',
{value: (new Date()).toUTCString()}).then(data=> {
console.log(data)
}).catch(error=> {
console.error(error);
});
output:
{ result: 'Apr 26, 2017, 9:05:28 AM' }
{ result: '2017年4月26日 上午9:05:28' }
{ result:
{ value: 'Wed, 26 Apr 2017 01:05:28 GMT',
message:
{ en: 'Apr 26, 2017, 9:05:28 AM',
'zh-Hans': '2017年4月26日 上午9:05:28' } } }format relative times
serviceTools.standClientPromise('mocoolka-i18n', 'formatRelativeTime',
{value: 30000, unit: 'second'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatRelativeTime',
{value: 30000, unit: 'second', language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatRelativeTimes',
{value: 30000, unit: 'second'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
in 30,000 seconds
30,000秒钟后
{ value: 30000,
unit: 'second',
message: { en: 'in 30,000 seconds', 'zh-Hans': '30,000秒钟后' } }format unit
serviceTools.standClientPromise('mocoolka-i18n', 'formatUnit',
{value: 30000, unit: 'second'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatUnit',
{value: 30000, unit: 'second', language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatUnits',
{value: 30000, unit: 'second'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
30,000 sec
30,000秒
{ value: 30000,
unit: 'second',
message: { en: '30,000 sec', 'zh-Hans': '30,000秒' } }format currency
serviceTools.standClientPromise('mocoolka-i18n', 'formatCurrency',
{value: 30000, currencySymbol: 'USD'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatCurrency',
{value: 30000, currencySymbol: 'USD', language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatCurrencies',
{value: 30000, currencySymbol: 'USD'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
30,000.00 US dollars
30,000.00美元
{ value: 30000,
currencySymbol: 'USD',
message: { en: '30,000.00 US dollars', 'zh-Hans': '30,000.00美元' } }format number
serviceTools.standClientPromise('mocoolka-i18n', 'formatNumber',
{value: 30000}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatNumber',
{value: 30000, language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatNumbers',
{value: 30000}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
30,000
30,000
{ value: 30000, message: { en: '30,000', 'zh-Hans': '30,000' } }format plural
serviceTools.standClientPromise('mocoolka-i18n', 'plural',
{value: 30000}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
otherload message
serviceTools.standClientPromise('mocoolka-i18n', 'loadMessage',
{rootPath: fileTools.path(__dirname, 'intl')}).then(data=> {
serviceTools.standClientPromise('mocoolka-i18n', 'formatMessage',
{id: 'log/start'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});format message
serviceTools.standClientPromise('mocoolka-i18n', 'formatMessage',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatMessage',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}, language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatMessages',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
Missing required message content 'test'.
'test'消息没有被发现,请核对配置消息配置文件.
{ id: 'i18n/E-MISS-MESSAGE',
value: { value: 'test' },
message:
{ en: 'Missing required message content \'test\'.',
'zh-Hans': '\'test\'消息没有被发现,请核对配置消息配置文件.' } }format abbreviation
serviceTools.standClientPromise('mocoolka-i18n', 'formatAbbreviation',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatAbbreviation',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}, language: 'zh-Hans'}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'formatAbbreviations',
{id: 'i18n/E-MISS-MESSAGE', value: {value: 'test'}}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
serviceTools.standClientPromise('mocoolka-i18n', 'getSupportedLanguages',
{}).then(data=> {
console.log(data.result)
}).catch(error=> {
console.error(error);
});
output:
Missing required message content 'test'.
'test'消息没有被发现,请核对配置消息配置文件.
{ id: 'i18n/E-MISS-MESSAGE',
value: { value: 'test' },
message:
{ en: 'Missing required message content \'test\'.',
'zh-Hans': '\'test\'消息没有被发现,请核对配置消息配置文件.' } }Docs
License
Licensed under the MIT, version 2.0. (see MIT).