Add ESC to close language dropdown; extend language labels and locales; verify build
This commit is contained in:
@@ -158,6 +158,12 @@ const handleOutsideClick = (event) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeydown = (e) => {
|
||||||
|
if (e.key === 'Escape') {
|
||||||
|
isLangOpen.value = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (!store.loadState()) {
|
if (!store.loadState()) {
|
||||||
store.initGame(); // Inicjalizacja domyślnej gry jeśli brak zapisu
|
store.initGame(); // Inicjalizacja domyślnej gry jeśli brak zapisu
|
||||||
@@ -185,6 +191,7 @@ onMounted(() => {
|
|||||||
displayModeMedia.addListener(updateStandalone);
|
displayModeMedia.addListener(updateStandalone);
|
||||||
}
|
}
|
||||||
document.addEventListener('click', handleOutsideClick);
|
document.addEventListener('click', handleOutsideClick);
|
||||||
|
document.addEventListener('keydown', handleKeydown);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -203,6 +210,7 @@ onUnmounted(() => {
|
|||||||
displayModeMedia.removeListener(updateStandalone);
|
displayModeMedia.removeListener(updateStandalone);
|
||||||
}
|
}
|
||||||
document.removeEventListener('click', handleOutsideClick);
|
document.removeEventListener('click', handleOutsideClick);
|
||||||
|
document.removeEventListener('keydown', handleKeydown);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,58 @@ const messages = {
|
|||||||
'language.cy': 'Welsh',
|
'language.cy': 'Welsh',
|
||||||
'language.gd': 'Scottish Gaelic',
|
'language.gd': 'Scottish Gaelic',
|
||||||
'language.eu': 'Basque',
|
'language.eu': 'Basque',
|
||||||
|
'language.af': 'Afrikaans',
|
||||||
|
'language.am': 'Amharic',
|
||||||
|
'language.hy': 'Armenian',
|
||||||
|
'language.az': 'Azerbaijani',
|
||||||
|
'language.my': 'Burmese',
|
||||||
|
'language.km': 'Khmer',
|
||||||
|
'language.ceb': 'Cebuano',
|
||||||
|
'language.fa': 'Persian',
|
||||||
|
'language.gu': 'Gujarati',
|
||||||
|
'language.ht': 'Haitian Creole',
|
||||||
|
'language.he': 'Hebrew',
|
||||||
|
'language.ig': 'Igbo',
|
||||||
|
'language.ilo': 'Ilocano',
|
||||||
|
'language.id': 'Indonesian',
|
||||||
|
'language.ja': 'Japanese',
|
||||||
|
'language.jv': 'Javanese',
|
||||||
|
'language.kn': 'Kannada',
|
||||||
|
'language.kk': 'Kazakh',
|
||||||
|
'language.rw': 'Kinyarwanda',
|
||||||
|
'language.rn': 'Kirundi',
|
||||||
|
'language.ko': 'Korean',
|
||||||
|
'language.ku': 'Kurdish (Kurmanji)',
|
||||||
|
'language.ckb': 'Kurdish (Sorani)',
|
||||||
|
'language.ky': 'Kyrgyz',
|
||||||
|
'language.lo': 'Lao',
|
||||||
|
'language.ms': 'Malay',
|
||||||
|
'language.mr': 'Marathi',
|
||||||
|
'language.mn': 'Mongolian',
|
||||||
|
'language.ne': 'Nepali',
|
||||||
|
'language.om': 'Oromo',
|
||||||
|
'language.ps': 'Pashto',
|
||||||
|
'language.pa': 'Punjabi',
|
||||||
|
'language.so': 'Somali',
|
||||||
|
'language.sw': 'Swahili',
|
||||||
|
'language.tl': 'Tagalog',
|
||||||
|
'language.ta': 'Tamil',
|
||||||
|
'language.te': 'Telugu',
|
||||||
|
'language.th': 'Thai',
|
||||||
|
'language.bo': 'Tibetan',
|
||||||
|
'language.ti': 'Tigrinya',
|
||||||
|
'language.uz': 'Uzbek',
|
||||||
|
'language.vi': 'Vietnamese',
|
||||||
|
'language.wo': 'Wolof',
|
||||||
|
'language.yo': 'Yoruba',
|
||||||
|
'language.pt-br': 'Portuguese (Brazil)',
|
||||||
|
'language.pt-pt': 'Portuguese (Portugal)',
|
||||||
|
'language.fr-ca': 'French (Canada)',
|
||||||
|
'language.nl-be': 'Flemish',
|
||||||
|
'language.es-es': 'Spanish (Castilian)',
|
||||||
|
'language.es-419': 'Spanish (Latin American)',
|
||||||
|
'language.zh-hant': 'Chinese (Traditional)',
|
||||||
|
'language.zh-hans': 'Chinese (Simplified)',
|
||||||
'theme.label': 'Theme',
|
'theme.label': 'Theme',
|
||||||
'theme.system': 'System',
|
'theme.system': 'System',
|
||||||
'theme.light': 'Light',
|
'theme.light': 'Light',
|
||||||
@@ -2380,6 +2432,18 @@ const messages = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const addLocalesFromEn = (arr) => {
|
||||||
|
arr.forEach((code) => {
|
||||||
|
messages[code] = {
|
||||||
|
...messages.en
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
addLocalesFromEn([
|
||||||
|
'af','am','hy','az','my','km','ceb','fa','gu','ht','he','ig','ilo','id','ja','jv','kn','kk','rw','rn','ko','ku','ckb','ky','lo','ms','mr','mh','mn','nv','ne','om','ps','pa','so','sw','tl','ta','te','th','bo','ti','uz','vi','wo','yo','pt-br','pt-pt','fr-ca','nl-be','es-es','es-419','zh-hant','zh-hans'
|
||||||
|
]);
|
||||||
|
|
||||||
const requiredKeys = [
|
const requiredKeys = [
|
||||||
'app.title','level.easy','level.medium','level.hard','level.custom','level.guide',
|
'app.title','level.easy','level.medium','level.hard','level.custom','level.guide',
|
||||||
'actions.reset','actions.random','actions.undo','status.time','status.moves','status.progress',
|
'actions.reset','actions.random','actions.undo','status.time','status.moves','status.progress',
|
||||||
|
|||||||
Reference in New Issue
Block a user