Quellcode durchsuchen

feat: add alternative locale codes for userscript description directive

Sv443 vor 6 Monaten
Ursprung
Commit
cbea11eb50
3 geänderte Dateien mit 27 neuen und 10 gelöschten Zeilen
  1. 16 8
      assets/locales.json
  2. 10 1
      src/tools/post-build.ts
  3. 1 1
      src/utils/misc.ts

+ 16 - 8
assets/locales.json

@@ -4,14 +4,16 @@
     "nameEnglish": "German",
     "emoji": "🇩🇪",
     "userscriptDesc": "Konfigurierbare Layout- und Benutzererfahrungs-Verbesserungen für YouTube Music™ und YouTube™",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["de", "de_AT", "de_CH"]
   },
   "en_US": {
     "name": "English (United States)",
     "nameEnglish": "English (US)",
     "emoji": "🇺🇸",
     "userscriptDesc": "Configurable layout and user experience improvements for YouTube Music™ and YouTube™",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["en", "en_CA", "en_GB", "en_AU"]
   },
   "en_UK": {
     "name": "English (United Kingdom)",
@@ -25,41 +27,47 @@
     "nameEnglish": "Spanish",
     "emoji": "🇪🇸",
     "userscriptDesc": "Mejoras de diseño y experiencia de usuario configurables para YouTube Music™ y YouTube™",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["es", "es_MX"]
   },
   "fr_FR": {
     "name": "Français (France)",
     "nameEnglish": "French",
     "emoji": "🇫🇷",
     "userscriptDesc": "Améliorations de la mise en page et de l'expérience utilisateur configurables pour YouTube Music™ et YouTube™",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["fr", "fr_CA", "fr_BE", "fr_CH", "fr_LU"]
   },
   "hi_IN": {
     "name": "हिंदी (भारत)",
     "nameEnglish": "Hindi",
     "emoji": "🇮🇳",
     "userscriptDesc": "YouTube Music™ और YouTube™ के लिए कॉन्फ़िगर करने योग्य लेआउट और उपयोगकर्ता अनुभव में सुधार",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["hi", "hi_NP"]
   },
   "ja_JA": {
     "name": "日本語 (日本)",
     "nameEnglish": "Japanese",
     "emoji": "🇯🇵",
     "userscriptDesc": "YouTube Music™ と YouTube™ の構成可能なレイアウトとユーザー エクスペリエンスの向上",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["ja", "ja_JP"]
   },
   "pt_BR": {
     "name": "Português (Brasil)",
     "nameEnglish": "Portuguese",
     "emoji": "🇧🇷",
     "userscriptDesc": "Melhorias configuráveis no layout e na experiência do usuário para o YouTube Music™ e o YouTube™",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["pt", "pt_PT"]
   },
   "zh_CN": {
     "name": "中文(简化,中国)",
     "nameEnglish": "Chinese (simpl.)",
     "emoji": "🇨🇳",
     "userscriptDesc": "YouTube Music™ 和 YouTube™ 的可配置布局和用户体验改进",
-    "authors": ["Sv443"]
+    "authors": ["Sv443"],
+    "altLocales": ["zh", "zh_TW", "zh_HK"]
   }
 }

+ 10 - 1
src/tools/post-build.ts

@@ -304,11 +304,20 @@ function getRequireEntry(entry: RequireObjPkg) {
 function getLocalizedDescriptions() {
   try {
     const descriptions: string[] = [];
-    for(const [locale, { userscriptDesc }] of Object.entries(locales)) {
+    for(const [locale, { userscriptDesc, ...rest }] of Object.entries(locales)) {
       let loc = locale.replace(/_/, "-");
       if(loc.length < 5)
         loc += " ".repeat(5 - loc.length);
       descriptions.push(`// @description:${loc} ${userscriptDesc}`);
+
+      if("altLocales" in rest) {
+        for(const altLoc of rest.altLocales) {
+          let alt = altLoc.replace(/_/, "-");
+          if(alt.length < 5)
+            alt += " ".repeat(5 - alt.length);
+          descriptions.push(`// @description:${alt} ${userscriptDesc}`);
+        }
+      }
     }
     return descriptions.join("\n") + "\n";
   }

+ 1 - 1
src/utils/misc.ts

@@ -217,7 +217,7 @@ export function formatNumber(num: number, notation?: NumberLength): string {
 //#region resources
 
 /**
- * Returns the URL of a resource by its name, as defined in `assets/resources.json`, from GM resource cache - [see GM.getResourceUrl docs](https://wiki.greasespot.net/GM.getResourceUrl)  
+ * Returns the blob-URL of a resource by its name, as defined in `assets/resources.json`, from GM resource cache - [see GM.getResourceUrl docs](https://wiki.greasespot.net/GM.getResourceUrl)  
  * Falls back to a `raw.githubusercontent.com` URL or base64-encoded data URI if the resource is not available in the GM resource cache
  */
 export async function getResourceUrl(name: ResourceKey | "_") {