diff --git a/ROADMAP.md b/ROADMAP.md index 8426126ca..0a4da8bfe 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -94,7 +94,9 @@ The ribbon is translated into Japanese, Simplified Chinese, Korean, Brazilian Po and German (266–268 labels each, ~12% of ~2,200 strings; merged 10-10 in #31, #104, #82, German added 10-11), the interface follows the system language, and CJK, Thai and Hebrew text falls back to system fonts -(#38). Dialogs, menus and messages are English; formulas and number formats are en-US only. +(#38). Japanese (10-17) and Brazilian Portuguese also translate the dialog titles and labels, +message boxes, Backstage/File-view items, template names and native menus: 943 strings each, ~43%. +The remaining dialogs, menus and messages are English; formulas and number formats are en-US only. Localized German formulas and numbers are in PR #163. Detail: [localization-parity.md](docs/localization-parity.md). | Language | Code | Status | UI strings | @@ -105,14 +107,14 @@ Localized German formulas and numbers are in PR #163. Detail: [localization-pari | Hindi | hi | none | 0% | | Arabic | ar | none (no RTL layout, no shaping) | 0% | | French | fr | none | 0% | -| Portuguese | pt-BR | menus only | ~12% | +| Portuguese | pt-BR | menus, File view, dialogs | ~43% | | Indonesian | id | none | 0% | -| Japanese | ja | menus only | ~12% | +| Japanese | ja | menus, File view, dialogs, messages | ~43% | | German | de | menus only | ~12% | | Korean | ko | menus only | ~12% | | Vietnamese | vi | none | 0% | -Other shipped languages: 2 (Russian and German, menus only, ~12%). +Other shipped languages: 3 (Russian and German, menus only, ~12%; Dutch, menus, File view and dialog titles, ~24%). ## Upcoming @@ -134,6 +136,8 @@ Ranked; estimates in Opus 5.5 agent-hours. Detail and the full beta-gate list in | Date | What landed | |---|---| | 2026-10-21 | Page Setup paper sizes match Japanese Excel: `B4`/`B5`/`B6` are the JIS sizes (ISO B4/B5/B6 stay reachable by name), so a Japanese B5 worksheet prints at 182×257 mm; Japanese Postcard (100×148 mm), Double Postcard (148×200 mm), Envelope #3/#4 (120×235/90×205 mm), Kaku #2/#3 (240×332/216×277 mm) and A6 are added, both sizes reach the PDF page (`file.exportPdf`/`file.print` MediaBox) and the size survives an XLSX round-trip; the Page Layout Size menu lists them. `B4`/`B5` used to be the ISO sizes, which is changed here | +| 2026-10-20 | Japanese interface catalog covers every key the Brazilian Portuguese catalog translates: the 398-label shared core plus 545 dialog, message, Backstage and menu strings (943 total, ~43% of ~2,200). A test parses `pt.rs`'s source, so the two catalogs stay in step | +| 2026-10-20 | Interface translated into Dutch (518 labels: ribbon, context menus, File view, dialog titles, Options); `nl`, `nl-NL`, `nl-BE` locale tags resolve to Dutch | | 2026-10-19 | Long flat operator chains (`=A1+A2+…`) up to Excel's 8,192-character limit (4,096 operands): entering, filling, inserting rows, undo, Evaluate Formula and XLSX save no longer overflow the stack; chains past 64 operands are saved as plain formulas, not dynamic arrays; Spanish formula entry accepts chains past 256 operands (#916) | | 2026-10-16 | Memory: undo steps share a sheet's picture bytes and the workbook's VBA project instead of copying them: 50 edits on a sheet with a 20 MB picture keep 22 MB instead of 992 MB | | 2026-10-16 | Memory: floating pictures are decoded at about the size they are drawn, with limits, into a cache bounded by bytes and dropped with their workbook, instead of at full size into one that never let go; two open workbooks no longer show each other's picture. 12 large pictures scrolled through keep 40 MB of textures instead of 258 MB, and none once the workbook closes | @@ -208,6 +212,7 @@ Ranked; estimates in Opus 5.5 agent-hours. Detail and the full beta-gate list in | Date | Change | Summary | |---|---|---| | 2026-10-21 | minor | Page Setup paper sizes: JIS B4/B5/B6 (ISO by name), Japanese postcards and envelopes, A6; PDF page size follows, XLSX round-trips | +| 2026-10-20 | minor | Dutch (nl) listed under other shipped languages; progress log row | | 2026-10-19 | minor | Progress log: long flat operator chains (#916) | | 2026-10-16 | minor | Progress log: undo steps share picture and macro bytes | | 2026-10-16 | minor | Progress log: floating pictures' textures bounded and kept per workbook | diff --git a/contributors/people.toml b/contributors/people.toml index dca3f43ef..02c2d02ba 100644 --- a/contributors/people.toml +++ b/contributors/people.toml @@ -74,3 +74,7 @@ sync_github_name = true [people.pourie-he] sync_github_name = true + +[people.Stefanfra] +real_name = "Stefan Fransen" +sync_github_name = true diff --git a/crates/formula/src/input.rs b/crates/formula/src/input.rs index 017a445b4..1c8929739 100644 --- a/crates/formula/src/input.rs +++ b/crates/formula/src/input.rs @@ -20,6 +20,12 @@ const SPANISH: &[(&str, &str)] = &[ ("COUNTIF", "CONTAR.SI"), ("VLOOKUP", "BUSCARV"), ("TODAY", "HOY"), + // Financial block (#1986): the loan-schedule and investment staples. + ("NPV", "VNA"), + ("IRR", "TIR"), + ("PMT", "PAGO"), + ("PV", "VA"), + ("FV", "VF"), ("TRUE", "VERDADERO"), ("FALSE", "FALSO"), ]; diff --git a/crates/formula/tests/spanish_input.rs b/crates/formula/tests/spanish_input.rs index e10e1f61b..d8a9def35 100644 --- a/crates/formula/tests/spanish_input.rs +++ b/crates/formula/tests/spanish_input.rs @@ -15,6 +15,11 @@ fn spanish_aliases_and_argument_separators() { ("CONTAR.SI(A1:A10;\">0\")", "COUNTIF(A1:A10,\">0\")"), ("BUSCARV(A2;D:E;2;FALSO)", "VLOOKUP(A2,D:E,2,FALSE)"), ("HOY()", "TODAY()"), + ("VNA(0,1;A1:A5)", "NPV(0.1,A1:A5)"), + ("TIR(A1:A5;0,1)", "IRR(A1:A5,0.1)"), + ("PAGO(0,08/12;10;10000)", "PMT(0.08/12,10,10000)"), + ("VA(0,05;12;100)", "PV(0.05,12,100)"), + ("VF(0,05;12;100)", "FV(0.05,12,100)"), ("=verdadero", "TRUE"), ("=falso", "FALSE"), ("VERDADERO()", "TRUE()"), diff --git a/crates/ui-egui/src/backstage.rs b/crates/ui-egui/src/backstage.rs index 9a61d5b73..83cd69d51 100644 --- a/crates/ui-egui/src/backstage.rs +++ b/crates/ui-egui/src/backstage.rs @@ -948,7 +948,7 @@ fn options(app: &mut SheetApp, ui: &mut Ui) { ui.end_row(); ui.label(lang.tr("Interface language")); egui::ComboBox::from_id_salt("backstage_language").width(160.0).selected_text(lang.name()).show_ui(ui, |ui| { - for l in i18n::Language::ALL { + for l in i18n::Language::for_picker() { if ui.selectable_label(l == lang, l.name()).clicked() { app.run_or_alert("app.language.set", json!({"language": l.code()})); } @@ -1034,6 +1034,7 @@ mod tests { assert_eq!(age(Language::Ja, 3.0 * DAY), "3 日前"); assert_eq!(age(Language::De, 3.0 * DAY), "vor 3 Tagen"); assert_eq!(age(Language::Fr, 90.0), "il y a 1 min"); + assert_eq!(age(Language::It, 3.0 * DAY), "3 giorni fa"); for lang in Language::ALL { for seconds in [10.0, 600.0, 7200.0, 1.5 * DAY, 5.0 * DAY, 30.0 * DAY, 200.0 * DAY, 2000.0 * DAY] { let words = age(lang, seconds); diff --git a/crates/ui-egui/src/dialogs.rs b/crates/ui-egui/src/dialogs.rs index bfab2df19..650a1caac 100644 --- a/crates/ui-egui/src/dialogs.rs +++ b/crates/ui-egui/src/dialogs.rs @@ -36,10 +36,14 @@ pub struct Dialog { pub result: Option, /// "Show password" is ticked: password fields show their text. pub show_password: bool, + /// The first text or number field still has to take keyboard focus (set when a form opens, + /// used once): like Excel, Column Width opens ready to type, its value selected. + focus_first_field: bool, picture_inbox: Option, picture_target: Option<(u64, usize)>, /// The dialog this one was opened from (Name Manager › New…): it comes back when this closes. back: Option>, + focus_initialized: bool, } impl Dialog { @@ -70,9 +74,11 @@ impl Dialog { list_index: 0, result: None, show_password: false, + focus_first_field: true, picture_inbox: None, picture_target: None, back: None, + focus_initialized: false, } } @@ -88,9 +94,11 @@ impl Dialog { list_index: 0, result: None, show_password: false, + focus_first_field: false, picture_inbox: None, picture_target: None, back: None, + focus_initialized: false, } } @@ -1399,14 +1407,38 @@ fn form(ui: &mut egui::Ui, d: &mut Dialog, confirm: &mut bool, open: &mut bool) ok_cancel(ui, confirm, open); } +/// Gives keyboard focus to the first text or number field the first time a form is drawn. A +/// focused number field is in typing mode with its value selected, so Alt+H, O, W then 12 and +/// Enter sets the width, as in Excel. +/// Keeps asking until the field really has focus: a new window's first frame is an invisible +/// sizing pass where a focus request is ignored. +fn take_first_focus(d: &mut Dialog, r: &egui::Response) { + if !d.focus_first_field { + return; + } + if !r.has_focus() { + r.request_focus(); + return; + } + // Focus has landed, and the field is now a text box: select its whole value so typing + // replaces it (the field's own select-on-focus fired before it was a text box). + let mut state = egui::text_edit::TextEditState::load(&r.ctx, r.id).unwrap_or_default(); + let all = egui::text::CCursorRange::two(egui::text::CCursor::new(0), egui::text::CCursor::new(usize::MAX / 2)); + state.cursor.set_char_range(Some(all)); + state.store(&r.ctx, r.id); + d.focus_first_field = false; +} + /// Draws a dialog's `fields`, editing its values. fn form_fields(ui: &mut egui::Ui, d: &mut Dialog) { + // Field labels, choices and notes are English source strings, translated as they are drawn. + let lang = crate::i18n::current(ui.ctx()); egui::Grid::new("form").num_columns(1).spacing(vec2(8.0, 6.0)).show(ui, |ui| { for f in d.fields.clone() { match f { Field::Text { key, label } => { ui.vertical(|ui| { - ui.label(label); + ui.label(lang.tr(label)); let mut s = d .values .get(key) @@ -1418,6 +1450,7 @@ fn form_fields(ui: &mut egui::Ui, d: &mut Dialog) { } else { ui.add(egui::TextEdit::singleline(&mut s).desired_width(320.0)) }; + take_first_focus(d, &r); if r.changed() { d.values.insert(key.into(), json!(s)); } @@ -1426,39 +1459,43 @@ fn form_fields(ui: &mut egui::Ui, d: &mut Dialog) { Field::Password { key, label } => { // Masked as typed (Excel shows dots); "Show password" reveals it on purpose. ui.vertical(|ui| { - ui.label(label); + ui.label(lang.tr(label)); let mut s = d.values.get(key).and_then(Json::as_str).unwrap_or_default().to_string(); if ui.add(egui::TextEdit::singleline(&mut s).password(!d.show_password).desired_width(320.0)).changed() { d.values.insert(key.into(), json!(s)); } - ui.checkbox(&mut d.show_password, "Show password"); + ui.checkbox(&mut d.show_password, lang.tr("Show password")); }); } Field::Number { key, label } => { ui.horizontal(|ui| { - ui.label(label); + ui.label(lang.tr(label)); let mut n = d.values.get(key).and_then(Json::as_f64).unwrap_or(0.0); - if ui.add(egui::DragValue::new(&mut n).speed(0.5)).changed() { + // Typed values count straight away: otherwise Enter or OK in the same frame + // confirms the old value, because a number field only commits when it loses focus. + let r = ui.add(egui::DragValue::new(&mut n).speed(0.5).update_while_editing(true)); + take_first_focus(d, &r); + if r.changed() { d.values.insert(key.into(), json!(n)); } }); } Field::Choice { key, label, options } => { ui.vertical(|ui| { - ui.label(egui::RichText::new(label).strong()); + ui.label(egui::RichText::new(lang.tr(label)).strong()); let cur = d.values.get(key).and_then(Json::as_str).unwrap_or("").to_string(); if d.name == "dataValidation" { - let selected = options.iter().find(|(val, _)| *val == cur).map(|(_, text)| *text).unwrap_or(""); + let selected = options.iter().find(|(val, _)| *val == cur).map(|(_, text)| lang.tr(text)).unwrap_or(""); egui::ComboBox::from_id_salt(("dataValidation", key)).selected_text(selected).width(300.0).show_ui(ui, |ui| { for (val, text) in options { - if ui.selectable_label(cur == val, text).clicked() { + if ui.selectable_label(cur == val, lang.tr(text)).clicked() { d.set_value(key, json!(val)); } } }); } else { for (val, text) in options { - if ui.radio(cur == val, text).clicked() { + if ui.radio(cur == val, lang.tr(text)).clicked() { d.set_value(key, json!(val)); } } @@ -1467,12 +1504,15 @@ fn form_fields(ui: &mut egui::Ui, d: &mut Dialog) { } Field::Check { key, label } => { let mut b = d.values.get(key).and_then(Json::as_bool).unwrap_or(false); - if ui.checkbox(&mut b, label).changed() { + if ui.checkbox(&mut b, lang.tr(label)).changed() { d.values.insert(key.into(), json!(b)); } } Field::Note(t) => { - ui.label(egui::RichText::new(t).small()); + // A note can carry user data (a URL, a file or sheet name); `tr` reads a `|` as a + // context separator, so such a note is shown as it is. + let text = if t.contains('|') { t.as_str() } else { lang.tr(&t) }; + ui.label(egui::RichText::new(text).small()); } } ui.end_row(); @@ -2266,8 +2306,24 @@ fn manage_rules(app: &mut SheetApp, ui: &mut egui::Ui) { } fn command_search(app: &mut SheetApp, ui: &mut egui::Ui, d: &mut Dialog, confirm: &mut bool) { - let r = ui.add(egui::TextEdit::singleline(&mut d.search).desired_width(480.0).hint_text("Type a command, e.g. freeze, chart, bold…")); - r.request_focus(); + let (down, up, home, end, pgup, pgdn) = ui.input_mut(|i| { + ( + i.consume_key(egui::Modifiers::NONE, Key::ArrowDown), + i.consume_key(egui::Modifiers::NONE, Key::ArrowUp), + i.consume_key(egui::Modifiers::CTRL, Key::Home), + i.consume_key(egui::Modifiers::CTRL, Key::End), + i.consume_key(egui::Modifiers::NONE, Key::PageUp), + i.consume_key(egui::Modifiers::NONE, Key::PageDown), + ) + }); + let width = ui.available_width(); + let r = ui.add(egui::TextEdit::singleline(&mut d.search).desired_width(width).hint_text("Type a command, e.g. freeze, chart, bold…")); + + if !d.focus_initialized { + r.request_focus(); + d.focus_initialized = true; + } + let q = d.search.to_ascii_lowercase(); let cmds: Vec<(String, String, String)> = app .session @@ -2278,19 +2334,51 @@ fn command_search(app: &mut SheetApp, ui: &mut egui::Ui, d: &mut Dialog, confirm .map(|c| (c.id.to_string(), c.label.to_string(), c.menu.join(" › "))) .take(40) .collect(); - if ui.input(|i| i.key_pressed(Key::ArrowDown)) { - d.list_index = (d.list_index + 1).min(cmds.len().saturating_sub(1)); + + let last = cmds.len().saturating_sub(1); + + let row_h = ui.spacing().interact_size.y.max(20.0); + let row_step = row_h + ui.spacing().item_spacing.y; + + const LIST_HEIGHT: f32 = 320.0; + + let page_size = ((LIST_HEIGHT / row_step).floor() as usize).saturating_sub(1).max(1); + + if down { + d.list_index = (d.list_index + 1).min(last); } - if ui.input(|i| i.key_pressed(Key::ArrowUp)) { + if up { d.list_index = d.list_index.saturating_sub(1); } - egui::ScrollArea::vertical().max_height(320.0).show(ui, |ui| { + if pgdn { + d.list_index = (d.list_index + page_size).min(last); + } + if pgup { + d.list_index = d.list_index.saturating_sub(page_size); + } + if home { + d.list_index = 0; + } + if end { + d.list_index = last; + } + + d.list_index = d.list_index.min(last); + + egui::ScrollArea::vertical().max_height(LIST_HEIGHT).auto_shrink([true, false]).show(ui, |ui| { + let scroll_area_width = ui.available_width(); for (i, (id, label, menu)) in cmds.iter().enumerate() { - let r = ui.add(egui::Button::selectable(i == d.list_index, format!("{label} {menu}")).min_size(vec2(480.0, 20.0))); + let r = ui.add(egui::Button::selectable(i == d.list_index, format!("{label} {menu}")).min_size(vec2(scroll_area_width, 20.0))); + + if (down || up || home || end || pgup || pgdn) && i == d.list_index && !ui.clip_rect().contains_rect(r.rect) { + r.scroll_to_me(Some(if down || end || pgdn { egui::Align::Max } else { egui::Align::Min })); + } + if r.clicked() { d.list_index = i; *confirm = true; } + r.on_hover_text(id); } }); diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index 915a60ab9..4156c2cd3 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -11,14 +11,22 @@ use serde::{Deserialize, Serialize}; mod cs; mod de; +mod el; mod es; mod es_functions; mod fr; +mod it; +mod ja; mod ko; +mod nl; +mod pl; mod pt; +mod ro; mod ru; mod sr; mod tr; +mod uk; +mod vi; mod zh; #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] @@ -27,6 +35,7 @@ pub enum Language { #[default] En, Es, + El, Zh, Ja, Ko, @@ -38,17 +47,52 @@ pub enum Language { Fr, Sr, Tr, + Pl, + It, + Uk, + Vi, + Nl, + Ro, } impl Language { - 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::Tr]; + pub const ALL: [Self; 19] = [ + Self::En, + Self::Es, + Self::El, + Self::Zh, + Self::Ja, + Self::Ko, + Self::Ru, + Self::PtBr, + Self::De, + Self::Cs, + Self::Fr, + Self::Sr, + Self::Pl, + Self::It, + Self::Uk, + Self::Vi, + Self::Nl, + Self::Ro, + Self::Tr, + ]; + + /// Every language in the order the switcher lists them: English first (the source language), + /// then the rest by their own name with accents folded, so Čeština sits under C. Names in + /// other scripts follow the Latin ones in code point order: Cyrillic, then the CJK languages. + pub fn for_picker() -> Vec { + let mut rest: Vec = Self::ALL.into_iter().filter(|l| *l != Self::En).collect(); + rest.sort_by_cached_key(|l| name_sort_key(l.name())); + std::iter::once(Self::En).chain(rest).collect() + } /// The language's own name, shown in the switcher. pub fn name(self) -> &'static str { match self { Self::En => "English", Self::Es => "Español", + Self::El => "Ελληνικά", Self::Zh => "简体中文", Self::Ja => "日本語", Self::Ko => "한국어", @@ -59,6 +103,12 @@ impl Language { Self::Fr => "Français", Self::Sr => "Srpski", Self::Tr => "Türkçe", + Self::Pl => "Polski", + Self::It => "Italiano", + Self::Uk => "Українська", + Self::Vi => "Tiếng Việt", + Self::Nl => "Nederlands", + Self::Ro => "Română", } } @@ -67,6 +117,7 @@ impl Language { match self { Self::En => "en", Self::Es => "es", + Self::El => "el", Self::Zh => "zh", Self::Ja => "ja", Self::Ko => "ko", @@ -77,6 +128,12 @@ impl Language { Self::Fr => "fr", Self::Sr => "sr", Self::Tr => "tr", + Self::Pl => "pl", + Self::It => "it", + Self::Uk => "uk", + Self::Vi => "vi", + Self::Nl => "nl", + Self::Ro => "ro", } } @@ -94,6 +151,7 @@ impl Language { match tag.trim().split(['-', '_']).next()?.to_ascii_lowercase().as_str() { "en" => Some(Self::En), "es" => Some(Self::Es), + "el" => Some(Self::El), "zh" => Some(Self::Zh), "ja" => Some(Self::Ja), "ko" => Some(Self::Ko), @@ -104,6 +162,12 @@ impl Language { "fr" => Some(Self::Fr), "sr" => Some(Self::Sr), "tr" => Some(Self::Tr), + "pl" => Some(Self::Pl), + "it" => Some(Self::It), + "uk" => Some(Self::Uk), + "vi" => Some(Self::Vi), + "nl" => Some(Self::Nl), + "ro" => Some(Self::Ro), _ => None, } } @@ -133,7 +197,8 @@ impl Language { let translated = match self { Self::En => None, Self::Es => es::translate(text), - Self::Ja => JAPANESE.iter().find(|(english, _)| *english == text).map(|(_, translated)| *translated), + Self::El => el::translate(text), + Self::Ja => ja::translate(text), Self::Zh => zh::translate(text), Self::Ko => ko::translate(text), Self::Ru => ru::translate(text), @@ -143,6 +208,12 @@ impl Language { Self::Fr => fr::translate(text), Self::Sr => sr::translate(text), Self::Tr => tr::translate(text), + Self::Pl => pl::translate(text), + Self::It => it::translate(text), + Self::Uk => uk::translate(text), + Self::Vi => vi::translate(text), + Self::Nl => nl::translate(text), + Self::Ro => ro::translate(text), }; translated.unwrap_or_else(|| text.rsplit_once('|').map_or(text, |(_, label)| label)) } @@ -225,420 +296,26 @@ pub fn set_current(ctx: &egui::Context, language: Language) { ctx.data_mut(|d| d.insert_temp(lang_key(), language)); } -/// English label → Japanese. Keys are the exact interface strings (command ids, file names and -/// document text are never translated); anything absent falls back to English. -const JAPANESE: &[(&str, &str)] = &[ - ("Paste", "貼り付け"), - ("Paste Values", "値の貼り付け"), - ("Paste Formulas", "数式の貼り付け"), - ("Paste Formatting", "書式の貼り付け"), - ("Transpose", "行列を入れ替え"), - ("Paste Link", "リンクの貼り付け"), - ("Paste Special…", "形式を選択して貼り付け…"), - ("Insert Copied Cells", "コピーしたセルの挿入"), - ("Insert Copied Cells…", "コピーしたセルの挿入…"), - ("Insert Cut Cells", "切り取ったセルの挿入"), - ("Insert Paste", "挿入貼り付け"), - ("Cut", "切り取り"), - ("Copy", "コピー"), - ("Format Painter (double-click to keep it on)", "書式のコピー/貼り付け (ダブルクリックで固定)"), - ("Bold", "太字"), - ("Italic", "斜体"), - ("Double Underline", "二重下線"), - ("Strikethrough", "取り消し線"), - ("Underline", "下線"), - ("Increase Font Size", "フォントの拡大"), - ("Decrease Font Size", "フォントの縮小"), - ("Wrap Text", "折り返して全体を表示"), - ("Merge & Center", "セルを結合して中央揃え"), - ("Merge Cells", "セルの結合"), - ("Merge Across", "横方向に結合"), - ("Unmerge Cells", "セル結合の解除"), - ("Fill Color", "塗りつぶしの色"), - ("Font Color", "フォントの色"), - ("Borders", "罫線"), - ("Top\nAlign", "上揃え"), - ("Middle\nAlign", "中央揃え (縦)"), - ("Bottom\nAlign", "下揃え"), - ("Left", "左"), - ("Right", "右"), - ("Center", "中央"), - ("Horizontal", "水平"), - ("Vertical Text", "縦書き"), - ("Decrease Indent", "インデントを減らす"), - ("Increase Indent", "インデントを増やす"), - ("Orientation", "方向"), - ("Page Layout|Orientation", "印刷の向き"), - ("Angle Counterclockwise", "左回りに回転"), - ("Angle Clockwise", "右回りに回転"), - ("Rotate Text Up", "文字列を上に回転"), - ("Rotate Text Down", "文字列を下に回転"), - ("Accounting Number Format", "通貨表示形式"), - ("Percent Style", "パーセント表示"), - ("Comma Style", "桁区切りスタイル"), - ("Increase Decimal", "小数点以下の桁数を増やす"), - ("Decrease Decimal", "小数点以下の桁数を減らす"), - ("More Accounting Formats…", "その他の通貨表示形式…"), - ("Conditional\nFormatting", "条件付き書式"), - ("Conditional Formatting", "条件付き書式"), - ("Format\nas Table", "テーブルとして書式設定"), - ("Cell\nStyles", "セルのスタイル"), - ("Format Cells…", "セルの書式設定…"), - ("Format Cell Alignment…", "セルの配置…"), - ("Format\nPane", "書式ウィンドウ"), - ("Format", "書式"), - ("Insert", "挿入"), - ("Insert Cells…", "セルの挿入…"), - ("Delete", "削除"), - ("Delete Cells…", "セルの削除…"), - ("Insert Sheet Rows", "シートの行を挿入"), - ("Insert Sheet Columns", "シートの列を挿入"), - ("Delete Sheet Rows", "シートの行を削除"), - ("Delete Sheet Columns", "シートの列を削除"), - ("Row Height…", "行の高さ…"), - ("AutoFit Row Height", "行の高さを自動調整"), - ("Column Width…", "列の幅…"), - ("AutoFit Column Width", "列の幅を自動調整"), - ("Default Width…", "標準の幅…"), - ("Hide Rows", "行を表示しない"), - ("Unhide Rows", "再表示"), - ("Hide Columns", "列の表示/非表示"), - ("Unhide Columns", "再表示"), - ("Lock Cell", "セルのロック"), - ("Clear", "クリア"), - ("Clear All", "すべてクリア"), - ("Clear Formats", "書式のクリア"), - ("Clear Contents", "数式と値のクリア"), - ("Clear Comments and Notes", "コメントとメモのクリア"), - ("Clear Hyperlinks", "ハイパーリンクのクリア"), - ("AutoSum", "オート SUM"), - ("Flash\nFill", "フラッシュ フィル"), - ("Flash Fill", "フラッシュ フィル"), - ("Fill", "フィル"), - ("Clear Print Area", "印刷範囲のクリア"), - ("Find &\nSelect", "検索と選択"), - ("Find…", "検索…"), - ("Replace…", "置換…"), - ("Go To…", "ジャンプ…"), - ("Go To Special…", "セルを選択…"), - ("PivotTable", "ピボットテーブル"), - ("Recommended\nCharts", "推奨グラフ"), - ("Table", "テーブル"), - ("Pictures", "画像"), - ("Shapes", "図形"), - ("Icons", "アイコン"), - ("Text\nBox", "テキスト ボックス"), - ("Comment", "コメント"), - ("New\nComment", "新しいコメント"), - ("New Note", "新しいメモ"), - ("Show/Hide Note", "メモの表示/非表示"), - ("Header &\nFooter", "ヘッダーとフッター"), - ("Text to\nColumns", "区切り位置"), - ("Link", "リンク"), - ("Symbol", "記号"), - ("Sparklines", "スパークライン"), - ("Checkbox", "チェックボックス"), - ("Insert checkboxes in the selected cells", "選択したセルにチェックボックスを挿入"), - ("Header & Footer", "ヘッダーとフッター"), - ("Draw with ink", "インクで描画"), - ("Eraser", "消しゴム"), - ("Ink to\nShape", "インクを図形に変換"), - ("Select\nObjects", "オブジェクトの選択"), - ("Themes", "テーマ"), - ("Margins", "余白"), - ("Left Margin", "左余白"), - ("Right Margin", "右余白"), - ("Top Margin", "上余白"), - ("Bottom Margin", "下余白"), - ("Header Margin", "ヘッダーの余白"), - ("Footer Margin", "フッターの余白"), - ("Size", "サイズ"), - ("Print\nArea", "印刷範囲"), - ("Set Print Area", "印刷範囲の設定"), - ("Breaks", "改ページ"), - ("Insert Page Break", "改ページの挿入"), - ("Remove Page Break", "改ページの解除"), - ("Reset All Page Breaks", "すべての改ページを解除"), - ("Print\nTitles", "印刷タイトル"), - ("Sheet\nRight-to-Left", "シートを右から左へ"), - ("Sheet Right-to-Left", "シートを右から左へ"), - ("Narrow", "狭い"), - ("Wide", "広い"), - ("Normal", "標準"), - ("Portrait", "縦"), - ("Landscape", "横"), - ("Custom Margins…", "ユーザー設定の余白…"), - ("Insert\nFunction", "関数の挿入"), - ("Name\nManager", "名前の管理"), - ("Define Name", "名前の定義"), - ("Use in Formula", "数式で使用"), - ("Create from Selection", "選択範囲から作成"), - ("Trace Precedents", "参照元のトレース"), - ("Trace Dependents", "参照先のトレース"), - ("Remove Arrows", "矢印の解除"), - ("Show Formulas", "数式の表示"), - ("Error Checking", "エラーチェック"), - ("Evaluate Formula", "数式の検証"), - ("Watch Window", "ウォッチ ウィンドウ"), - ("Calculation\nOptions", "計算方法の設定"), - ("Calculate Now", "再計算実行"), - ("Calculate Sheet", "シートの再計算"), - ("Automatic", "自動"), - ("Automatic Except for Data Tables", "データ テーブル以外は自動"), - ("Manual", "手動"), - ("Sort &\nFilter", "並べ替えとフィルター"), - ("Sort", "並べ替え"), - ("Sort A to Z", "昇順"), - ("Sort Z to A", "降順"), - ("Custom Sort…", "ユーザー設定の並べ替え…"), - ("Filter", "フィルター"), - ("Reapply", "再適用"), - ("Get Data\n(Text/CSV)", "データの取得 (テキスト/CSV)"), - ("Remove\nDuplicates", "重複の削除"), - ("Data\nValidation", "データの入力規則"), - ("Data Validation", "データの入力規則"), - ("Data Validation…", "データの入力規則…"), - ("Circle Invalid Data", "無効なデータをマーク"), - ("Clear Validation", "入力規則のクリア"), - ("Group", "グループ化"), - ("Ungroup", "グループ解除"), - ("Show Detail", "詳細データの表示"), - ("Hide Detail", "詳細を表示しない"), - ("Subtotal", "小計"), - ("Data\nAnalysis", "データ分析"), - ("Data Analysis", "データ分析"), - ("Solver", "ソルバー"), - ("What-If\nAnalysis", "What-If 分析"), - ("Data Table…", "データ テーブル…"), - ("Scenario Manager…", "シナリオ マネージャー…"), - ("Goal Seek…", "ゴール シーク…"), - ("Forecast\nSheet", "予測シート"), - ("Spelling", "スペルチェック"), - ("Check\nAccessibility", "アクセシビリティ チェック"), - ("Threaded Comments", "スレッド化されたコメント"), - ("Show\nComments", "コメントの表示"), - ("Previous", "前へ"), - ("Next", "次へ"), - ("Previous Comment", "前のコメント"), - ("Next Comment", "次のコメント"), - ("Show All Notes", "すべてのメモを表示"), - ("Convert to Comments", "コメントに変換"), - ("Protect\nWorkbook", "ブックの保護"), - ("Allow Edit\nRanges", "範囲の編集を許可"), - ("Allow Edit Ranges", "範囲の編集を許可"), - ("Unprotect\nSheet", "シート保護の解除"), - ("Protect Sheet…", "シートの保護…"), - ("Comments", "コメント"), - ("Notes", "メモ"), - ("Page Break\nPreview", "改ページ プレビュー"), - ("Page\nLayout", "ページ レイアウト"), - ("Formula Bar", "数式バー"), - ("Gridlines", "目盛線"), - ("Headings", "見出し"), - ("Zoom", "ズーム"), - ("100%", "100%"), - ("Zoom to\nSelection", "選択範囲を拡大"), - ("Freeze\nPanes", "ウィンドウ枠の固定"), - ("Freeze Panes", "ウィンドウ枠の固定"), - ("Freeze Top Row", "最上行の固定"), - ("Freeze First Column", "最左列の固定"), - ("Unfreeze Panes", "ウィンドウ枠固定の解除"), - ("Dark Mode", "ダーク モード"), - ("Display theme", "表示テーマ"), - ("Animations", "アニメーション"), - ( - "Glide the selection outline to the cell you move to instead of jumping there", - "選択範囲の枠を、移動先のセルまで滑らかに動かします(瞬時には切り替えません)", - ), - ("System", "システム"), - ("Light", "ライト"), - ("Dark", "ダーク"), - ("Interface language", "表示言語"), - ("Interface size", "表示サイズ"), - ("Auto", "自動"), - ("Drag to freeze columns", "ドラッグして列を固定"), - ("Drag to freeze rows", "ドラッグして行を固定"), - ("Command\nPalette", "コマンド パレット"), - ("Agent\nControl", "エージェント制御"), - ("Action\nJournal", "操作ジャーナル"), - ("About\nGridCraft", "GridCraft について"), - ("Share", "共有"), - ("Add Chart\nElement", "グラフ要素を追加"), - ("Change\nChart Type", "グラフの種類の変更"), - ("Switch\nRow/Column", "行/列の切り替え"), - ("Select\nData", "データの選択"), - ("Data Labels: None", "データ ラベル: なし"), - ("Data Labels: Show", "データ ラベル: 表示"), - ("Legend: None", "凡例: なし"), - ("Legend: Bottom", "凡例: 下"), - ("Legend: Top", "凡例: 上"), - ("Legend: Right", "凡例: 右"), - ("Gridlines: None", "目盛線: なし"), - ("Gridlines: Show", "目盛線: 表示"), - ("Chart\nTitle", "グラフ タイトル"), - ("Delete\nChart", "グラフの削除"), - ("Convert\nto Range", "範囲に変換"), - ("Table\nStyles", "テーブル スタイル"), - ("Top 10 Items", "上位 10 項目"), - ("Top 10%", "上位 10%"), - ("Bottom 10 Items", "下位 10 項目"), - ("Bottom 10%", "下位 10%"), - ("Above Average", "平均より上"), - ("Below Average", "平均より下"), - ("Clear Rules from Entire Sheet", "シート全体からルールをクリア"), - ("Clear Rules from Selected Cells", "選択したセルからルールをクリア"), - ("Constants", "定数"), - ("Data Bars", "データ バー"), - ("Color Scales", "カラー スケール"), - ("Icon Sets", "アイコン セット"), - ("Home", "ホーム"), - ("Draw", "描画"), - ("Page Layout", "ページ レイアウト"), - ("Formulas", "数式"), - ("Data", "データ"), - ("Review", "レビュー"), - ("View", "表示"), - ("Automate", "自動化"), - ("Table Design", "テーブル デザイン"), - ("Chart Design", "グラフ デザイン"), - ("Ready", "準備完了"), - ("Enter", "入力"), - ("Edit", "編集"), - ("Point", "ポイント"), - ("Calculate", "計算"), - ("Select destination and press Enter or choose Paste", "貼り付け先を選び、Enter キーを押すか [貼り付け] を選びます"), - ("General", "標準"), - ("Number", "数値"), - ("Currency", "通貨"), - ("Accounting", "会計"), - ("Date", "日付"), - ("Time", "時刻"), - ("Percentage", "パーセンテージ"), - ("Fraction", "分数"), - ("Scientific", "指数"), - ("Text", "文字列"), - ("Special", "特殊"), - ("Custom", "ユーザー設定"), - ("Short Date", "日付"), - ("Long Date", "長い日付"), - ("More Number Formats…", "その他の表示形式…"), - ("Financial", "財務"), - ("Logical", "論理"), - ("Date &\nTime", "日付/時刻"), - ("Lookup &\nReference", "検索/行列"), - ("Math &\nTrig", "数学/三角"), - ("More\nFunctions", "その他の関数"), - ("Sheet Options|View", "画面"), - ("Print", "印刷"), - // Page Layout view and the Header & Footer tab. - ("Click to add data", "クリックしてデータを追加"), - ("Add header", "ヘッダーの追加"), - ("Add footer", "フッターの追加"), - ("(none)", "(なし)"), - ("Header", "ヘッダー"), - ("Footer", "フッター"), - ("Page\nNumber", "ページ\n番号"), - ("Number\nof Pages", "ページ数"), - ("Current\nDate", "現在の\n日付"), - ("Current\nTime", "現在の\n時刻"), - ("File\nPath", "ファイルの\nパス"), - ("File\nName", "ファイル名"), - ("Sheet\nName", "シート名"), - ("Go to\nHeader", "ヘッダーに\n移動"), - ("Go to\nFooter", "フッターに\n移動"), - ("Page Number", "ページ番号"), - ("Number of Pages", "ページ数"), - ("Current Date", "現在の日付"), - ("Current Time", "現在の時刻"), - ("File Path", "ファイルのパス"), - ("File Name", "ファイル名"), - ("Sheet Name", "シート名"), - ("Go to Header", "ヘッダーに移動"), - ("Different First Page", "先頭ページのみ別指定"), - ("Different Odd & Even Pages", "奇数/偶数ページ別指定"), - ("Go to Footer", "フッターに移動"), - ("Ruler", "ルーラー"), - // File › Backstage view. - ("File", "ファイル"), - ("Back", "戻る"), - ("New", "新規"), - ("Open", "開く"), - ("Info", "情報"), - ("Save", "上書き保存"), - ("Save As", "名前を付けて保存"), - ("Export", "エクスポート"), - ("Close", "閉じる"), - ("Options", "オプション"), - ("Blank workbook", "空白のブック"), - ("Recent", "最近使ったアイテム"), - ("No recent workbooks yet.", "最近使ったブックはまだありません。"), - ("More workbooks", "その他のブック"), - ("Modified", "更新日時"), - ("Not available", "利用できません"), - ("Just now", "たった今"), - ("Yesterday", "昨日"), - ("{n} min ago", "{n} 分前"), - ("{n} h ago", "{n} 時間前"), - ("{n} days ago", "{n} 日前"), - ("{n} weeks ago", "{n} 週間前"), - ("{n} months ago", "{n} か月前"), - ("{n} years ago", "{n} 年前"), - ("Browse…", "参照…"), - ("Not saved yet", "まだ保存されていません"), - ("Location", "場所"), - ("Sheets", "シート"), - ("Protect Workbook", "ブックの保護"), - ( - "Sheet structure is locked: sheets can't be added, moved, renamed or deleted.", - "シートの構成はロックされています。シートの追加、移動、名前の変更、削除はできません。", - ), - ( - "Lock the sheet structure so sheets can't be added, moved, renamed or deleted.", - "シートの構成をロックして、シートの追加、移動、名前の変更、削除をできないようにします。", - ), - ("Properties", "プロパティ"), - ("Title", "タイトル"), - ("Subject", "件名"), - ("Author", "作成者"), - ("Company", "会社名"), - ("Keywords", "キーワード"), - ("Description", "説明"), - ("No workbook is open.", "ブックが開かれていません。"), - ("Save as type", "ファイルの種類"), - ("Excel Workbook (*.xlsx)", "Excel ブック (*.xlsx)"), - ("CSV UTF-8 (Comma delimited) (*.csv)", "CSV UTF-8 (コンマ区切り) (*.csv)"), - ("Web Page (*.html)", "Web ページ (*.html)"), - ("PDF (*.pdf)", "PDF ファイル (*.pdf)"), - ("Download", "ダウンロード"), - ( - "A CSV file, web page or PDF is a copy: the workbook keeps its own file.", - "CSV ファイル、Web ページ、PDF はコピーです。ブックは元のファイルのままです。", - ), - ("Save the workbook under another name or in another folder.", "ブックを別の名前または別のフォルダーに保存します。"), - ("Print Active Sheets", "作業中のシートを印刷"), - ("Print Entire Workbook", "ブック全体を印刷"), - ("Fit Sheet on One Page", "シートを 1 ページに印刷"), - ("Page Setup…", "ページ設定…"), - ("Page {page} of {pages}", "{page} / {pages} ページ"), - ("Nothing to print.", "印刷する内容がありません。"), - ("Previous page", "前のページ"), - ("Next page", "次のページ"), - ("Create PDF", "PDF の作成"), - ("Save the sheet as a PDF document that keeps its page layout.", "ページ レイアウトを保ったまま、シートを PDF ドキュメントとして保存します。"), - ("Change File Type", "ファイルの種類の変更"), - ("CSV (Comma delimited)", "CSV (コンマ区切り)"), - ("Save the active sheet as comma-separated text.", "作業中のシートをコンマ区切りのテキストとして保存します。"), - ("Web Page (.html)", "Web ページ (.html)"), - ("Save the workbook as a web page.", "ブックを Web ページとして保存します。"), - ("Options|General", "全般"), - ("Options|Save", "保存"), - ("Show formula bar", "数式バーを表示する"), - ("Enable AutoComplete for cell values", "セルの値にオートコンプリートを使用する"), - ("Save .xlsx workbooks automatically after every change", "変更のたびに .xlsx ブックを自動的に保存する"), - ("Workbook calculation", "ブックの計算"), - ("Enable iterative calculation", "反復計算を行う"), - ("Calculation settings are saved with the workbook.", "計算の設定はブックと共に保存されます。"), -]; +/// `name` lowercased with the Latin accents that occur in language names folded away, so a +/// byte-wise sort reads alphabetically. Other scripts are left as they are. +fn name_sort_key(name: &str) -> String { + name.chars() + .flat_map(char::to_lowercase) + .map(|c| match c { + 'à'..='å' | 'ā' | 'ă' | 'ą' => 'a', + 'ç' | 'ć' | 'č' => 'c', + 'è'..='ë' | 'ē' | 'ě' | 'ę' | 'ế' | 'ệ' => 'e', + 'ì'..='ï' | 'ī' => 'i', + 'ñ' | 'ń' | 'ň' => 'n', + 'ò'..='ö' | 'ø' | 'ő' => 'o', + 'ś' | 'š' => 's', + 'ù'..='ü' | 'ū' | 'ů' | 'ű' => 'u', + 'ý' | 'ÿ' => 'y', + 'ź' | 'ż' | 'ž' => 'z', + c => c, + }) + .collect() +} #[cfg(test)] mod tests { @@ -667,22 +344,29 @@ mod tests { #[test] fn translations_are_unique_and_preserve_unknown_text() { - for (i, (en, ja)) in JAPANESE.iter().enumerate() { + for (i, (en, ja)) in ja::CORE.iter().enumerate() { assert!(!ja.is_empty()); - assert!(JAPANESE.iter().take(i).all(|(other, _)| en != other)); + assert!(ja::CORE.iter().take(i).all(|(other, _)| en != other)); assert_eq!(Language::En.tr(en), en.rsplit_once('|').map_or(*en, |(_, label)| label)); } - for (english, _) in JAPANESE { + for (english, _) in ja::CORE { assert!(zh::translate(english).is_some_and(|text| !text.is_empty()), "missing Simplified Chinese: {english}"); assert!(ko::translate(english).is_some_and(|text| !text.is_empty()), "missing Korean: {english}"); assert!(ru::translate(english).is_some_and(|text| !text.is_empty()), "missing Russian: {english}"); assert!(pt::translate(english).is_some_and(|text| !text.is_empty()), "missing Portuguese: {english}"); assert!(es::translate(english).is_some_and(|text| !text.is_empty()), "missing Spanish: {english}"); + assert!(el::translate(english).is_some_and(|text| !text.is_empty()), "missing Greek: {english}"); assert!(de::translate(english).is_some_and(|text| !text.is_empty()), "missing German: {english}"); 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!(tr::translate(english).is_some_and(|text| !text.is_empty()), "missing Turkish: {english}"); + assert!(pl::translate(english).is_some_and(|text| !text.is_empty()), "missing Polish: {english}"); + assert!(it::translate(english).is_some_and(|text| !text.is_empty()), "missing Italian: {english}"); + assert!(uk::translate(english).is_some_and(|text| !text.is_empty()), "missing Ukrainian: {english}"); + assert!(vi::translate(english).is_some_and(|text| !text.is_empty()), "missing Vietnamese: {english}"); + assert!(nl::translate(english).is_some_and(|text| !text.is_empty()), "missing Dutch: {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"), "数据"); @@ -694,6 +378,10 @@ mod tests { assert_eq!(Language::PtBr.tr_error("command `chart`: Select a chart first."), "Selecione um gráfico primeiro."); assert_eq!(Language::PtBr.tr_error("Printer Office: permission denied"), "Printer Office: permission denied"); assert_eq!(Language::Es.tr("Data"), "Datos"); + assert_eq!(Language::El.tr("Data"), "Δεδομένα"); + assert_eq!(Language::El.tr("Page Layout|Orientation"), "Προσανατολισμός σελίδας"); + assert_eq!(Language::El.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::El.tr("Page {page} of {pages}"), "Σελίδα {page} από {pages}"); assert_eq!(Language::Es.tr("Freeze Panes"), "Inmovilizar paneles"); assert_eq!(Language::Es.tr("Sheet1!A1"), "Sheet1!A1"); assert_eq!(Language::De.tr("Data"), "Daten"); @@ -725,9 +413,63 @@ mod tests { assert_eq!(Language::Sr.tr("Orientation"), "Orijentacija"); assert_eq!(Language::Tr.tr("Page Layout|Orientation"), "Sayfa Yönü"); assert_eq!(Language::Tr.tr("Orientation"), "Yönlendirme"); + assert_eq!(Language::Pl.tr("Data"), "Dane"); + assert_eq!(Language::Pl.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::Pl.tr("Page Layout|Orientation"), "Orientacja"); + assert_eq!(Language::It.tr("Data"), "Dati"); + assert_eq!(Language::It.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::It.tr("Freeze Panes"), "Blocca riquadri"); + assert_eq!(Language::It.tr("Page Layout|Orientation"), "Orientamento"); + assert_eq!(Language::It.tr("Orientation"), "Orientamento"); + assert_eq!(Language::Uk.tr("Data"), "Дані"); + assert_eq!(Language::Uk.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::Vi.tr("Data"), "Dữ liệu"); + assert_eq!(Language::Vi.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::Vi.tr("Page Layout|Orientation"), "Hướng giấy"); + assert_eq!(Language::Vi.tr("Orientation"), "Hướng chữ"); + assert_eq!(Language::Nl.tr("Data"), "Gegevens"); + assert_eq!(Language::Nl.tr("Sheet1!A1"), "Sheet1!A1"); + assert_eq!(Language::Nl.tr("Page Layout|Orientation"), "Paginastand"); + assert_eq!(Language::Nl.tr("Orientation"), "Richting"); + 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); } + /// A catalog whose translations slip onto their neighbours' keys still covers every key, so + /// check the shape of each translation against its English: placeholders survive, and a + /// one-line label (a menu item, a tooltip) doesn't turn into a two-line ribbon label. French + /// once shipped with over a hundred translations shifted this way ("Close" read "Société"). + #[test] + fn translations_keep_the_shape_of_their_english() { + let placeholders = + |s: &str| s.split('{').skip(1).filter_map(|rest| rest.split_once('}').map(|(name, _)| name.to_string())).collect::>(); + for language in Language::ALL { + for (english, _) in ja::CORE { + let label = english.rsplit_once('|').map_or(*english, |(_, label)| label); + let text = language.tr(english); + assert_eq!(placeholders(text), placeholders(label), "{language:?}: {english:?} => {text:?}"); + // Big ribbon buttons whose English fits on one line may still need two. + if !label.contains('\n') && !["AutoSum", "PivotTable"].contains(english) { + assert!(!text.contains('\n'), "{language:?}: one-line {english:?} => {text:?}"); + } + } + } + for (english, french) in [ + ("Close", "Fermer"), + ("File", "Fichier"), + ("Save", "Enregistrer"), + ("Animations", "Animations"), + ("Company", "Société"), + ("Show Detail", "Afficher le détail"), + ("Solver", "Solveur"), + ] { + assert_eq!(Language::Fr.tr(english), french); + } + } + #[test] fn german_cell_and_header_context_menus_are_fully_translated() { for label in [ @@ -798,7 +540,7 @@ mod tests { // `tr` returns a found translation as it is, so a catalog that keeps `context|` in its // value shows it on screen (File › Options read "Options|Général" in French). for language in Language::ALL { - for (english, _) in JAPANESE { + for (english, _) in ja::CORE { let shown = language.tr(english); assert!(!shown.contains('|'), "{} shows a context prefix for {english}: {shown}", language.code()); } @@ -809,6 +551,12 @@ 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::Nl.tr("Options|General"), "Algemeen"); + assert_eq!(Language::Nl.tr("Options|Save"), "Opslaan"); + assert_eq!(Language::Nl.tr("Sheet Options|View"), "Weergeven"); + 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] @@ -831,6 +579,9 @@ mod tests { assert_eq!(Language::from_tag("ja-JP"), Some(Language::Ja)); assert_eq!(Language::from_tag("en_US"), Some(Language::En)); assert_eq!(Language::from_tag("es_MX"), Some(Language::Es)); + assert_eq!(Language::from_tag("el-GR"), Some(Language::El)); + assert_eq!(Language::from_tag("el_GR.UTF-8"), Some(Language::El)); + assert_eq!(Language::parse("el"), Some(Language::El)); assert_eq!(Language::from_tag("zh-Hans-CN"), Some(Language::Zh)); assert_eq!(Language::from_tag("ko-KR"), Some(Language::Ko)); assert_eq!(Language::from_tag("RU_ru"), Some(Language::Ru)); @@ -852,6 +603,22 @@ mod tests { assert_eq!(Language::from_tag("tr-TR"), Some(Language::Tr)); assert_eq!(Language::from_tag("tr_TR.UTF-8"), Some(Language::Tr)); assert_eq!(Language::parse("tr"), Some(Language::Tr)); + assert_eq!(Language::from_tag("pl-PL"), Some(Language::Pl)); + assert_eq!(Language::from_tag("pl_PL.UTF-8"), Some(Language::Pl)); + assert_eq!(Language::parse("pl"), Some(Language::Pl)); + assert_eq!(Language::from_tag("it-IT"), Some(Language::It)); + assert_eq!(Language::from_tag("it_CH.UTF-8"), Some(Language::It)); + assert_eq!(Language::parse("it"), Some(Language::It)); + assert_eq!(Language::from_tag("uk-XX"), Some(Language::Uk)); + assert_eq!(Language::parse("uk"), Some(Language::Uk)); + assert_eq!(Language::from_tag("vi-VN"), Some(Language::Vi)); + assert_eq!(Language::parse("vi"), Some(Language::Vi)); + assert_eq!(Language::from_tag("nl-NL"), Some(Language::Nl)); + assert_eq!(Language::from_tag("nl_BE"), Some(Language::Nl)); + assert_eq!(Language::parse("nl"), Some(Language::Nl)); + 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] @@ -885,4 +652,14 @@ mod tests { assert_eq!(Language::parse(l.code()), Some(l)); } } + + #[test] + fn picker_lists_english_first_then_names_alphabetically() { + let order = Language::for_picker(); + assert_eq!(order.first(), Some(&Language::En)); + assert_eq!(order.len(), Language::ALL.len()); + let keys: Vec = order[1..].iter().map(|l| name_sort_key(l.name())).collect(); + assert!(keys.windows(2).all(|w| w[0] <= w[1]), "{keys:?}"); + assert_eq!(name_sort_key("Čeština"), "cestina"); + } } diff --git a/crates/ui-egui/src/i18n/el.rs b/crates/ui-egui/src/i18n/el.rs new file mode 100644 index 000000000..e54416a6f --- /dev/null +++ b/crates/ui-egui/src/i18n/el.rs @@ -0,0 +1,979 @@ +//! Greek (el) interface localization for GridCraft. +//! Command ids, cell references and formula identifiers are not translated. +//! Source labels are kept verbatim and unmatched labels fall back to English. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Επικόλληση", + "Paste Values" => "Επικόλληση τιμών", + "Paste Formulas" => "Επικόλληση τύπων", + "Paste Formatting" => "Επικόλληση μορφοποίησης", + "Transpose" => "Αντιμετάθεση", + "Paste Link" => "Επικόλληση σύνδεσης", + "Paste Special…" => "Ειδική επικόλληση…", + "Format Painter (double-click to keep it on)" => "Αντιγραφή μορφοποίησης (διπλό κλικ για συνεχή χρήση)", + "Double Underline" => "Διπλή υπογράμμιση", + "Strikethrough" => "Διαγραφή με γραμμή", + "Underline" => "Υπογράμμιση", + "Increase Font Size" => "Αύξηση μεγέθους γραμματοσειράς", + "Decrease Font Size" => "Μείωση μεγέθους γραμματοσειράς", + "Wrap Text" => "Αναδίπλωση κειμένου", + "Merge & Center" => "Συγχώνευση και στοίχιση στο κέντρο", + "Merge Cells" => "Συγχώνευση κελιών", + "Merge Across" => "Συγχώνευση κατά γραμμή", + "Unmerge Cells" => "Κατάργηση συγχώνευσης κελιών", + "Fill Color" => "Χρώμα γεμίσματος", + "Font Color" => "Χρώμα γραμματοσειράς", + "Borders" => "Περιγράμματα", + "Top\nAlign" => "Στοίχιση\nεπάνω", + "Middle\nAlign" => "Στοίχιση\nστο μέσο", + "Bottom\nAlign" => "Στοίχιση\nκάτω", + "Left" => "Αριστερά", + "Right" => "Δεξιά", + "Center" => "Στο κέντρο", + "Horizontal" => "Οριζόντια", + "Vertical Text" => "Κατακόρυφο κείμενο", + "Decrease Indent" => "Μείωση εσοχής", + "Increase Indent" => "Αύξηση εσοχής", + "Orientation" => "Προσανατολισμός κειμένου", + "Angle Counterclockwise" => "Περιστροφή αριστερόστροφα", + "Angle Clockwise" => "Περιστροφή δεξιόστροφα", + "Rotate Text Up" => "Περιστροφή κειμένου προς τα πάνω", + "Rotate Text Down" => "Περιστροφή κειμένου προς τα κάτω", + "Accounting Number Format" => "Λογιστική μορφή αριθμών", + "Percent Style" => "Μορφή ποσοστού", + "Comma Style" => "Διαχωριστικό χιλιάδων", + "Increase Decimal" => "Αύξηση δεκαδικών ψηφίων", + "Decrease Decimal" => "Μείωση δεκαδικών ψηφίων", + "More Accounting Formats…" => "Περισσότερες λογιστικές μορφές…", + "Conditional\nFormatting" => "Μορφοποίηση\nυπό όρους", + "Conditional Formatting" => "Μορφοποίηση υπό όρους", + "Format\nas Table" => "Μορφοποίηση\nως πίνακας", + "Cell\nStyles" => "Στυλ\nκελιών", + "Format Cells…" => "Μορφοποίηση κελιών…", + "Format Cell Alignment…" => "Στοίχιση κελιών…", + "Format\nPane" => "Παράθυρο\nμορφοποίησης", + "Format" => "Μορφοποίηση", + "Insert" => "Εισαγωγή", + "Insert Cells…" => "Εισαγωγή κελιών…", + "Delete" => "Διαγραφή", + "Delete Cells…" => "Διαγραφή κελιών…", + "Insert Sheet Rows" => "Εισαγωγή γραμμών φύλλου", + "Insert Sheet Columns" => "Εισαγωγή στηλών φύλλου", + "Delete Sheet Rows" => "Διαγραφή γραμμών φύλλου", + "Delete Sheet Columns" => "Διαγραφή στηλών φύλλου", + "Row Height…" => "Ύψος γραμμής…", + "AutoFit Row Height" => "Αυτόματη προσαρμογή ύψους γραμμής", + "Column Width…" => "Πλάτος στήλης…", + "AutoFit Column Width" => "Αυτόματη προσαρμογή πλάτους στήλης", + "Default Width…" => "Προεπιλεγμένο πλάτος…", + "Hide Rows" => "Απόκρυψη γραμμών", + "Unhide Rows" => "Εμφάνιση γραμμών", + "Hide Columns" => "Απόκρυψη στηλών", + "Unhide Columns" => "Εμφάνιση στηλών", + "Lock Cell" => "Κλείδωμα κελιού", + "Clear" => "Απαλοιφή", + "Clear All" => "Απαλοιφή όλων", + "Clear Formats" => "Απαλοιφή μορφοποίησης", + "Clear Contents" => "Απαλοιφή περιεχομένων", + "Clear Comments and Notes" => "Απαλοιφή σχολίων και σημειώσεων", + "Clear Hyperlinks" => "Απαλοιφή υπερσυνδέσμων", + "AutoSum" => "Αυτόματο άθροισμα", + "Flash\nFill" => "Γρήγορη\nσυμπλήρωση", + "Flash Fill" => "Γρήγορη συμπλήρωση", + "Fill" => "Συμπλήρωση", + "Clear Print Area" => "Κατάργηση περιοχής εκτύπωσης", + "Find &\nSelect" => "Εύρεση και\nεπιλογή", + "Find…" => "Εύρεση…", + "Replace…" => "Αντικατάσταση…", + "Go To…" => "Μετάβαση…", + "Go To Special…" => "Ειδική μετάβαση…", + "PivotTable" => "Συγκεντρωτικός πίνακας", + "Recommended\nCharts" => "Προτεινόμενα\nγραφήματα", + "Table" => "Πίνακας", + "Pictures" => "Εικόνες", + "Shapes" => "Σχήματα", + "Icons" => "Εικονίδια", + "Text\nBox" => "Πλαίσιο\nκειμένου", + "Comment" => "Σχόλιο", + "New\nComment" => "Νέο\nσχόλιο", + "New Note" => "Νέα σημείωση", + "Show/Hide Note" => "Εμφάνιση/απόκρυψη σημείωσης", + "Header &\nFooter" => "Κεφαλίδα και\nυποσέλιδο", + "Text to\nColumns" => "Κείμενο σε\nστήλες", + "Link" => "Σύνδεση", + "Symbol" => "Σύμβολο", + "Sparklines" => "Μικρογραφήματα", + "Header & Footer" => "Κεφαλίδα και υποσέλιδο", + "Draw with ink" => "Σχεδίαση με μελάνι", + "Eraser" => "Γόμα", + "Ink to\nShape" => "Μελάνι σε\nσχήμα", + "Select\nObjects" => "Επιλογή\nαντικειμένων", + "Themes" => "Θέματα", + "Margins" => "Περιθώρια", + "Left Margin" => "Αριστερό περιθώριο", + "Right Margin" => "Δεξιό περιθώριο", + "Top Margin" => "Επάνω περιθώριο", + "Bottom Margin" => "Κάτω περιθώριο", + "Header Margin" => "Περιθώριο κεφαλίδας", + "Footer Margin" => "Περιθώριο υποσέλιδου", + "Size" => "Μέγεθος", + "Print\nArea" => "Περιοχή\nεκτύπωσης", + "Set Print Area" => "Ορισμός περιοχής εκτύπωσης", + "Breaks" => "Αλλαγές σελίδας", + "Insert Page Break" => "Εισαγωγή αλλαγής σελίδας", + "Remove Page Break" => "Κατάργηση αλλαγής σελίδας", + "Reset All Page Breaks" => "Κατάργηση όλων των αλλαγών σελίδας", + "Print\nTitles" => "Τίτλοι\nεκτύπωσης", + "Narrow" => "Στενά", + "Wide" => "Πλατιά", + "Normal" => "Κανονικό", + "Portrait" => "Κατακόρυφος", + "Landscape" => "Οριζόντιος", + "Custom Margins…" => "Προσαρμοσμένα περιθώρια…", + "Insert\nFunction" => "Εισαγωγή\nσυνάρτησης", + "Name\nManager" => "Διαχείριση\nονομάτων", + "Define Name" => "Ορισμός ονόματος", + "Use in Formula" => "Χρήση σε τύπο", + "Create from Selection" => "Δημιουργία από επιλογή", + "Trace Precedents" => "Εντοπισμός κελιών προέλευσης", + "Trace Dependents" => "Εντοπισμός εξαρτώμενων κελιών", + "Remove Arrows" => "Κατάργηση βελών", + "Show Formulas" => "Εμφάνιση τύπων", + "Error Checking" => "Έλεγχος σφαλμάτων", + "Evaluate Formula" => "Αξιολόγηση τύπου", + "Watch Window" => "Παράθυρο παρακολούθησης", + "Calculation\nOptions" => "Επιλογές\nυπολογισμού", + "Calculate Now" => "Υπολογισμός τώρα", + "Calculate Sheet" => "Υπολογισμός φύλλου", + "Automatic" => "Αυτόματα", + "Automatic Except for Data Tables" => "Αυτόματα, εκτός από τους πίνακες δεδομένων", + "Manual" => "Χειροκίνητα", + "Sort &\nFilter" => "Ταξινόμηση και\nφίλτρο", + "Sort" => "Ταξινόμηση", + "Sort A to Z" => "Ταξινόμηση από Α προς Ω", + "Sort Z to A" => "Ταξινόμηση από Ω προς Α", + "Custom Sort…" => "Προσαρμοσμένη ταξινόμηση…", + "Filter" => "Φίλτρο", + "Reapply" => "Επανάληψη εφαρμογής", + "Get Data\n(Text/CSV)" => "Λήψη δεδομένων\n(κείμενο/CSV)", + "Remove\nDuplicates" => "Κατάργηση\nδιπλοτύπων", + "Data\nValidation" => "Επικύρωση\nδεδομένων", + "Data Validation" => "Επικύρωση δεδομένων", + "Data Validation…" => "Επικύρωση δεδομένων…", + "Circle Invalid Data" => "Κύκλωση μη έγκυρων δεδομένων", + "Clear Validation" => "Κατάργηση επικύρωσης", + "Group" => "Ομαδοποίηση", + "Ungroup" => "Κατάργηση ομαδοποίησης", + "Show Detail" => "Εμφάνιση λεπτομερειών", + "Hide Detail" => "Απόκρυψη λεπτομερειών", + "Subtotal" => "Μερικό άθροισμα", + "What-If\nAnalysis" => "Ανάλυση\nυποθετικών σεναρίων", + "Data Table…" => "Πίνακας δεδομένων…", + "Scenario Manager…" => "Διαχείριση σεναρίων…", + "Goal Seek…" => "Αναζήτηση στόχου…", + "Spelling" => "Ορθογραφικός έλεγχος", + "Check\nAccessibility" => "Έλεγχος\nπροσβασιμότητας", + "Threaded Comments" => "Σχόλια με νήματα", + "Show\nComments" => "Εμφάνιση\nσχολίων", + "Protect\nWorkbook" => "Προστασία\nβιβλίου εργασίας", + "Unprotect\nSheet" => "Κατάργηση προστασίας\nφύλλου", + "Protect Sheet…" => "Προστασία φύλλου…", + "Comments" => "Σχόλια", + "Notes" => "Σημειώσεις", + "Page Break\nPreview" => "Προεπισκόπηση\nαλλαγών σελίδας", + "Page\nLayout" => "Διάταξη\nσελίδας", + "Formula Bar" => "Γραμμή τύπων", + "Gridlines" => "Γραμμές πλέγματος", + "Headings" => "Επικεφαλίδες", + "Zoom" => "Μεγέθυνση", + "Forecast\nSheet" => "Φύλλο\nπρόβλεψης", + "Add footer" => "Προσθήκη υποσέλιδου", + "Add header" => "Προσθήκη κεφαλίδας", + "Click to add data" => "Κάντε κλικ για εισαγωγή δεδομένων", + "Current Date" => "Τρέχουσα ημερομηνία", + "Current\nDate" => "Τρέχουσα\nημερομηνία", + "Current\nTime" => "Τρέχουσα\nώρα", + "Current Time" => "Τρέχουσα ώρα", + "File Name" => "Όνομα αρχείου", + "File\nName" => "Όνομα\nαρχείου", + "File\nPath" => "Διαδρομή\nαρχείου", + "File Path" => "Διαδρομή αρχείου", + "Footer" => "Υποσέλιδο", + "Different First Page" => "Διαφορετική πρώτη σελίδα", + "Different Odd & Even Pages" => "Διαφορετικές μονές και ζυγές σελίδες", + "Go to Footer" => "Μετάβαση στο υποσέλιδο", + "Go to Header" => "Μετάβαση στην κεφαλίδα", + "Go to\nFooter" => "Μετάβαση στο\nυποσέλιδο", + "Go to\nHeader" => "Μετάβαση στην\nκεφαλίδα", + "Header" => "Κεφαλίδα", + "(none)" => "(κανένα)", + "Number\nof Pages" => "Αριθμός\nσελίδων", + "Number of Pages" => "Αριθμός σελίδων", + "Page\nNumber" => "Αριθμός\nσελίδας", + "Page Number" => "Αριθμός σελίδας", + "Ruler" => "Χάρακας", + "Sheet Name" => "Όνομα φύλλου", + "Sheet\nName" => "Όνομα\nφύλλου", + "Animations" => "Κινήσεις", + "Insert Copied Cells" => "Εισαγωγή αντιγραμμένων κελιών", + "Insert Copied Cells…" => "Εισαγωγή αντιγραμμένων κελιών…", + "Insert Cut Cells" => "Εισαγωγή αποκομμένων κελιών", + "Insert Paste" => "Εισαγωγή με επικόλληση", + "Previous" => "Προηγούμενο", + "Next" => "Επόμενο", + "Previous Comment" => "Προηγούμενο σχόλιο", + "Next Comment" => "Επόμενο σχόλιο", + "Show All Notes" => "Εμφάνιση όλων των σημειώσεων", + "Convert to Comments" => "Μετατροπή σε σχόλια", + "Checkbox" => "Πλαίσιο ελέγχου", + "Insert checkboxes in the selected cells" => "Εισαγωγή πλαισίων ελέγχου στα επιλεγμένα κελιά", + "Sheet\nRight-to-Left" => "Φύλλο από\nδεξιά προς αριστερά", + "Sheet Right-to-Left" => "Φύλλο από δεξιά προς αριστερά", + "Data\nAnalysis" => "Ανάλυση\nδεδομένων", + "Data Analysis" => "Ανάλυση δεδομένων", + "Solver" => "Επίλυση", + "Allow Edit\nRanges" => "Περιοχές με\nδικαίωμα επεξεργασίας", + "Allow Edit Ranges" => "Να επιτρέπεται η επεξεργασία περιοχών", + "Drag to freeze columns" => "Σύρετε για σταθεροποίηση στηλών", + "Drag to freeze rows" => "Σύρετε για σταθεροποίηση γραμμών", + "Select\nData" => "Επιλογή\nδεδομένων", + "File" => "Αρχείο", + "Back" => "Πίσω", + "New" => "Νέο", + "Open" => "Άνοιγμα", + "Info" => "Πληροφορίες", + "Save" => "Αποθήκευση", + "Save As" => "Αποθήκευση ως", + "Export" => "Εξαγωγή", + "Close" => "Κλείσιμο", + "Options" => "Επιλογές", + "Blank workbook" => "Κενό βιβλίο εργασίας", + "Recent" => "Πρόσφατα", + "No recent workbooks yet." => "Δεν υπάρχουν ακόμη πρόσφατα βιβλία εργασίας.", + "More workbooks" => "Περισσότερα βιβλία εργασίας", + "Modified" => "Τροποποιήθηκε", + "Not available" => "Μη διαθέσιμο", + "Just now" => "Μόλις τώρα", + "Yesterday" => "Χθες", + "{n} min ago" => "Πριν από {n} λεπτά", + "{n} h ago" => "Πριν από {n} ώρες", + "{n} days ago" => "Πριν από {n} ημέρες", + "{n} weeks ago" => "Πριν από {n} εβδομάδες", + "{n} months ago" => "Πριν από {n} μήνες", + "{n} years ago" => "Πριν από {n} χρόνια", + "Browse…" => "Περιήγηση…", + "Not saved yet" => "Δεν έχει αποθηκευτεί ακόμη", + "Location" => "Τοποθεσία", + "Sheets" => "Φύλλα", + "Protect Workbook" => "Προστασία βιβλίου εργασίας", + "Properties" => "Ιδιότητες", + "Title" => "Τίτλος", + "Subject" => "Θέμα", + "Author" => "Συντάκτης", + "Company" => "Εταιρεία", + "Keywords" => "Λέξεις-κλειδιά", + "Description" => "Περιγραφή", + "No workbook is open." => "Δεν υπάρχει ανοιχτό βιβλίο εργασίας.", + "Save as type" => "Τύπος αρχείου", + "Excel Workbook (*.xlsx)" => "Βιβλίο εργασίας Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (οριοθέτηση με κόμματα) (*.csv)", + "Web Page (*.html)" => "Ιστοσελίδα (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Λήψη", + "Save the workbook under another name or in another folder." => "Αποθηκεύστε το βιβλίο εργασίας με άλλο όνομα ή σε άλλον φάκελο.", + "Print Active Sheets" => "Εκτύπωση ενεργών φύλλων", + "Print Entire Workbook" => "Εκτύπωση ολόκληρου βιβλίου εργασίας", + "Fit Sheet on One Page" => "Προσαρμογή φύλλου σε μία σελίδα", + "Page Setup…" => "Διαμόρφωση σελίδας…", + "Page {page} of {pages}" => "Σελίδα {page} από {pages}", + "Nothing to print." => "Δεν υπάρχει περιεχόμενο για εκτύπωση.", + "Previous page" => "Προηγούμενη σελίδα", + "Next page" => "Επόμενη σελίδα", + "Create PDF" => "Δημιουργία PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Αποθηκεύστε το φύλλο ως PDF διατηρώντας τη διάταξη των σελίδων.", + "Change File Type" => "Αλλαγή τύπου αρχείου", + "CSV (Comma delimited)" => "CSV (οριοθέτηση με κόμματα)", + "Save the active sheet as comma-separated text." => "Αποθηκεύστε το ενεργό φύλλο ως κείμενο με διαχωριστικά κόμματα.", + "Web Page (.html)" => "Ιστοσελίδα (.html)", + "Save the workbook as a web page." => "Αποθηκεύστε το βιβλίο εργασίας ως ιστοσελίδα.", + "Options|General" => "Γενικά", + "Options|Save" => "Αποθήκευση", + "Options|Editing" => "Editing", + "Show formula bar" => "Εμφάνιση γραμμής τύπων", + "Enable AutoComplete for cell values" => "Ενεργοποίηση αυτόματης συμπλήρωσης τιμών κελιών", + "Save .xlsx workbooks automatically after every change" => "Αυτόματη αποθήκευση βιβλίων .xlsx μετά από κάθε αλλαγή", + "Workbook calculation" => "Υπολογισμός βιβλίου εργασίας", + "Enable iterative calculation" => "Ενεργοποίηση επαναληπτικού υπολογισμού", + "Calculation settings are saved with the workbook." => "Οι ρυθμίσεις υπολογισμού αποθηκεύονται στο βιβλίο εργασίας.", + "Interface size" => "Μέγεθος περιβάλλοντος", + "Auto" => "Αυτόματο", + "100%" => "100%", + "Zoom to\nSelection" => "Μεγέθυνση στην\nεπιλογή", + "Freeze\nPanes" => "Σταθεροποίηση\nπαραθύρων", + "Freeze Panes" => "Σταθεροποίηση παραθύρων", + "Freeze Top Row" => "Σταθεροποίηση επάνω γραμμής", + "Freeze First Column" => "Σταθεροποίηση πρώτης στήλης", + "Unfreeze Panes" => "Κατάργηση σταθεροποίησης παραθύρων", + "Dark Mode" => "Σκοτεινή λειτουργία", + "Interface language" => "Γλώσσα περιβάλλοντος", + "Command\nPalette" => "Παλέτα\nεντολών", + "Agent\nControl" => "Έλεγχος\nπρακτόρων", + "Action\nJournal" => "Ιστορικό\nενεργειών", + "About\nGridCraft" => "Πληροφορίες για\nτο GridCraft", + "Share" => "Κοινή χρήση", + "Add Chart\nElement" => "Προσθήκη στοιχείου\nγραφήματος", + "Change\nChart Type" => "Αλλαγή τύπου\nγραφήματος", + "Switch\nRow/Column" => "Εναλλαγή\nγραμμής/στήλης", + "Data Labels: None" => "Ετικέτες δεδομένων: καμία", + "Data Labels: Show" => "Ετικέτες δεδομένων: εμφάνιση", + "Legend: None" => "Υπόμνημα: κανένα", + "Legend: Bottom" => "Υπόμνημα: κάτω", + "Legend: Top" => "Υπόμνημα: επάνω", + "Legend: Right" => "Υπόμνημα: δεξιά", + "Gridlines: None" => "Γραμμές πλέγματος: καμία", + "Gridlines: Show" => "Γραμμές πλέγματος: εμφάνιση", + "Chart\nTitle" => "Τίτλος\nγραφήματος", + "Delete\nChart" => "Διαγραφή\nγραφήματος", + "Convert\nto Range" => "Μετατροπή\nσε περιοχή", + "Table\nStyles" => "Στυλ\nπίνακα", + "Top 10 Items" => "10 υψηλότερες τιμές", + "Top 10%" => "Ανώτερο 10%", + "Bottom 10 Items" => "10 χαμηλότερες τιμές", + "Bottom 10%" => "Κατώτερο 10%", + "Above Average" => "Πάνω από τον μέσο όρο", + "Below Average" => "Κάτω από τον μέσο όρο", + "Clear Rules from Entire Sheet" => "Απαλοιφή κανόνων από ολόκληρο το φύλλο", + "Clear Rules from Selected Cells" => "Απαλοιφή κανόνων από τα επιλεγμένα κελιά", + "Constants" => "Σταθερές", + "Data Bars" => "Ράβδοι δεδομένων", + "Color Scales" => "Κλίμακες χρωμάτων", + "Icon Sets" => "Σύνολα εικονιδίων", + "Home" => "Αρχική", + "Draw" => "Σχεδίαση", + "Page Layout" => "Διάταξη σελίδας", + "Formulas" => "Τύποι", + "Data" => "Δεδομένα", + "Review" => "Αναθεώρηση", + "View" => "Προβολή", + "Automate" => "Αυτοματισμός", + "Table Design" => "Σχεδίαση πίνακα", + "Chart Design" => "Σχεδίαση γραφήματος", + "Ready" => "Έτοιμο", + "Enter" => "Εισαγωγή", + "Edit" => "Επεξεργασία", + "Point" => "Κατάδειξη", + "Calculate" => "Υπολογισμός", + "Select destination and press Enter or choose Paste" => "Επιλέξτε προορισμό και πατήστε Enter ή επιλέξτε Επικόλληση", + "General" => "Γενικά", + "Number" => "Αριθμός", + "Currency" => "Νόμισμα", + "Accounting" => "Λογιστική", + "Date" => "Ημερομηνία", + "Time" => "Ώρα", + "Percentage" => "Ποσοστό", + "Fraction" => "Κλάσμα", + "Scientific" => "Επιστημονική", + "Text" => "Κείμενο", + "Special" => "Ειδική", + "Custom" => "Προσαρμοσμένη", + "Short Date" => "Σύντομη ημερομηνία", + "Long Date" => "Πλήρης ημερομηνία", + "More Number Formats…" => "Περισσότερες μορφές αριθμών…", + "Financial" => "Οικονομικές", + "Logical" => "Λογικές", + "Date &\nTime" => "Ημερομηνία και\nώρα", + "Lookup &\nReference" => "Αναζήτηση και\nαναφορά", + "Math &\nTrig" => "Μαθηματικά και\nτριγωνομετρία", + "More\nFunctions" => "Περισσότερες\nσυναρτήσεις", + "Page Layout|Orientation" => "Προσανατολισμός σελίδας", + "Display theme" => "Θέμα εμφάνισης", + "System" => "Σύστημα", + "Light" => "Φωτεινό", + "Dark" => "Σκοτεινό", + "Sheet Options|View" => "Προβολή", + "Print" => "Εκτύπωση", + "PivotTable Fields" => "Πεδία συγκεντρωτικού πίνακα", + "Choose fields to add to report:" => "Επιλέξτε πεδία για προσθήκη στην αναφορά:", + "Use a field's menu to move it between areas:" => "Χρησιμοποιήστε το μενού ενός πεδίου για να το μετακινήσετε μεταξύ περιοχών:", + "Filters" => "Φίλτρα", + "Columns" => "Στήλες", + "Rows" => "Γραμμές", + "Values" => "Τιμές", + "Move to Row Labels" => "Μετακίνηση στις ετικέτες γραμμών", + "Move to Column Labels" => "Μετακίνηση στις ετικέτες στηλών", + "Move to Report Filter" => "Μετακίνηση στο φίλτρο αναφοράς", + "Move to Values" => "Μετακίνηση στις τιμές", + "Summarize by Sum" => "Σύνοψη με άθροισμα", + "Summarize by Count" => "Σύνοψη με πλήθος", + "Summarize by Average" => "Σύνοψη με μέσο όρο", + "Summarize by Max" => "Σύνοψη με μέγιστο", + "Summarize by Min" => "Σύνοψη με ελάχιστο", + "Show as No Calculation" => "Εμφάνιση χωρίς επιπλέον υπολογισμό", + "Show as % of Grand Total" => "Εμφάνιση ως % του γενικού συνόλου", + "Show as Running Total" => "Εμφάνιση ως αθροιστικό σύνολο", + "Show as Rank" => "Εμφάνιση ως κατάταξη", + "Group by Years" => "Ομαδοποίηση ανά έτη", + "Group by Quarters" => "Ομαδοποίηση ανά τρίμηνα", + "Group by Months" => "Ομαδοποίηση ανά μήνες", + "Remove Field" => "Κατάργηση πεδίου", + "Refresh" => "Ανανέωση", + "Calculated Field…" => "Υπολογιζόμενο πεδίο…", + "Report Layout" => "Διάταξη αναφοράς", + "Compact" => "Συμπαγής", + "Outline" => "Διάρθρωση", + "Tabular" => "Πινακοειδής", + "Cancel" => "Ακύρωση", + "Expand formula bar" => "Ανάπτυξη γραμμής τύπων", + "Insert Function" => "Εισαγωγή συνάρτησης", + "Copy" => "Αντιγραφή", + "Cut" => "Αποκοπή", + "Define Name…" => "Ορισμός ονόματος…", + "Delete…" => "Διαγραφή…", + "Filter by Selected Cell's Value" => "Φιλτράρισμα βάσει της τιμής του επιλεγμένου κελιού", + "Hide" => "Απόκρυψη", + "Insert…" => "Εισαγωγή…", + "Link…" => "Σύνδεση…", + "New Comment" => "Νέο σχόλιο", + "Pick From Drop-down List…" => "Επιλογή από αναπτυσσόμενη λίστα…", + "Unhide" => "Εμφάνιση", + "$ English (United States)" => "$ Αγγλικά (Ηνωμένες Πολιτείες)", + "Add Chart Element" => "Προσθήκη στοιχείου γραφήματος", + "Align Left" => "Στοίχιση αριστερά", + "Align Right" => "Στοίχιση δεξιά", + "Bottom Align" => "Στοίχιση κάτω", + "Calculate Now (F9)" => "Υπολογισμός τώρα (F9)", + "Calculate Sheet (⇧F9)" => "Υπολογισμός φύλλου (⇧F9)", + "Calculation Options" => "Επιλογές υπολογισμού", + "Cell Styles" => "Στυλ κελιών", + "Change Chart Type" => "Αλλαγή τύπου γραφήματος", + "Check Accessibility" => "Έλεγχος προσβασιμότητας", + "Clear Filter" => "Απαλοιφή φίλτρου", + "Column or Bar" => "Στήλες ή ράβδοι", + "Comments pane" => "Παράθυρο σχολίων", + "Convert the last ink stroke to a shape" => "Μετατροπή τελευταίας πινελιάς σε σχήμα", + "Convert to Range" => "Μετατροπή σε περιοχή", + "Custom Sort" => "Προσαρμοσμένη ταξινόμηση", + "Delete Comment" => "Διαγραφή σχολίου", + "Delete Sheet" => "Διαγραφή φύλλου", + "Delete chart" => "Διαγραφή γραφήματος", + "Down" => "Κάτω", + "Edit chart title" => "Επεξεργασία τίτλου γραφήματος", + "Erase ink strokes" => "Σβήσιμο πινελιών", + "Every command run in this session (replayable)" => "Κάθε εντολή που εκτελέστηκε σε αυτή τη συνεδρία (με δυνατότητα επανάληψης)", + "Find & Select" => "Εύρεση και επιλογή", + "Forecast Sheet" => "Φύλλο πρόβλεψης", + "Format Chart pane" => "Παράθυρο μορφοποίησης γραφήματος", + "Format as Table" => "Μορφοποίηση ως πίνακας", + "Hide Sheet" => "Απόκρυψη φύλλου", + "Hierarchy & more" => "Ιεραρχία και άλλα", + "Highlighter" => "Εργαλείο επισήμανσης", + "How agents drive GridCraft (MCP / control channel)" => "Πώς οι πράκτορες χειρίζονται το GridCraft (MCP / κανάλι ελέγχου)", + "Import a text or CSV file" => "Εισαγωγή αρχείου κειμένου ή CSV", + "Insert\nSlicer" => "Εισαγωγή\nαναλυτή", + "Insert Function (⇧F3)" => "Εισαγωγή συνάρτησης (⇧F3)", + "Insert Link" => "Εισαγωγή σύνδεσης", + "Insert Sheet" => "Εισαγωγή φύλλου", + "Insert Slicer" => "Εισαγωγή αναλυτή", + "Insert a picture" => "Εισαγωγή εικόνας", + "Insert a slicer to filter a table" => "Εισαγωγή αναλυτή για φιλτράρισμα πίνακα", + "Insert an icon" => "Εισαγωγή εικονιδίου", + "Line or Area" => "Γραμμή ή περιοχή", + "Macros" => "Μακροεντολές", + "Macros and scripts in this workbook (Alt+F8)" => "Μακροεντολές και δέσμες ενεργειών αυτού του βιβλίου (Alt+F8)", + "Middle Align" => "Κατακόρυφη στοίχιση στο μέσο", + "More commands" => "Περισσότερες εντολές", + "Move or Copy Sheet…" => "Μετακίνηση ή αντιγραφή φύλλου…", + "Name Manager" => "Διαχείριση ονομάτων", + "Page Breaks" => "Αλλαγές σελίδας", + "Paper Size" => "Μέγεθος χαρτιού", + "Pen\nBlack" => "Μαύρο\nστυλό", + "Pen\nBlue" => "Μπλε\nστυλό", + "Pen\nRed" => "Κόκκινο\nστυλό", + "Pie or Doughnut" => "Πίτα ή δακτύλιος", + "Print Area" => "Περιοχή εκτύπωσης", + "Print Titles" => "Τίτλοι εκτύπωσης", + "Protect\nSheet" => "Προστασία\nφύλλου", + "Protect Sheet" => "Προστασία φύλλου", + "Protect Workbook structure" => "Προστασία δομής βιβλίου εργασίας", + "Recommended Charts" => "Προτεινόμενα γραφήματα", + "Redo" => "Επανάληψη", + "Remove Duplicates" => "Κατάργηση διπλοτύπων", + "Rename Sheet" => "Μετονομασία φύλλου", + "Scatter or Bubble" => "Διασπορά ή φυσαλίδες", + "Search and run any command" => "Αναζήτηση και εκτέλεση οποιασδήποτε εντολής", + "Search commands" => "Αναζήτηση εντολών", + "Select Data" => "Επιλογή δεδομένων", + "Select and move ink and shapes" => "Επιλογή και μετακίνηση μελανιού και σχημάτων", + "Series…" => "Σειρά…", + "Share: export or save a copy" => "Κοινή χρήση: εξαγωγή ή αποθήκευση αντιγράφου", + "Show Formulas (⌃`)" => "Εμφάνιση τύπων (⌃`)", + "Slicer" => "Αναλυτής", + "Sort & Filter" => "Ταξινόμηση και φίλτρο", + "Spelling (F7)" => "Ορθογραφικός έλεγχος (F7)", + "Statistic" => "Στατιστική", + "Switch Row/Column" => "Εναλλαγή γραμμής/στήλης", + "Table Styles" => "Στυλ πίνακα", + "Text Box" => "Πλαίσιο κειμένου", + "Text to Columns" => "Κείμενο σε στήλες", + "Top Align" => "Στοίχιση επάνω", + "Undo" => "Αναίρεση", + "Undo list" => "Λίστα αναιρέσεων", + "Unhide Sheet…" => "Εμφάνιση φύλλου…", + "Up" => "Πάνω", + "Version, contributors and the AI models that helped" => "Έκδοση, συντελεστές και μοντέλα ΤΝ που συνέβαλαν", + "Watch\nWindow" => "Παράθυρο\nπαρακολούθησης", + "What-If Analysis" => "Ανάλυση υποθετικών σεναρίων", + "Workbook\nStatistics" => "Στατιστικά\nβιβλίου εργασίας", + "Workbook Statistics" => "Στατιστικά βιβλίου εργασίας", + "Zoom to 100%" => "Μεγέθυνση στο 100%", + "Zoom to Selection" => "Μεγέθυνση στην επιλογή", + "Zoom…" => "Μεγέθυνση…", + "£ English (United Kingdom)" => "£ Αγγλικά (Ηνωμένο Βασίλειο)", + "¥ Japanese" => "¥ Ιαπωνικά", + "€ Euro" => "€ Ευρώ", + "New sheet (⇧F11)" => "Νέο φύλλο (⇧F11)", + "Next sheet" => "Επόμενο φύλλο", + "Previous sheet" => "Προηγούμενο φύλλο", + "Zoom In" => "Μεγέθυνση", + "Zoom Out" => "Σμίκρυνση", + "Dismiss" => "Κλείσιμο", + "OK" => "Εντάξει", + "Don't Save" => "Χωρίς αποθήκευση", + "Open…" => "Άνοιγμα…", + "Show password" => "Εμφάνιση κωδικού πρόσβασης", + "Start a new workbook" => "Δημιουργία νέου βιβλίου εργασίας", + "Household Budget" => "Οικογενειακός προϋπολογισμός", + "Quarterly Sales Dashboard" => "Πίνακας πωλήσεων τριμήνου", + "Gradebook" => "Βαθμολόγιο", + "this workbook" => "αυτό το βιβλίο εργασίας", + "This workbook" => "Αυτό το βιβλίο εργασίας", + "Do you want to save the changes you made to {title}?" => "Θέλετε να αποθηκεύσετε τις αλλαγές που κάνατε στο {title};", + "Save a copy as .{format}" => "Αποθήκευση αντιγράφου ως .{format}", + "Select a chart first." => "Επιλέξτε πρώτα ένα γράφημα.", + "Row Height" => "Ύψος γραμμής", + "Column Width" => "Πλάτος στήλης", + "Standard Width" => "Τυπικό πλάτος", + "Move or Copy" => "Μετακίνηση ή αντιγραφή", + "Protect Structure and Windows" => "Προστασία δομής και παραθύρων", + "Unprotect Workbook" => "Κατάργηση προστασίας βιβλίου εργασίας", + "Unprotect Sheet" => "Κατάργηση προστασίας φύλλου", + "Password" => "Κωδικός πρόσβασης", + "Paste Special" => "Ειδική επικόλληση", + "Series" => "Σειρές", + "Insert Hyperlink" => "Εισαγωγή υπερσύνδεσης", + "Create Sparklines" => "Δημιουργία μικρογραφημάτων", + "Page Setup" => "Διαμόρφωση σελίδας", + "Convert Text to Columns" => "Μετατροπή κειμένου σε στήλες", + "Goal Seek" => "Αναζήτηση στόχου", + "Create Forecast Worksheet" => "Δημιουργία φύλλου πρόβλεψης", + "Solver Parameters" => "Παράμετροι επίλυσης", + "Solver Results" => "Αποτελέσματα επίλυσης", + "Edit Name" => "Επεξεργασία ονόματος", + "New Name" => "Νέο όνομα", + "Format Cells" => "Μορφοποίηση κελιών", + "Formula Builder" => "Δημιουργός τύπων", + "Find and Replace" => "Εύρεση και αντικατάσταση", + "Go To" => "Μετάβαση", + "Insert Calculated Field" => "Εισαγωγή υπολογιζόμενου πεδίου", + "Go To Special" => "Ειδική μετάβαση", + "Conditional Formatting Rules Manager" => "Διαχείριση κανόνων μορφοποίησης υπό όρους", + "Search Commands" => "Αναζήτηση εντολών", + "Agent Control" => "Έλεγχος πρακτόρων", + "About GridCraft" => "Πληροφορίες για το GridCraft", + "Insert Chart" => "Εισαγωγή γραφήματος", + "Select Data Source" => "Επιλογή προέλευσης δεδομένων", + "Action Journal" => "Ιστορικό ενεργειών", + "Accessibility" => "Προσβασιμότητα", + "Chart Title" => "Τίτλος γραφήματος", + "Place Picture in Cell" => "Τοποθέτηση εικόνας σε κελί", + "Place Picture over Cells" => "Τοποθέτηση εικόνας πάνω από κελιά", + "Pick From List" => "Επιλογή από λίστα", + "Save a Copy" => "Αποθήκευση αντιγράφου", + "Save Changes?" => "Αποθήκευση αλλαγών;", + "Shift cells right" => "Μετατόπιση κελιών προς τα δεξιά", + "Shift cells down" => "Μετατόπιση κελιών προς τα κάτω", + "Shift cells left" => "Μετατόπιση κελιών προς τα αριστερά", + "Shift cells up" => "Μετατόπιση κελιών προς τα πάνω", + "Entire row" => "Ολόκληρη γραμμή", + "Entire column" => "Ολόκληρη στήλη", + "Row height (pixels):" => "Ύψος γραμμής (εικονοστοιχεία):", + "Column width (characters):" => "Πλάτος στήλης (χαρακτήρες):", + "Standard column width (pixels):" => "Τυπικό πλάτος στήλης (εικονοστοιχεία):", + "Name:" => "Όνομα:", + "Before sheet (position, 0 = first):" => "Πριν από το φύλλο (θέση, 0 = πρώτο):", + "Create a copy" => "Δημιουργία αντιγράφου", + "Sheets: {sheets}" => "Φύλλα: {sheets}", + "Password (optional):" => "Κωδικός πρόσβασης (προαιρετικά):", + "Password:" => "Κωδικός πρόσβασης:", + "Allow all users of this sheet to:" => "Να επιτρέπεται σε όλους τους χρήστες αυτού του φύλλου:", + "Format cells" => "Μορφοποίηση κελιών", + "Format columns" => "Μορφοποίηση στηλών", + "Format rows" => "Μορφοποίηση γραμμών", + "Insert rows" => "Εισαγωγή γραμμών", + "Delete rows" => "Διαγραφή γραμμών", + "Use AutoFilter" => "Χρήση αυτόματου φίλτρου", + " (password, unlocked)" => " (κωδικός πρόσβασης, ξεκλείδωτο)", + " (password)" => " (κωδικός πρόσβασης)", + "No ranges yet." => "Δεν έχουν οριστεί ακόμη περιοχές.", + "Ranges that stay editable when the sheet is protected:" => "Περιοχές που παραμένουν επεξεργάσιμες όταν το φύλλο προστατεύεται:", + "Action" => "Ενέργεια", + "Modify" => "Τροποποίηση", + "Unlock with password" => "Ξεκλείδωμα με κωδικό πρόσβασης", + "Title:" => "Τίτλος:", + "Refers to cells:" => "Αναφέρεται στα κελιά:", + "Range password:" => "Κωδικός πρόσβασης περιοχής:", + "New title (Modify):" => "Νέος τίτλος (τροποποίηση):", + "Remove the password (Modify)" => "Κατάργηση κωδικού πρόσβασης (τροποποίηση)", + "'{file}' is protected." => "Το '{file}' είναι προστατευμένο.", + "Unhide sheet:" => "Εμφάνιση φύλλου:", + "Hidden: {sheets}" => "Κρυφά: {sheets}", + "All" => "Όλα", + "Formulas (F)" => "Τύποι (F)", + "Values (V)" => "Τιμές (V)", + "Formats (T)" => "Μορφές (T)", + "Comments and notes (C)" => "Σχόλια και σημειώσεις (C)", + "Validation" => "Επικύρωση", + "All except borders" => "Όλα εκτός από περιγράμματα", + "Column widths" => "Πλάτη στηλών", + "Formulas and number formats" => "Τύποι και μορφές αριθμών", + "Values and number formats" => "Τιμές και μορφές αριθμών", + "Operation" => "Πράξη", + "Add" => "Πρόσθεση", + "Subtract" => "Αφαίρεση", + "Multiply" => "Πολλαπλασιασμός", + "Divide" => "Διαίρεση", + "Skip blanks" => "Παράλειψη κενών", + "Transpose (E)" => "Αντιμετάθεση (E)", + "Series in" => "Σειρές σε", + "Type" => "Τύπος", + "Linear" => "Γραμμική", + "Growth" => "Αύξηση", + "Date unit" => "Μονάδα ημερομηνίας", + "Day" => "Ημέρα", + "Weekday" => "Εργάσιμη ημέρα", + "Month" => "Μήνας", + "Year" => "Έτος", + "Step value:" => "Τιμή βήματος:", + "Stop value:" => "Τελική τιμή:", + "Start a conversation:" => "Έναρξη συνομιλίας:", + "Note:" => "Σημείωση:", + "Display:" => "Εμφάνιση:", + "Link to (web address, e-mail or Sheet!A1):" => "Σύνδεση με (ιστοσελίδα, email ή Sheet!A1):", + "ScreenTip:" => "Συμβουλή οθόνης:", + "Data Range:" => "Περιοχή δεδομένων:", + "Location Range:" => "Περιοχή τοποθεσίας:", + "Markers" => "Δείκτες", + "Footer:" => "Υποσέλιδο:", + "Left margin (in):" => "Αριστερό περιθώριο (ίντσες):", + "Right margin (in):" => "Δεξιό περιθώριο (ίντσες):", + "Top margin (in):" => "Επάνω περιθώριο (ίντσες):", + "Bottom margin (in):" => "Κάτω περιθώριο (ίντσες):", + "Header (in):" => "Κεφαλίδα (ίντσες):", + "Footer (in):" => "Υποσέλιδο (ίντσες):", + "Tab" => "Στηλοθέτης", + "Semicolon" => "Ερωτηματικό (;)", + "Comma" => "Κόμμα", + "Space" => "Διάστημα", + "Other:" => "Άλλο:", + "Treat consecutive delimiters as one" => "Αντιμετώπιση διαδοχικών διαχωριστικών ως ενός", + "Destination:" => "Προορισμός:", + "My data has headers" => "Τα δεδομένα μου έχουν επικεφαλίδες", + "Columns (blank = all, e.g. A,C):" => "Στήλες (κενό = όλες, π.χ. A,C):", + "Timeline range (blank: first column of the selection):" => "Περιοχή χρονογραμμής (κενό: πρώτη στήλη της επιλογής):", + "Values range (blank: second column of the selection):" => "Περιοχή τιμών (κενό: δεύτερη στήλη της επιλογής):", + "Confidence interval" => "Διάστημα εμπιστοσύνης", + "Confidence level (%):" => "Επίπεδο εμπιστοσύνης (%):", + "Seasonality (auto, 0 for none, or a season length):" => "Εποχικότητα (αυτόματη, 0 για καμία ή μήκος περιόδου):", + "Fill missing points using" => "Συμπλήρωση ελλειπόντων σημείων με", + "Interpolation" => "Παρεμβολή", + "Zeros" => "Μηδενικά", + "Aggregate duplicates using" => "Συνάθροιση διπλοτύπων με", + "Average" => "Μέσος όρος", + "Count" => "Πλήθος", + "CountA" => "Πλήθος μη κενών", + "Max" => "Μέγιστο", + "Median" => "Διάμεσος", + "Min" => "Ελάχιστο", + "Sum" => "Άθροισμα", + "Product" => "Γινόμενο", + "Include forecast statistics" => "Συμπερίληψη στατιστικών πρόβλεψης", + "Chart" => "Γράφημα", + "Line chart" => "Γράφημα γραμμών", + "Column chart" => "Γράφημα στηλών", + "At each change in (column letter):" => "Σε κάθε αλλαγή της στήλης (γράμμα):", + "Use function" => "Χρήση συνάρτησης", + "Add subtotal to (columns, e.g. C,D):" => "Προσθήκη μερικού αθροίσματος στις στήλες (π.χ. C,D):", + "Magnification" => "Μεγέθυνση", + "Custom (%):" => "Προσαρμοσμένο (%):", + "Scope (Workbook or sheet name):" => "Εμβέλεια (βιβλίο εργασίας ή όνομα φύλλου):", + "Comment:" => "Σχόλιο:", + "Refers to:" => "Αναφέρεται σε:", + "Allow" => "Επιτρέπεται", + "Any value" => "Οποιαδήποτε τιμή", + "Whole number" => "Ακέραιος αριθμός", + "Decimal" => "Δεκαδικός αριθμός", + "List" => "Λίστα", + "Text length" => "Μήκος κειμένου", + "between" => "μεταξύ", + "not between" => "όχι μεταξύ", + "equal to" => "ίσο με", + "not equal to" => "όχι ίσο με", + "greater than" => "μεγαλύτερο από", + "less than" => "μικρότερο από", + "greater than or equal to" => "μεγαλύτερο ή ίσο με", + "less than or equal to" => "μικρότερο ή ίσο με", + "Minimum / Source / Formula:" => "Ελάχιστο / Προέλευση / Τύπος:", + "Maximum:" => "Μέγιστο:", + "Ignore blank" => "Παράβλεψη κενών", + "In-cell dropdown" => "Αναπτυσσόμενη λίστα μέσα στο κελί", + "Input message:" => "Μήνυμα εισαγωγής:", + "Error style" => "Στυλ σφάλματος", + "Stop" => "Διακοπή", + "Warning" => "Προειδοποίηση", + "Information" => "Πληροφορίες", + "Error message:" => "Μήνυμα σφάλματος:", + "Format cells that are (value):" => "Μορφοποίηση κελιών με τιμή:", + "and:" => "και:", + "Format cells that contain the text:" => "Μορφοποίηση κελιών που περιέχουν κείμενο:", + "Format cells that contain a date occurring:" => "Μορφοποίηση κελιών με ημερομηνία που είναι:", + "Today" => "Σήμερα", + "Tomorrow" => "Αύριο", + "In the last 7 days" => "Τις τελευταίες 7 ημέρες", + "Last week" => "Την προηγούμενη εβδομάδα", + "This week" => "Αυτή την εβδομάδα", + "Next week" => "Την επόμενη εβδομάδα", + "Last month" => "Τον προηγούμενο μήνα", + "This month" => "Αυτόν τον μήνα", + "Next month" => "Τον επόμενο μήνα", + "Format values where this formula is true:" => "Μορφοποίηση τιμών για τις οποίες ισχύει ο τύπος:", + "with" => "με", + "Light Red Fill with Dark Red Text" => "Ανοιχτό κόκκινο γέμισμα με σκούρο κόκκινο κείμενο", + "Yellow Fill with Dark Yellow Text" => "Κίτρινο γέμισμα με σκούρο κίτρινο κείμενο", + "Green Fill with Dark Green Text" => "Πράσινο γέμισμα με σκούρο πράσινο κείμενο", + "Light Red Fill" => "Ανοιχτό κόκκινο γέμισμα", + "Red Text" => "Κόκκινο κείμενο", + "Red Border" => "Κόκκινο περίγραμμα", + "Formula:" => "Τύπος:", + "Select" => "Επιλογή", + "Blanks" => "Κενά", + "Errors" => "Σφάλματα", + "Numbers" => "Αριθμοί", + "Current region" => "Τρέχουσα περιοχή", + "Last cell" => "Τελευταίο κελί", + "Visible cells only" => "Μόνο ορατά κελιά", + "Conditional formats" => "Μορφές υπό όρους", + "Data validation" => "Επικύρωση δεδομένων", + "Horizontal axis title:" => "Τίτλος οριζόντιου άξονα:", + "Vertical axis title:" => "Τίτλος κατακόρυφου άξονα:", + "No picture selected" => "Δεν έχει επιλεγεί εικόνα", + "Picture file path (PNG or JPEG):" => "Διαδρομή αρχείου εικόνας (PNG ή JPEG):", + "Description (optional):" => "Περιγραφή (προαιρετικά):", + "Fits inside the selected cell and moves with its content." => "Χωρά στο επιλεγμένο κελί και μετακινείται μαζί με το περιεχόμενό του.", + "Choose a PNG or JPEG no larger than 16 MB." => "Επιλέξτε αρχείο PNG ή JPEG έως 16 MB.", + "About" => "Πληροφορίες", + "Contributors" => "Συντελεστές", + "Models" => "Μοντέλα", + "Version {version}" => "Έκδοση {version}", + "Join the ArtCraft Discord" => "Συμμετοχή στον διακομιστή Discord του ArtCraft", + "This workbook has no scripts or macros." => "Αυτό το βιβλίο εργασίας δεν έχει δέσμες ενεργειών ή μακροεντολές.", + "(unnamed)" => "(χωρίς όνομα)", + "— VBA project (preserved, not run)" => "— Έργο VBA (διατηρείται, δεν εκτελείται)", + "— 1 step" => "— 1 βήμα", + "— {steps} steps" => "— {steps} βήματα", + "Alignment" => "Στοίχιση", + "Font" => "Γραμματοσειρά", + "Border" => "Περίγραμμα", + "Format Cells|Fill" => "Γέμισμα", + "Protection" => "Προστασία", + "Category:" => "Κατηγορία:", + "Sample" => "Δείγμα", + "Type (custom format code):" => "Τύπος (προσαρμοσμένος κωδικός μορφής):", + "Vertical" => "Κατακόρυφα", + "Justify" => "Πλήρης στοίχιση", + "Center Across Selection" => "Στοίχιση στο κέντρο κατά μήκος της επιλογής", + "Distributed" => "Κατανεμημένη", + "Top" => "Επάνω", + "Bottom" => "Κάτω", + "Indent" => "Εσοχή", + "Orientation (degrees)" => "Προσανατολισμός (μοίρες)", + "Wrap text" => "Αναδίπλωση κειμένου", + "Shrink to fit" => "Σμίκρυνση για προσαρμογή", + "Bold" => "Έντονη γραφή", + "Italic" => "Πλάγια γραφή", + "None" => "Κανένα", + "Single" => "Μονή", + "Double" => "Διπλή", + "Single Accounting" => "Μονή λογιστική υπογράμμιση", + "Double Accounting" => "Διπλή λογιστική υπογράμμιση", + "Superscript" => "Εκθέτης", + "Subscript" => "Δείκτης", + "Color:" => "Χρώμα:", + "Diagonal ↘" => "Διαγώνιος ↘", + "Diagonal ↗" => "Διαγώνιος ↗", + "none" => "κανένα", + "thin" => "λεπτό", + "medium" => "μεσαίο", + "thick" => "παχύ", + "dashed" => "με παύλες", + "dotted" => "με κουκκίδες", + "double" => "διπλό", + "Background Color:" => "Χρώμα φόντου:", + "Locked" => "Κλειδωμένο", + "Hidden" => "Κρυφό", + "Search:" => "Αναζήτηση:", + "e.g. lookup, average, date" => "π.χ. αναζήτηση, μέσος όρος, ημερομηνία", + "Date & Time" => "Ημερομηνία και ώρα", + "Lookup & Reference" => "Αναζήτηση και αναφορά", + "Math & Trig" => "Μαθηματικά και τριγωνομετρία", + "Statistical" => "Στατιστική", + "Engineering" => "Μηχανική", + "Database" => "Βάση δεδομένων", + "Compatibility" => "Συμβατότητα", + "Web" => "Ιστός", + "Cube" => "Κύβος", + "Add-in and Automation" => "Πρόσθετα και αυτοματοποίηση", + "Find" => "Εύρεση", + "Replace" => "Αντικατάσταση", + "Find what:" => "Εύρεση:", + "Replace with:" => "Αντικατάσταση με:", + "Match case" => "Διάκριση πεζών και κεφαλαίων", + "Match entire cell contents" => "Ταίριασμα ολόκληρου περιεχομένου κελιού", + "Within workbook" => "Σε όλο το βιβλίο εργασίας", + "Replace All" => "Αντικατάσταση όλων", + "Find All" => "Εύρεση όλων", + "Find Next" => "Εύρεση επόμενου", + "All done. We made {count} replacements." => "Ολοκληρώθηκε. Έγιναν {count} αντικαταστάσεις.", + "{count} cell(s) found" => "Βρέθηκαν {count} κελιά", + "Reference:" => "Αναφορά:", + "Special…" => "Ειδικά…", + "My list has headers" => "Η λίστα μου έχει επικεφαλίδες", + "Sort by" => "Ταξινόμηση κατά", + "Then by" => "Έπειτα κατά", + "Cell Values" => "Τιμές κελιών", + "Cell Color" => "Χρώμα κελιού", + "A to Z" => "Α έως Ω", + "Z to A" => "Ω έως Α", + "+ Add Level" => "+ Προσθήκη επιπέδου", + "New…" => "Νέο…", + "Edit…" => "Επεξεργασία…", + "Name" => "Όνομα", + "Value" => "Τιμή", + "Refers To" => "Αναφέρεται σε", + "Scope" => "Εμβέλεια", + "Workbook" => "Βιβλίο εργασίας", + "No names defined" => "Δεν έχουν οριστεί ονόματα.", + "All Charts" => "Όλα τα γραφήματα", + "Clustered Column" => "Ομαδοποιημένες στήλες", + "Stacked Column" => "Σωρευμένες στήλες", + "100% Stacked Column" => "Σωρευμένες στήλες 100%", + "Clustered Bar" => "Ομαδοποιημένες ράβδοι", + "Stacked Bar" => "Σωρευμένες ράβδοι", + "100% Stacked Bar" => "Σωρευμένες ράβδοι 100%", + "Line" => "Γραμμή", + "Line with Markers" => "Γραμμή με δείκτες", + "Stacked Line" => "Σωρευμένες γραμμές", + "Pie" => "Πίτα", + "Doughnut" => "Δακτύλιος", + "Area" => "Περιοχή", + "Stacked Area" => "Σωρευμένη περιοχή", + "Scatter" => "Διασπορά", + "Scatter with Lines" => "Διασπορά με γραμμές", + "Radar" => "Ακτινωτό", + "Histogram" => "Ιστόγραμμα", + "Waterfall" => "Καταρράκτης", + "Funnel" => "Χοάνη", + "Combo" => "Συνδυαστικό", + "Chart data range:" => "Περιοχή δεδομένων γραφήματος:", + "Legend Entries (Series)" => "Καταχωρίσεις υπομνήματος (σειρές)", + "Series{n}" => "Σειρά {n}", + "Keep" => "Διατήρηση", + "Remove" => "Κατάργηση", + "Horizontal (Category) Axis Labels:" => "Ετικέτες οριζόντιου άξονα (κατηγορίας):", + "There are no conditional formatting rules on this sheet." => "Δεν υπάρχουν κανόνες μορφοποίησης υπό όρους σε αυτό το φύλλο.", + "applies to" => "εφαρμόζεται σε", + "Type a command, e.g. freeze, chart, bold…" => "Πληκτρολογήστε μια εντολή, π.χ. σταθεροποίηση, γράφημα, έντονη γραφή…", + "Set cell:" => "Ορισμός κελιού:", + "To value:" => "Σε τιμή:", + "By changing cell:" => "Με αλλαγή κελιού:", + "Goal Seeking found a solution: {value}" => "Η αναζήτηση στόχου βρήκε λύση: {value}", + "Analysis Tools" => "Εργαλεία ανάλυσης", + "Anova: Single Factor" => "Ανάλυση διακύμανσης: ένας παράγοντας", + "Correlation" => "Συσχέτιση", + "Covariance" => "Συνδιακύμανση", + "Descriptive Statistics" => "Περιγραφική στατιστική", + "Exponential Smoothing" => "Εκθετική εξομάλυνση", + "F-Test Two-Sample for Variances" => "Έλεγχος F δύο δειγμάτων για διακυμάνσεις", + "Moving Average" => "Κινητός μέσος όρος", + "Rank and Percentile" => "Κατάταξη και εκατοστημόριο", + "Regression" => "Παλινδρόμηση", + "t-Test: Paired Two Sample for Means" => "Έλεγχος t για συζευγμένα δείγματα", + "t-Test: Two-Sample Assuming Equal Variances" => "Έλεγχος t δύο δειγμάτων (ίσες διακυμάνσεις)", + "t-Test: Two-Sample Assuming Unequal Variances" => "Έλεγχος t δύο δειγμάτων (άνισες διακυμάνσεις)", + "Output options" => "Επιλογές εξόδου", + "Output Range:" => "Περιοχή εξόδου:", + "New Worksheet Ply:" => "Νέο φύλλο εργασίας:", + "Grouped By:" => "Ομαδοποίηση κατά:", + "Labels in first row" => "Ετικέτες στην πρώτη γραμμή", + "Input Range:" => "Περιοχή εισόδου:", + "Variable 1 Range:" => "Περιοχή μεταβλητής 1:", + "Variable 2 Range:" => "Περιοχή μεταβλητής 2:", + "Summary statistics" => "Συνοπτικά στατιστικά στοιχεία", + "Confidence Level for Mean (%), blank for none:" => "Επίπεδο εμπιστοσύνης μέσου όρου (%), κενό για κανένα:", + "Kth Largest (blank for none):" => "k-οστή μεγαλύτερη τιμή (κενό για καμία):", + "Kth Smallest (blank for none):" => "k-οστή μικρότερη τιμή (κενό για καμία):", + "Bin Range (blank for automatic bins):" => "Περιοχή κλάσεων (κενό για αυτόματες κλάσεις):", + "Pareto (sorted histogram)" => "Pareto (ταξινομημένο ιστόγραμμα)", + "Cumulative Percentage" => "Αθροιστικό ποσοστό", + "Alpha:" => "Άλφα:", + "Input Y Range:" => "Περιοχή εισόδου Y:", + "Input X Range:" => "Περιοχή εισόδου X:", + "Constant is Zero" => "Η σταθερά είναι μηδέν", + "Confidence Level (%):" => "Επίπεδο εμπιστοσύνης (%):", + "Residuals" => "Κατάλοιπα", + "Standardized Residuals" => "Τυποποιημένα κατάλοιπα", + "Normal Probability" => "Γράφημα κανονικής πιθανότητας", + "Interval:" => "Διάστημα:", + "Standard Errors" => "Τυπικά σφάλματα", + "Damping factor:" => "Συντελεστής απόσβεσης:", + "Hypothesized Mean Difference:" => "Υποθετική διαφορά μέσων όρων:", + "Set Objective:" => "Ορισμός στόχου:", + "To:" => "Σε:", + "Value Of:" => "Τιμή:", + "By Changing Variable Cells:" => "Με αλλαγή των κελιών μεταβλητών:", + "Subject to the Constraints:" => "Υπό τους περιορισμούς:", + "Make Unconstrained Variables Non-Negative" => "Να είναι μη αρνητικές οι μεταβλητές χωρίς περιορισμούς", + "Select a Solving Method:" => "Επιλέξτε μέθοδο επίλυσης:", + "GRG Nonlinear" => "GRG μη γραμμική", + "Solve" => "Επίλυση", + "Keep Solver Solution" => "Διατήρηση λύσης", + "Restore Original Values" => "Επαναφορά αρχικών τιμών", + "The spelling check is complete for the entire sheet." => "Ο ορθογραφικός έλεγχος ολοκληρώθηκε για ολόκληρο το φύλλο.", + "Not in Dictionary ({cell}):" => "Δεν υπάρχει στο λεξικό ({cell}):", + "Suggestions:" => "Προτάσεις:", + "(No suggestions)" => "(χωρίς προτάσεις)", + "Ignore Once" => "Παράβλεψη μία φορά", + "Add to Dictionary" => "Προσθήκη στο λεξικό", + "Change" => "Αλλαγή", + "Change All" => "Αλλαγή όλων", + "Forecast end (date or number; blank: a third of the history):" => "Τέλος πρόβλεψης (ημερομηνία ή αριθμός· κενό: ένα τρίτο του ιστορικού):", + "The output range already holds data. Replace it with the report?" => { + "Η περιοχή εξόδου περιέχει ήδη δεδομένα. Να αντικατασταθούν με την αναφορά;" + } + "Tab|Insert" => "Εισαγωγή", + "AutoSave" => "Αυτόματη αποθήκευση", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Ομαλή μετακίνηση του περιγράμματος επιλογής στο νέο κελί αντί για απότομη μεταπήδηση" + } + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "Η δομή του βιβλίου εργασίας είναι κλειδωμένη: δεν επιτρέπεται προσθήκη, μετακίνηση, μετονομασία ή διαγραφή φύλλων." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Κλείδωμα της δομής του βιβλίου εργασίας ώστε να μην επιτρέπεται προσθήκη, μετακίνηση, μετονομασία ή διαγραφή φύλλων." + } + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Ένα αρχείο CSV, μια ιστοσελίδα ή ένα PDF είναι αντίγραφο: το βιβλίο εργασίας διατηρεί το δικό του αρχείο." + } + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/it.rs b/crates/ui-egui/src/i18n/it.rs new file mode 100644 index 000000000..65f356669 --- /dev/null +++ b/crates/ui-egui/src/i18n/it.rs @@ -0,0 +1,982 @@ +//! Italian translations for the interface strings in i18n.rs. Labels follow Excel's Italian +//! wording (sentence case, «Blocca riquadri», «Unisci e allinea al centro»); anything absent falls +//! back to English. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Incolla", + "Paste Values" => "Incolla valori", + "Paste Formulas" => "Incolla formule", + "Paste Formatting" => "Incolla formattazione", + "Transpose" => "Trasponi", + "Paste Link" => "Incolla collegamento", + "Paste Special…" => "Incolla speciale…", + "Insert Copied Cells" => "Inserisci celle copiate", + "Insert Copied Cells…" => "Inserisci celle copiate…", + "Insert Cut Cells" => "Inserisci celle tagliate", + "Insert Paste" => "Inserisci e incolla", + "Format Painter (double-click to keep it on)" => "Copia formato (doppio clic per mantenerlo attivo)", + "Double Underline" => "Doppia sottolineatura", + "Strikethrough" => "Barrato", + "Underline" => "Sottolineato", + "Increase Font Size" => "Aumenta dimensione carattere", + "Decrease Font Size" => "Riduci dimensione carattere", + "Wrap Text" => "Testo a capo", + "Merge & Center" => "Unisci e allinea al centro", + "Merge Cells" => "Unisci celle", + "Merge Across" => "Unisci in orizzontale", + "Unmerge Cells" => "Separa celle", + "Fill Color" => "Colore riempimento", + "Font Color" => "Colore carattere", + "Borders" => "Bordi", + "Top\nAlign" => "Allinea\nin alto", + "Middle\nAlign" => "Allinea\nal centro", + "Bottom\nAlign" => "Allinea\nin basso", + "Left" => "Sinistra", + "Right" => "Destra", + "Center" => "Centro", + "Horizontal" => "Orizzontale", + "Vertical Text" => "Testo verticale", + "Decrease Indent" => "Riduci rientro", + "Increase Indent" => "Aumenta rientro", + "Orientation" => "Orientamento", + "Angle Counterclockwise" => "Ruota in senso antiorario", + "Angle Clockwise" => "Ruota in senso orario", + "Rotate Text Up" => "Ruota testo verso l'alto", + "Rotate Text Down" => "Ruota testo verso il basso", + "Accounting Number Format" => "Formato numero contabilità", + "Percent Style" => "Stile percentuale", + "Comma Style" => "Stile separatore", + "Increase Decimal" => "Aumenta decimali", + "Decrease Decimal" => "Riduci decimali", + "More Accounting Formats…" => "Altri formati contabilità…", + "Conditional\nFormatting" => "Formattazione\ncondizionale", + "Conditional Formatting" => "Formattazione condizionale", + "Format\nas Table" => "Formatta\ncome tabella", + "Cell\nStyles" => "Stili\ncella", + "Format Cells…" => "Formato celle…", + "Format Cell Alignment…" => "Formato allineamento celle…", + "Format\nPane" => "Riquadro\nFormato", + "Format" => "Formato", + "Insert" => "Inserisci", + "Insert Cells…" => "Inserisci celle…", + "Delete" => "Elimina", + "Delete Cells…" => "Elimina celle…", + "Insert Sheet Rows" => "Inserisci righe foglio", + "Insert Sheet Columns" => "Inserisci colonne foglio", + "Delete Sheet Rows" => "Elimina righe foglio", + "Delete Sheet Columns" => "Elimina colonne foglio", + "Row Height…" => "Altezza righe…", + "AutoFit Row Height" => "Adatta altezza righe", + "Column Width…" => "Larghezza colonne…", + "AutoFit Column Width" => "Adatta larghezza colonne", + "Default Width…" => "Larghezza predefinita…", + "Hide Rows" => "Nascondi righe", + "Unhide Rows" => "Scopri righe", + "Hide Columns" => "Nascondi colonne", + "Unhide Columns" => "Scopri colonne", + "Lock Cell" => "Blocca cella", + "Clear" => "Cancella", + "Clear All" => "Cancella tutto", + "Clear Formats" => "Cancella formati", + "Clear Contents" => "Cancella contenuto", + "Clear Comments and Notes" => "Cancella commenti e note", + "Clear Hyperlinks" => "Cancella collegamenti ipertestuali", + "AutoSum" => "Somma automatica", + "Flash\nFill" => "Riempimento\nveloce", + "Flash Fill" => "Riempimento veloce", + "Fill" => "Riempimento", + "Clear Print Area" => "Cancella area di stampa", + "Find &\nSelect" => "Trova e\nseleziona", + "Find…" => "Trova…", + "Replace…" => "Sostituisci…", + "Go To…" => "Vai a…", + "Go To Special…" => "Vai a speciale…", + "PivotTable" => "Tabella pivot", + "Recommended\nCharts" => "Grafici\nconsigliati", + "Table" => "Tabella", + "Pictures" => "Immagini", + "Shapes" => "Forme", + "Icons" => "Icone", + "Text\nBox" => "Casella\ndi testo", + "Comment" => "Commento", + "New\nComment" => "Nuovo\ncommento", + "New Note" => "Nuova nota", + "Show/Hide Note" => "Mostra/Nascondi nota", + "Header &\nFooter" => "Intestazione e\npiè di pagina", + "Text to\nColumns" => "Testo in\ncolonne", + "Link" => "Collegamento", + "Symbol" => "Simbolo", + "Sparklines" => "Sparkline", + "Checkbox" => "Casella di controllo", + "Insert checkboxes in the selected cells" => "Inserisci caselle di controllo nelle celle selezionate", + "Header & Footer" => "Intestazione e piè di pagina", + "Draw with ink" => "Disegna a mano libera", + "Eraser" => "Gomma", + "Ink to\nShape" => "Da input penna\na forma", + "Select\nObjects" => "Seleziona\noggetti", + "Themes" => "Temi", + "Margins" => "Margini", + "Left Margin" => "Margine sinistro", + "Right Margin" => "Margine destro", + "Top Margin" => "Margine superiore", + "Bottom Margin" => "Margine inferiore", + "Header Margin" => "Margine intestazione", + "Footer Margin" => "Margine piè di pagina", + "Size" => "Dimensioni", + "Print\nArea" => "Area di\nstampa", + "Set Print Area" => "Imposta area di stampa", + "Breaks" => "Interruzioni", + "Insert Page Break" => "Inserisci interruzione di pagina", + "Remove Page Break" => "Rimuovi interruzione di pagina", + "Reset All Page Breaks" => "Reimposta tutte le interruzioni di pagina", + "Print\nTitles" => "Stampa\ntitoli", + "Sheet\nRight-to-Left" => "Foglio da destra\na sinistra", + "Sheet Right-to-Left" => "Foglio da destra a sinistra", + "Narrow" => "Stretti", + "Wide" => "Larghi", + "Normal" => "Normale", + "Portrait" => "Verticale", + "Landscape" => "Orizzontale", + "Custom Margins…" => "Margini personalizzati…", + "Insert\nFunction" => "Inserisci\nfunzione", + "Name\nManager" => "Gestione\nnomi", + "Define Name" => "Definisci nome", + "Use in Formula" => "Usa nella formula", + "Create from Selection" => "Crea da selezione", + "Trace Precedents" => "Individua precedenti", + "Trace Dependents" => "Individua dipendenti", + "Remove Arrows" => "Rimuovi frecce", + "Show Formulas" => "Mostra formule", + "Error Checking" => "Controllo errori", + "Evaluate Formula" => "Valuta formula", + "Watch Window" => "Finestra controlli", + "Calculation\nOptions" => "Opzioni di\ncalcolo", + "Calculate Now" => "Calcola ora", + "Calculate Sheet" => "Calcola foglio", + "Automatic" => "Automatico", + "Automatic Except for Data Tables" => "Automatico ad eccezione delle tabelle dati", + "Manual" => "Manuale", + "Sort &\nFilter" => "Ordina e\nfiltra", + "Sort" => "Ordina", + "Sort A to Z" => "Ordina dalla A alla Z", + "Sort Z to A" => "Ordina dalla Z alla A", + "Custom Sort…" => "Ordinamento personalizzato…", + "Filter" => "Filtro", + "Reapply" => "Riapplica", + "Get Data\n(Text/CSV)" => "Recupera dati\n(testo/CSV)", + "Remove\nDuplicates" => "Rimuovi\nduplicati", + "Data\nValidation" => "Convalida\ndati", + "Data Validation" => "Convalida dati", + "Data Validation…" => "Convalida dati…", + "Circle Invalid Data" => "Cerchia dati non validi", + "Clear Validation" => "Cancella convalida", + "Group" => "Raggruppa", + "Ungroup" => "Separa", + "Show Detail" => "Mostra dettagli", + "Hide Detail" => "Nascondi dettagli", + "Subtotal" => "Subtotale", + "Data\nAnalysis" => "Analisi\ndati", + "Data Analysis" => "Analisi dati", + "Solver" => "Solver", + "What-If\nAnalysis" => "Analisi di\nsimulazione", + "Data Table…" => "Tabella dati…", + "Scenario Manager…" => "Gestione scenari…", + "Goal Seek…" => "Ricerca obiettivo…", + "Forecast\nSheet" => "Foglio\nprevisione", + "Spelling" => "Controllo ortografia", + "Check\nAccessibility" => "Verifica\naccessibilità", + "Threaded Comments" => "Commenti in thread", + "Show\nComments" => "Mostra\ncommenti", + "Previous" => "Precedente", + "Next" => "Successivo", + "Previous Comment" => "Commento precedente", + "Next Comment" => "Commento successivo", + "Show All Notes" => "Mostra tutte le note", + "Convert to Comments" => "Converti in commenti", + "Protect\nWorkbook" => "Proteggi cartella\ndi lavoro", + "Allow Edit\nRanges" => "Consenti modifica\nintervalli", + "Allow Edit Ranges" => "Consenti modifica intervalli", + "Unprotect\nSheet" => "Rimuovi protezione\nfoglio", + "Protect Sheet…" => "Proteggi foglio…", + "Comments" => "Commenti", + "Notes" => "Note", + "Page Break\nPreview" => "Anteprima interruzioni\ndi pagina", + "Page\nLayout" => "Layout\ndi pagina", + "Formula Bar" => "Barra della formula", + "Gridlines" => "Griglia", + "Headings" => "Intestazioni", + "Zoom" => "Zoom", + "100%" => "100%", + "Zoom to\nSelection" => "Zoom sulla\nselezione", + "Freeze\nPanes" => "Blocca\nriquadri", + "Freeze Panes" => "Blocca riquadri", + "Freeze Top Row" => "Blocca riga superiore", + "Freeze First Column" => "Blocca prima colonna", + "Unfreeze Panes" => "Sblocca riquadri", + "Dark Mode" => "Modalità scura", + "Interface language" => "Lingua dell'interfaccia", + "Interface size" => "Dimensione dell'interfaccia", + "Auto" => "Auto", + "Drag to freeze columns" => "Trascina per bloccare le colonne", + "Drag to freeze rows" => "Trascina per bloccare le righe", + "Command\nPalette" => "Riquadro\ncomandi", + "Agent\nControl" => "Controllo\nagenti", + "Action\nJournal" => "Registro\nazioni", + "About\nGridCraft" => "Informazioni su\nGridCraft", + "Share" => "Condividi", + "Add Chart\nElement" => "Aggiungi\nelemento grafico", + "Change\nChart Type" => "Cambia tipo\ndi grafico", + "Switch\nRow/Column" => "Inverti\nriga/colonna", + "Select\nData" => "Seleziona\ndati", + "Data Labels: None" => "Etichette dati: nessuna", + "Data Labels: Show" => "Etichette dati: mostra", + "Legend: None" => "Legenda: nessuna", + "Legend: Bottom" => "Legenda: in basso", + "Legend: Top" => "Legenda: in alto", + "Legend: Right" => "Legenda: a destra", + "Gridlines: None" => "Griglia: nessuna", + "Gridlines: Show" => "Griglia: mostra", + "Chart\nTitle" => "Titolo\ndel grafico", + "Delete\nChart" => "Elimina\ngrafico", + "Convert\nto Range" => "Converti\nin intervallo", + "Table\nStyles" => "Stili\ntabella", + "Top 10 Items" => "Primi 10 elementi", + "Top 10%" => "Primi 10%", + "Bottom 10 Items" => "Ultimi 10 elementi", + "Bottom 10%" => "Ultimi 10%", + "Above Average" => "Sopra la media", + "Below Average" => "Sotto la media", + "Clear Rules from Entire Sheet" => "Cancella regole dall'intero foglio", + "Clear Rules from Selected Cells" => "Cancella regole dalle celle selezionate", + "Constants" => "Costanti", + "Data Bars" => "Barre dei dati", + "Color Scales" => "Scale di colori", + "Icon Sets" => "Set di icone", + "Home" => "Home", + "Draw" => "Disegno", + "Page Layout" => "Layout di pagina", + "Formulas" => "Formule", + "Data" => "Dati", + "Review" => "Revisione", + "View" => "Visualizza", + "Automate" => "Automatizza", + "Table Design" => "Progettazione tabella", + "Chart Design" => "Progettazione grafico", + "Ready" => "Pronto", + "Enter" => "Immetti", + "Edit" => "Modifica", + "Point" => "Punta", + "Calculate" => "Calcola", + "Select destination and press Enter or choose Paste" => "Seleziona la destinazione e premi Invio o scegli Incolla", + "General" => "Generale", + "Number" => "Numero", + "Currency" => "Valuta", + "Accounting" => "Contabilità", + "Date" => "Data", + "Time" => "Ora", + "Percentage" => "Percentuale", + "Fraction" => "Frazione", + "Scientific" => "Scientifico", + "Text" => "Testo", + "Special" => "Speciale", + "Custom" => "Personalizzato", + "Short Date" => "Data breve", + "Long Date" => "Data estesa", + "More Number Formats…" => "Altri formati numero…", + "Financial" => "Finanziarie", + "Logical" => "Logiche", + "Date &\nTime" => "Data e\nora", + "Lookup &\nReference" => "Ricerca e\nriferimento", + "Math &\nTrig" => "Matematiche e\ntrigonometriche", + "More\nFunctions" => "Altre\nfunzioni", + "Page Layout|Orientation" => "Orientamento", + "Display theme" => "Tema di visualizzazione", + "Animations" => "Animazioni", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Fa scorrere il contorno della selezione fino alla cella di destinazione invece di saltare" + } + "System" => "Sistema", + "Light" => "Chiaro", + "Dark" => "Scuro", + "Sheet Options|View" => "Visualizza", + "Print" => "Stampa", + // Page Layout view and the Header & Footer tab. + "Click to add data" => "Fai clic per aggiungere dati", + "Add header" => "Aggiungi intestazione", + "Add footer" => "Aggiungi piè di pagina", + "(none)" => "(nessuno)", + "Header" => "Intestazione", + "Footer" => "Piè di pagina", + "Page\nNumber" => "Numero\npagina", + "Number\nof Pages" => "Numero\npagine", + "Current\nDate" => "Data\ncorrente", + "Current\nTime" => "Ora\ncorrente", + "File\nPath" => "Percorso\nfile", + "File\nName" => "Nome\nfile", + "Sheet\nName" => "Nome\nfoglio", + "Go to\nHeader" => "Vai a\nintestazione", + "Go to\nFooter" => "Vai a\npiè di pagina", + "Page Number" => "Numero pagina", + "Number of Pages" => "Numero pagine", + "Current Date" => "Data corrente", + "Current Time" => "Ora corrente", + "File Path" => "Percorso file", + "File Name" => "Nome file", + "Sheet Name" => "Nome foglio", + "Go to Header" => "Vai a intestazione", + "Different First Page" => "Prima pagina diversa", + "Different Odd & Even Pages" => "Pagine pari e dispari diverse", + "Go to Footer" => "Vai a piè di pagina", + "Ruler" => "Righello", + // File › Backstage view. + "File" => "File", + "Back" => "Indietro", + "New" => "Nuovo", + "Open" => "Apri", + "Info" => "Informazioni", + "Save" => "Salva", + "Save As" => "Salva con nome", + "Export" => "Esporta", + "Close" => "Chiudi", + "Options" => "Opzioni", + "Blank workbook" => "Cartella di lavoro vuota", + "Recent" => "Recenti", + "No recent workbooks yet." => "Nessuna cartella di lavoro recente.", + "More workbooks" => "Altre cartelle di lavoro", + "Modified" => "Modificato", + "Not available" => "Non disponibile", + "Just now" => "Adesso", + "{n} min ago" => "{n} min fa", + "{n} h ago" => "{n} h fa", + "{n} days ago" => "{n} giorni fa", + "{n} weeks ago" => "{n} settimane fa", + "{n} months ago" => "{n} mesi fa", + "{n} years ago" => "{n} anni fa", + "Browse…" => "Sfoglia…", + "Not saved yet" => "Non ancora salvato", + "Location" => "Percorso", + "Sheets" => "Fogli", + "Protect Workbook" => "Proteggi cartella di lavoro", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "La struttura dei fogli è bloccata: non è possibile aggiungere, spostare, rinominare o eliminare fogli." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Blocca la struttura dei fogli per impedire di aggiungere, spostare, rinominare o eliminare fogli." + } + "Properties" => "Proprietà", + "Title" => "Titolo", + "Subject" => "Oggetto", + "Author" => "Autore", + "Company" => "Società", + "Keywords" => "Parole chiave", + "Description" => "Descrizione", + "No workbook is open." => "Nessuna cartella di lavoro aperta.", + "Save as type" => "Salva come", + "Excel Workbook (*.xlsx)" => "Cartella di lavoro di Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (delimitato dal separatore di elenco) (*.csv)", + "Web Page (*.html)" => "Pagina Web (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Scarica", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Un file CSV, una pagina Web o un PDF è una copia: la cartella di lavoro mantiene il proprio file." + } + "Save the workbook under another name or in another folder." => "Salva la cartella di lavoro con un altro nome o in un'altra cartella.", + "Print Active Sheets" => "Stampa fogli attivi", + "Print Entire Workbook" => "Stampa intera cartella di lavoro", + "Fit Sheet on One Page" => "Adatta foglio a una pagina", + "Page Setup…" => "Imposta pagina…", + "Page {page} of {pages}" => "Pagina {page} di {pages}", + "Nothing to print." => "Niente da stampare.", + "Previous page" => "Pagina precedente", + "Next page" => "Pagina successiva", + "Create PDF" => "Crea PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Salva il foglio come documento PDF che mantiene il layout di pagina.", + "Change File Type" => "Cambia tipo di file", + "CSV (Comma delimited)" => "CSV (delimitato dal separatore di elenco)", + "Save the active sheet as comma-separated text." => "Salva il foglio attivo come testo separato da virgole.", + "Web Page (.html)" => "Pagina Web (.html)", + "Save the workbook as a web page." => "Salva la cartella di lavoro come pagina Web.", + "Options|General" => "Generale", + "Options|Save" => "Salvataggio", + "Options|Editing" => "Modifica", + "Show formula bar" => "Mostra barra della formula", + "Enable AutoComplete for cell values" => "Abilita Completamento automatico per i valori delle celle", + "Save .xlsx workbooks automatically after every change" => "Salva automaticamente le cartelle di lavoro .xlsx dopo ogni modifica", + "Workbook calculation" => "Calcolo della cartella di lavoro", + "Enable iterative calculation" => "Abilita calcolo iterativo", + "Calculation settings are saved with the workbook." => "Le impostazioni di calcolo vengono salvate con la cartella di lavoro.", + "OK" => "OK", + "Cancel" => "Annulla", + "Don't Save" => "Non salvare", + "Open…" => "Apri…", + "Show password" => "Mostra password", + "Start a new workbook" => "Crea una nuova cartella di lavoro", + "Household Budget" => "Budget familiare", + "Quarterly Sales Dashboard" => "Dashboard vendite trimestrali", + "Gradebook" => "Registro dei voti", + "this workbook" => "questa cartella di lavoro", + "This workbook" => "Questa cartella di lavoro", + "Do you want to save the changes you made to {title}?" => "Vuoi salvare le modifiche apportate a {title}?", + "Save a copy as .{format}" => "Salva una copia come .{format}", + "Select a chart first." => "Seleziona prima un grafico.", + "Text Box" => "Casella di testo", + "Select Data" => "Seleziona dati", + "Row Height" => "Altezza righe", + "Column Width" => "Larghezza colonne", + "Standard Width" => "Larghezza predefinita", + "Rename Sheet" => "Rinomina foglio", + "Move or Copy" => "Sposta o copia", + "Protect Sheet" => "Proteggi foglio", + "Protect Structure and Windows" => "Proteggi struttura e finestre", + "Unprotect Workbook" => "Rimuovi protezione cartella di lavoro", + "Unprotect Sheet" => "Rimuovi protezione foglio", + "Password" => "Password", + "Unhide" => "Scopri", + "Paste Special" => "Incolla speciale", + "Series" => "Serie", + "New Comment" => "Nuovo commento", + "Insert Hyperlink" => "Inserisci collegamento ipertestuale", + "Create Sparklines" => "Crea Sparkline", + "Page Setup" => "Imposta pagina", + "Convert Text to Columns" => "Converti testo in colonne", + "Remove Duplicates" => "Rimuovi duplicati", + "Goal Seek" => "Ricerca obiettivo", + "Create Forecast Worksheet" => "Crea foglio di previsione", + "Solver Parameters" => "Parametri di Solver", + "Solver Results" => "Risultati di Solver", + "Edit Name" => "Modifica nome", + "New Name" => "Nuovo nome", + "Format Cells" => "Formato celle", + "Formula Builder" => "Generatore di formule", + "Find and Replace" => "Trova e sostituisci", + "Go To" => "Vai a", + "Insert Calculated Field" => "Inserisci campo calcolato", + "Go To Special" => "Vai a speciale", + "Name Manager" => "Gestione nomi", + "Conditional Formatting Rules Manager" => "Gestione regole di formattazione condizionale", + "Search Commands" => "Cerca comandi", + "Agent Control" => "Controllo agenti", + "About GridCraft" => "Informazioni su GridCraft", + "Insert Chart" => "Inserisci grafico", + "Select Data Source" => "Seleziona origine dati", + "Action Journal" => "Registro azioni", + "Macros" => "Macro", + "Workbook Statistics" => "Statistiche cartella di lavoro", + "Accessibility" => "Accessibilità", + "Chart Title" => "Titolo del grafico", + "Place Picture in Cell" => "Inserisci immagine nella cella", + "Place Picture over Cells" => "Inserisci immagine sopra le celle", + "Pick From List" => "Scegli dall'elenco", + "Save a Copy" => "Salva una copia", + "Save Changes?" => "Salvare le modifiche?", + "Shift cells right" => "Sposta celle a destra", + "Shift cells down" => "Sposta celle in basso", + "Shift cells left" => "Sposta celle a sinistra", + "Shift cells up" => "Sposta celle in alto", + "Entire row" => "Intera riga", + "Entire column" => "Intera colonna", + "Row height (pixels):" => "Altezza riga (pixel):", + "Column width (characters):" => "Larghezza colonna (caratteri):", + "Standard column width (pixels):" => "Larghezza standard colonna (pixel):", + "Name:" => "Nome:", + "Before sheet (position, 0 = first):" => "Prima del foglio (posizione, 0 = primo):", + "Create a copy" => "Crea una copia", + "Sheets: {sheets}" => "Fogli: {sheets}", + "Password (optional):" => "Password (facoltativa):", + "Password:" => "Password:", + "Allow all users of this sheet to:" => "Consenti a tutti gli utenti di questo foglio di:", + "Format cells" => "Formatta celle", + "Format columns" => "Formatta colonne", + "Format rows" => "Formatta righe", + "Insert rows" => "Inserisci righe", + "Delete rows" => "Elimina righe", + "Use AutoFilter" => "Usa Filtro automatico", + " (password, unlocked)" => " (password, sbloccato)", + " (password)" => " (password)", + "No ranges yet." => "Nessun intervallo.", + "Ranges that stay editable when the sheet is protected:" => "Intervalli che restano modificabili quando il foglio è protetto:", + "Action" => "Azione", + "Modify" => "Modifica", + "Unlock with password" => "Sblocca con password", + "Title:" => "Titolo:", + "Refers to cells:" => "Si riferisce alle celle:", + "Range password:" => "Password intervallo:", + "New title (Modify):" => "Nuovo titolo (Modifica):", + "Remove the password (Modify)" => "Rimuovi la password (Modifica)", + "'{file}' is protected." => "'{file}' è protetto.", + "Unhide sheet:" => "Scopri foglio:", + "Hidden: {sheets}" => "Nascosti: {sheets}", + "All" => "Tutto", + "Formulas (F)" => "Formule (F)", + "Values (V)" => "Valori (V)", + "Formats (T)" => "Formati (T)", + "Comments and notes (C)" => "Commenti e note (C)", + "Validation" => "Convalida", + "All except borders" => "Tutto tranne i bordi", + "Column widths" => "Larghezze colonne", + "Formulas and number formats" => "Formule e formati numero", + "Values and number formats" => "Valori e formati numero", + "Operation" => "Operazione", + "Add" => "Aggiungi", + "Subtract" => "Sottrai", + "Multiply" => "Moltiplica", + "Divide" => "Dividi", + "Skip blanks" => "Salta celle vuote", + "Transpose (E)" => "Trasponi (E)", + "Series in" => "Serie in", + "Columns" => "Colonne", + "Rows" => "Righe", + "Type" => "Tipo", + "Linear" => "Lineare", + "Growth" => "Esponenziale", + "Date unit" => "Unità di data", + "Day" => "Giorno", + "Weekday" => "Giorno feriale", + "Month" => "Mese", + "Year" => "Anno", + "Step value:" => "Incremento:", + "Stop value:" => "Valore limite:", + "Start a conversation:" => "Avvia una conversazione:", + "Note:" => "Nota:", + "Display:" => "Testo da visualizzare:", + "Link to (web address, e-mail or Sheet!A1):" => "Collega a (indirizzo Web, e-mail o Foglio!A1):", + "ScreenTip:" => "Descrizione comando:", + "Data Range:" => "Intervallo dati:", + "Location Range:" => "Intervallo di posizione:", + "Markers" => "Indicatori", + "Footer:" => "Piè di pagina:", + "Left margin (in):" => "Margine sinistro (poll.):", + "Right margin (in):" => "Margine destro (poll.):", + "Top margin (in):" => "Margine superiore (poll.):", + "Bottom margin (in):" => "Margine inferiore (poll.):", + "Header (in):" => "Intestazione (poll.):", + "Footer (in):" => "Piè di pagina (poll.):", + "Tab" => "Tabulazione", + "Semicolon" => "Punto e virgola", + "Comma" => "Virgola", + "Space" => "Spazio", + "Other:" => "Altro:", + "Treat consecutive delimiters as one" => "Considera delimitatori consecutivi come uno solo", + "Destination:" => "Destinazione:", + "My data has headers" => "I dati contengono intestazioni", + "Columns (blank = all, e.g. A,C):" => "Colonne (vuoto = tutte, ad es. A,C):", + "Timeline range (blank: first column of the selection):" => "Intervallo sequenza temporale (vuoto: prima colonna della selezione):", + "Values range (blank: second column of the selection):" => "Intervallo valori (vuoto: seconda colonna della selezione):", + "Confidence interval" => "Intervallo di confidenza", + "Confidence level (%):" => "Livello di confidenza (%):", + "Seasonality (auto, 0 for none, or a season length):" => "Stagionalità (automatica, 0 per nessuna, o la lunghezza di una stagione):", + "Fill missing points using" => "Compila punti mancanti usando", + "Interpolation" => "Interpolazione", + "Zeros" => "Zeri", + "Aggregate duplicates using" => "Aggrega duplicati usando", + "Average" => "Media", + "Count" => "Conteggio", + "CountA" => "Conta valori", + "Max" => "Max", + "Median" => "Mediana", + "Min" => "Min", + "Sum" => "Somma", + "Product" => "Prodotto", + "Include forecast statistics" => "Includi statistiche di previsione", + "Chart" => "Grafico", + "Line chart" => "Grafico a linee", + "Column chart" => "Grafico a colonne", + "At each change in (column letter):" => "A ogni cambiamento in (lettera di colonna):", + "Use function" => "Usa funzione", + "Add subtotal to (columns, e.g. C,D):" => "Aggiungi subtotale a (colonne, ad es. C,D):", + "Magnification" => "Ingrandimento", + "Custom (%):" => "Personalizzato (%):", + "Scope (Workbook or sheet name):" => "Ambito (cartella di lavoro o nome del foglio):", + "Comment:" => "Commento:", + "Refers to:" => "Riferito a:", + "Allow" => "Consenti", + "Any value" => "Qualsiasi valore", + "Whole number" => "Numero intero", + "Decimal" => "Decimale", + "List" => "Elenco", + "Text length" => "Lunghezza testo", + "between" => "tra", + "not between" => "non tra", + "equal to" => "uguale a", + "not equal to" => "diverso da", + "greater than" => "maggiore di", + "less than" => "minore di", + "greater than or equal to" => "maggiore o uguale a", + "less than or equal to" => "minore o uguale a", + "Minimum / Source / Formula:" => "Minimo / Origine / Formula:", + "Maximum:" => "Massimo:", + "Ignore blank" => "Ignora celle vuote", + "In-cell dropdown" => "Elenco a discesa nella cella", + "Input message:" => "Messaggio di input:", + "Error style" => "Stile errore", + "Stop" => "Stop", + "Warning" => "Avviso", + "Information" => "Informazioni", + "Error message:" => "Messaggio di errore:", + "Format cells that are (value):" => "Formatta celle che sono (valore):", + "and:" => "e:", + "Format cells that contain the text:" => "Formatta celle che contengono il testo:", + "Format cells that contain a date occurring:" => "Formatta celle che contengono una data:", + "Yesterday" => "Ieri", + "Today" => "Oggi", + "Tomorrow" => "Domani", + "In the last 7 days" => "Negli ultimi 7 giorni", + "Last week" => "Settimana scorsa", + "This week" => "Questa settimana", + "Next week" => "Settimana prossima", + "Last month" => "Mese scorso", + "This month" => "Questo mese", + "Next month" => "Mese prossimo", + "Format values where this formula is true:" => "Formatta valori per cui questa formula è vera:", + "with" => "con", + "Light Red Fill with Dark Red Text" => "Riempimento rosso chiaro con testo rosso scuro", + "Yellow Fill with Dark Yellow Text" => "Riempimento giallo con testo giallo scuro", + "Green Fill with Dark Green Text" => "Riempimento verde con testo verde scuro", + "Light Red Fill" => "Riempimento rosso chiaro", + "Red Text" => "Testo rosso", + "Red Border" => "Bordo rosso", + "Formula:" => "Formula:", + "Select" => "Seleziona", + "Blanks" => "Celle vuote", + "Errors" => "Errori", + "Numbers" => "Numeri", + "Current region" => "Area corrente", + "Last cell" => "Ultima cella", + "Visible cells only" => "Solo celle visibili", + "Conditional formats" => "Formati condizionali", + "Data validation" => "Convalida dati", + "Horizontal axis title:" => "Titolo asse orizzontale:", + "Vertical axis title:" => "Titolo asse verticale:", + "No picture selected" => "Nessuna immagine selezionata", + "Picture file path (PNG or JPEG):" => "Percorso del file immagine (PNG o JPEG):", + "Description (optional):" => "Descrizione (facoltativa):", + "Fits inside the selected cell and moves with its content." => "Si adatta alla cella selezionata e si sposta insieme al suo contenuto.", + "Choose a PNG or JPEG no larger than 16 MB." => "Scegli un file PNG o JPEG di dimensioni non superiori a 16 MB.", + "About" => "Informazioni", + "Contributors" => "Collaboratori", + "Models" => "Modelli", + "Version {version}" => "Versione {version}", + "Join the ArtCraft Discord" => "Unisciti al Discord di ArtCraft", + "This workbook has no scripts or macros." => "Questa cartella di lavoro non contiene script o macro.", + "(unnamed)" => "(senza nome)", + "— VBA project (preserved, not run)" => "— Progetto VBA (conservato, non eseguito)", + "— 1 step" => "— 1 passaggio", + "— {steps} steps" => "— {steps} passaggi", + "Alignment" => "Allineamento", + "Font" => "Carattere", + "Border" => "Bordo", + "Format Cells|Fill" => "Riempimento", + "Protection" => "Protezione", + "Category:" => "Categoria:", + "Sample" => "Campione", + "Type (custom format code):" => "Tipo (codice di formato personalizzato):", + "Vertical" => "Verticale", + "Justify" => "Giustificato", + "Center Across Selection" => "Al centro della selezione", + "Distributed" => "Distribuito", + "Top" => "In alto", + "Bottom" => "In basso", + "Indent" => "Rientro", + "Orientation (degrees)" => "Orientamento (gradi)", + "Wrap text" => "Testo a capo", + "Shrink to fit" => "Riduci e adatta", + "Bold" => "Grassetto", + "Italic" => "Corsivo", + "None" => "Nessuno", + "Single" => "Singola", + "Double" => "Doppia", + "Single Accounting" => "Singola contabilità", + "Double Accounting" => "Doppia contabilità", + "Superscript" => "Apice", + "Subscript" => "Pedice", + "Color:" => "Colore:", + "Outline" => "Contorno", + "Diagonal ↘" => "Diagonale ↘", + "Diagonal ↗" => "Diagonale ↗", + "none" => "nessuno", + "thin" => "sottile", + "medium" => "medio", + "thick" => "spesso", + "dashed" => "tratteggiato", + "dotted" => "punteggiato", + "double" => "doppio", + "Background Color:" => "Colore sfondo:", + "Locked" => "Bloccata", + "Hidden" => "Nascosta", + "Search:" => "Cerca:", + "e.g. lookup, average, date" => "ad es. cerca, media, data", + "Date & Time" => "Data e ora", + "Lookup & Reference" => "Ricerca e riferimento", + "Math & Trig" => "Matematiche e trigonometriche", + "Statistical" => "Statistiche", + "Engineering" => "Ingegneria", + "Database" => "Database", + "Compatibility" => "Compatibilità", + "Web" => "Web", + "Cube" => "Cubo", + "Add-in and Automation" => "Componenti aggiuntivi e automazione", + "Find" => "Trova", + "Replace" => "Sostituisci", + "Find what:" => "Trova:", + "Replace with:" => "Sostituisci con:", + "Match case" => "Maiuscole/minuscole", + "Match entire cell contents" => "Confronta intero contenuto cella", + "Within workbook" => "Nella cartella di lavoro", + "Replace All" => "Sostituisci tutto", + "Find All" => "Trova tutti", + "Find Next" => "Trova successivo", + "All done. We made {count} replacements." => "Operazione completata. Sono state effettuate {count} sostituzioni.", + "{count} cell(s) found" => "{count} cella/e trovata/e", + "Reference:" => "Riferimento:", + "Special…" => "Speciale…", + "My list has headers" => "L'elenco contiene intestazioni", + "Sort by" => "Ordina per", + "Then by" => "Quindi per", + "Cell Values" => "Valori cella", + "Cell Color" => "Colore cella", + "A to Z" => "Dalla A alla Z", + "Z to A" => "Dalla Z alla A", + "+ Add Level" => "+ Aggiungi livello", + "New…" => "Nuovo…", + "Edit…" => "Modifica…", + "Name" => "Nome", + "Value" => "Valore", + "Refers To" => "Riferito a", + "Scope" => "Ambito", + "Workbook" => "Cartella di lavoro", + "No names defined" => "Nessun nome definito", + "Recommended Charts" => "Grafici consigliati", + "All Charts" => "Tutti i grafici", + "Clustered Column" => "Colonne raggruppate", + "Stacked Column" => "Colonne in pila", + "100% Stacked Column" => "Colonne in pila 100%", + "Clustered Bar" => "Barre raggruppate", + "Stacked Bar" => "Barre in pila", + "100% Stacked Bar" => "Barre in pila 100%", + "Line" => "Linee", + "Line with Markers" => "Linee con indicatori", + "Stacked Line" => "Linee in pila", + "Pie" => "Torta", + "Doughnut" => "Anello", + "Area" => "Area", + "Stacked Area" => "Area in pila", + "Scatter" => "Dispersione", + "Scatter with Lines" => "Dispersione con linee", + "Radar" => "Radar", + "Histogram" => "Istogramma", + "Waterfall" => "Cascata", + "Funnel" => "Imbuto", + "Combo" => "Combinato", + "Chart data range:" => "Intervallo dati del grafico:", + "Legend Entries (Series)" => "Voci legenda (serie)", + "Series{n}" => "Serie{n}", + "Keep" => "Mantieni", + "Remove" => "Rimuovi", + "Horizontal (Category) Axis Labels:" => "Etichette asse orizzontale (categoria):", + "There are no conditional formatting rules on this sheet." => "In questo foglio non sono presenti regole di formattazione condizionale.", + "applies to" => "si applica a", + "Type a command, e.g. freeze, chart, bold…" => "Digita un comando, ad es. blocca, grafico, grassetto…", + "Set cell:" => "Imposta cella:", + "To value:" => "Al valore:", + "By changing cell:" => "Cambiando la cella:", + "Goal Seeking found a solution: {value}" => "Ricerca obiettivo ha trovato una soluzione: {value}", + "Analysis Tools" => "Strumenti di analisi", + "Anova: Single Factor" => "Analisi varianza: a un fattore", + "Correlation" => "Correlazione", + "Covariance" => "Covarianza", + "Descriptive Statistics" => "Statistica descrittiva", + "Exponential Smoothing" => "Livellamento esponenziale", + "F-Test Two-Sample for Variances" => "Test F a due campioni per varianze", + "Moving Average" => "Media mobile", + "Rank and Percentile" => "Rango e percentile", + "Regression" => "Regressione", + "t-Test: Paired Two Sample for Means" => "Test t: due campioni accoppiati per medie", + "t-Test: Two-Sample Assuming Equal Variances" => "Test t: due campioni assumendo uguale varianza", + "t-Test: Two-Sample Assuming Unequal Variances" => "Test t: due campioni assumendo varianze diverse", + "Output options" => "Opzioni di output", + "Output Range:" => "Intervallo di output:", + "New Worksheet Ply:" => "Nuovo foglio di lavoro:", + "Grouped By:" => "Raggruppato per:", + "Labels in first row" => "Etichette nella prima riga", + "Input Range:" => "Intervallo di input:", + "Variable 1 Range:" => "Intervallo variabile 1:", + "Variable 2 Range:" => "Intervallo variabile 2:", + "Summary statistics" => "Riepilogo statistiche", + "Confidence Level for Mean (%), blank for none:" => "Livello di confidenza per la media (%), vuoto per nessuno:", + "Kth Largest (blank for none):" => "K-esimo più grande (vuoto per nessuno):", + "Kth Smallest (blank for none):" => "K-esimo più piccolo (vuoto per nessuno):", + "Bin Range (blank for automatic bins):" => "Intervallo classi (vuoto per classi automatiche):", + "Pareto (sorted histogram)" => "Pareto (istogramma ordinato)", + "Cumulative Percentage" => "Percentuale cumulativa", + "Alpha:" => "Alfa:", + "Input Y Range:" => "Intervallo Y di input:", + "Input X Range:" => "Intervallo X di input:", + "Constant is Zero" => "Costante uguale a zero", + "Confidence Level (%):" => "Livello di confidenza (%):", + "Residuals" => "Residui", + "Standardized Residuals" => "Residui standardizzati", + "Normal Probability" => "Probabilità normale", + "Interval:" => "Intervallo:", + "Standard Errors" => "Errori standard", + "Damping factor:" => "Fattore di smorzamento:", + "Hypothesized Mean Difference:" => "Differenza ipotizzata tra le medie:", + "Set Objective:" => "Imposta obiettivo:", + "To:" => "A:", + "Value Of:" => "Valore di:", + "By Changing Variable Cells:" => "Cambiando celle variabili:", + "Subject to the Constraints:" => "Soggetto ai vincoli:", + "Make Unconstrained Variables Non-Negative" => "Rendi non negative le variabili senza vincoli", + "Select a Solving Method:" => "Seleziona un metodo di risoluzione:", + "GRG Nonlinear" => "GRG non lineare", + "Solve" => "Risolvi", + "Keep Solver Solution" => "Mantieni soluzione di Solver", + "Restore Original Values" => "Ripristina valori originali", + "The spelling check is complete for the entire sheet." => "Il controllo ortografico è stato completato per l'intero foglio.", + "Not in Dictionary ({cell}):" => "Non nel dizionario ({cell}):", + "Suggestions:" => "Suggerimenti:", + "(No suggestions)" => "(Nessun suggerimento)", + "Ignore Once" => "Ignora una volta", + "Add to Dictionary" => "Aggiungi al dizionario", + "Change" => "Cambia", + "Change All" => "Cambia tutto", + "$ English (United States)" => "$ Inglese (Stati Uniti)", + "Add Chart Element" => "Aggiungi elemento grafico", + "Align Left" => "Allinea a sinistra", + "Align Right" => "Allinea a destra", + "Bottom Align" => "Allinea in basso", + "Calculate Now (F9)" => "Calcola ora (F9)", + "Calculate Sheet (⇧F9)" => "Calcola foglio (⇧F9)", + "Calculation Options" => "Opzioni di calcolo", + "Cell Styles" => "Stili cella", + "Change Chart Type" => "Cambia tipo di grafico", + "Check Accessibility" => "Verifica accessibilità", + "Clear Filter" => "Cancella filtro", + "Column or Bar" => "Colonne o barre", + "Comments pane" => "Riquadro commenti", + "Convert the last ink stroke to a shape" => "Converti l'ultimo tratto a penna in una forma", + "Convert to Range" => "Converti in intervallo", + "Copy" => "Copia", + "Custom Sort" => "Ordinamento personalizzato", + "Cut" => "Taglia", + "Define Name…" => "Definisci nome…", + "Delete Comment" => "Elimina commento", + "Delete Sheet" => "Elimina foglio", + "Delete chart" => "Elimina grafico", + "Delete…" => "Elimina…", + "Dismiss" => "Chiudi", + "Down" => "Giù", + "Edit chart title" => "Modifica titolo del grafico", + "Erase ink strokes" => "Cancella tratti a penna", + "Every command run in this session (replayable)" => "Tutti i comandi eseguiti in questa sessione (ripetibili)", + "Expand formula bar" => "Espandi barra della formula", + "Filter by Selected Cell's Value" => "Filtra in base al valore della cella selezionata", + "Find & Select" => "Trova e seleziona", + "Forecast Sheet" => "Foglio previsione", + "Forecast end (date or number; blank: a third of the history):" => "Fine previsione (data o numero; vuoto: un terzo dello storico):", + "Format Chart pane" => "Riquadro Formato grafico", + "Format as Table" => "Formatta come tabella", + "Hide" => "Nascondi", + "Hide Sheet" => "Nascondi foglio", + "Hierarchy & more" => "Gerarchia e altro", + "Highlighter" => "Evidenziatore", + "How agents drive GridCraft (MCP / control channel)" => "Come gli agenti controllano GridCraft (MCP / canale di controllo)", + "Import a text or CSV file" => "Importa un file di testo o CSV", + "Insert Function" => "Inserisci funzione", + "Insert Function (⇧F3)" => "Inserisci funzione (⇧F3)", + "Insert Link" => "Inserisci collegamento", + "Insert Sheet" => "Inserisci foglio", + "Insert Slicer" => "Inserisci filtro dati", + "Insert a picture" => "Inserisci un'immagine", + "Insert a slicer to filter a table" => "Inserisci un filtro dati per filtrare una tabella", + "Insert an icon" => "Inserisci un'icona", + "Insert…" => "Inserisci…", + "Line or Area" => "Linee o aree", + "Link…" => "Collegamento…", + "Macros and scripts in this workbook (Alt+F8)" => "Macro e script in questa cartella di lavoro (Alt+F8)", + "Middle Align" => "Allinea al centro", + "More commands" => "Altri comandi", + "Move or Copy Sheet…" => "Sposta o copia foglio…", + "New sheet (⇧F11)" => "Nuovo foglio (⇧F11)", + "Next sheet" => "Foglio successivo", + "Page Breaks" => "Interruzioni di pagina", + "Paper Size" => "Dimensioni", + "Pick From Drop-down List…" => "Scegli da elenco a discesa…", + "Pie or Doughnut" => "Torta o anello", + "Previous sheet" => "Foglio precedente", + "Print Area" => "Area di stampa", + "Print Titles" => "Stampa titoli", + "Protect Workbook structure" => "Proteggi struttura della cartella di lavoro", + "Redo" => "Ripeti", + "Scatter or Bubble" => "Dispersione o bolle", + "Search and run any command" => "Cerca ed esegui qualsiasi comando", + "Search commands" => "Cerca comandi", + "Select and move ink and shapes" => "Seleziona e sposta tratti a penna e forme", + "Series…" => "Serie…", + "Share: export or save a copy" => "Condividi: esporta o salva una copia", + "Show Formulas (⌃`)" => "Mostra formule (⌃`)", + "Slicer" => "Filtro dati", + "Sort & Filter" => "Ordina e filtra", + "Spelling (F7)" => "Controllo ortografia (F7)", + "Statistic" => "Statistiche", + "Switch Row/Column" => "Inverti riga/colonna", + "Table Styles" => "Stili tabella", + "Text to Columns" => "Testo in colonne", + "The output range already holds data. Replace it with the report?" => { + "L'intervallo di output contiene già dei dati. Sostituirli con il report?" + } + "Top Align" => "Allinea in alto", + "Undo" => "Annulla", + "Undo list" => "Elenco azioni annullabili", + "Unhide Sheet…" => "Scopri foglio…", + "Up" => "Su", + "Version, contributors and the AI models that helped" => "Versione, collaboratori e modelli di IA che hanno contribuito", + "What-If Analysis" => "Analisi di simulazione", + "Zoom In" => "Ingrandisci", + "Zoom Out" => "Riduci", + "Zoom to 100%" => "Zoom al 100%", + "Zoom to Selection" => "Zoom sulla selezione", + "Zoom…" => "Zoom…", + "£ English (United Kingdom)" => "£ Inglese (Regno Unito)", + "¥ Japanese" => "¥ Giapponese", + "€ Euro" => "€ Euro", + "Tab|Insert" => "Inserisci", + "AutoSave" => "Salvataggio automatico", + "Insert\nSlicer" => "Inserisci\nfiltro dati", + "Pen\nBlack" => "Penna\nnera", + "Pen\nBlue" => "Penna\nblu", + "Pen\nRed" => "Penna\nrossa", + "Protect\nSheet" => "Proteggi\nfoglio", + "Watch\nWindow" => "Finestra\ncontrolli", + "Workbook\nStatistics" => "Statistiche\ncartella di lavoro", + // The PivotTable Fields task pane. + "PivotTable Fields" => "Campi tabella pivot", + "Choose fields to add to report:" => "Scegli i campi da aggiungere al report:", + "Use a field's menu to move it between areas:" => "Usa il menu di un campo per spostarlo tra le aree:", + "Filters" => "Filtri", + "Values" => "Valori", + "Move to Row Labels" => "Sposta in Etichette di riga", + "Move to Column Labels" => "Sposta in Etichette di colonna", + "Move to Report Filter" => "Sposta in Filtro rapporto", + "Move to Values" => "Sposta in Valori", + "Summarize by Sum" => "Riepiloga per somma", + "Summarize by Count" => "Riepiloga per conteggio", + "Summarize by Average" => "Riepiloga per media", + "Summarize by Max" => "Riepiloga per massimo", + "Summarize by Min" => "Riepiloga per minimo", + "Show as No Calculation" => "Mostra come nessun calcolo", + "Show as % of Grand Total" => "Mostra come % del totale complessivo", + "Show as Running Total" => "Mostra come totale parziale", + "Show as Rank" => "Mostra come rango", + "Group by Years" => "Raggruppa per anni", + "Group by Quarters" => "Raggruppa per trimestri", + "Group by Months" => "Raggruppa per mesi", + "Remove Field" => "Rimuovi campo", + "Refresh" => "Aggiorna", + "Calculated Field…" => "Campo calcolato…", + "Report Layout" => "Layout rapporto", + "Compact" => "Compatto", + "Tabular" => "Tabulare", + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/ja.rs b/crates/ui-egui/src/i18n/ja.rs new file mode 100644 index 000000000..487205fd6 --- /dev/null +++ b/crates/ui-egui/src/i18n/ja.rs @@ -0,0 +1,1104 @@ +//! Japanese translations for the interface strings in `i18n.rs`; labels follow Excel for Mac's +//! Japanese wording, and anything absent falls back to English. +//! +//! [`CORE`] is the shared reference catalog every language translates: the ribbon, sheet tabs, +//! widgets and the most common dialog labels. [`DIALOGS`] adds the dialog titles and labels, +//! message boxes, Backstage/File-view items, template names and native-menu strings the Brazilian +//! Portuguese catalog (`pt.rs`) covers on top of it. The two lists never overlap. + +/// English label → Japanese, the shared reference set every catalog covers. +pub(super) const CORE: &[(&str, &str)] = &[ + ("Paste", "貼り付け"), + ("Paste Values", "値の貼り付け"), + ("Paste Formulas", "数式の貼り付け"), + ("Paste Formatting", "書式の貼り付け"), + ("Transpose", "行列を入れ替え"), + ("Paste Link", "リンクの貼り付け"), + ("Paste Special…", "形式を選択して貼り付け…"), + ("Insert Copied Cells", "コピーしたセルの挿入"), + ("Insert Copied Cells…", "コピーしたセルの挿入…"), + ("Insert Cut Cells", "切り取ったセルの挿入"), + ("Insert Paste", "挿入貼り付け"), + ("Format Painter (double-click to keep it on)", "書式のコピー/貼り付け (ダブルクリックで固定)"), + ("Double Underline", "二重下線"), + ("Strikethrough", "取り消し線"), + ("Underline", "下線"), + ("Increase Font Size", "フォントの拡大"), + ("Decrease Font Size", "フォントの縮小"), + ("Wrap Text", "折り返して全体を表示"), + ("Merge & Center", "セルを結合して中央揃え"), + ("Merge Cells", "セルの結合"), + ("Merge Across", "横方向に結合"), + ("Unmerge Cells", "セル結合の解除"), + ("Fill Color", "塗りつぶしの色"), + ("Font Color", "フォントの色"), + ("Borders", "罫線"), + ("Top\nAlign", "上揃え"), + ("Middle\nAlign", "中央揃え (縦)"), + ("Bottom\nAlign", "下揃え"), + ("Left", "左"), + ("Right", "右"), + ("Center", "中央"), + ("Horizontal", "水平"), + ("Vertical Text", "縦書き"), + ("Decrease Indent", "インデントを減らす"), + ("Increase Indent", "インデントを増やす"), + ("Orientation", "方向"), + ("Page Layout|Orientation", "印刷の向き"), + ("Angle Counterclockwise", "左回りに回転"), + ("Angle Clockwise", "右回りに回転"), + ("Rotate Text Up", "文字列を上に回転"), + ("Rotate Text Down", "文字列を下に回転"), + ("Accounting Number Format", "通貨表示形式"), + ("Percent Style", "パーセント表示"), + ("Comma Style", "桁区切りスタイル"), + ("Increase Decimal", "小数点以下の桁数を増やす"), + ("Decrease Decimal", "小数点以下の桁数を減らす"), + ("More Accounting Formats…", "その他の通貨表示形式…"), + ("Conditional\nFormatting", "条件付き書式"), + ("Conditional Formatting", "条件付き書式"), + ("Format\nas Table", "テーブルとして書式設定"), + ("Cell\nStyles", "セルのスタイル"), + ("Format Cells…", "セルの書式設定…"), + ("Format Cell Alignment…", "セルの配置…"), + ("Format\nPane", "書式ウィンドウ"), + ("Format", "書式"), + ("Insert", "挿入"), + ("Insert Cells…", "セルの挿入…"), + ("Delete", "削除"), + ("Delete Cells…", "セルの削除…"), + ("Insert Sheet Rows", "シートの行を挿入"), + ("Insert Sheet Columns", "シートの列を挿入"), + ("Delete Sheet Rows", "シートの行を削除"), + ("Delete Sheet Columns", "シートの列を削除"), + ("Row Height…", "行の高さ…"), + ("AutoFit Row Height", "行の高さを自動調整"), + ("Column Width…", "列の幅…"), + ("AutoFit Column Width", "列の幅を自動調整"), + ("Default Width…", "標準の幅…"), + ("Hide Rows", "行を表示しない"), + ("Unhide Rows", "再表示"), + ("Hide Columns", "列の表示/非表示"), + ("Unhide Columns", "再表示"), + ("Lock Cell", "セルのロック"), + ("Clear", "クリア"), + ("Clear All", "すべてクリア"), + ("Clear Formats", "書式のクリア"), + ("Clear Contents", "数式と値のクリア"), + ("Clear Comments and Notes", "コメントとメモのクリア"), + ("Clear Hyperlinks", "ハイパーリンクのクリア"), + ("AutoSum", "オート SUM"), + ("Flash\nFill", "フラッシュ フィル"), + ("Flash Fill", "フラッシュ フィル"), + ("Fill", "フィル"), + ("Clear Print Area", "印刷範囲のクリア"), + ("Find &\nSelect", "検索と選択"), + ("Find…", "検索…"), + ("Replace…", "置換…"), + ("Go To…", "ジャンプ…"), + ("Go To Special…", "セルを選択…"), + ("PivotTable", "ピボットテーブル"), + ("Recommended\nCharts", "推奨グラフ"), + ("Table", "テーブル"), + ("Pictures", "画像"), + ("Shapes", "図形"), + ("Icons", "アイコン"), + ("Text\nBox", "テキスト ボックス"), + ("Comment", "コメント"), + ("New\nComment", "新しいコメント"), + ("New Note", "新しいメモ"), + ("Show/Hide Note", "メモの表示/非表示"), + ("Header &\nFooter", "ヘッダーとフッター"), + ("Text to\nColumns", "区切り位置"), + ("Link", "リンク"), + ("Symbol", "記号"), + ("Sparklines", "スパークライン"), + ("Checkbox", "チェックボックス"), + ("Insert checkboxes in the selected cells", "選択したセルにチェックボックスを挿入"), + ("Header & Footer", "ヘッダーとフッター"), + ("Draw with ink", "インクで描画"), + ("Eraser", "消しゴム"), + ("Ink to\nShape", "インクを図形に変換"), + ("Select\nObjects", "オブジェクトの選択"), + ("Themes", "テーマ"), + ("Margins", "余白"), + ("Left Margin", "左余白"), + ("Right Margin", "右余白"), + ("Top Margin", "上余白"), + ("Bottom Margin", "下余白"), + ("Header Margin", "ヘッダーの余白"), + ("Footer Margin", "フッターの余白"), + ("Size", "サイズ"), + ("Print\nArea", "印刷範囲"), + ("Set Print Area", "印刷範囲の設定"), + ("Breaks", "改ページ"), + ("Insert Page Break", "改ページの挿入"), + ("Remove Page Break", "改ページの解除"), + ("Reset All Page Breaks", "すべての改ページを解除"), + ("Print\nTitles", "印刷タイトル"), + ("Sheet\nRight-to-Left", "シートを右から左へ"), + ("Sheet Right-to-Left", "シートを右から左へ"), + ("Narrow", "狭い"), + ("Wide", "広い"), + ("Normal", "標準"), + ("Portrait", "縦"), + ("Landscape", "横"), + ("Custom Margins…", "ユーザー設定の余白…"), + ("Insert\nFunction", "関数の挿入"), + ("Name\nManager", "名前の管理"), + ("Define Name", "名前の定義"), + ("Use in Formula", "数式で使用"), + ("Create from Selection", "選択範囲から作成"), + ("Trace Precedents", "参照元のトレース"), + ("Trace Dependents", "参照先のトレース"), + ("Remove Arrows", "矢印の解除"), + ("Show Formulas", "数式の表示"), + ("Error Checking", "エラーチェック"), + ("Evaluate Formula", "数式の検証"), + ("Watch Window", "ウォッチ ウィンドウ"), + ("Calculation\nOptions", "計算方法の設定"), + ("Calculate Now", "再計算実行"), + ("Calculate Sheet", "シートの再計算"), + ("Automatic", "自動"), + ("Automatic Except for Data Tables", "データ テーブル以外は自動"), + ("Manual", "手動"), + ("Sort &\nFilter", "並べ替えとフィルター"), + ("Sort", "並べ替え"), + ("Sort A to Z", "昇順"), + ("Sort Z to A", "降順"), + ("Custom Sort…", "ユーザー設定の並べ替え…"), + ("Filter", "フィルター"), + ("Reapply", "再適用"), + ("Get Data\n(Text/CSV)", "データの取得 (テキスト/CSV)"), + ("Remove\nDuplicates", "重複の削除"), + ("Data\nValidation", "データの入力規則"), + ("Data Validation", "データの入力規則"), + ("Data Validation…", "データの入力規則…"), + ("Circle Invalid Data", "無効なデータをマーク"), + ("Clear Validation", "入力規則のクリア"), + ("Group", "グループ化"), + ("Ungroup", "グループ解除"), + ("Show Detail", "詳細データの表示"), + ("Hide Detail", "詳細を表示しない"), + ("Subtotal", "小計"), + ("Data\nAnalysis", "データ分析"), + ("Data Analysis", "データ分析"), + ("Solver", "ソルバー"), + ("What-If\nAnalysis", "What-If 分析"), + ("Data Table…", "データ テーブル…"), + ("Scenario Manager…", "シナリオ マネージャー…"), + ("Goal Seek…", "ゴール シーク…"), + ("Forecast\nSheet", "予測シート"), + ("Spelling", "スペルチェック"), + ("Check\nAccessibility", "アクセシビリティ チェック"), + ("Threaded Comments", "スレッド化されたコメント"), + ("Show\nComments", "コメントの表示"), + ("Previous", "前へ"), + ("Next", "次へ"), + ("Previous Comment", "前のコメント"), + ("Next Comment", "次のコメント"), + ("Show All Notes", "すべてのメモを表示"), + ("Convert to Comments", "コメントに変換"), + ("Protect\nWorkbook", "ブックの保護"), + ("Allow Edit\nRanges", "範囲の編集を許可"), + ("Allow Edit Ranges", "範囲の編集を許可"), + ("Unprotect\nSheet", "シート保護の解除"), + ("Protect Sheet…", "シートの保護…"), + ("Comments", "コメント"), + ("Notes", "メモ"), + ("Page Break\nPreview", "改ページ プレビュー"), + ("Page\nLayout", "ページ レイアウト"), + ("Formula Bar", "数式バー"), + ("Gridlines", "目盛線"), + ("Headings", "見出し"), + ("Zoom", "ズーム"), + ("100%", "100%"), + ("Zoom to\nSelection", "選択範囲を拡大"), + ("Freeze\nPanes", "ウィンドウ枠の固定"), + ("Freeze Panes", "ウィンドウ枠の固定"), + ("Freeze Top Row", "最上行の固定"), + ("Freeze First Column", "最左列の固定"), + ("Unfreeze Panes", "ウィンドウ枠固定の解除"), + ("Dark Mode", "ダーク モード"), + ("Display theme", "表示テーマ"), + ("Animations", "アニメーション"), + ( + "Glide the selection outline to the cell you move to instead of jumping there", + "選択範囲の枠を、移動先のセルまで滑らかに動かします(瞬時には切り替えません)", + ), + ("System", "システム"), + ("Light", "ライト"), + ("Dark", "ダーク"), + ("Interface language", "表示言語"), + ("Interface size", "表示サイズ"), + ("Auto", "自動"), + ("Drag to freeze columns", "ドラッグして列を固定"), + ("Drag to freeze rows", "ドラッグして行を固定"), + ("Command\nPalette", "コマンド パレット"), + ("Agent\nControl", "エージェント制御"), + ("Action\nJournal", "操作ジャーナル"), + ("About\nGridCraft", "GridCraft について"), + ("Share", "共有"), + ("Add Chart\nElement", "グラフ要素を追加"), + ("Change\nChart Type", "グラフの種類の変更"), + ("Switch\nRow/Column", "行/列の切り替え"), + ("Select\nData", "データの選択"), + ("Data Labels: None", "データ ラベル: なし"), + ("Data Labels: Show", "データ ラベル: 表示"), + ("Legend: None", "凡例: なし"), + ("Legend: Bottom", "凡例: 下"), + ("Legend: Top", "凡例: 上"), + ("Legend: Right", "凡例: 右"), + ("Gridlines: None", "目盛線: なし"), + ("Gridlines: Show", "目盛線: 表示"), + ("Chart\nTitle", "グラフ タイトル"), + ("Delete\nChart", "グラフの削除"), + ("Convert\nto Range", "範囲に変換"), + ("Table\nStyles", "テーブル スタイル"), + ("Top 10 Items", "上位 10 項目"), + ("Top 10%", "上位 10%"), + ("Bottom 10 Items", "下位 10 項目"), + ("Bottom 10%", "下位 10%"), + ("Above Average", "平均より上"), + ("Below Average", "平均より下"), + ("Clear Rules from Entire Sheet", "シート全体からルールをクリア"), + ("Clear Rules from Selected Cells", "選択したセルからルールをクリア"), + ("Constants", "定数"), + ("Data Bars", "データ バー"), + ("Color Scales", "カラー スケール"), + ("Icon Sets", "アイコン セット"), + ("Home", "ホーム"), + ("Draw", "描画"), + ("Page Layout", "ページ レイアウト"), + ("Formulas", "数式"), + ("Data", "データ"), + ("Review", "レビュー"), + ("View", "表示"), + ("Automate", "自動化"), + ("Table Design", "テーブル デザイン"), + ("Chart Design", "グラフ デザイン"), + ("Ready", "準備完了"), + ("Enter", "入力"), + ("Edit", "編集"), + ("Point", "ポイント"), + ("Calculate", "計算"), + ("Select destination and press Enter or choose Paste", "貼り付け先を選び、Enter キーを押すか [貼り付け] を選びます"), + ("General", "標準"), + ("Number", "数値"), + ("Currency", "通貨"), + ("Accounting", "会計"), + ("Date", "日付"), + ("Time", "時刻"), + ("Percentage", "パーセンテージ"), + ("Fraction", "分数"), + ("Scientific", "指数"), + ("Text", "文字列"), + ("Special", "特殊"), + ("Custom", "ユーザー設定"), + ("Short Date", "日付"), + ("Long Date", "長い日付"), + ("More Number Formats…", "その他の表示形式…"), + ("Financial", "財務"), + ("Logical", "論理"), + ("Date &\nTime", "日付/時刻"), + ("Lookup &\nReference", "検索/行列"), + ("Math &\nTrig", "数学/三角"), + ("More\nFunctions", "その他の関数"), + ("Sheet Options|View", "画面"), + ("Print", "印刷"), + ("Click to add data", "クリックしてデータを追加"), + ("Add header", "ヘッダーの追加"), + ("Add footer", "フッターの追加"), + ("(none)", "(なし)"), + ("Header", "ヘッダー"), + ("Footer", "フッター"), + ("Page\nNumber", "ページ\n番号"), + ("Number\nof Pages", "ページ数"), + ("Current\nDate", "現在の\n日付"), + ("Current\nTime", "現在の\n時刻"), + ("File\nPath", "ファイルの\nパス"), + ("File\nName", "ファイル名"), + ("Sheet\nName", "シート名"), + ("Go to\nHeader", "ヘッダーに\n移動"), + ("Go to\nFooter", "フッターに\n移動"), + ("Page Number", "ページ番号"), + ("Number of Pages", "ページ数"), + ("Current Date", "現在の日付"), + ("Current Time", "現在の時刻"), + ("File Path", "ファイルのパス"), + ("File Name", "ファイル名"), + ("Sheet Name", "シート名"), + ("Go to Header", "ヘッダーに移動"), + ("Different First Page", "先頭ページのみ別指定"), + ("Different Odd & Even Pages", "奇数/偶数ページ別指定"), + ("Go to Footer", "フッターに移動"), + ("Ruler", "ルーラー"), + ("File", "ファイル"), + ("Back", "戻る"), + ("New", "新規"), + ("Open", "開く"), + ("Info", "情報"), + ("Save", "上書き保存"), + ("Save As", "名前を付けて保存"), + ("Export", "エクスポート"), + ("Close", "閉じる"), + ("Options", "オプション"), + ("Blank workbook", "空白のブック"), + ("Recent", "最近使ったアイテム"), + ("No recent workbooks yet.", "最近使ったブックはまだありません。"), + ("More workbooks", "その他のブック"), + ("Modified", "更新日時"), + ("Not available", "利用できません"), + ("Just now", "たった今"), + ("Yesterday", "昨日"), + ("{n} min ago", "{n} 分前"), + ("{n} h ago", "{n} 時間前"), + ("{n} days ago", "{n} 日前"), + ("{n} weeks ago", "{n} 週間前"), + ("{n} months ago", "{n} か月前"), + ("{n} years ago", "{n} 年前"), + ("Browse…", "参照…"), + ("Not saved yet", "まだ保存されていません"), + ("Location", "場所"), + ("Sheets", "シート"), + ("Protect Workbook", "ブックの保護"), + ( + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted.", + "シートの構成はロックされています。シートの追加、移動、名前の変更、削除はできません。", + ), + ( + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted.", + "シートの構成をロックして、シートの追加、移動、名前の変更、削除をできないようにします。", + ), + ("Properties", "プロパティ"), + ("Title", "タイトル"), + ("Subject", "件名"), + ("Author", "作成者"), + ("Company", "会社名"), + ("Keywords", "キーワード"), + ("Description", "説明"), + ("No workbook is open.", "ブックが開かれていません。"), + ("Save as type", "ファイルの種類"), + ("Excel Workbook (*.xlsx)", "Excel ブック (*.xlsx)"), + ("CSV UTF-8 (Comma delimited) (*.csv)", "CSV UTF-8 (コンマ区切り) (*.csv)"), + ("Web Page (*.html)", "Web ページ (*.html)"), + ("PDF (*.pdf)", "PDF ファイル (*.pdf)"), + ("Download", "ダウンロード"), + ( + "A CSV file, web page or PDF is a copy: the workbook keeps its own file.", + "CSV ファイル、Web ページ、PDF はコピーです。ブックは元のファイルのままです。", + ), + ("Save the workbook under another name or in another folder.", "ブックを別の名前または別のフォルダーに保存します。"), + ("Print Active Sheets", "作業中のシートを印刷"), + ("Print Entire Workbook", "ブック全体を印刷"), + ("Fit Sheet on One Page", "シートを 1 ページに印刷"), + ("Page Setup…", "ページ設定…"), + ("Page {page} of {pages}", "{page} / {pages} ページ"), + ("Nothing to print.", "印刷する内容がありません。"), + ("Previous page", "前のページ"), + ("Next page", "次のページ"), + ("Create PDF", "PDF の作成"), + ("Save the sheet as a PDF document that keeps its page layout.", "ページ レイアウトを保ったまま、シートを PDF ドキュメントとして保存します。"), + ("Change File Type", "ファイルの種類の変更"), + ("CSV (Comma delimited)", "CSV (コンマ区切り)"), + ("Save the active sheet as comma-separated text.", "作業中のシートをコンマ区切りのテキストとして保存します。"), + ("Web Page (.html)", "Web ページ (.html)"), + ("Save the workbook as a web page.", "ブックを Web ページとして保存します。"), + ("Options|General", "全般"), + ("Options|Save", "保存"), + ("Show formula bar", "数式バーを表示する"), + ("Enable AutoComplete for cell values", "セルの値にオートコンプリートを使用する"), + ("Save .xlsx workbooks automatically after every change", "変更のたびに .xlsx ブックを自動的に保存する"), + ("Workbook calculation", "ブックの計算"), + ("Enable iterative calculation", "反復計算を行う"), + ("Calculation settings are saved with the workbook.", "計算の設定はブックと共に保存されます。"), +]; + +/// English label → Japanese for the dialog, message, Backstage and menu strings beyond [`CORE`]. +pub(super) const DIALOGS: &[(&str, &str)] = &[ + ("OK", "OK"), + ("Cancel", "キャンセル"), + ("Don't Save", "保存しない"), + ("Open…", "開く…"), + ("Show password", "パスワードの表示"), + ("Start a new workbook", "新しいブックの作成"), + ("Household Budget", "家計簿"), + ("Quarterly Sales Dashboard", "四半期売上ダッシュボード"), + ("Gradebook", "成績表"), + ("this workbook", "このブック"), + ("This workbook", "このブック"), + ("Do you want to save the changes you made to {title}?", "{title} への変更を保存しますか?"), + ("Save a copy as .{format}", ".{format} としてコピーを保存"), + ("Select a chart first.", "先にグラフを選択してください。"), + ("Text Box", "テキスト ボックス"), + ("Select Data", "データの選択"), + ("Row Height", "行の高さ"), + ("Column Width", "列の幅"), + ("Standard Width", "標準の幅"), + ("Rename Sheet", "シート名の変更"), + ("Move or Copy", "移動またはコピー"), + ("Protect Sheet", "シートの保護"), + ("Protect Structure and Windows", "構造とウィンドウの保護"), + ("Unprotect Workbook", "ブック保護の解除"), + ("Unprotect Sheet", "シート保護の解除"), + ("Password", "パスワード"), + ("Unhide", "再表示"), + ("Paste Special", "形式を選択して貼り付け"), + ("Series", "数列"), + ("New Comment", "新しいコメント"), + ("Insert Hyperlink", "ハイパーリンクの挿入"), + ("Create Sparklines", "スパークラインの作成"), + ("Page Setup", "ページ設定"), + ("Convert Text to Columns", "区切り位置指定ウィザード"), + ("Remove Duplicates", "重複の削除"), + ("Goal Seek", "ゴール シーク"), + ("Create Forecast Worksheet", "予測シートの作成"), + ("Solver Parameters", "ソルバー パラメーター"), + ("Solver Results", "ソルバーの結果"), + ("Edit Name", "名前の編集"), + ("New Name", "新しい名前"), + ("Format Cells", "セルの書式設定"), + ("Formula Builder", "数式ビルダー"), + ("Find and Replace", "検索と置換"), + ("Go To", "ジャンプ"), + ("Insert Calculated Field", "計算のフィールドの挿入"), + ("Go To Special", "セルを選択"), + ("Name Manager", "名前の管理"), + ("Conditional Formatting Rules Manager", "条件付き書式ルールの管理"), + ("Search Commands", "コマンドの検索"), + ("Agent Control", "エージェント制御"), + ("About GridCraft", "GridCraft について"), + ("Insert Chart", "グラフの挿入"), + ("Select Data Source", "データ ソースの選択"), + ("Action Journal", "操作ジャーナル"), + ("Macros", "マクロ"), + ("Workbook Statistics", "ブックの統計情報"), + ("Accessibility", "アクセシビリティ"), + ("Chart Title", "グラフ タイトル"), + ("Place Picture in Cell", "セルに画像を配置"), + ("Place Picture over Cells", "セルの上に画像を配置"), + ("Pick From List", "リストから選択"), + ("Save a Copy", "コピーを保存"), + ("Save Changes?", "変更を保存しますか?"), + ("Shift cells right", "セルを右に移動"), + ("Shift cells down", "セルを下に移動"), + ("Shift cells left", "セルを左に移動"), + ("Shift cells up", "セルを上に移動"), + ("Entire row", "行全体"), + ("Entire column", "列全体"), + ("Row height (pixels):", "行の高さ (ピクセル):"), + ("Column width (characters):", "列の幅 (文字数):"), + ("Standard column width (pixels):", "標準の列幅 (ピクセル):"), + ("Name:", "名前:"), + ("Before sheet (position, 0 = first):", "シートの前 (位置、0 = 先頭):"), + ("Create a copy", "コピーを作成する"), + ("Sheets: {sheets}", "シート: {sheets}"), + ("Password (optional):", "パスワード (省略可能):"), + ("Password:", "パスワード:"), + ("Allow all users of this sheet to:", "このシートのすべてのユーザーに許可する操作:"), + ("Format cells", "セルの書式設定"), + ("Format columns", "列の書式設定"), + ("Format rows", "行の書式設定"), + ("Insert rows", "行の挿入"), + ("Delete rows", "行の削除"), + ("Use AutoFilter", "オートフィルターを使用する"), + (" (password, unlocked)", " (パスワード、ロック解除)"), + (" (password)", " (パスワード)"), + ("No ranges yet.", "範囲はまだありません。"), + ("Ranges that stay editable when the sheet is protected:", "シートが保護されている間も編集できる範囲:"), + ("Action", "操作"), + ("Modify", "変更"), + ("Unlock with password", "パスワードでロック解除"), + ("Title:", "タイトル:"), + ("Refers to cells:", "参照先:"), + ("Range password:", "範囲のパスワード:"), + ("New title (Modify):", "新しいタイトル (変更):"), + ("Remove the password (Modify)", "パスワードの削除 (変更)"), + ("'{file}' is protected.", "'{file}' は保護されています。"), + ("Unhide sheet:", "再表示するシート:"), + ("Hidden: {sheets}", "非表示: {sheets}"), + ("All", "すべて"), + ("Formulas (F)", "数式 (F)"), + ("Values (V)", "値 (V)"), + ("Formats (T)", "書式 (T)"), + ("Comments and notes (C)", "コメントとメモ (C)"), + ("Validation", "入力規則"), + ("All except borders", "罫線を除くすべて"), + ("Column widths", "列幅"), + ("Formulas and number formats", "数式と数値の書式"), + ("Values and number formats", "値と数値の書式"), + ("Operation", "演算"), + ("Add", "加算"), + ("Subtract", "減算"), + ("Multiply", "乗算"), + ("Divide", "除算"), + ("Skip blanks", "空白セルを無視する"), + ("Transpose (E)", "行列を入れ替える (E)"), + ("Series in", "方向"), + ("Columns", "列"), + ("Rows", "行"), + ("Type", "種類"), + ("Linear", "線形"), + ("Growth", "等比"), + ("Date unit", "日付単位"), + ("Day", "日"), + ("Weekday", "曜日"), + ("Month", "月"), + ("Year", "年"), + ("Step value:", "増分値:"), + ("Stop value:", "停止値:"), + ("Start a conversation:", "会話を開始:"), + ("Note:", "メモ:"), + ("Display:", "表示文字列:"), + ("Link to (web address, e-mail or Sheet!A1):", "リンク先 (Web アドレス、電子メール アドレス、または Sheet!A1):"), + ("ScreenTip:", "スクリーン ヒント:"), + ("Data Range:", "データ範囲:"), + ("Location Range:", "配置先:"), + ("Markers", "マーカー"), + ("Footer:", "フッター:"), + ("Left margin (in):", "左余白 (インチ):"), + ("Right margin (in):", "右余白 (インチ):"), + ("Top margin (in):", "上余白 (インチ):"), + ("Bottom margin (in):", "下余白 (インチ):"), + ("Header (in):", "ヘッダー (インチ):"), + ("Footer (in):", "フッター (インチ):"), + ("Tab", "タブ"), + ("Semicolon", "セミコロン"), + ("Comma", "コンマ"), + ("Space", "スペース"), + ("Other:", "その他:"), + ("Treat consecutive delimiters as one", "連続した区切り文字は 1 文字として扱う"), + ("Destination:", "表示先:"), + ("My data has headers", "先頭行をデータの見出しとして使用する"), + ("Columns (blank = all, e.g. A,C):", "列 (空白 = すべて、例: A,C):"), + ("Timeline range (blank: first column of the selection):", "タイムラインの範囲 (空白: 選択範囲の最初の列):"), + ("Values range (blank: second column of the selection):", "値の範囲 (空白: 選択範囲の 2 番目の列):"), + ("Confidence interval", "信頼区間"), + ("Confidence level (%):", "信頼水準 (%):"), + ("Seasonality (auto, 0 for none, or a season length):", "周期性 (自動、なしの場合は 0、または 1 周期の長さ):"), + ("Fill missing points using", "欠落しているポイントの補完方法"), + ("Interpolation", "補間"), + ("Zeros", "ゼロ"), + ("Aggregate duplicates using", "重複を集計する方法"), + ("Average", "平均"), + ("Count", "個数"), + ("CountA", "空白を除く個数"), + ("Max", "最大値"), + ("Median", "中央値"), + ("Min", "最小値"), + ("Sum", "合計"), + ("Product", "積"), + ("Include forecast statistics", "予測の統計情報を含める"), + ("Chart", "グラフ"), + ("Line chart", "折れ線グラフ"), + ("Column chart", "縦棒グラフ"), + ("At each change in (column letter):", "基準 (列記号):"), + ("Use function", "集計の方法"), + ("Add subtotal to (columns, e.g. C,D):", "集計するフィールド (列、例: C,D):"), + ("Magnification", "倍率"), + ("Custom (%):", "ユーザー設定 (%):"), + ("Scope (Workbook or sheet name):", "範囲 (ブックまたはシート名):"), + ("Comment:", "コメント:"), + ("Refers to:", "参照先:"), + ("Allow", "入力値の種類"), + ("Any value", "任意の値"), + ("Whole number", "整数"), + ("Decimal", "小数"), + ("List", "リスト"), + ("Text length", "文字列の長さ"), + ("between", "次の値の間"), + ("not between", "次の値の間以外"), + ("equal to", "指定の値に等しい"), + ("not equal to", "指定の値に等しくない"), + ("greater than", "指定の値より大きい"), + ("less than", "指定の値より小さい"), + ("greater than or equal to", "指定の値以上"), + ("less than or equal to", "指定の値以下"), + ("Minimum / Source / Formula:", "最小値 / 元の値 / 数式:"), + ("Maximum:", "最大値:"), + ("Ignore blank", "空白を無視する"), + ("In-cell dropdown", "セル内のドロップダウン リスト"), + ("Input message:", "入力メッセージ:"), + ("Error style", "エラー メッセージのスタイル"), + ("Stop", "停止"), + ("Warning", "警告"), + ("Information", "情報"), + ("Error message:", "エラー メッセージ:"), + ("Format cells that are (value):", "セルの値が次の値のとき書式設定する (値):"), + ("and:", "と:"), + ("Format cells that contain the text:", "次の文字列を含むセルを書式設定:"), + ("Format cells that contain a date occurring:", "日付が次の期間にあるセルを書式設定:"), + ("Today", "今日"), + ("Tomorrow", "明日"), + ("In the last 7 days", "過去 7 日間"), + ("Last week", "先週"), + ("This week", "今週"), + ("Next week", "来週"), + ("Last month", "先月"), + ("This month", "今月"), + ("Next month", "来月"), + ("Format values where this formula is true:", "数式を使用して、書式設定するセルを決定:"), + ("with", "次の書式を適用"), + ("Light Red Fill with Dark Red Text", "濃い赤の文字、薄い赤の背景"), + ("Yellow Fill with Dark Yellow Text", "濃い黄色の文字、黄色の背景"), + ("Green Fill with Dark Green Text", "濃い緑の文字、緑の背景"), + ("Light Red Fill", "薄い赤の背景"), + ("Red Text", "赤の文字"), + ("Red Border", "赤い枠線"), + ("Formula:", "数式:"), + ("Select", "選択"), + ("Blanks", "空白セル"), + ("Errors", "エラー値"), + ("Numbers", "数値"), + ("Current region", "現在の領域"), + ("Last cell", "最後のセル"), + ("Visible cells only", "可視セルのみ"), + ("Conditional formats", "条件付き書式"), + ("Data validation", "入力規則"), + ("Horizontal axis title:", "横軸ラベル:"), + ("Vertical axis title:", "縦軸ラベル:"), + ("No picture selected", "画像が選択されていません"), + ("Picture file path (PNG or JPEG):", "画像ファイルのパス (PNG または JPEG):"), + ("Description (optional):", "説明 (省略可能):"), + ("Fits inside the selected cell and moves with its content.", "選択したセル内に収まり、内容と一緒に移動します。"), + ("Choose a PNG or JPEG no larger than 16 MB.", "16 MB 以下の PNG または JPEG を選択してください。"), + ("About", "バージョン情報"), + ("Contributors", "貢献者"), + ("Models", "モデル"), + ("Version {version}", "バージョン {version}"), + ("Join the ArtCraft Discord", "ArtCraft Discord に参加"), + ("This workbook has no scripts or macros.", "このブックにはスクリプトもマクロもありません。"), + ("(unnamed)", "(名前なし)"), + ("— VBA project (preserved, not run)", "— VBA プロジェクト (保持されますが、実行されません)"), + ("— 1 step", "— 1 ステップ"), + ("— {steps} steps", "— {steps} ステップ"), + ("Alignment", "配置"), + ("Font", "フォント"), + ("Border", "罫線"), + ("Format Cells|Fill", "塗りつぶし"), + ("Protection", "保護"), + ("Category:", "分類:"), + ("Sample", "サンプル"), + ("Type (custom format code):", "種類 (ユーザー定義の書式記号):"), + ("Vertical", "縦位置"), + ("Justify", "両端揃え"), + ("Center Across Selection", "選択範囲内で中央"), + ("Distributed", "均等割り付け"), + ("Top", "上"), + ("Bottom", "下"), + ("Indent", "インデント"), + ("Orientation (degrees)", "方向 (度)"), + ("Wrap text", "折り返して全体を表示する"), + ("Shrink to fit", "縮小して全体を表示する"), + ("Bold", "太字"), + ("Italic", "斜体"), + ("None", "なし"), + ("Single", "下線"), + ("Double", "二重下線"), + ("Single Accounting", "会計 (一重)"), + ("Double Accounting", "会計 (二重)"), + ("Superscript", "上付き"), + ("Subscript", "下付き"), + ("Color:", "色:"), + ("Outline", "外枠"), + ("Diagonal ↘", "斜め (右下がり)"), + ("Diagonal ↗", "斜め (右上がり)"), + ("none", "なし"), + ("thin", "細線"), + ("medium", "中線"), + ("thick", "太線"), + ("dashed", "破線"), + ("dotted", "点線"), + ("double", "二重線"), + ("Background Color:", "背景色:"), + ("Locked", "ロック"), + ("Hidden", "非表示"), + ("Search:", "検索:"), + ("e.g. lookup, average, date", "例: 検索、平均、日付"), + ("Date & Time", "日付/時刻"), + ("Lookup & Reference", "検索/行列"), + ("Math & Trig", "数学/三角"), + ("Statistical", "統計"), + ("Engineering", "エンジニアリング"), + ("Database", "データベース"), + ("Compatibility", "互換性"), + ("Web", "Web"), + ("Cube", "キューブ"), + ("Add-in and Automation", "アドインと自動化"), + ("Find", "検索"), + ("Replace", "置換"), + ("Find what:", "検索する文字列:"), + ("Replace with:", "置換後の文字列:"), + ("Match case", "大文字と小文字を区別する"), + ("Match entire cell contents", "セル内容が完全に同一である場合のみ検索"), + ("Within workbook", "ブック内"), + ("Replace All", "すべて置換"), + ("Find All", "すべて検索"), + ("Find Next", "次を検索"), + ("All done. We made {count} replacements.", "完了しました。{count} 件を置換しました。"), + ("{count} cell(s) found", "{count} 個のセルが見つかりました"), + ("Reference:", "参照:"), + ("Special…", "セルを選択…"), + ("My list has headers", "先頭行をデータの見出しとして使用する"), + ("Sort by", "最優先されるキー"), + ("Then by", "次に優先されるキー"), + ("Cell Values", "セルの値"), + ("Cell Color", "セルの色"), + ("A to Z", "昇順"), + ("Z to A", "降順"), + ("+ Add Level", "+ レベルの追加"), + ("New…", "新規作成…"), + ("Edit…", "編集…"), + ("Name", "名前"), + ("Value", "値"), + ("Refers To", "参照先"), + ("Scope", "範囲"), + ("Workbook", "ブック"), + ("No names defined", "定義された名前はありません"), + ("Recommended Charts", "推奨グラフ"), + ("All Charts", "すべてのグラフ"), + ("Clustered Column", "集合縦棒"), + ("Stacked Column", "積み上げ縦棒"), + ("100% Stacked Column", "100% 積み上げ縦棒"), + ("Clustered Bar", "集合横棒"), + ("Stacked Bar", "積み上げ横棒"), + ("100% Stacked Bar", "100% 積み上げ横棒"), + ("Line", "折れ線"), + ("Line with Markers", "マーカー付き折れ線"), + ("Stacked Line", "積み上げ折れ線"), + ("Pie", "円"), + ("Doughnut", "ドーナツ"), + ("Area", "面"), + ("Stacked Area", "積み上げ面"), + ("Scatter", "散布図"), + ("Scatter with Lines", "直線付き散布図"), + ("Radar", "レーダー"), + ("Histogram", "ヒストグラム"), + ("Waterfall", "ウォーターフォール"), + ("Funnel", "じょうご"), + ("Combo", "複合"), + ("Chart data range:", "グラフ データ範囲:"), + ("Legend Entries (Series)", "凡例項目 (系列)"), + ("Series{n}", "系列{n}"), + ("Keep", "残す"), + ("Remove", "削除"), + ("Horizontal (Category) Axis Labels:", "横軸 (項目) ラベル:"), + ("There are no conditional formatting rules on this sheet.", "このシートには条件付き書式ルールがありません。"), + ("applies to", "適用先"), + ("Type a command, e.g. freeze, chart, bold…", "コマンドを入力 (例: ウィンドウ枠の固定、グラフ、太字)…"), + ("Set cell:", "目的セル:"), + ("To value:", "目標値:"), + ("By changing cell:", "変化させるセル:"), + ("Goal Seeking found a solution: {value}", "ゴール シークで解が見つかりました: {value}"), + ("Analysis Tools", "分析ツール"), + ("Anova: Single Factor", "分散分析: 一元配置"), + ("Correlation", "相関"), + ("Covariance", "共分散"), + ("Descriptive Statistics", "基本統計量"), + ("Exponential Smoothing", "指数平滑"), + ("F-Test Two-Sample for Variances", "F 検定: 2 標本を使った分散の検定"), + ("Moving Average", "移動平均"), + ("Rank and Percentile", "順位と百分位数"), + ("Regression", "回帰"), + ("t-Test: Paired Two Sample for Means", "t 検定: 一対の標本による平均の検定"), + ("t-Test: Two-Sample Assuming Equal Variances", "t 検定: 等分散を仮定した 2 標本による検定"), + ("t-Test: Two-Sample Assuming Unequal Variances", "t 検定: 非等分散を仮定した 2 標本による検定"), + ("Output options", "出力オプション"), + ("Output Range:", "出力範囲:"), + ("New Worksheet Ply:", "新規ワークシート:"), + ("Grouped By:", "グループ化の基準:"), + ("Labels in first row", "先頭行をラベルとして使用"), + ("Input Range:", "入力範囲:"), + ("Variable 1 Range:", "変数 1 の範囲:"), + ("Variable 2 Range:", "変数 2 の範囲:"), + ("Summary statistics", "概要統計"), + ("Confidence Level for Mean (%), blank for none:", "平均の信頼度 (%、なしの場合は空白):"), + ("Kth Largest (blank for none):", "K 番目に大きい値 (なしの場合は空白):"), + ("Kth Smallest (blank for none):", "K 番目に小さい値 (なしの場合は空白):"), + ("Bin Range (blank for automatic bins):", "級の範囲 (空白の場合は自動):"), + ("Pareto (sorted histogram)", "パレート図 (並べ替えられたヒストグラム)"), + ("Cumulative Percentage", "累積比率"), + ("Alpha:", "アルファ:"), + ("Input Y Range:", "入力 Y 範囲:"), + ("Input X Range:", "入力 X 範囲:"), + ("Constant is Zero", "定数に 0 を使用"), + ("Confidence Level (%):", "信頼度 (%):"), + ("Residuals", "残差"), + ("Standardized Residuals", "標準化された残差"), + ("Normal Probability", "正規確率グラフ"), + ("Interval:", "間隔:"), + ("Standard Errors", "標準誤差"), + ("Damping factor:", "減衰係数:"), + ("Hypothesized Mean Difference:", "仮説平均との差異:"), + ("Set Objective:", "目的セルの設定:"), + ("To:", "目標値:"), + ("Value Of:", "値:"), + ("By Changing Variable Cells:", "変数セルの変更:"), + ("Subject to the Constraints:", "制約条件の対象:"), + ("Make Unconstrained Variables Non-Negative", "制約のない変数を非負数にする"), + ("Select a Solving Method:", "解決方法の選択:"), + ("GRG Nonlinear", "GRG 非線形"), + ("Solve", "解決"), + ("Keep Solver Solution", "ソルバー解を保存"), + ("Restore Original Values", "元の値を復元"), + ("The spelling check is complete for the entire sheet.", "シート全体のスペル チェックが完了しました。"), + ("Not in Dictionary ({cell}):", "辞書にない単語 ({cell}):"), + ("Suggestions:", "候補:"), + ("(No suggestions)", "(候補なし)"), + ("Ignore Once", "1 回無視"), + ("Add to Dictionary", "辞書に追加"), + ("Change", "変更"), + ("Change All", "すべて変更"), + ("$ English (United States)", "$ 英語 (米国)"), + ("Add Chart Element", "グラフ要素の追加"), + ("Align Left", "左揃え"), + ("Align Right", "右揃え"), + ("Bottom Align", "下揃え"), + ("Calculate Now (F9)", "再計算実行 (F9)"), + ("Calculate Sheet (⇧F9)", "シートの再計算 (⇧F9)"), + ("Calculation Options", "計算方法の設定"), + ("Cell Styles", "セルのスタイル"), + ("Change Chart Type", "グラフの種類の変更"), + ("Check Accessibility", "アクセシビリティ チェック"), + ("Clear Filter", "フィルターのクリア"), + ("Column or Bar", "縦棒または横棒"), + ("Comments pane", "コメント ウィンドウ"), + ("Convert the last ink stroke to a shape", "最後のインクのストロークを図形に変換"), + ("Convert to Range", "範囲に変換"), + ("Copy", "コピー"), + ("Custom Sort", "ユーザー設定の並べ替え"), + ("Cut", "切り取り"), + ("Define Name…", "名前の定義…"), + ("Delete Comment", "コメントの削除"), + ("Delete Sheet", "シートの削除"), + ("Delete chart", "グラフの削除"), + ("Delete…", "削除…"), + ("Dismiss", "閉じる"), + ("Down", "下へ"), + ("Edit chart title", "グラフ タイトルの編集"), + ("Erase ink strokes", "インクのストロークを消去"), + ("Every command run in this session (replayable)", "このセッションで実行されたすべてのコマンド (再生可能)"), + ("Expand formula bar", "数式バーの展開"), + ("Filter by Selected Cell's Value", "選択したセルの値でフィルター"), + ("Find & Select", "検索と選択"), + ("Forecast Sheet", "予測シート"), + ("Forecast end (date or number; blank: a third of the history):", "予測の終了 (日付または数値、空白の場合は履歴の 3 分の 1):"), + ("Format Chart pane", "グラフの書式設定ウィンドウ"), + ("Format as Table", "テーブルとして書式設定"), + ("Hide", "非表示"), + ("Hide Sheet", "シートの非表示"), + ("Hierarchy & more", "階層とその他"), + ("Highlighter", "蛍光ペン"), + ("How agents drive GridCraft (MCP / control channel)", "エージェントによる GridCraft の操作 (MCP / 制御チャネル)"), + ("Import a text or CSV file", "テキストまたは CSV ファイルのインポート"), + ("Insert Function", "関数の挿入"), + ("Insert Function (⇧F3)", "関数の挿入 (⇧F3)"), + ("Insert Link", "リンクの挿入"), + ("Insert Sheet", "シートの挿入"), + ("Insert Slicer", "スライサーの挿入"), + ("Insert a picture", "画像の挿入"), + ("Insert a slicer to filter a table", "テーブルをフィルターするスライサーの挿入"), + ("Insert an icon", "アイコンの挿入"), + ("Insert…", "挿入…"), + ("Line or Area", "折れ線または面"), + ("Link…", "リンク…"), + ("Macros and scripts in this workbook (Alt+F8)", "このブックのマクロとスクリプト (Alt+F8)"), + ("Middle Align", "中央揃え"), + ("More commands", "その他のコマンド"), + ("Move or Copy Sheet…", "シートの移動またはコピー…"), + ("New sheet (⇧F11)", "新しいシート (⇧F11)"), + ("Next sheet", "次のシート"), + ("Page Breaks", "改ページ"), + ("Paper Size", "用紙サイズ"), + ("Pick From Drop-down List…", "ドロップダウン リストから選択…"), + ("Pie or Doughnut", "円またはドーナツ"), + ("Previous sheet", "前のシート"), + ("Print Area", "印刷範囲"), + ("Print Titles", "印刷タイトル"), + ("Protect Workbook structure", "ブックの構造の保護"), + ("Redo", "やり直し"), + ("Scatter or Bubble", "散布図またはバブル"), + ("Search and run any command", "任意のコマンドを検索して実行"), + ("Search commands", "コマンドの検索"), + ("Select and move ink and shapes", "インクと図形の選択と移動"), + ("Series…", "数列…"), + ("Share: export or save a copy", "共有: エクスポートまたはコピーの保存"), + ("Show Formulas (⌃`)", "数式の表示 (⌃`)"), + ("Slicer", "スライサー"), + ("Sort & Filter", "並べ替えとフィルター"), + ("Spelling (F7)", "スペル チェック (F7)"), + ("Statistic", "統計"), + ("Switch Row/Column", "行/列の切り替え"), + ("Table Styles", "テーブル スタイル"), + ("Text to Columns", "区切り位置"), + ("The output range already holds data. Replace it with the report?", "出力範囲には既にデータが入っています。レポートで置き換えますか?"), + ("Top Align", "上揃え"), + ("Undo", "元に戻す"), + ("Undo list", "元に戻す操作の一覧"), + ("Unhide Sheet…", "シートの再表示…"), + ("Up", "上へ"), + ("Version, contributors and the AI models that helped", "バージョン、貢献者、支援した AI モデル"), + ("What-If Analysis", "What-If 分析"), + ("Zoom In", "拡大"), + ("Zoom Out", "縮小"), + ("Zoom to 100%", "100% で表示"), + ("Zoom to Selection", "選択範囲に合わせる"), + ("Zoom…", "ズーム…"), + ("£ English (United Kingdom)", "£ 英語 (英国)"), + ("¥ Japanese", "¥ 日本語"), + ("€ Euro", "€ ユーロ"), + ("Tab|Insert", "挿入"), + ("AutoSave", "自動保存"), + ("Insert\nSlicer", "スライサーの\n挿入"), + ("Pen\nBlack", "ペン\n黒"), + ("Pen\nBlue", "ペン\n青"), + ("Pen\nRed", "ペン\n赤"), + ("Protect\nSheet", "シートの\n保護"), + ("Watch\nWindow", "ウォッチ\nウィンドウ"), + ("Workbook\nStatistics", "ブックの\n統計情報"), +]; + +/// Translates an interface label; `None` for a label the catalog does not know, so `i18n.rs` can +/// fall back to English. Dialog strings come first, the shared core second. +pub(super) fn translate(text: &str) -> Option<&'static str> { + DIALOGS.iter().chain(CORE).find(|(english, _)| *english == text).map(|(_, translated)| *translated) +} + +#[cfg(test)] +mod tests { + use std::collections::HashSet; + + use super::*; + + /// Every key the catalog holds, `DIALOGS` first. + fn catalog_keys() -> impl Iterator { + DIALOGS.iter().chain(CORE).map(|(english, _)| *english) + } + + /// The decoded value of the Rust string literal starting at byte `start` (its opening `"`), and + /// the byte index just past its closing quote. Escapes (`\n`, `\"`, `\\`, `\t`, `\u{…}`) are + /// decoded, so the keys compare equal to the ones in the tables above. + fn string_literal(source: &str, start: usize) -> Option<(String, usize)> { + if !source[start..].starts_with('"') { + return None; + } + let mut value = String::new(); + let mut chars = source[start + 1..].char_indices(); + while let Some((offset, c)) = chars.next() { + match c { + '"' => return Some((value, start + 1 + offset + 1)), + '\\' => match chars.next().map(|(_, c)| c) { + Some('n') => value.push('\n'), + Some('t') => value.push('\t'), + Some('r') => value.push('\r'), + Some('0') => value.push('\0'), + Some('\\') => value.push('\\'), + Some('"') => value.push('"'), + Some('\'') => value.push('\''), + Some('u') => { + let mut hex = String::new(); + for (_, c) in chars.by_ref() { + if c == '}' { + break; + } + if c != '{' { + hex.push(c); + } + } + if let Some(c) = u32::from_str_radix(&hex, 16).ok().and_then(char::from_u32) { + value.push(c); + } + } + // A line continuation (backslash, newline, indentation) adds nothing. + _ => {} + }, + _ => value.push(c), + } + } + None + } + + /// Every key `pt.rs` translates, read out of its source with a small scanner: a match arm is a + /// string literal whose `=>` is followed by another string literal, which covers the block form + /// (`"key" => { "value" }`) as well. Parsing the real source keeps the two catalogs from + /// drifting apart again instead of checking a remembered count. + fn portuguese_keys() -> Vec { + let source = include_str!("pt.rs"); + let mut literals: Vec<(String, usize, usize)> = Vec::new(); + let mut i = 0; + while i < source.len() { + let rest = &source[i..]; + if rest.starts_with("//") { + i += rest.find('\n').unwrap_or(rest.len()); + continue; + } + if rest.starts_with('"') { + let (value, end) = string_literal(source, i).unwrap(); + literals.push((value, i, end)); + i = end; + continue; + } + i += rest.chars().next().unwrap().len_utf8(); + } + let mut keys = Vec::new(); + for pair in literals.windows(2) { + let (key, _, end) = &pair[0]; + let start = pair[1].1; + let gap = source[*end..start].trim(); + if gap == "=>" || gap == "=> {" { + keys.push(key.clone()); + } + } + keys + } + + #[test] + fn keys_are_unique_and_every_value_is_translated() { + let mut seen = HashSet::new(); + for (english, japanese) in DIALOGS.iter().chain(CORE) { + assert!(!japanese.is_empty(), "empty translation for {english:?}"); + assert!(japanese.chars().any(|c| !c.is_whitespace()), "blank translation for {english:?}"); + assert!(seen.insert(*english), "duplicate key across CORE and DIALOGS: {english:?}"); + } + assert_eq!(seen.len(), catalog_keys().count()); + assert_eq!(CORE.len(), 398, "the shared reference set every catalog covers"); + assert_eq!(DIALOGS.len(), 545, "the dialog, message and menu strings beyond it"); + assert_eq!(catalog_keys().count(), 943); + } + + #[test] + fn covers_every_key_the_portuguese_catalog_translates() { + let portuguese = portuguese_keys(); + assert_eq!(portuguese.len(), 943, "pt.rs's arms changed: add the new keys here and update the count"); + let japanese: HashSet<&str> = catalog_keys().collect(); + for key in &portuguese { + assert!(japanese.contains(key.as_str()), "the Portuguese catalog translates {key:?}, the Japanese one does not"); + } + assert_eq!(japanese.len(), portuguese.len(), "the two catalogs hold the same key set"); + } + + #[test] + fn high_value_strings_use_excel_japanese_wording() { + for (english, japanese) in [ + ("OK", "OK"), + ("Cancel", "キャンセル"), + ("Don't Save", "保存しない"), + ("Text Box", "テキスト ボックス"), + ("Row Height", "行の高さ"), + ("Column Width", "列の幅"), + ("Sort", "並べ替え"), + ("Filter", "フィルター"), + ("Conditional Formatting", "条件付き書式"), + ("Do you want to save the changes you made to {title}?", "{title} への変更を保存しますか?"), + ("Save a copy as .{format}", ".{format} としてコピーを保存"), + ("Format Cells|Fill", "塗りつぶし"), + ("Insert\nSlicer", "スライサーの\n挿入"), + ] { + assert_eq!(translate(english), Some(japanese), "{english:?}"); + assert_eq!(crate::i18n::Language::Ja.tr(english), japanese, "{english:?}"); + } + // A `context|label` key shows only its label in English; an unknown label keeps the text. + assert_eq!(crate::i18n::Language::En.tr("Format Cells|Fill"), "Fill"); + assert_eq!(crate::i18n::Language::Ja.tr("Not in any catalog"), "Not in any catalog"); + } +} diff --git a/crates/ui-egui/src/i18n/nl.rs b/crates/ui-egui/src/i18n/nl.rs new file mode 100644 index 000000000..c1f952357 --- /dev/null +++ b/crates/ui-egui/src/i18n/nl.rs @@ -0,0 +1,524 @@ +//! Dutch translations for the interface strings in i18n.rs. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Plakken", + "Paste Values" => "Waarden plakken", + "Paste Formulas" => "Formules plakken", + "Paste Formatting" => "Opmaak plakken", + "Transpose" => "Transponeren", + "Paste Link" => "Koppeling plakken", + "Paste Special…" => "Speciaal plakken…", + "Insert Copied Cells" => "Gekopieerde cellen invoegen", + "Insert Copied Cells…" => "Gekopieerde cellen invoegen…", + "Insert Cut Cells" => "Geknipte cellen invoegen", + "Insert Paste" => "Invoegen en plakken", + "Format Painter (double-click to keep it on)" => "Opmaak kopiëren (dubbelklik om vast te zetten)", + "Bold" => "Vet", + "Italic" => "Cursief", + "Double Underline" => "Dubbel onderstrepen", + "Strikethrough" => "Doorhalen", + "Underline" => "Onderstrepen", + "Increase Font Size" => "Tekengrootte vergroten", + "Decrease Font Size" => "Tekengrootte verkleinen", + "Wrap Text" => "Tekstterugloop", + "Merge & Center" => "Samenvoegen & centreren", + "Merge Cells" => "Cellen samenvoegen", + "Merge Across" => "Rijen samenvoegen", + "Unmerge Cells" => "Samenvoeging opheffen", + "Fill Color" => "Opvulkleur", + "Font Color" => "Tekstkleur", + "Borders" => "Celranden", + "Top\nAlign" => "Boven\nuitlijnen", + "Middle\nAlign" => "Midden\nuitlijnen", + "Bottom\nAlign" => "Onder\nuitlijnen", + "Left" => "Links", + "Right" => "Rechts", + "Center" => "Centreren", + "Horizontal" => "Horizontaal", + "Vertical Text" => "Verticale tekst", + "Decrease Indent" => "Inspringing verkleinen", + "Increase Indent" => "Inspringing vergroten", + "Orientation" => "Richting", + "Page Layout|Orientation" => "Paginastand", + "Angle Counterclockwise" => "Tegen de klok in draaien", + "Angle Clockwise" => "Met de klok mee draaien", + "Rotate Text Up" => "Tekst omhoog draaien", + "Rotate Text Down" => "Tekst omlaag draaien", + "Accounting Number Format" => "Valutanotatie (financieel)", + "Percent Style" => "Procentnotatie", + "Comma Style" => "Notatie met scheidingstekens", + "Increase Decimal" => "Decimaal toevoegen", + "Decrease Decimal" => "Decimaal verwijderen", + "More Accounting Formats…" => "Meer boekhoudkundige notaties…", + "Conditional\nFormatting" => "Voorwaardelijke\nopmaak", + "Conditional Formatting" => "Voorwaardelijke opmaak", + "Format\nas Table" => "Opmaken\nals tabel", + "Cell\nStyles" => "Cel-\nstijlen", + "Format Cells…" => "Cellen opmaken…", + "Format Cell Alignment…" => "Celuitlijning…", + "Format\nPane" => "Opmaak-\nvenster", + "Format" => "Opmaak", + "Insert" => "Invoegen", + "Insert Cells…" => "Cellen invoegen…", + "Delete" => "Verwijderen", + "Delete Cells…" => "Cellen verwijderen…", + "Insert Sheet Rows" => "Bladrijen invoegen", + "Insert Sheet Columns" => "Bladkolommen invoegen", + "Delete Sheet Rows" => "Bladrijen verwijderen", + "Delete Sheet Columns" => "Bladkolommen verwijderen", + "Row Height…" => "Rijhoogte…", + "AutoFit Row Height" => "Rijhoogte automatisch aanpassen", + "Column Width…" => "Kolombreedte…", + "AutoFit Column Width" => "Kolombreedte automatisch aanpassen", + "Default Width…" => "Standaardkolombreedte…", + "Hide Rows" => "Rijen verbergen", + "Unhide Rows" => "Verborgen rijen tonen", + "Hide Columns" => "Kolommen verbergen", + "Unhide Columns" => "Verborgen kolommen tonen", + "Lock Cell" => "Cel vergrendelen", + "Clear" => "Wissen", + "Clear All" => "Alles wissen", + "Clear Formats" => "Opmaak wissen", + "Clear Contents" => "Celinhoud wissen", + "Clear Comments and Notes" => "Opmerkingen en notities wissen", + "Clear Hyperlinks" => "Hyperlinks wissen", + "AutoSum" => "AutoSom", + "Flash\nFill" => "Automatisch\ninvullen", + "Flash Fill" => "Automatisch invullen", + "Fill" => "Vullen", + "Clear Print Area" => "Afdrukbereik wissen", + "Find &\nSelect" => "Zoeken &\nselecteren", + "Find…" => "Zoeken…", + "Replace…" => "Vervangen…", + "Go To…" => "Ga naar…", + "Go To Special…" => "Ga naar speciaal…", + "PivotTable" => "Draaitabel", + "Recommended\nCharts" => "Aanbevolen\ngrafieken", + "Table" => "Tabel", + "Pictures" => "Afbeeldingen", + "Shapes" => "Vormen", + "Icons" => "Pictogrammen", + "Text\nBox" => "Tekst-\nvak", + "Comment" => "Opmerking", + "New\nComment" => "Nieuwe\nopmerking", + "New Note" => "Nieuwe notitie", + "Show/Hide Note" => "Notitie weergeven/verbergen", + "Header &\nFooter" => "Koptekst &\nvoettekst", + "Text to\nColumns" => "Tekst naar\nkolommen", + "Link" => "Link", + "Symbol" => "Symbool", + "Sparklines" => "Sparklines", + "Checkbox" => "Checkbox", + "Insert checkboxes in the selected cells" => "Checkboxes invoegen in de geselecteerde cellen", + "Header & Footer" => "Koptekst & voettekst", + "Draw with ink" => "Tekenen met inkt", + "Eraser" => "Gum", + "Ink to\nShape" => "Inkt naar\nvorm", + "Select\nObjects" => "Objecten\nselecteren", + "Themes" => "Thema's", + "Margins" => "Marges", + "Left Margin" => "Linkermarge", + "Right Margin" => "Rechtermarge", + "Top Margin" => "Bovenmarge", + "Bottom Margin" => "Ondermarge", + "Header Margin" => "Koptekstmarge", + "Footer Margin" => "Voettekstmarge", + "Size" => "Formaat", + "Print\nArea" => "Afdruk-\nbereik", + "Set Print Area" => "Afdrukbereik instellen", + "Breaks" => "Eindemarkeringen", + "Insert Page Break" => "Pagina-einde invoegen", + "Remove Page Break" => "Pagina-einde verwijderen", + "Reset All Page Breaks" => "Alle pagina-einden herstellen", + "Print\nTitles" => "Titels\nafdrukken", + "Sheet\nRight-to-Left" => "Blad van rechts\nnaar links", + "Sheet Right-to-Left" => "Blad van rechts naar links", + "Narrow" => "Smal", + "Wide" => "Breed", + "Normal" => "Normaal", + "Portrait" => "Staand", + "Landscape" => "Liggend", + "Custom Margins…" => "Aangepaste marges…", + "Insert\nFunction" => "Functie\ninvoegen", + "Name\nManager" => "Naam-\nbeheer", + "Define Name" => "Naam definiëren", + "Use in Formula" => "Gebruiken in formule", + "Create from Selection" => "Maken op basis van selectie", + "Trace Precedents" => "Broncellen aanwijzen", + "Trace Dependents" => "Doelcellen aanwijzen", + "Remove Arrows" => "Pijlen verwijderen", + "Show Formulas" => "Formules weergeven", + "Error Checking" => "Foutopsporing", + "Evaluate Formula" => "Formule evalueren", + "Watch Window" => "Bewakingsvenster", + "Calculation\nOptions" => "Berekenings-\nopties", + "Calculate Now" => "Nu berekenen", + "Calculate Sheet" => "Blad berekenen", + "Automatic" => "Automatisch", + "Automatic Except for Data Tables" => "Automatisch (geen gegevenstabellen)", + "Manual" => "Handmatig", + "Sort &\nFilter" => "Sorteren en\nfilteren", + "Sort" => "Sorteren", + "Sort A to Z" => "Sorteren van A naar Z", + "Sort Z to A" => "Sorteren van Z naar A", + "Custom Sort…" => "Aangepast sorteren…", + "Filter" => "Filteren", + "Reapply" => "Opnieuw toepassen", + "Get Data\n(Text/CSV)" => "Gegevens ophalen\n(tekst/CSV)", + "Remove\nDuplicates" => "Duplicaten\nverwijderen", + "Data\nValidation" => "Gegevens-\nvalidatie", + "Data Validation" => "Gegevensvalidatie", + "Data Validation…" => "Gegevensvalidatie…", + "Circle Invalid Data" => "Ongeldige gegevens omcirkelen", + "Clear Validation" => "Validatie wissen", + "Group" => "Groeperen", + "Ungroup" => "Groep opheffen", + "Show Detail" => "Details weergeven", + "Hide Detail" => "Details verbergen", + "Subtotal" => "Subtotaal", + "Data\nAnalysis" => "Gegevens-\nanalyse", + "Data Analysis" => "Gegevensanalyse", + "Solver" => "Solver", + "What-If\nAnalysis" => "Wat-als-\nanalyse", + "Data Table…" => "Gegevenstabel…", + "Scenario Manager…" => "Scenariobeheer…", + "Goal Seek…" => "Doelzoeken…", + "Forecast\nSheet" => "Prognose-\nblad", + "Spelling" => "Spelling", + "Check\nAccessibility" => "Toegankelijkheid\ncontroleren", + "Threaded Comments" => "Opmerkingen met threads", + "Show\nComments" => "Opmerkingen\nweergeven", + "Previous" => "Vorige", + "Next" => "Volgende", + "Previous Comment" => "Vorige opmerking", + "Next Comment" => "Volgende opmerking", + "Show All Notes" => "Alle notities weergeven", + "Convert to Comments" => "Converteren naar opmerkingen", + "Protect\nWorkbook" => "Werkmap\nbeveiligen", + "Allow Edit\nRanges" => "Bereiken bewerken\ntoestaan", + "Allow Edit Ranges" => "Bereiken bewerken toestaan", + "Unprotect\nSheet" => "Bladbeveiliging\nopheffen", + "Protect Sheet…" => "Blad beveiligen…", + "Comments" => "Opmerkingen", + "Notes" => "Notities", + "Page Break\nPreview" => "Pagina-einde-\nweergave", + "Page\nLayout" => "Pagina-\nindeling", + "Formula Bar" => "Formulebalk", + "Gridlines" => "Celrasterlijnen", + "Headings" => "Kopteksten", + "Zoom" => "Zoomen", + "100%" => "100%", + "Zoom to\nSelection" => "Inzoomen op\nselectie", + "Freeze\nPanes" => "Titels\nblokkeren", + "Freeze Panes" => "Titels blokkeren", + "Freeze Top Row" => "Bovenste rij blokkeren", + "Freeze First Column" => "Eerste kolom blokkeren", + "Unfreeze Panes" => "Titelblokkering opheffen", + "Dark Mode" => "Donkere modus", + "Display theme" => "Weergavethema", + "Animations" => "Animaties", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "De selectierand naar de nieuwe cel laten glijden in plaats van erheen springen" + } + "System" => "Systeem", + "Light" => "Licht", + "Dark" => "Donker", + "Interface language" => "Weergavetaal", + "Interface size" => "Grootte van de interface", + "Auto" => "Automatisch", + "Drag to freeze columns" => "Sleep om kolommen te blokkeren", + "Drag to freeze rows" => "Sleep om rijen te blokkeren", + "Command\nPalette" => "Opdracht-\npalet", + "Agent\nControl" => "Agent-\nbesturing", + "Action\nJournal" => "Actie-\nlogboek", + "About\nGridCraft" => "Over\nGridCraft", + "Share" => "Delen", + "Add Chart\nElement" => "Grafiekelement\ntoevoegen", + "Change\nChart Type" => "Ander\ngrafiektype", + "Switch\nRow/Column" => "Rij/kolom\nomwisselen", + "Select\nData" => "Gegevens\nselecteren", + "Data Labels: None" => "Gegevenslabels: geen", + "Data Labels: Show" => "Gegevenslabels: weergeven", + "Legend: None" => "Legenda: geen", + "Legend: Bottom" => "Legenda: onder", + "Legend: Top" => "Legenda: boven", + "Legend: Right" => "Legenda: rechts", + "Gridlines: None" => "Rasterlijnen: geen", + "Gridlines: Show" => "Rasterlijnen: weergeven", + "Chart\nTitle" => "Grafiek-\ntitel", + "Delete\nChart" => "Grafiek\nverwijderen", + "Convert\nto Range" => "Converteren\nnaar bereik", + "Table\nStyles" => "Tabel-\nstijlen", + "Top 10 Items" => "Top 10-items", + "Top 10%" => "Top 10%", + "Bottom 10 Items" => "Onderste 10 items", + "Bottom 10%" => "Onderste 10%", + "Above Average" => "Boven het gemiddelde", + "Below Average" => "Onder het gemiddelde", + "Clear Rules from Entire Sheet" => "Regels van hele blad wissen", + "Clear Rules from Selected Cells" => "Regels van geselecteerde cellen wissen", + "Constants" => "Constanten", + "Data Bars" => "Gegevensbalken", + "Color Scales" => "Kleurenschalen", + "Icon Sets" => "Symboolsets", + "Home" => "Start", + "Draw" => "Tekenen", + "Page Layout" => "Pagina-indeling", + "Formulas" => "Formules", + "Data" => "Gegevens", + "Review" => "Controleren", + "View" => "Weergave", + "Automate" => "Automatiseren", + "Table Design" => "Tabelontwerp", + "Chart Design" => "Grafiekontwerp", + "Ready" => "Gereed", + "Enter" => "Invoeren", + "Edit" => "Bewerken", + "Point" => "Aanwijzen", + "Calculate" => "Berekenen", + "Select destination and press Enter or choose Paste" => "Selecteer de bestemming en druk op Enter of kies Plakken", + "General" => "Algemeen", + "Number" => "Getal", + "Currency" => "Valuta", + "Accounting" => "Boekhoudkundig", + "Date" => "Datum", + "Time" => "Tijd", + "Percentage" => "Percentage", + "Fraction" => "Breuk", + "Scientific" => "Wetenschappelijk", + "Text" => "Tekst", + "Special" => "Speciaal", + "Custom" => "Aangepast", + "Short Date" => "Korte datumnotatie", + "Long Date" => "Lange datumnotatie", + "More Number Formats…" => "Meer getalnotaties…", + "Financial" => "Financieel", + "Logical" => "Logisch", + "Date &\nTime" => "Datum en\ntijd", + "Lookup &\nReference" => "Zoeken en\nverwijzen", + "Math &\nTrig" => "Wiskunde en\ntrigonometrie", + "More\nFunctions" => "Meer\nfuncties", + "Sheet Options|View" => "Weergeven", + "Print" => "Afdrukken", + "Click to add data" => "Klik om gegevens toe te voegen", + "Add header" => "Koptekst toevoegen", + "Add footer" => "Voettekst toevoegen", + "(none)" => "(geen)", + "Header" => "Koptekst", + "Footer" => "Voettekst", + "Page\nNumber" => "Pagina-\nnummer", + "Number\nof Pages" => "Aantal\npagina's", + "Current\nDate" => "Huidige\ndatum", + "Current\nTime" => "Huidige\ntijd", + "File\nPath" => "Bestands-\npad", + "File\nName" => "Bestands-\nnaam", + "Sheet\nName" => "Blad-\nnaam", + "Go to\nHeader" => "Naar\nkoptekst", + "Go to\nFooter" => "Naar\nvoettekst", + "Page Number" => "Paginanummer", + "Number of Pages" => "Aantal pagina's", + "Current Date" => "Huidige datum", + "Current Time" => "Huidige tijd", + "File Path" => "Bestandspad", + "File Name" => "Bestandsnaam", + "Sheet Name" => "Bladnaam", + "Go to Header" => "Naar koptekst", + "Different First Page" => "Eerste pagina afwijkend", + "Different Odd & Even Pages" => "Even en oneven pagina's afwijkend", + "Go to Footer" => "Naar voettekst", + "Ruler" => "Liniaal", + "File" => "Bestand", + "Back" => "Terug", + "New" => "Nieuw", + "Open" => "Openen", + "Info" => "Info", + "Save" => "Opslaan", + "Save As" => "Opslaan als", + "Export" => "Exporteren", + "Close" => "Sluiten", + "Options" => "Opties", + "Blank workbook" => "Lege werkmap", + "Recent" => "Recent", + "No recent workbooks yet." => "Nog geen recente werkmappen.", + "More workbooks" => "Meer werkmappen", + "Modified" => "Gewijzigd", + "Not available" => "Niet beschikbaar", + "Just now" => "Zojuist", + "Yesterday" => "Gisteren", + "{n} min ago" => "{n} min. geleden", + "{n} h ago" => "{n} uur geleden", + "{n} days ago" => "{n} dagen geleden", + "{n} weeks ago" => "{n} weken geleden", + "{n} months ago" => "{n} maanden geleden", + "{n} years ago" => "{n} jaar geleden", + "Browse…" => "Bladeren…", + "Not saved yet" => "Nog niet opgeslagen", + "Location" => "Locatie", + "Sheets" => "Bladen", + "Protect Workbook" => "Werkmap beveiligen", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "De bladstructuur is vergrendeld: bladen kunnen niet worden toegevoegd, verplaatst, hernoemd of verwijderd." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Vergrendel de bladstructuur zodat bladen niet kunnen worden toegevoegd, verplaatst, hernoemd of verwijderd." + } + "Properties" => "Eigenschappen", + "Title" => "Titel", + "Subject" => "Onderwerp", + "Author" => "Auteur", + "Company" => "Bedrijf", + "Keywords" => "Trefwoorden", + "Description" => "Beschrijving", + "No workbook is open." => "Er is geen werkmap geopend.", + "Save as type" => "Opslaan als type", + "Excel Workbook (*.xlsx)" => "Excel-werkmap (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (door komma's gescheiden) (*.csv)", + "Web Page (*.html)" => "Webpagina (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Downloaden", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Een CSV-bestand, webpagina of PDF is een kopie: de werkmap behoudt haar eigen bestand." + } + "Save the workbook under another name or in another folder." => "De werkmap onder een andere naam of in een andere map opslaan.", + "Print Active Sheets" => "Actieve bladen afdrukken", + "Print Entire Workbook" => "Hele werkmap afdrukken", + "Fit Sheet on One Page" => "Blad op één pagina passen", + "Page Setup…" => "Pagina-instelling…", + "Page {page} of {pages}" => "Pagina {page} van {pages}", + "Nothing to print." => "Niets om af te drukken.", + "Previous page" => "Vorige pagina", + "Next page" => "Volgende pagina", + "Create PDF" => "PDF maken", + "Save the sheet as a PDF document that keeps its page layout." => "Het blad opslaan als PDF-document met behoud van de pagina-indeling.", + "Change File Type" => "Bestandstype wijzigen", + "CSV (Comma delimited)" => "CSV (door komma's gescheiden)", + "Save the active sheet as comma-separated text." => "Het actieve blad opslaan als door komma's gescheiden tekst.", + "Web Page (.html)" => "Webpagina (.html)", + "Save the workbook as a web page." => "De werkmap opslaan als webpagina.", + "Options|General" => "Algemeen", + "Options|Save" => "Opslaan", + "Show formula bar" => "Formulebalk weergeven", + "Enable AutoComplete for cell values" => "Automatisch aanvullen van celwaarden inschakelen", + "Save .xlsx workbooks automatically after every change" => ".xlsx-werkmappen na elke wijziging automatisch opslaan", + "Workbook calculation" => "Werkmapberekening", + "Enable iterative calculation" => "Iteratieve berekening inschakelen", + "Calculation settings are saved with the workbook." => "Berekeningsinstellingen worden bij de werkmap opgeslagen.", + "Cut" => "Knippen", + "Copy" => "Kopiëren", + "Insert…" => "Invoegen…", + "Delete…" => "Verwijderen…", + "Filter by Selected Cell's Value" => "Filteren op waarde van geselecteerde cel", + "New Comment" => "Nieuwe opmerking", + "Pick From Drop-down List…" => "Kiezen uit keuzelijst…", + "Define Name…" => "Naam definiëren…", + "Link…" => "Link…", + "Hide" => "Verbergen", + "Unhide" => "Zichtbaar maken", + "Cancel" => "Annuleren", + "Expand formula bar" => "Formulebalk uitvouwen", + "Insert Function" => "Functie invoegen", + "$ English (United States)" => "$ Engels (Verenigde Staten)", + "Add Chart Element" => "Grafiekelement toevoegen", + "Align Left" => "Links uitlijnen", + "Align Right" => "Rechts uitlijnen", + "Bottom Align" => "Onder uitlijnen", + "Calculate Now (F9)" => "Nu berekenen (F9)", + "Calculate Sheet (⇧F9)" => "Blad berekenen (⇧F9)", + "Calculation Options" => "Berekeningsopties", + "Cell Styles" => "Celstijlen", + "Change Chart Type" => "Ander grafiektype", + "Check Accessibility" => "Toegankelijkheid controleren", + "Clear Filter" => "Filter wissen", + "Column or Bar" => "Kolom of staaf", + "Comments pane" => "Opmerkingenvenster", + "Convert the last ink stroke to a shape" => "De laatste inktstreek omzetten in een vorm", + "Convert to Range" => "Converteren naar bereik", + "Custom Sort" => "Aangepast sorteren", + "Delete Comment" => "Opmerking verwijderen", + "Delete Sheet" => "Blad verwijderen", + "Delete chart" => "Grafiek verwijderen", + "Down" => "Omlaag", + "Edit chart title" => "Grafiektitel bewerken", + "Erase ink strokes" => "Inktstreken wissen", + "Every command run in this session (replayable)" => "Elke opdracht die in deze sessie is uitgevoerd (opnieuw af te spelen)", + "Find & Select" => "Zoeken & selecteren", + "Forecast Sheet" => "Prognoseblad", + "Format Chart pane" => "Venster Grafiek opmaken", + "Format as Table" => "Opmaken als tabel", + "Hide Sheet" => "Blad verbergen", + "Hierarchy & more" => "Hiërarchie en meer", + "Highlighter" => "Markeerstift", + "How agents drive GridCraft (MCP / control channel)" => "Hoe agents GridCraft besturen (MCP / besturingskanaal)", + "Import a text or CSV file" => "Een tekst- of CSV-bestand importeren", + "Insert\nSlicer" => "Gegevensfilter\ninvoegen", + "Insert Function (⇧F3)" => "Functie invoegen (⇧F3)", + "Insert Link" => "Link invoegen", + "Insert Sheet" => "Blad invoegen", + "Insert Slicer" => "Gegevensfilter invoegen", + "Insert a picture" => "Een afbeelding invoegen", + "Insert a slicer to filter a table" => "Een gegevensfilter invoegen om een tabel te filteren", + "Insert an icon" => "Een pictogram invoegen", + "Line or Area" => "Lijn of vlak", + "Macros" => "Macro's", + "Macros and scripts in this workbook (Alt+F8)" => "Macro's en scripts in deze werkmap (Alt+F8)", + "Middle Align" => "Midden uitlijnen", + "More commands" => "Meer opdrachten", + "Move or Copy Sheet…" => "Blad verplaatsen of kopiëren…", + "Name Manager" => "Naambeheer", + "Page Breaks" => "Pagina-einden", + "Paper Size" => "Papierformaat", + "Pen\nBlack" => "Pen\nzwart", + "Pen\nBlue" => "Pen\nblauw", + "Pen\nRed" => "Pen\nrood", + "Pie or Doughnut" => "Taart of ring", + "Print Area" => "Afdrukbereik", + "Print Titles" => "Titels afdrukken", + "Protect\nSheet" => "Blad\nbeveiligen", + "Protect Sheet" => "Blad beveiligen", + "Protect Workbook structure" => "Werkmapstructuur beveiligen", + "Recommended Charts" => "Aanbevolen grafieken", + "Redo" => "Opnieuw", + "Remove Duplicates" => "Duplicaten verwijderen", + "Rename Sheet" => "Blad hernoemen", + "Scatter or Bubble" => "Punten of bellen", + "Search and run any command" => "Een opdracht zoeken en uitvoeren", + "Search commands" => "Opdrachten zoeken", + "Select Data" => "Gegevens selecteren", + "Select and move ink and shapes" => "Inkt en vormen selecteren en verplaatsen", + "Series…" => "Reeks…", + "Share: export or save a copy" => "Delen: exporteren of een kopie opslaan", + "Show Formulas (⌃`)" => "Formules weergeven (⌃`)", + "Slicer" => "Gegevensfilter", + "Sort & Filter" => "Sorteren en filteren", + "Spelling (F7)" => "Spelling (F7)", + "Statistic" => "Statistisch", + "Switch Row/Column" => "Rij/kolom omwisselen", + "Table Styles" => "Tabelstijlen", + "Text Box" => "Tekstvak", + "Text to Columns" => "Tekst naar kolommen", + "Top Align" => "Boven uitlijnen", + "Undo" => "Ongedaan maken", + "Undo list" => "Ongedaan maken-lijst", + "Unhide Sheet…" => "Blad zichtbaar maken…", + "Up" => "Omhoog", + "Version, contributors and the AI models that helped" => "Versie, bijdragers en de AI-modellen die hielpen", + "Watch\nWindow" => "Bewakings-\nvenster", + "What-If Analysis" => "Wat-als-analyse", + "Workbook\nStatistics" => "Werkmap-\nstatistieken", + "Workbook Statistics" => "Werkmapstatistieken", + "Zoom to 100%" => "Zoomen naar 100%", + "Zoom to Selection" => "Inzoomen op selectie", + "Zoom…" => "Zoomen…", + "£ English (United Kingdom)" => "£ Engels (Verenigd Koninkrijk)", + "¥ Japanese" => "¥ Japans", + "€ Euro" => "€ Euro", + "New sheet (⇧F11)" => "Nieuw blad (⇧F11)", + "Next sheet" => "Volgend blad", + "Previous sheet" => "Vorig blad", + "Zoom In" => "Inzoomen", + "Zoom Out" => "Uitzoomen", + "Dismiss" => "Negeren", + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/pl.rs b/crates/ui-egui/src/i18n/pl.rs new file mode 100644 index 000000000..e3185d55a --- /dev/null +++ b/crates/ui-egui/src/i18n/pl.rs @@ -0,0 +1,973 @@ +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Wklej", + "Paste Values" => "Wklej wartości", + "Paste Formulas" => "Wklej formuły", + "Paste Formatting" => "Wklej formatowanie", + "Transpose" => "Transpozycja", + "Paste Link" => "Wklej łącze", + "Paste Special…" => "Wklej specjalnie…", + "Insert Copied Cells" => "Wstaw skopiowane komórki", + "Insert Copied Cells…" => "Wstaw skopiowane komórki…", + "Insert Cut Cells" => "Wstaw wycięte komórki", + "Insert Paste" => "Wklej ze wstawieniem", + "Format Painter (double-click to keep it on)" => "Malarz formatów (kliknij dwukrotnie, aby pozostał włączony)", + "Double Underline" => "Podwójne podkreślenie", + "Strikethrough" => "Przekreślenie", + "Underline" => "Podkreślenie", + "Increase Font Size" => "Zwiększ rozmiar czcionki", + "Decrease Font Size" => "Zmniejsz rozmiar czcionki", + "Wrap Text" => "Zawijaj tekst", + "Merge & Center" => "Scal i wyśrodkuj", + "Merge Cells" => "Scal komórki", + "Merge Across" => "Scal wszystkie", + "Unmerge Cells" => "Rozdziel komórki", + "Fill Color" => "Kolor wypełnienia", + "Font Color" => "Kolor czcionki", + "Borders" => "Obramowania", + "Top\nAlign" => "Wyrównaj\ndo góry", + "Middle\nAlign" => "Wyrównaj\ndo środka", + "Bottom\nAlign" => "Wyrównaj\ndo dołu", + "Left" => "Do lewej", + "Right" => "Do prawej", + "Center" => "Do środka", + "Horizontal" => "Poziomo", + "Vertical Text" => "Tekst pionowy", + "Decrease Indent" => "Zmniejsz wcięcie", + "Increase Indent" => "Zwiększ wcięcie", + "Orientation" => "Orientacja", + "Angle Counterclockwise" => "Kąt przeciwnie do ruchu wskazówek zegara", + "Angle Clockwise" => "Kąt zgodnie z ruchem wskazówek zegara", + "Rotate Text Up" => "Obróć tekst w górę", + "Rotate Text Down" => "Obróć tekst w dół", + "Accounting Number Format" => "Format liczb księgowych", + "Percent Style" => "Zapis procentowy", + "Comma Style" => "Zapis dziesiętny", + "Increase Decimal" => "Zwiększ dziesiętne", + "Decrease Decimal" => "Zmniejsz dziesiętne", + "More Accounting Formats…" => "Więcej formatów księgowych…", + "Conditional\nFormatting" => "Formatowanie\nwarunkowe", + "Conditional Formatting" => "Formatowanie warunkowe", + "Format\nas Table" => "Formatuj\njako tabelę", + "Cell\nStyles" => "Style\nkomórki", + "Format Cells…" => "Formatuj komórki…", + "Format Cell Alignment…" => "Formatuj wyrównanie komórek…", + "Format\nPane" => "Okienko\nformatowania", + "Format" => "Formatuj", + "Insert" => "Wstaw", + "Insert Cells…" => "Wstaw komórki…", + "Delete" => "Usuń", + "Delete Cells…" => "Usuń komórki…", + "Insert Sheet Rows" => "Wstaw wiersze arkusza", + "Insert Sheet Columns" => "Wstaw kolumny arkusza", + "Delete Sheet Rows" => "Usuń wiersze arkusza", + "Delete Sheet Columns" => "Usuń kolumny arkusza", + "Row Height…" => "Wysokość wiersza…", + "AutoFit Row Height" => "Autodopasowanie wysokości wiersza", + "Column Width…" => "Szerokość kolumny…", + "AutoFit Column Width" => "Autodopasowanie szerokości kolumny", + "Default Width…" => "Szerokość domyślna…", + "Hide Rows" => "Ukryj wiersze", + "Unhide Rows" => "Odkryj wiersze", + "Hide Columns" => "Ukryj kolumny", + "Unhide Columns" => "Odkryj kolumny", + "Lock Cell" => "Zablokuj komórkę", + "Clear" => "Wyczyść", + "Clear All" => "Wyczyść wszystko", + "Clear Formats" => "Wyczyść formaty", + "Clear Contents" => "Wyczyść zawartość", + "Clear Comments and Notes" => "Wyczyść komentarze i notatki", + "Clear Hyperlinks" => "Wyczyść hiperlinki", + "AutoSum" => "Autosumowanie", + "Flash\nFill" => "Wypełnianie\nbłyskawiczne", + "Flash Fill" => "Wypełnianie błyskawiczne", + "Fill" => "Wypełnij", + "Clear Print Area" => "Wyczyść obszar wydruku", + "Find &\nSelect" => "Znajdź i\nzaznacz", + "Find…" => "Znajdź…", + "Replace…" => "Zamień…", + "Go To…" => "Przejdź do…", + "Go To Special…" => "Przejdź do (specjalnie)…", + "PivotTable" => "Tabela\nprzestawna", + "Recommended\nCharts" => "Polecane\nwykresy", + "Table" => "Tabela", + "Pictures" => "Obrazy", + "Shapes" => "Kształty", + "Icons" => "Ikony", + "Text\nBox" => "Pole\ntekstowe", + "Comment" => "Komentarz", + "New\nComment" => "Nowy\nkomentarz", + "New Note" => "Nowa notatka", + "Show/Hide Note" => "Pokaż/ukryj notatkę", + "Header &\nFooter" => "Nagłówek\ni stopka", + "Text to\nColumns" => "Tekst jako\nkolumny", + "Link" => "Łącze", + "Symbol" => "Symbol", + "Sparklines" => "Wykresy przebiegu w czasie", + "Checkbox" => "Pole wyboru", + "Insert checkboxes in the selected cells" => "Wstaw pola wyboru w zaznaczonych komórkach", + "Header & Footer" => "Nagłówek i stopka", + "Draw with ink" => "Rysuj piórem", + "Eraser" => "Gumka", + "Ink to\nShape" => "Pismo odręczne\nna kształt", + "Select\nObjects" => "Zaznacz\nobiekty", + "Themes" => "Motywy", + "Margins" => "Marginesy", + "Left Margin" => "Lewy margines", + "Right Margin" => "Prawy margines", + "Top Margin" => "Górny margines", + "Bottom Margin" => "Dolny margines", + "Header Margin" => "Margines nagłówka", + "Footer Margin" => "Margines stopki", + "Size" => "Rozmiar", + "Print\nArea" => "Obszar\nwydruku", + "Set Print Area" => "Ustaw obszar wydruku", + "Breaks" => "Podziały", + "Insert Page Break" => "Wstaw podział strony", + "Remove Page Break" => "Usuń podział strony", + "Reset All Page Breaks" => "Resetuj wszystkie podziały stron", + "Print\nTitles" => "Tytuły\nwydruku", + "Sheet\nRight-to-Left" => "Arkusz od prawej\ndo lewej", + "Sheet Right-to-Left" => "Arkusz od prawej do lewej", + "Narrow" => "Wąskie", + "Wide" => "Szerokie", + "Normal" => "Normalne", + "Portrait" => "Pionowa", + "Landscape" => "Pozioma", + "Custom Margins…" => "Marginesy niestandardowe…", + "Insert\nFunction" => "Wstaw\nfunkcję", + "Name\nManager" => "Menedżer\nnazw", + "Define Name" => "Definiuj nazwę", + "Use in Formula" => "Użyj w formule", + "Create from Selection" => "Utwórz z zaznaczenia", + "Trace Precedents" => "Śledź poprzedniki", + "Trace Dependents" => "Śledź zależności", + "Remove Arrows" => "Usuń strzałki", + "Show Formulas" => "Pokaż formuły", + "Error Checking" => "Sprawdzanie błędów", + "Evaluate Formula" => "Szacuj formułę", + "Watch Window" => "Okno czujki", + "Calculation\nOptions" => "Opcje\nobliczania", + "Calculate Now" => "Oblicz teraz", + "Calculate Sheet" => "Oblicz arkusz", + "Automatic" => "Automatycznie", + "Automatic Except for Data Tables" => "Automatycznie z wyjątkiem tabel danych", + "Manual" => "Ręcznie", + "Sort &\nFilter" => "Sortuj i\nfiltruj", + "Sort" => "Sortuj", + "Sort A to Z" => "Sortuj od A do Z", + "Sort Z to A" => "Sortuj od Z do A", + "Custom Sort…" => "Sortowanie niestandardowe…", + "Filter" => "Filtruj", + "Reapply" => "Zastosuj ponownie", + "Get Data\n(Text/CSV)" => "Pobierz dane\n(tekst/CSV)", + "Remove\nDuplicates" => "Usuń\nduplikaty", + "Data\nValidation" => "Poprawność\ndanych", + "Data Validation" => "Poprawność danych", + "Data Validation…" => "Poprawność danych…", + "Circle Invalid Data" => "Zakreśl nieprawidłowe dane", + "Clear Validation" => "Wyczyść poprawność danych", + "Group" => "Grupuj", + "Ungroup" => "Rozgrupuj", + "Show Detail" => "Pokaż szczegóły", + "Hide Detail" => "Ukryj szczegóły", + "Subtotal" => "Suma częściowa", + "Data\nAnalysis" => "Analiza\ndanych", + "Data Analysis" => "Analiza danych", + "Solver" => "Solver", + "What-If\nAnalysis" => "Analiza\nwarunkowa", + "Data Table…" => "Tabela danych…", + "Scenario Manager…" => "Menedżer scenariuszy…", + "Goal Seek…" => "Szukaj wyniku…", + "Forecast\nSheet" => "Arkusz\nprognozy", + "Spelling" => "Pisownia", + "Check\nAccessibility" => "Sprawdź ułatwienia\ndostępu", + "Threaded Comments" => "Komentarze wątkowe", + "Show\nComments" => "Pokaż\nkomentarze", + "Previous" => "Poprzedni", + "Next" => "Następny", + "Previous Comment" => "Poprzedni komentarz", + "Next Comment" => "Następny komentarz", + "Show All Notes" => "Pokaż wszystkie notatki", + "Convert to Comments" => "Konwertuj na komentarze", + "Protect\nWorkbook" => "Chroń\nskoroszyt", + "Allow Edit\nRanges" => "Zezwalaj na\nedycję zakresów", + "Allow Edit Ranges" => "Zezwalaj na edycję zakresów", + "Unprotect\nSheet" => "Nie chroń\narkusza", + "Protect Sheet…" => "Chroń arkusz…", + "Comments" => "Komentarze", + "Notes" => "Notatki", + "Page Break\nPreview" => "Podgląd\npodziału stron", + "Page\nLayout" => "Układ\nstrony", + "Formula Bar" => "Pasek formuły", + "Gridlines" => "Linie siatki", + "Headings" => "Nagłówki", + "Zoom" => "Powiększenie", + "100%" => "100%", + "Zoom to\nSelection" => "Powiększ do\nzaznaczenia", + "Freeze\nPanes" => "Zablokuj\nokienka", + "Freeze Panes" => "Zablokuj okienka", + "Freeze Top Row" => "Zablokuj górny wiersz", + "Freeze First Column" => "Zablokuj pierwszą kolumnę", + "Unfreeze Panes" => "Odblokuj okienka", + "Dark Mode" => "Tryb ciemny", + "Interface language" => "Język interfejsu", + "Interface size" => "Rozmiar interfejsu", + "Auto" => "Automatyczny", + "Drag to freeze columns" => "Przeciągnij, aby zablokować kolumny", + "Drag to freeze rows" => "Przeciągnij, aby zablokować wiersze", + "Command\nPalette" => "Paleta\npoleceń", + "Agent\nControl" => "Sterowanie\nagentem", + "Action\nJournal" => "Dziennik\nakcji", + "About\nGridCraft" => "O programie\nGridCraft", + "Share" => "Udostępnij", + "Add Chart\nElement" => "Dodaj element\nwykresu", + "Change\nChart Type" => "Zmień\ntyp wykresu", + "Switch\nRow/Column" => "Przełącz\nwiersz/kolumnę", + "Select\nData" => "Zaznacz\ndane", + "Data Labels: None" => "Etykiety danych: brak", + "Data Labels: Show" => "Etykiety danych: pokaż", + "Legend: None" => "Legenda: brak", + "Legend: Bottom" => "Legenda: u dołu", + "Legend: Top" => "Legenda: u góry", + "Legend: Right" => "Legenda: z prawej", + "Gridlines: None" => "Linie siatki: brak", + "Gridlines: Show" => "Linie siatki: pokaż", + "Chart\nTitle" => "Tytuł\nwykresu", + "Delete\nChart" => "Usuń\nwykres", + "Convert\nto Range" => "Konwertuj\nna zakres", + "Table\nStyles" => "Style\ntabeli", + "Top 10 Items" => "10 pierwszych elementów", + "Top 10%" => "Pierwsze 10%", + "Bottom 10 Items" => "10 ostatnich elementów", + "Bottom 10%" => "Ostatnie 10%", + "Above Average" => "Powyżej średniej", + "Below Average" => "Poniżej średniej", + "Clear Rules from Entire Sheet" => "Wyczyść reguły z całego arkusza", + "Clear Rules from Selected Cells" => "Wyczyść reguły z zaznaczonych komórek", + "Constants" => "Stałe", + "Data Bars" => "Paski danych", + "Color Scales" => "Skale kolorów", + "Icon Sets" => "Zestawy ikon", + "Home" => "Narzędzia główne", + "Draw" => "Rysowanie", + "Page Layout" => "Układ strony", + "Formulas" => "Formuły", + "Data" => "Dane", + "Review" => "Recenzja", + "View" => "Widok", + "Automate" => "Automatyzacja", + "Table Design" => "Projekt tabeli", + "Chart Design" => "Projekt wykresu", + "Ready" => "Gotowy", + "Enter" => "Wprowadź", + "Edit" => "Edytuj", + "Point" => "Wskaż", + "Calculate" => "Oblicz", + "Select destination and press Enter or choose Paste" => "Zaznacz miejsce docelowe i naciśnij Enter lub wybierz polecenie Wklej", + "General" => "Ogólne", + "Number" => "Liczbowe", + "Currency" => "Walutowe", + "Accounting" => "Księgowe", + "Date" => "Data", + "Time" => "Czas", + "Percentage" => "Procentowe", + "Fraction" => "Ułamkowe", + "Scientific" => "Naukowe", + "Text" => "Tekstowe", + "Special" => "Specjalne", + "Custom" => "Niestandardowe", + "Short Date" => "Data krótka", + "Long Date" => "Data długa", + "More Number Formats…" => "Więcej formatów liczb…", + "Financial" => "Finansowe", + "Logical" => "Logiczne", + "Date &\nTime" => "Data i\ngodzina", + "Lookup &\nReference" => "Wyszukiwanie\ni odwołania", + "Math &\nTrig" => "Matematyczne i\ntrygonometryczne", + "More\nFunctions" => "Więcej\nfunkcji", + "Page Layout|Orientation" => "Orientacja", + "Display theme" => "Motyw wyświetlania", + "Animations" => "Animacje", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Płynnie przesuwaj ramkę zaznaczenia do komórki, do której przechodzisz, zamiast przeskakiwać" + } + "System" => "Systemowy", + "Light" => "Jasny", + "Dark" => "Ciemny", + "Sheet Options|View" => "Wyświetl", + "Print" => "Drukuj", + "Click to add data" => "Kliknij, aby dodać dane", + "Add header" => "Dodaj nagłówek", + "Add footer" => "Dodaj stopkę", + "(none)" => "(brak)", + "Header" => "Nagłówek", + "Footer" => "Stopka", + "Page\nNumber" => "Numer\nstrony", + "Number\nof Pages" => "Liczba\nstron", + "Current\nDate" => "Bieżąca\ndata", + "Current\nTime" => "Bieżąca\ngodzina", + "File\nPath" => "Ścieżka\npliku", + "File\nName" => "Nazwa\npliku", + "Sheet\nName" => "Nazwa\narkusza", + "Go to\nHeader" => "Przejdź do\nnagłówka", + "Go to\nFooter" => "Przejdź do\nstopki", + "Page Number" => "Numer strony", + "Number of Pages" => "Liczba stron", + "Current Date" => "Bieżąca data", + "Current Time" => "Bieżąca godzina", + "File Path" => "Ścieżka pliku", + "File Name" => "Nazwa pliku", + "Sheet Name" => "Nazwa arkusza", + "Go to Header" => "Przejdź do nagłówka", + "Different First Page" => "Inna pierwsza strona", + "Different Odd & Even Pages" => "Inne strony nieparzyste i parzyste", + "Go to Footer" => "Przejdź do stopki", + "Ruler" => "Linijka", + "File" => "Plik", + "Back" => "Wstecz", + "New" => "Nowy", + "Open" => "Otwórz", + "Info" => "Informacje", + "Save" => "Zapisz", + "Save As" => "Zapisz jako", + "Export" => "Eksportuj", + "Close" => "Zamknij", + "Options" => "Opcje", + "Blank workbook" => "Pusty skoroszyt", + "Recent" => "Ostatnie", + "No recent workbooks yet." => "Nie masz jeszcze ostatnio używanych skoroszytów.", + "More workbooks" => "Więcej skoroszytów", + "Modified" => "Zmodyfikowano", + "Not available" => "Niedostępne", + "Just now" => "Przed chwilą", + "{n} min ago" => "{n} min temu", + "{n} h ago" => "{n} godz. temu", + "{n} days ago" => "{n} dni temu", + "{n} weeks ago" => "{n} tyg. temu", + "{n} months ago" => "{n} mies. temu", + "{n} years ago" => "{n} l. temu", + "Browse…" => "Przeglądaj…", + "Not saved yet" => "Jeszcze niezapisany", + "Location" => "Lokalizacja", + "Sheets" => "Arkusze", + "Protect Workbook" => "Chroń skoroszyt", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "Struktura arkuszy jest zablokowana: nie można dodawać, przenosić, usuwać arkuszy ani zmieniać ich nazw." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Zablokuj strukturę arkuszy, żeby nie dało się dodawać, przenosić, usuwać arkuszy ani zmieniać ich nazw." + } + "Properties" => "Właściwości", + "Title" => "Tytuł", + "Subject" => "Temat", + "Author" => "Autor", + "Company" => "Firma", + "Keywords" => "Słowa kluczowe", + "Description" => "Opis", + "No workbook is open." => "Żaden skoroszyt nie jest otwarty.", + "Save as type" => "Zapisz jako typ", + "Excel Workbook (*.xlsx)" => "Skoroszyt programu Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (rozdzielany przecinkami) (*.csv)", + "Web Page (*.html)" => "Strona sieci Web (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Pobierz", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Plik CSV, strona sieci Web i PDF to tylko kopie: skoroszyt zostaje w swoim pliku." + } + "Save the workbook under another name or in another folder." => "Zapisz skoroszyt pod inną nazwą lub w innym folderze.", + "Print Active Sheets" => "Drukuj aktywne arkusze", + "Print Entire Workbook" => "Drukuj cały skoroszyt", + "Fit Sheet on One Page" => "Dopasuj arkusz do jednej strony", + "Page Setup…" => "Ustawienia strony…", + "Page {page} of {pages}" => "Strona {page} z {pages}", + "Nothing to print." => "Nie ma nic do wydrukowania.", + "Previous page" => "Poprzednia strona", + "Next page" => "Następna strona", + "Create PDF" => "Utwórz plik PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Zapisz arkusz jako dokument PDF z zachowaniem układu strony.", + "Change File Type" => "Zmień typ pliku", + "CSV (Comma delimited)" => "CSV (rozdzielany przecinkami)", + "Save the active sheet as comma-separated text." => "Zapisz aktywny arkusz jako tekst rozdzielany przecinkami.", + "Web Page (.html)" => "Strona sieci Web (.html)", + "Save the workbook as a web page." => "Zapisz skoroszyt jako stronę sieci Web.", + "Options|General" => "Ogólne", + "Options|Save" => "Zapisywanie", + "Options|Editing" => "Editing", + "Show formula bar" => "Pokaż pasek formuły", + "Enable AutoComplete for cell values" => "Włącz Autouzupełnianie dla wartości komórek", + "Save .xlsx workbooks automatically after every change" => "Automatycznie zapisuj skoroszyty .xlsx po każdej zmianie", + "Workbook calculation" => "Obliczenia w skoroszycie", + "Enable iterative calculation" => "Włącz obliczenia iteracyjne", + "Calculation settings are saved with the workbook." => "Ustawienia obliczeń są zapisywane razem ze skoroszytem.", + "OK" => "OK", + "Cancel" => "Anuluj", + "Don't Save" => "Nie zapisuj", + "Open…" => "Otwórz…", + "Show password" => "Pokaż hasło", + "Start a new workbook" => "Utwórz nowy skoroszyt", + "Household Budget" => "Budżet domowy", + "Quarterly Sales Dashboard" => "Pulpit sprzedaży kwartalnej", + "Gradebook" => "Dziennik ocen", + "this workbook" => "ten skoroszyt", + "This workbook" => "Ten skoroszyt", + "Do you want to save the changes you made to {title}?" => "Czy chcesz zapisać zmiany wprowadzone w pliku {title}?", + "Save a copy as .{format}" => "Zapisz kopię jako .{format}", + "Select a chart first." => "Najpierw zaznacz wykres.", + "Text Box" => "Pole tekstowe", + "Select Data" => "Zaznacz dane", + "Row Height" => "Wysokość wiersza", + "Column Width" => "Szerokość kolumny", + "Standard Width" => "Szerokość standardowa", + "Rename Sheet" => "Zmień nazwę arkusza", + "Move or Copy" => "Przenoszenie lub kopiowanie", + "Protect Sheet" => "Chroń arkusz", + "Protect Structure and Windows" => "Chroń strukturę i okna", + "Unprotect Workbook" => "Nie chroń skoroszytu", + "Unprotect Sheet" => "Nie chroń arkusza", + "Password" => "Hasło", + "Unhide" => "Odkryj", + "Paste Special" => "Wklejanie specjalne", + "Series" => "Seria danych", + "New Comment" => "Nowy komentarz", + "Insert Hyperlink" => "Wstawianie hiperlinku", + "Create Sparklines" => "Tworzenie wykresów przebiegu w czasie", + "Page Setup" => "Ustawienia strony", + "Convert Text to Columns" => "Konwertowanie tekstu na kolumny", + "Remove Duplicates" => "Usuń duplikaty", + "Goal Seek" => "Szukaj wyniku", + "Create Forecast Worksheet" => "Tworzenie arkusza prognozy", + "Solver Parameters" => "Parametry dodatku Solver", + "Solver Results" => "Wyniki dodatku Solver", + "Edit Name" => "Edytowanie nazwy", + "New Name" => "Nowa nazwa", + "Format Cells" => "Formatowanie komórek", + "Formula Builder" => "Konstruktor formuł", + "Find and Replace" => "Znajdowanie i zamienianie", + "Go To" => "Przechodzenie do", + "Insert Calculated Field" => "Wstawianie pola obliczeniowego", + "Go To Special" => "Przechodzenie do (specjalnie)", + "Name Manager" => "Menedżer nazw", + "Conditional Formatting Rules Manager" => "Menedżer reguł formatowania warunkowego", + "Search Commands" => "Wyszukaj polecenia", + "Agent Control" => "Sterowanie agentem", + "About GridCraft" => "O programie GridCraft", + "Insert Chart" => "Wstawianie wykresu", + "Select Data Source" => "Wybieranie źródła danych", + "Action Journal" => "Dziennik akcji", + "Macros" => "Makra", + "Workbook Statistics" => "Statystyki skoroszytu", + "Accessibility" => "Ułatwienia dostępu", + "Chart Title" => "Tytuł wykresu", + "Place Picture in Cell" => "Umieść obraz w komórce", + "Place Picture over Cells" => "Umieść obraz na komórkach", + "Pick From List" => "Wybierz z listy", + "Save a Copy" => "Zapisz kopię", + "Save Changes?" => "Zapisać zmiany?", + "Shift cells right" => "Przesuń komórki w prawo", + "Shift cells down" => "Przesuń komórki w dół", + "Shift cells left" => "Przesuń komórki w lewo", + "Shift cells up" => "Przesuń komórki w górę", + "Entire row" => "Cały wiersz", + "Entire column" => "Cała kolumna", + "Row height (pixels):" => "Wysokość wiersza (piksele):", + "Column width (characters):" => "Szerokość kolumny (znaki):", + "Standard column width (pixels):" => "Standardowa szerokość kolumny (piksele):", + "Name:" => "Nazwa:", + "Before sheet (position, 0 = first):" => "Przed arkuszem (pozycja, 0 = pierwszy):", + "Create a copy" => "Utwórz kopię", + "Sheets: {sheets}" => "Arkusze: {sheets}", + "Password (optional):" => "Hasło (opcjonalnie):", + "Password:" => "Hasło:", + "Allow all users of this sheet to:" => "Zezwalaj wszystkim użytkownikom tego arkusza na:", + "Format cells" => "Formatowanie komórek", + "Format columns" => "Formatowanie kolumn", + "Format rows" => "Formatowanie wierszy", + "Insert rows" => "Wstawianie wierszy", + "Delete rows" => "Usuwanie wierszy", + "Use AutoFilter" => "Używanie Autofiltru", + " (password, unlocked)" => " (hasło, odblokowany)", + " (password)" => " (hasło)", + "No ranges yet." => "Nie ma jeszcze zakresów.", + "Ranges that stay editable when the sheet is protected:" => "Zakresy, które można edytować, gdy arkusz jest chroniony:", + "Action" => "Akcja", + "Modify" => "Modyfikuj", + "Unlock with password" => "Odblokuj hasłem", + "Title:" => "Tytuł:", + "Refers to cells:" => "Odwołuje się do komórek:", + "Range password:" => "Hasło zakresu:", + "New title (Modify):" => "Nowy tytuł (Modyfikuj):", + "Remove the password (Modify)" => "Usuń hasło (Modyfikuj)", + "'{file}' is protected." => "Plik „{file}” jest chroniony.", + "Unhide sheet:" => "Odkryj arkusz:", + "Hidden: {sheets}" => "Ukryte: {sheets}", + "All" => "Wszystko", + "Formulas (F)" => "Formuły (F)", + "Values (V)" => "Wartości (V)", + "Formats (T)" => "Formaty (T)", + "Comments and notes (C)" => "Komentarze i notatki (C)", + "Validation" => "Sprawdzanie poprawności", + "All except borders" => "Wszystko z wyjątkiem obramowań", + "Column widths" => "Szerokości kolumn", + "Formulas and number formats" => "Formuły i formaty liczb", + "Values and number formats" => "Wartości i formaty liczb", + "Operation" => "Operacja", + "Add" => "Dodaj", + "Subtract" => "Odejmij", + "Multiply" => "Pomnóż", + "Divide" => "Podziel", + "Skip blanks" => "Pomijaj puste", + "Transpose (E)" => "Transpozycja (E)", + "Series in" => "Seria w", + "Columns" => "Kolumny", + "Rows" => "Wiersze", + "Type" => "Typ", + "Linear" => "Liniowy", + "Growth" => "Wzrost", + "Date unit" => "Jednostka daty", + "Day" => "Dzień", + "Weekday" => "Dzień powszedni", + "Month" => "Miesiąc", + "Year" => "Rok", + "Step value:" => "Wartość kroku:", + "Stop value:" => "Wartość końcowa:", + "Start a conversation:" => "Rozpocznij konwersację:", + "Note:" => "Notatka:", + "Display:" => "Tekst do wyświetlenia:", + "Link to (web address, e-mail or Sheet!A1):" => "Łącze do (adres internetowy, e-mail lub Arkusz1!A1):", + "ScreenTip:" => "Etykietka ekranowa:", + "Data Range:" => "Zakres danych:", + "Location Range:" => "Zakres lokalizacji:", + "Markers" => "Znaczniki", + "Footer:" => "Stopka:", + "Left margin (in):" => "Lewy margines (cale):", + "Right margin (in):" => "Prawy margines (cale):", + "Top margin (in):" => "Górny margines (cale):", + "Bottom margin (in):" => "Dolny margines (cale):", + "Header (in):" => "Nagłówek (cale):", + "Footer (in):" => "Stopka (cale):", + "Tab" => "Tabulator", + "Semicolon" => "Średnik", + "Comma" => "Przecinek", + "Space" => "Spacja", + "Other:" => "Inny:", + "Treat consecutive delimiters as one" => "Traktuj kolejne ograniczniki jako jeden", + "Destination:" => "Miejsce docelowe:", + "My data has headers" => "Moje dane mają nagłówki", + "Columns (blank = all, e.g. A,C):" => "Kolumny (puste = wszystkie, np. A,C):", + "Timeline range (blank: first column of the selection):" => "Zakres osi czasu (puste: pierwsza kolumna zaznaczenia):", + "Values range (blank: second column of the selection):" => "Zakres wartości (puste: druga kolumna zaznaczenia):", + "Confidence interval" => "Przedział ufności", + "Confidence level (%):" => "Poziom ufności (%):", + "Seasonality (auto, 0 for none, or a season length):" => "Sezonowość (auto, 0 = brak albo długość sezonu):", + "Fill missing points using" => "Wypełnij brakujące punkty przy użyciu", + "Interpolation" => "Interpolacja", + "Zeros" => "Zera", + "Aggregate duplicates using" => "Agreguj duplikaty przy użyciu", + "Average" => "Średnia", + "Count" => "Licznik", + "CountA" => "Licznik niepustych", + "Max" => "Maksimum", + "Median" => "Mediana", + "Min" => "Minimum", + "Sum" => "Suma", + "Product" => "Iloczyn", + "Include forecast statistics" => "Uwzględnij statystyki prognozy", + "Chart" => "Wykres", + "Line chart" => "Wykres liniowy", + "Column chart" => "Wykres kolumnowy", + "At each change in (column letter):" => "Przy każdej zmianie w (litera kolumny):", + "Use function" => "Użyj funkcji", + "Add subtotal to (columns, e.g. C,D):" => "Dodaj sumę częściową do (kolumny, np. C,D):", + "Magnification" => "Powiększenie", + "Custom (%):" => "Niestandardowe (%):", + "Scope (Workbook or sheet name):" => "Zakres (skoroszyt lub nazwa arkusza):", + "Comment:" => "Komentarz:", + "Refers to:" => "Odwołuje się do:", + "Allow" => "Dozwolone", + "Any value" => "Dowolna wartość", + "Whole number" => "Pełna liczba", + "Decimal" => "Dziesiętne", + "List" => "Lista", + "Text length" => "Długość tekstu", + "between" => "między", + "not between" => "nie między", + "equal to" => "równe", + "not equal to" => "różne od", + "greater than" => "większe niż", + "less than" => "mniejsze niż", + "greater than or equal to" => "większe lub równe", + "less than or equal to" => "mniejsze lub równe", + "Minimum / Source / Formula:" => "Minimum / Źródło / Formuła:", + "Maximum:" => "Maksimum:", + "Ignore blank" => "Ignoruj puste", + "In-cell dropdown" => "Rozwinięcie w komórce", + "Input message:" => "Komunikat wejściowy:", + "Error style" => "Styl błędu", + "Stop" => "Zatrzymaj", + "Warning" => "Ostrzeżenie", + "Information" => "Informacje", + "Error message:" => "Komunikat o błędzie:", + "Format cells that are (value):" => "Formatuj komórki, które są (wartość):", + "and:" => "i:", + "Format cells that contain the text:" => "Formatuj komórki zawierające tekst:", + "Format cells that contain a date occurring:" => "Formatuj komórki zawierające datę:", + "Yesterday" => "Wczoraj", + "Today" => "Dzisiaj", + "Tomorrow" => "Jutro", + "In the last 7 days" => "W ciągu ostatnich 7 dni", + "Last week" => "W zeszłym tygodniu", + "This week" => "W tym tygodniu", + "Next week" => "W przyszłym tygodniu", + "Last month" => "W zeszłym miesiącu", + "This month" => "W tym miesiącu", + "Next month" => "W przyszłym miesiącu", + "Format values where this formula is true:" => "Formatuj wartości, dla których ta formuła jest prawdziwa:", + "with" => "z", + "Light Red Fill with Dark Red Text" => "Jasnoczerwone wypełnienie z ciemnoczerwonym tekstem", + "Yellow Fill with Dark Yellow Text" => "Żółte wypełnienie z ciemnożółtym tekstem", + "Green Fill with Dark Green Text" => "Zielone wypełnienie z ciemnozielonym tekstem", + "Light Red Fill" => "Jasnoczerwone wypełnienie", + "Red Text" => "Czerwony tekst", + "Red Border" => "Czerwone obramowanie", + "Formula:" => "Formuła:", + "Select" => "Zaznacz", + "Blanks" => "Puste", + "Errors" => "Błędy", + "Numbers" => "Liczby", + "Current region" => "Bieżący obszar", + "Last cell" => "Ostatnia komórka", + "Visible cells only" => "Tylko widoczne komórki", + "Conditional formats" => "Formatowanie warunkowe", + "Data validation" => "Poprawność danych", + "Horizontal axis title:" => "Tytuł osi poziomej:", + "Vertical axis title:" => "Tytuł osi pionowej:", + "No picture selected" => "Nie wybrano obrazu", + "Picture file path (PNG or JPEG):" => "Ścieżka pliku obrazu (PNG lub JPEG):", + "Description (optional):" => "Opis (opcjonalnie):", + "Fits inside the selected cell and moves with its content." => "Mieści się w zaznaczonej komórce i przesuwa się razem z jej zawartością.", + "Choose a PNG or JPEG no larger than 16 MB." => "Wybierz plik PNG lub JPEG nie większy niż 16 MB.", + "About" => "O programie", + "Contributors" => "Współtwórcy", + "Models" => "Modele", + "Version {version}" => "Wersja {version}", + "Join the ArtCraft Discord" => "Dołącz do Discorda ArtCraft", + "This workbook has no scripts or macros." => "Ten skoroszyt nie zawiera skryptów ani makr.", + "(unnamed)" => "(bez nazwy)", + "— VBA project (preserved, not run)" => "- projekt VBA (zachowany, nieuruchamiany)", + "— 1 step" => "- 1 krok", + "— {steps} steps" => "- liczba kroków: {steps}", + "Alignment" => "Wyrównanie", + "Font" => "Czcionka", + "Border" => "Obramowanie", + "Format Cells|Fill" => "Wypełnienie", + "Protection" => "Ochrona", + "Category:" => "Kategoria:", + "Sample" => "Przykład", + "Type (custom format code):" => "Typ (kod formatu niestandardowego):", + "Vertical" => "Pionowo", + "Justify" => "Wyjustuj", + "Center Across Selection" => "Wyrównaj do środka zaznaczenia", + "Distributed" => "Rozłożone", + "Top" => "Do góry", + "Bottom" => "Do dołu", + "Indent" => "Wcięcie", + "Orientation (degrees)" => "Orientacja (stopnie)", + "Wrap text" => "Zawijaj tekst", + "Shrink to fit" => "Zmniejsz, aby dopasować", + "Bold" => "Pogrubienie", + "Italic" => "Kursywa", + "None" => "Brak", + "Single" => "Pojedyncze", + "Double" => "Podwójne", + "Single Accounting" => "Pojedyncze księgowe", + "Double Accounting" => "Podwójne księgowe", + "Superscript" => "Indeks górny", + "Subscript" => "Indeks dolny", + "Color:" => "Kolor:", + "Outline" => "Kontur", + "Diagonal ↘" => "Ukośna ↘", + "Diagonal ↗" => "Ukośna ↗", + "none" => "brak", + "thin" => "cienka", + "medium" => "średnia", + "thick" => "gruba", + "dashed" => "kreskowana", + "dotted" => "kropkowana", + "double" => "podwójna", + "Background Color:" => "Kolor tła:", + "Locked" => "Zablokuj", + "Hidden" => "Ukryj", + "Search:" => "Szukaj:", + "e.g. lookup, average, date" => "np. wyszukaj, średnia, data", + "Date & Time" => "Data i godzina", + "Lookup & Reference" => "Wyszukiwanie i odwołania", + "Math & Trig" => "Matematyczne i trygonometryczne", + "Statistical" => "Statystyczne", + "Engineering" => "Inżynierskie", + "Database" => "Baza danych", + "Compatibility" => "Zgodność", + "Web" => "Sieć Web", + "Cube" => "Moduł", + "Add-in and Automation" => "Dodatki i automatyzacja", + "Find" => "Znajdź", + "Replace" => "Zamień", + "Find what:" => "Znajdź:", + "Replace with:" => "Zamień na:", + "Match case" => "Uwzględniaj wielkość liter", + "Match entire cell contents" => "Dopasuj do całej zawartości komórki", + "Within workbook" => "W obrębie skoroszytu", + "Replace All" => "Zamień wszystko", + "Find All" => "Znajdź wszystko", + "Find Next" => "Znajdź następny", + "All done. We made {count} replacements." => "Gotowe. Liczba zamian: {count}.", + "{count} cell(s) found" => "Znalezione komórki: {count}", + "Reference:" => "Odwołanie:", + "Special…" => "Specjalnie…", + "My list has headers" => "Moja lista ma nagłówki", + "Sort by" => "Sortuj według", + "Then by" => "Następnie według", + "Cell Values" => "Wartości komórek", + "Cell Color" => "Kolor komórki", + "A to Z" => "Od A do Z", + "Z to A" => "Od Z do A", + "+ Add Level" => "+ Dodaj poziom", + "New…" => "Nowy…", + "Edit…" => "Edytuj…", + "Name" => "Nazwa", + "Value" => "Wartość", + "Refers To" => "Odwołuje się do", + "Scope" => "Zakres", + "Workbook" => "Skoroszyt", + "No names defined" => "Brak zdefiniowanych nazw", + "Recommended Charts" => "Polecane wykresy", + "All Charts" => "Wszystkie wykresy", + "Clustered Column" => "Kolumnowy grupowany", + "Stacked Column" => "Kolumnowy skumulowany", + "100% Stacked Column" => "Kolumnowy 100% skumulowany", + "Clustered Bar" => "Słupkowy grupowany", + "Stacked Bar" => "Słupkowy skumulowany", + "100% Stacked Bar" => "Słupkowy 100% skumulowany", + "Line" => "Liniowy", + "Line with Markers" => "Liniowy ze znacznikami", + "Stacked Line" => "Liniowy skumulowany", + "Pie" => "Kołowy", + "Doughnut" => "Pierścieniowy", + "Area" => "Warstwowy", + "Stacked Area" => "Warstwowy skumulowany", + "Scatter" => "Punktowy", + "Scatter with Lines" => "Punktowy z liniami", + "Radar" => "Radarowy", + "Histogram" => "Histogram", + "Waterfall" => "Kaskadowy", + "Funnel" => "Lejkowy", + "Combo" => "Kombi", + "Chart data range:" => "Zakres danych wykresu:", + "Legend Entries (Series)" => "Wpisy legendy (serie)", + "Series{n}" => "Seria{n}", + "Keep" => "Zachowaj", + "Remove" => "Usuń", + "Horizontal (Category) Axis Labels:" => "Etykiety osi poziomej (kategorii):", + "There are no conditional formatting rules on this sheet." => "W tym arkuszu nie ma reguł formatowania warunkowego.", + "applies to" => "dotyczy", + "Type a command, e.g. freeze, chart, bold…" => "Wpisz polecenie, np. zablokuj, wykres, pogrubienie…", + "Set cell:" => "Ustaw komórkę:", + "To value:" => "Wartość docelowa:", + "By changing cell:" => "Zmieniając komórkę:", + "Goal Seeking found a solution: {value}" => "Szukanie wyniku znalazło rozwiązanie: {value}", + "Analysis Tools" => "Narzędzia analizy", + "Anova: Single Factor" => "Analiza wariancji: jednoczynnikowa", + "Correlation" => "Korelacja", + "Covariance" => "Kowariancja", + "Descriptive Statistics" => "Statystyka opisowa", + "Exponential Smoothing" => "Wygładzanie wykładnicze", + "F-Test Two-Sample for Variances" => "Test F: z dwiema próbami dla wariancji", + "Moving Average" => "Średnia ruchoma", + "Rank and Percentile" => "Ranga i percentyl", + "Regression" => "Regresja", + "t-Test: Paired Two Sample for Means" => "Test t: par skojarzonych z dwiema próbami dla średnich", + "t-Test: Two-Sample Assuming Equal Variances" => "Test t: z dwiema próbami zakładający równe wariancje", + "t-Test: Two-Sample Assuming Unequal Variances" => "Test t: z dwiema próbami zakładający nierówne wariancje", + "Output options" => "Opcje wyjścia", + "Output Range:" => "Zakres wyjściowy:", + "New Worksheet Ply:" => "Nowy arkusz:", + "Grouped By:" => "Grupowanie:", + "Labels in first row" => "Etykiety w pierwszym wierszu", + "Input Range:" => "Zakres wejściowy:", + "Variable 1 Range:" => "Zakres zmiennej 1:", + "Variable 2 Range:" => "Zakres zmiennej 2:", + "Summary statistics" => "Statystyki podsumowujące", + "Confidence Level for Mean (%), blank for none:" => "Poziom ufności dla średniej (%), puste = brak:", + "Kth Largest (blank for none):" => "K-ty największy (puste = brak):", + "Kth Smallest (blank for none):" => "K-ty najmniejszy (puste = brak):", + "Bin Range (blank for automatic bins):" => "Zakres przedziałów (puste = automatyczne przedziały):", + "Pareto (sorted histogram)" => "Pareto (posortowany histogram)", + "Cumulative Percentage" => "Procent skumulowany", + "Alpha:" => "Alfa:", + "Input Y Range:" => "Zakres wejściowy Y:", + "Input X Range:" => "Zakres wejściowy X:", + "Constant is Zero" => "Stała równa zero", + "Confidence Level (%):" => "Poziom ufności (%):", + "Residuals" => "Składniki resztowe", + "Standardized Residuals" => "Standardowe składniki resztowe", + "Normal Probability" => "Prawdopodobieństwo normalne", + "Interval:" => "Interwał:", + "Standard Errors" => "Błędy standardowe", + "Damping factor:" => "Współczynnik tłumienia:", + "Hypothesized Mean Difference:" => "Hipotetyczna różnica średnich:", + "Set Objective:" => "Ustaw cel:", + "To:" => "Na:", + "Value Of:" => "Wartość:", + "By Changing Variable Cells:" => "Przez zmienianie komórek zmiennych:", + "Subject to the Constraints:" => "Podlegające ograniczeniom:", + "Make Unconstrained Variables Non-Negative" => "Ustaw zmienne nieograniczone jako nieujemne", + "Select a Solving Method:" => "Wybierz metodę rozwiązywania:", + "GRG Nonlinear" => "Nieliniowa GRG", + "Solve" => "Rozwiąż", + "Keep Solver Solution" => "Zachowaj rozwiązanie dodatku Solver", + "Restore Original Values" => "Przywróć wartości oryginalne", + "The spelling check is complete for the entire sheet." => "Sprawdzanie pisowni w całym arkuszu zostało zakończone.", + "Not in Dictionary ({cell}):" => "Brak w słowniku ({cell}):", + "Suggestions:" => "Sugestie:", + "(No suggestions)" => "(Brak sugestii)", + "Ignore Once" => "Zignoruj raz", + "Add to Dictionary" => "Dodaj do słownika", + "Change" => "Zmień", + "Change All" => "Zmień wszystko", + "$ English (United States)" => "$ Angielski (Stany Zjednoczone)", + "Add Chart Element" => "Dodaj element wykresu", + "Align Left" => "Wyrównaj do lewej", + "Align Right" => "Wyrównaj do prawej", + "Bottom Align" => "Wyrównaj do dołu", + "Calculate Now (F9)" => "Oblicz teraz (F9)", + "Calculate Sheet (⇧F9)" => "Oblicz arkusz (⇧F9)", + "Calculation Options" => "Opcje obliczania", + "Cell Styles" => "Style komórki", + "Change Chart Type" => "Zmień typ wykresu", + "Check Accessibility" => "Sprawdź ułatwienia dostępu", + "Clear Filter" => "Wyczyść filtr", + "Column or Bar" => "Kolumnowy lub słupkowy", + "Comments pane" => "Okienko komentarzy", + "Convert the last ink stroke to a shape" => "Przekształć ostatnie pociągnięcie pióra w kształt", + "Convert to Range" => "Konwertuj na zakres", + "Copy" => "Kopiuj", + "Custom Sort" => "Sortowanie niestandardowe", + "Cut" => "Wytnij", + "Define Name…" => "Definiuj nazwę…", + "Delete Comment" => "Usuń komentarz", + "Delete Sheet" => "Usuń arkusz", + "Delete chart" => "Usuń wykres", + "Delete…" => "Usuń…", + "Dismiss" => "Zamknij", + "Down" => "W dół", + "Edit chart title" => "Edytuj tytuł wykresu", + "Erase ink strokes" => "Wymaż pociągnięcia pióra", + "Every command run in this session (replayable)" => "Każde polecenie uruchomione w tej sesji (można je odtworzyć)", + "Expand formula bar" => "Rozwiń pasek formuły", + "Filter by Selected Cell's Value" => "Filtruj według wartości zaznaczonej komórki", + "Find & Select" => "Znajdź i zaznacz", + "Forecast Sheet" => "Arkusz prognozy", + "Forecast end (date or number; blank: a third of the history):" => "Koniec prognozy (data lub liczba; puste: jedna trzecia historii):", + "Format Chart pane" => "Okienko formatowania wykresu", + "Format as Table" => "Formatuj jako tabelę", + "Hide" => "Ukryj", + "Hide Sheet" => "Ukryj arkusz", + "Hierarchy & more" => "Hierarchiczne i inne", + "Highlighter" => "Zakreślacz", + "How agents drive GridCraft (MCP / control channel)" => "Jak agenci sterują programem GridCraft (MCP / kanał sterowania)", + "Import a text or CSV file" => "Importuj plik tekstowy lub CSV", + "Insert Function" => "Wstaw funkcję", + "Insert Function (⇧F3)" => "Wstaw funkcję (⇧F3)", + "Insert Link" => "Wstaw łącze", + "Insert Sheet" => "Wstaw arkusz", + "Insert Slicer" => "Wstaw fragmentator", + "Insert a picture" => "Wstaw obraz", + "Insert a slicer to filter a table" => "Wstaw fragmentator, aby filtrować tabelę", + "Insert an icon" => "Wstaw ikonę", + "Insert…" => "Wstaw…", + "Line or Area" => "Liniowy lub warstwowy", + "Link…" => "Łącze…", + "Macros and scripts in this workbook (Alt+F8)" => "Makra i skrypty w tym skoroszycie (Alt+F8)", + "Middle Align" => "Wyrównaj do środka", + "More commands" => "Więcej poleceń", + "Move or Copy Sheet…" => "Przenieś lub kopiuj arkusz…", + "New sheet (⇧F11)" => "Nowy arkusz (⇧F11)", + "Next sheet" => "Następny arkusz", + "Page Breaks" => "Podziały stron", + "Paper Size" => "Rozmiar papieru", + "Pick From Drop-down List…" => "Wybierz z listy rozwijanej…", + "Pie or Doughnut" => "Kołowy lub pierścieniowy", + "Previous sheet" => "Poprzedni arkusz", + "Print Area" => "Obszar wydruku", + "Print Titles" => "Tytuły wydruku", + "Protect Workbook structure" => "Chroń strukturę skoroszytu", + "Redo" => "Ponów", + "Scatter or Bubble" => "Punktowy lub bąbelkowy", + "Search and run any command" => "Wyszukaj i uruchom dowolne polecenie", + "Search commands" => "Wyszukaj polecenia", + "Select and move ink and shapes" => "Zaznaczaj i przesuwaj pismo odręczne oraz kształty", + "Series…" => "Seria danych…", + "Share: export or save a copy" => "Udostępnij: eksportuj lub zapisz kopię", + "Show Formulas (⌃`)" => "Pokaż formuły (⌃`)", + "Slicer" => "Fragmentator", + "Sort & Filter" => "Sortuj i filtruj", + "Spelling (F7)" => "Pisownia (F7)", + "Statistic" => "Statystyczne", + "Switch Row/Column" => "Przełącz wiersz/kolumnę", + "Table Styles" => "Style tabeli", + "Text to Columns" => "Tekst jako kolumny", + "The output range already holds data. Replace it with the report?" => "Zakres wyjściowy zawiera już dane. Zastąpić je raportem?", + "Top Align" => "Wyrównaj do góry", + "Undo" => "Cofnij", + "Undo list" => "Lista cofania", + "Unhide Sheet…" => "Odkryj arkusz…", + "Up" => "W górę", + "Version, contributors and the AI models that helped" => "Wersja, współtwórcy i modele AI, które pomogły", + "What-If Analysis" => "Analiza warunkowa", + "Zoom In" => "Powiększ", + "Zoom Out" => "Pomniejsz", + "Zoom to 100%" => "Powiększenie 100%", + "Zoom to Selection" => "Powiększ do zaznaczenia", + "Zoom…" => "Powiększenie…", + "£ English (United Kingdom)" => "£ Angielski (Wielka Brytania)", + "¥ Japanese" => "¥ Japoński", + "€ Euro" => "€ Euro", + "Tab|Insert" => "Wstawianie", + "AutoSave" => "Autozapis", + "Insert\nSlicer" => "Wstaw\nfragmentator", + "Pen\nBlack" => "Pióro\nczarne", + "Pen\nBlue" => "Pióro\nniebieskie", + "Pen\nRed" => "Pióro\nczerwone", + "Protect\nSheet" => "Chroń\narkusz", + "Watch\nWindow" => "Okno\nczujki", + "Workbook\nStatistics" => "Statystyki\nskoroszytu", + "PivotTable Fields" => "Pola tabeli przestawnej", + "Choose fields to add to report:" => "Wybierz pola, które chcesz dodać do raportu:", + "Use a field's menu to move it between areas:" => "Przenoś pole między obszarami za pomocą jego menu:", + "Filters" => "Filtry", + "Values" => "Wartości", + "Move to Row Labels" => "Przenieś do etykiet wierszy", + "Move to Column Labels" => "Przenieś do etykiet kolumn", + "Move to Report Filter" => "Przenieś do filtru raportu", + "Move to Values" => "Przenieś do wartości", + "Summarize by Sum" => "Podsumuj według: Suma", + "Summarize by Count" => "Podsumuj według: Licznik", + "Summarize by Average" => "Podsumuj według: Średnia", + "Summarize by Max" => "Podsumuj według: Maksimum", + "Summarize by Min" => "Podsumuj według: Minimum", + "Show as No Calculation" => "Pokaż jako: Bez obliczeń", + "Show as % of Grand Total" => "Pokaż jako: % sumy końcowej", + "Show as Running Total" => "Pokaż jako: Suma bieżąca", + "Show as Rank" => "Pokaż jako: Pozycja", + "Group by Years" => "Grupuj według lat", + "Group by Quarters" => "Grupuj według kwartałów", + "Group by Months" => "Grupuj według miesięcy", + "Remove Field" => "Usuń pole", + "Refresh" => "Odśwież", + "Calculated Field…" => "Pole obliczeniowe…", + "Report Layout" => "Układ raportu", + "Compact" => "Kompaktowy", + "Tabular" => "Tabelaryczny", + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/ro.rs b/crates/ui-egui/src/i18n/ro.rs new file mode 100644 index 000000000..699e30ff3 --- /dev/null +++ b/crates/ui-egui/src/i18n/ro.rs @@ -0,0 +1,1011 @@ +//! 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", + "Format Painter (double-click to keep it on)" => "Pensulă de formatare (dublu clic pentru a o menține activă)", + "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ă", + "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ângă", + "Right Margin" => "Margine dreaptă", + "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…" => "Configurare 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ângă (in):", + "Right margin (in):" => "Margine dreaptă (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 by Selected Cell's Value" => "Filtrare după valoarea celulei selectate", + "Find & Select" => "Găsire și selectare", + "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" => "Inserare link", + "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", + "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" => "Refacere", + "Scatter or Bubble" => "Dispersie sau bule", + "Search and run any command" => "Căutați și rulați orice comandă", + "Search commands" => "Căutare comenzi", + "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 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" => "Anulare acțiune", + "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", + "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.", + "Options|Editing" => "Editing", + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/tr.rs b/crates/ui-egui/src/i18n/tr.rs index becbc3f5f..ce2bc8e1e 100644 --- a/crates/ui-egui/src/i18n/tr.rs +++ b/crates/ui-egui/src/i18n/tr.rs @@ -10,12 +10,11 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Transpose" => "Devrik Dönüştür", "Paste Link" => "Bağlantı Yapıştır", "Paste Special…" => "Özel Yapıştır…", - "Cut (⌘X)" => "Kes (⌘X)", - "Copy (⌘C)" => "Kopyala (⌘C)", + "Cut" => "Kes", + "Copy" => "Kopyala", "Format Painter (double-click to keep it on)" => "Biçim Boyacısı (açık tutmak için çift tıklayın)", - "Bold (⌘B)" => "Kalın (⌘B)", - "Italic (⌘I)" => "İtalik (⌘I)", - "Underline (⌘U)" => "Altı Çizili (⌘U)", + "Bold" => "Kalın", + "Italic" => "İtalik", "Double Underline" => "Çift Alt Çizgi", "Strikethrough" => "Üstü Çizili", "Underline" => "Altı Çizili", @@ -83,7 +82,6 @@ pub(super) fn translate(text: &str) -> Option<&'static str> { "Clear Comments and Notes" => "Açıklamaları ve Notları Temizle", "Clear Hyperlinks" => "Köprüleri Temizle", "AutoSum" => "Otomatik Toplam", - "AutoSum (⌘⇧T)" => "Otomatik Toplam (⌘⇧T)", "Flash\nFill" => "Hızlı\nDoldurma", "Flash Fill" => "Hızlı Doldurma", "Fill" => "Doldur", diff --git a/crates/ui-egui/src/i18n/uk.rs b/crates/ui-egui/src/i18n/uk.rs new file mode 100644 index 000000000..97659cc12 --- /dev/null +++ b/crates/ui-egui/src/i18n/uk.rs @@ -0,0 +1,977 @@ +//! Ukrainian translations for the interface strings in i18n.rs. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Вставити", + "Paste Values" => "Вставити значення", + "Paste Formulas" => "Вставити формули", + "Paste Formatting" => "Вставити форматування", + "Transpose" => "Транспонувати", + "Paste Link" => "Вставити зв'язок", + "Paste Special…" => "Спеціальна вставка…", + "Insert Copied Cells" => "Вставити скопійовані комірки", + "Insert Copied Cells…" => "Вставити скопійовані комірки…", + "Insert Cut Cells" => "Вставити вирізані комірки", + "Insert Paste" => "Вставка зі зсувом", + "Format Painter (double-click to keep it on)" => "Формат за зразком (двічі клацніть, щоб закріпити)", + "Double Underline" => "Подвійне підкреслення", + "Strikethrough" => "Перекреслення", + "Underline" => "Підкреслення", + "Increase Font Size" => "Збільшити розмір шрифту", + "Decrease Font Size" => "Зменшити розмір шрифту", + "Wrap Text" => "Переносити текст", + "Merge & Center" => "Об'єднати і розмістити по центру", + "Merge Cells" => "Об'єднати комірки", + "Merge Across" => "Об'єднати за рядками", + "Unmerge Cells" => "Роз'єднати комірки", + "Fill Color" => "Колір заливки", + "Font Color" => "Колір шрифту", + "Borders" => "Межі", + "Top\nAlign" => "За верхнім\nкраєм", + "Middle\nAlign" => "За серединою\nвертикально", + "Bottom\nAlign" => "За нижнім\nкраєм", + "Left" => "Ліворуч", + "Right" => "Праворуч", + "Center" => "По центру", + "Horizontal" => "За горизонталлю", + "Vertical Text" => "Вертикальний текст", + "Decrease Indent" => "Зменшити відступ", + "Increase Indent" => "Збільшити відступ", + "Orientation" => "Орієнтація", + "Angle Counterclockwise" => "Повернути проти годинникової стрілки", + "Angle Clockwise" => "Повернути за годинниковою стрілкою", + "Rotate Text Up" => "Повернути текст угору", + "Rotate Text Down" => "Повернути текст униз", + "Accounting Number Format" => "Фінансовий числовий формат", + "Percent Style" => "Відсотковий формат", + "Comma Style" => "Розділювач розрядів", + "Increase Decimal" => "Збільшити розрядність", + "Decrease Decimal" => "Зменшити розрядність", + "More Accounting Formats…" => "Інші фінансові формати…", + "Conditional\nFormatting" => "Умовне\nформатування", + "Conditional Formatting" => "Умовне форматування", + "Format\nas Table" => "Форматувати\nяк таблицю", + "Cell\nStyles" => "Стилі\nкомірок", + "Format Cells…" => "Формат комірок…", + "Format Cell Alignment…" => "Вирівнювання комірок…", + "Format\nPane" => "Область\nформатування", + "Format" => "Формат", + "Insert" => "Вставити", + "Insert Cells…" => "Вставити комірки…", + "Delete" => "Видалити", + "Delete Cells…" => "Видалити комірки…", + "Insert Sheet Rows" => "Вставити рядки аркуша", + "Insert Sheet Columns" => "Вставити стовпці аркуша", + "Delete Sheet Rows" => "Видалити рядки аркуша", + "Delete Sheet Columns" => "Видалити стовпці аркуша", + "Row Height…" => "Висота рядка…", + "AutoFit Row Height" => "Автопідбір висоти рядка", + "Column Width…" => "Ширина стовпця…", + "AutoFit Column Width" => "Автопідбір ширини стовпця", + "Default Width…" => "Ширина за замовчуванням…", + "Hide Rows" => "Сховати рядки", + "Unhide Rows" => "Показати рядки", + "Hide Columns" => "Сховати стовпці", + "Unhide Columns" => "Показати стовпці", + "Lock Cell" => "Заблокувати комірку", + "Clear" => "Очистити", + "Clear All" => "Очистити все", + "Clear Formats" => "Очистити формати", + "Clear Contents" => "Очистити вміст", + "Clear Comments and Notes" => "Видалити коментарі та нотатки", + "Clear Hyperlinks" => "Видалити гіперпосилання", + "AutoSum" => "Автосума", + "Flash\nFill" => "Миттєве\nзаповнення", + "Flash Fill" => "Миттєве заповнення", + "Fill" => "Заповнити", + "Clear Print Area" => "Очистити область друку", + "Find &\nSelect" => "Знайти і\nвиділити", + "Find…" => "Знайти…", + "Replace…" => "Замінити…", + "Go To…" => "Перейти…", + "Go To Special…" => "Виділити групу комірок…", + "PivotTable" => "Зведена таблиця", + "Recommended\nCharts" => "Рекомендовані\nдіаграми", + "Table" => "Таблиця", + "Pictures" => "Зображення", + "Shapes" => "Фігури", + "Icons" => "Значки", + "Text\nBox" => "Текстове\nполе", + "Comment" => "Коментар", + "New\nComment" => "Новий\nкоментар", + "New Note" => "Нова нотатка", + "Show/Hide Note" => "Показати/сховати нотатку", + "Header &\nFooter" => "Верхній і\nнижній колонтитули", + "Text to\nColumns" => "Текст\nу стовпці", + "Link" => "Посилання", + "Symbol" => "Символ", + "Sparklines" => "Спарклайни", + "Checkbox" => "Прапорець", + "Insert checkboxes in the selected cells" => "Вставити прапорці у виділені комірки", + "Header & Footer" => "Верхній і нижній колонтитули", + "Draw with ink" => "Малювання від руки", + "Eraser" => "Гумка", + "Ink to\nShape" => "Перетворити рукописний\nввід на фігуру", + "Select\nObjects" => "Вибрати\nоб'єкти", + "Themes" => "Теми", + "Margins" => "Поля", + "Left Margin" => "Ліве поле", + "Right Margin" => "Праве поле", + "Top Margin" => "Верхнє поле", + "Bottom Margin" => "Нижнє поле", + "Header Margin" => "Поле верхнього колонтитула", + "Footer Margin" => "Поле нижнього колонтитула", + "Size" => "Розмір", + "Print\nArea" => "Область\nдруку", + "Set Print Area" => "Задати область друку", + "Breaks" => "Розриви", + "Insert Page Break" => "Вставити розрив сторінки", + "Remove Page Break" => "Видалити розрив сторінки", + "Reset All Page Breaks" => "Скинути всі розриви сторінок", + "Print\nTitles" => "Друкувати\nзаголовки", + "Sheet\nRight-to-Left" => "Аркуш\nправоруч наліво", + "Sheet Right-to-Left" => "Аркуш праворуч наліво", + "Narrow" => "Вузькі", + "Wide" => "Широкі", + "Normal" => "Звичайні", + "Portrait" => "Книжкова", + "Landscape" => "Альбомна", + "Custom Margins…" => "Нетипові поля…", + "Insert\nFunction" => "Вставити\nфункцію", + "Name\nManager" => "Менеджер\nімен", + "Define Name" => "Присвоїти ім'я", + "Use in Formula" => "Використати у формулі", + "Create from Selection" => "Створити з виділеного", + "Trace Precedents" => "Впливальні комірки", + "Trace Dependents" => "Залежні комірки", + "Remove Arrows" => "Прибрати стрілки", + "Show Formulas" => "Показати формули", + "Error Checking" => "Перевірка помилок", + "Evaluate Formula" => "Обчислити формулу", + "Watch Window" => "Окно контрольних значень", + "Calculation\nOptions" => "Параметри\nобчислень", + "Calculate Now" => "Обчислити зараз", + "Calculate Sheet" => "Обчислити аркуш", + "Automatic" => "Автоматично", + "Automatic Except for Data Tables" => "Автоматично, крім таблиць даних", + "Manual" => "Вручну", + "Sort &\nFilter" => "Сортування і\nфільтр", + "Sort" => "Сортування", + "Sort A to Z" => "Сортування від А до Я", + "Sort Z to A" => "Сортування від Я до А", + "Custom Sort…" => "Нетипове сортування…", + "Filter" => "Фільтр", + "Reapply" => "Повторити", + "Get Data\n(Text/CSV)" => "Отримати дані\n(текст/CSV)", + "Remove\nDuplicates" => "Видалити\nдублікати", + "Data\nValidation" => "Перевірка\nданих", + "Data Validation" => "Перевірка даних", + "Data Validation…" => "Перевірка даних…", + "Circle Invalid Data" => "Обвести неправильні дані", + "Clear Validation" => "Очистити перевірку даних", + "Group" => "Групувати", + "Ungroup" => "Розгрупувати", + "Show Detail" => "Показати деталі", + "Hide Detail" => "Сховати деталі", + "Subtotal" => "Проміжний підсумок", + "Data\nAnalysis" => "Аналіз даних", + "Data Analysis" => "Аналіз даних", + "Solver" => "Пошук рішення", + "What-If\nAnalysis" => "Аналіз «що\nякщо»", + "Data Table…" => "Таблиця даних…", + "Scenario Manager…" => "Менеджер сценаріїв…", + "Goal Seek…" => "Підбір параметра…", + "Forecast\nSheet" => "Аркуш\nпрогнозу", + "Spelling" => "Орфографія", + "Check\nAccessibility" => "Перевірка\nдоступності", + "Threaded Comments" => "Коментарі з гілками", + "Show\nComments" => "Показати\nкоментарі", + "Previous" => "Назад", + "Next" => "Далі", + "Previous Comment" => "Попередній коментар", + "Next Comment" => "Наступний коментар", + "Show All Notes" => "Показати всі нотатки", + "Convert to Comments" => "Перетворити на коментарі", + "Protect\nWorkbook" => "Захистити\nкнигу", + "Allow Edit\nRanges" => "Дозволити\nредагування діапазонів", + "Allow Edit Ranges" => "Дозволити редагування діапазонів", + "Unprotect\nSheet" => "Зняти захист\nаркуша", + "Protect Sheet…" => "Захистити аркуш…", + "Comments" => "Коментарі", + "Notes" => "Нотатки", + "Page Break\nPreview" => "Попередній перегляд\nрозривів сторінок", + "Page\nLayout" => "Розмітка\nсторінки", + "Formula Bar" => "Рядок формул", + "Gridlines" => "Сітка", + "Headings" => "Заголовки", + "Zoom" => "Масштаб", + "100%" => "100%", + "Zoom to\nSelection" => "Масштаб за\nвиділенням", + "Freeze\nPanes" => "Закріпити\nобласті", + "Freeze Panes" => "Закріпити області", + "Freeze Top Row" => "Закріпити верхній рядок", + "Freeze First Column" => "Закріпити перший стовпець", + "Unfreeze Panes" => "Зняти закріплення областей", + "Dark Mode" => "Темний режим", + "Interface language" => "Мова інтерфейсу", + "Interface size" => "Розмір інтерфейсу", + "Auto" => "Авто", + "Drag to freeze columns" => "Перетягніть, щоб закріпити стовпці", + "Drag to freeze rows" => "Перетягніть, щоб закріпити рядки", + "Command\nPalette" => "Палітра\nкоманд", + "Agent\nControl" => "Керування\nагентом", + "Action\nJournal" => "Журнал\nдій", + "About\nGridCraft" => "Про\nGridCraft", + "Share" => "Поділитися", + "Add Chart\nElement" => "Додати елемент\nдіаграми", + "Change\nChart Type" => "Змінити тип\nдіаграми", + "Switch\nRow/Column" => "Поміняти\nрядки/стовпці", + "Select\nData" => "Вибрати\nдані", + "Data Labels: None" => "Підписи даних: немає", + "Data Labels: Show" => "Підписи даних: показати", + "Legend: None" => "Легенда: немає", + "Legend: Bottom" => "Легенда: знизу", + "Legend: Top" => "Легенда: згори", + "Legend: Right" => "Легенда: праворуч", + "Gridlines: None" => "Лінії сітки: немає", + "Gridlines: Show" => "Лінії сітки: показати", + "Chart\nTitle" => "Назва\nдіаграми", + "Delete\nChart" => "Видалити\nдіаграму", + "Convert\nto Range" => "Перетворити\nна діапазон", + "Table\nStyles" => "Стилі\nтаблиць", + "Top 10 Items" => "Перші 10 елементів", + "Top 10%" => "Найбільші 10%", + "Bottom 10 Items" => "Останні 10 елементів", + "Bottom 10%" => "Найменші 10%", + "Above Average" => "Вище середнього", + "Below Average" => "Нижче середнього", + "Clear Rules from Entire Sheet" => "Очистити правила на всьому аркуші", + "Clear Rules from Selected Cells" => "Очистити правила для виділених комірок", + "Constants" => "Константи", + "Data Bars" => "Гістограми", + "Color Scales" => "Кольорові шкали", + "Icon Sets" => "Набори значків", + "Home" => "Головна", + "Draw" => "Малювання", + "Page Layout" => "Розмітка сторінки", + "Formulas" => "Формули", + "Data" => "Дані", + "Review" => "Рецензування", + "View" => "Вигляд", + "Automate" => "Автоматизація", + "Table Design" => "Конструктор таблиць", + "Chart Design" => "Конструктор діаграм", + "Ready" => "Готово", + "Enter" => "Ввід", + "Edit" => "Редагування", + "Point" => "Вказання", + "Calculate" => "Обчислення", + "Select destination and press Enter or choose Paste" => "Виберіть місце вставлення та натисніть Enter або виберіть «Вставити»", + "General" => "Загальний", + "Number" => "Числовий", + "Currency" => "Грошовий", + "Accounting" => "Фінансовий", + "Date" => "Дата", + "Time" => "Час", + "Percentage" => "Відсотковий", + "Fraction" => "Дробовий", + "Scientific" => "Експоненціальний", + "Text" => "Текстовий", + "Special" => "Спеціальний", + "Custom" => "Користувацький", + "Short Date" => "Коротка дата", + "Long Date" => "Довга дата", + "More Number Formats…" => "Інші числові формати…", + "Financial" => "Фінансові", + "Logical" => "Логічні", + "Date &\nTime" => "Дата і\nчас", + "Lookup &\nReference" => "Пошук і\nпосилання", + "Math &\nTrig" => "Математичні і\nтригонометричні", + "More\nFunctions" => "Інші\nфункції", + "Page Layout|Orientation" => "Орієнтація", + "Display theme" => "Тема оформлення", + "Animations" => "Анімація", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Рамка виділення плавно ковзає до нової комірки, а не перескакує" + } + "System" => "Системна", + "Light" => "Світла", + "Dark" => "Темна", + "Sheet Options|View" => "На екрані", + "Print" => "Друк", + // Page Layout view and the Header & Footer tab. + "Click to add data" => "Клацніть, щоб додати дані", + "Add header" => "Додати верхній колонтитул", + "Add footer" => "Додати нижній колонтитул", + "(none)" => "(немає)", + "Header" => "Верхній колонтитул", + "Footer" => "Нижній колонтитул", + "Page\nNumber" => "Номер\nсторінки", + "Number\nof Pages" => "Кількість\nсторінок", + "Current\nDate" => "Поточна\nдата", + "Current\nTime" => "Поточний\nчас", + "File\nPath" => "Шлях\nдо файлу", + "File\nName" => "Ім'я\nфайлу", + "Sheet\nName" => "Ім'я\nаркуша", + "Go to\nHeader" => "Перейти до верхнього\nколонтитула", + "Go to\nFooter" => "Перейти до нижнього\nколонтитула", + "Page Number" => "Номер сторінки", + "Number of Pages" => "Кількість сторінок", + "Current Date" => "Поточна дата", + "Current Time" => "Поточний час", + "File Path" => "Шлях до файлу", + "File Name" => "Ім'я файлу", + "Sheet Name" => "Ім'я аркуша", + "Go to Header" => "Перейти до верхнього колонтитула", + "Different First Page" => "Окремий колонтитул для першої сторінки", + "Different Odd & Even Pages" => "Різні колонтитули для парних і непарних сторінок", + "Go to Footer" => "Перейти до нижнього колонтитула", + "Ruler" => "Лінійка", + // File › Backstage view. + "File" => "Файл", + "Back" => "Назад", + "New" => "Створити", + "Open" => "Відкрити", + "Info" => "Відомості", + "Save" => "Зберегти", + "Save As" => "Зберегти як", + "Export" => "Експорт", + "Close" => "Закрити", + "Options" => "Параметри", + "Blank workbook" => "Порожня книга", + "Recent" => "Останні", + "No recent workbooks yet." => "Нещодавніх книг поки немає.", + "More workbooks" => "Інші книги", + "Modified" => "Змінено", + "Not available" => "Недоступно", + "Just now" => "Щойно", + "Yesterday" => "Вчора", + "{n} min ago" => "{n} хв тому", + "{n} h ago" => "{n} год тому", + "{n} days ago" => "{n} дн тому", + "{n} weeks ago" => "{n} тиж тому", + "{n} months ago" => "{n} міс тому", + "{n} years ago" => "{n} р. тому", + "Browse…" => "Огляд…", + "Not saved yet" => "Ще не збережено", + "Location" => "Розташування", + "Sheets" => "Аркуші", + "Protect Workbook" => "Захистити книгу", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "Структура аркушів заблокована: аркуші не можна додавати, переміщувати, перейменовувати чи видаляти." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Заблокувати структуру аркушів, щоб їх не можна було додавати, переміщувати, перейменовувати чи видаляти." + } + "Properties" => "Властивості", + "Title" => "Назва", + "Subject" => "Тема", + "Author" => "Автор", + "Company" => "Організація", + "Keywords" => "Ключові слова", + "Description" => "Опис", + "No workbook is open." => "Немає відкритих книг.", + "Save as type" => "Тип файлу", + "Excel Workbook (*.xlsx)" => "Книга Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (розділювач — кома) (*.csv)", + "Web Page (*.html)" => "Веб-сторінка (*.html)", + "PDF (*.pdf)" => "Файл PDF (*.pdf)", + "Download" => "Завантажити", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "CSV-файл, веб-сторінка чи PDF — це копія: книга залишається у своєму файлі." + } + "Save the workbook under another name or in another folder." => "Зберегти книгу під іншим іменем або в іншій теці.", + "Print Active Sheets" => "Надрукувати активні аркуші", + "Print Entire Workbook" => "Надрукувати всю книгу", + "Fit Sheet on One Page" => "Вмістити аркуш на одну сторінку", + "Page Setup…" => "Параметри сторінки…", + "Page {page} of {pages}" => "Сторінка {page} з {pages}", + "Nothing to print." => "Немає що друкувати.", + "Previous page" => "Попередня сторінка", + "Next page" => "Наступна сторінка", + "Create PDF" => "Створити PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Зберегти аркуш як PDF-документ із збереженням розмітки сторінки.", + "Change File Type" => "Змінити тип файлу", + "CSV (Comma delimited)" => "CSV (розділювачі — коми)", + "Save the active sheet as comma-separated text." => "Зберегти активний аркуш як текст із розділювачами-комами.", + "Web Page (.html)" => "Веб-сторінка (.html)", + "Save the workbook as a web page." => "Зберегти книгу як веб-сторінку.", + "Options|General" => "Загальні", + "Options|Save" => "Збереження", + "Show formula bar" => "Показувати рядок формул", + "Enable AutoComplete for cell values" => "Увімкнути автозавершення значень комірок", + "Save .xlsx workbooks automatically after every change" => "Автоматично зберігати книги .xlsx після кожної зміни", + "Workbook calculation" => "Обчислення в книзі", + "Enable iterative calculation" => "Увімкнути ітеративні обчислення", + "Calculation settings are saved with the workbook." => "Параметри обчислень зберігаються разом із книгою.", + "OK" => "OK", + "Cancel" => "Cancel", + "Don't Save" => "Don't Save", + "Open…" => "Open…", + "Show password" => "Show password", + "Start a new workbook" => "Start a new workbook", + "Household Budget" => "Household Budget", + "Quarterly Sales Dashboard" => "Quarterly Sales Dashboard", + "Gradebook" => "Gradebook", + "this workbook" => "this workbook", + "This workbook" => "This workbook", + "Do you want to save the changes you made to {title}?" => "Do you want to save the changes you made to {title}?", + "Save a copy as .{format}" => "Save a copy as .{format}", + "Select a chart first." => "Select a chart first.", + "Text Box" => "Text Box", + "Select Data" => "Select Data", + "Row Height" => "Row Height", + "Column Width" => "Column Width", + "Standard Width" => "Standard Width", + "Rename Sheet" => "Rename Sheet", + "Move or Copy" => "Move or Copy", + "Protect Sheet" => "Protect Sheet", + "Protect Structure and Windows" => "Protect Structure and Windows", + "Unprotect Workbook" => "Unprotect Workbook", + "Unprotect Sheet" => "Unprotect Sheet", + "Password" => "Password", + "Unhide" => "Unhide", + "Paste Special" => "Paste Special", + "Series" => "Series", + "New Comment" => "New Comment", + "Insert Hyperlink" => "Insert Hyperlink", + "Create Sparklines" => "Create Sparklines", + "Page Setup" => "Page Setup", + "Convert Text to Columns" => "Convert Text to Columns", + "Remove Duplicates" => "Remove Duplicates", + "Goal Seek" => "Goal Seek", + "Create Forecast Worksheet" => "Create Forecast Worksheet", + "Solver Parameters" => "Solver Parameters", + "Solver Results" => "Solver Results", + "Edit Name" => "Edit Name", + "New Name" => "New Name", + "Format Cells" => "Format Cells", + "Formula Builder" => "Formula Builder", + "Find and Replace" => "Find and Replace", + "Go To" => "Go To", + "Insert Calculated Field" => "Insert Calculated Field", + "Go To Special" => "Go To Special", + "Name Manager" => "Name Manager", + "Conditional Formatting Rules Manager" => "Conditional Formatting Rules Manager", + "Search Commands" => "Search Commands", + "Agent Control" => "Agent Control", + "About GridCraft" => "About GridCraft", + "Insert Chart" => "Insert Chart", + "Select Data Source" => "Select Data Source", + "Action Journal" => "Action Journal", + "Macros" => "Macros", + "Workbook Statistics" => "Workbook Statistics", + "Accessibility" => "Accessibility", + "Chart Title" => "Chart Title", + "Place Picture in Cell" => "Place Picture in Cell", + "Place Picture over Cells" => "Place Picture over Cells", + "Pick From List" => "Pick From List", + "Save a Copy" => "Save a Copy", + "Save Changes?" => "Save Changes?", + "Shift cells right" => "Shift cells right", + "Shift cells down" => "Shift cells down", + "Shift cells left" => "Shift cells left", + "Shift cells up" => "Shift cells up", + "Entire row" => "Entire row", + "Entire column" => "Entire column", + "Row height (pixels):" => "Row height (pixels):", + "Column width (characters):" => "Column width (characters):", + "Standard column width (pixels):" => "Standard column width (pixels):", + "Name:" => "Name:", + "Before sheet (position, 0 = first):" => "Before sheet (position, 0 = first):", + "Create a copy" => "Create a copy", + "Sheets: {sheets}" => "Sheets: {sheets}", + "Password (optional):" => "Password (optional):", + "Password:" => "Password:", + "Allow all users of this sheet to:" => "Allow all users of this sheet to:", + "Format cells" => "Format cells", + "Format columns" => "Format columns", + "Format rows" => "Format rows", + "Insert rows" => "Insert rows", + "Delete rows" => "Delete rows", + "Use AutoFilter" => "Use AutoFilter", + " (password, unlocked)" => " (password, unlocked)", + " (password)" => " (password)", + "No ranges yet." => "No ranges yet.", + "Ranges that stay editable when the sheet is protected:" => "Ranges that stay editable when the sheet is protected:", + "Action" => "Action", + "Modify" => "Modify", + "Unlock with password" => "Unlock with password", + "Title:" => "Title:", + "Refers to cells:" => "Refers to cells:", + "Range password:" => "Range password:", + "New title (Modify):" => "New title (Modify):", + "Remove the password (Modify)" => "Remove the password (Modify)", + "'{file}' is protected." => "'{file}' is protected.", + "Unhide sheet:" => "Unhide sheet:", + "Hidden: {sheets}" => "Hidden: {sheets}", + "All" => "All", + "Formulas (F)" => "Formulas (F)", + "Values (V)" => "Values (V)", + "Formats (T)" => "Formats (T)", + "Comments and notes (C)" => "Comments and notes (C)", + "Validation" => "Validation", + "All except borders" => "All except borders", + "Column widths" => "Column widths", + "Formulas and number formats" => "Formulas and number formats", + "Values and number formats" => "Values and number formats", + "Operation" => "Operation", + "Add" => "Add", + "Subtract" => "Subtract", + "Multiply" => "Multiply", + "Divide" => "Divide", + "Skip blanks" => "Skip blanks", + "Transpose (E)" => "Transpose (E)", + "Series in" => "Series in", + "Columns" => "Columns", + "Rows" => "Rows", + "Type" => "Type", + "Linear" => "Linear", + "Growth" => "Growth", + "Date unit" => "Date unit", + "Day" => "Day", + "Weekday" => "Weekday", + "Month" => "Month", + "Year" => "Year", + "Step value:" => "Step value:", + "Stop value:" => "Stop value:", + "Start a conversation:" => "Start a conversation:", + "Note:" => "Note:", + "Display:" => "Display:", + "Link to (web address, e-mail or Sheet!A1):" => "Link to (web address, e-mail or Sheet!A1):", + "ScreenTip:" => "ScreenTip:", + "Data Range:" => "Data Range:", + "Location Range:" => "Location Range:", + "Markers" => "Markers", + "Footer:" => "Footer:", + "Left margin (in):" => "Left margin (in):", + "Right margin (in):" => "Right margin (in):", + "Top margin (in):" => "Top margin (in):", + "Bottom margin (in):" => "Bottom margin (in):", + "Header (in):" => "Header (in):", + "Footer (in):" => "Footer (in):", + "Tab" => "Tab", + "Semicolon" => "Semicolon", + "Comma" => "Comma", + "Space" => "Space", + "Other:" => "Other:", + "Treat consecutive delimiters as one" => "Treat consecutive delimiters as one", + "Destination:" => "Destination:", + "My data has headers" => "My data has headers", + "Columns (blank = all, e.g. A,C):" => "Columns (blank = all, e.g. A,C):", + "Timeline range (blank: first column of the selection):" => "Timeline range (blank: first column of the selection):", + "Values range (blank: second column of the selection):" => "Values range (blank: second column of the selection):", + "Confidence interval" => "Confidence interval", + "Confidence level (%):" => "Confidence level (%):", + "Seasonality (auto, 0 for none, or a season length):" => "Seasonality (auto, 0 for none, or a season length):", + "Fill missing points using" => "Fill missing points using", + "Interpolation" => "Interpolation", + "Zeros" => "Zeros", + "Aggregate duplicates using" => "Aggregate duplicates using", + "Average" => "Average", + "Count" => "Count", + "CountA" => "CountA", + "Max" => "Max", + "Median" => "Median", + "Min" => "Min", + "Sum" => "Sum", + "Product" => "Product", + "Include forecast statistics" => "Include forecast statistics", + "Chart" => "Chart", + "Line chart" => "Line chart", + "Column chart" => "Column chart", + "At each change in (column letter):" => "At each change in (column letter):", + "Use function" => "Use function", + "Add subtotal to (columns, e.g. C,D):" => "Add subtotal to (columns, e.g. C,D):", + "Magnification" => "Magnification", + "Custom (%):" => "Custom (%):", + "Scope (Workbook or sheet name):" => "Scope (Workbook or sheet name):", + "Comment:" => "Comment:", + "Refers to:" => "Refers to:", + "Allow" => "Allow", + "Any value" => "Any value", + "Whole number" => "Whole number", + "Decimal" => "Decimal", + "List" => "List", + "Text length" => "Text length", + "between" => "between", + "not between" => "not between", + "equal to" => "equal to", + "not equal to" => "not equal to", + "greater than" => "greater than", + "less than" => "less than", + "greater than or equal to" => "greater than or equal to", + "less than or equal to" => "less than or equal to", + "Minimum / Source / Formula:" => "Minimum / Source / Formula:", + "Maximum:" => "Maximum:", + "Ignore blank" => "Ignore blank", + "In-cell dropdown" => "In-cell dropdown", + "Input message:" => "Input message:", + "Error style" => "Error style", + "Stop" => "Stop", + "Warning" => "Warning", + "Information" => "Information", + "Error message:" => "Error message:", + "Format cells that are (value):" => "Format cells that are (value):", + "and:" => "and:", + "Format cells that contain the text:" => "Format cells that contain the text:", + "Format cells that contain a date occurring:" => "Format cells that contain a date occurring:", + "Today" => "Today", + "Tomorrow" => "Tomorrow", + "In the last 7 days" => "In the last 7 days", + "Last week" => "Last week", + "This week" => "This week", + "Next week" => "Next week", + "Last month" => "Last month", + "This month" => "This month", + "Next month" => "Next month", + "Format values where this formula is true:" => "Format values where this formula is true:", + "with" => "with", + "Light Red Fill with Dark Red Text" => "Light Red Fill with Dark Red Text", + "Yellow Fill with Dark Yellow Text" => "Yellow Fill with Dark Yellow Text", + "Green Fill with Dark Green Text" => "Green Fill with Dark Green Text", + "Light Red Fill" => "Light Red Fill", + "Red Text" => "Red Text", + "Red Border" => "Red Border", + "Formula:" => "Formula:", + "Select" => "Select", + "Blanks" => "Blanks", + "Errors" => "Errors", + "Numbers" => "Numbers", + "Current region" => "Current region", + "Last cell" => "Last cell", + "Visible cells only" => "Visible cells only", + "Conditional formats" => "Conditional formats", + "Data validation" => "Data validation", + "Horizontal axis title:" => "Horizontal axis title:", + "Vertical axis title:" => "Vertical axis title:", + "No picture selected" => "No picture selected", + "Picture file path (PNG or JPEG):" => "Picture file path (PNG or JPEG):", + "Description (optional):" => "Description (optional):", + "Fits inside the selected cell and moves with its content." => "Fits inside the selected cell and moves with its content.", + "Choose a PNG or JPEG no larger than 16 MB." => "Choose a PNG or JPEG no larger than 16 MB.", + "About" => "About", + "Contributors" => "Contributors", + "Models" => "Models", + "Version {version}" => "Version {version}", + "Join the ArtCraft Discord" => "Join the ArtCraft Discord", + "This workbook has no scripts or macros." => "This workbook has no scripts or macros.", + "(unnamed)" => "(unnamed)", + "— VBA project (preserved, not run)" => "— VBA project (preserved, not run)", + "— 1 step" => "— 1 step", + "— {steps} steps" => "— {steps} steps", + "Alignment" => "Alignment", + "Font" => "Font", + "Border" => "Border", + "Format Cells|Fill" => "Fill", + "Protection" => "Protection", + "Category:" => "Category:", + "Sample" => "Sample", + "Type (custom format code):" => "Type (custom format code):", + "Vertical" => "Vertical", + "Justify" => "Justify", + "Center Across Selection" => "Center Across Selection", + "Distributed" => "Distributed", + "Top" => "Top", + "Bottom" => "Bottom", + "Indent" => "Indent", + "Orientation (degrees)" => "Orientation (degrees)", + "Wrap text" => "Wrap text", + "Shrink to fit" => "Shrink to fit", + "Bold" => "Bold", + "Italic" => "Italic", + "None" => "None", + "Single" => "Single", + "Double" => "Double", + "Single Accounting" => "Single Accounting", + "Double Accounting" => "Double Accounting", + "Superscript" => "Superscript", + "Subscript" => "Subscript", + "Color:" => "Color:", + "Outline" => "Outline", + "Diagonal ↘" => "Diagonal ↘", + "Diagonal ↗" => "Diagonal ↗", + "none" => "none", + "thin" => "thin", + "medium" => "medium", + "thick" => "thick", + "dashed" => "dashed", + "dotted" => "dotted", + "double" => "double", + "Background Color:" => "Background Color:", + "Locked" => "Locked", + "Hidden" => "Hidden", + "Search:" => "Search:", + "e.g. lookup, average, date" => "e.g. lookup, average, date", + "Date & Time" => "Date & Time", + "Lookup & Reference" => "Lookup & Reference", + "Math & Trig" => "Math & Trig", + "Statistical" => "Statistical", + "Engineering" => "Engineering", + "Database" => "Database", + "Compatibility" => "Compatibility", + "Web" => "Web", + "Cube" => "Cube", + "Add-in and Automation" => "Add-in and Automation", + "Find" => "Find", + "Replace" => "Replace", + "Find what:" => "Find what:", + "Replace with:" => "Replace with:", + "Match case" => "Match case", + "Match entire cell contents" => "Match entire cell contents", + "Within workbook" => "Within workbook", + "Replace All" => "Replace All", + "Find All" => "Find All", + "Find Next" => "Find Next", + "All done. We made {count} replacements." => "All done. We made {count} replacements.", + "{count} cell(s) found" => "{count} cell(s) found", + "Reference:" => "Reference:", + "Special…" => "Special…", + "My list has headers" => "My list has headers", + "Sort by" => "Sort by", + "Then by" => "Then by", + "Cell Values" => "Cell Values", + "Cell Color" => "Cell Color", + "A to Z" => "A to Z", + "Z to A" => "Z to A", + "+ Add Level" => "+ Add Level", + "New…" => "New…", + "Edit…" => "Edit…", + "Name" => "Name", + "Value" => "Value", + "Refers To" => "Refers To", + "Scope" => "Scope", + "Workbook" => "Workbook", + "No names defined" => "No names defined", + "Recommended Charts" => "Recommended Charts", + "All Charts" => "All Charts", + "Clustered Column" => "Clustered Column", + "Stacked Column" => "Stacked Column", + "100% Stacked Column" => "100% Stacked Column", + "Clustered Bar" => "Clustered Bar", + "Stacked Bar" => "Stacked Bar", + "100% Stacked Bar" => "100% Stacked Bar", + "Line" => "Line", + "Line with Markers" => "Line with Markers", + "Stacked Line" => "Stacked Line", + "Pie" => "Pie", + "Doughnut" => "Doughnut", + "Area" => "Area", + "Stacked Area" => "Stacked Area", + "Scatter" => "Scatter", + "Scatter with Lines" => "Scatter with Lines", + "Radar" => "Radar", + "Histogram" => "Histogram", + "Waterfall" => "Waterfall", + "Funnel" => "Funnel", + "Combo" => "Combo", + "Chart data range:" => "Chart data range:", + "Legend Entries (Series)" => "Legend Entries (Series)", + "Series{n}" => "Series{n}", + "Keep" => "Keep", + "Remove" => "Remove", + "Horizontal (Category) Axis Labels:" => "Horizontal (Category) Axis Labels:", + "There are no conditional formatting rules on this sheet." => "There are no conditional formatting rules on this sheet.", + "applies to" => "applies to", + "Type a command, e.g. freeze, chart, bold…" => "Type a command, e.g. freeze, chart, bold…", + "Set cell:" => "Set cell:", + "To value:" => "To value:", + "By changing cell:" => "By changing cell:", + "Goal Seeking found a solution: {value}" => "Goal Seeking found a solution: {value}", + "Analysis Tools" => "Analysis Tools", + "Anova: Single Factor" => "Anova: Single Factor", + "Correlation" => "Correlation", + "Covariance" => "Covariance", + "Descriptive Statistics" => "Descriptive Statistics", + "Exponential Smoothing" => "Exponential Smoothing", + "F-Test Two-Sample for Variances" => "F-Test Two-Sample for Variances", + "Moving Average" => "Moving Average", + "Rank and Percentile" => "Rank and Percentile", + "Regression" => "Regression", + "t-Test: Paired Two Sample for Means" => "t-Test: Paired Two Sample for Means", + "t-Test: Two-Sample Assuming Equal Variances" => "t-Test: Two-Sample Assuming Equal Variances", + "t-Test: Two-Sample Assuming Unequal Variances" => "t-Test: Two-Sample Assuming Unequal Variances", + "Output options" => "Output options", + "Output Range:" => "Output Range:", + "New Worksheet Ply:" => "New Worksheet Ply:", + "Grouped By:" => "Grouped By:", + "Labels in first row" => "Labels in first row", + "Input Range:" => "Input Range:", + "Variable 1 Range:" => "Variable 1 Range:", + "Variable 2 Range:" => "Variable 2 Range:", + "Summary statistics" => "Summary statistics", + "Confidence Level for Mean (%), blank for none:" => "Confidence Level for Mean (%), blank for none:", + "Kth Largest (blank for none):" => "Kth Largest (blank for none):", + "Kth Smallest (blank for none):" => "Kth Smallest (blank for none):", + "Bin Range (blank for automatic bins):" => "Bin Range (blank for automatic bins):", + "Pareto (sorted histogram)" => "Pareto (sorted histogram)", + "Cumulative Percentage" => "Cumulative Percentage", + "Alpha:" => "Alpha:", + "Input Y Range:" => "Input Y Range:", + "Input X Range:" => "Input X Range:", + "Constant is Zero" => "Constant is Zero", + "Confidence Level (%):" => "Confidence Level (%):", + "Residuals" => "Residuals", + "Standardized Residuals" => "Standardized Residuals", + "Normal Probability" => "Normal Probability", + "Interval:" => "Interval:", + "Standard Errors" => "Standard Errors", + "Damping factor:" => "Damping factor:", + "Hypothesized Mean Difference:" => "Hypothesized Mean Difference:", + "Set Objective:" => "Set Objective:", + "To:" => "To:", + "Value Of:" => "Value Of:", + "By Changing Variable Cells:" => "By Changing Variable Cells:", + "Subject to the Constraints:" => "Subject to the Constraints:", + "Make Unconstrained Variables Non-Negative" => "Make Unconstrained Variables Non-Negative", + "Select a Solving Method:" => "Select a Solving Method:", + "GRG Nonlinear" => "GRG Nonlinear", + "Solve" => "Solve", + "Keep Solver Solution" => "Keep Solver Solution", + "Restore Original Values" => "Restore Original Values", + "The spelling check is complete for the entire sheet." => "The spelling check is complete for the entire sheet.", + "Not in Dictionary ({cell}):" => "Not in Dictionary ({cell}):", + "Suggestions:" => "Suggestions:", + "(No suggestions)" => "(No suggestions)", + "Ignore Once" => "Ignore Once", + "Add to Dictionary" => "Add to Dictionary", + "Change" => "Change", + "Change All" => "Change All", + "$ English (United States)" => "$ English (United States)", + "Add Chart Element" => "Add Chart Element", + "Align Left" => "Align Left", + "Align Right" => "Align Right", + "Bottom Align" => "Bottom Align", + "Calculate Now (F9)" => "Calculate Now (F9)", + "Calculate Sheet (⇧F9)" => "Calculate Sheet (⇧F9)", + "Calculation Options" => "Calculation Options", + "Cell Styles" => "Cell Styles", + "Change Chart Type" => "Change Chart Type", + "Check Accessibility" => "Check Accessibility", + "Clear Filter" => "Clear Filter", + "Column or Bar" => "Column or Bar", + "Comments pane" => "Comments pane", + "Convert the last ink stroke to a shape" => "Convert the last ink stroke to a shape", + "Convert to Range" => "Convert to Range", + "Copy" => "Copy", + "Custom Sort" => "Custom Sort", + "Cut" => "Cut", + "Define Name…" => "Define Name…", + "Delete Comment" => "Delete Comment", + "Delete Sheet" => "Delete Sheet", + "Delete chart" => "Delete chart", + "Delete…" => "Delete…", + "Dismiss" => "Dismiss", + "Down" => "Down", + "Edit chart title" => "Edit chart title", + "Erase ink strokes" => "Erase ink strokes", + "Every command run in this session (replayable)" => "Every command run in this session (replayable)", + "Expand formula bar" => "Expand formula bar", + "Filter by Selected Cell's Value" => "Filter by Selected Cell's Value", + "Find & Select" => "Find & Select", + "Forecast Sheet" => "Forecast Sheet", + "Forecast end (date or number; blank: a third of the history):" => "Forecast end (date or number; blank: a third of the history):", + "Format Chart pane" => "Format Chart pane", + "Format as Table" => "Format as Table", + "Hide" => "Hide", + "Hide Sheet" => "Hide Sheet", + "Hierarchy & more" => "Hierarchy & more", + "Highlighter" => "Highlighter", + "How agents drive GridCraft (MCP / control channel)" => "How agents drive GridCraft (MCP / control channel)", + "Import a text or CSV file" => "Import a text or CSV file", + "Insert Function" => "Insert Function", + "Insert Function (⇧F3)" => "Insert Function (⇧F3)", + "Insert Link" => "Insert Link", + "Insert Sheet" => "Insert Sheet", + "Insert Slicer" => "Insert Slicer", + "Insert a picture" => "Insert a picture", + "Insert a slicer to filter a table" => "Insert a slicer to filter a table", + "Insert an icon" => "Insert an icon", + "Insert…" => "Insert…", + "Line or Area" => "Line or Area", + "Link…" => "Link…", + "Macros and scripts in this workbook (Alt+F8)" => "Macros and scripts in this workbook (Alt+F8)", + "Middle Align" => "Middle Align", + "More commands" => "More commands", + "Move or Copy Sheet…" => "Move or Copy Sheet…", + "New sheet (⇧F11)" => "New sheet (⇧F11)", + "Next sheet" => "Next sheet", + "Page Breaks" => "Page Breaks", + "Paper Size" => "Paper Size", + "Pick From Drop-down List…" => "Pick From Drop-down List…", + "Pie or Doughnut" => "Pie or Doughnut", + "Previous sheet" => "Previous sheet", + "Print Area" => "Print Area", + "Print Titles" => "Print Titles", + "Protect Workbook structure" => "Protect Workbook structure", + "Redo" => "Redo", + "Scatter or Bubble" => "Scatter or Bubble", + "Search and run any command" => "Search and run any command", + "Search commands" => "Search commands", + "Select and move ink and shapes" => "Select and move ink and shapes", + "Series…" => "Series…", + "Share: export or save a copy" => "Share: export or save a copy", + "Show Formulas (⌃`)" => "Show Formulas (⌃`)", + "Slicer" => "Slicer", + "Sort & Filter" => "Sort & Filter", + "Spelling (F7)" => "Spelling (F7)", + "Statistic" => "Statistic", + "Switch Row/Column" => "Switch Row/Column", + "Table Styles" => "Table Styles", + "Text to Columns" => "Text to Columns", + "The output range already holds data. Replace it with the report?" => "The output range already holds data. Replace it with the report?", + "Top Align" => "Top Align", + "Undo" => "Undo", + "Undo list" => "Undo list", + "Unhide Sheet…" => "Unhide Sheet…", + "Up" => "Up", + "Version, contributors and the AI models that helped" => "Version, contributors and the AI models that helped", + "What-If Analysis" => "What-If Analysis", + "Zoom In" => "Zoom In", + "Zoom Out" => "Zoom Out", + "Zoom to 100%" => "Zoom to 100%", + "Zoom to Selection" => "Zoom to Selection", + "Zoom…" => "Zoom…", + "£ English (United Kingdom)" => "£ English (United Kingdom)", + "¥ Japanese" => "¥ Japanese", + "€ Euro" => "€ Euro", + "Tab|Insert" => "Insert", + "AutoSave" => "AutoSave", + "Insert\nSlicer" => "Insert\nSlicer", + "Pen\nBlack" => "Pen\nBlack", + "Pen\nBlue" => "Pen\nBlue", + "Pen\nRed" => "Pen\nRed", + "Protect\nSheet" => "Protect\nSheet", + "Watch\nWindow" => "Watch\nWindow", + "Workbook\nStatistics" => "Workbook\nStatistics", + "Options|Editing" => "Editing", + "PivotTable Fields" => "PivotTable Fields", + "Choose fields to add to report:" => "Choose fields to add to report:", + "Use a field's menu to move it between areas:" => "Use a field's menu to move it between areas:", + "Filters" => "Filters", + "Values" => "Values", + "Move to Row Labels" => "Move to Row Labels", + "Move to Column Labels" => "Move to Column Labels", + "Move to Report Filter" => "Move to Report Filter", + "Move to Values" => "Move to Values", + "Summarize by Sum" => "Summarize by Sum", + "Summarize by Count" => "Summarize by Count", + "Summarize by Average" => "Summarize by Average", + "Summarize by Max" => "Summarize by Max", + "Summarize by Min" => "Summarize by Min", + "Show as No Calculation" => "Show as No Calculation", + "Show as % of Grand Total" => "Show as % of Grand Total", + "Show as Running Total" => "Show as Running Total", + "Show as Rank" => "Show as Rank", + "Group by Years" => "Group by Years", + "Group by Quarters" => "Group by Quarters", + "Group by Months" => "Group by Months", + "Remove Field" => "Remove Field", + "Refresh" => "Refresh", + "Calculated Field…" => "Calculated Field…", + "Report Layout" => "Report Layout", + "Compact" => "Compact", + "Tabular" => "Tabular", + _ => return None, + }) +} diff --git a/crates/ui-egui/src/i18n/vi.rs b/crates/ui-egui/src/i18n/vi.rs new file mode 100644 index 000000000..94c32b3a5 --- /dev/null +++ b/crates/ui-egui/src/i18n/vi.rs @@ -0,0 +1,414 @@ +//! Vietnamese translations for the interface strings in i18n.rs. Labels follow the wording +//! Vietnamese spreadsheet users know; anything absent falls back to English. + +pub(super) fn translate(text: &str) -> Option<&'static str> { + Some(match text { + "Paste" => "Dán", + "Paste Values" => "Dán giá trị", + "Paste Formulas" => "Dán công thức", + "Paste Formatting" => "Dán định dạng", + "Transpose" => "Chuyển vị", + "Paste Link" => "Dán liên kết", + "Paste Special…" => "Dán đặc biệt…", + "Insert Copied Cells" => "Chèn ô đã sao chép", + "Insert Copied Cells…" => "Chèn ô đã sao chép…", + "Insert Cut Cells" => "Chèn ô đã cắt", + "Insert Paste" => "Chèn và dán", + "Cut" => "Cắt", + "Copy" => "Sao chép", + "Format Painter (double-click to keep it on)" => "Sao định dạng (bấm đúp để giữ)", + "Bold" => "Đậm", + "Italic" => "Nghiêng", + "Double Underline" => "Gạch chân đôi", + "Strikethrough" => "Gạch ngang", + "Underline" => "Gạch chân", + "Increase Font Size" => "Tăng cỡ chữ", + "Decrease Font Size" => "Giảm cỡ chữ", + "Wrap Text" => "Xuống dòng tự động", + "Merge & Center" => "Hợp nhất và căn giữa", + "Merge Cells" => "Hợp nhất ô", + "Merge Across" => "Hợp nhất theo hàng", + "Unmerge Cells" => "Bỏ hợp nhất ô", + "Fill Color" => "Màu tô", + "Font Color" => "Màu chữ", + "Borders" => "Viền", + "Top\nAlign" => "Căn\ntrên", + "Middle\nAlign" => "Căn\ngiữa dọc", + "Bottom\nAlign" => "Căn\ndưới", + "Left" => "Trái", + "Right" => "Phải", + "Center" => "Giữa", + "Horizontal" => "Ngang", + "Vertical Text" => "Chữ dọc", + "Decrease Indent" => "Giảm thụt lề", + "Increase Indent" => "Tăng thụt lề", + "Orientation" => "Hướng chữ", + "Page Layout|Orientation" => "Hướng giấy", + "Angle Counterclockwise" => "Xoay ngược chiều kim đồng hồ", + "Angle Clockwise" => "Xoay theo chiều kim đồng hồ", + "Rotate Text Up" => "Xoay chữ lên", + "Rotate Text Down" => "Xoay chữ xuống", + "Accounting Number Format" => "Định dạng số kế toán", + "Percent Style" => "Kiểu phần trăm", + "Comma Style" => "Kiểu dấu phân cách", + "Increase Decimal" => "Tăng số thập phân", + "Decrease Decimal" => "Giảm số thập phân", + "More Accounting Formats…" => "Định dạng kế toán khác…", + "Conditional\nFormatting" => "Định dạng\ncó điều kiện", + "Conditional Formatting" => "Định dạng có điều kiện", + "Format\nas Table" => "Định dạng\nthành bảng", + "Cell\nStyles" => "Kiểu\nô", + "Format Cells…" => "Định dạng ô…", + "Format Cell Alignment…" => "Căn chỉnh ô…", + "Format\nPane" => "Ngăn\nđịnh dạng", + "Format" => "Định dạng", + "Insert" => "Chèn", + "Insert Cells…" => "Chèn ô…", + "Delete" => "Xóa", + "Delete Cells…" => "Xóa ô…", + "Insert Sheet Rows" => "Chèn hàng trang tính", + "Insert Sheet Columns" => "Chèn cột trang tính", + "Delete Sheet Rows" => "Xóa hàng trang tính", + "Delete Sheet Columns" => "Xóa cột trang tính", + "Row Height…" => "Chiều cao hàng…", + "AutoFit Row Height" => "Tự động khớp chiều cao hàng", + "Column Width…" => "Độ rộng cột…", + "AutoFit Column Width" => "Tự động khớp độ rộng cột", + "Default Width…" => "Độ rộng mặc định…", + "Hide Rows" => "Ẩn hàng", + "Unhide Rows" => "Bỏ ẩn hàng", + "Hide Columns" => "Ẩn cột", + "Unhide Columns" => "Bỏ ẩn cột", + "Lock Cell" => "Khóa ô", + "Clear" => "Xóa", + "Clear All" => "Xóa tất cả", + "Clear Formats" => "Xóa định dạng", + "Clear Contents" => "Xóa nội dung", + "Clear Comments and Notes" => "Xóa chú thích và ghi chú", + "Clear Hyperlinks" => "Xóa siêu liên kết", + "AutoSum" => "Tự động tính tổng", + "Flash\nFill" => "Điền\nnhanh", + "Flash Fill" => "Điền nhanh", + "Fill" => "Điền", + "Clear Print Area" => "Xóa vùng in", + "Find &\nSelect" => "Tìm &\nChọn", + "Find…" => "Tìm…", + "Replace…" => "Thay thế…", + "Go To…" => "Đi tới…", + "Go To Special…" => "Đi tới đặc biệt…", + "PivotTable" => "PivotTable", + "Recommended\nCharts" => "Biểu đồ\nđề xuất", + "Table" => "Bảng", + "Pictures" => "Ảnh", + "Shapes" => "Hình", + "Icons" => "Biểu tượng", + "Text\nBox" => "Hộp\nvăn bản", + "Comment" => "Chú thích", + "New\nComment" => "Chú thích\nmới", + "New Note" => "Ghi chú mới", + "Show/Hide Note" => "Hiện/ẩn ghi chú", + "Header &\nFooter" => "Đầu trang &\nChân trang", + "Text to\nColumns" => "Tách\ncột", + "Link" => "Liên kết", + "Symbol" => "Ký hiệu", + "Sparklines" => "Biểu đồ thu nhỏ", + "Checkbox" => "Hộp kiểm", + "Insert checkboxes in the selected cells" => "Chèn hộp kiểm vào các ô đã chọn", + "Header & Footer" => "Đầu trang & Chân trang", + "Draw with ink" => "Vẽ bằng mực", + "Eraser" => "Tẩy", + "Ink to\nShape" => "Mực thành\nhình", + "Select\nObjects" => "Chọn\nđối tượng", + "Themes" => "Chủ đề", + "Margins" => "Lề", + "Left Margin" => "Lề trái", + "Right Margin" => "Lề phải", + "Top Margin" => "Lề trên", + "Bottom Margin" => "Lề dưới", + "Header Margin" => "Lề đầu trang", + "Footer Margin" => "Lề chân trang", + "Size" => "Khổ giấy", + "Print\nArea" => "Vùng\nin", + "Set Print Area" => "Đặt vùng in", + "Breaks" => "Ngắt trang", + "Insert Page Break" => "Chèn ngắt trang", + "Remove Page Break" => "Bỏ ngắt trang", + "Reset All Page Breaks" => "Đặt lại tất cả ngắt trang", + "Print\nTitles" => "In\ntiêu đề", + "Sheet\nRight-to-Left" => "Trang tính\nphải sang trái", + "Sheet Right-to-Left" => "Trang tính phải sang trái", + "Narrow" => "Hẹp", + "Wide" => "Rộng", + "Normal" => "Bình thường", + "Portrait" => "Dọc", + "Landscape" => "Ngang", + "Custom Margins…" => "Lề tùy chỉnh…", + "Insert\nFunction" => "Chèn\nhàm", + "Name\nManager" => "Trình quản lý\ntên", + "Define Name" => "Xác định tên", + "Use in Formula" => "Dùng trong công thức", + "Create from Selection" => "Tạo từ vùng chọn", + "Trace Precedents" => "Truy tìm ô tham chiếu", + "Trace Dependents" => "Truy tìm ô phụ thuộc", + "Remove Arrows" => "Bỏ mũi tên", + "Show Formulas" => "Hiện công thức", + "Error Checking" => "Kiểm tra lỗi", + "Evaluate Formula" => "Đánh giá công thức", + "Watch Window" => "Cửa sổ theo dõi", + "Calculation\nOptions" => "Tùy chọn\ntính toán", + "Calculate Now" => "Tính ngay", + "Calculate Sheet" => "Tính trang tính", + "Automatic" => "Tự động", + "Automatic Except for Data Tables" => "Tự động trừ bảng dữ liệu", + "Manual" => "Thủ công", + "Sort &\nFilter" => "Sắp xếp &\nLọc", + "Sort" => "Sắp xếp", + "Sort A to Z" => "Sắp xếp từ A đến Z", + "Sort Z to A" => "Sắp xếp từ Z đến A", + "Custom Sort…" => "Sắp xếp tùy chỉnh…", + "Filter" => "Lọc", + "Reapply" => "Áp dụng lại", + "Get Data\n(Text/CSV)" => "Lấy dữ liệu\n(Văn bản/CSV)", + "Remove\nDuplicates" => "Loại bỏ\ntrùng lặp", + "Data\nValidation" => "Xác thực\ndữ liệu", + "Data Validation" => "Xác thực dữ liệu", + "Data Validation…" => "Xác thực dữ liệu…", + "Circle Invalid Data" => "Khoanh dữ liệu không hợp lệ", + "Clear Validation" => "Xóa xác thực", + "Group" => "Nhóm", + "Ungroup" => "Bỏ nhóm", + "Show Detail" => "Hiện chi tiết", + "Hide Detail" => "Ẩn chi tiết", + "Subtotal" => "Tổng phụ", + "Data\nAnalysis" => "Phân tích\ndữ liệu", + "Data Analysis" => "Phân tích dữ liệu", + "Solver" => "Solver", + "What-If\nAnalysis" => "Phân tích\nWhat-If", + "Data Table…" => "Bảng dữ liệu…", + "Scenario Manager…" => "Trình quản lý kịch bản…", + "Goal Seek…" => "Tìm mục tiêu…", + "Forecast\nSheet" => "Trang tính\ndự báo", + "Spelling" => "Chính tả", + "Check\nAccessibility" => "Kiểm tra\ntrợ năng", + "Threaded Comments" => "Chú thích dạng chuỗi", + "Show\nComments" => "Hiện\nchú thích", + "Previous" => "Trước", + "Next" => "Tiếp", + "Previous Comment" => "Chú thích trước", + "Next Comment" => "Chú thích tiếp theo", + "Show All Notes" => "Hiện tất cả ghi chú", + "Convert to Comments" => "Chuyển thành chú thích", + "Protect\nWorkbook" => "Bảo vệ\nsổ làm việc", + "Allow Edit\nRanges" => "Cho phép sửa\nphạm vi", + "Allow Edit Ranges" => "Cho phép sửa phạm vi", + "Unprotect\nSheet" => "Bỏ bảo vệ\ntrang tính", + "Protect Sheet…" => "Bảo vệ trang tính…", + "Comments" => "Chú thích", + "Notes" => "Ghi chú", + "Page Break\nPreview" => "Xem trước\nngắt trang", + "Page\nLayout" => "Bố trí\ntrang", + "Formula Bar" => "Thanh công thức", + "Gridlines" => "Đường lưới", + "Headings" => "Tiêu đề hàng/cột", + "Zoom" => "Thu phóng", + "100%" => "100%", + "Zoom to\nSelection" => "Phóng to\nvùng chọn", + "Freeze\nPanes" => "Cố định\nngăn", + "Freeze Panes" => "Cố định ngăn", + "Freeze Top Row" => "Cố định hàng trên cùng", + "Freeze First Column" => "Cố định cột đầu tiên", + "Unfreeze Panes" => "Bỏ cố định ngăn", + "Dark Mode" => "Chế độ tối", + "Display theme" => "Chủ đề hiển thị", + "Animations" => "Hiệu ứng động", + "Glide the selection outline to the cell you move to instead of jumping there" => { + "Trượt khung vùng chọn tới ô bạn di chuyển đến thay vì nhảy ngay tới đó" + } + "System" => "Hệ thống", + "Light" => "Sáng", + "Dark" => "Tối", + "Interface language" => "Ngôn ngữ giao diện", + "Interface size" => "Kích thước giao diện", + "Auto" => "Tự động", + "Drag to freeze columns" => "Kéo để cố định cột", + "Drag to freeze rows" => "Kéo để cố định hàng", + "Command\nPalette" => "Bảng\nlệnh", + "Agent\nControl" => "Điều khiển\nagent", + "Action\nJournal" => "Nhật ký\nthao tác", + "About\nGridCraft" => "Giới thiệu\nGridCraft", + "Share" => "Chia sẻ", + "Add Chart\nElement" => "Thêm thành phần\nbiểu đồ", + "Change\nChart Type" => "Đổi kiểu\nbiểu đồ", + "Switch\nRow/Column" => "Đổi\nhàng/cột", + "Select\nData" => "Chọn\ndữ liệu", + "Data Labels: None" => "Nhãn dữ liệu: Không", + "Data Labels: Show" => "Nhãn dữ liệu: Hiện", + "Legend: None" => "Chú giải: Không", + "Legend: Bottom" => "Chú giải: Dưới", + "Legend: Top" => "Chú giải: Trên", + "Legend: Right" => "Chú giải: Phải", + "Gridlines: None" => "Đường lưới: Không", + "Gridlines: Show" => "Đường lưới: Hiện", + "Chart\nTitle" => "Tiêu đề\nbiểu đồ", + "Delete\nChart" => "Xóa\nbiểu đồ", + "Convert\nto Range" => "Chuyển thành\nphạm vi", + "Table\nStyles" => "Kiểu\nbảng", + "Top 10 Items" => "10 mục đầu", + "Top 10%" => "10% đầu", + "Bottom 10 Items" => "10 mục cuối", + "Bottom 10%" => "10% cuối", + "Above Average" => "Trên trung bình", + "Below Average" => "Dưới trung bình", + "Clear Rules from Entire Sheet" => "Xóa quy tắc khỏi toàn bộ trang tính", + "Clear Rules from Selected Cells" => "Xóa quy tắc khỏi các ô đã chọn", + "Constants" => "Hằng số", + "Data Bars" => "Thanh dữ liệu", + "Color Scales" => "Thang màu", + "Icon Sets" => "Bộ biểu tượng", + "Home" => "Trang đầu", + "Draw" => "Vẽ", + "Page Layout" => "Bố trí trang", + "Formulas" => "Công thức", + "Data" => "Dữ liệu", + "Review" => "Xem lại", + "View" => "Xem", + "Automate" => "Tự động hóa", + "Table Design" => "Thiết kế bảng", + "Chart Design" => "Thiết kế biểu đồ", + "Ready" => "Sẵn sàng", + "Enter" => "Nhập", + "Edit" => "Sửa", + "Point" => "Trỏ", + "Calculate" => "Tính toán", + "Select destination and press Enter or choose Paste" => "Chọn vị trí đích rồi nhấn Enter hoặc chọn Dán", + "General" => "Chung", + "Number" => "Số", + "Currency" => "Tiền tệ", + "Accounting" => "Kế toán", + "Date" => "Ngày", + "Time" => "Giờ", + "Percentage" => "Phần trăm", + "Fraction" => "Phân số", + "Scientific" => "Khoa học", + "Text" => "Văn bản", + "Special" => "Đặc biệt", + "Custom" => "Tùy chỉnh", + "Short Date" => "Ngày dạng ngắn", + "Long Date" => "Ngày dạng dài", + "More Number Formats…" => "Định dạng số khác…", + "Financial" => "Tài chính", + "Logical" => "Logic", + "Date &\nTime" => "Ngày &\nGiờ", + "Lookup &\nReference" => "Tra cứu &\nTham chiếu", + "Math &\nTrig" => "Toán &\nLượng giác", + "More\nFunctions" => "Hàm\nkhác", + "Sheet Options|View" => "Xem", + "Print" => "In", + // Page Layout view and the Header & Footer tab. + "Click to add data" => "Bấm để thêm dữ liệu", + "Add header" => "Thêm đầu trang", + "Add footer" => "Thêm chân trang", + "(none)" => "(không có)", + "Header" => "Đầu trang", + "Footer" => "Chân trang", + "Page\nNumber" => "Số\ntrang", + "Number\nof Pages" => "Tổng\nsố trang", + "Current\nDate" => "Ngày\nhiện tại", + "Current\nTime" => "Giờ\nhiện tại", + "File\nPath" => "Đường dẫn\ntệp", + "File\nName" => "Tên\ntệp", + "Sheet\nName" => "Tên\ntrang tính", + "Go to\nHeader" => "Đi tới\nđầu trang", + "Go to\nFooter" => "Đi tới\nchân trang", + "Page Number" => "Số trang", + "Number of Pages" => "Tổng số trang", + "Current Date" => "Ngày hiện tại", + "Current Time" => "Giờ hiện tại", + "File Path" => "Đường dẫn tệp", + "File Name" => "Tên tệp", + "Sheet Name" => "Tên trang tính", + "Go to Header" => "Đi tới đầu trang", + "Different First Page" => "Trang đầu khác", + "Different Odd & Even Pages" => "Trang chẵn lẻ khác nhau", + "Go to Footer" => "Đi tới chân trang", + "Ruler" => "Thước", + // File › Backstage view. + "File" => "Tệp", + "Back" => "Quay lại", + "New" => "Mới", + "Open" => "Mở", + "Info" => "Thông tin", + "Save" => "Lưu", + "Save As" => "Lưu thành", + "Export" => "Xuất", + "Close" => "Đóng", + "Options" => "Tùy chọn", + "Blank workbook" => "Sổ làm việc trống", + "Recent" => "Gần đây", + "No recent workbooks yet." => "Chưa có sổ làm việc gần đây.", + "More workbooks" => "Sổ làm việc khác", + "Modified" => "Đã sửa đổi", + "Not available" => "Không khả dụng", + "Just now" => "Vừa xong", + "Yesterday" => "Hôm qua", + "{n} min ago" => "{n} phút trước", + "{n} h ago" => "{n} giờ trước", + "{n} days ago" => "{n} ngày trước", + "{n} weeks ago" => "{n} tuần trước", + "{n} months ago" => "{n} tháng trước", + "{n} years ago" => "{n} năm trước", + "Browse…" => "Duyệt…", + "Not saved yet" => "Chưa lưu", + "Location" => "Vị trí", + "Sheets" => "Trang tính", + "Protect Workbook" => "Bảo vệ sổ làm việc", + "Sheet structure is locked: sheets can't be added, moved, renamed or deleted." => { + "Cấu trúc trang tính đã bị khóa: không thể thêm, di chuyển, đổi tên hoặc xóa trang tính." + } + "Lock the sheet structure so sheets can't be added, moved, renamed or deleted." => { + "Khóa cấu trúc trang tính để không thể thêm, di chuyển, đổi tên hoặc xóa trang tính." + } + "Properties" => "Thuộc tính", + "Title" => "Tiêu đề", + "Subject" => "Chủ đề", + "Author" => "Tác giả", + "Company" => "Công ty", + "Keywords" => "Từ khóa", + "Description" => "Mô tả", + "No workbook is open." => "Chưa mở sổ làm việc nào.", + "Save as type" => "Lưu dưới dạng", + "Excel Workbook (*.xlsx)" => "Sổ làm việc Excel (*.xlsx)", + "CSV UTF-8 (Comma delimited) (*.csv)" => "CSV UTF-8 (phân cách bằng dấu phẩy) (*.csv)", + "Web Page (*.html)" => "Trang web (*.html)", + "PDF (*.pdf)" => "PDF (*.pdf)", + "Download" => "Tải xuống", + "A CSV file, web page or PDF is a copy: the workbook keeps its own file." => { + "Tệp CSV, trang web hoặc PDF chỉ là bản sao: sổ làm việc vẫn giữ tệp gốc." + } + "Save the workbook under another name or in another folder." => "Lưu sổ làm việc với tên khác hoặc vào thư mục khác.", + "Print Active Sheets" => "In các trang tính hiện hoạt", + "Print Entire Workbook" => "In toàn bộ sổ làm việc", + "Fit Sheet on One Page" => "Vừa trang tính trên một trang", + "Page Setup…" => "Thiết lập trang…", + "Page {page} of {pages}" => "Trang {page} / {pages}", + "Nothing to print." => "Không có gì để in.", + "Previous page" => "Trang trước", + "Next page" => "Trang sau", + "Create PDF" => "Tạo PDF", + "Save the sheet as a PDF document that keeps its page layout." => "Lưu trang tính thành tài liệu PDF, giữ nguyên bố trí trang.", + "Change File Type" => "Đổi kiểu tệp", + "CSV (Comma delimited)" => "CSV (phân cách bằng dấu phẩy)", + "Save the active sheet as comma-separated text." => "Lưu trang tính hiện hoạt thành văn bản phân cách bằng dấu phẩy.", + "Web Page (.html)" => "Trang web (.html)", + "Save the workbook as a web page." => "Lưu sổ làm việc thành trang web.", + "Options|General" => "Chung", + "Options|Save" => "Lưu", + "Show formula bar" => "Hiện thanh công thức", + "Enable AutoComplete for cell values" => "Bật tự động hoàn thành giá trị ô", + "Save .xlsx workbooks automatically after every change" => "Tự động lưu sổ làm việc .xlsx sau mỗi thay đổi", + "Workbook calculation" => "Tính toán sổ làm việc", + "Enable iterative calculation" => "Bật tính toán lặp", + "Calculation settings are saved with the workbook." => "Thiết lập tính toán được lưu cùng sổ làm việc.", + _ => return None, + }) +} diff --git a/crates/ui-egui/tests/dialog_focus.rs b/crates/ui-egui/tests/dialog_focus.rs new file mode 100644 index 000000000..ee0896f8f --- /dev/null +++ b/crates/ui-egui/tests/dialog_focus.rs @@ -0,0 +1,81 @@ +//! Form dialogs open ready to type, as in Excel: Alt+H, O, W then a number and Enter sets the +//! column width without clicking into the field first. + +use egui::{Event, Key, vec2}; +use gridcraft_engine::Session; +use gridcraft_engine::core::CellRef; +use gridcraft_ui_egui::SheetApp; +use serde_json::json; + +fn harness() -> egui_kittest::Harness<'static, SheetApp> { + let mut session = Session::new(); + session.new_workbook(); + session.execute("selection.set", json!({"cell": "C3"})).unwrap(); + let mut h = egui_kittest::Harness::builder().with_size(vec2(1200.0, 800.0)).build_ui_state( + |ui, app: &mut SheetApp| { + app.logic(&ui.ctx().clone()); + app.ui(ui); + }, + SheetApp::new(session, Default::default()), + ); + h.run_steps(6); + h +} + +fn type_and_enter(h: &mut egui_kittest::Harness<'static, SheetApp>, text: &str) { + for c in text.chars() { + h.input_mut().events.push(Event::Text(c.to_string())); + h.run_steps(1); + } + h.key_press(Key::Enter); + h.run_steps(6); +} + +#[test] +fn column_width_opens_with_the_width_ready_to_type() { + let mut h = harness(); + h.state_mut().open_dialog("columnWidth", json!({})); + h.run_steps(6); + type_and_enter(&mut h, "12"); + assert!(h.state().dialog.is_none(), "Enter confirmed the dialog"); + let chars = { + let d = h.state().session.active().unwrap(); + let sheet = d.wb.active().unwrap(); + gridcraft_engine::cmd::format::points_to_chars(sheet.col_width(CellRef::parse("C3").unwrap().col) as f64) + }; + assert!((chars - 12.0).abs() < 0.2, "column C is 12 characters wide, got {chars}"); +} + +#[test] +fn row_height_opens_with_the_height_ready_to_type() { + let mut h = harness(); + h.state_mut().open_dialog("rowHeight", json!({})); + h.run_steps(6); + type_and_enter(&mut h, "40"); + assert!(h.state().dialog.is_none(), "Enter confirmed the dialog"); + let height = { + let d = h.state().session.active().unwrap(); + d.wb.active().unwrap().row_height(CellRef::parse("C3").unwrap().row) + }; + assert!((height as f64 - 40.0).abs() < 0.6, "row 3 is 40 high, got {height}"); +} + +#[test] +fn command_search_arrow_and_page_keys_move_the_selection_and_keep_the_search_focused() { + let mut h = harness(); + h.state_mut().open_dialog("commandSearch", json!({})); + h.run_steps(6); + h.input_mut().events.push(Event::Text("a".into())); + h.run_steps(3); + assert_eq!(h.state().dialog.as_ref().map(|d| d.list_index), Some(0)); + for _ in 0..2 { + h.key_press(Key::ArrowDown); + h.run_steps(2); + } + assert_eq!(h.state().dialog.as_ref().map(|d| d.list_index), Some(2), "two ArrowDown presses"); + h.key_press(Key::PageDown); + h.run_steps(2); + let after_page = h.state().dialog.as_ref().map(|d| d.list_index).unwrap_or(0); + assert!(after_page > 2, "PageDown moved past the third row, got {after_page}"); + assert!(h.ctx.memory(|m| m.focused()).is_some(), "the search field kept focus"); +} diff --git a/crates/ui-egui/tests/file_menu.rs b/crates/ui-egui/tests/file_menu.rs index 7c52e9cbb..9fdc45e91 100644 --- a/crates/ui-egui/tests/file_menu.rs +++ b/crates/ui-egui/tests/file_menu.rs @@ -137,6 +137,8 @@ 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")), + ("nl", ["Algemeen", "Opslaan"], ["Opties|Algemeen", "Opties|Opslaan"], ("Weergeven", "Bladopties|Weergeven")), + ("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/crates/ui-egui/tests/interaction.rs b/crates/ui-egui/tests/interaction.rs index a08d37969..c5665c3d0 100644 --- a/crates/ui-egui/tests/interaction.rs +++ b/crates/ui-egui/tests/interaction.rs @@ -424,6 +424,7 @@ fn language_switch_translates_the_ribbon_and_persists() { (Language::De, "Daten"), (Language::Fr, "Données"), (Language::Tr, "Veri"), + (Language::It, "Dati"), ] { h.state_mut().run("app.language.set", json!({"language": language.code()})).unwrap(); h.run_steps(2); // every locale renders the ribbon without panicking diff --git a/crates/ui-egui/tests/translated_form_fields.rs b/crates/ui-egui/tests/translated_form_fields.rs new file mode 100644 index 000000000..35847a425 --- /dev/null +++ b/crates/ui-egui/tests/translated_form_fields.rs @@ -0,0 +1,55 @@ +//! Form dialogs draw their field labels and choices in the interface language, as their titles +//! and OK/Cancel buttons already were (Page Setup showed "Left margin (in):" in every language). + +use egui_kittest::kittest::Queryable as _; +use gridcraft_engine::Session; +use gridcraft_ui_egui::SheetApp; +use serde_json::json; + +fn harness() -> egui_kittest::Harness<'static, SheetApp> { + let mut session = Session::new(); + session.new_workbook(); + let mut h = egui_kittest::Harness::builder().with_size(egui::vec2(1200.0, 800.0)).build_ui_state( + |ui, app: &mut SheetApp| { + let ctx = ui.ctx().clone(); + app.logic(&ctx); + app.ui(ui); + }, + SheetApp::new(session, Default::default()), + ); + h.run_steps(4); + h +} + +#[test] +fn form_fields_are_translated() { + for (dialog, translated, english) in [ + ("pageSetup", ["Margem esquerda (pol.):", "Rodapé (pol.):"], ["Left margin (in):", "Footer (in):"]), + ("insertPaste", ["Deslocar células para a direita", "Deslocar células para baixo"], ["Shift cells right", "Shift cells down"]), + ] { + let mut h = harness(); + h.state_mut().run("app.language.set", json!({"language": "pt"})).unwrap(); + h.state_mut().open_dialog(dialog, json!({})); + h.run_steps(3); + for label in translated { + assert!(h.query_by_label_contains(label).is_some(), "{dialog}: no {label}"); + } + for label in english { + assert!(h.query_by_label_contains(label).is_none(), "{dialog}: {label} is untranslated"); + } + } +} + +#[test] +fn notes_with_a_pipe_show_in_full() { + // `tr` reads `|` as a context separator; the Open Hyperlink note carries the URL, which must + // be shown whole so the user sees where the link really goes. + let url = "https://example.com/report|evil.example"; + for language in ["en", "pt"] { + let mut h = harness(); + h.state_mut().run("app.language.set", json!({"language": language})).unwrap(); + h.state_mut().open_dialog("openLink", json!({"url": url})); + h.run_steps(3); + assert!(h.query_by_label_contains(url).is_some(), "{language}: the link note lost part of {url}"); + } +} diff --git a/docs/gaps.md b/docs/gaps.md index 65287115a..d6e520602 100644 --- a/docs/gaps.md +++ b/docs/gaps.md @@ -1,6 +1,6 @@ # Gaps -> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-12 · **Change:** minor (rows auto-fit oversized fonts on open and whole-row/column formatting) · **Target:** Microsoft Excel (Microsoft 365) +> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-20 · **Change:** minor (the Japanese catalog covers the dialogs, messages and menus) · **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 @@ -97,8 +97,10 @@ No alpha blockers: every core workflow passes the [alpha gate](roadmap.md#alpha- ## After beta ### 11. No localization at all (L) -- Ribbon-only catalog in five languages (#31, #104, #82; ~12% of strings each); dialogs, menus and - messages English; en-US function names and separators (#45); German in PR #163. **Estimate:** +- 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 + 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) ### 12. Get & Transform, external data, data model (F) @@ -168,6 +170,7 @@ No alpha blockers: every core workflow passes the [alpha gate](roadmap.md#alpha- | Date | Change | Summary | |---|---|---| +| 2026-10-20 | minor | §11: the Japanese catalog covers the dialogs, messages and menus — 943 keys (~43%), matching the pt-BR coverage; a test keeps the two catalogs in step | | 2026-10-13 | trivial | §4: multi-level category axes landed | | 2026-10-12 | minor | rows auto-fit oversized fonts on open and whole-row/column formatting (#833) | | 2026-10-12 | minor | Page Layout view: dragging margins on the rulers (#792) removed from the §14 remainder | diff --git a/docs/localization-el.md b/docs/localization-el.md new file mode 100644 index 000000000..af8f24e0b --- /dev/null +++ b/docs/localization-el.md @@ -0,0 +1,17 @@ +# Greek (el) interface localization + +The UI now offers **Ελληνικά** via View > Interface language and uses Greek automatically +on a fresh installation when the system locale is `el` or `el-GR`. + +The localization follows the existing GridCraft interface translation infrastructure: +- `crates/ui-egui/src/i18n/el.rs` supplies Greek translations of UI strings. +- `crates/ui-egui/src/i18n.rs` registers `Language::El` (`el`), language selection, + persisted preferences, and translation tests. +- Command identifiers, spreadsheet content, function names and references remain stable. +- Greek UI translation **does not add a Greek spelling dictionary** or translate formula + function names, locale-specific separators or number formats. +- Unknown UI labels continue to fall back to the original English text. + +The Greek strings were translated specifically for GridCraft. They are not extracted from +proprietary spreadsheet software or localization assets. The MIT OR Apache-2.0 repository +licenses apply to this contribution. diff --git a/docs/localization-parity.md b/docs/localization-parity.md index 9a9990d42..e437bbb86 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-20 · **Change:** minor (Japanese phonetic runs (ふりがな) in XLSX shared strings are preserved through open + save; they are still not displayed) · **Target:** Microsoft Excel (Microsoft 365), Excel for Mac 16.113.4 +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-21 · **Change:** minor (the Japanese catalog covers the dialogs, messages and menus; Dutch interface language; Romanian interface catalog) · **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, @@ -24,9 +24,19 @@ right-to-left sheets and full complex-script support. Part of hint is assembled with the formula syntax's function name and separator. Spanish translates the 10 common functions it had help for (SUM, AVERAGE, IF…); other languages show the English help. +- **A first catalog exists.** `crates/ui-egui/src/i18n.rs` (merged 10-10 in #31, #104, #82; German + added 10-11) adds an interface-language preference that defaults to the system language (closes + #20) and a View-tab switcher, with English-keyed lookup tables: Simplified Chinese, Korean, + Russian, German and Czech 266–518 labels each, Brazilian Portuguese and Japanese 943 each. The + tables are used by the ribbon, sheet tabs and widgets (`ribbon.rs`, `tabs.rs`, `widgets.rs`), the + Format Cells dialog, every dialog title and the shared OK/Cancel buttons; Japanese and Portuguese + also cover the other dialog labels, message boxes, Backstage/File-view items, template names and + native menus (Japanese, 10-17: `i18n/ja.rs` keeps the shared 398-label core and adds 545 of those + strings). The remaining menus, context menus, task panes, status messages, command labels and + function descriptions are still English literals. Untranslated labels fall back to English. - **About 2,200 user-visible strings** in all (heuristic source scan: ~1,700 UI and command - strings plus ~500 function descriptions), so each shipped language covers **~12%** (measured - count / estimated total). + strings plus ~500 function descriptions), so the ribbon-only languages cover **~12%** and + Japanese and Portuguese **~43%** (measured count / estimated total). - **en-US only formulas and formats.** Function names, `,` argument separator, `.` decimal separator, en-US number and date formats (`crates/numfmt` says "en-US only"). Users ask for localized function names and `;` separators (#45). German with localized numbers and formulas @@ -60,15 +70,19 @@ separators, number/date formats, machine translation with agent review, and scri | 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 | -| Portuguese | pt-BR | 923 (~42%) | dialogs and tooltips (dialogs take effect with #669) | Latin: yes | no | menus, File view, dialogs | 2–4 h | +| Portuguese | pt-BR | 943 (~43%) | dialogs and tooltips (dialogs take effect with #669) | Latin: yes | no | menus, File view, dialogs | 2–4 h | | Indonesian | id | 0 (0%) | no | Latin: yes | no | none | 5–8 h | | Japanese | ja | 268 (~12%) | no | CJK system-font fallback; IME unverified; no furigana display, but phonetic runs (ふりがな) survive an XLSX open + save | no | menus only | 8–12 h | +| Japanese | ja | 943 (~43%) | dialogs and messages | CJK system-font fallback; IME unverified; no furigana display | no | menus, File view, dialogs, messages | 3–5 h | | German | de | 266 (~12%) | no | Latin: yes | no | menus only | 4–8 h | +| Italian | it | 971 (~44%) | dialogs, tooltips, pivot pane | Latin: yes | no | menus, File view, dialogs, pivot pane | 3–5 h | | Korean | ko | 266 (~12%) | no | Hangul via the CJK fallback; IME unverified | no | menus only | 6–10 h | | Vietnamese | vi | 0 (0%) | no | Latin with stacked diacritics: unverified | no | none | 6–10 h | | Turkish | tr | 382 (~17%) | no | Latin: yes | yes | menus only | 4–8 h | Other shipped languages: Russian (ru), German (de), Czech (cs), French (fr) and Turkish (tr), menus only. +| Vietnamese | vi | 398 (~18%) | no | Latin with stacked diacritics: unverified | no | menus, File view | 5–9 h | +Other shipped languages: Russian (ru) and German (de), 266 labels each (~12%), menus only; Dutch (nl), 518 labels (~24%): ribbon, context menus, File view, dialog titles and the Options page. **Total:** catalog work 10–20 h + languages 92–144 h ≈ **100–165 h**. Parallelizes almost fully once the catalog covers dialogs and commands. **Needs a human:** native-speaker review of every @@ -90,14 +104,19 @@ 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-20 | minor | Japanese: furigana (`rPh` phonetic runs and `` in `xl/sharedStrings.xml`) is no longer deleted by an open + save; it is kept on the workbook and written back (a `` 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`) | +| 2026-10-20 | minor | Japanese catalog (`i18n/ja.rs`) covers every key the Brazilian Portuguese catalog translates: the 398-label shared core moved verbatim plus 545 dialog, message, Backstage and menu strings — 943 keys, ~12% → ~43%. A test parses `pt.rs`'s source, so the two catalogs can't drift apart again. Portuguese re-measured at 943 (was 923) | +| 2026-10-20 | minor | Dutch (nl) interface catalog (`i18n/nl.rs`, 518 labels, ~24%): the shared key set every language must cover (ribbon, context menus, File view, dialog titles, Options page), matching the German, French and Czech catalogs; `nl-NL`, `nl-BE` locale tags resolve to Dutch | | 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 | | 2026-10-19 | trivial | Text boxes and shapes keep right-to-left paragraph direction (`a:pPr rtl`) on XLSX save, so Excel-authored Arabic and Hebrew text boxes reopen right to left | | 2026-10-19 | minor | Save as Web Page and copied HTML mark right-to-left sheets `dir="rtl"`, let General-aligned Arabic and Hebrew text align by its own direction (`dir="auto"`), and keep numbers on right-to-left sheets left to right and on the left | | 2026-10-19 | minor | French and Serbian kept the context in three `context\|label` translations ("Options\|Général", "Opcije\|Opšte" for `Options\|General`; also `Options\|Save`, `Sheet Options\|View`). `tr` shows a found translation as it is, so File › Options headings and the Sheet Options "View" checkboxes showed the prefix. Fixed; a test checks that no catalog shows a `\|` | +| 2026-10-17 | minor | Vietnamese catalog (`i18n/vi.rs`, every key in the master table); `vi` locale tags resolve to Vietnamese | | 2026-10-15 | minor | Function help in the interface language: argument hints, autocomplete, Insert Function (search, categories) and the Formulas-tab menus read per-language tables of descriptions and argument names keyed by the catalog's English text; Spanish keeps its 10 functions in the new format | +| 2026-10-15 | minor | Italian catalog (`i18n/it.rs`, 971 entries, ~44%): every key the Brazilian Portuguese catalog translates plus the PivotTable Fields pane strings; `it` locale tags (it-IT, it-CH…) resolve to Italian. Labels follow Excel's Italian terminology; native-speaker review still pending | | 2026-10-12 | minor | Turkish ribbon catalog (`i18n/tr.rs`, 382 labels); `tr` locale tags (tr-TR, tr_TR…) resolve to Turkish | | 2026-10-12 | minor | Format Cells looks up its tabs, labels, options and note through `Language::tr` (Fill tab keyed `Format Cells\|Fill`); dialog titles and OK/Cancel too. Labels already in a table (Number, Currency, Fill…) show translated; the rest fall back to English until the tables add them | | 2026-10-12 | minor | Brazilian Portuguese catalog (`i18n/pt.rs`) grows from 377 to 923 entries: every key the other catalogs translate, including the dialog strings #669 starts looking up (~42%) |