tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

language-dialect.js (3127B)


      1 // |reftest| skip-if(!this.hasOwnProperty('Intl'))
      2 
      3 const tests = {
      4  "en": {
      5    long: {
      6      "de": "German",
      7      "de-AT": "Austrian German",
      8      "de-1996": "German (German orthography of 1996)",
      9      "en": "English",
     10      "en-Hant-GB": "English (Traditional, United Kingdom)",
     11      "en-Hans-US": "English (Simplified, United States)",
     12      "fr": "French",
     13      "nl-BE": "Flemish",
     14      "cr-Cans": "Cree (Unified Canadian Aboriginal Syllabics)",
     15    },
     16    short: {
     17      "en-Hant-GB": "English (Traditional, UK)",
     18      "en-Hans-US": "English (Simplified, US)",
     19      "cr-Cans": "Cree (UCAS)",
     20    },
     21    narrow: {},
     22  },
     23  "de": {
     24    long: {
     25      "de": "Deutsch",
     26      "de-AT": "Österreichisches Deutsch",
     27      "de-1996": "Deutsch (Neue deutsche Rechtschreibung)",
     28      "en": "Englisch",
     29      "en-Hant-GB": "Englisch (Traditionell, Vereinigtes Königreich)",
     30      "en-Hans-US": "Englisch (Vereinfacht, Vereinigte Staaten)",
     31      "fr": "Französisch",
     32      "nl-BE": "Flämisch",
     33    },
     34    short: {
     35      "en-Hant-GB": "Englisch (Traditionell, UK)",
     36      "en-Hans-US": "Englisch (Vereinfacht, USA)",
     37    },
     38    narrow: {},
     39  },
     40  "fr": {
     41    long: {
     42      "de": "allemand",
     43      "de-AT": "allemand autrichien",
     44      "de-1996": "allemand (orthographe allemande de 1996)",
     45      "en": "anglais",
     46      "en-Hant-GB": "anglais (traditionnel, Royaume-Uni)",
     47      "en-Hans-US": "anglais (simplifié, États-Unis)",
     48      "fr": "français",
     49      "nl-BE": "flamand",
     50    },
     51    short: {
     52      "en-Hant-GB": "anglais (traditionnel, R.-U.)",
     53      "en-Hans-US": "anglais (simplifié, É.-U.)",
     54    },
     55    narrow: {},
     56  },
     57  "zh": {
     58    long: {
     59      "zh": "中文",
     60      "zh-Hant": "繁体中文",
     61      "zh-Hant-CN": "中文(繁体,中国)",
     62      "zh-Hans-HK": "中文(简体,中国香港特别行政区)",
     63    },
     64    short: {
     65      "zh-Hans-HK": "中文(简体,香港)",
     66    },
     67    narrow: {},
     68  },
     69  "ar": {
     70    long: {
     71      "ar": "العربية",
     72      "ar-SA": "العربية (المملكة العربية السعودية)",
     73      "zh-MO": "الصينية (منطقة ماكاو الإدارية الخاصة)",
     74    },
     75    short: {
     76      "zh-MO": "الصينية (مكاو)",
     77    },
     78    narrow: {},
     79  },
     80 };
     81 
     82 for (let [locale, localeTests] of Object.entries(tests)) {
     83  for (let [style, styleTests] of Object.entries(localeTests)) {
     84    let dn = new Intl.DisplayNames(locale, {type: "language", languageDisplay: "dialect", style});
     85 
     86    let resolved = dn.resolvedOptions();
     87    assertEq(resolved.locale, locale);
     88    assertEq(resolved.style, style);
     89    assertEq(resolved.type, "language");
     90    assertEq(resolved.languageDisplay, "dialect");
     91    assertEq(resolved.fallback, "code");
     92 
     93    let inheritedTests = {...localeTests.long, ...localeTests.short, ...localeTests.narrow};
     94    for (let [language, expected] of Object.entries({...inheritedTests, ...styleTests})) {
     95      assertEq(dn.of(language), expected);
     96 
     97      // Also works with objects.
     98      assertEq(dn.of(Object(language)), expected);
     99    }
    100  }
    101 }
    102 
    103 if (typeof reportCompare === "function")
    104  reportCompare(true, true);