The-Ultimate-Pokemon-Picker/translate.js
CajunAvenger 7aadb90112 Form shuffling
New forms are now (generally) shuffled to the end of boxes. Regionals that evolve into new mons (like Sirfetch'd) and new mon gimmicks (like GMax Toxtricity) remain where they were, then other Regionals, Gimmicks, and spam forms (like Furfrou) are moved to the end in that order.
Close #45, Add Purple Kecleon, Shadow Lugia, and Primal Dialga with recolored sprites.
#12 New bubble system means Zarude Dada can be added without troubles now
#20 New bubble system means Mimikyu Busted and Marshadow Zenith can be added without troubles now
Zacian Behemoth Blade and Zamazenta Behemoth Bash also added
2023-03-25 06:27:28 -05:00

876 lines
26 KiB
JavaScript

var languages = [
"English",
"Español",
"Español_Latino",
"Português",
"Deutsch",
"日本",
"简中",
"繁中",
"Français",
"Italiano",
"한국어"
];
var regional_suffix = ["Español", "Português", "Français", "Italiano"];
var no_spaces = ["日本", "简中", "繁中"];
var fallbacks = {
"Español_Latino": "Español"
}
var currentLang = "English";
var fav_cats = [
"Bird", "Mammal", "RegionBug", "PseudoLegend", "PikachuClone",
"Eeveelution", "Fossil", "RegionalForm", "Gigantamax",
"BoxLegendary", "Mythical", "UltraBeast", "Paradox",
"Type", "Pokeball", "SpindaTitle", "Vivillon", "Alcremie",
"Baby", "NewEvolution"
]
var femme = {
"Português": ["-a", "Forma Regional"],
"Español": ["Eeveelución", "Poké Ball", "Forma Regional", "Ave Regional"],
"Español_Latino": ["Eeveelución", "Poké Ball", "Forma Regional", "Ave Regional"]
}
var font_sizes = {
"ShinyCharm1": {
"English": 24,
"Português": 20,
"Français": 22
},
"ShinyCharm2": {
"English": 24,
"Português": 20,
"Français": 22
},
"Favorite": {
"English": 27,
"Français": 23
}
}
function getTranslString (check) {
if(!translatable[check])
return "";
var tr = translatable[check][currentLang];
if(tr)
return tr;
tr = translatable[check][fallbacks[currentLang]];
if(tr)
return tr;
return translatable[check]["English"];
}
var translatable = {
// Strings missing translations
"GimmickForm": {
"English": "Gimmick Form",
"Español": "Forma Especial",
"Português": "Forma com Mecânica",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Forme Gadget",
"Italiano": "",
"한국어": ""
},
"PseudoLegend": {
"English": "Pseudo Legend",
"Español": "Pseudo-Legendario",
"Português": "Pseudo Lendário",
"Deutsch": "",
"日本": "600族",
"简中": "",
"繁中": "",
"Français": "Pseudo-Légendaire",
"Italiano": "",
"한국어": ""
},
"BoxLegendary": {
"English": "Box Legendary",
"Español": "Legendario de Portada",
"Português": "Lendário de Capa",
"Deutsch": "",
"日本": "パケ伝",
"简中": "",
"繁中": "",
"Français": "Légendaire de Boîte",
"Italiano": "",
"한국어": ""
},
"btnPrint": {
"English": "Download Image",
"Español": "Descargar imagen",
"Português": "Baixe a imagem",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Télécharger l'image",
"Italiano": "",
"한국어": ""
},
"altLink": {
"English": "Alternate download link",
"Español": "Link alternativo de descarga",
"Português": "Link alternativo para download",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Lien alternatif de téléchargement",
"Italiano": "",
"한국어": ""
},
"btnExport": {
"English": "Export Choices",
"Español": "Exportar selecciones",
"Português": "Exportar Escolhas",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Exporter les choix",
"Italiano": "",
"한국어": ""
},
"btnLoad": {
"English": "Import Choices",
"Español": "Importar selecciones",
"Português": "Importar Escolhas",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Importer les choix",
"Italiano": "",
"한국어": ""
},
"btnReset": {
"English": "Reset the grid!",
"Español": "Reestablecer la cuadrícula",
"Português": "Reset o quadro",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Réinitialiser la grille",
"Italiano": "",
"한국어": ""
},
"gridConfirm": {
"English": "Are you sure you want to reset the grid?",
"Español": "¿Estás seguro de querer reestablecer la cuadricula?",
"Português": "Tem certeza que deseja resetar o quadro?",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Étes-vous sûrs que vous voulez réinitialiser la grille ?",
"Italiano": "",
"한국어": ""
},
"import": {
"English": "# Don't like my choices? You can overrule them here!\n# Write Code will put a text version of the grid here\n# Then you can edit the names and Import Code to replace the images.\n# Most Pokemon are just their named capitalized, like SWELLOW.\n# Alternate forms have specific tags, like MEOWTH_2 for Galarian Meowth.\n# You can also use this to keep backups",
"Español": "# ¿No te gustan mis selecciones? ¡Puedes cambiarlas aquí!\n# Exportar selecciones generará una versión de texto de la cuadrícula\n# Después podrás editar los nombres y darle click a Importar selecciones para reemplazar las imágenes.\n# La mayoría de Pokémon simplemente son su nombre en mayúsculas, como SWELLOW\n# Las formas alternativas tienen etiquetas específicas, como MEOWTH_2 para Meowth de Galar.\n# También puedes usar esto para realizar respaldos",
"Português": "# Não gosta das minhas escolhas? Você pode anulá-las!\n# Exportar Escolhas irá colocar uma versão em texto do quadro aqui\n# Então você poderá editar os nomes e Importar Escolhas para substituir as imagens.\n# A maioria dos Pokémon são apenas seus nomes em letra maiúscula, como SWELLOW.\n# Formas Alternativas possuem tags específicas, como MEOWTH_2 para Meowth de Galar.\n# Você também pode usar isso para guardar cópias de segurança.",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "# Vous n'aimez pas mes choix ? Vous pouvez les écraser ici !\n# Exporter les choix va mettre une version textuelle de la grille ici\n# Vous pouvez alors éditer les noms et Importer les choix pour remplacer les images.\n# La plupart des noms de Pokémon sont en majuscules, comme SWELLOW\n# Les formes alternatives ont des indices spéciaux, comme MEOWTH_2 pour Miaouss de Galar\n# Vous pouvez aussi l'utiliser pour sauvegarder vos choix",
"Italiano": "",
"한국어": ""
},
"spinda-help": {
"English": "Spinda's spots can be randomized or manually placed.<br/>Each box pair in the corners moves its nearest spot.<br/>Up/Down on the first box moves it Right/Left.<br/>Up/Down on the second box moves it Up/Down.",
"Español": "Las manchas de Spinda pueden ser aleatorias o cambiadas manualmente.<br/>Cada par de cajas en las esquinas cambian la mancha más cercana a ellas<br/>Arriba/Abajo en la primera caja la mueve hacía la Derecha/Izquierda<br/>Arriba/Abajo en la segunda caja la mueve hacía la Derecha/Izquierda",
"Português": "As manchas do Spinda podem ser aleatórias ou colocadas manualmente.<br/>Cada par de caixas nos cantos da imagem movem as manchas próximas a eles.<br/>Para cima/Para baixo na primeira caixa move as manchas para a Direita/Esquerda.<br/>Para cima/Para baixo na segunda caixa move as manchas para Cima/Baixo.",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Les tâches de Spinda peuvent être placées aléatoirement ou à la main<br/>Chaque paire de chiffre dans les coins déplace la tâche la plus proche<br/>Haut/Bas dans la première la déplace vers la Gauche/Droite<br/>Haut/Bas dans la seconde la déplace vers le Haut/Bas",
"Italiano": "",
"한국어": ""
},
"teamInstructions": {
"English": "Click a team box, then a Pokémon from the grid to copy it to the box.",
"Español": "Haz click en la caja de equipo y después en un Pokémon de la cuadrícula para copiarlo a la caja de equipo",
"Português": "Clique em um dos espaços em branco e depois em um Pokémon do quadro para colocá-lo no time",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Cliquez sur une place dans votre équipe, puis un Pokémon de la grille pour l'y copier",
"Italiano": "",
"한국어": ""
},
"Picking": {
"English": "Picking...",
"Español": "Escogiendo...",
"Português": "Escolhendo...",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Choix en cours...",
"Italiano": "",
"한국어": ""
},
"Credits": { // idk if this one's getting it
"English": "",
"Español": "",
"Português": "",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "",
"Italiano": "",
"한국어": ""
},
// Less simple strings translated w/ Google Translate
// may very well be issues in here
// especially in Japanese/Chinese/Korean where I am completely lost
"ShinyCharm1": {
"English": "Click the Shiny Charm, then click Pokemon to make them shiny.",
"Español": "Haz click en el Amuleto Iris, después haz click en un Pokémon para hacerlo shiny.",
"Português": "Clique no Shiny Charm e, em seguida, clique nos Pokémon para torná-los brilhantes.",
"Deutsch": "Klicken Sie auf den Schillerpin und dann auf Pokemon, um sie glänzend zu Schillerndes.",
"日本": "ひかるおまもりをクリックしてから、ポケモンをクリックして光るます。",
"简中": "点击闪耀护符然后点击宝可梦让它们发光。",
"繁中": "單擊闪耀护符然後單擊宝可梦使它們發光。",
"Français": "Cliquez sur le Charme Chroma, puis cliquez sur un Pokemon pour le rendre shiny.",
"Italiano": "Fai clic sul Cromamuleto , quindi fai clic su Pokemon per renderli cromatico.",
"한국어": "빛나는부적 을 클릭한 다음 포켓몬 을 클릭하여 반짝이게 만들 빛나는"
},
"ShinyCharm2": {
"English": "Or click here to make everything shiny.",
"Español": "O haz click aquí para hacer a todos shiny.",
"Português": "Ou clique aqui para fazer que todos sejam brilhantes.",
"Deutsch": "",
"日本": "",
"简中": "",
"繁中": "",
"Français": "Ou cliquez ici pour les rendres tous shiny",
"Italiano": "",
"한국어": ""
},
"btnRandom": {
"English": "Randomize!",
"Español": "Aleatorizar!",
"Português": "Aleatório!",
"Deutsch": "Randomisieren!",
"日本": "ランダマイズ!",
"简中": "随机化!",
"繁中": "隨機化!",
"Français": "Aléatoire!",
"Italiano": "Casuale!",
"한국어": "무작위의!"
},
"Cookie1": { // disable cookies
"English": "This site uses cookies to save your choices. You can disable them here.",
"Español": "Este sitio usa cookies para guardar tus selecciones. Puedes desactivarlas aquí.",
"Português": "Este site usa cookies para salvar suas escolhas. Você pode desativá-los aqui.",
"Deutsch": "Diese Seite verwendet Cookies, um Ihre Auswahl zu speichern. Sie können sie hier deaktivieren.",
"日本": "このサイトでは、選択内容を保存するためにクッキーを使用しています。 ここでそれらを無効にすることができます。",
"简中": "本网站使用曲奇饼来保存您的选择。 您可以在此处禁用它们。",
"繁中": "本網站使用曲奇餅來保存您的選擇。 您可以在此處禁用它們。",
"Français": "Ce site utilise des cookies pour enregistrer vos choix. Vous pouvez les désactiver ici.",
"Italiano": "Questo sito utilizza i cookie per salvare le tue scelte. Puoi disabilitarli qui.",
"한국어": "이 사이트는 쿠키를 사용하여 선택 사항을 저장합니다. 여기에서 비활성화할 수 있습니다."
},
"Cookie2": { // re-enable cookies
"English": "This site uses cookies to save your choices. You can enable them here.",
"Español": "Este sitio usa cookies para guardar tus selecciones. Puedes habilitarlos aquí.",
"Português": "Este site usa cookies para salvar suas escolhas. Você pode ativá-los aqui.",
"Deutsch": "Diese Seite verwendet Cookies, um Ihre Auswahl zu speichern. Sie können sie hier aktivieren.",
"日本": "このサイトでは、選択内容を保存するためにクッキーを使用しています。 ここで有効にできます。",
"简中": "本网站使用曲奇饼来保存您的选择。 您可以在此处启用它们。",
"繁中": "本網站使用曲奇餅來保存您的選擇。 您可以在此處啟用它們。",
"Français": "Ce site utilise des cookies pour enregistrer vos choix. Vous pouvez les activer ici.",
"Italiano": "Questo sito utilizza i cookie per salvare le tue scelte. Puoi abilitarli qui.",
"한국어": "이 사이트는 쿠키를 사용하여 선택 사항을 저장합니다. 여기에서 활성화할 수 있습니다."
},
"PikachuClone": {
"English": "Pikachu Clone",
"Español": "Clon de Pikachu",
"Português": "Clone do Pikachu",
"Deutsch": "Pikachuklon",
"日本": "ピカチュウのクローン",
"简中": "皮卡丘克隆",
"繁中": "皮卡丘克隆",
"Français": "Clone de Pikachu",
"Italiano": "Clone di Pikachu",
"한국어": "피카츄 클론"
},
"Eeveelution": {
"English": "Eeveelution",
"Español": "Eeveelución",
"Português": "Eevolução",
"Deutsch": "Evolilution",
"日本": "イーブイズ",
"简中": "伊布家族",
"繁中": "伊布家族",
"Français": "Évolition",
"Italiano": "Eeveeluzione",
"한국어": "이브이즈"
},
// Strings with either official or simple translations
// reasonably sure these are fine
"Favorite": {
// masc / femme
"English": ["Favorite", "Favorite"],
"Español": ["Favorito", "Favorita"],
"Português": ["Favorito", "Favorita"],
"Deutsch": ["Favorit", "Favoritin"],
"日本": ["お気に入り", "お気に入り"],
"简中": ["最喜欢的","最喜欢的"],
"繁中": ["最喜歡的", "最喜歡的"],
"Français": ["Préféré", "Préférée"],
"Italiano": ["Preferito", "Preferita"],
"한국어": ["가장 좋아하는", "가장 좋아하는"]
},
"Team": {
"English": "Team",
"Español": "Equipo",
"Português": "Equipe",
"Deutsch": "Team",
"日本": "手持ちポケモン",
"简中": "同行",
"繁中": "同行",
"Français": "Équipe",
"Italiano": "Squadra",
"한국어": "지닌 포켓몬"
},
"Regional": {
"English": "Regional ",
"Español": " Regional",
"Português": " Regional",
"Deutsch": "Regional ",
"日本": "地域",
"简中": "地区",
"繁中": "地區",
"Français": " Régional",
"Italiano": " Regionale",
"한국어": "지역 "
},
"Bird": {
"English": "Regional Bird",
"Español": "Ave Regional",
"Português": "Pássaro Regional",
"Deutsch": "Regional Vogel",
"日本": "地域鳥",
"简中": "地区鸟",
"繁中": "地區鳥",
"Français": "Oiseau Régional",
"Italiano": "Uccello Regionale",
"한국어": "지역 새"
},
"Mammal": {
"English": "Regional Mammal",
"Español": "Mamífero Regional",
"Português": "Mamífero Regional",
"Deutsch": "Regional Säugetier",
"日本": "地域哺乳類",
"简中": "地区哺乳动物",
"繁中": "地區哺乳動物",
"Français": "Mammifère Régional",
"Italiano": "Mammifero Regionale",
"한국어": "지역 포유류"
},
"RegionBug": {
"English": "Regional Bug",
"Español": "Bicho Regional",
"Português": "Inseto Regional",
"Deutsch": "Regional Käfer",
"日本": "地域むし",
"简中": "地区虫",
"繁中": "地區蟲",
"Français": "Insecte Régional",
"Italiano": "Coleottero Regionale",
"한국어": "지역 벌레"
},
"Fossil": {
"English": "Fossil",
"Español": "Fósil",
"Português": "Fóssil",
"Deutsch": "Fossil",
"日本": "化石",
"简中": "化石",
"繁中": "化石",
"Français": "Fossile",
"Italiano": "Fossile",
"한국어": "화석"
},
"RegionalForm": {
"English": "Regional Form",
"Español": "Forma Regional",
"Português": "Forma Regional",
"Deutsch": "Regionalform",
"日本": "リージョンフォーム",
"简中": "地區型態",
"繁中": "地區型態",
"Français": "Forme régionale",
"Italiano": "Forma regionale",
"한국어": "리전폼"
},
"Gigantamax": {
"English": "Gigantamax",
"Español": "Gigamax",
"Português": "Gigantamax",
"Deutsch": "Gigadynamax",
"日本": "キョダイマックス",
"简中": "超极巨化",
"繁中": "超極巨化",
"Français": "Gigamax",
"Italiano": "Gigamax",
"한국어": "거다이맥스"
},
"Mythical": {
"English": "Mythical",
"Español": "Pokémon Singular",
"Español_Latino": "Mítico",
"Português": "Mítico",
"Deutsch": "Mysteriöse Pokémon",
"日本": "幻のポケモン",
"简中": "幻之宝可梦",
"繁中": "幻之寶可夢",
"Français": "Pokémon fabuleux",
"Italiano": "Pokémon misterioso",
"한국어": "환상의 포켓몬"
},
"UltraBeast": {
"English": "Ultra Beast",
"Español": "Ultraente",
"Português": "Ultracriatura",
"Deutsch": "Ultrabestie",
"日本": "ウルトラビースト",
"简中": "究极异兽",
"繁中": "究極異獸",
"Français": "Ultra-Chimère",
"Italiano": "Ultracreatura",
"한국어": "울트라비스트"
},
"Paradox": {
"English": "Paradox",
"Español": "Pokémon Paradoja",
"Português": "Paradoxo",
"Deutsch": "Paradox",
"日本": "パラドックス",
"简中": "悖謬",
"繁中": "悖謬",
"Français": "Pokémon Paradoxe",
"Italiano": "Paradosso",
"한국어": "패러독스"
},
"Type": {
"English": "Type",
"Español": "Tipo",
"Português": "Tipo",
"Deutsch": "Typ",
"日本": "タイプ",
"简中": "属性",
"繁中": "屬性",
"Français": "Type",
"Italiano": "Tipo",
"한국어": "타입"
},
"Pokeball": {
"English": "Poké Ball",
"Español": "Poké Ball",
"Português": "Poké Bola",
"Deutsch": "Pokéball",
"日本": "モンスターボール",
"简中": "精灵球",
"繁中": "精靈球",
"Français": "Poké Ball",
"Italiano": "Poké Ball",
"한국어": "몬스터볼"
},
"Baby": {
"English": "Baby",
"Español": "Bebé",
"Português": "Bebê",
"Deutsch": "Baby",
"日本": "얼루기",
"简中": "婴儿",
"繁中": "嬰兒",
"Français": "Bébé ",
"Italiano": "Baby",
"한국어": " 베이비 "
},
"NewEvolution": {
"English": "New Evolution",
"Español": "Nueva Evolución",
"Português": "Nova Evolução",
"Deutsch": "Neue Entwicklung",
"日本": "新しい進化",
"简中": "新进化",
"繁中": "新進化",
"Français": "Nouvelle évolution",
"Italiano": "Nuova Evoluzione",
"한국어": "새로운 진화"
},
"SpindaTitle": {
"English": "Spinda",
"Español": "Spinda",
"Português": "Spinda",
"Deutsch": "Pandir",
"日本": "パッチール",
"简中": "晃晃斑",
"繁中": "晃晃斑",
"Français": "Spinda",
"Italiano": "Spinda",
"한국어": "얼루기"
},
"Vivillon": {
"English": "Vivillon",
"Español": "Vivillon",
"Português": "Vivillon",
"Deutsch": "Vivillon",
"日本": "ビビヨン",
"简中": "彩粉蝶",
"繁中": "彩粉蝶",
"Français": "Prismillon",
"Italiano": "Vivillon",
"한국어": "비비용"
},
"Alcremie": {
"English": "Alcremie",
"Español": "Alcremie",
"Português": "Alcremie",
"Deutsch": "Pokusan",
"日本": "マホイップ",
"简中": "霜奶仙",
"繁中": "霜奶仙",
"Français": "Charmilly",
"Italiano": "Alcremie",
"한국어": "마휘핑"
},
"Normal": {
"English": "Normal",
"Español": "Normal",
"Português": "Normal",
"Deutsch": "Normal",
"日本": "ノーマル",
"简中": "一般",
"繁中": "一般",
"Français": "Normal",
"Italiano": "Normale",
"한국어": "노말"
},
"Fire": {
"English": "Fire",
"Español": "Fuego",
"Português": "Fogo",
"Deutsch": "Feuer ",
"日本": "ほのお ",
"简中": "炎",
"繁中": "炎",
"Français": "Feu",
"Italiano": " Fuoco",
"한국어": "불꽃"
},
"Water": {
"English": "Water",
"Español": "Agua",
"Português": "Água",
"Deutsch": "Wasser",
"日本": "みず",
"简中": "水",
"繁中": "水",
"Français": "Eau",
"Italiano": "Acqua",
"한국어": "물"
},
"Grass": {
"English": "Grass",
"Español": "Planta",
"Português": "Planta",
"Deutsch": "Pflanze",
"日本": "くさ",
"简中": "草",
"繁中": "草",
"Français": "Plante",
"Italiano": "Erba",
"한국어": "풀"
},
"Electric": {
"English": "Electric",
"Español": "Eléctrico",
"Português": "Elétrico",
"Deutsch": "Elektro",
"日本": "でんき",
"简中": "电",
"繁中": "電",
"Français": "Électrik",
"Italiano": "Elettro",
"한국어": " 전기"
},
"Ice": {
"English": "Ice",
"Español": "Hielo",
"Português": "Gelo",
"Deutsch": "Eis",
"日本": "こおり",
"简中": "冰",
"繁中": "冰",
"Français": "Glace",
"Italiano": "Ghiaccio",
"한국어": " 얼음"
},
"Fighting": {
"English": "Fighting",
"Español": "Lucha",
"Português": "Luta",
"Deutsch": "Kampf",
"日本": "かくとう",
"简中": "格斗",
"繁中": "格鬥",
"Français": "Combat",
"Italiano": "Lotta",
"한국어": "격투"
},
"Poison": {
"English": "Poison",
"Español": "Veneno",
"Português": "Venenoso",
"Deutsch": "Gift",
"日本": "どく",
"简中": "毒",
"繁中": "毒",
"Français": "Poison",
"Italiano": "Veleno",
"한국어": "독"
},
"Ground": {
"English": "Ground",
"Español": "Tierra",
"Português": "Terrestre",
"Deutsch": "Boden",
"日本": "じめん",
"简中": "地面 ",
"繁中": "地面 ",
"Français": "Sol",
"Italiano": "Terra",
"한국어": "땅"
},
"Flying": {
"English": "Flying",
"Español": "Volador",
"Português": "Voador",
"Deutsch": "Flug",
"日本": "ひこう",
"简中": "飞行",
"繁中": "飛行",
"Français": "Vol",
"Italiano": "Volante",
"한국어": "비행"
},
"Psychic": {
"English": "Psychic",
"Español": "Psíquico",
"Português": "Psíquico",
"Deutsch": "Psycho",
"日本": "エスパー",
"简中": "超能力",
"繁中": "超能力",
"Français": "Psy",
"Italiano": "Psico",
"한국어": "에스퍼"
},
"Bug": {
"English": "Bug",
"Español": "Bicho",
"Português": "Inseto",
"Deutsch": "Käfer",
"日本": "むし",
"简中": "虫",
"繁中": "蟲",
"Français": "Insecte",
"Italiano": "Coleottero",
"한국어": "벌레"
},
"Rock": {
"English": "Rock",
"Español": "Roca",
"Português": "Pedra",
"Deutsch": "Gestein",
"日本": "いわ",
"简中": "岩石",
"繁中": "岩石",
"Français": "Roche",
"Italiano": "Roccia",
"한국어": "바위"
},
"Ghost": {
"English": "Ghost",
"Español": "Fantasma",
"Português": "Fantasma",
"Deutsch": "Geist",
"日本": "ゴースト",
"简中": "幽灵",
"繁中": "幽靈",
"Français": "Spectre",
"Italiano": "Spettro",
"한국어": "고스트"
},
"Dragon": {
"English": "Dragon",
"Español": "Dragón",
"Português": "Dragão",
"Deutsch": "Drache",
"日本": "ドラゴン",
"简中": "龙",
"繁中": "龍",
"Français": "Dragon",
"Italiano": "Drago",
"한국어": " 드래곤"
},
"Dark": {
"English": "Dark",
"Español": "Siniestro",
"Português": "Sombrio",
"Deutsch": "Unlicht",
"日本": "あく",
"简中": "恶",
"繁中": "惡",
"Français": "Ténèbres",
"Italiano": "Buio",
"한국어": "악"
},
"Steel": {
"English": "Steel",
"Español": "Acero",
"Português": "Aço",
"Deutsch": "Stahl",
"日本": "はがね",
"简中": "钢",
"繁中": "鋼",
"Français": "Acier",
"Italiano": "Acciaio",
"한국어": "강철"
},
"Fairy": {
"English": "Fairy",
"Español": "Hada",
"Português": "Fada",
"Deutsch": "Fee",
"日本": "フェアリー",
"简中": "妖精",
"繁中": "妖精",
"Français": "Fée",
"Italiano": "Folletto",
"한국어": "페어리"
},
"Starter": {
"English": "Starter",
"Español": "Inicial",
"Português": "Inicial",
"Deutsch": "Starter",
"日本": "はじめて",
"简中": "起动机",
"繁中": "起動機",
"Français": "Starter",
"Italiano": "Iniziale",
"한국어": "파트너"
},
"Legend": {
"English": "Legend",
"Español": "Legendario",
"Português": "Lendário",
"Deutsch": "Legend",
"日本": "伝説",
"简中": "传说的",
"繁中": "傳說的",
"Français": "Légendaire",
"Italiano": "Leggendari",
"한국어": " 전설의"
}
}
function writeEmpties() {
var fs = require('fs');
var holder = {}
for(var l in languages) {
holder[languages[l]] = {};
}
for(var t in translatable) {
for(var l in languages) {
var eng = translatable[t].English;
var tra = translatable[t][languages[l]];
if(eng != "") {
if(typeof eng == "string" && eng.match(/\n/)) {
var engs = eng.split("\n");
var tras = tra.split("\n");
for(var e in engs) {
holder[languages[l]][engs[e].replace(/# /, "")] = (tras[e] || "")
}
}else{
holder[languages[l]][eng] = tra;
}
}
}
}
for(var l in holder) {
if(Object.keys(holder[l]).length == 0)
continue;
fs.writeFile('./translating_strings/'+l+'.txt', JSON.stringify(holder[l], null, 1), function(){})
}
}
function resolveFem(string, lang, arr) {
if(femme[lang].includes(string))
return arr[1];
if(femme[lang].includes("-a") && string.match(/a$/))
return arr[1];
return arr[0];
}
function changeLang(lang) {
if(lang == currentLang)
return;
currentLang = lang;
var fallback = (fallbacks[lang] || "English");
var favs = translatable["Favorite"][lang];
if(!favs)
favs = translatable["Favorite"][fallback];
var use_femme = femme.hasOwnProperty(lang);
for(let tr_id in translatable) {
var tr_info = translatable[tr_id];
var tr_ele = document.getElementById(tr_id);
if(!tr_ele)
continue;
var tr_st = tr_info[lang];
if(!tr_st)
tr_st = tr_info[fallback];
if(fav_cats.includes(tr_id)) {
// Favorite Thing
var fn = favs[0];
if(use_femme)
fn = resolveFem(tr_st, lang, favs)
if(no_spaces.includes(lang)) {
tr_st = fn + tr_st;
}else{
tr_st = fn + "<br/>" + tr_st;
}
// deal with font size
if(font_sizes["Favorite"][lang]) {
tr_ele.style.fontSize = font_sizes["Favorite"][lang];
}else{
tr_ele.style.fontSize = font_sizes["Favorite"]["English"]
}
}
if(tr_ele.type == "button") {
tr_ele.value = tr_st;
}else{
tr_ele.innerHTML = tr_st;
}
// deal with font size
if(font_sizes[tr_id]) {
if(font_sizes[tr_id][lang]) {
tr_ele.style.fontSize = font_sizes[tr_id][lang];
}else{
tr_ele.style.fontSize = font_sizes[tr_id]["English"]
}
}
}
}