From 028a02ba720ff380ac7e7f27f71d3c9a74e5784d Mon Sep 17 00:00:00 2001 From: Viorel Toader Date: Wed, 21 Oct 2026 09:49:25 +0300 Subject: [PATCH 1/3] Romanian (ro) interface language MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds Romanian as an interface language: crates/ui-egui/src/i18n/ro.rs with 970 labels covering every key of the other catalogs, registered in Language (switcher, app.language.set, ro-* system locales). Context keys translate without their prefix; the File › Options kittest covers ro. English formulas and formats; no proofing. The catalog is an AI-assisted draft written from the meaning of the English labels; a native speaker has not yet reviewed it line by line. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JadgGo4G2GHaAMNb3qyygk --- crates/ui-egui/src/i18n.rs | 20 +- crates/ui-egui/src/i18n/ro.rs | 990 ++++++++++++++++++++++++++++++ crates/ui-egui/tests/file_menu.rs | 1 + docs/localization-parity.md | 3 +- 4 files changed, 1012 insertions(+), 2 deletions(-) create mode 100644 crates/ui-egui/src/i18n/ro.rs diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index 98919f8a4..ad5c767d4 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -15,6 +15,7 @@ mod es; mod fr; mod ko; mod pt; +mod ro; mod ru; mod sr; mod zh; @@ -35,10 +36,12 @@ pub enum Language { Cs, Fr, Sr, + Ro, } impl Language { - pub const ALL: [Self; 11] = [Self::En, Self::Es, Self::Zh, Self::Ja, Self::Ko, Self::Ru, Self::PtBr, Self::De, Self::Cs, Self::Fr, Self::Sr]; + pub const ALL: [Self; 12] = + [Self::En, Self::Es, Self::Zh, Self::Ja, Self::Ko, Self::Ru, Self::PtBr, Self::De, Self::Cs, Self::Fr, Self::Sr, Self::Ro]; /// The language's own name, shown in the switcher. pub fn name(self) -> &'static str { @@ -54,6 +57,7 @@ impl Language { Self::Cs => "Čeština", Self::Fr => "Français", Self::Sr => "Srpski", + Self::Ro => "Română", } } @@ -71,6 +75,7 @@ impl Language { Self::Cs => "cs", Self::Fr => "fr", Self::Sr => "sr", + Self::Ro => "ro", } } @@ -91,6 +96,7 @@ impl Language { "cs" => Some(Self::Cs), "fr" => Some(Self::Fr), "sr" => Some(Self::Sr), + "ro" => Some(Self::Ro), _ => None, } } @@ -129,6 +135,7 @@ impl Language { Self::Cs => cs::translate(text), Self::Fr => fr::translate(text), Self::Sr => sr::translate(text), + Self::Ro => ro::translate(text), }; translated.unwrap_or_else(|| text.rsplit_once('|').map_or(text, |(_, label)| label)) } @@ -611,6 +618,7 @@ mod tests { assert!(cs::translate(english).is_some_and(|text| !text.is_empty()), "missing Czech: {english}"); assert!(fr::translate(english).is_some_and(|text| !text.is_empty()), "missing French: {english}"); assert!(sr::translate(english).is_some_and(|text| !text.is_empty()), "missing Serbian: {english}"); + assert!(ro::translate(english).is_some_and(|text| !text.is_empty()), "missing Romanian: {english}"); } assert_eq!(Language::Ja.tr("Data"), "データ"); assert_eq!(Language::Zh.tr("Data"), "数据"); @@ -644,6 +652,10 @@ mod tests { assert_eq!(Language::Sr.tr("Sheet1!A1"), "Sheet1!A1"); assert_eq!(Language::Sr.tr("Page Layout|Orientation"), "Orijentacija"); assert_eq!(Language::Sr.tr("Orientation"), "Orijentacija"); + assert_eq!(Language::Ro.tr("Data"), "Date"); + assert_eq!(Language::Ro.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::Ro.tr("Page Layout|Orientation"), "Orientare"); + assert_eq!(Language::Ro.tr("Orientation"), "Orientare text"); assert_eq!(Language::parse("xx"), None); } @@ -698,6 +710,9 @@ mod tests { assert_eq!(Language::Sr.tr("Options|General"), "Opšte"); assert_eq!(Language::Sr.tr("Options|Save"), "Sačuvaj"); assert_eq!(Language::Sr.tr("Sheet Options|View"), "Prikaz"); + assert_eq!(Language::Ro.tr("Options|General"), "General"); + assert_eq!(Language::Ro.tr("Options|Save"), "Salvare"); + assert_eq!(Language::Ro.tr("Sheet Options|View"), "Vizualizare"); } #[test] @@ -738,6 +753,9 @@ mod tests { assert_eq!(Language::from_tag("sr-Latn-RS"), Some(Language::Sr)); assert_eq!(Language::from_tag("sr-RS"), Some(Language::Sr)); assert_eq!(Language::parse("sr"), Some(Language::Sr)); + assert_eq!(Language::from_tag("ro-RO"), Some(Language::Ro)); + assert_eq!(Language::from_tag("ro_MD.UTF-8"), Some(Language::Ro)); + assert_eq!(Language::parse("ro"), Some(Language::Ro)); } #[test] diff --git a/crates/ui-egui/src/i18n/ro.rs b/crates/ui-egui/src/i18n/ro.rs new file mode 100644 index 000000000..5fc8ad14b --- /dev/null +++ b/crates/ui-egui/src/i18n/ro.rs @@ -0,0 +1,990 @@ +//! Romanian translations for the interface strings in i18n.rs. +//! +//! Written from the plain meaning of the English labels in ordinary Romanian computing vocabulary; +//! no Microsoft Excel (or other product) localisation was consulted. Commands use the noun form +//! usual in Romanian software ("Salvare", "Inserare…") and messages address the user formally. +//! An AI-assisted draft (Claude) for a Romanian-speaking contributor, pending native-speaker review. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Lipire", + "Paste Values" => "Lipire valori", + "Paste Formulas" => "Lipire formule", + "Paste Formatting" => "Lipire formatare", + "Transpose" => "Transpunere", + "Paste Link" => "Lipire link", + "Paste Special…" => "Lipire specială…", + "Insert Copied Cells" => "Inserare celule copiate", + "Insert Copied Cells…" => "Inserare celule copiate…", + "Insert Cut Cells" => "Inserare celule decupate", + "Insert Paste" => "Inserare prin lipire", + "Cut (⌘X)" => "Decupare (⌘X)", + "Copy (⌘C)" => "Copiere (⌘C)", + "Format Painter (double-click to keep it on)" => "Pensulă de formatare (dublu clic pentru a o menține activă)", + "Bold (⌘B)" => "Aldin (⌘B)", + "Italic (⌘I)" => "Cursiv (⌘I)", + "Underline (⌘U)" => "Subliniere (⌘U)", + "Double Underline" => "Subliniere dublă", + "Strikethrough" => "Tăiere cu o linie", + "Underline" => "Subliniere", + "Increase Font Size" => "Mărire font", + "Decrease Font Size" => "Micșorare font", + "Wrap Text" => "Încadrare text", + "Merge & Center" => "Îmbinare și centrare", + "Merge Cells" => "Îmbinare celule", + "Merge Across" => "Îmbinare pe rânduri", + "Unmerge Cells" => "Anulare îmbinare celule", + "Fill Color" => "Culoare de umplere", + "Font Color" => "Culoare font", + "Borders" => "Borduri", + "Top\nAlign" => "Aliniere\nsus", + "Middle\nAlign" => "Aliniere\nla mijloc", + "Bottom\nAlign" => "Aliniere\njos", + "Left" => "Stânga", + "Right" => "Dreapta", + "Center" => "Centru", + "Horizontal" => "Orizontal", + "Vertical Text" => "Text vertical", + "Decrease Indent" => "Micșorare indent", + "Increase Indent" => "Mărire indent", + "Orientation" => "Orientare text", + "Angle Counterclockwise" => "Înclinare în sens invers acelor de ceasornic", + "Angle Clockwise" => "Înclinare în sensul acelor de ceasornic", + "Rotate Text Up" => "Rotire text în sus", + "Rotate Text Down" => "Rotire text în jos", + "Accounting Number Format" => "Format de număr contabil", + "Percent Style" => "Stil procent", + "Comma Style" => "Stil virgulă", + "Increase Decimal" => "Mărire zecimale", + "Decrease Decimal" => "Micșorare zecimale", + "More Accounting Formats…" => "Mai multe formate contabile…", + "Conditional\nFormatting" => "Formatare\ncondiționată", + "Conditional Formatting" => "Formatare condiționată", + "Format\nas Table" => "Formatare\nca tabel", + "Cell\nStyles" => "Stiluri de\ncelulă", + "Format Cells…" => "Formatare celule…", + "Format Cell Alignment…" => "Formatare aliniere celulă…", + "Format\nPane" => "Panou\nformatare", + "Format" => "Format", + "Insert" => "Inserare", + "Insert Cells…" => "Inserare celule…", + "Delete" => "Ștergere", + "Delete Cells…" => "Ștergere celule…", + "Insert Sheet Rows" => "Inserare rânduri în foaie", + "Insert Sheet Columns" => "Inserare coloane în foaie", + "Delete Sheet Rows" => "Ștergere rânduri din foaie", + "Delete Sheet Columns" => "Ștergere coloane din foaie", + "Row Height…" => "Înălțime rând…", + "AutoFit Row Height" => "Potrivire automată înălțime rând", + "Column Width…" => "Lățime coloană…", + "AutoFit Column Width" => "Potrivire automată lățime coloană", + "Default Width…" => "Lățime implicită…", + "Hide Rows" => "Ascundere rânduri", + "Unhide Rows" => "Reafișare rânduri", + "Hide Columns" => "Ascundere coloane", + "Unhide Columns" => "Reafișare coloane", + "Lock Cell" => "Blocare celulă", + "Clear" => "Golire", + "Clear All" => "Golire totală", + "Clear Formats" => "Golire formate", + "Clear Contents" => "Golire conținut", + "Clear Comments and Notes" => "Golire comentarii și note", + "Clear Hyperlinks" => "Golire hyperlinkuri", + "AutoSum" => "Însumare automată", + "AutoSum (⌘⇧T)" => "Însumare automată (⌘⇧T)", + "Flash\nFill" => "Completare\nrapidă", + "Flash Fill" => "Completare rapidă", + "Fill" => "Umplere", + "Clear Print Area" => "Golire zonă de imprimare", + "Find &\nSelect" => "Găsire și\nselectare", + "Find…" => "Găsire…", + "Replace…" => "Înlocuire…", + "Go To…" => "Salt la…", + "Go To Special…" => "Salt la special…", + "PivotTable" => "PivotTable", + "Recommended\nCharts" => "Diagrame\nrecomandate", + "Table" => "Tabel", + "Pictures" => "Imagini", + "Shapes" => "Forme", + "Icons" => "Pictograme", + "Text\nBox" => "Casetă\nde text", + "Comment" => "Comentariu", + "New\nComment" => "Comentariu\nnou", + "New Note" => "Notă nouă", + "Show/Hide Note" => "Afișare/ascundere notă", + "Header &\nFooter" => "Antet și\nsubsol", + "Text to\nColumns" => "Text în\ncoloane", + "Link" => "Link", + "Symbol" => "Simbol", + "Sparklines" => "Diagrame sparkline", + "Checkbox" => "Casetă de selectare", + "Insert checkboxes in the selected cells" => "Inserați casete de selectare în celulele selectate", + "Header & Footer" => "Antet și subsol", + "Draw with ink" => "Desenare cu cerneală", + "Eraser" => "Radieră", + "Ink to\nShape" => "Cerneală în\nformă", + "Select\nObjects" => "Selectare\nobiecte", + "Themes" => "Teme", + "Margins" => "Margini", + "Left Margin" => "Margine stânga", + "Right Margin" => "Margine dreapta", + "Top Margin" => "Margine sus", + "Bottom Margin" => "Margine jos", + "Header Margin" => "Margine antet", + "Footer Margin" => "Margine subsol", + "Size" => "Dimensiune", + "Print\nArea" => "Zonă de\nimprimare", + "Set Print Area" => "Setare zonă de imprimare", + "Breaks" => "Întreruperi", + "Insert Page Break" => "Inserare întrerupere de pagină", + "Remove Page Break" => "Eliminare întrerupere de pagină", + "Reset All Page Breaks" => "Reinițializare toate întreruperile de pagină", + "Print\nTitles" => "Imprimare\ntitluri", + "Sheet\nRight-to-Left" => "Foaie de la\ndreapta la stânga", + "Sheet Right-to-Left" => "Foaie de la dreapta la stânga", + "Narrow" => "Îngust", + "Wide" => "Lat", + "Normal" => "Normală", + "Portrait" => "Portret", + "Landscape" => "Peisaj", + "Custom Margins…" => "Margini personalizate…", + "Insert\nFunction" => "Inserare\nfuncție", + "Name\nManager" => "Manager\nde nume", + "Define Name" => "Definire nume", + "Use in Formula" => "Utilizare în formulă", + "Create from Selection" => "Creare din selecție", + "Trace Precedents" => "Trasare precedențe", + "Trace Dependents" => "Trasare dependențe", + "Remove Arrows" => "Eliminare săgeți", + "Show Formulas" => "Afișare formule", + "Error Checking" => "Verificare erori", + "Evaluate Formula" => "Evaluare formulă", + "Watch Window" => "Fereastră de urmărire", + "Calculation\nOptions" => "Opțiuni de\ncalcul", + "Calculate Now" => "Calculare acum", + "Calculate Sheet" => "Calculare foaie", + "Automatic" => "Automat", + "Automatic Except for Data Tables" => "Automat, cu excepția tabelelor de date", + "Manual" => "Manual", + "Sort &\nFilter" => "Sortare și\nfiltrare", + "Sort" => "Sortare", + "Sort A to Z" => "Sortare de la A la Z", + "Sort Z to A" => "Sortare de la Z la A", + "Custom Sort…" => "Sortare particularizată…", + "Filter" => "Filtrare", + "Reapply" => "Reaplicare", + "Get Data\n(Text/CSV)" => "Preluare date\n(text/CSV)", + "Remove\nDuplicates" => "Eliminare\ndubluri", + "Data\nValidation" => "Validare\ndate", + "Data Validation" => "Validare date", + "Data Validation…" => "Validare date…", + "Circle Invalid Data" => "Încercuire date nevalide", + "Clear Validation" => "Golire validare", + "Group" => "Grupare", + "Ungroup" => "Anulare grupare", + "Show Detail" => "Afișare detalii", + "Hide Detail" => "Ascundere detalii", + "Subtotal" => "Subtotal", + "Data\nAnalysis" => "Analiză\ndate", + "Data Analysis" => "Analiză date", + "Solver" => "Solver", + "What-If\nAnalysis" => "Analiză\nce-ar fi dacă", + "Data Table…" => "Tabel de date…", + "Scenario Manager…" => "Manager de scenarii…", + "Goal Seek…" => "Căutare rezultat…", + "Forecast\nSheet" => "Foaie de\nprognoză", + "Spelling" => "Ortografie", + "Check\nAccessibility" => "Verificare\naccesibilitate", + "Threaded Comments" => "Comentarii în fir", + "Show\nComments" => "Afișare\ncomentarii", + "Previous" => "Anteriorul", + "Next" => "Următorul", + "Previous Comment" => "Comentariul anterior", + "Next Comment" => "Comentariul următor", + "Show All Notes" => "Afișare toate notele", + "Convert to Comments" => "Conversie în comentarii", + "Protect\nWorkbook" => "Protejare\nregistru", + "Allow Edit\nRanges" => "Permitere editare\nzone", + "Allow Edit Ranges" => "Permitere editare zone", + "Unprotect\nSheet" => "Deprotejare\nfoaie", + "Protect Sheet…" => "Protejare foaie…", + "Comments" => "Comentarii", + "Notes" => "Note", + "Page Break\nPreview" => "Examinare\nsfârșituri de pagină", + "Page\nLayout" => "Aspect\npagină", + "Formula Bar" => "Bară de formule", + "Gridlines" => "Linii de grilă", + "Headings" => "Titluri", + "Zoom" => "Zoom", + "100%" => "100%", + "Zoom to\nSelection" => "Zoom la\nselecție", + "Freeze\nPanes" => "Înghețare\npanouri", + "Freeze Panes" => "Înghețare panouri", + "Freeze Top Row" => "Înghețare rândul de sus", + "Freeze First Column" => "Înghețare prima coloană", + "Unfreeze Panes" => "Anulare înghețare panouri", + "Dark Mode" => "Mod întunecat", + "Interface language" => "Limba interfeței", + "Interface size" => "Dimensiunea interfeței", + "Auto" => "Automat", + "Drag to freeze columns" => "Trageți pentru a îngheța coloane", + "Drag to freeze rows" => "Trageți pentru a îngheța rânduri", + "Command\nPalette" => "Paleta de\ncomenzi", + "Agent\nControl" => "Control prin\nagenți", + "Action\nJournal" => "Jurnal de\nacțiuni", + "About\nGridCraft" => "Despre\nGridCraft", + "Share" => "Partajare", + "Add Chart\nElement" => "Adăugare element\nde diagramă", + "Change\nChart Type" => "Schimbare\ntip diagramă", + "Switch\nRow/Column" => "Comutare\nrând/coloană", + "Select\nData" => "Selectare\ndate", + "Data Labels: None" => "Etichete de date: niciuna", + "Data Labels: Show" => "Etichete de date: afișare", + "Legend: None" => "Legendă: niciuna", + "Legend: Bottom" => "Legendă: jos", + "Legend: Top" => "Legendă: sus", + "Legend: Right" => "Legendă: dreapta", + "Gridlines: None" => "Linii de grilă: niciuna", + "Gridlines: Show" => "Linii de grilă: afișare", + "Chart\nTitle" => "Titlu\ndiagramă", + "Delete\nChart" => "Ștergere\ndiagramă", + "Convert\nto Range" => "Conversie\nîn zonă", + "Table\nStyles" => "Stiluri\nde tabel", + "Top 10 Items" => "Primele 10 elemente", + "Top 10%" => "Primele 10%", + "Bottom 10 Items" => "Ultimele 10 elemente", + "Bottom 10%" => "Ultimele 10%", + "Above Average" => "Peste medie", + "Below Average" => "Sub medie", + "Clear Rules from Entire Sheet" => "Golire reguli din toată foaia", + "Clear Rules from Selected Cells" => "Golire reguli din celulele selectate", + "Constants" => "Constante", + "Data Bars" => "Bare de date", + "Color Scales" => "Scale de culori", + "Icon Sets" => "Seturi de pictograme", + "Home" => "Pornire", + "Draw" => "Desenare", + "Page Layout" => "Aspect pagină", + "Formulas" => "Formule", + "Data" => "Date", + "Review" => "Revizuire", + "View" => "Vizualizare", + "Automate" => "Automatizare", + "Table Design" => "Design tabel", + "Chart Design" => "Proiectare diagramă", + "Ready" => "Gata", + "Enter" => "Enter", + "Edit" => "Editare", + "Point" => "Punct", + "Calculate" => "Calcul", + "Select destination and press Enter or choose Paste" => "Selectați destinația și apăsați Enter sau alegeți Lipire", + "General" => "General", + "Number" => "Număr", + "Currency" => "Monedă", + "Accounting" => "Contabilitate", + "Date" => "Dată", + "Time" => "Oră", + "Percentage" => "Procent", + "Fraction" => "Fracție", + "Scientific" => "Științific", + "Text" => "Text", + "Special" => "Special", + "Custom" => "Personalizat", + "Short Date" => "Dată scurtă", + "Long Date" => "Dată lungă", + "More Number Formats…" => "Mai multe formate de număr…", + "Financial" => "Financiare", + "Logical" => "Logice", + "Date &\nTime" => "Dată și\noră", + "Lookup &\nReference" => "Căutare și\nreferință", + "Math &\nTrig" => "Matematică și\ntrigonometrie", + "More\nFunctions" => "Mai multe\nfuncții", + "Page Layout|Orientation" => "Orientare", + "Display theme" => "Temă de afișare", + "Animations" => "Animații", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Mută lin conturul selecției la celula spre care vă deplasați, în loc să sară acolo" + } + "System" => "Sistem", + "Light" => "Luminoasă", + "Dark" => "Întunecată", + "Sheet Options|View" => "Vizualizare", + "Print" => "Imprimare", + "Click to add data" => "Faceți clic pentru a adăuga date", + "Add header" => "Adăugare antet", + "Add footer" => "Adăugare subsol", + "(none)" => "(niciunul)", + "Header" => "Antet", + "Footer" => "Subsol", + "Page\nNumber" => "Număr de\npagină", + "Number\nof Pages" => "Număr\nde pagini", + "Current\nDate" => "Data\ncurentă", + "Current\nTime" => "Ora\ncurentă", + "File\nPath" => "Calea\nfișierului", + "File\nName" => "Nume\nfișier", + "Sheet\nName" => "Numele\nfoii", + "Go to\nHeader" => "Salt la\nantet", + "Go to\nFooter" => "Salt la\nsubsol", + "Page Number" => "Număr de pagină", + "Number of Pages" => "Număr de pagini", + "Current Date" => "Data curentă", + "Current Time" => "Ora curentă", + "File Path" => "Calea fișierului", + "File Name" => "Nume fișier", + "Sheet Name" => "Numele foii", + "Go to Header" => "Salt la antet", + "Different First Page" => "Prima pagină diferită", + "Different Odd & Even Pages" => "Pagini pare și impare diferite", + "Go to Footer" => "Salt la subsol", + "Ruler" => "Riglă", + "File" => "Fișier", + "Back" => "Înapoi", + "New" => "Nou", + "Open" => "Deschidere", + "Info" => "Informații", + "Save" => "Salvare", + "Save As" => "Salvare ca", + "Export" => "Exportare", + "Close" => "Închidere", + "Options" => "Opțiuni", + "Blank workbook" => "Registru gol", + "Recent" => "Recente", + "No recent workbooks yet." => "Încă niciun registru recent.", + "More workbooks" => "Mai multe registre", + "Modified" => "Modificat", + "Not available" => "Indisponibil", + "Just now" => "Chiar acum", + "{n} min ago" => "acum {n} min", + "{n} h ago" => "acum {n} h", + "{n} days ago" => "acum {n} zile", + "{n} weeks ago" => "acum {n} săptămâni", + "{n} months ago" => "acum {n} luni", + "{n} years ago" => "acum {n} ani", + "Browse…" => "Răsfoire…", + "Not saved yet" => "Încă nesalvat", + "Location" => "Locație", + "Sheets" => "Foi", + "Protect Workbook" => "Protejare registru", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "Structura registrului este blocată: foile nu pot fi adăugate, mutate, redenumite sau șterse." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Blochează structura registrului, ca foile să nu poată fi adăugate, mutate, redenumite sau șterse." + } + "Properties" => "Proprietăți", + "Title" => "Titlu", + "Subject" => "Subiect", + "Author" => "Autor", + "Company" => "Companie", + "Keywords" => "Cuvinte cheie", + "Description" => "Descriere", + "No workbook is open." => "Niciun registru nu este deschis.", + "Save as type" => "Tip fișier", + "Excel Workbook (*.xlsx)" => "Registru Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (delimitat prin virgulă) (*.csv)", + "Web Page (*.html)" => "Pagină web (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Descărcare", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Un fișier CSV, o pagină web sau un PDF este o copie: registrul își păstrează propriul fișier." + } + "Save the workbook under another name or in another folder." => "Salvează registrul cu alt nume sau în alt folder.", + "Print Active Sheets" => "Imprimare foi active", + "Print Entire Workbook" => "Imprimare tot registrul", + "Fit Sheet on One Page" => "Încadrare foaie pe o pagină", + "Page Setup…" => "Inițializare pagină…", + "Page {page} of {pages}" => "Pagina {page} din {pages}", + "Nothing to print." => "Nimic de imprimat.", + "Previous page" => "Pagina anterioară", + "Next page" => "Pagina următoare", + "Create PDF" => "Creare PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Salvează foaia ca document PDF care își păstrează aspectul paginii.", + "Change File Type" => "Schimbare tip de fișier", + "CSV (Comma delimited)" => "CSV (delimitat prin virgulă)", + "Save the active sheet as comma-separated text." => "Salvează foaia activă ca text separat prin virgule.", + "Web Page (.html)" => "Pagină web (.html)", + "Save the workbook as a web page." => "Salvează registrul ca pagină web.", + "Options|General" => "General", + "Options|Save" => "Salvare", + "Show formula bar" => "Afișare bară de formule", + "Enable AutoComplete for cell values" => "Activare completare automată pentru valorile din celule", + "Save .xlsx workbooks automatically after every change" => "Salvează automat registrele .xlsx după fiecare modificare", + "Workbook calculation" => "Calculul registrului", + "Enable iterative calculation" => "Activare calcul iterativ", + "Calculation settings are saved with the workbook." => "Setările de calcul se salvează împreună cu registrul.", + "OK" => "OK", + "Cancel" => "Anulare", + "Don't Save" => "Nu salva", + "Open…" => "Deschidere…", + "Show password" => "Afișare parolă", + "Start a new workbook" => "Începeți un registru nou", + "Household Budget" => "Buget familial", + "Quarterly Sales Dashboard" => "Tablou de bord vânzări trimestriale", + "Gradebook" => "Catalog de note", + "this workbook" => "acest registru", + "This workbook" => "Acest registru", + "Do you want to save the changes you made to {title}?" => "Doriți să salvați modificările făcute în {title}?", + "Save a copy as .{format}" => "Salvare copie ca .{format}", + "Select a chart first." => "Selectați mai întâi o diagramă.", + "Text Box" => "Casetă de text", + "Select Data" => "Selectare date", + "Row Height" => "Înălțime rând", + "Column Width" => "Lățime coloană", + "Standard Width" => "Lățime standard", + "Rename Sheet" => "Redenumire foaie", + "Move or Copy" => "Mutare sau copiere", + "Protect Sheet" => "Protejare foaie", + "Protect Structure and Windows" => "Protejare structură și ferestre", + "Unprotect Workbook" => "Deprotejare registru", + "Unprotect Sheet" => "Deprotejare foaie", + "Password" => "Parolă", + "Unhide" => "Reafișare", + "Paste Special" => "Lipire specială", + "Series" => "Serie", + "New Comment" => "Comentariu nou", + "Insert Hyperlink" => "Inserare hyperlink", + "Create Sparklines" => "Creare diagrame sparkline", + "Page Setup" => "Configurare pagină", + "Convert Text to Columns" => "Conversie text în coloane", + "Remove Duplicates" => "Eliminare dubluri", + "Goal Seek" => "Căutare rezultat", + "Create Forecast Worksheet" => "Creare foaie de prognoză", + "Solver Parameters" => "Parametri Solver", + "Solver Results" => "Rezultate Solver", + "Edit Name" => "Editare nume", + "New Name" => "Nume nou", + "Format Cells" => "Formatare celule", + "Formula Builder" => "Generator de formule", + "Find and Replace" => "Găsire și înlocuire", + "Go To" => "Salt la", + "Insert Calculated Field" => "Inserare câmp calculat", + "Go To Special" => "Salt la special", + "Name Manager" => "Manager de nume", + "Conditional Formatting Rules Manager" => "Manager de reguli de formatare condiționată", + "Search Commands" => "Căutare comenzi", + "Agent Control" => "Control prin agenți", + "About GridCraft" => "Despre GridCraft", + "Insert Chart" => "Inserare diagramă", + "Select Data Source" => "Selectare sursă de date", + "Action Journal" => "Jurnal de acțiuni", + "Macros" => "Macrocomenzi", + "Workbook Statistics" => "Statistici registru", + "Accessibility" => "Accesibilitate", + "Chart Title" => "Titlu diagramă", + "Place Picture in Cell" => "Plasare imagine în celulă", + "Place Picture over Cells" => "Plasare imagine peste celule", + "Pick From List" => "Alegere din listă", + "Save a Copy" => "Salvare copie", + "Save Changes?" => "Salvați modificările?", + "Shift cells right" => "Deplasare celule la dreapta", + "Shift cells down" => "Deplasare celule în jos", + "Shift cells left" => "Deplasare celule la stânga", + "Shift cells up" => "Deplasare celule în sus", + "Entire row" => "Tot rândul", + "Entire column" => "Toată coloana", + "Row height (pixels):" => "Înălțime rând (pixeli):", + "Column width (characters):" => "Lățime coloană (caractere):", + "Standard column width (pixels):" => "Lățime standard coloană (pixeli):", + "Name:" => "Nume:", + "Before sheet (position, 0 = first):" => "Înainte de foaia (poziție, 0 = prima):", + "Create a copy" => "Crearea unei copii", + "Sheets: {sheets}" => "Foi: {sheets}", + "Password (optional):" => "Parolă (opțional):", + "Password:" => "Parolă:", + "Allow all users of this sheet to:" => "Permiteți tuturor utilizatorilor acestei foi să:", + "Format cells" => "Formatare celule", + "Format columns" => "Formatare coloane", + "Format rows" => "Formatare rânduri", + "Insert rows" => "Inserare rânduri", + "Delete rows" => "Ștergere rânduri", + "Use AutoFilter" => "Utilizare Filtru automat", + " (password, unlocked)" => " (parolă, deblocat)", + " (password)" => " (parolă)", + "No ranges yet." => "Încă nicio zonă.", + "Ranges that stay editable when the sheet is protected:" => "Zone care rămân editabile când foaia este protejată:", + "Action" => "Acțiune", + "Modify" => "Modificare", + "Unlock with password" => "Deblocare cu parolă", + "Title:" => "Titlu:", + "Refers to cells:" => "Se referă la celulele:", + "Range password:" => "Parola zonei:", + "New title (Modify):" => "Titlu nou (Modificare):", + "Remove the password (Modify)" => "Eliminare parolă (Modificare)", + "'{file}' is protected." => "„{file}” este protejat.", + "Unhide sheet:" => "Reafișare foaie:", + "Hidden: {sheets}" => "Ascunse: {sheets}", + "All" => "Toate", + "Formulas (F)" => "Formule (F)", + "Values (V)" => "Valori (V)", + "Formats (T)" => "Formate (T)", + "Comments and notes (C)" => "Comentarii și note (C)", + "Validation" => "Validare", + "All except borders" => "Tot, cu excepția bordurilor", + "Column widths" => "Lățimi coloane", + "Formulas and number formats" => "Formule și formate de număr", + "Values and number formats" => "Valori și formate de număr", + "Operation" => "Operație", + "Add" => "Adăugare", + "Subtract" => "Scădere", + "Multiply" => "Înmulțire", + "Divide" => "Împărțire", + "Skip blanks" => "Ignorare celule goale", + "Transpose (E)" => "Transpunere (E)", + "Series in" => "Serii în", + "Columns" => "Coloane", + "Rows" => "Rânduri", + "Type" => "Tip", + "Linear" => "Liniar", + "Growth" => "Creștere", + "Date unit" => "Unitate de dată", + "Day" => "Zi", + "Weekday" => "Zi a săptămânii", + "Month" => "Lună", + "Year" => "An", + "Step value:" => "Valoare pas:", + "Stop value:" => "Valoare de oprire:", + "Start a conversation:" => "Începeți o conversație:", + "Note:" => "Notă:", + "Display:" => "Afișare:", + "Link to (web address, e-mail or Sheet!A1):" => "Link către (adresă web, e-mail sau Foaie!A1):", + "ScreenTip:" => "Sfat ecran:", + "Data Range:" => "Zonă de date:", + "Location Range:" => "Zonă de amplasare:", + "Markers" => "Marcaje", + "Footer:" => "Subsol:", + "Left margin (in):" => "Margine stânga (in):", + "Right margin (in):" => "Margine dreapta (in):", + "Top margin (in):" => "Margine sus (in):", + "Bottom margin (in):" => "Margine jos (in):", + "Header (in):" => "Antet (in):", + "Footer (in):" => "Subsol (in):", + "Tab" => "Tab", + "Semicolon" => "Punct și virgulă", + "Comma" => "Virgulă", + "Space" => "Spațiu", + "Other:" => "Altele:", + "Treat consecutive delimiters as one" => "Delimitatorii consecutivi se tratează ca unul singur", + "Destination:" => "Destinație:", + "My data has headers" => "Datele mele au anteturi", + "Columns (blank = all, e.g. A,C):" => "Coloane (gol = toate, de ex. A,C):", + "Timeline range (blank: first column of the selection):" => "Zona cronologiei (gol: prima coloană a selecției):", + "Values range (blank: second column of the selection):" => "Zona valorilor (gol: a doua coloană a selecției):", + "Confidence interval" => "Interval de încredere", + "Confidence level (%):" => "Nivel de încredere (%):", + "Seasonality (auto, 0 for none, or a season length):" => "Sezonalitate (automată, 0 pentru niciuna sau lungimea unui sezon):", + "Fill missing points using" => "Completare puncte lipsă folosind", + "Interpolation" => "Interpolare", + "Zeros" => "Zerouri", + "Aggregate duplicates using" => "Agregare duplicate folosind", + "Average" => "Medie", + "Count" => "Numărare", + "CountA" => "Numărare valori (CountA)", + "Max" => "Max", + "Median" => "Mediană", + "Min" => "Min", + "Sum" => "Sumă", + "Product" => "Produs", + "Include forecast statistics" => "Includere statistici de prognoză", + "Chart" => "Diagramă", + "Line chart" => "Diagramă cu linii", + "Column chart" => "Diagramă cu coloane", + "At each change in (column letter):" => "La fiecare schimbare în (litera coloanei):", + "Use function" => "Utilizare funcție", + "Add subtotal to (columns, e.g. C,D):" => "Adaugă subtotal la (coloane, de ex. C,D):", + "Magnification" => "Mărire", + "Custom (%):" => "Particularizat (%):", + "Scope (Workbook or sheet name):" => "Domeniu (registru sau numele foii):", + "Comment:" => "Comentariu:", + "Refers to:" => "Se referă la:", + "Allow" => "Permitere", + "Any value" => "Orice valoare", + "Whole number" => "Număr întreg", + "Decimal" => "Zecimal", + "List" => "Listă", + "Text length" => "Lungime text", + "between" => "între", + "not between" => "nu este între", + "equal to" => "egal cu", + "not equal to" => "diferit de", + "greater than" => "mai mare decât", + "less than" => "mai mic decât", + "greater than or equal to" => "mai mare sau egal cu", + "less than or equal to" => "mai mic sau egal cu", + "Minimum / Source / Formula:" => "Minim / Sursă / Formulă:", + "Maximum:" => "Maxim:", + "Ignore blank" => "Ignorare celule goale", + "In-cell dropdown" => "Listă verticală în celulă", + "Input message:" => "Mesaj de intrare:", + "Error style" => "Stil eroare", + "Stop" => "Oprire", + "Warning" => "Avertisment", + "Information" => "Informații", + "Error message:" => "Mesaj de eroare:", + "Format cells that are (value):" => "Formatare celule care sunt (valoare):", + "and:" => "și:", + "Format cells that contain the text:" => "Formatare celule care conțin textul:", + "Format cells that contain a date occurring:" => "Formatare celule care conțin o dată:", + "Yesterday" => "Ieri", + "Today" => "Azi", + "Tomorrow" => "Mâine", + "In the last 7 days" => "În ultimele 7 zile", + "Last week" => "Săptămâna trecută", + "This week" => "Săptămâna aceasta", + "Next week" => "Săptămâna viitoare", + "Last month" => "Luna trecută", + "This month" => "Luna aceasta", + "Next month" => "Luna următoare", + "Format values where this formula is true:" => "Formatare valori pentru care această formulă este adevărată:", + "with" => "cu", + "Light Red Fill with Dark Red Text" => "Umplere roșu deschis cu text roșu închis", + "Yellow Fill with Dark Yellow Text" => "Umplere galbenă cu text galben închis", + "Green Fill with Dark Green Text" => "Umplere verde cu text verde închis", + "Light Red Fill" => "Umplere roșu deschis", + "Red Text" => "Text roșu", + "Red Border" => "Bordură roșie", + "Formula:" => "Formulă:", + "Select" => "Selectare", + "Blanks" => "Celule goale", + "Errors" => "Erori", + "Numbers" => "Numere", + "Current region" => "Regiunea curentă", + "Last cell" => "Ultima celulă", + "Visible cells only" => "Doar celulele vizibile", + "Conditional formats" => "Formate condiționate", + "Data validation" => "Validare date", + "Horizontal axis title:" => "Titlu axă orizontală:", + "Vertical axis title:" => "Titlu axă verticală:", + "No picture selected" => "Nicio imagine selectată", + "Picture file path (PNG or JPEG):" => "Calea fișierului imagine (PNG sau JPEG):", + "Description (optional):" => "Descriere (opțional):", + "Fits inside the selected cell and moves with its content." => "Se încadrează în celula selectată și se mută odată cu conținutul ei.", + "Choose a PNG or JPEG no larger than 16 MB." => "Alegeți un PNG sau JPEG de cel mult 16 MB.", + "About" => "Despre", + "Contributors" => "Contribuitori", + "Models" => "Modele", + "Version {version}" => "Versiunea {version}", + "Join the ArtCraft Discord" => "Intrați pe Discord-ul ArtCraft", + "This workbook has no scripts or macros." => "Acest registru nu are scripturi sau macrocomenzi.", + "(unnamed)" => "(fără nume)", + "— VBA project (preserved, not run)" => "— proiect VBA (păstrat, nu se rulează)", + "— 1 step" => "— 1 pas", + "— {steps} steps" => "— {steps} pași", + "Alignment" => "Aliniere", + "Font" => "Font", + "Border" => "Bordură", + "Format Cells|Fill" => "Umplere", + "Protection" => "Protecție", + "Category:" => "Categorie:", + "Sample" => "Eșantion", + "Type (custom format code):" => "Tip (cod de format particularizat):", + "Vertical" => "Vertical", + "Justify" => "Aliniere stânga-dreapta", + "Center Across Selection" => "Centrare în selecție", + "Distributed" => "Distribuit", + "Top" => "Sus", + "Bottom" => "Jos", + "Indent" => "Indentare", + "Orientation (degrees)" => "Orientare (grade)", + "Wrap text" => "Încadrare text", + "Shrink to fit" => "Micșorare pentru potrivire", + "Bold" => "Aldin", + "Italic" => "Cursiv", + "None" => "Niciunul", + "Single" => "Simplu", + "Double" => "Dublu", + "Single Accounting" => "Simplă contabilă", + "Double Accounting" => "Dublă contabilă", + "Superscript" => "Exponent", + "Subscript" => "Indice", + "Color:" => "Culoare:", + "Outline" => "Contur", + "Diagonal ↘" => "Diagonal ↘", + "Diagonal ↗" => "Diagonal ↗", + "none" => "niciunul", + "thin" => "subțire", + "medium" => "medie", + "thick" => "groasă", + "dashed" => "întreruptă", + "dotted" => "punctată", + "double" => "dublă", + "Background Color:" => "Culoare de fundal:", + "Locked" => "Blocat", + "Hidden" => "Ascuns", + "Search:" => "Căutare:", + "e.g. lookup, average, date" => "de ex. căutare, medie, dată", + "Date & Time" => "Data și ora", + "Lookup & Reference" => "Căutare și referință", + "Math & Trig" => "Matematică și trigonometrie", + "Statistical" => "Statistice", + "Engineering" => "Inginerie", + "Database" => "Bază de date", + "Compatibility" => "Compatibilitate", + "Web" => "Web", + "Cube" => "Cub", + "Add-in and Automation" => "Supliment și automatizare", + "Find" => "Găsire", + "Replace" => "Înlocuire", + "Find what:" => "De găsit:", + "Replace with:" => "Înlocuire cu:", + "Match case" => "Potrivire majuscule/minuscule", + "Match entire cell contents" => "Potrivire cu întregul conținut al celulei", + "Within workbook" => "În registru", + "Replace All" => "Înlocuire totală", + "Find All" => "Găsire toate", + "Find Next" => "Găsire următorul", + "All done. We made {count} replacements." => "Gata. Am făcut {count} înlocuiri.", + "{count} cell(s) found" => "Celule găsite: {count}", + "Reference:" => "Referință:", + "Special…" => "Special…", + "My list has headers" => "Lista mea are anteturi", + "Sort by" => "Sortare după", + "Then by" => "Apoi după", + "Cell Values" => "Valori celule", + "Cell Color" => "Culoare celulă", + "A to Z" => "De la A la Z", + "Z to A" => "De la Z la A", + "+ Add Level" => "+ Adăugare nivel", + "New…" => "Nou…", + "Edit…" => "Editare…", + "Name" => "Nume", + "Value" => "Valoare", + "Refers To" => "Se referă la", + "Scope" => "Domeniu", + "Workbook" => "Registru", + "No names defined" => "Niciun nume definit", + "Recommended Charts" => "Diagrame recomandate", + "All Charts" => "Toate diagramele", + "Clustered Column" => "Coloane grupate", + "Stacked Column" => "Coloane stivuite", + "100% Stacked Column" => "Coloane 100% stivuite", + "Clustered Bar" => "Bare grupate", + "Stacked Bar" => "Bare stivuite", + "100% Stacked Bar" => "Bare 100% stivuite", + "Line" => "Linie", + "Line with Markers" => "Linii cu marcaje", + "Stacked Line" => "Linii stivuite", + "Pie" => "Radială", + "Doughnut" => "Inel", + "Area" => "Arie", + "Stacked Area" => "Arie stivuită", + "Scatter" => "Dispersie", + "Scatter with Lines" => "Dispersie cu linii", + "Radar" => "Radar", + "Histogram" => "Histogramă", + "Waterfall" => "Cascadă", + "Funnel" => "Pâlnie", + "Combo" => "Combo", + "Chart data range:" => "Zonă de date a diagramei:", + "Legend Entries (Series)" => "Intrări legendă (serii)", + "Series{n}" => "Seria{n}", + "Keep" => "Păstrare", + "Remove" => "Eliminare", + "Horizontal (Category) Axis Labels:" => "Etichete axă orizontală (categorii):", + "There are no conditional formatting rules on this sheet." => "Nu există reguli de formatare condiționată în această foaie.", + "applies to" => "se aplică la", + "Type a command, e.g. freeze, chart, bold…" => "Scrieți o comandă, de ex. îngheța, diagramă, aldin…", + "Set cell:" => "Setare celulă:", + "To value:" => "Până la valoarea:", + "By changing cell:" => "Prin modificarea celulei:", + "Goal Seeking found a solution: {value}" => "Căutarea rezultatului a găsit o soluție: {value}", + "Analysis Tools" => "Instrumente de analiză", + "Anova: Single Factor" => "Anova: un singur factor", + "Correlation" => "Corelație", + "Covariance" => "Covarianță", + "Descriptive Statistics" => "Statistică descriptivă", + "Exponential Smoothing" => "Netezire exponențială", + "F-Test Two-Sample for Variances" => "Test F: două eșantioane pentru dispersii", + "Moving Average" => "Medie mobilă", + "Rank and Percentile" => "Rang și percentilă", + "Regression" => "Regresie", + "t-Test: Paired Two Sample for Means" => "Test t: două eșantioane perechi pentru medii", + "t-Test: Two-Sample Assuming Equal Variances" => "Test t: două eșantioane cu dispersii egale", + "t-Test: Two-Sample Assuming Unequal Variances" => "Test t: două eșantioane cu dispersii inegale", + "Output options" => "Opțiuni de ieșire", + "Output Range:" => "Zonă de ieșire:", + "New Worksheet Ply:" => "Foaie de lucru nouă:", + "Grouped By:" => "Grupat după:", + "Labels in first row" => "Etichete în primul rând", + "Input Range:" => "Zonă de intrare:", + "Variable 1 Range:" => "Zona variabilei 1:", + "Variable 2 Range:" => "Zona variabilei 2:", + "Summary statistics" => "Statistici rezumative", + "Confidence Level for Mean (%), blank for none:" => "Nivel de încredere pentru medie (%), gol pentru niciunul:", + "Kth Largest (blank for none):" => "Al k-lea cel mai mare (gol pentru niciunul):", + "Kth Smallest (blank for none):" => "Al k-lea cel mai mic (gol pentru niciunul):", + "Bin Range (blank for automatic bins):" => "Zonă de intervale (gol pentru intervale automate):", + "Pareto (sorted histogram)" => "Pareto (histogramă sortată)", + "Cumulative Percentage" => "Procent cumulativ", + "Alpha:" => "Alfa:", + "Input Y Range:" => "Zonă Y de intrare:", + "Input X Range:" => "Zonă X de intrare:", + "Constant is Zero" => "Constanta este zero", + "Confidence Level (%):" => "Nivel de încredere (%):", + "Residuals" => "Reziduuri", + "Standardized Residuals" => "Reziduuri standardizate", + "Normal Probability" => "Probabilitate normală", + "Interval:" => "Interval:", + "Standard Errors" => "Erori standard", + "Damping factor:" => "Factor de amortizare:", + "Hypothesized Mean Difference:" => "Diferența ipotetică a mediilor:", + "Set Objective:" => "Setare obiectiv:", + "To:" => "Către:", + "Value Of:" => "Valoarea:", + "By Changing Variable Cells:" => "Prin modificarea celulelor variabile:", + "Subject to the Constraints:" => "Supus restricțiilor:", + "Make Unconstrained Variables Non-Negative" => "Variabilele fără restricții devin nenegative", + "Select a Solving Method:" => "Selectați o metodă de rezolvare:", + "GRG Nonlinear" => "GRG neliniar", + "Solve" => "Rezolvare", + "Keep Solver Solution" => "Păstrare soluție Solver", + "Restore Original Values" => "Restaurare valori inițiale", + "The spelling check is complete for the entire sheet." => "Verificarea ortografiei s-a încheiat pentru toată foaia.", + "Not in Dictionary ({cell}):" => "Nu este în dicționar ({cell}):", + "Suggestions:" => "Sugestii:", + "(No suggestions)" => "(Nicio sugestie)", + "Ignore Once" => "Ignorare o dată", + "Add to Dictionary" => "Adăugați în dicționar", + "Change" => "Modificare", + "Change All" => "Modificare toate", + "$ English (United States)" => "$ Engleză (Statele Unite)", + "Add Chart Element" => "Adăugare element de diagramă", + "Align Left" => "Aliniere la stânga", + "Align Right" => "Aliniere la dreapta", + "Bottom Align" => "Aliniere jos", + "Calculate Now (F9)" => "Calculare acum (F9)", + "Calculate Sheet (⇧F9)" => "Calculare foaie (⇧F9)", + "Calculation Options" => "Opțiuni de calcul", + "Cell Styles" => "Stiluri de celulă", + "Change Chart Type" => "Schimbare tip diagramă", + "Check Accessibility" => "Verificare accesibilitate", + "Clear Filter" => "Golire filtru", + "Column or Bar" => "Coloane sau bare", + "Comments pane" => "Panou comentarii", + "Convert the last ink stroke to a shape" => "Conversia ultimei trăsături de cerneală în formă", + "Convert to Range" => "Conversie în zonă", + "Copy" => "Copiere", + "Custom Sort" => "Sortare particularizată", + "Cut" => "Decupare", + "Define Name…" => "Definire nume…", + "Delete Comment" => "Ștergere comentariu", + "Delete Sheet" => "Ștergere foaie", + "Delete chart" => "Ștergere diagramă", + "Delete…" => "Ștergere…", + "Dismiss" => "Închidere", + "Down" => "Jos", + "Edit chart title" => "Editare titlu diagramă", + "Erase ink strokes" => "Ștergere trăsături de cerneală", + "Every command run in this session (replayable)" => "Toate comenzile rulate în această sesiune (se pot reda)", + "Expand formula bar" => "Extindere bară de formule", + "Filter (⌘⇧F)" => "Filtrare (⌘⇧F)", + "Filter by Selected Cell's Value" => "Filtrare după valoarea celulei selectate", + "Find & Select" => "Găsire și selectare", + "Flash Fill (⌘E)" => "Completare rapidă (⌘E)", + "Forecast Sheet" => "Foaie de prognoză", + "Forecast end (date or number; blank: a third of the history):" => "Sfârșitul prognozei (dată sau număr; gol: o treime din istoric):", + "Format Chart pane" => "Panou Formatare diagramă", + "Format as Table" => "Formatare ca tabel", + "Hide" => "Ascundere", + "Hide Sheet" => "Ascundere foaie", + "Hierarchy & more" => "Ierarhie și altele", + "Highlighter" => "Marker", + "How agents drive GridCraft (MCP / control channel)" => "Cum controlează agenții GridCraft (MCP / canal de control)", + "Import a text or CSV file" => "Importă un fișier text sau CSV", + "Insert Function" => "Inserare funcție", + "Insert Function (⇧F3)" => "Inserare funcție (⇧F3)", + "Insert Link (⌘K)" => "Inserare link (⌘K)", + "Insert Sheet" => "Inserare foaie", + "Insert Slicer" => "Inserare slicer", + "Insert a picture" => "Inserați o imagine", + "Insert a slicer to filter a table" => "Inserați un slicer pentru a filtra un tabel", + "Insert an icon" => "Inserați o pictogramă", + "Insert…" => "Inserare…", + "Line or Area" => "Linii sau arie", + "Link…" => "Link…", + "Macros and scripts in this workbook (Alt+F8)" => "Macrocomenzi și scripturi din acest registru (Alt+F8)", + "Middle Align" => "Aliniere la mijloc", + "More commands" => "Mai multe comenzi", + "Move or Copy Sheet…" => "Mutare sau copiere foaie…", + "New sheet (⇧F11)" => "Foaie nouă (⇧F11)", + "Next sheet" => "Foaia următoare", + "Page Breaks" => "Întreruperi de pagină", + "Paper Size" => "Dimensiune hârtie", + "Paste (⌘V)" => "Lipire (⌘V)", + "Pick From Drop-down List…" => "Alegere din lista verticală…", + "Pie or Doughnut" => "Radială sau inel", + "Previous sheet" => "Foaia anterioară", + "Print Area" => "Zonă de imprimare", + "Print Titles" => "Imprimare titluri", + "Protect Workbook structure" => "Protejare structură registru", + "Redo (⌘Y)" => "Refacere (⌘Y)", + "Save (⌘S)" => "Salvare (⌘S)", + "Scatter or Bubble" => "Dispersie sau bule", + "Search and run any command" => "Căutați și rulați orice comandă", + "Search commands (⌘⇧Space)" => "Căutare comenzi (⌘⇧Space)", + "Select and move ink and shapes" => "Selectați și mutați cerneala și formele", + "Series…" => "Serie…", + "Share: export or save a copy" => "Partajare: exportați sau salvați o copie", + "Show Formulas (⌃`)" => "Afișare formule (⌃`)", + "Slicer" => "Slicer", + "Sort & Filter" => "Sortare și filtrare", + "Spelling (F7)" => "Ortografie (F7)", + "Statistic" => "Statistică", + "Switch Row/Column" => "Comutare rând/coloană", + "Table (⌘T)" => "Tabel (⌘T)", + "Table Styles" => "Stiluri de tabel", + "Text to Columns" => "Text în coloane", + "The output range already holds data. Replace it with the report?" => "Zona de ieșire conține deja date. Le înlocuiți cu raportul?", + "Top Align" => "Aliniere sus", + "Undo (⌘Z)" => "Anulare acțiune (⌘Z)", + "Undo list" => "Listă anulări", + "Unhide Sheet…" => "Reafișare foaie…", + "Up" => "Sus", + "Version, contributors and the AI models that helped" => "Versiune, contribuitori și modelele AI care au ajutat", + "What-If Analysis" => "Analiză ce-ar fi dacă", + "Zoom In" => "Mărire", + "Zoom Out" => "Micșorare", + "Zoom to 100%" => "Zoom la 100%", + "Zoom to Selection" => "Zoom la selecție", + "Zoom…" => "Zoom…", + "£ English (United Kingdom)" => "£ Engleză (Regatul Unit)", + "¥ Japanese" => "¥ Japoneză", + "€ Euro" => "€ Euro", + "Tab|Insert" => "Inserare", + "AutoSave" => "Salvare automată", + "Insert\nSlicer" => "Inserare\nslicer", + "Pen\nBlack" => "Pix\nnegru", + "Pen\nBlue" => "Pix\nalbastru", + "Pen\nRed" => "Pix\nroșu", + "Protect\nSheet" => "Protejare\nfoaie", + "Watch\nWindow" => "Fereastră de\nurmărire", + "Workbook\nStatistics" => "Statistici\nregistru", + "Calculated Field…" => "Câmp calculat…", + "Choose fields to add to report:" => "Alegeți câmpurile de adăugat în raport:", + "Compact" => "Compact", + "Filters" => "Filtre", + "Group by Months" => "Grupare pe luni", + "Group by Quarters" => "Grupare pe trimestre", + "Group by Years" => "Grupare pe ani", + "Move to Column Labels" => "Mutare la Etichete de coloană", + "Move to Report Filter" => "Mutare la Filtru raport", + "Move to Row Labels" => "Mutare la Etichete de rând", + "Move to Values" => "Mutare la Valori", + "PivotTable Fields" => "Câmpuri PivotTable", + "Refresh" => "Reîmprospătare", + "Remove Field" => "Eliminare câmp", + "Report Layout" => "Aspect raport", + "Show as % of Grand Total" => "Afișare ca % din totalul general", + "Show as No Calculation" => "Afișare fără calcul", + "Show as Rank" => "Afișare ca rang", + "Show as Running Total" => "Afișare ca total cumulat", + "Summarize by Average" => "Rezumare după medie", + "Summarize by Count" => "Rezumare după numărare", + "Summarize by Max" => "Rezumare după maxim", + "Summarize by Min" => "Rezumare după minim", + "Summarize by Sum" => "Rezumare după sumă", + "Tabular" => "Tabelar", + "Use a field's menu to move it between areas:" => "Folosiți meniul unui câmp ca să-l mutați între zone:", + "Values" => "Valori", + _ => return None, + }) +} diff --git a/crates/ui-egui/tests/file_menu.rs b/crates/ui-egui/tests/file_menu.rs index 6cce9cdba..23f55fe37 100644 --- a/crates/ui-egui/tests/file_menu.rs +++ b/crates/ui-egui/tests/file_menu.rs @@ -137,6 +137,7 @@ fn translated_options_headings_show_no_context_prefix() { for (code, headings, prefixed, (view, view_prefixed)) in [ ("fr", ["Général", "Enregistrer"], ["Options|Général", "Options|Enregistrer"], ("Affichage", "Options de la feuille|Affichage")), ("sr", ["Opšte", "Sačuvaj"], ["Opcije|Opšte", "Opcije|Sačuvaj"], ("Prikaz", "Opcije lista|Prikaz")), + ("ro", ["General", "Salvare"], ["Opțiuni|General", "Opțiuni|Salvare"], ("Vizualizare", "Opțiuni foaie|Vizualizare")), ] { let mut h = harness(Services::default()); h.state_mut().run("app.language.set", serde_json::json!({"language": code})).unwrap(); diff --git a/docs/localization-parity.md b/docs/localization-parity.md index 64876633d..374abb634 100644 --- 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-19 · **Change:** minor (defined-name length limit counts characters, so long Arabic names are accepted; Table names are limited to 255 characters; right-to-left sheets in `.xls` files open right-to-left; text boxes and shapes keep right-to-left paragraph direction through XLSX save; Save as Web Page and copied HTML keep right-to-left; French and Serbian `context|label` translations no longer show the context) · **Target:** Microsoft Excel (Microsoft 365), Excel for Mac 16.113.4 +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-21 · **Change:** minor (Romanian interface catalog, 970 labels; previously minor: defined-name length limit counts characters, so long Arabic names are accepted; Table names are limited to 255 characters; right-to-left sheets in `.xls` files open right-to-left; text boxes and shapes keep right-to-left paragraph direction through XLSX save; Save as Web Page and copied HTML keep right-to-left; French and Serbian `context|label` translations no longer show the context) · **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, @@ -83,6 +83,7 @@ language (none so far) and of localized function names. | Date | Change | Summary | |---|---|---| +| 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-19 | minor | Defined-name length counts characters, not bytes: Arabic names up to 255 letters are accepted, and Create from Selection keeps long Arabic headers | | 2026-10-19 | minor | Table names are limited to 255 Unicode characters | | 2026-10-19 | minor | Right-to-left sheets in legacy `.xls` files (common in older Arabic workbooks) open right-to-left | From 8e38fc21fa537da9038d2035745401e8569e50e4 Mon Sep 17 00:00:00 2001 From: Viorel Toader Date: Wed, 21 Oct 2026 10:16:07 +0300 Subject: [PATCH 2/3] =?UTF-8?q?Romanian:=20feminine=20st=C3=A2ng=C4=83/dre?= =?UTF-8?q?apt=C4=83=20for=20the=20margin=20labels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JadgGo4G2GHaAMNb3qyygk --- crates/ui-egui/src/i18n/ro.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/ui-egui/src/i18n/ro.rs b/crates/ui-egui/src/i18n/ro.rs index 5fc8ad14b..597734441 100644 --- a/crates/ui-egui/src/i18n/ro.rs +++ b/crates/ui-egui/src/i18n/ro.rs @@ -126,8 +126,8 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Select\nObjects" => "Selectare\nobiecte", "Themes" => "Teme", "Margins" => "Margini", - "Left Margin" => "Margine stânga", - "Right Margin" => "Margine dreapta", + "Left Margin" => "Margine stângă", + "Right Margin" => "Margine dreaptă", "Top Margin" => "Margine sus", "Bottom Margin" => "Margine jos", "Header Margin" => "Margine antet", @@ -552,8 +552,8 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Location Range:" => "Zonă de amplasare:", "Markers" => "Marcaje", "Footer:" => "Subsol:", - "Left margin (in):" => "Margine stânga (in):", - "Right margin (in):" => "Margine dreapta (in):", + "Left margin (in):" => "Margine stângă (in):", + "Right margin (in):" => "Margine dreaptă (in):", "Top margin (in):" => "Margine sus (in):", "Bottom margin (in):" => "Margine jos (in):", "Header (in):" => "Antet (in):", From 43e64c50a2e9c0cdf7679db95a966e245fbdf1f5 Mon Sep 17 00:00:00 2001 From: Viorel Toader Date: Wed, 21 Oct 2026 10:57:20 +0300 Subject: [PATCH 3/3] =?UTF-8?q?Romanian:=20print=20settings=20and=20status?= =?UTF-8?q?,=20five=20form=20labels;=20Page=20Setup=E2=80=A6=20matches=20i?= =?UTF-8?q?ts=20dialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01JadgGo4G2GHaAMNb3qyygk --- crates/ui-egui/src/i18n/ro.rs | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/i18n/ro.rs b/crates/ui-egui/src/i18n/ro.rs index 597734441..4cc3ae95b 100644 --- a/crates/ui-egui/src/i18n/ro.rs +++ b/crates/ui-egui/src/i18n/ro.rs @@ -392,7 +392,7 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Print Active Sheets" => "Imprimare foi active", "Print Entire Workbook" => "Imprimare tot registrul", "Fit Sheet on One Page" => "Încadrare foaie pe o pagină", - "Page Setup…" => "Inițializare pagină…", + "Page Setup…" => "Configurare pagină…", "Page {page} of {pages}" => "Pagina {page} din {pages}", "Nothing to print." => "Nimic de imprimat.", "Previous page" => "Pagina anterioară", @@ -985,6 +985,37 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Tabular" => "Tabelar", "Use a field's menu to move it between areas:" => "Folosiți meniul unui câmp ca să-l mutați între zone:", "Values" => "Valori", + "Header (&L left, &C center, &R right; &P page, &N pages, &D date, &A sheet):" => { + "Antet (&L stânga, &C centru, &R dreapta; &P pagina, &N pagini, &D data, &A foaia):" + } + "Forecast start (a date or number in the history; blank: after the last point):" => { + "Începutul prognozei (o dată sau un număr din istoric; gol: după ultimul punct):" + } + "Source:" => "Sursă:", + "End date:" => "Data de sfârșit:", + "Protect workbook for: Structure (sheets can't be added, moved, renamed, hidden or deleted)." => { + "Protejare registru pentru: structură (foile nu pot fi adăugate, mutate, redenumite, ascunse sau șterse)." + } + "Printer" => "Imprimantă", + "Select a printer" => "Selectați o imprimantă", + "Refresh printers" => "Reîmprospătare imprimante", + "Copies" => "Copii", + "Two-sided printing" => "Imprimare față-verso", + "Printer default" => "Setarea imprimantei", + "One-sided" => "O singură față", + "Two-sided: long edge" => "Față-verso: latura lungă", + "Two-sided: short edge" => "Față-verso: latura scurtă", + "Grayscale" => "Tonuri de gri", + "Finding printers…" => "Se caută imprimante…", + "No printers found. Configure a system printer or export a PDF." => { + "Nu s-a găsit nicio imprimantă. Configurați o imprimantă în sistem sau exportați un PDF." + } + "Printer discovery failed." => "Căutarea imprimantelor a eșuat.", + "Submitting print job…" => "Se trimite lucrarea de imprimare…", + "Print job submitted." => "Lucrarea de imprimare a fost trimisă.", + "Print job submitted: {receipt}" => "Lucrarea de imprimare a fost trimisă: {receipt}", + "Print failed: {error}" => "Imprimarea a eșuat: {error}", + "Print failed: the printing worker stopped." => "Imprimarea a eșuat: procesul de imprimare s-a oprit.", _ => return None, }) }