Quellcode durchsuchen

fix: reuse English trailing ":", ": " except CJK

tophf vor 1 Jahr
Ursprung
Commit
4e69c9f552
1 geänderte Dateien mit 18 neuen und 2 gelöschten Zeilen
  1. 18 2
      scripts/i18n.js

+ 18 - 2
scripts/i18n.js

@@ -107,12 +107,18 @@ class Locales {
     options = options || {};
     const data = {};
     const langData = this.locales[lang];
-    const defaultData = options.useDefaultLang && lang != this.defaultLang && this.locales[this.defaultLang];
+    const defaultData = options.useDefaultLang && lang !== this.defaultLang
+      ? this.locales[this.defaultLang]
+      : null;
+    const colons = defaultData && !/^(ja|ko|zh)/.test(lang);
     Object.keys(this.data).forEach(key => {
       if (options.touchedOnly && !this.data[key].touched) return;
+      const msg = langData.getMessage(key) || defaultData?.getMessage(key) || '';
       data[key] = {
         description: this.data[key].description || this.newLocaleItem,
-        message: langData.getMessage(key) || defaultData && defaultData.getMessage(key) || '',
+        message: colons
+          ? normalizeTrailingColon(msg, defaultData.getMessage(key))
+          : msg,
       };
       if (options.markUntouched && !this.data[key].touched) data[key].touched = false;
     });
@@ -208,6 +214,16 @@ function read(options) {
   return stream;
 }
 
+function normalizeTrailingColon(str, sourceStr = '') {
+  if (sourceStr.endsWith(': ') && str.endsWith(':')) {
+    return str + ' ';
+  }
+  if (sourceStr.endsWith(':') && str.endsWith(': ')) {
+    return str.slice(0, -1);
+  }
+  return str;
+}
+
 module.exports = {
   extract,
   read,