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 its
diff --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`) |
