collective

Browse / github.com/storytold/gridcraft / patch

i18n: Spanish catalog covers every interface key (700 labels added)

i18n: Spanish catalog covers every interface key (700 labels added) > **Depends on #2645.** This branch is stacked on it, so the diff shows #2645's two commits too. Review only the last commit, `i18n: Spanish catalog covers every interface key`. ## What `crates/ui-egui/src/i18n/es.rs` had 463 of the 1,163 keys the catalogs share (`cargo xtask i18n-report`: `es: 700 missing`). It now has all of them (`es: 0 missing`): - dialogs, messages and tooltips - chart types and cell styles - conditional formatting and borders - Analysis Tools, Solver and Goal Seek - Find and Replace, Sort, data validation - printing and protection With #2645 the two shared labels now

Status
open
Score
0.00
Adopters
0 other operators
Author
nihilist-narwhal (imported from pull request #2646, open)
Base
d8c5f5885fc5320f8f1023d5fdc9f484a185ba86
Size
+765 −9 in 13 files
Review
pending
Shared
2026-10-28
Id
d3c0460b164158051c06d3d5

How it went

No other operator has reported using it yet.

Diff

raw · ROADMAP.md crates/ui-egui/src/dialogs.rs crates/ui-egui/src/i18n.rs crates/ui-egui/src/i18n/el.rs crates/ui-egui/src/i18n/es.rs crates/ui-egui/src/i18n/it.rs crates/ui-egui/src/i18n/ja.rs crates/ui-egui/src/i18n/pl.rs crates/ui-egui/src/i18n/pt.rs crates/ui-egui/src/i18n/ro.rs crates/ui-egui/src/i18n/uk.rs docs/gaps.md docs/localization-parity.md

diff --git a/ROADMAP.md b/ROADMAP.md--- a/ROADMAP.md+++ b/ROADMAP.md@@ -2,7 +2,7 @@  **Stage: alpha** · next: beta, ~25 points of "ready for real work" and ~160–240 h away -> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-25 · **Change:** minor (AutoSum over a selected row puts its total to the right, and fills a selection's empty last row and column) · **Target:** Microsoft Excel (Microsoft 365)+> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-26 · **Change:** minor (Spanish interface catalog complete: ~53%) · **Target:** Microsoft Excel (Microsoft 365)  GridCraft aims at full Microsoft Excel parity, and at being better in places: faster, open (XLSX is the native format), fully scriptable by agents (MCP, control channel, CLI), and on the web.@@ -103,7 +103,7 @@ Localized German formulas and numbers are in PR #163. Detail: [localization-pari |---|---|---|---| | English | en | full (source language) | 100% | | Simplified Chinese | zh-Hans | menus only | ~12% |-| Spanish | es | none | 0% |+| Spanish | es | menus, File view, dialogs, Spanish formulas | ~53% | | Hindi | hi | none | 0% | | Arabic | ar | none (no RTL layout, no shaping) | 0% | | French | fr | none | 0% |@@ -135,6 +135,7 @@ Ranked; estimates in Opus 5.5 agent-hours. Detail and the full beta-gate list in  | Date | What landed | |---|---|+| 2026-10-26 | Spanish interface catalog covers every key the other languages translate: 700 labels added for dialogs, messages, tooltips, chart types, cell styles, Analysis Tools, Solver and printing (1,163 strings, ~53%; the roadmap had listed 0%) | | 2026-10-25 | AutoSum over a selection does what Excel does: a selected row gets one total to its right (in its last cell if that is empty), not a one-cell total under each cell; a block whose last column is empty gets each row's total there, one whose last row is empty each column's, and with both the corner gets the total of the block; otherwise totals go under each column as before | | 2026-10-24 | Go To lists the named ranges of every sheet (`Sheet2!Name` for a name scoped to another sheet; hidden names, constants and formulas left out) and the references entered before, a double-click goes to an entry, and the Reference box takes several names or references separated by commas (`Price, Type`, `B14:C22,F19:G30`) | | 2026-10-24 | Status bar: a right-click opens a menu that sets which selection statistics show (Average, Count and Sum by default; Numerical Count, Minimum and Maximum are new), kept with the preferences (`view.statusBar`) |diff --git a/crates/ui-egui/src/dialogs.rs b/crates/ui-egui/src/dialogs.rs--- a/crates/ui-egui/src/dialogs.rs+++ b/crates/ui-egui/src/dialogs.rs@@ -415,7 +415,13 @@ impl Dialog {                     Choice {                         key: "operation",                         label: "Operation",-                        options: vec![("none", "None"), ("add", "Add"), ("subtract", "Subtract"), ("multiply", "Multiply"), ("divide", "Divide")],+                        options: vec![+                            ("none", "None"),+                            ("add", "Paste Special|Add"),+                            ("subtract", "Subtract"),+                            ("multiply", "Multiply"),+                            ("divide", "Divide"),+                        ],                     },                     Check { key: "skipBlanks", label: "Skip blanks" },                     Check { key: "transpose", label: "Transpose (E)" },@@ -532,7 +538,7 @@ impl Dialog {                 vec![                     Check { key: "tab", label: "Tab" },                     Check { key: "semicolon", label: "Semicolon" },-                    Check { key: "comma", label: "Comma" },+                    Check { key: "comma", label: "Text to Columns|Comma" },                     Check { key: "space", label: "Space" },                     Text { key: "other", label: "Other:" },                     Check { key: "treatConsecutive", label: "Treat consecutive delimiters as one" },diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs--- a/crates/ui-egui/src/i18n.rs+++ b/crates/ui-egui/src/i18n.rs@@ -389,6 +389,24 @@ mod tests {         }     } +    #[test]+    fn paste_special_add_and_text_to_columns_comma_have_their_own_keys() {+        // "Add" is also the Solver button and "Comma" also the cell style (Spanish Excel: Sumar+        // vs Agregar, Coma vs Millares), so the two dialog options are keyed by context. English+        // shows the plain label, and a catalog that translates the plain label translates the+        // keyed one too, so the dialog option doesn't fall back to English.+        for (keyed, plain) in [("Paste Special|Add", "Add"), ("Text to Columns|Comma", "Comma")] {+            assert_eq!(Language::En.tr(keyed), plain);+            for language in Language::ALL {+                let shown = language.tr(keyed);+                assert!(!shown.contains('|'), "{} shows a context prefix for {keyed}: {shown}", language.code());+                if language.tr(plain) != plain {+                    assert_ne!(shown, plain, "{} translates {plain:?} but not {keyed:?}", language.code());+                }+            }+        }+    }+     #[test]     fn translations_never_show_the_context_prefix() {         // `tr` returns a found translation as it is, so a catalog that keeps `context|` in itsdiff --git a/crates/ui-egui/src/i18n/el.rs b/crates/ui-egui/src/i18n/el.rs--- a/crates/ui-egui/src/i18n/el.rs+++ b/crates/ui-egui/src/i18n/el.rs@@ -648,6 +648,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Τιμές και μορφές αριθμών",         "Operation" => "Πράξη",         "Add" => "Πρόσθεση",+        "Paste Special|Add" => "Πρόσθεση",         "Subtract" => "Αφαίρεση",         "Multiply" => "Πολλαπλασιασμός",         "Divide" => "Διαίρεση",@@ -682,6 +683,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Στηλοθέτης",         "Semicolon" => "Ερωτηματικό (;)",         "Comma" => "Κόμμα",+        "Text to Columns|Comma" => "Κόμμα",         "Space" => "Διάστημα",         "Other:" => "Άλλο:",         "Treat consecutive delimiters as one" => "Αντιμετώπιση διαδοχικών διαχωριστικών ως ενός",diff --git a/crates/ui-egui/src/i18n/es.rs b/crates/ui-egui/src/i18n/es.rs--- a/crates/ui-egui/src/i18n/es.rs+++ b/crates/ui-egui/src/i18n/es.rs@@ -199,7 +199,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Zoom" => "Zoom",         "Magnification" => "Ampliación",         "Fit selection" => "Ajustar la selección",-        "Forecast\nSheet" => "Hoja de\npronóstico",+        "Forecast\nSheet" => "Hoja de\nprevisión",         "Add footer" => "Agregar pie de página",         "Add header" => "Agregar encabezado",         "Click to add data" => "Haga clic para agregar datos",@@ -478,6 +478,720 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "All sheets" => "Todas las hojas",         "New sheet (⇧F11)" => "Nueva hoja (⇧F11)",         "Text Box" => "Cuadro de texto",+        " (password)" => " (contraseña)",+        " (password, unlocked)" => " (contraseña, desbloqueado)",+        "$ English (United States)" => "$ Inglés (Estados Unidos)",+        "'{file}' is protected." => "'{file}' está protegido.",+        "(No suggestions)" => "(Sin sugerencias)",+        "(unnamed)" => "(sin nombre)",+        "+ Add Level" => "+ Agregar nivel",+        "100% Stacked Area" => "Área 100% apilada",+        "100% Stacked Bar" => "Barra 100% apilada",+        "100% Stacked Column" => "Columna 100% apilada",+        "20% - Accent1" => "20% - Énfasis1",+        "20% - Accent2" => "20% - Énfasis2",+        "20% - Accent3" => "20% - Énfasis3",+        "20% - Accent4" => "20% - Énfasis4",+        "20% - Accent5" => "20% - Énfasis5",+        "20% - Accent6" => "20% - Énfasis6",+        "3 Arrows" => "3 flechas",+        "3 Symbols" => "3 símbolos",+        "3 Traffic Lights" => "3 semáforos",+        "4 Ratings" => "4 clasificaciones",+        "40% - Accent1" => "40% - Énfasis1",+        "40% - Accent2" => "40% - Énfasis2",+        "40% - Accent3" => "40% - Énfasis3",+        "40% - Accent4" => "40% - Énfasis4",+        "40% - Accent5" => "40% - Énfasis5",+        "40% - Accent6" => "40% - Énfasis6",+        "5 Arrows" => "5 flechas",+        "5 Quarters" => "5 cuartos",+        "60% - Accent1" => "60% - Énfasis1",+        "60% - Accent2" => "60% - Énfasis2",+        "60% - Accent3" => "60% - Énfasis3",+        "60% - Accent4" => "60% - Énfasis4",+        "60% - Accent5" => "60% - Énfasis5",+        "60% - Accent6" => "60% - Énfasis6",+        "A Date Occurring…" => "Una fecha que tiene lugar…",+        "A to Z" => "De A a Z",+        "About" => "Acerca de",+        "Accent1" => "Énfasis1",+        "Accent2" => "Énfasis2",+        "Accent3" => "Énfasis3",+        "Accent4" => "Énfasis4",+        "Accent5" => "Énfasis5",+        "Accent6" => "Énfasis6",+        "Accessibility" => "Accesibilidad",+        "Action" => "Acción",+        "Action Journal" => "Registro de acciones",+        "Add" => "Agregar",+        "Paste Special|Add" => "Sumar",+        "Add Chart Element" => "Agregar elemento de gráfico",+        "Add subtotal to (columns, e.g. C,D):" => "Agregar subtotal a (columnas, p. ej. C,D):",+        "Add to Dictionary" => "Agregar al diccionario",+        "Add-in and Automation" => "Complementos y automatización",+        "Agent Control" => "Control del agente",+        "Aggregate duplicates using" => "Consolidar duplicados con",+        "Align Left" => "Alinear a la izquierda",+        "Align Right" => "Alinear a la derecha",+        "Alignment" => "Alineación",+        "All" => "Todo",+        "All Borders" => "Todos los bordes",+        "All Charts" => "Todos los gráficos",+        "All done. We made {count} replacements." => "Listo. Se realizaron {count} reemplazos.",+        "All except borders" => "Todo excepto bordes",+        "Allow" => "Permitir",+        "Allow all users of this sheet to:" => "Permitir a todos los usuarios de esta hoja:",+        "Alpha:" => "Alfa:",+        "Analysis Tools" => "Herramientas de análisis",+        "Anova: Single Factor" => "Análisis de varianza de un factor",+        "Any value" => "Cualquier valor",+        "Apply" => "Aplicar",+        "Area" => "Área",+        "Arrow" => "Flecha",+        "At each change in (column letter):" => "Para cada cambio en (letra de columna):",+        "AutoSum (⌘⇧T)" => "Autosuma (⌘⇧T)",+        "Average" => "Promedio",+        "Background Color:" => "Color de fondo:",+        "Bad" => "Incorrecto",+        "Bar" => "Barra",+        "Before sheet (position, 0 = first):" => "Antes de la hoja (posición, 0 = primera):",+        "Between…" => "Entre…",+        "Bin Range (blank for automatic bins):" => "Rango de clases (en blanco para clases automáticas):",+        "Blanks" => "Celdas en blanco",+        "Blue" => "Azul",+        "Blue - White - Red" => "Azul - Blanco - Rojo",+        "Bold (⌘B)" => "Negrita (⌘B)",+        "Border" => "Borde",+        "Bottom" => "Inferior",+        "Bottom Align" => "Alinear en la parte inferior",+        "Bottom Border" => "Borde inferior",+        "Bottom Double Border" => "Borde doble inferior",+        "Bottom margin (in):" => "Margen inferior (pulg.):",+        "Box & Whisker" => "Cajas y bigotes",+        "Bubble" => "Burbuja",+        "By Changing Variable Cells:" => "Cambiando las celdas de variables:",+        "By changing cell:" => "Al cambiar la celda:",+        "Calculate Now (F9)" => "Calcular ahora (F9)",+        "Calculate Sheet (⇧F9)" => "Calcular hoja (⇧F9)",+        "Calculation" => "Cálculo",+        "Calculation Options" => "Opciones de cálculo",+        "Cancel" => "Cancelar",+        "Category:" => "Categoría:",+        "Cell Color" => "Color de celda",+        "Cell Styles" => "Estilos de celda",+        "Cell Values" => "Valores de celda",+        "Center Across Selection" => "Centrar en la selección",+        "Change" => "Cambiar",+        "Change All" => "Cambiar todas",+        "Change Chart Type" => "Cambiar tipo de gráfico",+        "Chart" => "Gráfico",+        "Chart Title" => "Título del gráfico",+        "Chart data range:" => "Rango de datos del gráfico:",+        "Check Accessibility" => "Comprobar accesibilidad",+        "Check Cell" => "Celda de comprobación",+        "Choose a PNG or JPEG no larger than 16 MB." => "Elija un PNG o JPEG de 16 MB como máximo.",+        "Clear Filter" => "Borrar filtro",+        "Clear Rules" => "Borrar reglas",+        "Clustered Bar" => "Barra agrupada",+        "Clustered Column" => "Columna agrupada",+        "Color:" => "Color:",+        "Column" => "Columna",+        "Column Width" => "Ancho de columna",+        "Column chart" => "Gráfico de columnas",+        "Column or Bar" => "Columna o barra",+        "Column width (characters):" => "Ancho de columna (caracteres):",+        "Column widths" => "Ancho de las columnas",+        "Columns (blank = all, e.g. A,C):" => "Columnas (en blanco = todas, p. ej. A,C):",+        "Combo" => "Combinado",+        "Comma" => "Millares",+        "Text to Columns|Comma" => "Coma",+        "Comma [0]" => "Millares [0]",+        "Comment:" => "Comentario:",+        "Comments and notes (C)" => "Comentarios y notas (C)",+        "Comments pane" => "Panel de comentarios",+        "Compatibility" => "Compatibilidad",+        "Conditional Formatting Rules Manager" => "Administrador de reglas de formato condicionales",+        "Conditional formats" => "Formatos condicionales",+        "Confidence Level (%):" => "Nivel de confianza (%):",+        "Confidence Level for Mean (%), blank for none:" => "Nivel de confianza para la media (%), en blanco para ninguno:",+        "Confidence interval" => "Intervalo de confianza",+        "Confidence level (%):" => "Nivel de confianza (%):",+        "Constant is Zero" => "Constante igual a cero",+        "Contributors" => "Colaboradores",+        "Convert Text to Columns" => "Convertir texto en columnas",+        "Convert the last ink stroke to a shape" => "Convertir el último trazo de tinta en una forma",+        "Convert to Number" => "Convertir en número",+        "Convert to Range" => "Convertir en rango",+        "Copies" => "Copias",+        "Copy (⌘C)" => "Copiar (⌘C)",+        "Correlation" => "Coeficiente de correlación",+        "Count" => "Recuento",+        "CountA" => "ContarA",+        "Covariance" => "Covarianza",+        "Create Forecast Worksheet" => "Crear hoja de previsión",+        "Create Sparklines" => "Crear minigráficos",+        "Create a copy" => "Crear una copia",+        "Cube" => "Cubo",+        "Cumulative Percentage" => "Porcentaje acumulado",+        "Currency [0]" => "Moneda [0]",+        "Current region" => "Región actual",+        "Custom (%):" => "Personalizado (%):",+        "Custom Sort" => "Orden personalizado",+        "Cut (⌘X)" => "Cortar (⌘X)",+        "Damping factor:" => "Factor de amortiguamiento:",+        "Data Range:" => "Rango de datos:",+        "Data and Model" => "Datos y modelo",+        "Data validation" => "Validación de datos",+        "Database" => "Base de datos",+        "Date & Time" => "Fecha y hora",+        "Date unit" => "Unidad de tiempo",+        "Day" => "Día",+        "Decimal" => "Decimal",+        "Define Name…" => "Definir nombre…",+        "Delete Comment" => "Eliminar comentario",+        "Delete Sheet" => "Eliminar hoja",+        "Delete chart" => "Eliminar gráfico",+        "Delete rows" => "Eliminar filas",+        "Delete…" => "Eliminar…",+        "Description (optional):" => "Descripción (opcional):",+        "Descriptive Statistics" => "Estadística descriptiva",+        "Destination:" => "Destino:",+        "Diagonal ↗" => "Diagonal ↗",+        "Diagonal ↘" => "Diagonal ↘",+        "Dismiss" => "Descartar",+        "Display:" => "Texto:",+        "Distributed" => "Distribuida",+        "Divide" => "Dividir",+        "Do you want to save the changes you made to {title}?" => "¿Desea guardar los cambios efectuados en {title}?",+        "Don't Save" => "No guardar",+        "Double" => "Doble",+        "Double Accounting" => "Doble contabilidad",+        "Doughnut" => "Anillo",+        "Down" => "Hacia abajo",+        "Drag to fill cells. Drag from inside a cell to select a range." => {+            "Arrastre para rellenar celdas. Arrastre desde dentro de una celda para seleccionar un rango."+        }+        "Duplicate Values…" => "Valores duplicados…",+        "Edit Name" => "Editar nombre",+        "Edit chart title" => "Editar título del gráfico",+        "Edit…" => "Editar…",+        "End date:" => "Fecha de finalización:",+        "Engineering" => "Ingeniería",+        "Entire column" => "Toda la columna",+        "Entire row" => "Toda la fila",+        "Equal To…" => "Es igual a…",+        "Erase ink strokes" => "Borrar trazos de tinta",+        "Error checking options" => "Opciones de comprobación de errores",+        "Error message:" => "Mensaje de error:",+        "Error style" => "Estilo de error",+        "Errors" => "Errores",+        "Every command run in this session (replayable)" => "Todos los comandos ejecutados en esta sesión (reproducibles)",+        "Expand formula bar" => "Expandir barra de fórmulas",+        "Explanatory Text" => "Texto explicativo",+        "Exponential Smoothing" => "Suavización exponencial",+        "Export as CSV…" => "Exportar como CSV…",+        "Export as PDF…" => "Exportar como PDF…",+        "Export as Web Page (.html)…" => "Exportar como página web (.html)…",+        "F-Test Two-Sample for Variances" => "Prueba F para varianzas de dos muestras",+        "Fill missing points using" => "Rellenar los puntos que faltan con",+        "Filter (⌘⇧F)" => "Filtro (⌘⇧F)",+        "Filter by Selected Cell's Value" => "Filtrar por el valor de la celda seleccionada",+        "Find" => "Buscar",+        "Find & Select" => "Buscar y seleccionar",+        "Find All" => "Buscar todo",+        "Find Next" => "Buscar siguiente",+        "Find and Replace" => "Buscar y reemplazar",+        "Find what:" => "Buscar:",+        "Finding printers…" => "Buscando impresoras…",+        "Fits inside the selected cell and moves with its content." => "Se ajusta dentro de la celda seleccionada y se mueve con su contenido.",+        "Flash Fill (⌘E)" => "Relleno rápido (⌘E)",+        "Font" => "Fuente",+        "Footer (in):" => "Pie de página (pulg.):",+        "Footer:" => "Pie de página:",+        "Forecast Sheet" => "Hoja de previsión",+        "Forecast end (date or number; blank: a third of the history):" => {+            "Fin de la previsión (fecha o número; en blanco: un tercio del historial):"+        }+        "Forecast start (a date or number in the history; blank: after the last point):" => {+            "Inicio de la previsión (una fecha o número del historial; en blanco: después del último punto):"+        }+        "Format Cells" => "Formato de celdas",+        "Format Cells|Fill" => "Relleno",+        "Format Chart Area…" => "Formato del área del gráfico…",+        "Format Chart pane" => "Panel Formato de gráfico",+        "Format as Table" => "Dar formato como tabla",+        "Format cells" => "Aplicar formato a las celdas",+        "Format cells that are (value):" => "Dar formato a las celdas que son (valor):",+        "Format cells that contain a date occurring:" => "Dar formato a las celdas que contienen una fecha:",+        "Format cells that contain the text:" => "Dar formato a las celdas que contienen el texto:",+        "Format columns" => "Aplicar formato a las columnas",+        "Format rows" => "Aplicar formato a las filas",+        "Format values where this formula is true:" => "Dar formato a los valores donde esta fórmula sea verdadera:",+        "Formats (T)" => "Formatos (T)",+        "Formula Builder" => "Generador de fórmulas",+        "Formula:" => "Fórmula:",+        "Formulas (F)" => "Fórmulas (F)",+        "Formulas and number formats" => "Fórmulas y formatos de números",+        "Funnel" => "Embudo",+        "GRG Nonlinear" => "GRG Nonlinear",+        "Go To" => "Ir a",+        "Go To Special" => "Ir a Especial",+        "Goal Seek" => "Buscar objetivo",+        "Goal Seeking found a solution: {value}" => "Buscar objetivo encontró una solución: {value}",+        "Good" => "Bueno",+        "Good, Bad and Neutral" => "Bueno, malo y neutral",+        "Gradebook" => "Libro de calificaciones",+        "Grayscale" => "Escala de grises",+        "Greater Than…" => "Mayor que…",+        "Green" => "Verde",+        "Green - White - Red" => "Verde - Blanco - Rojo",+        "Green - Yellow - Red" => "Verde - Amarillo - Rojo",+        "Green Fill with Dark Green Text" => "Relleno verde con texto verde oscuro",+        "Grouped By:" => "Agrupado por:",+        "Growth" => "Geométrica",+        "Header (&L left, &C center, &R right; &P page, &N pages, &D date, &A sheet):" => {+            "Encabezado (&L izquierda, &C centro, &R derecha; &P página, &N páginas, &D fecha, &A hoja):"+        }+        "Header (in):" => "Encabezado (pulg.):",+        "Heading 1" => "Encabezado 1",+        "Heading 2" => "Título 2",+        "Heading 3" => "Título 3",+        "Heading 4" => "Encabezado 4",+        "Hex" => "Hex",+        "Hidden" => "Oculta",+        "Hidden: {sheets}" => "Ocultas: {sheets}",+        "Hide Sheet" => "Ocultar hoja",+        "Hierarchy & more" => "Jerarquía y más",+        "Highlight Cells Rules" => "Reglas para resaltar las celdas",+        "Highlighter" => "Resaltador",+        "Histogram" => "Histograma",+        "Horizontal (Category) Axis Labels:" => "Etiquetas del eje horizontal (categoría):",+        "Horizontal axis title:" => "Título del eje horizontal:",+        "Household Budget" => "Presupuesto familiar",+        "How agents drive GridCraft (MCP / control channel)" => "Cómo controlan los agentes GridCraft (MCP / canal de control)",+        "Hypothesized Mean Difference:" => "Diferencia hipotética entre las medias:",+        "Ignore Once" => "Omitir una vez",+        "Ignore blank" => "Ignorar espacios en blanco",+        "Import a text or CSV file" => "Importar un archivo de texto o CSV",+        "In the last 7 days" => "En los últimos 7 días",+        "In-cell dropdown" => "Celda con lista desplegable",+        "Include forecast statistics" => "Incluir estadísticas de previsión",+        "Indent" => "Sangría",+        "Information" => "Información",+        "Input" => "Entrada",+        "Input Range:" => "Rango de entrada:",+        "Input X Range:" => "Rango X de entrada:",+        "Input Y Range:" => "Rango Y de entrada:",+        "Input message:" => "Mensaje de entrada:",+        "Insert\nSlicer" => "Insertar\nsegmentación",+        "Insert Calculated Field" => "Insertar campo calculado",+        "Insert Chart" => "Insertar gráfico",+        "Insert Function" => "Insertar función",+        "Insert Function (⇧F3)" => "Insertar función (⇧F3)",+        "Insert Hyperlink" => "Insertar hipervínculo",+        "Insert Link" => "Insertar vínculo",+        "Insert Link (⌘K)" => "Insertar vínculo (⌘K)",+        "Insert Slicer" => "Insertar segmentación de datos",+        "Insert a picture" => "Insertar una imagen",+        "Insert a slicer to filter a table" => "Insertar una segmentación de datos para filtrar una tabla",+        "Insert an icon" => "Insertar un icono",+        "Insert rows" => "Insertar filas",+        "Insert…" => "Insertar…",+        "Inside Borders" => "Bordes interiores",+        "Interpolation" => "Interpolación",+        "Interval:" => "Intervalo:",+        "Italic (⌘I)" => "Cursiva (⌘I)",+        "Join the ArtCraft Discord" => "Únase al Discord de ArtCraft",+        "Justify" => "Justificar",+        "Keep" => "Conservar",+        "Keep Solver Solution" => "Conservar solución de Solver",+        "Kth Largest (blank for none):" => "K-ésimo mayor (en blanco para ninguno):",+        "Kth Smallest (blank for none):" => "K-ésimo menor (en blanco para ninguno):",+        "Labels in first row" => "Rótulos en la primera fila",+        "Last cell" => "Última celda",+        "Last month" => "El mes pasado",+        "Last week" => "La semana pasada",+        "Left Border" => "Borde izquierdo",+        "Left margin (in):" => "Margen izquierdo (pulg.):",+        "Legend Entries (Series)" => "Entradas de leyenda (series)",+        "Less Than…" => "Es menor que…",+        "Light Blue" => "Azul claro",+        "Light Red Fill" => "Relleno rojo claro",+        "Light Red Fill with Dark Red Text" => "Relleno rojo claro con texto rojo oscuro",+        "Line" => "Línea",+        "Line chart" => "Gráfico de líneas",+        "Line or Area" => "Línea o área",+        "Line with Markers" => "Línea con marcadores",+        "Linear" => "Lineal",+        "Link to (web address, e-mail or Sheet!A1):" => "Vincular a (dirección web, correo electrónico u Hoja!A1):",+        "Linked Cell" => "Celda vinculada",+        "Link…" => "Vínculo…",+        "List" => "Lista",+        "Location Range:" => "Rango de ubicación:",+        "Locked" => "Bloqueada",+        "Lookup & Reference" => "Búsqueda y referencia",+        "Macros" => "Macros",+        "Macros and scripts in this workbook (Alt+F8)" => "Macros y scripts de este libro (Alt+F8)",+        "Make Unconstrained Variables Non-Negative" => "Convertir variables sin restricciones en no negativas",+        "Manage Rules…" => "Administrar reglas…",+        "Markers" => "Marcadores",+        "Match case" => "Hacer coincidir mayúsculas y minúsculas",+        "Match entire cell contents" => "Buscar solo celdas completas",+        "Math & Trig" => "Matemáticas y trigonométricas",+        "Max" => "Máx.",+        "Maximum:" => "Máximo:",+        "Median" => "Mediana",+        "Middle Align" => "Alinear en el medio",+        "Min" => "Mín.",+        "Minimum / Source / Formula:" => "Mínimo / Origen / Fórmula:",+        "Models" => "Modelos",+        "Modify" => "Modificar",+        "Month" => "Mes",+        "More Borders…" => "Más bordes…",+        "More Colors…" => "Más colores…",+        "More Functions…" => "Más funciones…",+        "More commands" => "Más comandos",+        "Move or Copy" => "Mover o copiar",+        "Move or Copy Sheet…" => "Mover o copiar hoja…",+        "Moving Average" => "Media móvil",+        "Multiply" => "Multiplicar",+        "My data has headers" => "Mis datos tienen encabezados",+        "My list has headers" => "Mi lista tiene encabezados",+        "Name" => "Nombre",+        "Name Manager" => "Administrador de nombres",+        "Name:" => "Nombre:",+        "Neutral" => "Neutral",+        "New Comment" => "Nuevo comentario",+        "New Name" => "Nombre nuevo",+        "New Rule…" => "Nueva regla…",+        "New Workbook" => "Libro nuevo",+        "New Worksheet Ply:" => "En una hoja nueva:",+        "New title (Modify):" => "Nuevo título (Modificar):",+        "New…" => "Nuevo…",+        "Next month" => "El mes próximo",+        "Next week" => "La semana próxima",+        "No Border" => "Sin borde",+        "No Fill" => "Sin relleno",+        "No names defined" => "No hay nombres definidos",+        "No picture selected" => "No se ha seleccionado ninguna imagen",+        "No printers found. Configure a system printer or export a PDF." => {+            "No se encontraron impresoras. Configure una impresora del sistema o exporte un PDF."+        }+        "No ranges yet." => "Aún no hay rangos.",+        "None" => "Ninguno",+        "Normal Probability" => "Gráfico de probabilidad normal",+        "Not in Dictionary ({cell}):" => "No está en el diccionario ({cell}):",+        "Note" => "Notas",+        "Note:" => "Nota:",+        "Number Format" => "Formato de número",+        "Number Stored as Text" => "Número almacenado como texto",+        "Numbers" => "Números",+        "OK" => "Aceptar",+        "One-sided" => "A una cara",+        "Open…" => "Abrir…",+        "Operation" => "Operación",+        "Options|Editing" => "Edición",+        "Orange" => "Naranja",+        "Orientation (degrees)" => "Orientación (grados)",+        "Other:" => "Otro:",+        "Output" => "Salida",+        "Output Range:" => "Rango de salida:",+        "Output options" => "Opciones de salida",+        "Outside Borders" => "Bordes externos",+        "Oval" => "Óvalo",+        "Page Break Preview" => "Vista previa de salto de página",+        "Page Breaks" => "Saltos de página",+        "Page Setup" => "Configurar página",+        "Paper Size" => "Tamaño de papel",+        "Pareto (sorted histogram)" => "Pareto (histograma ordenado)",+        "Password" => "Contraseña",+        "Password (optional):" => "Contraseña (opcional):",+        "Password:" => "Contraseña:",+        "Paste (⌘V)" => "Pegar (⌘V)",+        "Paste Special" => "Pegado especial",+        "Paste formulas that refer to the copied cells" => "Pegar fórmulas que hacen referencia a las celdas copiadas",+        "Pen\nBlack" => "Lápiz\nnegro",+        "Pen\nBlue" => "Lápiz\nazul",+        "Pen\nRed" => "Lápiz\nrojo",+        "Percent" => "Porcentaje",+        "Pick From Drop-down List…" => "Elegir de la lista desplegable…",+        "Pick From List" => "Elegir de la lista",+        "Picture file path (PNG or JPEG):" => "Ruta del archivo de imagen (PNG o JPEG):",+        "Pie" => "Circular",+        "Pie or Doughnut" => "Circular o anillo",+        "Place Picture in Cell" => "Colocar imagen en la celda",+        "Place Picture over Cells" => "Colocar imagen sobre las celdas",+        "Place in Cell" => "Colocar en la celda",+        "Place over Cells" => "Colocar sobre las celdas",+        "Print Area" => "Área de impresión",+        "Print Titles" => "Imprimir títulos",+        "Print failed: the printing worker stopped." => "Error al imprimir: el proceso de impresión se detuvo.",+        "Print failed: {error}" => "Error al imprimir: {error}",+        "Print job submitted." => "Trabajo de impresión enviado.",+        "Print job submitted: {receipt}" => "Trabajo de impresión enviado: {receipt}",+        "Printer" => "Impresora",+        "Printer default" => "Predeterminado de la impresora",+        "Printer discovery failed." => "No se pudieron buscar impresoras.",+        "Print…" => "Imprimir…",+        "Product" => "Producto",+        "Protect\nSheet" => "Proteger\nhoja",+        "Protect Sheet" => "Proteger hoja",+        "Protect Structure and Windows" => "Proteger estructura y ventanas",+        "Protect Workbook structure" => "Proteger la estructura del libro",+        "Protect workbook for: Structure (sheets can't be added, moved, renamed, hidden or deleted)." => {+            "Proteger libro para: Estructura (no se pueden agregar, mover, cambiar de nombre, ocultar ni eliminar hojas)."+        }+        "Protection" => "Proteger",+        "Purple" => "Morado",+        "Quarterly Sales Dashboard" => "Panel de ventas trimestrales",+        "Radar" => "Radial",+        "Range password:" => "Contraseña del rango:",+        "Ranges that stay editable when the sheet is protected:" => "Rangos que siguen siendo editables cuando la hoja está protegida:",+        "Rank and Percentile" => "Jerarquía y percentil",+        "Recent Colors" => "Colores recientes",+        "Recommended Charts" => "Gráficos recomendados",+        "Rectangle" => "Rectángulo",+        "Red" => "Rojo",+        "Red - Yellow - Green" => "Rojo - Amarillo - Verde",+        "Red Border" => "Borde rojo",+        "Red Text" => "Texto rojo",+        "Redo" => "Rehacer",+        "Redo (⌘Y)" => "Rehacer (⌘Y)",+        "Reference:" => "Referencia:",+        "Refers To" => "Se refiere a",+        "Refers to cells:" => "Se refiere a las celdas:",+        "Refers to:" => "Se refiere a:",+        "Refresh printers" => "Actualizar impresoras",+        "Regression" => "Regresión",+        "Remove" => "Quitar",+        "Remove Duplicates" => "Quitar duplicados",+        "Remove the password (Modify)" => "Quitar la contraseña (Modificar)",+        "Rename Sheet" => "Cambiar nombre de hoja",+        "Replace" => "Reemplazar",+        "Replace All" => "Reemplazar todo",+        "Replace with:" => "Reemplazar con:",+        "Residuals" => "Residuos",+        "Restore Original Values" => "Restaurar valores originales",+        "Right Border" => "Borde derecho",+        "Right margin (in):" => "Margen derecho (pulg.):",+        "Rounded Rectangle" => "Rectángulo redondeado",+        "Row Height" => "Alto de fila",+        "Row height (pixels):" => "Alto de fila (píxeles):",+        "Sample" => "Muestra",+        "Save (⌘S)" => "Guardar (⌘S)",+        "Save As…" => "Guardar como…",+        "Save Changes?" => "¿Guardar cambios?",+        "Save a Copy" => "Guardar una copia",+        "Save a Copy as Excel Workbook (.xlsx)…" => "Guardar una copia como libro de Excel (.xlsx)…",+        "Save a copy as .{format}" => "Guardar una copia como .{format}",+        "Scatter" => "Dispersión",+        "Scatter or Bubble" => "Dispersión o burbujas",+        "Scatter with Lines" => "Dispersión con líneas",+        "Scope" => "Ámbito",+        "Scope (Workbook or sheet name):" => "Ámbito (Workbook o nombre de hoja):",+        "ScreenTip:" => "Info en pantalla:",+        "Search" => "Buscar",+        "Search Commands" => "Buscar comandos",+        "Search and run any command" => "Buscar y ejecutar cualquier comando",+        "Search commands" => "Buscar comandos",+        "Search commands (⌘⇧Space)" => "Buscar comandos (⌘⇧Espacio)",+        "Search:" => "Buscar:",+        "Seasonality (auto, 0 for none, or a season length):" => "Estacionalidad (auto, 0 para ninguna o la duración de una temporada):",+        "Select" => "Seleccionar",+        "Select Data" => "Seleccionar datos",+        "Select Data Source" => "Seleccionar origen de datos",+        "Select Data…" => "Seleccionar datos…",+        "Select a Solving Method:" => "Método de resolución:",+        "Select a chart first." => "Seleccione primero un gráfico.",+        "Select a printer" => "Seleccionar una impresora",+        "Select and move ink and shapes" => "Seleccionar y mover tinta y formas",+        "Semicolon" => "Punto y coma",+        "Series" => "Series",+        "Series in" => "Series en",+        "Series{n}" => "Serie{n}",+        "Series…" => "Series…",+        "Set Objective:" => "Establecer objetivo:",+        "Set cell:" => "Establecer la celda:",+        "Share: export or save a copy" => "Compartir: exportar o guardar una copia",+        "Sheets: {sheets}" => "Hojas: {sheets}",+        "Shift cells down" => "Desplazar las celdas hacia abajo",+        "Shift cells left" => "Desplazar las celdas hacia la izquierda",+        "Shift cells right" => "Desplazar las celdas hacia la derecha",+        "Shift cells up" => "Desplazar las celdas hacia arriba",+        "Show Formulas (⌃`)" => "Mostrar fórmulas (⌃`)",+        "Show password" => "Mostrar contraseña",+        "Shrink to fit" => "Reducir hasta ajustar",+        "Single" => "Simple",+        "Single Accounting" => "Simple contabilidad",+        "Skip blanks" => "Saltar blancos",+        "Slicer" => "Segmentación de datos",+        "Solve" => "Resolver",+        "Solver Parameters" => "Parámetros de Solver",+        "Solver Results" => "Resultados de Solver",+        "Sort & Filter" => "Ordenar y filtrar",+        "Sort Ascending" => "Orden ascendente",+        "Sort Descending" => "Orden descendente",+        "Sort by" => "Ordenar por",+        "Source:" => "Origen:",+        "Space" => "Espacio",+        "Special…" => "Especial…",+        "Spelling (F7)" => "Ortografía (F7)",+        "Stacked Area" => "Área apilada",+        "Stacked Bar" => "Barra apilada",+        "Stacked Column" => "Columna apilada",+        "Stacked Line" => "Línea apilada",+        "Standard Colors" => "Colores estándar",+        "Standard Errors" => "Errores típicos",+        "Standard Width" => "Ancho estándar",+        "Standard column width (pixels):" => "Ancho de columna estándar (píxeles):",+        "Standardized Residuals" => "Residuos estándares",+        "Start a conversation:" => "Iniciar una conversación:",+        "Start a new workbook" => "Crear un libro nuevo",+        "Statistic" => "Estadístico",+        "Statistical" => "Estadísticas",+        "Step value:" => "Incremento:",+        "Stock" => "Cotizaciones",+        "Stop" => "Detener",+        "Stop value:" => "Límite:",+        "Subject to the Constraints:" => "Sujeto a las restricciones:",+        "Submitting print job…" => "Enviando trabajo de impresión…",+        "Subscript" => "Subíndice",+        "Subtract" => "Restar",+        "Suggestions:" => "Sugerencias:",+        "Sum" => "Suma",+        "Summary statistics" => "Resumen de estadísticas",+        "Sunburst" => "Proyección solar",+        "Superscript" => "Superíndice",+        "Switch Row/Column" => "Cambiar entre filas y columnas",+        "Tab" => "Tabulación",+        "Table (⌘T)" => "Tabla (⌘T)",+        "Table Styles" => "Estilos de tabla",+        "Tab|Insert" => "Insertar",+        "Text length" => "Longitud del texto",+        "Text that Contains…" => "Texto que contiene…",+        "Text to Columns" => "Texto en columnas",+        "The output range already holds data. Replace it with the report?" => {+            "El rango de salida ya contiene datos. ¿Desea reemplazarlos por el informe?"+        }+        "The spelling check is complete for the entire sheet." => "Se ha completado la revisión ortográfica de toda la hoja.",+        "Theme Colors" => "Colores del tema",+        "Themed Cell Styles" => "Estilos de celda temáticos",+        "Then by" => "A continuación por",+        "There are no conditional formatting rules on this sheet." => "No hay reglas de formato condicional en esta hoja.",+        "Thick Bottom Border" => "Borde inferior grueso",+        "Thick Outside Borders" => "Borde de cuadro grueso",+        "This month" => "Este mes",+        "This week" => "Esta semana",+        "This workbook" => "Este libro",+        "This workbook has no scripts or macros." => "Este libro no tiene scripts ni macros.",+        "Timeline range (blank: first column of the selection):" => "Rango de la escala de tiempo (en blanco: primera columna de la selección):",+        "Title:" => "Título:",+        "Titles and Headings" => "Títulos y encabezados",+        "To value:" => "Con el valor:",+        "To:" => "Para:",+        "Today" => "Hoy",+        "Tomorrow" => "Mañana",+        "Top" => "Superior",+        "Top Align" => "Alinear en la parte superior",+        "Top Border" => "Borde superior",+        "Top and Bottom Border" => "Borde superior e inferior",+        "Top and Double Bottom Border" => "Borde superior y borde doble inferior",+        "Top and Thick Bottom Border" => "Borde superior y borde inferior grueso",+        "Top margin (in):" => "Margen superior (pulg.):",+        "Top/Bottom Rules" => "Reglas para valores superiores e inferiores",+        "Total" => "Total",+        "Transpose (E)" => "Transponer (E)",+        "Treat consecutive delimiters as one" => "Considerar delimitadores consecutivos como uno solo",+        "Treemap" => "Rectángulos",+        "Triangle" => "Triángulo",+        "Two-sided printing" => "Impresión a doble cara",+        "Two-sided: long edge" => "A doble cara: borde largo",+        "Two-sided: short edge" => "A doble cara: borde corto",+        "Type" => "Tipo",+        "Type (custom format code):" => "Tipo (código de formato personalizado):",+        "Type a command, e.g. freeze, chart, bold…" => "Escriba un comando, p. ej. inmovilizar, gráfico, negrita…",+        "Type to filter…" => "Escriba para filtrar…",+        "Underline (⌘U)" => "Subrayado (⌘U)",+        "Undo" => "Deshacer",+        "Undo (⌘Z)" => "Deshacer (⌘Z)",+        "Undo list" => "Lista de deshacer",+        "Unhide" => "Mostrar",+        "Unhide Sheet…" => "Mostrar hoja…",+        "Unhide sheet:" => "Mostrar hoja:",+        "Unlock with password" => "Desbloquear con contraseña",+        "Unprotect Sheet" => "Desproteger hoja",+        "Unprotect Workbook" => "Desproteger libro",+        "Up" => "Hacia arriba",+        "Use AutoFilter" => "Usar Autofiltro",+        "Use function" => "Usar función",+        "Validation" => "Validación",+        "Value" => "Valor",+        "Value Of:" => "Valor de:",+        "Values (V)" => "Valores (V)",+        "Values and number formats" => "Valores y formatos de números",+        "Values range (blank: second column of the selection):" => "Rango de valores (en blanco: segunda columna de la selección):",+        "Variable 1 Range:" => "Rango para la variable 1:",+        "Variable 2 Range:" => "Rango para la variable 2:",+        "Version {version}" => "Versión {version}",+        "Vertical" => "Vertical",+        "Vertical axis title:" => "Título del eje vertical:",+        "Visible cells only" => "Solo celdas visibles",+        "Warning" => "Advertencia",+        "Warning Text" => "Texto de advertencia",+        "Watch\nWindow" => "Ventana\nInspección",+        "Waterfall" => "Cascada",+        "Web" => "Web",+        "Weekday" => "Día laborable",+        "What-If Analysis" => "Análisis de hipótesis",+        "White - Green" => "Blanco - Verde",+        "White - Red" => "Blanco - Rojo",+        "Whole number" => "Número entero",+        "Win/Loss" => "Ganancia o pérdida",+        "Within workbook" => "Dentro del libro",+        "Workbook" => "Libro",+        "Workbook\nStatistics" => "Estadísticas\ndel libro",+        "Workbook Statistics" => "Estadísticas del libro",+        "Wrap text" => "Ajustar texto",+        "Year" => "Año",+        "Yellow Fill with Dark Yellow Text" => "Relleno amarillo con texto amarillo oscuro",+        "Z to A" => "De Z a A",+        "Zeros" => "Ceros",+        "Zoom In" => "Acercar",+        "Zoom Out" => "Alejar",+        "Zoom to 100%" => "Zoom al 100%",+        "Zoom to Selection" => "Ampliar selección",+        "Zoom…" => "Zoom…",+        "and:" => "y:",+        "applies to" => "se aplica a",+        "between" => "entre",+        "dashed" => "discontinuo",+        "dotted" => "punteado",+        "double" => "doble",+        "e.g. lookup, average, date" => "p. ej. búsqueda, promedio, fecha",+        "equal to" => "igual a",+        "greater than" => "mayor que",+        "greater than or equal to" => "mayor o igual que",+        "less than" => "menor que",+        "less than or equal to" => "menor o igual que",+        "medium" => "mediano",+        "none" => "ninguno",+        "not between" => "no está entre",+        "not equal to" => "no igual a",+        "t-Test: Paired Two Sample for Means" => "Prueba t para medias de dos muestras emparejadas",+        "t-Test: Two-Sample Assuming Equal Variances" => "Prueba t para dos muestras suponiendo varianzas iguales",+        "t-Test: Two-Sample Assuming Unequal Variances" => "Prueba t para dos muestras suponiendo varianzas desiguales",+        "thick" => "grueso",+        "thin" => "fino",+        "this workbook" => "este libro",+        "with" => "con",+        "{count} cell(s) found" => "{count} celda(s) encontrada(s)",+        "£ English (United Kingdom)" => "£ Inglés (Reino Unido)",+        "¥ Japanese" => "¥ Japonés",+        "— 1 step" => "— 1 paso",+        "— VBA project (preserved, not run)" => "— Proyecto VBA (conservado, no ejecutado)",+        "— {steps} steps" => "— {steps} pasos",+        "€ Euro" => "€ Euro",         _ => return None,     }) }diff --git a/crates/ui-egui/src/i18n/it.rs b/crates/ui-egui/src/i18n/it.rs--- a/crates/ui-egui/src/i18n/it.rs+++ b/crates/ui-egui/src/i18n/it.rs@@ -527,6 +527,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Valori e formati numero",         "Operation" => "Operazione",         "Add" => "Aggiungi",+        "Paste Special|Add" => "Aggiungi",         "Subtract" => "Sottrai",         "Multiply" => "Moltiplica",         "Divide" => "Dividi",@@ -563,6 +564,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Tabulazione",         "Semicolon" => "Punto e virgola",         "Comma" => "Virgola",+        "Text to Columns|Comma" => "Virgola",         "Space" => "Spazio",         "Other:" => "Altro:",         "Treat consecutive delimiters as one" => "Considera delimitatori consecutivi come uno solo",diff --git a/crates/ui-egui/src/i18n/ja.rs b/crates/ui-egui/src/i18n/ja.rs--- a/crates/ui-egui/src/i18n/ja.rs+++ b/crates/ui-egui/src/i18n/ja.rs@@ -540,6 +540,7 @@ pub(super) const DIALOGS: &[(&str, &str)] = &[     ("Values and number formats", "値と数値の書式"),     ("Operation", "演算"),     ("Add", "加算"),+    ("Paste Special|Add", "加算"),     ("Subtract", "減算"),     ("Multiply", "乗算"),     ("Divide", "除算"),@@ -576,6 +577,7 @@ pub(super) const DIALOGS: &[(&str, &str)] = &[     ("Tab", "タブ"),     ("Semicolon", "セミコロン"),     ("Comma", "コンマ"),+    ("Text to Columns|Comma", "コンマ"),     ("Space", "スペース"),     ("Other:", "その他:"),     ("Treat consecutive delimiters as one", "連続した区切り文字は 1 文字として扱う"),diff --git a/crates/ui-egui/src/i18n/pl.rs b/crates/ui-egui/src/i18n/pl.rs--- a/crates/ui-egui/src/i18n/pl.rs+++ b/crates/ui-egui/src/i18n/pl.rs@@ -521,6 +521,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Wartości i formaty liczb",         "Operation" => "Operacja",         "Add" => "Dodaj",+        "Paste Special|Add" => "Dodaj",         "Subtract" => "Odejmij",         "Multiply" => "Pomnóż",         "Divide" => "Podziel",@@ -557,6 +558,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Tabulator",         "Semicolon" => "Średnik",         "Comma" => "Przecinek",+        "Text to Columns|Comma" => "Przecinek",         "Space" => "Spacja",         "Other:" => "Inny:",         "Treat consecutive delimiters as one" => "Traktuj kolejne ograniczniki jako jeden",diff --git a/crates/ui-egui/src/i18n/pt.rs b/crates/ui-egui/src/i18n/pt.rs--- a/crates/ui-egui/src/i18n/pt.rs+++ b/crates/ui-egui/src/i18n/pt.rs@@ -542,6 +542,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Valores e formatos de número",         "Operation" => "Operação",         "Add" => "Adicionar",+        "Paste Special|Add" => "Adicionar",         "Subtract" => "Subtrair",         "Multiply" => "Multiplicar",         "Divide" => "Dividir",@@ -578,6 +579,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Tabulação",         "Semicolon" => "Ponto e vírgula",         "Comma" => "Vírgula",+        "Text to Columns|Comma" => "Vírgula",         "Space" => "Espaço",         "Other:" => "Outros:",         "Treat consecutive delimiters as one" => "Considerar delimitadores consecutivos como um só",diff --git a/crates/ui-egui/src/i18n/ro.rs b/crates/ui-egui/src/i18n/ro.rs--- a/crates/ui-egui/src/i18n/ro.rs+++ b/crates/ui-egui/src/i18n/ro.rs@@ -527,6 +527,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Valori și formate de număr",         "Operation" => "Operație",         "Add" => "Adăugare",+        "Paste Special|Add" => "Adăugare",         "Subtract" => "Scădere",         "Multiply" => "Înmulțire",         "Divide" => "Împărțire",@@ -563,6 +564,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Tab",         "Semicolon" => "Punct și virgulă",         "Comma" => "Virgulă",+        "Text to Columns|Comma" => "Virgulă",         "Space" => "Spațiu",         "Other:" => "Altele:",         "Treat consecutive delimiters as one" => "Delimitatorii consecutivi se tratează ca unul singur",diff --git a/crates/ui-egui/src/i18n/uk.rs b/crates/ui-egui/src/i18n/uk.rs--- a/crates/ui-egui/src/i18n/uk.rs+++ b/crates/ui-egui/src/i18n/uk.rs@@ -525,6 +525,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Values and number formats" => "Values and number formats",         "Operation" => "Operation",         "Add" => "Add",+        "Paste Special|Add" => "Add",         "Subtract" => "Subtract",         "Multiply" => "Multiply",         "Divide" => "Divide",@@ -561,6 +562,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> {         "Tab" => "Tab",         "Semicolon" => "Semicolon",         "Comma" => "Comma",+        "Text to Columns|Comma" => "Comma",         "Space" => "Space",         "Other:" => "Other:",         "Treat consecutive delimiters as one" => "Treat consecutive delimiters as one",diff --git a/docs/gaps.md b/docs/gaps.md--- a/docs/gaps.md+++ b/docs/gaps.md@@ -1,6 +1,6 @@ # Gaps -> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-24 · **Change:** minor (§8: PivotTable Enable show details; earlier: PivotTable Show Details) · **Target:** Microsoft Excel (Microsoft 365)+> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-26 · **Change:** minor (§11: Spanish catalog covers every interface key) · **Target:** Microsoft Excel (Microsoft 365)  Every known shortfall against Excel, one entry each, ranked by user impact (what blocks someone using GridCraft for real work first). This is the work list: pick from the top, check the open@@ -107,7 +107,7 @@ No alpha blockers: every core workflow passes the [alpha gate](roadmap.md#alpha-  ### 11. No localization at all (L) - Catalog: ribbon-only in five languages (#31, #104, #82; ~12% of strings each), and 943 strings-  (~43%) in Japanese (10-17) and Brazilian Portuguese, including the dialog labels, messages, File+  (~43%) in Japanese (10-17) and Brazilian Portuguese, and 1,163 (~53%) in Spanish (10-26), including the dialog labels, messages, File   view and menus. The remaining dialogs, menus and messages are English; en-US function names and   separators (#45); German in PR #163. **Estimate:**   100–165 h including #5. [localization-parity.md](localization-parity.md)@@ -183,6 +183,7 @@ No alpha blockers: every core workflow passes the [alpha gate](roadmap.md#alpha-  | Date | Change | Summary | |---|---|---|+| 2026-10-26 | minor | §11: the Spanish catalog covers every key the other catalogs translate — 1,163 strings (~53%), 700 added | | 2026-10-24 | minor | §8: PivotTable Enable show details: `pivot.options` `enableShowDetails` turns Show Details off for a PivotTable, read and written in XLSX as `enableDrill` | | 2026-10-23 | minor | §8: PivotTable Show Details: double-clicking a value cell lists its source records on a new sheet (#2364) | | 2026-10-22 | minor | §20: a native window per workbook window, New Window on the same workbook and Arrange All on the desktop; left: Arrange All across monitors, the web's one window, pen pressure (estimate 10–14 h → 5–8 h) |diff --git a/docs/localization-parity.md b/docs/localization-parity.md--- a/docs/localization-parity.md+++ b/docs/localization-parity.md@@ -1,6 +1,6 @@ # Localization parity -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-23 · **Change:** minor (missing translations are listed by `cargo xtask i18n-report` and never fail a check) · **Target:** Microsoft Excel (Microsoft 365), Excel for Mac 16.113.4+> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-26 · **Change:** minor (Spanish catalog covers every interface key: 1,163 strings, ~53%) · **Target:** Microsoft Excel (Microsoft 365), Excel for Mac 16.113.4  Per-language status against Excel, which ships its UI in dozens of languages (Windows language packs cover 100+), with localized function names, argument separators, number and date formats,@@ -70,7 +70,7 @@ separators, number/date formats, machine translation with agent review, and scri |---|---|---|---|---|---|---|---| | English | en | ~2,200 / ~2,200 (100%, source) | yes | Latin: yes | yes | full | — | | Simplified Chinese (Mandarin) | zh-Hans | 266 (~12%) | no | CJK system-font fallback (#38); IME unverified; PDF can't export | no | menus only | 8–13 h |-| Spanish | es | 0 (0%) | no | Latin: yes | no | none | 6–10 h |+| Spanish | es | 1,163 (~53%) | dialogs, messages and tooltips (dialogs take effect with #669); function help for 10 functions | Latin: yes | no | menus, ribbon, File view, dialogs, Spanish formula names and `;` separators | 2–4 h | | Hindi | hi | 0 (0%) | no | Devanagari: **no shaping** | no | none | 12–18 h | | Arabic | ar | 0 (0%) | no | **no shaping, no RTL UI**; Sheet Right-to-Left mirrors the grid (#146) | no | none | 25–35 h | | French | fr | 0 (0%) | no | Latin: yes | no | none | 6–10 h |@@ -110,6 +110,8 @@ language (none so far) and of localized function names.  | Date | Change | Summary | |---|---|---|+| 2026-10-26 | minor | Spanish catalog (`i18n/es.rs`) covers every key the other catalogs translate: 700 labels added (dialogs, messages, tooltips, chart types, cell styles, Analysis Tools, Solver, printing) to the 463 it had, 1,163 keys, ~21% → ~53% (the row had said 0). Wording follows Excel's Spanish (libro, hoja, Buscar objetivo, Segmentación de datos); dialog text shows once #669 routes dialogs through the catalog. AI-assisted draft pending native-speaker review |+| 2026-10-26 | minor | Paste Special's Add operation and Text to Columns' Comma delimiter are keyed `Paste Special|Add` and `Text to Columns|Comma`, so they can be translated apart from the Solver's Add button and the Comma cell style (Spanish: Sumar vs Agregar, Coma vs Millares); every catalog keeps the text it showed | | 2026-10-23 | minor | Missing translations are reported, never a failure: `cargo xtask i18n-report` prints, per language, the strings other catalogs translate and it lacks (plus Spanish function help rows keyed by English the function catalog no longer has) and always passes; `cargo xtask ci` runs it first. Coverage and per-language parity tests and tests of one language's exact wording are gone; UI tests take the expected text from the catalog. Duplicate-key, placeholder, context-prefix and line-shape checks stay | | 2026-10-21 | minor | Romanian interface (`ro`, Română): 970 labels covering every key of the other catalogs (`crates/ui-egui/src/i18n/ro.rs`), `ro-*` system locales, the View-tab switcher and `app.language.set`; context keys show no prefix (File › Options test). English formulas and formats; AI-assisted draft pending native-speaker review | | 2026-10-20 | minor | Japanese: furigana (`rPh` phonetic runs and `<phoneticPr>` in `xl/sharedStrings.xml`) is no longer deleted by an open + save; it is kept on the workbook and written back (a `<phoneticPr>` without runs is kept too, while duplicate texts with different readings keep only the first, reported on open). Display of the readings is still missing (`crates/xlsx/src/tests/phonetic_tests.rs`) |