Navigation fails on a currency before the amount ($3)

Abierto Apto para principiantes
#1,008 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
rust, yaml

Línea de trabajo

Empieza con la regla currency en SharedRules/general.yaml y compara su comportamiento en modo literal con la regla currency-after del español. Aplica la condición propuesta para el modo literal de forma coherente a las reglas de idioma indicadas y luego ejecuta cargo test. Se considera terminado cuando la navegación puede llegar al símbolo de moneda y al importe, mientras que la locución completa permanece sin cambios.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

ZoomIn or MoveNext on <math><mi>$</mi><mn>3</mn></math> gives an error:

Internal error: With en/ClearSpeak in Enhanced mode, can't ZoomIn from expression with id '…'

The currency rule in SharedRules/general.yaml reorders the speech ("3 dollars") and speaks the word from CurrencySymbols instead of *[1], so navigation can't find the $ in it. The same rule is in de, es, fr, hu, ja, pl and pt.

Proposed fix: don't use the rule in literal mode (navigation), as Spanish already does for currency-after:

-  match: "count(*)=3 and DefinitionValue(*[1], 'Speech', 'CurrencySymbols') != '' and *[3][self::m:mn]"
+  match: "count(*)=3 and DefinitionValue(*[1], 'Speech', 'CurrencySymbols') != '' and *[3][self::m:mn] and not(ancestor-or-self::*[contains(@data-intent-property, ':literal:')])"

With it (en): ZoomIn → "dollar", MoveNext → "3"; $3 + $2 → "3 dollars", "plus"; \frac{$5}{kg} → "in numerator; 5 dollars". The full reading doesn't change ("3 dollars"), and cargo test passes. Spanish has this fix in the es-more-currencies PR.

Lenguaje dominante
Rust
Estrellas
131
Forks
97
Merge medio
21 h 45 min
PR fusionados (30 d)
95

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de daisy/MathCAT

Todos los issues de daisy/MathCAT

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.