diff --git a/src/nginxconfig/templates/app.vue b/src/nginxconfig/templates/app.vue
index 46cde80..785d1ea 100644
--- a/src/nginxconfig/templates/app.vue
+++ b/src/nginxconfig/templates/app.vue
@@ -231,7 +231,7 @@ THE SOFTWARE.
 
             // Apply browser language if not specified in query
             if (!imported || !imported.global || !imported.global.app || !imported.global.app.lang) {
-                const language = browserLanguage();
+                const language = browserLanguage(availablePacks);
                 if (language) this.lang = language;
             }
 
diff --git a/src/nginxconfig/util/browser_language.js b/src/nginxconfig/util/browser_language.js
index cd4e283..8581137 100644
--- a/src/nginxconfig/util/browser_language.js
+++ b/src/nginxconfig/util/browser_language.js
@@ -24,10 +24,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 */
 
-import { availablePacks } from './language_pack_context';
 import { fromSep } from './language_pack_name';
 
-export default () => {
+export default availablePacks => {
     if (typeof window === 'object' && typeof window.navigator === 'object') {
         const userLocales = new Set();
 
diff --git a/test/testBrowserLanguage.js b/test/testBrowserLanguage.js
index 8628af2..80ca73f 100644
--- a/test/testBrowserLanguage.js
+++ b/test/testBrowserLanguage.js
@@ -46,7 +46,6 @@ class MockLocales {
     }
 
     static setDateTimeLocale(locale) {
-        const newDateTimeFormat = new Intl.DateTimeFormat(locale);
         MockLocales.IntlBackup = Intl;
         if (!locale) {
             // eslint-disable-next-line no-global-assign
@@ -54,6 +53,7 @@ class MockLocales {
             return this;
         }
 
+        const newDateTimeFormat = new Intl.DateTimeFormat(locale);
         // eslint-disable-next-line no-global-assign
         Intl = {
             DateTimeFormat() {
@@ -97,13 +97,13 @@ describe('browserLanguage', () => {
         MockLocales.setDateTimeLocale(undefined);
 
         MockLocales.setNavigatorLanguages(['zh-CN', 'zh','en-US','en']);
-        expect(browserLanguage()).toEqual('zhCN');
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
 
         MockLocales.setNavigatorLanguages(['zh-TW','zh','en-US','en']);
-        expect(browserLanguage()).toEqual('zhTW');
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhTW');
 
         MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']);
-        expect(browserLanguage()).toEqual('en');
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
 
         MockLocales.restoreDateTimeLocale();
     });
@@ -112,7 +112,7 @@ describe('browserLanguage', () => {
         MockLocales.setDateTimeLocale(undefined);
 
         MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']);
-        expect(browserLanguage()).toEqual('en');
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
 
         MockLocales.restoreDateTimeLocale();
     });
@@ -121,7 +121,7 @@ describe('browserLanguage', () => {
         MockLocales.setDateTimeLocale(undefined);
 
         MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']);
-        expect(browserLanguage()).toEqual('zhCN');
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
 
         MockLocales.restoreDateTimeLocale();
     });
@@ -130,7 +130,7 @@ describe('browserLanguage', () => {
         MockLocales.setDateTimeLocale(undefined);
 
         MockLocales.setNavigatorLanguages(['ja-JP','ja']);
-        expect(browserLanguage()).toBeFalsy();
+        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
 
         MockLocales.restoreDateTimeLocale();
     });
@@ -140,7 +140,7 @@ describe('browserLanguage', () => {
             MockLocales.setNavigatorLanguages(undefined);
             MockLocales.setNavigatorLanguage(undefined);
             MockLocales.setDateTimeLocale(undefined);
-            expect(browserLanguage()).toBeFalsy();
+            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
             MockLocales.restoreDateTimeLocale();
         });
 
@@ -148,7 +148,7 @@ describe('browserLanguage', () => {
             MockLocales.setNavigatorLanguage('en');
             MockLocales.setNavigatorLanguages(undefined);
             MockLocales.setDateTimeLocale(undefined);
-            expect(browserLanguage()).toEqual('en');
+            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
             MockLocales.restoreDateTimeLocale();
         });
 
@@ -156,14 +156,14 @@ describe('browserLanguage', () => {
             MockLocales.setNavigatorLanguage(undefined);
             MockLocales.setNavigatorLanguages(['en-US','en']);
             MockLocales.setDateTimeLocale(undefined);
-            expect(browserLanguage()).toEqual('en');
+            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
             MockLocales.restoreDateTimeLocale();
         });
 
         test('navigator is `undefined` and Intl locale is `en-US`',() => {
             MockLocales.setNavigator(undefined);
             MockLocales.setDateTimeLocale('en-US');
-            expect(browserLanguage()).toEqual('en');
+            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
             MockLocales.restoreDateTimeLocale();
             MockLocales.restoreNavigator();
         });