UNPKG

hikaru-coffee

Version:

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

46 lines (40 loc) 1.03 kB
{format} = require("util") Promise = require("bluebird") class Translator constructor: (logger) -> @logger = logger @_ = {} register: (lang, obj) => if obj not instanceof Object throw new TypeError( "obj must be a Object generated from yaml language file!" ) return if lang instanceof Array for l in lang @_[l] = obj return @_[lang] = obj list: () => return Object.keys(@_) getTranslateFn: (lang) => return (key, args...) => keys = key.toString().split(".") res = @_[lang] if lang not of @_ @logger.info("Hikaru cannot find language `#{lang}`, using default.") res = @_["default"] for k in keys if k not of res return key res = res[k] if typeof(res) is "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