From 579da80dbdd16e63eb5ba42dff5e138ea5af8765 Mon Sep 17 00:00:00 2001 From: cr4zyduck <141881392+cr4zyduck@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:04:11 +0100 Subject: [PATCH 1/5] Catalan translation Catalan Translation File --- client/public/assets/locales/ca.git.json | 496 +++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 client/public/assets/locales/ca.git.json diff --git a/client/public/assets/locales/ca.git.json b/client/public/assets/locales/ca.git.json new file mode 100644 index 00000000..53be6e25 --- /dev/null +++ b/client/public/assets/locales/ca.git.json @@ -0,0 +1,496 @@ +{ + "failed": "Error", + "welcome": { + "step": "Pas", + "title": "Benvingut a MySpeed!", + "subtext": "Configurem MySpeed per primera vegada. No et preocupis, no trigarà gaire.", + "provider_title": "Tria un proveïdor", + "provider_subtext": "Selecciona aquí el proveïdor que vols utilitzar. Aquest proveïdor serà qui realitzi les proves.", + "data_title": "Estableix les dades òptimes", + "data_subtext": "Selecciona en aquest pas les velocitats acordades contractualment", + "ms": "(en ms)", + "mbps": "(en Mbps)", + "accept_title": "Accepta les condicions", + "accept_subtext": "En aquest pas, volem informar-te sobre la llicència d'Ookla. Llegeix-la i confirma que l'has llegida i acceptada fent clic a \"Fet\"." + }, + "dialog": { + "okay": "D'acord", + "done": "Fet", + "continue": "Continua", + "apply": "Sí, aplica", + "update": "Actualitza", + "close": "Tanca", + "unset": "Elimina", + "retry": "Torna-ho a intentar", + "login": "Inicia sessió", + "save": "Desa", + "saving": "Desant...", + "password": { + "title": "Cal una contrasenya", + "placeholder": "La teva contrasenya", + "wrong": "La contrasenya que has introduït és incorrecta", + "unlock": "Desbloqueja" + }, + "api": { + "title": "L'API no és accessible", + "description": "MySpeed no ha pogut accedir a l'API d'aquesta instància. Torna-ho a intentar més tard." + }, + "provider": { + "interface": "Interfície", + "server": "Servidor", + "server_id": "ID del servidor", + "custom_url": "URL personalitzada", + "custom_url_placeholder": "https://speed.test/backend/", + "choose_automatically": "Tria automàticament", + "ookla_license": "He llegit i accepto l'EULA, la política de privacitat i les condicions del servei d'Ookla.", + "ookla_notice": "En utilitzar Ookla, acceptes la seva EULA, la política de privacitat i les condicions del servei.", + "ookla_desc": "Proveïdor popular amb xarxa global de servidors", + "libre_desc": "Prova de velocitat de codi obert i auto-allotjable", + "cloudflare_desc": "Proves ràpides basades en CDN" + } + }, + "dropdown": { + "settings": "Configuració", + "changes_applied": "Els canvis s'han desat.", + "language_changed": "L'idioma ha canviat.", + "provider_changed": "El proveïdor ha canviat.", + "changes_unsaved": "Els canvis no s'han aplicat. Comprova la teva entrada.", + "invalid": "Entrada no vàlida", + "ping": "Ping òptim", + "upload": "Velocitat de pujada òptima", + "download": "Velocitat de baixada òptima", + "recommendations": "Recomanacions", + "optimal_values": "Valors òptims", + "change_provider": "Canvia el proveïdor", + "password": "Canvia la contrasenya", + "cron": "Estableix la freqüència", + "time": "Estableix el període", + "storage": "Gestiona l'emmagatzematge", + "pause_tests": "Pausa les proves", + "resume_tests": "Reprèn les proves", + "language": "Canvia l'idioma", + "light_mode": "Mode clar", + "dark_mode": "Mode fosc", + "theme_switched_light": "S'ha canviat al mode clar", + "theme_switched_dark": "S'ha canviat al mode fosc", + "provider": "Sobre el proveïdor", + "integrations": "Integracions" + }, + "about": { + "title": "Sobre MySpeed", + "description": "MySpeed és un programari d'anàlisi de proves de velocitat de codi obert que registra la velocitat d'internet fins a 30 dies.", + "github": "GitHub", + "website": "Lloc web", + "donate": "Dona", + "translate": "Tradueix", + "made_by": "Fet amb" + }, + "options": { + "cron": { + "continuous": "Continu", + "continuous_desc": "Cada minut - ús elevat de recursos", + "frequent": "Molt sovint", + "frequent_desc": "Cada 30 minuts", + "default": "Per defecte", + "default_desc": "Cada hora - recomanat", + "rare": "Rarament", + "rare_desc": "Cada 3 hores", + "really_rare": "Molt rarament", + "really_rare_desc": "Cada 6 hores" + }, + "level": { + "no_access": "Sense accés", + "read_access": "Accés de només lectura" + } + }, + "password": { + "no_access_desc": "Els visitants han d'introduir la contrasenya per veure res", + "read_access_desc": "Els visitants poden veure les dades però no canviar la configuració" + }, + "pause": { + "manual": "Pausa indefinidament", + "manual_desc": "Pausa fins que es reprengui manualment", + "short": "Pausa curta", + "short_desc": "Pausa durant 1 hora", + "medium": "Pausa mitjana", + "medium_desc": "Pausa durant 6 hores", + "long": "Pausa llarga", + "long_desc": "Pausa durant 12 hores", + "custom": "Durada personalitzada" + }, + "page": { + "overview": "Visió general", + "statistics": "Estadístiques" + }, + "update": { + "ping_title": "Estableix el ping òptim (ms)", + "ping_placeholder": "Ping (ms)", + "upload_title": "Estableix la velocitat de pujada òptima (Mbps)", + "upload_placeholder": "Velocitat de pujada (Mbps)", + "download_title": "Estableix la velocitat de baixada òptima (Mbps)", + "download_placeholder": "Velocitat de baixada (Mbps)", + "recommendations_title": "Recomanacions òptimes", + "recommendations_set": "Establir recomanacions automàtiques?", + "provider_title": "Estableix el proveïdor de proves de velocitat", + "manually": "Estableix manualment", + "new_password": "Estableix una nova contrasenya", + "password_placeholder": "Nova contrasenya", + "password_removed": "El bloqueig per contrasenya s'ha eliminat i la contrasenya configurada s'ha esborrat.", + "level": "Canvia el nivell", + "level_title": "Permisos per als visitants", + "cron_title": "Estableix la freqüència de les proves", + "cron_rules": "Regla Cron", + "cron_next_test": "Propera prova:", + "custom_cron": "Expressió cron personalitzada", + "schedule_offset": "Desplaçament de la planificació", + "schedule_offset_desc": "Afegeix un petit retard per evitar que les proves s'iniciïn en moments exactes", + "advanced": "Avançat", + "time_title": "Mostra les proves dels darrers...", + "download": "Baixada", + "pause_title": "Pausa les proves de velocitat durant...", + "hours": "Hores", + "pause": "Pausa", + "pause_manual_hint": "Deixa-ho buit per pausar indefinidament", + "release_manually": "Allibera manualment", + "language": "Canvia l'idioma", + "view_title": "Canvia la vista" + }, + "header": { + "title": "MySpeed", + "running_tooltip": "Prova de velocitat en curs", + "start_tooltip": "Inicia la prova de velocitat", + "new_update": "Actualització disponible", + "download": "Baixada", + "paused": "Les proves de velocitat estan pausades. Reprèn-les si en vols fer una.", + "running": "Ja hi ha una prova de velocitat en curs. Espera un moment.", + "admin_login": "Inici de sessió d'administrador", + "servers": "Servidors", + "beta": { + "title": "Versió beta", + "description": "Aquesta funció encara és en versió beta. Si trobes errors, informa'n aquí." + } + }, + "storage": { + "speedtests": "Proves de velocitat", + "configuration": "Configuració", + "stored_tests": "Proves emmagatzemades", + "tests": "Proves", + "export_tests": "Exporta les proves", + "tests_exported": "Les proves s'han exportat", + "csv": "CSV", + "json": "JSON", + "import_tests": "Importa les proves", + "tests_imported": "Les proves s'han importat", + "import_test_error": "S'ha produït un error en importar les proves", + "import_config_error": "S'ha produït un error en importar la configuració", + "export": "Exporta", + "import": "Importa", + "clear_history": "Esborra l'historial", + "history_cleared": "L'historial s'ha esborrat", + "delete": "Elimina", + "confirm_delete": "Sí, elimina", + "export_settings": "Exporta la configuració", + "import_settings": "Importa la configuració", + "factory_reset": "Restabliment de fàbrica", + "factory_reset_completed": "El restabliment de fàbrica s'ha completat", + "reset": "Restableix", + "confirm_reset": "Sí, restableix", + "settings_exported": "La configuració s'ha exportat", + "settings_imported": "La configuració s'ha importat" + }, + "latest": { + "ping": "Ping", + "ping_unit": "ms", + "jitter": "Jitter", + "jitter_unit": "ms", + "down": "Baixada", + "speed_unit": "Mbps", + "up": "Pujada", + "latest": "Darrera prova", + "before": "fa" + }, + "info": { + "recommendations_error": "Has de fer almenys 10 proves per obtenir una mitjana. No importa si les proves s'han fet manualment o automàticament.", + "recommendations_info": "Basant-se en les darreres 10 proves, s'ha determinat que el ping òptim és {{ping}} ms, la baixada a {{down}} Mbps i la pujada a {{up}} Mbps. El millor és orientar-se pel teu contracte d'internet i adoptar-ho només si coincideix.", + "update": "Hi ha una actualització a la versió {{version}} disponible. Consulta els canvis i baixa l'actualització.", + "down": { + "title": "Velocitat de baixada", + "description": "La velocitat de baixada afecta la teva experiència de navegació. Com més alta sigui, més ràpid podrà rebre dades el teu ordinador." + }, + "ping": { + "title": "Ping", + "description": "El ping mostra la rapidesa amb què respon el proveïdor. Com més curt sigui el temps, millor." + }, + "jitter": { + "title": "Jitter", + "description": "El jitter és la variació en els temps de resposta del ping. Un jitter més baix significa una connexió més estable, cosa important per a aplicacions en temps real com les videotrucades i els jocs." + }, + "up": { + "title": "Velocitat de pujada", + "description": "La velocitat de pujada afecta la teva experiència de navegació. Com més alta sigui, més ràpid podrà enviar dades el teu ordinador." + }, + "latest": { + "title": "Darrera prova", + "description": "Aquest és el moment en què es va realitzar la darrera prova. En aquest cas, la darrera va tenir lloc el {{date}} a les {{time}}." + } + }, + "time": { + "now": "Ara mateix", + "seconds": "{{seconds}} segons", + "minute": "1 minut", + "minutes": "{{minutes}} minuts", + "hour": "1 hora", + "hours": "{{hours}} hores", + "on": "El", + "at": "A les" + }, + "test": { + "not_available": "Ara mateix no hi ha cap prova disponible", + "no_latest": "No hi ha cap prova actual disponible. Realitza una prova o espera que es faci la propera.", + "loading_more": "Carregant més proves...", + "no_more_tests": "No hi ha més proves per carregar", + "unknown_error": "Error desconegut:", + "failed": "La prova ha fallat", + "recheck": "Comprova-ho tant com sigui possible si passa sovint.", + "delete": "Elimina la prova", + "deleted": "La prova s'ha eliminat", + "average": { + "title": "Velocitat mitjana", + "description": "{{amount}} proves han mostrat que el {{date}} la velocitat de baixada mitjana va ser de {{down}} Mbps i la de pujada de {{up}} Mbps. Les proves van durar una mitjana de {{duration}} segons." + }, + "result": { + "title": "Resultat de la prova", + "description": "Aquesta prova ha assolit una velocitat de baixada màxima de {{down}} Mbps i una velocitat de pujada màxima de {{up}} Mbps. Va ser creada {{type}} i va durar {{duration}} segons.", + "jitter": " El jitter de la connexió va ser de {{jitter}} ms.", + "from_you": "per tu", + "automatic": "automàticament" + }, + "overview": { + "title_range": "Resum de proves del {{from}} al {{to}}" + } + }, + "errors": { + "network_unreachable": "La connexió a internet era inestable durant la prova", + "took_too_long": "La prova ha tardat massa i s'ha cancel·lat", + "no_permission": "MySpeed no té permís per iniciar aquesta prova", + "resource_unavailable": "La prova no s'ha pogut realitzar perquè el recurs no estava disponible temporalment", + "no_route": "La prova no s'ha pogut realitzar perquè no hi havia ruta cap a l'amfitrió", + "connection_refused": "La prova no s'ha pogut realitzar perquè s'ha rebutjat la connexió", + "timed_out": "La connexió a internet era inestable durant la prova", + "config": "No s'ha pogut carregar el fitxer de configuració", + "invalid_view": "Vista no vàlida" + }, + "statistics": { + "average": "Mitjana", + "export": { + "button": "Exporta" + }, + "overview": { + "total_title": "Total de proves", + "total_description": "El nombre de proves executades", + "failed_title": "Proves fallides", + "failed_description": "El nombre de proves fallides", + "average_title": "Durada mitjana", + "average_description": "La durada mitjana de les proves" + }, + "failed": { + "title": "Proves fallides", + "success": "Correctes", + "failed": "Fallides", + "label": "Proves" + }, + "speed": { + "title": "Velocitat" + }, + "manual": { + "title": "Proves manuals", + "yes": "Creada manualment", + "no": "Creada automàticament" + }, + "duration": { + "title": "Durada de la prova", + "label": "Quantitat" + }, + "values": { + "min": "Mínim", + "max": "Màxim", + "avg": "Mitjana", + "down": "Valors de baixada", + "up": "Valors de pujada" + }, + "failed_test": "Prova fallida", + "hourly": { + "title": "Velocitat per hora del dia", + "sample_count": "Proves" + }, + "consistency": { + "title": "Estabilitat de la connexió", + "excellent": "Excel·lent", + "good": "Bona", + "fair": "Regular", + "poor": "Deficient", + "ping_variance": "Variació del ping" + } + }, + "calendar": { + "select_range": "Selecciona un rang de dates", + "select_start": "Selecciona la data d'inici", + "select_end": "Selecciona la data de fi", + "from": "Des de", + "to": "Fins a", + "last_7_days": "Darrers 7 dies", + "last_30_days": "Darrers 30 dies", + "last_90_days": "Darrers 90 dies", + "last_year": "Darrer any", + "mon": "Dl", + "tue": "Dt", + "wed": "Dc", + "thu": "Dj", + "fri": "Dv", + "sat": "Ds", + "sun": "Dg" + }, + "nodes": { + "add": "Afegeix un servidor", + "create": "Afegeix", + "this_server": "Aquest servidor", + "created": "El servidor s'ha afegit correctament", + "password_required": "Aquest node requereix una contrasenya", + "update_password": "Actualitza la contrasenya d'aquest node", + "password_outdated": "Contrasenya obsoleta", + "password_updated": "La contrasenya s'ha actualitzat correctament", + "preview_active": "Afegir i eliminar servidors està desactivat en el mode de demostració.", + "placeholder": { + "name": "Instància de MySpeed", + "url": "https://el-teu-servidor.com" + }, + "group": { + "name": "Nom del servidor", + "url": "Adreça del servidor" + }, + "delete": { + "title": "Elimina el servidor", + "description": "El servidor {{name}} (#{{id}}) s'eliminarà. Aquesta acció no es pot desfer. Vols continuar?", + "yes": "Sí, elimina", + "success": "El servidor s'ha eliminat correctament" + }, + "rename": { + "title": "Reanomena el servidor", + "placeholder": "Nou nom del servidor", + "success": "El servidor s'ha reanomenat correctament" + }, + "messages": { + "not_reachable": "El servidor no és accessible", + "password_changed": "Contrasenya canviada", + "tests_pending": "Resultats de la prova pendents" + } + }, + "preview": { + "title": "Mode de demostració", + "info": "DEMO", + "description": "Actualment estàs en mode de demostració. Algunes funcions estan desactivades i alguns paràmetres no es poden canviar. Si vols utilitzar totes les funcions, pots instal·lar MySpeed al teu propi servidor." + }, + "integrations": { + "none_active": "Aquesta integració no està activa.
Crea", + "preview_active": "Les integracions estan desactivades en el mode de demostració.", + "display_name": "Nom de la integració", + "create": "Crea", + "activity": { + "never_executed": "Mai executat", + "last_run": "Darrera execució fa " + }, + "discord": { + "title": "Discord", + "fields": { + "url": "URL del webhook", + "url_placeholder": "https://discord.com/api/webhooks/...", + "display_name": "Nom de visualització", + "display_name_placeholder": "Notificació de MySpeed", + "error_message": "Missatge d'error", + "error_message_placeholder": "Error: %error%", + "send_failed": "Envia missatges d'error", + "send_finished": "Envia missatges de finalització", + "finished_message": "Missatge de finalització", + "finished_message_placeholder": "%ping% ms, %download% Mbps, %upload% Mbps" + } + }, + "gotify": { + "title": "Gotify", + "fields": { + "url": "URL del servidor", + "key": "Token de l'aplicació", + "priority": "Prioritat", + "error_message": "Missatge d'error", + "error_message_placeholder": "Error: %error%", + "send_failed": "Envia missatges d'error", + "send_finished": "Envia missatges de finalització", + "finished_message": "Missatge de finalització", + "finished_message_placeholder": "%ping% ms, %download% Mbps, %upload% Mbps" + } + }, + "pushover": { + "title": "Pushover", + "fields": { + "token": "Token de l'aplicació", + "user_key": "Clau d'usuari", + "error_message": "Missatge d'error", + "error_message_placeholder": "Error: %error%", + "send_failed": "Envia missatges d'error", + "send_finished": "Envia missatges de finalització", + "finished_message": "Missatge de finalització", + "finished_message_placeholder": "%ping% ms, %download% Mbps, %upload% Mbps" + } + }, + "healthChecks": { + "title": "HealthChecks", + "fields": { + "url": "URL de HealthChecks", + "url_placeholder": "https://hc-ping.com/" + } + }, + "telegram": { + "title": "Telegram", + "fields": { + "token": "Token del bot", + "chat_id": "ID del xat", + "error_message": "Missatge d'error", + "error_message_placeholder": "Error: %error%", + "send_failed": "Envia missatges d'error", + "send_finished": "Envia missatges de finalització", + "finished_message": "Missatge de finalització", + "finished_message_placeholder": "%ping% ms, %download% Mbps, %upload% Mbps" + } + }, + "webhook": { + "title": "Webhook", + "fields": { + "url": "URL del webhook", + "url_placeholder": "https://el-teu-servidor.com/hook", + "send_started": "Envia inici", + "send_failed": "Envia missatges d'error", + "send_finished": "Envia missatges de finalització", + "send_alive": "Envia missatges Keep-Alive", + "send_recommendations": "Envia recomanacions", + "send_config_updates": "Envia actualitzacions de configuració" + } + } + }, + "common": { + "back_to_top": "Torna a dalt" + }, + "not_found": { + "title": "Pàgina no trobada", + "description": "La pàgina que busques no existeix o s'ha mogut.", + "back_home": "Torna a l'inici" + }, + "route_error": { + "title": "Ostres!", + "subtitle": "Alguna cosa ha anat malament", + "description": "S'ha produït un error inesperat. Torna-ho a intentar o torna a la pàgina d'inici.", + "reload": "Recarrega la pàgina" + }, + "optimal_values": { + "title": "Valors òptims", + "use_recommended": "Utilitza els recomanats" + } +} From 9896458aa5c510840fa4ca1486f2c8edc30dc064 Mon Sep 17 00:00:00 2001 From: cr4zyduck <141881392+cr4zyduck@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:04:51 +0100 Subject: [PATCH 2/5] Rename ca.git.json to ca.json --- client/public/assets/locales/{ca.git.json => ca.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename client/public/assets/locales/{ca.git.json => ca.json} (100%) diff --git a/client/public/assets/locales/ca.git.json b/client/public/assets/locales/ca.json similarity index 100% rename from client/public/assets/locales/ca.git.json rename to client/public/assets/locales/ca.json From 749721764f13ec4067650e649ac5270c7a137202 Mon Sep 17 00:00:00 2001 From: cr4zyduck <141881392+cr4zyduck@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:06:08 +0100 Subject: [PATCH 3/5] Catalan Translation Catalan Translation File From 6aa4161f4a47fc3f117dcf81f3bc84b6cf0914c1 Mon Sep 17 00:00:00 2001 From: cr4zyduck <141881392+cr4zyduck@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:12:14 +0100 Subject: [PATCH 4/5] Catalan Flag Catalan Flag File --- client/src/common/assets/languages/ca.webp | Bin 0 -> 1950 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 client/src/common/assets/languages/ca.webp diff --git a/client/src/common/assets/languages/ca.webp b/client/src/common/assets/languages/ca.webp new file mode 100644 index 0000000000000000000000000000000000000000..326b230b36fc536ae32e7837de15f07d09e1a3da GIT binary patch literal 1950 zcmWIYbaR`=&cG1v>J$(bU=hK^z`!5?#Pv)Js~8y^eF8j`fjmb3f@}XfIvmt;jsGu8 zPk62%`1kyW`TzesxBvh1eEq-sDbE=gfVvfYfF@n2WthvT)xflx(QcyKJkO;|lod5+ z|0viX#F?D;ux!JP72=-Ni^>lFO#Q^HwO9V||IGJqZZz1(?vLL4|J@7Q`oH#HZ3~-! zYAFADM-(_^P&Q9`OYbeWx5{M`cYEAjl6T2GlVX9>etUGP+(KLKnD%^@+`DEMA?BX- zCVm%|aC~%=&2|br^I+D3AeM^7d|MZ)&B(a)I^w+H>|3Xoq(=B2CWiTO&4*a2n`Zur zg>ixveSh5Rl=lnX?|6Tt{E_uX$tui1Ia(9A?1_8pl(onH6!RM?A37EGxX!YDrr^U= z?ZW*shtG6;*fe#={l3I!E)|hpck+)Ld{(m2S(<15ct+(!IkBMa(jU**oapD)jPCt2 zZ@uZS&+)hklk<_xb0@Ex^Iy^D3=EvgkzJjt^L=Z&SoN*V-L`KdkIwtH=F$1;u)_4c zt1UL)yE-TGebza!f*Q3Nh&N<^p!o|Z@ZrxY44_{3?I{uFf-KI_+7!E7^-@u+Iu63) z_&SWR+gaw-?KETYzmBRsvc?O20{^?%#_`R(uuS9sBDwYKJ}-hr>M!z#H!myE?6QB+ zzWU&0E0Lq}U!1Q#csZ9VssESas}CjTS`FR*3VfYj8mV`A(o0Ld$v6m=_JIuph$9y+f5W$!@%(Gf6?~(Z(HnFJOA2Z&tlK|t?|hLV9@~q z$yM_|x?P_tkry{<$qA3X?=r$iTHdED4trW3dJQ`c>;JdMSbWC!yw9%=&M^^Dk+^ors7-(c#UxaeY3loo^ANpGEh2Sjpu#kwwC3}7F zW8yEl+PRD5Qsgb(ue#xKpaCeZVLvT-%gmOSjJtNvKK{DmZ@&E6$6xo`A91J3NAlh{9M;BoE|cN l|HN8&u3hc+Z#CbC`+SMlV;}C5IlON7;Tj*S1z@`%1OQ8P_TvBm literal 0 HcmV?d00001 From b0cdfd930f40fc1fe9556404e008a5383d32821c Mon Sep 17 00:00:00 2001 From: cr4zyduck <141881392+cr4zyduck@users.noreply.github.com> Date: Sat, 7 Mar 2026 13:16:02 +0100 Subject: [PATCH 5/5] Update i18n.js Added Catalan --- client/src/i18n.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/i18n.js b/client/src/i18n.js index 914d8799..e8b58722 100644 --- a/client/src/i18n.js +++ b/client/src/i18n.js @@ -16,6 +16,7 @@ import TurkishFlag from "@/common/assets/languages/tr.webp"; import DanishFlag from "@/common/assets/languages/da.webp"; import PolishFlag from "@/common/assets/languages/pl.webp"; import IndonesianFlag from "@/common/assets/languages/id.webp"; +import CatalanFlag from "@/common/assets/languages/ca.webp"; if (localStorage.getItem('language') === null) localStorage.setItem('language', navigator.language.split('-')[0]); @@ -34,7 +35,8 @@ export const languages = [ {name: 'Dansk', code: 'da', flag: DanishFlag}, {name: 'Polski', code: 'pl', flag: PolishFlag}, {name: 'Türkçe', code: 'tr', flag: TurkishFlag}, - {name: 'Bahasa Indonesia', code: 'id', flag: IndonesianFlag} + {name: 'Bahasa Indonesia', code: 'id', flag: IndonesianFlag}, + {name: 'Català', code: 'ca', flag: CatalanFlag} ] i18n.use(initReactI18next).use(LanguageDetector).use(HttpApi).init({ @@ -49,4 +51,4 @@ i18n.use(initReactI18next).use(LanguageDetector).use(HttpApi).init({ } }); -export default i18n; \ No newline at end of file +export default i18n;