feat(lang): add Catalan localization support (#873)

Co-authored-by: Gauvain <68083474+Gauvino@users.noreply.github.com>
This commit is contained in:
Ferran
2025-08-07 13:19:48 +02:00
committed by GitHub
parent 88791eccf9
commit a77c7e8e3c
2 changed files with 487 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
import { getLocales } from "expo-localization";
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import ca from "./translations/ca.json";
import da from "./translations/da.json";
import de from "./translations/de.json";
import en from "./translations/en.json";
@@ -27,6 +28,7 @@ import zhCN from "./translations/zh-CN.json";
import zhTW from "./translations/zh-TW.json";
export const APP_LANGUAGES = [
{ label: "Catalan", value: "ca" },
{ label: "Dansk", value: "da" },
{ label: "Deutsch", value: "de" },
{ label: "English", value: "en" },
@@ -56,6 +58,7 @@ export const APP_LANGUAGES = [
i18n.use(initReactI18next).init({
compatibilityJSON: "v4",
resources: {
ca: { translation: ca },
da: { translation: da },
de: { translation: de },
en: { translation: en },

484
translations/ca.json Normal file
View File

@@ -0,0 +1,484 @@
{
"login": {
"username_required": "Nom d'usuari requerit",
"error_title": "Error",
"login_title": "Inicia sessió",
"login_to_title": "Inicia sessió a",
"username_placeholder": "Nom d'usuari",
"password_placeholder": "Contrasenya",
"login_button": "Inicia sessió",
"quick_connect": "Connexió ràpida",
"enter_code_to_login": "Introdueix el codi {{code}} per iniciar sessió",
"failed_to_initiate_quick_connect": "No s'ha pogut iniciar la connexió ràpida",
"got_it": "Entesos",
"connection_failed": "Ha fallat la connexió",
"could_not_connect_to_server": "No s'ha pogut connectar amb el servidor. Comproveu l'URL i la connexió de xarxa.",
"an_unexpected_error_occured": "S'ha produït un error inesperat",
"change_server": "Canvia el servidor",
"invalid_username_or_password": "Nom d'usuari o contrasenya incorrectes",
"user_does_not_have_permission_to_log_in": "L'usuari no té permís per iniciar sessió",
"server_is_taking_too_long_to_respond_try_again_later": "El servidor triga massa a respondre, torneu-ho a provar més tard",
"server_received_too_many_requests_try_again_later": "El servidor ha rebut massa sol·licituds, torneu-ho a provar més tard.",
"there_is_a_server_error": "Error del servidor",
"an_unexpected_error_occured_did_you_enter_the_correct_url": "S'ha produït un error inesperat. Heu introduït correctament l'URL del servidor?"
},
"server": {
"enter_url_to_jellyfin_server": "Introdueix l'URL del vostre servidor Jellyfin",
"server_url_placeholder": "http(s)://el-vostre-servidor.com",
"connect_button": "Connecta",
"previous_servers": "servidors anteriors",
"clear_button": "Esborra",
"search_for_local_servers": "Cercar servidors locals",
"searching": "Cercant...",
"servers": "Servidors"
},
"home": {
"no_internet": "Sense internet",
"no_items": "No hi ha elements",
"no_internet_message": "No us preocupeu, encara podeu veure\nel contingut descarregat.",
"go_to_downloads": "Anar a les descàrregues",
"oops": "Oops!",
"error_message": "Alguna cosa ha anat malament.\nTanqueu la sessió i torneu-la a iniciar.",
"continue_watching": "Continua veient",
"next_up": "A continuació",
"recently_added_in": "Afegit recentment a {{libraryName}}",
"suggested_movies": "Pel·lícules suggerides",
"suggested_episodes": "Episodis suggerits",
"intro": {
"welcome_to_streamyfin": "Benvingut a Streamyfin",
"a_free_and_open_source_client_for_jellyfin": "Un client gratuït i de codi obert per a Jellyfin.",
"features_title": "Funcionalitats",
"features_description": "Streamyfin té moltes funcionalitats i s'integra amb una gran varietat de programari que podeu trobar al menú de configuració, això inclou:",
"jellyseerr_feature_description": "Connecteu-vos a la vostra instància de Jellyseerr i sol·liciteu pel·lícules directament des de l'aplicació.",
"downloads_feature_title": "Descàrregues",
"downloads_feature_description": "Descarregueu pel·lícules i sèries per veure-les sense connexió. Utilitzeu el mètode per defecte o instal·leu el servidor optimitzat per descarregar fitxers en segon pla.",
"chromecast_feature_description": "Envieu pel·lícules i sèries als vostres dispositius Chromecast.",
"centralised_settings_plugin_title": "Plugin de configuració centralitzada",
"centralised_settings_plugin_description": "Configureu els ajustos des d'una ubicació centralitzada al vostre servidor Jellyfin. Tots els ajustos del client per a tots els usuaris se sincronitzaran automàticament.",
"done_button": "Fet",
"go_to_settings_button": "Ves a la configuració",
"read_more": "Mostra més"
},
"settings": {
"settings_title": "Configuració",
"log_out_button": "Tanca sessió",
"user_info": {
"user_info_title": "Informació de l'usuari",
"user": "Usuari",
"server": "Servidor",
"token": "Token",
"app_version": "Versió de l'aplicació"
},
"quick_connect": {
"quick_connect_title": "Connexió ràpida",
"authorize_button": "Autoritza connexió ràpida",
"enter_the_quick_connect_code": "Introdueix el codi de connexió ràpida...",
"success": "Èxit",
"quick_connect_autorized": "Connexió ràpida autoritzada",
"error": "Error",
"invalid_code": "Codi invàlid",
"authorize": "Autoritza"
},
"media_controls": {
"media_controls_title": "Controls multimèdia",
"forward_skip_length": "Durada del salt endavant",
"rewind_length": "Durada del rebobinat",
"seconds_unit": "s"
},
"audio": {
"audio_title": "Àudio",
"set_audio_track": "Establir pista d'àudio de l'element anterior",
"audio_language": "Idioma de l'àudio",
"audio_hint": "Trieu un idioma d'àudio per defecte.",
"none": "Cap",
"language": "Idioma"
},
"subtitles": {
"subtitle_title": "Subtítols",
"subtitle_language": "Idioma dels subtítols",
"subtitle_mode": "Mode dels subtítols",
"set_subtitle_track": "Establir pista de subtítols de l'element anterior",
"subtitle_size": "Mida dels subtítols",
"subtitle_hint": "Configureu les preferències dels subtítols.",
"none": "Cap",
"language": "Idioma",
"loading": "Carregant",
"modes": {
"Default": "Per defecte",
"Smart": "Intel·ligent",
"Always": "Sempre",
"None": "Cap",
"OnlyForced": "Només els forçats"
}
},
"other": {
"other_title": "Altres",
"follow_device_orientation": "Rotació automàtica",
"video_orientation": "Orientació del vídeo",
"orientation": "Orientació",
"orientations": {
"DEFAULT": "Per defecte",
"ALL": "Totes",
"PORTRAIT": "Vertical",
"PORTRAIT_UP": "Vertical amunt",
"PORTRAIT_DOWN": "Vertical avall",
"LANDSCAPE": "Horitzontal",
"LANDSCAPE_LEFT": "Horitzontal esquerra",
"LANDSCAPE_RIGHT": "Horitzontal dreta",
"OTHER": "Altra",
"UNKNOWN": "Desconeguda"
},
"safe_area_in_controls": "Àrea segura als controls",
"video_player": "Reproductor de vídeo",
"video_players": {
"VLC_3": "VLC 3",
"VLC_4": "VLC 4 (Experimental + PiP)"
},
"show_custom_menu_links": "Mostrar enllaços del menú personalitzats",
"hide_libraries": "Oculta biblioteques",
"select_liraries_you_want_to_hide": "Seleccioneu les biblioteques que voleu ocultar de la pestanya Biblioteca i de les seccions de la pàgina d'inici.",
"disable_haptic_feedback": "Desactiva la resposta hàptica",
"default_quality": "Qualitat per defecte",
"max_auto_play_episode_count": "Nombre màxim d'episodis de reproducció automàtica",
"disabled": "Desactivat"
},
"downloads": {
"downloads_title": "Descàrregues",
"download_method": "Mètode de descàrrega",
"remux_max_download": "Màxima descàrrega remux",
"auto_download": "Descàrrega automàtica",
"optimized_versions_server": "Servidor de versions optimitzades",
"save_button": "Desa",
"optimized_server": "Servidor optimitzat",
"optimized": "Optimitzat",
"default": "Per defecte",
"optimized_version_hint": "Introdueix l'URL del servidor d'optimització. L'URL ha d'incloure http o https i opcionalment el port.",
"read_more_about_optimized_server": "Mostra més sobre el servidor d'optimització.",
"url": "URL",
"server_url_placeholder": "http(s)://domini.org:port"
},
"plugins": {
"plugins_title": "Connectors",
"jellyseerr": {
"jellyseerr_warning": "Aquesta integració es troba en una versió primerenca. Espereu que les coses canviïn.",
"server_url": "URL del servidor",
"server_url_hint": "Exemple: http(s)://el-vostre-domini.url\n(afegiu el port si és necessari)",
"server_url_placeholder": "URL de Jellyseerr...",
"password": "Contrasenya",
"password_placeholder": "Introdueix la contrasenya per a l'usuari de Jellyfin {{username}}",
"save_button": "Desa",
"clear_button": "Esborra",
"login_button": "Inicia sessió",
"total_media_requests": "Sol·licituds totals de contingut",
"movie_quota_limit": "Límit de quota de pel·lícules",
"movie_quota_days": "Dies de quota de pel·lícules",
"tv_quota_limit": "Límit de quota de sèries",
"tv_quota_days": "Dies de quota de sèries",
"reset_jellyseerr_config_button": "Restalbeix la configuració de Jellyseerr",
"unlimited": "Il·limitat",
"plus_n_more": "+{{n}} més",
"order_by": {
"DEFAULT": "Per defecte",
"VOTE_COUNT_AND_AVERAGE": "Recompte de vots i mitjana",
"POPULARITY": "Popularitat"
}
},
"marlin_search": {
"enable_marlin_search": "Activa la cerca de Marlin",
"url": "URL",
"server_url_placeholder": "http(s)://domini.org:port",
"marlin_search_hint": "Introdueix l'URL del servidor Marlin. L'URL ha d'incloure http o https i opcionalment el port.",
"read_more_about_marlin": "Mostra més sobre Marlin.",
"save_button": "Desa",
"toasts": {
"saved": "Desat"
}
}
},
"storage": {
"storage_title": "Emmagatzematge",
"app_usage": "Aplicació {{usedSpace}}%",
"device_usage": "Dispositiu {{availableSpace}}%",
"size_used": "{{used}} de {{total}} utilitzat",
"delete_all_downloaded_files": "Suprimeix tots els fitxers descarregats"
},
"intro": {
"show_intro": "Mostra la introducció",
"reset_intro": "Restableix la introducció"
},
"logs": {
"logs_title": "Registres",
"export_logs": "Exporta registres",
"click_for_more_info": "Feu clic per obtenir més informació",
"level": "Nivell",
"no_logs_available": "No hi ha registres disponibles",
"delete_all_logs": "Suprimeix tots els registres"
},
"languages": {
"title": "Idiomes",
"app_language": "Idioma de l'aplicació",
"app_language_description": "Seleccioneu l'idioma de l'aplicació.",
"system": "Sistema"
},
"toasts": {
"error_deleting_files": "Error en suprimir fitxers",
"background_downloads_enabled": "Descàrregues en segon pla activades",
"background_downloads_disabled": "Descàrregues en segon pla desactivades",
"connected": "Connectat",
"could_not_connect": "No s'ha pogut connectar",
"invalid_url": "URL invàlida"
}
},
"sessions": {
"title": "Sessions",
"no_active_sessions": "No hi ha sessions actives"
},
"downloads": {
"downloads_title": "Descàrregues",
"tvseries": "Sèries",
"movies": "Pel·lícules",
"queue": "Cua",
"queue_hint": "La cua i les descàrregues es perdran en reiniciar l'aplicació",
"no_items_in_queue": "No hi ha elements a la cua",
"no_downloaded_items": "No hi ha elements descarregats",
"delete_all_movies_button": "Suprimeix totes les pel·lícules",
"delete_all_tvseries_button": "Suprimeix totes les sèries",
"delete_all_button": "Suprimeix-ho tot",
"active_download": "Descàrrega activa",
"no_active_downloads": "No hi ha descàrregues actives",
"active_downloads": "Descàrregues actives",
"new_app_version_requires_re_download": "La nova versió de l'aplicació requereix tornar a descarregar",
"new_app_version_requires_re_download_description": "L'actualització nova requereix que el contingut es torni a descarregar. Suprimiu tot el contingut descarregat i torneu-ho a provar.",
"back": "Enrere",
"delete": "Suprimeix",
"something_went_wrong": "Alguna cosa ha anat malament",
"could_not_get_stream_url_from_jellyfin": "No s'ha pogut obtenir l'URL del flux de Jellyfin",
"eta": "ETA {{eta}}",
"methods": "Mètodes",
"toasts": {
"you_are_not_allowed_to_download_files": "No teniu permís per descarregar fitxers.",
"deleted_all_movies_successfully": "S'han suprimit totes les pel·lícules correctament!",
"failed_to_delete_all_movies": "No s'han pogut suprimir totes les pel·lícules",
"deleted_all_tvseries_successfully": "S'han suprimit totes les sèries correctament!",
"failed_to_delete_all_tvseries": "No s'han pogut suprimir totes les sèries",
"download_cancelled": "Descàrrega cancel·lada",
"could_not_cancel_download": "No s'ha pogut cancel·lar la descàrrega",
"download_completed": "Descàrrega completada",
"download_started_for": "S'ha iniciat la descàrrega per a {{item}}",
"item_is_ready_to_be_downloaded": "{{item}} està preparat per ser descarregat",
"download_stated_for_item": "S'ha iniciat la descàrrega per a {{item}}",
"download_failed_for_item": "Ha fallat la descàrrega per a {{item}} - {{error}}",
"download_completed_for_item": "S'ha completat la descàrrega per a {{item}}",
"queued_item_for_optimization": "S'ha afegit {{item}} a la cua per a l'optimització",
"failed_to_start_download_for_item": "No s'ha pogut iniciar la descàrrega per a {{item}}: {{message}}",
"server_responded_with_status_code": "El servidor ha respost amb l'estat {{statusCode}}",
"no_response_received_from_server": "No s'ha rebut resposta del servidor",
"error_setting_up_the_request": "Error en configurar la sol·licitud",
"failed_to_start_download_for_item_unexpected_error": "No s'ha pogut iniciar la descàrrega per a {{item}}: Error inesperat",
"all_files_folders_and_jobs_deleted_successfully": "Tots els fitxers, carpetes i treballs s'han suprimit correctament",
"an_error_occured_while_deleting_files_and_jobs": "S'ha produït un error en suprimir fitxers i treballs",
"go_to_downloads": "Ves a les descàrregues"
}
}
},
"search": {
"search_here": "Cerca aquí...",
"search": "Cerca...",
"x_items": "{{count}} elements",
"library": "Biblioteca",
"discover": "Descobreix",
"no_results": "No hi ha resultats",
"no_results_found_for": "No s'han trobat resultats per a",
"movies": "Pel·lícules",
"series": "Sèries",
"episodes": "Episodis",
"collections": "Col·leccions",
"actors": "Actors",
"request_movies": "Sol·licita pel·lícules",
"request_series": "Sol·licita sèries",
"recently_added": "Afegit recentment",
"recent_requests": "Sol·licituds recents",
"plex_watchlist": "Llista de seguiment de Plex",
"trending": "Tendències",
"popular_movies": "Pel·lícules populars",
"movie_genres": "Gèneres de pel·lícules",
"upcoming_movies": "Pròximes pel·lícules",
"studios": "Estudis",
"popular_tv": "Sèries populars",
"tv_genres": "Gèneres de sèries",
"upcoming_tv": "Pròximes sèries",
"networks": "Cadenes",
"tmdb_movie_keyword": "Paraula clau de pel·lícula TMDB",
"tmdb_movie_genre": "Gènere de pel·lícula TMDB",
"tmdb_tv_keyword": "Paraula clau de sèrie TMDB",
"tmdb_tv_genre": "Gènere de sèrie TMDB",
"tmdb_search": "Cerca TMDB",
"tmdb_studio": "Estudi TMDB",
"tmdb_network": "Cadena TMDB",
"tmdb_movie_streaming_services": "Serveis de reproducció de pel·lícules TMDB",
"tmdb_tv_streaming_services": "Serveis de reproducció de sèries TMDB"
},
"library": {
"no_items_found": "No s'han trobat elements",
"no_results": "No hi ha resultats",
"no_libraries_found": "No s'han trobat biblioteques",
"item_types": {
"movies": "pel·lícules",
"series": "sèries",
"boxsets": "col·leccions",
"items": "elements"
},
"options": {
"display": "Visualització",
"row": "Fila",
"list": "Llista",
"image_style": "Estil d'imatge",
"poster": "Cartell",
"cover": "Coberta",
"show_titles": "Mostrar títols",
"show_stats": "Mostrar estadístiques"
},
"filters": {
"genres": "Gèneres",
"years": "Anys",
"sort_by": "Ordenar per",
"sort_order": "Ordre",
"asc": "Ascendent",
"desc": "Descendent",
"tags": "Etiquetes"
}
},
"favorites": {
"series": "Sèries",
"movies": "Pel·lícules",
"episodes": "Episodis",
"videos": "Vídeos",
"boxsets": "Col·leccions",
"playlists": "Llistes de reproducció",
"noDataTitle": "Encara no hi ha preferits",
"noData": "Marqueu elements com a preferits per veure'ls aparèixer aquí per a un accés ràpid."
},
"custom_links": {
"no_links": "No hi ha enllaços"
},
"player": {
"error": "Error",
"failed_to_get_stream_url": "No s'ha pogut obtenir l'URL del flux",
"an_error_occured_while_playing_the_video": "S'ha produït un error en reproduir el vídeo. Consulteu els registres a la configuració.",
"client_error": "Error del client",
"could_not_create_stream_for_chromecast": "No s'ha pogut crear un flux per a Chromecast",
"message_from_server": "Missatge del servidor: {{message}}",
"video_has_finished_playing": "El vídeo ha acabat de reproduir-se!",
"no_video_source": "No hi ha font de vídeo...",
"next_episode": "Episodi següent",
"refresh_tracks": "Actualitzar pistes",
"subtitle_tracks": "Pistes de subtítols:",
"audio_tracks": "Pistes d'àudio:",
"playback_state": "Estat de reproducció:",
"no_data_available": "No hi ha dades disponibles",
"index": "Índex:",
"continue_watching": "Continuar veient",
"go_back": "Enrere"
},
"item_card": {
"next_up": "A continuació",
"no_items_to_display": "No hi ha elements per mostrar",
"cast_and_crew": "Repartiment i equip",
"series": "Sèries",
"seasons": "Temporades",
"season": "Temporada",
"no_episodes_for_this_season": "No hi ha episodis per a aquesta temporada",
"overview": "Descripció general",
"more_with": "Més amb {{name}}",
"similar_items": "Elements similars",
"no_similar_items_found": "No s'han trobat elements similars",
"video": "Vídeo",
"more_details": "Més detalls",
"quality": "Qualitat",
"audio": "Àudio",
"subtitles": "Subtítols",
"show_more": "Mostra més",
"show_less": "Mostra menys",
"appeared_in": "Va aparèixer a",
"could_not_load_item": "No s'ha pogut carregar l'element",
"none": "Cap",
"download": {
"download_season": "Descarrega la temporada",
"download_series": "Descarrega la sèrie",
"download_episode": "Descarrega l'episodi",
"download_movie": "Descarrega la pel·lícula",
"download_x_item": "Descarrega {{item_count}} elements",
"download_button": "Descarrega",
"using_optimized_server": "Utilitzant servidor optimitzat",
"using_default_method": "Utilitzant mètode per defecte"
}
},
"live_tv": {
"next": "Següent",
"previous": "Anterior",
"live_tv": "TV en directe",
"coming_soon": "Pròximament",
"on_now": "Ara en emissió",
"shows": "Programes",
"movies": "Pel·lícules",
"sports": "Esports",
"for_kids": "Infantil",
"news": "Notícies"
},
"jellyseerr": {
"confirm": "Confirma",
"cancel": "Cancel·la",
"yes": "Sí",
"whats_wrong": "Què està passant?",
"issue_type": "Tipus d'incidència",
"select_an_issue": "Seleccioneu una incidència",
"types": "Tipus",
"describe_the_issue": "(opcional) Descriviu la incidència...",
"submit_button": "Envia",
"report_issue_button": "Informa d'una incidència",
"request_button": "Sol·licita",
"are_you_sure_you_want_to_request_all_seasons": "Esteu segur que voleu sol·licitar totes les temporades?",
"failed_to_login": "No s'ha pogut iniciar sessió",
"cast": "Repartiment",
"details": "Detalls",
"status": "Estat",
"original_title": "Títol original",
"series_type": "Tipus de sèrie",
"release_dates": "Dates d'estrena",
"first_air_date": "Primera data d'emissió",
"next_air_date": "Propera data d'emissió",
"revenue": "Ingressos",
"budget": "Pressupost",
"original_language": "Idioma original",
"production_country": "País de producció",
"studios": "Estudis",
"network": "Cadena",
"currently_streaming_on": "Actualment en reproducció a",
"advanced": "Avançat",
"request_as": "Sol·licita com a",
"tags": "Etiquetes",
"quality_profile": "Perfil de qualitat",
"root_folder": "Carpeta arrel",
"season_all": "Temporada (totes)",
"season_number": "Temporada {{season_number}}",
"number_episodes": "{{episode_number}} episodis",
"born": "Nascut",
"appearances": "Aparicions",
"toasts": {
"jellyseer_does_not_meet_requirements": "El servidor Jellyseerr no compleix els requisits mínims de versió! Actualitzeu-lo almenys a la versió 2.0.0",
"jellyseerr_test_failed": "Ha fallat la prova de Jellyseerr. Torneu-ho a provar.",
"failed_to_test_jellyseerr_server_url": "No s'ha pogut provar l'URL del servidor de Jellyseerr",
"issue_submitted": "Incidència enviada!",
"requested_item": "S'ha sol·licitat {{item}}!",
"you_dont_have_permission_to_request": "No teniu permís per sol·licitar!",
"something_went_wrong_requesting_media": "Alguna cosa ha anat malament en sol·licitar contingut!"
}
},
"tabs": {
"home": "Inici",
"search": "Cercar",
"library": "Biblioteca",
"custom_links": "Enllaços personalitzats",
"favorites": "Preferits"
}
}