mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
feat: web upload supports PST, configurable MBOX/PST size limits
- Make MBOX/PST upload size limits configurable via SETTINGS
(bichon_web_mbox_upload_limit_mb defaults to 1 GB,
bichon_web_pst_upload_limit_mb defaults to 2 GB)
This commit is contained in:
@@ -138,6 +138,10 @@ export type ServerConfigurations = {
|
||||
bichon_smtp_auth_required: boolean
|
||||
bichon_smtp_tls_key_path?: string | null
|
||||
bichon_smtp_tls_cert_path?: string | null
|
||||
|
||||
bichon_upload_body_limit_mb: number
|
||||
bichon_web_mbox_upload_limit_mb: number
|
||||
bichon_web_pst_upload_limit_mb: number
|
||||
}
|
||||
|
||||
export const get_dashboard_stats = async () => {
|
||||
|
||||
@@ -104,7 +104,7 @@ export interface FolderHint {
|
||||
/** The suggested folder name. */
|
||||
name: string;
|
||||
/** Where the hint came from. */
|
||||
source: 'gmail-labels' | 'bichon-metadata' | 'filename' | 'mbox-filename';
|
||||
source: 'gmail-labels' | 'bichon-metadata' | 'filename' | 'mbox-filename' | 'pst-filename';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,5 +142,11 @@ export async function extractFolderHint(file: File): Promise<FolderHint | null>
|
||||
const fnFolder = folderFromFileName(file.name);
|
||||
if (fnFolder) return { name: fnFolder, source: 'filename' };
|
||||
|
||||
// 5. For PST files, try the filename
|
||||
if (isPst) {
|
||||
const fnFolder = folderFromFileName(file.name);
|
||||
if (fnFolder) return { name: fnFolder, source: 'pst-filename' };
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -42,11 +42,13 @@ import {
|
||||
type ImportProgress,
|
||||
type ImportHistory,
|
||||
} from '@/api/import/api';
|
||||
import { get_system_configurations } from '@/api/system/api';
|
||||
import { list_mailboxes } from '@/api/mailbox/api';
|
||||
import { extractFolderHint, type FolderHint } from './folder-hint';
|
||||
|
||||
const MAX_EML = 100 * 1024 * 1024; // 100 MB
|
||||
const MAX_MBOX = 1024 * 1024 * 1024; // 1 GB
|
||||
const MAX_EML = 100 * 1024 * 1024; // 100 MB (hardcoded)
|
||||
const DEFAULT_MAX_MBOX = 1024 * 1024 * 1024; // 1 GB (fallback; actual limit from server settings)
|
||||
const DEFAULT_MAX_PST = 2048 * 1024 * 1024; // 2 GB (fallback; actual limit from server settings)
|
||||
|
||||
// MIME types that are clearly NOT email files — reject these upfront.
|
||||
const BLOCKED_MIME_PREFIXES = [
|
||||
@@ -66,10 +68,10 @@ function isValidFileType(file: File, ext: string): boolean {
|
||||
}
|
||||
}
|
||||
// Check extension
|
||||
return ext === 'eml' || ext === 'mbox';
|
||||
return ext === 'eml' || ext === 'mbox' || ext === 'pst';
|
||||
}
|
||||
|
||||
type FolderMode = 'header' | 'existing' | 'custom';
|
||||
type FolderMode = '' | 'header' | 'existing' | 'custom';
|
||||
|
||||
interface QueuedFile {
|
||||
file: File;
|
||||
@@ -89,6 +91,7 @@ function folderHintLabel(hint: FolderHint): string {
|
||||
case 'bichon-metadata': return 'X-Bichon-Metadata';
|
||||
case 'filename': return 'filename';
|
||||
case 'mbox-filename': return 'mbox filename';
|
||||
case 'pst-filename': return 'PST filename';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +100,7 @@ export default function ImportPage() {
|
||||
const { toast } = useToast();
|
||||
|
||||
const [accountId, setAccountId] = useState<string>('');
|
||||
const [folderMode, setFolderMode] = useState<FolderMode>('header');
|
||||
const [folderMode, setFolderMode] = useState<FolderMode>('');
|
||||
const [folder, setFolder] = useState('INBOX');
|
||||
const [files, setFiles] = useState<QueuedFile[]>([]);
|
||||
const [dragging, setDragging] = useState(false);
|
||||
@@ -107,6 +110,7 @@ export default function ImportPage() {
|
||||
const [phase, setPhase] = useState<'idle' | 'uploading' | 'processing' | 'done'>('idle');
|
||||
const [folderHint, setFolderHint] = useState<FolderHint | null>(null);
|
||||
const [headerFolder, setHeaderFolder] = useState('INBOX');
|
||||
const [isPstSelected, setIsPstSelected] = useState(false);
|
||||
|
||||
// Combobox state for existing mailbox selection
|
||||
const [mailboxOpen, setMailboxOpen] = useState(false);
|
||||
@@ -129,6 +133,21 @@ export default function ImportPage() {
|
||||
});
|
||||
const mailboxes = mailboxData?.mailboxes ?? [];
|
||||
|
||||
// Fetch system config to get the configured MBOX/PST upload limits.
|
||||
// Falls back to defaults for non-root users or on error.
|
||||
const { data: sysConfig } = useQuery({
|
||||
queryKey: ['system-configurations'],
|
||||
queryFn: get_system_configurations,
|
||||
staleTime: 300_000,
|
||||
retry: false,
|
||||
});
|
||||
const maxMbox = sysConfig
|
||||
? sysConfig.bichon_web_mbox_upload_limit_mb * 1024 * 1024
|
||||
: DEFAULT_MAX_MBOX;
|
||||
const maxPst = sysConfig
|
||||
? sysConfig.bichon_web_pst_upload_limit_mb * 1024 * 1024
|
||||
: DEFAULT_MAX_PST;
|
||||
|
||||
// Import history
|
||||
const { data: history = [], refetch: refetchHistory } = useQuery({
|
||||
queryKey: ['import-history'],
|
||||
@@ -144,6 +163,8 @@ export default function ImportPage() {
|
||||
case 'existing':
|
||||
case 'custom':
|
||||
return folder;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
})();
|
||||
|
||||
@@ -179,7 +200,8 @@ export default function ImportPage() {
|
||||
const queued: QueuedFile[] = arr.map((f) => {
|
||||
const ext = f.name.split('.').pop()?.toLowerCase() || '';
|
||||
const isMbox = ext === 'mbox';
|
||||
const max = isMbox ? MAX_MBOX : MAX_EML;
|
||||
const isPst = ext === 'pst';
|
||||
const max = isMbox ? maxMbox : isPst ? maxPst : MAX_EML;
|
||||
const typeOk = isValidFileType(f, ext);
|
||||
return { file: f, sizeOk: f.size <= max, typeOk };
|
||||
});
|
||||
@@ -189,17 +211,32 @@ export default function ImportPage() {
|
||||
setProgress(null);
|
||||
//setImportId(null);
|
||||
|
||||
// Extract folder hint from the first valid file
|
||||
// Extract folder hint from the first valid file.
|
||||
// PST files are binary (OLE2) — headers can't be extracted in-browser.
|
||||
const firstOk = queued.find((q) => q.sizeOk && q.typeOk);
|
||||
if (firstOk) {
|
||||
try {
|
||||
const hint = await extractFolderHint(firstOk.file);
|
||||
if (hint) {
|
||||
setFolderHint(hint);
|
||||
setHeaderFolder(hint.name);
|
||||
const ext = firstOk.file.name.split('.').pop()?.toLowerCase() || '';
|
||||
const isPstFile = ext === 'pst';
|
||||
setIsPstSelected(isPstFile);
|
||||
if (isPstFile) {
|
||||
// PST: folder structure is auto-detected, no manual mode needed
|
||||
setFolderHint(null);
|
||||
setHeaderFolder('INBOX');
|
||||
setFolderMode('');
|
||||
} else {
|
||||
// EML/MBOX: default to header auto-detect if no mode selected yet
|
||||
if (!folderMode) {
|
||||
setFolderMode('header');
|
||||
}
|
||||
try {
|
||||
const hint = await extractFolderHint(firstOk.file);
|
||||
if (hint) {
|
||||
setFolderHint(hint);
|
||||
setHeaderFolder(hint.name);
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
@@ -209,6 +246,8 @@ export default function ImportPage() {
|
||||
if (files.length <= 1) {
|
||||
setFolderHint(null);
|
||||
setHeaderFolder('INBOX');
|
||||
setFolderMode('');
|
||||
setIsPstSelected(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -273,7 +312,7 @@ export default function ImportPage() {
|
||||
<div className="flex-1 space-y-6 p-6 md:p-8 max-w-3xl mx-auto">
|
||||
<div>
|
||||
<h1 className="text-xl font-bold tracking-tight">
|
||||
{t('import.title', 'Import EML / MBOX')}
|
||||
{t('import.title', 'Import EML / MBOX / PST')}
|
||||
</h1>
|
||||
<p className="text-sm text-muted-foreground mt-1">
|
||||
{t('import.description', 'Import email files into a NoSync account. For larger files, use the CLI.')}
|
||||
@@ -350,13 +389,20 @@ export default function ImportPage() {
|
||||
<Card>
|
||||
<CardHeader className="pb-3">
|
||||
<CardTitle className="text-sm font-medium">
|
||||
{t('import.folderMethod', '2. Choose folder method')}
|
||||
{isPstSelected
|
||||
? t('import.folderStructure', '2. Folder structure')
|
||||
: t('import.folderMethod', '2. Choose folder method')}
|
||||
</CardTitle>
|
||||
<CardDescription className="text-xs">
|
||||
{t('import.folderMethodDesc', 'How should the target mail folder be determined?')}
|
||||
{isPstSelected
|
||||
? t('import.pstFolderDesc', 'The PST file contains its own folder structure (e.g. Inbox, Sent Items, etc.). Folders will be automatically created during import.')
|
||||
: files.length === 0
|
||||
? t('import.selectFileFirst', 'Select a file first to determine available options.')
|
||||
: t('import.folderMethodDesc', 'How should the target mail folder be determined?')}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
{!isPstSelected && (
|
||||
<RadioGroup
|
||||
value={folderMode}
|
||||
onValueChange={(v) => handleModeChange(v as FolderMode)}
|
||||
@@ -516,6 +562,7 @@ export default function ImportPage() {
|
||||
</div>
|
||||
</label>
|
||||
</RadioGroup>
|
||||
)}
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
@@ -526,7 +573,11 @@ export default function ImportPage() {
|
||||
{t('import.chooseFiles', '3. Choose files')}
|
||||
</CardTitle>
|
||||
<CardDescription className="text-xs">
|
||||
{t('import.limits', 'Max: EML 100 MB · MBOX 1 GB. Larger files → CLI.')}
|
||||
{t('import.limits', {
|
||||
defaultValue: 'Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Larger files → CLI.',
|
||||
maxMbox: (maxMbox / (1024 * 1024)).toFixed(0),
|
||||
maxPst: (maxPst / (1024 * 1024)).toFixed(0)
|
||||
})}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent>
|
||||
@@ -542,7 +593,7 @@ export default function ImportPage() {
|
||||
onClick={() => {
|
||||
const input = document.createElement('input');
|
||||
input.type = 'file';
|
||||
input.accept = '.eml,.mbox,message/rfc822,application/mbox,text/plain';
|
||||
input.accept = '.eml,.mbox,.pst,message/rfc822,application/mbox,text/plain';
|
||||
input.multiple = true;
|
||||
input.onchange = () => input.files && handleFiles(input.files);
|
||||
input.click();
|
||||
@@ -550,7 +601,7 @@ export default function ImportPage() {
|
||||
>
|
||||
<Upload className="mx-auto h-10 w-10 text-muted-foreground/60 mb-3" />
|
||||
<p className="text-sm font-medium">
|
||||
{t('import.dropHere', 'Drop .eml / .mbox files here')}
|
||||
{t('import.dropHere', 'Drop .eml / .mbox / .pst files here')}
|
||||
</p>
|
||||
<p className="text-xs text-muted-foreground mt-1">
|
||||
{t('import.orClick', 'or click to browse')}
|
||||
@@ -677,7 +728,9 @@ export default function ImportPage() {
|
||||
{/* Import button */}
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="text-xs text-muted-foreground">
|
||||
{t('import.willImportTo', 'Will import to')}: <span className="font-medium text-foreground">{effectiveFolder}</span>
|
||||
{isPstSelected
|
||||
? t('import.pstFolders', 'PST folder structure will be preserved during import')
|
||||
: (<>{t('import.willImportTo', 'Will import to')}: <span className="font-medium text-foreground">{effectiveFolder}</span></>)}
|
||||
</div>
|
||||
<Button
|
||||
onClick={() => importMutation.mutate()}
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "استيراد ملفات البريد إلى حساب محلي (NoSync). للملفات الكبيرة، استخدم CLI.",
|
||||
"detectedFolder": "مكتشف",
|
||||
"detectedFrom": "مكتشف من",
|
||||
"dropHere": "أفلت ملفات .eml / .mbox هنا",
|
||||
"dropHere": "أفلت ملفات .eml / .mbox / .pst هنا",
|
||||
"failed": "فشل الاستيراد",
|
||||
"failedCount": "{{count}} فشل",
|
||||
"failedDetails": "العناصر الفاشلة",
|
||||
"folder": "المجلد",
|
||||
"folderMethod": "2. اختر طريقة تحديد المجلد",
|
||||
"folderMethodDesc": "كيف سيتم تحديد مجلد البريد المستهدف؟",
|
||||
"folderStructure": "2. هيكل المجلدات",
|
||||
"importHistory": "سجل الاستيراد",
|
||||
"limits": "الحد الأقصى: EML 100 م.ب · MBOX 1 غ.ب. للملفات الأكبر ← CLI.",
|
||||
"limits": "الحد الأقصى: EML 100 م.ب · MBOX {{maxMbox}} م.ب · PST {{maxPst}} م.ب. للملفات الأكبر ← CLI.",
|
||||
"modeCustom": "أدخل اسم مجلد مخصص",
|
||||
"modeCustomDesc": "اكتب اسم مجلد البريد المستهدف يدويًا.",
|
||||
"modeExisting": "اختر من صناديق البريد الحالية",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "أو انقر للتصفح",
|
||||
"processed": "تم معالجة {{current}} / {{total}}",
|
||||
"processing": "جاري المعالجة…",
|
||||
"pstFolderDesc": "يحتوي ملف PST على هيكل مجلدات خاص به (مثل Inbox و Sent Items وما إلى ذلك). سيتم إنشاء المجلدات تلقائيًا أثناء الاستيراد.",
|
||||
"pstFolders": "سيتم الحفاظ على هيكل مجلدات PST أثناء الاستيراد",
|
||||
"searchAccount": "البحث عن الحسابات...",
|
||||
"searchMailbox": "البحث عن صناديق البريد...",
|
||||
"selectAccount": "اختر حسابًا",
|
||||
"selectAccountFirst": "يرجى اختيار حساب أولاً.",
|
||||
"selectFileFirst": "يرجى اختيار ملف أولاً لتحديد الخيارات المتاحة.",
|
||||
"selectMailbox": "اختر صندوق بريد...",
|
||||
"source": "المصدر",
|
||||
"startImport": "استيراد",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importer e-mailfiler til en lokal konto (NoSync). Brug CLI til større filer.",
|
||||
"detectedFolder": "Registreret",
|
||||
"detectedFrom": "Registreret fra",
|
||||
"dropHere": "Slip .eml / .mbox-filer her",
|
||||
"dropHere": "Slip .eml / .mbox / .pst-filer her",
|
||||
"failed": "Import mislykkedes",
|
||||
"failedCount": "{{count}} fejlet",
|
||||
"failedDetails": "Fejlede elementer",
|
||||
"folder": "Mappe",
|
||||
"folderMethod": "2. Vælg mappemetode",
|
||||
"folderMethodDesc": "Hvordan skal destinationsmappen bestemmes?",
|
||||
"folderStructure": "2. Mappestruktur",
|
||||
"importHistory": "Importhistorik",
|
||||
"limits": "Maks: EML 100 MB · MBOX 1 GB. Større filer → CLI.",
|
||||
"limits": "Maks: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Større filer → CLI.",
|
||||
"modeCustom": "Indtast et brugerdefineret mappenavn",
|
||||
"modeCustomDesc": "Skriv navnet på destinationsmappen manuelt.",
|
||||
"modeExisting": "Vælg fra eksisterende postkasser",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "eller klik for at gennemse",
|
||||
"processed": "{{current}} / {{total}} behandlet",
|
||||
"processing": "Behandler…",
|
||||
"pstFolderDesc": "PST-filen indeholder sin egen mappestruktur (f.eks. Indbakke, Sendt post osv.). Mapper oprettes automatisk under importen.",
|
||||
"pstFolders": "PST-mappestrukturen vil blive bevaret under importen",
|
||||
"searchAccount": "Søg efter konti...",
|
||||
"searchMailbox": "Søg efter postkasser...",
|
||||
"selectAccount": "Vælg en konto",
|
||||
"selectAccountFirst": "Vælg en konto først.",
|
||||
"selectFileFirst": "Vælg en fil først for at bestemme tilgængelige muligheder.",
|
||||
"selectMailbox": "Vælg en postkasse...",
|
||||
"source": "kilde",
|
||||
"startImport": "Importer",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "E-Mail-Dateien in ein lokales Konto (NoSync) importieren. Für größere Dateien CLI nutzen.",
|
||||
"detectedFolder": "Erkannt",
|
||||
"detectedFrom": "Erkannt aus",
|
||||
"dropHere": ".eml / .mbox-Dateien hierher ziehen",
|
||||
"dropHere": ".eml / .mbox / .pst-Dateien hierher ziehen",
|
||||
"failed": "Import fehlgeschlagen",
|
||||
"failedCount": "{{count}} fehlgeschlagen",
|
||||
"failedDetails": "Fehlgeschlagene Elemente",
|
||||
"folder": "Ordner",
|
||||
"folderMethod": "2. Ordnermethode wählen",
|
||||
"folderMethodDesc": "Wie soll der Zielordner bestimmt werden?",
|
||||
"folderStructure": "2. Ordnerstruktur",
|
||||
"importHistory": "Importverlauf",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. Größere Dateien → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Größere Dateien → CLI.",
|
||||
"modeCustom": "Benutzerdefinierten Ordnernamen eingeben",
|
||||
"modeCustomDesc": "Geben Sie den Namen des Zielordners manuell ein.",
|
||||
"modeExisting": "Aus bestehenden Postfächern wählen",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "oder zum Durchsuchen klicken",
|
||||
"processed": "{{current}} / {{total}} verarbeitet",
|
||||
"processing": "Verarbeitung…",
|
||||
"pstFolderDesc": "Die PST-Datei enthält eine eigene Ordnerstruktur (z. B. Posteingang, Gesendete Elemente usw.). Ordner werden beim Import automatisch erstellt.",
|
||||
"pstFolders": "Die PST-Ordnerstruktur wird beim Import beibehalten",
|
||||
"searchAccount": "Konten suchen...",
|
||||
"searchMailbox": "Postfächer suchen...",
|
||||
"selectAccount": "Konto auswählen",
|
||||
"selectAccountFirst": "Wählen Sie zuerst ein Konto aus.",
|
||||
"selectFileFirst": "Wählen Sie zuerst eine Datei aus, um die verfügbaren Optionen zu ermitteln.",
|
||||
"selectMailbox": "Postfach auswählen...",
|
||||
"source": "Quelle",
|
||||
"startImport": "Importieren",
|
||||
|
||||
@@ -598,15 +598,16 @@
|
||||
"description": "Import email files into a local account (NoSync). For larger files, use the CLI.",
|
||||
"detectedFolder": "Detected",
|
||||
"detectedFrom": "Detected from",
|
||||
"dropHere": "Drop .eml / .mbox files here",
|
||||
"dropHere": "Drop .eml / .mbox / .pst files here",
|
||||
"failed": "Import failed",
|
||||
"failedCount": "{{count}} failed",
|
||||
"failedDetails": "Failed items",
|
||||
"folder": "Folder",
|
||||
"folderMethod": "2. Choose folder method",
|
||||
"folderMethodDesc": "How should the target mail folder be determined?",
|
||||
"folderStructure": "2. Folder structure",
|
||||
"importHistory": "Import History",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. Larger files → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Larger files → CLI.",
|
||||
"modeCustom": "Enter a custom folder name",
|
||||
"modeCustomDesc": "Manually type the target mail folder name.",
|
||||
"modeExisting": "Choose from existing mailboxes",
|
||||
@@ -620,10 +621,13 @@
|
||||
"orClick": "or click to browse",
|
||||
"processed": "{{current}} / {{total}} processed",
|
||||
"processing": "Processing…",
|
||||
"pstFolderDesc": "The PST file contains its own folder structure (e.g. Inbox, Sent Items, etc.). Folders will be automatically created during import.",
|
||||
"pstFolders": "PST folder structure will be preserved during import",
|
||||
"searchAccount": "Search accounts...",
|
||||
"searchMailbox": "Search mailboxes...",
|
||||
"selectAccount": "Select an account",
|
||||
"selectAccountFirst": "Select an account first.",
|
||||
"selectFileFirst": "Select a file first to determine available options.",
|
||||
"selectMailbox": "Select a mailbox...",
|
||||
"source": "source",
|
||||
"startImport": "Import",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importar archivos de correo a una cuenta local (NoSync). Para archivos más grandes, use la CLI.",
|
||||
"detectedFolder": "Detectado",
|
||||
"detectedFrom": "Detectado de",
|
||||
"dropHere": "Arrastre archivos .eml / .mbox aquí",
|
||||
"dropHere": "Arrastre archivos .eml / .mbox / .pst aquí",
|
||||
"failed": "Error al importar",
|
||||
"failedCount": "{{count}} fallidos",
|
||||
"failedDetails": "Elementos fallidos",
|
||||
"folder": "Carpeta",
|
||||
"folderMethod": "2. Elegir método de carpeta",
|
||||
"folderMethodDesc": "¿Cómo se debe determinar la carpeta de correo de destino?",
|
||||
"folderStructure": "2. Estructura de carpetas",
|
||||
"importHistory": "Historial de importación",
|
||||
"limits": "Máx: EML 100 MB · MBOX 1 GB. Archivos más grandes → CLI.",
|
||||
"limits": "Máx: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Archivos más grandes → CLI.",
|
||||
"modeCustom": "Ingresar un nombre de carpeta personalizado",
|
||||
"modeCustomDesc": "Escriba manualmente el nombre de la carpeta de destino.",
|
||||
"modeExisting": "Elegir de buzones existentes",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "o haga clic para buscar",
|
||||
"processed": "{{current}} / {{total}} procesados",
|
||||
"processing": "Procesando…",
|
||||
"pstFolderDesc": "El archivo PST contiene su propia estructura de carpetas (por ejemplo, Bandeja de entrada, Elementos enviados, etc.). Las carpetas se crearán automáticamente durante la importación.",
|
||||
"pstFolders": "Se conservará la estructura de carpetas PST durante la importación",
|
||||
"searchAccount": "Buscar cuentas...",
|
||||
"searchMailbox": "Buscar buzones...",
|
||||
"selectAccount": "Seleccionar una cuenta",
|
||||
"selectAccountFirst": "Seleccione una cuenta primero.",
|
||||
"selectFileFirst": "Seleccione un archivo primero para determinar las opciones disponibles.",
|
||||
"selectMailbox": "Seleccionar buzón...",
|
||||
"source": "origen",
|
||||
"startImport": "Importar",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Tuo sähköpostitiedostoja paikalliselle tilille (NoSync). Käytä CLI:tä suuremmille tiedostoille.",
|
||||
"detectedFolder": "Tunnistettu",
|
||||
"detectedFrom": "Tunnistettu lähteestä",
|
||||
"dropHere": "Pudota .eml / .mbox -tiedostot tähän",
|
||||
"dropHere": "Pudota .eml / .mbox / .pst -tiedostot tähän",
|
||||
"failed": "Tuonti epäonnistui",
|
||||
"failedCount": "{{count}} epäonnistui",
|
||||
"failedDetails": "Epäonnistuneet kohteet",
|
||||
"folder": "Kansio",
|
||||
"folderMethod": "2. Valitse kansiomenetelmä",
|
||||
"folderMethodDesc": "Miten kohdekansio tulisi määrittää?",
|
||||
"folderStructure": "2. Kansionrakenne",
|
||||
"importHistory": "Tuontihistoria",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. Suuremmat tiedostot → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Suuremmat tiedostot → CLI.",
|
||||
"modeCustom": "Syötä mukautettu kansion nimi",
|
||||
"modeCustomDesc": "Kirjoita kohdekansion nimi manuaalisesti.",
|
||||
"modeExisting": "Valitse olemassa olevista postilaatikoista",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "tai napsauta selataksesi",
|
||||
"processed": "{{current}} / {{total}} käsitelty",
|
||||
"processing": "Käsitellään…",
|
||||
"pstFolderDesc": "PST-tiedosto sisältää oman kansionrakenneensa (esim. Saapuneet, Lähetetyt jne.). Kansiot luodaan automaattisesti tuonnin aikana.",
|
||||
"pstFolders": "PST-kansionrakenne säilytetään tuonnin aikana",
|
||||
"searchAccount": "Etsi tilejä...",
|
||||
"searchMailbox": "Etsi postilaatikoita...",
|
||||
"selectAccount": "Valitse tili",
|
||||
"selectAccountFirst": "Valitse ensin tili.",
|
||||
"selectFileFirst": "Valitse ensin tiedosto määrittääksesi käytettävissä olevat vaihtoehdot.",
|
||||
"selectMailbox": "Valitse postilaatikko...",
|
||||
"source": "lähde",
|
||||
"startImport": "Tuo",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importer des fichiers d'e-mails dans un compte local (NoSync). Pour les gros fichiers, utilisez le CLI.",
|
||||
"detectedFolder": "Détecté",
|
||||
"detectedFrom": "Détecté depuis",
|
||||
"dropHere": "Déposez les fichiers .eml / .mbox ici",
|
||||
"dropHere": "Déposez les fichiers .eml / .mbox / .pst ici",
|
||||
"failed": "Échec de l'importation",
|
||||
"failedCount": "{{count}} échoué(s)",
|
||||
"failedDetails": "Éléments en échec",
|
||||
"folder": "Dossier",
|
||||
"folderMethod": "2. Choisir la méthode de dossier",
|
||||
"folderMethodDesc": "Comment le dossier de destination doit-il être déterminé ?",
|
||||
"folderStructure": "2. Structure des dossiers",
|
||||
"importHistory": "Historique d'importation",
|
||||
"limits": "Max : EML 100 MB · MBOX 1 GB. Fichiers plus volumineux → CLI.",
|
||||
"limits": "Max : EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Fichiers plus volumineux → CLI.",
|
||||
"modeCustom": "Saisir un nom de dossier personnalisé",
|
||||
"modeCustomDesc": "Saisissez manuellement le nom du dossier de destination.",
|
||||
"modeExisting": "Choisir parmi les boîtes existantes",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "ou cliquez pour parcourir",
|
||||
"processed": "{{current}} / {{total}} traités",
|
||||
"processing": "Traitement…",
|
||||
"pstFolderDesc": "Le fichier PST contient sa propre structure de dossiers (par ex. Boîte de réception, Éléments envoyés, etc.). Les dossiers seront créés automatiquement lors de l'importation.",
|
||||
"pstFolders": "La structure des dossiers PST sera préservée lors de l'importation",
|
||||
"searchAccount": "Rechercher des comptes...",
|
||||
"searchMailbox": "Rechercher des boîtes...",
|
||||
"selectAccount": "Sélectionner un compte",
|
||||
"selectAccountFirst": "Sélectionnez d'abord un compte.",
|
||||
"selectFileFirst": "Sélectionnez d'abord un fichier si vous souhaitez déterminer les options disponibles.",
|
||||
"selectMailbox": "Sélectionner une boîte...",
|
||||
"source": "source",
|
||||
"startImport": "Importer",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importa file email in un account locale (NoSync). Per file più grandi, usa la CLI.",
|
||||
"detectedFolder": "Rilevato",
|
||||
"detectedFrom": "Rilevato da",
|
||||
"dropHere": "Trascina i file .eml / .mbox qui",
|
||||
"dropHere": "Trascina i file .eml / .mbox / .pst qui",
|
||||
"failed": "Importazione fallita",
|
||||
"failedCount": "{{count}} falliti",
|
||||
"failedDetails": "Elementi falliti",
|
||||
"folder": "Cartella",
|
||||
"folderMethod": "2. Scegli il metodo della cartella",
|
||||
"folderMethodDesc": "Come determinare la cartella di posta di destinazione?",
|
||||
"folderStructure": "2. Struttura delle cartelle",
|
||||
"importHistory": "Cronologia importazioni",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. File più grandi → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. File più grandi → CLI.",
|
||||
"modeCustom": "Inserisci un nome cartella personalizzato",
|
||||
"modeCustomDesc": "Digita manualmente il nome della cartella di destinazione.",
|
||||
"modeExisting": "Scegli tra le caselle esistenti",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "o clicca per sfogliare",
|
||||
"processed": "{{current}} / {{total}} elaborati",
|
||||
"processing": "Elaborazione…",
|
||||
"pstFolderDesc": "Il file PST contiene la propria struttura di cartelle (es. Posta in arrivo, Elementi inviati, ecc.). Le cartelle verranno create automaticamente durante l'importazione.",
|
||||
"pstFolders": "La struttura delle cartelle PST verrà preservata durante l'importazione",
|
||||
"searchAccount": "Cerca account...",
|
||||
"searchMailbox": "Cerca caselle postali...",
|
||||
"selectAccount": "Seleziona un account",
|
||||
"selectAccountFirst": "Seleziona prima un account.",
|
||||
"selectFileFirst": "Seleziona prima un file per determinare le opzioni disponibili.",
|
||||
"selectMailbox": "Seleziona una casella...",
|
||||
"source": "origine",
|
||||
"startImport": "Importa",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "NoSyncローカルアカウントにメールファイルをインポートします。大容量ファイルはCLIを使用してください。",
|
||||
"detectedFolder": "放出演出",
|
||||
"detectedFrom": "検出元:",
|
||||
"dropHere": "ここに .eml / .mbox ファイルをドロップ",
|
||||
"dropHere": "ここに .eml / .mbox / .pst 文件をドロップ",
|
||||
"failed": "インポート失敗",
|
||||
"failedCount": "{{count}} 件の失敗",
|
||||
"failedDetails": "失敗したアイテム",
|
||||
"folder": "フォルダ",
|
||||
"folderMethod": "2. フォルダ指定方法の選択",
|
||||
"folderMethodDesc": "インポート先のフォルダをどのように決定しますか?",
|
||||
"folderStructure": "2. フォルダ構造",
|
||||
"importHistory": "インポート履歴",
|
||||
"limits": "上限: EML 100 MB · MBOX 1 GB。これ以上のサイズは → CLIへ。",
|
||||
"limits": "上限: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB。これ以上のサイズは → CLIへ。",
|
||||
"modeCustom": "カスタムフォルダ名を入力",
|
||||
"modeCustomDesc": "インポート先のフォルダ名を手動で入力します。",
|
||||
"modeExisting": "既存のメールボックスから選択",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "またはクリックしてファイルを選択",
|
||||
"processed": "{{current}} / {{total}} 件を処理済み",
|
||||
"processing": "処理中…",
|
||||
"pstFolderDesc": "PSTファイルには独自のフォルダ構造(受信トレイ、送信済みアイテムなど)が含まれています。インポート時にフォルダが自動的に作成されます。",
|
||||
"pstFolders": "インポート中、PSTファイルのフォルダ構造は維持されます",
|
||||
"searchAccount": "アカウントを検索...",
|
||||
"searchMailbox": "メールボックスを検索...",
|
||||
"selectAccount": "アカウントを選択",
|
||||
"selectAccountFirst": "最初にアカウントを選択してください。",
|
||||
"selectFileFirst": "利用可能なオプションを確認するには、最初にファイルを選択してください。",
|
||||
"selectMailbox": "メールボックスを選択...",
|
||||
"source": "ソース",
|
||||
"startImport": "インポート",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "로컬 계정(NoSync)으로 이메일 파일을 가져옵니다. 대용량 파일은 CLI를 사용하세요.",
|
||||
"detectedFolder": "감지됨",
|
||||
"detectedFrom": "감지 대상:",
|
||||
"dropHere": "여기에 .eml / .mbox 파일 끌어놓기",
|
||||
"dropHere": "여기에 .eml / .mbox / .pst 파일 끌어놓기",
|
||||
"failed": "가져오기 실패",
|
||||
"failedCount": "{{count}}개 실패",
|
||||
"failedDetails": "실패한 항목",
|
||||
"folder": "폴더",
|
||||
"folderMethod": "2. 폴더 지정 방식 선택",
|
||||
"folderMethodDesc": "가져올 메일 폴더를 어떻게 결정하시겠습니까?",
|
||||
"folderStructure": "2. 폴더 구조",
|
||||
"importHistory": "가져오기 기록",
|
||||
"limits": "제한: EML 100 MB · MBOX 1 GB. 더 큰 파일은 → CLI 사용.",
|
||||
"limits": "제한: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. 더 큰 파일은 → CLI 사용.",
|
||||
"modeCustom": "사용자 지정 폴더 이름 입력",
|
||||
"modeCustomDesc": "가져올 메일 폴더 이름을 수동으로 입력합니다.",
|
||||
"modeExisting": "기존 편지함에서 선택",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "또는 클릭하여 찾아보기",
|
||||
"processed": "{{current}} / {{total}} 처리됨",
|
||||
"processing": "처리 중…",
|
||||
"pstFolderDesc": "PST 파일은 자체 폴더 구조(예: 받은 편지함, 보낸 편지함 등)를 포함하고 있습니다. 가져오기 중에 폴더가 자동으로 생성됩니다.",
|
||||
"pstFolders": "가져오기 중에 PST 폴더 구조가 유지됩니다",
|
||||
"searchAccount": "계정 검색...",
|
||||
"searchMailbox": "편지함 검색...",
|
||||
"selectAccount": "계정 선택",
|
||||
"selectAccountFirst": "계정을 먼저 선택해 주세요.",
|
||||
"selectFileFirst": "사용 가능한 옵션을 확인하려면 먼저 파일을 선택해 주세요.",
|
||||
"selectMailbox": "편지함 선택...",
|
||||
"source": "소스",
|
||||
"startImport": "가져오기",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importeer e-mailbestanden in een lokaal account (NoSync). Gebruik de CLI voor grotere bestanden.",
|
||||
"detectedFolder": "Gedetecteerd",
|
||||
"detectedFrom": "Gedetecteerd uit",
|
||||
"dropHere": "Sleep .eml / .mbox bestanden hierheen",
|
||||
"dropHere": "Sleep .eml / .mbox / .pst bestanden hierheen",
|
||||
"failed": "Import mislukt",
|
||||
"failedCount": "{{count}} mislukt",
|
||||
"failedDetails": "Mislukte items",
|
||||
"folder": "Map",
|
||||
"folderMethod": "2. Kies mapmethode",
|
||||
"folderMethodDesc": "Hoe moet de doelmap voor e-mail worden bepaald?",
|
||||
"folderStructure": "2. Mapstructuur",
|
||||
"importHistory": "Importgeschiedenis",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. Grotere bestanden → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Grotere bestanden → CLI.",
|
||||
"modeCustom": "Voer een aangepaste mapnaam in",
|
||||
"modeCustomDesc": "Typ handmatig de naam van de doelmap.",
|
||||
"modeExisting": "Kies uit bestaande mailboxen",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "of klik om te bladeren",
|
||||
"processed": "{{current}} / {{total}} verwerkt",
|
||||
"processing": "Verwerken…",
|
||||
"pstFolderDesc": "Het PST-bestand bevat een eigen mapstructuur (bijv. Postvak IN, Verzonden items, enz.). Mappen worden automatisch aangemaakt tijdens de import.",
|
||||
"pstFolders": "De PST-mapstructuur blijft behouden tijdens de import",
|
||||
"searchAccount": "Accounts zoeken...",
|
||||
"searchMailbox": "Mailboxen zoeken...",
|
||||
"selectAccount": "Selecteer een account",
|
||||
"selectAccountFirst": "Selecteer eerst een account.",
|
||||
"selectFileFirst": "Selecteer eerst een bestand om de beschikbare opties te bepalen.",
|
||||
"selectMailbox": "Selecteer een mailbox...",
|
||||
"source": "bron",
|
||||
"startImport": "Importeren",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importer e-postfiler til en lokal konto (NoSync). Bruk CLI for større filer.",
|
||||
"detectedFolder": "Registrert",
|
||||
"detectedFrom": "Registrert fra",
|
||||
"dropHere": "Slipp .eml / .mbox-filer her",
|
||||
"dropHere": "Slipp .eml / .mbox / .pst-filer her",
|
||||
"failed": "Import mislyktes",
|
||||
"failedCount": "{{count}} feilet",
|
||||
"failedDetails": "Feilede elementer",
|
||||
"folder": "Mappe",
|
||||
"folderMethod": "2. Velg mappemetode",
|
||||
"folderMethodDesc": "Hvordan skal målmappen for e-post bestemmes?",
|
||||
"folderStructure": "2. Mappestruktur",
|
||||
"importHistory": "Importhistorikk",
|
||||
"limits": "Maks: EML 100 MB · MBOX 1 GB. Større filer → CLI.",
|
||||
"limits": "Maks: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Større filer → CLI.",
|
||||
"modeCustom": "Skriv inn et egendefinert mappenavn",
|
||||
"modeCustomDesc": "Skriv inn navnet på målmappen manuelt.",
|
||||
"modeExisting": "Velg fra eksisterende postbokser",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "eller klikk for å bla gjennom",
|
||||
"processed": "{{current}} / {{total}} behandlet",
|
||||
"processing": "Behandler…",
|
||||
"pstFolderDesc": "PST-filen inneholder sin egen mappestruktur (f.eks. Innboks, Sendte elementer osv.). Mapper opprettes automatisk under importen.",
|
||||
"pstFolders": "PST-mappestrukturen vil bli bevart under importen",
|
||||
"searchAccount": "Søk etter kontoer...",
|
||||
"searchMailbox": "Søk etter postbokser...",
|
||||
"selectAccount": "Velg en konto",
|
||||
"selectAccountFirst": "Velg en konto først.",
|
||||
"selectFileFirst": "Velg en fil først for å se tilgjengelige alternativer.",
|
||||
"selectMailbox": "Velg en postboks...",
|
||||
"source": "kilde",
|
||||
"startImport": "Importer",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importuj pliki e-mail do konta lokalnego (NoSync). W przypadku większych plików użyj CLI.",
|
||||
"detectedFolder": "Wykryto",
|
||||
"detectedFrom": "Wykryto z",
|
||||
"dropHere": "Upuść pliki .eml / .mbox tutaj",
|
||||
"dropHere": "Upuść pliki .eml / .mbox / .pst tutaj",
|
||||
"failed": "Import nie powiódł się",
|
||||
"failedCount": "Niepowodzenie: {{count}}",
|
||||
"failedDetails": "Nieudane elementy",
|
||||
"folder": "Folder",
|
||||
"folderMethod": "2. Wybierz metodę folderu",
|
||||
"folderMethodDesc": "Jak ma zostać określony docelowy folder poczty?",
|
||||
"folderStructure": "2. Struktura folderów",
|
||||
"importHistory": "Historia importu",
|
||||
"limits": "Maks: EML 100 MB · MBOX 1 GB. Większe pliki → CLI.",
|
||||
"limits": "Maks: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Większe pliki → CLI.",
|
||||
"modeCustom": "Wprowadź własną nazwę folderu",
|
||||
"modeCustomDesc": "Ręcznie wpisz nazwę docelowego folderu poczty.",
|
||||
"modeExisting": "Wybierz z istniejących skrzynek",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "lub kliknij, aby przeglądać",
|
||||
"processed": "Przetworzono: {{current}} / {{total}}",
|
||||
"processing": "Przetwarzanie…",
|
||||
"pstFolderDesc": "Plik PST zawiera własną strukturę folderów (np. Skrzynka odbiorcza, Elementy wysłane itp.). Foldery zostaną utworzone automatycznie podczas importu.",
|
||||
"pstFolders": "Struktura folderów PST zostanie zachowana podczas importu",
|
||||
"searchAccount": "Szukaj kont...",
|
||||
"searchMailbox": "Szukaj skrzynek...",
|
||||
"selectAccount": "Wybierz konto",
|
||||
"selectAccountFirst": "Najpierw wybierz konto.",
|
||||
"selectFileFirst": "Najpierw wybierz plik, aby określić dostępne opcje.",
|
||||
"selectMailbox": "Wybierz skrzynkę...",
|
||||
"source": "źródło",
|
||||
"startImport": "Importuj",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importar arquivos de e-mail para uma conta local (NoSync). Para arquivos maiores, use a CLI.",
|
||||
"detectedFolder": "Detectado",
|
||||
"detectedFrom": "Detectado de",
|
||||
"dropHere": "Solte arquivos .eml / .mbox aqui",
|
||||
"dropHere": "Solte arquivos .eml / .mbox / .pst aqui",
|
||||
"failed": "Falha na importação",
|
||||
"failedCount": "{{count}} falharam",
|
||||
"failedDetails": "Itens com falha",
|
||||
"folder": "Pasta",
|
||||
"folderMethod": "2. Escolher método de pasta",
|
||||
"folderMethodDesc": "Como a pasta de e-mail de destino deve ser determinada?",
|
||||
"folderStructure": "2. Estrutura de pastas",
|
||||
"importHistory": "Histórico de importação",
|
||||
"limits": "Máx: EML 100 MB · MBOX 1 GB. Arquivos maiores → CLI.",
|
||||
"limits": "Máx: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Arquivos maiores → CLI.",
|
||||
"modeCustom": "Digitar um nome de pasta personalizado",
|
||||
"modeCustomDesc": "Digite manualmente o nome da pasta de e-mail de destino.",
|
||||
"modeExisting": "Escolher a partir de caixas existentes",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "ou clique para navegar",
|
||||
"processed": "{{current}} / {{total}} processados",
|
||||
"processing": "Processando…",
|
||||
"pstFolderDesc": "O arquivo PST contém sua própria estrutura de pastas (por exemplo, Caixa de entrada, Itens enviados, etc.). As pastas serão criadas automaticamente durante a importação.",
|
||||
"pstFolders": "A estrutura de pastas PST será preservada durante a importação",
|
||||
"searchAccount": "Buscar contas...",
|
||||
"searchMailbox": "Buscar caixas de correio...",
|
||||
"selectAccount": "Selecionar uma conta",
|
||||
"selectAccountFirst": "Selecione uma conta primeiro.",
|
||||
"selectFileFirst": "Selecione um arquivo primeiro para determinar as opções disponíveis.",
|
||||
"selectMailbox": "Selecionar caixa de correio...",
|
||||
"source": "origem",
|
||||
"startImport": "Importar",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Импорт файлов писем в локальный аккаунт (NoSync). Для больших файлов используйте CLI.",
|
||||
"detectedFolder": "Обнаружено",
|
||||
"detectedFrom": "Обнаружено из",
|
||||
"dropHere": "Перетащите файлы .eml / .mbox сюда",
|
||||
"dropHere": "Перетащите файлы .eml / .mbox / .pst сюда",
|
||||
"failed": "Ошибка импорта",
|
||||
"failedCount": "Ошибок: {{count}}",
|
||||
"failedDetails": "Неудачные элементы",
|
||||
"folder": "Папка",
|
||||
"folderMethod": "2. Выберите метод определения папки",
|
||||
"folderMethodDesc": "Как следует определять целевую папку для писем?",
|
||||
"folderStructure": "2. Структура папок",
|
||||
"importHistory": "История импорта",
|
||||
"limits": "Макс: EML 100 МБ · MBOX 1 ГБ. Для больших файлов → CLI.",
|
||||
"limits": "Макс: EML 100 МБ · MBOX {{maxMbox}} МБ · PST {{maxPst}} МБ. Для больших файлов → CLI.",
|
||||
"modeCustom": "Ввести имя папки вручную",
|
||||
"modeCustomDesc": "Введите имя целевой папки вручную.",
|
||||
"modeExisting": "Выбрать из существующих ящиков",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "или нажмите для обзора",
|
||||
"processed": "Обработано: {{current}} / {{total}}",
|
||||
"processing": "Обработка…",
|
||||
"pstFolderDesc": "Файл PST содержит собственную структуру папок (например, Входящие, Отправленные и т. д.). Папки будут созданы автоматически во время импорта.",
|
||||
"pstFolders": "Структура папок PST будет сохранена при импорте",
|
||||
"searchAccount": "Поиск аккаунтов...",
|
||||
"searchMailbox": "Поиск почтовых ящиков...",
|
||||
"selectAccount": "Выберите аккаунт",
|
||||
"selectAccountFirst": "Сначала выберите аккаунт.",
|
||||
"selectFileFirst": "Сначала выберите файл, чтобы определить доступные параметры.",
|
||||
"selectMailbox": "Выберите почтовый ящик...",
|
||||
"source": "источник",
|
||||
"startImport": "Импортировать",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "Importera e-postfiler till ett lokalt konto (NoSync). Använd CLI för större filer.",
|
||||
"detectedFolder": "Identifierad",
|
||||
"detectedFrom": "Identifierad från",
|
||||
"dropHere": "Släpp .eml / .mbox-filer här",
|
||||
"dropHere": "Släpp .eml / .mbox / .pst-filer här",
|
||||
"failed": "Import misslyckades",
|
||||
"failedCount": "{{count}} misslyckades",
|
||||
"failedDetails": "Misslyckade objekt",
|
||||
"folder": "Mapp",
|
||||
"folderMethod": "2. Välj mappemetod",
|
||||
"folderMethodDesc": "Hur ska målmappen for e-post bestämmas?",
|
||||
"folderStructure": "2. Mappstruktur",
|
||||
"importHistory": "Importhistorik",
|
||||
"limits": "Max: EML 100 MB · MBOX 1 GB. Större filer → CLI.",
|
||||
"limits": "Max: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB. Større filer → CLI.",
|
||||
"modeCustom": "Ange ett anpassat mappnamn",
|
||||
"modeCustomDesc": "Ange namnet på målmappen manuellt.",
|
||||
"modeExisting": "Välj från befintliga brevlådor",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "eller klicka för att bläddra",
|
||||
"processed": "{{current}} / {{total}} behandlade",
|
||||
"processing": "Behandlar…",
|
||||
"pstFolderDesc": "PST-filen innehåller sin egen mappstruktur (t.ex. Inborgen, Skickat osv.). Mappar skapas automatiskt under importen.",
|
||||
"pstFolders": "PST-mappstrukturen kommer att bevaras under importen",
|
||||
"searchAccount": "Sök konton...",
|
||||
"searchMailbox": "Sök brevlådor...",
|
||||
"selectAccount": "Välj ett konto",
|
||||
"selectAccountFirst": "Välj ett konto först.",
|
||||
"selectFileFirst": "Välj en fil först för att se tillgängliga alternativ.",
|
||||
"selectMailbox": "Välj en brevlåda...",
|
||||
"source": "källa",
|
||||
"startImport": "Importera",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "將郵件檔案匯入至本地帳戶 (NoSync)。大檔案請使用 CLI 命令行工具。",
|
||||
"detectedFolder": "已識別",
|
||||
"detectedFrom": "識別自",
|
||||
"dropHere": "將 .eml / .mbox 檔案拖曳到此處",
|
||||
"dropHere": "將 .eml / .mbox / .pst 檔案拖曳到此處",
|
||||
"failed": "匯入失敗",
|
||||
"failedCount": "{{count}} 個失敗",
|
||||
"failedDetails": "失敗詳情",
|
||||
"folder": "資料夾",
|
||||
"folderMethod": "2. 選擇資料夾比對策略",
|
||||
"folderMethodDesc": "如何確定匯入 Target 郵件資料夾?",
|
||||
"folderStructure": "2. 資料夾結構",
|
||||
"importHistory": "匯入歷史",
|
||||
"limits": "限制:EML 100 MB · MBOX 1 GB。超過限制請使用 CLI。",
|
||||
"limits": "限制: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB。超過限制請使用 CLI。",
|
||||
"modeCustom": "指定自訂資料夾名稱",
|
||||
"modeCustomDesc": "手動輸入目標郵件資料夾的名稱。",
|
||||
"modeExisting": "從現有郵箱中選擇",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "或點擊瀏覽檔案",
|
||||
"processed": "已處理 {{current}} / {{total}}",
|
||||
"processing": "正在處理…",
|
||||
"pstFolderDesc": "PST 檔案包含其自身的資料夾結構(例如:收件箱、已發送郵件等)。匯入過程中將自動建立這些資料夾。",
|
||||
"pstFolders": "匯入過程中將保留 PST 資料夾結構",
|
||||
"searchAccount": "搜尋帳戶...",
|
||||
"searchMailbox": "搜尋郵箱...",
|
||||
"selectAccount": "選擇帳戶",
|
||||
"selectAccountFirst": "請先選擇一個帳戶。",
|
||||
"selectFileFirst": "請先選擇檔案以確定可用選項。",
|
||||
"selectMailbox": "選擇郵箱...",
|
||||
"source": "來源",
|
||||
"startImport": "開始匯入",
|
||||
|
||||
@@ -596,15 +596,16 @@
|
||||
"description": "将邮件文件导入至本地账户 (NoSync)。大文件请使用 CLI 命令行工具。",
|
||||
"detectedFolder": "已识别",
|
||||
"detectedFrom": "识别自",
|
||||
"dropHere": "将 .eml / .mbox 文件拖拽到此处",
|
||||
"dropHere": "将 .eml / .mbox / .pst 文件拖拽到此处",
|
||||
"failed": "导入失败",
|
||||
"failedCount": "{{count}} 个失败",
|
||||
"failedDetails": "失败详情",
|
||||
"folder": "文件夹",
|
||||
"folderMethod": "2. 选择文件夹匹配策略",
|
||||
"folderMethodDesc": "如何确定导入的目标邮件文件夹?",
|
||||
"folderStructure": "2. 文件夹结构",
|
||||
"importHistory": "导入历史",
|
||||
"limits": "限制:EML 100 MB · MBOX 1 GB。超过限制请使用 CLI。",
|
||||
"limits": "限制: EML 100 MB · MBOX {{maxMbox}} MB · PST {{maxPst}} MB。超过限制请使用 CLI。",
|
||||
"modeCustom": "指定自定义文件夹名称",
|
||||
"modeCustomDesc": "手动输入目标邮件文件夹的名称。",
|
||||
"modeExisting": "从现有邮箱中选择",
|
||||
@@ -618,10 +619,13 @@
|
||||
"orClick": "或点击浏览文件",
|
||||
"processed": "已处理 {{current}} / {{total}}",
|
||||
"processing": "正在处理…",
|
||||
"pstFolderDesc": "PST 文件包含其自身的文件夹结构(例如:收件箱、已发送邮件等)。导入过程中将自动创建这些文件夹。",
|
||||
"pstFolders": "导入过程中将保留 PST 文件夹结构",
|
||||
"searchAccount": "搜索账户...",
|
||||
"searchMailbox": "搜索邮箱...",
|
||||
"selectAccount": "选择账户",
|
||||
"selectAccountFirst": "请先选择一个账户。",
|
||||
"selectFileFirst": "请先选择文件以确定可用选项。",
|
||||
"selectMailbox": "选择邮箱...",
|
||||
"source": "来源",
|
||||
"startImport": "开始导入",
|
||||
|
||||
Reference in New Issue
Block a user