Koa系列-i18n:koa-i18n
2019-03-28
字数统计:9k 字
阅读时长 ≈ 8 分钟
首先是使用了 i18n-2 ,这个模块意指被设计给 Express 开箱即用。但这个模块是fork了 i18n 。所以想要看具体的配置用法,得去搜索 i18n 。除此之外,这个中间件必须得搭配 koa-locale 一起使用。
首先定义 LOCALE_METHODS ,其值的意思是有几种使用 i18n 的方式,分别是 Subdomain , Cookie , Header , Query , Url , TL 。
1 | const LOCALE_METHODS = [ |
然后再定义类 I18n 继承 I18n2 ,通过配置选项得到 modes 和 whitelist 。
然后将 LOCALE_METHODS 通过循环将 SET_PREFIX + val 分别挂载到 I18n.prototype 。
1 | LOCALE_METHODS.forEach((m) => { |
定义函数 ial
在 app.context 上定义 i18n 属性,其 get 函数为类 I18n 的实例。
也给 app.crequest 上定义了 i18n 属性。
最后通过 whitelist 筛选出不需要的 i18n 。
1 | return function i18nMiddleware(ctx, next) { |
1 | // 注册方法 |