Translations update from Hosted Weblate - #289
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe iOS Spanish localization resources add comprehensive es-419 coverage and refine es-ES permission, headset, accessibility, tutorial, FAQ, and help wording. ChangesSpanish localization updates
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/ios/GuideDogs/Assets/Localization/es-US.lproj/Localizable.strings (1)
1-2: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRestore the missing
es-UStranslations
apps/ios/GuideDogs/Assets/Localization/es-US.lproj/Localizable.stringsis empty, so every lookup in this locale falls back to English. Add the translated entries or remove the locale from the bundle.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/ios/GuideDogs/Assets/Localization/es-US.lproj/Localizable.strings` around lines 1 - 2, Restore the missing Spanish (US) localization entries in Localizable.strings so lookups use translated values instead of falling back to English, or remove the es-US locale from the bundle if translations are unavailable.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@apps/ios/GuideDogs/Assets/Localization/es-US.lproj/Localizable.strings`:
- Around line 1-2: Restore the missing Spanish (US) localization entries in
Localizable.strings so lookups use translated values instead of falling back to
English, or remove the es-US locale from the bundle if translations are
unavailable.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: c24efefb-061e-4d83-a71b-d15026b3ff85
📒 Files selected for processing (1)
apps/ios/GuideDogs/Assets/Localization/es-US.lproj/Localizable.strings
aaa21cf to
7bc05dc
Compare
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings`:
- Line 142: Remove the unintended escaped quotation mark from the value of
voice.voice_cell.selected.acc_hint, leaving the localized hint text ending with
its period before the closing string delimiter.
- Line 741: Update the localized value for
devices.forget_headset.prompt.explanation so “Más adelante” uses lowercase after
the sentence break, preserving the rest of the translation unchanged.
- Line 277: Update the localized value for preview.tutorial.content.4 to include
the opening Spanish exclamation mark while preserving the existing closing
punctuation and wording.
- Line 696: Update the localized value for “bar_icon.external_GPS.acc_label” to
use the masculine agreement, “GPS externo conectado,” instead of “GPS externa
conectada.”
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 91957d2d-d960-4be3-bc9b-2eadb83fbf45
📒 Files selected for processing (1)
apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings
| "voice.voice_rate_test" = "¿Cómo suena esto?"; | ||
| "voice.title.voice_name_and_locale" = "%1$@, %2$@."; | ||
| "voice.title.voice_name_and_locale_selected" = "%1$@, %2$@, seleccionados."; | ||
| "voice.voice_cell.selected.acc_hint" = "Esta voz está seleccionada actualmente. Desliza rápidamente hacia arriba o hacia abajo para obtener una vista previa.\""; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Remove the unintended trailing quotation mark.
The escaped quote before the closing delimiter becomes visible text, so VoiceOver will announce or display an extra " at the end of this hint.
Proposed fix
- "voice.voice_cell.selected.acc_hint" = "Esta voz está seleccionada actualmente. Desliza rápidamente hacia arriba o hacia abajo para obtener una vista previa.\"";
+ "voice.voice_cell.selected.acc_hint" = "Esta voz está seleccionada actualmente. Desliza rápidamente hacia arriba o hacia abajo para obtener una vista previa.";📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "voice.voice_cell.selected.acc_hint" = "Esta voz está seleccionada actualmente. Desliza rápidamente hacia arriba o hacia abajo para obtener una vista previa.\""; | |
| "voice.voice_cell.selected.acc_hint" = "Esta voz está seleccionada actualmente. Desliza rápidamente hacia arriba o hacia abajo para obtener una vista previa."; |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 142, Remove the unintended escaped quotation mark from the value of
voice.voice_cell.selected.acc_hint, leaving the localized hint text ending with
its period before the closing string delimiter.
| "preview.tutorial.content.2" = "Has llegado a la calle cerca de la ubicación que has seleccionado. Usando el teléfono como puntero, gira lentamente e irás oyendo avisos con los nombres de las calles conforme gires. Cuando estés mirando a la calle que deseas recorrer, pulsa en \"Ir\" y avanzarás al siguiente cruce."; | ||
| "preview.tutorial.title.3" = "Continuando tu exploración"; | ||
| "preview.tutorial.content.3" = "En cada cruce, puedes volver a usar el teléfono para elegir qué carretera recorrer, o puedes explorar tu entorno inmediato con los botones habituales de Soundscape de la parte inferior de la pantalla. Puedes pulsar en \"Explorar cerca\" para iniciar la señal de audio en cualquier punto de interés, cambiar tu ubicación o simplemente explorar el área con mayor detalle."; | ||
| "preview.tutorial.content.4" = "Disfruta y diviértete!"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Add the opening Spanish exclamation mark.
- "preview.tutorial.content.4" = "Disfruta y diviértete!";
+ "preview.tutorial.content.4" = "¡Disfruta y diviértete!";📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "preview.tutorial.content.4" = "Disfruta y diviértete!"; | |
| "preview.tutorial.content.4" = "¡Disfruta y diviértete!"; |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 277, Update the localized value for preview.tutorial.content.4 to include
the opening Spanish exclamation mark while preserving the existing closing
punctuation and wording.
| "menu.rate" = "Calificar"; | ||
| "menu.learning_resources" = "Blog de Soundscape"; | ||
| "ui.back_button.title" = "Atrás"; | ||
| "bar_icon.external_GPS.acc_label" = "Icono de GPS externa conectada"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the gender agreement in the GPS accessibility label.
GPS is masculine here, so the current text should be “GPS externo conectado.”
- "bar_icon.external_GPS.acc_label" = "Icono de GPS externa conectada";
+ "bar_icon.external_GPS.acc_label" = "Icono de GPS externo conectado";📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "bar_icon.external_GPS.acc_label" = "Icono de GPS externa conectada"; | |
| "bar_icon.external_GPS.acc_label" = "Icono de GPS externo conectado"; |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 696, Update the localized value for “bar_icon.external_GPS.acc_label” to
use the masculine agreement, “GPS externo conectado,” instead of “GPS externa
conectada.”
| "devices.test_headset.continue" = "Volver a Soundscape"; | ||
| "devices.test_headset.callout" = "Hemos colocado una señal de audio a tu derecha. Escucha dónde se encuentra y gira la cabeza hacia ella. Observa cómo puedes hacer esto incluso con el teléfono en el bolsillo."; | ||
| "devices.forget_headset.prompt.forget" = "¿Seguro que deseas olvidar estos audífonos?"; | ||
| "devices.forget_headset.prompt.explanation" = "Esto desconectará los audífonos de Soundscape. Puedes volver a conectarte a Soundscape Más adelante desde aquí."; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use lowercase after the sentence break.
“Más adelante” is incorrectly capitalized mid-sentence.
- "devices.forget_headset.prompt.explanation" = "Esto desconectará los audífonos de Soundscape. Puedes volver a conectarte a Soundscape Más adelante desde aquí.";
+ "devices.forget_headset.prompt.explanation" = "Esto desconectará los audífonos de Soundscape. Puedes volver a conectarte a Soundscape más adelante desde aquí.";📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "devices.forget_headset.prompt.explanation" = "Esto desconectará los audífonos de Soundscape. Puedes volver a conectarte a Soundscape Más adelante desde aquí."; | |
| "devices.forget_headset.prompt.explanation" = "Esto desconectará los audífonos de Soundscape. Puedes volver a conectarte a Soundscape más adelante desde aquí."; |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 741, Update the localized value for
devices.forget_headset.prompt.explanation so “Más adelante” uses lowercase after
the sentence break, preserving the rest of the translation unchanged.
|
@JJGatchalian Are you intending to translate all strings for both es-419 and es-ES, or should we add some fallback logic to use es-ES for missing strings. by default they would fallback to English. |
7bc05dc to
13670c0
Compare
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings`:
- Line 774: Update the localized value for
behavior.experiences.no_events.caption.2 to replace email@address.com with the
intended production support address, preserving the surrounding Spanish text and
punctuation.
- Line 487: Update the localized strings identified by
search.button.nearby.accessibility_hint and the two additional matching entries
to use lowercase mid-sentence wording: “Pulsa dos veces”, “el tutorial
comenzará”, and “Dicho esto” as applicable, without changing surrounding
translations.
- Line 822: Update the Spanish localization strings identified by
tutorial.markers.text.EditMarker and the corresponding entries at lines 924 and
998: change “Oirás como” to “Oirás cómo,” remove “sobre” so the text says
“Escucha un ejemplo de lo que Soundscape podría avisarte...,” and replace “se
las necesitan calibrar” with the grammatically correct “necesitan calibrarse” or
“necesitas calibrarlas.”
- Line 1185: Update the localized value for faq.tip.turning_off_auto_callouts to
include a space between “sección” and the quoted “Avisos” section name,
preserving the rest of the Spanish translation unchanged.
- Line 977: Update the localized value for help.text.remote_control.how to close
the opening paragraph before the subsequent paragraph begins, replacing the
initial “:<p>” transition with a properly closed paragraph followed by the next
paragraph. Preserve the existing Spanish text and all other markup unchanged.
In `@apps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings`:
- Line 3297: Update faq.personalize_experience.answer to qualify the
voice-settings path by iOS version, using “Lectura y voz” for iOS 26 and later
and “Contenido leído” for earlier versions; remove the unqualified combined
label while keeping the existing navigation guidance intact.
- Around line 270-274: Update the Spanish text values for
general.error.location_services_enable_instructions.2,
general.error.location_services_enable_instructions.3, and
device_motion.enable.instructions: replace “Presiona” with Spain-specific
“Pulsa” wording and use the exact button labels “Atrás” and “Abrir Ajustes”
where applicable, preserving the existing instruction order and content.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d8f66cef-96d6-4ee1-99b2-0500f3ec4a56
📒 Files selected for processing (2)
apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.stringsapps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings
| "search.nearby.screen_title" = "Lugares cercanos"; | ||
| "search.view_markers" = "Marcadores y rutas"; | ||
| "search.button.markers.accessibility_hint" = "Pulsa dos veces para seleccionar o editar tus marcadores y rutas guardados"; | ||
| "search.button.nearby.accessibility_hint" = "Pulsa Dos Veces para explorar restaurantes cercanos, paradas y más"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Correct mid-sentence capitalization.
Use lowercase in Pulsa dos veces, el tutorial comenzará, and Dicho esto.
Also applies to: 828-828, 1164-1164
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 487, Update the localized strings identified by
search.button.nearby.accessibility_hint and the two additional matching entries
to use lowercase mid-sentence wording: “Pulsa dos veces”, “el tutorial
comenzará”, and “Dicho esto” as applicable, without changing surrounding
translations.
| "behavior.experiences.delete.confirmation" = "Actividad eliminada"; | ||
| "behavior.experiences.no_events.title" = "Actividades recreativas de Soundscape (beta)"; | ||
| "behavior.experiences.no_events.caption.1" = "Las organizaciones sin ánimo de lucro, las empresas y las administraciones públicas locales pueden crear sus propias experiencias basadas en Soundscape, como programas y eventos deportivos adaptables, actividades de búsqueda del tesoro, rutas organizadas, guías de la ciudad organizadas, etc."; | ||
| "behavior.experiences.no_events.caption.2" = "Para obtener más información o expresar el interés de tu organización en la creación de experiencias personalizadas de Soundscape, escríbenos a email@address.com"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Replace the placeholder contact address.
email@address.com is not a usable production address, so users cannot contact the organization as instructed. Replace it with the intended support address before release.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 774, Update the localized value for
behavior.experiences.no_events.caption.2 to replace email@address.com with the
intended production support address, preserving the surrounding Spanish text and
punctuation.
| "tutorial.markers.your_marker" = "tu marcador"; | ||
| "tutorial.markers.mark_location.acc_hint" = "Pulsa dos veces para marcar esta ubicación"; | ||
| "tutorial.markers.text.Intro" = "Con Soundscape, puedes marcar cualquier cosa de tu alrededor que te interese. Por ejemplo, puedes marcar tu casa, tu parada de autobús o incluso el lugar donde te encuentras.\nIntentémoslo. Presiona el botón Agregar marcador a continuación y selecciona, como ejemplo, una dirección o un lugar cercano para marcar."; | ||
| "tutorial.markers.text.EditMarker" = "¡Excelente! Has seleccionado @!marker_name!! como marcador. Oirás como lo avisa Soundscape cuando pases cerca.\nEn la siguiente pantalla, puedes cambiar su nombre si lo deseas."; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the remaining grammatical errors.
- Line 822: use
Oirás cómo lo avisa Soundscape. - Line 924: remove
sobreand useEscucha un ejemplo de lo que Soundscape podría avisarte.... - Line 998: replace
se las necesitan calibrarwithnecesitan calibrarseornecesitas calibrarlas.
Also applies to: 924-924, 998-998
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 822, Update the Spanish localization strings identified by
tutorial.markers.text.EditMarker and the corresponding entries at lines 924 and
998: change “Oirás como” to “Oirás cómo,” remove “sobre” so the text says
“Escucha un ejemplo de lo que Soundscape podría avisarte...,” and replace “se
las necesitan calibrar” with the grammatically correct “necesitan calibrarse” or
“necesitas calibrarlas.”
| "faq.tip.setting_beacon_on_address" = "Puedes establecer una señal en cualquier dirección. En la pantalla principal, pulsa en la barra de búsqueda y escribe la dirección. Tras seleccionar la dirección en los resultados de la búsqueda, aparecerá una pantalla \"Detalles de la ubicación\" con la opción para \"Iniciar señal de audio\" en la dirección. De esta manera, puedes establecer una señal en negocios, lugares, puntos de interés y residencias que no se incluyan en Open Street Map."; | ||
| "faq.tip.finding_bus_stops" = "Para encontrar paradas de autobús cercanas, selecciona el filtro \"Transporte público\" en la lista \"Lugares cercanos\"."; | ||
| "faq.tip.turning_beacon_off" = "Puedes activar y desactivar el sonido rítmico de la señal con el botón de silencio en la pantalla principal. Si la señal está silenciada, seguirás recibiendo actualizaciones de la distancia a tu destino cada 50 metros aproximadamente."; | ||
| "faq.tip.turning_off_auto_callouts" = "Si quieres seguir interactuando con Soundscape pero no deseas oír los avisos automáticos, para desactivar avisos, ve a la sección\"Avisos\" de la pantalla \"Ajustes\" en el menú. O bien, si no vas a usar Soundscape, puedes ponerlo en el modo de suspensión o de aplazamiento con el botón \"Suspender\" en la pantalla principal."; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Add the missing space before the quoted section name.
The UI currently displays sección"Avisos".
- "faq.tip.turning_off_auto_callouts" = "Si quieres seguir interactuando con Soundscape pero no deseas oír los avisos automáticos, para desactivar avisos, ve a la sección\"Avisos\" de la pantalla \"Ajustes\" en el menú. ...
+ "faq.tip.turning_off_auto_callouts" = "Si quieres seguir interactuando con Soundscape pero no deseas oír los avisos automáticos, para desactivar avisos, ve a la sección \"Avisos\" de la pantalla \"Ajustes\" en el menú. ...📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "faq.tip.turning_off_auto_callouts" = "Si quieres seguir interactuando con Soundscape pero no deseas oír los avisos automáticos, para desactivar avisos, ve a la sección\"Avisos\" de la pantalla \"Ajustes\" en el menú. O bien, si no vas a usar Soundscape, puedes ponerlo en el modo de suspensión o de aplazamiento con el botón \"Suspender\" en la pantalla principal."; | |
| "faq.tip.turning_off_auto_callouts" = "Si quieres seguir interactuando con Soundscape pero no deseas oír los avisos automáticos, para desactivar avisos, ve a la sección \"Avisos\" de la pantalla \"Ajustes\" en el menú. O bien, si no vas a usar Soundscape, puedes ponerlo en el modo de suspensión o de aplazamiento con el botón \"Suspender\" en la pantalla principal."; |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 1185, Update the localized value for faq.tip.turning_off_auto_callouts to
include a space between “sección” and the quoted “Avisos” section name,
preserving the rest of the Spanish translation unchanged.
| "general.error.location_services_enable_instructions.2" = "Activa Localización en la aplicación Ajustes para continuar.\n\n1. Presiona el botón atrás hasta llegar a los ajustes principales\n2. Selecciona Privacidad y seguridad\n3. Selecciona Localización\n4. Activa Localización"; | ||
|
|
||
|
|
||
| /* */ | ||
| "general.error.location_services_enable_instructions.3" = "Activa Localización en la aplicación de ajustes para continuar.\n\n1. Presiona Abrir ajustes\n2. Presiona el botón atrás hasta llegar a los ajustes principales\n3. Selecciona Privacidad y seguridad\n4. Selecciona Localización\n5. Activa Localización"; | ||
| "general.error.location_services_enable_instructions.3" = "Activa Localización en la aplicación Ajustes para continuar.\n\n1. Presiona Abrir Ajustes\n2. Presiona el botón atrás hasta llegar a los ajustes principales\n3. Selecciona Privacidad y seguridad\n4. Selecciona Localización\n5. Activa Localización"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Relevant localization file around mentioned keys:"
sed -n '250,350p' "apps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings" | cat -n
echo
echo "Occurrences of location enable instruction keys in es-ES:"
rg -n 'general\.error\.location_services_enable_instructions\.[0-9]+"|Presiona|Pulsa|Ajustes|Atrás|Abrir Ajustes' "apps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings"Repository: soundscape-community/soundscape
Length of output: 26541
Replace Presiona with Spain-specific wording in the Spanish instructions.
Use Pulsa and exact button labels (Atrás, Abrir Ajustes) in the location and activity-tracking enable instructions:
general.error.location_services_enable_instructions.2general.error.location_services_enable_instructions.3device_motion.enable.instructions
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings`
around lines 270 - 274, Update the Spanish text values for
general.error.location_services_enable_instructions.2,
general.error.location_services_enable_instructions.3, and
device_motion.enable.instructions: replace “Presiona” with Spain-specific
“Pulsa” wording and use the exact button labels “Atrás” and “Abrir Ajustes”
where applicable, preserving the existing instruction order and content.
|
I just finished the Latin American translation for Spanish. We'll wait for the AI to find more errors that I could fix, but it's great that the AI found some more typos that I carried over to the existing Spain Spanish translation. I realigned the iOS terminology in both translations, such as the iOS Settings app or Precise Location, rather than using generic terms. I was thinking of doing a Spanish US translation rather than Latin American, but I went with Latin American because the iOS terms are very close, if not exactly the same as the Spanish US terms for iOS. Also there should be less of a chance that there would be some Spanglish terms in Latin American compared to US Spanish iOS, but that's far fetched. In addition to the iOS terminology, there are some slight changes to some OSM tags such as "Restroom", "Bike Parking" and "Car Wash". The most noticeable change is the word "headphones". I won't change the Spain translation back to formal Spanish until the AI or I think the translation is already good enough. Most of it was a cut and paste from the current Spain text, so it should be good to go anyway. Thanks. |
13670c0 to
f0e003d
Compare
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings`:
- Line 1025: Update the Spanish localization value for osm.tag.assembly_point
from “Punto de ensamblado” to “Punto de reunión” to represent a meeting point in
the emergency/navigation context.
- Line 1126: Update the localized FAQ string value for
faq.when_to_use_soundscape.answer to correct the remaining Spanish grammar:
change “el valor de que te aporta Soundscape” to “el valor que te aporta
Soundscape” and revise the relevant wording to use “hacia dónde estás
orientado.”
- Line 994: Update the localized string `help.using_headsets.airpods.how.2` and
the corresponding entries at the referenced locations to replace “último aviso
de llamada” with the established terminology for the last Soundscape callout,
such as “último aviso”.
- Line 1047: Update the “osm.tag.landmark” localization value to use the
existing “puntos de referencia” terminology for a point of reference, replacing
“Marca” while preserving the localization key.
- Line 977: Update the help.text.remote_control.how localization string to
terminate each media-control numeric HTML entity with a semicolon: &`#x23EF`;,
&`#x23ED`;, &`#x23EE`;, &`#x23E9`;, and &`#x23EA`;. Preserve the surrounding Spanish
text and markup unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 4b6ffbe0-93dd-4c0e-b178-8e397777e5d8
📒 Files selected for processing (2)
apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.stringsapps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings
🚧 Files skipped from review as they are similar to previous changes (1)
- apps/ios/GuideDogs/Assets/Localization/es-ES.lproj/Localizable.strings
| "help.text.ahead_of_me.how" = "Como con los cuatro botones de la parte inferior de la pantalla principal, mantén el teléfono con la pantalla en posición horizontal (hacia arriba) y la parte superior del teléfono apuntando en la dirección en la que estás mirando antes de presionar el botón <em>\"Delante de mí\"</em>. Esto actúa como una brújula que le indica a la aplicación hacia qué dirección estás orientado. Solo tienes que pulsar el botón <em>\"Delante de mí\"</em> y oirás varios puntos de interés que estén más o menos delante de ti."; | ||
| "help.text.remote_control.what" = "Puedes obtener acceso a determinadas características de Soundscape con los botones de control multimedia de tus audífonos. Esta funcionalidad funciona con audífonos con cable o Bluetooth que tengan botones de control multimedia, como Reproducir, Pausa, Siguiente, Anterior y otros. Distintos modelos de audífonos pueden incluir diferentes botones; consulta la lista de acciones a continuación para determinar cuáles están disponibles para ti.<br>Ten en cuenta que esta característica solo funciona con audífonos que admitan controles multimedia de Apple (como reproducir y pausa)."; | ||
| "help.text.remote_control.when" = "Los controles multimedia de audífonos se pueden usar mientras Soundscape se está ejecutando. Esto es así si te encuentras actualmente en Soundscape o mientras la aplicación se ejecuta en segundo plano e incluso cuando el dispositivo está bloqueado. Sin embargo, ten en cuenta que los botones de control multimedia no funcionarán con Soundscape si estás reproduciendo audio como música, podcasts o vídeos con otra aplicación."; | ||
| "help.text.remote_control.how" = "<p>Puedes obtener acceso a las siguientes funciones de Soundscape con los botones de control multimedia de tus audífonos:<p><br>⏯ Reproducir/Pausa: silenciar los avisos actuales y, si la señal de audio está establecida, alternar el audio de la señal.</p><p>⏭ Siguiente: aviso <em>\"Mi ubicación\"</em>.</p><p>⏮ Anterior: repetir último aviso.</p><p>⏩ Saltar adelante: activar y desactivar avisos.</p><p>⏪ Saltar atrás: aviso <em>\"Alrededor de mí\"</em>.</p>"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings"
if [ -f "$file" ]; then
echo "=== matching line ==="
grep -n "help.text.remote_control.how" "$file"
echo
echo "=== surrounding lines ==="
sed -n '970,982p' "$file" | cat -n
echo
echo "=== all icon entity-like occurrences in file ==="
grep -noE '&`#x`[a-fA-F0-9]+;?|&`#x`[a-fA-F0-9]+' "$file" || true
else
echo "file missing"
fi
echo
echo "=== deterministic parser probe for literal backtick/entity patterns ==="
python3 - <<'PY'
from html.parser import HTMLParser
samples = [
"<p>&`#x23EF` Reproducir/Pausa</p>",
"<p>&`#x23EF`; Reproducir/Pausa</p>",
'<p>` &`#x23EF`; Reproducir/Pausa</p>',
]
for s in samples:
p = HTMLParser()
events = []
class H(HTMLParser):
def handle_data(self, data): events.append(("data", repr(data)))
def handle_starttag(self, tag, attrs): events.append(("start", tag))
def handle_endtag(self, tag): events.append(("end", tag))
p.feed(s)
print(s, "=>", events, "contains entity reference?", "&`#x23EF`" in s and "&`#x23EF`;" in s)
PYRepository: soundscape-community/soundscape
Length of output: 6419
Fix the malformed HTML entities for media-control icons.
The icon entities are missing closing semicolons (⏯, `&`#x23ED, ⏮, `&`#x23E9, ⏪``), so they can be treated as text instead of symbols.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 977, Update the help.text.remote_control.how localization string to
terminate each media-control numeric HTML entity with a semicolon: &`#x23EF`;,
&`#x23ED`;, &`#x23EE`;, &`#x23E9`;, and &`#x23EA`;. Preserve the surrounding Spanish
text and markup unchanged.
| "help.using_headsets.airpods.what" = "Soundscape admite audio espacial con seguimiento dinámico de la cabeza al usar AirPods compatibles. Cuando se conecten, los sensores de los AirPods le indicarán a Soundscape la dirección en la que está orientada tu cabeza. Esto le ayuda a Soundscape a mejorar tu experiencia de audio, haciéndola más natural a medida que te mueves por el mundo. Cuando usas Soundscape con los AirPods conectados, no es necesario sostener el teléfono para que la aplicación funcione bien."; | ||
| "help.using_headsets.airpods.when" = "Puedes usar AirPods en cualquier momento con Soundscape. El uso de AirPods te proporciona un audio de alta calidad y te permite tener una experiencia mayor de manos libres."; | ||
| "help.using_headsets.airpods.how.1" = "<b>Conexión de un dispositivo</b>:<br/> ve a la opción \"Audífonos con seguimiento de cabeza\" en el menú de Soundscape para conectar los AirPods y sigue las instrucciones que aparecen en pantalla. Ten en cuenta que tendrás que emparejar los AirPods en los ajustes de Bluetooth del teléfono antes de conectarlos a Soundscape."; | ||
| "help.using_headsets.airpods.how.2" = "<b>Uso de los controles multimedia en los audífonos</b>:<br/> cuando los controles multimedia estén habilitados en la configuración de Soundscape, podrás usarlos en los AirPods para silenciar o reactivar la señal, avisar de tu ubicación o repetir el último aviso de llamada. Para obtener más información, ve la sección de ayuda \"Uso de controles multimedia\"."; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use the app’s established “aviso” terminology.
aviso de llamada incorrectly suggests a phone call. Use último aviso or the project’s equivalent for the last Soundscape callout.
Also applies to: 999-999
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 994, Update the localized string `help.using_headsets.airpods.how.2` and
the corresponding entries at the referenced locations to replace “último aviso
de llamada” with the established terminology for the last Soundscape callout,
such as “último aviso”.
| "osm.tag.covered_pavilion" = "Pabellón cubierto"; | ||
| "osm.tag.convenience_store" = "Minimercado"; | ||
| "osm.tag.building_entrance" = "Entrada de edificio"; | ||
| "osm.tag.assembly_point" = "Punto de ensamblado"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate “assembly point” as a meeting point.
Punto de ensamblado is a literal translation and is misleading in an emergency/navigation context; use Punto de reunión.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 1025, Update the Spanish localization value for osm.tag.assembly_point from
“Punto de ensamblado” to “Punto de reunión” to represent a meeting point in the
emergency/navigation context.
| "osm.tag.atm.named" = "Cajero automático de %@"; | ||
| "osm.tag.atm.refed" = "Cajero automático %@"; | ||
| "osm.tag.bus_stop" = "Parada de autobús"; | ||
| "osm.tag.landmark" = "Marca"; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Translate “landmark” consistently as a point of reference.
Marca conflicts with the file’s existing terminology (puntos de referencia) and can be confused with a user-created marker.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 1047, Update the “osm.tag.landmark” localization value to use the existing
“puntos de referencia” terminology for a point of reference, replacing “Marca”
while preserving the localization key.
| "faq.tips.title" = "Sugerencias"; | ||
| "faq.section.what_is_soundscape" = "¿Qué es Soundscape y cómo debo usarlo?"; | ||
| "faq.when_to_use_soundscape.question" = "¿Cuándo debo usar Soundscape?"; | ||
| "faq.when_to_use_soundscape.answer" = "Soundscape tiene características y ventajas que abarcan varios escenarios y escalas de tiempo. Además, el valor de que te aporta Soundscape puede evolucionar con el tiempo; cómo lo uses hoy puede ser diferente a la manera en que lo usarás dentro de tres meses. Los usuarios piensan en las aplicaciones en cuanto a qué problema les resuelven. Sin duda, Soundscape se puede usar caso por caso cuando se tiene una necesidad informativa específica, por ejemplo, realizar el seguimiento de un destino mientras se llega allí, como ayuda para orientarse al salir de una estación de metro o de un coche, o para encontrar los nombres de las calles para el siguiente cruce o la distancia hasta llegar a él. Sin embargo, la filosofía tras Soundscape es la de \"iluminar tu mundo con sonido\", y se ha diseñado para usarlo en cualquier momento en que te encuentres fuera para un reconocimiento del entorno, por ejemplo, para saber los nombres de las calles en las que te encuentras, la dirección a la que te diriges y los nombres de los negocios que pasas. En este modo de uso, nuestros usuarios se han referido a Soundscape como una \"buena aplicación complementaria\", con la que se pueden encontrar lugares fantásticos por casualidad, para \"llenar lagunas en su mapa mental\" y que proporciona más \"confianza al caminar\". Estos son algunos otros ejemplos de cómo nuestros usuarios están incorporando Soundscape a su vida:\n\n\"Soundscape me ha ayudado a volver a mi ruta después de haberme bajado del autobús y haber caminado en la dirección equivocada.\"\n\n\"Incluso ahora en la ciudad en la que llevo viviendo 3 años, conozco mejor lo que me rodea [con Soundscape].\"\n\n\"El sonido 3D mejora mi experiencia al caminar, ya que me siento más conectado con mi entorno… Es más probable que pruebe una ruta nueva ahora que tengo la aplicación.\"\n\n\"Echo de menos caminar y encontrar cosas por casualidad. Tener Soundscape está bien; no resulta un esfuerzo oír las cosas que me rodean. La información relacional es útil y resulta una aplicación excelente para reconocer las situaciones y explorar los pasillos comerciales.\"\n\n\"[Usé Soundscape] para encontrar un pub en medio de York. [I] Usé varias de sus opciones para localizarlo primero y después encontrarlo. Me llevó a 3 metros de la puerta, lo cual es fantástico.\""; |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the remaining FAQ grammar errors.
Use el valor que te aporta Soundscape and hacia dónde estás orientado.
Also applies to: 1135-1135
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/ios/GuideDogs/Assets/Localization/es-419.lproj/Localizable.strings` at
line 1126, Update the localized FAQ string value for
faq.when_to_use_soundscape.answer to correct the remaining Spanish grammar:
change “el valor de que te aporta Soundscape” to “el valor que te aporta
Soundscape” and revise the relevant wording to use “hacia dónde estás
orientado.”
c01a03d to
1f5e2f7
Compare
Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (English) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (English) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 68.1% (810 of 1189 strings) Added translation using Weblate (Spanish (Latin America)) Deleted translation using Weblate (Spanish (American)) Added translation using Weblate (Spanish (American)) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 99.9% (1188 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 99.9% (1188 of 1189 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1189 of 1189 strings) Co-authored-by: John Joseph A. Gatchalian <jjgatchalian@gmail.com> Translate-URL: https://hosted.weblate.org/projects/soundscape/ios-app/en/ Translate-URL: https://hosted.weblate.org/projects/soundscape/ios-app/en_GB/ Translate-URL: https://hosted.weblate.org/projects/soundscape/ios-app/es/ Translate-URL: https://hosted.weblate.org/projects/soundscape/ios-app/es_419/ Translation: Soundscape/iOS app
1f5e2f7 to
cce1107
Compare
|
I already did most of the AI changes, but I cant' do the change where the AI wants me to capitalize the "Atrás" label, which means "Back" in Spanish. I understand the point that ideally the "Back" button should be proper, but iOS is peculiar. The back button keeps changing labels in Settings every time you press it, so i had to make it generic. "I don't really see a big deal between "pulsar" and "presionar". Either you tap the button or you press the button, it doesn't matter. |
|
I think this Latin American Spannish PR should be safe to merge because the AI isn't saying anything right now. I fixed the necessary big issues in the Spanish grammar, and a few tricky sentences were left alone. With the help of the AI, that's already way more typos than I can find myself. If not, we can add this to version 1.8.6. Maybe by that point, I will have started converting the Spain text to formal Spanish. |
Translations update from Hosted Weblate for Soundscape/iOS app.
Current translation status:
Summary by CodeRabbit