A small web app for watching movies and shows easily
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1010 B

import i18n from "i18next";
import ISO6391 from "iso-639-1";
import { initReactI18next } from "react-i18next";
import { locales } from "@/assets/languages";
// Languages
const langCodes = Object.keys(locales);
const resources = Object.fromEntries(
Object.entries(locales).map((entry) => [entry[0], { translation: entry[1] }])
);
i18n.use(initReactI18next).init({
fallbackLng: "en",
resources,
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
},
});
export const appLanguageOptions = langCodes.map((lang) => {
if (lang === "pirate") {
return {
code: "pirate",
name: "Pirate",
nativeName: "Pirate Tongue",
};
}
if (lang === "minion") {
return {
code: "minion",
name: "Minion",
nativeName: "Minionese",
};
}
const [langObj] = ISO6391.getLanguages([lang]);
if (!langObj)
throw new Error(`Language with code ${lang} cannot be found in database`);
return langObj;
});
export default i18n;