From 21ea5009f49c7d6112abd2ec1493dcaaa969c799 Mon Sep 17 00:00:00 2001 From: dealerweb Date: Thu, 23 Jul 2026 17:59:35 +0200 Subject: [PATCH] i18n: localize the editor toolbar in all 23 locales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rich-text editor was the last hardcoded-English surface in the composer: 21 tooltip titles, the eight table-menu entries, the "Remove color" entry and the table size picker's "Pick size" label were plain strings while every other menu in the app is localized. All of them now come from a new email_composer.toolbar namespace, translated into all 23 locales using each platform's established editor terminology (Word/Docs conventions - de "Formatierung löschen", ar "مسح التنسيق", ja "書式をクリア", ...). The link prompt stays "URL", which is the same term in every language. Tooltips and self-sizing dropdowns have no width constraints, so longer translations are safe everywhere. --- components/email/rich-text-editor.tsx | 63 ++++++++++++++------------- locales/ar/common.json | 32 ++++++++++++++ locales/cs/common.json | 32 ++++++++++++++ locales/da/common.json | 32 ++++++++++++++ locales/de/common.json | 32 ++++++++++++++ locales/en/common.json | 32 ++++++++++++++ locales/es/common.json | 32 ++++++++++++++ locales/fa/common.json | 32 ++++++++++++++ locales/fr/common.json | 32 ++++++++++++++ locales/he/common.json | 32 ++++++++++++++ locales/hu/common.json | 32 ++++++++++++++ locales/it/common.json | 32 ++++++++++++++ locales/ja/common.json | 32 ++++++++++++++ locales/ko/common.json | 32 ++++++++++++++ locales/lv/common.json | 32 ++++++++++++++ locales/nl/common.json | 32 ++++++++++++++ locales/pl/common.json | 32 ++++++++++++++ locales/pt/common.json | 32 ++++++++++++++ locales/ro/common.json | 32 ++++++++++++++ locales/ru/common.json | 32 ++++++++++++++ locales/sk/common.json | 32 ++++++++++++++ locales/tr/common.json | 32 ++++++++++++++ locales/uk/common.json | 32 ++++++++++++++ locales/zh/common.json | 32 ++++++++++++++ 24 files changed, 769 insertions(+), 30 deletions(-) diff --git a/components/email/rich-text-editor.tsx b/components/email/rich-text-editor.tsx index c0e54519..446865b6 100644 --- a/components/email/rich-text-editor.tsx +++ b/components/email/rich-text-editor.tsx @@ -21,6 +21,7 @@ import { QuotedHtml, serializeEditorContent } from "@/components/email/quoted-ht import { SignatureBlock } from "@/components/email/signature-block"; import { cn } from "@/lib/utils"; import { useSettingsStore } from "@/stores/settings-store"; +import { useTranslations } from "next-intl"; import { Bold, Italic, @@ -153,6 +154,7 @@ const TEXT_COLORS = [ ]; function TableSizePicker({ onPick }: { onPick: (rows: number, cols: number) => void }) { + const t = useTranslations("email_composer.toolbar"); const [hover, setHover] = useState<{ r: number; c: number } | null>(null); return (
@@ -180,7 +182,7 @@ function TableSizePicker({ onPick }: { onPick: (rows: number, cols: number) => v })}
- {hover ? `${hover.r + 1} × ${hover.c + 1}` : "Pick size"} + {hover ? `${hover.r + 1} × ${hover.c + 1}` : t("pick_size")}
); @@ -343,6 +345,7 @@ export function RichTextEditor({ .run(); }, [editor]); + const tToolbar = useTranslations("email_composer.toolbar"); const [tableMenuOpen, setTableMenuOpen] = useState(false); const tableWrapperRef = useRef(null); const [colorMenuOpen, setColorMenuOpen] = useState(false); @@ -383,28 +386,28 @@ export function RichTextEditor({ editor.chain().focus().toggleBold().run()} - title="Bold" + title={tToolbar("bold")} > editor.chain().focus().toggleItalic().run()} - title="Italic" + title={tToolbar("italic")} > editor.chain().focus().toggleUnderline().run()} - title="Underline" + title={tToolbar("underline")} > editor.chain().focus().toggleStrike().run()} - title="Strikethrough" + title={tToolbar("strikethrough")} > @@ -412,7 +415,7 @@ export function RichTextEditor({ setColorMenuOpen((v) => !v)} - title="Text color" + title={tToolbar("text_color")} > {/* The icon itself previews the active colour - no layout shift. */} @@ -446,7 +449,7 @@ export function RichTextEditor({ setColorMenuOpen(false); }} > - Remove color + {tToolbar("remove_color")} )} @@ -457,14 +460,14 @@ export function RichTextEditor({ editor.chain().focus().toggleHeading({ level: 1 }).run()} - title="Heading 1" + title={tToolbar("heading_1")} > editor.chain().focus().toggleHeading({ level: 2 }).run()} - title="Heading 2" + title={tToolbar("heading_2")} > @@ -474,28 +477,28 @@ export function RichTextEditor({ editor.chain().focus().toggleBulletList().run()} - title="Bullet List" + title={tToolbar("bullet_list")} > editor.chain().focus().toggleOrderedList().run()} - title="Ordered List" + title={tToolbar("ordered_list")} > editor.chain().focus().toggleBlockquote().run()} - title="Quote" + title={tToolbar("quote")} > editor.chain().focus().toggleCodeBlock().run()} - title="Code Block" + title={tToolbar("code_block")} > @@ -505,21 +508,21 @@ export function RichTextEditor({ editor.chain().focus().setTextAlign("left").run()} - title="Align Left" + title={tToolbar("align_left")} > editor.chain().focus().setTextAlign("center").run()} - title="Align Center" + title={tToolbar("align_center")} > editor.chain().focus().setTextAlign("right").run()} - title="Align Right" + title={tToolbar("align_right")} > @@ -534,7 +537,7 @@ export function RichTextEditor({ editor.getAttributes("paragraph").dir || editor.getAttributes("heading").dir; editor.chain().focus().setTextDirection(cur === "rtl" ? "ltr" : "rtl").run(); }} - title="Text direction (RTL/LTR)" + title={tToolbar("text_direction")} > @@ -545,7 +548,7 @@ export function RichTextEditor({ @@ -554,7 +557,7 @@ export function RichTextEditor({ setTableMenuOpen((v) => !v)} - title="Table" + title={tToolbar("table")} > @@ -567,28 +570,28 @@ export function RichTextEditor({ className="flex items-center gap-2 px-2 py-1.5 text-sm rounded hover:bg-accent text-start" onClick={() => { editor.chain().focus().addRowBefore().run(); setTableMenuOpen(false); }} > - Add row above + {tToolbar("add_row_above")}
) : ( @@ -637,7 +640,7 @@ export function RichTextEditor({ editor.chain().focus().clearNodes().unsetAllMarks().run()} - title="Clear Formatting" + title={tToolbar("clear_formatting")} > @@ -647,14 +650,14 @@ export function RichTextEditor({ editor.chain().focus().undo().run()} disabled={!editor.can().undo()} - title="Undo" + title={tToolbar("undo")} > editor.chain().focus().redo().run()} disabled={!editor.can().redo()} - title="Redo" + title={tToolbar("redo")} > diff --git a/locales/ar/common.json b/locales/ar/common.json index e4ee13bd..2f5a4f70 100644 --- a/locales/ar/common.json +++ b/locales/ar/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "الاسم المعروض", "autocomplete_search_server": "البحث في الخادم", "autocomplete_searching": "جارٍ البحث...", + "toolbar": { + "bold": "غامق", + "italic": "مائل", + "underline": "تسطير", + "strikethrough": "يتوسطه خط", + "text_color": "لون النص", + "remove_color": "إزالة اللون", + "heading_1": "عنوان 1", + "heading_2": "عنوان 2", + "bullet_list": "قائمة نقطية", + "ordered_list": "قائمة مرقمة", + "quote": "اقتباس", + "code_block": "كتلة برمجية", + "align_left": "محاذاة لليسار", + "align_center": "توسيط", + "align_right": "محاذاة لليمين", + "text_direction": "اتجاه النص (RTL/LTR)", + "link": "رابط", + "table": "جدول", + "clear_formatting": "مسح التنسيق", + "undo": "تراجع", + "redo": "إعادة", + "add_row_above": "إضافة صف بالأعلى", + "add_row_below": "إضافة صف بالأسفل", + "add_column_before": "إضافة عمود قبل", + "add_column_after": "إضافة عمود بعد", + "delete_row": "حذف الصف", + "delete_column": "حذف العمود", + "toggle_header_row": "تبديل صف الرأس", + "delete_table": "حذف الجدول", + "pick_size": "اختيار الحجم" + }, "send_filing_warning": "تم الإرسال - لكن التنظيف بعد الإرسال فشل، وقد تبقى مسودة قديمة." }, "confirm_dialog": { diff --git a/locales/cs/common.json b/locales/cs/common.json index ba24711b..e58faf01 100644 --- a/locales/cs/common.json +++ b/locales/cs/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Zobrazované jméno", "autocomplete_search_server": "Hledat na serveru", "autocomplete_searching": "Hledání...", + "toolbar": { + "bold": "Tučné", + "italic": "Kurzíva", + "underline": "Podtržené", + "strikethrough": "Přeškrtnuté", + "text_color": "Barva textu", + "remove_color": "Odebrat barvu", + "heading_1": "Nadpis 1", + "heading_2": "Nadpis 2", + "bullet_list": "Odrážkový seznam", + "ordered_list": "Číslovaný seznam", + "quote": "Citace", + "code_block": "Blok kódu", + "align_left": "Zarovnat vlevo", + "align_center": "Na střed", + "align_right": "Zarovnat vpravo", + "text_direction": "Směr textu (RTL/LTR)", + "link": "Odkaz", + "table": "Tabulka", + "clear_formatting": "Vymazat formátování", + "undo": "Zpět", + "redo": "Znovu", + "add_row_above": "Přidat řádek nad", + "add_row_below": "Přidat řádek pod", + "add_column_before": "Přidat sloupec před", + "add_column_after": "Přidat sloupec za", + "delete_row": "Odstranit řádek", + "delete_column": "Odstranit sloupec", + "toggle_header_row": "Přepnout řádek záhlaví", + "delete_table": "Odstranit tabulku", + "pick_size": "Vybrat velikost" + }, "send_filing_warning": "Odesláno - ale následný úklid selhal, může zůstat zastaralý koncept." }, "confirm_dialog": { diff --git a/locales/da/common.json b/locales/da/common.json index 4ba49bcc..81ca8917 100644 --- a/locales/da/common.json +++ b/locales/da/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Visningsnavn", "autocomplete_search_server": "Søg på serveren", "autocomplete_searching": "Søger...", + "toolbar": { + "bold": "Fed", + "italic": "Kursiv", + "underline": "Understreget", + "strikethrough": "Gennemstreget", + "text_color": "Tekstfarve", + "remove_color": "Fjern farve", + "heading_1": "Overskrift 1", + "heading_2": "Overskrift 2", + "bullet_list": "Punktopstilling", + "ordered_list": "Nummereret liste", + "quote": "Citat", + "code_block": "Kodeblok", + "align_left": "Venstrejusteret", + "align_center": "Centreret", + "align_right": "Højrejusteret", + "text_direction": "Tekstretning (RTL/LTR)", + "link": "Link", + "table": "Tabel", + "clear_formatting": "Ryd formatering", + "undo": "Fortryd", + "redo": "Gentag", + "add_row_above": "Tilføj række over", + "add_row_below": "Tilføj række under", + "add_column_before": "Tilføj kolonne før", + "add_column_after": "Tilføj kolonne efter", + "delete_row": "Slet række", + "delete_column": "Slet kolonne", + "toggle_header_row": "Slå overskriftsrække til/fra", + "delete_table": "Slet tabel", + "pick_size": "Vælg størrelse" + }, "send_filing_warning": "Sendt - men oprydningen bagefter mislykkedes, en forældet kladde kan blive stående." }, "confirm_dialog": { diff --git a/locales/de/common.json b/locales/de/common.json index 6b1ceff3..928c79f2 100644 --- a/locales/de/common.json +++ b/locales/de/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Anzeigename", "autocomplete_search_server": "Auf dem Server suchen", "autocomplete_searching": "Suche läuft...", + "toolbar": { + "bold": "Fett", + "italic": "Kursiv", + "underline": "Unterstrichen", + "strikethrough": "Durchgestrichen", + "text_color": "Textfarbe", + "remove_color": "Farbe entfernen", + "heading_1": "Überschrift 1", + "heading_2": "Überschrift 2", + "bullet_list": "Aufzählung", + "ordered_list": "Nummerierte Liste", + "quote": "Zitat", + "code_block": "Codeblock", + "align_left": "Linksbündig", + "align_center": "Zentriert", + "align_right": "Rechtsbündig", + "text_direction": "Schreibrichtung (RTL/LTR)", + "link": "Link", + "table": "Tabelle", + "clear_formatting": "Formatierung löschen", + "undo": "Rückgängig", + "redo": "Wiederholen", + "add_row_above": "Zeile oberhalb einfügen", + "add_row_below": "Zeile unterhalb einfügen", + "add_column_before": "Spalte davor einfügen", + "add_column_after": "Spalte danach einfügen", + "delete_row": "Zeile löschen", + "delete_column": "Spalte löschen", + "toggle_header_row": "Kopfzeile umschalten", + "delete_table": "Tabelle löschen", + "pick_size": "Größe wählen" + }, "send_filing_warning": "Gesendet - aber das Aufräumen danach schlug fehl, evtl. bleibt ein alter Entwurf sichtbar." }, "confirm_dialog": { diff --git a/locales/en/common.json b/locales/en/common.json index e9890db7..a1e14917 100644 --- a/locales/en/common.json +++ b/locales/en/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Display name", "autocomplete_search_server": "Search the server", "autocomplete_searching": "Searching...", + "toolbar": { + "bold": "Bold", + "italic": "Italic", + "underline": "Underline", + "strikethrough": "Strikethrough", + "text_color": "Text color", + "remove_color": "Remove color", + "heading_1": "Heading 1", + "heading_2": "Heading 2", + "bullet_list": "Bullet list", + "ordered_list": "Ordered list", + "quote": "Quote", + "code_block": "Code block", + "align_left": "Align left", + "align_center": "Align center", + "align_right": "Align right", + "text_direction": "Text direction (RTL/LTR)", + "link": "Link", + "table": "Table", + "clear_formatting": "Clear formatting", + "undo": "Undo", + "redo": "Redo", + "add_row_above": "Add row above", + "add_row_below": "Add row below", + "add_column_before": "Add column before", + "add_column_after": "Add column after", + "delete_row": "Delete row", + "delete_column": "Delete column", + "toggle_header_row": "Toggle header row", + "delete_table": "Delete table", + "pick_size": "Pick size" + }, "send_filing_warning": "Sent - but the post-send cleanup failed, a stale draft may remain." }, "confirm_dialog": { diff --git a/locales/es/common.json b/locales/es/common.json index 8e789bde..17878b0a 100644 --- a/locales/es/common.json +++ b/locales/es/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Nombre para mostrar", "autocomplete_search_server": "Buscar en el servidor", "autocomplete_searching": "Buscando...", + "toolbar": { + "bold": "Negrita", + "italic": "Cursiva", + "underline": "Subrayado", + "strikethrough": "Tachado", + "text_color": "Color del texto", + "remove_color": "Quitar color", + "heading_1": "Encabezado 1", + "heading_2": "Encabezado 2", + "bullet_list": "Lista con viñetas", + "ordered_list": "Lista numerada", + "quote": "Cita", + "code_block": "Bloque de código", + "align_left": "Alinear a la izquierda", + "align_center": "Centrar", + "align_right": "Alinear a la derecha", + "text_direction": "Dirección del texto (RTL/LTR)", + "link": "Enlace", + "table": "Tabla", + "clear_formatting": "Borrar formato", + "undo": "Deshacer", + "redo": "Rehacer", + "add_row_above": "Añadir fila encima", + "add_row_below": "Añadir fila debajo", + "add_column_before": "Añadir columna antes", + "add_column_after": "Añadir columna después", + "delete_row": "Eliminar fila", + "delete_column": "Eliminar columna", + "toggle_header_row": "Alternar fila de encabezado", + "delete_table": "Eliminar tabla", + "pick_size": "Elegir tamaño" + }, "send_filing_warning": "Enviado - pero la limpieza posterior falló, puede quedar un borrador obsoleto." }, "confirm_dialog": { diff --git a/locales/fa/common.json b/locales/fa/common.json index be4ec6c6..77253d78 100644 --- a/locales/fa/common.json +++ b/locales/fa/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "نام نمایشی", "autocomplete_search_server": "جستجو در سرور", "autocomplete_searching": "در حال جستجو...", + "toolbar": { + "bold": "پررنگ", + "italic": "کج", + "underline": "زیرخط‌دار", + "strikethrough": "خط‌خورده", + "text_color": "رنگ متن", + "remove_color": "حذف رنگ", + "heading_1": "سرفصل ۱", + "heading_2": "سرفصل ۲", + "bullet_list": "فهرست نشانه‌دار", + "ordered_list": "فهرست شماره‌دار", + "quote": "نقل‌قول", + "code_block": "بلوک کد", + "align_left": "تراز چپ", + "align_center": "وسط‌چین", + "align_right": "تراز راست", + "text_direction": "جهت متن (RTL/LTR)", + "link": "پیوند", + "table": "جدول", + "clear_formatting": "پاک کردن قالب‌بندی", + "undo": "واگرد", + "redo": "انجام دوباره", + "add_row_above": "افزودن ردیف در بالا", + "add_row_below": "افزودن ردیف در پایین", + "add_column_before": "افزودن ستون قبل", + "add_column_after": "افزودن ستون بعد", + "delete_row": "حذف ردیف", + "delete_column": "حذف ستون", + "toggle_header_row": "تغییر وضعیت ردیف سرصفحه", + "delete_table": "حذف جدول", + "pick_size": "انتخاب اندازه" + }, "send_filing_warning": "ارسال شد - اما پاک‌سازی پس از ارسال ناموفق بود، ممکن است پیش‌نویس قدیمی باقی بماند." }, "confirm_dialog": { diff --git a/locales/fr/common.json b/locales/fr/common.json index 2ca92cec..787d12db 100644 --- a/locales/fr/common.json +++ b/locales/fr/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Nom d'affichage", "autocomplete_search_server": "Rechercher sur le serveur", "autocomplete_searching": "Recherche en cours...", + "toolbar": { + "bold": "Gras", + "italic": "Italique", + "underline": "Souligné", + "strikethrough": "Barré", + "text_color": "Couleur du texte", + "remove_color": "Supprimer la couleur", + "heading_1": "Titre 1", + "heading_2": "Titre 2", + "bullet_list": "Liste à puces", + "ordered_list": "Liste numérotée", + "quote": "Citation", + "code_block": "Bloc de code", + "align_left": "Aligner à gauche", + "align_center": "Centrer", + "align_right": "Aligner à droite", + "text_direction": "Sens du texte (RTL/LTR)", + "link": "Lien", + "table": "Tableau", + "clear_formatting": "Effacer la mise en forme", + "undo": "Annuler", + "redo": "Rétablir", + "add_row_above": "Insérer une ligne au-dessus", + "add_row_below": "Insérer une ligne en dessous", + "add_column_before": "Insérer une colonne avant", + "add_column_after": "Insérer une colonne après", + "delete_row": "Supprimer la ligne", + "delete_column": "Supprimer la colonne", + "toggle_header_row": "Basculer la ligne d'en-tête", + "delete_table": "Supprimer le tableau", + "pick_size": "Choisir la taille" + }, "send_filing_warning": "Envoyé - mais le nettoyage après envoi a échoué, un ancien brouillon peut subsister." }, "confirm_dialog": { diff --git a/locales/he/common.json b/locales/he/common.json index d659253f..2114c869 100644 --- a/locales/he/common.json +++ b/locales/he/common.json @@ -651,6 +651,38 @@ "recipient_name_placeholder": "שם תצוגה", "autocomplete_search_server": "חיפוש בשרת", "autocomplete_searching": "מחפש...", + "toolbar": { + "bold": "מודגש", + "italic": "נטוי", + "underline": "קו תחתון", + "strikethrough": "קו חוצה", + "text_color": "צבע טקסט", + "remove_color": "הסרת צבע", + "heading_1": "כותרת 1", + "heading_2": "כותרת 2", + "bullet_list": "רשימת תבליטים", + "ordered_list": "רשימה ממוספרת", + "quote": "ציטוט", + "code_block": "בלוק קוד", + "align_left": "יישור לשמאל", + "align_center": "מרכוז", + "align_right": "יישור לימין", + "text_direction": "כיוון טקסט (RTL/LTR)", + "link": "קישור", + "table": "טבלה", + "clear_formatting": "ניקוי עיצוב", + "undo": "ביטול", + "redo": "ביצוע מחדש", + "add_row_above": "הוספת שורה מעל", + "add_row_below": "הוספת שורה מתחת", + "add_column_before": "הוספת עמודה לפני", + "add_column_after": "הוספת עמודה אחרי", + "delete_row": "מחיקת שורה", + "delete_column": "מחיקת עמודה", + "toggle_header_row": "החלפת שורת כותרת", + "delete_table": "מחיקת טבלה", + "pick_size": "בחירת גודל" + }, "send_filing_warning": "נשלח - אך הניקוי שלאחר השליחה נכשל, ייתכן שתישאר טיוטה ישנה." }, "confirm_dialog": { diff --git a/locales/hu/common.json b/locales/hu/common.json index 3abd3143..c533eb7b 100644 --- a/locales/hu/common.json +++ b/locales/hu/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Megjelenített név", "autocomplete_search_server": "Keresés a kiszolgálón", "autocomplete_searching": "Keresés...", + "toolbar": { + "bold": "Félkövér", + "italic": "Dőlt", + "underline": "Aláhúzott", + "strikethrough": "Áthúzott", + "text_color": "Betűszín", + "remove_color": "Szín eltávolítása", + "heading_1": "Címsor 1", + "heading_2": "Címsor 2", + "bullet_list": "Felsorolás", + "ordered_list": "Számozott lista", + "quote": "Idézet", + "code_block": "Kódblokk", + "align_left": "Balra igazítás", + "align_center": "Középre igazítás", + "align_right": "Jobbra igazítás", + "text_direction": "Szövegirány (RTL/LTR)", + "link": "Hivatkozás", + "table": "Táblázat", + "clear_formatting": "Formázás törlése", + "undo": "Visszavonás", + "redo": "Újra", + "add_row_above": "Sor beszúrása fölé", + "add_row_below": "Sor beszúrása alá", + "add_column_before": "Oszlop beszúrása elé", + "add_column_after": "Oszlop beszúrása mögé", + "delete_row": "Sor törlése", + "delete_column": "Oszlop törlése", + "toggle_header_row": "Fejlécsor váltása", + "delete_table": "Táblázat törlése", + "pick_size": "Méret kiválasztása" + }, "send_filing_warning": "Elküldve - de az utólagos rendrakás nem sikerült, egy elavult piszkozat megmaradhat." }, "confirm_dialog": { diff --git a/locales/it/common.json b/locales/it/common.json index 16481d66..a90df226 100644 --- a/locales/it/common.json +++ b/locales/it/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Nome visualizzato", "autocomplete_search_server": "Cerca nel server", "autocomplete_searching": "Ricerca in corso...", + "toolbar": { + "bold": "Grassetto", + "italic": "Corsivo", + "underline": "Sottolineato", + "strikethrough": "Barrato", + "text_color": "Colore del testo", + "remove_color": "Rimuovi colore", + "heading_1": "Titolo 1", + "heading_2": "Titolo 2", + "bullet_list": "Elenco puntato", + "ordered_list": "Elenco numerato", + "quote": "Citazione", + "code_block": "Blocco di codice", + "align_left": "Allinea a sinistra", + "align_center": "Centra", + "align_right": "Allinea a destra", + "text_direction": "Direzione del testo (RTL/LTR)", + "link": "Link", + "table": "Tabella", + "clear_formatting": "Cancella formattazione", + "undo": "Annulla", + "redo": "Ripeti", + "add_row_above": "Aggiungi riga sopra", + "add_row_below": "Aggiungi riga sotto", + "add_column_before": "Aggiungi colonna prima", + "add_column_after": "Aggiungi colonna dopo", + "delete_row": "Elimina riga", + "delete_column": "Elimina colonna", + "toggle_header_row": "Attiva/disattiva riga di intestazione", + "delete_table": "Elimina tabella", + "pick_size": "Scegli dimensione" + }, "send_filing_warning": "Inviato - ma la pulizia successiva non è riuscita, potrebbe restare una bozza obsoleta." }, "confirm_dialog": { diff --git a/locales/ja/common.json b/locales/ja/common.json index 9b59170e..f01bcd81 100644 --- a/locales/ja/common.json +++ b/locales/ja/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "表示名", "autocomplete_search_server": "サーバーを検索", "autocomplete_searching": "検索中...", + "toolbar": { + "bold": "太字", + "italic": "斜体", + "underline": "下線", + "strikethrough": "取り消し線", + "text_color": "文字色", + "remove_color": "色を解除", + "heading_1": "見出し1", + "heading_2": "見出し2", + "bullet_list": "箇条書き", + "ordered_list": "番号付きリスト", + "quote": "引用", + "code_block": "コードブロック", + "align_left": "左揃え", + "align_center": "中央揃え", + "align_right": "右揃え", + "text_direction": "文字方向 (RTL/LTR)", + "link": "リンク", + "table": "表", + "clear_formatting": "書式をクリア", + "undo": "元に戻す", + "redo": "やり直す", + "add_row_above": "上に行を追加", + "add_row_below": "下に行を追加", + "add_column_before": "左に列を追加", + "add_column_after": "右に列を追加", + "delete_row": "行を削除", + "delete_column": "列を削除", + "toggle_header_row": "ヘッダー行の切り替え", + "delete_table": "表を削除", + "pick_size": "サイズを選択" + }, "send_filing_warning": "送信されましたが、送信後の整理に失敗しました。古い下書きが残る場合があります。" }, "confirm_dialog": { diff --git a/locales/ko/common.json b/locales/ko/common.json index 3be1c812..93797c4c 100644 --- a/locales/ko/common.json +++ b/locales/ko/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "표시 이름", "autocomplete_search_server": "서버에서 검색", "autocomplete_searching": "검색 중...", + "toolbar": { + "bold": "굵게", + "italic": "기울임꼴", + "underline": "밑줄", + "strikethrough": "취소선", + "text_color": "글자 색", + "remove_color": "색 제거", + "heading_1": "제목 1", + "heading_2": "제목 2", + "bullet_list": "글머리 기호 목록", + "ordered_list": "번호 매기기 목록", + "quote": "인용", + "code_block": "코드 블록", + "align_left": "왼쪽 정렬", + "align_center": "가운데 정렬", + "align_right": "오른쪽 정렬", + "text_direction": "텍스트 방향 (RTL/LTR)", + "link": "링크", + "table": "표", + "clear_formatting": "서식 지우기", + "undo": "실행 취소", + "redo": "다시 실행", + "add_row_above": "위에 행 추가", + "add_row_below": "아래에 행 추가", + "add_column_before": "앞에 열 추가", + "add_column_after": "뒤에 열 추가", + "delete_row": "행 삭제", + "delete_column": "열 삭제", + "toggle_header_row": "머리글 행 전환", + "delete_table": "표 삭제", + "pick_size": "크기 선택" + }, "send_filing_warning": "보냈지만 전송 후 정리에 실패했습니다. 오래된 임시 보관 메일이 남아 있을 수 있습니다." }, "confirm_dialog": { diff --git a/locales/lv/common.json b/locales/lv/common.json index 3002c607..59774db3 100644 --- a/locales/lv/common.json +++ b/locales/lv/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Parādāmais vārds", "autocomplete_search_server": "Meklēt serverī", "autocomplete_searching": "Meklē...", + "toolbar": { + "bold": "Treknraksts", + "italic": "Kursīvs", + "underline": "Pasvītrots", + "strikethrough": "Pārsvītrots", + "text_color": "Teksta krāsa", + "remove_color": "Noņemt krāsu", + "heading_1": "Virsraksts 1", + "heading_2": "Virsraksts 2", + "bullet_list": "Aizzīmju saraksts", + "ordered_list": "Numurēts saraksts", + "quote": "Citāts", + "code_block": "Koda bloks", + "align_left": "Līdzināt pa kreisi", + "align_center": "Centrēt", + "align_right": "Līdzināt pa labi", + "text_direction": "Teksta virziens (RTL/LTR)", + "link": "Saite", + "table": "Tabula", + "clear_formatting": "Notīrīt formatējumu", + "undo": "Atsaukt", + "redo": "Atkārtot", + "add_row_above": "Pievienot rindu virs", + "add_row_below": "Pievienot rindu zem", + "add_column_before": "Pievienot kolonnu pirms", + "add_column_after": "Pievienot kolonnu pēc", + "delete_row": "Dzēst rindu", + "delete_column": "Dzēst kolonnu", + "toggle_header_row": "Pārslēgt galvenes rindu", + "delete_table": "Dzēst tabulu", + "pick_size": "Izvēlēties izmēru" + }, "send_filing_warning": "Nosūtīts - bet pēcapstrāde neizdevās, var palikt novecojis melnraksts." }, "confirm_dialog": { diff --git a/locales/nl/common.json b/locales/nl/common.json index bd3a6420..4223e4be 100644 --- a/locales/nl/common.json +++ b/locales/nl/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Weergavenaam", "autocomplete_search_server": "Op de server zoeken", "autocomplete_searching": "Bezig met zoeken...", + "toolbar": { + "bold": "Vet", + "italic": "Cursief", + "underline": "Onderstrepen", + "strikethrough": "Doorhalen", + "text_color": "Tekstkleur", + "remove_color": "Kleur verwijderen", + "heading_1": "Kop 1", + "heading_2": "Kop 2", + "bullet_list": "Opsommingslijst", + "ordered_list": "Genummerde lijst", + "quote": "Citaat", + "code_block": "Codeblok", + "align_left": "Links uitlijnen", + "align_center": "Centreren", + "align_right": "Rechts uitlijnen", + "text_direction": "Tekstrichting (RTL/LTR)", + "link": "Link", + "table": "Tabel", + "clear_formatting": "Opmaak wissen", + "undo": "Ongedaan maken", + "redo": "Opnieuw", + "add_row_above": "Rij erboven toevoegen", + "add_row_below": "Rij eronder toevoegen", + "add_column_before": "Kolom ervoor toevoegen", + "add_column_after": "Kolom erna toevoegen", + "delete_row": "Rij verwijderen", + "delete_column": "Kolom verwijderen", + "toggle_header_row": "Koprij aan/uit", + "delete_table": "Tabel verwijderen", + "pick_size": "Grootte kiezen" + }, "send_filing_warning": "Verzonden - maar het opruimen daarna is mislukt, mogelijk blijft een oud concept staan." }, "confirm_dialog": { diff --git a/locales/pl/common.json b/locales/pl/common.json index e0a3f682..a18134b3 100644 --- a/locales/pl/common.json +++ b/locales/pl/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Wyświetlana nazwa", "autocomplete_search_server": "Szukaj na serwerze", "autocomplete_searching": "Wyszukiwanie...", + "toolbar": { + "bold": "Pogrubienie", + "italic": "Kursywa", + "underline": "Podkreślenie", + "strikethrough": "Przekreślenie", + "text_color": "Kolor tekstu", + "remove_color": "Usuń kolor", + "heading_1": "Nagłówek 1", + "heading_2": "Nagłówek 2", + "bullet_list": "Lista punktowana", + "ordered_list": "Lista numerowana", + "quote": "Cytat", + "code_block": "Blok kodu", + "align_left": "Wyrównaj do lewej", + "align_center": "Wyśrodkuj", + "align_right": "Wyrównaj do prawej", + "text_direction": "Kierunek tekstu (RTL/LTR)", + "link": "Link", + "table": "Tabela", + "clear_formatting": "Wyczyść formatowanie", + "undo": "Cofnij", + "redo": "Ponów", + "add_row_above": "Dodaj wiersz powyżej", + "add_row_below": "Dodaj wiersz poniżej", + "add_column_before": "Dodaj kolumnę przed", + "add_column_after": "Dodaj kolumnę po", + "delete_row": "Usuń wiersz", + "delete_column": "Usuń kolumnę", + "toggle_header_row": "Przełącz wiersz nagłówka", + "delete_table": "Usuń tabelę", + "pick_size": "Wybierz rozmiar" + }, "send_filing_warning": "Wysłano - ale późniejsze porządkowanie nie powiodło się, może pozostać nieaktualna wersja robocza." }, "confirm_dialog": { diff --git a/locales/pt/common.json b/locales/pt/common.json index df5fb085..91c66bc3 100644 --- a/locales/pt/common.json +++ b/locales/pt/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Nome de exibição", "autocomplete_search_server": "Pesquisar no servidor", "autocomplete_searching": "Pesquisando...", + "toolbar": { + "bold": "Negrito", + "italic": "Itálico", + "underline": "Sublinhado", + "strikethrough": "Tachado", + "text_color": "Cor do texto", + "remove_color": "Remover cor", + "heading_1": "Título 1", + "heading_2": "Título 2", + "bullet_list": "Lista com marcadores", + "ordered_list": "Lista numerada", + "quote": "Citação", + "code_block": "Bloco de código", + "align_left": "Alinhar à esquerda", + "align_center": "Centralizar", + "align_right": "Alinhar à direita", + "text_direction": "Direção do texto (RTL/LTR)", + "link": "Link", + "table": "Tabela", + "clear_formatting": "Limpar formatação", + "undo": "Desfazer", + "redo": "Refazer", + "add_row_above": "Adicionar linha acima", + "add_row_below": "Adicionar linha abaixo", + "add_column_before": "Adicionar coluna antes", + "add_column_after": "Adicionar coluna depois", + "delete_row": "Excluir linha", + "delete_column": "Excluir coluna", + "toggle_header_row": "Alternar linha de cabeçalho", + "delete_table": "Excluir tabela", + "pick_size": "Escolher tamanho" + }, "send_filing_warning": "Enviado - mas a limpeza posterior falhou, um rascunho antigo pode permanecer." }, "confirm_dialog": { diff --git a/locales/ro/common.json b/locales/ro/common.json index 31cea1ef..67d5e06b 100644 --- a/locales/ro/common.json +++ b/locales/ro/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Numele afișat", "autocomplete_search_server": "Caută pe server", "autocomplete_searching": "Se caută...", + "toolbar": { + "bold": "Aldin", + "italic": "Cursiv", + "underline": "Subliniat", + "strikethrough": "Tăiat", + "text_color": "Culoarea textului", + "remove_color": "Elimină culoarea", + "heading_1": "Titlu 1", + "heading_2": "Titlu 2", + "bullet_list": "Listă cu marcatori", + "ordered_list": "Listă numerotată", + "quote": "Citat", + "code_block": "Bloc de cod", + "align_left": "Aliniere la stânga", + "align_center": "Centrare", + "align_right": "Aliniere la dreapta", + "text_direction": "Direcția textului (RTL/LTR)", + "link": "Link", + "table": "Tabel", + "clear_formatting": "Șterge formatarea", + "undo": "Anulează", + "redo": "Refă", + "add_row_above": "Adaugă rând deasupra", + "add_row_below": "Adaugă rând dedesubt", + "add_column_before": "Adaugă coloană înainte", + "add_column_after": "Adaugă coloană după", + "delete_row": "Șterge rândul", + "delete_column": "Șterge coloana", + "toggle_header_row": "Comută rândul de antet", + "delete_table": "Șterge tabelul", + "pick_size": "Alege dimensiunea" + }, "send_filing_warning": "Trimis - dar curățarea ulterioară a eșuat, poate rămâne o ciornă veche." }, "confirm_dialog": { diff --git a/locales/ru/common.json b/locales/ru/common.json index 0635033c..aaeee723 100644 --- a/locales/ru/common.json +++ b/locales/ru/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Отображаемое имя", "autocomplete_search_server": "Искать на сервере", "autocomplete_searching": "Поиск...", + "toolbar": { + "bold": "Жирный", + "italic": "Курсив", + "underline": "Подчёркнутый", + "strikethrough": "Зачёркнутый", + "text_color": "Цвет текста", + "remove_color": "Убрать цвет", + "heading_1": "Заголовок 1", + "heading_2": "Заголовок 2", + "bullet_list": "Маркированный список", + "ordered_list": "Нумерованный список", + "quote": "Цитата", + "code_block": "Блок кода", + "align_left": "По левому краю", + "align_center": "По центру", + "align_right": "По правому краю", + "text_direction": "Направление текста (RTL/LTR)", + "link": "Ссылка", + "table": "Таблица", + "clear_formatting": "Очистить форматирование", + "undo": "Отменить", + "redo": "Повторить", + "add_row_above": "Вставить строку выше", + "add_row_below": "Вставить строку ниже", + "add_column_before": "Вставить столбец слева", + "add_column_after": "Вставить столбец справа", + "delete_row": "Удалить строку", + "delete_column": "Удалить столбец", + "toggle_header_row": "Переключить строку заголовка", + "delete_table": "Удалить таблицу", + "pick_size": "Выбрать размер" + }, "send_filing_warning": "Отправлено - но последующая очистка не удалась, может остаться устаревший черновик." }, "confirm_dialog": { diff --git a/locales/sk/common.json b/locales/sk/common.json index 012f92ac..b214e1f0 100644 --- a/locales/sk/common.json +++ b/locales/sk/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Zobrazené meno", "autocomplete_search_server": "Hľadať na serveri", "autocomplete_searching": "Hľadanie...", + "toolbar": { + "bold": "Tučné", + "italic": "Kurzíva", + "underline": "Podčiarknuté", + "strikethrough": "Prečiarknuté", + "text_color": "Farba textu", + "remove_color": "Odstrániť farbu", + "heading_1": "Nadpis 1", + "heading_2": "Nadpis 2", + "bullet_list": "Odrážkový zoznam", + "ordered_list": "Číslovaný zoznam", + "quote": "Citát", + "code_block": "Blok kódu", + "align_left": "Zarovnať doľava", + "align_center": "Na stred", + "align_right": "Zarovnať doprava", + "text_direction": "Smer textu (RTL/LTR)", + "link": "Odkaz", + "table": "Tabuľka", + "clear_formatting": "Vymazať formátovanie", + "undo": "Späť", + "redo": "Znova", + "add_row_above": "Pridať riadok nad", + "add_row_below": "Pridať riadok pod", + "add_column_before": "Pridať stĺpec pred", + "add_column_after": "Pridať stĺpec za", + "delete_row": "Odstrániť riadok", + "delete_column": "Odstrániť stĺpec", + "toggle_header_row": "Prepnúť riadok záhlavia", + "delete_table": "Odstrániť tabuľku", + "pick_size": "Vybrať veľkosť" + }, "send_filing_warning": "Odoslané - ale následné upratovanie zlyhalo, môže zostať zastaraný koncept." }, "confirm_dialog": { diff --git a/locales/tr/common.json b/locales/tr/common.json index fab595f4..c721980c 100644 --- a/locales/tr/common.json +++ b/locales/tr/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Görünen ad", "autocomplete_search_server": "Sunucuda ara", "autocomplete_searching": "Aranıyor...", + "toolbar": { + "bold": "Kalın", + "italic": "İtalik", + "underline": "Altı çizili", + "strikethrough": "Üstü çizili", + "text_color": "Metin rengi", + "remove_color": "Rengi kaldır", + "heading_1": "Başlık 1", + "heading_2": "Başlık 2", + "bullet_list": "Madde işaretli liste", + "ordered_list": "Numaralı liste", + "quote": "Alıntı", + "code_block": "Kod bloğu", + "align_left": "Sola hizala", + "align_center": "Ortala", + "align_right": "Sağa hizala", + "text_direction": "Metin yönü (RTL/LTR)", + "link": "Bağlantı", + "table": "Tablo", + "clear_formatting": "Biçimlendirmeyi temizle", + "undo": "Geri al", + "redo": "Yinele", + "add_row_above": "Üste satır ekle", + "add_row_below": "Alta satır ekle", + "add_column_before": "Öncesine sütun ekle", + "add_column_after": "Sonrasına sütun ekle", + "delete_row": "Satırı sil", + "delete_column": "Sütunu sil", + "toggle_header_row": "Başlık satırını aç/kapat", + "delete_table": "Tabloyu sil", + "pick_size": "Boyut seç" + }, "send_filing_warning": "Gönderildi - ancak sonrasındaki temizleme başarısız oldu, eski bir taslak kalabilir." }, "confirm_dialog": { diff --git a/locales/uk/common.json b/locales/uk/common.json index 88363876..3fa92aee 100644 --- a/locales/uk/common.json +++ b/locales/uk/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "Відображуване ім'я", "autocomplete_search_server": "Шукати на сервері", "autocomplete_searching": "Пошук...", + "toolbar": { + "bold": "Жирний", + "italic": "Курсив", + "underline": "Підкреслений", + "strikethrough": "Закреслений", + "text_color": "Колір тексту", + "remove_color": "Прибрати колір", + "heading_1": "Заголовок 1", + "heading_2": "Заголовок 2", + "bullet_list": "Маркований список", + "ordered_list": "Нумерований список", + "quote": "Цитата", + "code_block": "Блок коду", + "align_left": "По лівому краю", + "align_center": "По центру", + "align_right": "По правому краю", + "text_direction": "Напрямок тексту (RTL/LTR)", + "link": "Посилання", + "table": "Таблиця", + "clear_formatting": "Очистити форматування", + "undo": "Скасувати", + "redo": "Повторити", + "add_row_above": "Вставити рядок вище", + "add_row_below": "Вставити рядок нижче", + "add_column_before": "Вставити стовпець ліворуч", + "add_column_after": "Вставити стовпець праворуч", + "delete_row": "Видалити рядок", + "delete_column": "Видалити стовпець", + "toggle_header_row": "Переключити рядок заголовка", + "delete_table": "Видалити таблицю", + "pick_size": "Вибрати розмір" + }, "send_filing_warning": "Надіслано - але подальше очищення не вдалося, може залишитися застаріла чернетка." }, "confirm_dialog": { diff --git a/locales/zh/common.json b/locales/zh/common.json index 9411f923..806f66f6 100644 --- a/locales/zh/common.json +++ b/locales/zh/common.json @@ -686,6 +686,38 @@ "recipient_name_placeholder": "显示名称", "autocomplete_search_server": "在服务器上搜索", "autocomplete_searching": "搜索中...", + "toolbar": { + "bold": "加粗", + "italic": "斜体", + "underline": "下划线", + "strikethrough": "删除线", + "text_color": "文字颜色", + "remove_color": "移除颜色", + "heading_1": "标题 1", + "heading_2": "标题 2", + "bullet_list": "项目符号列表", + "ordered_list": "编号列表", + "quote": "引用", + "code_block": "代码块", + "align_left": "左对齐", + "align_center": "居中对齐", + "align_right": "右对齐", + "text_direction": "文字方向 (RTL/LTR)", + "link": "链接", + "table": "表格", + "clear_formatting": "清除格式", + "undo": "撤销", + "redo": "重做", + "add_row_above": "在上方添加行", + "add_row_below": "在下方添加行", + "add_column_before": "在前面添加列", + "add_column_after": "在后面添加列", + "delete_row": "删除行", + "delete_column": "删除列", + "toggle_header_row": "切换标题行", + "delete_table": "删除表格", + "pick_size": "选择大小" + }, "send_filing_warning": "已发送,但发送后的清理失败,可能会残留旧草稿。" }, "confirm_dialog": {