glaterza opened a new pull request, #45958:
URL: https://github.com/apache/superset/pull/45958

   ### SUMMARY
   
   This PR corrects 61 entries in the Spanish catalog. Most of them are fuzzy 
entries that Babel's fuzzy matcher copied from a different msgid. Superset 
serves fuzzy entries, so Spanish users see the copies. For example, the Themes 
page title reads «Hora/fecha» ("Time/date"). The dashboard properties section 
"Access" reads «correcto» ("correct").
   
   Each group below covers a whole control or screen, so that related options 
stay consistent. Of the 61 entries, 50 had the fuzzy flag, 8 had no translation 
and 3 had a reviewed translation. All 61 become non-fuzzy. No other entry 
changes.
   
   `msgfmt --statistics` for `es`: translated 3952 -> 4010, fuzzy 895 -> 845, 
untranslated 1071 -> 1063.
   
   #### Strandings on single screens (23)
   
   | English | Before | After |
   | --- | --- | --- |
   | Styling | «CADENA» | «Estilo» |
   | Access | «correcto» | «Acceso» |
   | Refresh settings | «Ajustes de archivo» | «Actualización automática» |
   | Advanced settings | «Análisis avanzados» | «Ajustes avanzados» |
   | Series settings | «Ajustes de archivo» | «Ajustes de series» |
   | Folders | «Filtros» | «Carpetas» |
   | Auto-detect | «Autocompletar» | «Detección automática» |
   | Theme | «Hora/fecha» | «Tema» |
   | Themes | «Hora/fecha» | «Temas» |
   | theme | «Hora/fecha» | «tema» |
   | System | «transmitir» | «Sistema» |
   | Why do I need to create a database? | «¿Quieres añadir una nueva base de 
datos?» | «¿Por qué tengo que crear una base de datos?» |
   | Enter a part of the object name | «Si se deben rellenar los objetos» | 
«Introduce parte del nombre del objeto» |
   | string | «CADENA» | «texto» |
   | numeric | «NUMÉRICO» | «numérico» |
   | boolean | «BOOLEANO» | «booleano» |
   | timestamp | «Mostrar marca de tiempo» | «fecha y hora» |
   | STRING | «CADENA» | «TEXTO» |
   | Formatting column | «Formateando» | «Columna a formatear» |
   | Formatting object | «Formateando» | «Elemento a formatear» |
   | Select object name | «Seleccionar asunto» | «Seleccionar elemento» |
   | Use gradient | «Granularidad temporal» | «Usar gradiente» |
   | Formatting | «Formateando» | «Formato» |
   
   "timestamp", "string", "numeric" and "boolean" are the column type labels in 
the column tooltip. The tooltip shows them only for a column without a database 
type. The msgid `STRING` is an option of the column type select in the dataset 
editor. Its sibling `DATETIME` has the reviewed msgstr `FECHA Y HORA`. So 
"timestamp" becomes «fecha y hora», and both string labels become «texto».
   
   "Refresh settings" is the title of the dashboard properties section that 
holds the refresh frequency. Its subtitle reads "Configure automatic dashboard 
refresh". «Actualización automática» names that feature, as in the reviewed 
«Establecer intervalo de actualización automática».
   
   #### Label positions (18)
   
   This is a terminology decision. "Inside" becomes «Interior», followed by the 
direction words that the catalog already uses for "Top", "Bottom", "Left" and 
"Right". "Right" changes from «Derecho» to «Derecha», to match «Izquierda».
   
   | English | Before | After |
   | --- | --- | --- |
   | Inside | «Índice» | «Interior» |
   | Inside top | «Interior superior» | «Interior arriba» |
   | Inside bottom | «inferior» | «Interior abajo» |
   | Inside left | «Anclar a la izquierda» | «Interior izquierda» |
   | Inside right | «Anclar a la derecha» | «Interior derecha» |
   | Inside top left | «Arriba a la izquierda» | «Interior arriba a la 
izquierda» |
   | Inside top right | «Arriba a la derecha» | «Interior arriba a la derecha» |
   | Inside bottom left | «Abajo a la izquierda» | «Interior abajo a la 
izquierda» |
   | Inside bottom right | «Abajo a la derecha» | «Interior abajo a la derecha» 
