feat: añade el idioma danés (da) #11

Closed
HBB wants to merge 0 commits from HBB:feat/danish-translation into main
First-time contributor

Traducción completa al danés (values-da), con todas las claves traducibles incluidas las notas de versión, más la entrada "Dansk" en el selector de idioma de Ajustes.

Aprovecho para corregir locales_config.xml: no incluía ca, gl, fi ni uk aunque sí tenían traducción y aparecían en el selector de la app, así que esos idiomas no se ofrecían en los ajustes de idioma por aplicación de Android 13+. Se añaden junto con da.

Probado en un dispositivo real (Android, sistema en da-DK): la interfaz aparece correctamente en danés.

⚠️ Esta rama parte de fix/i18n-hardcoded-strings, no de main. La traducción danesa cubre también las 17 claves que añade esa PR, y sin ella lint las marcaría como ExtraTranslation. Conviene fusionar antes esa PR; después este diff se reduce a los tres archivos del danés (values-da/strings.xml, locales_config.xml, SettingsScreen.kt).

Traducción completa al danés (`values-da`), con todas las claves traducibles incluidas las notas de versión, más la entrada "Dansk" en el selector de idioma de Ajustes. Aprovecho para corregir `locales_config.xml`: no incluía `ca`, `gl`, `fi` ni `uk` aunque sí tenían traducción y aparecían en el selector de la app, así que esos idiomas no se ofrecían en los ajustes de idioma por aplicación de Android 13+. Se añaden junto con `da`. Probado en un dispositivo real (Android, sistema en da-DK): la interfaz aparece correctamente en danés. ⚠️ **Esta rama parte de `fix/i18n-hardcoded-strings`, no de `main`.** La traducción danesa cubre también las 17 claves que añade esa PR, y sin ella lint las marcaría como `ExtraTranslation`. Conviene fusionar antes esa PR; después este diff se reduce a los tres archivos del danés (`values-da/strings.xml`, `locales_config.xml`, `SettingsScreen.kt`).
Varias cadenas visibles estaban en español y fijas en el código Kotlin (o en
español dentro del strings.xml por defecto, que es el que ven los usuarios en
inglés y en cualquier idioma sin traducir). Se mueven todas a recursos, con el
inglés como idioma por defecto y el español en values-es, de modo que la app
pueda traducirse a más idiomas y el inglés y el español queden correctos.

Cambios:
- strings.xml (por defecto): 7 cadenas que estaban en español pasan a inglés
  (error_missing_session_data, error_loading_data, text_no_content, text_see_more,
  activity_type_cita, quotation_page_format, quotation_quote_prefix) y se añaden
  sus traducciones al español en values-es (antes solo existían en el archivo por
  defecto, en español).
- Se añaden nuevas claves (inglés + español) para los literales que estaban fijos
  en Kotlin: BookDetailsDialog, HomeScreen y TimelineRepository.
- HtmlUtils.formatRelativeDate ahora usa android.text.format.DateUtils, que
  localiza el tiempo relativo automáticamente en todos los idiomas, en lugar del
  texto español ("hace X minutos", "ayer"...) y el formato de fecha fijado a es-ES.
- TimelineRepository recibe un Context para poder resolver los recursos; se
  actualizan sus dos puntos de construcción (Hilt y BookDetailsDialog).

No se tocan las heurísticas del scraper que comparan el HTML en español del
servidor (no son texto de interfaz).
Al externalizar los textos fijos en código (31fcd3e) solo se añadieron las
claves nuevas al idioma por defecto (inglés) y a values-es, de modo que los
otros 14 idiomas recaían en el inglés. Además quedaban literales en español.

Cambios:
- Se añaden las 17 claves nuevas traducidas a ca, cs, de, el, fi, fr, gl, it,
  nl, pl, pt, ro, sv y uk. Todos los idiomas pasan a 249 cadenas.
- SettingsScreen: la entrada "Sistema" del selector de idioma estaba fija en
  español (se veía "Sistema" también en inglés); ahora usa la clave ya
  traducida settings_theme_system.
- strings.xml (por defecto): text_someone ("Alguien"), text_no_name
  ("Sin nombre") y share_on_bookwyrm (" en BookWyrm:") estaban en español;
  pasan a inglés y sus versiones en español se añaden a values-es.
Al pasar text_no_content al inglés, la comparación de HomeScreen
(item.content != getString(text_no_content)) dejó de coincidir con el literal
español que ponía el scraper, y el marcador "Sin contenido" se mostraba tal
cual en la línea de tiempo, en todos los idiomas.

En vez de traducir el marcador (que volvería a romper la comparación), el
scraper deja el campo vacío y la interfaz decide qué mostrar:
- BookWyrmScraper: content y actorName conservan el valor vacío; el descarte
  de ítems vacíos se hace ahora con isBlank() en lugar de comparar textos.
- HomeScreen: las comprobaciones contra text_no_content sobran (basta
  isNotBlank), y el detalle muestra text_no_content si el contenido va vacío.
Los nombres de actor vacíos ya recaían en text_someone / activity_unknown_user.
- Nueva traducción completa al danés (values-da), con todas las claves
  traducibles, incluidas las notas de versión.
- Se añade "da" al selector de idioma de Ajustes.
- locales_config.xml no incluía ca, gl, fi ni uk, aunque sí tenían traducción
  y aparecían en el selector de la app: no se ofrecían en los ajustes de
  idioma por aplicación de Android 13+. Se añaden junto con da.
Owner

Incluido, Gracias

Incluido, Gracias
ferlagod closed this pull request 2026-07-22 12:59:31 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ferlagod/rocinante_android!11
No description provided.