maksit-postclient/src/MaksIT.PostClient.Shared/Localization/UiCopy.cs

1156 lines
44 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace MaksIT.PostClient.Shared.Localization;
public sealed partial class UiCopy {
public string File { get; init; } = "";
public string View { get; init; } = "";
public string Message { get; init; } = "";
public string Settings { get; init; } = "";
public string Features { get; init; } = "";
public string FeaturesHint { get; init; } = "";
public string Feature { get; init; } = "";
public string SemanticSearch { get; init; } = "";
public string SemanticSearchHint { get; init; } = "";
public string SemanticSearchEnabled { get; init; } = "";
public string SemanticDevice { get; init; } = "";
public string SemanticDeviceAuto { get; init; } = "";
public string SemanticDeviceCpu { get; init; } = "";
public string SemanticDeviceGpu { get; init; } = "";
public string SemanticDeviceGpuOff { get; init; } = "";
public string SemanticRetry { get; init; } = "";
public string SemanticLicenseHint { get; init; } = "";
public string IndicesKeyword { get; init; } = "";
public string IndicesKeywordHint { get; init; } = "";
public string IndicesKeywordStats { get; init; } = "";
public string IndicesRebuildKeyword { get; init; } = "";
public string IndicesMeaning { get; init; } = "";
public string IndicesMeaningHint { get; init; } = "";
public string IndicesMeaningStats { get; init; } = "";
public string IndicesRebuildMeaning { get; init; } = "";
public string IndicesSanitize { get; init; } = "";
public string IndicesSanitizeHint { get; init; } = "";
public string IndicesModelFolder { get; init; } = "";
public string Rules { get; init; } = "";
public string RulesHint { get; init; } = "";
public string Language { get; init; } = "";
public string LanguageLabel { get; init; } = "";
public string GetMessages { get; init; } = "";
public string Write { get; init; } = "";
public string Print { get; init; } = "";
public string SavePdf { get; init; } = "";
public string SaveAttachmentsZip { get; init; } = "";
public string ExportFascicolo { get; init; } = "";
public string ImportEml { get; init; } = "";
public string ImportThunderbird { get; init; } = "";
public string ImportPst { get; init; } = "";
public string AttachPst { get; init; } = "";
public string CreatePst { get; init; } = "";
public string CreatePstDone { get; init; } = "";
public string DetachPst { get; init; } = "";
public string DetachPstDone { get; init; } = "";
public string Help { get; init; } = "";
public string Logs { get; init; } = "";
public string CreateStore { get; init; } = "";
public string AttachStore { get; init; } = "";
public string DetachStore { get; init; } = "";
public string MoveStore { get; init; } = "";
public string CreateStoreDone { get; init; } = "";
public string AttachStoreDone { get; init; } = "";
public string DetachStoreDone { get; init; } = "";
public string MoveStoreDone { get; init; } = "";
public string Retention { get; init; } = "";
public string RetentionHint { get; init; } = "";
public string RetentionDays { get; init; } = "";
public string RetentionDaysBadge { get; init; } = "";
public string RetentionAction { get; init; } = "";
public string RetentionToTrash { get; init; } = "";
public string RetentionPurge { get; init; } = "";
public string RetentionRun { get; init; } = "";
public string LocalStore { get; init; } = "";
public string LocalStoreAppData { get; init; } = "";
public string IdentityHubHint { get; init; } = "";
public string ImportOutlookRules { get; init; } = "";
public string ImportRulesJson { get; init; } = "";
public string ImportRulesOutlook { get; init; } = "";
public string ExportRules { get; init; } = "";
public string RunAllRules { get; init; } = "";
public string RulesNone { get; init; } = "";
public string RulesRan { get; init; } = "";
public string AddRule { get; init; } = "";
public string DeleteRule { get; init; } = "";
public string RuleStop { get; init; } = "";
public string RuleAccount { get; init; } = "";
public string RuleFolderAccount { get; init; } = "";
public string RuleFolder { get; init; } = "";
public string RuleFolderUnresolved { get; init; } = "";
public string BrowseFile { get; init; } = "";
public string StorePath { get; init; } = "";
public string PstHint { get; init; } = "";
public string PstPathRequired { get; init; } = "";
public string OpenArchiveFolder { get; init; } = "";
public string ExportArchive { get; init; } = "";
public string NewAccount { get; init; } = "";
public string AccountSettings { get; init; } = "";
public string Exit { get; init; } = "";
public string About { get; init; } = "";
public string CheckUpdates { get; init; } = "";
public string AboutVersion { get; init; } = "";
public string AboutCredits { get; init; } = "";
public string AboutEmail { get; init; } = "";
public string AboutLicenseLabel { get; init; } = "";
public string AboutCopyright { get; init; } = "";
public string AboutLicense { get; init; } = "";
public string AboutBlurb { get; init; } = "";
public string UpdateChecking { get; init; } = "";
public string UpdateDownloading { get; init; } = "";
public string UpdateLatest { get; init; } = "";
public string UpdateAvailable { get; init; } = "";
public string UpdateDownload { get; init; } = "";
public string UpdateOpenPage { get; init; } = "";
public string UpdateNoAsset { get; init; } = "";
public string UpdateNone { get; init; } = "";
public string UpdateFailed { get; init; } = "";
public string UnwrapEnvelope { get; init; } = "";
public string GroupConversations { get; init; } = "";
public string GroupConversationsTip { get; init; } = "";
public string ListAboveReading { get; init; } = "";
public string ThreeColumns { get; init; } = "";
public string ThreeColumnsTip { get; init; } = "";
public string LayoutToggleTip { get; init; } = "";
public string Html { get; init; } = "";
public string Text { get; init; } = "";
public string Source { get; init; } = "";
public string FatturaPa { get; init; } = "";
public string ViewFatturaPa { get; init; } = "";
public string Reply { get; init; } = "";
public string ReplyAll { get; init; } = "";
public string Forward { get; init; } = "";
public string OpenInNewWindow { get; init; } = "";
public string MarkRead { get; init; } = "";
public string MarkUnread { get; init; } = "";
public string FlagToggle { get; init; } = "";
public string Priority { get; init; } = "";
public string PriorityHigh { get; init; } = "";
public string PriorityNormal { get; init; } = "";
public string PriorityLow { get; init; } = "";
public string Delete { get; init; } = "";
public string MoveTo { get; init; } = "";
public string Folders { get; init; } = "";
public string SearchPlaceholder { get; init; } = "";
public string Label { get; init; } = "";
public string LabelTip { get; init; } = "";
public string Unread { get; init; } = "";
public string Flag { get; init; } = "";
public string Attachments { get; init; } = "";
public string Delivery { get; init; } = "";
public string Type { get; init; } = "";
public string From { get; init; } = "";
public string To { get; init; } = "";
public string Cc { get; init; } = "";
public string Bcc { get; init; } = "";
public string Subject { get; init; } = "";
public string Date { get; init; } = "";
public string Size { get; init; } = "";
public string SelectMessage { get; init; } = "";
public string Open { get; init; } = "";
public string Save { get; init; } = "";
public string SaveAllZip { get; init; } = "";
public string SaveZip { get; init; } = "";
public string MessageTitle { get; init; } = "";
public string Send { get; init; } = "";
public string Attach { get; init; } = "";
public string DropAttachments { get; init; } = "";
public string ZipAttachments { get; init; } = "";
public string ZipTitle { get; init; } = "";
public string ZipHint { get; init; } = "";
public string ZipFileName { get; init; } = "";
public string ZipPassword { get; init; } = "";
public string Close { get; init; } = "";
public string ErrorTitle { get; init; } = "";
public string ErrorHint { get; init; } = "";
public string CopyDetails { get; init; } = "";
public string Copied { get; init; } = "";
public string SaveAccount { get; init; } = "";
public string RemoveAccount { get; init; } = "";
public string AccountHint { get; init; } = "";
public string DisplayName { get; init; } = "";
public string Address { get; init; } = "";
public string Username { get; init; } = "";
public string GoogleClientId { get; init; } = "";
public string GoogleClientSecret { get; init; } = "";
public string MicrosoftClientId { get; init; } = "";
public string SignInGoogle { get; init; } = "";
public string SignInMicrosoft { get; init; } = "";
public string PasswordKeep { get; init; } = "";
public string IncomingHost { get; init; } = "";
public string SmtpHost { get; init; } = "";
public string FromMailboxTip { get; init; } = "";
public string SentFrom { get; init; } = "";
public string SentFromCertified { get; init; } = "";
public string TrayOpen { get; init; } = "";
public string TrayExit { get; init; } = "";
public string Inbox { get; init; } = "";
public string Drafts { get; init; } = "";
public string Sent { get; init; } = "";
public string Junk { get; init; } = "";
public string Trash { get; init; } = "";
public string Archive { get; init; } = "";
public string Receipts { get; init; } = "";
public string ItemOne { get; init; } = "";
public string ItemsMany { get; init; } = "";
public string ShownOf { get; init; } = "";
public string UnreadSuffix { get; init; } = "";
public string Indexing { get; init; } = "";
public string IndexingScan { get; init; } = "";
public string IndexingWithFolder { get; init; } = "";
public string IndexingBusy { get; init; } = "";
public string IndexingLeft { get; init; } = "";
public string IndexingMeaning { get; init; } = "";
public string IndexingMeaningLeft { get; init; } = "";
public string IndexingMeaningReady { get; init; } = "";
public string IndexingMeaningReadyCount { get; init; } = "";
public string ArchiveHint { get; init; } = "";
public string AddMailboxThenGet { get; init; } = "";
public string SecurityAuto { get; init; } = "";
public string SecurityNone { get; init; } = "";
public string SecurityStartTlsIfAvailable { get; init; } = "";
public string Connecting { get; init; } = "";
public string GettingMessages { get; init; } = "";
public string OpeningFolder { get; init; } = "";
public string OpeningMessage { get; init; } = "";
public string Moving { get; init; } = "";
public string UpdatingFlags { get; init; } = "";
public string EmptyingFolder { get; init; } = "";
public string CreatingFolder { get; init; } = "";
public string DeletingFolder { get; init; } = "";
public string NewFolder { get; init; } = "";
public string EmptyFolder { get; init; } = "";
public string DeleteAllItems { get; init; } = "";
public string MarkFolderRead { get; init; } = "";
public string MarkFolderUnread { get; init; } = "";
public string DeleteFolder { get; init; } = "";
public string FolderName { get; init; } = "";
public string Ok { get; init; } = "";
public string EmptyFolderConfirm { get; init; } = "";
public string EmptyTrashConfirm { get; init; } = "";
public string DeleteFolderConfirm { get; init; } = "";
public string DeleteFoldersConfirm { get; init; } = "";
public string CannotDeleteSystemFolder { get; init; } = "";
public string CannotMoveSystemFolder { get; init; } = "";
public string FolderCreated { get; init; } = "";
public string FolderDeleted { get; init; } = "";
public string FoldersDeleted { get; init; } = "";
public string FolderMoved { get; init; } = "";
public string FoldersMoved { get; init; } = "";
public string MovedMessages { get; init; } = "";
public string AlreadyInFolder { get; init; } = "";
public string FolderEmptied { get; init; } = "";
public string FolderMarkedRead { get; init; } = "";
public string FolderMarkedUnread { get; init; } = "";
public string Cancelled { get; init; } = "";
public string NoSubject { get; init; } = "";
public string Read { get; init; } = "";
public string HasAttachments { get; init; } = "";
public string NoAttachments { get; init; } = "";
public string Flagged { get; init; } = "";
public string NotFlagged { get; init; } = "";
public string NoDelivery { get; init; } = "";
public string Mailbox { get; init; } = "";
public string ListReading { get; init; } = "";
public string GmailHintPrefix { get; init; } = "";
public string GmailHintStored { get; init; } = "";
public string GmailHintPaste { get; init; } = "";
public string GmailHintImap { get; init; } = "";
public string OutlookHintGuid { get; init; } = "";
public string OutlookHintNamed { get; init; } = "";
public string OutlookHintPasswords { get; init; } = "";
public string PecHint { get; init; } = "";
public string CertifiedKind { get; init; } = "";
public string CertifiedKindHint { get; init; } = "";
public string CertifiedOrdinary { get; init; } = "";
public string CertifiedPec { get; init; } = "";
public string CertifiedRem { get; init; } = "";
public string RulesTitle =>
Plain(Rules);
public string FeaturesTitle =>
Plain(Features);
public string RetentionTitle =>
Plain(Retention);
public string SemanticSearchTitle =>
Plain(SemanticSearch);
public string AccountSettingsTitle =>
Plain(AccountSettings);
public string AboutTitle =>
Plain(About);
public string LogsTitle =>
Plain(Logs);
public string RetentionBadge(int days) =>
days <= 0 ? "" : string.Format(RetentionDaysBadge, days);
public static string Plain(string? value) {
if (string.IsNullOrWhiteSpace(value))
return "";
var text = value.Replace("_", "", StringComparison.Ordinal).Trim();
if (text.EndsWith("…", StringComparison.Ordinal))
return text[..^1].TrimEnd();
if (text.EndsWith("...", StringComparison.Ordinal))
return text[..^3].TrimEnd();
return text;
}
public static UiCopy For(string? language) =>
UiLanguage.Normalize(language) switch {
UiLanguage.It => Italian(),
UiLanguage.Fr => French(),
UiLanguage.De => German(),
UiLanguage.Es => Spanish(),
_ => English()
};
public string Items(int total) =>
total == 1 ? ItemOne : string.Format(ItemsMany, total);
public string StatsLine(string folder, int total, int unread, int shown) {
var items = Items(Math.Max(0, total));
var counts = shown > 0 && shown < total
? string.Format(ShownOf, shown, items)
: items;
if (unread > 0)
counts += string.Format(UnreadSuffix, unread);
return folder + " · " + counts;
}
public string IndexLine(int done, int total) =>
total <= 0 ? "" : string.Format(Indexing, Math.Clamp(done, 0, total), total);
public string IndexLine(int done, int total, string folder) =>
total <= 0
? IndexScan(folder)
: string.Format(IndexingWithFolder, folder, Math.Clamp(done, 0, total), total);
public string IndexScan(string folder) =>
string.Format(IndexingScan, folder);
public string ArchivePathHint(string path) =>
string.Format(ArchiveHint, path);
private static UiCopy English() =>
new() {
File = "_File",
View = "_View",
Message = "_Message",
Settings = "_Settings",
Help = "_Help",
Logs = "_Logs",
Features = "_Features…",
FeaturesHint = "Certified-mail packs only. Ordinary mail (IMAP/POP3, search, labels, imports) stays on. Header checkboxes turn a whole country on or off. Italy is PEC and FatturaPA; Europe is eIDAS REM. France, Germany, Spain, and Switzerland add operator evidence labels — those networks are usually not IMAP.",
Feature = "Feature",
SemanticSearch = "_Indices…",
SemanticSearchHint = "Keyword index (FTS) and optional meaning index (RAG) on this PC. EmbeddingGemma 300M (~300 MB) comes from Hugging Face (onnx-community). It is not on the GitHub release. Mail never leaves the machine. Rebuild or repair if search looks wrong.",
SemanticSearchEnabled = "Enable meaning index (RAG)",
SemanticDevice = "Device",
SemanticDeviceAuto = "Auto",
SemanticDeviceCpu = "CPU",
SemanticDeviceGpu = "GPU (DirectML)",
SemanticDeviceGpuOff = "GPU boost is Windows DirectML only. This PC will stay on CPU.",
SemanticRetry = "Download model",
SemanticLicenseHint = "Weights use Google’s Gemma Terms. Download from Hugging Face, or copy embeddinggemma-300m-int8.onnx, model_quantized.onnx_data, and tokenizer.model into the models folder.",
IndicesKeyword = "Keyword index",
IndicesKeywordHint = "Subject, from, body, and attachment text. Updated when mail is downloaded, moved, or deleted.",
IndicesKeywordStats = "{0} messages · {1} keyword rows",
IndicesRebuildKeyword = "Rebuild keyword index",
IndicesMeaning = "Meaning index (RAG)",
IndicesMeaningHint = "EmbeddingGemma vectors in the same mail.db. Rebuilt in the background after you clear them.",
IndicesMeaningStats = "{0} vectors · {1} pending · {2} orphans",
IndicesRebuildMeaning = "Rebuild meaning index",
IndicesSanitize = "Repair indices",
IndicesSanitizeHint = "Drop leftover FTS and vector rows, and vectors from another model. Does not re-download the model.",
IndicesModelFolder = "Model folder",
Rules = "_Rules…",
RulesHint = "Rules run on Get Messages, on import, and when you press Run all rules — on the mailbox you pick. A move folder can live on another mailbox, including an attached data file; the box stays red until that folder matches. Import rules… reads this app’s JSON export or Outlook’s .rwz (Rules Wizard). Export is JSON — Outlook does not read that file.",
Language = "_Language",
LanguageLabel = "Language",
GetMessages = "Get Messages",
Write = "Write",
Print = "Print…",
SavePdf = "Save PDF…",
SaveAttachmentsZip = "Save attachments ZIP…",
ExportFascicolo = "Export selected EML (fascicolo)…",
ImportEml = "Import EML…",
ImportThunderbird = "Import Thunderbird…",
ImportPst = "Import Outlook PST…",
AttachPst = "Attach store…",
CreatePst = "New store…",
CreatePstDone = "Created {0} and attached it as a store.",
DetachPst = "Detach store",
DetachPstDone = "Detached {0}. The folder is still on disk.",
CreateStore = "New store…",
AttachStore = "Attach store…",
DetachStore = "Detach store",
MoveStore = "Move store…",
CreateStoreDone = "Created store {0}.",
AttachStoreDone = "Attached store {0}.",
DetachStoreDone = "Detached {0}. The folder is still on disk.",
MoveStoreDone = "Moved store {0}.",
Retention = "_Retention…",
RetentionHint = "Per folder. 0 keeps mail forever. Folder days move older messages to Trash. Trash days permanently delete, or 0 to keep Trash forever.",
RetentionDays = "Days",
RetentionDaysBadge = "{0}d",
RetentionAction = "When expired",
RetentionToTrash = "Move to Trash",
RetentionPurge = "Delete permanently",
RetentionRun = "Run now",
LocalStore = "Local store",
LocalStoreAppData = "App data (default)",
IdentityHubHint = "Gmail and Microsoft sign-in uses Identity Hub (identity.maks-it.com). Password still works for PEC and generic IMAP.",
ImportOutlookRules = "Import rules…",
ImportRulesJson = "JSON (Postclient)",
ImportRulesOutlook = "Outlook Rules Wizard (.rwz)",
ExportRules = "Export rules…",
RunAllRules = "Run all rules",
RulesNone = "No enabled rules.",
RulesRan = "{0} messages matched.",
AddRule = "Add",
DeleteRule = "Delete",
RuleStop = "Stop processing more rules",
RuleAccount = "Account",
RuleFolderAccount = "Move to mailbox",
RuleFolder = "Folder (exact name on the destination mailbox)",
RuleFolderUnresolved = "No folder with that exact name on the selected account. Connect the account if its folders are not listed yet, then type the name as it appears in the folder tree.",
BrowseFile = "Browse…",
StorePath = "Outlook data file (.pst / .ost)",
PstHint = "Opens the file as a mailbox, like Outlook’s Open Outlook Data File. Unicode PST files are writable. An OST (or ANSI PST) is copied to a Unicode .pst beside it on the first change. Close Outlook if the file is open. File → Import Outlook PST still copies messages into another account.",
PstPathRequired = "Choose an existing .pst or .ost file.",
OpenArchiveFolder = "Open archive folder",
ExportArchive = "Export archive…",
NewAccount = "New Account…",
AccountSettings = "Account Settings…",
Exit = "E_xit",
About = "_About Postclient",
CheckUpdates = "Check for _updates…",
AboutVersion = "Version",
AboutCredits = "Credits",
AboutEmail = "Email",
AboutLicenseLabel = "License",
AboutCopyright = "Copyright",
AboutLicense = "Apache License 2.0",
AboutBlurb = "Desktop mail client for PEC, REM, and IMAP. Mail stays on this PC.",
UpdateChecking = "Checking for updates…",
UpdateDownloading = "Downloading update…",
UpdateLatest = "Postclient {0} is up to date.",
UpdateAvailable = "Version {0} is available. You have {1}.",
UpdateDownload = "Download",
UpdateOpenPage = "Open download page",
UpdateNoAsset = "Version {0} is available (you have {1}), but there is no package for this system.",
UpdateNone = "No GitHub release yet.",
UpdateFailed = "Could not check for updates: {0}",
UnwrapEnvelope = "Unwrap PEC/REM envelope",
GroupConversations = "Group conversations",
GroupConversationsTip = "Indent replies in this folder. Message-ID / In-Reply-To / References — not a conversation pane.",
ListAboveReading = "List above reading",
ThreeColumns = "Three columns",
ThreeColumnsTip = "Folders, list, and reading side by side",
LayoutToggleTip = "Off: list above reading. On: folders, list, and reading side by side.",
Html = "HTML",
Text = "Text",
Source = "Source",
FatturaPa = "FatturaPA",
ViewFatturaPa = "View FatturaPA",
Reply = "Reply",
ReplyAll = "Reply All",
Forward = "Forward",
OpenInNewWindow = "Open in New Window",
MarkRead = "Mark as Read",
MarkUnread = "Mark as Unread",
FlagToggle = "Flag / Unflag",
Priority = "Priority",
PriorityHigh = "High",
PriorityNormal = "Normal",
PriorityLow = "Low",
Delete = "Delete",
MoveTo = "Move To",
Folders = "Folders",
SearchPlaceholder = "Search subject, body, attachments, labels, meaning",
Label = "Label",
LabelTip = "Practice label on this PC only. Not a shared studio table.",
Unread = "Unread",
Flag = "Flag",
Attachments = "Attachments",
Delivery = "Delivery",
Type = "Type",
From = "From",
To = "To",
Cc = "Cc",
Bcc = "Bcc",
Subject = "Subject",
Date = "Date",
Size = "Size",
SelectMessage = "Select a message to read.",
Open = "Open",
Save = "Save",
SaveAllZip = "Save all as ZIP",
SaveZip = "Save ZIP",
MessageTitle = "Message",
Send = "Send",
Attach = "Attach",
DropAttachments = "Drop files here to attach",
ZipAttachments = "Send attachments as ZIP",
ZipTitle = "ZIP attachments",
ZipHint = "Attachments will be sent as one ZIP. Leave the password empty for an ordinary archive.",
ZipFileName = "ZIP file name",
ZipPassword = "Password (optional)",
Close = "Close",
ErrorTitle = "Unexpected error",
ErrorHint = "Postclient hit an error. Copy the details below to debug or report it. The same text is also saved in the log file.",
CopyDetails = "Copy details",
Copied = "Copied.",
SaveAccount = "Save Account",
RemoveAccount = "Remove Account",
AccountHint = "Gmail and Outlook use OAuth when you Sign in. Italian PEC and EU QTSP mailboxes fill IMAP/SMTP. Other accounts use IMAP/POP3 and a password (DPAPI on Windows, mode 600 on Linux).",
DisplayName = "Display name",
Address = "Address",
Username = "Username (if different)",
GoogleClientId = "….apps.googleusercontent.com (Google Cloud client ID, not Gmail)",
GoogleClientSecret = "Google client secret (not the mailbox password; leave blank if already stored)",
MicrosoftClientId = "Azure Application (client) ID (GUID, not the mailbox)",
SignInGoogle = "Sign in with Google",
SignInMicrosoft = "Sign in with Microsoft",
PasswordKeep = "Password (leave blank to keep the stored one)",
IncomingHost = "Incoming host",
SmtpHost = "SMTP host",
FromMailboxTip = "Sends with this mailbox only. Personal PEC, studio PEC, and Gmail are separate.",
SentFrom = "Sent from {0}.",
SentFromCertified = "Sent from {0}. Waiting for PEC/REM ricevute (acceptance, then delivery).",
TrayOpen = "Open Postclient",
TrayExit = "Exit",
Inbox = "Inbox",
Drafts = "Drafts",
Sent = "Sent",
Junk = "Junk",
Trash = "Trash",
Archive = "Archive",
Receipts = "Receipts",
ItemOne = "1 item",
ItemsMany = "{0} items",
ShownOf = "{0} shown of {1}",
UnreadSuffix = ", {0} unread",
Indexing = "Indexing {0} / {1}",
IndexingScan = "Indexing {0}…",
IndexingWithFolder = "Indexing {0} · {1} / {2}",
IndexingBusy = "Indexing…",
IndexingLeft = "Indexing {0} left",
IndexingMeaning = "Indexing meaning {0} / {1}",
IndexingMeaningLeft = "Indexing meaning {0} left",
IndexingMeaningReady = "Meaning index ready ({0})",
IndexingMeaningReadyCount = "Meaning index ready ({0}, {1})",
ArchiveHint = "Archive is only on this PC — {0}. File → Export Archive copies mail.db and .eml files.",
AddMailboxThenGet = "Add a mailbox, then Get Messages.",
SecurityAuto = "Auto",
SecurityNone = "None",
SecurityStartTlsIfAvailable = "STARTTLS if available",
Connecting = "Connecting…",
GettingMessages = "Getting messages…",
OpeningFolder = "Opening folder…",
OpeningMessage = "Opening message…",
Moving = "Moving…",
UpdatingFlags = "Updating flags…",
EmptyingFolder = "Emptying folder…",
CreatingFolder = "Creating folder…",
DeletingFolder = "Deleting folder…",
NewFolder = "New folder…",
EmptyFolder = "Empty folder",
DeleteAllItems = "Delete all items",
MarkFolderRead = "Mark all as read",
MarkFolderUnread = "Mark all as unread",
DeleteFolder = "Delete folder",
FolderName = "Folder name",
Ok = "OK",
EmptyFolderConfirm = "Empty “{0}”? Messages will be moved to Trash.",
EmptyTrashConfirm = "Permanently delete all messages in “{0}”?",
DeleteFolderConfirm = "Delete folder “{0}” and its messages on the server?",
DeleteFoldersConfirm = "Delete {0} folders and their messages on the server?",
CannotDeleteSystemFolder = "System folders cannot be deleted.",
CannotMoveSystemFolder = "System folders cannot be moved.",
FolderCreated = "Folder created.",
FolderDeleted = "Folder deleted.",
FoldersDeleted = "{0} folder(s) deleted.",
FolderMoved = "Folder moved.",
FoldersMoved = "{0} folder(s) moved.",
MovedMessages = "Moved {0} message(s).",
AlreadyInFolder = "Already in that folder.",
FolderEmptied = "Folder emptied.",
FolderMarkedRead = "All messages marked as read.",
FolderMarkedUnread = "All messages marked as unread.",
Cancelled = "Cancelled.",
NoSubject = "(no subject)",
Read = "Read",
HasAttachments = "Has attachments",
NoAttachments = "No attachments",
Flagged = "Flagged",
NotFlagged = "Not flagged",
NoDelivery = "No delivery status",
Mailbox = "Mailbox",
ListReading = "List / reading",
GmailHintPrefix = "Web OAuth clients need the client secret in the secret box (not the mailbox password). ",
GmailHintStored = "A client secret is already stored.",
GmailHintPaste = "Paste the client secret from Google Cloud → Credentials, then Sign in.",
GmailHintImap = " Enable IMAP in Gmail settings.",
OutlookHintGuid = "Paste the Azure Application (client) ID for Postclient (a GUID).",
OutlookHintNamed = "Microsoft will show the app registration for {0}.",
OutlookHintPasswords = " Most Outlook and Microsoft 365 accounts reject passwords.",
PecHint = "Certified IMAP mailboxes use the gestore password (or an app password if the gestore has 2FA). Username is usually the full address; Legalmail may use the InfoCert User ID. AR24, De-Mail, IncaMail, and Lleida are not IMAP — pick IMAP / POP3 if the operator gave you hosts.",
CertifiedKind = "Mailbox kind",
CertifiedKindHint = "Choose PEC or REM when this IMAP mailbox is a certified gestore, including a custom domain. Gmail and Outlook are always ordinary mail.",
CertifiedOrdinary = "Ordinary mail",
CertifiedPec = "Italian PEC",
CertifiedRem = "EU REM"
};
private static UiCopy Italian() =>
new() {
File = "_File",
View = "_Visualizza",
Message = "_Messaggio",
Settings = "_Impostazioni",
Help = "_Aiuto",
Logs = "_Registro",
Features = "_Funzionalità…",
FeaturesHint = "Solo posta certificata. La posta ordinaria (IMAP/POP3, ricerca, etichette, import) resta sempre disponibile. Le caselle in intestazione accendono o spengono un intero Paese. Italia è PEC e FatturaPA; Europa è REM eIDAS. Francia, Germania, Spagna e Svizzera aggiungono etichette di evidenza — quelle reti di solito non sono IMAP.",
Feature = "Funzione",
SemanticSearch = "_Indici…",
SemanticSearchHint = "Indice per parole (FTS) e, se vuoi, indice per significato (RAG) su questo PC. EmbeddingGemma 300M (~300 MB) arriva da Hugging Face (onnx-community). Non è nel release GitHub. La posta non esce dalla macchina. Ricrea o ripara gli indici se la ricerca è storta.",
SemanticSearchEnabled = "Attiva indice per significato (RAG)",
SemanticDevice = "Dispositivo",
SemanticDeviceAuto = "Automatico",
SemanticDeviceCpu = "CPU",
SemanticDeviceGpu = "GPU (DirectML)",
SemanticDeviceGpuOff = "L’accelerazione GPU è solo DirectML su Windows. Questo PC resta sulla CPU.",
SemanticRetry = "Scarica modello",
SemanticLicenseHint = "I pesi usano i Gemma Terms di Google. Scaricali da Hugging Face, oppure copia embeddinggemma-300m-int8.onnx, model_quantized.onnx_data e tokenizer.model nella cartella models.",
IndicesKeyword = "Indice per parole",
IndicesKeywordHint = "Oggetto, mittente, corpo e testo degli allegati. Si aggiorna quando scarichi, sposti o elimini la posta.",
IndicesKeywordStats = "{0} messaggi · {1} righe",
IndicesRebuildKeyword = "Ricrea indice per parole",
IndicesMeaning = "Indice per significato (RAG)",
IndicesMeaningHint = "Vettori EmbeddingGemma nella stessa mail.db. Si ricalcolano in background dopo averli cancellati.",
IndicesMeaningStats = "{0} vettori · {1} in attesa · {2} orfani",
IndicesRebuildMeaning = "Ricrea indice per significato",
IndicesSanitize = "Ripara indici",
IndicesSanitizeHint = "Elimina righe FTS e vettori rimasti senza messaggio, e i vettori di un altro modello. Non scarica di nuovo il modello.",
IndicesModelFolder = "Cartella del modello",
Rules = "_Regole…",
RulesHint = "Le regole partono su Scarica messaggi, in import e con Esegui tutte le regole, sulla casella scelta. La cartella di destinazione può stare su un’altra casella, anche un file dati collegato: il campo resta rosso finché non coincide. Importa regole… legge l’export JSON di questa app o il .rwz di Outlook (Creazione guidata regole). L’export è JSON: Outlook non lo legge.",
Language = "_Lingua",
LanguageLabel = "Lingua",
GetMessages = "Scarica messaggi",
Write = "Scrivi",
Print = "Stampa…",
SavePdf = "Salva PDF…",
SaveAttachmentsZip = "Salva allegati ZIP…",
ExportFascicolo = "Esporta EML selezionati (fascicolo)…",
ImportEml = "Importa EML…",
ImportThunderbird = "Importa Thunderbird…",
ImportPst = "Importa Outlook PST…",
AttachPst = "Collega archivio…",
CreatePst = "Nuovo archivio…",
CreatePstDone = "Creato l’archivio {0}.",
DetachPst = "Sgancia archivio",
DetachPstDone = "Sganciato {0}. La cartella resta sul disco.",
CreateStore = "Nuovo archivio…",
AttachStore = "Collega archivio…",
DetachStore = "Sgancia archivio",
MoveStore = "Sposta archivio…",
CreateStoreDone = "Creato l’archivio {0}.",
AttachStoreDone = "Collegato l’archivio {0}.",
DetachStoreDone = "Sganciato {0}. La cartella resta sul disco.",
MoveStoreDone = "Spostato l’archivio {0}.",
Retention = "_Conservazione…",
RetentionHint = "Per cartella. 0 conserva per sempre. I giorni della cartella spostano i messaggi più vecchi nel Cestino. I giorni del Cestino eliminano in modo permanente, oppure 0 per tenere il Cestino per sempre.",
RetentionDays = "Giorni",
RetentionDaysBadge = "{0}g",
RetentionAction = "Alla scadenza",
RetentionToTrash = "Sposta nel Cestino",
RetentionPurge = "Elimina in modo permanente",
RetentionRun = "Esegui ora",
LocalStore = "Archivio locale",
LocalStoreAppData = "Dati app (predefinito)",
IdentityHubHint = "Gmail e Microsoft accedono tramite Identity Hub (identity.maks-it.com). La password resta valida per PEC e IMAP generico.",
ImportOutlookRules = "Importa regole…",
ImportRulesJson = "JSON (Postclient)",
ImportRulesOutlook = "Creazione guidata regole Outlook (.rwz)",
ExportRules = "Esporta regole…",
RunAllRules = "Esegui tutte le regole",
RulesNone = "Nessuna regola attiva.",
RulesRan = "{0} messaggi corrispondenti.",
AddRule = "Aggiungi",
DeleteRule = "Elimina",
RuleStop = "Non applicare altre regole",
RuleAccount = "Casella",
RuleFolderAccount = "Sposta nella casella",
RuleFolder = "Cartella (nome esatto sulla casella di destinazione)",
RuleFolderUnresolved = "Nessuna cartella con quel nome esatto sulla casella selezionata. Collega la casella se le cartelle non sono in elenco, poi scrivi il nome come compare nell’albero.",
BrowseFile = "Sfoglia…",
StorePath = "File dati Outlook (.pst / .ost)",
PstHint = "Apre il file come casella, come Apri file di dati Outlook. I PST Unicode sono scrivibili. Un OST (o PST ANSI) viene copiato in un .pst Unicode accanto al file originale alla prima modifica. Chiudi Outlook se il file è aperto. File → Importa Outlook PST copia comunque i messaggi in un altro account.",
PstPathRequired = "Scegli un file .pst o .ost esistente.",
OpenArchiveFolder = "Apri cartella archivio",
ExportArchive = "Esporta archivio…",
NewAccount = "Nuovo account…",
AccountSettings = "Impostazioni account…",
Exit = "E_sci",
About = "_Informazioni su Postclient",
CheckUpdates = "Controlla _aggiornamenti…",
AboutVersion = "Versione",
AboutCredits = "Crediti",
AboutEmail = "Email",
AboutLicenseLabel = "Licenza",
AboutCopyright = "Copyright",
AboutLicense = "Licenza Apache 2.0",
AboutBlurb = "Client di posta da scrivania per PEC, REM e IMAP. La posta resta su questo PC.",
UpdateChecking = "Controllo aggiornamenti…",
UpdateDownloading = "Download aggiornamento…",
UpdateLatest = "Postclient {0} è aggiornato.",
UpdateAvailable = "È disponibile la versione {0}. Hai la {1}.",
UpdateDownload = "Scarica",
UpdateOpenPage = "Apri la pagina di download",
UpdateNoAsset = "È disponibile la versione {0} (hai la {1}), ma non c’è un pacchetto per questo sistema.",
UpdateNone = "Nessuna GitHub Release ancora.",
UpdateFailed = "Impossibile controllare gli aggiornamenti: {0}",
UnwrapEnvelope = "Apri busta PEC/REM",
GroupConversations = "Raggruppa conversazioni",
GroupConversationsTip = "Indenta le risposte in questa cartella. Message-ID / In-Reply-To / References — non un riquadro conversazioni.",
ListAboveReading = "Elenco sopra la lettura",
ThreeColumns = "Tre colonne",
ThreeColumnsTip = "Cartelle, elenco e lettura affiancati",
LayoutToggleTip = "Spento: elenco sopra la lettura. Acceso: cartelle, elenco e lettura affiancati.",
Html = "HTML",
Text = "Testo",
Source = "Sorgente",
FatturaPa = "FatturaPA",
ViewFatturaPa = "Visualizza FatturaPA",
Reply = "Rispondi",
ReplyAll = "Rispondi a tutti",
Forward = "Inoltra",
OpenInNewWindow = "Apri in una nuova finestra",
MarkRead = "Segna come letto",
MarkUnread = "Segna come non letto",
FlagToggle = "Contrassegna / togli stella",
Priority = "Priorità",
PriorityHigh = "Alta",
PriorityNormal = "Normale",
PriorityLow = "Bassa",
Delete = "Elimina",
MoveTo = "Sposta in",
Folders = "Cartelle",
SearchPlaceholder = "Cerca oggetto, corpo, allegati, etichette, significato",
Label = "Etichetta",
LabelTip = "Etichetta di pratica solo su questo PC. Non è una tabella di studio condivisa.",
Unread = "Non letto",
Flag = "Stella",
Attachments = "Allegati",
Delivery = "Consegna",
Type = "Tipo",
From = "Da",
To = "A",
Cc = "Cc",
Bcc = "Ccn",
Subject = "Oggetto",
Date = "Data",
Size = "Dimensione",
SelectMessage = "Seleziona un messaggio da leggere.",
Open = "Apri",
Save = "Salva",
SaveAllZip = "Salva tutti in ZIP",
SaveZip = "Salva ZIP",
MessageTitle = "Messaggio",
Send = "Invia",
Attach = "Allega",
DropAttachments = "Trascina qui i file da allegare",
ZipAttachments = "Invia gli allegati come ZIP",
ZipTitle = "Archivio ZIP",
ZipHint = "Gli allegati verranno inviati in un solo ZIP. Lascia la password vuota per un archivio senza cifratura.",
ZipFileName = "Nome del file ZIP",
ZipPassword = "Password (facoltativa)",
Close = "Chiudi",
ErrorTitle = "Errore imprevisto",
ErrorHint = "Postclient ha riscontrato un errore. Copia i dettagli sotto per il debug o per segnalarlo. Lo stesso testo è anche nel file di log.",
CopyDetails = "Copia dettagli",
Copied = "Copiato.",
SaveAccount = "Salva account",
RemoveAccount = "Rimuovi account",
AccountHint = "Gmail e Outlook usano OAuth con Accedi. PEC italiane e caselle QTSP UE compilano IMAP/SMTP. Gli altri account usano IMAP/POP3 e una password (DPAPI su Windows, mode 600 su Linux).",
DisplayName = "Nome visualizzato",
Address = "Indirizzo",
Username = "Nome utente (se diverso)",
GoogleClientId = "….apps.googleusercontent.com (client ID Google Cloud, non Gmail)",
GoogleClientSecret = "Client secret Google (non la password della casella; lascia vuoto se già salvato)",
MicrosoftClientId = "ID applicazione Azure (GUID, non la casella)",
SignInGoogle = "Accedi con Google",
SignInMicrosoft = "Accedi con Microsoft",
PasswordKeep = "Password (lascia vuoto per mantenere quella salvata)",
IncomingHost = "Host in ingresso",
SmtpHost = "Host SMTP",
FromMailboxTip = "Invia solo con questa casella. PEC personale, PEC dello studio e Gmail restano separate.",
SentFrom = "Inviato da {0}.",
SentFromCertified = "Inviato da {0}. In attesa delle ricevute PEC/REM (accettazione, poi consegna).",
TrayOpen = "Apri Postclient",
TrayExit = "Esci",
Inbox = "Posta in arrivo",
Drafts = "Bozze",
Sent = "Inviata",
Junk = "Indesiderata",
Trash = "Cestino",
Archive = "Archivio",
Receipts = "Ricevute",
ItemOne = "1 elemento",
ItemsMany = "{0} elementi",
ShownOf = "{0} visibili di {1}",
UnreadSuffix = ", {0} non lette",
Indexing = "Indicizzazione {0} / {1}",
IndexingScan = "Indicizzazione {0}…",
IndexingWithFolder = "Indicizzazione {0} · {1} / {2}",
IndexingBusy = "Indicizzazione…",
IndexingLeft = "Indicizzazione {0} rimanenti",
IndexingMeaning = "Indicizzazione significato {0} / {1}",
IndexingMeaningLeft = "Indicizzazione significato {0} rimanenti",
IndexingMeaningReady = "Indice significato pronto ({0})",
IndexingMeaningReadyCount = "Indice significato pronto ({0}, {1})",
ArchiveHint = "L’archivio è solo su questo PC — {0}. File → Esporta archivio copia mail.db e i file .eml.",
AddMailboxThenGet = "Aggiungi una casella, poi Scarica messaggi.",
SecurityAuto = "Automatico",
SecurityNone = "Nessuna",
SecurityStartTlsIfAvailable = "STARTTLS se disponibile",
Connecting = "Connessione…",
GettingMessages = "Download messaggi…",
OpeningFolder = "Apertura cartella…",
OpeningMessage = "Apertura messaggio…",
Moving = "Spostamento…",
UpdatingFlags = "Aggiornamento flag…",
EmptyingFolder = "Svuotamento cartella…",
CreatingFolder = "Creazione cartella…",
DeletingFolder = "Eliminazione cartella…",
NewFolder = "Nuova cartella…",
EmptyFolder = "Svuota cartella",
DeleteAllItems = "Elimina tutti gli elementi",
MarkFolderRead = "Segna tutte come lette",
MarkFolderUnread = "Segna tutte come non lette",
DeleteFolder = "Elimina cartella",
FolderName = "Nome cartella",
Ok = "OK",
EmptyFolderConfirm = "Svuotare “{0}”? I messaggi verranno spostati nel Cestino.",
EmptyTrashConfirm = "Eliminare definitivamente tutti i messaggi in “{0}”?",
DeleteFolderConfirm = "Eliminare la cartella “{0}” e i suoi messaggi sul server?",
DeleteFoldersConfirm = "Eliminare {0} cartelle e i loro messaggi sul server?",
CannotDeleteSystemFolder = "Le cartelle di sistema non si possono eliminare.",
CannotMoveSystemFolder = "Le cartelle di sistema non si possono spostare.",
FolderCreated = "Cartella creata.",
FolderDeleted = "Cartella eliminata.",
FoldersDeleted = "Eliminate {0} cartelle.",
FolderMoved = "Cartella spostata.",
FoldersMoved = "Spostate {0} cartelle.",
MovedMessages = "Spostati {0} messaggi.",
AlreadyInFolder = "Già in quella cartella.",
FolderEmptied = "Cartella svuotata.",
FolderMarkedRead = "Tutti i messaggi segnati come letti.",
FolderMarkedUnread = "Tutti i messaggi segnati come non letti.",
Cancelled = "Annullato.",
NoSubject = "(nessun oggetto)",
Read = "Letto",
HasAttachments = "Ha allegati",
NoAttachments = "Nessun allegato",
Flagged = "Contrassegnato",
NotFlagged = "Non contrassegnato",
NoDelivery = "Nessuno stato di consegna",
Mailbox = "Casella",
ListReading = "Elenco / lettura",
GmailHintPrefix = "I client OAuth Web richiedono il client secret nel riquadro dedicato (non la password della casella). ",
GmailHintStored = "Un client secret è già salvato.",
GmailHintPaste = "Incolla il client secret da Google Cloud → Credentials, poi Accedi.",
GmailHintImap = " Abilita IMAP nelle impostazioni Gmail.",
OutlookHintGuid = "Incolla l’ID applicazione Azure di Postclient (un GUID).",
OutlookHintNamed = "Microsoft mostrerà la registrazione app per {0}.",
OutlookHintPasswords = " La maggior parte degli account Outlook e Microsoft 365 rifiuta le password.",
PecHint = "Le caselle IMAP certificate usano la password del gestore (o una password per app se c’è il 2FA). Il nome utente è di solito l’indirizzo completo; Legalmail può usare lo User ID InfoCert. AR24, De-Mail, IncaMail e Lleida non sono IMAP: scegli IMAP / POP3 se il gestore ti ha dato gli host.",
CertifiedKind = "Tipo di casella",
CertifiedKindHint = "Scegli PEC o REM se questa casella IMAP è di un gestore certificato, anche con dominio personalizzato. Gmail e Outlook sono sempre posta ordinaria.",
CertifiedOrdinary = "Posta ordinaria",
CertifiedPec = "PEC italiana",
CertifiedRem = "REM UE"
};
}