UNPKG

hikaru-coffee

Version:

A static site generator that generates routes based on directories naturally.

74 lines (64 loc) 1.75 kB
// Generated by CoffeeScript 2.3.1 (function() { var Promise, Translator, format; ({format} = require("util")); Promise = require("bluebird"); Translator = class Translator { constructor(logger) { this.register = this.register.bind(this); this.list = this.list.bind(this); this.getTranslateFn = this.getTranslateFn.bind(this); this.logger = logger; this._ = {}; } register(lang, obj) { var i, l, len; if (!(obj instanceof Object)) { throw new TypeError("obj must be a Object generated from yaml language file!"); return; } if (lang instanceof Array) { for (i = 0, len = lang.length; i < len; i++) { l = lang[i]; this._[l] = obj; } return; } return this._[lang] = obj; } list() { return Object.keys(this._); } getTranslateFn(lang) { return (key, ...args) => { var i, k, keys, len, res; keys = key.toString().split("."); res = this._[lang]; if (!(lang in this._)) { this.logger.info(`Hikaru cannot find language \`${lang}\`, using default.`); res = this._["default"]; } for (i = 0, len = keys.length; i < len; i++) { k = keys[i]; if (!(k in res)) { return key; } res = res[k]; } if (typeof res === "string") { if (args.length > 0) { return format(res, args); } else { return res; } } if (args.length > 0) { return format(key, args); } else { return key; } }; } }; module.exports = Translator; }).call(this);