Browse Source

Add ro, gl, pa to languages, fix flag logic when countries doesn't exist in tag

pull/707/head
William Oldham 2 years ago
parent
commit
a1962aeecf
  1. 6
      src/assets/languages.ts
  2. 7
      src/utils/language.ts

6
src/assets/languages.ts

@ -9,6 +9,7 @@ import es from "@/assets/locales/es.json"; @@ -9,6 +9,7 @@ import es from "@/assets/locales/es.json";
import et from "@/assets/locales/et.json";
import fa from "@/assets/locales/fa.json";
import fr from "@/assets/locales/fr.json";
import gl from "@/assets/locales/gl.json";
import gu from "@/assets/locales/gu.json";
import he from "@/assets/locales/he.json";
import hi from "@/assets/locales/hi.json";
@ -20,9 +21,11 @@ import lv from "@/assets/locales/lv.json"; @@ -20,9 +21,11 @@ import lv from "@/assets/locales/lv.json";
import minion from "@/assets/locales/minion.json";
import ne from "@/assets/locales/ne.json";
import nl from "@/assets/locales/nl.json";
import pa from "@/assets/locales/pa.json";
import pirate from "@/assets/locales/pirate.json";
import pl from "@/assets/locales/pl.json";
import ptbr from "@/assets/locales/pt-BR.json";
import ro from "@/assets/locales/ro.json";
import ru from "@/assets/locales/ru.json";
import sl from "@/assets/locales/sl.json";
import sv from "@/assets/locales/sv.json";
@ -72,5 +75,8 @@ export const locales = { @@ -72,5 +75,8 @@ export const locales = {
ta,
"zh-HANT": zhhant,
ru,
gl,
pa,
ro,
};
export type Locales = keyof typeof locales;

7
src/utils/language.ts

@ -18,6 +18,7 @@ const countryPriority: Record<string, string> = { @@ -18,6 +18,7 @@ const countryPriority: Record<string, string> = {
zh: "cn",
ko: "kr",
ta: "lk",
gl: "es",
};
// list of iso639_1 Alpha-2 codes used as default languages
@ -52,6 +53,7 @@ const defaultLanguageCodes: string[] = [ @@ -52,6 +53,7 @@ const defaultLanguageCodes: string[] = [
"sl-SI",
"ta-LK",
"ru-RU",
"gl-ES",
];
export interface LocaleInfo {
@ -134,14 +136,17 @@ export function sortLangCodes(langCodes: string[]) { @@ -134,14 +136,17 @@ export function sortLangCodes(langCodes: string[]) {
export function getCountryCodeForLocale(locale: string): string | null {
let output: LanguageObj | null = null as any as LanguageObj;
const tag = getTag(locale, true);
if (!tag?.language?.Subtag) return null;
// this function isnt async, so its garuanteed to work like this
countryLanguages.getLanguage(tag.language.Subtag, (_err, lang) => {
if (lang) output = lang;
});
if (!output) return null;
if (output.countries.length === 0) return null;
const priority = countryPriority[output.iso639_1.toLowerCase()];
if (output.countries.length === 0) {
return priority ?? null;
}
if (priority) {
const priotizedCountry = output.countries.find(
(v) => v.code_2.toLowerCase() === priority,

Loading…
Cancel
Save