diff --git a/frontend/src/lib/i18n/i18n-service.ts b/frontend/src/lib/i18n/i18n-service.ts index 8c7d442..3b85b3f 100644 --- a/frontend/src/lib/i18n/i18n-service.ts +++ b/frontend/src/lib/i18n/i18n-service.ts @@ -19,6 +19,9 @@ import uk from './locales/uk.json'; import nl from './locales/nl.json'; import hu from './locales/hu.json'; import vi from './locales/vi.json'; +import ta from './locales/ta.json'; +import pt_BR from './locales/pt_BR.json'; +import ja from './locales/ja.json'; // import uz from './locales/uz.json' // import zh_Hans from './locales/zh_Hans.json'; import LanguageDetector from 'i18next-browser-languagedetector'; @@ -82,6 +85,10 @@ export class I18nService { this.i18n.addResourceBundle('nl', 'translation', nl); this.i18n.addResourceBundle('hu', 'translation', hu); this.i18n.addResourceBundle('vi', 'translation', vi); + this.i18n.addResourceBundle('ta', 'translation', ta); + this.i18n.addResourceBundle('pt_BR', 'translation', pt_BR); + this.i18n.addResourceBundle('ja', 'translation', ja); + // this.i18n.addResourceBundle('uz', 'translation', uz); } diff --git a/frontend/src/lib/language-toggle.svelte b/frontend/src/lib/language-toggle.svelte index ec29e40..5432642 100644 --- a/frontend/src/lib/language-toggle.svelte +++ b/frontend/src/lib/language-toggle.svelte @@ -56,94 +56,111 @@ SPDX-License-Identifier: MPL-2.0 interface Props { languages?: Array<{ - flag: string; - name: string; - code: string; - }>; + flag: string; + name: string; + code: string; + }>; } - let { languages = [ - { - code: 'de', - name: 'Deutsch', - flag: '🇩🇪' - }, - { - code: 'en', - name: 'English', - flag: '🇺🇲' - }, - { - code: 'tr', - name: 'Türkçe', - flag: '🇹🇷' - }, - { - code: 'fr', - name: 'Français', - flag: '🇫🇷' - }, - { - code: 'id', - name: 'Bahasa Indonesia', - flag: '🇮🇩' - }, - { - code: 'ca', - name: 'Català', - flag: '🇪🇸' - }, - { - code: 'it', - name: 'Italiano', - flag: '🇮🇹' - }, - { - code: 'es', - name: 'Español', - flag: '🇪🇸' - }, - { - code: 'nb_NO', - name: 'Norsk', - flag: '🇳🇴' - }, - { - code: 'zh_Hant', - name: 'Chinese (traditional)', - flag: '🇨🇳' - }, - { - code: 'pl', - name: 'Polski', - flag: '🇵🇱' - }, - { - code: 'pt', - name: 'Português', - flag: '🇵🇹' - }, - { - code: 'uk', - name: 'Українська', - flag: '🇺🇦' - }, - { - code: 'nl', - name: 'Nederlands', - flag: '🇳🇱' - }, - { - code: 'hu', - name: 'Magyar', - flag: '🇭🇺' - }, - { - code: 'vi', - name: 'tiếng Việt', - flag: '🇻🇳' - } - ] }: Props = $props(); + let { + languages = [ + { + code: 'de', + name: 'Deutsch', + flag: '🇩🇪' + }, + { + code: 'en', + name: 'English', + flag: '🇺🇲' + }, + { + code: 'tr', + name: 'Türkçe', + flag: '🇹🇷' + }, + { + code: 'fr', + name: 'Français', + flag: '🇫🇷' + }, + { + code: 'id', + name: 'Bahasa Indonesia', + flag: '🇮🇩' + }, + { + code: 'ca', + name: 'Català', + flag: '🇪🇸' + }, + { + code: 'it', + name: 'Italiano', + flag: '🇮🇹' + }, + { + code: 'es', + name: 'Español', + flag: '🇪🇸' + }, + { + code: 'nb_NO', + name: 'Norsk', + flag: '🇳🇴' + }, + { + code: 'zh_Hant', + name: 'Chinese (traditional)', + flag: '🇨🇳' + }, + { + code: 'pl', + name: 'Polski', + flag: '🇵🇱' + }, + { + code: 'pt', + name: 'Português', + flag: '🇵🇹' + }, + { + code: 'uk', + name: 'Українська', + flag: '🇺🇦' + }, + { + code: 'nl', + name: 'Nederlands', + flag: '🇳🇱' + }, + { + code: 'hu', + name: 'Magyar', + flag: '🇭🇺' + }, + { + code: 'vi', + name: 'tiếng Việt', + flag: '🇻🇳' + }, + { + code: 'ta', + flag: '🇮🇳', + name: 'Tamil' + }, + { + code: 'pt_BR', + flag: '🇧🇷', + name: 'Brazil' + }, + { + code: 'ja', + flag: '🇯🇵', + name: 'Japan' + } + ] + }: Props = $props(); const get_selected_language = (): string => { return localStorage.getItem('language'); };