diff --git a/docs/translators.md b/docs/translators.md index e5d3afe7..3a546827 100644 --- a/docs/translators.md +++ b/docs/translators.md @@ -35,4 +35,7 @@ If you'd like to add your name to this list, please open a PR adding yourself an - [dawiik](https://github.com/dawiik) ## Romanian -- [ariel-lindemann](https://github.com/ariel-lindemann) \ No newline at end of file +- [ariel-lindemann](https://github.com/ariel-lindemann) + +## Catalan +- [angeldenom](https://github.com/angeldenom) \ No newline at end of file diff --git a/lib/I18n/I18nKeys.h b/lib/I18n/I18nKeys.h index 477ec1d9..61284f95 100644 --- a/lib/I18n/I18nKeys.h +++ b/lib/I18n/I18nKeys.h @@ -14,6 +14,7 @@ extern const char* const STRINGS_PO[]; extern const char* const STRINGS_RU[]; extern const char* const STRINGS_SV[]; extern const char* const STRINGS_RO[]; +extern const char* const STRINGS_CA[]; } // namespace i18n_strings // Language enum @@ -27,6 +28,7 @@ enum class Language : uint8_t { RUSSIAN = 6, SWEDISH = 7, ROMANIAN = 8, + CATALAN = 9, _COUNT }; @@ -378,6 +380,8 @@ inline const char* const* getStringArray(Language lang) { return i18n_strings::STRINGS_SV; case Language::ROMANIAN: return i18n_strings::STRINGS_RO; + case Language::CATALAN: + return i18n_strings::STRINGS_CA; default: return i18n_strings::STRINGS_EN; } diff --git a/lib/I18n/I18nStrings.h b/lib/I18n/I18nStrings.h index 83cffed6..6efacb70 100644 --- a/lib/I18n/I18nStrings.h +++ b/lib/I18n/I18nStrings.h @@ -16,5 +16,6 @@ extern const char* const STRINGS_PO[]; extern const char* const STRINGS_RU[]; extern const char* const STRINGS_SV[]; extern const char* const STRINGS_RO[]; +extern const char* const STRINGS_CA[]; } // namespace i18n_strings diff --git a/lib/I18n/translations/catalan.yaml b/lib/I18n/translations/catalan.yaml new file mode 100644 index 00000000..e45374cd --- /dev/null +++ b/lib/I18n/translations/catalan.yaml @@ -0,0 +1,319 @@ +_language_name: "Català" +_language_code: "CATALAN" +_order: "9" + +STR_CROSSPOINT: "CrossPoint" +STR_BOOTING: "ARRENCANT" +STR_SLEEPING: "ENTRANT EN REPÒS" +STR_ENTERING_SLEEP: "Entrant en repòs" +STR_BROWSE_FILES: "Explora fitxers" +STR_FILE_TRANSFER: "Transferència" +STR_SETTINGS_TITLE: "Configuració" +STR_CALIBRE_LIBRARY: "Biblioteca del Calibre" +STR_CONTINUE_READING: "Continua llegint" +STR_NO_OPEN_BOOK: "Cap llibre obert" +STR_START_READING: "Inicia la lectura a continuació" +STR_BOOKS: "Llibres" +STR_NO_BOOKS_FOUND: "No s'ha trobat cap llibre" +STR_SELECT_CHAPTER: "Selecciona el capítol" +STR_NO_CHAPTERS: "Sense capítols" +STR_END_OF_BOOK: "Final del llibre" +STR_EMPTY_CHAPTER: "Capítol buit" +STR_INDEXING: "S'està indexant" +STR_MEMORY_ERROR: "Error de memòria" +STR_PAGE_LOAD_ERROR: "Error en carregar la pàgina" +STR_EMPTY_FILE: "Fitxer buit" +STR_OUT_OF_BOUNDS: "Fora de límits" +STR_LOADING: "S'està carregant..." +STR_LOADING_POPUP: "S'està carregant" +STR_LOAD_XTC_FAILED: "No s'ha pogut carregar l'XTC" +STR_LOAD_TXT_FAILED: "No s'ha pogut carregar el TXT" +STR_LOAD_EPUB_FAILED: "No s'ha pogut carregar l'EPUB" +STR_SD_CARD_ERROR: "Error de targeta SD" +STR_WIFI_NETWORKS: "Xarxes WiFi" +STR_NO_NETWORKS: "No s'han trobat xarxes" +STR_NETWORKS_FOUND: "%zu xarxes trobades" +STR_SCANNING: "S'està escanejant..." +STR_CONNECTING: "S'està connectant..." +STR_CONNECTED: "S'ha connectat!" +STR_CONNECTION_FAILED: "Error de connexió" +STR_CONNECTION_TIMEOUT: "S'ha esgotat el temps de connexió" +STR_FORGET_NETWORK: "Voleu oblidar aquesta xarxa?" +STR_SAVE_PASSWORD: "Voleu desar la contrasenya per a la propera vegada?" +STR_REMOVE_PASSWORD: "Voleu suprimir la contrasenya desada?" +STR_PRESS_OK_SCAN: "Premeu OK per tornar a escanejar" +STR_PRESS_ANY_CONTINUE: "Premeu qualsevol botó per continuar" +STR_SELECT_HINT: "ESQUERRA/DRETA: Selecciona | OK: Confirma" +STR_HOW_CONNECT: "Com voleu connectar-vos?" +STR_JOIN_NETWORK: "Uneix-te a una xarxa" +STR_CREATE_HOTSPOT: "Crea un punt d'accés" +STR_JOIN_DESC: "Connecta't a una xarxa WiFi existent" +STR_HOTSPOT_DESC: "Crea una xarxa WiFi per unir-s'hi" +STR_STARTING_HOTSPOT: "S'està iniciant el punt d'accés..." +STR_HOTSPOT_MODE: "Mode de punt d'accés" +STR_CONNECT_WIFI_HINT: "Connecteu el dispositiu a aquesta xarxa WiFi" +STR_OPEN_URL_HINT: "Obriu aquest URL al navegador" +STR_OR_HTTP_PREFIX: "o http://" +STR_SCAN_QR_HINT: "o escanegeu el codi QR amb el telèfon:" +STR_CALIBRE_WIRELESS: "Calibre sense fils" +STR_CALIBRE_WEB_URL: "URL web del Calibre" +STR_CONNECT_WIRELESS: "Connecta com a dispositiu sense fils" +STR_NETWORK_LEGEND: "* = Encriptat | + = Desat" +STR_MAC_ADDRESS: "Adreça MAC:" +STR_CHECKING_WIFI: "S'està comprovant el WiFi..." +STR_ENTER_WIFI_PASSWORD: "Introduïu la contrasenya WiFi" +STR_ENTER_TEXT: "Introduïu el text" +STR_TO_PREFIX: "a " +STR_CALIBRE_DISCOVERING: "S'està descobrint el Calibre..." +STR_CALIBRE_CONNECTING_TO: "S'està connectant a " +STR_CALIBRE_CONNECTED_TO: "S'ha connectat a " +STR_CALIBRE_WAITING_COMMANDS: "S'estan esperant les ordres..." +STR_CONNECTION_FAILED_RETRYING: "(La connexió ha fallat, s'està tornant a intentar)" +STR_CALIBRE_DISCONNECTED: "Calibre desconnectat" +STR_CALIBRE_WAITING_TRANSFER: "S'està esperant la transferència..." +STR_CALIBRE_TRANSFER_HINT: "Si la transferència falla, activeu\\n'Ignora l'espai lliure' a la configuració del\\nconnector SmartDevice a Calibre." +STR_CALIBRE_RECEIVING: "S'està rebent: " +STR_CALIBRE_RECEIVED: "S'ha rebut: " +STR_CALIBRE_WAITING_MORE: "S'està esperant més..." +STR_CALIBRE_FAILED_CREATE_FILE: "No s'ha pogut crear el fitxer" +STR_CALIBRE_PASSWORD_REQUIRED: "Contrasenya requerida" +STR_CALIBRE_TRANSFER_INTERRUPTED: "Transferència interrompuda" +STR_CALIBRE_INSTRUCTION_1: "1) Instal·leu el connector CrossPoint Reader" +STR_CALIBRE_INSTRUCTION_2: "2) Estigueu a la mateixa xarxa WiFi" +STR_CALIBRE_INSTRUCTION_3: "3) A Calibre: \"Envia a un dispositiu\"" +STR_CALIBRE_INSTRUCTION_4: "\"Mantingueu aquesta pantalla oberta mentre s'envia\"" +STR_CAT_DISPLAY: "Visualització" +STR_CAT_READER: "Lector" +STR_CAT_CONTROLS: "Controls" +STR_CAT_SYSTEM: "Sistema" +STR_SLEEP_SCREEN: "Pantalla de repòs" +STR_SLEEP_COVER_MODE: "Mode de pantalla de repòs" +STR_STATUS_BAR: "Barra d'estat" +STR_HIDE_BATTERY: "Oculta el % de bateria" +STR_EXTRA_SPACING: "Espaiat de paràgraf extra" +STR_TEXT_AA: "Antialiàsing del text" +STR_SHORT_PWR_BTN: "Clic curt del botó d'engegada" +STR_ORIENTATION: "Orientació de lectura" +STR_FRONT_BTN_LAYOUT: "Disposició dels botons frontals" +STR_SIDE_BTN_LAYOUT: "Disposició botons laterals" +STR_LONG_PRESS_SKIP: "Pressió llarga omet el capítol" +STR_FONT_FAMILY: "Tipus de lletra" +STR_EXT_READER_FONT: "Tipus de lletra extern" +STR_EXT_CHINESE_FONT: "Tipus de lletra" +STR_EXT_UI_FONT: "Tipus de lletra (UI)" +STR_FONT_SIZE: "Mida de la lletra (UI)" +STR_LINE_SPACING: "Interlineat del lector" +STR_ASCII_LETTER_SPACING: "Espaiat de la lletra ASCII" +STR_ASCII_DIGIT_SPACING: "Espaiat del dígit ASCII" +STR_CJK_SPACING: "Espaiat CJK" +STR_COLOR_MODE: "Mode de color" +STR_SCREEN_MARGIN: "Marge de pantalla del lector" +STR_PARA_ALIGNMENT: "Alineació de paràgrafs del lector" +STR_HYPHENATION: "Partició de mots" +STR_TIME_TO_SLEEP: "Temps per entrar en repòs" +STR_REFRESH_FREQ: "Freqüència de refresc" +STR_CALIBRE_SETTINGS: "Configuració del Calibre" +STR_KOREADER_SYNC: "Sincronització del KOReader" +STR_CHECK_UPDATES: "Comprova si hi ha actualitzacions" +STR_LANGUAGE: "Idioma" +STR_SELECT_WALLPAPER: "Selecciona un fons de pantalla" +STR_CLEAR_READING_CACHE: "Esborra la memòria cau de lectura" +STR_CALIBRE: "Calibre" +STR_USERNAME: "Nom d'usuari" +STR_PASSWORD: "Contrasenya" +STR_SYNC_SERVER_URL: "URL del servidor de sincronització" +STR_DOCUMENT_MATCHING: "Coincidència de documents" +STR_AUTHENTICATE: "Autentica" +STR_KOREADER_USERNAME: "Nom d'usuari del KOReader" +STR_KOREADER_PASSWORD: "Contrasenya del KOReader" +STR_FILENAME: "Nom de fitxer" +STR_BINARY: "Binari" +STR_SET_CREDENTIALS_FIRST: "Estableix les credencials primer" +STR_WIFI_CONN_FAILED: "Connexió WiFi fallida" +STR_AUTHENTICATING: "S'està autenticant..." +STR_AUTH_SUCCESS: "Autenticació correcta!" +STR_KOREADER_AUTH: "Autenticació del KOReader" +STR_SYNC_READY: "La sincronització del KOReader està preparada per utilitzar-se" +STR_AUTH_FAILED: "Autenticació fallida" +STR_DONE: "Fet" +STR_CLEAR_CACHE_WARNING_1: "Això esborrarà totes les dades de lectura de la memòria cau." +STR_CLEAR_CACHE_WARNING_2: "Es perdrà tot el progrés de lectura!" +STR_CLEAR_CACHE_WARNING_3: "Els llibres hauran de ser reindexats" +STR_CLEAR_CACHE_WARNING_4: "quan s'obrin de nou." +STR_CLEARING_CACHE: "S'està esborrant la memòria cau..." +STR_CACHE_CLEARED: "Memòria cau esborrada" +STR_ITEMS_REMOVED: "elements suprimits" +STR_FAILED_LOWER: "ha fallat" +STR_CLEAR_CACHE_FAILED: "No s'ha pogut esborrar la memòria cau" +STR_CHECK_SERIAL_OUTPUT: "Comprova la sortida en sèrie per obtenir detalls" +STR_DARK: "Fosc" +STR_LIGHT: "Clar" +STR_CUSTOM: "Personalitzat" +STR_COVER: "Portada" +STR_NONE_OPT: "Cap" +STR_FIT: "Ajustar" +STR_CROP: "Retallar" +STR_NO_PROGRESS: "Sense progrés" +STR_FULL_OPT: "Completa" +STR_NEVER: "Mai" +STR_IN_READER: "Al lector" +STR_ALWAYS: "Sempre" +STR_IGNORE: "Ignora" +STR_SLEEP: "Dormir" +STR_PAGE_TURN: "Canvi de pàgina" +STR_PORTRAIT: "Vertical" +STR_LANDSCAPE_CW: "Horitzontal horari" +STR_INVERTED: "Invertit" +STR_LANDSCAPE_CCW: "Horitzontal antihorari" +STR_FRONT_LAYOUT_BCLR: "Enr, Cnfrm, Esq, Dreta" +STR_FRONT_LAYOUT_LRBC: "Esq, Dreta, Enr, Cnfrm" +STR_FRONT_LAYOUT_LBCR: "Esq, Enr, Cnfrm, Dreta" +STR_PREV_NEXT: "Anterior/Següent" +STR_NEXT_PREV: "Següent/Anterior" +STR_BOOKERLY: "Bookerly" +STR_NOTO_SANS: "Noto Sans" +STR_OPEN_DYSLEXIC: "Open Dyslexic" +STR_SMALL: "Petita" +STR_MEDIUM: "Mitjana" +STR_LARGE: "Gran" +STR_X_LARGE: "Molt gran" +STR_TIGHT: "Estret" +STR_NORMAL: "Normal" +STR_WIDE: "Ample" +STR_JUSTIFY: "Justificat" +STR_ALIGN_LEFT: "Esquerra" +STR_CENTER: "Centre" +STR_ALIGN_RIGHT: "Dreta" +STR_MIN_1: "1 min" +STR_MIN_5: "5 min" +STR_MIN_10: "10 min" +STR_MIN_15: "15 min" +STR_MIN_30: "30 min" +STR_PAGES_1: "1 pàgina" +STR_PAGES_5: "5 pàgines" +STR_PAGES_10: "10 pàgines" +STR_PAGES_15: "15 pàgines" +STR_PAGES_30: "30 pàgines" +STR_UPDATE: "Actualitza" +STR_CHECKING_UPDATE: "S'està comprovant si hi ha actualitzacions..." +STR_NEW_UPDATE: "Nova actualització disponible!" +STR_CURRENT_VERSION: "Versió actual: " +STR_NEW_VERSION: "Nova versió: " +STR_UPDATING: "S'està actualitzant..." +STR_NO_UPDATE: "No hi ha actualitzacions disponibles" +STR_UPDATE_FAILED: "Ha fallat l'actualització" +STR_UPDATE_COMPLETE: "Actualització completada" +STR_POWER_ON_HINT: "Premeu i manteniu premut el botó d'encesa per tornar a engegar" +STR_EXTERNAL_FONT: "Tipus de lletra extern" +STR_BUILTIN_DISABLED: "Integrat (desactivat)" +STR_NO_ENTRIES: "No s'ha trobat cap entrada" +STR_DOWNLOADING: "S'està baixant..." +STR_DOWNLOAD_FAILED: "Ha fallat la baixada" +STR_ERROR_MSG: "Error:" +STR_UNNAMED: "Sense nom" +STR_NO_SERVER_URL: "No s'ha configurat cap URL de servidor" +STR_FETCH_FEED_FAILED: "Ha fallat l'obtenció del feed" +STR_PARSE_FEED_FAILED: "Ha fallat l'anàlisi del feed" +STR_NETWORK_PREFIX: "Xarxa: " +STR_IP_ADDRESS_PREFIX: "Adreça IP: " +STR_SCAN_QR_WIFI_HINT: "o escanegeu el codi QR amb el telèfon per connectar el WiFi." +STR_ERROR_GENERAL_FAILURE: "Error: Fallada general" +STR_ERROR_NETWORK_NOT_FOUND: "Error: No s'ha trobat la xarxa" +STR_ERROR_CONNECTION_TIMEOUT: "Error: temps de connexió esgotat" +STR_SD_CARD: "Targeta SD" +STR_BACK: "« Enrere" +STR_EXIT: "« Surt" +STR_HOME: "« Inici" +STR_SAVE: "« Desa" +STR_SELECT: "Selecciona" +STR_TOGGLE: "Canvia" +STR_CONFIRM: "Confirma" +STR_CANCEL: "Cancel·la" +STR_CONNECT: "Connecta" +STR_OPEN: "Obre" +STR_DOWNLOAD: "Descarrega" +STR_RETRY: "Nou intent" +STR_YES: "Sí" +STR_NO: "No" +STR_STATE_ON: "ON" +STR_STATE_OFF: "OFF" +STR_SET: "Establert" +STR_NOT_SET: "No establert" +STR_DIR_LEFT: "Esquerra" +STR_DIR_RIGHT: "Dreta" +STR_DIR_UP: "Amunt" +STR_DIR_DOWN: "Avall" +STR_CAPS_ON: "MAJS" +STR_CAPS_OFF: "majs" +STR_OK_BUTTON: "OK" +STR_ON_MARKER: "[ON]" +STR_SLEEP_COVER_FILTER: "Filtre de pantalla de repòs" +STR_FILTER_CONTRAST: "Contrast" +STR_STATUS_BAR_FULL_PERCENT: "Amb percentatge" +STR_STATUS_BAR_FULL_BOOK: "Amb progrés llibre" +STR_STATUS_BAR_BOOK_ONLY: "Només progrés llibre" +STR_STATUS_BAR_FULL_CHAPTER: "Amb progrés capítol" +STR_UI_THEME: "Tema de la interfície" +STR_THEME_CLASSIC: "Clàssic" +STR_THEME_LYRA: "Lyra" +STR_THEME_LYRA_EXTENDED: "Lyra Ampliat" +STR_SUNLIGHT_FADING_FIX: "Correcció de l'esvaïment pel sol" +STR_REMAP_FRONT_BUTTONS: "Reassigna els botons frontals" +STR_OPDS_BROWSER: "Navegador OPDS" +STR_COVER_CUSTOM: "Portada + Personalitzat" +STR_RECENTS: "Recents" +STR_MENU_RECENT_BOOKS: "Llibres recents" +STR_NO_RECENT_BOOKS: "No hi ha llibres recents" +STR_CALIBRE_DESC: "Usa les transferències sense fils de Calibre" +STR_FORGET_AND_REMOVE: "Voleu suprimir la contrasenya desada?" +STR_FORGET_BUTTON: "Oblida" +STR_CALIBRE_STARTING: "S'està iniciant el Calibre..." +STR_CALIBRE_SETUP: "Configura" +STR_CALIBRE_STATUS: "Estat" +STR_CLEAR_BUTTON: "Esborra" +STR_DEFAULT_VALUE: "Per defecte" +STR_REMAP_PROMPT: "Premeu un botó frontal per a cada rol" +STR_UNASSIGNED: "No assignat" +STR_ALREADY_ASSIGNED: "Ja assignat" +STR_REMAP_RESET_HINT: "Botó lateral Amunt: Restableix la disposició per defecte" +STR_REMAP_CANCEL_HINT: "Botó lateral Avall: Cancel·la la reassignació" +STR_HW_BACK_LABEL: "Enrere (1r botó)" +STR_HW_CONFIRM_LABEL: "Confirma (2n botó)" +STR_HW_LEFT_LABEL: "Esquerra (3r botó)" +STR_HW_RIGHT_LABEL: "Dreta (4t botó)" +STR_GO_TO_PERCENT: "Ves al %" +STR_GO_HOME_BUTTON: "Ves a l'inici" +STR_SYNC_PROGRESS: "Sincronitza el progrés" +STR_DELETE_CACHE: "Esborra la memòria cau del llibre" +STR_CHAPTER_PREFIX: "Capítol: " +STR_PAGES_SEPARATOR: " pàgines | " +STR_BOOK_PREFIX: "Llibre: " +STR_KBD_SHIFT: "maj" +STR_KBD_SHIFT_CAPS: "MAJ" +STR_KBD_LOCK: "BLOCA" +STR_CALIBRE_URL_HINT: "Per al Calibre, afegiu /opds a la URL" +STR_PERCENT_STEP_HINT: "Esquerra/Dreta: 1% Amunt/Avall: 10%" +STR_SYNCING_TIME: "S'està sincronitzant el temps..." +STR_CALC_HASH: "S'està calculant el hash del document..." +STR_HASH_FAILED: "No s'ha pogut calcular el hash del document" +STR_FETCH_PROGRESS: "S'està obtenint el progrés remot..." +STR_UPLOAD_PROGRESS: "S'està pujant el progrés..." +STR_NO_CREDENTIALS_MSG: "No s'han configurat credencials" +STR_KOREADER_SETUP_HINT: "Configureu el compte de KOReader a la configuració" +STR_PROGRESS_FOUND: "S'ha trobat progrés!" +STR_REMOTE_LABEL: "Remot:" +STR_LOCAL_LABEL: "Local:" +STR_PAGE_OVERALL_FORMAT: "Pàgina %d, %.2f%% total" +STR_PAGE_TOTAL_OVERALL_FORMAT: "Pàgina %d/%d, %.2f%% total" +STR_DEVICE_FROM_FORMAT: " De: %s" +STR_APPLY_REMOTE: "Aplica el progrés remot" +STR_UPLOAD_LOCAL: "Puja el progrés local" +STR_NO_REMOTE_MSG: "No s'ha trobat progrés remot" +STR_UPLOAD_PROMPT: "Voleu pujar la posició actual?" +STR_UPLOAD_SUCCESS: "Progrés pujat!" +STR_SYNC_FAILED_MSG: "Sincronització fallida" +STR_SECTION_PREFIX: "Secció " +STR_UPLOAD: "Puja" +STR_BOOK_S_STYLE: "Estil del llibre" +STR_EMBEDDED_STYLE: "Estil incrustat" +STR_OPDS_SERVER_URL: "URL del servidor OPDS"