From dddb4c0c2e3bb5c961691a28aba7e4aa655f5a40 Mon Sep 17 00:00:00 2001 From: Tao Xu Date: Thu, 27 Apr 2017 16:04:15 +0800 Subject: [PATCH] feat: support header lang from localeAlias (#27) --- index.js | 2 +- test/index.test.js | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index d842923..07e7b84 100644 --- a/index.js +++ b/index.js @@ -141,7 +141,7 @@ module.exports = function (app, options) { if (languages.length > 0) { for (let i = 0; i < languages.length; i++) { const lang = formatLocale(languages[i]); - if (resources[lang]) { + if (resources[lang] || localeAlias[lang]) { locale = lang; break; } diff --git a/test/index.test.js b/test/index.test.js index 640984d..5f89773 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -213,6 +213,33 @@ describe('koa-locales.test.js', function () { .expect('Set-Cookie', /^locale=de; path=\/; expires=\w+/) .expect(200, done); }); + + it('should use localeAlias header', function (done) { + request(cookieFieldMapApp.callback()) + .get('/') + .set('Accept-Language', 'ja,de-de;q=0.8') + .expect({ + email: 'Emailde', + hello: 'Hallo fengmk2, wie geht es dir heute?', + message: 'Hallo fengmk2, wie geht es dir heute? Wie war dein 18.', + empty: '', + notexists_key: 'key not exists', + empty_string: '', + empty_value: 'emptyValue', + novalue: 'key %s ok', + arguments3: '1 2 3', + arguments4: '1 2 3 4', + arguments5: '1 2 3 4 5', + arguments6: '1 2 3 4 5. 6', + values: 'foo bar foo bar {2} {100}', + object: 'foo bar foo bar {z}', + 'gender': 'model.user.fields.gender', + 'name': 'model.user.fields.name', + }) + .expect('Set-Cookie', /^locale=de; path=\/; expires=\w+/) + .expect(200, done); + }); + }); describe('cookie.locale', function () {