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
@@ -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`) |@@ -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" },@@ -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@@ -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" => "Αντιμετώπιση διαδοχικών διαχωριστικών ως ενός",@@ -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, }) }@@ -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",@@ -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 文字として扱う"),@@ -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",@@ -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ó",@@ -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",@@ -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",@@ -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) |@@ -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`) |