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 | // 注册方法 |