|
   | Inside End | untranslated | «Extremo interno» |
   | Outside End | untranslated | «Extremo externo» |
   | Inside Center | untranslated | «Centro» |
   | Inside Base | untranslated | «Base interior» |
   | Right | «Derecho» | «Derecha» |
   | Label Position | untranslated | «Posición de la etiqueta» |
   | Value label position | untranslated | «Posición de la etiqueta de valor» |
   | Position of the data label relative to the data point | untranslated | 
«Posición de la etiqueta de datos respecto al punto de datos» |
   | Choose where to display values relative to the bars | untranslated | 
«Elige dónde mostrar los valores respecto a las barras» |
   
   Rejected options:
   
   - «Interior superior» reads as a noun phrase, not as a position.
   - «Dentro, arriba» is longer, and the comma reads oddly in a dropdown.
   
   The four options of the bar chart "Value label position" control name a 
point on the bar. "End" is the tip of the bar, and "Base" is the end on the 
axis. These English names are the data label positions of Microsoft Excel. 
Spanish Excel guides name them «Extremo interno», «Extremo externo», «Centro» 
and «Base interior» 
([source](https://exceltotal.com/agregar-etiquetas-de-datos-a-un-grafico/)). 
This PR uses the same names. I rejected «Interior final» and «Interior base», 
because they read as directions.
   
   Superset's Select sorts options by label. With this change the 9 "Inside" 
positions in the Radar chart sort together.
   
   #### deck.gl GeoJSON point labels and icons (20)
   
   This is a terminology decision. GIS "feature" becomes «entidad». Esri uses 
this term in its Spanish documentation. The ArcGIS Online GeoJSON page says: 
«Los objetos de FeatureCollection contienen conjuntos de entidades.» 
([source](https://doc.arcgis.com/es/arcgis-online/reference/geojson.htm)). Two 
entries use the term.
   
   Rejected options:
   
   - «elemento» is the generic UI word in this catalog. It does not mark the 
GIS term.
   - «objeto espacial» is the term of the `QGIS` manual. It is longer.
   - «fenómeno» appears only in the Spanish edition of ISO 19110.
   
   «entidad» already translates "entity" in 6 reviewed strings, for example 
"Add tag to entities". The GIS strings appear only in the deck.gl GeoJSON 
controls, and that control panel shows none of those 6 strings.
   
   Most other labels in this group were strandings too, for example "Enable 
icons" read «Columnas de la tabla» ("Table columns").
   
   | English | Before | After |
   | --- | --- | --- |
   | Enable labels | «Etiquetas de intervalo» | «Habilitar etiquetas» |
   | Label property name | «Nombre de la alerta» | «Nombre de la propiedad de 
la etiqueta» |
   | The feature property to use for point labels | «La propiedad de elemento a 
usar para las etiquetas de puntos» | «La propiedad de la entidad que se usa 
para las etiquetas de los puntos» |
   | Label color | «Color de relleno» | «Color de la etiqueta» |
   | The color of the point labels | «El color de la isolínea» | «El color de 
las etiquetas de los puntos» |
   | Label size | «Línea de la etiqueta» | «Tamaño de la etiqueta» |
   | The font size of the point labels | «Si se debe mostrar el puntero» | «El 
tamaño de fuente de las etiquetas de los puntos» |
   | Label size unit | «Línea de la etiqueta» | «Unidad del tamaño de la 
etiqueta» |
   | Meters | «metros» | «Metros» |
   | Enable icons | «Columnas de la tabla» | «Habilitar iconos» |
   | Icon URL | «Copiar URL» | «URL del icono» |
   | Icon size | «Tamaño de fuente» | «Tamaño del icono» |
   | The size of the point icons | «La anchura de la isolínea en píxeles» | «El 
tamaño de los iconos de los puntos» |
   | Icon size unit | «Tamaño de fuente» | «Unidad del tamaño del icono» |
   | The unit for icon size | «Tamaño de fuente del subtítulo» | «La unidad del 
tamaño del icono» |
   | The radius of point features, in the units specified belo... | «El radio 
de las entidades de punto, en las unidades especificadas a continuación. El 
tamaño final renderizado es este valor multiplicado por la escala del radio de 
punto.» | «El radio de las entidades de punto, en las unidades indicadas abajo. 
El tamaño final es este valor multiplicado por la escala del radio del punto.» |
   | A multiplier applied to the point radius. Use this to uni... | «Un 
multiplicador aplicado al radio del punto. Úselo para escalar uniformemente 
todos los puntos.» | «Un multiplicador aplicado al radio del punto. Úsalo para 
escalar todos los puntos por igual.» |
   | Point Radius Units | «Unidades del radio de punto» | «Unidades del radio 
del punto» |
   | The unit for point radius. Use "pixels" for consistent sc... | «La unidad 
para el radio de punto. Use "píxeles" para un tamaño consistente en el espacio 
de pantalla independientemente del nivel de zoom.» | «La unidad del radio del 
punto. Usa "píxeles" para que el tamaño en pantalla no cambie con el nivel de 
zoom.» |
   | Common (unit per pixel at zoom 0) | «Común (unidad por píxel en zoom 0)» | 
«Común (unidad por píxel en zoom 0)» |
   
   Four entries of this control group are not in this PR. #45847 promotes them 
with their current text.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Captured from a local production build. Each image shows master's catalog on 
the left and this branch on the right. Both sides come from the same build and 
database. Only the compiled `es` catalog differs.
   
   Dashboard properties, section titles («Acceso», «Estilo», «Actualización 
automática», «Ajustes avanzados»):
   
   IMG:A1-dashboard-properties-sections
   
   Themes page: title, add button and system badge:
   
   IMG:A2-themes-page
   
   Conditional formatting popover («Columna a formatear», «Elemento a 
formatear», «Usar gradiente»):
   
   IMG:A4-conditional-formatting-gradient
   
   Dataset editor, column type select of a calculated column (the `STRING` 
option):
   
   IMG:A3-dataset-column-type
   
   Radar chart, label position («Interior» + direction):
   
   IMG:B-radar-label-position
   
   Bar chart, value label position (Excel's names):
   
   IMG:B-bar-value-label-position
   
   deck.gl GeoJSON, point labels:
   
   IMG:C-geojson-labels
   
   The script captured 20 more screens with the same layout. They are available 
on request.
   
   Four changes have no screenshot. "Select object name" is the accessible name 
of a select, which screen readers announce. The script checked its 
`aria-label`. "Auto-detect" appears in the currency format select only when the 
dataset has a currency code column. The script set one in the local database 
and checked the option text. The tooltip shows its column type labels only for 
a column without a database type name. I did not set up such a column. The 
dataset editor screenshot shows the `STRING` option in the same column type 
family. The lowercase "theme" fills in the resource messages of the Themes 
page, such as the import dialog and error toasts. I did not trigger those.
   
   ### TESTING INSTRUCTIONS
   
   1. Build the frontend and compile the Spanish catalog: `npm run 
build-translation` in `superset-frontend`, then `pybabel compile --use-fuzzy -d 
superset/translations -l es`.
   2. Set `LANGUAGES` to include `es`, then switch the UI to Spanish.
   3. Open Settings, then Themes. The page title reads «Temas», and the button 
reads «Tema».
   4. Edit a dashboard and open its properties. The sections read «Acceso», 
«Estilo», «Actualización automática» and «Ajustes avanzados».
   5. Open the Radar chart in Explore, enable labels, and open "Posición de la 
etiqueta". The options read «Interior», «Interior arriba» and so on.
   6. Run `msgfmt -c --statistics 
superset/translations/es/LC_MESSAGES/messages.po`. It reports 4010 translated 
and 845 fuzzy.
   
   A Playwright script opened each screen and checked that the rendered text 
equals the served catalog's msgstr. It passed 28 of 29 checks against master's 
catalog and 28 of 29 against this branch. The Drill to detail check did not 
run, because the local database held no example data. That screenshot comes 
from an earlier run of the same entry, and this revision does not change it.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [x] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   This PR and #45847 change different entries. A three-way merge of both 
branches has no conflicts.
   
   The same screens hold more strandings, for example in the theme editor and 
the dataset folders editor. They need their own PRs. Strings that mention 
"dashboard" wait for the dashboard term decision.
   
   Local checks skipped: pytest, Jest and the frontend toolchain check, because 
no Python or frontend source changed. I also skipped the catalog-propagation 
check, because `messages.pot` did not change.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

  • [PR] fix(i1... glaterza (via GitHub) via notifications
    • Re: [P... netlify[bot] (via GitHub) via notifications
    • Re: [P... codecov[bot] (via GitHub) via notifications
    • Re: [P... codeant-ai-for-open-source[bot] (via GitHub) via notifications
    • Re: [P... sadpandajoe (via GitHub) via notifications
    • Re: [P... hainenber (via GitHub) via notifications

Reply via email to