mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-02 08:15:55 +00:00
feat: say when an import or export running in the background ends, and keep the focus in its dialog
This commit is contained in:
@@ -127,6 +127,32 @@ describe('MailImportDialog', () => {
|
||||
expect(screen.getByRole('heading', { name: 'running_title' })).toBeTruthy();
|
||||
});
|
||||
|
||||
it('says when a hidden import ends, with a way back to its summary', async () => {
|
||||
const { useToastStore } = await import('@/stores/toast-store');
|
||||
useToastStore.setState({ toasts: [] });
|
||||
render(<MailTransferHost />);
|
||||
act(() => {
|
||||
openMailImport();
|
||||
useMailTransferStore.getState().startJob({ kind: 'import', controller: new AbortController(), progress: progress() });
|
||||
useMailTransferStore.getState().hide();
|
||||
});
|
||||
act(() => useMailTransferStore.getState().updateProgress(progress({ phase: 'done', imported: 12, failed: 1 })));
|
||||
const toastShown = useToastStore.getState().toasts.find((x) => x.title === 'toast_done');
|
||||
expect(toastShown?.action?.label).toBe('toast_show');
|
||||
act(() => toastShown!.action!.onClick());
|
||||
expect(screen.getByRole('heading', { name: 'done_title' })).toBeTruthy();
|
||||
});
|
||||
|
||||
it('keeps the focus in the dialog when Import turns into the progress view and then the summary', async () => {
|
||||
render(<MailTransferHost />);
|
||||
act(() => openMailImport());
|
||||
(document.activeElement as HTMLElement | null)?.blur();
|
||||
act(() => useMailTransferStore.getState().startJob({ kind: 'import', controller: new AbortController(), progress: progress() }));
|
||||
await waitFor(() => expect(document.activeElement?.textContent).toBe('background'));
|
||||
act(() => useMailTransferStore.getState().updateProgress(progress({ phase: 'done' })));
|
||||
await waitFor(() => expect(document.activeElement?.textContent).toBe('close'));
|
||||
});
|
||||
|
||||
it('lists what was skipped and what failed when it ends', () => {
|
||||
render(<MailTransferHost />);
|
||||
act(() => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useId, useState } from "react";
|
||||
import { useId, useRef, useState } from "react";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import { Dialog } from "@/components/ui/dialog";
|
||||
import { Button } from "@/components/ui/button";
|
||||
@@ -11,7 +11,7 @@ import type { ExportFormat, ExportProgress } from "@/lib/mail-export/engine";
|
||||
import { safeName } from "@/lib/mail-export/engine";
|
||||
import { canPickSaveFile, canWritePrivateFile, memorySink, pickSaveFile, privateFileSink, sweepPrivateExports, type ExportSink } from "@/lib/mail-export/sinks";
|
||||
import { formatFileSize } from "@/lib/utils";
|
||||
import { formatClock, TransferBar } from "./transfer-progress";
|
||||
import { formatClock, TransferBar, useFocusOnStage } from "./transfer-progress";
|
||||
import { startExport } from "./start-export";
|
||||
|
||||
function today(): string {
|
||||
@@ -44,6 +44,8 @@ export function MailExportDialog({ request }: { request: ExportRequest }) {
|
||||
const folder = !!request.mailboxId;
|
||||
const progress = job?.kind === "export" ? job.progress : null;
|
||||
const active = isJobActive(job);
|
||||
const stageButton = useRef<HTMLButtonElement>(null);
|
||||
useFocusOnStage(stageButton, progress ? (active ? "running" : "ended") : "setup");
|
||||
|
||||
if (!visible) return null;
|
||||
|
||||
@@ -94,7 +96,7 @@ export function MailExportDialog({ request }: { request: ExportRequest }) {
|
||||
testId="mail-export-dialog"
|
||||
footer={active ? (
|
||||
<>
|
||||
<Button variant="outline" onClick={hide}>{t("background")}</Button>
|
||||
<Button ref={stageButton} variant="outline" onClick={hide}>{t("background")}</Button>
|
||||
<Button variant="destructive" onClick={() => cancelJob()} aria-describedby={`${id}-status`}>{t("cancel_export")}</Button>
|
||||
</>
|
||||
) : (
|
||||
@@ -102,7 +104,7 @@ export function MailExportDialog({ request }: { request: ExportRequest }) {
|
||||
{progress.phase === "done" && progress.file?.download && (
|
||||
<Button variant="outline" onClick={() => progress.file?.download?.()} data-testid="mail-export-download">{t("download_again")}</Button>
|
||||
)}
|
||||
<Button onClick={() => close()}>{t("close")}</Button>
|
||||
<Button ref={stageButton} onClick={() => close()}>{t("close")}</Button>
|
||||
</>
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -14,7 +14,7 @@ import { hasFolders, sniffFormat, type ImportFormat, type SkipReason } from "@/l
|
||||
import type { ImportProgress } from "@/lib/mail-import/engine";
|
||||
import type { Mailbox } from "@/lib/jmap/types";
|
||||
import { formatFileSize, getMailboxPath } from "@/lib/utils";
|
||||
import { formatClock, TransferBar } from "./transfer-progress";
|
||||
import { formatClock, TransferBar, useFocusOnStage } from "./transfer-progress";
|
||||
import { startImport } from "./start-import";
|
||||
|
||||
const ACCEPT = ".eml,.zip,.mbox,.mbx,.pst,.ost,message/rfc822,application/zip,application/mbox";
|
||||
@@ -112,6 +112,8 @@ export function MailImportDialog({ request }: { request: ImportRequest }) {
|
||||
const formatName = (format: ImportFormat) => t(`format_${format}`);
|
||||
const progress = job?.kind === "import" ? job.progress : null;
|
||||
const active = isJobActive(job);
|
||||
const stageButton = useRef<HTMLButtonElement>(null);
|
||||
useFocusOnStage(stageButton, progress ? (active ? "running" : "ended") : "setup");
|
||||
|
||||
const onStart = () => {
|
||||
if (picked.length === 0 || !accountId) return;
|
||||
@@ -140,11 +142,11 @@ export function MailImportDialog({ request }: { request: ImportRequest }) {
|
||||
testId="mail-import-dialog"
|
||||
footer={active ? (
|
||||
<>
|
||||
<Button variant="outline" onClick={hide}>{t("background")}</Button>
|
||||
<Button ref={stageButton} variant="outline" onClick={hide}>{t("background")}</Button>
|
||||
<Button variant="destructive" onClick={() => cancelJob()} aria-describedby={`${id}-status`}>{t("cancel_import")}</Button>
|
||||
</>
|
||||
) : (
|
||||
<Button onClick={() => close()}>{t("close")}</Button>
|
||||
<Button ref={stageButton} onClick={() => close()}>{t("close")}</Button>
|
||||
)}
|
||||
>
|
||||
<ProgressBody progress={progress} t={t} locale={locale} statusId={`${id}-status`} />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect } from "react";
|
||||
import { useEffect, useRef } from "react";
|
||||
import { useLocale, useTranslations } from "next-intl";
|
||||
import { Loader2, Pause } from "@/components/icons";
|
||||
import { isJobActive, useMailTransferStore } from "@/stores/mail-transfer-store";
|
||||
@@ -8,6 +8,7 @@ import { onBeforeSignOut } from "@/lib/sign-out-cleanup";
|
||||
import { clearCheckpointsFor } from "@/lib/mail-import/checkpoints";
|
||||
import { sweepPrivateExports } from "@/lib/mail-export/sinks";
|
||||
import { useAuthStore } from "@/stores/auth-store";
|
||||
import { toast } from "@/stores/toast-store";
|
||||
import { MailImportDialog } from "./mail-import-dialog";
|
||||
import { MailExportDialog } from "./mail-export-dialog";
|
||||
import { formatClock } from "./transfer-progress";
|
||||
@@ -49,6 +50,29 @@ export function MailTransferHost() {
|
||||
if (!isJobActive(useMailTransferStore.getState().job)) void sweepPrivateExports();
|
||||
}, [activeAccountId]);
|
||||
|
||||
// A job that ends while its dialog is hidden says so, with a way back to its summary.
|
||||
const tImport = useTranslations("mail_import");
|
||||
const tExport = useTranslations("mail_export");
|
||||
const lastPhase = useRef<string | undefined>(undefined);
|
||||
useEffect(() => {
|
||||
const phase = job?.progress.phase;
|
||||
const was = lastPhase.current;
|
||||
lastPhase.current = phase;
|
||||
if (!job || visible || (was !== "running" && was !== "paused")) return;
|
||||
if (phase !== "done" && phase !== "failed") return;
|
||||
const action = { label: (job.kind === "import" ? tImport : tExport)("toast_show"), onClick: () => useMailTransferStore.getState().show() };
|
||||
if (job.kind === "import") {
|
||||
if (phase === "done") toast.success(tImport("toast_done", { imported: job.progress.imported, failed: job.progress.failed }), { action });
|
||||
else toast.warning(tImport("toast_stopped"), { action });
|
||||
} else if (phase === "done") {
|
||||
toast.success(tExport("toast_done", { name: job.progress.file?.name ?? "" }), { action });
|
||||
} else {
|
||||
toast.warning(tExport("toast_stopped"), { action });
|
||||
}
|
||||
// The translators are new functions on every render in tests; the phase is what matters.
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [job, visible]);
|
||||
|
||||
return (
|
||||
<>
|
||||
{request?.kind === "import" && <MailImportDialog request={request} />}
|
||||
|
||||
@@ -1,7 +1,23 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, type RefObject } from "react";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
/**
|
||||
* Keeps the focus in the dialog when its buttons change under it: Import or
|
||||
* Export turns into the progress view, then into the summary, and the button
|
||||
* that had the focus is gone. `stage` names the view; `target` is the button
|
||||
* to focus in it.
|
||||
*/
|
||||
export function useFocusOnStage(target: RefObject<HTMLElement | null>, stage: string): void {
|
||||
useEffect(() => {
|
||||
const el = target.current;
|
||||
if (!el) return;
|
||||
const dialog = el.closest('[role="dialog"], [role="alertdialog"]');
|
||||
if (!dialog || !dialog.contains(document.activeElement)) el.focus();
|
||||
}, [target, stage]);
|
||||
}
|
||||
|
||||
/** The bar of an import or export, 0 to 1; indeterminate while nothing is known. */
|
||||
export function TransferBar({ fraction, label, paused }: { fraction: number | null; label: string; paused?: boolean }) {
|
||||
const percent = fraction === null ? null : Math.round(Math.max(0, Math.min(1, fraction)) * 100);
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "يجري استيراد هذه الملفات في علامة تبويب أخرى بالفعل.",
|
||||
"retry_hint": "استورد الملفات نفسها إلى المجلد نفسه مرة أخرى لإعادة محاولة الرسائل التي فشلت.",
|
||||
"skip_unreadable": "غير مقروءة في ملف Outlook: {count}",
|
||||
"keep_folders_top_hint": "في المستوى الأعلى تذهب علبة الوارد والعناصر المرسلة والعناصر المحذوفة وما شابهها إلى مجلداتك."
|
||||
"keep_folders_top_hint": "في المستوى الأعلى تذهب علبة الوارد والعناصر المرسلة والعناصر المحذوفة وما شابهها إلى مجلداتك.",
|
||||
"toast_done": "انتهى الاستيراد. المستورد: {imported}، الفاشل: {failed}.",
|
||||
"toast_stopped": "توقف الاستيراد.",
|
||||
"toast_show": "عرض"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "تصدير المجلد…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "التنزيل مرة أخرى",
|
||||
"too_large": "التصدير أكبر مما يستطيع هذا المتصفح حفظه في الذاكرة. استخدم Chrome أو Edge، أو صدّر مجلدًا مجلدًا.",
|
||||
"close": "إغلاق",
|
||||
"untitled": "(بلا موضوع)"
|
||||
"untitled": "(بلا موضوع)",
|
||||
"toast_done": "انتهى التصدير: {name}",
|
||||
"toast_stopped": "توقف التصدير.",
|
||||
"toast_show": "عرض"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "استعادة العناصر المحذوفة",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Aquests fitxers ja s'estan important en una altra pestanya.",
|
||||
"retry_hint": "Torneu a importar els mateixos fitxers a la mateixa carpeta per tornar a provar els que han fallat.",
|
||||
"skip_unreadable": "Il·legibles al fitxer d'Outlook: {count}",
|
||||
"keep_folders_top_hint": "Al nivell superior, Safata d'entrada, Elements enviats, Elements suprimits i similars van a les vostres."
|
||||
"keep_folders_top_hint": "Al nivell superior, Safata d'entrada, Elements enviats, Elements suprimits i similars van a les vostres.",
|
||||
"toast_done": "Importació acabada. Importats: {imported}, fallats: {failed}.",
|
||||
"toast_stopped": "La importació s'ha aturat.",
|
||||
"toast_show": "Mostra"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exporta la carpeta…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Torna a baixar",
|
||||
"too_large": "L'exportació és més gran del que aquest navegador pot guardar a la memòria. Feu servir Chrome o Edge, o exporteu carpeta per carpeta.",
|
||||
"close": "Tanca",
|
||||
"untitled": "(sense assumpte)"
|
||||
"untitled": "(sense assumpte)",
|
||||
"toast_done": "Exportació acabada: {name}",
|
||||
"toast_stopped": "L'exportació s'ha aturat.",
|
||||
"toast_show": "Mostra"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recupera elements suprimits",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Tyto soubory se už importují v jiné kartě.",
|
||||
"retry_hint": "Importujte stejné soubory znovu do stejné složky, abyste zkusili neúspěšné ještě jednou.",
|
||||
"skip_unreadable": "V souboru Outlooku nečitelné: {count}",
|
||||
"keep_folders_top_hint": "Na nejvyšší úrovni skončí Doručená pošta, Odeslaná pošta, Odstraněná pošta a podobné ve vašich vlastních."
|
||||
"keep_folders_top_hint": "Na nejvyšší úrovni skončí Doručená pošta, Odeslaná pošta, Odstraněná pošta a podobné ve vašich vlastních.",
|
||||
"toast_done": "Import dokončen. Importováno: {imported}, selhalo: {failed}.",
|
||||
"toast_stopped": "Import se zastavil.",
|
||||
"toast_show": "Zobrazit"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exportovat složku…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Stáhnout znovu",
|
||||
"too_large": "Export je větší, než tento prohlížeč udrží v paměti. Použijte Chrome nebo Edge, nebo exportujte složku po složce.",
|
||||
"close": "Zavřít",
|
||||
"untitled": "(bez předmětu)"
|
||||
"untitled": "(bez předmětu)",
|
||||
"toast_done": "Export dokončen: {name}",
|
||||
"toast_stopped": "Export se zastavil.",
|
||||
"toast_show": "Zobrazit"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Obnovit smazané položky",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Disse filer importeres allerede i en anden fane.",
|
||||
"retry_hint": "Importér de samme filer til samme mappe igen for at prøve dem, der mislykkedes, en gang til.",
|
||||
"skip_unreadable": "Ulæselige i Outlook-filen: {count}",
|
||||
"keep_folders_top_hint": "På øverste niveau havner Indbakke, Sendt post, Slettet post og lignende i dine egne."
|
||||
"keep_folders_top_hint": "På øverste niveau havner Indbakke, Sendt post, Slettet post og lignende i dine egne.",
|
||||
"toast_done": "Import færdig. Importeret: {imported}, mislykkedes: {failed}.",
|
||||
"toast_stopped": "Importen stoppede.",
|
||||
"toast_show": "Vis"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Eksportér mappe…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Download igen",
|
||||
"too_large": "Eksporten er større, end denne browser kan holde i hukommelsen. Brug Chrome eller Edge, eller eksportér mappe for mappe.",
|
||||
"close": "Luk",
|
||||
"untitled": "(intet emne)"
|
||||
"untitled": "(intet emne)",
|
||||
"toast_done": "Eksport færdig: {name}",
|
||||
"toast_stopped": "Eksporten stoppede.",
|
||||
"toast_show": "Vis"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Gendan slettede elementer",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Diese Dateien werden bereits in einem anderen Tab importiert.",
|
||||
"retry_hint": "Importieren Sie dieselben Dateien erneut in denselben Ordner, um die fehlgeschlagenen noch einmal zu versuchen.",
|
||||
"skip_unreadable": "In der Outlook-Datei nicht lesbar: {count}",
|
||||
"keep_folders_top_hint": "Auf oberster Ebene landen Posteingang, Gesendete Elemente, Gelöschte Elemente und Ähnliche in Ihren eigenen Ordnern."
|
||||
"keep_folders_top_hint": "Auf oberster Ebene landen Posteingang, Gesendete Elemente, Gelöschte Elemente und Ähnliche in Ihren eigenen Ordnern.",
|
||||
"toast_done": "Import abgeschlossen. Importiert: {imported}, fehlgeschlagen: {failed}.",
|
||||
"toast_stopped": "Der Import wurde angehalten.",
|
||||
"toast_show": "Anzeigen"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Ordner exportieren…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Erneut herunterladen",
|
||||
"too_large": "Der Export ist größer, als dieser Browser im Speicher halten kann. Nutzen Sie Chrome oder Edge, oder exportieren Sie Ordner für Ordner.",
|
||||
"close": "Schließen",
|
||||
"untitled": "(kein Betreff)"
|
||||
"untitled": "(kein Betreff)",
|
||||
"toast_done": "Export abgeschlossen: {name}",
|
||||
"toast_stopped": "Der Export wurde angehalten.",
|
||||
"toast_show": "Anzeigen"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Gelöschte E-Mails",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "These files are being imported in another tab already.",
|
||||
"retry_hint": "Import the same files into the same folder again to try the ones that failed once more.",
|
||||
"skip_unreadable": "Unreadable in the Outlook file: {count}",
|
||||
"keep_folders_top_hint": "At the top level, Inbox, Sent Items, Deleted Items and the like go into your own."
|
||||
"keep_folders_top_hint": "At the top level, Inbox, Sent Items, Deleted Items and the like go into your own.",
|
||||
"toast_done": "Import finished. Imported: {imported}, failed: {failed}.",
|
||||
"toast_stopped": "The import stopped.",
|
||||
"toast_show": "Show"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Export folder…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Download again",
|
||||
"too_large": "The export is larger than this browser can keep in memory. Use Chrome or Edge, or export folder by folder.",
|
||||
"close": "Close",
|
||||
"untitled": "(no subject)"
|
||||
"untitled": "(no subject)",
|
||||
"toast_done": "Export finished: {name}",
|
||||
"toast_stopped": "The export stopped.",
|
||||
"toast_show": "Show"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recover deleted items",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Estos archivos ya se están importando en otra pestaña.",
|
||||
"retry_hint": "Importe los mismos archivos en la misma carpeta otra vez para reintentar los que fallaron.",
|
||||
"skip_unreadable": "Ilegibles en el archivo de Outlook: {count}",
|
||||
"keep_folders_top_hint": "En el nivel superior, Bandeja de entrada, Elementos enviados, Elementos eliminados y similares van a las suyas."
|
||||
"keep_folders_top_hint": "En el nivel superior, Bandeja de entrada, Elementos enviados, Elementos eliminados y similares van a las suyas.",
|
||||
"toast_done": "Importación terminada. Importados: {imported}, fallidos: {failed}.",
|
||||
"toast_stopped": "La importación se detuvo.",
|
||||
"toast_show": "Mostrar"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exportar carpeta…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Descargar de nuevo",
|
||||
"too_large": "La exportación es mayor de lo que este navegador puede guardar en memoria. Use Chrome o Edge, o exporte carpeta por carpeta.",
|
||||
"close": "Cerrar",
|
||||
"untitled": "(sin asunto)"
|
||||
"untitled": "(sin asunto)",
|
||||
"toast_done": "Exportación terminada: {name}",
|
||||
"toast_stopped": "La exportación se detuvo.",
|
||||
"toast_show": "Mostrar"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recuperar elementos eliminados",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Neid faile imporditakse juba teisel vahelehel.",
|
||||
"retry_hint": "Importige samad failid uuesti samasse kausta, et ebaõnnestunud kirju veel kord proovida.",
|
||||
"skip_unreadable": "Outlooki failis loetamatud: {count}",
|
||||
"keep_folders_top_hint": "Ülemisel tasemel lähevad Sisendkaust, Saadetud, Kustutatud ja muud sellised teie omadesse."
|
||||
"keep_folders_top_hint": "Ülemisel tasemel lähevad Sisendkaust, Saadetud, Kustutatud ja muud sellised teie omadesse.",
|
||||
"toast_done": "Import lõpetatud. Imporditud: {imported}, ebaõnnestunud: {failed}.",
|
||||
"toast_stopped": "Import peatus.",
|
||||
"toast_show": "Näita"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Ekspordi kaust…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Laadi uuesti alla",
|
||||
"too_large": "Eksport on suurem, kui see brauser mälus hoida suudab. Kasutage Chrome'i või Edge'i või eksportige kaust kaupa.",
|
||||
"close": "Sulge",
|
||||
"untitled": "(teemata)"
|
||||
"untitled": "(teemata)",
|
||||
"toast_done": "Eksport lõpetatud: {name}",
|
||||
"toast_stopped": "Eksport peatus.",
|
||||
"toast_show": "Näita"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Taasta kustutatud üksused",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "این فایلها هماکنون در زبانه دیگری درونریزی میشوند.",
|
||||
"retry_hint": "برای امتحان دوباره پیامهای ناموفق، همان فایلها را دوباره در همان پوشه درونریزی کنید.",
|
||||
"skip_unreadable": "خوانا نیست در فایل اوتلوک: {count}",
|
||||
"keep_folders_top_hint": "در بالاترین سطح، صندوق ورودی، موارد ارسالشده، موارد حذفشده و مانند آنها به پوشههای خودتان میروند."
|
||||
"keep_folders_top_hint": "در بالاترین سطح، صندوق ورودی، موارد ارسالشده، موارد حذفشده و مانند آنها به پوشههای خودتان میروند.",
|
||||
"toast_done": "درونریزی تمام شد. درونریزیشده: {imported}، ناموفق: {failed}.",
|
||||
"toast_stopped": "درونریزی متوقف شد.",
|
||||
"toast_show": "نمایش"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "برونبری پوشه…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "دانلود دوباره",
|
||||
"too_large": "برونبری بزرگتر از آن است که این مرورگر در حافظه نگه دارد. از Chrome یا Edge استفاده کنید یا پوشه به پوشه برونبری کنید.",
|
||||
"close": "بستن",
|
||||
"untitled": "(بدون موضوع)"
|
||||
"untitled": "(بدون موضوع)",
|
||||
"toast_done": "برونبری تمام شد: {name}",
|
||||
"toast_stopped": "برونبری متوقف شد.",
|
||||
"toast_show": "نمایش"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "بازیابی موارد حذفشده",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Ces fichiers sont déjà en cours d'import dans un autre onglet.",
|
||||
"retry_hint": "Importez à nouveau les mêmes fichiers dans le même dossier pour réessayer ceux qui ont échoué.",
|
||||
"skip_unreadable": "Illisibles dans le fichier Outlook : {count}",
|
||||
"keep_folders_top_hint": "Au niveau supérieur, Boîte de réception, Éléments envoyés, Éléments supprimés et les autres vont dans les vôtres."
|
||||
"keep_folders_top_hint": "Au niveau supérieur, Boîte de réception, Éléments envoyés, Éléments supprimés et les autres vont dans les vôtres.",
|
||||
"toast_done": "Import terminé. Importés : {imported}, échecs : {failed}.",
|
||||
"toast_stopped": "L'import s'est arrêté.",
|
||||
"toast_show": "Afficher"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exporter le dossier…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Télécharger à nouveau",
|
||||
"too_large": "L'export est plus grand que ce que ce navigateur peut garder en mémoire. Utilisez Chrome ou Edge, ou exportez dossier par dossier.",
|
||||
"close": "Fermer",
|
||||
"untitled": "(sans objet)"
|
||||
"untitled": "(sans objet)",
|
||||
"toast_done": "Export terminé : {name}",
|
||||
"toast_stopped": "L'export s'est arrêté.",
|
||||
"toast_show": "Afficher"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Récupérer des éléments supprimés",
|
||||
|
||||
@@ -5442,7 +5442,10 @@
|
||||
"error_busy": "הקבצים האלה כבר מיובאים בכרטיסייה אחרת.",
|
||||
"retry_hint": "ייבאו שוב את אותם קבצים לאותה תיקייה כדי לנסות שוב את אלה שנכשלו.",
|
||||
"skip_unreadable": "לא קריאות בקובץ ה-Outlook: {count}",
|
||||
"keep_folders_top_hint": "ברמה העליונה, דואר נכנס, פריטים שנשלחו, פריטים שנמחקו ודומיהם נכנסים לתיקיות שלכם."
|
||||
"keep_folders_top_hint": "ברמה העליונה, דואר נכנס, פריטים שנשלחו, פריטים שנמחקו ודומיהם נכנסים לתיקיות שלכם.",
|
||||
"toast_done": "הייבוא הסתיים. יובאו: {imported}, נכשלו: {failed}.",
|
||||
"toast_stopped": "הייבוא נעצר.",
|
||||
"toast_show": "הצגה"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "ייצוא תיקייה…",
|
||||
@@ -5482,7 +5485,10 @@
|
||||
"download_again": "הורדה מחדש",
|
||||
"too_large": "הייצוא גדול ממה שדפדפן זה יכול להחזיק בזיכרון. השתמשו ב-Chrome או ב-Edge, או ייצאו תיקייה אחר תיקייה.",
|
||||
"close": "סגירה",
|
||||
"untitled": "(ללא נושא)"
|
||||
"untitled": "(ללא נושא)",
|
||||
"toast_done": "הייצוא הסתיים: {name}",
|
||||
"toast_stopped": "הייצוא נעצר.",
|
||||
"toast_show": "הצגה"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "שחזור פריטים שנמחקו",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Ezeket a fájlokat már importálja egy másik lap.",
|
||||
"retry_hint": "Importálja újra ugyanazokat a fájlokat ugyanabba a mappába, hogy a sikertelenekkel újra próbálkozzon.",
|
||||
"skip_unreadable": "Olvashatatlan az Outlook-fájlban: {count}",
|
||||
"keep_folders_top_hint": "A legfelső szinten a Beérkezett üzenetek, az Elküldött elemek, a Törölt elemek és a hasonlók a saját mappáiba kerülnek."
|
||||
"keep_folders_top_hint": "A legfelső szinten a Beérkezett üzenetek, az Elküldött elemek, a Törölt elemek és a hasonlók a saját mappáiba kerülnek.",
|
||||
"toast_done": "Az importálás befejeződött. Importált: {imported}, sikertelen: {failed}.",
|
||||
"toast_stopped": "Az importálás leállt.",
|
||||
"toast_show": "Megjelenítés"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Mappa exportálása…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Letöltés újra",
|
||||
"too_large": "Az export nagyobb, mint amit ez a böngésző a memóriában tarthat. Használja a Chrome-ot vagy az Edge-et, vagy exportáljon mappánként.",
|
||||
"close": "Bezárás",
|
||||
"untitled": "(nincs tárgy)"
|
||||
"untitled": "(nincs tárgy)",
|
||||
"toast_done": "Az exportálás befejeződött: {name}",
|
||||
"toast_stopped": "Az exportálás leállt.",
|
||||
"toast_show": "Megjelenítés"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Törölt elemek visszaállítása",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Questi file sono già in importazione in un'altra scheda.",
|
||||
"retry_hint": "Importa di nuovo gli stessi file nella stessa cartella per riprovare quelli non riusciti.",
|
||||
"skip_unreadable": "Illeggibili nel file di Outlook: {count}",
|
||||
"keep_folders_top_hint": "Al livello principale, Posta in arrivo, Posta inviata, Elementi eliminati e simili finiscono nelle tue."
|
||||
"keep_folders_top_hint": "Al livello principale, Posta in arrivo, Posta inviata, Elementi eliminati e simili finiscono nelle tue.",
|
||||
"toast_done": "Importazione completata. Importati: {imported}, non riusciti: {failed}.",
|
||||
"toast_stopped": "L'importazione si è fermata.",
|
||||
"toast_show": "Mostra"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Esporta cartella…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Scarica di nuovo",
|
||||
"too_large": "L'esportazione è più grande di quanto questo browser possa tenere in memoria. Usa Chrome o Edge, oppure esporta una cartella alla volta.",
|
||||
"close": "Chiudi",
|
||||
"untitled": "(nessun oggetto)"
|
||||
"untitled": "(nessun oggetto)",
|
||||
"toast_done": "Esportazione completata: {name}",
|
||||
"toast_stopped": "L'esportazione si è fermata.",
|
||||
"toast_show": "Mostra"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recupera elementi eliminati",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "これらのファイルは別のタブですでにインポート中です。",
|
||||
"retry_hint": "失敗したものをもう一度試すには、同じファイルを同じフォルダーにもう一度インポートしてください。",
|
||||
"skip_unreadable": "Outlook ファイル内で読めないもの: {count}",
|
||||
"keep_folders_top_hint": "最上位では、受信トレイ、送信済みアイテム、削除済みアイテムなどはご自身のフォルダーに入ります。"
|
||||
"keep_folders_top_hint": "最上位では、受信トレイ、送信済みアイテム、削除済みアイテムなどはご自身のフォルダーに入ります。",
|
||||
"toast_done": "インポートが完了しました。インポート: {imported}、失敗: {failed}。",
|
||||
"toast_stopped": "インポートが止まりました。",
|
||||
"toast_show": "表示"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "フォルダーをエクスポート…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "もう一度ダウンロード",
|
||||
"too_large": "エクスポートがこのブラウザーでメモリーに保持できる量を超えています。Chrome か Edge を使うか、フォルダーごとにエクスポートしてください。",
|
||||
"close": "閉じる",
|
||||
"untitled": "(件名なし)"
|
||||
"untitled": "(件名なし)",
|
||||
"toast_done": "エクスポートが完了しました: {name}",
|
||||
"toast_stopped": "エクスポートが止まりました。",
|
||||
"toast_show": "表示"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "削除済みアイテムの復元",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "이 파일은 이미 다른 탭에서 가져오는 중입니다.",
|
||||
"retry_hint": "실패한 메시지를 다시 시도하려면 같은 파일을 같은 폴더로 다시 가져오세요.",
|
||||
"skip_unreadable": "Outlook 파일에서 읽을 수 없음: {count}",
|
||||
"keep_folders_top_hint": "최상위에서는 받은 편지함, 보낸 편지함, 지운 편지함 등이 사용자의 폴더로 들어갑니다."
|
||||
"keep_folders_top_hint": "최상위에서는 받은 편지함, 보낸 편지함, 지운 편지함 등이 사용자의 폴더로 들어갑니다.",
|
||||
"toast_done": "가져오기 완료. 가져옴: {imported}, 실패: {failed}.",
|
||||
"toast_stopped": "가져오기가 멈췄습니다.",
|
||||
"toast_show": "보기"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "폴더 내보내기…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "다시 다운로드",
|
||||
"too_large": "내보내기가 이 브라우저가 메모리에 담을 수 있는 크기보다 큽니다. Chrome이나 Edge를 쓰거나 폴더별로 내보내세요.",
|
||||
"close": "닫기",
|
||||
"untitled": "(제목 없음)"
|
||||
"untitled": "(제목 없음)",
|
||||
"toast_done": "내보내기 완료: {name}",
|
||||
"toast_stopped": "내보내기가 멈췄습니다.",
|
||||
"toast_show": "보기"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "삭제된 항목 복구",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Šie faili jau tiek importēti citā cilnē.",
|
||||
"retry_hint": "Vēlreiz importējiet tos pašus failus tajā pašā mapē, lai vēlreiz mēģinātu neizdevušos.",
|
||||
"skip_unreadable": "Outlook failā nenolasāmi: {count}",
|
||||
"keep_folders_top_hint": "Augšējā līmenī Iesūtne, Nosūtītie, Dzēstie un līdzīgi nonāk jūsu pašu mapēs."
|
||||
"keep_folders_top_hint": "Augšējā līmenī Iesūtne, Nosūtītie, Dzēstie un līdzīgi nonāk jūsu pašu mapēs.",
|
||||
"toast_done": "Importēšana pabeigta. Importēti: {imported}, neizdevās: {failed}.",
|
||||
"toast_stopped": "Importēšana apstājās.",
|
||||
"toast_show": "Rādīt"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Eksportēt mapi…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Lejupielādēt vēlreiz",
|
||||
"too_large": "Eksports ir lielāks, nekā šī pārlūkprogramma var noturēt atmiņā. Izmantojiet Chrome vai Edge vai eksportējiet pa mapei.",
|
||||
"close": "Aizvērt",
|
||||
"untitled": "(bez temata)"
|
||||
"untitled": "(bez temata)",
|
||||
"toast_done": "Eksportēšana pabeigta: {name}",
|
||||
"toast_stopped": "Eksportēšana apstājās.",
|
||||
"toast_show": "Rādīt"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Atjaunot dzēstos vienumus",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Эдгээр файлыг өөр табд аль хэдийн импортлож байна.",
|
||||
"retry_hint": "Амжилтгүй болсон захидлуудыг дахин оролдохын тулд ижил файлуудыг ижил хавтас руу дахин импортлоно уу.",
|
||||
"skip_unreadable": "Outlook файлд уншигдахгүй: {count}",
|
||||
"keep_folders_top_hint": "Дээд түвшинд Ирсэн, Илгээсэн, Устгасан болон түүнтэй адил хавтаснууд таны өөрийнх рүү орно."
|
||||
"keep_folders_top_hint": "Дээд түвшинд Ирсэн, Илгээсэн, Устгасан болон түүнтэй адил хавтаснууд таны өөрийнх рүү орно.",
|
||||
"toast_done": "Импорт дууслаа. Импортолсон: {imported}, амжилтгүй: {failed}.",
|
||||
"toast_stopped": "Импорт зогслоо.",
|
||||
"toast_show": "Харуулах"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Хавтас экспортлох…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Дахин татах",
|
||||
"too_large": "Экспорт энэ хөтчийн санах ойд багтахаас том байна. Chrome эсвэл Edge ашиглах, эсвэл хавтас тус бүрээр экспортлоно уу.",
|
||||
"close": "Хаах",
|
||||
"untitled": "(гарчиггүй)"
|
||||
"untitled": "(гарчиггүй)",
|
||||
"toast_done": "Экспорт дууслаа: {name}",
|
||||
"toast_stopped": "Экспорт зогслоо.",
|
||||
"toast_show": "Харуулах"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Устгасан зүйлсийг сэргээх",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Disse filene importeres allerede i en annen fane.",
|
||||
"retry_hint": "Importer de samme filene til samme mappe igjen for å prøve de som mislyktes, på nytt.",
|
||||
"skip_unreadable": "Uleselige i Outlook-filen: {count}",
|
||||
"keep_folders_top_hint": "På øverste nivå havner Innboks, Sendte elementer, Slettede elementer og lignende i dine egne."
|
||||
"keep_folders_top_hint": "På øverste nivå havner Innboks, Sendte elementer, Slettede elementer og lignende i dine egne.",
|
||||
"toast_done": "Import fullført. Importert: {imported}, mislyktes: {failed}.",
|
||||
"toast_stopped": "Importen stoppet.",
|
||||
"toast_show": "Vis"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Eksporter mappe…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Last ned på nytt",
|
||||
"too_large": "Eksporten er større enn denne nettleseren kan holde i minnet. Bruk Chrome eller Edge, eller eksporter mappe for mappe.",
|
||||
"close": "Lukk",
|
||||
"untitled": "(uten emne)"
|
||||
"untitled": "(uten emne)",
|
||||
"toast_done": "Eksport fullført: {name}",
|
||||
"toast_stopped": "Eksporten stoppet.",
|
||||
"toast_show": "Vis"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Gjenopprett slettede elementer",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Deze bestanden worden al in een ander tabblad geïmporteerd.",
|
||||
"retry_hint": "Importeer dezelfde bestanden opnieuw in dezelfde map om de mislukte nog eens te proberen.",
|
||||
"skip_unreadable": "Onleesbaar in het Outlook-bestand: {count}",
|
||||
"keep_folders_top_hint": "Op het hoogste niveau gaan Postvak IN, Verzonden items, Verwijderde items en dergelijke naar die van u."
|
||||
"keep_folders_top_hint": "Op het hoogste niveau gaan Postvak IN, Verzonden items, Verwijderde items en dergelijke naar die van u.",
|
||||
"toast_done": "Import voltooid. Geïmporteerd: {imported}, mislukt: {failed}.",
|
||||
"toast_stopped": "De import is gestopt.",
|
||||
"toast_show": "Tonen"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Map exporteren…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Opnieuw downloaden",
|
||||
"too_large": "De export is groter dan deze browser in het geheugen kan houden. Gebruik Chrome of Edge, of exporteer map voor map.",
|
||||
"close": "Sluiten",
|
||||
"untitled": "(geen onderwerp)"
|
||||
"untitled": "(geen onderwerp)",
|
||||
"toast_done": "Export voltooid: {name}",
|
||||
"toast_stopped": "De export is gestopt.",
|
||||
"toast_show": "Tonen"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Verwijderde items herstellen",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Te pliki są już importowane w innej karcie.",
|
||||
"retry_hint": "Zaimportuj te same pliki ponownie do tego samego folderu, aby jeszcze raz spróbować tych, które się nie udały.",
|
||||
"skip_unreadable": "Nieczytelne w pliku programu Outlook: {count}",
|
||||
"keep_folders_top_hint": "Na najwyższym poziomie Skrzynka odbiorcza, Elementy wysłane, Elementy usunięte i podobne trafiają do Twoich własnych."
|
||||
"keep_folders_top_hint": "Na najwyższym poziomie Skrzynka odbiorcza, Elementy wysłane, Elementy usunięte i podobne trafiają do Twoich własnych.",
|
||||
"toast_done": "Import zakończony. Zaimportowano: {imported}, nie udało się: {failed}.",
|
||||
"toast_stopped": "Import się zatrzymał.",
|
||||
"toast_show": "Pokaż"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Eksportuj folder…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Pobierz ponownie",
|
||||
"too_large": "Eksport jest większy, niż ta przeglądarka może trzymać w pamięci. Użyj Chrome lub Edge albo eksportuj folder po folderze.",
|
||||
"close": "Zamknij",
|
||||
"untitled": "(bez tematu)"
|
||||
"untitled": "(bez tematu)",
|
||||
"toast_done": "Eksport zakończony: {name}",
|
||||
"toast_stopped": "Eksport się zatrzymał.",
|
||||
"toast_show": "Pokaż"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Odzyskaj usunięte elementy",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Estes arquivos já estão sendo importados em outra aba.",
|
||||
"retry_hint": "Importe os mesmos arquivos na mesma pasta outra vez para tentar de novo os que falharam.",
|
||||
"skip_unreadable": "Ilegíveis no arquivo do Outlook: {count}",
|
||||
"keep_folders_top_hint": "No nível superior, Caixa de entrada, Itens enviados, Itens excluídos e similares vão para as suas."
|
||||
"keep_folders_top_hint": "No nível superior, Caixa de entrada, Itens enviados, Itens excluídos e similares vão para as suas.",
|
||||
"toast_done": "Importação concluída. Importados: {imported}, com falha: {failed}.",
|
||||
"toast_stopped": "A importação parou.",
|
||||
"toast_show": "Mostrar"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exportar pasta…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Baixar de novo",
|
||||
"too_large": "A exportação é maior do que este navegador consegue guardar na memória. Use o Chrome ou o Edge, ou exporte pasta por pasta.",
|
||||
"close": "Fechar",
|
||||
"untitled": "(sem assunto)"
|
||||
"untitled": "(sem assunto)",
|
||||
"toast_done": "Exportação concluída: {name}",
|
||||
"toast_stopped": "A exportação parou.",
|
||||
"toast_show": "Mostrar"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recuperar itens excluídos",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Aceste fișiere se importă deja în altă filă.",
|
||||
"retry_hint": "Importați din nou aceleași fișiere în același dosar pentru a reîncerca mesajele care au eșuat.",
|
||||
"skip_unreadable": "Ilizibile în fișierul Outlook: {count}",
|
||||
"keep_folders_top_hint": "La nivelul de sus, Inbox, Elemente trimise, Elemente șterse și altele asemenea ajung în ale dumneavoastră."
|
||||
"keep_folders_top_hint": "La nivelul de sus, Inbox, Elemente trimise, Elemente șterse și altele asemenea ajung în ale dumneavoastră.",
|
||||
"toast_done": "Import încheiat. Importate: {imported}, eșuate: {failed}.",
|
||||
"toast_stopped": "Importul s-a oprit.",
|
||||
"toast_show": "Afișează"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exportă dosarul…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Descarcă din nou",
|
||||
"too_large": "Exportul este mai mare decât poate ține acest browser în memorie. Folosiți Chrome sau Edge sau exportați dosar cu dosar.",
|
||||
"close": "Închide",
|
||||
"untitled": "(fără subiect)"
|
||||
"untitled": "(fără subiect)",
|
||||
"toast_done": "Export încheiat: {name}",
|
||||
"toast_stopped": "Exportul s-a oprit.",
|
||||
"toast_show": "Afișează"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Recuperați elementele șterse",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Эти файлы уже импортируются в другой вкладке.",
|
||||
"retry_hint": "Снова импортируйте те же файлы в ту же папку, чтобы ещё раз попробовать неудавшиеся.",
|
||||
"skip_unreadable": "Не читаются в файле Outlook: {count}",
|
||||
"keep_folders_top_hint": "На верхнем уровне Входящие, Отправленные, Удалённые и подобные попадают в ваши собственные."
|
||||
"keep_folders_top_hint": "На верхнем уровне Входящие, Отправленные, Удалённые и подобные попадают в ваши собственные.",
|
||||
"toast_done": "Импорт завершён. Импортировано: {imported}, не удалось: {failed}.",
|
||||
"toast_stopped": "Импорт остановлен.",
|
||||
"toast_show": "Показать"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Экспортировать папку…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Скачать снова",
|
||||
"too_large": "Экспорт больше, чем этот браузер может держать в памяти. Используйте Chrome или Edge либо экспортируйте по одной папке.",
|
||||
"close": "Закрыть",
|
||||
"untitled": "(без темы)"
|
||||
"untitled": "(без темы)",
|
||||
"toast_done": "Экспорт завершён: {name}",
|
||||
"toast_stopped": "Экспорт остановлен.",
|
||||
"toast_show": "Показать"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Восстановить удалённое",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Tieto súbory sa už importujú na inej karte.",
|
||||
"retry_hint": "Importujte rovnaké súbory znova do rovnakého priečinka, aby ste skúsili neúspešné ešte raz.",
|
||||
"skip_unreadable": "V súbore Outlooku nečitateľné: {count}",
|
||||
"keep_folders_top_hint": "Na najvyššej úrovni skončia Doručená pošta, Odoslaná pošta, Odstránená pošta a podobné vo vašich vlastných."
|
||||
"keep_folders_top_hint": "Na najvyššej úrovni skončia Doručená pošta, Odoslaná pošta, Odstránená pošta a podobné vo vašich vlastných.",
|
||||
"toast_done": "Import dokončený. Importované: {imported}, zlyhalo: {failed}.",
|
||||
"toast_stopped": "Import sa zastavil.",
|
||||
"toast_show": "Zobraziť"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Exportovať priečinok…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Stiahnuť znova",
|
||||
"too_large": "Export je väčší, než tento prehliadač udrží v pamäti. Použite Chrome alebo Edge, alebo exportujte priečinok po priečinku.",
|
||||
"close": "Zavrieť",
|
||||
"untitled": "(bez predmetu)"
|
||||
"untitled": "(bez predmetu)",
|
||||
"toast_done": "Export dokončený: {name}",
|
||||
"toast_stopped": "Export sa zastavil.",
|
||||
"toast_show": "Zobraziť"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Obnoviť odstránené položky",
|
||||
|
||||
@@ -458,7 +458,10 @@
|
||||
"error_busy": "ไฟล์เหล่านี้กำลังถูกนำเข้าในอีกแท็บหนึ่งอยู่แล้ว",
|
||||
"retry_hint": "นำเข้าไฟล์เดิมไปยังโฟลเดอร์เดิมอีกครั้งเพื่อลองข้อความที่ล้มเหลวอีกรอบ",
|
||||
"skip_unreadable": "อ่านไม่ได้ในไฟล์ Outlook: {count}",
|
||||
"keep_folders_top_hint": "ในระดับบนสุด กล่องจดหมายเข้า รายการที่ส่ง รายการที่ลบ และที่คล้ายกันจะเข้าไปในโฟลเดอร์ของคุณเอง"
|
||||
"keep_folders_top_hint": "ในระดับบนสุด กล่องจดหมายเข้า รายการที่ส่ง รายการที่ลบ และที่คล้ายกันจะเข้าไปในโฟลเดอร์ของคุณเอง",
|
||||
"toast_done": "นำเข้าเสร็จแล้ว นำเข้าแล้ว: {imported} ล้มเหลว: {failed}",
|
||||
"toast_stopped": "การนำเข้าหยุดลง",
|
||||
"toast_show": "แสดง"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "ส่งออกโฟลเดอร์…",
|
||||
@@ -498,7 +501,10 @@
|
||||
"download_again": "ดาวน์โหลดอีกครั้ง",
|
||||
"too_large": "การส่งออกใหญ่เกินกว่าที่เบราว์เซอร์นี้เก็บไว้ในหน่วยความจำได้ ให้ใช้ Chrome หรือ Edge หรือส่งออกทีละโฟลเดอร์",
|
||||
"close": "ปิด",
|
||||
"untitled": "(ไม่มีหัวเรื่อง)"
|
||||
"untitled": "(ไม่มีหัวเรื่อง)",
|
||||
"toast_done": "ส่งออกเสร็จแล้ว: {name}",
|
||||
"toast_stopped": "การส่งออกหยุดลง",
|
||||
"toast_show": "แสดง"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "กู้คืนรายการที่ลบ",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "Bu dosyalar zaten başka bir sekmede içe aktarılıyor.",
|
||||
"retry_hint": "Başarısız olanları bir kez daha denemek için aynı dosyaları aynı klasöre yeniden içe aktarın.",
|
||||
"skip_unreadable": "Outlook dosyasında okunamayan: {count}",
|
||||
"keep_folders_top_hint": "En üst düzeyde Gelen Kutusu, Gönderilmiş Öğeler, Silinmiş Öğeler ve benzerleri sizinkilere gider."
|
||||
"keep_folders_top_hint": "En üst düzeyde Gelen Kutusu, Gönderilmiş Öğeler, Silinmiş Öğeler ve benzerleri sizinkilere gider.",
|
||||
"toast_done": "İçe aktarım tamamlandı. İçe aktarılan: {imported}, başarısız: {failed}.",
|
||||
"toast_stopped": "İçe aktarım durdu.",
|
||||
"toast_show": "Göster"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Klasörü dışa aktar…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "Yeniden indir",
|
||||
"too_large": "Dışa aktarım, bu tarayıcının bellekte tutabileceğinden büyük. Chrome veya Edge kullanın ya da klasör klasör dışa aktarın.",
|
||||
"close": "Kapat",
|
||||
"untitled": "(konu yok)"
|
||||
"untitled": "(konu yok)",
|
||||
"toast_done": "Dışa aktarım tamamlandı: {name}",
|
||||
"toast_stopped": "Dışa aktarım durdu.",
|
||||
"toast_show": "Göster"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Silinen öğeleri kurtar",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "Ці файли вже імпортуються в іншій вкладці.",
|
||||
"retry_hint": "Знову імпортуйте ті самі файли до тієї самої теки, щоб ще раз спробувати невдалі.",
|
||||
"skip_unreadable": "Не читаються у файлі Outlook: {count}",
|
||||
"keep_folders_top_hint": "На верхньому рівні Вхідні, Надіслані, Видалені й подібні потрапляють до ваших власних."
|
||||
"keep_folders_top_hint": "На верхньому рівні Вхідні, Надіслані, Видалені й подібні потрапляють до ваших власних.",
|
||||
"toast_done": "Імпорт завершено. Імпортовано: {imported}, не вдалося: {failed}.",
|
||||
"toast_stopped": "Імпорт зупинено.",
|
||||
"toast_show": "Показати"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Експортувати теку…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "Завантажити знову",
|
||||
"too_large": "Експорт більший, ніж цей браузер може тримати в пам'яті. Використовуйте Chrome або Edge чи експортуйте по одній теці.",
|
||||
"close": "Закрити",
|
||||
"untitled": "(без теми)"
|
||||
"untitled": "(без теми)",
|
||||
"toast_done": "Експорт завершено: {name}",
|
||||
"toast_stopped": "Експорт зупинено.",
|
||||
"toast_show": "Показати"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Відновити видалене",
|
||||
|
||||
@@ -5453,7 +5453,10 @@
|
||||
"error_busy": "Các tệp này đang được nhập ở một thẻ khác.",
|
||||
"retry_hint": "Nhập lại cùng các tệp vào cùng thư mục để thử lại những thư không nhập được.",
|
||||
"skip_unreadable": "Không đọc được trong tệp Outlook: {count}",
|
||||
"keep_folders_top_hint": "Ở cấp cao nhất, Hộp thư đến, Thư đã gửi, Thư đã xóa và các thư mục tương tự sẽ vào thư mục của bạn."
|
||||
"keep_folders_top_hint": "Ở cấp cao nhất, Hộp thư đến, Thư đã gửi, Thư đã xóa và các thư mục tương tự sẽ vào thư mục của bạn.",
|
||||
"toast_done": "Đã nhập xong. Đã nhập: {imported}, thất bại: {failed}.",
|
||||
"toast_stopped": "Việc nhập đã dừng.",
|
||||
"toast_show": "Hiện"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "Xuất thư mục…",
|
||||
@@ -5493,7 +5496,10 @@
|
||||
"download_again": "Tải xuống lại",
|
||||
"too_large": "Bản xuất lớn hơn mức trình duyệt này giữ được trong bộ nhớ. Hãy dùng Chrome hoặc Edge, hoặc xuất từng thư mục.",
|
||||
"close": "Đóng",
|
||||
"untitled": "(không có tiêu đề)"
|
||||
"untitled": "(không có tiêu đề)",
|
||||
"toast_done": "Đã xuất xong: {name}",
|
||||
"toast_stopped": "Việc xuất đã dừng.",
|
||||
"toast_show": "Hiện"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "Khôi phục các mục đã xóa",
|
||||
|
||||
@@ -5441,7 +5441,10 @@
|
||||
"error_busy": "這些檔案已在另一個分頁中匯入。",
|
||||
"retry_hint": "把相同的檔案再次匯入同一個資料夾,即可重試失敗的郵件。",
|
||||
"skip_unreadable": "Outlook 檔案中無法讀取:{count}",
|
||||
"keep_folders_top_hint": "在最上層,收件匣、寄件備份、刪除的郵件等會進入您自己的資料夾。"
|
||||
"keep_folders_top_hint": "在最上層,收件匣、寄件備份、刪除的郵件等會進入您自己的資料夾。",
|
||||
"toast_done": "匯入完成。已匯入:{imported},失敗:{failed}。",
|
||||
"toast_stopped": "匯入已停止。",
|
||||
"toast_show": "顯示"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "匯出資料夾…",
|
||||
@@ -5481,7 +5484,10 @@
|
||||
"download_again": "重新下載",
|
||||
"too_large": "匯出內容超過此瀏覽器能放在記憶體中的大小。請使用 Chrome 或 Edge,或逐一匯出資料夾。",
|
||||
"close": "關閉",
|
||||
"untitled": "(無主旨)"
|
||||
"untitled": "(無主旨)",
|
||||
"toast_done": "匯出完成:{name}",
|
||||
"toast_stopped": "匯出已停止。",
|
||||
"toast_show": "顯示"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "復原已刪除的項目",
|
||||
|
||||
@@ -5311,7 +5311,10 @@
|
||||
"error_busy": "这些文件已在另一个标签页中导入。",
|
||||
"retry_hint": "把相同的文件再次导入同一个文件夹,即可重试失败的邮件。",
|
||||
"skip_unreadable": "Outlook 文件中无法读取:{count}",
|
||||
"keep_folders_top_hint": "在顶层,收件箱、已发送邮件、已删除邮件等会进入您自己的文件夹。"
|
||||
"keep_folders_top_hint": "在顶层,收件箱、已发送邮件、已删除邮件等会进入您自己的文件夹。",
|
||||
"toast_done": "导入完成。已导入:{imported},失败:{failed}。",
|
||||
"toast_stopped": "导入已停止。",
|
||||
"toast_show": "显示"
|
||||
},
|
||||
"mail_export": {
|
||||
"menu_export": "导出文件夹…",
|
||||
@@ -5351,7 +5354,10 @@
|
||||
"download_again": "重新下载",
|
||||
"too_large": "导出内容超过了此浏览器能放在内存中的大小。请使用 Chrome 或 Edge,或逐个文件夹导出。",
|
||||
"close": "关闭",
|
||||
"untitled": "(无主题)"
|
||||
"untitled": "(无主题)",
|
||||
"toast_done": "导出完成:{name}",
|
||||
"toast_stopped": "导出已停止。",
|
||||
"toast_show": "显示"
|
||||
},
|
||||
"recover_deleted": {
|
||||
"tab": "恢复已删除项目",
|
||||
|
||||
Reference in New Issue
Block a user