Add:Finnish language option

This commit is contained in:
advplyr 2024-06-16 09:42:40 -05:00
parent 516a3858c5
commit a75ad5d659

View File

@ -1,36 +1,37 @@
import Vue from "vue" import Vue from 'vue'
import enUsStrings from '../strings/en-us.json' import enUsStrings from '../strings/en-us.json'
import { supplant } from './utils' import { supplant } from './utils'
const defaultCode = 'en-us' const defaultCode = 'en-us'
const languageCodeMap = { const languageCodeMap = {
'bg': { label: 'Български', dateFnsLocale: 'bg' }, bg: { label: 'Български', dateFnsLocale: 'bg' },
'bn': { label: 'বাংলা', dateFnsLocale: 'bn' }, bn: { label: 'বাংলা', dateFnsLocale: 'bn' },
'cs': { label: 'Čeština', dateFnsLocale: 'cs' }, cs: { label: 'Čeština', dateFnsLocale: 'cs' },
'da': { label: 'Dansk', dateFnsLocale: 'da' }, da: { label: 'Dansk', dateFnsLocale: 'da' },
'de': { label: 'Deutsch', dateFnsLocale: 'de' }, de: { label: 'Deutsch', dateFnsLocale: 'de' },
'en-us': { label: 'English', dateFnsLocale: 'enUS' }, 'en-us': { label: 'English', dateFnsLocale: 'enUS' },
'es': { label: 'Español', dateFnsLocale: 'es' }, es: { label: 'Español', dateFnsLocale: 'es' },
'et': { label: 'Eesti', dateFnsLocale: 'et' }, et: { label: 'Eesti', dateFnsLocale: 'et' },
'fr': { label: 'Français', dateFnsLocale: 'fr' }, fi: { label: 'Suomi', dateFnsLocale: 'fi' },
'he': { label: 'עברית', dateFnsLocale: 'he' }, fr: { label: 'Français', dateFnsLocale: 'fr' },
'hr': { label: 'Hrvatski', dateFnsLocale: 'hr' }, he: { label: 'עברית', dateFnsLocale: 'he' },
'it': { label: 'Italiano', dateFnsLocale: 'it' }, hr: { label: 'Hrvatski', dateFnsLocale: 'hr' },
'lt': { label: 'Lietuvių', dateFnsLocale: 'lt' }, it: { label: 'Italiano', dateFnsLocale: 'it' },
'hu': { label: 'Magyar', dateFnsLocale: 'hu' }, lt: { label: 'Lietuvių', dateFnsLocale: 'lt' },
'nl': { label: 'Nederlands', dateFnsLocale: 'nl' }, hu: { label: 'Magyar', dateFnsLocale: 'hu' },
'no': { label: 'Norsk', dateFnsLocale: 'no' }, nl: { label: 'Nederlands', dateFnsLocale: 'nl' },
'pl': { label: 'Polski', dateFnsLocale: 'pl' }, no: { label: 'Norsk', dateFnsLocale: 'no' },
pl: { label: 'Polski', dateFnsLocale: 'pl' },
'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' }, 'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' },
'ru': { label: 'Русский', dateFnsLocale: 'ru' }, ru: { label: 'Русский', dateFnsLocale: 'ru' },
'sv': { label: 'Svenska', dateFnsLocale: 'sv' }, sv: { label: 'Svenska', dateFnsLocale: 'sv' },
'uk': { label: 'Українська', dateFnsLocale: 'uk' }, uk: { label: 'Українська', dateFnsLocale: 'uk' },
'vi-vn': { label: 'Tiếng Việt', dateFnsLocale: 'vi' }, 'vi-vn': { label: 'Tiếng Việt', dateFnsLocale: 'vi' },
'zh-cn': { label: '简体中文 (Simplified Chinese)', dateFnsLocale: 'zhCN' }, 'zh-cn': { label: '简体中文 (Simplified Chinese)', dateFnsLocale: 'zhCN' },
'zh-tw': { label: '正體中文 (Traditional Chinese)', dateFnsLocale: 'zhTW' } 'zh-tw': { label: '正體中文 (Traditional Chinese)', dateFnsLocale: 'zhTW' }
} }
Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map(code => { Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map((code) => {
return { return {
text: languageCodeMap[code].label, text: languageCodeMap[code].label,
value: code value: code
@ -39,34 +40,34 @@ Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map(code => {
// iTunes search API uses ISO 3166 country codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 // iTunes search API uses ISO 3166 country codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
const podcastSearchRegionMap = { const podcastSearchRegionMap = {
'br': { label: 'Brasil' }, br: { label: 'Brasil' },
'be': { label: 'België / Belgique / Belgien' }, be: { label: 'België / Belgique / Belgien' },
'cz': { label: 'Česko' }, cz: { label: 'Česko' },
'dk': { label: 'Danmark' }, dk: { label: 'Danmark' },
'de': { label: 'Deutschland' }, de: { label: 'Deutschland' },
'ee': { label: 'Eesti' }, ee: { label: 'Eesti' },
'es': { label: 'España / Espanya / Espainia' }, es: { label: 'España / Espanya / Espainia' },
'fr': { label: 'France' }, fr: { label: 'France' },
'hr': { label: 'Hrvatska' }, hr: { label: 'Hrvatska' },
'il': { label: 'ישראל / إسرائيل' }, il: { label: 'ישראל / إسرائيل' },
'it': { label: 'Italia' }, it: { label: 'Italia' },
'lu': { label: 'Luxembourg / Luxemburg / Lëtezebuerg' }, lu: { label: 'Luxembourg / Luxemburg / Lëtezebuerg' },
'hu': { label: 'Magyarország' }, hu: { label: 'Magyarország' },
'nl': { label: 'Nederland' }, nl: { label: 'Nederland' },
'no': { label: 'Norge' }, no: { label: 'Norge' },
'at': { label: 'Österreich' }, at: { label: 'Österreich' },
'pl': { label: 'Polska' }, pl: { label: 'Polska' },
'pt': { label: 'Portugal' }, pt: { label: 'Portugal' },
'ru': { label: 'Россия' }, ru: { label: 'Россия' },
'ch': { label: 'Schweiz / Suisse / Svizzera' }, ch: { label: 'Schweiz / Suisse / Svizzera' },
'se': { label: 'Sverige' }, se: { label: 'Sverige' },
'vn': { label: 'Việt Nam' }, vn: { label: 'Việt Nam' },
'ua': { label: 'Україна' }, ua: { label: 'Україна' },
'gb': { label: 'United Kingdom' }, gb: { label: 'United Kingdom' },
'us': { label: 'United States' }, us: { label: 'United States' },
'cn': { label: '中国' } cn: { label: '中国' }
} }
Vue.prototype.$podcastSearchRegionOptions = Object.keys(podcastSearchRegionMap).map(code => { Vue.prototype.$podcastSearchRegionOptions = Object.keys(podcastSearchRegionMap).map((code) => {
return { return {
text: podcastSearchRegionMap[code].label, text: podcastSearchRegionMap[code].label,
value: code value: code
@ -108,9 +109,11 @@ const translations = {
function loadTranslationStrings(code) { function loadTranslationStrings(code) {
return new Promise((resolve) => { return new Promise((resolve) => {
import(`../strings/${code}`).then((fileContents) => { import(`../strings/${code}`)
.then((fileContents) => {
resolve(fileContents.default) resolve(fileContents.default)
}).catch((error) => { })
.catch((error) => {
console.error('Failed to load i18n strings', code, error) console.error('Failed to load i18n strings', code, error)
resolve(null) resolve(null)
}) })
@ -124,7 +127,7 @@ async function loadi18n(code) {
return false return false
} }
const strings = translations[code] || await loadTranslationStrings(code) const strings = translations[code] || (await loadTranslationStrings(code))
if (!strings) { if (!strings) {
console.warn(`Invalid lang code ${code}`) console.warn(`Invalid lang code ${code}`)
return false return false
@ -174,4 +177,3 @@ async function initialize() {
} }
} }
initialize() initialize()