Bläddra i källkod

improve browser language matching (for zh-TW)

dev_h
lovasoa 4 år sedan
förälder
incheckning
794866735e
Inget konto är kopplat till bidragsgivarens mejladress
1 ändrade filer med 11 tillägg och 3 borttagningar
  1. 11
    3
      server/templating.js

+ 11
- 3
server/templating.js Visa fil

@@ -33,11 +33,19 @@ class Template {
33 33
     this.template = handlebars.compile(contents);
34 34
   }
35 35
   parameters(parsedUrl, request) {
36
-    const accept_languages =
37
-      parsedUrl.query.lang || request.headers["accept-language"];
36
+    const accept_language_str = parsedUrl.query.lang || request.headers["accept-language"];
37
+    const accept_languages = accept_language_parser.parse(accept_language_str);
38 38
     const opts = { loose: true };
39
-    const language =
39
+    let language =
40 40
       accept_language_parser.pick(languages, accept_languages, opts) || "en";
41
+    // The loose matcher returns the first language that partially matches, so we need to
42
+    // check if the preferred language is supported to return it
43
+    if (accept_languages.length > 0) {
44
+      const preferred_language = accept_languages[0].code + "-" + accept_languages[0].region;
45
+      if (languages.includes(preferred_language)) {
46
+        language = preferred_language;
47
+      }
48
+    }
41 49
     const translations = TRANSLATIONS[language] || {};
42 50
     const configuration = client_config || {};
43 51
     const prefix = request.url.split("/boards/")[0].substr(1);

Laddar…
Avbryt
Spara