diff --git a/web/index.html b/web/index.html
index dcfc8ae..6615088 100644
--- a/web/index.html
+++ b/web/index.html
@@ -3798,7 +3798,7 @@
installStarwindPlugin:'Install plugin on all nodes',installStarwindPluginHint:'Installs starwind-proxmox-plugin from the signed StarWind apt repo on every node.',starwindInstallFailed:'Plugin install failed',alreadyInstalled:'already installed',starwindThirdPartyNote:'StarWind LVM is a third-party product by StarWind Software, not part of PegaProx. PegaProx gives no support or warranty for it — for problems, contact StarWind directly:',// MK 2026-06-11 — i18n backfill (Nico): keys referenced via t('x')||'fallback'
// that were never defined, so t() echoed the raw key. Values = the JSX fallback
// text. en map only; other languages fall back here via t() (German = later pass).
-acmeDirectoryUrl:'ACME Directory URL',acmeDirectoryUrlHint:'ACME directory endpoint of your CA (must be HTTPS)',acmeEmailOptionalHint:'Optional for custom ACME servers',acmeProvider:'ACME Provider',acmeProviderCustom:'Custom ACME CA',addClustersToGroup:'Assign clusters to this group to see them here',addPbsServer:'Add Backup Server',addEsxiServer:'Add ESXi Server',addVmwareServer:'Add VMware',liveUpdatesActive:'Live updates active',pollingMode:'Polling mode',live:'Live',polling:'Polling',alias:'Alias',allClear:'All systems operational',allUsersUnlocked:'All users unlocked',apiPort:'Proxmox API Port',apiPortHint:'Default 8006. Override only if PVE listens on a non-standard port. Direct TLS only — no reverse-proxy support.',nodeUiSuffix:'Node URL suffix',nodeUiSuffixHint:'Optional. "Open in Proxmox" node links use .:8006 (e.g. pve01.example.local). Empty = use the node IP.',authentication:'Authentication',autoVerify:'Auto Verify',backupJobUpdated:'Backup job updated',bootOrderHint:'Click to toggle, use arrows to reorder',browser:'Browser',cephMonCreated:'Ceph monitor created',cephMonDeleted:'Ceph monitor deleted',cephPoolDeleted:'Ceph pool deleted',changesReverted:'Changes reverted',checkFailed:'Check failed',clear:'Clear',cloneStarted:'Clone started',color:'Color',command:'Command',confirmDeleteScript:'Delete this script? It will be permanently removed after 20 days.',consolePct:'xterm terminal (PVE termproxy)',consoleVnc:'VNC graphical console',createCluster:'Create Cluster',custom:'Custom',date:'Date',deleteSnapshot:'Delete snapshot',disableMaintenance:'Disable maintenance',diskFormat:'Format',diskFormatLockedHint:'This storage type only supports one format.',dismissUpdate:'Dismiss',download:'Download',downloadTemplates:'Download Container Templates',downloadTo:'Download to',editBackupJob:'Edit Backup Job',editRole:'Edit Role',editScript:'Edit Script',enforceHint:'Block migrations that violate rule',enterPassword:'Enter your password',enterServerFirst:'Please enter server/portal address first',errorPerformingUpdate:'Error performing update',errorRollback:'Error performing rollback',errors:'Errors',exitFullscreen:'Exit fullscreen',failedToLoad:'Failed to load IP whitelist configuration.',failedToUnlockAllUsers:'Failed to unlock all users',failedToUnlockUser:'Failed to unlock user',filename:'Filename',files:'Files',filter:'Filter',filterIso:'Filter ISOs…',firewallRuleCreated:'Firewall rule created',fullscreen:'Fullscreen',group:'Group',groupId:'Group ID',groupInfo:'Group Information',groupNotes:'Group Notes',groups:'Groups',include:'Include',interfaceCreated:'Interface created',interfaceUpdated:'Interface updated',invalidPassword:'Invalid password',invalidStorageId:'Storage ID must start with a letter and contain only letters, numbers, -, _, .',lastSeen:'Last seen',learnMore:'Learn more about Proxmox SDN',loadingSnapshots:'Loading snapshots...',local:'Local',lockedUsers:'Locked Users',lockedUsersDesc:'Accounts locked due to too many failed login attempts from any IP address.',log:'Log',logOnlyHint:'No channels selected — the alert will only be logged.',maintenanceModeEnabled:'Maintenance mode enabled',manufacturer:'Manufacturer',migrationsStarted:'migrations started',missingFields:'Missing required fields',mode:'Mode',more:'more',moveStarted:'Move started',needTwoClusters:'At least 2 clusters needed for cross-cluster replication',networkChangesApplied:'Network changes applied',noClustersConnected:'No clusters connected',noClustersInGroup:'No clusters in this group',noDescription:'No description',noFilesFound:'No ISOs or templates found on any node.',noLockedUsers:'No locked accounts',noOtherNodeForRepl:'No other node available in this cluster. For replication across clusters, open the VM → Configure → Replication → Cross-Cluster tab.',noResources:'No VMs to export',noTargetsFound:'No targets found',noTemplatesAvailable:'No templates available',noWebhooksConfigured:'No webhook channels configured. Add some in Settings → Alerts.',notRecommended:'NOT RECOMMENDED',notifyVia:'Notify via',optionalName:'Optional name',optionsSaved:'Options saved',packageListRefreshStarted:'Package list refresh started',passwordRequired:'Password required',pasteClipboard:'Paste from clipboard',pbsSshHint:'SSH is only used for the Update Manager (apt dist-upgrade). If left blank, PegaProx falls back to the PBS web password. Use a dedicated key if your PBS has password-login disabled.',poolName:'Pool name...',presets:'Quick Presets',processing:'Processing...',rebootAfter:'Reboot after update',rebootWarning:'This will reboot the node. All VMs will be affected.',released:'Released',restart:'Restart',restore:'Restore',resume:'Resume',saved:'Saved successfully',scheduleUpdated:'Schedule updated',scriptMarkedForDeletion:'Script marked for deletion (20 days)',searchTemplates:'Search templates...',selectNodeFirst:'Select a node first',serialNumber:'Serial Number',shell:'Shell',showingUsers:'Showing',shutdownWarning:'This will shut down the node.',simulation:'Simulation',startingMaintenanceMode:'Maintenance mode',step:'Step',storageCreated:'Storage created successfully',storageIdRequired:'Storage ID is required',storages:'storages',successful:'successful',suspend:'Suspend',sync:'Sync',templatesAvailable:'templates available',unlockAllUsersConfirm:'Unlock all users?',unlockVmConfirm:'Unlock this VM?',updatePbsServer:'Update this PBS Server',updatePrepared:'Update prepared! Check instructions below.',uploadFile:'Upload File',useVMwareMigration:'Use ESXi → Migration Wizard',userProfile:'Profile',vms:'VMs',vnet:'VNet',willBeInstalled:'will be installed via SSH + apt dist-upgrade.',zone:'Zone',// MK May 2026 — PVE 9.2 CRS + token rotate + OIDC audiences strings
+acmeDirectoryUrl:'ACME Directory URL',acmeDirectoryUrlHint:'ACME directory endpoint of your CA (must be HTTPS)',acmeEmailOptionalHint:'Optional for custom ACME servers',acmeProvider:'ACME Provider',acmeProviderCustom:'Custom ACME CA',addClustersToGroup:'Assign clusters to this group to see them here',addPbsServer:'Add Backup Server',addEsxiServer:'Add ESXi Server',esxiHostsTab:'Hosts',esxiNetworksTab:'Networks',esxiClustersTab:'Clusters',esxiTasksEventsTab:'Tasks & Events',esxiConnectionLost:'Connection lost',esxiSessionExpiredDataStale:'Session expired - data may be stale',esxiReconnect:'Reconnect',esxiSearchVms:'Search VMs...',esxiLoadingVms:'Loading VMs...',esxiGuestOs:'Guest OS',esxiCpus:'CPUs',esxiMemory:'Memory',resetVm:'Reset',esxiNoVmsFound:'No virtual machines found',backToVmList:'Back to VM List',vmwareConsoleVmrc:'Console (VMRC)',vmwareMigrationTab:'Migration',vcpus:'vCPUs',vmInformation:'VM Information',vmId:'VM ID',hardwareVersion:'Hardware Version',guestTools:'Guest Tools',vmwareToolsShort:'Tools',powerState:'Power State',vmwareToolsNotInstalled:'Not installed',vmwareToolsNotRunning:'Not running',vmwareToolsCurrent:'Current',vmwareToolsOutdated:'Out of date',vmwarePowerOn:'ON',vmwarePowerOff:'OFF',vmwarePowerSuspended:'SUSPENDED',stopFirst:'stop first',thinProvisioned:'Thin provisioned',noDisksFound:'No disks found',networkAdapters:'Network Adapters',vmPoweredOnConfigWarning:'VM is powered on - some changes (CPU, Memory) may require the VM to be powered off or need hot-add enabled.',computeResources:'Compute Resources',cpuCoresUnit:'cores',memoryMb:'Memory (MB)',cpuHotAdd:'CPU Hot-Add',memoryHotAdd:'Memory Hot-Add',vmDescriptionNotesPlaceholder:'VM description / notes...',networkPxe:'Network (PXE)',resetBootOrderDefault:'Reset to default (Disk → CD → Network)',currentNetwork:'Current Network',livePerformance:'Live Performance',memoryUsed:'Memory Used',diskUsed:'Disk Used',resetChanges:'Reset',saveChanges:'Save Changes',hardwareOverviewReadOnly:'Hardware overview (read-only). Use the Settings tab to change CPU, Memory, and Network.',currentConfiguration:'Current Configuration',virtualCpus:'Virtual CPUs',ramAllocation:'RAM allocation',diskProvisioningThin:'Thin',diskProvisioningThick:'Thick',hardwareDetails:'Hardware Details',firmware:'Firmware',diskBus:'Disk Bus',hardwareVersionShort:'HW Version',noSnapshotsCreateHint:'No snapshots. Create one to save the current VM state.',addVmwareServer:'Add VMware',liveUpdatesActive:'Live updates active',pollingMode:'Polling mode',live:'Live',polling:'Polling',alias:'Alias',allClear:'All systems operational',allUsersUnlocked:'All users unlocked',apiPort:'Proxmox API Port',apiPortHint:'Default 8006. Override only if PVE listens on a non-standard port. Direct TLS only — no reverse-proxy support.',nodeUiSuffix:'Node URL suffix',nodeUiSuffixHint:'Optional. "Open in Proxmox" node links use .:8006 (e.g. pve01.example.local). Empty = use the node IP.',authentication:'Authentication',autoVerify:'Auto Verify',backupJobUpdated:'Backup job updated',bootOrderHint:'Click to toggle, use arrows to reorder',browser:'Browser',cephMonCreated:'Ceph monitor created',cephMonDeleted:'Ceph monitor deleted',cephPoolDeleted:'Ceph pool deleted',changesReverted:'Changes reverted',checkFailed:'Check failed',clear:'Clear',cloneStarted:'Clone started',color:'Color',command:'Command',confirmDeleteScript:'Delete this script? It will be permanently removed after 20 days.',consolePct:'xterm terminal (PVE termproxy)',consoleVnc:'VNC graphical console',createCluster:'Create Cluster',custom:'Custom',date:'Date',deleteSnapshot:'Delete snapshot',disableMaintenance:'Disable maintenance',diskFormat:'Format',diskFormatLockedHint:'This storage type only supports one format.',dismissUpdate:'Dismiss',download:'Download',downloadTemplates:'Download Container Templates',downloadTo:'Download to',editBackupJob:'Edit Backup Job',editRole:'Edit Role',editScript:'Edit Script',enforceHint:'Block migrations that violate rule',enterPassword:'Enter your password',enterServerFirst:'Please enter server/portal address first',errorPerformingUpdate:'Error performing update',errorRollback:'Error performing rollback',errors:'Errors',exitFullscreen:'Exit fullscreen',failedToLoad:'Failed to load IP whitelist configuration.',failedToUnlockAllUsers:'Failed to unlock all users',failedToUnlockUser:'Failed to unlock user',filename:'Filename',files:'Files',filter:'Filter',filterIso:'Filter ISOs…',firewallRuleCreated:'Firewall rule created',fullscreen:'Fullscreen',group:'Group',groupId:'Group ID',groupInfo:'Group Information',groupNotes:'Group Notes',groups:'Groups',include:'Include',interfaceCreated:'Interface created',interfaceUpdated:'Interface updated',invalidPassword:'Invalid password',invalidStorageId:'Storage ID must start with a letter and contain only letters, numbers, -, _, .',lastSeen:'Last seen',learnMore:'Learn more about Proxmox SDN',loadingSnapshots:'Loading snapshots...',local:'Local',lockedUsers:'Locked Users',lockedUsersDesc:'Accounts locked due to too many failed login attempts from any IP address.',log:'Log',logOnlyHint:'No channels selected — the alert will only be logged.',maintenanceModeEnabled:'Maintenance mode enabled',manufacturer:'Manufacturer',migrationsStarted:'migrations started',missingFields:'Missing required fields',mode:'Mode',more:'more',moveStarted:'Move started',needTwoClusters:'At least 2 clusters needed for cross-cluster replication',networkChangesApplied:'Network changes applied',noClustersConnected:'No clusters connected',noClustersInGroup:'No clusters in this group',noDescription:'No description',noFilesFound:'No ISOs or templates found on any node.',noLockedUsers:'No locked accounts',noOtherNodeForRepl:'No other node available in this cluster. For replication across clusters, open the VM → Configure → Replication → Cross-Cluster tab.',noResources:'No VMs to export',noTargetsFound:'No targets found',noTemplatesAvailable:'No templates available',noWebhooksConfigured:'No webhook channels configured. Add some in Settings → Alerts.',notRecommended:'NOT RECOMMENDED',notifyVia:'Notify via',optionalName:'Optional name',optionsSaved:'Options saved',packageListRefreshStarted:'Package list refresh started',passwordRequired:'Password required',pasteClipboard:'Paste from clipboard',pbsSshHint:'SSH is only used for the Update Manager (apt dist-upgrade). If left blank, PegaProx falls back to the PBS web password. Use a dedicated key if your PBS has password-login disabled.',poolName:'Pool name...',presets:'Quick Presets',processing:'Processing...',rebootAfter:'Reboot after update',rebootWarning:'This will reboot the node. All VMs will be affected.',released:'Released',restart:'Restart',restore:'Restore',resume:'Resume',saved:'Saved successfully',scheduleUpdated:'Schedule updated',scriptMarkedForDeletion:'Script marked for deletion (20 days)',searchTemplates:'Search templates...',selectNodeFirst:'Select a node first',serialNumber:'Serial Number',shell:'Shell',showingUsers:'Showing',shutdownWarning:'This will shut down the node.',simulation:'Simulation',startingMaintenanceMode:'Maintenance mode',step:'Step',storageCreated:'Storage created successfully',storageIdRequired:'Storage ID is required',storages:'storages',successful:'successful',suspend:'Suspend',sync:'Sync',templatesAvailable:'templates available',unlockAllUsersConfirm:'Unlock all users?',unlockVmConfirm:'Unlock this VM?',updatePbsServer:'Update this PBS Server',updatePrepared:'Update prepared! Check instructions below.',uploadFile:'Upload File',useVMwareMigration:'Use ESXi → Migration Wizard',userProfile:'Profile',vms:'VMs',vnet:'VNet',willBeInstalled:'will be installed via SSH + apt dist-upgrade.',zone:'Zone',// MK May 2026 — PVE 9.2 CRS + token rotate + OIDC audiences strings
crsHeader:'Cluster Resource Scheduling (CRS)',crsHaRebalanceOnStart:'HA Rebalance on Start',crsHaRebalanceOnStartHint:'Auto-rebalance HA resources when a node comes online',crsSchedulingMode:'CRS Scheduling Mode',crsSchedulingModeRemoved:'Removed from schema in PVE 9.2 — backend silently drops the field on 9.2+ clusters so the rest of the form still saves.',crsAutoRebalanceTuning:'Auto-Rebalance tuning',crsAutoRebalance:'Auto-Rebalance',crsAutoRebalanceOn:'Enabled — CRS rebalances HA resources continuously',crsAutoRebalanceOff:'Disabled (PVE default)',crsMethod:'Method',crsThreshold:'Threshold (%)',crsThresholdHint:'Imbalance threshold before CRS acts. Lower = more aggressive.',crsMargin:'Margin (%)',crsMarginHint:'Required improvement margin to justify a move.',crsHoldDuration:'Hold Duration (cycles)',crsHoldDurationHint:'CRM cycles a VM stays pinned after being placed.',crsCardTitle:'CRS & Auto-Rebalance',crsCardSubtitle:'(same config as Datacenter → Options)',revert:'Revert',autoRebalanceClusterDefault:'-- cluster default --',autoRebalanceVmOn:'Enabled — CRS may move this VM',autoRebalanceVmOff:'Disabled — pin to assigned node',rotateApiToken:'Rotate API Token',confirmRotateToken:'Rotate the API token for this cluster?\n\nPVE 9.2: secret is regenerated in-place, ACLs preserved.\nPVE 8.x / 9.0 / 9.1: token is deleted + recreated — any ACL entries on the token will be lost.',tokenRotated:'API token rotated',rotateFailed:'Rotation failed',oidcAudiences:'Accepted Audiences',oidcAudiencesHint:'Additional audience values accepted on the JWT verify alongside the client_id. Useful when one logical audience is shared across multiple deployments.',frameworkCoverageByFamily:'Framework coverage — by family / theme',family:'Family',familyName:'Name',refsCovered:'References covered',pegaproxControls:'PegaProx controls',unmappedControls:'Controls without a direct framework mapping (informational)',rationale:'Note',noDirectMappingNote:'No direct framework reference for this check. Run as defence-in-depth hygiene; not counted toward framework coverage.',intraClusterReplOnlyHint:'This dialog creates replication within the current cluster. For replication across clusters, open the VM → Configure → Replication → Cross-Cluster tab.',certPresentPlaceholder:'(certificate uploaded)',keyPresentPlaceholder:'(private key uploaded)',// MK Apr 2026 — issue #352 follow-up: audit-report translations completed
cmAideAuditProtect:'AIDE protects /var/log/audit',cmApparmor:'AppArmor enabled + enforced',cmAptShowVersions:'apt-show-versions installed',cmAuditBoot:'auditd boot enabled',cmAuditImmutable:'auditd immutable mode',cmAuditRules:'auditd rules loaded',cmAuditdService:'auditd service enabled',cmBackupDns:'Backup DNS resolver configured',cmCoreDumps:'Disable core dumps',cmCronHardening:'cron/at restricted',cmDebsums:'debsums package integrity',cmDefaultUmask:'Default umask 027',cmDisableServices:'Unused services disabled',cmFileIntegrity:'AIDE file integrity DB',cmFilePerms:'Critical file permissions',cmFsModules:'Disable unused kernel modules',cmInactiveAccounts:'Inactive account expiry',cmJournald:'journald persistent + compressed',cmLoginBanners:'Login banners (issue.net)',cmMemProtection:'Memory protection (NX/ASLR)',cmMountOptions:'/dev/shm noexec mount options',cmNetProtocols:'Rare network protocols disabled',cmPamFaillock:'PAM faillock (lockout policy)',cmPamTmpdir:'Per-user private /tmp (pam_tmpdir)',cmPkgCleanup:'Unused packages removed',cmPostfixBanner:'Postfix banner does not leak version',cmProcessAcct:'Process accounting (psacct)',cmPveFail2ban:'fail2ban (PVE jail)',cmPwAging:'Password aging policy',cmPwHashRounds:'Password hash rounds (yescrypt)',cmPwHistory:'Password reuse history',cmPwQuality:'Password complexity (pwquality)',cmRemoveLegacy:'Legacy services removed',cmRestrictCompilers:'Compilers root-only',cmSessionLimit:'TMOUT session limits',cmShellTimeout:'Shell timeout',cmSshCrypto:'SSH ciphers + MACs (BSI/CIS)',cmSshPerms:'sshd hardening — config + key/config file permissions (PermitRootLogin, sshd_config 0600, /etc/ssh/* 0600)',cmSysctl:'sysctl network hardening',cmSysstat:'sysstat (sar) collecting',cmUsbStorage:'USB mass storage disabled',cmVsnfdAuditRet:'journald MaxRetentionSec ≥ 6 months',cmVsnfdDiskEnc:'Disk encryption (LUKS / ZFS native)',cmVsnfdJournaldSize:'journald SystemMaxUse ≥ 1G',cmVsnfdKernelLockdown:'Kernel lockdown (integrity/confidentiality)',cmVsnfdPwMin12:'Password minlen ≥ 12 (BSI)',cmVsnfdSecureBoot:'Secure Boot status',forceDeletePlan:'Force-delete this stuck plan?',refresh:'Refresh',consolePreview:'Console preview',loadingPreview:'Loading preview…',syslogServer:'Syslog Server',syslogEnabled:'Syslog receiver',syslogEnabledDesc:'Listen for syslog messages on UDP/TCP port 1514. Disable to close the port if PegaProx does not ingest syslog from your nodes.',syslogClusterFilter:'Cluster-scoped syslog viewer',syslogClusterFilterDesc:'When enabled, the Syslog chapter only shows log rows whose hostname belongs to the selected cluster or one of its nodes.',// General
loading:'Loading...',save:'Save',cancel:'Cancel',ok:'OK',delete:'Delete',edit:'Edit',add:'Add',close:'Close',yes:'Yes',no:'No',enabled:'Enabled',disabled:'Disabled',enable:'Enable',disable:'Disable',actions:'Actions',status:'Status',name:'Name',type:'Type',online:'Online',offline:'Offline',running:'Running',stopped:'Stopped',active:'Active',all:'All',found:'found',id:'ID',cores:'Cores',search:'Search',searchByNameOrId:'Search by name or ID...',searchAllClusters:'Search all clusters...',pressEnterToOpen:'Press Enter to jump to VM',toggleFavorite:'Toggle favorite',results:'results',noResults:'No results',target:'Target',source:'Source',rules:'Rules',default:'Default',none:'None',of:'of',since:'Since',uptime:'Uptime',sinceStart:'Since Start',osVersion:'OS Version',guestAgentNotInstalled:'QEMU Guest Agent not installed',guestAgentInstallHint:'Install qemu-guest-agent to display hostname, OS and kernel info',// LW: Feb 2026 - Corporate VM Detail View
@@ -3905,7 +3905,7 @@
mountPath:'挂载路径',mountPathHint:'容器内挂载此卷的绝对路径(例如 /data)。',mountPathRequired:'请输入容器内的绝对挂载路径(例如 /data)',usedSpace:'已用',resize:'调整大小',remove:'移除',editDiskType:'更改总线类型',changeDiskBusType:'更改磁盘总线类型',vmIsRunning:'VM 正在运行',vmMustBeStopped:'VM 必须停止回滚',vmMustBeStoppedForBusChange:'更改磁盘总线类型之前必须停止 VM。请先关闭VM。',currentDisk:'当前',diskBusWarning:'更改总线类型需要停止 VM。客户机操作系统可能需要驱动程序更新。',selectNewBusType:'选择新的巴士类型',scsiDesc:'使用 VirtIO SCSI 控制器获得最佳性能',virtioDesc:'传统 VirtIO,性能良好',sataDesc:'兼容性好,性能适中',ideDesc:'最大兼容性,最低性能',current:'当前',changeBusType:'更改总线类型',saving:'正在保存...',diskBusChanged:'磁盘总线类型已更改',optionsWillBeRemoved:'以下选项不受支持并将被删除',noDisksConfigured:'没有配置磁盘',unusedDisks:'未使用的磁盘',unusedDisksDesc:'这些磁盘已分离但仍然存在。您可以重新附加或删除它们。',reattach:'重新连接',reattachDisk:'重新连接磁盘',selectBusType:'选择总线类型',diskId:'磁盘ID',nextAvailableId:'所选总线类型的下一个可用 ID',diskOptions:'磁盘选项',ideLimitedOptions:'IDE 的可用选项有限',attaching:'正在附加...',volume:'卷',diskReattached:'磁盘重新连接',deleteUnusedDiskConfirm:'永久删除磁盘?这无法撤销!',unusedDiskDeleted:'未使用的磁盘已删除',configLoadError:'无法加载配置',networking:'网络',networkOverview:'网络概况',noNetworkData:'无可用网络数据',bridgePorts:'网桥端口',connectedVms:'连接的虚拟机',noVmsOnBridge:'未分配虚拟机',presentOnNodes:'存在于节点上',addNetwork:'添加网络',noNetworksConfigured:'未配置网络',networkDisconnected:'网络断开',disconnectNetwork:'断开网络',disconnectNetworkHint:'模拟未插入的网络电缆',connectNetwork:'连接网络',createSnapshot:'创建快照',unknown:'未知',noSnapshots:'没有找到快照',createReplication:'创建复制',replicationNeedsTwoNodes:'复制需要集群中至少有2个节点',replicationHint:'创建复制作业以保持 VM 数据在节点之间同步',addReplication:'新增',confirmDeleteReplication:'删除此复制作业吗?',replicationInfoTitle:'VM 复制',replicationInfoDesc:'保持节点之间 VM 数据同步,以实现故障转移和灾难恢复。两种模式可供选择:',zfsNativeDesc:'增量 ZFS 发送/接收。快速高效,两个节点上都需要 ZFS。',snapshotDesc:'克隆+迁移方法。适用于任何存储(LVM、目录等)。',anyStorage:'任何存储',snapshotReplNote:'创建 VM 的完整克隆并将其迁移到目标节点。每次运行时都会替换以前的副本。',noSnapshotReplJobs:'没有快照复制作业',nativeProxmoxReplication:'原生 Proxmox 复制 (ZFS)',pending:'待处理',zfsReplicationTitle:'ZFS 小型集群复制',zfsReplicationDesc:'ZFS复制使用增量快照来保持节点之间的数据同步。非常适合 Ceph 不实用的 2 节点集群。需要源节点和目标节点上都有 ZFS 存储。',zfsRequired:'源节点和目标节点都必须使用 ZFS 存储来存储复制的 VM 磁盘。',everyMinute:'每分钟',every5Min:'每5分钟一班',every15Min:'每15分钟一班',every30Min:'每30分钟一班',everyHour:'每小时',every6Hours:'每 6 小时',lastSync:'上次同步',neverSynced:'从未同步过',syncNow:'立即同步',protection:'保护(防止删除/修改)',kvmVirtualization:'KVM硬件虚拟化',unprivilegedContainer:'无特权的容器',other:'其他',hotplug:'热插拔',hotplugHint:'VM 运行时可以添加的设备',hotplugDisk:'磁盘',hotplugNetwork:'网络',hotplugUsb:'USB',hotplugMemory:'内存',hotplugCpu:'CPU',qemuGuestAgent:'QEMU 客户机代理',qemuGuestAgentHint:'启用快照的关闭、冻结/解冻',fstrim:'克隆/迁移后的 FSTRIM',fstrimHint:'克隆后自动运行TRIM',snapshotDescription:'快照描述...',saveRamState:'保存RAM状态(休眠)',spaceEfficientSnapshot:'节省空间的快照',spaceEfficientSnapshots:'节省空间的快照',snapshotMode:'快照模式',normalMode:'标准(Proxmox)',efficientMode:'节省空间 (LVM COW)',spaceSavings:'节省空间',normalSnapshotSize:'普通快照',efficientSnapshotSize:'节省空间',guestAgentDetected:'检测到客户机代理(文件系统将被冻结)',noGuestAgent:'未检测到客户机代理(快照时不会冻结文件系统)',managedByPegaprox:'由 PegaProx 管理(在 Proxmox 中不可见)',snapshotUsage:'快照使用',snapshotOverflow:'快照几乎已满!',snapshotInvalidated:'快照丢失——原始数据安全',efficientSnapshotCreated:'创建节省空间的快照',efficientSnapshotDeleted:'已删除节省空间的快照',efficientSnapshotRollback:'回滚开始',cowSnapshot:'COW',fsFrozen:'文件系统已冻结',snapshotSizeGb:'快照大小 (GB)',create:'创建',comment:'备注',commentPlaceholder:'例如灾难恢复复制',every5min:'每5分钟一班',every15min:'每15分钟一班',every30min:'每30分钟一班',every2hours:'每2小时一次',every4hours:'每4小时一次',every6hours:'每 6 小时',every12hours:'每12小时一次',editNetwork:'编辑网络',viommu:'vIOMMU(虚拟化 IOMMU)',viommuInfo:'嵌套虚拟化和某些直通场景所需',ballooningMinimum:'最小 Ballooning 内存',swap:'Swap',machineTypePlaceholder:'例如q35 或 i440fx(空=默认)',compatible:'兼容',cache:'缓存',noCache:'无缓存',unsafe:'不安全',fastest:'最快',discard:'丢弃',ioThread:'IO 线程',ssdEmulation:'SSD 仿真',branding:'品牌设置',appName:'应用程序名称',customLogo:'自定义标志',logoHint:'建议使用 PNG、SVG 或 GIF。最大 500KB。',logoUploaded:'徽标已上传',logoUploadFailed:'徽标上传失败',logoDeleted:'徽标已删除',loginBackground:'登录背景',loginBackgroundDesc:'上传登录屏幕的自定义背景。最大 2MB。',loginBackgroundUploaded:'背景已上传',loginBackgroundTooLarge:'登录背景图片必须小于2MB',loginBackgroundDeleted:'背景已移除',removeBackground:'删除背景',upload:'上传',thanksToSponsors:'感谢我们的赞助商',sponsorSubtitle:'支持开源开发',becomeSponsor:'成为赞助商',sponsorNagTitle:'帮助 PegaProx 活下来💛',sponsorNagBody:'PegaProx 是一个充满激情的项目——我们自掏腰包购买服务器、域名和所有开发时间。如果这个工具可以节省您的时间并且您可以抽出一点时间,我们将非常感谢您在 Open Collective 上提供建议。每一份贡献,无论大小,都会让灯一直亮着!',sponsorNagCta:'在 Open Collective 上支持我们',sponsorNagDismiss:'也许稍后',sponsorNagSnooze90:'90 天内不再显示',madeWithLove:'用 ❤️ 为 Proxmox 社区制作',settingsSaved:'设置已保存',saveError:'保存时出错',dnsSaved:'DNS 已保存',hostsSaved:'主机已保存',searchDomain:'搜索域',dnsServer:'DNS 服务器',time:'时间',timezone:'时区',localTime:'本地时间',sslCertificates:'SSL 证书',uploadCustomCert:'上传自定义证书',issuer:'签发者',valid:'有效',expired:'已过期',noCertificates:'没有找到证书',certificate:'证书',privateKey:'私钥',certChainHint:'可以包含多个证书(链)',restartPveproxyAfterUpload:'上传后重启pveproxy',certAndKeyRequired:'需要证书和密钥',certUploaded:'证书已上传!',uploadCertificate:'上传证书',deleteCertConfirm:'删除自定义证书并恢复为自签名?',certDeleted:'证书已删除',deleteCustomCert:'删除自定义证书',syslogLatest:'Syslog(最新条目)',datastores:'数据存储',esxiHosts:'ESXi 主机',connectEsxi:'连接ESXi主机',esxiHostname:'ESXi 主机名/IP',esxiUsername:'用户名',esxiPassword:'密码',esxiConnected:'ESXi 已连接',esxiVms:'ESXi 虚拟机',migrateToProxmox:'迁移到 Proxmox',esxiMigrationHint:'PegaProx 自动处理 ESXi 电源状态',esxiMigrating:'导入正在进行中...',esxiMigrationStarted:'导入开始',v2pSupportNote:'只有您的支持,我们才能保持此功能免费。',v2pSupportAck:'明白了——我会记住这一点。',v2pSupportAckRequired:'请确认上面的注释',installVirtioDrivers:'前置 VirtIO 驱动程序 (Windows)',installVirtioDriversDesc:'将 virtio-win-gt-x64.msi 暂存到磁盘上,并在首次启动时将完整的驱动程序堆栈(存储、网络、气球、qemu-ga)静默安装为 LocalSystem。当源 VM 尚无驱动程序时,尽力回退。需要目标节点上有 virtio-win.iso。',virtioPreInstallWarnTitle:'在迁移之前更好地安装驱动程序',virtioPreInstallWarnBody:'将 virtio-win.iso 加载到 VMware 上正在运行的源 VM 中,将其作为 CD 装载并运行 virtio-win-guest-tools.exe — 然后进行迁移。我们的离线注入是尽力而为:Windows 11 / Server 2025 在早期启动期间无法可靠地绑定 vioscsi(Proxmox/QEMU 限制),因此启动磁盘必须保留在 pvscsi 上。迁移前安装了驱动程序的虚拟机可以在迁移后干净地切换到 virtio-scsi。',fixQemuArgs:'修复 QEMU args(磁盘总线更改后)',fixQemuArgsConfirm:'这会将自定义 QEMU args (args:) 写入 VM 配置,以在总线更改后修复磁盘扇区大小。注意:携带自定义参数的虚拟机无法再由 Proxmox 进行实时或跨集群迁移。继续?',virtioIsoPath:'节点上的 virtio-win.iso 路径',virtioSshfsBootWarn:'实时镜像模式会在磁盘稳定之前启动 VM — 脱机驱动程序注入会损坏正在运行的 NTFS。这里跳过预演。使用offline / auto / snapshot_zero进行预阶段,或者在启动后从安装的virtio-win.iso安装驱动程序。',disableNoiseOverlay:'禁用噪声叠加',disableNoiseOverlayDesc:'消除现代布局上微妙的抖动纹理',complianceSettings:'合规性与强化',auditRetention:'审计日志保留(天)',auditRetentionHint:'BSI IT-Grundschutz 建议 ≥ 180 天。 NIS2 / KRITIS 通常需要 365+。默认值:90。',airGapMode:'气隙模式',airGapModeDesc:'禁用更新检查和外部 CVE 查找。适用于禁止出站 HTTP 的 VS-NfD/分类网络。 (OpenCollective 链接和赞助商徽标保持可见。)',airGapModeActive:'活动 — PegaProx 将不会联系外部服务。 OIDC 针对公共 IdP 的自动发现可能会中断;将发现 URL 固定到内部端点。',complianceDashboard:'合规仪表板',complianceDashboardHint:'所有集群的只读审计视图。管理操作位于“设置”→“合规性”下。',overallScore:'总分',controls:'控制项',auditActivity:'最近的审计活动',lastEntries:'最后 200 条记录',openSettingsCompliance:'打开设置 → 合规性',complianceProfileNote:'简介:',regionEU:'EU/DACH 框架',regionUS:'美国国防部/联邦框架',downloadReport:'下载报告(PDF)',complianceReport:'合规报告',coverageSummary:'覆盖范围摘要',property:'属性',value:'值',framework:'框架',region:'区域',overallCoverage:'总体覆盖率',controlsEvaluated:'已评估控制项',generatedAt:'生成于',tool:'工具',disclaimer:'免责声明',note:'备注',disclaimerLine1:'该报告是根据自动审计检查进行的尽最大努力的技术覆盖率分析。',disclaimerLine2:'它不是针对 {fw} 的正式认证、认可或证明。',disclaimerLine3:'正式合规性需要每个控制、第三方审计和(如果适用)认证的加密模块的书面证据。',disclaimerLine4:'用作差距分析输入。在提交任何审计可交付成果之前,根据当前框架修订版重新验证映射。',execSummaryPerNode:'执行摘要 - 每个节点的覆盖范围',passed:'通过',coverage:'覆盖范围',otherCrossCutting:'其他/跨领域',fullySatisfied:'完全满足',ref:'参考号',controlTitle:'控制项标题',internalCheck:'内部检查',noDirectMapping:'没有直接映射',appendixBRemediation:'附录 B — 补救措施',failedControl:'未通过的控制项',failedControls:'未通过的控制项',affectedNodes:'受影响的节点',recommendedAction:'建议操作',howToFix:'如何修复',useHardeningTool:'使用 PegaProx 安全加固工具应用',appendixAMethodology:'附录 A——方法论',topic:'主题',dataSource:'数据来源',dataSourceDesc:'每个集群节点上 SSH 上的每节点 check_node_hardening()。内部检查 ID 通过 PegaProxcompliance_mapping.py 映射到框架引用。',passFailDef:'通过/失败定义',passFailDefDesc:'PASS = 配置的检查返回了预期的输出。 FAIL = 任何其他情况,包括缺少所需的配置。',dashEntries:'“—”条目',dashEntriesDesc:'检查不是所选强化配置文件的一部分,或者未在该节点上运行(例如,SSH 无法访问)。视为“未评估”。',multiMapping:'1:N 映射',multiMappingDesc:'单个内部检查可能映射到多个框架控件(例如 ssh_crypto 涵盖 IA.L2-3.5.10 和 SC.L2-3.13.11)。列出所有映射的参考。',limitations:'限制',limitationsDesc:'仅技术配置。框架控制还包括策略、培训、物理安全、IR 和记录程序——此处未评估。',complianceMappingLoadFail:'无法加载合规性映射',complianceAssessmentReport:'合规评估报告',subjectOrg:'主题',frameworkRevision:'框架修订',hardeningProfile:'安全加固配置',reportingPeriod:'报告期',classification:'分类',classificationInternal:'内部使用——审计工作底稿',generatedBy:'生成者',reportTool:'报告工具',generatingReport:'生成审计报告——获取证据...',reportReady:'报告准备就绪',executiveSummary:'执行摘要',compliancePosture:'合规姿态',postureNarrative:'合规状况说明',totalControlsEvaluated:'评估的总体控制措施',highSeverityCoverage:'高严重性覆盖范围',mediumSeverityCoverage:'中等严重程度的覆盖范围',lowSeverityCoverage:'低严重性覆盖范围',informationalCoverage:'信息类项目',topFindings:'主要发现 — 最高优先级',priority:'#',scopeOfAssessment:'评估范围',inScopeCluster:'范围内集群',inScopeNodes:'范围内节点',frameworkSource:'框架源码',frameworkNote:'框架说明',controlSetSize:'控制集大小',sampling:'取样',outOfScope:'超出范围',outOfScopeText:'本报告未评估管理策略、人员安全、物理安全、事件响应、供应链风险和加密模块验证 (FIPS 140-3)。',methodology:'方法论',criteria:'标准',findingsBySeverity:'检查结果摘要——按严重程度',checked:'已检查',findingsPerNode:'检查结果——按节点覆盖情况',timeline:'时间轴',appendixCEvidence:'附录 C——证据',observations:'观察',checkCommand:'检查命令',expected:'预计',observed:'观察到',appendixDGlossary:'附录 D — 术语表',term:'期限',definition:'定义',pegaproxControl:'PegaProx 控制项',cmPamPasswordRepair:'修复PAM密码堆栈(恢复)',stableVncMode:'稳定的VNC模式',stableVncModeDesc:'将 VNC 帧封装在 AES-256-GCM 中。如果您的网络具有干扰 VNC 控制台的 HTTPS 检查(CrowdStrike、Palo Alto、Zscaler...),请启用。',stableVncModeNote:'接下来VNC连接使用加密隧道',pegaPamRepairDesc:'检测到损坏的 /etc/pam.d/common-password,其中使用 use_authtok 插入了 pam_pwhistory.so,但其前面没有 pam_pwquality.so。修复:如果安装了 libpam-pwquality,则在 pwhistory 之前插入 pam_pwquality.so,否则删除 use_authtok,以便 pwhistory 自行提示。带时间戳的备份保存为 common-password.bak.repair-。幂等——在健康的系统上重新运行是无操作的。',pegaPamRepairImpact:'对健康系统没有影响。恢复在被破坏的系统上更改密码的能力。',hardeningUiHint:'操作员注意:“PegaProx 控制”列中的值与“设置”→“合规性”→“强化 PVE 节点”中的复选框名称匹配。要修复,请选择该名称的失败控件,然后单击“应用所选”。',endOfReportNote:'报告结束。有关这些检查结果的使用限制,请参阅本文档顶部的免责声明。',hardenProfileAll:'所有控制项',hardenProfileHint:'按合规性框架过滤控制。所有控件 = 完整 CIS+Lynis+STIG+PegaProx 集。',informational:'信息',vsnfdInformational:'仅供参考——不自动应用',vsnfdDiskEnc:'磁盘加密(LUKS / ZFS 本机)',vsnfdDiskEncDesc:'报告根/数据卷是否使用 LUKS 或 ZFS 本机加密。仅审计 — 必须在安装时配置。',vsnfdAuditRet:'日记保留≥6个月',vsnfdAuditRetDesc:'检查日志 MaxRetentionSec 设置为至少 6 个月。 BSI 要求审计日志保留 ≥ 180 天。',vsnfdJournaldSize:'日志系统最大使用 ≥ 1G',vsnfdJournaldSizeDesc:'确保journald可以保留足够的日志量以满足保留要求。',vsnfdSecureBoot:'UEFI 启用安全启动',vsnfdSecureBootDesc:'报告固件是否强制执行签名的引导加载程序。无法实时切换 — 必须在固件中启用。',vsnfdLockdown:'内核锁定(完整性/机密性)',vsnfdLockdownDesc:'检查 /sys/kernel/security/lockdown. BSI 建议的“完整性”或“保密性”。在启动时通过内核命令行lockdown=integrity 设置。',vsnfdPwMin12:'密码 minlen ≥ 12 (BSI)',vsnfdPwMin12Desc:'BSI 要求至少 12 个字符的密码(比 CIS-L1 的 8 个字符更严格)。通过 pwquality minlen 配置。',applyingControl:'正在应用…',justApplied:'刚刚应用',queued:'已排队',exemptUsers:'豁免用户',alwaysExempt:'总是豁免',plusOptional:'+ 可选',extraServiceUsers:'监控、备份',storageUnreachable:'无法访问',storageUnreachableShort:'没有数据',storageUnreachableHint:'存储已配置,但无法从此节点访问 - 检查网络/安装/凭据',storageRaw:'原始',storageRawNoUsage:'没有使用统计数据',storageRawHint:'原始块存储(例如,不带 LVM 的 iSCSI、不带 FS 的 RBD)— Proxmox 不报告此类型的使用统计信息',activeOn:'启用于',unreachableFrom:'无法从以下位置到达',viewFromNode:'查看来源',esxiDisconnect:'断开',esxiNoVms:'此 ESXi 主机上没有虚拟机',esxiExperimental:'ESXi 导入使用原生 Proxmox 功能 (PVE 8.1+)',noEsxiHosts:'没有连接 ESXi 主机',fillAllFields:'请填写所有字段',confirmDisconnect:'断开此 ESXi 主机的连接吗?',xhmTitle:'虚拟化平台迁移',xhmDesc:'在 Proxmox 和 XCP-ng 之间迁移虚拟机',xhmDirection:'方向',xhmPveToXcpng:'Proxmox → XCP-ng',xhmXcpngToPve:'XCP-ng → Proxmox',xhmAnalyze:'分析VM',xhmNetworkMapping:'网络映射',xhmEstTransferTime:'预计转乘时间',xhmOfflineOnly:'必须停止VM(离线迁移)',xhmStartMigration:'开始迁移',xhmPvWarning:'PV(半虚拟化)虚拟机无法迁移到KVM',xhmSourceCluster:'源集群',xhmSourceVm:'源 VM',xhmTargetCluster:'目标集群',xhmTargetNode:'目标节点',xhmTargetStorage:'目标存储',xhmNoMigrations:'还没有迁移。从迁移向导启动一个。',xhmStartAfter:'迁移后启动VM',xhmRemoveSource:'完成后删除源VM',sharedStorage:'共享存储',clickStorageToView:'单击存储以查看其内容',storageEmpty:'该存储空间为空',isoSync:'ISO 同步',backupSla:'备份SLA',backupSlaBreachedPct:'违反备份 SLA %',backupSlaCompliancePct:'备份 SLA 合规性%',backupSlaDesc:'定义每个 VM 的备份必须有多新。聚合本地 vzdump + PBS 快照并标记落后的虚拟机。',maxBackupAge:'最大备份期限(小时)',zeroDisables:'0 = 禁用',compliant:'合规',breached:'已超限',noBackup:'无备份',lastBackup:'上次备份',age:'年龄',slaConfigSaved:'已保存备份 SLA 目标',slaConfigSaveFailed:'保存失败',slaDisabledHint:'SLA 跟踪已禁用。设置上面的最大备份期限以开始评估。',slaLoadingPrompt:'单击刷新以加载备份 SLA 数据。',isoSyncDesc:'在所有集群节点上分发 ISO 和模板。对于没有共享文件存储的仅 iSCSI 设置很有用。',syncAll:'同步所有缺失的内容',syncAllStarted:'正在同步所有丢失的文件...',synced:'已同步',autoSync:'上传后自动同步',autoSyncDesc:'上传后自动将新的ISO/模板分发到所有节点',oidcReauthHint:'您已通过 SSO 登录。无需密码 - 您的会话将得到验证。',storageDrsDesc:'自动平衡共享存储之间的磁盘使用',storageUsage:'存储用量',currentImbalance:'当前负载不均衡度',storageBalanced:'所有存储都非常平衡。无需采取任何行动。',experimentalFeature:'实验特性',storageBalancingExperimental:'存储平衡仍处于实验阶段。我们感谢您的反馈!',uploadIso:'上传ISO',downloadFromUrl:'从 URL 下载',fromUrl:'来自网址',isoUrl:'ISO 网址',isoUrlHint:'直接链接到 ISO 文件 (http/https)',autoDetect:'从 URL 自动检测',startingDownload:'开始下载...',downloading:'正在下载...',selectFile:'选择文件',deleteConfirmText:'您确定要删除吗',createStorageCluster:'创建存储集群',noStorageClusters:'未配置存储集群',createStorageClusterHint:'创建集群以平衡多个卷之间的存储',selectClusterToView:'选择存储集群查看均衡状态',balancingThreshold:'平衡阈值',thresholdDesc:'当不平衡超过该值时触发平衡',actionRecommended:'建议操作',balanced:'平衡',storagesInCluster:'集群中的存储',selectStorages:'选择存储',minTwo:'至少 2 个',noSharedStorages:'没有可用的共享存储',confirmDeleteCluster:'删除这个存储集群?',minTwoStorages:'至少需要 2 个存储空间',needTwoStorages:'至少需要2个存储空间',autoBalance:'自动平衡',autoBalanceActive:'自动平衡激活',autoBalanceDesc:'当不平衡超过阈值时,磁盘将自动迁移。具有活动快照/备份的虚拟机将被跳过。',dryRunShort:'试运行',needsRestart:'需要重新启动',createAlert:'创建警报',editAlert:'编辑提醒',alertName:'警报名称',alertMetric:'指标',alertThreshold:'阈值',alertOperator:'条件',alertTarget:'目标',alertTargetType:'目标类型',noAlerts:'没有配置警报',testEmail:'发送测试电子邮件',testEmailSuccess:'测试邮件已发送!',testEmailFailed:'发送测试邮件失败',enterEmailAddress:'请输入电子邮件地址',saveSmtpSettings:'保存 SMTP 设置',smtpSettingsSaved:'SMTP 设置已保存!',enableSmtpHint:'启用 SMTP 以配置电子邮件设置',smtpHostRequired:'需要 SMTP 主机',smtpFromEmailRequired:'发件人电子邮件地址为必填项',emailRecipients:'电子邮件收件人',addRecipient:'添加收件人',scheduledTasks:'计划任务',scheduledTasksDesc:'按计划自动化 VM 操作',createTask:'创建任务',editTask:'编辑任务',taskName:'任务名称',taskAction:'操作',taskSchedule:'计划',scheduleTime:'时间',scheduleDay:'天',noScheduledTasks:'没有计划任务',tagsLabels:'标签和标签',createTag:'创建标签',tagName:'标签名称',tagColor:'颜色',assignedVms:'分配的虚拟机',affinityRules:'亲和性规则',customScripts:'自定义脚本',scriptsDesc:'在集群节点上运行自定义 .sh 或 .py 脚本',newScript:'新脚本',noScripts:'没有配置脚本',scriptsInfo:'创建脚本以跨集群节点自动执行任务',runScript:'运行脚本',runScriptConfirm:'运行这个脚本?',scriptStarted:'脚本执行开始',scriptDeleted:'脚本已删除',scriptCreated:'脚本已创建',scriptUpdated:'脚本已更新',scriptPermissions:'脚本权限',scriptPermissionsDesc:'脚本需要 SSH 访问节点。在集群设置中配置 SSH 密钥。',scriptContent:'脚本内容',targetNodes:'目标节点',scriptWarning:'脚本以 SSH 用户权限运行。运行前确保脚本安全。',passwordRequiredForScripts:'为了安全起见,需要确认密码',viewOutput:'查看输出',hardenNode:'强化PVE节点',hardenDesc:'通过 SSH 将 CIS 基准强化控制应用于各个 PVE 节点。',hardenCisRef:'基于 CIS 基准、Lynis 安全审计和 DoD STIG 指南',lynisRecommendations:'建议',checkStatus:'检查状态',checking:'正在检查...',checkingHardening:'通过 SSH 检查 CIS 控制...',controlsActive:'个控制项已启用',applySelected:'应用所选',securitySelfCheck:'安全自检',securitySelfCheckDisclaimer:'跨 PegaProx 安全设置的内部自检 — 不是正式的 HIPAA 或 ISO 27001 评估、证明或认证。',chargeback:'成本分摊',monthlyEstimate:'每月预估',basedOnLast:'基于最后',noClustersForTenant:'没有分配给该租户的集群。',topVmsByCost:'按成本排名最高的虚拟机',downloadCsv:'下载CSV',quotas:'资源配额',quotaZeroHint:'0 = 无限制',currentUsage:'目前使用情况',maxVms:'最大虚拟机数',maxCores:'最大核心数',maxMemoryGb:'最大 RAM (GB)',quotaEnforcement:'超过时',quotaBlock:'阻止新虚拟机',quotaWarn:'仅警告(允许)',quota:'配额',activeAlerts:'当前警报',acknowledge:'确认',acked:'确认',alertAcked:'警报已确认',escStep:'升级',severityAuto:'自动(按值)',escalationLabel:'升级',escAfter:'之后',addEscStep:'添加升级步骤',cisSshdHardening:'SSH 访问加固',cisSshdHardeningDesc:'仅密钥 root(PermitRootLogin 禁止密码)、MaxAuthTries 4、X11Forwarding 关闭、空闲超时、无空密码。 PasswordAuthentication 保持不变,因此密码用户不会被锁定。',cisSshdHardeningImpact:'Root 密码登录已禁用(密钥登录仍然有效)。通过回滚选择可逆。',cisPamNullok:'删除 PAM nullok(阻止空密码)',cisPamNullokDesc:'从每个 /etc/pam.d/* 文件中删除 nullok 标志,以便具有空白密码的账户无法再进行身份验证。',cisPamNullokImpact:'密码为空的账户无法再登录。可通过选择的回滚恢复。',rollbackSelected:'回滚所选项',controlsRolledBack:'控制回滚',hardenRollbackConfirm:'将此节点上选定的控件恢复到应用前的状态吗?只有通过 PegaProx(带有保存的快照)应用的控制才能回滚。',hardenRollbackHint:'将选定的控件恢复到应用前的状态(仅限通过 PegaProx 应用的控件)',applying:'正在应用…',controlsApplied:'个控制项已应用',noControlsSelected:'未选择控件',hardenConfirm:'⚠️警告:选定的强化控制将应用于此节点。\n\n系统配置文件将被修改。某些更改可能需要重新启动。\n\n继续?',alreadyApplied:'已应用',applied:'应用',notApplied:'未应用',pveImpact:'PVE 影响',reference:'参考号',control:'控制项',hardenReportTitle:'节点强化报告',auditEvidence:'审计证据',verboseAuditOutput:'详细审计输出',verboseHint:'包括每个控件的原始检查输出 - 对于审计报告有用',showAuditDetails:'显示审计详细信息',hideAuditDetails:'隐藏审计详细信息',actualState:'实际状态',hardenEmpty:'选择一个节点并单击“检查状态”',hardenEmptyDesc:'PegaProx 检查哪些 CIS 控件已应用,并允许您启用其余控件。',cisFs:'禁用未使用的文件系统模块',cisFsDesc:'防止加载很少使用的文件系统内核模块(cramfs、freevxfs、hfs、hfsplus、jffs2)',cisFsImpact:'无 - 虚拟机和容器不受影响',cisCoreDumps:'禁用核心转储',cisCoreDumpsDesc:'防止系统在程序崩溃时创建可能包含密码和密钥的内存转储',cisCoreDumpsImpact:'无 - VM 崩溃仍正常记录',cisMounts:'安装选项 强化',cisMountsDesc:'将nodev、nosuid、noexec应用于/tmp、/var/tmp、/dev/shm以防止权限升级',cisMountsImpact:'对集群操作或虚拟机没有影响',cisCron:'Cron/At 访问强化',cisCronDesc:'限制作业调度程序仅对 root 进行访问,防止持久性攻击',cisCronImpact:'无 - PVE 计划任务以 root 身份运行',cisNet:'禁用未使用的网络协议',cisNetDesc:'防止加载很少使用的网络协议(dccp、sctp、rds、tipc)',cisNetImpact:'无 - Proxmox 不使用',cisJournald:'日志安全加固',cisJournaldDesc:'配置持久的压缩日志记录,使其在重新启动后仍然存在,以进行取证分析',cisJournaldImpact:'更好的取证能力',cisSshPerms:'SSH 文件权限',cisSshPermsDesc:'设置 SSH 配置和主机密钥的安全权限 (600)',cisSshPermsImpact:'无 - SSH 工作正常',cisSshCrypto:'SSH 加密强化',cisSshCryptoDesc:'配置 SSH 仅使用强密码 (AES-GCM/CTR)、安全密钥交换 (Curve25519) 和强 MAC (SHA2-ETM)',cisSshCryptoImpact:'非常旧的 SSH 客户端可能无法连接',cisPam:'账户锁定 (pam_faillock)',cisPamDesc:'登录尝试失败 5 次后锁定账户,10 分钟后自动解锁。排除根。',cisPamImpact:'与 Fail2Ban 配合使用进行深度防御',cisTimeout:'Shell超时',cisTimeoutDesc:'15 分钟后自动注销不活动的 shell 会话',cisTimeoutImpact:'仅交互式 SSH 会话受影响',cisFilePerms:'系统文件权限',cisFilePermsDesc:'在 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 上设置正确的权限',cisFilePermsImpact:'无影响 - 标准 Linux 强化',lynDns:'备份域名服务器',lynDnsDesc:'确保至少 2 个 DNS 名称服务器配置为冗余(可配置)',lynDnsImpact:'防止 DNS 中断',lynPostfix:'Postfix 横幅强化',lynPostfixDesc:'从邮件服务器横幅中删除软件版本信息以防止版本泄露',lynPostfixImpact:'None - 仅隐藏版本字符串',lynPwHash:'密码哈希轮次',lynPwHashDesc:'增加 SHA 密码哈希迭代次数(5000-500000 轮),使暴力攻击速度明显减慢',lynPwHashImpact:'仅影响新的/更改的密码',lynPwQuality:'PAM 密码质量',lynPwQualityDesc:'强制执行强密码策略:至少 12 个字符、大写字母、小写字母、数字、特殊字符。安装 libpam-pwquality。',lynPwQualityImpact:'用户必须设置更强的密码',lynPwAging:'密码时效',lynPwAgingDesc:'强制每 365 天更改一次密码,并有 30 天的警告期。排除根。',lynPwAgingImpact:'用户必须每年更改密码',lynPwHistory:'密码历史记录',lynPwHistoryDesc:'通过 pam_pwhistory 防止重复使用最后 24 个密码。',lynPwHistoryImpact:'用户无法重复使用最近的密码',lynUmask:'默认掩码 (027)',lynUmaskDesc:'收紧默认文件权限,因此新文件只能由所有者和组读取,而不是所有人都可以读取',lynUmaskImpact:'默认情况下新文件受到更多限制',cmUmaskToolingNote:'umask 027 也会影响你在登录 shell 中运行、用于创建文件或容器的工具——例如社区 LXC 脚本会使 /etc 变为 750 并导致 DNS 中断。请先执行 umask 022,或回滚此控制项。',cmSshdRootLockoutNote:'PegaProx 通过密码(无 SSH 密钥)访问此集群——此控制项会禁用 root 密码登录,因此应用后会切断 PegaProx 自身对该节点的访问(回滚同样需要 SSH)。请先为集群添加 SSH 密钥。',hardenApplyTitle:'应用加固控制项',hardenApplyBtn:'应用',hardenApplyBody:'这将向 "{node}" 应用 {n} 个控制项。系统配置文件将被修改;部分更改可能需要重启。',hardenAccessAck:'我了解这些控制项会更改 SSH/登录访问,配置不当可能导致远程访问被锁定。',hardenLockoutAck:'我了解这会切断 PegaProx 自身对此集群的密码访问,并且我拥有控制台/手动访问权限以便恢复。',lynPkgCleanup:'旧包清理',lynPkgCleanupDesc:'从以前卸载的软件包中删除剩余的配置文件',lynPkgCleanupImpact:'None - 删除未使用的配置残留',lynDebsums:'包验证(debsums)',lynDebsumsDesc:'安装 debsums 以验证包文件完整性并检测损坏或篡改的系统文件',lynDebsumsImpact:'None - 只读验证工具',lynBanners:'登录横幅',lynBannersDesc:'根据合规性框架(PCI-DSS、HIPAA)的要求,在登录前显示法律警告横幅',lynBannersImpact:'无 - 仅限化妆品',lynAide:'文件完整性监控 (AIDE)',lynAideDesc:'创建文件校验和数据库以检测对系统二进制文件和配置的未经授权的更改',lynAideImpact:'初始数据库构建在后台运行',lynAcct:'进程审计',lynAcctDesc:'记录有关每个进程执行的信息以进行取证分析(使用lastcomm查看)',lynAcctImpact:'极低开销',lynSysstat:'系统统计(sysstat)',lynSysstatDesc:'随着时间的推移收集 CPU、内存、磁盘 I/O 和网络统计信息(使用 sar 获取历史数据)',lynSysstatImpact:'最小的开销 - 有助于诊断问题',lynUsb:'禁用 USB/Firewire 存储',lynUsbDesc:'防止加载 USB 和 Firewire 存储驱动程序以阻止数据盗窃。键盘/鼠标仍然可以工作。',lynUsbImpact:'USB 驱动器将无法被识别',lynCompilers:'限制编译器访问',lynCompilersDesc:'将编译器(gcc、g++、make)的使用仅限于 root,防止攻击者编译漏洞代码',lynCompilersImpact:'非root用户无法编译',lynAptShow:'补丁管理(apt-show-versions)',lynAptShowDesc:'安装 apt-show-versions 以快速概览已安装的软件包及其更新状态',lynAptShowImpact:'None - 只读查询工具',lynTmpdir:'每个会话隔离 /tmp',lynTmpdirDesc:'为每个用户会话创建隔离的临时目录,防止 /tmp 竞争条件攻击',lynTmpdirImpact:'无 - 只影响交互式会话',stigRecommendations:'指南',stigSession:'并发会话限制',stigSessionDesc:'限制每个用户最多 10 个并发登录会话。根排除集群操作。',stigSessionImpact:'没有影响 - root 拥有无限的会话',stigInactive:'禁用不活动账户',stigInactiveDesc:'35 天未登录后自动禁用用户账户。排除根账户和服务账户。',stigInactiveImpact:'35 天后禁用未使用的账户',stigLegacy:'删除不安全的遗留服务',stigLegacyDesc:'删除以明文形式传输数据(包括密码)的 telnet、rsh、talk、ntalk、nis 软件包',stigLegacyImpact:'无 - Proxmox 专门使用 SSH',stigAuditBoot:'启动时审计',stigAuditBootDesc:'添加audit=1内核参数以从启动的第一刻开始进行审计,从而缩小早期启动日志记录的差距',stigAuditBootImpact:'最短 - 启动时间延长约 1-2 秒。需要重新启动。',stigAuditRules:'特权命令日志记录',stigAuditRulesDesc:'全面记录 sudo/su/passwd、权限更改、账户修改、内核模块加载、网络配置和 /etc/pve/ 更改',stigAuditRulesImpact:'最小 - 仅审计人类用户 (auid>=1000)',stigAideAudit:'审计工具保护(AIDE)',stigAideAuditDesc:'将审计二进制文件(auditd、ausearch、aureport)添加到带有 SHA512 校验和的 AIDE 文件完整性监控中。需要助手。',stigAideAuditImpact:'无 - 仅监控审计工具二进制文件',stigMemProt:'内存保护-内核强化',stigMemProtDesc:'内核参数:init_on_alloc=1、init_on_free=1、page_alloc.shuffle=1、slab_nomerge。防止信息泄露和释放后使用攻击。',stigMemProtImpact:'~1-3% 的性能开销。需要重新启动。',stigAuditLock:'审计规则不可变',stigAuditLockDesc:'使用 -e 2 标志锁定审计配置。不重新启动就无法修改规则,从而防止攻击者禁用审计。',stigAuditLockImpact:'审计规则更改需要重新启动',pegaApparmor:'AppArmor(强制访问控制)',pegaApparmorDesc:'启用 AppArmor 并强制执行所有配置文件。限制程序即使受到威胁也可以访问的内容 - 在标准文件权限之外添加一个安全层。',pegaApparmorImpact:'标准 PVE 没有 — 自定义服务可能需要配置文件',pegaDisableSvc:'禁用不必要的服务',pegaDisableSvcDesc:'停止并禁用蓝牙、CUPS(打印)和 Avahi (mDNS)。运行的服务越少意味着攻击面越小。',pegaDisableSvcImpact:'没有本地打印或蓝牙——与服务器无关',pegaSysctl:'Sysctl 网络和内核强化',pegaSysctlDesc:'应用 20 多个 sysctl 参数:IP 欺骗保护、ICMP 重定向阻止、SYN 洪水防御、ASLR、dmesg 限制、ptrace 范围、符号链接保护。',pegaSysctlImpact:'无 — 标准生产服务器强化',pegaAuditd:'启用审计守护进程 (auditd)',pegaAuditdDesc:'安装并启用auditd以记录系统事件。与 STIG“特权命令日志记录”配对以获得全面的审计规则。',pegaAuditdImpact:'最小开销——审计规则的先决条件',createAffinityRule:'创建规则',editAffinityRule:'编辑规则',ruleName:'规则名称',ruleType:'规则类型',selectVms:'选择虚拟机',noAffinityRules:'暂无亲和性规则',enforceRule:'执行规则',enforceRuleHint:'阻止违反此规则的迁移',consoleSettings:'控制台端口',vncPort:'VNC 端口',shellPort:'Shell 端口',consolePortHint:'VNC为VM控制台,Shell为节点终端。修改后需要重启服务器!',nodeShellHint:'要访问节点 shell 或查看详细性能,请使用上面的 Proxmox UI 按钮或直接连接到节点。',selfSignedCertWarning:'自签名证书',selfSignedCertHint:'VNC 和 Shell 在不同的端口上运行。对于自签名证书,您需要在浏览器中接受一次。',openVncPort:'打开VNC端口',openShellPort:'打开Shell端口',certInstructions:'对于自签名证书:',certStep1:'1. 在新选项卡中打开此链接:',certStep2:'2. 在浏览器中接受证书',certStep3:'3.回来再试一次',acceptCert:'接受证书',openInProxmox:'在Proxmox中打开',wsConnectionFailed:'WebSocket 连接失败',checkServerLogs:'检查服务器日志以获取详细信息',connectingWs:'连接 WebSocket',wsConnected:'WebSocket 已连接,正在等待服务器...',ipFetchFailed:'获取IP失败',smtpSettings:'SMTP 设置',smtpHost:'SMTP服务器',smtpPort:'端口',smtpUser:'用户名',smtpPassword:'密码',smtpFromEmail:'发件人邮箱',smtpFromName:'发件人名称',smtpTls:'使用TLS',smtpSsl:'使用 SSL',alertCooldown:'警报冷却时间(秒)',alertUpdateAvailable:'当 PegaProx 更新可用时给我发电子邮件',alertUpdateAvailableDesc:'每天轮询一次。每个新版本都会向上面列出的收件人通知一次。',migrationHistory:'迁移历史',noMigrationHistory:'没有迁移记录',passwordExpiry:'密码过期',passwordExpiryDesc:'强制用户在指定天数后更改密码。',passwordExpiryHint:'用户会在到期前 14、7、3 和 1 天收到电子邮件提醒。 UI 中会显示警告横幅。必须为电子邮件配置 SMTP。',sendExpiryEmails:'当密码即将过期时发送电子邮件通知',expiryDays:'密码过期时间为',warningDays:'之前警告用户',passwordExpired:'您的密码已过期!',passwordExpiresIn:'您的密码将在 {days} 天后过期',pleaseChangeNow:'请立即更改。',pleaseChangeSoon:'请尽快更改。',dismissForNow:'稍后提醒我',forcePasswordReset:'强制重置密码',forcePasswordResetDesc:'立即使所有用户密码失效。安全事件发生后使用。',resetAllPasswords:'全部重置',confirmPasswordReset:'确认密码重置',resetAllWarning:'这将强制所有用户在下次登录时更改密码。此操作无法撤消。',includeAdmins:'包括管理员账户',includeAdminsWarning:'警告:您还需要更改密码!',includeAdminsInExpiry:'包括管理员账户',includeAdminsInExpiryDesc:'管理员还需要定期更改密码',appearance:'外观',themeDesc:'选择界面的颜色主题',themeNote:'主题更改会立即应用并保存到您的账户。',chooseTheme:'选择您的主题',themePersonal:'选择适合您风格的主题。此设置是个人的,仅影响您的账户。',defaultTheme:'默认主题',defaultThemeDesc:'为新用户设置默认主题。用户可以在“我的个人资料”中更改他们的主题。',currentDefault:'当前默认值',themeInProfile:'在“我的个人资料”中更改您的主题(单击右上角您的用户名)',layoutStyle:'布局风格',layoutStyleDesc:'选择现代仪表板或企业风格界面。',layoutModern:'现代',layoutModernDesc:'带有卡片、动画和渐变的仪表板',layoutCorporate:'企业',layoutCorporateDesc:'经典企业风格——密集数据视图',layoutCloudDesc:'宽松的卡片网格,青绿色主题',layoutSelectionDesc:'选择您喜欢的界面风格。您可以随时在“我的个人资料”→“布局样式”下更改此设置。',layoutSelectionHint:'您可以随时在“我的个人资料”→“布局样式”下更改此设置',topologyView:'拓扑结构',worldMap:'世界地图',worldMapHint:'集群位置',zoomIn:'放大',zoomOut:'缩小',resetZoom:'重置缩放',showCapitals:'显示首都',hideCapitals:'隐藏首都',worldMapLoading:'正在加载地图...',worldMapLoadFailed:'无法加载世界地图',worldMapNoneSet:'尚未绘制集群。',worldMapSetHint:'设置集群(右窗格)的纬度/经度以将其放置在地图上。',clusterLocations:'集群位置',locationNotSet:'位置未设置',latitude:'纬度',longitude:'经度',locationLabelField:'标签',locationLabelOptional:'可选',saveLocation:'保存位置',savingLocation:'正在保存...',clearLocation:'清除',locationSaved:'已保存。',editLocation:'编辑',setLocation:'设置位置',statusConnected:'已连接',statusDisconnected:'断开',plottedOfTotal:'已绘制',diagramView:'图解',cardView:'卡片',exportDiagram:'导出图',exportAsPng:'导出为 PNG',exportAsJpg:'导出为 JPG',exportAsPdf:'导出为 PDF',noGuests:'无客户机',backupServers:'备份服务器',breadcrumbAll:'所有',taskbarAutoExpand:'任务栏自动展开',showVmidSidebar:'在侧边栏中显示 VM ID',showVmidSidebarDesc:'在侧边栏树中每个客户机姓名旁边显示 VMID',showVmidSidebarOn:'VM ID 显示在侧边栏中',showVmidSidebarOff:'VM ID 隐藏',taskbarAutoExpandDesc:'新任务开始时自动展开任务栏',taskbarAutoExpandEnabled:'任务栏自动展开已启用',taskbarAutoExpandDisabled:'任务栏自动展开已禁用',dragToResize:'拖动以调整大小',userColumnHint:'如果可用,则显示 PegaProx 用户,否则显示 Proxmox 用户',support:'支持',supportBundle:'支持包',supportBundleDesc:'生成包含日志、配置和系统信息的诊断包,用于排查问题。密码、令牌和密钥等敏感数据会自动脱敏。',bundleContents:'支持包内容',bundleSystemInfo:'系统信息(版本、平台、Python)',bundleClusterStatus:'集群连接状态',bundleAuditLogs:'最近的审计日志条目(最后 500 条)',bundleAppLogs:'应用程序日志(最后 1000 行)',bundleDbSchema:'数据库架构和统计',bundleServerSettings:'服务器设置(密码已编辑)',bundleUserList:'用户列表(无敏感数据)',bundleRecentTasks:'最近的 Proxmox 任务',bundleSseStats:'SSE/SSH 连接统计',generatingBundle:'正在生成支持包...',bundleDownloaded:'支持包下载成功',bundleError:'无法生成支持包',downloadBundle:'下载支持包',bundleSize:'典型大小:50-500 KB',supportResources:'支持资源',reportIssue:'报告问题',discussions:'讨论',documentation:'文档',releases:'发布',quickSystemInfo:'快速系统信息',rescan:'重新扫描',rescanningStorage:'正在重新扫描存储...',storageRescanSuccess:'存储重新扫描已完成',storageRescanError:'重新扫描存储失败',rescanStorageTooltip:'重新扫描存储以检测新的 LUN/卷',deepRescanningStorage:'深度重新扫描(使用 pvresize)...',rescanOptions:'重新扫描选项',quickRescan:'快速重新扫描',quickRescanDesc:'通过API刷新存储状态。用于一般状态更新。',deepRescan:'深度扫描',deepRescanDesc:'基于SSH的SCSI重新扫描+多路径重新配置+自动pvresize。在LUN扩容或添加新LUN后使用。',deepRescanNote:'需要 SSH 访问节点',rescanStorage:'重新扫描存储',rescanStorageDesc:'重新扫描存储以检测更改。',themeChanged:'主题改为',themeChangeFailed:'保存主题失败',uiLayout:'用户界面布局',layoutDesc:'在不同的界面布局之间进行选择。',inventory:'资产清单',selectItem:'从树中选择一个项目',snapshotsOverview:'快照概述',snapshotsCleanUp:'清理',snapshotsDesc:'该集群中最旧快照的概述',snapshotsHint:'集群内所有客户机的最旧快照概述。',snapshotsType:'类型',snapshotsDate:'创建时间',snapshotsAge:'时长',snapshotsAction:'操作',filterNodesVms:'过滤节点或虚拟机...',toggleAffinityEdges:'显示/隐藏亲和性规则连线',affinity:'亲和性',toggleLegend:'显示/隐藏图例',lxcTerminal:'LXC 容器终端',toggleStorageTier:'显示/隐藏存储层',toggleNetworkTier:'显示/隐藏网络层',legend:'图例',legendOnline:'节点上线',legendOffline:'节点离线',legendLowLoad:'CPU/RAM < 60 %',legendMidLoad:'CPU/RAM 60–80 %',legendHighLoad:'CPU/RAM > 80 %',legendVm:'VM / LXC 运行中',legendVmStopped:'VM / LXC 已停止',legendAntiAff:'反亲和性连线',legendAff:'亲和性连线',legendHint:'拖动进行平移·滚动进行缩放·悬停查看详细信息',quorumAtRisk:'仲裁面临风险',nodesOffline:'节点离线',openWebUI:'打开 Web UI',noHostKnown:'该集群没有已知的主机',openVmWebUI:'打开 Web UI',setVmWebLink:'设置网址...',editVmWebLink:'编辑网址...',setVmWebLinkPrompt:'此 VM 的 Web URL(留空以删除):',vmWebLinkSaved:'已保存网页链接',vmWebLinkCleared:'网页链接已删除',guestFilesystems:'文件系统使用',exportFullCsv:'导出完整 CSV',exportFullCsvHint:'服务器端 CSV 包含所有条目(最多 10000 个)',exportFilteredHint:'导出您看到的行(应用当前过滤器)',activeSessions:'活跃会话',activeSessionsDesc:'您当前登录的位置。撤销您不再识别的任何会话。',currentSession:'当前浏览器',lastActive:'上次活跃',revoke:'撤销',revokeSession:'撤销本次会话',sessionRevoked:'会话已撤销',confirmRevokeCurrent:'撤销此会话将使您注销。继续?',noSessions:'没有活动会话。',portalOnlyAccount:'该账户只能通过客户端(/portal)登录',copyTokenNow:'立即复制您的令牌 - 它不会再次显示!',renameVm:'重命名VM',renameVmDesc:'更改显示名称',cloneVm:'克隆VM',cloneVmDesc:'创建相同的副本',v2pMigrationDesc:'近乎零停机的V2P迁移',deleteVm:'删除VM',powerOffFirst:'先断电删除',permanentlyRemoveVm:'永久删除此 VM',filterPermissions:'过滤权限...',clearAll:'清除',noMatchingPermissions:'没有权限与您的过滤器匹配。',pegaFail2ban:'fail2ban — SSH + PVE Web-UI',pegaFail2banDesc:'为 sshd 和 Proxmox Web UI/API 身份验证安装 fail2ban 防护规则。策略:10 分钟内登录失败 5 次,将封禁该 IP 24 小时。通过文件标记 /etc/fail2ban/jail.d/pegaprox-pve.conf 确保可安全重复应用。',pegaFail2banImpact:'可忽略不计 — 读取为 /var/log/daemon.log + /var/log/auth.log. 使用 `fail2ban-client status proxmox` 审查被禁止的 IP。',hardwareKeys:'硬件密钥',hardwareKeysDesc:'YubiKey、Nitrokey、Touch ID、Windows Hello。在登录期间用作第二因素。注册多个密钥以便您有备份。',addHardwareKey:'添加安全密钥',hardwareKeyNamePrompt:'命名该密钥(例如“YubiKey 5C,office”)',hardwareKeyAdded:'添加了安全密钥',hardwareKeyRemoved:'密钥已移除',noHardwareKeys:'尚未注册硬件密钥。',confirmRemoveKey:'删除这个键?',added:'已添加',lastUsed:'上次使用',browserNoWebauthn:'浏览器不支持WebAuthn',webauthnUnavailable:'WebAuthn 在此服务器上不可用(未安装 fido2 库)。',useSecurityKey:'使用安全密钥',or:'或',webauthnIpHostTitle:'WebAuthn 不能与 IP 地址一起使用',webauthnIpHostDesc:'通过其主机名(例如 https://localhost:5000 或 https://your-server.local:5000)打开 PegaProx 以注册安全密钥。 WebAuthn 规范不允许像 127.0.0.1 这样的 IP 地址。',capacityOutlook:'容量预测',nodeAtRisk:'处于危险中的节点',nodesAtRisk:'风险节点',allNodesStable:'所有节点稳定',peakScore:'峰值',wmaEngine:'预测',capacityCollecting:'收集数据……',metricAtRisk:'存在风险的指标',metricsAtRisk:'面临风险的指标',allMetricsStable:'所有指标稳定',overThreshold:'超过阈值',etaIn:'预计达到阈值',forecastEngine:'预测',stable:'稳定',metric:'指标',commandPalettePlaceholder:'输入以搜索集群、虚拟机、操作...',commandPaletteNoResults:'没有任何内容与该查询匹配。',navigate:'导航',select:'选择',alertChannels:'警报通知渠道',alertChannelsDesc:'将警报发送到 Slack、Discord、Teams、ntfy 或任意 JSON Webhook;通知渠道会与电子邮件同时触发。',addChannel:'添加通知渠道',noChannels:'尚未配置通知渠道。',testChannel:'测试',confirmDeleteChannel:'删除通知渠道',channelSaved:'通知渠道已保存',channelDeleted:'通知渠道已删除',token:'令牌',accountLocked:'失败次数过多,请约 {mins} 分钟后重试。',strictSessionIp:'严格的会话IP绑定',strictSessionIpLabel:'源 IP 更改时会话失效',strictSessionIpDesc:'阻止从不同网络使用会话 cookie(通过窃取的 cookie 劫持)。警告:运营商 NAT 上的移动用户或 VPN 切换用户在 IP 发生变化时可能会被注销。',passwordChangedReloginRequired:'密码已更改 - 请重新登录。',namespaceShort:'NS',reportSummary:'摘要',reportInventory:'资产清单',reportGap:'差距分析',reportWindow:'时间窗口',last7d:'过去 7 天',last30d:'过去 30 天',last90d:'过去 90 天',last365d:'过去 365 天',pickClusterForGap:'选择上面的一个集群来运行差距分析',pickClusterForGapDesc:'显示所选集群中的哪些 VM 在此 PBS 上已受保护、备份已过期或完全未受保护。',noBackupsInWindow:'所选窗口中没有备份',noMatchingBackups:'没有匹配的备份',searchBackups:'按 VM 名称、ID、数据存储搜索...',unverifiedOld:'超过 30 天且未成功验证的快照。',perDayActivity:'每日活动',perVmRollup:'每 VM 最后一次备份',totalJobs:'作业总数',successRate:'成功率',stale:'过期',protected:'受保护',unprotected:'无保护',location:'位置',daysAgo:'几天前',now:'现在',entries:'条目',namespace:'命名空间',unprotectedVms:'未受保护的虚拟机',staleBackups:'过期(上次备份早于设定时间范围)',backupInventory:'备份清单',firstDetected:'首次检测到',noFix:'没有修复',backupRunning:'备份开始',apiHealth:'API 健康',compare:'比较',compareSnapshot:'与当前配置进行比较',pbsHealth:'PBS 健康',liveBackupProgress:'备份正在进行中...',preflightOk:'所有检查均已通过',preflightCheck:'预检查(PBS)',runCheck:'运行检查',autoFetch:'自动获取',showUnchanged:'显示不变',noDifferences:'没有差异',generateKey:'生成密钥',downloadJson:'下载JSON',printRecoverySheet:'打印恢复表',fingerprintMismatch:'指纹不匹配',worstDatastore:'负载最高的数据存储',newestBackup:'最新备份',fullIn:'已满',liveFingerprint:'当前指纹',tcpReachable:'TCP可达',authOk:'验证成功',datastoreFound:'找到数据存储',keyboardShortcuts:'键盘快捷键',exportJson:'导出 JSON',copyToClipboard:'复制到剪贴板',copied:'已复制',liveUpdatesDisconnected:'实时更新已断开',tryingReconnect:'尝试重新连接',autoSnapshotBeforeDelete:'执行破坏性操作前创建快照',autoSnapshotBeforeDeleteDesc:'删除、恢复或跨集群迁移之前自动快照。',filterRunning:'运行中',filterStopped:'已停止',filterHasSnapshot:'有快照',filterHaProtected:'HA',clearFilter:'清除',bulkSelect:'批量选择',bulkSelected:'{n} 已选择',bulkAction:'操作',shortcutsHint:'按 ? 查看快捷键',themeToggle:'切换主题',clusterHealthSshMissing:'集群运行状况需要 SSH 从 PegaProx 访问节点(corosync-cfgtool、pvecm、systemctl)。配置集群的 Node-Shell SSH 凭据并刷新。',rollups:'汇总',pools:'资源池',byTag:'按标签',byPool:'按资源池',tag:'标记',noGroupings:'尚未对任何虚拟机进行分组。',rollupsHint:'带有多个标签的虚拟机会计入每个标签汇总。CPU 为即时使用率之和;RAM/磁盘为总体占用率;网络 I/O 为虚拟机启动后的累计值。',sensors:'传感器',sensor:'传感器',sensorsHint:'通过 lm 传感器的硬件传感器。红色单元格超过临界阈值,黄色单元格超过最大阈值。',temperatureC:'温度(°C)',tempHistoryTitle:'随时间变化的温度(最热传感器)',samples:'样本',hardwareMonitoring:'硬件监控',hardwareMonitoringDisabledDesc:'带内硬件监控(IPMI)未启用。它会直接从节点读取传感器、电源、资产清单和硬件事件日志;无需凭据,且仅执行只读操作。',enableHardwareMonitoring:'启用硬件监控',hwEnabled:'启用硬件监控',hwEnabledBy:'启用者',hwReadFailed:'读取硬件失败',hwIpmitoolMissing:'此节点上未安装 ipmitool。',hwInstallHint:'PegaProx 将在节点上运行 apt-get install ipmitool 并可能加载 IPMI 内核模块。只读,仅限本地 IPMI。',hwInstallIpmitool:'安装ipmitool',hwInstalling:'正在安装...',hwInstallDone:'已安装 ipmitool',hwInstallFailed:'ipmitool 安装失败',hwNoData:'无可用硬件数据',hwSystemInfo:'系统信息',hwSensors:'传感器',hwEventLog:'硬件事件日志 (SEL)',hwConfirmDefault:'我理解并承担实现这一目标的责任',hwEnable:'启用',powerDraw:'功耗',partNumber:'零件编号',chassisIntrusion:'机箱入侵',hardwareHealth:'硬件健康状况',degradedHardware:'硬件性能下降',hwAlertWarnPlus:'警告或更严重的情况',hwAlertCritOnly:'仅严重',clustersDegradedHwNamed:'硬件性能下降的 {count} 集群:{names}',redfishOob:'带外管理(Redfish)',redfishOobDesc:'通过 BMC Redfish API 读取管理网络上的硬件运行状况 — 当带内 IPMI 不可用时,这是一种基于凭据的带外回退。',redfishBmcHint:'该节点的 BMC 端点。密码以加密方式存储,并且不会再次显示。',enableRedfish:'启用带外监控',bmcHost:'BMC主机/IP',bmcUser:'BMC用户',bmcPassword:'BMC密码',bmcVerifySsl:'验证TLS证书',bmcTest:'测试',bmcTestOk:'可达',bmcTestFail:'失败',bmcSaved:'BMC端点已保存',bmcRemoved:'BMC 端点已删除',configVersion:'配置版本',corosyncRings:'Corosync 环',address:'地址',services:'服务',guestDetail:'客户机详情',loggedInUsers:'已登录用户',clockSkew:'时钟偏差',filesystems:'文件系统',interfaces:'接口',topTalkers:'流量排行',topTalkersHint:'CPU/RAM/磁盘是瞬时的;自 VM 启动以来,磁盘 I/O 和网络 I/O 是累积的(活动虚拟机排序到顶部)。',cpuPercent:'CPU %',memoryPercent:'内存%',diskUsagePercent:'磁盘%',diskIo:'磁盘 I/O(总字节数)',netIo:'网络 I/O(总字节数)',runningVms:'运行虚拟机',interfaceStatistics:'接口统计',errOrDropHint:'非零 RX/TX 错误/丢失以红色突出显示。计数器自启动以来一直累积。',keyAttributes:'密钥属性',allAttributes:'所有属性',// completed translations (i18n backfill)
appliedTickToRollback:'已应用 — 勾选以回滚'},pl:{// Polish translations by @mdobprv-lab (PR #737 — translation extracted; the PR's
// frontend refactor was NOT taken). Missing keys fall back to EN.
-languageSimplifiedChinese:'Chiński uproszczony',setupFailedHttp:'Konfiguracja nie powiodła się (HTTP {status})',mcevpnMemberAdded:'Klaster dodany do domeny EVPN',mcevpnMemberRemoved:'Klaster usunięty z domeny EVPN',mcevpnRemoveConfirm:'Usunąć ten klaster z domeny EVPN? (vNet pozostanie w klastrze)',mcevpnRemovePurgeConfirm:'Usunąć ten klaster z domeny EVPN ORAZ usunąć z niego vNet?',mcevpnRemoveMember:'Usuń z domeny EVPN (pozostaw vNet w klastrze)',mcevpnRemovePurge:'Usuń z domeny EVPN i usuń vNet z tego klastra',mcevpnAddMember:'Dodaj klaster do domeny EVPN',mcevpnPickCluster:'— wybierz klaster —',mcevpnScanned:'Skanowanie zmian konfiguracji zakończone',mcevpnReconcileConfirm:'Ponownie wdrożyć docelową definicję EVPN na wszystkich członkach? Spowoduje to naprawę różnic i zastosowanie konfiguracji SDN w całym klastrze.',mcevpnReconciled:'Różnice konfiguracji naprawione',mcevpnNothingToChange:'Brak zmian do zastosowania',mcevpnEdited:'vNet zaktualizowany',mcevpnSettingFailed:'Nie udało się zapisać ustawienia',mcevpnAutoReconcile:'Automatyczna naprawa różnic',mcevpnAutoReconcileHint:'Po włączeniu skaner różnic automatycznie ponownie wdraża docelową konfigurację na członkach z wykrytymi zmianami i wykonuje zastosowanie SDN w całym klastrze. Wyłączone = tylko wykrywanie.',mcevpnScan:'Skanuj różnice',mcevpnEdit:'Edytuj',mcevpnReconcile:'Napraw różnice',mcevpnEditTitle:'Edytuj vNet EVPN',mcevpnEditNote:'Pól strukturalnych (nazwa / strefa / VNI / ASN / kontroler) nie można zmieniać — aby je zmienić, usuń i utwórz obiekt ponownie. Zmiany są wdrażane we wszystkich klastrach członkowskich i powodują zastosowanie konfiguracji SDN w całym klastrze.',mcevpnAddSubnet:'Dodaj podsieć (CIDR)',mcevpnDelSubnet:'Usuń podsieć (CIDR)',mcevpnCurrentSubnets:'Bieżące podsieci',mcevpnTitle:'EVPN wieloklastrowy',mcevpnReadOnly:'Widok tylko do odczytu — zarządzanie wieloklastrowym EVPN wymaga uprawnień SDN i ustawień.',mcevpnSubtitle:'Jedna logiczna sieć vNet EVPN obejmująca kilka klastrów współdzielących BGP ASN. Fizyczna warstwa BGP-EVPN musi mieć już zestawione peeringi.',mcevpnCreate:'Utwórz vNet EVPN',mcevpnCreated:'Utworzono wieloklastrowy vNet EVPN',mcevpnReapplied:'Zastosowano ponownie',mcevpnDeleted:'Usunięto',mcevpnPurgeConfirm:'Usunąć ten vNet ORAZ usunąć go ze wszystkich klastrów członkowskich?',mcevpnForgetConfirm:'Usunąć ten wpis? (obiekty SDN pozostaną w klastrach)',mcevpnNeedTwo:'Wieloklastrowy vNet EVPN obejmuje wiele klastrów — dodaj co najmniej dwa połączone klastry, aby funkcja miała praktyczne zastosowanie. Możesz zdefiniować jeden klaster, ale rozwiązanie ma sens dopiero dla co najmniej dwóch członków.',mcevpnEmpty:'Brak wieloklastrowych sieci vNet EVPN. Utwórz jedną, aby rozszerzyć domenę EVPN L2 na klastry z tym samym ASN.',mcevpnReapply:'Zastosuj ponownie / ponów',mcevpnForget:'Usuń wpis',mcevpnPurge:'Usuń i wyczyść z klastrów',mcevpnVnetName:'Nazwa vNet',mcevpnZone:'ID strefy EVPN',mcevpnController:'ID kontrolera EVPN',mcevpnVni:'VNI (tag vNet)',mcevpnAsn:'BGP ASN (wspólny)',mcevpnVrf:'VRF-VXLAN / L3 VNI',mcevpnVrfDefault:'domyślnie VNI',mcevpnSubnet:'Podsieć CIDR',mcevpnPeers:'Peery kontrolera EVPN (adresy IP oddzielone przecinkami)',mcevpnMembers:'Klastry członkowskie (wspólna struktura ASN)',mcevpnPreview:'Zweryfikuj / podgląd',mcevpnPreviewOk:'Kontrola wstępna OK — wszyscy członkowie są osiągalni i nie wykryto konfliktów.',mcevpnPreviewIssues:'Kontrola wstępna wykryła problemy:',waitForConfirmation:'Czekaj na moje potwierdzenie przed przełączeniem',waitForConfirmationDesc:'Migracja zostanie wstrzymana tuż przed końcowym przełączeniem, gdy źródłowa VM nadal działa, i poczeka na potwierdzenie. Pozwala to samodzielnie zaplanować krótkie okno przestoju (wyciszyć monitoring, przełączyć DNS i zatwierdzić). Najbardziej przydatne w trybach niemal bezprzerwowych: vmkfstools-clone / auto / snapshot-zero.',cutoverConfirmed:'Przełączenie potwierdzone',cutoverProceeding:'Trwa wykonywanie przełączenia',cutoverCancelled:'Migracja anulowana',sourceLeftRunning:'Źródłowa VM pozostała uruchomiona',phaseAwaitingConfirmation:'Oczekiwanie na potwierdzenie',phaseCancelled:'Anulowano',awaitingCutoverBanner:'Dyski są przygotowane, a źródłowa VM nadal działa. Potwierdź przełączenie, gdy będziesz gotowy na krótki przestój.',awaitingCutoverShort:'Gotowe do przełączenia — źródło nadal działa.',commitSwitchover:'Wykonaj przełączenie teraz',cancelMigration:'Anuluj migrację',maintPreviewProceed:'Możesz kontynuować — jest to tylko wstępna kontrola pojemności, a nie twarda blokada.',maintPreviewNoTargets:'Ostrzeżenie: brak innego dostępnego węzła, na który można ewakuować gości z tego węzła — pozostaną uruchomieni, ale restart spowoduje ich zatrzymanie.',maintPreviewNoHeadroom:'Ostrzeżenie: pozostałe dostępne węzły mogą nie mieć wystarczającej ilości wolnej pamięci RAM dla wszystkich gości z tego węzła. Część migracji może się nie powieść.',maintPreviewOverThreshold:'Ostrzeżenie: ewakuacja tego węzła spowoduje przekroczenie progu RAM na następujących węzłach: ',installStarwindPlugin:'Zainstaluj wtyczkę na wszystkich węzłach',installStarwindPluginHint:'Instaluje starwind-proxmox-plugin z podpisanego repozytorium APT StarWind na każdym węźle.',starwindInstallFailed:'Instalacja wtyczki nie powiodła się',alreadyInstalled:'już zainstalowane',starwindThirdPartyNote:'StarWind LVM jest produktem firmy zewnętrznej StarWind Software i nie stanowi części PegaProx. PegaProx nie zapewnia dla niego wsparcia ani gwarancji — w razie problemów skontaktuj się bezpośrednio ze StarWind:',acmeDirectoryUrl:'Adres URL katalogu ACME',acmeDirectoryUrlHint:'Endpoint katalogu ACME urzędu certyfikacji (musi używać HTTPS)',acmeEmailOptionalHint:'Opcjonalne dla własnych serwerów ACME',acmeProvider:'Dostawca ACME',acmeProviderCustom:'Własny urząd certyfikacji ACME',addClustersToGroup:'Przypisz klastry do tej grupy, aby były tutaj widoczne',addPbsServer:'Dodaj serwer kopii zapasowych',addEsxiServer:'Dodaj serwer ESXi',addVmwareServer:'Dodaj VMware',liveUpdatesActive:'Aktualizacje na żywo aktywne',pollingMode:'Tryb odpytywania',live:'Na żywo',polling:'Odpytywanie',alias:'Alias',allClear:'Wszystkie systemy działają prawidłowo',allUsersUnlocked:'Wszyscy użytkownicy odblokowani',apiPort:'Port API Proxmox',apiPortHint:'Domyślnie 8006. Zmień tylko wtedy, gdy PVE nasłuchuje na niestandardowym porcie. Obsługiwane jest wyłącznie bezpośrednie TLS — bez reverse proxy.',authentication:'Uwierzytelnianie',autoVerify:'Auto-weryfikacja',backupJobUpdated:'Zadanie kopii zapasowej zaktualizowane',bootOrderHint:'Kliknij, aby przełączyć; użyj strzałek, aby zmienić kolejność',browser:'Przeglądarka',cephMonCreated:'Monitor Ceph utworzony',cephMonDeleted:'Monitor Ceph usunięty',cephPoolDeleted:'Pula Ceph usunięta',changesReverted:'Cofnięto zmiany',checkFailed:'Sprawdzenie nie powiodło się',clear:'Wyczyść',cloneStarted:'Klonowanie rozpoczęte',color:'Kolor',command:'Polecenie',confirmDeleteScript:'Usunąć ten skrypt? Zostanie trwale usunięty po 20 dniach.',consolePct:'Terminal xterm (PVE termproxy)',consoleVnc:'Graficzna konsola VNC',createCluster:'Utwórz klaster',custom:'Własne',date:'Data',deleteSnapshot:'Usuń migawkę',disableMaintenance:'Wyłącz tryb konserwacji',diskFormat:'Format',diskFormatLockedHint:'Ten typ magazynu obsługuje tylko jeden format.',dismissUpdate:'Odrzuć',download:'Pobierz',downloadTemplates:'Pobierz szablony kontenerów',downloadTo:'Pobierz do',editBackupJob:'Edytuj zadanie kopii zapasowej',editRole:'Edytuj rolę',editScript:'Edytuj skrypt',enforceHint:'Blokuj migracje naruszające regułę',enterPassword:'Wprowadź swoje hasło',enterServerFirst:'Najpierw wprowadź adres serwera/portalu',errorPerformingUpdate:'Błąd podczas aktualizacji',errorRollback:'Błąd podczas przywracania',errors:'Błędy',exitFullscreen:'Wyjdź z pełnego ekranu',failedToLoad:'Nie udało się wczytać konfiguracji białej listy IP.',failedToUnlockAllUsers:'Nie udało się odblokować wszystkich użytkowników',failedToUnlockUser:'Nie udało się odblokować użytkownika',filename:'Nazwa pliku',files:'Pliki',filter:'Filtr',filterIso:'Filtruj obrazy ISO…',firewallRuleCreated:'Reguła zapory utworzona',fullscreen:'Pełny ekran',group:'Grupa',groupId:'ID grupy',groupInfo:'Informacje o grupie',groupNotes:'Notatki grupy',groups:'Grupy',include:'Uwzględnij',interfaceCreated:'Interfejs został utworzony',interfaceUpdated:'Interfejs został zaktualizowany',invalidPassword:'Nieprawidłowe hasło',invalidStorageId:'ID magazynu musi zaczynać się literą i może zawierać tylko litery, cyfry oraz znaki -, _ i .',lastSeen:'Ostatnio widziany',learnMore:'Dowiedz się więcej o Proxmox SDN',loadingSnapshots:'Ładowanie migawek...',local:'Lokalny',lockedUsers:'Zablokowani użytkownicy',lockedUsersDesc:'Konta zablokowane z powodu zbyt wielu nieudanych prób logowania z dowolnego adresu IP.',log:'Log',logOnlyHint:'Nie wybrano kanałów — alert zostanie tylko zapisany w logu.',maintenanceModeEnabled:'Tryb konserwacji włączony',manufacturer:'Producent',migrationsStarted:'migracje rozpoczęte',missingFields:'Brak wymaganych pól',mode:'Tryb',more:'więcej',moveStarted:'Przenoszenie rozpoczęte',needTwoClusters:'Do replikacji między klastrami wymagane są co najmniej 2 klastry',networkChangesApplied:'Konfiguracja sieci została zastosowana',noClustersConnected:'Brak połączonych klastrów',noClustersInGroup:'Brak klastrów w tej grupie',noDescription:'Brak opisu',noFilesFound:'Nie znaleziono obrazów ISO ani szablonów na żadnym węźle.',noLockedUsers:'Brak zablokowanych kont',noOtherNodeForRepl:'Brak innego dostępnego węzła w tym klastrze. Aby replikować między klastrami, otwórz VM → Konfiguracja → Replikacja → zakładka Między klastrami.',noResources:'Brak VM do eksportu',noTargetsFound:'Nie znaleziono celów',noTemplatesAvailable:'Brak dostępnych szablonów',noWebhooksConfigured:'Brak skonfigurowanych kanałów webhook. Dodaj je w Ustawienia → Alerty.',notRecommended:'NIEZALECANE',notifyVia:'Powiadamiaj przez',optionalName:'Nazwa opcjonalna',optionsSaved:'Opcje zapisane',packageListRefreshStarted:'Odświeżanie listy pakietów rozpoczęte',passwordRequired:'Hasło wymagane',pasteClipboard:'Wklej ze schowka',pbsSshHint:'SSH jest używane tylko przez Menedżer aktualizacji (apt dist-upgrade). Jeśli pole pozostanie puste, PegaProx użyje hasła do interfejsu WWW PBS. Użyj dedykowanego klucza, jeśli logowanie hasłem jest wyłączone na PBS.',poolName:'Nazwa puli...',presets:'Szybkie ustawienia',processing:'Przetwarzanie...',rebootAfter:'Uruchom ponownie po aktualizacji',rebootWarning:'Spowoduje to restart węzła. Wszystkie VM zostaną dotknięte tą operacją.',released:'Wydano',restart:'Uruchom ponownie',restore:'Przywróć',resume:'Wznów',saved:'Zapisano pomyślnie',scheduleUpdated:'Harmonogram zaktualizowany',scriptMarkedForDeletion:'Skrypt oznaczony do usunięcia (20 dni)',searchTemplates:'Szukaj szablonów...',selectNodeFirst:'Najpierw wybierz węzeł',serialNumber:'Numer seryjny',shell:'Terminal',showingUsers:'Wyświetlanie',shutdownWarning:'Spowoduje to wyłączenie węzła.',simulation:'Symulacja',startingMaintenanceMode:'Tryb konserwacji',step:'Krok',storageCreated:'Magazyn utworzony pomyślnie',storageIdRequired:'ID magazynu jest wymagane',storages:'Magazyny',successful:'zakończone pomyślnie',suspend:'Wstrzymaj',sync:'Synchronizuj',templatesAvailable:'dostępnych szablonów',unlockAllUsersConfirm:'Odblokować wszystkich użytkowników?',unlockVmConfirm:'Odblokować tę VM?',updatePbsServer:'Aktualizuj ten serwer PBS',updatePrepared:'Aktualizacja przygotowana! Sprawdź instrukcje poniżej.',uploadFile:'Prześlij plik',useVMwareMigration:'Użyj ESXi → Kreator migracji',userProfile:'Profil',vms:'VM',vnet:'VNet',willBeInstalled:'zostanie zainstalowane przez SSH + apt dist-upgrade.',zone:'Strefa',crsHeader:'Planowanie zasobów klastra (CRS)',crsHaRebalanceOnStart:'Równoważenie HA przy uruchomieniu',crsHaRebalanceOnStartHint:'Automatycznie równoważ zasoby HA, gdy węzeł przechodzi do stanu online',crsSchedulingMode:'Tryb planowania CRS',crsSchedulingModeRemoved:'Usunięto ze schematu w PVE 9.2 — backend pomija to pole w klastrach 9.2+, dzięki czemu pozostała część formularza nadal może zostać zapisana.',crsAutoRebalanceTuning:'Dostrajanie automatycznego równoważenia',crsAutoRebalance:'Automatyczne równoważenie',crsAutoRebalanceOn:'Włączone — CRS stale równoważy zasoby HA',crsAutoRebalanceOff:'Wyłączone (domyślne PVE)',crsMethod:'Metoda',crsThreshold:'Próg (%)',crsThresholdHint:'Próg nierównowagi, po którego przekroczeniu CRS podejmie działanie. Niższa wartość = bardziej agresywne równoważenie.',crsMargin:'Margines (%)',crsMarginHint:'Minimalna wymagana poprawa uzasadniająca przeniesienie.',crsHoldDuration:'Czas utrzymania (cykle)',crsHoldDurationHint:'Liczba cykli CRM, przez które VM pozostaje przypięta po umieszczeniu.',crsCardTitle:'CRS i automatyczne równoważenie',crsCardSubtitle:'(ta sama konfiguracja co Centrum danych → Opcje)',revert:'Cofnij',autoRebalanceClusterDefault:'-- domyślne klastra --',autoRebalanceVmOn:'Włączone — CRS może przenosić tę VM',autoRebalanceVmOff:'Wyłączone — przypnij do przydzielonego węzła',rotateApiToken:'Rotuj token API',confirmRotateToken:'Rotować token API dla tego klastra?\n\nPVE 9.2: sekret zostanie wygenerowany ponownie w miejscu, a ACL pozostaną zachowane.\nPVE 8.x / 9.0 / 9.1: token zostanie usunięty i utworzony ponownie — wszystkie wpisy ACL przypisane bezpośrednio do tokenu zostaną utracone.',tokenRotated:'Token API zrotowany',rotateFailed:'Rotacja nie powiodła się',oidcAudiences:'Akceptowane wartości audience',oidcAudiencesHint:'Dodatkowe wartości audience akceptowane podczas weryfikacji JWT wraz z client_id. Przydatne, gdy jedna logiczna wartość audience jest współdzielona przez wiele wdrożeń.',frameworkCoverageByFamily:'Pokrycie frameworka — według rodziny / obszaru',family:'Rodzina',familyName:'Nazwa',refsCovered:'Uwzględnione odwołania',pegaproxControls:'Kontrole PegaProx',unmappedControls:'Kontrole bez bezpośredniego mapowania do frameworka (informacyjne)',rationale:'Uwaga',noDirectMappingNote:'Ta kontrola nie ma bezpośredniego odwołania w frameworku. Jest wykonywana jako dodatkowa praktyka defence-in-depth i nie jest liczona do pokrycia frameworka.',intraClusterReplOnlyHint:'To okno tworzy replikację wewnątrz bieżącego klastra. Aby replikować między klastrami, otwórz VM → Konfiguracja → Replikacja → zakładka Między klastrami.',certPresentPlaceholder:'(certyfikat przesłany)',keyPresentPlaceholder:'(klucz prywatny przesłany)',cmAideAuditProtect:'AIDE chroni /var/log/audit',cmApparmor:'AppArmor włączony i wymuszany',cmAptShowVersions:'apt-show-versions zainstalowany',cmAuditBoot:'auditd uruchamiany od startu systemu',cmAuditImmutable:'auditd w trybie niezmiennym',cmAuditRules:'reguły auditd załadowane',cmAuditdService:'usługa auditd włączona',cmBackupDns:'Skonfigurowany zapasowy resolver DNS',cmCoreDumps:'Zrzuty pamięci wyłączone',cmCronHardening:'cron/at ograniczone',cmDebsums:'Integralność pakietów debsums',cmDefaultUmask:'Domyślny umask 027',cmDisableServices:'Nieużywane usługi wyłączone',cmFileIntegrity:'Baza integralności plików AIDE',cmFilePerms:'Uprawnienia krytycznych plików',cmFsModules:'Nieużywane moduły jądra wyłączone',cmInactiveAccounts:'Wygaszanie nieaktywnych kont',cmJournald:'journald trwały i kompresowany',cmLoginBanners:'Bannery logowania (issue.net)',cmMemProtection:'Ochrona pamięci (NX/ASLR)',cmMountOptions:'Opcje montowania /dev/shm z noexec',cmNetProtocols:'Rzadko używane protokoły sieciowe wyłączone',cmPamFaillock:'PAM faillock (polityka blokowania)',cmPamTmpdir:'Prywatny /tmp dla każdego użytkownika (pam_tmpdir)',cmPkgCleanup:'Nieużywane pakiety usunięte',cmPostfixBanner:'Banner Postfix nie ujawnia wersji',cmProcessAcct:'Rejestrowanie procesów (psacct)',cmPveFail2ban:'fail2ban (jail PVE)',cmPwAging:'Polityka ważności haseł',cmPwHashRounds:'Liczba rund haszowania haseł (yescrypt)',cmPwHistory:'Historia ponownego użycia haseł',cmPwQuality:'Złożoność haseł (pwquality)',cmRemoveLegacy:'Usługi starszego typu usunięte',cmRestrictCompilers:'Kompilatory tylko dla root',cmSessionLimit:'Limity sesji TMOUT',cmShellTimeout:'Limit bezczynności powłoki',cmSshCrypto:'Szyfry SSH i MAC (BSI/CIS)',cmSshPerms:'Utwardzanie sshd — konfiguracja oraz uprawnienia kluczy i plików konfiguracyjnych (PermitRootLogin, sshd_config 0600, /etc/ssh/* 0600)',cmSysctl:'Utwardzanie sieci przez sysctl',cmSysstat:'Zbieranie danych sysstat (sar)',cmUsbStorage:'Pamięć masowa USB wyłączona',cmVsnfdAuditRet:'journald MaxRetentionSec ≥ 6 miesięcy',cmVsnfdDiskEnc:'Szyfrowanie dysków (LUKS / natywne ZFS)',cmVsnfdJournaldSize:'journald SystemMaxUse ≥ 1G',cmVsnfdKernelLockdown:'Kernel lockdown (integrity/confidentiality)',cmVsnfdPwMin12:'Minimalna długość hasła ≥ 12 (BSI)',cmVsnfdSecureBoot:'Stan Secure Boot',forceDeletePlan:'Wymusić usunięcie tego zablokowanego planu?',refresh:'Odśwież',consolePreview:'Podgląd konsoli',loadingPreview:'Ładowanie podglądu…',syslogServer:'Serwer Syslog',syslogEnabled:'Odbiornik Syslog',syslogEnabledDesc:'Nasłuchuj komunikatów syslog na porcie UDP/TCP 1514. Wyłącz, aby zamknąć port, jeśli PegaProx nie odbiera syslogów z węzłów.',syslogClusterFilter:'Widok Syslog ograniczony do klastra',syslogClusterFilterDesc:'Po włączeniu sekcja Syslog pokazuje tylko wpisy, których nazwa hosta należy do wybranego klastra lub jednego z jego węzłów.',loading:'Ładowanie...',save:'Zapisz',cancel:'Anuluj',ok:'OK',delete:'Usuń',edit:'Edytuj',add:'Dodaj',close:'Zamknij',yes:'Tak',no:'Nie',enabled:'Włączone',disabled:'wyłączone',enable:'Włącz',disable:'Wyłącz',actions:'Akcje',status:'Status',name:'Nazwa',type:'Typ',online:'online',offline:'Offline',running:'Uruchomiona',stopped:'Zatrzymana',active:'Aktywne',all:'Wszystkie',found:'znaleziono',id:'ID',cores:'Rdzenie',search:'Szukaj',searchByNameOrId:'Szukaj po nazwie lub ID...',searchAllClusters:'Szukaj we wszystkich klastrach...',pressEnterToOpen:'Naciśnij Enter, aby przejść do VM',toggleFavorite:'Przełącz ulubione',results:'wyniki',noResults:'Brak wyników',target:'Cel',source:'Źródło',rules:'Reguły',default:'Domyślne',none:'Brak',of:'z',since:'Od',uptime:'Czas pracy',sinceStart:'Od uruchomienia',osVersion:'Wersja systemu',guestAgentNotInstalled:'QEMU Guest Agent nie jest zainstalowany',guestAgentInstallHint:'Zainstaluj qemu-guest-agent, aby wyświetlać nazwę hosta, system i jądro',vmSummary:'Podsumowanie VM',generalInfo:'Ogólne',hardwareInfo:'Sprzęt',guestAgentInfo:'Agent gościa',backToList:'Powrót do listy',configure:'Konfiguracja',summary:'Podsumowanie',console:'Konsola',sockets:'Gniazda',machine:'Maszyna',biosType:'BIOS',scsiController:'Kontroler SCSI',networkAdapter:'Interfejs sieciowy',cpuModel:'Model CPU',hostname:'Nazwa hosta',kernel:'Jądro',haStatus:'Stan HA',lockStatus:'Stan blokady',notLocked:'Brak blokady',locked:'Zablokowana',cpuUsage:'Użycie CPU',ramUsage:'Użycie RAM',vmid:'VMID',node:'Węzeł',score:'Wynik',networkIn:'Ruch przychodzący',networkOut:'Ruch wychodzący',loadAverage:'Średnie obciążenie',socket:'Gniazdo',consoleAvailable:'Konsola dostępna',vmPoweredOff:'VM jest wyłączona',launchWebConsole:'Uruchom konsolę web',qemuAgent:'Agent QEMU',installGuestAgent:'Zainstaluj QEMU Guest Agent...',vmHardware:'Sprzęt VM',relatedObjects:'Powiązane obiekty',network:'Sieć',hostDetails:'Szczegóły hosta',capacityUsage:'Pojemność i użycie',monitor:'Monitoring',logicalProcessors:'procesory logiczne',networkInterfaces:'Interfejsy sieciowe',certificates:'Certyfikaty',timeConfig:'Konfiguracja czasu',timezoneSaved:'Strefa czasowa zaktualizowana',hostsFile:'Plik hosts',vmsOnNode:'Maszyny VM na tym węźle',nodeShell:'Terminal węzła',subscriptionInfo:'Subskrypcja',pveVersion:'Wersja PVE',kernelVersion:'Wersja kernela',cpuSockets:'Gniazda CPU',totalRam:'Całkowity RAM',rootFilesystem:'System plików root',swapUsage:'Użycie swap',systemInfo:'Informacje o systemie',storage:'Magazyn',repositories:'Repozytoria',performance:'Wydajność',tasks:'Zadania',rebootNode:'Uruchom ponownie węzeł',shutdownNode:'Wyłącz węzeł',nodeSettings:'Ustawienia węzła',dns:'DNS',syslog:'Syslog',disks:'Dyski',lvmStorage:'LVM',lvmThinStorage:'LVM-Thin',zfsStorage:'ZFS',login:'Logowanie',logout:'Wyloguj',loginTitle:'Zaloguj do PegaProx',loginSubtitle:'Zarządzanie klastrami Proxmox VE w PegaProx',usernameLabel:'Nazwa użytkownika',passwordLabel:'Hasło',passwordPolicyHint:'Min. 8 znaków, wymagana wielka litera, mała litera i cyfra',minChars:'Min.',characters:'znaków',uppercase:'wielka litera',lowercase:'mała litera',numbers:'cyfra',specialChar:'znak specjalny',loginButton:'Zaloguj',rememberMe:'Zapamiętaj mnie',setupUsernameMin:'Nazwa użytkownika musi mieć co najmniej 2 znaki',setupUsernameReserved:'Nazwa „pegaprox” jest zarezerwowana — wybierz inną nazwę użytkownika',setupFailed:'Konfiguracja nie powiodła się',setupNetworkError:'Błąd sieci — nie udało się połączyć z serwerem',setupComplete:'Konfiguracja zakończona',setupRedirecting:'Przekierowanie do logowania…',setupWelcome:'Witamy w PegaProx',setupCreateFirstAdmin:'Utwórz pierwsze konto administratora, aby rozpocząć',setupFirstTime:'Konfiguracja początkowa',setupCreatingAdmin:'Tworzenie administratora…',setupCreateAdmin:'Utwórz administratora',setupSecurityNote:'To konto stanie się pierwszym administratorem PegaProx. Traktuj jego hasło jak każde inne poświadczenie root — przechowuj je w menedżerze haseł. Po zalogowaniu możesz utworzyć dodatkowych użytkowników z rolą administratora lub rolami o ograniczonym zakresie.',quickTemplate:'Szybki szablon',loggingIn:'Logowanie...',loginError:'Logowanie nie powiodło się',invalidCredentials:'Nieprawidłowe dane logowania',sessionExpired:'Sesja wygasła',welcomeBack:'Witamy ponownie',changePassword:'Zmień hasło',currentPassword:'Aktualne hasło',newPassword:'Nowe hasło',confirmPassword:'Potwierdź hasło',passwordChanged:'Hasło zmienione',passwordMismatch:'Hasła nie są zgodne',userManagement:'Zarządzanie użytkownikami',users:'Użytkownicy',addUser:'Dodaj użytkownika',portalOnly:'Tylko Portal',portalOnlyHint:'Użytkownik może logować się wyłącznie przez /portal',folders:'Foldery',userFolders:'Foldery użytkownika',folderName:'Nazwa nowego folderu...',unfiled:'Bez folderu',portal:'Portal',editUser:'Edytuj użytkownika',deleteUser:'Usuń użytkownika',deleteUserConfirm:'Na pewno usunąć tego użytkownika?',role:'Rola',roleAdmin:'Administrator',roleUser:'Użytkownik',roleViewer:'Obserwator',displayName:'Nazwa wyświetlana',profilePicture:'Zdjęcie profilowe',profilePictureDesc:'Prześlij własny awatar używany na pulpicie i w widoku zarządzania użytkownikami.',uploadAvatar:'Prześlij awatar',changeAvatar:'Zmień awatar',removeAvatar:'Usuń awatar',user:'Użytkownik',email:'E-mail',userEnabled:'Włączony',lastLogin:'Ostatnie logowanie',languagePreference:'Język',languagePreferenceDesc:'Język interfejsu i menu',never:'Nigdy',profile:'Profil',pegaproxSettings:'Ustawienia PegaProx',serverSettings:'Serwer',networkSettings:'Ustawienia sieci',domain:'Domena',domainHint:'Publiczna domena używana do dostępu do PegaProx',port:'Port',portHint:'Domyślnie: 5000, dla HTTPS zwykle 443',httpRedirectPort:'Port przekierowania HTTP (dodatkowy)',httpRedirectPortHint:'Dla przekierowania portu 80. -1 = wyłączone (domyślnie), 0 = automatycznie, 80 = włączone. HTTP na tym samym porcie jest przekierowywane automatycznie.',sslSettings:'Certyfikat SSL/TLS',enableSsl:'Włącz SSL',sslCertificate:'Certyfikat SSL',sslKey:'Klucz prywatny',noCertSelected:'Nie wybrano certyfikatu',noKeySelected:'Nie wybrano klucza',browse:'Przeglądaj',sslWarning:'Po włączeniu SSL serwer musi zostać uruchomiony ponownie. Upewnij się, że certyfikat i klucz są prawidłowe!',sslHint:'Dla Let’s Encrypt: użyj fullchain.pem jako certyfikatu i privkey.pem jako klucza.',reverseProxy:'Reverse proxy',reverseProxyEnabled:'Za reverse proxy (nginx/HAProxy)',reverseProxyHint:'Wyłącza wbudowane SSL i domyślnie wiąże usługę z 127.0.0.1. Reverse proxy kończy połączenie SSL i przekazuje ruch do PegaProx.',trustedProxies:'Zaufane proxy',trustedProxiesHint:'Adresy IP/CIDR oddzielone przecinkami. Puste = tylko loopback (127.0.0.1). Przykład: 10.0.0.1, 172.16.0.0/12',proxyBindAddress:'Adres nasłuchiwania',proxyBindAddressHint:'Puste = 127.0.0.1 (domyślnie). Ustaw 0.0.0.0, jeśli reverse proxy działa na innym hoście.',reverseProxyWarning:'Przykładowa konfiguracja nginx znajduje się w examples/nginx.conf w katalogu instalacyjnym.',jwtVerification:'Weryfikacja podpisu JWT',disableJwtVerification:'Wyłącz weryfikację',securityWarning:'Ostrzeżenie bezpieczeństwa',jwtVerificationWarning:'Wyłączenie weryfikacji podpisu JWT pozwala akceptować tokeny bez kryptograficznego potwierdzenia ich autentyczności. Naraża to logowanie na fałszowanie tokenów. Wyłącz tę opcję tylko wtedy, gdy endpoint JWKS dostawcy tożsamości jest uszkodzony lub nieosiągalny i rozumiesz związane z tym ryzyko.',jwtVerificationEnabled:'Podpisy JWT są weryfikowane przez endpoint JWKS. Jest to ustawienie zalecane.',oidcTlsVerification:'Weryfikacja TLS IdP',skipTlsVerification:'Pomiń weryfikację TLS',oidcTlsWarning:'Weryfikacja certyfikatu TLS dostawcy OIDC jest wyłączona. Używaj tylko dla własnych IdP (Authentik, Keycloak) z certyfikatami samopodpisanymi w zaufanych sieciach. Osoba znajdująca się na trasie połączenia może przeprowadzić atak MITM na wymianę OIDC.',oidcTlsEnabled:'Certyfikaty TLS dostawcy OIDC są weryfikowane względem systemowego magazynu CA. Wymagane w środowisku produkcyjnym.',oidcTlsHint:'Dotyczy: discovery (.well-known/openid-configuration) oraz kontroli dostępności endpointu autoryzacji. Wywołania token-exchange i JWKS również respektują to ustawienie.',oidcAllowPrivateIp:'Wewnętrzny IdP / sieć prywatna',allowPrivateIp:'Zezwalaj na prywatne adresy IP',oidcPrivateIpOptIn:'Opcja aktywna',oidcPrivateIpWarning:'Ochrona SSRF dla discovery OIDC jest poluzowana. Endpointy metadanych chmurowych (169.254.x.x, fd00:ec2:: itd.) pozostają zablokowane. Upewnij się, że host IdP rzeczywiście należy do Ciebie.',oidcPrivateIpDisabled:'Ochrona SSRF aktywna — prywatne i loopback adresy IP są odrzucane. Włącz tylko wtedy, gdy IdP działa w sieci wewnętrznej (10.x / 192.168.x / 172.16-31.x).',oidcPrivateIpHint:'Dotyczy wyłącznie wywołania discovery /.well-known/openid-configuration. Pozostałe połączenia wychodzące (webhooki, upstreamy wtyczek, metadane SAML) nadal używają ścisłej ochrony.',transferMode:'Tryb transferu',transferModeAuto:'Automatyczny (Pre-Sync + Delta)',transferModeSshfsBoot:'Live Mirror — niemal bez przestoju',transferModeVmkClone:'Live Clone — niemal bez przestoju (zalecane)',transferModeSnapshotZero:'Snapshot-Iterative — bez przestoju (eksperymentalne)',transferModeOffline:'Kopia offline (pełny przestój)',transferModeAutoDesc:'Próbuje wykonać pre-sync podczas pracy VM, a jeśli VMDK jest zablokowany, przechodzi na live-mirror.',transferModeSshfsBootDesc:'QEMU drive-mirror wykonuje live-pivot dysków ze źródła zamontowanego przez SSHFS do lokalnego LVM. Rzeczywisty przestój około 30 s. Obsługuje wiele dysków. Zalecane dla większości obciążeń — ogranicz do 1–2 równoczesnych VM, aby utrzymać wysoką przepustowość mirrora.',transferModeVmkCloneDesc:'Tworzy migawkę działającej VM i klonuje zamrożony dysk bazowy na poziomie vmkernel hosta ESXi, następnie importuje go do Proxmox i wykonuje przełączenie. VM działa aż do krótkiego momentu przełączenia. Działa tam, gdzie Live-Mirror / Snapshot-Iterative zawodzą z powodu blokady dysku bazowego. Obsługuje wszystkie typy magazynów Proxmox (Ceph/RBD, LVM, LVM-Thin, dir). Wymaga włączonego SSH na ESXi.',transferModeSnapshotZeroDesc:'Rotacja migawek ESXi — VM pozostaje uruchomiona podczas pre-sync i kolejnych synchronizacji delta, a przestój przy przełączeniu wynosi około 10 s. ⚠️ Może nie działać w każdym środowisku (np. ESXi 6.x lub VMFS6 z rygorystycznymi blokadami) — wymaga konfiguracji ESXi zwalniającej blokadę bazowego VMDK po wykonaniu migawki.',transferModeOfflineDesc:'Zatrzymuje VM na ESXi, kopiuje dyski przez SSH dd, a następnie uruchamia VM na Proxmox (pełny przestój ≈ rozmiar dysku / prędkość sieci).',howItWorks:'Jak to działa',migStep1:'Utworzenie migawki lub live-mirror źródłowych VMDK zależnie od trybu transferu',migStep2:'Przesłanie dysków do magazynu Proxmox (SSH dd / drive-mirror / SSHFS)',migStep3:'Import konfiguracji VM (CPU, RAM, sieć) — stan zasilania ESXi obsługiwany automatycznie',migStep4:'Atomowe przełączenie i uruchomienie VM na Proxmox',requirements:'Wymagania',reqSshEnabled:'SSH musi być włączone na hoście ESXi',reqEsxiRoot:'Do migracji VM wymagane są poświadczenia root hosta ESXi',reqVmwareTools:'VMware Tools są zalecane do prawidłowego zamknięcia systemu podczas przełączenia (nie są bezwzględnie wymagane)',acmeTitle:'Let\'s Encrypt (ACME)',acmeEmail:'Adres e-mail',acmeEmailHint:'Używany przez Let’s Encrypt do powiadomień o wygasaniu certyfikatu',acmeRequest:'Zażądaj certyfikatu',acmeRequesting:'Żądanie certyfikatu...',acmeStaging:'Środowisko testowe',acmeStagingHint:'Używa testowego serwera Let’s Encrypt (bez prawdziwego certyfikatu)',acmeSuccess:'Certyfikat został pomyślnie wystawiony!',acmeExpires:'Ważny do',acmeDaysLeft:'pozostało dni',acmeAutoRenew:'Automatyczne odnawianie aktywne (30 dni przed wygaśnięciem)',acmeSelfSigned:'Samopodpisany',acmePort80:'Port 80 musi być osiągalny (challenge HTTP-01). Docker: zmapuj port 80. Reverse proxy: przekieruj /.well-known/.',acmeChallengeType:'Typ challenge',acmeChallengeHttp:'HTTP-01',acmeChallengeDns:'DNS-01',acmeDnsHint:'DNS-01 wymaga rekordu TXT w _acme-challenge dla tego żądania. Wartość rekordu zostanie pokazana po przygotowaniu challenge.',acmeDnsPrepared:'Challenge DNS przygotowany',acmeDnsInstructions:'Utwórz ten rekord TXT, poczekaj na propagację DNS, a następnie kontynuuj weryfikację.',acmeDnsName:'Nazwa TXT',acmeDnsValue:'Wartość TXT',acmeDnsContinue:'Kontynuuj weryfikację DNS',acmeDnsPrepare:'Przygotuj challenge DNS',acmeDnsProvider:'Dostawca DNS',acmeDnsProviderManual:'Ręczny rekord TXT',acmeDnsProviderRfc2136:'Dynamiczny DNS RFC 2136',acmeDnsRfc2136Hint:'RFC 2136 automatycznie utworzy i usunie rekord TXT _acme-challenge przy użyciu TSIG.',acmeDnsProviderCloudflare:'Cloudflare',acmeDnsCloudflareHint:'Cloudflare automatycznie utworzy i usunie rekord TXT _acme-challenge za pośrednictwem API DNS.',acmeDnsCloudflareToken:'Token API',acmeDnsCloudflareTokenHint:'Token z ograniczonym zakresem: Zone → DNS → Edit dla docelowej strefy. Do automatycznego wykrywania wymagane jest także Zone → Zone → Read; w przeciwnym razie podaj ID strefy.',acmeDnsCloudflareZone:'Strefa (opcjonalnie)',acmeDnsCloudflareZonePlaceholder:'Wykryj automatycznie z domeny',acmeDnsCloudflareZoneId:'ID strefy (opcjonalnie)',acmeDnsCloudflareAccountId:'ID konta (opcjonalnie)',acmeDnsNameserver:'Serwer nazw',acmeDnsPort:'Port',acmeDnsZone:'Strefa',acmeDnsKeyName:'Nazwa klucza TSIG',acmeDnsAlgorithm:'Algorytm TSIG',acmeDnsSecret:'Sekret TSIG',acmeDnsTtl:'TTL rekordu TXT',acmeDnsPropagation:'Czas oczekiwania na propagację (sekundy)',acmeIssuer:'Wystawca',saveSettings:'Zapisz ustawienia',serverSettingsSaved:'Ustawienia serwera zapisane',restartRequired:'Wymagany restart serwera, aby zastosować zmiany',restartInfo:'Informacja o zmianach',restartInfoDesc:'Zmiany portu lub ustawień SSL wymagają ponownego uruchomienia serwera PegaProx.',errorSavingSettings:'Błąd zapisywania ustawień',restartServer:'Uruchom serwer ponownie',restartServerDesc:'Uruchamia ponownie serwer PegaProx, aby zastosować zmiany',restartNow:'Uruchom ponownie teraz',confirmRestart:'Uruchomić serwer ponownie?',restartWarning:'Serwer będzie chwilowo niedostępny',restartConfirmText:'Czy na pewno chcesz ponownie uruchomić serwer PegaProx?',restartEffect1:'Wszystkie aktywne połączenia zostaną rozłączone',restartEffect2:'Interfejs WWW będzie niedostępny przez około 5–10 sekund',restartEffect3:'Niezapisane zmiany zostaną utracone',yesRestart:'Tak, uruchom ponownie',restarting:'Ponowne uruchamianie...',restartInitiated:'Ponowne uruchamianie serwera rozpoczęte',reconnecting:'Ponowne łączenie...',restartFailed:'Ponowne uruchomienie serwera nie powiodło się',tenants:'Dzierżawcy',tenant:'Dzierżawca',addTenant:'Dodaj dzierżawcę',editTenant:'Edytuj dzierżawcę',deleteTenant:'Usuń dzierżawcę',tenantSaved:'Dzierżawca zapisany',tenantClustersHint:'Wybierz klastry dostępne dla tego dzierżawcy (puste = wszystkie)',noVmsInCluster:'Nie znaleziono VM w tym klastrze',tenantsDesc:'Dzierżawcy umożliwiają rozdzielenie użytkowników i ograniczenie dostępu do określonych klastrów.',defaultTenant:'Domyślny dzierżawca',tenantClusters:'Klastry tego dzierżawcy',allClusters:'Wszystkie klastry',allNodes:'Wszystkie węzły',allTags:'Wszystkie tagi',clusterGroups:'Grupy klastrów',clusterGroup:'Grupa klastrów',addGroup:'Dodaj grupę',editGroup:'Edytuj grupę',deleteGroup:'Usuń grupę',groupName:'Nazwa grupy',groupDescription:'Opis',groupColor:'Kolor',assignToGroup:'Przypisz do grupy',ungrouped:'Bez grupy',noGroup:'Brak grupy',removeFromGroup:'Usuń z grupy',groupCreated:'Grupa utworzona',groupDeleted:'Grupa usunięta',groupUpdated:'Grupa zaktualizowana',manageGroups:'Zarządzaj grupami',treeView:'Widok drzewa',poolView:'Widok puli',datastoreView:'Widok magazynu danych',networkView:'Widok sieci',noNetworks:'Brak sieci',bridges:'Mosty sieciowe',filterSidebar:'Filtr...',clusterCpu:'CPU klastra',clusterMemory:'Pamięć klastra',clusterStorage:'Magazyn klastra',runningOf:'uruchomione z',topConsumers:'Największe zużycie',topCpuConsumers:'Największe użycie CPU',topMemConsumers:'Największe użycie pamięci',recentTasks:'Ostatnie zadania',clusterServices:'Usługi klastra',quorumOk:'Quorum OK',quorumLost:'Utracono quorum',haEnabled:'HA włączone',haDisabled:'HA wyłączone',fenceStrategyLabel:'Strategia fence',detectedAt:'Wykryto o',noRecentTasks:'Brak ostatnich zadań',timeAgo:'temu',timeAgoSec:'{n}s temu',timeAgoMin:'{n}m temu',noDatastores:'Brak magazynów danych',emptyPool:'Pusta',editPool:'Edytuj pulę',confirmDeletePool:'Czy na pewno chcesz usunąć tę pulę? Tej operacji nie można cofnąć.',poolDeleted:'Pula usunięta',noPools:'Brak skonfigurowanych pul',clusterGroupsDesc:'Organizuj klastry w grupy i przypisuj je do dzierżawców w celu kontroli dostępu.',noGroupsYet:'Nie utworzono jeszcze żadnych grup',createGroupFirst:'Najpierw utwórz grupę',assignTenant:'Przypisz do dzierżawcy (opcjonalnie)',noTenantAllVisible:'Brak dzierżawcy (widoczne dla wszystkich)',groupTenantHint:'Po przypisaniu tylko ten dzierżawca będzie widział klastry należące do tej grupy',groupsTip:'Wskazówka: przypisuj grupy do dzierżawców w Ustawienia → Grupy klastrów, aby kontrolować dostęp',noClustersAdded:'Nie dodano jeszcze żadnych klastrów',renameCluster:'Zmień nazwę klastra',renameHint:'Pozostaw puste, aby przywrócić oryginalną nazwę',rename:'Zmień nazwę',confirmRename:'Zmień nazwę klastra na',confirmResetName:'Przywróć oryginalną nazwę klastra',permissions:'Uprawnienia',permission:'Uprawnienie',permissionsDesc:'Skonfiguruj szczegółowe uprawnienia użytkowników. Domyślne uprawnienia wynikające z roli można nadpisywać dla poszczególnych użytkowników.',selectUser:'Wybierz użytkownika',selectUserToEdit:'Wybierz użytkownika, aby edytować jego uprawnienia',effectivePermissions:'Efektywne uprawnienia',extraPermissions:'Dodatkowe uprawnienia',deniedPermissions:'Odmówione uprawnienia',grantedByRole:'Nadane przez rolę',permissionSaved:'Uprawnienia zapisane',tenantCreated:'Dzierżawca utworzony',tenantDeleted:'Dzierżawca usunięty',tenantUpdated:'Dzierżawca zaktualizowany',cannotDeleteDefaultTenant:'Nie można usunąć domyślnego dzierżawcy',reassignUsersFirst:'Najpierw należy ponownie przypisać użytkowników',roles:'Role',customRoles:'Role niestandardowe',createRole:'Utwórz rolę',roleId:'ID roli',roleName:'Nazwa wyświetlana',rolesDesc:'Twórz niestandardowe role z określonymi uprawnieniami. Role mogą być globalne lub przypisane do konkretnego dzierżawcy.',scope:'Zakres',global:'Globalna',roleCreated:'Rola utworzona',roleSaved:'Rola zapisana',roleDeleted:'Rola usunięta',confirmDeleteRole:'Usunąć tę rolę?',builtinRole:'Rola wbudowana',tenantSpecific:'Dla konkretnego dzierżawcy',roleTemplates:'Szablony ról',roleTemplatesDesc:'Gotowe szablony typowych konfiguracji ról',createFromTemplate:'Utwórz z szablonu',includedPermissions:'Uwzględnione uprawnienia',roleCreatedFromTemplate:'Rola utworzona z szablonu',vmAcl:'Kontrola dostępu do VM',vmAclDesc:'Ustaw uprawnienia dla poszczególnych VM',addVmAcl:'Dodaj uprawnienia VM',editVmAcl:'Edytuj uprawnienia VM',vmPermissions:'Uprawnienia VM',noVmAcls:'Brak skonfigurowanych uprawnień specyficznych dla VM. Wszystkie VM korzystają z dostępu wynikającego z roli.',selectClusterFirst:'Najpierw wybierz klaster',selectVm:'Wybierz VM',usersWithAccess:'Użytkownicy z dostępem',inheritRolePerms:'Pełny dostęp do VM (uruchamianie, zatrzymywanie, konsola itd.)',customPermissions:'Uprawnienia niestandardowe',vmAclSaved:'Uprawnienia VM zapisane',vmAclDeleted:'Uprawnienia VM usunięte',confirmDeleteVmAcl:'Usunąć niestandardowe uprawnienia dla tej VM?',poolPermissions:'Uprawnienia puli',poolPermissionsDesc:'Nadaj użytkownikom lub grupom dostęp do pul zasobów Proxmox. Uprawnienia dotyczą wszystkich VM należących do puli.',managePools:'Zarządzaj pulami',poolManagerDesc:'Twórz, edytuj i usuwaj pule zasobów. Przypisuj VM do pul, aby uporządkować zarządzanie uprawnieniami.',createPool:'Utwórz pulę',deletePool:'Usuń pulę',poolId:'ID puli',poolIdRequired:'ID puli jest wymagane',poolIdHint:'Dozwolone są tylko litery, cyfry, myślniki i podkreślenia',poolIdCannotChange:'ID puli nie może zostać zmienione',poolCreated:'Pula utworzona pomyślnie',poolUpdated:'Pula zaktualizowana pomyślnie',noPoolsYet:'Brak pul',createFirstPool:'Utwórz pierwszą pulę, aby uporządkować VM',poolMembers:'Członkowie',members:'członkowie',addVmToPool:'Dodaj VM do puli',assignToPool:'Przypisz do puli',removeFromPool:'Usuń z puli',vmAddedToPool:'VM dodana do puli',vmRemovedFromPool:'VM usunięta z puli',confirmRemoveVmFromPool:'Usunąć VM z tej puli?',selectVmToAdd:'Wybierz VM do dodania do tej puli',allVmsInPools:'Wszystkie VM są już przypisane do pul',optionalDescription:'Opis opcjonalny...',userPermissions:'Uprawnienia użytkowników',selectPool:'Wybierz pulę',noPoolPerms:'Brak skonfigurowanych uprawnień dla tej puli',selectPoolFirst:'Wybierz klaster i pulę, aby zarządzać uprawnieniami',addPoolPerm:'Dodaj uprawnienie puli',editPoolPerm:'Edytuj uprawnienie puli',poolPermSaved:'Uprawnienie puli zapisane',poolPermDeleted:'Uprawnienie puli usunięte',refreshPools:'Odśwież pule z Proxmox',poolCacheRefreshed:'Pamięć podręczna pul odświeżona',confirmDeletePoolPerm:'Usunąć uprawnienie?',subjectType:'Typ',permissionsFor:'Uprawnienia dla',addPermission:'Dodaj uprawnienie',auditLog:'Dziennik audytu',auditLogDescription:'Wszystkie działania użytkowników z ostatnich 90 dni',noAuditLogs:'Brak wpisów audytowych',action:'Akcja',details:'Szczegóły',timestamp:'Znacznik czasu',ipAddress:'Adres IP',userCreated:'Użytkownik utworzony',userUpdated:'Użytkownik zaktualizowany',userDeleted:'Użytkownik usunięty',userLogin:'Logowanie',userLogout:'Wylogowanie',clusterAdded:'Klaster dodany',apiTokenWarningTitle:'Uwierzytelnianie tokenem API',apiTokenWarningDesc:'Bez hasła funkcje SSH nie będą działać (HA, Rolling Updates, SMBIOS, Terminal węzła). Zalecane: użyj root@pam + hasła — PegaProx automatycznie utworzy token API zgodny z 2FA.',apiTokenRecommended:'Zalecane, gdy 2FA jest włączone',apiTokenCreated:'Token API utworzony w PVE — można teraz bezpiecznie włączyć 2FA',sshPasswordStillNeeded:'SSH nadal używa hasła (HA, konserwacja) — nie zmieniaj go',authModeToken:'API: token (zgodny z 2FA)',authModePassword:'API: hasło',sshAuthMode:'SSH: hasło',dontChangePvePassword:'Nie zmieniaj hasła PVE bez zaktualizowania go również tutaj',clusterDeleted:'Klaster usunięty',clusterConfigChanged:'Konfiguracja klastra zmieniona',vmStarted:'VM uruchomiona',vmStopped:'VM zatrzymana',vmRestarted:'VM uruchomiona ponownie',vmCreated:'VM utworzona',vmDeleted:'VM usunięta',vmCloned:'VM sklonowana',vmMigrated:'VM zmigrowana',vmUnlocked:'VM odblokowana',vmLocked:'VM zablokowana',unlockVm:'Odblokuj VM',lockReason:'Powód blokady',unlockWarning:'Ostrzeżenie: odblokowanie VM podczas aktywnej operacji może spowodować uszkodzenie danych lub inne problemy. Kontynuuj tylko wtedy, gdy masz pewność, że operacja zakończyła się niepowodzeniem lub została anulowana.',vmBulkMigrated:'Migracja zbiorcza',vmConfigChanged:'Konfiguracja VM zmieniona',vmSuspended:'VM wstrzymana',vmResumed:'VM wznowiona',vmDiskAdded:'Dysk dodany',vmDiskRemoved:'Dysk usunięty',vmDiskResized:'Rozmiar dysku zmieniony',vmDiskMoved:'Dysk przeniesiony',vmNetworkAdded:'Interfejs sieciowy dodany',vmNetworkRemoved:'Interfejs sieciowy usunięty',vmNetworkUpdated:'Interfejs sieciowy zaktualizowany',removeDiskConfirm:'Na pewno usunąć dysk',detachDisk:'Odłącz',importDisk:'Importuj dysk',importDiskDesc:'Importuj istniejący obraz dysku z magazynu',selectImportStorage:'Wybierz magazyn źródłowy',selectDiskImage:'Wybierz obraz dysku',targetBus:'Magistrala docelowa',reassignOwner:'Przypisz ponownie właściciela',reassignOwnerDesc:'Przypisz dysk do innej VM',targetVm:'Docelowa VM',diskReassigned:'Dysk przypisany ponownie',diskImported:'Dysk zaimportowany',noImportableDisks:'Nie znaleziono obrazów dysków możliwych do importu',reassign:'Przypisz ponownie',import:'Importuj',detachDiskConfirm:'Na pewno odłączyć dysk? Zostanie oznaczony jako nieużywany.',diskDetached:'Dysk odłączony',diskDeleted:'Dysk usunięty',diskAdded:'Dysk dodany',dataWillBeDeleted:'Dane zostaną trwale usunięte!',removeNetworkConfirm:'Na pewno usunąć interfejs sieciowy',snapshotCreated:'Migawka utworzona',snapshotDeleted:'Migawka usunięta',snapshotRestored:'Migawka przywrócona',rollbackStarted:'Rozpoczęto przywracanie migawki',includeRam:'Uwzględnij RAM',snapshotName:'Nazwa migawki',rollbackConfirm:'Czy na pewno przywrócić tę migawkę? Tej operacji nie można cofnąć!',replicationCreated:'Replikacja utworzona',replicationDeleted:'Replikacja usunięta',replicationTriggered:'Replikacja uruchomiona',noFallbackHosts:'Nie znaleziono hostów zapasowych (klaster jednowęzłowy?)',haVmAdded:'VM dodana do HA',haVmRemoved:'VM usunięta z HA',nodeMaintenanceEntered:'Włączono tryb konserwacji węzła',nodeMaintenanceExited:'Wyłączono tryb konserwacji węzła',nodeUpdateStarted:'Aktualizacja węzła rozpoczęta',twoFactorAuth:'Uwierzytelnianie dwuskładnikowe',twoFactorEnabled:'2FA włączone',twoFactorDisabled:'2FA wyłączone',enable2FA:'Włącz 2FA',disable2FA:'Wyłącz 2FA',setup2FA:'Skonfiguruj 2FA',scan2FACode:'Zeskanuj kod QR aplikacją uwierzytelniającą',enter2FACode:'Wprowadź 6-cyfrowy kod',verify2FA:'Zweryfikuj',secretKey:'Klucz tajny',twoFARequired:'Kod 2FA jest wymagany',invalid2FACode:'Nieprawidłowy kod 2FA',force2FA:'Wymuś 2FA',force2FADesc:'Wymagaj od wszystkich użytkowników skonfigurowania uwierzytelniania dwuskładnikowego przed rozpoczęciem korzystania z PegaProx.',force2FAHint:'Użytkownicy OIDC/Entra są wyłączeni z tego wymogu, ponieważ używają MFA swojego dostawcy tożsamości. Użytkownicy bez 2FA zobaczą przy logowaniu okno konfiguracji.',force2FAExcludeAdmins:'Wyłącz konta administratorów',force2FAExcludeAdminsDesc:'Administratorzy mogą korzystać z PegaProx bez 2FA',force2FASetupTitle:'Wymagana konfiguracja 2FA',force2FASetupDesc:'Administrator wymaga uwierzytelniania dwuskładnikowego dla wszystkich użytkowników. Skonfiguruj 2FA, aby kontynuować.',resetPassword:'Zresetuj hasło',passwordManagedExternally:'Twoje hasło jest zarządzane zewnętrznie.',passwordManagedExternallyHint:'Zmień hasło bezpośrednio w usłudze katalogowej.',passwordsDoNotMatch:'Hasła nie są zgodne',passwordTooShort:'Hasło musi mieć co najmniej 4 znaki',passwordResetSuccess:'Hasło zmienione pomyślnie',myProfile:'Mój profil',security:'Bezpieczeństwo',snapshotNotSupported:'Migawki nie są obsługiwane',snapshotWarnings:'Ostrzeżenia dotyczące migawek',filterByUser:'Filtruj według użytkownika',filterByAction:'Filtruj według akcji',allUsers:'Wszyscy użytkownicy',allActions:'Wszystkie akcje',exportAuditLog:'Eksportuj',refreshAuditLog:'Odśwież',addCluster:'Dodaj klaster',addXcpngPool:'Dodaj pulę XCP-ng (wersja testowa)',xcpngConnectHint:'Połącz się z hostem nadrzędnym puli. Domyślnie używany jest port XAPI 443.',xcpngTechPreviewNote:'Niektóre funkcje mogą być ograniczone lub ulec zmianie.',pveClusterDesc:'Maszyny wirtualne i kontenery',pbsDesc:'Zarządzanie kopiami zapasowymi',vmwareDesc:'Infrastruktura ESXi',xcpngDesc:'XCP-ng / Xen Hypervisor (wersja testowa)',addConnection:'Dodaj połączenie',connectionType:'Typ połączenia',clusterManagement:'Zarządzanie klastrami Proxmox VE w PegaProx',overview:'Przegląd',resources:'Zasoby',datacenter:'Centrum danych',settings:'Ustawienia',showing:'Wyświetlanie',perPage:'Na stronę',loadingDatacenter:'Ładowanie danych centrum danych...',subscriptions:'Subskrypcje',clusters:'Klastry',noClusterSelected:'Nie wybrano klastra',allClustersOverview:'Przegląd wszystkich klastrów',multiClusterSummary:'Podsumowanie wszystkich zarządzanych klastrów',clustersConnected:'Połączone klastry',clusterOverview:'Przegląd klastra',vmsRunning:'Uruchomione VM',vmsStopped:'Zatrzymane VM',noClustersConfigured:'Brak skonfigurowanych klastrów',addClusterToStart:'Dodaj klaster, aby rozpocząć',clickClusterTip:'Kliknij wiersz klastra lub wybierz go z paska bocznego, aby wyświetlić szczegółowe informacje i zarządzać zasobami.',health:'Kondycja',average:'Średnia',noDataAvailable:'Brak dostępnych danych',clickToManage:'Kliknij, aby zarządzać',sortBy:'Sortuj według',alerts:'Alerty',updated:'Zaktualizowano',justNow:'przed chwilą',topResources:'Najbardziej obciążone',highestCpuUsage:'Najwyższe użycie CPU i RAM we wszystkich klastrach',clickToOpenVm:'Kliknij, aby otworzyć VM',selectCluster:'Wybierz klaster...',addFirstCluster:'Dodaj pierwszy klaster',connectCluster:'Połącz klaster Proxmox z PegaProx',clusterName:'Nazwa klastra',host:'Host',username:'Nazwa użytkownika',password:'Hasło',passwordOrToken:'Hasło / token',apiTokenHint:'Dla tokenów API: user@realm!tokenid',sslVerification:'Weryfikacja SSL',connecting:'Łączenie...',addNewCluster:'Dodaj nowy klaster',testConnection:'Testuj połączenie',deleteCluster:'Usuń klaster',deleteClusterConfirm:'Na pewno usunąć klaster?',reconfigureCluster:'Skonfiguruj klaster ponownie',repinHostKeys:'Ponownie przypnij klucze hosta SSH',repinHostKeysConfirm:'Wyczyścić przypięte klucze hosta SSH dla tego klastra? Użyj tego po ponownej instalacji lub utwardzeniu węzła, gdy jego klucz hosta SSH się zmienił — następne połączenie nauczy się nowego klucza.',repinHostKeysDone:'Klucze hosta SSH wyczyszczone — następne połączenie przypnie je ponownie',repinHostKeysFailed:'Ponowne przypięcie nie powiodło się',reconfigureHint:'Wprowadź hasło PegaProx, aby potwierdzić swoją tożsamość.',clusterReconfigured:'Klaster skonfigurowany ponownie pomyślnie',reconfigure:'Skonfiguruj ponownie',clusterHealth:'Stan klastra',excellent:'Doskonały',good:'Dobry',warning:'Ostrzeżenie',critical:'Krytyczny',nodesOnline:'Węzły online',nodeJoinHint:'Aby dodać nowy węzeł, uruchom na nim:',avgScore:'Śr. wynik',avgCpu:'Śr. CPU',avgRam:'Śr. RAM',nodes:'Węzły',loadingMetrics:'Ładowanie metryk...',connectionError:'Błąd połączenia',retry:'Ponów',checkConnectionAndRetry:'Sprawdź połączenie i spróbuj ponownie.',connectionTimeout:'Przekroczono limit czasu — Proxmox nieosiągalny',maintenance:'Konserwacja',enterMaintenance:'Włącz tryb konserwacji',exitMaintenance:'Wyłącz tryb konserwacji',maintenanceMode:'Tryb konserwacji',update:'Aktualizuj',startUpdate:'Rozpocznij aktualizację',nodeConfig:'Konfiguracja węzła',cpuHistory:'Historia CPU',ramHistory:'Historia RAM',ksmSharing:'Współdzielenie KSM',diskUsage:'Użycie dysku',allocated:'przydzielone',showMore:'Pokaż więcej',showLess:'Pokaż mniej',virtualMachines:'Maszyny wirtualne',containers:'Kontenery',vm:'VM',lxc:'LXC',lxcContainer:'Kontener LXC',container:'Kontener',guests:'Goście',start:'Uruchom',stop:'Zatrzymaj',shutdown:'Zamknij system',reboot:'Uruchom ponownie',forceStop:'Wymuś zatrzymanie',forceReset:'Wymuś reset',forceStopConfirm:'Na pewno wymusić zatrzymanie? Może to spowodować utratę danych!',migrate:'Migruj',migrateVm:'Migruj VM',crossClusterMigration:'Migracja między klastrami',crossClusterMigrateDesc:'Migruj VM do innego klastra Proxmox',crossClusterMigrate:'Migruj między klastrami',crossClusterStarted:'Migracja między klastrami rozpoczęta',crossClusterFailed:'Migracja między klastrami nie powiodła się',crossClusterLB:'Równoważenie obciążenia między klastrami',crossClusterLBEnabled:'Równoważenie obciążenia między klastrami włączone',crossClusterLBDisabled:'Równoważenie obciążenia między klastrami wyłączone',crossClusterLBThreshold:'Próg wyniku',crossClusterLBInterval:'Interwał sprawdzania',crossClusterLBDryRun:'Symulacja (Dry Run)',crossClusterLBLastRun:'Ostatnie uruchomienie',crossClusterReplication:'Replikacja między klastrami',crossClusterReplicationDesc:'Replikuj migawki VM do innego klastra (DR)',groupOverview:'Przegląd grupy',groupSettings:'Ustawienia grupy',groupSettingsSaved:'Ustawienia grupy zapisane',replicationSchedule:'Harmonogram',replicationRetention:'Retencja',maxMigrations:'Maks. migracji na cykl',lbHistory:'Historia równoważenia',clusterScore:'Wynik klastra',noReplicationJobs:'Brak zadań replikacji',createReplicationJob:'Utwórz zadanie replikacji',replicationStarted:'Replikacja rozpoczęta',replicationJobCreated:'Zadanie replikacji utworzone',replicationJobDeleted:'Zadanie replikacji usunięte',recentLbActions:'Ostatnie działania równoważenia między klastrami',noLbEvents:'Brak zdarzeń równoważenia między klastrami',enableCrossClusterLB:'Włącz równoważenie obciążenia między klastrami',lbDescription:'Automatycznie migruj VM między klastrami po przekroczeniu progów wykorzystania zasobów',dryRunMode:'Tryb Dry Run / symulacja',cpuThreshold:'Próg CPU (%)',lbStatus:'Stan równoważenia obciążenia',lbExplanation:'Równoważenie obciążenia między klastrami monitoruje użycie CPU i RAM we wszystkich klastrach tej grupy. Gdy klaster przekroczy skonfigurowany próg, VM są automatycznie migrowane do mniej obciążonego klastra.',lbDryRunExplanation:'Najpierw włącz tryb Dry Run, aby zobaczyć planowane działania przed uruchomieniem rzeczywistych migracji.',neverRun:'Nigdy nie uruchamiano',newCrossClusterReplication:'Nowa replikacja między klastrami',confirmDeleteXRepl:'Usunąć to zadanie replikacji między klastrami?',confirmDeleteXReplTarget:'Usunąć również zreplikowaną VM po stronie docelowej? OK = usuń replikę VM, Anuluj = pozostaw ją.',targetVmidOptional:'Docelowy VMID (opcjonalnie)',autoNextId:'automatycznie',addDrJob:'Dodaj zadanie DR',scheduleCron:'Harmonogram (cron)',targetStorageHint:'Nazwa magazynu w klastrze docelowym',sourceStorageDefault:'Magazyn źródłowy (domyślnie)',maxMigrationsHint:'Ogranicz liczbę VM przenoszonych w każdym cyklu sprawdzania (1–5)',proxlbCredit:'ProxLB by gyptazy',proxlbCreditDesc:'Funkcja równoważenia obciążenia jest oparta na znakomitej pracy projektu ProxLB. Szczególne podziękowania dla gyptazy za stworzenie i udostępnienie tego narzędzia jako open source!',xReplCreated:'Replikacja między klastrami utworzona',xReplDeleted:'Replikacja między klastrami usunięta',xReplStarted:'Replikacja między klastrami rozpoczęta',xReplCreateFailed:'Nie udało się utworzyć zadania',xReplDeleteFailed:'Usuwanie nie powiodło się',xReplStartFailed:'Nie udało się uruchomić',lastRunPrefix:'Ostatnio',runNow:'Uruchom teraz',loadingCrossClusterResources:'Ładowanie magazynów/sieci dla wszystkich klastrów...',noCommonStorages:'Nie znaleziono wspólnego magazynu dostępnego we wszystkich klastrach',noCommonBridges:'Nie znaleziono wspólnego mostu dostępnego we wszystkich klastrach',selectBridge:'Wybierz most...',crossClusterThresholdDesc:'Próg CPU dla nierównowagi między klastrami (10–80%)',crossClusterIntervalDesc:'Czas między cyklami sprawdzania',crossClusterMaxMigrationsDesc:'Maks. liczba migracji na cykl sprawdzania',commonStorageHint:'Tylko magazyny dostępne we wszystkich klastrach tej grupy',commonBridgeHint:'Tylko mosty dostępne we wszystkich klastrach tej grupy',includeContainers:'Uwzględnij kontenery',includeContainersDesc:'Uwzględniaj kontenery LXC w równoważeniu między klastrami',containerMigrationWarning:'Kontenery są restartowane podczas migracji (przestój)',excludedVMsCrossCluster:'Wykluczone VM/kontenery',excludedVMsCrossClusterDesc:'VM i kontenery wykluczone z automatycznego równoważenia między klastrami',clusterExcludedVMs:'Wykluczone VM',noExcludedVMsInGroup:'Brak wykluczonych VM',simulationMode:'Tryb symulacji',sourceVm:'Źródłowa VM',targetCluster:'Klaster docelowy',targetNode:'Węzeł docelowy',targetStorage:'Magazyn docelowy',targetBridge:'Mostek docelowy',moveDisk:'Przenieś dysk',resizeDisk:'Zmień rozmiar dysku',currentSize:'Bieżący rozmiar',diskResized:'Rozmiar dysku zmieniony',deleteSourceDisk:'Usuń źródło po przeniesieniu',deleteSourceDiskWarning:'Oryginalny dysk pozostanie w magazynie źródłowym. Możesz usunąć go ręcznie później.',move:'Przenieś',from:'z',noNetworkInterfaces:'Brak interfejsów sieciowych',nameRequired:'Nazwa jest wymagana',newVmid:'Nowy VMID (opcjonalnie)',sameIdPlaceholder:'Puste = ten sam ID',liveMigrationOption:'Migracja na żywo (VM pozostaje uruchomiona)',deleteSourceAfter:'Usuń źródłową VM po migracji',largeDiskWarning:'Wykryto duży dysk',largeDiskExplanation:'Migracja na żywo dysków >100 GB może nie powieść się z błędem „401 Unauthorized” z powodu wygaśnięcia biletu WebSocket Proxmox. Serwer automatycznie użyje migracji offline, chyba że wymusisz tryb online.',forceOnlineMigration:'Mimo to wymuś migrację online (może się nie powieść)',autoTokenInfo:'PegaProx automatycznie tworzy tymczasowe tokeny API na potrzeby migracji i usuwa je po zakończeniu.',clusterReachableInfo:'Klastry muszą być wzajemnie osiągalne przez sieć. Skonfigurowany użytkownik musi mieć uprawnienia do tworzenia tokenów API.',selectNode:'Wybierz węzeł',selectStorage:'Wybierz magazyn...',loadingNodes:'Ładowanie węzłów docelowych...',loadingStorageNetwork:'Ładowanie magazynów/sieci...',liveMigration:'Migracja na żywo (bez przestoju)',on:'na',sameAsSource:'Tak samo jak źródło',loadingStorages:'Ładowanie magazynów',free:'Wolne',withLocalDisks:'Z dyskami lokalnymi',withLocalDisksDesc:'Migruj lokalne dyski do magazynu docelowego',localDisksDetected:'Ta VM ma lokalne dyski. Migracja wymaga skopiowania danych dysków.',requiredForThisVm:'Wymagane dla tej VM',cdDvdMounted:'Zamontowany napęd CD/DVD',cdDvdMigrationWarning:'Migracja na żywo nie jest możliwa z zamontowanym CD/DVD. Najpierw wysuń CD/DVD albo użyj migracji offline.',isoMounted:'Zamontowane ISO/CD-ROM',changeIso:'Zmień ISO',isoEjected:'CD-ROM wysunięty',isoMigrationWarning:'Migracja może się nie powieść, jeśli ISO nie jest dostępne na węźle docelowym. Wysuń CD/DVD albo upewnij się, że ISO znajduje się na współdzielonym magazynie.',detachedDisksTitle:'Odłączone dyski/ISO nadal używane w konfiguracji',detachedDisksWarning:'PVE zachowuje odłączone woluminy jako odwołania `unused*` w konfiguracji VM. Migracja między klastrami próbuje przenieść je razem z VM — jeśli którykolwiek znajduje się na magazynie lokalnym, operacja zakończy się mało czytelnym błędem „storage does not support vm images”. Usuń je w VM → Konfiguracja → Sprzęt → Nieużywane dyski przed rozpoczęciem migracji.',localStorage:'Lokalny',bootOrderIssue:'Problem z kolejnością rozruchu',bootOrderWarning:'Kolejność rozruchu odwołuje się do nieistniejących dysków',bootOrder:'Kolejność rozruchu',dragToReorder:'Kliknij, aby przełączyć, użyj strzałek do zmiany kolejności',noBootDevices:'Nie znaleziono urządzeń rozruchowych',resizeDiskHint:'Zwiększ o (np. +10G) lub podaj nowy rozmiar',smbiosSettings:'Ustawienia SMBIOS',smbiosHint:'System Management BIOS — przydatny do licencjonowania Windows i identyfikacji VM',applySmbiosFromClusterConfig:'Zastosuj ustawienia SMBIOS z konfiguracji klastra',requiresRestart:'WYMAGA RESTARTU',readOnly:'tylko do odczytu',autoGenerated:'generowane automatycznie',smbiosFormatHint:'Dozwolone są tylko litery i cyfry (A-Za-z0-9)',preview:'Podgląd',currentValue:'Bieżąca wartość',managedByProxmox:'zarządzane przez Proxmox',willBeAutoGenerated:'Zostanie wygenerowane automatycznie podczas zapisu',forceConntrack:'Wymuś (stan Conntrack)',forceConntrackDesc:'Wymuś migrację nawet wtedy, gdy istnieją wpisy conntrack',containerNoLiveMigration:'Kontenery nie obsługują prawdziwej migracji na żywo',startingMigration:'Rozpoczynanie migracji',migrationStarted:'Migracja rozpoczęta',migrationFailed:'Migracja nie powiodła się',clone:'Klonuj',openConsole:'Otwórz konsolę',spiceConsole:'Konsola SPICE',spiceConsoleHint:'Pobierz plik virt-viewer (audio / USB / wiele monitorów)',spiceDownloaded:'Plik SPICE pobrany — otwórz go w Virt-Viewer',spiceUnavailable:'SPICE nie jest dostępny dla tej VM',metrics:'Metryki',config:'Konfiguracja',configuration:'Konfiguracja',createVm:'Utwórz nową VM',createContainer:'Utwórz nowy kontener',newVm:'Nowa VM',newContainer:'Nowy kontener',power:'Zasilanie',snapshot:'Migawka',editSettings:'Ustawienia',refreshData:'Odśwież dane',sshConsole:'Konsola SSH',noNodesAvailable:'Brak dostępnych węzłów. Poczekaj na załadowanie danych klastra.',loadingStorage:'Ładowanie listy magazynów...',noIsoAvailable:'Nie znaleziono obrazów ISO',noTemplateAvailable:'Nie znaleziono szablonów',noStorageAvailable:'Brak dostępnych magazynów',noIsoStorage:'Nie znaleziono magazynu zawierającego obrazy ISO',ram:'RAM',cpu:'CPU',disk:'Dysk',next:'Dalej',back:'Wstecz',required:'Wymagane',timeFormat:'Format czasu',collapseNodesDefault:'Domyślnie zwijaj węzły',collapseNodesDefaultDesc:'Widok klastra otwiera się ze wszystkimi węzłami zwiniętymi',collapseNodesOn:'Węzły będą domyślnie zwinięte',collapseNodesOff:'Węzły będą domyślnie rozwinięte',timeFormatDesc:'Format zegara 24- lub 12-godzinny',timeFormatChanged:'Format czasu zaktualizowany',guestOs:'System operacyjny gościa',isoImage:'Obraz ISO',noIso:'Bez ISO',virtioDrivers:'Sterowniki VirtIO ISO (Windows)',noVirtioDrivers:'Bez sterowników VirtIO',allIsos:'Wszystkie obrazy ISO',virtioDriversHint:'Zostanie zamontowane jako dodatkowy CD-ROM do instalacji sterowników Windows',advancedCpu:'Zaawansowane ustawienia CPU',extraCpuFlags:'Dodatkowe flagi CPU',extraCpuFlagsHint:'Kliknij, aby przełączać stan flagi: domyślnie → włączona (+) → wyłączona (−). Wymaga restartu VM.',proxlbTags:'Tagi VM ProxLB',proxlbTagsDesc:'Twórz reguły affinity, anti-affinity, ignorowania i przypięcia na podstawie tagów VM zgodnych z ProxLB. Wyłączone = bez wpływu.',proxlbTagAffinity:'utrzymuj oznaczone maszyny razem',proxlbTagAnti:'utrzymuj oznaczone maszyny osobno',proxlbTagIgnore:'nigdy nie migruj tej maszyny automatycznie',proxlbTagPin:'ogranicz tę maszynę do wskazanego węzła',testDisconnectNics:'Odłącz interfejsy sieciowe podczas testowego failover',testDisconnectNicsDesc:'Uruchamiaj klony testowego failover z odłączoną siecią (link down), aby test DR nie kolidował z produkcyjnymi adresami IP.',cpuAffinity:'Przypisanie CPU',cpuAffinityHint:'Przypnij vCPU do określonych CPU hosta',enableNuma:'Włącz NUMA',advancedMemory:'Zaawansowane ustawienia pamięci',minimumMemory:'Minimalna pamięć',sameAsMemory:'Taka sama jak pamięć VM (bez ballooningu)',minimumMemoryHint:'Dolny limit dynamicznego przydziału pamięci',ballooningDevice:'Urządzenie ballooning',memoryShares:'Udziały pamięci',memorySharesHint:'Waga automatycznego przydziału pamięci (0–50000, domyślnie: 1000)',primaryDisk:'Dysk podstawowy',additionalDisk:'Dodatkowy dysk',addDisk:'Dodaj dysk',macAddress:'Adres MAC',multiqueueHint:'1–64 kolejek (tylko VirtIO)',autoGenerate:'Generuj automatycznie (pozostaw puste)',advancedNetwork:'Zaawansowane ustawienia sieci',inheritBridge:'Dziedzicz z mostka',rateLimit:'Limit prędkości (MB/s)',unlimited:'Bez limitu',noLinkOnStart:'Brak połączenia sieciowego przy starcie',highAvailability:'Wysoka dostępność (HA)',enableHa:'Dodaj do natywnego HA Proxmox',haGroup:'Grupa HA',defaultGroup:'Grupa domyślna (pozostaw puste)',mountPoint:'Punkt montowania',addMountPoint:'Dodaj punkt montowania',path:'Ścieżka',busType:'Magistrala / typ',size:'Rozmiar',format:'Format',storageDefault:'Domyślny magazyn',bestPerformance:'najlepsza wydajność',bridge:'Mostek',model:'Model',vlanTag:'Tag VLAN (opcjonalnie)',vlanExample:'np. 100',enableFirewall:'Włącz zaporę',cpuType:'Typ CPU',machineType:'Typ maszyny',efiSettings:'Ustawienia UEFI/EFI',efiDiskStorage:'Magazyn dysku EFI',preEnrollKeys:'Wstępnie zarejestruj klucze Microsoft (SecureBoot)',tpmSettings:'TPM (Trusted Platform Module)',enableTpm:'Włącz TPM',tpmStorage:'Magazyn TPM',tpmVersion:'Wersja TPM',recommended:'Zalecane',win11NeedsTpm:'Windows 11 wymaga TPM 2.0',efiTpmSettings:'Ustawienia EFI i TPM',efiDisk:'Dysk EFI',tpmChip:'Układ TPM',configured:'Skonfigurowano',noEfiDisk:'Brak skonfigurowanego dysku EFI',addEfiDisk:'Dodaj dysk EFI',efiDiskRequired:'Wymagany do rozruchu UEFI. Jeśli nie został skonfigurowany, zostanie utworzony automatycznie przy pierwszym uruchomieniu.',efiDiskInfo:'Dysk EFI przechowuje zmienne firmware UEFI i jest wymagany do rozruchu UEFI. Rozmiar jest automatycznie ustawiany na 4 MB.',efiDiskAdded:'Dysk EFI dodany',noTpm:'Brak skonfigurowanego TPM',addTpm:'Dodaj TPM',tpmInfo:'TPM (Trusted Platform Module) jest wymagany przez Windows 11 i zapewnia sprzętowe funkcje bezpieczeństwa, takie jak BitLocker.',tpmAdded:'TPM dodany',confirmDeleteEfiDisk:'Usunąć dysk EFI? Może to uniemożliwić uruchomienie VM.',confirmDeleteTpm:'Usunąć TPM? Windows 11 i BitLocker przestaną działać.',efiDiskDeleted:'Dysk EFI usunięty',tpmDeleted:'TPM usunięty',enableQemuAgent:'Włącz QEMU Guest Agent',startOnBoot:'Uruchamiaj przy starcie',startAfterCreate:'Uruchom po utworzeniu',installMethod:'Metoda instalacji',fromTemplate:'Z szablonu',fromIso:'Z ISO',osType:'Typ systemu operacyjnego',osTypeHint:'Wybiera odpowiedni wbudowany szablon ustawień platformy',selectIso:'Wybierz ISO...',selectTemplate:'Wybierz szablon...',pxeHint:'VM uruchomi się z sieci (PXE). Upewnij się, że w wybranej sieci dostępny jest serwer PXE/DHCP.',virtualDisk:'Dysk wirtualny',storageRepository:'Repozytorium pamięci masowej',storageRepos:'Repozytoria pamięci masowej',createSr:'Utwórz SR',srType:'Typ SR',srHint:'Repozytoria pamięci masowej są zarządzane przez XAPI. Możesz tworzyć magazyny NFS, iSCSI lub lokalne.',nfsVersion:'Wersja NFS',exportPath:'Ścieżka eksportu',rootPassword:'Hasło root',sshPublicKeys:'Publiczne klucze SSH',loadSshKeyFile:'Wczytaj plik klucza SSH',sshKeyHintMultiple:'Jeden klucz w każdym wierszu. Wklej lub wczytaj z pliku.',dropKeyFileHere:'Upuść tutaj plik klucza lub kliknij',keyLoaded:'Klucz wczytany',lines:'wierszy',keyPassphrase:'Hasło klucza',optional:'opcjonalnie',ifKeyEncrypted:'Jeśli klucz jest zaszyfrowany...',connect:'Połącz',dnsDomain:'Domena DNS',dnsServers:'Serwery DNS',useHostSettings:'Użyj ustawień hosta',dnsServersHint:'Lista serwerów DNS oddzielona spacjami',disconnected:'Rozłączony',clustersDisconnectedNamed:'{count} rozłączonych klastrów: {names}',nodesOfflineNamed:'{count} węzłów offline: {names}',andNMore:'{names}, +{more} więcej',pluginUnavailable:'Frontend wtyczki niedostępny',pluginUnavailableDesc:'Wtyczka mogła zostać wyłączona lub wyładowana.',manual:'Ręcznie',dockerSupport:'Obsługa Dockera',keyctlDesc:'wymagane dla Dockera w nieuprzywilejowanym LXC',fuseDesc:'zezwalaj na montowanie FUSE wewnątrz kontenera',used:'użyte',total:'Łącznie',cpuCoresLabel:'Rdzenie CPU',swapMemory:'Swap (MB)',unprivileged:'Nieuprzywilejowany',unprivilegedHint:'Bezpieczniejszy, ale z ograniczoną funkcjonalnością',nesting:'Zagnieżdżanie',nestingHint:'Pozwala uruchamiać Docker/LXC wewnątrz LXC',ipConfig:'Konfiguracja IP',useDhcp:'Użyj DHCP',gateway:'Brama',lvmZfsIgnoreFormat:'LVM/ZFS ignorują format',sameNode:'ten sam węzeł',crossNodeCloneWarning:'Klonowanie między węzłami wymaga współdzielonego magazynu (NFS, Ceph itp.). Magazyn lokalny nie zadziała!',willBeCloned:'zostanie sklonowana',newVmId:'Nowe ID VM',cloneMode:'Tryb klonowania',fullClone:'Pełny klon',fullCloneDesc:'Niezależna kopia wszystkich danych',linkedClone:'Klon powiązany',linkedCloneDesc:'Szybszy, wymaga obrazu bazowego',onlyForVms:'Dostępne tylko dla VM',cloneNotes:'Notatki do klonu...',gridView:'Widok siatki',listView:'Widok listy',compactView:'Widok kompaktowy',selectVmFromList:'Wybierz VM z listy',selectAll:'Zaznacz wszystko',deselectAll:'Odznacz wszystko',selectedItems:'wybrano',bulkActions:'Akcje zbiorcze',quickActions:'Szybkie akcje',moreActions:'Więcej akcji',xOfYResources:'z',resourcesLabel:'Zarządzanie zasobami',startClone:'Rozpocznij klonowanie',vmStillRunning:'VM nadal działa. Zostanie zatrzymana przed usunięciem.',ctStillRunning:'Kontener nadal działa. Zostanie zatrzymany przed usunięciem.',confirmDelete:'Potwierdź usunięcie',reallyDelete:'Na pewno usunąć?',connectionFailed:'Połączenie nie powiodło się',cluster2FAHint:'Na tym koncie Proxmox włączone jest uwierzytelnianie dwuskładnikowe (2FA), dlatego logowanie hasłem nie może być użyte do dostępu przez API. Dodaj klaster przy użyciu tokenu API (Datacenter → Permissions → API Tokens) albo tymczasowo wyłącz 2FA na koncie, dodaj klaster — PegaProx automatycznie utworzy token API — a następnie ponownie włącz 2FA.',smartNotAvailable:'Dane SMART są niedostępne',smartFetchError:'Błąd pobierania danych SMART',cloneFailed:'Klonowanie nie powiodło się',forceStopFailed:'Wymuszone zatrzymanie nie powiodło się',forceStopping:'Wymuszanie zatrzymania...',bulkMigrationFailed:'Migracja zbiorcza nie powiodła się',bulkMigration:'Migracja zbiorcza',vmsSelected:'Wybrane VM',migrateVms:'Migruj VM',startingBulkMigration:'Rozpoczynanie migracji zbiorczej',creationFailed:'Tworzenie nie powiodło się',actionFailed:'Operacja nie powiodła się',autoDetectionFailed:'Automatyczne wykrywanie nie powiodło się',clusterOffline:'Klaster nieosiągalny',connectionClosed:'Połączenie zakończone',connectionLostUnexpected:'Połączenie zostało nieoczekiwanie przerwane',shellConnectingAs:'Łączenie jako',waitingForWsConnection:'Oczekiwanie na połączenie WebSocket...',connectingToServer:'Łączenie z serwerem...',sshConnecting:'Nawiązywanie połączenia SSH...',unexpectedDisconnect:'Połączenie zostało nieoczekiwanie zamknięte',serverError:'Błąd serwera',switchTabToReconnect:'Przełącz zakładkę i wróć, aby połączyć ponownie',deleteInterfaceConfirm:'Na pewno usunąć interfejs?',noMigrationsYet:'Brak migracji',olderMigrations:'starsze migracje',paused:'Wstrzymano',performanceMetrics:'Metryki wydajności',hour:'Godzina',day:'Dzień',week:'Tydzień',month:'Miesiąc',year:'Rok',tags:'Tagi',description:'Opis',changesRequireRestart:'Uwaga: niektóre zmiany wymagają ponownego uruchomienia',manageTags:'Zarządzaj tagami',noTags:'Brak tagów',newTag:'Nowy tag...',existingTags:'Istniejące tagi',schedules:'Harmonogramy',scheduledActions:'Zaplanowane akcje',newSchedule:'Nowy harmonogram',editSchedule:'Edytuj harmonogram',noSchedules:'Brak zaplanowanych akcji',noSchedulesDesc:'Twórz harmonogramy automatycznego uruchamiania, zatrzymywania lub tworzenia migawek VM',createFirstSchedule:'Utwórz pierwszy harmonogram',scheduleCreated:'Harmonogram utworzony',scheduleDeleted:'Harmonogram usunięty',scheduleType:'Typ harmonogramu',daily:'Codziennie',weekdays:'Dni robocze',weekends:'Weekendy',weekly:'Co tydzień',once:'Jednorazowo',forOnce:'jednorazowo',forWeekly:'co tydzień',days:'Dni',lastRun:'Ostatnie uruchomienie',reports:'Raporty',insights:'Analizy',statusCritical:'Krytyczny',statusWarning:'Ostrzeżenie',statusTrendingUp:'Trend wzrostowy',statusOverThreshold:'Powyżej progu',statusDecreasing:'Spadek',statusStable:'Stabilny',insightsDesc:'Rekomendacje dotyczące doboru zasobów i prognozy pojemności na podstawie 30 dni danych historycznych.',insightsLoading:'Ładowanie…',insightsNotEnoughData:'Za mało danych historycznych metryk. Kolektor pobiera próbki co 5 minut — poczekaj lub wykonaj migawkę.',insightsNoData:'Brak rekomendacji — kolektor nadal zbiera dane (potrzeba co najmniej 2 godz. na VM).',insightsAllOk:'Wszystkie VM wyglądają na właściwie dobrane 👌',templateLibrary:'Biblioteka szablonów Cloud-Init',templateLibraryDesc:'Wyselekcjonowany katalog obrazów chmurowych. Jedno kliknięcie wdraża w klastrze gotowy do klonowania szablon.',templateDeploy:'Wdróż',templateDeployStart:'Rozpocznij wdrażanie',templateDeployStarted:'Wdrażanie rozpoczęte',templateDeployFailed:'Wdrażanie nie powiodło się',templateDeployHint:'PegaProx połączy się z węzłem przez SSH, pobierze obraz chmurowy, utworzy VM i przekonwertuje ją na szablon. Zwykle trwa to 1–3 minuty.',templateDeployments:'Ostatnie wdrożenia',templateAlreadyDeployed:'wdrożono',autoAssign:'automatycznie',notifications:'Powiadomienia',markAllRead:'oznacz wszystkie jako przeczytane',browserPush:'Powiadomienia push w przeglądarce',pushActive:'włączone — alerty będą wysyłane na to urządzenie',pushInactive:'wyłączone',pushEnabled:'Powiadomienia push w przeglądarce włączone',pushDisabled:'Powiadomienia push w przeglądarce wyłączone',pushBlocked:'Powiadomienia zablokowane w ustawieniach przeglądarki',pushNotSupported:'Powiadomienia push nie są tutaj obsługiwane',pushPermissionDenied:'Brak uprawnień',pushTestSent:'Testowe powiadomienie wysłane',inboxEmpty:'Brak powiadomień',test:'Test',templateAddCustom:'Dodaj własny szablon',templateAddDesc:'Dodaj własny obraz chmurowy do katalogu. Obsługiwane jest wszystko, co Proxmox może pobrać przez wget i zaimportować przez qm importdisk.',templateAddRequired:'Nazwa i adres URL obrazu są wymagane',templateAdded:'Szablon dodany',templateAddFailed:'Nie udało się dodać',templateAdd:'Dodaj',templateImageUrl:'Adres URL obrazu',templateImageUrlHint:'Bezpośredni adres URL obrazu cloud-init .qcow2 / .img',cloudInitDrive:'Dysk Cloud-Init',cloudInitDriveAdded:'Dodano dysk Cloud-Init',cloudInitDriveAddFailed:'Nie udało się dodać dysku Cloud-Init',cloudInitDriveRemoved:'Usunięto dysk Cloud-Init',cloudInitDriveRemoveFailed:'Nie udało się usunąć dysku Cloud-Init',confirmDeleteCloudInitDrive:'Usunąć ten dysk Cloud-Init?',noCloudInitDrive:'Brak skonfigurowanego dysku Cloud-Init',addCloudInitDrive:'Dodaj dysk Cloud-Init',cloudInitDiskFormat:'Format',cloudInitDiskFormatLockedHint:'Ten typ magazynu obsługuje tylko jeden format.',templateDistro:'Dystrybucja',templateDefaultUser:'Domyślny użytkownik',templateCores:'Rdzenie',templateMemoryMb:'RAM (MB)',templateDiskGb:'Dysk (GB)',templateTags:'Tagi',templateCustomBadge:'własny',templateDeleteCustom:'Usuń własny szablon',templateDeleteConfirm:'Usunąć ten własny szablon?',templateDeleted:'Szablon usunięty',version:'Wersja',commaSeparated:'oddzielone przecinkami',noStoragesAvailable:'brak magazynów obrazów na tym węźle',costDashboard:'Panel kosztów',costDashboardDesc:'Szacunkowe rozliczenie kosztów dla każdej VM/CT na podstawie historii metryk i skonfigurowanych stawek.',costRates:'Stawki',costRatesTitle:'Stawki kosztów dla',costRatesHint:'Stawki są definiowane dla klastra. Pozostaw wartości domyślne, aby użyć ustawień globalnych. Kwoty podawane są w wybranej walucie.',costRatesSaved:'Stawki zapisane',costRatesSaveFailed:'Nie udało się zapisać',costCpuRate:'CPU za rdzeń·godzinę',costMemRate:'Pamięć za GB·godzinę',costStorageRate:'Magazyn za GB·miesiąc',costMonthly:'Miesięcznie',costMonthlyTotal:'Łącznie miesięcznie',costPerVm:'Na VM',costNoData:'Brak historii metryk dla tego klastra — kolektor pobiera próbki co 5 minut.',costByNode:'Koszt według węzła',costCpu:'CPU',costMemory:'Pamięć',costStorage:'Magazyn',currency:'Waluta',notes:'Notatki',lastDay:'ostatnie 24 godz.',last7Days:'ostatnie 7 dni',last14Days:'ostatnie 14 dni',last30Days:'ostatnie 30 dni',windowExtrapolated:'ekstrapolowano na podstawie',lowDataWarning:'ograniczona liczba próbek',noVmsFound:'Brak VM w tym zakresie',at:'o',driftDetection:'Wykrywanie zmian konfiguracji',driftDetectionDesc:'Co noc wykonuje migawkę konfiguracji klastra i wykrywa zmiany względem bazowej konfiguracji ustawionej przez administratora.',driftKindVm:'Konfiguracja VM',driftKindStorage:'Magazyn',driftKindNetwork:'Sieć',driftKindCluster:'Opcje klastra',driftScan:'Skanuj teraz',driftScanned:'Skanowanie zakończone',driftScanFailed:'Skanowanie nie powiodło się',driftSeeded:'utworzono konfigurację bazową',driftOpen:'otwarte',driftAck:'Potwierdź',driftAcknowledged:'Potwierdzono',driftAcknowledged2:'potwierdzono',driftAcknowledgedBy:'Potwierdzone przez',driftPromote:'Ustaw jako bazową',driftPromoted:'Ustawiono jako konfigurację bazową',driftSetBaseline:'Resetuj konfigurację bazową',driftBaselineConfirm:'Ustawić bieżący stan klastra jako nową konfigurację bazową? Otwarte zdarzenia zostaną oznaczone jako zastąpione.',driftBaselineDone:'Konfiguracja bazowa zresetowana',driftBaselineFailed:'Nie udało się ustawić konfiguracji bazowej',driftEvents:'zdarzenia',driftNoOpen:'Brak otwartych zmian. Klaster jest zgodny z konfiguracją bazową.',driftNoBaseline:'Nie ustawiono jeszcze konfiguracji bazowej. Kliknij „Skanuj teraz”, aby zapisać bieżący stan jako punkt odniesienia.',driftNoEvents:'Brak zdarzeń dla tego filtra.',driftOpAdded:'dodano',driftOpRemoved:'usunięto',driftOpChanged:'zmieniono',exportCsv:'Eksport CSV',auditSearchQuery:'Przeszukaj dziennik audytu…',auditDateFrom:'Od',auditDateTo:'Do',auditAnySeverity:'dowolny poziom',clearFilters:'Wyczyść',prev:'Poprzednia',siemTitle:'Przekazywanie do SIEM',siemDesc:'Przekazuj zdarzenia audytowe do syslog / Splunk / Elastic / Loki lub ogólnych webhooków. Obsługiwanych jest wiele celów.',siemAddTarget:'Dodaj cel',siemEditTarget:'Edytuj cel',siemNoTargets:'Brak skonfigurowanych celów. Zdarzenia audytowe pozostają wyłącznie w bazie danych.',siemRequiredFields:'nazwa i endpoint są wymagane',siemSaved:'Cel zapisany',siemSaveFailed:'zapis nie powiódł się',siemDeleted:'Usunięto',siemDeleteConfirm:'Usunąć ten cel SIEM?',siemTestOk:'Zdarzenie testowe dostarczone',siemTestFailed:'Test nie powiódł się',siemType:'Typ',siemEndpoint:'Endpoint',siemSent:'wysłano',siemErrors:'błędy',siemLastOk:'ostatnio OK',siemLastError:'ostatni błąd',siemVerifyTls:'Weryfikuj certyfikat TLS',siemVerifyTlsHint:'(wyłącz tylko dla zaufanych, samopodpisanych systemów SIEM)',snapPoliciesTitle:'Harmonogramy migawek',snapPoliciesDesc:'Automatycznie twórz migawki VM/CT według tagu lub listy VMID i usuwaj stare zgodnie z retencją. Tańsze niż PBS dla krótkich okien szybkiego przywracania.',snapPolicyNew:'Nowa polityka',snapPolicyEdit:'Edytuj politykę',snapPolicyNone:'Brak skonfigurowanych polityk migawek.',snapPolicyRequired:'nazwa i cel są wymagane',snapPolicySaved:'Polityka zapisana',snapPolicySaveFailed:'Zapis nie powiódł się',snapPolicyDeleteConfirm:'Usunąć tę politykę migawek?',snapPolicyDeleted:'Usunięto',snapPolicyRunStarted:'Uruchomiono — odśwież za kilka sekund',snapTargetType:'Typ celu',snapTargetTag:'tag',snapTargetVm:'VMID',snapTargetTagLabel:'Nazwa tagu',snapTargetVmidsLabel:'VMID (oddzielone przecinkami)',replicationOverview:'Replikacja',replicationOverviewDesc:'Szybki podgląd stanu wszystkich zadań replikacji — lokalnych i między klastrami.',replLocal:'Replikacja lokalna',replCross:'Replikacja między klastrami',replLastSync:'Ostatnia synchronizacja',replLastRun:'Ostatnie uruchomienie',replTotal:'Łącznie',replStateOk:'OK',replStateFailed:'Niepowodzenie',replStateNever:'Nigdy nie uruchamiano',replFromTo:'Źródło → Cel',replNoJobs:'Nie znaleziono zadań replikacji.',snapSchedule:'Harmonogram',snapSchedMonthly:'miesięcznie',snapSchedOnce:'jednorazowo',snapSchedCron:'cron',snapDayOfMonth:'Dzień miesiąca (1–31)',snapCronExpr:'Wyrażenie cron (min godz. dzień-mies. miesiąc dzień-tyg.)',snapCronHint:'np. „0 3 * * *” codziennie 03:00 · „*/15 * * * *” co 15 min · „0 2 * * 1-5” dni robocze 02:00',snapRunOnceAt:'Uruchom jednorazowo o',snapPruneOnly:'Tylko czyszczenie — nie twórz migawek, usuń jedynie stare zgodnie z retencją',snapSchedHourly:'co godzinę',snapSchedDaily:'codziennie',snapSchedWeekly:'co tydzień (niedziela)',snapAt:'O godzinie (HH:MM)',snapKeepCount:'Zachowaj ostatnie N',snapKeepDays:'Lub N dni (0=wyłączone)',snapIncludeRam:'Uwzględnij RAM (tylko QEMU — wolniej, ale spójnie)',history:'Historia',topologyTitle:'Topologia sieci',topologyDesc:'Klaster → węzły → mosty/bondy/SDN → VM. Kliknięcie elementu podświetla jego połączenia.',topologyDetails:'Wybrane',powerTitle:'Energia i CO₂',powerDesc:'Szacowane zużycie energii i emisja CO₂ dla każdej VM na podstawie historii metryk, profilu mocy węzła, PUE i emisyjności energii.',powerNoData:'Brak historii metryk dla tego klastra.',powerMonthlyKwh:'Miesięczne kWh',powerMonthlyCost:'Miesięczny koszt',powerMonthlyCo2:'Miesięczne CO₂',powerVmCount:'Uwzględnione VM',powerByNode:'Według węzła',powerPerVm:'Na VM',powerHoursRunning:'Godziny pracy',powerRates:'Stawki',powerRatesTitle:'Stawki energii i CO₂',powerRatesSaved:'Stawki zapisane',powerRatesHint:'Domyślnie: 80 W bezczynności / 300 W maks. na węzeł, 0,3 W/GB RAM, PUE 1,5, 0,30 €/kWh, 0,4 kg CO₂/kWh. Dostosuj do swojego sprzętu i dostawcy energii.',powerNodeIdleW:'Moc węzła w bezczynności (W)',powerNodeMaxW:'Maks. moc węzła (W)',powerMemWPerGb:'Moc pamięci na GB (W)',powerPue:'PUE (1,0–2,5)',powerKwhPrice:'Cena za kWh',powerCo2PerKwh:'kg CO₂ / kWh',drDrillRun:'Test DR',drDrillTitle:'Test DR',drDrillSubtitle:'Kontrolowany test sprawdzający, czy plan odtwarzania awaryjnego zadziałałby po uruchomieniu. Generuje materiał dowodowy do analizy BCM/DR.',drDrillRunning:'Trwa sprawdzanie…',drDrillWaiting:'Oczekiwanie na pierwsze wyniki…',drDrillSummary:'Podsumowanie',drDrillExecutor:'Wykonawca',drDrillRpoBreach:'Przekroczenie RPO',drDrillRto:'Szacowane RTO',drDrillExportPdf:'Eksportuj raport PDF',drDrillPdfTitle:'Raport z testu DR',drDrillChecks:'Kontrole testu',drDrillCategory:'Kategoria',drDrillCheck:'Kontrola',drDrillVerdict:'Wynik',drDrillMessage:'Komunikat',insightsTakeSnapshot:'Utwórz migawkę teraz',insightsSnapshotTaken:'Migawka utworzona',insightsSnapshotFailed:'Tworzenie migawki nie powiodło się',capacityForecast:'Prognoza pojemności',rightSizing:'Rekomendacje doboru zasobów',rightSizingFlags:'flagi',snapshots:'Migawki',oversizedCpu:'Za dużo CPU',oversizedMem:'Za dużo RAM',undersizedCpu:'Za mało CPU',undersizedMem:'Za mało RAM',idle:'Bezczynne',noData:'Brak danych',trend:'Trend',etaTo:'Szacowany czas do',noEtaCalculable:'brak możliwości oszacowania',reportsAnalytics:'Raporty i analityka',siteRecovery:'Odtwarzanie awaryjne',siteRecoveryDesc:'Plany odtwarzania awaryjnego i orkiestracja failover',plugins:'Wtyczki',noPlugins:'Nie wykryto wtyczek. Umieść katalogi wtyczek w katalogu plugins/.',enablePluginsHint:'Włącz wtyczki w Ustawienia → Serwer → Wtyczki',pluginDisclaimer:'PegaProx nie ponosi odpowiedzialności za wtyczki społecznościowe. Administrator powinien zawsze przejrzeć i przeskanować kod wtyczki przed jej włączeniem. Instaluj tylko wtyczki z zaufanych źródeł.',pluginAuthor:'autor',recoveryPlans:'Plany odtwarzania',createPlan:'Utwórz plan',editPlan:'Edytuj plan',deletePlan:'Usuń plan',planName:'Nazwa planu',sourceCluster:'Klaster źródłowy',networkMappings:'Mapowania sieci',storageMappings:'Mapowania magazynów',protectedVMs:'Chronione VM',bootGroup:'Grupa rozruchowa',bootDelay:'Opóźnienie rozruchu (s)',addVmToPlan:'Dodaj VM',plannedFailover:'Planowany failover',emergencyFailover:'Awaryjny failover',testFailover:'Testowy failover',failback:'Powrót do źródła',readinessCheck:'Kontrola gotowości',failoverRunning:'Trwa failover...',failoverComplete:'Failover zakończony',failoverFailed:'Failover nie powiódł się',testCleanup:'Wyczyść test',autoFailover:'Automatyczny failover',autoFailoverDesc:'Automatyczny awaryjny failover w przypadku niedostępności klastra',failoverTimeout:'Limit czasu failover (s)',preWebhook:'Webhook przed failover',postWebhook:'Webhook po failover',rpo:'RPO',rpoDesc:'Recovery Point Objective — czas od ostatniej replikacji',planReady:'Gotowy',planRunning:'Uruchomiony',planTesting:'Testowanie',planFailed:'Niepowodzenie',planCompleted:'Zakończony',noPlans:'Brak skonfigurowanych planów odtwarzania',confirmFailover:'Uruchomić failover? Wszystkie chronione VM zostaną przeniesione do klastra docelowego.',confirmEmergency:'Uruchomić awaryjny failover? Źródłowe VM NIE zostaną wyłączone.',confirmTestCleanup:'Usunąć testowe VM z klastra docelowego?',failoverHistory:'Historia failover',linkReplication:'Powiąż zadanie replikacji (opcjonalnie)',readinessPassed:'Kontrola gotowości zakończona pomyślnie',readinessFailed:'Kontrola gotowości nie powiodła się',noIssues:'Nie znaleziono problemów',addMapping:'+ Dodaj mapowanie',saveMappings:'Zapisz mapowania',sourceBridge:'Mostek źródłowy',sourceStorage:'Magazyn źródłowy',noEvents:'Brak zdarzeń',dangerZone:'Strefa niebezpieczna',lastHour:'Ostatnia godzina',last24h:'Ostatnie 24 godz.',lastWeek:'Ostatni tydzień',alarms:'Alarmy',noAlarms:'Brak aktywnych alarmów',severity:'Poziom',completionTime:'Zakończenie',startTime:'Czas rozpoczęcia',dismiss:'Odrzuć',searchAllInventories:'Szukaj we wszystkich zasobach...',recentItems:'Ostatnie',inventoryOverview:'Przegląd zasobów',items:'elementy',connectionLive:'Na żywo',connectionPolling:'Odpytywanie',totalClusters:'Łącznie klastrów',initiator:'Inicjator',object:'Obiekt',noReportData:'Brak danych raportu',noReportDataDesc:'Dane historyczne są zbierane. Sprawdź ponownie za kilka minut.',topVmsCpu:'Najwyższe użycie CPU',topVmsMem:'Najwyższe użycie pamięci',historicalRange:'Zakres historyczny',dataPoints:'punkty danych',overTime:'w czasie',storageOverview:'Magazyn węzła',exportPdf:'Eksportuj jako PDF',exportPng:'Eksportuj jako PNG',containersRunning:'Uruchomione kontenery',clustersOnline:'Klastry online',datacenterOverview:'Przegląd centrum danych',noRunningVms:'Brak uruchomionych VM',cveScanner:'Skaner CVE',cveScanDesc:'Skanuje wszystkie węzły przez SSH pod kątem nieaktualnych pakietów i podatności bezpieczeństwa.',scanAllNodes:'Skanuj wszystkie węzły',scanning:'Skanowanie...',scanRunning:'Trwa skanowanie podatności na wszystkich węzłach...',scanTakesMinute:'Może to potrwać około minuty',nodesScanned:'Przeskanowane węzły',securityUpdates:'Aktualizacje bezpieczeństwa',totalUpdates:'Łącznie aktualizacji',nodesClean:'Węzły bez problemów',scanFailed:'niepowodzenie',rebootRequired:'Wymagany restart dla jądra',upToDate:'Aktualne',updates:'Aktualizacje',packageName:'Pakiet',installed:'Zainstalowane',available:'Dostępna',allPkgsUpToDate:'Wszystkie pakiety są aktualne',scannedAt:'Przeskanowano',noScanResults:'Brak wyników skanowania',noScanResultsDesc:'Kliknij „Skanuj wszystkie węzły”, aby sprawdzić podatne pakiety',cveScanFailed:'Skan CVE nie powiódł się',debsecanNotInstalled:'debsecan nie jest zainstalowany',debsecanExplain:'debsecan to narzędzie Debiana porównujące zainstalowane pakiety z Debian Security Tracker w celu wykrywania znanych CVE. Bez niego wyświetlane są tylko oczekujące aktualizacje pakietów; po instalacji dostępne są identyfikatory CVE i poziomy ważności.',debsecanInstallInfo:'Instaluje lekki pakiet debsecan (~50 KB) na wszystkich węzłach klastra przez SSH.',installDebsecan:'Zainstaluj debsecan',installing:'Instalowanie...',fixAvailable:'dostępna poprawka',cveApplyHint:'Zastosuj poprawki przez Menedżer aktualizacji',openUpdateManager:'Otwórz Menedżer aktualizacji',automation:'Automatyzacja',schedulesDesc:'Automatycznie uruchamiaj, zatrzymuj, restartuj lub twórz migawki VM według harmonogramu',tagsDesc:'Organizuj VM za pomocą tagów. Kliknij ikonę tagu przy dowolnej VM, aby dodać tagi.',noTagsInCluster:'Brak tagów w tym klastrze',addTagHint:'Użyj przycisku tagu przy VM w zakładce Zasoby',tagsTotal:'tagi',clickVmTag:'Kliknij ikonę tagu przy VM, aby zarządzać tagami',alertsDesc:'Otrzymuj powiadomienia, gdy zasoby przekroczą ustawione progi',newAlert:'Nowy alert',noAlertsCluster:'Brak alertów dla tego klastra',alertCreated:'Alert utworzony',alertUpdated:'Alert zaktualizowany',targetType:'Zastosuj do',entireCluster:'Cały klaster',specificNode:'Konkretny węzeł',specificVm:'Konkretna VM',targetId:'Cel',condition:'Warunek',cluster:'Klaster',affinityDesc:'Określ, które maszyny VM/CT powinny działać razem lub osobno',newRule:'Nowa reguła',noAffinityCluster:'Brak reguł powiązań dla tego klastra',ruleCreated:'Reguła utworzona',together:'Razem',separate:'Osobno',enforced:'Wymuszone',generalTab:'Ogólne',resourcesTab:'Zasoby',storageTab:'Pamięć masowa',networkTab:'Sieć',snapshotsTab:'Migawki',backupsTab:'Kopie zapasowe',replicationTab:'Replikacja',historyTab:'Historia',proxmoxTasks:'Zadania Proxmox',pegaproxActions:'Akcje PegaProx',optionsTab:'Opcje',options:'Opcje',backup:'Kopia zapasowa',replication:'Replikacja',balancing:'Balansowanie',excludedNodes:'Wykluczone węzły',excludedNodesDesc:'Te węzły nigdy nie będą celami automatycznego balansowania VM ani rekomendacji migracji.',selectNodeToExclude:'Wybierz węzeł do wykluczenia...',exclude:'Wyklucz',excludedFromBalancing:'Wykluczono z balansowania',reincludedInBalancing:'ponownie włączono do balansowania',excludeNode:'Wyklucz węzeł z balansowania',noExcludedNodes:'Brak wykluczonych węzłów — wszystkie uczestniczą w balansowaniu',confirmExcludeNode:'Wyklucz',excludedVMs:'Wykluczone VM',excludedVMsDesc:'Te VM nigdy nie będą automatycznie migrowane podczas balansowania obciążenia.',excludedPools:'Wykluczone pule',excludedPoolsDesc:'Wszystkie VM z tych pul będą pomijane podczas automatycznego balansowania.',selectVMToExclude:'Wybierz VM do wykluczenia...',noExcludedVMs:'Brak wykluczonych VM — wszystkie uczestniczą w balansowaniu',selectVM:'Wybierz VM...',fromBalancing:'z balansowania',allNodesExcluded:'Wszystkie węzły są wykluczone — balansowanie jest faktycznie wyłączone',howExclusionWorks:'Jak działa wykluczanie węzłów',exclusionRule1:'Wykluczone węzły NIE będą celami automatycznego balansowania VM',exclusionRule2:'Wykluczone węzły NIE będą otrzymywać VM podczas migracji balansujących',exclusionRule3:'Wykluczone węzły pozostają widoczne i mogą przyjmować migracje ręczne',exclusionRule4:'VM z wykluczonych węzłów mogą nadal zostać przeniesione, jeśli węzeł jest przeciążony',createBackup:'Utwórz kopię zapasową',noBackups:'Nie znaleziono kopii zapasowych',noBackupsHint:'Utwórz kopię zapasową lub sprawdź magazyny kopii zapasowych',backupMode:'Tryb kopii zapasowej',compression:'Kompresja',backupStarted:'Kopia zapasowa uruchomiona',downloadStarted:'Pobieranie rozpoczęte',downloadFailed:'Pobieranie nie powiodło się',restoreBackup:'Przywróć kopię zapasową',selectedBackup:'Wybrana kopia zapasowa',targetVmid:'Docelowy VMID',originalStorage:'Zachowaj oryginalny',sameVmidWarning:'Ten sam VMID = VM zostanie nadpisana!',startAfterRestore:'Uruchom po przywróceniu',confirmRestore:'Na pewno przywrócić kopię zapasową?',restoreStarted:'Przywracanie uruchomione',confirmDeleteBackup:'Na pewno usunąć kopię zapasową?',backupDeleted:'Kopia zapasowa usunięta',verifyBackup:'Zweryfikuj kopię zapasową',confirmVerify:'Zweryfikować tę kopię? Zostanie utworzona tymczasowa VM, uruchomiona, sprawdzona, a następnie usunięta.',verificationStarted:'Weryfikacja kopii zapasowej uruchomiona',verificationPassed:'✓ Kopia zweryfikowana — przywracanie + uruchomienie OK',verificationFailed:'✗ Weryfikacja nie powiodła się',backupVerified:'Kopia zweryfikowana',restoreBootOk:'Przywrócenie + uruchomienie OK',verifiedOk:'Zweryfikowano ✓',restoring:'Przywracanie...',booting:'Uruchamianie...',verifying:'Sprawdzanie...',cleaningUp:'Czyszczenie...',backupModeSnapshot:'Migawka (bez zatrzymywania)',backupModeSuspend:'Wstrzymanie (krótka przerwa)',backupModeStop:'Zatrzymanie (instancja zostanie zatrzymana)',compressZstd:'ZSTD (zalecane)',compressLzo:'LZO (szybkie)',compressGzip:'GZIP',compressNone:'Brak',backupNotes:'Notatki (opcjonalnie)',backupNotesPlaceholder:'np. przed dużą aktualizacją, cotygodniowa kopia...',ha:'HA',haResources:'Zasoby HA',haGroups:'Grupy HA',metricServer:'Serwer metryk',cpuCompatibility:'Zgodność CPU',cpuCompatibilityMode:'Tryb zgodności CPU',cpuCompatibilityDesc:'Zapewnia zgodność migracji na żywo między różnymi generacjami CPU',whatIsCpuCompat:'Czym jest tryb zgodności CPU?',cpuCompatExplain:'Gdy węzły mają różne generacje CPU (np. Haswell i Skylake), migracja na żywo może się nie udać, ponieważ nowsze procesory udostępniają funkcje nieobsługiwane przez starsze.',cpuCompatSolution:'Ustawienie wspólnego typu CPU dla wszystkich VM zapewnia możliwość migracji między dowolnymi węzłami klastra.',recommendedSettings:'Zalecane ustawienia',broadCompatibility:'Szeroka zgodność — działa z większością CPU od 2008 r.',modern:'Nowoczesny',haswell:'Haswell i nowsze (2013+)',newest:'Najnowszy',skylakeAvx:'Skylake-X z AVX-512 (2017+)',noMigration:'Bez migracji',hostDesc:'Bezpośrednie użycie CPU hosta — najwyższa wydajność, bez migracji',nodesCpuInfo:'Informacje o CPU węzłów klastra',howToApply:'Jak zastosować',cpuStep1:'Przejdź do zakładki Sprzęt każdej VM',cpuStep2:'Edytuj ustawienia CPU',cpuStep3:'Zmień „Typ” na wybrany poziom zgodności',cpuStep4:'Uruchom ponownie VM, aby zastosować zmiany',autoDetectedRecommendation:'Automatycznie wykryta rekomendacja',basedOnClusterCpus:'Na podstawie CPU wykrytych w klastrze zalecamy:',availableLevels:'Dostępne poziomy zgodności',safest:'Najbezpieczniejszy',detectedClusterCpus:'Wykryte CPU klastra',loadingCpuInfo:'Ładowanie informacji o CPU...',copy:'Kopiuj',criticalAlert:'ALERT KRYTYCZNY',haRecoveryMayStart:'Możliwe, że trwa odzyskiwanie HA...',nodeOffline:'Węzeł offline',nodeOnline:'Węzeł online',nodeUnreachable:'Węzeł nieosiągalny',offlineSince:'Offline od',firewall:'Zapora',sdn:'SDN',sdnNotAvailable:'SDN niedostępne',sdnNotConfigured:'Software Defined Networking nie jest skonfigurowane w tym klastrze.',sdnPendingChanges:'Istnieją oczekujące zmiany SDN, które trzeba zastosować.',sdnApplied:'Konfiguracja SDN zastosowana',sdnConfigSynced:'Konfiguracja SDN jest zsynchronizowana ze wszystkimi węzłami.',applyingSDN:'Stosowanie konfiguracji SDN na wszystkich węzłach...',sdnApplyReminder:'💡 Kliknij „Zastosuj / Przeładuj”, aby wdrożyć zmiany',applyChanges:'Zastosuj zmiany',sdnZones:'Strefy',sdnVnets:'VNet-y',sdnInfo:'Informacje o SDN',zones:'Strefy',vnets:'VNet-y',subnets:'Podsieci',controllers:'Kontrolery',noZones:'Brak skonfigurowanych stref',noVnets:'Brak skonfigurowanych VNet-ów',createZoneFirst:'Najpierw utwórz strefę',addZone:'Dodaj strefę',addVnet:'Dodaj VNet',addSubnet:'Dodaj podsieć',zoneName:'Nazwa strefy',vnetName:'Nazwa VNet',simpleZoneDesc:'Izolowana strefa z prostym mostkowaniem',vlanZoneDesc:'Strefa oparta na VLAN z tagowaniem 802.1q',vxlanZoneDesc:'Sieć nakładkowa VXLAN',evpnZoneDesc:'BGP EVPN z VXLAN',zoneCreated:'Strefa utworzona — kliknij „Zastosuj / Przeładuj”, aby aktywować',vnetCreated:'VNet utworzony — kliknij „Zastosuj / Przeładuj”, aby aktywować',subnetCreated:'Podsieć utworzona — kliknij „Zastosuj / Przeładuj”, aby aktywować',zoneDeleted:'Strefa usunięta — kliknij „Zastosuj / Przeładuj”, aby aktywować',vnetDeleted:'VNet usunięty — kliknij „Zastosuj / Przeładuj”, aby aktywować',confirmDeleteZone:'Usunąć strefę?',confirmDeleteVnet:'Usunąć VNet?',zoneNameRequired:'Nazwa strefy jest wymagana',vnetNameZoneRequired:'Nazwa VNet i strefa są wymagane',subnetRequired:'Podsieć jest wymagana',sourceNat:'Źródłowy NAT',noControllers:'Brak skonfigurowanych kontrolerów. Kontrolery są wymagane dla stref EVPN/VXLAN.',addController:'Dodaj kontroler',noIpam:'Brak skonfigurowanego IPAM. IPAM zapewnia zarządzanie adresami IP dla podsieci.',addIpam:'Dodaj IPAM',noDns:'Brak skonfigurowanego DNS. Integracja DNS umożliwia automatyczną rejestrację DNS dla VM.',addDns:'Dodaj DNS',seconds:'sekundy',smbiosAuto:'Automatyczny SMBIOS',smbiosAutoDesc:'Automatycznie konfiguruje dane SMBIOS (Producent, Produkt, Numer seryjny) dla nowych VM i VM bez konfiguracji SMBIOS. Przydatne do licencjonowania Windows.',deploySmbiosConfirm:'Wdrożyć automatyczną konfigurację SMBIOS na wszystkich węzłach tego klastra?',rescanAllVms:'Przeskanuj ponownie wszystkie VM',showLogs:'Pokaż logi',deployToAllNodes:'Wdróż na wszystkie węzły',updateAllNodes:'Aktualizuj wszystkie węzły',nodeStatus:'Stan węzła',clickDeployToStart:'Kliknij „Wdróż na wszystkie węzły”, aby rozpocząć',smbiosRequiresSSH:'⚠️ Wymaga klucza SSH skonfigurowanego w ustawieniach połączenia z klastrem',whySSH:'Dlaczego SSH?',smbiosSSHExplanation:'Ta funkcja używa SSH do wdrażania skryptów hook na węzłach. Poświadczenia SSH można opcjonalnie skonfigurować w ustawieniach klastra.',deployed:'Wdrożono',notDeployed:'Nie wdrożono',requiresSSH:'Wymaga SSH',deploymentFailed:'Wdrożenie nie powiodło się',clusterNodes:'Węzły klastra',joinInformation:'Informacje o dołączeniu',datacenterOptions:'Opcje centrum danych',quorate:'Ma quorum',votes:'Głosy',link:'Łącze',resourceUsage:'Użycie zasobów',memory:'Pamięć',addStorage:'Dodaj magazyn',storageId:'ID magazynu',directory:'Katalog',server:'Serwer',content:'Zawartość',shared:'Współdzielony',deleteStorageConfirm:'Na pewno usunąć magazyn?',deleteBackupJobConfirm:'Na pewno usunąć zadanie kopii zapasowej?',storageType:'Typ magazynu',volumeGroup:'Grupa woluminów',thinPool:'Thin Pool',export:'Eksport',share:'Udział',datastore:'Magazyn danych',pool:'Pula',skipCertVerification:'Pomiń weryfikację certyfikatu',backupJobs:'Zadania kopii zapasowych',noBackupJobs:'Brak zadań kopii zapasowych',createBackupJob:'Utwórz zadanie kopii zapasowej',hourly:'Co godzinę',monthly:'Co miesiąc',notification:'Powiadomienie',always:'Zawsze',onFailure:'W razie niepowodzenia',schedule:'Harmonogram',selection:'Wybór',retention:'Retencja',replicationJobs:'Zadania replikacji',guest:'Gość',job:'Zadanie',firewallOptions:'Opcje zapory',firewallRules:'Reguły zapory',noFirewallRules:'Brak reguł zapory',policyIn:'Polityka wejściowa',policyOut:'Polityka wyjściowa',addRule:'Dodaj regułę',deleteRuleConfirm:'Na pewno usunąć regułę?',protocol:'Protokół',confirmDeleteRule:'Usunąć tę regułę zapory?',addFirewallRule:'Dodaj regułę zapory',aliases:'Aliasy',noAliases:'Brak skonfigurowanych aliasów',noIpsets:'Brak skonfigurowanych zestawów IP',firewallLog:'Log zapory',noLogEntries:'Brak wpisów logu',fwEnable:'Zapora',fwDhcp:'DHCP',fwNdp:'NDP',fwRadv:'Router Adv.',fwMacFilter:'Filtr MAC',fwLogLevel:'Poziom logowania wejściowego',fwLogLevelOut:'Poziom logowania wyjściowego',fwAddAlias:'Dodaj alias',fwAddIpset:'Dodaj zestaw IP',ceph:'Ceph',cephStatus:'Stan Ceph',cephHealth:'Stan klastra',cephCapacity:'Pojemność',cephOsds:'OSD',cephMons:'Monitory',cephPools:'Pule',cephMds:'Serwery metadanych',cephFs:'CephFS',cephCreatePool:'Utwórz pulę',replMode:'Tryb transferu',replModeFull:'Pełny (klonowanie + migracja przy każdym uruchomieniu)',replModeIncremental:'Przyrostowy (różnice RBD/ZFS — lepsze dla dużych VM)',replModeHint:'Tryb przyrostowy przesyła tylko zmienione bloki od ostatniej migawki, gdy dyski VM używają Ceph RBD lub ZFS po obu stronach. W przeciwnym razie używany jest tryb pełny.',cephHealthGate:'Blokada według stanu Ceph',cephGateOff:'Wyłączona — ostrzegaj i kontynuuj',cephGateDegraded:'Wstrzymaj, jeśli dane są zagrożone (zalecane dla HCI)',cephGateStrict:'Ścisła — wstrzymaj przy każdym stanie Ceph innym niż OK',cephHealthGateHint:'W klastrze Ceph/HCI wstrzymuj aktualizację kroczącą do czasu odzyskania pełnego stanu Ceph zamiast przechodzić do kolejnego węzła. Tryb „wstrzymaj, jeśli dane są zagrożone” toleruje łagodne ostrzeżenia, takie jak clock skew lub backfill, i zatrzymuje aktualizację tylko przy rzeczywistej utracie redundancji.',cephHealthGateNote:'Po wstrzymaniu aktualizacja zatrzymuje się z podaniem przyczyny. Napraw Ceph, a następnie wybierz Kontynuuj lub Anuluj. Brak wpływu na klastry bez Ceph.',cephCreateOsd:'Utwórz OSD',cephOsdDisk:'Dysk',cephSelectDisk:'Wybierz dysk…',cephOsdDiskHint:'Dyski używane są wyłączone. Utworzenie OSD wymazuje dysk.',cephOsdCreated:'OSD utworzony',cephMgrs:'Menedżery',cephNoMgr:'Brak menedżerów — klaster Ceph wymaga co najmniej jednego aktywnego menedżera',cephMgrDeleted:'Menedżer usunięty',cephCreateMgr:'Utwórz menedżera',cephMgrCreated:'Menedżer utworzony',cephCreateMds:'Utwórz MDS',cephCreateMdsHint:'CephFS wymaga co najmniej jednego działającego MDS.',cephMdsCreated:'MDS utworzony',cephCreateFs:'Utwórz CephFS',cephFsAddStorage:'Dodaj jako magazyn PVE',cephCreateFsHint:'Tworzy pule _data i _metadata. Wymaga działającego MDS.',cephFsNameRequired:'Wprowadź nazwę',cephFsCreated:'CephFS utworzony',cephCreateMon:'Utwórz monitor',cephNotInstalled:'Ceph nie jest zainstalowany',cephNotInstalledDesc:'Na tym klastrze Proxmox nie skonfigurowano klastra Ceph.',cephNotInstalledOnNode:'Ceph nie jest skonfigurowany na tym węźle.',cephInstallHint:'Aby skonfigurować Ceph, otwórz węzeł i użyj zakładki Ceph do inicjalizacji.',cephInit:'Zainicjuj Ceph',cephMirroring:'Mirroring',cephMirrorMode:'Tryb mirroringu',cephMirrorModePool:'Pula (wszystkie obrazy)',cephMirrorModeImage:'Obraz (pojedynczy)',cephMirrorPeers:'Peery',cephMirrorEnable:'Włącz mirroring',cephMirrorDisable:'Wyłącz mirroring',cephMirrorPromote:'Promuj',cephMirrorDemote:'Degraduj',cephMirrorResync:'Synchronizuj ponownie',cephMirrorSchedules:'Harmonogramy migawek',cephMirrorHealth:'Stan mirroringu',cephMirrorSyncStatus:'Stan synchronizacji',cephMirrorImages:'Obrazy',cephMirrorAddPeer:'Dodaj peer',cephMirrorRemovePeer:'Usuń peer',cephMirrorNoPoolsEnabled:'Żadna pula nie ma włączonego mirroringu',cephMirrorSshRequired:'RBD Mirroring wymaga dostępu SSH do klastra',cephMirrorForcePromote:'Wymuś promocję (może spowodować utratę danych!)',cephMirrorAddSchedule:'Dodaj harmonogram',cephMirrorInterval:'Interwał',cephMirrorSiteName:'Nazwa lokalizacji',cephMirrorBackToOverview:'Wróć do przeglądu',balancingConfig:'Konfiguracja balansowania',migrationThreshold:'Próg migracji',migrationThresholdDesc:'Różnica wyniku powodująca uruchomienie migracji',migrationTolerance:'Tolerancja migracji',migrationToleranceDesc:'Martwa strefa zapobiegająca przerzucaniu VM między węzłami (0 = wyłączone)',checkInterval:'Interwał sprawdzania',checkIntervalDesc:'Odstęp między kontrolami balansowania',autoMigrate:'Automatyczna migracja',autoMigrateDesc:'Automatyczna migracja VM przy wykryciu nierównowagi',balanceNow:'Balansuj teraz',balanceNowStarted:'Uruchomiono kontrolę balansowania',dryRun:'Tryb testowy',dryRunDesc:'Tylko symuluj migracje, nie wykonuj ich',balancingEnabled:'Balansowanie włączone',optionsTitle:'Opcje',intervalBetweenChecks:'Odstęp między kontrolami balansowania',haMonitoring:'Monitoring HA',haMonitorActive:'Monitor HA aktywny',fallbackHosts:'Hosty zapasowe',fallbackHostsAuto:'Hosty zapasowe (wykryte automatycznie)',proxmoxHa:'HA Proxmox',proxmoxNativeHa:'Natywne HA Proxmox',fencing:'Fencing',haInactive:'HA nieaktywne',haActivate:'Aktywuj HA',enableNativeHa:'Włącz natywne HA Proxmox dla tej VM',haMonitorDesc:'Monitoruje węzły co 10 sekund. W przypadku awarii VM są automatycznie uruchamiane ponownie na innych węzłach.',nativeHaDesc:'Natywne HA Proxmox działa bezpośrednio w klastrze i zapewnia Fencing oraz Quorum.',vmsWithHa:'VM/CT z HA Proxmox',noVmsWithHa:'Brak VM skonfigurowanych z HA Proxmox. Włącz HA dla wybranych VM w widoku szczegółowym.',removeFromHa:'Usuń z HA',deleteCannotBeUndone:'Tej operacji nie można cofnąć!',purgeDisks:'Usuń trwale — skasuj wszystkie dyski',destroyUnreferencedDisks:'Usuń nieużywane dyski',enterToConfirm:'Wpisz, aby potwierdzić',deletePermanently:'Usuń trwale',updateNode:'Aktualizuj węzeł',updateCommand:'Zostanie uruchomione apt update && apt dist-upgrade.',rebootAfterUpdate:'Uruchom ponownie po aktualizacji',recommendedForKernel:'Zalecane przy aktualizacji jądra',started:'Rozpoczęto',restarted:'uruchomiono ponownie',created:'utworzono',deleted:'usunięto',cloned:'sklonowano',migrated:'zmigrowano',primary:'Główny',fallbacks:'Zapasowe',taskMigrate:'Migracja',taskStart:'Uruchomienie',taskStop:'Zatrzymanie',taskReboot:'Restart',taskCreate:'Tworzenie',taskDelete:'Usuwanie',taskClone:'Klonowanie',taskSnapshot:'Migawka',taskDiskMove:'Przenoszenie dysku',taskDiskResize:'Zmiana rozmiaru dysku',taskFailed:'Zadanie nie powiodło się',taskCancelled:'Zadanie anulowane',taskCancelFailed:'Nie udało się anulować zadania',cancelTask:'Anuluj zadanie',allTasks:'Wszystkie zadania',runningTasks:'Uruchomione zadania',failedTasks:'Nieudane zadania',todaysTasks:'Dzisiejsze zadania',tasksShown:'wyświetlonych zadań',taskOutput:'Wynik zadania',errorLoadingLog:'Błąd ładowania logu',duration:'Czas trwania',clearCompleted:'Wyczyść zakończone',endTime:'Czas zakończenia',output:'Wynik',noOutput:'Brak wyniku',noTasks:'Brak zadań',completed:'zakończone',success:'Sukces',error:'Błąd',unsavedChanges:'Niezapisane zmiany',discardUnappliedChanges:'Odrzucić wszystkie niezastosowane zmiany?',configSaved:'Konfiguracja zapisana',operationFailed:'Operacja nie powiodła się',confirmAction:'Potwierdź akcję',lastCheck:'Ostatnie sprawdzenie',clusterInfo:'Informacje o klastrze',primaryHost:'Główny host',connectedTo:'Połączono z',fallback:'Zapasowy',noRestrictions:'Brak ograniczeń',general:'Ogólne',advanced:'Zaawansowane',os:'System operacyjny',template:'Szablon',help:'Pomoc',lastMigrations:'Ostatnie migracje',noMigrations:'Brak migracji',keyboardLayout:'Układ klawiatury',httpProxy:'Proxy HTTP',consoleViewer:'Przeglądarka konsoli',emailFrom:'Adres nadawcy',macPrefix:'Prefiks MAC',migrationSettings:'Ustawienia migracji',replicationSettings:'Ustawienia replikacji',haSettings:'Ustawienia HA',haSettingsSaved:'Ustawienia HA zapisane',haActive:'HA aktywne',clusterType:'Typ klastra',quorum:'Quorum',quorumYes:'Tak',quorumNo:'Nie',healthy:'Prawidłowy',degraded:'Obniżony',splitBrainPrevention:'Zapobieganie split-brain',splitBrainInfo:'W klastrze 2-węzłowym może wystąpić split-brain, gdy oba węzły uznają drugi za niedostępny. Hosty quorum są pingowane, aby określić, który węzeł może działać.',splitBrainTip:'Użyj adresów IP osiągalnych z obu węzłów (brama, serwery DNS lub zewnętrzne IP). W sieciach bez dostępu do Internetu użyj routera/bramy jako hosta quorum.',quorumSettings:'Ustawienia quorum',enableQuorumCheck:'Włącz kontrolę quorum',quorumCheckDesc:'Zapobiega split-brain przez sprawdzanie osiągalności zewnętrznych hostów',gatewayIp:'Adres IP bramy',gatewayIpHint:'Router/brama dla sieci lokalnych',requiredVotes:'Wymagane głosy',additionalQuorumHosts:'Dodatkowe hosty quorum (oddzielone przecinkami)',quorumHostsHint:'Dla sieci izolowanych: własne serwery DNS, routery lub inne stabilne hosty w sieci',selfFencingRecovery:'Self-fencing i odzyskiwanie',selfFencing:'Self-fencing',selfFencingDesc:'Węzeł bez quorum nie uruchomi VM',networkCheck:'Kontrola sieci',networkCheckDesc:'Sprawdza łączność przed rozpoczęciem odzyskiwania',recoveryDelay:'Opóźnienie odzyskiwania (sekundy)',recoveryDelayHint:'Czas oczekiwania przed uruchomieniem VM na innym węźle',failureThreshold:'Próg awarii',failureThresholdHint:'Liczba nieudanych kontroli, po której węzeł uznawany jest za offline',hardwareWatchdog:'Sprzętowy watchdog',watchdogWarning:'UWAGA: Węzeł automatycznie uruchomi się ponownie po utracie quorum!',fencingExplanation:'Jak zapobiegamy split-brain',fencingStep1Title:'1. Wykrycie utraty quorum',fencingStep1Desc:'Izolowany węzeł traci quorum (< 50% głosów), a /etc/pve przechodzi w tryb TYLKO DO ODCZYTU. pve-ha-lrm automatycznie zatrzymuje wszystkie VM objęte HA.',fencingStep2Title:'2. Self-fencing (samoizolacja)',fencingStep2Desc:'Węzeł rozpoznaje, że jest odizolowany, i odmawia wykonywania operacji na VM. Zapobiega to równoczesnemu uruchomieniu dwóch instancji tej samej VM.',fencingStep3Title:'3. Watchdog (timer sprzętowy)',fencingStep3Desc:'Jeśli jest włączony, timer sprzętowy lub programowy jest regularnie resetowany. Po utracie quorum resetowanie ustaje i po około 60 s następuje twardy restart węzła.',fencingStep4Title:'4. Zewnętrzny fencing (STONITH)',fencingStep4Desc:'Opcjonalny sprzęt IPMI/iLO/iDRAC lub PDU wyłącza węzeł przed uruchomieniem VM na innym węźle.',fencingWarning:'WAŻNE: Brak mechanizmu fencing może doprowadzić do uszkodzenia danych przy split-brain!',fencingRecommendation:'Zalecenia dla klastrów 2-węzłowych:',fencingRecList:'• Skonfiguruj hosty quorum (brama, serwer DNS)\n• Włącz sprzętowy watchdog, jeśli jest dostępny\n• Ustaw opóźnienie odzyskiwania na co najmniej 30 sekund',enableHA:'Włącz HA',disableHA:'Wyłącz HA',changesAfterRestart:'Zmiany aktywne po restarcie',important2NodeCluster:'ważne dla klastrów 2-węzłowych!',twoNodeMode:'Tryb klastra 2-węzłowego',twoNodeWarning:'Ograniczenia klastra 2-węzłowego',twoNodeExplanation:'W klastrze Proxmox z 2 węzłami awaria jednego powoduje utratę quorum przez drugi, przez co nie może on uruchamiać VM. Ten tryb pozwala PegaProx automatycznie wymusić quorum na ocalałym węźle.',enableTwoNodeMode:'Włącz tryb klastra 2-węzłowego',enableTwoNodeModeDesc:'Automatycznie wymuszaj quorum po awarii jednego węzła',twoNodeReady:'Gotowy do HA w klastrze 2-węzłowym',twoNodeCredentialsInfo:'PegaProx użyje poświadczeń klastra, połączy się przez SSH z ocalałym węzłem i uruchomi „pvecm expected 1”, aby przywrócić quorum.',twoNodeTip:'Wskazówka',twoNodeTipText:'Dla najlepszych rezultatów zainstaluj „sshpass” na serwerze PegaProx: apt install sshpass',splitBrainRisk:'Ryzyko split-brain bez fencing!',splitBrainRiskDesc:'Jeśli oba węzły działają, ale komunikacja między nimi zostanie przerwana, wymuszenie quorum może spowodować uruchomienie tej samej VM na OBU węzłach = uszkodzenie danych!',safeSolutions:'Bezpieczne rozwiązania dla klastrów 2-węzłowych:',qdeviceDesc:'Dodaj trzeci głos (wystarczy Raspberry Pi)',ipmiDesc:'Wyłącz drugi węzeł przed rozpoczęciem odzyskiwania',pduDesc:'Użyj zarządzalnej listwy PDU do zdalnego odcięcia zasilania',quorumHostsDesc2:'Zewnętrzne adresy IP służące do określenia, który węzeł jest odizolowany',safetyChecklist:'Lista kontrolna bezpieczeństwa',quorumHostsConfigured:'Hosty quorum skonfigurowane',recoveryDelayCheck:'Opóźnienie odzyskiwania ≥ 30 sekund',selfFencingEnabled:'Self-fencing włączony',storageHeartbeat:'Ochrona split-brain oparta na magazynie',recommendedFor2Node:'Zalecane dla klastrów 2-węzłowych!',storageHeartbeatDesc:'Wykorzystuje współdzielony magazyn (NFS/Ceph/iSCSI) do koordynacji między węzłami. Jeśli węzeł przestaje zapisywać heartbeat, uznawany jest za niedostępny. Mechanizm „poison pill” nakazuje odizolowanemu węzłowi zatrzymanie VM przed rozpoczęciem odzyskiwania.',enableStorageHeartbeat:'Włącz heartbeat oparty na magazynie',enableStorageHeartbeatDesc:'Zapisuj heartbeat na współdzielonym magazynie w celu weryfikacji stanu węzłów',storageHeartbeatPath:'Ścieżka współdzielonego magazynu',storageHeartbeatPathHint:'Ścieżka do magazynu dostępnego ze wszystkich węzłów (np. Ceph, NFS, iSCSI)',heartbeatTimeout:'Limit czasu heartbeat (s)',heartbeatTimeoutHint:'Węzeł uznawany jest za niedostępny po braku heartbeat przez ten czas',poisonPillEnabled:'Włącz mechanizm Poison Pill',poisonPillDesc:'Przekaż odizolowanemu węzłowi przez magazyn polecenie zatrzymania VM przed odzyskiwaniem',strictFencing:'Ścisły tryb fencing',strictFencingDesc:'PRZERWIJ odzyskiwanie, jeśli nie można potwierdzić awarii węzła (bezpieczniej, ale możliwe fałszywe alarmy)',step1Heartbeat:'PegaProx zapisuje heartbeat na współdzielonym magazynie co 5 sekund',step2Check:'Po awarii węzła heartbeat magazynu jest sprawdzany w celu potwierdzenia jego niedostępności',step3Poison:'Zapisywany jest plik „poison pill”, który nakazuje drugiemu węzłowi zatrzymanie VM',step4Recovery:'Odzyskiwanie rozpoczyna się dopiero po potwierdzeniu lub przekroczeniu limitu czasu',nodeAgentRequired:'Wymagany agent węzła!',nodeAgentRequiredDesc:'Aby ta funkcja działała, należy zainstalować PegaProx Node Agent na każdym węźle Proxmox. Agent zapisuje heartbeat i reaguje na poison pill.',splitBrainProtection:'Ochrona przed split-brain',fullyAutomatic:'100% AUTOMATYCZNE',autoProtectionExplain:'PegaProx automatycznie wykrywa współdzielony magazyn, instaluje agentów węzłów i chroni przed split-brain — bez dodatkowej konfiguracji.',sharedStoragesFound:'Znalezione magazyny współdzielone:',inUse:'W UŻYCIU',fullProtectionActive:'Pełna ochrona dla dwóch sieci aktywna',nodeAgentsInstalled:'Agenci węzłów zainstalowani automatycznie',heartbeatsViaStorage:'Heartbeat przez sieć magazynową',sshOnlyMode:'Tryb ochrony tylko przez SSH',noSharedStorageFound:'Nie znaleziono współdzielonego magazynu (NFS/CephFS). Ochrona działa przez weryfikację SSH.',notSafeForDualNetwork:'Niebezpieczne dla konfiguracji z dwiema sieciami (oddzielna sieć serwerowa i magazynowa)',blockStorageOnly:'Znaleziono tylko magazyn blokowy',blockStorageExplain:'Magazyn blokowy (LVM, iSCSI, RBD) nie może przechowywać plików heartbeat. Aby uzyskać pełną ochronę przy dwóch sieciach, dodaj mały udział NFS.',sshOnlyActive:'Aktywna ochrona tylko przez SSH',sshOnlyRisk:'Działa w pojedynczej sieci. Przy dwóch sieciach (oddzielna serwerowa/iSCSI) dodaj mały udział NFS (100 MB wystarczy).',clickToSelect:'Kliknij, aby wybrać',selected:'Wybrano',currentlyActive:'Aktualnie aktywne',blockStoragesIgnored:'Magazyny blokowe (nieobsługiwane)',selfFenceProtection:'Ochrona Self-Fence',advancedSettings:'Ustawienia zaawansowane',selfFenceExplain:'Każdy węzeł sprawdza, czy może osiągnąć menedżera LUB inny węzeł. Jeśli nikogo nie osiąga → jest odizolowany → zatrzymuje własne VM.',nodeCanReachSomeone:'Węzeł może osiągnąć inny element',everythingOk:'Wszystko w porządku — brak działania',nodeCanReachNoone:'Węzeł nie może osiągnąć NIKOGO',nodeStopsOwnVms:'Izolacja! Zatrzymuje własne VM',selfFenceActive:'Ochrona Self-Fence aktywna',agentInstalledOnNodes:'Agent zainstalowany na',selfFenceNotInstalled:'Agent Self-Fence nie jest zainstalowany',selfFenceInstallHint:'Kliknij przycisk, aby zainstalować agenta na wszystkich węzłach. Agent sprawdza osiągalność co 5 sekund.',installSelfFenceAgent:'Zainstaluj agenta Self-Fence',selfFenceInstalling:'Instalowanie agenta...',noSharedStorageNeeded:'Współdzielony magazyn nie jest wymagany',worksWithLvmIscsi:'Działa z LVM, iSCSI i innymi',nodeDecidesItself:'Węzeł decyduje samodzielnie = szybka reakcja',uninstall:'Odinstaluj',confirmUninstallAgent:'Na pewno odinstalować agenta Self-Fence ze wszystkich węzłów?',selfFenceUninstalling:'Odinstalowywanie agenta...',pegaproxVmRecovery:'Automatyczne odzyskiwanie VM PegaProx',pegaproxVmRecoveryDesc:'Wybierz VM, na której działa PegaProx. Jeśli menedżer jest nieosiągalny, ale inne węzły działają, agent automatycznie uruchomi ponownie tę VM.',pegaproxVmRecoveryActive:'Automatyczne odzyskiwanie aktywne — agent uruchomi ponownie tę VM, jeśli menedżer przestanie działać.',noVmSelected:'-- Nie wybrano VM --',enable2NodeMode:'Włącz tryb klastra 2-węzłowego',twoNodeModeDesc:'Automatycznie wymuszaj quorum po awarii jednego węzła',autoSplitBrainProtection:'Automatyczna ochrona przed split-brain',noSetupRequired:'BRAK WYMAGANEJ KONFIGURACJI',autoProtectionDesc:'PegaProx automatycznie zapobiega split-brain, wykorzystując istniejące poświadczenia SSH.',sshSucceeds:'SSH działa:',networkSplitDetected:'Wykryto podział sieci! Najpierw zatrzymano VM na odizolowanym węźle',sshFails:'SSH nie działa:',nodeConfirmedDead:'Potwierdzono awarię węzła — można bezpiecznie rozpocząć failover',advancedOptions:'Opcje zaawansowane',dualNetworkWarning:'Konfiguracja z dwiema sieciami? (serwer + iSCSI)',dualNetworkProblem:'Jeśli sieć serwerowa przestanie działać, ale iSCSI pozostanie aktywne, SSH nie działa, lecz węzeł nadal zapisuje do magazynu = USZKODZENIE DANYCH!',enableDualNetworkProtection:'Włącz ochronę opartą na magazynie',dualNetworkProtectionDesc:'Wymaga, aby serwer PegaProx mógł zamontować współdzielony magazyn (NFS/CephFS)',sharedStoragePath:'Ścieżka współdzielonego magazynu',agentAutoInstall:'Agent węzła zostanie automatycznie zainstalowany przez SSH',devicePassthrough:'Przekazywanie urządzeń',pciDevices:'Urządzenia PCI',usbDevices:'Urządzenia USB',serialPorts:'Porty szeregowe',addPci:'Dodaj PCI',addUsb:'Dodaj USB',addSerial:'Dodaj port szeregowy',noPciDevices:'Brak urządzeń PCI',noUsbDevices:'Brak urządzeń USB',noSerialPorts:'Brak portów szeregowych',availableDevices:'Dostępne urządzenia',selectDevice:'Wybierz urządzenie',pcie:'PCIe (zalecane)',romBar:'ROM-Bar',usb3:'USB 3.0',serialType:'Typ',socketConsole:'Socket (konsola Unix Socket)',deviceAdded:'Urządzenie dodane',deviceRemoved:'Urządzenie usunięte',iommuGroup:'Grupa IOMMU',vendor:'Producent',adding:'Dodawanie...',bandwidthLimits:'Limity przepustowości',maxWorkers:'Maks. liczba workerów',nextVmid:'Następny VMID',userTagAccess:'Dostęp użytkownika do tagów',registeredTags:'Zarejestrowane tagi',subscriptionStatus:'Stan subskrypcji',licensed:'Licencjonowany',notLicensed:'Brak licencji',product:'Produkt',licenseKey:'Klucz subskrypcji',validUntil:'Ważna do',supportLevel:'Poziom wsparcia',noActiveSubscription:'Brak aktywnej subskrypcji',noSubscriptionDesc:'Ten węzeł nie ma ważnej subskrypcji Proxmox VE. Bez subskrypcji nie otrzymasz aktualizacji z repozytorium Enterprise ani wsparcia technicznego.',enterLicenseKey:'Wprowadź klucz subskrypcji',subscriptionKey:'Klucz subskrypcji',pleaseEnterLicenseKey:'Wprowadź klucz subskrypcji',licenseActivated:'Subskrypcja została aktywowana!',activationFailed:'Aktywacja nie powiodła się',activateLicense:'Aktywuj subskrypcję',refreshStatus:'Odśwież status',subscriptionBenefits:'Subskrypcja Proxmox VE zapewnia',subscriptionBenefit1:'Dostęp do repozytorium Enterprise ze stabilnymi aktualizacjami',subscriptionBenefit2:'Wsparcie techniczne Proxmox',subscriptionBenefit3:'Brak ostrzeżenia o braku subskrypcji przy logowaniu',maintenanceModeTitle:'Włącz tryb konserwacji',maintenanceWarning:'Ostrzeżenie: wszystkie działające VM i kontenery na tym węźle zostaną automatycznie zmigrowane na inne węzły.',maintenanceDesc:'Węzeł zostanie wykluczony z balansowania obciążenia do czasu wyłączenia trybu konserwacji.',startMaintenance:'Rozpocznij konserwację',removeNodeFromCluster:'Usuń węzeł z klastra',moveNodeToCluster:'Przenieś węzeł do innego klastra',removeNodeWarning:'Węzeł zostanie trwale usunięty z klastra. Najpierw należy zmigrować wszystkie VM.',removeNodeConfirm:'Usuń węzeł',removeNodeTypeName:'Wpisz nazwę węzła, aby potwierdzić',ready:'Gotowy',completedWithErrors:'Zakończono (z błędami)',evacuating:'Ewakuowanie...',failed:'Niepowodzenie',starting:'Uruchamianie...',progress:'Postęp',migrating:'Migracja',vmsCouldNotMigrate:'Nie udało się zmigrować VM',migrationIncomplete:'Migracja niepełna',someVmsOnLocalStorage:'Nie udało się zmigrować części VM, prawdopodobnie z powodu magazynu lokalnego. Możesz:',proceedWithCaution:'Kontynuuj mimo to (VM zostaną zatrzymane podczas restartu)',exitAndMigrateManually:'Wyjdź z trybu konserwacji i zmigruj ręcznie',forceMaintenanceWarning:'⚠️ OSTRZEŻENIE: Kontynuowanie spowoduje zatrzymanie pozostałych VM na tym węźle podczas restartu. Kontynuować?',proceedAnyway:'Kontynuuj mimo to',failedToMigrate:'Migracja nie powiodła się',vmsWillBeStopped:'VM zostaną zatrzymane podczas restartu',updating:'Aktualizowanie',nodeConfiguration:'Konfiguracja węzła',rebootNodeWarning:'Węzeł zostanie uruchomiony ponownie. Ponieważ działa w trybie konserwacji, VM nie zostaną naruszone.',shutdownNodeWarning:'Węzeł zostanie wyłączony. Trzeba będzie uruchomić go ręcznie!',rebootNow:'Uruchom ponownie teraz',shutdownNow:'Wyłącz teraz',updateAndReboot:'Aktualizuj i uruchom ponownie',sudoNotAvailable:'sudo nie jest dostępne na tym węźle',nodeActionFailed:'Operacja na węźle nie powiodła się',startingUpdateFor:'Rozpoczynanie aktualizacji dla',updateStartedFor:'Aktualizacja rozpoczęta dla',errorStartingUpdate:'Błąd uruchamiania aktualizacji',rebootInitiated:'restart zainicjowany',shutdownInitiated:'wyłączanie zainicjowane',updateRunning:'Aktualizacja trwa',updateFailed:'Aktualizacja nie powiodła się',failedNodes:'Węzły z błędami',maintenanceModeWarning:'Niektóre węzły mogą nadal działać w trybie konserwacji. Sprawdź zakładkę Węzły i w razie potrzeby wyłącz tryb konserwacji ręcznie.',viewLogs:'Pokaż logi',updateCompleted:'Aktualizacja zakończona!',packagesUpdated:'pakietów zaktualizowano.',waitingForNode:'Oczekiwanie na węzeł...',done:'Gotowe',cancelAndExitMaintenance:'Anuluj i wyjdź z trybu konserwacji',sshSettings:'Ustawienia SSH',sshSettingsDesc:'Wymagane do aktualizacji, restartu i wyłączania węzłów. Jeśli pozostawiono puste, zostanie użyty użytkownik i hasło Proxmox.',sshKeyOptional:'Klucz SSH (opcjonalnie)',sshKeyExplanation:'Funkcje SSH (automatyczna konfiguracja SMBIOS, własne skrypty, HA 2-węzłowe) automatycznie używają poświadczeń logowania. Dodaj tutaj klucz tylko wtedy, gdy uwierzytelnianie hasłem jest wyłączone na węzłach.',sshUser:'Użytkownik SSH',sshPort:'Port SSH',sshPrivateKey:'Prywatny klucz SSH',sshKeyHint:'Wklej tutaj prywatny klucz (id_rsa, id_ed25519 itd.)',sshKeyRequired:'Wymagany klucz SSH. Skonfiguruj go w ustawieniach klastra.',balanceContainers:'Balansuj kontenery',balanceLocalDisks:'Balansuj VM z dyskami lokalnymi',balanceLocalDisksDesc:'VM i kontenery z dyskami lokalnymi będą migrowane (VM na żywo z --with-local-disks, LXC z --restart). Dane dysków są kopiowane na węzeł docelowy.',localDiskBalanceWarning:'Migracja VM i kontenerów z dyskami lokalnymi kopiuje wszystkie dane dysków na węzeł docelowy. Może to potrwać długo i znacznie zwiększyć obciążenie sieci.',containerBalanceWarning:'Kontenerów NIE można migrować na żywo! Migracja zatrzyma i ponownie uruchomi kontener, powodując przestój.',predictiveBalancing:'Predykcyjne balansowanie obciążenia',predictiveBalancingDesc:'Migruje VM zanim węzły zostaną przeciążone, na podstawie analizy trendu (w stylu DRS).',predictiveThreshold:'Próg predykcyjny',predictiveThresholdDesc:'Wynik, powyżej którego węzeł uznawany jest za zmierzający w stronę przeciążenia',scoreWeights:'Wagi wyniku',scoreWeightsDesc:'Określ wpływ CPU, RAM i I/O dysków na wynik balansowania. Domyślnie: CPU=1.0, RAM=1.0, IO=0.',cpuBaseline:'Bazowy poziom CPU (zgodność CPU)',cpuBaselineDesc:'Ustaw bazowy poziom zgodności CPU dla migracji na żywo. VM z wyższym typem CPU nie będą migrowane automatycznie. Zapewnia zgodność migracji na żywo.',cpuBaselineNone:'Brak (bez ograniczeń)',cpuBaselineActive:'Bazowy poziom aktywny: VM z typem CPU wyższym od bazowego nie będą automatycznie migrowane. Dla VM używających „cpu: host” sprawdzana jest zgodność producenta.',clusterSettings:'Ustawienia klastra',clusterSettingsDesc:'Skonfiguruj ustawienia balansowania dla każdego klastra.',clusterSettingsSaved:'Ustawienia klastra zapisane',collapse:'Zwiń',threshold:'Próg',interval:'Interwał',saveFailed:'Zapis nie powiódł się',invalidDnsName:'Nieprawidłowa nazwa: musi zaczynać się literą, może zawierać tylko litery, cyfry i myślniki, maksymalnie 63 znaki',addTag:'Dodaj tag...',invalidTagFormat:'Nieprawidłowy format. Tagi muszą zawierać małe litery i cyfry; dozwolone są również myślniki, kropki i podkreślenia.',deleteError:'Błąd usuwania',activationError:'Błąd aktywacji',deactivationError:'Błąd dezaktywacji',bulkMigrationNote:'Migracje będą wykonywane kolejno. Może to potrwać pewien czas.',deleteFailed:'Usuwanie nie powiodło się',uploadFailed:'Przesyłanie nie powiodło się',uploadFailedNetwork:'Przesyłanie nie powiodło się — błąd sieci',createFailed:'Tworzenie nie powiodło się',failedToSaveSettings:'Nie udało się zapisać ustawień',failedToUnlockIp:'Nie udało się odblokować adresu IP',failedToUnlockAllIps:'Nie udało się odblokować wszystkich adresów IP',snapshotFailed:'Tworzenie migawki nie powiodło się',rollbackFailed:'Przywracanie migawki nie powiodło się',startFailed:'Uruchomienie nie powiodło się',securitySettings:'Ustawienia bezpieczeństwa',securityDashboard:'Panel bezpieczeństwa',issuesFound:'wykrytych problemów',allSecure:'Wszystkie systemy są bezpieczne',bannedIps:'Zablokowane adresy IP',securityIssues:'Problemy bezpieczeństwa',recommendations:'Rekomendacje',enableClusterFirewall:'Włącz zaporę dla całego klastra',installSecurityUpdates:'Zainstaluj oczekujące aktualizacje bezpieczeństwa',enable2fa:'Włącz uwierzytelnianie dwuskładnikowe',disableRootLogin:'Wyłącz logowanie root przez SSH',clusterFirewall:'Zapora klastra',nodeFirewalls:'Zapory węzłów',noSecurityUpdates:'Brak oczekujących aktualizacji bezpieczeństwa',systemUpToDate:'Wszystkie systemy są aktualne',sshConfiguration:'Konfiguracja SSH dla każdego węzła',activeJails:'Aktywne jail-e',totalBanned:'Łącznie zablokowanych',notInstalled:'Niezainstalowane',refreshSecurityAudit:'Odśwież audyt bezpieczeństwa',analyzingSecurity:'Analizowanie bezpieczeństwa...',bruteForceProtection:'Ochrona przed brute force',bruteForceProtectionDesc:'Skonfiguruj limity prób logowania i czas blokady, aby blokować nieautoryzowane próby dostępu',loginProtection:'Ochrona logowania',passwordPolicy:'Polityka haseł',minPasswordLength:'Minimalna długość',requireUppercase:'Wielkie litery',requireLowercase:'Małe litery',requireNumbers:'Cyfry',requireSpecial:'Znaki specjalne',sessionTimeout:'Limit czasu sesji',hours:'godziny',securityRecommendations:'Rekomendacje bezpieczeństwa',securityRecommendationsDesc:'Sugestie dotyczące poprawy bezpieczeństwa PegaProx',httpsEnabled:'Połączenie jest szyfrowane',httpsDisabled:'Rozważ włączenie HTTPS dla bezpiecznych połączeń',currentlySetTo:'Aktualnie ustawiono',adminAccounts:'Konta administratorów',adminAccountsActive:'aktywnych kont administratorów',defaultCredentials:'Domyślne poświadczenia',noDefaultPassword:'Nie wykryto domyślnych haseł',defaultPasswordWarning:'Domyślne hasło administratora jest nadal używane!',lockAfter:'Zablokuj po',failedAttempts:'nieudanych próbach',auditLogging:'Logowanie audytowe',auditLoggingEnabled:'Wszystkie działania są rejestrowane na potrzeby bezpieczeństwa',secure:'Bezpieczne',considerLowering:'Rozważ zmniejszenie',reviewRecommended:'Zalecany przegląd',actionRequired:'Wymagane działanie',maxLoginAttempts:'Maks. liczba prób logowania',maxLoginAttemptsDesc:'Liczba nieudanych prób przed zablokowaniem',lockoutTime:'Czas blokady',attemptWindow:'Okno prób',lockedIps:'Zablokowane adresy IP',noLockedIps:'Brak zablokowanych adresów IP',unlockAll:'Odblokuj wszystkie',unlockAllConfirm:'Na pewno odblokować wszystkie adresy IP?',allIpsUnlocked:'Wszystkie adresy IP odblokowane',unlock:'Odblokuj',unlocked:'odblokowano',attempts:'próby',remaining:'pozostało',about:'O programie',developmentTeam:'Zespół programistyczny',creditsAcknowledgments:'Autorzy i podziękowania',links:'Linki',updateManager:'Menedżer aktualizacji',updateManagerDesc:'Sprawdź i zainstaluj aktualizacje na wszystkich węzłach klastra',checkForUpdates:'Sprawdź aktualizacje',checkingUpdates:'Sprawdzanie aktualizacji...',updatesAvailable:'Dostępne aktualizacje',noUpdatesAvailable:'Brak dostępnych aktualizacji',packagesAvailable:'Dostępne pakiety',lastChecked:'Ostatnio sprawdzono',neverChecked:'Nigdy nie sprawdzano',startRollingUpdate:'Rozpocznij rolling update',updateThisNode:'Aktualizuj ten węzeł',package:'Pakiet',currentVersion:'Aktualna wersja',newVersion:'Nowa',noUpdatesForNode:'Ten węzeł jest aktualny',updateNodeDesc:'Na węźle zostanie uruchomione apt update && apt dist-upgrade.',kernelUpdateDetected:'Wykryto aktualizację jądra',rebootRecommended:'Zalecany jest restart w celu zastosowania zmian jądra.',updateStarted:'Aktualizacja rozpoczęta',nodeNotInMaintenance:'Węzeł nie jest w trybie konserwacji.',forceUpdateWarning:'Działające VM na tym węźle mogą zostać zakłócone, jeśli wykonany zostanie restart.',continueAnyway:'Kontynuować mimo to?',rollingUpdateDesc:'Aktualizuje wszystkie węzły kolejno. Każdy węzeł jest przełączany w tryb konserwacji, VM są migrowane, aktualizacje instalowane, a opcjonalnie wykonywany jest restart.',rollingUpdateInProgress:'Rolling update w toku',rollingUpdateCompleted:'Rolling update zakończony',rollingUpdateFailed:'Rolling update nie powiódł się',rollingUpdateCancelled:'Rolling update anulowany',nodesUpdated:'Zaktualizowane węzły',currentlyUpdating:'Aktualnie aktualizowany',waitingForReboot:'Oczekiwanie na restart',nodesCompleted:'Zakończone węzły',nodesRemaining:'Pozostałe węzły',includeReboot:'Restart po aktualizacji',includeRebootHint:'Zalecane przy aktualizacjach jądra',confirmUpdate:'Aktualizacja zostanie pobrana i zainstalowana. Zostanie utworzona kopia zapasowa, a serwer automatycznie uruchomi się ponownie. Kontynuować?',downloadingUpdate:'Pobieranie aktualizacji...',installingUpdate:'Instalowanie aktualizacji...',serverRestarting:'Serwer uruchamia się ponownie...',updateSuccessRestarting:'Aktualizacja zainstalowana! Serwer uruchamia się ponownie...',updateComplete:'Aktualizacja zakończona! Odśwież stronę.',alreadyUpToDate:'System jest już aktualny!',installUpdate:'Zainstaluj aktualizację',updateAvailable:'Dostępna aktualizacja!',newVersionAvailable:'Dostępna nowa wersja!',updateTo:'Aktualizuj do',viewUpdate:'Pokaż aktualizację',later:'Później',whatsNew:'Co nowego',breakingChanges:'Zmiany niekompatybilne',doNotCloseWindow:'Nie zamykaj tego okna...',rollback:'Przywróć',rollbackDesc:'Przywróć poprzednią wersję z kopii zapasowej',viewBackups:'Pokaż kopie zapasowe',selectBackup:'Wybierz kopię zapasową do przywrócenia',noBackupsFound:'Nie znaleziono kopii zapasowych',confirmRollback:'PegaProx zostanie przywrócony z kopii zapasowej, a serwer uruchomi się ponownie. Kontynuować?',restoringBackup:'Przywracanie z kopii zapasowej...',rollbackSuccess:'Przywracanie zakończone pomyślnie! Serwer uruchamia się ponownie...',rollbackWarning:'⚠️ Przywracanie spowoduje restart serwera. Upewnij się, że wszystkie niezapisane zmiany zostały zapisane.',securityStatus:'Stan bezpieczeństwa',dataEncryption:'Szyfrowanie danych',passwordHashing:'Haszowanie haseł',compliance:'Zgodność',complianceStatus:'Stan zgodności',auditLogIntegrity:'Integralność dziennika audytu',encryptionKey:'Klucz szyfrowania',corsConfiguration:'Konfiguracja CORS',verifyIntegrity:'Zweryfikuj integralność',rotateKey:'Zmień klucz',rotating:'Zmiana klucza...',totalEntries:'Łącznie wpisów',verified:'Zweryfikowane',unsigned:'Niepodpisane (stare)',tampered:'Możliwa ingerencja',algorithm:'Algorytm',keySize:'Rozmiar klucza',lastRotation:'Ostatnia rotacja',backups:'Kopie zapasowe',allowedOrigins:'Dozwolone źródła',ipWhitelisting:'Biała lista IP',enableIPWhitelist:'Włącz białą listę IP',ipWhitelistDesc:'Zezwalaj na dostęp tylko z określonych adresów IP',yourIP:'Twój bieżący adres IP',whitelist:'Biała lista',blacklist:'Czarna lista',allowedIPs:'Dozwolone adresy IP',blockedIPs:'Zawsze blokowane',testIP:'Testuj dostęp z IP',supportedFormats:'Obsługiwane formaty',configBackupRestore:'Kopia zapasowa i przywracanie konfiguracji',exportConfig:'Eksportuj konfigurację',importConfig:'Importuj konfigurację',includeUsers:'Uwzględnij konta użytkowników',includeSecrets:'Uwzględnij hasła i dane poufne',includeAuditLog:'Uwzględnij dziennik audytu',canBeLarge:'Może być duży',sensitive:'Dane wrażliwe',downloadBackup:'Pobierz kopię zapasową',exporting:'Eksportowanie...',merge:'Scal',overwrite:'Nadpisz',keepExisting:'Zachowaj istniejące',replaceAll:'Zastąp wszystko',restoreUsers:'Przywróć konta użytkowników',notAdmin:'Z wyłączeniem administratora',validateOnly:'Tylko zweryfikuj, bez wprowadzania zmian',selectBackupFile:'Wybierz plik kopii zapasowej',importing:'Importowanie...',dryRunComplete:'Test zakończony — sprawdź wyniki poniżej',dryRunResults:'Wyniki testu',restoreComplete:'Konfiguracja przywrócona',restoreResults:'Wyniki przywracania',backupVersion:'Wersja kopii zapasowej',backupDate:'Data kopii zapasowej',backupDownloaded:'Zaszyfrowana kopia zapasowa pobrana',backupBy:'Utworzona przez',restored:'Przywrócono',skipped:'Pominięto',secureBackup:'Bezpieczna kopia zapasowa',secureBackupDesc:'Kopie zapasowe są szyfrowane AES-256-GCM. Musisz podać hasło do swojego konta oraz osobne hasło szyfrowania kopii.',securityVerification:'Weryfikacja bezpieczeństwa',exportSecurityDesc:'Aby utworzyć zaszyfrowaną kopię zapasową, potwierdź swoją tożsamość i ustaw hasło kopii.',importSecurityDesc:'Aby przywrócić kopię zapasową, potwierdź swoją tożsamość i podaj hasło kopii.',yourPassword:'Twoje hasło',enterYourPassword:'Wprowadź hasło do swojego konta',backupPassword:'Hasło kopii zapasowej',backupPasswordPlaceholder:'Min. 8 znaków — zapamiętaj je!',confirmBackupPassword:'Potwierdź hasło kopii zapasowej',repeatBackupPassword:'Powtórz hasło kopii zapasowej',backupPasswordMin8:'Hasło kopii zapasowej musi mieć co najmniej 8 znaków',passwordsNoMatch:'Hasła nie są zgodne',backupPasswordRequired:'Hasło kopii zapasowej jest wymagane',rememberBackupPassword:'Zapamiętaj hasło kopii zapasowej! Bez niego nie będzie można jej przywrócić.',restoreFromBackup:'Przywróć z kopii zapasowej',validateBackup:'Zweryfikuj kopię zapasową',backupFile:'Plik kopii zapasowej',backupPasswordUsedWhenCreating:'Hasło użyte podczas tworzenia kopii',autoMigration:'Automatyczna migracja',militaryGradeEncryption:'Szyfrowanie klasy wojskowej',skipNode:'Pomiń węzeł',retryNode:'Ponów dla węzła',cancelRollingUpdate:'Anuluj rolling update',confirmRollingUpdate:'Potwierdź rolling update',rollingUpdateWarning:'Wszystkie węzły zostaną zaktualizowane kolejno. VM będą migrowane automatycznie.',skipUpToDate:'Pomiń aktualne węzły',skipUpToDateHint:'Węzły bez dostępnych aktualizacji zostaną pominięte',evacuationTimeout:'Timeout ewakuacji',evacuationTimeoutHint:'Jak długo czekać na migrację VM przed przekroczeniem limitu czasu',rebootTimeout:'Timeout restartu / powrotu online',rebootTimeoutHint:'Jak długo czekać na powrót węzła online po restarcie. Zwiększ ten czas, jeśli używasz Ceph OSD lub wielu dysków.',allowLocalDisks:'Migruj VM i kontenery z dyskami lokalnymi',allowLocalDisksHint:'Ewakuuj VM i kontenery LXC z lokalnego magazynu, kopiując ich dyski na węzeł docelowy przez sieć klastra. VM migrują na żywo przez --with-local-disks; LXC nie obsługują migracji na żywo i używają pct migrate --restart. Duże dyski wymagają więcej czasu.',allowLocalDisksWarn:'Ewakuacja potrwa znacznie dłużej. Rozważ zwiększenie limitu czasu ewakuacji.',skipEvacuation:'Pomiń ewakuację VM',skipEvacuationHint:'NIEZALECANE — VM pozostają na węźle podczas aktualizacji',skipEvacuationWarning:'⚠️ Ostrzeżenie: VM mogą ulec awarii, jeśli podczas aktualizacji wystąpi problem!',scheduleUpdates:'Harmonogram aktualizacji',enableAutoUpdate:'Włącz automatyczne aktualizacje',autoUpdateDesc:'Automatycznie uruchamiaj rolling update według harmonogramu',updateDay:'Dzień aktualizacji',updateTime:'Czas aktualizacji',serverTimezone:'Strefa czasowa serwera',autoUpdateInfo:'Węzły będą aktualizowane kolejno. VM zostaną automatycznie zmigrowane. Aktualne węzły będą pomijane.',scheduleSaved:'Harmonogram aktualizacji zapisany',scheduledFor:'Zaplanowano na',experimental:'EKSPERYMENTALNE',experimentalWarning:'Używaj ostrożnie — ta funkcja jest nadal eksperymentalna. Najpierw przetestuj ją poza środowiskiem produkcyjnym.',runOnce:'Uruchom jednorazowo',recurring:'Cyklicznie',runOnceInfo:'Aktualizacja zostanie uruchomiona jednorazowo o zaplanowanej porze, a następnie harmonogram zostanie wyłączony.',monday:'Poniedziałek',tuesday:'Wtorek',wednesday:'Środa',thursday:'Czwartek',friday:'Piątek',saturday:'Sobota',sunday:'Niedziela',estimatedTime:'Szacowany czas',minutes:'minuty',updateHistory:'Historia aktualizacji',viewUpdateLog:'Pokaż log aktualizacji',checkingForUpdates:'Sprawdzanie aktualizacji',checkingNodes:'Sprawdzanie dostępnych aktualizacji na węzłach...',connectingToCluster:'Łączenie z klastrem...',processingResults:'Przetwarzanie wyników...',repoInfo:'Zarządzaj repozytoriami APT tego węzła. Włączaj lub wyłączaj repozytoria, aby kontrolować dostępność pakietów.',repoProxmoxNotice:'Uwaga: ze względu na przejście Proxmox na nowy format źródeł wyświetlane informacje mogą być obecnie niedokładne. Trwają prace nad poprawką.',requiresSubscription:'Wymaga subskrypcji',detected:'Wykryto',notConfigured:'Nieskonfigurowane',repoWarning:'Łączenie repozytoriów Enterprise i no-subscription nie jest zalecane. Po zmianie repozytoriów uruchom „apt update”, aby odświeżyć listę pakietów.',noReposFound:'Nie znaleziono repozytoriów',currentNode:'Bieżący węzeł',currentStep:'Bieżący krok',updateLogs:'Logi aktualizacji',cpuCores:'Rdzenie CPU',cpuLimit:'Limit CPU',hardware:'Sprzęt',mountIso:'Zamontuj ISO',noMedia:'Brak nośnika',noIsoEject:'Brak ISO (wysuń)',device:'Urządzenie',cdrom:'CD-ROM',hardDisk:'Dysk twardy',existingCdrom:'Istniejący napęd CD-ROM',hardDiskNotAvailable:'Dysk twardy — niedostępny!',freeSlot:'Wolne gniazdo',mount:'Zamontuj',eject:'Wysuń',freeSpace:'Wolne',notEnoughSpace:'Za mało miejsca!',mountPath:'Ścieżka montowania',mountPathHint:'Bezwzględna ścieżka wewnątrz kontenera, w której ten wolumin będzie zamontowany (np. /data).',mountPathRequired:'Wprowadź bezwzględną ścieżkę montowania wewnątrz kontenera (np. /data)',usedSpace:'Użyte',resize:'Zmień rozmiar',remove:'Usuń',editDiskType:'Zmień typ magistrali',changeDiskBusType:'Zmień typ magistrali dysku',vmIsRunning:'VM jest uruchomiona',vmMustBeStopped:'Maszyna musi być zatrzymana',vmMustBeStoppedForBusChange:'VM musi być zatrzymana przed zmianą typu magistrali dysku. Najpierw wyłącz VM.',currentDisk:'Bieżący',diskBusWarning:'Zmiana typu magistrali wymaga zatrzymania VM. System gościa może wymagać aktualizacji sterowników.',selectNewBusType:'Wybierz nowy typ magistrali',scsiDesc:'Najlepsza wydajność z kontrolerem VirtIO SCSI',virtioDesc:'Starszy VirtIO, dobra wydajność',sataDesc:'Dobra zgodność, umiarkowana wydajność',ideDesc:'Maksymalna zgodność, najniższa wydajność',current:'Bieżący',changeBusType:'Zmień typ magistrali',saving:'Zapisywanie...',diskBusChanged:'Typ magistrali dysku zmieniony',optionsWillBeRemoved:'Następujące opcje nie są obsługiwane i zostaną usunięte',noDisksConfigured:'Brak skonfigurowanych dysków',unusedDisks:'Nieużywane dyski',unusedDisksDesc:'Te dyski są odłączone, ale nadal istnieją. Możesz podłączyć je ponownie lub usunąć.',reattach:'Podłącz ponownie',reattachDisk:'Podłącz dysk ponownie',selectBusType:'Wybierz typ magistrali',diskId:'ID dysku',nextAvailableId:'Następne dostępne ID dla wybranego typu magistrali',diskOptions:'Opcje dysku',ideLimitedOptions:'IDE ma ograniczony zestaw dostępnych opcji',attaching:'Podłączanie...',volume:'Wolumin',diskReattached:'Dysk podłączony ponownie',deleteUnusedDiskConfirm:'Trwale usunąć dysk? Tej operacji nie można cofnąć!',unusedDiskDeleted:'Nieużywany dysk usunięty',configLoadError:'Nie udało się wczytać konfiguracji',networking:'Sieć',networkOverview:'Przegląd sieci',noNetworkData:'Brak danych sieciowych',bridgePorts:'Porty mostka',connectedVms:'Podłączone VM',noVmsOnBridge:'Brak przypisanych VM',presentOnNodes:'Obecny na węzłach',addNetwork:'Dodaj interfejs sieciowy',noNetworksConfigured:'Brak skonfigurowanych sieci',networkDisconnected:'Sieć odłączona',disconnectNetwork:'Odłącz sieć',disconnectNetworkHint:'Symuluje odłączenie kabla sieciowego',connectNetwork:'Podłącz sieć',createSnapshot:'Utwórz migawkę',unknown:'nieznany',noSnapshots:'Brak migawek',createReplication:'Utwórz replikację',replicationNeedsTwoNodes:'Replikacja wymaga co najmniej 2 węzłów w klastrze',replicationHint:'Utwórz zadanie replikacji, aby synchronizować dane VM między węzłami',addReplication:'Dodaj',confirmDeleteReplication:'Usunąć to zadanie replikacji?',replicationInfoTitle:'Replikacja VM',replicationInfoDesc:'Utrzymuj dane VM zsynchronizowane między węzłami na potrzeby failover i odtwarzania awaryjnego. Dostępne są dwa tryby:',zfsNativeDesc:'Przyrostowe ZFS send/recv. Szybkie i wydajne, wymaga ZFS na obu węzłach.',snapshotDesc:'Podejście oparte na klonowaniu i migracji. Działa z dowolnym magazynem (LVM, katalog itp.).',anyStorage:'dowolny magazyn',snapshotReplNote:'Tworzy pełny klon VM i migruje go na węzeł docelowy. Poprzednia replika jest zastępowana przy każdym uruchomieniu.',noSnapshotReplJobs:'Brak zadań replikacji migawkowej',nativeProxmoxReplication:'Natywna replikacja Proxmox (ZFS)',pending:'Oczekujące',zfsReplicationTitle:'Replikacja ZFS dla małych klastrów',zfsReplicationDesc:'Replikacja ZFS używa migawek przyrostowych do synchronizacji danych między węzłami. Jest idealna dla klastrów 2-węzłowych, w których Ceph nie jest praktyczny. Wymaga magazynu ZFS na węźle źródłowym i docelowym.',zfsRequired:'Węzeł źródłowy i docelowy muszą używać magazynu ZFS dla replikowanego dysku VM.',everyMinute:'Co minutę',every5Min:'Co 5 minut',every15Min:'Co 15 minut',every30Min:'Co 30 minut',everyHour:'Co godzinę',every6Hours:'Co 6 godzin',lastSync:'Ostatnia synchronizacja',neverSynced:'Nigdy nie synchronizowano',syncNow:'Synchronizuj teraz',protection:'Ochrona (zapobiega usunięciu/modyfikacji)',kvmVirtualization:'Wirtualizacja sprzętowa KVM',unprivilegedContainer:'Kontener nieuprzywilejowany',other:'Inny',hotplug:'Hotplug',hotplugHint:'Urządzenia, które można dodawać podczas działania VM',hotplugDisk:'Dysk',hotplugNetwork:'Sieć',hotplugUsb:'USB',hotplugMemory:'Pamięć',hotplugCpu:'CPU',qemuGuestAgent:'QEMU Guest Agent',qemuGuestAgentHint:'Umożliwia wyłączanie oraz zamrażanie/odmrażanie systemu plików dla migawek',fstrim:'FSTRIM po klonowaniu/migracji',fstrimHint:'Automatycznie uruchamiaj TRIM po klonowaniu',snapshotDescription:'Opis migawki...',saveRamState:'Zapisz stan RAM (hibernacja)',spaceEfficientSnapshot:'Migawka oszczędzająca miejsce',spaceEfficientSnapshots:'Migawki oszczędzające miejsce',snapshotMode:'Tryb migawki',normalMode:'Standardowy (Proxmox)',efficientMode:'Oszczędzający miejsce (LVM COW)',spaceSavings:'Oszczędność miejsca',normalSnapshotSize:'Standardowa migawka',efficientSnapshotSize:'Oszczędzająca miejsce',guestAgentDetected:'Wykryto Guest Agent (system plików zostanie zamrożony)',noGuestAgent:'Brak Guest Agent (migawka bez zamrażania systemu plików)',managedByPegaprox:'Zarządzane przez PegaProx (niewidoczne w Proxmox)',snapshotUsage:'Użycie migawki',snapshotOverflow:'Migawka jest prawie pełna!',snapshotInvalidated:'Migawka utracona — dane źródłowe są bezpieczne',efficientSnapshotCreated:'Utworzono migawkę oszczędzającą miejsce',efficientSnapshotDeleted:'Usunięto migawkę oszczędzającą miejsce',efficientSnapshotRollback:'Rozpoczęto przywracanie migawki',cowSnapshot:'COW',fsFrozen:'System plików zamrożony',snapshotSizeGb:'Rozmiar migawki (GB)',create:'Utwórz',comment:'Komentarz',commentPlaceholder:'np. replikacja DR',every5min:'Co 5 minut',every15min:'Co 15 minut',every30min:'Co 30 minut',every2hours:'Co 2 godziny',every4hours:'Co 4 godziny',every6hours:'Co 6 godzin',every12hours:'Co 12 godzin',editNetwork:'Edytuj interfejs sieciowy',viommu:'vIOMMU (wirtualizowane IOMMU)',viommuInfo:'Wymagane do zagnieżdżonej wirtualizacji i niektórych scenariuszy passthrough',ballooningMinimum:'Minimalny ballooning',swap:'Swap',machineTypePlaceholder:'np. q35 lub i440fx (puste = domyślne)',compatible:'zgodne',cache:'Pamięć podręczna',noCache:'Bez pamięci podręcznej',unsafe:'niebezpieczne',fastest:'najszybsze',discard:'Odrzucanie',ioThread:'Wątek I/O',ssdEmulation:'Emulacja SSD',branding:'Branding',appName:'Nazwa aplikacji',customLogo:'Własne logo',logoHint:'Zalecane PNG, SVG lub GIF. Maks. 500 KB.',logoUploaded:'Logo przesłane',logoUploadFailed:'Przesyłanie logo nie powiodło się',logoDeleted:'Logo usunięte',loginBackground:'Tło ekranu logowania',loginBackgroundDesc:'Prześlij własne tło ekranu logowania. Maks. 2 MB.',loginBackgroundUploaded:'Tło przesłane',loginBackgroundTooLarge:'Obraz tła logowania musi mieć mniej niż 2 MB',loginBackgroundDeleted:'Tło usunięte',removeBackground:'Usuń tło',upload:'Prześlij',thanksToSponsors:'Podziękowania dla sponsorów',sponsorSubtitle:'Wsparcie rozwoju open source',becomeSponsor:'Zostań sponsorem',sponsorNagTitle:'Pomóż utrzymać PegaProx 💛',sponsorNagBody:'PegaProx to projekt tworzony z pasji — sami pokrywamy koszty serwerów, domen i czasu poświęconego na rozwój. Jeśli to narzędzie oszczędza Ci czas i możesz wesprzeć projekt, będziemy bardzo wdzięczni za wpłatę przez Open Collective. Każde wsparcie, małe czy duże, pomaga utrzymać projekt przy życiu!',sponsorNagCta:'Wesprzyj nas na Open Collective',sponsorNagDismiss:'Może później',sponsorNagSnooze90:'Nie pokazuj ponownie przez 90 dni',madeWithLove:'Stworzone z ❤️ dla społeczności Proxmox',settingsSaved:'Ustawienia zapisane',saveError:'Błąd zapisywania',dnsSaved:'Ustawienia DNS zapisane',hostsSaved:'Ustawienia hostów zapisane',searchDomain:'Domena wyszukiwania',dnsServer:'Serwer DNS',time:'Czas',timezone:'Strefa czasowa',localTime:'Czas lokalny',sslCertificates:'Certyfikaty SSL',uploadCustomCert:'Prześlij własny certyfikat',issuer:'Wystawca',valid:'Ważny',expired:'Wygasł',noCertificates:'Nie znaleziono certyfikatów',certificate:'Certyfikat',privateKey:'Klucz prywatny',certChainHint:'Może zawierać wiele certyfikatów (łańcuch)',restartPveproxyAfterUpload:'Uruchom ponownie pveproxy po przesłaniu',certAndKeyRequired:'Certyfikat i klucz są wymagane',certUploaded:'Certyfikat przesłany!',uploadCertificate:'Prześlij certyfikat',deleteCertConfirm:'Usunąć własny certyfikat i przywrócić samopodpisany?',certDeleted:'Certyfikat usunięty',deleteCustomCert:'Usuń własny certyfikat',syslogLatest:'Syslog (najnowsze wpisy)',datastores:'Magazyny danych',esxiHosts:'Hosty ESXi',connectEsxi:'Połącz z hostem ESXi',esxiHostname:'Nazwa hosta/IP ESXi',esxiUsername:'Nazwa użytkownika',esxiPassword:'Hasło',esxiConnected:'Połączono z ESXi',esxiVms:'VM ESXi',migrateToProxmox:'Migruj do Proxmox',esxiMigrationHint:'PegaProx automatycznie zarządza stanem zasilania VM na ESXi',esxiMigrating:'Import w toku...',esxiMigrationStarted:'Import rozpoczęty',v2pSupportNote:'Tylko dzięki Twojemu wsparciu możemy utrzymać tę funkcję bezpłatną.',v2pSupportAck:'Rozumiem — będę o tym pamiętać.',v2pSupportAckRequired:'Potwierdź zapoznanie się z powyższą informacją',installVirtioDrivers:'Wstępnie zainstaluj sterowniki VirtIO (Windows)',installVirtioDriversDesc:'Umieszcza virtio-win-gt-x64.msi na dysku i przy pierwszym uruchomieniu instaluje pełny zestaw sterowników (magazyn, sieć, balloon, qemu-ga) w trybie cichym jako LocalSystem. Jest to rozwiązanie awaryjne, gdy źródłowa VM nie ma jeszcze sterowników. Wymaga virtio-win.iso na węźle docelowym.',virtioPreInstallWarnTitle:'Lepiej zainstalować sterowniki PRZED migracją',virtioPreInstallWarnBody:'Podłącz virtio-win.iso do działającej źródłowej VM na VMware, zamontuj jako CD i uruchom virtio-win-guest-tools.exe, a dopiero potem wykonaj migrację. Wstrzykiwanie sterowników offline działa w trybie best-effort: Windows 11 / Server 2025 nie zawsze poprawnie wiążą vioscsi podczas wczesnego rozruchu (ograniczenie Proxmox/QEMU), dlatego dysk rozruchowy musi pozostać na pvscsi. VM z zainstalowanymi przed migracją sterownikami mogą później bez problemu przejść na virtio-scsi.',fixQemuArgs:'Napraw argumenty QEMU (po zmianie magistrali dysku)',fixQemuArgsConfirm:'Spowoduje to zapisanie własnych argumentów QEMU (args:) w konfiguracji VM w celu naprawy rozmiarów sektorów po zmianie magistrali. Uwaga: VM z własnymi argumentami nie mogą być później migrowane na żywo ani między klastrami przez Proxmox. Kontynuować?',virtioIsoPath:'Ścieżka virtio-win.iso na węźle',virtioSshfsBootWarn:'Tryb live-mirror uruchamia VM zanim dyski zostaną ustabilizowane — wstrzykiwanie sterowników offline mogłoby uszkodzić działający NTFS. Wstępna instalacja jest tutaj pomijana. Użyj trybu offline / auto / snapshot_zero albo zainstaluj sterowniki po uruchomieniu z zamontowanego virtio-win.iso.',disableNoiseOverlay:'Wyłącz nakładkę szumu',disableNoiseOverlayDesc:'Usuwa subtelną teksturę ditheringu w nowoczesnym układzie',complianceSettings:'Zgodność i utwardzanie',auditRetention:'Retencja dziennika audytu (dni)',auditRetentionHint:'BSI IT-Grundschutz zaleca ≥ 180 dni. NIS2 / KRITIS często wymagają 365 lub więcej. Domyślnie: 90.',airGapMode:'Tryb air-gap',airGapModeDesc:'Wyłącza sprawdzanie aktualizacji i zewnętrzne wyszukiwanie CVE. Przeznaczone dla sieci VS-NfD / niejawnych, w których wychodzący HTTP jest zabroniony. Linki OpenCollective i logo sponsorów pozostają widoczne.',airGapModeActive:'Aktywny — PegaProx nie będzie kontaktować się z usługami zewnętrznymi. Automatyczne wykrywanie OIDC dla publicznych IdP może przestać działać; ustaw adresy discovery na wewnętrzne endpointy.',complianceDashboard:'Panel zgodności',complianceDashboardHint:'Widok audytowy tylko do odczytu dla wszystkich klastrów. Działania administracyjne znajdują się w Ustawienia → Zgodność.',overallScore:'Wynik ogólny',controls:'kontrole',auditActivity:'Ostatnia aktywność audytowa',lastEntries:'ostatnie 200 wpisów',openSettingsCompliance:'Otwórz Ustawienia → Zgodność',complianceProfileNote:'Profil: ',regionEU:'Frameworki UE / DACH',regionUS:'Frameworki obronne / federalne USA',downloadReport:'Pobierz raport (PDF)',complianceReport:'Raport zgodności',coverageSummary:'Podsumowanie pokrycia',property:'Właściwość',value:'Wartość',framework:'Framework',region:'Region',overallCoverage:'Ogólne pokrycie',controlsEvaluated:'Ocenione kontrole',generatedAt:'Wygenerowano',tool:'Narzędzie',disclaimer:'Zastrzeżenie',note:'Uwaga',disclaimerLine1:'Ten raport jest analizą technicznego pokrycia opartą na automatycznych kontrolach audytowych i wykonywaną w trybie best-effort.',disclaimerLine2:'NIE stanowi formalnej certyfikacji, akredytacji ani poświadczenia zgodności z {fw}.',disclaimerLine3:'Formalna zgodność wymaga udokumentowanych dowodów dla poszczególnych kontroli, audytu strony trzeciej oraz — tam, gdzie ma to zastosowanie — certyfikowanych modułów kryptograficznych.',disclaimerLine4:'Traktuj raport jako materiał do analizy luk. Przed przekazaniem wyników audytu ponownie zweryfikuj mapowania względem aktualnej wersji frameworka.',execSummaryPerNode:'Podsumowanie wykonawcze — pokrycie według węzłów',passed:'Zaliczone',coverage:'Pokrycie',otherCrossCutting:'Inne / przekrojowe',fullySatisfied:'w pełni spełnione',ref:'Ref',controlTitle:'Nazwa kontroli',internalCheck:'Kontrola wewnętrzna',noDirectMapping:'brak bezpośredniego mapowania',appendixBRemediation:'Załącznik B — Działania naprawcze',failedControl:'niezaliczona kontrola',failedControls:'niezaliczone kontrole',affectedNodes:'Węzły objęte problemem',recommendedAction:'Zalecane działanie',howToFix:'Jak naprawić',useHardeningTool:'Użyj narzędzia PegaProx Hardening, aby zastosować',appendixAMethodology:'Załącznik A — Metodologia',topic:'Temat',dataSource:'Źródło danych',dataSourceDesc:'Kontrola check_node_hardening() wykonywana przez SSH na każdym węźle klastra. Wewnętrzne identyfikatory kontroli są mapowane na odwołania frameworka przez PegaProx compliance_mapping.py.',passFailDef:'Definicja PASS/FAIL',passFailDefDesc:'PASS = skonfigurowana kontrola zwróciła oczekiwany wynik. FAIL = każdy inny wynik, w tym brak wymaganej konfiguracji.',dashEntries:'Wpisy „—”',dashEntriesDesc:'Kontrola nie należała do wybranego profilu hardeningu albo nie została uruchomiona na tym węźle (np. brak dostępu SSH). Traktuj jako „nie oceniono”.',multiMapping:'Mapowanie 1:N',multiMappingDesc:'Jedna wewnętrzna kontrola może mapować się na wiele kontroli frameworka (np. ssh_crypto obejmuje IA.L2-3.5.10 i SC.L2-3.13.11). Wyświetlane są wszystkie powiązane odwołania.',limitations:'Ograniczenia',limitationsDesc:'Raport obejmuje wyłącznie konfigurację techniczną. Kontrole frameworków obejmują również polityki, szkolenia, bezpieczeństwo fizyczne, reagowanie na incydenty i udokumentowane procedury — te elementy nie są tutaj oceniane.',complianceMappingLoadFail:'Nie udało się wczytać mapowania zgodności',complianceAssessmentReport:'Raport oceny zgodności',subjectOrg:'Podmiot',frameworkRevision:'Wersja frameworka',hardeningProfile:'Profil hardeningu',reportingPeriod:'Okres raportowania',classification:'Klasyfikacja',classificationInternal:'Do użytku wewnętrznego — dokument roboczy audytu',generatedBy:'Wygenerowane przez',reportTool:'Narzędzie raportujące',generatingReport:'Generowanie raportu audytowego — pobieranie dowodów...',reportReady:'Raport gotowy',executiveSummary:'Podsumowanie wykonawcze',compliancePosture:'Poziom zgodności',postureNarrative:'Opis poziomu zgodności',totalControlsEvaluated:'Łączna liczba ocenionych kontroli',highSeverityCoverage:'Pokrycie wysokiego poziomu ważności',mediumSeverityCoverage:'Pokrycie średniego poziomu ważności',lowSeverityCoverage:'Pokrycie niskiego poziomu ważności',informationalCoverage:'Pozycje informacyjne',topFindings:'Najważniejsze ustalenia — najwyższy priorytet',priority:'#',scopeOfAssessment:'Zakres oceny',inScopeCluster:'Klaster w zakresie',inScopeNodes:'Węzły w zakresie',frameworkSource:'Źródło frameworka',frameworkNote:'Uwagi dotyczące frameworka',controlSetSize:'Liczba kontroli',sampling:'Próbkowanie',outOfScope:'Poza zakresem',outOfScopeText:'Polityki administracyjne, bezpieczeństwo personelu, bezpieczeństwo fizyczne, reagowanie na incydenty, ryzyko łańcucha dostaw oraz walidacja modułów kryptograficznych (FIPS 140-3) NIE są oceniane w tym raporcie.',methodology:'Metodologia',criteria:'Kryteria',findingsBySeverity:'Podsumowanie ustaleń — według poziomu ważności',checked:'Sprawdzono',findingsPerNode:'Ustalenia — pokrycie według węzłów',timeline:'Oś czasu',appendixCEvidence:'Załącznik C — Dowody',observations:'obserwacje',checkCommand:'Polecenie sprawdzające',expected:'Oczekiwane',observed:'Zaobserwowane',appendixDGlossary:'Załącznik D — Słownik',term:'Terminal',definition:'Definicja',pegaproxControl:'Kontrola PegaProx',cmPamPasswordRepair:'Napraw stos haseł PAM (odzyskiwanie)',stableVncMode:'Stabilny tryb VNC',stableVncModeDesc:'Opakowuje ramki VNC w AES-256-GCM. Włącz, jeśli w sieci działa inspekcja HTTPS (CrowdStrike, Palo Alto, Zscaler itd.) zakłócająca konsolę VNC.',stableVncModeNote:'następne połączenie VNC użyje szyfrowanego tunelu',pegaPamRepairDesc:'Wykrywa uszkodzony /etc/pam.d/common-password, w którym pam_pwhistory.so dodano z use_authtok, ale przed nim brak pam_pwquality.so. Naprawa: jeśli libpam-pwquality jest zainstalowany, dodaje pam_pwquality.so PRZED pwhistory; w przeciwnym razie usuwa use_authtok, aby pwhistory samodzielnie pytał o hasło. Kopia zapasowa z sygnaturą czasu jest zapisywana jako common-password.bak.repair-. Operacja jest idempotentna — ponowne uruchomienie na zdrowym systemie nic nie zmienia.',pegaPamRepairImpact:'Brak wpływu na zdrowe systemy. Przywraca możliwość zmiany haseł na systemach, na których mechanizm był uszkodzony.',hardeningUiHint:'Uwaga dla operatora: wartości w kolumnie „Kontrola PegaProx” odpowiadają nazwom pól wyboru w Ustawienia → Zgodność → Harden PVE Node. Aby naprawić problem, wybierz niezaliczoną kontrolę o tej nazwie i kliknij „Zastosuj wybrane”.',endOfReportNote:'Koniec raportu. Informacje o ograniczeniach użycia tych ustaleń znajdują się w zastrzeżeniu na początku dokumentu.',hardenProfileAll:'Wszystkie kontrole',hardenProfileHint:'Filtruj kontrole według frameworka zgodności. Wszystkie kontrole = pełny zestaw CIS+Lynis+STIG+PegaProx.',informational:'informacyjne',vsnfdInformational:'Tylko informacyjnie — bez automatycznego zastosowania',vsnfdDiskEnc:'Szyfrowanie dysków (LUKS / natywne ZFS)',vsnfdDiskEncDesc:'Informuje, czy woluminy root/dane używają LUKS lub natywnego szyfrowania ZFS. Tylko audyt — musi być skonfigurowane podczas instalacji.',vsnfdAuditRet:'Retencja journald ≥ 6 miesięcy',vsnfdAuditRetDesc:'Sprawdza, czy journald MaxRetentionSec jest ustawione na co najmniej 6 miesięcy. BSI wymaga retencji logów audytowych ≥ 180 dni.',vsnfdJournaldSize:'journald SystemMaxUse ≥ 1G',vsnfdJournaldSizeDesc:'Zapewnia, że journald może przechowywać wystarczającą ilość logów do spełnienia wymagań retencji.',vsnfdSecureBoot:'UEFI Secure Boot włączony',vsnfdSecureBootDesc:'Informuje, czy firmware wymusza podpisane bootloadery. Nie można tego przełączyć podczas pracy — należy włączyć w firmware.',vsnfdLockdown:'Kernel lockdown (integrity / confidentiality)',vsnfdLockdownDesc:'Sprawdza /sys/kernel/security/lockdown. BSI zaleca tryb „integrity” lub „confidentiality”. Ustaw przez parametr jądra lockdown=integrity przy starcie.',vsnfdPwMin12:'Minimalna długość hasła ≥ 12 (BSI)',vsnfdPwMin12Desc:'BSI wymaga haseł o długości co najmniej 12 znaków (bardziej rygorystyczne niż 8 znaków w CIS-L1). Skonfiguruj przez pwquality minlen.',applyingControl:'Stosowanie…',justApplied:'Właśnie zastosowano',queued:'W kolejce',exemptUsers:'Użytkownicy wyłączeni',alwaysExempt:'zawsze wyłączeni',plusOptional:'+ opcjonalnie',extraServiceUsers:'monitoring,backup',storageUnreachable:'nieosiągalny',storageUnreachableShort:'brak danych',storageUnreachableHint:'Magazyn jest skonfigurowany, ale nieosiągalny z tego węzła — sprawdź sieć / montowanie / poświadczenia',storageRaw:'raw',storageRawNoUsage:'brak statystyk użycia',storageRawHint:'Surowy magazyn blokowy (np. iSCSI bez LVM, RBD bez systemu plików) — Proxmox nie raportuje statystyk użycia dla tego typu',activeOn:'Aktywny na',unreachableFrom:'nieosiągalny z',viewFromNode:'widok z',esxiDisconnect:'Rozłącz',esxiNoVms:'Brak VM na tym hoście ESXi',esxiExperimental:'Import ESXi używa natywnej funkcji Proxmox (PVE 8.1+)',noEsxiHosts:'Brak podłączonych hostów ESXi',fillAllFields:'Wypełnij wszystkie pola',confirmDisconnect:'Rozłączyć ten host ESXi?',xhmTitle:'Migracja między hypervisorami',xhmDesc:'Migruj VM między Proxmox i XCP-ng',xhmDirection:'Kierunek',xhmPveToXcpng:'Proxmox → XCP-ng',xhmXcpngToPve:'XCP-ng → Proxmox',xhmAnalyze:'Analizuj VM',xhmNetworkMapping:'Mapowanie sieci',xhmEstTransferTime:'Szacowany czas transferu',xhmOfflineOnly:'VM musi być zatrzymana (migracja offline)',xhmStartMigration:'Rozpocznij migrację',xhmPvWarning:'VM typu PV (parawirtualizowane) nie mogą być migrowane do KVM',xhmSourceCluster:'Klaster źródłowy',xhmSourceVm:'Źródłowa VM',xhmTargetCluster:'Klaster docelowy',xhmTargetNode:'Węzeł docelowy',xhmTargetStorage:'Magazyn docelowy',xhmNoMigrations:'Brak migracji. Rozpocznij nową za pomocą kreatora migracji.',xhmStartAfter:'Uruchom VM po migracji',xhmRemoveSource:'Usuń źródłową VM po zakończeniu',sharedStorage:'Magazyn współdzielony',clickStorageToView:'Kliknij magazyn, aby wyświetlić jego zawartość',storageEmpty:'Ten magazyn jest pusty',isoSync:'Synchronizacja ISO',backupSla:'SLA kopii zapasowych',backupSlaBreachedPct:'Naruszenie SLA kopii zapasowych %',backupSlaCompliancePct:'Zgodność z SLA kopii zapasowych %',backupSlaDesc:'Określ maksymalny dopuszczalny wiek kopii zapasowej dla każdej VM. Uwzględnia lokalne vzdump oraz migawki PBS i oznacza VM, które nie spełniają wymagań.',maxBackupAge:'Maks. wiek kopii zapasowej (godziny)',zeroDisables:'0 = wyłączone',compliant:'Zgodne',breached:'Naruszone',noBackup:'Brak kopii zapasowej',lastBackup:'Ostatnia kopia zapasowa',age:'Wiek',slaConfigSaved:'Cel SLA kopii zapasowych zapisany',slaConfigSaveFailed:'Zapis nie powiódł się',slaDisabledHint:'Monitorowanie SLA jest wyłączone. Ustaw maksymalny wiek kopii zapasowej powyżej, aby rozpocząć ocenę.',slaLoadingPrompt:'Kliknij odśwież, aby wczytać dane SLA kopii zapasowych.',isoSyncDesc:'Rozprowadzaj obrazy ISO i szablony między wszystkimi węzłami klastra. Przydatne w konfiguracjach opartych wyłącznie na iSCSI bez współdzielonego magazynu plikowego.',syncAll:'Synchronizuj wszystkie brakujące',syncAllStarted:'Synchronizowanie wszystkich brakujących plików...',synced:'Zsynchronizowano',autoSync:'Automatyczna synchronizacja po przesłaniu',autoSyncDesc:'Automatycznie rozprowadzaj nowe obrazy ISO/szablony na wszystkie węzły po przesłaniu',oidcReauthHint:'Zalogowano przez SSO. Hasło nie jest wymagane — sesja zostanie zweryfikowana.',storageDrsDesc:'Automatycznie balansuj użycie dysków między współdzielonymi magazynami',storageUsage:'Użycie magazynu',currentImbalance:'Bieżąca nierównowaga',storageBalanced:'Wszystkie magazyny są prawidłowo zbalansowane. Nie jest wymagane żadne działanie.',experimentalFeature:'Funkcja eksperymentalna',storageBalancingExperimental:'Balansowanie magazynów jest nadal funkcją eksperymentalną. Będziemy wdzięczni za opinie!',uploadIso:'Prześlij ISO',downloadFromUrl:'Pobierz z URL',fromUrl:'Z URL',isoUrl:'Adres URL ISO',isoUrlHint:'Bezpośredni link do pliku ISO (http/https)',autoDetect:'Wykryj automatycznie z URL',startingDownload:'Rozpoczynanie pobierania...',downloading:'Pobieranie...',selectFile:'Wybierz plik',deleteConfirmText:'Czy na pewno chcesz usunąć',createStorageCluster:'Utwórz klaster magazynów',noStorageClusters:'Brak skonfigurowanych klastrów magazynów',createStorageClusterHint:'Utwórz klaster, aby balansować dane między wieloma magazynami',selectClusterToView:'Wybierz klaster magazynów, aby wyświetlić stan balansowania',balancingThreshold:'Próg balansowania',thresholdDesc:'Uruchom balansowanie, gdy nierównowaga przekroczy tę wartość',actionRecommended:'Zalecane działanie',balanced:'Zbalansowane',storagesInCluster:'Magazyny w klastrze',selectStorages:'Wybierz magazyny',minTwo:'min. 2',noSharedStorages:'Brak dostępnych magazynów współdzielonych',confirmDeleteCluster:'Usunąć ten klaster magazynów?',minTwoStorages:'Wymagane są co najmniej 2 magazyny',needTwoStorages:'Potrzebne są co najmniej 2 magazyny',autoBalance:'Automatyczne balansowanie',autoBalanceActive:'Automatyczne balansowanie aktywne',autoBalanceDesc:'Dyski będą automatycznie migrowane, gdy nierównowaga przekroczy próg. VM z aktywnymi migawkami/kopiami zapasowymi są pomijane.',dryRunShort:'Tryb testowy',needsRestart:'WYMAGA RESTARTU',createAlert:'Utwórz alert',editAlert:'Edytuj alert',alertName:'Nazwa alertu',alertMetric:'Metryka',alertThreshold:'Próg',alertOperator:'Warunek',alertTarget:'Cel',alertTargetType:'Typ celu',noAlerts:'Brak skonfigurowanych alertów',testEmail:'Wyślij testowy e-mail',testEmailSuccess:'Testowy e-mail wysłany!',testEmailFailed:'Nie udało się wysłać testowego e-maila',enterEmailAddress:'Wprowadź adres e-mail',saveSmtpSettings:'Zapisz ustawienia SMTP',smtpSettingsSaved:'Ustawienia SMTP zapisane!',enableSmtpHint:'Włącz SMTP, aby skonfigurować ustawienia poczty',smtpHostRequired:'Host SMTP jest wymagany',smtpFromEmailRequired:'Adres e-mail nadawcy jest wymagany',emailRecipients:'Odbiorcy e-mail',addRecipient:'Dodaj odbiorcę',scheduledTasks:'Zaplanowane zadania',scheduledTasksDesc:'Automatyzuj operacje na VM według harmonogramu',createTask:'Utwórz zadanie',editTask:'Edytuj zadanie',taskName:'Nazwa zadania',taskAction:'Akcja',taskSchedule:'Harmonogram',scheduleTime:'Czas',scheduleDay:'Dzień',noScheduledTasks:'Brak zaplanowanych zadań',tagsLabels:'Tagi i etykiety',createTag:'Utwórz tag',tagName:'Nazwa tagu',tagColor:'Kolor',assignedVms:'Przypisane maszyny wirtualne',affinityRules:'Reguły kolokacji',customScripts:'Skrypty niestandardowe',scriptsDesc:'Uruchamiaj własne skrypty .sh lub .py na węzłach klastra',newScript:'Nowy skrypt',noScripts:'Brak skonfigurowanych skryptów',scriptsInfo:'Twórz skrypty automatyzujące zadania na węzłach klastra',runScript:'Uruchom skrypt',runScriptConfirm:'Uruchomić ten skrypt?',scriptStarted:'Uruchomiono wykonywanie skryptu',scriptDeleted:'Skrypt usunięty',scriptCreated:'Skrypt utworzony',scriptUpdated:'Skrypt zaktualizowany',scriptPermissions:'Uprawnienia skryptu',scriptPermissionsDesc:'Skrypty wymagają dostępu SSH do węzłów. Skonfiguruj klucz SSH w ustawieniach klastra.',scriptContent:'Treść skryptu',targetNodes:'Węzły docelowe',scriptWarning:'Skrypty są uruchamiane z uprawnieniami użytkownika SSH. Przed uruchomieniem upewnij się, że są bezpieczne.',passwordRequiredForScripts:'Ze względów bezpieczeństwa wymagane jest potwierdzenie hasłem',viewOutput:'Pokaż wynik',hardenNode:'Utwardzanie węzła PVE',hardenDesc:'Zastosuj mechanizmy utwardzania zgodne z CIS Benchmark dla poszczególnych węzłów PVE przez SSH.',hardenCisRef:'Na podstawie CIS Benchmark, Lynis Security Auditing i wytycznych DoD STIG',lynisRecommendations:'Zalecenia',checkStatus:'Sprawdź status',checking:'Sprawdzanie...',checkingHardening:'Sprawdzanie mechanizmów CIS przez SSH...',controlsActive:'aktywnych mechanizmów',applySelected:'Zastosuj wybrane',securitySelfCheck:'Samokontrola bezpieczeństwa',securitySelfCheckDisclaimer:'Wewnętrzna samokontrola ustawień bezpieczeństwa PegaProx — nie jest formalną oceną, poświadczeniem ani certyfikacją HIPAA lub ISO 27001.',chargeback:'Rozliczanie kosztów',monthlyEstimate:'Szacunkowy koszt miesięczny',basedOnLast:'na podstawie ostatnich',noClustersForTenant:'Brak klastrów przypisanych do tego dzierżawcy.',topVmsByCost:'Najdroższe maszyny wirtualne',downloadCsv:'Pobierz CSV',quotas:'Limity zasobów',quotaZeroHint:'0 = bez limitu',currentUsage:'Bieżące użycie',maxVms:'Maks. liczba VM',maxCores:'Maks. liczba rdzeni',maxMemoryGb:'Maks. RAM (GB)',quotaEnforcement:'Po przekroczeniu',quotaBlock:'Blokuj nowe VM',quotaWarn:'Tylko ostrzegaj (zezwalaj)',quota:'Limit',activeAlerts:'Aktywne alerty',acknowledge:'Potwierdź',acked:'potwierdzono',alertAcked:'Alert potwierdzony',escStep:'etap',severityAuto:'Automatycznie (wg wartości)',escalationLabel:'Eskalacja',escAfter:'Po',addEscStep:'Dodaj etap eskalacji',cisSshdHardening:'Utwardzanie dostępu SSH',cisSshdHardeningDesc:'Logowanie root wyłącznie kluczem (PermitRootLogin prohibit-password), MaxAuthTries 4, X11Forwarding wyłączone, limit bezczynności i brak pustych haseł. PasswordAuthentication pozostaje bez zmian, aby nie zablokować użytkowników korzystających z haseł.',cisSshdHardeningImpact:'Logowanie root hasłem zostanie wyłączone (logowanie kluczem nadal działa). Zmianę można cofnąć za pomocą opcji Cofnij wybrane.',cisPamNullok:'Usuń PAM nullok (blokuj puste hasła)',cisPamNullokDesc:'Usuwa flagę nullok ze wszystkich plików /etc/pam.d/*, dzięki czemu konta z pustym hasłem nie mogą się uwierzytelnić.',cisPamNullokImpact:'Konta z pustymi hasłami nie będą mogły się logować. Zmianę można cofnąć za pomocą opcji Cofnij wybrane.',rollbackSelected:'Cofnij wybrane',appliedTickToRollback:'Zastosowano — zaznacz, aby cofnąć',controlsRolledBack:'mechanizmów cofnięto',hardenRollbackConfirm:'Przywrócić wybrane mechanizmy na tym węźle do stanu sprzed zastosowania? Cofnąć można tylko zmiany wykonane przez PegaProx, dla których zapisano migawkę stanu.',hardenRollbackHint:'Przywróć wybrane mechanizmy do stanu sprzed zastosowania (dotyczy tylko zmian wykonanych przez PegaProx)',applying:'Stosowanie...',controlsApplied:'mechanizmów zastosowano',noControlsSelected:'Nie wybrano żadnych mechanizmów',hardenConfirm:'⚠️ Ostrzeżenie: wybrane mechanizmy utwardzania zostaną zastosowane na tym węźle.\n\nPliki konfiguracji systemu zostaną zmodyfikowane. Niektóre zmiany mogą wymagać ponownego uruchomienia.\n\nKontynuować?',alreadyApplied:'Już zastosowano',applied:'Zastosowano',notApplied:'Nie zastosowano',pveImpact:'Wpływ na PVE',reference:'Odniesienie',control:'Mechanizm',hardenReportTitle:'Raport utwardzania węzła',auditEvidence:'Dowody audytowe',verboseAuditOutput:'Szczegółowy wynik audytu',verboseHint:'Dołącz surowy wynik sprawdzenia dla każdego mechanizmu — przydatne w raportach audytowych',showAuditDetails:'Pokaż szczegóły audytu',hideAuditDetails:'Ukryj szczegóły audytu',actualState:'Stan bieżący',hardenEmpty:'Wybierz węzeł i kliknij „Sprawdź status”',hardenEmptyDesc:'PegaProx sprawdza, które mechanizmy CIS są już zastosowane, i umożliwia włączenie pozostałych.',cisFs:'Wyłącz nieużywane moduły systemów plików',cisFsDesc:'Blokuje ładowanie rzadko używanych modułów systemów plików jądra (cramfs, freevxfs, hfs, hfsplus, jffs2)',cisFsImpact:'Brak wpływu — maszyny wirtualne i kontenery działają bez zmian',cisCoreDumps:'Wyłącz zrzuty pamięci',cisCoreDumpsDesc:'Zapobiega tworzeniu zrzutów pamięci po awarii programów, ponieważ mogą one zawierać hasła i klucze',cisCoreDumpsImpact:'Brak wpływu — awarie VM nadal są normalnie rejestrowane',cisMounts:'Utwardzanie opcji montowania',cisMountsDesc:'Stosuje nodev, nosuid i noexec dla /tmp, /var/tmp oraz /dev/shm w celu ograniczenia eskalacji uprawnień',cisMountsImpact:'Brak wpływu na działanie klastra ani maszyn wirtualnych',cisCron:'Utwardzanie dostępu do Cron/At',cisCronDesc:'Ogranicza dostęp do harmonogramu zadań wyłącznie do użytkownika root, utrudniając utrwalenie dostępu przez atakującego',cisCronImpact:'Brak wpływu — zaplanowane zadania PVE działają jako root',cisNet:'Wyłącz nieużywane protokoły sieciowe',cisNetDesc:'Blokuje ładowanie rzadko używanych protokołów sieciowych (dccp, sctp, rds, tipc)',cisNetImpact:'Brak wpływu — Proxmox ich nie używa',cisJournald:'Utwardzanie Journald',cisJournaldDesc:'Konfiguruje trwałe i kompresowane logowanie, zachowywane po ponownym uruchomieniu systemu, przydatne w analizie powłamaniowej',cisJournaldImpact:'Lepsze możliwości analizy powłamaniowej',cisSshPerms:'Uprawnienia plików SSH',cisSshPermsDesc:'Ustawia bezpieczne uprawnienia (600) dla konfiguracji SSH i kluczy hosta',cisSshPermsImpact:'Brak wpływu — SSH działa normalnie',cisSshCrypto:'Utwardzanie kryptografii SSH',cisSshCryptoDesc:'Konfiguruje SSH tak, aby używało wyłącznie silnych szyfrów (AES-GCM/CTR), bezpiecznej wymiany kluczy (Curve25519) oraz silnych MAC (SHA2-ETM)',cisSshCryptoImpact:'Bardzo stare klienty SSH mogą nie być w stanie się połączyć',cisPam:'Blokowanie kont (pam_faillock)',cisPamDesc:'Blokuje konto po 5 nieudanych próbach logowania i automatycznie odblokowuje je po 10 minutach. Konto root jest wyłączone z tej reguły.',cisPamImpact:'Działa razem z Fail2Ban, zapewniając wielowarstwową ochronę',cisTimeout:'Limit bezczynności powłoki',cisTimeoutDesc:'Automatycznie wylogowuje nieaktywne sesje powłoki po 15 minutach',cisTimeoutImpact:'Dotyczy wyłącznie interaktywnych sesji SSH',cisFilePerms:'Uprawnienia plików systemowych',cisFilePermsDesc:'Ustawia prawidłowe uprawnienia dla /etc/passwd, /etc/shadow, /etc/group i /etc/gshadow',cisFilePermsImpact:'Brak wpływu — standardowe utwardzanie systemu Linux',lynDns:'Zapasowy serwer DNS',lynDnsDesc:'Zapewnia konfigurację co najmniej 2 serwerów DNS w celu redundancji (konfigurowalne)',lynDnsImpact:'Ogranicza ryzyko niedostępności DNS',lynPostfix:'Utwardzanie bannera Postfix',lynPostfixDesc:'Usuwa informacje o wersji oprogramowania z bannera serwera pocztowego, aby ograniczyć ujawnianie informacji o wersji',lynPostfixImpact:'Brak wpływu — ukrywana jest jedynie informacja o wersji',lynPwHash:'Liczba iteracji haszowania haseł',lynPwHashDesc:'Zwiększa liczbę iteracji haszowania haseł SHA (5000–500000), znacznie spowalniając ataki brute-force',lynPwHashImpact:'Dotyczy wyłącznie nowych i zmienianych haseł',lynPwQuality:'Jakość haseł PAM',lynPwQualityDesc:'Wymusza silne hasła: minimum 12 znaków, wielka litera, mała litera, cyfra i znak specjalny. Instaluje libpam-pwquality.',lynPwQualityImpact:'Użytkownicy muszą ustawiać silniejsze hasła',lynPwAging:'Okres ważności haseł',lynPwAgingDesc:'Wymusza zmianę hasła co 365 dni z ostrzeżeniem 30 dni wcześniej. Konto root jest wyłączone z tej reguły.',lynPwAgingImpact:'Użytkownicy muszą zmieniać hasła raz w roku',lynPwHistory:'Historia haseł',lynPwHistoryDesc:'Blokuje ponowne użycie 24 ostatnich haseł za pomocą pam_pwhistory.',lynPwHistoryImpact:'Użytkownicy nie mogą ponownie używać ostatnio stosowanych haseł',lynUmask:'Domyślny Umask (027)',lynUmaskDesc:'Zaostrza domyślne uprawnienia plików, dzięki czemu nowe pliki są dostępne tylko dla właściciela i grupy, a nie dla wszystkich',lynUmaskImpact:'Nowe pliki mają domyślnie bardziej restrykcyjne uprawnienia',cmUmaskToolingNote:'umask 027 wpływa również na narzędzia uruchamiane w powłoce logowania, które tworzą pliki lub kontenery — np. skrypty community LXC ustawiają /etc na 750 i przestaje działać DNS. Przed użyciem takich narzędzi wykonaj umask 022 albo wycofaj tę kontrolę.',cmSshdRootLockoutNote:'PegaProx łączy się z tym klastrem przy użyciu hasła, bez klucza SSH — ta kontrola wyłącza logowanie root hasłem, więc jej zastosowanie odetnie własny dostęp PegaProx do węzła (a wycofanie zmian również wymaga SSH). Najpierw dodaj klucz SSH do klastra.',hardenApplyTitle:'Zastosuj mechanizmy utwardzania',hardenApplyBtn:'Zastosuj',hardenApplyBody:'Spowoduje to zastosowanie {n} mechanizmów do „{node}”. Pliki konfiguracji systemu zostaną zmodyfikowane; niektóre zmiany mogą wymagać ponownego uruchomienia.',hardenAccessAck:'Rozumiem, że te mechanizmy zmieniają dostęp SSH / logowania i przy błędnej konfiguracji mogą zablokować zdalny dostęp.',hardenLockoutAck:'Rozumiem, że ta zmiana odetnie PegaProx od dostępu do tego klastra przy użyciu hasła, i mam dostęp konsolowy lub ręczny pozwalający na odzyskanie dostępu.',lynPkgCleanup:'Czyszczenie pozostałości po pakietach',lynPkgCleanupDesc:'Usuwa pozostałe pliki konfiguracyjne po wcześniej odinstalowanych pakietach',lynPkgCleanupImpact:'Brak wpływu — usuwane są nieużywane pozostałości konfiguracji',lynDebsums:'Weryfikacja pakietów (debsums)',lynDebsumsDesc:'Instaluje debsums do weryfikacji integralności plików pakietów oraz wykrywania uszkodzonych lub zmodyfikowanych plików systemowych',lynDebsumsImpact:'Brak wpływu — narzędzie wykonuje wyłącznie weryfikację',lynBanners:'Bannery logowania',lynBannersDesc:'Wyświetla ostrzeżenie prawne przed logowaniem, wymagane przez niektóre standardy zgodności (PCI-DSS, HIPAA)',lynBannersImpact:'Brak wpływu — zmiana wyłącznie informacyjna',lynAide:'Monitorowanie integralności plików (AIDE)',lynAideDesc:'Tworzy bazę sum kontrolnych plików w celu wykrywania nieautoryzowanych zmian w plikach binarnych i konfiguracji systemu',lynAideImpact:'Początkowe tworzenie bazy danych działa w tle',lynAcct:'Rejestrowanie procesów',lynAcctDesc:'Rejestruje informacje o każdym uruchomionym procesie do celów analizy powłamaniowej (podgląd za pomocą lastcomm)',lynAcctImpact:'Minimalne obciążenie',lynSysstat:'Statystyki systemowe (sysstat)',lynSysstatDesc:'Zbiera w czasie statystyki CPU, pamięci, I/O dysków i sieci (do danych historycznych użyj sar)',lynSysstatImpact:'Minimalne obciążenie — pomaga diagnozować problemy',lynUsb:'Wyłącz pamięć masową USB/FireWire',lynUsbDesc:'Blokuje ładowanie sterowników pamięci masowej USB i FireWire, ograniczając ryzyko kradzieży danych. Klawiatury i myszy nadal działają.',lynUsbImpact:'Dyski USB nie będą rozpoznawane',lynCompilers:'Ogranicz dostęp do kompilatorów',lynCompilersDesc:'Ogranicza użycie kompilatorów (gcc, g++, make) wyłącznie do użytkownika root, utrudniając kompilowanie kodu exploitów',lynCompilersImpact:'Użytkownicy inni niż root nie mogą kompilować',lynAptShow:'Zarządzanie poprawkami (apt-show-versions)',lynAptShowDesc:'Instaluje apt-show-versions, umożliwiając szybki przegląd zainstalowanych pakietów i ich statusu aktualizacji',lynAptShowImpact:'Brak wpływu — narzędzie tylko do odczytu',lynTmpdir:'Izoluj /tmp dla każdej sesji',lynTmpdirDesc:'Tworzy odizolowane katalogi tymczasowe dla każdej sesji użytkownika, ograniczając ataki typu race condition w /tmp',lynTmpdirImpact:'Brak wpływu — dotyczy tylko sesji interaktywnych',stigRecommendations:'Wytyczne',stigSession:'Limit równoczesnych sesji',stigSessionDesc:'Ogranicza każdego użytkownika do maksymalnie 10 równoczesnych sesji logowania. Konto root jest wyłączone z tego ograniczenia ze względu na operacje klastra.',stigSessionImpact:'Brak wpływu — root ma nielimitowaną liczbę sesji',stigInactive:'Wyłącz nieaktywne konta',stigInactiveDesc:'Automatycznie wyłącza konta użytkowników po 35 dniach bez logowania. Konto root i konta usługowe są wyłączone z tej reguły.',stigInactiveImpact:'Nieużywane konta są wyłączane po 35 dniach',stigLegacy:'Usuń niebezpieczne usługi starszego typu',stigLegacyDesc:'Usuwa pakiety telnet, rsh, talk, ntalk i nis, które przesyłają dane, w tym hasła, w postaci niezaszyfrowanej',stigLegacyImpact:'Brak wpływu — Proxmox korzysta z SSH',stigAuditBoot:'Audyt od startu systemu',stigAuditBootDesc:'Dodaje parametr jądra audit=1, aby włączyć audyt od pierwszej chwili uruchamiania systemu i wyeliminować lukę w rejestrowaniu zdarzeń podczas wczesnego startu',stigAuditBootImpact:'Minimalny wpływ — uruchamianie systemu dłuższe o około 1–2 s. Wymagany restart.',stigAuditRules:'Rejestrowanie poleceń uprzywilejowanych',stigAuditRulesDesc:'Rozszerzone rejestrowanie sudo/su/passwd, zmian uprawnień, modyfikacji kont, ładowania modułów jądra, konfiguracji sieci oraz zmian w /etc/pve/',stigAuditRulesImpact:'Minimalny wpływ — audyt obejmuje tylko użytkowników interaktywnych (auid>=1000)',stigAideAudit:'Ochrona narzędzi audytowych (AIDE)',stigAideAuditDesc:'Dodaje pliki binarne audytu (auditd, ausearch, aureport) do monitorowania integralności AIDE z sumami SHA512. Wymaga AIDE.',stigAideAuditImpact:'Brak wpływu — monitorowane są tylko pliki binarne narzędzi audytowych',stigMemProt:'Ochrona pamięci — utwardzanie jądra',stigMemProtDesc:'Parametry jądra: init_on_alloc=1, init_on_free=1, page_alloc.shuffle=1, slab_nomerge. Ograniczają wycieki informacji i ataki use-after-free.',stigMemProtImpact:'Narzut wydajności około 1–3%. Wymagany restart.',stigAuditLock:'Niezmienność reguł audytu',stigAuditLockDesc:'Blokuje konfigurację audytu flagą -e 2. Reguł nie można zmienić bez restartu, co utrudnia atakującemu wyłączenie audytu.',stigAuditLockImpact:'Zmiana reguł audytu wymaga restartu',pegaApparmor:'AppArmor (obowiązkowa kontrola dostępu)',pegaApparmorDesc:'Włącza AppArmor i wymusza wszystkie profile. Ogranicza dostęp programów nawet po ich przejęciu, dodając warstwę ochrony ponad standardowe uprawnienia plików.',pegaApparmorImpact:'Brak wpływu na standardowe PVE — niestandardowe usługi mogą wymagać własnych profili',pegaDisableSvc:'Wyłącz zbędne usługi',pegaDisableSvcDesc:'Zatrzymuje i wyłącza Bluetooth, CUPS (drukowanie) oraz Avahi (mDNS). Mniejsza liczba działających usług oznacza mniejszą powierzchnię ataku.',pegaDisableSvcImpact:'Brak lokalnego drukowania i Bluetooth — bez znaczenia dla serwerów',pegaSysctl:'Utwardzanie sieci i jądra przez sysctl',pegaSysctlDesc:'Stosuje ponad 20 parametrów sysctl: ochronę przed spoofingiem IP, blokowanie przekierowań ICMP, ochronę przed SYN flood, ASLR, ograniczenie dmesg, ptrace scope i ochronę dowiązań symbolicznych.',pegaSysctlImpact:'Brak wpływu — standardowe utwardzanie serwera produkcyjnego',pegaAuditd:'Włącz demona audytu (auditd)',pegaAuditdDesc:'Instaluje i włącza auditd do rejestrowania zdarzeń systemowych. Połącz z regułą STIG „Rejestrowanie poleceń uprzywilejowanych”, aby uzyskać pełniejsze reguły audytu.',pegaAuditdImpact:'Minimalne obciążenie — wymagane jako podstawa dla reguł audytu',createAffinityRule:'Utwórz regułę',editAffinityRule:'Edytuj regułę',ruleName:'Nazwa reguły',ruleType:'Typ reguły',selectVms:'Wybierz maszyny',noAffinityRules:'Brak reguł kolokacji',enforceRule:'Wymuszaj regułę',enforceRuleHint:'Blokuj migracje, które naruszałyby tę regułę',consoleSettings:'Porty konsoli',vncPort:'Port VNC',shellPort:'Port powłoki',consolePortHint:'VNC dla konsol VM, powłoka dla terminali węzłów. Po zmianie wymagany jest restart serwera!',nodeShellHint:'Aby uzyskać dostęp do powłoki węzła lub zobaczyć szczegółowe dane wydajności, użyj przycisku Proxmox UI powyżej albo połącz się bezpośrednio z węzłem.',selfSignedCertWarning:'Certyfikaty samopodpisane',selfSignedCertHint:'VNC i powłoka działają na osobnych portach. W przypadku certyfikatów samopodpisanych trzeba zaakceptować je jednorazowo w przeglądarce.',openVncPort:'Otwórz port VNC',openShellPort:'Otwórz port powłoki',certInstructions:'Dla certyfikatów samopodpisanych:',certStep1:'1. Otwórz ten link w nowej karcie:',certStep2:'2. Zaakceptuj certyfikat w przeglądarce',certStep3:'3. Wróć tutaj i spróbuj ponownie',acceptCert:'Zaakceptuj certyfikat',openInProxmox:'Otwórz w Proxmox',wsConnectionFailed:'Połączenie WebSocket nie powiodło się',checkServerLogs:'Sprawdź logi serwera, aby uzyskać szczegóły',connectingWs:'Łączenie WebSocket',wsConnected:'WebSocket połączony, oczekiwanie na serwer...',ipFetchFailed:'Nie udało się pobrać adresu IP',smtpSettings:'Ustawienia SMTP',smtpHost:'Serwer SMTP',smtpPort:'Port',smtpUser:'Nazwa użytkownika',smtpPassword:'Hasło',smtpFromEmail:'Adres nadawcy',smtpFromName:'Nazwa nadawcy',smtpTls:'Użyj TLS',smtpSsl:'Użyj SSL',alertCooldown:'Odstęp między alertami (sekundy)',alertUpdateAvailable:'Wyślij e-mail, gdy dostępna będzie aktualizacja PegaProx',alertUpdateAvailableDesc:'Sprawdzane raz dziennie. Dla każdej nowej wersji wysyłane jest jedno powiadomienie do odbiorców podanych powyżej.',migrationHistory:'Historia migracji',noMigrationHistory:'Brak zarejestrowanych migracji',passwordExpiry:'Ważność hasła',passwordExpiryDesc:'Wymuszaj zmianę hasła po określonej liczbie dni.',passwordExpiryHint:'Użytkownicy otrzymują przypomnienia e-mail 14, 7, 3 i 1 dzień przed wygaśnięciem hasła. W interfejsie wyświetlany jest również baner ostrzegawczy. Do wysyłania wiadomości wymagane jest skonfigurowane SMTP.',sendExpiryEmails:'Wysyłaj powiadomienia e-mail przed wygaśnięciem hasła',expiryDays:'Hasło wygasa po',warningDays:'Ostrzegaj użytkowników przed wygaśnięciem',passwordExpired:'Twoje hasło wygasło!',passwordExpiresIn:'Twoje hasło wygaśnie za {days} dni',pleaseChangeNow:'Zmień je teraz.',pleaseChangeSoon:'Zmień je wkrótce.',dismissForNow:'Przypomnij później',forcePasswordReset:'Wymuś reset haseł',forcePasswordResetDesc:'Natychmiast wygasza hasła wszystkich użytkowników. Użyj tej funkcji po incydencie bezpieczeństwa.',resetAllPasswords:'Zresetuj wszystkie',confirmPasswordReset:'Potwierdź reset haseł',resetAllWarning:'Spowoduje to wymuszenie zmiany hasła przez WSZYSTKICH użytkowników przy następnym logowaniu. Tej operacji nie można cofnąć.',includeAdmins:'Uwzględnij konta administratorów',includeAdminsWarning:'Ostrzeżenie: również Ty będziesz musiał zmienić swoje hasło!',includeAdminsInExpiry:'Uwzględnij konta administratorów',includeAdminsInExpiryDesc:'Administratorzy również będą musieli regularnie zmieniać swoje hasła',appearance:'Wygląd',themeDesc:'Wybierz motyw kolorystyczny interfejsu',themeNote:'Zmiany motywu są stosowane natychmiast i zapisywane na Twoim koncie.',chooseTheme:'Wybierz motyw',themePersonal:'Wybierz motyw odpowiadający Twoim preferencjom. To ustawienie jest osobiste i dotyczy tylko Twojego konta.',defaultTheme:'Domyślny motyw',defaultThemeDesc:'Ustaw domyślny motyw dla nowych użytkowników. Użytkownicy mogą zmienić swój motyw w sekcji Mój profil.',currentDefault:'Bieżący domyślny',themeInProfile:'Zmień motyw w sekcji Mój profil (kliknij nazwę użytkownika w prawym górnym rogu)',layoutStyle:'Styl układu',layoutStyleDesc:'Wybierz nowoczesny pulpit lub klasyczny styl korporacyjny.',layoutModern:'Nowoczesny',layoutModernDesc:'Pulpit z kartami, animacjami i gradientami',layoutCorporate:'Korporacyjny',layoutCorporateDesc:'Klasyczny styl korporacyjny — zwarty widok danych',layoutCloudDesc:'Przestronna siatka kart w stylu chmurowym',layoutSelectionDesc:'Wybierz preferowany styl interfejsu. Możesz go zmienić w dowolnym momencie w Mój profil → Styl układu.',layoutSelectionHint:'Możesz to zmienić w dowolnym momencie w Mój profil → Styl układu',topologyView:'Topologia',worldMap:'Mapa świata',worldMapHint:'Lokalizacje klastrów',zoomIn:'Powiększ',zoomOut:'Pomniejsz',resetZoom:'Resetuj powiększenie',showCapitals:'Pokaż stolice',hideCapitals:'Ukryj stolice',worldMapLoading:'Ładowanie mapy…',worldMapLoadFailed:'Nie udało się załadować mapy świata',worldMapNoneSet:'Brak klastrów na mapie.',worldMapSetHint:'Ustaw szerokość i długość geograficzną klastra, aby umieścić go na mapie.',clusterLocations:'Lokalizacje klastrów',locationNotSet:'Lokalizacja nieustawiona',latitude:'Szerokość geograficzna',longitude:'Długość geograficzna',locationLabelField:'Etykieta',locationLabelOptional:'opcjonalnie',saveLocation:'Zapisz lokalizację',savingLocation:'Zapisywanie…',clearLocation:'Wyczyść',locationSaved:'Zapisano.',editLocation:'Edytuj',setLocation:'Ustaw',statusConnected:'połączono',statusDisconnected:'rozłączono',plottedOfTotal:'na mapie',diagramView:'Diagram',cardView:'Karty',exportDiagram:'Eksportuj diagram',exportAsPng:'Eksportuj jako PNG',exportAsJpg:'Eksportuj jako JPG',exportAsPdf:'Eksportuj jako PDF',noGuests:'brak gości',backupServers:'Serwery kopii',breadcrumbAll:'Wszystkie',taskbarAutoExpand:'Automatyczne rozwijanie paska zadań',showVmidSidebar:'Pokaż identyfikatory VM na pasku bocznym',showVmidSidebarDesc:'Pokazuj VMID obok nazwy każdej maszyny w drzewie paska bocznego',showVmidSidebarOn:'Identyfikatory VM są widoczne na pasku bocznym',showVmidSidebarOff:'Identyfikatory VM są ukryte',taskbarAutoExpandDesc:'Automatycznie rozwijaj pasek zadań po rozpoczęciu nowych zadań',taskbarAutoExpandEnabled:'Automatyczne rozwijanie paska zadań włączone',taskbarAutoExpandDisabled:'Automatyczne rozwijanie paska zadań wyłączone',dragToResize:'Przeciągnij, aby zmienić rozmiar',userColumnHint:'Pokazuje użytkownika PegaProx, jeśli jest dostępny; w przeciwnym razie użytkownika Proxmox',support:'Wsparcie',supportBundle:'Pakiet diagnostyczny',supportBundleDesc:'Generuje pakiet diagnostyczny zawierający logi, konfigurację i informacje systemowe pomocne w rozwiązywaniu problemów. Dane wrażliwe (hasła, tokeny, sekrety) są automatycznie usuwane.',bundleContents:'Zawartość pakietu',bundleSystemInfo:'Informacje systemowe (wersja, platforma, Python)',bundleClusterStatus:'Stan połączeń z klastrami',bundleAuditLogs:'Ostatnie wpisy dziennika audytu (500 ostatnich)',bundleAppLogs:'Logi aplikacji (1000 ostatnich linii)',bundleDbSchema:'Schemat bazy danych i statystyki',bundleServerSettings:'Ustawienia serwera (hasła usunięte)',bundleUserList:'Lista użytkowników (bez danych wrażliwych)',bundleRecentTasks:'Ostatnie zadania Proxmox',bundleSseStats:'Statystyki połączeń SSE/SSH',generatingBundle:'Generowanie pakietu diagnostycznego...',bundleDownloaded:'Pakiet diagnostyczny został pobrany',bundleError:'Nie udało się wygenerować pakietu diagnostycznego',downloadBundle:'Pobierz pakiet diagnostyczny',bundleSize:'Typowy rozmiar: 50–500 KB',supportResources:'Materiały pomocy',reportIssue:'Zgłoś problem',discussions:'Dyskusje',documentation:'Dokumentacja',releases:'Wydania',quickSystemInfo:'Szybkie informacje o systemie',rescan:'Skanuj ponownie',rescanningStorage:'Ponowne skanowanie magazynu...',storageRescanSuccess:'Ponowne skanowanie magazynu zakończone',storageRescanError:'Nie udało się ponownie przeskanować magazynu',rescanStorageTooltip:'Przeskanuj magazyn ponownie, aby wykryć nowe LUN-y lub woluminy',deepRescanningStorage:'Skanowanie szczegółowe (z pvresize)...',rescanOptions:'Opcje ponownego skanowania',quickRescan:'Szybkie skanowanie',quickRescanDesc:'Odświeża stan magazynu przez API. Użyj do zwykłej aktualizacji statusu.',deepRescan:'Skanowanie szczegółowe',deepRescanDesc:'Ponowne skanowanie SCSI przez SSH, rekonfiguracja multipath i automatyczne pvresize. Użyj po rozszerzeniu LUN-u lub dodaniu nowych LUN-ów.',deepRescanNote:'Wymaga dostępu SSH do węzłów',rescanStorage:'Skanuj magazyn ponownie',rescanStorageDesc:'Przeskanuj magazyn ponownie, aby wykryć zmiany.',themeChanged:'Motyw zmieniono na',themeChangeFailed:'Nie udało się zapisać motywu',uiLayout:'Układ interfejsu',layoutDesc:'Wybierz jeden z dostępnych układów interfejsu.',inventory:'Inwentarz',selectItem:'Wybierz element z drzewa',snapshotsOverview:'Przegląd migawek',snapshotsCleanUp:'Czyszczenie',snapshotsDesc:'Przegląd najstarszych migawek w tym klastrze',snapshotsHint:'Przegląd najstarszych migawek wszystkich maszyn i kontenerów w klastrze.',snapshotsType:'Typ',snapshotsDate:'Utworzono',snapshotsAge:'Wiek',snapshotsAction:'Akcja',filterNodesVms:'Filtruj węzły lub VM…',toggleAffinityEdges:'Pokaż/ukryj połączenia reguł powiązań',affinity:'Powiązania',toggleLegend:'Pokaż/ukryj legendę',lxcTerminal:'Terminal kontenera',toggleStorageTier:'Pokaż/ukryj warstwę magazynu',toggleNetworkTier:'Pokaż/ukryj warstwę sieciową',legend:'Legenda',legendOnline:'Węzeł online',legendOffline:'Węzeł offline',legendLowLoad:'CPU/RAM < 60 %',legendMidLoad:'CPU/RAM 60–80 %',legendHighLoad:'CPU/RAM > 80 %',legendVm:'VM / LXC uruchomione',legendVmStopped:'VM / LXC zatrzymane',legendAntiAff:'Krawędź anti-affinity',legendAff:'Krawędź affinity',legendHint:'Przeciągnij, aby przesunąć · przewiń, aby powiększyć · najedź, aby zobaczyć szczegóły',quorumAtRisk:'quorum zagrożone',nodesOffline:'węzłów offline',openWebUI:'Otwórz interfejs WWW',noHostKnown:'Brak znanego hosta dla tego klastra',openVmWebUI:'Otwórz interfejs WWW',setVmWebLink:'Ustaw adres URL WWW…',editVmWebLink:'Edytuj adres URL WWW…',setVmWebLinkPrompt:'Adres URL WWW tej maszyny lub kontenera (pozostaw puste, aby usunąć):',vmWebLinkSaved:'Adres WWW zapisany',vmWebLinkCleared:'Adres WWW usunięty',guestFilesystems:'Użycie systemów plików',exportFullCsv:'Pełny eksport CSV',exportFullCsvHint:'Eksport CSV po stronie serwera ze wszystkimi wpisami (do 10000)',exportFilteredHint:'Eksportuj widoczne wiersze z zastosowanym bieżącym filtrem',activeSessions:'Aktywne sesje',activeSessionsDesc:'Miejsca, w których jesteś obecnie zalogowany. Cofnij każdą sesję, której nie rozpoznajesz.',currentSession:'ta przeglądarka',lastActive:'Ostatnia aktywność',revoke:'Cofnij',revokeSession:'Cofnij tę sesję',sessionRevoked:'Sesja cofnięta',confirmRevokeCurrent:'Cofnięcie tej sesji spowoduje wylogowanie. Kontynuować?',noSessions:'Brak aktywnych sesji.',portalOnlyAccount:'To konto może logować się wyłącznie przez Portal klienta (/portal)',copyTokenNow:'Skopiuj token teraz — nie zostanie wyświetlony ponownie!',renameVm:'Zmień nazwę VM',renameVmDesc:'Zmień nazwę wyświetlaną',cloneVm:'Klonuj VM',cloneVmDesc:'Utwórz identyczną kopię',v2pMigrationDesc:'Migracja V2P z minimalnym przestojem',deleteVm:'Usuń VM',powerOffFirst:'Najpierw wyłącz VM, aby ją usunąć',permanentlyRemoveVm:'Trwale usuń tę VM',filterPermissions:'Filtruj uprawnienia…',clearAll:'Wyczyść',noMatchingPermissions:'Brak uprawnień pasujących do filtra.',pegaFail2ban:'fail2ban — SSH + PVE Web-UI',pegaFail2banDesc:'Instaluje fail2ban z jailami dla sshd oraz uwierzytelniania Proxmox Web-UI/API. Zasada: 5 nieudanych logowań w ciągu 10 minut powoduje blokadę IP na 24 godziny. Plik znacznikowy /etc/fail2ban/jail.d/pegaprox-pve.conf umożliwia bezpieczne ponowne zastosowanie.',pegaFail2banImpact:'Znikomy wpływ — odczytuje /var/log/daemon.log i /var/log/auth.log. Zablokowane adresy IP sprawdzisz poleceniem `fail2ban-client status proxmox`.',hardwareKeys:'Klucze sprzętowe',hardwareKeysDesc:'YubiKey, Nitrokey, Touch ID, Windows Hello. Używaj jako drugiego składnika logowania. Zarejestruj kilka kluczy, aby mieć zapasowy.',addHardwareKey:'Dodaj klucz bezpieczeństwa',hardwareKeyNamePrompt:'Nazwij ten klucz (np. „YubiKey 5C, biuro”)',hardwareKeyAdded:'Klucz bezpieczeństwa dodany',hardwareKeyRemoved:'Klucz usunięty',noHardwareKeys:'Brak zarejestrowanych kluczy sprzętowych.',confirmRemoveKey:'Usunąć ten klucz?',added:'Dodano',lastUsed:'Ostatnio użyty',browserNoWebauthn:'Przeglądarka nie obsługuje WebAuthn',webauthnUnavailable:'WebAuthn nie jest dostępny na tym serwerze (biblioteka fido2 nie jest zainstalowana).',useSecurityKey:'Użyj klucza bezpieczeństwa',or:'lub',webauthnIpHostTitle:'WebAuthn nie może być używany z adresami IP',webauthnIpHostDesc:'Otwórz PegaProx przez nazwę hosta (np. https://localhost:5000 lub https://your-server.local:5000), aby zarejestrować klucz bezpieczeństwa. Adresy IP takie jak 127.0.0.1 nie są dozwolone przez specyfikację WebAuthn.',capacityOutlook:'Prognoza pojemności',nodeAtRisk:'węzeł zagrożony',nodesAtRisk:'węzłów zagrożonych',allNodesStable:'wszystkie węzły stabilne',peakScore:'szczyt',wmaEngine:'Prognoza',capacityCollecting:'zbieranie danych…',metricAtRisk:'metryka zagrożona',metricsAtRisk:'metryk zagrożonych',allMetricsStable:'wszystkie metryki stabilne',overThreshold:'powyżej progu',etaIn:'przekroczy próg za',forecastEngine:'Prognoza',stable:'stabilne',metric:'metryka',commandPalettePlaceholder:'Wpisz, aby wyszukać klastry, VM lub akcje…',commandPaletteNoResults:'Brak wyników pasujących do zapytania.',navigate:'nawiguj',select:'wybierz',alertChannels:'Kanały alertów',alertChannelsDesc:'Wysyłaj alerty do Slack, Discord, Teams, ntfy lub dowolnego webhooka JSON. Kanały działają niezależnie od powiadomień e-mail.',addChannel:'Dodaj kanał',noChannels:'Brak skonfigurowanych kanałów.',testChannel:'Testuj',confirmDeleteChannel:'Usuń kanał',channelSaved:'Kanał zapisany',channelDeleted:'Kanał usunięty',token:'Token',accountLocked:'Zbyt wiele nieudanych prób. Spróbuj ponownie za około {mins} min.',strictSessionIp:'Ścisłe przypisanie sesji do IP',strictSessionIpLabel:'Unieważnij sesję po zmianie źródłowego adresu IP',strictSessionIpDesc:'Zapobiega użyciu ciasteczka sesji z innej sieci po jego przejęciu. Uwaga: użytkownicy mobilni za NAT operatora lub przełączający VPN mogą zostać wylogowani po zmianie adresu IP.',passwordChangedReloginRequired:'Hasło zostało zmienione — zaloguj się ponownie.',namespaceShort:'NS',reportSummary:'Podsumowanie',reportInventory:'Inwentarz',reportGap:'Analiza luk',reportWindow:'Zakres czasu',last7d:'Ostatnie 7 dni',last30d:'Ostatnie 30 dni',last90d:'Ostatnie 90 dni',last365d:'Ostatnie 365 dni',pickClusterForGap:'Wybierz klaster powyżej, aby uruchomić analizę luk',pickClusterForGapDesc:'Pokazuje, które VM w wybranym klastrze są chronione, mają nieaktualne kopie lub nie są w ogóle chronione na tym PBS.',noBackupsInWindow:'Brak kopii w wybranym zakresie czasu',noMatchingBackups:'Brak pasujących kopii',searchBackups:'Szukaj po nazwie VM, ID lub datastore…',unverifiedOld:'migawek starszych niż 30 dni bez udanej weryfikacji.',perDayActivity:'Aktywność dzienna',perVmRollup:'Ostatnia kopia dla każdej VM',totalJobs:'Łączna liczba zadań',successRate:'Wskaźnik powodzenia',stale:'Nieaktualne',protected:'Chronione',unprotected:'Niechronione',location:'Lokalizacja',daysAgo:'dni temu',now:'teraz',entries:'wpisy',namespace:'Przestrzeń nazw',unprotectedVms:'Niechronione VM',staleBackups:'Nieaktualne (ostatnia kopia starsza niż wybrany zakres)',backupInventory:'Inwentarz kopii zapasowych',firstDetected:'Wykryto po raz pierwszy',noFix:'brak rozwiązania',backupRunning:'Uruchomiono kopię zapasową',apiHealth:'Stan API',compare:'Porównaj',compareSnapshot:'Porównaj z bieżącą konfiguracją',pbsHealth:'Stan PBS',liveBackupProgress:'Trwa tworzenie kopii zapasowej…',preflightOk:'Wszystkie testy zakończone pomyślnie',preflightCheck:'Kontrola wstępna (PBS)',runCheck:'Uruchom kontrolę',autoFetch:'Pobieraj automatycznie',showUnchanged:'Pokaż bez zmian',noDifferences:'Brak różnic',generateKey:'Wygeneruj klucz',downloadJson:'Pobierz JSON',printRecoverySheet:'Drukuj kartę odzyskiwania',fingerprintMismatch:'Niezgodność odcisku',worstDatastore:'Najbardziej obciążony datastore',newestBackup:'Najnowsza kopia',fullIn:'Zapełni się za',liveFingerprint:'Bieżący odcisk',tcpReachable:'TCP osiągalne',authOk:'Uwierzytelnianie OK',datastoreFound:'Datastore znaleziony',keyboardShortcuts:'Skróty klawiaturowe',exportJson:'Eksport JSON',copyToClipboard:'Kopiuj do schowka',copied:'Skopiowano',liveUpdatesDisconnected:'Aktualizacje na żywo rozłączone',tryingReconnect:'Próba ponownego połączenia',autoSnapshotBeforeDelete:'Migawka przed operacją destrukcyjną',autoSnapshotBeforeDeleteDesc:'Automatycznie utwórz migawkę przed usunięciem, odtworzeniem lub migracją między klastrami.',filterRunning:'Uruchomione',filterStopped:'Zatrzymane',filterHasSnapshot:'Ma migawkę',filterHaProtected:'HA',clearFilter:'Wyczyść',bulkSelect:'Wybór zbiorczy',bulkSelected:'Wybrano: {n}',bulkAction:'Akcja',shortcutsHint:'Naciśnij ?, aby wyświetlić skróty',themeToggle:'Przełącz motyw',clusterHealthSshMissing:'Stan klastra wymaga dostępu SSH z PegaProx do węzła (corosync-cfgtool, pvecm, systemctl). Skonfiguruj poświadczenia SSH terminala węzła dla klastra i odśwież.',rollups:'Podsumowania',pools:'pule',byTag:'Według tagu',byPool:'Według puli',tag:'Tag',noGroupings:'Brak pogrupowanych VM.',rollupsHint:'VM z wieloma tagami są uwzględniane w podsumowaniu każdego tagu. CPU to suma bieżącego użycia w %, RAM/Dysk to zagregowane poziomy zapełnienia, a Net I/O jest liczone od uruchomienia VM.',sensors:'Sensory',sensor:'Czujnik',sensorsHint:'Sensory sprzętowe przez lm-sensors. Wartości czerwone przekraczają próg krytyczny, żółte przekraczają maksimum.',temperatureC:'Temperatura (°C)',tempHistoryTitle:'Temperatura w czasie (najcieplejszy sensor)',samples:'próbki',hardwareMonitoring:'Monitoring sprzętu',hardwareMonitoringDisabledDesc:'Monitoring sprzętu in-band (IPMI) nie jest włączony. Odczytuje sensory, pobór mocy, inwentarz i dziennik zdarzeń sprzętowych bezpośrednio na węźle — bez poświadczeń, tylko do odczytu.',enableHardwareMonitoring:'Włącz monitoring sprzętu',hwEnabled:'Monitoring sprzętu włączony',hwEnabledBy:'Włączone przez',hwReadFailed:'Nie udało się odczytać sprzętu',hwIpmitoolMissing:'ipmitool nie jest zainstalowany na tym węźle.',hwInstallHint:'PegaProx uruchomi apt-get install ipmitool na węźle i może załadować moduły jądra IPMI. Tryb tylko do odczytu, wyłącznie lokalne IPMI.',hwInstallIpmitool:'Zainstaluj ipmitool',hwInstalling:'Instalowanie…',hwInstallDone:'ipmitool zainstalowany',hwInstallFailed:'Instalacja ipmitool nie powiodła się',hwNoData:'Brak danych sprzętowych',hwSystemInfo:'Informacje systemowe',hwSensors:'Sensory',hwEventLog:'Dziennik zdarzeń sprzętowych (SEL)',hwConfirmDefault:'Rozumiem i akceptuję odpowiedzialność za włączenie tej funkcji',hwEnable:'Włącz',powerDraw:'Pobór mocy',partNumber:'Nr części',chassisIntrusion:'Naruszenie obudowy',hardwareHealth:'Stan sprzętu',degradedHardware:'Sprzęt w stanie obniżonym',hwAlertWarnPlus:'Ostrzeżenie lub gorzej',hwAlertCritOnly:'Tylko krytyczne',clustersDegradedHwNamed:'{count} klastrów ze sprzętem w stanie obniżonym: {names}',redfishOob:'Poza pasmem (Redfish)',redfishOobDesc:'Odczyt stanu sprzętu przez sieć zarządzania za pomocą API BMC Redfish — wariant poza pasmem, oparty na poświadczeniach, używany gdy in-band IPMI jest niedostępne.',redfishBmcHint:'Endpoint BMC dla tego węzła. Hasło jest przechowywane w postaci zaszyfrowanej i nie będzie ponownie wyświetlane.',enableRedfish:'Włącz monitoring poza pasmem',bmcHost:'Host / IP BMC',bmcUser:'Użytkownik BMC',bmcPassword:'Hasło BMC',bmcVerifySsl:'Weryfikuj certyfikat TLS',bmcTest:'Testuj',bmcTestOk:'Osiągalny',bmcTestFail:'Niepowodzenie',bmcSaved:'Endpoint BMC zapisany',bmcRemoved:'Endpoint BMC usunięty',configVersion:'Wersja konfiguracji',corosyncRings:'Pierścienie Corosync',address:'Adres',services:'Usługi',guestDetail:'Szczegóły gościa',loggedInUsers:'Zalogowani użytkownicy',clockSkew:'Odchylenie zegara',filesystems:'Systemy plików',interfaces:'Interfejsy',topTalkers:'Najaktywniejsze VM',topTalkersHint:'CPU/RAM/Dysk są wartościami bieżącymi; Disk I/O i Net I/O są sumowane od uruchomienia VM (aktywne VM są sortowane najwyżej).',cpuPercent:'CPU %',memoryPercent:'Pamięć %',diskUsagePercent:'Dysk %',diskIo:'Dysk I/O (łącznie bajtów)',netIo:'Sieć I/O (łącznie bajtów)',runningVms:'uruchomionych VM',interfaceStatistics:'Statystyki interfejsów',errOrDropHint:'Niezerowe błędy lub dropy RX/TX są wyróżniane na czerwono. Liczniki są sumowane od uruchomienia systemu.',keyAttributes:'Kluczowe atrybuty',allAttributes:'Wszystkie atrybuty'},// French translations by @IMNotMax (PR #186)
+languageSimplifiedChinese:'Chiński uproszczony',setupFailedHttp:'Konfiguracja nie powiodła się (HTTP {status})',mcevpnMemberAdded:'Klaster dodany do domeny EVPN',mcevpnMemberRemoved:'Klaster usunięty z domeny EVPN',mcevpnRemoveConfirm:'Usunąć ten klaster z domeny EVPN? (vNet pozostanie w klastrze)',mcevpnRemovePurgeConfirm:'Usunąć ten klaster z domeny EVPN ORAZ usunąć z niego vNet?',mcevpnRemoveMember:'Usuń z domeny EVPN (pozostaw vNet w klastrze)',mcevpnRemovePurge:'Usuń z domeny EVPN i usuń vNet z tego klastra',mcevpnAddMember:'Dodaj klaster do domeny EVPN',mcevpnPickCluster:'— wybierz klaster —',mcevpnScanned:'Skanowanie zmian konfiguracji zakończone',mcevpnReconcileConfirm:'Ponownie wdrożyć docelową definicję EVPN na wszystkich członkach? Spowoduje to naprawę różnic i zastosowanie konfiguracji SDN w całym klastrze.',mcevpnReconciled:'Różnice konfiguracji naprawione',mcevpnNothingToChange:'Brak zmian do zastosowania',mcevpnEdited:'vNet zaktualizowany',mcevpnSettingFailed:'Nie udało się zapisać ustawienia',mcevpnAutoReconcile:'Automatyczna naprawa różnic',mcevpnAutoReconcileHint:'Po włączeniu skaner różnic automatycznie ponownie wdraża docelową konfigurację na członkach z wykrytymi zmianami i wykonuje zastosowanie SDN w całym klastrze. Wyłączone = tylko wykrywanie.',mcevpnScan:'Skanuj różnice',mcevpnEdit:'Edytuj',mcevpnReconcile:'Napraw różnice',mcevpnEditTitle:'Edytuj vNet EVPN',mcevpnEditNote:'Pól strukturalnych (nazwa / strefa / VNI / ASN / kontroler) nie można zmieniać — aby je zmienić, usuń i utwórz obiekt ponownie. Zmiany są wdrażane we wszystkich klastrach członkowskich i powodują zastosowanie konfiguracji SDN w całym klastrze.',mcevpnAddSubnet:'Dodaj podsieć (CIDR)',mcevpnDelSubnet:'Usuń podsieć (CIDR)',mcevpnCurrentSubnets:'Bieżące podsieci',mcevpnTitle:'EVPN wieloklastrowy',mcevpnReadOnly:'Widok tylko do odczytu — zarządzanie wieloklastrowym EVPN wymaga uprawnień SDN i ustawień.',mcevpnSubtitle:'Jedna logiczna sieć vNet EVPN obejmująca kilka klastrów współdzielących BGP ASN. Fizyczna warstwa BGP-EVPN musi mieć już zestawione peeringi.',mcevpnCreate:'Utwórz vNet EVPN',mcevpnCreated:'Utworzono wieloklastrowy vNet EVPN',mcevpnReapplied:'Zastosowano ponownie',mcevpnDeleted:'Usunięto',mcevpnPurgeConfirm:'Usunąć ten vNet ORAZ usunąć go ze wszystkich klastrów członkowskich?',mcevpnForgetConfirm:'Usunąć ten wpis? (obiekty SDN pozostaną w klastrach)',mcevpnNeedTwo:'Wieloklastrowy vNet EVPN obejmuje wiele klastrów — dodaj co najmniej dwa połączone klastry, aby funkcja miała praktyczne zastosowanie. Możesz zdefiniować jeden klaster, ale rozwiązanie ma sens dopiero dla co najmniej dwóch członków.',mcevpnEmpty:'Brak wieloklastrowych sieci vNet EVPN. Utwórz jedną, aby rozszerzyć domenę EVPN L2 na klastry z tym samym ASN.',mcevpnReapply:'Zastosuj ponownie / ponów',mcevpnForget:'Usuń wpis',mcevpnPurge:'Usuń i wyczyść z klastrów',mcevpnVnetName:'Nazwa vNet',mcevpnZone:'ID strefy EVPN',mcevpnController:'ID kontrolera EVPN',mcevpnVni:'VNI (tag vNet)',mcevpnAsn:'BGP ASN (wspólny)',mcevpnVrf:'VRF-VXLAN / L3 VNI',mcevpnVrfDefault:'domyślnie VNI',mcevpnSubnet:'Podsieć CIDR',mcevpnPeers:'Peery kontrolera EVPN (adresy IP oddzielone przecinkami)',mcevpnMembers:'Klastry członkowskie (wspólna struktura ASN)',mcevpnPreview:'Zweryfikuj / podgląd',mcevpnPreviewOk:'Kontrola wstępna OK — wszyscy członkowie są osiągalni i nie wykryto konfliktów.',mcevpnPreviewIssues:'Kontrola wstępna wykryła problemy:',waitForConfirmation:'Czekaj na moje potwierdzenie przed przełączeniem',waitForConfirmationDesc:'Migracja zostanie wstrzymana tuż przed końcowym przełączeniem, gdy źródłowa VM nadal działa, i poczeka na potwierdzenie. Pozwala to samodzielnie zaplanować krótkie okno przestoju (wyciszyć monitoring, przełączyć DNS i zatwierdzić). Najbardziej przydatne w trybach niemal bezprzerwowych: vmkfstools-clone / auto / snapshot-zero.',cutoverConfirmed:'Przełączenie potwierdzone',cutoverProceeding:'Trwa wykonywanie przełączenia',cutoverCancelled:'Migracja anulowana',sourceLeftRunning:'Źródłowa VM pozostała uruchomiona',phaseAwaitingConfirmation:'Oczekiwanie na potwierdzenie',phaseCancelled:'Anulowano',awaitingCutoverBanner:'Dyski są przygotowane, a źródłowa VM nadal działa. Potwierdź przełączenie, gdy będziesz gotowy na krótki przestój.',awaitingCutoverShort:'Gotowe do przełączenia — źródło nadal działa.',commitSwitchover:'Wykonaj przełączenie teraz',cancelMigration:'Anuluj migrację',maintPreviewProceed:'Możesz kontynuować — jest to tylko wstępna kontrola pojemności, a nie twarda blokada.',maintPreviewNoTargets:'Ostrzeżenie: brak innego dostępnego węzła, na który można ewakuować gości z tego węzła — pozostaną uruchomieni, ale restart spowoduje ich zatrzymanie.',maintPreviewNoHeadroom:'Ostrzeżenie: pozostałe dostępne węzły mogą nie mieć wystarczającej ilości wolnej pamięci RAM dla wszystkich gości z tego węzła. Część migracji może się nie powieść.',maintPreviewOverThreshold:'Ostrzeżenie: ewakuacja tego węzła spowoduje przekroczenie progu RAM na następujących węzłach: ',installStarwindPlugin:'Zainstaluj wtyczkę na wszystkich węzłach',installStarwindPluginHint:'Instaluje starwind-proxmox-plugin z podpisanego repozytorium APT StarWind na każdym węźle.',starwindInstallFailed:'Instalacja wtyczki nie powiodła się',alreadyInstalled:'już zainstalowane',starwindThirdPartyNote:'StarWind LVM jest produktem firmy zewnętrznej StarWind Software i nie stanowi części PegaProx. PegaProx nie zapewnia dla niego wsparcia ani gwarancji — w razie problemów skontaktuj się bezpośrednio ze StarWind:',acmeDirectoryUrl:'Adres URL katalogu ACME',acmeDirectoryUrlHint:'Endpoint katalogu ACME urzędu certyfikacji (musi używać HTTPS)',acmeEmailOptionalHint:'Opcjonalne dla własnych serwerów ACME',acmeProvider:'Dostawca ACME',acmeProviderCustom:'Własny urząd certyfikacji ACME',addClustersToGroup:'Przypisz klastry do tej grupy, aby były tutaj widoczne',addPbsServer:'Dodaj serwer kopii zapasowych',addEsxiServer:'Dodaj serwer ESXi',esxiHostsTab:'Hosty',esxiNetworksTab:'Sieci',esxiClustersTab:'Klastry',esxiTasksEventsTab:'Zadania i zdarzenia',esxiConnectionLost:'Połączenie utracone',esxiSessionExpiredDataStale:'Sesja wygasła — dane mogą być nieaktualne',esxiReconnect:'Połącz ponownie',esxiSearchVms:'Szukaj VM...',esxiLoadingVms:'Ładowanie VM...',esxiGuestOs:'System operacyjny VM',esxiCpus:'CPU',esxiMemory:'Pamięć',resetVm:'Resetuj',esxiNoVmsFound:'Nie znaleziono maszyn wirtualnych',backToVmList:'Wróć do listy VM',vmwareConsoleVmrc:'Konsola (VMRC)',vmwareMigrationTab:'Migracja',vcpus:'vCPU',vmInformation:'Informacje o VM',vmId:'ID VM',hardwareVersion:'Wersja sprzętu wirtualnego',guestTools:'VMware Tools',vmwareToolsShort:'VMware Tools',powerState:'Stan zasilania',vmwareToolsNotInstalled:'Niezainstalowane',vmwareToolsNotRunning:'Nie działają',vmwareToolsCurrent:'Aktualne',vmwareToolsOutdated:'Nieaktualne',vmwarePowerOn:'WŁĄCZONA',vmwarePowerOff:'WYŁĄCZONA',vmwarePowerSuspended:'WSTRZYMANA',stopFirst:'najpierw zatrzymaj',thinProvisioned:'Thin provisioning',noDisksFound:'Nie znaleziono dysków',networkAdapters:'Karty sieciowe',vmPoweredOnConfigWarning:'VM jest włączona — niektóre zmiany (CPU, pamięć) mogą wymagać wyłączenia VM lub włączonej funkcji hot-add.',computeResources:'Zasoby obliczeniowe',cpuCoresUnit:'rdzenie',memoryMb:'Pamięć (MB)',cpuHotAdd:'CPU Hot-Add',memoryHotAdd:'Memory Hot-Add',vmDescriptionNotesPlaceholder:'Opis VM / notatki...',networkPxe:'Sieć (PXE)',resetBootOrderDefault:'Przywróć domyślną kolejność (Dysk → CD → Sieć)',currentNetwork:'Bieżąca sieć',livePerformance:'Bieżąca wydajność',memoryUsed:'Użyta pamięć',diskUsed:'Użycie dysku',resetChanges:'Resetuj',saveChanges:'Zapisz zmiany',hardwareOverviewReadOnly:'Przegląd sprzętu (tylko do odczytu). Aby zmienić CPU, pamięć i sieć, użyj karty Ustawienia.',currentConfiguration:'Bieżąca konfiguracja',virtualCpus:'Wirtualne CPU',ramAllocation:'Przydział RAM',diskProvisioningThin:'Thin',diskProvisioningThick:'Thick',hardwareDetails:'Szczegóły sprzętu',firmware:'Firmware',diskBus:'Magistrala dysku',hardwareVersionShort:'Wersja sprzętu',noSnapshotsCreateHint:'Brak migawek. Utwórz migawkę, aby zapisać bieżący stan VM.',addVmwareServer:'Dodaj VMware',liveUpdatesActive:'Aktualizacje na żywo aktywne',pollingMode:'Tryb odpytywania',live:'Na żywo',polling:'Odpytywanie',alias:'Alias',allClear:'Wszystkie systemy działają prawidłowo',allUsersUnlocked:'Wszyscy użytkownicy odblokowani',apiPort:'Port API Proxmox',apiPortHint:'Domyślnie 8006. Zmień tylko wtedy, gdy PVE nasłuchuje na niestandardowym porcie. Obsługiwane jest wyłącznie bezpośrednie TLS — bez reverse proxy.',authentication:'Uwierzytelnianie',autoVerify:'Auto-weryfikacja',backupJobUpdated:'Zadanie kopii zapasowej zaktualizowane',bootOrderHint:'Kliknij, aby przełączyć; użyj strzałek, aby zmienić kolejność',browser:'Przeglądarka',cephMonCreated:'Monitor Ceph utworzony',cephMonDeleted:'Monitor Ceph usunięty',cephPoolDeleted:'Pula Ceph usunięta',changesReverted:'Cofnięto zmiany',checkFailed:'Sprawdzenie nie powiodło się',clear:'Wyczyść',cloneStarted:'Klonowanie rozpoczęte',color:'Kolor',command:'Polecenie',confirmDeleteScript:'Usunąć ten skrypt? Zostanie trwale usunięty po 20 dniach.',consolePct:'Terminal xterm (PVE termproxy)',consoleVnc:'Graficzna konsola VNC',createCluster:'Utwórz klaster',custom:'Własne',date:'Data',deleteSnapshot:'Usuń migawkę',disableMaintenance:'Wyłącz tryb konserwacji',diskFormat:'Format',diskFormatLockedHint:'Ten typ magazynu obsługuje tylko jeden format.',dismissUpdate:'Odrzuć',download:'Pobierz',downloadTemplates:'Pobierz szablony kontenerów',downloadTo:'Pobierz do',editBackupJob:'Edytuj zadanie kopii zapasowej',editRole:'Edytuj rolę',editScript:'Edytuj skrypt',enforceHint:'Blokuj migracje naruszające regułę',enterPassword:'Wprowadź swoje hasło',enterServerFirst:'Najpierw wprowadź adres serwera/portalu',errorPerformingUpdate:'Błąd podczas aktualizacji',errorRollback:'Błąd podczas przywracania',errors:'Błędy',exitFullscreen:'Wyjdź z pełnego ekranu',failedToLoad:'Nie udało się wczytać konfiguracji białej listy IP.',failedToUnlockAllUsers:'Nie udało się odblokować wszystkich użytkowników',failedToUnlockUser:'Nie udało się odblokować użytkownika',filename:'Nazwa pliku',files:'Pliki',filter:'Filtr',filterIso:'Filtruj obrazy ISO…',firewallRuleCreated:'Reguła zapory utworzona',fullscreen:'Pełny ekran',group:'Grupa',groupId:'ID grupy',groupInfo:'Informacje o grupie',groupNotes:'Notatki grupy',groups:'Grupy',include:'Uwzględnij',interfaceCreated:'Interfejs został utworzony',interfaceUpdated:'Interfejs został zaktualizowany',invalidPassword:'Nieprawidłowe hasło',invalidStorageId:'ID magazynu musi zaczynać się literą i może zawierać tylko litery, cyfry oraz znaki -, _ i .',lastSeen:'Ostatnio widziany',learnMore:'Dowiedz się więcej o Proxmox SDN',loadingSnapshots:'Ładowanie migawek...',local:'Lokalny',lockedUsers:'Zablokowani użytkownicy',lockedUsersDesc:'Konta zablokowane z powodu zbyt wielu nieudanych prób logowania z dowolnego adresu IP.',log:'Log',logOnlyHint:'Nie wybrano kanałów — alert zostanie tylko zapisany w logu.',maintenanceModeEnabled:'Tryb konserwacji włączony',manufacturer:'Producent',migrationsStarted:'migracje rozpoczęte',missingFields:'Brak wymaganych pól',mode:'Tryb',more:'więcej',moveStarted:'Przenoszenie rozpoczęte',needTwoClusters:'Do replikacji między klastrami wymagane są co najmniej 2 klastry',networkChangesApplied:'Konfiguracja sieci została zastosowana',noClustersConnected:'Brak połączonych klastrów',noClustersInGroup:'Brak klastrów w tej grupie',noDescription:'Brak opisu',noFilesFound:'Nie znaleziono obrazów ISO ani szablonów na żadnym węźle.',noLockedUsers:'Brak zablokowanych kont',noOtherNodeForRepl:'Brak innego dostępnego węzła w tym klastrze. Aby replikować między klastrami, otwórz VM → Konfiguracja → Replikacja → zakładka Między klastrami.',noResources:'Brak VM do eksportu',noTargetsFound:'Nie znaleziono celów',noTemplatesAvailable:'Brak dostępnych szablonów',noWebhooksConfigured:'Brak skonfigurowanych kanałów webhook. Dodaj je w Ustawienia → Alerty.',notRecommended:'NIEZALECANE',notifyVia:'Powiadamiaj przez',optionalName:'Nazwa opcjonalna',optionsSaved:'Opcje zapisane',packageListRefreshStarted:'Odświeżanie listy pakietów rozpoczęte',passwordRequired:'Hasło wymagane',pasteClipboard:'Wklej ze schowka',pbsSshHint:'SSH jest używane tylko przez Menedżer aktualizacji (apt dist-upgrade). Jeśli pole pozostanie puste, PegaProx użyje hasła do interfejsu WWW PBS. Użyj dedykowanego klucza, jeśli logowanie hasłem jest wyłączone na PBS.',poolName:'Nazwa puli...',presets:'Szybkie ustawienia',processing:'Przetwarzanie...',rebootAfter:'Uruchom ponownie po aktualizacji',rebootWarning:'Spowoduje to restart węzła. Wszystkie VM zostaną dotknięte tą operacją.',released:'Wydano',restart:'Uruchom ponownie',restore:'Przywróć',resume:'Wznów',saved:'Zapisano pomyślnie',scheduleUpdated:'Harmonogram zaktualizowany',scriptMarkedForDeletion:'Skrypt oznaczony do usunięcia (20 dni)',searchTemplates:'Szukaj szablonów...',selectNodeFirst:'Najpierw wybierz węzeł',serialNumber:'Numer seryjny',shell:'Terminal',showingUsers:'Wyświetlanie',shutdownWarning:'Spowoduje to wyłączenie węzła.',simulation:'Symulacja',startingMaintenanceMode:'Tryb konserwacji',step:'Krok',storageCreated:'Magazyn utworzony pomyślnie',storageIdRequired:'ID magazynu jest wymagane',storages:'Magazyny',successful:'zakończone pomyślnie',suspend:'Wstrzymaj',sync:'Synchronizuj',templatesAvailable:'dostępnych szablonów',unlockAllUsersConfirm:'Odblokować wszystkich użytkowników?',unlockVmConfirm:'Odblokować tę VM?',updatePbsServer:'Aktualizuj ten serwer PBS',updatePrepared:'Aktualizacja przygotowana! Sprawdź instrukcje poniżej.',uploadFile:'Prześlij plik',useVMwareMigration:'Użyj ESXi → Kreator migracji',userProfile:'Profil',vms:'VM',vnet:'VNet',willBeInstalled:'zostanie zainstalowane przez SSH + apt dist-upgrade.',zone:'Strefa',crsHeader:'Planowanie zasobów klastra (CRS)',crsHaRebalanceOnStart:'Równoważenie HA przy uruchomieniu',crsHaRebalanceOnStartHint:'Automatycznie równoważ zasoby HA, gdy węzeł przechodzi do stanu online',crsSchedulingMode:'Tryb planowania CRS',crsSchedulingModeRemoved:'Usunięto ze schematu w PVE 9.2 — backend pomija to pole w klastrach 9.2+, dzięki czemu pozostała część formularza nadal może zostać zapisana.',crsAutoRebalanceTuning:'Dostrajanie automatycznego równoważenia',crsAutoRebalance:'Automatyczne równoważenie',crsAutoRebalanceOn:'Włączone — CRS stale równoważy zasoby HA',crsAutoRebalanceOff:'Wyłączone (domyślne PVE)',crsMethod:'Metoda',crsThreshold:'Próg (%)',crsThresholdHint:'Próg nierównowagi, po którego przekroczeniu CRS podejmie działanie. Niższa wartość = bardziej agresywne równoważenie.',crsMargin:'Margines (%)',crsMarginHint:'Minimalna wymagana poprawa uzasadniająca przeniesienie.',crsHoldDuration:'Czas utrzymania (cykle)',crsHoldDurationHint:'Liczba cykli CRM, przez które VM pozostaje przypięta po umieszczeniu.',crsCardTitle:'CRS i automatyczne równoważenie',crsCardSubtitle:'(ta sama konfiguracja co Centrum danych → Opcje)',revert:'Cofnij',autoRebalanceClusterDefault:'-- domyślne klastra --',autoRebalanceVmOn:'Włączone — CRS może przenosić tę VM',autoRebalanceVmOff:'Wyłączone — przypnij do przydzielonego węzła',rotateApiToken:'Rotuj token API',confirmRotateToken:'Rotować token API dla tego klastra?\n\nPVE 9.2: sekret zostanie wygenerowany ponownie w miejscu, a ACL pozostaną zachowane.\nPVE 8.x / 9.0 / 9.1: token zostanie usunięty i utworzony ponownie — wszystkie wpisy ACL przypisane bezpośrednio do tokenu zostaną utracone.',tokenRotated:'Token API zrotowany',rotateFailed:'Rotacja nie powiodła się',oidcAudiences:'Akceptowane wartości audience',oidcAudiencesHint:'Dodatkowe wartości audience akceptowane podczas weryfikacji JWT wraz z client_id. Przydatne, gdy jedna logiczna wartość audience jest współdzielona przez wiele wdrożeń.',frameworkCoverageByFamily:'Pokrycie frameworka — według rodziny / obszaru',family:'Rodzina',familyName:'Nazwa',refsCovered:'Uwzględnione odwołania',pegaproxControls:'Kontrole PegaProx',unmappedControls:'Kontrole bez bezpośredniego mapowania do frameworka (informacyjne)',rationale:'Uwaga',noDirectMappingNote:'Ta kontrola nie ma bezpośredniego odwołania w frameworku. Jest wykonywana jako dodatkowa praktyka defence-in-depth i nie jest liczona do pokrycia frameworka.',intraClusterReplOnlyHint:'To okno tworzy replikację wewnątrz bieżącego klastra. Aby replikować między klastrami, otwórz VM → Konfiguracja → Replikacja → zakładka Między klastrami.',certPresentPlaceholder:'(certyfikat przesłany)',keyPresentPlaceholder:'(klucz prywatny przesłany)',cmAideAuditProtect:'AIDE chroni /var/log/audit',cmApparmor:'AppArmor włączony i wymuszany',cmAptShowVersions:'apt-show-versions zainstalowany',cmAuditBoot:'auditd uruchamiany od startu systemu',cmAuditImmutable:'auditd w trybie niezmiennym',cmAuditRules:'reguły auditd załadowane',cmAuditdService:'usługa auditd włączona',cmBackupDns:'Skonfigurowany zapasowy resolver DNS',cmCoreDumps:'Zrzuty pamięci wyłączone',cmCronHardening:'cron/at ograniczone',cmDebsums:'Integralność pakietów debsums',cmDefaultUmask:'Domyślny umask 027',cmDisableServices:'Nieużywane usługi wyłączone',cmFileIntegrity:'Baza integralności plików AIDE',cmFilePerms:'Uprawnienia krytycznych plików',cmFsModules:'Nieużywane moduły jądra wyłączone',cmInactiveAccounts:'Wygaszanie nieaktywnych kont',cmJournald:'journald trwały i kompresowany',cmLoginBanners:'Bannery logowania (issue.net)',cmMemProtection:'Ochrona pamięci (NX/ASLR)',cmMountOptions:'Opcje montowania /dev/shm z noexec',cmNetProtocols:'Rzadko używane protokoły sieciowe wyłączone',cmPamFaillock:'PAM faillock (polityka blokowania)',cmPamTmpdir:'Prywatny /tmp dla każdego użytkownika (pam_tmpdir)',cmPkgCleanup:'Nieużywane pakiety usunięte',cmPostfixBanner:'Banner Postfix nie ujawnia wersji',cmProcessAcct:'Rejestrowanie procesów (psacct)',cmPveFail2ban:'fail2ban (jail PVE)',cmPwAging:'Polityka ważności haseł',cmPwHashRounds:'Liczba rund haszowania haseł (yescrypt)',cmPwHistory:'Historia ponownego użycia haseł',cmPwQuality:'Złożoność haseł (pwquality)',cmRemoveLegacy:'Usługi starszego typu usunięte',cmRestrictCompilers:'Kompilatory tylko dla root',cmSessionLimit:'Limity sesji TMOUT',cmShellTimeout:'Limit bezczynności powłoki',cmSshCrypto:'Szyfry SSH i MAC (BSI/CIS)',cmSshPerms:'Utwardzanie sshd — konfiguracja oraz uprawnienia kluczy i plików konfiguracyjnych (PermitRootLogin, sshd_config 0600, /etc/ssh/* 0600)',cmSysctl:'Utwardzanie sieci przez sysctl',cmSysstat:'Zbieranie danych sysstat (sar)',cmUsbStorage:'Pamięć masowa USB wyłączona',cmVsnfdAuditRet:'journald MaxRetentionSec ≥ 6 miesięcy',cmVsnfdDiskEnc:'Szyfrowanie dysków (LUKS / natywne ZFS)',cmVsnfdJournaldSize:'journald SystemMaxUse ≥ 1G',cmVsnfdKernelLockdown:'Kernel lockdown (integrity/confidentiality)',cmVsnfdPwMin12:'Minimalna długość hasła ≥ 12 (BSI)',cmVsnfdSecureBoot:'Stan Secure Boot',forceDeletePlan:'Wymusić usunięcie tego zablokowanego planu?',refresh:'Odśwież',consolePreview:'Podgląd konsoli',loadingPreview:'Ładowanie podglądu…',syslogServer:'Serwer Syslog',syslogEnabled:'Odbiornik Syslog',syslogEnabledDesc:'Nasłuchuj komunikatów syslog na porcie UDP/TCP 1514. Wyłącz, aby zamknąć port, jeśli PegaProx nie odbiera syslogów z węzłów.',syslogClusterFilter:'Widok Syslog ograniczony do klastra',syslogClusterFilterDesc:'Po włączeniu sekcja Syslog pokazuje tylko wpisy, których nazwa hosta należy do wybranego klastra lub jednego z jego węzłów.',loading:'Ładowanie...',save:'Zapisz',cancel:'Anuluj',ok:'OK',delete:'Usuń',edit:'Edytuj',add:'Dodaj',close:'Zamknij',yes:'Tak',no:'Nie',enabled:'Włączone',disabled:'wyłączone',enable:'Włącz',disable:'Wyłącz',actions:'Akcje',status:'Status',name:'Nazwa',type:'Typ',online:'online',offline:'Offline',running:'Uruchomiona',stopped:'Zatrzymana',active:'Aktywne',all:'Wszystkie',found:'znaleziono',id:'ID',cores:'Rdzenie',search:'Szukaj',searchByNameOrId:'Szukaj po nazwie lub ID...',searchAllClusters:'Szukaj we wszystkich klastrach...',pressEnterToOpen:'Naciśnij Enter, aby przejść do VM',toggleFavorite:'Przełącz ulubione',results:'wyniki',noResults:'Brak wyników',target:'Cel',source:'Źródło',rules:'Reguły',default:'Domyślne',none:'Brak',of:'z',since:'Od',uptime:'Czas pracy',sinceStart:'Od uruchomienia',osVersion:'Wersja systemu',guestAgentNotInstalled:'QEMU Guest Agent nie jest zainstalowany',guestAgentInstallHint:'Zainstaluj qemu-guest-agent, aby wyświetlać nazwę hosta, system i jądro',vmSummary:'Podsumowanie VM',generalInfo:'Ogólne',hardwareInfo:'Sprzęt',guestAgentInfo:'Agent gościa',backToList:'Powrót do listy',configure:'Konfiguracja',summary:'Podsumowanie',console:'Konsola',sockets:'Gniazda',machine:'Maszyna',biosType:'BIOS',scsiController:'Kontroler SCSI',networkAdapter:'Interfejs sieciowy',cpuModel:'Model CPU',hostname:'Nazwa hosta',kernel:'Jądro',haStatus:'Stan HA',lockStatus:'Stan blokady',notLocked:'Brak blokady',locked:'Zablokowana',cpuUsage:'Użycie CPU',ramUsage:'Użycie RAM',vmid:'VMID',node:'Węzeł',score:'Wynik',networkIn:'Ruch przychodzący',networkOut:'Ruch wychodzący',loadAverage:'Średnie obciążenie',socket:'Gniazdo',consoleAvailable:'Konsola dostępna',vmPoweredOff:'VM jest wyłączona',launchWebConsole:'Uruchom konsolę web',qemuAgent:'Agent QEMU',installGuestAgent:'Zainstaluj QEMU Guest Agent...',vmHardware:'Sprzęt VM',relatedObjects:'Powiązane obiekty',network:'Sieć',hostDetails:'Szczegóły hosta',capacityUsage:'Pojemność i użycie',monitor:'Monitoring',logicalProcessors:'procesory logiczne',networkInterfaces:'Interfejsy sieciowe',certificates:'Certyfikaty',timeConfig:'Konfiguracja czasu',timezoneSaved:'Strefa czasowa zaktualizowana',hostsFile:'Plik hosts',vmsOnNode:'Maszyny VM na tym węźle',nodeShell:'Terminal węzła',subscriptionInfo:'Subskrypcja',pveVersion:'Wersja PVE',kernelVersion:'Wersja kernela',cpuSockets:'Gniazda CPU',totalRam:'Całkowity RAM',rootFilesystem:'System plików root',swapUsage:'Użycie swap',systemInfo:'Informacje o systemie',storage:'Magazyn',repositories:'Repozytoria',performance:'Wydajność',tasks:'Zadania',rebootNode:'Uruchom ponownie węzeł',shutdownNode:'Wyłącz węzeł',nodeSettings:'Ustawienia węzła',dns:'DNS',syslog:'Syslog',disks:'Dyski',lvmStorage:'LVM',lvmThinStorage:'LVM-Thin',zfsStorage:'ZFS',login:'Logowanie',logout:'Wyloguj',loginTitle:'Zaloguj do PegaProx',loginSubtitle:'Zarządzanie klastrami Proxmox VE w PegaProx',usernameLabel:'Nazwa użytkownika',passwordLabel:'Hasło',passwordPolicyHint:'Min. 8 znaków, wymagana wielka litera, mała litera i cyfra',minChars:'Min.',characters:'znaków',uppercase:'wielka litera',lowercase:'mała litera',numbers:'cyfra',specialChar:'znak specjalny',loginButton:'Zaloguj',rememberMe:'Zapamiętaj mnie',setupUsernameMin:'Nazwa użytkownika musi mieć co najmniej 2 znaki',setupUsernameReserved:'Nazwa „pegaprox” jest zarezerwowana — wybierz inną nazwę użytkownika',setupFailed:'Konfiguracja nie powiodła się',setupNetworkError:'Błąd sieci — nie udało się połączyć z serwerem',setupComplete:'Konfiguracja zakończona',setupRedirecting:'Przekierowanie do logowania…',setupWelcome:'Witamy w PegaProx',setupCreateFirstAdmin:'Utwórz pierwsze konto administratora, aby rozpocząć',setupFirstTime:'Konfiguracja początkowa',setupCreatingAdmin:'Tworzenie administratora…',setupCreateAdmin:'Utwórz administratora',setupSecurityNote:'To konto stanie się pierwszym administratorem PegaProx. Traktuj jego hasło jak każde inne poświadczenie root — przechowuj je w menedżerze haseł. Po zalogowaniu możesz utworzyć dodatkowych użytkowników z rolą administratora lub rolami o ograniczonym zakresie.',quickTemplate:'Szybki szablon',loggingIn:'Logowanie...',loginError:'Logowanie nie powiodło się',invalidCredentials:'Nieprawidłowe dane logowania',sessionExpired:'Sesja wygasła',welcomeBack:'Witamy ponownie',changePassword:'Zmień hasło',currentPassword:'Aktualne hasło',newPassword:'Nowe hasło',confirmPassword:'Potwierdź hasło',passwordChanged:'Hasło zmienione',passwordMismatch:'Hasła nie są zgodne',userManagement:'Zarządzanie użytkownikami',users:'Użytkownicy',addUser:'Dodaj użytkownika',portalOnly:'Tylko Portal',portalOnlyHint:'Użytkownik może logować się wyłącznie przez /portal',folders:'Foldery',userFolders:'Foldery użytkownika',folderName:'Nazwa nowego folderu...',unfiled:'Bez folderu',portal:'Portal',editUser:'Edytuj użytkownika',deleteUser:'Usuń użytkownika',deleteUserConfirm:'Na pewno usunąć tego użytkownika?',role:'Rola',roleAdmin:'Administrator',roleUser:'Użytkownik',roleViewer:'Obserwator',displayName:'Nazwa wyświetlana',profilePicture:'Zdjęcie profilowe',profilePictureDesc:'Prześlij własny awatar używany na pulpicie i w widoku zarządzania użytkownikami.',uploadAvatar:'Prześlij awatar',changeAvatar:'Zmień awatar',removeAvatar:'Usuń awatar',user:'Użytkownik',email:'E-mail',userEnabled:'Włączony',lastLogin:'Ostatnie logowanie',languagePreference:'Język',languagePreferenceDesc:'Język interfejsu i menu',never:'Nigdy',profile:'Profil',pegaproxSettings:'Ustawienia PegaProx',serverSettings:'Serwer',networkSettings:'Ustawienia sieci',domain:'Domena',domainHint:'Publiczna domena używana do dostępu do PegaProx',port:'Port',portHint:'Domyślnie: 5000, dla HTTPS zwykle 443',httpRedirectPort:'Port przekierowania HTTP (dodatkowy)',httpRedirectPortHint:'Dla przekierowania portu 80. -1 = wyłączone (domyślnie), 0 = automatycznie, 80 = włączone. HTTP na tym samym porcie jest przekierowywane automatycznie.',sslSettings:'Certyfikat SSL/TLS',enableSsl:'Włącz SSL',sslCertificate:'Certyfikat SSL',sslKey:'Klucz prywatny',noCertSelected:'Nie wybrano certyfikatu',noKeySelected:'Nie wybrano klucza',browse:'Przeglądaj',sslWarning:'Po włączeniu SSL serwer musi zostać uruchomiony ponownie. Upewnij się, że certyfikat i klucz są prawidłowe!',sslHint:'Dla Let’s Encrypt: użyj fullchain.pem jako certyfikatu i privkey.pem jako klucza.',reverseProxy:'Reverse proxy',reverseProxyEnabled:'Za reverse proxy (nginx/HAProxy)',reverseProxyHint:'Wyłącza wbudowane SSL i domyślnie wiąże usługę z 127.0.0.1. Reverse proxy kończy połączenie SSL i przekazuje ruch do PegaProx.',trustedProxies:'Zaufane proxy',trustedProxiesHint:'Adresy IP/CIDR oddzielone przecinkami. Puste = tylko loopback (127.0.0.1). Przykład: 10.0.0.1, 172.16.0.0/12',proxyBindAddress:'Adres nasłuchiwania',proxyBindAddressHint:'Puste = 127.0.0.1 (domyślnie). Ustaw 0.0.0.0, jeśli reverse proxy działa na innym hoście.',reverseProxyWarning:'Przykładowa konfiguracja nginx znajduje się w examples/nginx.conf w katalogu instalacyjnym.',jwtVerification:'Weryfikacja podpisu JWT',disableJwtVerification:'Wyłącz weryfikację',securityWarning:'Ostrzeżenie bezpieczeństwa',jwtVerificationWarning:'Wyłączenie weryfikacji podpisu JWT pozwala akceptować tokeny bez kryptograficznego potwierdzenia ich autentyczności. Naraża to logowanie na fałszowanie tokenów. Wyłącz tę opcję tylko wtedy, gdy endpoint JWKS dostawcy tożsamości jest uszkodzony lub nieosiągalny i rozumiesz związane z tym ryzyko.',jwtVerificationEnabled:'Podpisy JWT są weryfikowane przez endpoint JWKS. Jest to ustawienie zalecane.',oidcTlsVerification:'Weryfikacja TLS IdP',skipTlsVerification:'Pomiń weryfikację TLS',oidcTlsWarning:'Weryfikacja certyfikatu TLS dostawcy OIDC jest wyłączona. Używaj tylko dla własnych IdP (Authentik, Keycloak) z certyfikatami samopodpisanymi w zaufanych sieciach. Osoba znajdująca się na trasie połączenia może przeprowadzić atak MITM na wymianę OIDC.',oidcTlsEnabled:'Certyfikaty TLS dostawcy OIDC są weryfikowane względem systemowego magazynu CA. Wymagane w środowisku produkcyjnym.',oidcTlsHint:'Dotyczy: discovery (.well-known/openid-configuration) oraz kontroli dostępności endpointu autoryzacji. Wywołania token-exchange i JWKS również respektują to ustawienie.',oidcAllowPrivateIp:'Wewnętrzny IdP / sieć prywatna',allowPrivateIp:'Zezwalaj na prywatne adresy IP',oidcPrivateIpOptIn:'Opcja aktywna',oidcPrivateIpWarning:'Ochrona SSRF dla discovery OIDC jest poluzowana. Endpointy metadanych chmurowych (169.254.x.x, fd00:ec2:: itd.) pozostają zablokowane. Upewnij się, że host IdP rzeczywiście należy do Ciebie.',oidcPrivateIpDisabled:'Ochrona SSRF aktywna — prywatne i loopback adresy IP są odrzucane. Włącz tylko wtedy, gdy IdP działa w sieci wewnętrznej (10.x / 192.168.x / 172.16-31.x).',oidcPrivateIpHint:'Dotyczy wyłącznie wywołania discovery /.well-known/openid-configuration. Pozostałe połączenia wychodzące (webhooki, upstreamy wtyczek, metadane SAML) nadal używają ścisłej ochrony.',transferMode:'Tryb transferu',transferModeAuto:'Automatyczny (Pre-Sync + Delta)',transferModeSshfsBoot:'Live Mirror — niemal bez przestoju',transferModeVmkClone:'Live Clone — niemal bez przestoju (zalecane)',transferModeSnapshotZero:'Snapshot-Iterative — bez przestoju (eksperymentalne)',transferModeOffline:'Kopia offline (pełny przestój)',transferModeAutoDesc:'Próbuje wykonać pre-sync podczas pracy VM, a jeśli VMDK jest zablokowany, przechodzi na live-mirror.',transferModeSshfsBootDesc:'QEMU drive-mirror wykonuje live-pivot dysków ze źródła zamontowanego przez SSHFS do lokalnego LVM. Rzeczywisty przestój około 30 s. Obsługuje wiele dysków. Zalecane dla większości obciążeń — ogranicz do 1–2 równoczesnych VM, aby utrzymać wysoką przepustowość mirrora.',transferModeVmkCloneDesc:'Tworzy migawkę działającej VM i klonuje zamrożony dysk bazowy na poziomie vmkernel hosta ESXi, następnie importuje go do Proxmox i wykonuje przełączenie. VM działa aż do krótkiego momentu przełączenia. Działa tam, gdzie Live-Mirror / Snapshot-Iterative zawodzą z powodu blokady dysku bazowego. Obsługuje wszystkie typy magazynów Proxmox (Ceph/RBD, LVM, LVM-Thin, dir). Wymaga włączonego SSH na ESXi.',transferModeSnapshotZeroDesc:'Rotacja migawek ESXi — VM pozostaje uruchomiona podczas pre-sync i kolejnych synchronizacji delta, a przestój przy przełączeniu wynosi około 10 s. ⚠️ Może nie działać w każdym środowisku (np. ESXi 6.x lub VMFS6 z rygorystycznymi blokadami) — wymaga konfiguracji ESXi zwalniającej blokadę bazowego VMDK po wykonaniu migawki.',transferModeOfflineDesc:'Zatrzymuje VM na ESXi, kopiuje dyski przez SSH dd, a następnie uruchamia VM na Proxmox (pełny przestój ≈ rozmiar dysku / prędkość sieci).',howItWorks:'Jak to działa',migStep1:'Utworzenie migawki lub live-mirror źródłowych VMDK zależnie od trybu transferu',migStep2:'Przesłanie dysków do magazynu Proxmox (SSH dd / drive-mirror / SSHFS)',migStep3:'Import konfiguracji VM (CPU, RAM, sieć) — stan zasilania ESXi obsługiwany automatycznie',migStep4:'Atomowe przełączenie i uruchomienie VM na Proxmox',requirements:'Wymagania',reqSshEnabled:'SSH musi być włączone na hoście ESXi',reqEsxiRoot:'Do migracji VM wymagane są poświadczenia root hosta ESXi',reqVmwareTools:'VMware Tools są zalecane do prawidłowego zamknięcia systemu podczas przełączenia (nie są bezwzględnie wymagane)',acmeTitle:'Let\'s Encrypt (ACME)',acmeEmail:'Adres e-mail',acmeEmailHint:'Używany przez Let’s Encrypt do powiadomień o wygasaniu certyfikatu',acmeRequest:'Zażądaj certyfikatu',acmeRequesting:'Żądanie certyfikatu...',acmeStaging:'Środowisko testowe',acmeStagingHint:'Używa testowego serwera Let’s Encrypt (bez prawdziwego certyfikatu)',acmeSuccess:'Certyfikat został pomyślnie wystawiony!',acmeExpires:'Ważny do',acmeDaysLeft:'pozostało dni',acmeAutoRenew:'Automatyczne odnawianie aktywne (30 dni przed wygaśnięciem)',acmeSelfSigned:'Samopodpisany',acmePort80:'Port 80 musi być osiągalny (challenge HTTP-01). Docker: zmapuj port 80. Reverse proxy: przekieruj /.well-known/.',acmeChallengeType:'Typ challenge',acmeChallengeHttp:'HTTP-01',acmeChallengeDns:'DNS-01',acmeDnsHint:'DNS-01 wymaga rekordu TXT w _acme-challenge dla tego żądania. Wartość rekordu zostanie pokazana po przygotowaniu challenge.',acmeDnsPrepared:'Challenge DNS przygotowany',acmeDnsInstructions:'Utwórz ten rekord TXT, poczekaj na propagację DNS, a następnie kontynuuj weryfikację.',acmeDnsName:'Nazwa TXT',acmeDnsValue:'Wartość TXT',acmeDnsContinue:'Kontynuuj weryfikację DNS',acmeDnsPrepare:'Przygotuj challenge DNS',acmeDnsProvider:'Dostawca DNS',acmeDnsProviderManual:'Ręczny rekord TXT',acmeDnsProviderRfc2136:'Dynamiczny DNS RFC 2136',acmeDnsRfc2136Hint:'RFC 2136 automatycznie utworzy i usunie rekord TXT _acme-challenge przy użyciu TSIG.',acmeDnsProviderCloudflare:'Cloudflare',acmeDnsCloudflareHint:'Cloudflare automatycznie utworzy i usunie rekord TXT _acme-challenge za pośrednictwem API DNS.',acmeDnsCloudflareToken:'Token API',acmeDnsCloudflareTokenHint:'Token z ograniczonym zakresem: Zone → DNS → Edit dla docelowej strefy. Do automatycznego wykrywania wymagane jest także Zone → Zone → Read; w przeciwnym razie podaj ID strefy.',acmeDnsCloudflareZone:'Strefa (opcjonalnie)',acmeDnsCloudflareZonePlaceholder:'Wykryj automatycznie z domeny',acmeDnsCloudflareZoneId:'ID strefy (opcjonalnie)',acmeDnsCloudflareAccountId:'ID konta (opcjonalnie)',acmeDnsNameserver:'Serwer nazw',acmeDnsPort:'Port',acmeDnsZone:'Strefa',acmeDnsKeyName:'Nazwa klucza TSIG',acmeDnsAlgorithm:'Algorytm TSIG',acmeDnsSecret:'Sekret TSIG',acmeDnsTtl:'TTL rekordu TXT',acmeDnsPropagation:'Czas oczekiwania na propagację (sekundy)',acmeIssuer:'Wystawca',saveSettings:'Zapisz ustawienia',serverSettingsSaved:'Ustawienia serwera zapisane',restartRequired:'Wymagany restart serwera, aby zastosować zmiany',restartInfo:'Informacja o zmianach',restartInfoDesc:'Zmiany portu lub ustawień SSL wymagają ponownego uruchomienia serwera PegaProx.',errorSavingSettings:'Błąd zapisywania ustawień',restartServer:'Uruchom serwer ponownie',restartServerDesc:'Uruchamia ponownie serwer PegaProx, aby zastosować zmiany',restartNow:'Uruchom ponownie teraz',confirmRestart:'Uruchomić serwer ponownie?',restartWarning:'Serwer będzie chwilowo niedostępny',restartConfirmText:'Czy na pewno chcesz ponownie uruchomić serwer PegaProx?',restartEffect1:'Wszystkie aktywne połączenia zostaną rozłączone',restartEffect2:'Interfejs WWW będzie niedostępny przez około 5–10 sekund',restartEffect3:'Niezapisane zmiany zostaną utracone',yesRestart:'Tak, uruchom ponownie',restarting:'Ponowne uruchamianie...',restartInitiated:'Ponowne uruchamianie serwera rozpoczęte',reconnecting:'Ponowne łączenie...',restartFailed:'Ponowne uruchomienie serwera nie powiodło się',tenants:'Dzierżawcy',tenant:'Dzierżawca',addTenant:'Dodaj dzierżawcę',editTenant:'Edytuj dzierżawcę',deleteTenant:'Usuń dzierżawcę',tenantSaved:'Dzierżawca zapisany',tenantClustersHint:'Wybierz klastry dostępne dla tego dzierżawcy (puste = wszystkie)',noVmsInCluster:'Nie znaleziono VM w tym klastrze',tenantsDesc:'Dzierżawcy umożliwiają rozdzielenie użytkowników i ograniczenie dostępu do określonych klastrów.',defaultTenant:'Domyślny dzierżawca',tenantClusters:'Klastry tego dzierżawcy',allClusters:'Wszystkie klastry',allNodes:'Wszystkie węzły',allTags:'Wszystkie tagi',clusterGroups:'Grupy klastrów',clusterGroup:'Grupa klastrów',addGroup:'Dodaj grupę',editGroup:'Edytuj grupę',deleteGroup:'Usuń grupę',groupName:'Nazwa grupy',groupDescription:'Opis',groupColor:'Kolor',assignToGroup:'Przypisz do grupy',ungrouped:'Bez grupy',noGroup:'Brak grupy',removeFromGroup:'Usuń z grupy',groupCreated:'Grupa utworzona',groupDeleted:'Grupa usunięta',groupUpdated:'Grupa zaktualizowana',manageGroups:'Zarządzaj grupami',treeView:'Widok drzewa',poolView:'Widok puli',datastoreView:'Widok magazynu danych',networkView:'Widok sieci',noNetworks:'Brak sieci',bridges:'Mosty sieciowe',filterSidebar:'Filtr...',clusterCpu:'CPU klastra',clusterMemory:'Pamięć klastra',clusterStorage:'Magazyn klastra',runningOf:'uruchomione z',topConsumers:'Największe zużycie',topCpuConsumers:'Największe użycie CPU',topMemConsumers:'Największe użycie pamięci',recentTasks:'Ostatnie zadania',clusterServices:'Usługi klastra',quorumOk:'Quorum OK',quorumLost:'Utracono quorum',haEnabled:'HA włączone',haDisabled:'HA wyłączone',fenceStrategyLabel:'Strategia fence',detectedAt:'Wykryto o',noRecentTasks:'Brak ostatnich zadań',timeAgo:'temu',timeAgoSec:'{n}s temu',timeAgoMin:'{n}m temu',noDatastores:'Brak magazynów danych',emptyPool:'Pusta',editPool:'Edytuj pulę',confirmDeletePool:'Czy na pewno chcesz usunąć tę pulę? Tej operacji nie można cofnąć.',poolDeleted:'Pula usunięta',noPools:'Brak skonfigurowanych pul',clusterGroupsDesc:'Organizuj klastry w grupy i przypisuj je do dzierżawców w celu kontroli dostępu.',noGroupsYet:'Nie utworzono jeszcze żadnych grup',createGroupFirst:'Najpierw utwórz grupę',assignTenant:'Przypisz do dzierżawcy (opcjonalnie)',noTenantAllVisible:'Brak dzierżawcy (widoczne dla wszystkich)',groupTenantHint:'Po przypisaniu tylko ten dzierżawca będzie widział klastry należące do tej grupy',groupsTip:'Wskazówka: przypisuj grupy do dzierżawców w Ustawienia → Grupy klastrów, aby kontrolować dostęp',noClustersAdded:'Nie dodano jeszcze żadnych klastrów',renameCluster:'Zmień nazwę klastra',renameHint:'Pozostaw puste, aby przywrócić oryginalną nazwę',rename:'Zmień nazwę',confirmRename:'Zmień nazwę klastra na',confirmResetName:'Przywróć oryginalną nazwę klastra',permissions:'Uprawnienia',permission:'Uprawnienie',permissionsDesc:'Skonfiguruj szczegółowe uprawnienia użytkowników. Domyślne uprawnienia wynikające z roli można nadpisywać dla poszczególnych użytkowników.',selectUser:'Wybierz użytkownika',selectUserToEdit:'Wybierz użytkownika, aby edytować jego uprawnienia',effectivePermissions:'Efektywne uprawnienia',extraPermissions:'Dodatkowe uprawnienia',deniedPermissions:'Odmówione uprawnienia',grantedByRole:'Nadane przez rolę',permissionSaved:'Uprawnienia zapisane',tenantCreated:'Dzierżawca utworzony',tenantDeleted:'Dzierżawca usunięty',tenantUpdated:'Dzierżawca zaktualizowany',cannotDeleteDefaultTenant:'Nie można usunąć domyślnego dzierżawcy',reassignUsersFirst:'Najpierw należy ponownie przypisać użytkowników',roles:'Role',customRoles:'Role niestandardowe',createRole:'Utwórz rolę',roleId:'ID roli',roleName:'Nazwa wyświetlana',rolesDesc:'Twórz niestandardowe role z określonymi uprawnieniami. Role mogą być globalne lub przypisane do konkretnego dzierżawcy.',scope:'Zakres',global:'Globalna',roleCreated:'Rola utworzona',roleSaved:'Rola zapisana',roleDeleted:'Rola usunięta',confirmDeleteRole:'Usunąć tę rolę?',builtinRole:'Rola wbudowana',tenantSpecific:'Dla konkretnego dzierżawcy',roleTemplates:'Szablony ról',roleTemplatesDesc:'Gotowe szablony typowych konfiguracji ról',createFromTemplate:'Utwórz z szablonu',includedPermissions:'Uwzględnione uprawnienia',roleCreatedFromTemplate:'Rola utworzona z szablonu',vmAcl:'Kontrola dostępu do VM',vmAclDesc:'Ustaw uprawnienia dla poszczególnych VM',addVmAcl:'Dodaj uprawnienia VM',editVmAcl:'Edytuj uprawnienia VM',vmPermissions:'Uprawnienia VM',noVmAcls:'Brak skonfigurowanych uprawnień specyficznych dla VM. Wszystkie VM korzystają z dostępu wynikającego z roli.',selectClusterFirst:'Najpierw wybierz klaster',selectVm:'Wybierz VM',usersWithAccess:'Użytkownicy z dostępem',inheritRolePerms:'Pełny dostęp do VM (uruchamianie, zatrzymywanie, konsola itd.)',customPermissions:'Uprawnienia niestandardowe',vmAclSaved:'Uprawnienia VM zapisane',vmAclDeleted:'Uprawnienia VM usunięte',confirmDeleteVmAcl:'Usunąć niestandardowe uprawnienia dla tej VM?',poolPermissions:'Uprawnienia puli',poolPermissionsDesc:'Nadaj użytkownikom lub grupom dostęp do pul zasobów Proxmox. Uprawnienia dotyczą wszystkich VM należących do puli.',managePools:'Zarządzaj pulami',poolManagerDesc:'Twórz, edytuj i usuwaj pule zasobów. Przypisuj VM do pul, aby uporządkować zarządzanie uprawnieniami.',createPool:'Utwórz pulę',deletePool:'Usuń pulę',poolId:'ID puli',poolIdRequired:'ID puli jest wymagane',poolIdHint:'Dozwolone są tylko litery, cyfry, myślniki i podkreślenia',poolIdCannotChange:'ID puli nie może zostać zmienione',poolCreated:'Pula utworzona pomyślnie',poolUpdated:'Pula zaktualizowana pomyślnie',noPoolsYet:'Brak pul',createFirstPool:'Utwórz pierwszą pulę, aby uporządkować VM',poolMembers:'Członkowie',members:'członkowie',addVmToPool:'Dodaj VM do puli',assignToPool:'Przypisz do puli',removeFromPool:'Usuń z puli',vmAddedToPool:'VM dodana do puli',vmRemovedFromPool:'VM usunięta z puli',confirmRemoveVmFromPool:'Usunąć VM z tej puli?',selectVmToAdd:'Wybierz VM do dodania do tej puli',allVmsInPools:'Wszystkie VM są już przypisane do pul',optionalDescription:'Opis opcjonalny...',userPermissions:'Uprawnienia użytkowników',selectPool:'Wybierz pulę',noPoolPerms:'Brak skonfigurowanych uprawnień dla tej puli',selectPoolFirst:'Wybierz klaster i pulę, aby zarządzać uprawnieniami',addPoolPerm:'Dodaj uprawnienie puli',editPoolPerm:'Edytuj uprawnienie puli',poolPermSaved:'Uprawnienie puli zapisane',poolPermDeleted:'Uprawnienie puli usunięte',refreshPools:'Odśwież pule z Proxmox',poolCacheRefreshed:'Pamięć podręczna pul odświeżona',confirmDeletePoolPerm:'Usunąć uprawnienie?',subjectType:'Typ',permissionsFor:'Uprawnienia dla',addPermission:'Dodaj uprawnienie',auditLog:'Dziennik audytu',auditLogDescription:'Wszystkie działania użytkowników z ostatnich 90 dni',noAuditLogs:'Brak wpisów audytowych',action:'Akcja',details:'Szczegóły',timestamp:'Znacznik czasu',ipAddress:'Adres IP',userCreated:'Użytkownik utworzony',userUpdated:'Użytkownik zaktualizowany',userDeleted:'Użytkownik usunięty',userLogin:'Logowanie',userLogout:'Wylogowanie',clusterAdded:'Klaster dodany',apiTokenWarningTitle:'Uwierzytelnianie tokenem API',apiTokenWarningDesc:'Bez hasła funkcje SSH nie będą działać (HA, Rolling Updates, SMBIOS, Terminal węzła). Zalecane: użyj root@pam + hasła — PegaProx automatycznie utworzy token API zgodny z 2FA.',apiTokenRecommended:'Zalecane, gdy 2FA jest włączone',apiTokenCreated:'Token API utworzony w PVE — można teraz bezpiecznie włączyć 2FA',sshPasswordStillNeeded:'SSH nadal używa hasła (HA, konserwacja) — nie zmieniaj go',authModeToken:'API: token (zgodny z 2FA)',authModePassword:'API: hasło',sshAuthMode:'SSH: hasło',dontChangePvePassword:'Nie zmieniaj hasła PVE bez zaktualizowania go również tutaj',clusterDeleted:'Klaster usunięty',clusterConfigChanged:'Konfiguracja klastra zmieniona',vmStarted:'VM uruchomiona',vmStopped:'VM zatrzymana',vmRestarted:'VM uruchomiona ponownie',vmCreated:'VM utworzona',vmDeleted:'VM usunięta',vmCloned:'VM sklonowana',vmMigrated:'VM zmigrowana',vmUnlocked:'VM odblokowana',vmLocked:'VM zablokowana',unlockVm:'Odblokuj VM',lockReason:'Powód blokady',unlockWarning:'Ostrzeżenie: odblokowanie VM podczas aktywnej operacji może spowodować uszkodzenie danych lub inne problemy. Kontynuuj tylko wtedy, gdy masz pewność, że operacja zakończyła się niepowodzeniem lub została anulowana.',vmBulkMigrated:'Migracja zbiorcza',vmConfigChanged:'Konfiguracja VM zmieniona',vmSuspended:'VM wstrzymana',vmResumed:'VM wznowiona',vmDiskAdded:'Dysk dodany',vmDiskRemoved:'Dysk usunięty',vmDiskResized:'Rozmiar dysku zmieniony',vmDiskMoved:'Dysk przeniesiony',vmNetworkAdded:'Interfejs sieciowy dodany',vmNetworkRemoved:'Interfejs sieciowy usunięty',vmNetworkUpdated:'Interfejs sieciowy zaktualizowany',removeDiskConfirm:'Na pewno usunąć dysk',detachDisk:'Odłącz',importDisk:'Importuj dysk',importDiskDesc:'Importuj istniejący obraz dysku z magazynu',selectImportStorage:'Wybierz magazyn źródłowy',selectDiskImage:'Wybierz obraz dysku',targetBus:'Magistrala docelowa',reassignOwner:'Przypisz ponownie właściciela',reassignOwnerDesc:'Przypisz dysk do innej VM',targetVm:'Docelowa VM',diskReassigned:'Dysk przypisany ponownie',diskImported:'Dysk zaimportowany',noImportableDisks:'Nie znaleziono obrazów dysków możliwych do importu',reassign:'Przypisz ponownie',import:'Importuj',detachDiskConfirm:'Na pewno odłączyć dysk? Zostanie oznaczony jako nieużywany.',diskDetached:'Dysk odłączony',diskDeleted:'Dysk usunięty',diskAdded:'Dysk dodany',dataWillBeDeleted:'Dane zostaną trwale usunięte!',removeNetworkConfirm:'Na pewno usunąć interfejs sieciowy',snapshotCreated:'Migawka utworzona',snapshotDeleted:'Migawka usunięta',snapshotRestored:'Migawka przywrócona',rollbackStarted:'Rozpoczęto przywracanie migawki',includeRam:'Uwzględnij RAM',snapshotName:'Nazwa migawki',rollbackConfirm:'Czy na pewno przywrócić tę migawkę? Tej operacji nie można cofnąć!',replicationCreated:'Replikacja utworzona',replicationDeleted:'Replikacja usunięta',replicationTriggered:'Replikacja uruchomiona',noFallbackHosts:'Nie znaleziono hostów zapasowych (klaster jednowęzłowy?)',haVmAdded:'VM dodana do HA',haVmRemoved:'VM usunięta z HA',nodeMaintenanceEntered:'Włączono tryb konserwacji węzła',nodeMaintenanceExited:'Wyłączono tryb konserwacji węzła',nodeUpdateStarted:'Aktualizacja węzła rozpoczęta',twoFactorAuth:'Uwierzytelnianie dwuskładnikowe',twoFactorEnabled:'2FA włączone',twoFactorDisabled:'2FA wyłączone',enable2FA:'Włącz 2FA',disable2FA:'Wyłącz 2FA',setup2FA:'Skonfiguruj 2FA',scan2FACode:'Zeskanuj kod QR aplikacją uwierzytelniającą',enter2FACode:'Wprowadź 6-cyfrowy kod',verify2FA:'Zweryfikuj',secretKey:'Klucz tajny',twoFARequired:'Kod 2FA jest wymagany',invalid2FACode:'Nieprawidłowy kod 2FA',force2FA:'Wymuś 2FA',force2FADesc:'Wymagaj od wszystkich użytkowników skonfigurowania uwierzytelniania dwuskładnikowego przed rozpoczęciem korzystania z PegaProx.',force2FAHint:'Użytkownicy OIDC/Entra są wyłączeni z tego wymogu, ponieważ używają MFA swojego dostawcy tożsamości. Użytkownicy bez 2FA zobaczą przy logowaniu okno konfiguracji.',force2FAExcludeAdmins:'Wyłącz konta administratorów',force2FAExcludeAdminsDesc:'Administratorzy mogą korzystać z PegaProx bez 2FA',force2FASetupTitle:'Wymagana konfiguracja 2FA',force2FASetupDesc:'Administrator wymaga uwierzytelniania dwuskładnikowego dla wszystkich użytkowników. Skonfiguruj 2FA, aby kontynuować.',resetPassword:'Zresetuj hasło',passwordManagedExternally:'Twoje hasło jest zarządzane zewnętrznie.',passwordManagedExternallyHint:'Zmień hasło bezpośrednio w usłudze katalogowej.',passwordsDoNotMatch:'Hasła nie są zgodne',passwordTooShort:'Hasło musi mieć co najmniej 4 znaki',passwordResetSuccess:'Hasło zmienione pomyślnie',myProfile:'Mój profil',security:'Bezpieczeństwo',snapshotNotSupported:'Migawki nie są obsługiwane',snapshotWarnings:'Ostrzeżenia dotyczące migawek',filterByUser:'Filtruj według użytkownika',filterByAction:'Filtruj według akcji',allUsers:'Wszyscy użytkownicy',allActions:'Wszystkie akcje',exportAuditLog:'Eksportuj',refreshAuditLog:'Odśwież',addCluster:'Dodaj klaster',addXcpngPool:'Dodaj pulę XCP-ng (wersja testowa)',xcpngConnectHint:'Połącz się z hostem nadrzędnym puli. Domyślnie używany jest port XAPI 443.',xcpngTechPreviewNote:'Niektóre funkcje mogą być ograniczone lub ulec zmianie.',pveClusterDesc:'Maszyny wirtualne i kontenery',pbsDesc:'Zarządzanie kopiami zapasowymi',vmwareDesc:'Infrastruktura ESXi',xcpngDesc:'XCP-ng / Xen Hypervisor (wersja testowa)',addConnection:'Dodaj połączenie',connectionType:'Typ połączenia',clusterManagement:'Zarządzanie klastrami Proxmox VE w PegaProx',overview:'Przegląd',resources:'Zasoby',datacenter:'Centrum danych',settings:'Ustawienia',showing:'Wyświetlanie',perPage:'Na stronę',loadingDatacenter:'Ładowanie danych centrum danych...',subscriptions:'Subskrypcje',clusters:'Klastry',noClusterSelected:'Nie wybrano klastra',allClustersOverview:'Przegląd wszystkich klastrów',multiClusterSummary:'Podsumowanie wszystkich zarządzanych klastrów',clustersConnected:'Połączone klastry',clusterOverview:'Przegląd klastra',vmsRunning:'Uruchomione VM',vmsStopped:'Zatrzymane VM',noClustersConfigured:'Brak skonfigurowanych klastrów',addClusterToStart:'Dodaj klaster, aby rozpocząć',clickClusterTip:'Kliknij wiersz klastra lub wybierz go z paska bocznego, aby wyświetlić szczegółowe informacje i zarządzać zasobami.',health:'Kondycja',average:'Średnia',noDataAvailable:'Brak dostępnych danych',clickToManage:'Kliknij, aby zarządzać',sortBy:'Sortuj według',alerts:'Alerty',updated:'Zaktualizowano',justNow:'przed chwilą',topResources:'Najbardziej obciążone',highestCpuUsage:'Najwyższe użycie CPU i RAM we wszystkich klastrach',clickToOpenVm:'Kliknij, aby otworzyć VM',selectCluster:'Wybierz klaster...',addFirstCluster:'Dodaj pierwszy klaster',connectCluster:'Połącz klaster Proxmox z PegaProx',clusterName:'Nazwa klastra',host:'Host',username:'Nazwa użytkownika',password:'Hasło',passwordOrToken:'Hasło / token',apiTokenHint:'Dla tokenów API: user@realm!tokenid',sslVerification:'Weryfikacja SSL',connecting:'Łączenie...',addNewCluster:'Dodaj nowy klaster',testConnection:'Testuj połączenie',deleteCluster:'Usuń klaster',deleteClusterConfirm:'Na pewno usunąć klaster?',reconfigureCluster:'Skonfiguruj klaster ponownie',repinHostKeys:'Ponownie przypnij klucze hosta SSH',repinHostKeysConfirm:'Wyczyścić przypięte klucze hosta SSH dla tego klastra? Użyj tego po ponownej instalacji lub utwardzeniu węzła, gdy jego klucz hosta SSH się zmienił — następne połączenie nauczy się nowego klucza.',repinHostKeysDone:'Klucze hosta SSH wyczyszczone — następne połączenie przypnie je ponownie',repinHostKeysFailed:'Ponowne przypięcie nie powiodło się',reconfigureHint:'Wprowadź hasło PegaProx, aby potwierdzić swoją tożsamość.',clusterReconfigured:'Klaster skonfigurowany ponownie pomyślnie',reconfigure:'Skonfiguruj ponownie',clusterHealth:'Stan klastra',excellent:'Doskonały',good:'Dobry',warning:'Ostrzeżenie',critical:'Krytyczny',nodesOnline:'Węzły online',nodeJoinHint:'Aby dodać nowy węzeł, uruchom na nim:',avgScore:'Śr. wynik',avgCpu:'Śr. CPU',avgRam:'Śr. RAM',nodes:'Węzły',loadingMetrics:'Ładowanie metryk...',connectionError:'Błąd połączenia',retry:'Ponów',checkConnectionAndRetry:'Sprawdź połączenie i spróbuj ponownie.',connectionTimeout:'Przekroczono limit czasu — Proxmox nieosiągalny',maintenance:'Konserwacja',enterMaintenance:'Włącz tryb konserwacji',exitMaintenance:'Wyłącz tryb konserwacji',maintenanceMode:'Tryb konserwacji',update:'Aktualizuj',startUpdate:'Rozpocznij aktualizację',nodeConfig:'Konfiguracja węzła',cpuHistory:'Historia CPU',ramHistory:'Historia RAM',ksmSharing:'Współdzielenie KSM',diskUsage:'Użycie dysku',allocated:'przydzielone',showMore:'Pokaż więcej',showLess:'Pokaż mniej',virtualMachines:'Maszyny wirtualne',containers:'Kontenery',vm:'VM',lxc:'LXC',lxcContainer:'Kontener LXC',container:'Kontener',guests:'Goście',start:'Uruchom',stop:'Zatrzymaj',shutdown:'Zamknij system',reboot:'Uruchom ponownie',forceStop:'Wymuś zatrzymanie',forceReset:'Wymuś reset',forceStopConfirm:'Na pewno wymusić zatrzymanie? Może to spowodować utratę danych!',migrate:'Migruj',migrateVm:'Migruj VM',crossClusterMigration:'Migracja między klastrami',crossClusterMigrateDesc:'Migruj VM do innego klastra Proxmox',crossClusterMigrate:'Migruj między klastrami',crossClusterStarted:'Migracja między klastrami rozpoczęta',crossClusterFailed:'Migracja między klastrami nie powiodła się',crossClusterLB:'Równoważenie obciążenia między klastrami',crossClusterLBEnabled:'Równoważenie obciążenia między klastrami włączone',crossClusterLBDisabled:'Równoważenie obciążenia między klastrami wyłączone',crossClusterLBThreshold:'Próg wyniku',crossClusterLBInterval:'Interwał sprawdzania',crossClusterLBDryRun:'Symulacja (Dry Run)',crossClusterLBLastRun:'Ostatnie uruchomienie',crossClusterReplication:'Replikacja między klastrami',crossClusterReplicationDesc:'Replikuj migawki VM do innego klastra (DR)',groupOverview:'Przegląd grupy',groupSettings:'Ustawienia grupy',groupSettingsSaved:'Ustawienia grupy zapisane',replicationSchedule:'Harmonogram',replicationRetention:'Retencja',maxMigrations:'Maks. migracji na cykl',lbHistory:'Historia równoważenia',clusterScore:'Wynik klastra',noReplicationJobs:'Brak zadań replikacji',createReplicationJob:'Utwórz zadanie replikacji',replicationStarted:'Replikacja rozpoczęta',replicationJobCreated:'Zadanie replikacji utworzone',replicationJobDeleted:'Zadanie replikacji usunięte',recentLbActions:'Ostatnie działania równoważenia między klastrami',noLbEvents:'Brak zdarzeń równoważenia między klastrami',enableCrossClusterLB:'Włącz równoważenie obciążenia między klastrami',lbDescription:'Automatycznie migruj VM między klastrami po przekroczeniu progów wykorzystania zasobów',dryRunMode:'Tryb Dry Run / symulacja',cpuThreshold:'Próg CPU (%)',lbStatus:'Stan równoważenia obciążenia',lbExplanation:'Równoważenie obciążenia między klastrami monitoruje użycie CPU i RAM we wszystkich klastrach tej grupy. Gdy klaster przekroczy skonfigurowany próg, VM są automatycznie migrowane do mniej obciążonego klastra.',lbDryRunExplanation:'Najpierw włącz tryb Dry Run, aby zobaczyć planowane działania przed uruchomieniem rzeczywistych migracji.',neverRun:'Nigdy nie uruchamiano',newCrossClusterReplication:'Nowa replikacja między klastrami',confirmDeleteXRepl:'Usunąć to zadanie replikacji między klastrami?',confirmDeleteXReplTarget:'Usunąć również zreplikowaną VM po stronie docelowej? OK = usuń replikę VM, Anuluj = pozostaw ją.',targetVmidOptional:'Docelowy VMID (opcjonalnie)',autoNextId:'automatycznie',addDrJob:'Dodaj zadanie DR',scheduleCron:'Harmonogram (cron)',targetStorageHint:'Nazwa magazynu w klastrze docelowym',sourceStorageDefault:'Magazyn źródłowy (domyślnie)',maxMigrationsHint:'Ogranicz liczbę VM przenoszonych w każdym cyklu sprawdzania (1–5)',proxlbCredit:'ProxLB by gyptazy',proxlbCreditDesc:'Funkcja równoważenia obciążenia jest oparta na znakomitej pracy projektu ProxLB. Szczególne podziękowania dla gyptazy za stworzenie i udostępnienie tego narzędzia jako open source!',xReplCreated:'Replikacja między klastrami utworzona',xReplDeleted:'Replikacja między klastrami usunięta',xReplStarted:'Replikacja między klastrami rozpoczęta',xReplCreateFailed:'Nie udało się utworzyć zadania',xReplDeleteFailed:'Usuwanie nie powiodło się',xReplStartFailed:'Nie udało się uruchomić',lastRunPrefix:'Ostatnio',runNow:'Uruchom teraz',loadingCrossClusterResources:'Ładowanie magazynów/sieci dla wszystkich klastrów...',noCommonStorages:'Nie znaleziono wspólnego magazynu dostępnego we wszystkich klastrach',noCommonBridges:'Nie znaleziono wspólnego mostu dostępnego we wszystkich klastrach',selectBridge:'Wybierz most...',crossClusterThresholdDesc:'Próg CPU dla nierównowagi między klastrami (10–80%)',crossClusterIntervalDesc:'Czas między cyklami sprawdzania',crossClusterMaxMigrationsDesc:'Maks. liczba migracji na cykl sprawdzania',commonStorageHint:'Tylko magazyny dostępne we wszystkich klastrach tej grupy',commonBridgeHint:'Tylko mosty dostępne we wszystkich klastrach tej grupy',includeContainers:'Uwzględnij kontenery',includeContainersDesc:'Uwzględniaj kontenery LXC w równoważeniu między klastrami',containerMigrationWarning:'Kontenery są restartowane podczas migracji (przestój)',excludedVMsCrossCluster:'Wykluczone VM/kontenery',excludedVMsCrossClusterDesc:'VM i kontenery wykluczone z automatycznego równoważenia między klastrami',clusterExcludedVMs:'Wykluczone VM',noExcludedVMsInGroup:'Brak wykluczonych VM',simulationMode:'Tryb symulacji',sourceVm:'Źródłowa VM',targetCluster:'Klaster docelowy',targetNode:'Węzeł docelowy',targetStorage:'Magazyn docelowy',targetBridge:'Mostek docelowy',moveDisk:'Przenieś dysk',resizeDisk:'Zmień rozmiar dysku',currentSize:'Bieżący rozmiar',diskResized:'Rozmiar dysku zmieniony',deleteSourceDisk:'Usuń źródło po przeniesieniu',deleteSourceDiskWarning:'Oryginalny dysk pozostanie w magazynie źródłowym. Możesz usunąć go ręcznie później.',move:'Przenieś',from:'z',noNetworkInterfaces:'Brak interfejsów sieciowych',nameRequired:'Nazwa jest wymagana',newVmid:'Nowy VMID (opcjonalnie)',sameIdPlaceholder:'Puste = ten sam ID',liveMigrationOption:'Migracja na żywo (VM pozostaje uruchomiona)',deleteSourceAfter:'Usuń źródłową VM po migracji',largeDiskWarning:'Wykryto duży dysk',largeDiskExplanation:'Migracja na żywo dysków >100 GB może nie powieść się z błędem „401 Unauthorized” z powodu wygaśnięcia biletu WebSocket Proxmox. Serwer automatycznie użyje migracji offline, chyba że wymusisz tryb online.',forceOnlineMigration:'Mimo to wymuś migrację online (może się nie powieść)',autoTokenInfo:'PegaProx automatycznie tworzy tymczasowe tokeny API na potrzeby migracji i usuwa je po zakończeniu.',clusterReachableInfo:'Klastry muszą być wzajemnie osiągalne przez sieć. Skonfigurowany użytkownik musi mieć uprawnienia do tworzenia tokenów API.',selectNode:'Wybierz węzeł',selectStorage:'Wybierz magazyn...',loadingNodes:'Ładowanie węzłów docelowych...',loadingStorageNetwork:'Ładowanie magazynów/sieci...',liveMigration:'Migracja na żywo (bez przestoju)',on:'na',sameAsSource:'Tak samo jak źródło',loadingStorages:'Ładowanie magazynów',free:'Wolne',withLocalDisks:'Z dyskami lokalnymi',withLocalDisksDesc:'Migruj lokalne dyski do magazynu docelowego',localDisksDetected:'Ta VM ma lokalne dyski. Migracja wymaga skopiowania danych dysków.',requiredForThisVm:'Wymagane dla tej VM',cdDvdMounted:'Zamontowany napęd CD/DVD',cdDvdMigrationWarning:'Migracja na żywo nie jest możliwa z zamontowanym CD/DVD. Najpierw wysuń CD/DVD albo użyj migracji offline.',isoMounted:'Zamontowane ISO/CD-ROM',changeIso:'Zmień ISO',isoEjected:'CD-ROM wysunięty',isoMigrationWarning:'Migracja może się nie powieść, jeśli ISO nie jest dostępne na węźle docelowym. Wysuń CD/DVD albo upewnij się, że ISO znajduje się na współdzielonym magazynie.',detachedDisksTitle:'Odłączone dyski/ISO nadal używane w konfiguracji',detachedDisksWarning:'PVE zachowuje odłączone woluminy jako odwołania `unused*` w konfiguracji VM. Migracja między klastrami próbuje przenieść je razem z VM — jeśli którykolwiek znajduje się na magazynie lokalnym, operacja zakończy się mało czytelnym błędem „storage does not support vm images”. Usuń je w VM → Konfiguracja → Sprzęt → Nieużywane dyski przed rozpoczęciem migracji.',localStorage:'Lokalny',bootOrderIssue:'Problem z kolejnością rozruchu',bootOrderWarning:'Kolejność rozruchu odwołuje się do nieistniejących dysków',bootOrder:'Kolejność rozruchu',dragToReorder:'Kliknij, aby przełączyć, użyj strzałek do zmiany kolejności',noBootDevices:'Nie znaleziono urządzeń rozruchowych',resizeDiskHint:'Zwiększ o (np. +10G) lub podaj nowy rozmiar',smbiosSettings:'Ustawienia SMBIOS',smbiosHint:'System Management BIOS — przydatny do licencjonowania Windows i identyfikacji VM',applySmbiosFromClusterConfig:'Zastosuj ustawienia SMBIOS z konfiguracji klastra',requiresRestart:'WYMAGA RESTARTU',readOnly:'tylko do odczytu',autoGenerated:'generowane automatycznie',smbiosFormatHint:'Dozwolone są tylko litery i cyfry (A-Za-z0-9)',preview:'Podgląd',currentValue:'Bieżąca wartość',managedByProxmox:'zarządzane przez Proxmox',willBeAutoGenerated:'Zostanie wygenerowane automatycznie podczas zapisu',forceConntrack:'Wymuś (stan Conntrack)',forceConntrackDesc:'Wymuś migrację nawet wtedy, gdy istnieją wpisy conntrack',containerNoLiveMigration:'Kontenery nie obsługują prawdziwej migracji na żywo',startingMigration:'Rozpoczynanie migracji',migrationStarted:'Migracja rozpoczęta',migrationFailed:'Migracja nie powiodła się',clone:'Klonuj',openConsole:'Otwórz konsolę',spiceConsole:'Konsola SPICE',spiceConsoleHint:'Pobierz plik virt-viewer (audio / USB / wiele monitorów)',spiceDownloaded:'Plik SPICE pobrany — otwórz go w Virt-Viewer',spiceUnavailable:'SPICE nie jest dostępny dla tej VM',metrics:'Metryki',config:'Konfiguracja',configuration:'Konfiguracja',createVm:'Utwórz nową VM',createContainer:'Utwórz nowy kontener',newVm:'Nowa VM',newContainer:'Nowy kontener',power:'Zasilanie',snapshot:'Migawka',editSettings:'Ustawienia',refreshData:'Odśwież dane',sshConsole:'Konsola SSH',noNodesAvailable:'Brak dostępnych węzłów. Poczekaj na załadowanie danych klastra.',loadingStorage:'Ładowanie listy magazynów...',noIsoAvailable:'Nie znaleziono obrazów ISO',noTemplateAvailable:'Nie znaleziono szablonów',noStorageAvailable:'Brak dostępnych magazynów',noIsoStorage:'Nie znaleziono magazynu zawierającego obrazy ISO',ram:'RAM',cpu:'CPU',disk:'Dysk',next:'Dalej',back:'Wstecz',required:'Wymagane',timeFormat:'Format czasu',collapseNodesDefault:'Domyślnie zwijaj węzły',collapseNodesDefaultDesc:'Widok klastra otwiera się ze wszystkimi węzłami zwiniętymi',collapseNodesOn:'Węzły będą domyślnie zwinięte',collapseNodesOff:'Węzły będą domyślnie rozwinięte',timeFormatDesc:'Format zegara 24- lub 12-godzinny',timeFormatChanged:'Format czasu zaktualizowany',guestOs:'System operacyjny gościa',isoImage:'Obraz ISO',noIso:'Bez ISO',virtioDrivers:'Sterowniki VirtIO ISO (Windows)',noVirtioDrivers:'Bez sterowników VirtIO',allIsos:'Wszystkie obrazy ISO',virtioDriversHint:'Zostanie zamontowane jako dodatkowy CD-ROM do instalacji sterowników Windows',advancedCpu:'Zaawansowane ustawienia CPU',extraCpuFlags:'Dodatkowe flagi CPU',extraCpuFlagsHint:'Kliknij, aby przełączać stan flagi: domyślnie → włączona (+) → wyłączona (−). Wymaga restartu VM.',proxlbTags:'Tagi VM ProxLB',proxlbTagsDesc:'Twórz reguły affinity, anti-affinity, ignorowania i przypięcia na podstawie tagów VM zgodnych z ProxLB. Wyłączone = bez wpływu.',proxlbTagAffinity:'utrzymuj oznaczone maszyny razem',proxlbTagAnti:'utrzymuj oznaczone maszyny osobno',proxlbTagIgnore:'nigdy nie migruj tej maszyny automatycznie',proxlbTagPin:'ogranicz tę maszynę do wskazanego węzła',testDisconnectNics:'Odłącz interfejsy sieciowe podczas testowego failover',testDisconnectNicsDesc:'Uruchamiaj klony testowego failover z odłączoną siecią (link down), aby test DR nie kolidował z produkcyjnymi adresami IP.',cpuAffinity:'Przypisanie CPU',cpuAffinityHint:'Przypnij vCPU do określonych CPU hosta',enableNuma:'Włącz NUMA',advancedMemory:'Zaawansowane ustawienia pamięci',minimumMemory:'Minimalna pamięć',sameAsMemory:'Taka sama jak pamięć VM (bez ballooningu)',minimumMemoryHint:'Dolny limit dynamicznego przydziału pamięci',ballooningDevice:'Urządzenie ballooning',memoryShares:'Udziały pamięci',memorySharesHint:'Waga automatycznego przydziału pamięci (0–50000, domyślnie: 1000)',primaryDisk:'Dysk podstawowy',additionalDisk:'Dodatkowy dysk',addDisk:'Dodaj dysk',macAddress:'Adres MAC',multiqueueHint:'1–64 kolejek (tylko VirtIO)',autoGenerate:'Generuj automatycznie (pozostaw puste)',advancedNetwork:'Zaawansowane ustawienia sieci',inheritBridge:'Dziedzicz z mostka',rateLimit:'Limit prędkości (MB/s)',unlimited:'Bez limitu',noLinkOnStart:'Brak połączenia sieciowego przy starcie',highAvailability:'Wysoka dostępność (HA)',enableHa:'Dodaj do natywnego HA Proxmox',haGroup:'Grupa HA',defaultGroup:'Grupa domyślna (pozostaw puste)',mountPoint:'Punkt montowania',addMountPoint:'Dodaj punkt montowania',path:'Ścieżka',busType:'Magistrala / typ',size:'Rozmiar',format:'Format',storageDefault:'Domyślny magazyn',bestPerformance:'najlepsza wydajność',bridge:'Mostek',model:'Model',vlanTag:'Tag VLAN (opcjonalnie)',vlanExample:'np. 100',enableFirewall:'Włącz zaporę',cpuType:'Typ CPU',machineType:'Typ maszyny',efiSettings:'Ustawienia UEFI/EFI',efiDiskStorage:'Magazyn dysku EFI',preEnrollKeys:'Wstępnie zarejestruj klucze Microsoft (SecureBoot)',tpmSettings:'TPM (Trusted Platform Module)',enableTpm:'Włącz TPM',tpmStorage:'Magazyn TPM',tpmVersion:'Wersja TPM',recommended:'Zalecane',win11NeedsTpm:'Windows 11 wymaga TPM 2.0',efiTpmSettings:'Ustawienia EFI i TPM',efiDisk:'Dysk EFI',tpmChip:'Układ TPM',configured:'Skonfigurowano',noEfiDisk:'Brak skonfigurowanego dysku EFI',addEfiDisk:'Dodaj dysk EFI',efiDiskRequired:'Wymagany do rozruchu UEFI. Jeśli nie został skonfigurowany, zostanie utworzony automatycznie przy pierwszym uruchomieniu.',efiDiskInfo:'Dysk EFI przechowuje zmienne firmware UEFI i jest wymagany do rozruchu UEFI. Rozmiar jest automatycznie ustawiany na 4 MB.',efiDiskAdded:'Dysk EFI dodany',noTpm:'Brak skonfigurowanego TPM',addTpm:'Dodaj TPM',tpmInfo:'TPM (Trusted Platform Module) jest wymagany przez Windows 11 i zapewnia sprzętowe funkcje bezpieczeństwa, takie jak BitLocker.',tpmAdded:'TPM dodany',confirmDeleteEfiDisk:'Usunąć dysk EFI? Może to uniemożliwić uruchomienie VM.',confirmDeleteTpm:'Usunąć TPM? Windows 11 i BitLocker przestaną działać.',efiDiskDeleted:'Dysk EFI usunięty',tpmDeleted:'TPM usunięty',enableQemuAgent:'Włącz QEMU Guest Agent',startOnBoot:'Uruchamiaj przy starcie',startAfterCreate:'Uruchom po utworzeniu',installMethod:'Metoda instalacji',fromTemplate:'Z szablonu',fromIso:'Z ISO',osType:'Typ systemu operacyjnego',osTypeHint:'Wybiera odpowiedni wbudowany szablon ustawień platformy',selectIso:'Wybierz ISO...',selectTemplate:'Wybierz szablon...',pxeHint:'VM uruchomi się z sieci (PXE). Upewnij się, że w wybranej sieci dostępny jest serwer PXE/DHCP.',virtualDisk:'Dysk wirtualny',storageRepository:'Repozytorium pamięci masowej',storageRepos:'Repozytoria pamięci masowej',createSr:'Utwórz SR',srType:'Typ SR',srHint:'Repozytoria pamięci masowej są zarządzane przez XAPI. Możesz tworzyć magazyny NFS, iSCSI lub lokalne.',nfsVersion:'Wersja NFS',exportPath:'Ścieżka eksportu',rootPassword:'Hasło root',sshPublicKeys:'Publiczne klucze SSH',loadSshKeyFile:'Wczytaj plik klucza SSH',sshKeyHintMultiple:'Jeden klucz w każdym wierszu. Wklej lub wczytaj z pliku.',dropKeyFileHere:'Upuść tutaj plik klucza lub kliknij',keyLoaded:'Klucz wczytany',lines:'wierszy',keyPassphrase:'Hasło klucza',optional:'opcjonalnie',ifKeyEncrypted:'Jeśli klucz jest zaszyfrowany...',connect:'Połącz',dnsDomain:'Domena DNS',dnsServers:'Serwery DNS',useHostSettings:'Użyj ustawień hosta',dnsServersHint:'Lista serwerów DNS oddzielona spacjami',disconnected:'Rozłączony',clustersDisconnectedNamed:'{count} rozłączonych klastrów: {names}',nodesOfflineNamed:'{count} węzłów offline: {names}',andNMore:'{names}, +{more} więcej',pluginUnavailable:'Frontend wtyczki niedostępny',pluginUnavailableDesc:'Wtyczka mogła zostać wyłączona lub wyładowana.',manual:'Ręcznie',dockerSupport:'Obsługa Dockera',keyctlDesc:'wymagane dla Dockera w nieuprzywilejowanym LXC',fuseDesc:'zezwalaj na montowanie FUSE wewnątrz kontenera',used:'użyte',total:'Łącznie',cpuCoresLabel:'Rdzenie CPU',swapMemory:'Swap (MB)',unprivileged:'Nieuprzywilejowany',unprivilegedHint:'Bezpieczniejszy, ale z ograniczoną funkcjonalnością',nesting:'Zagnieżdżanie',nestingHint:'Pozwala uruchamiać Docker/LXC wewnątrz LXC',ipConfig:'Konfiguracja IP',useDhcp:'Użyj DHCP',gateway:'Brama',lvmZfsIgnoreFormat:'LVM/ZFS ignorują format',sameNode:'ten sam węzeł',crossNodeCloneWarning:'Klonowanie między węzłami wymaga współdzielonego magazynu (NFS, Ceph itp.). Magazyn lokalny nie zadziała!',willBeCloned:'zostanie sklonowana',newVmId:'Nowe ID VM',cloneMode:'Tryb klonowania',fullClone:'Pełny klon',fullCloneDesc:'Niezależna kopia wszystkich danych',linkedClone:'Klon powiązany',linkedCloneDesc:'Szybszy, wymaga obrazu bazowego',onlyForVms:'Dostępne tylko dla VM',cloneNotes:'Notatki do klonu...',gridView:'Widok siatki',listView:'Widok listy',compactView:'Widok kompaktowy',selectVmFromList:'Wybierz VM z listy',selectAll:'Zaznacz wszystko',deselectAll:'Odznacz wszystko',selectedItems:'wybrano',bulkActions:'Akcje zbiorcze',quickActions:'Szybkie akcje',moreActions:'Więcej akcji',xOfYResources:'z',resourcesLabel:'Zarządzanie zasobami',startClone:'Rozpocznij klonowanie',vmStillRunning:'VM nadal działa. Zostanie zatrzymana przed usunięciem.',ctStillRunning:'Kontener nadal działa. Zostanie zatrzymany przed usunięciem.',confirmDelete:'Potwierdź usunięcie',reallyDelete:'Na pewno usunąć?',connectionFailed:'Połączenie nie powiodło się',cluster2FAHint:'Na tym koncie Proxmox włączone jest uwierzytelnianie dwuskładnikowe (2FA), dlatego logowanie hasłem nie może być użyte do dostępu przez API. Dodaj klaster przy użyciu tokenu API (Datacenter → Permissions → API Tokens) albo tymczasowo wyłącz 2FA na koncie, dodaj klaster — PegaProx automatycznie utworzy token API — a następnie ponownie włącz 2FA.',smartNotAvailable:'Dane SMART są niedostępne',smartFetchError:'Błąd pobierania danych SMART',cloneFailed:'Klonowanie nie powiodło się',forceStopFailed:'Wymuszone zatrzymanie nie powiodło się',forceStopping:'Wymuszanie zatrzymania...',bulkMigrationFailed:'Migracja zbiorcza nie powiodła się',bulkMigration:'Migracja zbiorcza',vmsSelected:'Wybrane VM',migrateVms:'Migruj VM',startingBulkMigration:'Rozpoczynanie migracji zbiorczej',creationFailed:'Tworzenie nie powiodło się',actionFailed:'Operacja nie powiodła się',autoDetectionFailed:'Automatyczne wykrywanie nie powiodło się',clusterOffline:'Klaster nieosiągalny',connectionClosed:'Połączenie zakończone',connectionLostUnexpected:'Połączenie zostało nieoczekiwanie przerwane',shellConnectingAs:'Łączenie jako',waitingForWsConnection:'Oczekiwanie na połączenie WebSocket...',connectingToServer:'Łączenie z serwerem...',sshConnecting:'Nawiązywanie połączenia SSH...',unexpectedDisconnect:'Połączenie zostało nieoczekiwanie zamknięte',serverError:'Błąd serwera',switchTabToReconnect:'Przełącz zakładkę i wróć, aby połączyć ponownie',deleteInterfaceConfirm:'Na pewno usunąć interfejs?',noMigrationsYet:'Brak migracji',olderMigrations:'starsze migracje',paused:'Wstrzymano',performanceMetrics:'Metryki wydajności',hour:'Godzina',day:'Dzień',week:'Tydzień',month:'Miesiąc',year:'Rok',tags:'Tagi',description:'Opis',changesRequireRestart:'Uwaga: niektóre zmiany wymagają ponownego uruchomienia',manageTags:'Zarządzaj tagami',noTags:'Brak tagów',newTag:'Nowy tag...',existingTags:'Istniejące tagi',schedules:'Harmonogramy',scheduledActions:'Zaplanowane akcje',newSchedule:'Nowy harmonogram',editSchedule:'Edytuj harmonogram',noSchedules:'Brak zaplanowanych akcji',noSchedulesDesc:'Twórz harmonogramy automatycznego uruchamiania, zatrzymywania lub tworzenia migawek VM',createFirstSchedule:'Utwórz pierwszy harmonogram',scheduleCreated:'Harmonogram utworzony',scheduleDeleted:'Harmonogram usunięty',scheduleType:'Typ harmonogramu',daily:'Codziennie',weekdays:'Dni robocze',weekends:'Weekendy',weekly:'Co tydzień',once:'Jednorazowo',forOnce:'jednorazowo',forWeekly:'co tydzień',days:'Dni',lastRun:'Ostatnie uruchomienie',reports:'Raporty',insights:'Analizy',statusCritical:'Krytyczny',statusWarning:'Ostrzeżenie',statusTrendingUp:'Trend wzrostowy',statusOverThreshold:'Powyżej progu',statusDecreasing:'Spadek',statusStable:'Stabilny',insightsDesc:'Rekomendacje dotyczące doboru zasobów i prognozy pojemności na podstawie 30 dni danych historycznych.',insightsLoading:'Ładowanie…',insightsNotEnoughData:'Za mało danych historycznych metryk. Kolektor pobiera próbki co 5 minut — poczekaj lub wykonaj migawkę.',insightsNoData:'Brak rekomendacji — kolektor nadal zbiera dane (potrzeba co najmniej 2 godz. na VM).',insightsAllOk:'Wszystkie VM wyglądają na właściwie dobrane 👌',templateLibrary:'Biblioteka szablonów Cloud-Init',templateLibraryDesc:'Wyselekcjonowany katalog obrazów chmurowych. Jedno kliknięcie wdraża w klastrze gotowy do klonowania szablon.',templateDeploy:'Wdróż',templateDeployStart:'Rozpocznij wdrażanie',templateDeployStarted:'Wdrażanie rozpoczęte',templateDeployFailed:'Wdrażanie nie powiodło się',templateDeployHint:'PegaProx połączy się z węzłem przez SSH, pobierze obraz chmurowy, utworzy VM i przekonwertuje ją na szablon. Zwykle trwa to 1–3 minuty.',templateDeployments:'Ostatnie wdrożenia',templateAlreadyDeployed:'wdrożono',autoAssign:'automatycznie',notifications:'Powiadomienia',markAllRead:'oznacz wszystkie jako przeczytane',browserPush:'Powiadomienia push w przeglądarce',pushActive:'włączone — alerty będą wysyłane na to urządzenie',pushInactive:'wyłączone',pushEnabled:'Powiadomienia push w przeglądarce włączone',pushDisabled:'Powiadomienia push w przeglądarce wyłączone',pushBlocked:'Powiadomienia zablokowane w ustawieniach przeglądarki',pushNotSupported:'Powiadomienia push nie są tutaj obsługiwane',pushPermissionDenied:'Brak uprawnień',pushTestSent:'Testowe powiadomienie wysłane',inboxEmpty:'Brak powiadomień',test:'Test',templateAddCustom:'Dodaj własny szablon',templateAddDesc:'Dodaj własny obraz chmurowy do katalogu. Obsługiwane jest wszystko, co Proxmox może pobrać przez wget i zaimportować przez qm importdisk.',templateAddRequired:'Nazwa i adres URL obrazu są wymagane',templateAdded:'Szablon dodany',templateAddFailed:'Nie udało się dodać',templateAdd:'Dodaj',templateImageUrl:'Adres URL obrazu',templateImageUrlHint:'Bezpośredni adres URL obrazu cloud-init .qcow2 / .img',cloudInitDrive:'Dysk Cloud-Init',cloudInitDriveAdded:'Dodano dysk Cloud-Init',cloudInitDriveAddFailed:'Nie udało się dodać dysku Cloud-Init',cloudInitDriveRemoved:'Usunięto dysk Cloud-Init',cloudInitDriveRemoveFailed:'Nie udało się usunąć dysku Cloud-Init',confirmDeleteCloudInitDrive:'Usunąć ten dysk Cloud-Init?',noCloudInitDrive:'Brak skonfigurowanego dysku Cloud-Init',addCloudInitDrive:'Dodaj dysk Cloud-Init',cloudInitDiskFormat:'Format',cloudInitDiskFormatLockedHint:'Ten typ magazynu obsługuje tylko jeden format.',templateDistro:'Dystrybucja',templateDefaultUser:'Domyślny użytkownik',templateCores:'Rdzenie',templateMemoryMb:'RAM (MB)',templateDiskGb:'Dysk (GB)',templateTags:'Tagi',templateCustomBadge:'własny',templateDeleteCustom:'Usuń własny szablon',templateDeleteConfirm:'Usunąć ten własny szablon?',templateDeleted:'Szablon usunięty',version:'Wersja',commaSeparated:'oddzielone przecinkami',noStoragesAvailable:'brak magazynów obrazów na tym węźle',costDashboard:'Panel kosztów',costDashboardDesc:'Szacunkowe rozliczenie kosztów dla każdej VM/CT na podstawie historii metryk i skonfigurowanych stawek.',costRates:'Stawki',costRatesTitle:'Stawki kosztów dla',costRatesHint:'Stawki są definiowane dla klastra. Pozostaw wartości domyślne, aby użyć ustawień globalnych. Kwoty podawane są w wybranej walucie.',costRatesSaved:'Stawki zapisane',costRatesSaveFailed:'Nie udało się zapisać',costCpuRate:'CPU za rdzeń·godzinę',costMemRate:'Pamięć za GB·godzinę',costStorageRate:'Magazyn za GB·miesiąc',costMonthly:'Miesięcznie',costMonthlyTotal:'Łącznie miesięcznie',costPerVm:'Na VM',costNoData:'Brak historii metryk dla tego klastra — kolektor pobiera próbki co 5 minut.',costByNode:'Koszt według węzła',costCpu:'CPU',costMemory:'Pamięć',costStorage:'Magazyn',currency:'Waluta',notes:'Notatki',lastDay:'ostatnie 24 godz.',last7Days:'ostatnie 7 dni',last14Days:'ostatnie 14 dni',last30Days:'ostatnie 30 dni',windowExtrapolated:'ekstrapolowano na podstawie',lowDataWarning:'ograniczona liczba próbek',noVmsFound:'Brak VM w tym zakresie',at:'o',driftDetection:'Wykrywanie zmian konfiguracji',driftDetectionDesc:'Co noc wykonuje migawkę konfiguracji klastra i wykrywa zmiany względem bazowej konfiguracji ustawionej przez administratora.',driftKindVm:'Konfiguracja VM',driftKindStorage:'Magazyn',driftKindNetwork:'Sieć',driftKindCluster:'Opcje klastra',driftScan:'Skanuj teraz',driftScanned:'Skanowanie zakończone',driftScanFailed:'Skanowanie nie powiodło się',driftSeeded:'utworzono konfigurację bazową',driftOpen:'otwarte',driftAck:'Potwierdź',driftAcknowledged:'Potwierdzono',driftAcknowledged2:'potwierdzono',driftAcknowledgedBy:'Potwierdzone przez',driftPromote:'Ustaw jako bazową',driftPromoted:'Ustawiono jako konfigurację bazową',driftSetBaseline:'Resetuj konfigurację bazową',driftBaselineConfirm:'Ustawić bieżący stan klastra jako nową konfigurację bazową? Otwarte zdarzenia zostaną oznaczone jako zastąpione.',driftBaselineDone:'Konfiguracja bazowa zresetowana',driftBaselineFailed:'Nie udało się ustawić konfiguracji bazowej',driftEvents:'zdarzenia',driftNoOpen:'Brak otwartych zmian. Klaster jest zgodny z konfiguracją bazową.',driftNoBaseline:'Nie ustawiono jeszcze konfiguracji bazowej. Kliknij „Skanuj teraz”, aby zapisać bieżący stan jako punkt odniesienia.',driftNoEvents:'Brak zdarzeń dla tego filtra.',driftOpAdded:'dodano',driftOpRemoved:'usunięto',driftOpChanged:'zmieniono',exportCsv:'Eksport CSV',auditSearchQuery:'Przeszukaj dziennik audytu…',auditDateFrom:'Od',auditDateTo:'Do',auditAnySeverity:'dowolny poziom',clearFilters:'Wyczyść',prev:'Poprzednia',siemTitle:'Przekazywanie do SIEM',siemDesc:'Przekazuj zdarzenia audytowe do syslog / Splunk / Elastic / Loki lub ogólnych webhooków. Obsługiwanych jest wiele celów.',siemAddTarget:'Dodaj cel',siemEditTarget:'Edytuj cel',siemNoTargets:'Brak skonfigurowanych celów. Zdarzenia audytowe pozostają wyłącznie w bazie danych.',siemRequiredFields:'nazwa i endpoint są wymagane',siemSaved:'Cel zapisany',siemSaveFailed:'zapis nie powiódł się',siemDeleted:'Usunięto',siemDeleteConfirm:'Usunąć ten cel SIEM?',siemTestOk:'Zdarzenie testowe dostarczone',siemTestFailed:'Test nie powiódł się',siemType:'Typ',siemEndpoint:'Endpoint',siemSent:'wysłano',siemErrors:'błędy',siemLastOk:'ostatnio OK',siemLastError:'ostatni błąd',siemVerifyTls:'Weryfikuj certyfikat TLS',siemVerifyTlsHint:'(wyłącz tylko dla zaufanych, samopodpisanych systemów SIEM)',snapPoliciesTitle:'Harmonogramy migawek',snapPoliciesDesc:'Automatycznie twórz migawki VM/CT według tagu lub listy VMID i usuwaj stare zgodnie z retencją. Tańsze niż PBS dla krótkich okien szybkiego przywracania.',snapPolicyNew:'Nowa polityka',snapPolicyEdit:'Edytuj politykę',snapPolicyNone:'Brak skonfigurowanych polityk migawek.',snapPolicyRequired:'nazwa i cel są wymagane',snapPolicySaved:'Polityka zapisana',snapPolicySaveFailed:'Zapis nie powiódł się',snapPolicyDeleteConfirm:'Usunąć tę politykę migawek?',snapPolicyDeleted:'Usunięto',snapPolicyRunStarted:'Uruchomiono — odśwież za kilka sekund',snapTargetType:'Typ celu',snapTargetTag:'tag',snapTargetVm:'VMID',snapTargetTagLabel:'Nazwa tagu',snapTargetVmidsLabel:'VMID (oddzielone przecinkami)',replicationOverview:'Replikacja',replicationOverviewDesc:'Szybki podgląd stanu wszystkich zadań replikacji — lokalnych i między klastrami.',replLocal:'Replikacja lokalna',replCross:'Replikacja między klastrami',replLastSync:'Ostatnia synchronizacja',replLastRun:'Ostatnie uruchomienie',replTotal:'Łącznie',replStateOk:'OK',replStateFailed:'Niepowodzenie',replStateNever:'Nigdy nie uruchamiano',replFromTo:'Źródło → Cel',replNoJobs:'Nie znaleziono zadań replikacji.',snapSchedule:'Harmonogram',snapSchedMonthly:'miesięcznie',snapSchedOnce:'jednorazowo',snapSchedCron:'cron',snapDayOfMonth:'Dzień miesiąca (1–31)',snapCronExpr:'Wyrażenie cron (min godz. dzień-mies. miesiąc dzień-tyg.)',snapCronHint:'np. „0 3 * * *” codziennie 03:00 · „*/15 * * * *” co 15 min · „0 2 * * 1-5” dni robocze 02:00',snapRunOnceAt:'Uruchom jednorazowo o',snapPruneOnly:'Tylko czyszczenie — nie twórz migawek, usuń jedynie stare zgodnie z retencją',snapSchedHourly:'co godzinę',snapSchedDaily:'codziennie',snapSchedWeekly:'co tydzień (niedziela)',snapAt:'O godzinie (HH:MM)',snapKeepCount:'Zachowaj ostatnie N',snapKeepDays:'Lub N dni (0=wyłączone)',snapIncludeRam:'Uwzględnij RAM (tylko QEMU — wolniej, ale spójnie)',history:'Historia',topologyTitle:'Topologia sieci',topologyDesc:'Klaster → węzły → mosty/bondy/SDN → VM. Kliknięcie elementu podświetla jego połączenia.',topologyDetails:'Wybrane',powerTitle:'Energia i CO₂',powerDesc:'Szacowane zużycie energii i emisja CO₂ dla każdej VM na podstawie historii metryk, profilu mocy węzła, PUE i emisyjności energii.',powerNoData:'Brak historii metryk dla tego klastra.',powerMonthlyKwh:'Miesięczne kWh',powerMonthlyCost:'Miesięczny koszt',powerMonthlyCo2:'Miesięczne CO₂',powerVmCount:'Uwzględnione VM',powerByNode:'Według węzła',powerPerVm:'Na VM',powerHoursRunning:'Godziny pracy',powerRates:'Stawki',powerRatesTitle:'Stawki energii i CO₂',powerRatesSaved:'Stawki zapisane',powerRatesHint:'Domyślnie: 80 W bezczynności / 300 W maks. na węzeł, 0,3 W/GB RAM, PUE 1,5, 0,30 €/kWh, 0,4 kg CO₂/kWh. Dostosuj do swojego sprzętu i dostawcy energii.',powerNodeIdleW:'Moc węzła w bezczynności (W)',powerNodeMaxW:'Maks. moc węzła (W)',powerMemWPerGb:'Moc pamięci na GB (W)',powerPue:'PUE (1,0–2,5)',powerKwhPrice:'Cena za kWh',powerCo2PerKwh:'kg CO₂ / kWh',drDrillRun:'Test DR',drDrillTitle:'Test DR',drDrillSubtitle:'Kontrolowany test sprawdzający, czy plan odtwarzania awaryjnego zadziałałby po uruchomieniu. Generuje materiał dowodowy do analizy BCM/DR.',drDrillRunning:'Trwa sprawdzanie…',drDrillWaiting:'Oczekiwanie na pierwsze wyniki…',drDrillSummary:'Podsumowanie',drDrillExecutor:'Wykonawca',drDrillRpoBreach:'Przekroczenie RPO',drDrillRto:'Szacowane RTO',drDrillExportPdf:'Eksportuj raport PDF',drDrillPdfTitle:'Raport z testu DR',drDrillChecks:'Kontrole testu',drDrillCategory:'Kategoria',drDrillCheck:'Kontrola',drDrillVerdict:'Wynik',drDrillMessage:'Komunikat',insightsTakeSnapshot:'Utwórz migawkę teraz',insightsSnapshotTaken:'Migawka utworzona',insightsSnapshotFailed:'Tworzenie migawki nie powiodło się',capacityForecast:'Prognoza pojemności',rightSizing:'Rekomendacje doboru zasobów',rightSizingFlags:'flagi',snapshots:'Migawki',oversizedCpu:'Za dużo CPU',oversizedMem:'Za dużo RAM',undersizedCpu:'Za mało CPU',undersizedMem:'Za mało RAM',idle:'Bezczynne',noData:'Brak danych',trend:'Trend',etaTo:'Szacowany czas do',noEtaCalculable:'brak możliwości oszacowania',reportsAnalytics:'Raporty i analityka',siteRecovery:'Odtwarzanie awaryjne',siteRecoveryDesc:'Plany odtwarzania awaryjnego i orkiestracja failover',plugins:'Wtyczki',noPlugins:'Nie wykryto wtyczek. Umieść katalogi wtyczek w katalogu plugins/.',enablePluginsHint:'Włącz wtyczki w Ustawienia → Serwer → Wtyczki',pluginDisclaimer:'PegaProx nie ponosi odpowiedzialności za wtyczki społecznościowe. Administrator powinien zawsze przejrzeć i przeskanować kod wtyczki przed jej włączeniem. Instaluj tylko wtyczki z zaufanych źródeł.',pluginAuthor:'autor',recoveryPlans:'Plany odtwarzania',createPlan:'Utwórz plan',editPlan:'Edytuj plan',deletePlan:'Usuń plan',planName:'Nazwa planu',sourceCluster:'Klaster źródłowy',networkMappings:'Mapowania sieci',storageMappings:'Mapowania magazynów',protectedVMs:'Chronione VM',bootGroup:'Grupa rozruchowa',bootDelay:'Opóźnienie rozruchu (s)',addVmToPlan:'Dodaj VM',plannedFailover:'Planowany failover',emergencyFailover:'Awaryjny failover',testFailover:'Testowy failover',failback:'Powrót do źródła',readinessCheck:'Kontrola gotowości',failoverRunning:'Trwa failover...',failoverComplete:'Failover zakończony',failoverFailed:'Failover nie powiódł się',testCleanup:'Wyczyść test',autoFailover:'Automatyczny failover',autoFailoverDesc:'Automatyczny awaryjny failover w przypadku niedostępności klastra',failoverTimeout:'Limit czasu failover (s)',preWebhook:'Webhook przed failover',postWebhook:'Webhook po failover',rpo:'RPO',rpoDesc:'Recovery Point Objective — czas od ostatniej replikacji',planReady:'Gotowy',planRunning:'Uruchomiony',planTesting:'Testowanie',planFailed:'Niepowodzenie',planCompleted:'Zakończony',noPlans:'Brak skonfigurowanych planów odtwarzania',confirmFailover:'Uruchomić failover? Wszystkie chronione VM zostaną przeniesione do klastra docelowego.',confirmEmergency:'Uruchomić awaryjny failover? Źródłowe VM NIE zostaną wyłączone.',confirmTestCleanup:'Usunąć testowe VM z klastra docelowego?',failoverHistory:'Historia failover',linkReplication:'Powiąż zadanie replikacji (opcjonalnie)',readinessPassed:'Kontrola gotowości zakończona pomyślnie',readinessFailed:'Kontrola gotowości nie powiodła się',noIssues:'Nie znaleziono problemów',addMapping:'+ Dodaj mapowanie',saveMappings:'Zapisz mapowania',sourceBridge:'Mostek źródłowy',sourceStorage:'Magazyn źródłowy',noEvents:'Brak zdarzeń',dangerZone:'Strefa niebezpieczna',lastHour:'Ostatnia godzina',last24h:'Ostatnie 24 godz.',lastWeek:'Ostatni tydzień',alarms:'Alarmy',noAlarms:'Brak aktywnych alarmów',severity:'Poziom',completionTime:'Zakończenie',startTime:'Czas rozpoczęcia',dismiss:'Odrzuć',searchAllInventories:'Szukaj we wszystkich zasobach...',recentItems:'Ostatnie',inventoryOverview:'Przegląd zasobów',items:'elementy',connectionLive:'Na żywo',connectionPolling:'Odpytywanie',totalClusters:'Łącznie klastrów',initiator:'Inicjator',object:'Obiekt',noReportData:'Brak danych raportu',noReportDataDesc:'Dane historyczne są zbierane. Sprawdź ponownie za kilka minut.',topVmsCpu:'Najwyższe użycie CPU',topVmsMem:'Najwyższe użycie pamięci',historicalRange:'Zakres historyczny',dataPoints:'punkty danych',overTime:'w czasie',storageOverview:'Magazyn węzła',exportPdf:'Eksportuj jako PDF',exportPng:'Eksportuj jako PNG',containersRunning:'Uruchomione kontenery',clustersOnline:'Klastry online',datacenterOverview:'Przegląd centrum danych',noRunningVms:'Brak uruchomionych VM',cveScanner:'Skaner CVE',cveScanDesc:'Skanuje wszystkie węzły przez SSH pod kątem nieaktualnych pakietów i podatności bezpieczeństwa.',scanAllNodes:'Skanuj wszystkie węzły',scanning:'Skanowanie...',scanRunning:'Trwa skanowanie podatności na wszystkich węzłach...',scanTakesMinute:'Może to potrwać około minuty',nodesScanned:'Przeskanowane węzły',securityUpdates:'Aktualizacje bezpieczeństwa',totalUpdates:'Łącznie aktualizacji',nodesClean:'Węzły bez problemów',scanFailed:'niepowodzenie',rebootRequired:'Wymagany restart dla jądra',upToDate:'Aktualne',updates:'Aktualizacje',packageName:'Pakiet',installed:'Zainstalowane',available:'Dostępna',allPkgsUpToDate:'Wszystkie pakiety są aktualne',scannedAt:'Przeskanowano',noScanResults:'Brak wyników skanowania',noScanResultsDesc:'Kliknij „Skanuj wszystkie węzły”, aby sprawdzić podatne pakiety',cveScanFailed:'Skan CVE nie powiódł się',debsecanNotInstalled:'debsecan nie jest zainstalowany',debsecanExplain:'debsecan to narzędzie Debiana porównujące zainstalowane pakiety z Debian Security Tracker w celu wykrywania znanych CVE. Bez niego wyświetlane są tylko oczekujące aktualizacje pakietów; po instalacji dostępne są identyfikatory CVE i poziomy ważności.',debsecanInstallInfo:'Instaluje lekki pakiet debsecan (~50 KB) na wszystkich węzłach klastra przez SSH.',installDebsecan:'Zainstaluj debsecan',installing:'Instalowanie...',fixAvailable:'dostępna poprawka',cveApplyHint:'Zastosuj poprawki przez Menedżer aktualizacji',openUpdateManager:'Otwórz Menedżer aktualizacji',automation:'Automatyzacja',schedulesDesc:'Automatycznie uruchamiaj, zatrzymuj, restartuj lub twórz migawki VM według harmonogramu',tagsDesc:'Organizuj VM za pomocą tagów. Kliknij ikonę tagu przy dowolnej VM, aby dodać tagi.',noTagsInCluster:'Brak tagów w tym klastrze',addTagHint:'Użyj przycisku tagu przy VM w zakładce Zasoby',tagsTotal:'tagi',clickVmTag:'Kliknij ikonę tagu przy VM, aby zarządzać tagami',alertsDesc:'Otrzymuj powiadomienia, gdy zasoby przekroczą ustawione progi',newAlert:'Nowy alert',noAlertsCluster:'Brak alertów dla tego klastra',alertCreated:'Alert utworzony',alertUpdated:'Alert zaktualizowany',targetType:'Zastosuj do',entireCluster:'Cały klaster',specificNode:'Konkretny węzeł',specificVm:'Konkretna VM',targetId:'Cel',condition:'Warunek',cluster:'Klaster',affinityDesc:'Określ, które maszyny VM/CT powinny działać razem lub osobno',newRule:'Nowa reguła',noAffinityCluster:'Brak reguł powiązań dla tego klastra',ruleCreated:'Reguła utworzona',together:'Razem',separate:'Osobno',enforced:'Wymuszone',generalTab:'Ogólne',resourcesTab:'Zasoby',storageTab:'Pamięć masowa',networkTab:'Sieć',snapshotsTab:'Migawki',backupsTab:'Kopie zapasowe',replicationTab:'Replikacja',historyTab:'Historia',proxmoxTasks:'Zadania Proxmox',pegaproxActions:'Akcje PegaProx',optionsTab:'Opcje',options:'Opcje',backup:'Kopia zapasowa',replication:'Replikacja',balancing:'Balansowanie',excludedNodes:'Wykluczone węzły',excludedNodesDesc:'Te węzły nigdy nie będą celami automatycznego balansowania VM ani rekomendacji migracji.',selectNodeToExclude:'Wybierz węzeł do wykluczenia...',exclude:'Wyklucz',excludedFromBalancing:'Wykluczono z balansowania',reincludedInBalancing:'ponownie włączono do balansowania',excludeNode:'Wyklucz węzeł z balansowania',noExcludedNodes:'Brak wykluczonych węzłów — wszystkie uczestniczą w balansowaniu',confirmExcludeNode:'Wyklucz',excludedVMs:'Wykluczone VM',excludedVMsDesc:'Te VM nigdy nie będą automatycznie migrowane podczas balansowania obciążenia.',excludedPools:'Wykluczone pule',excludedPoolsDesc:'Wszystkie VM z tych pul będą pomijane podczas automatycznego balansowania.',selectVMToExclude:'Wybierz VM do wykluczenia...',noExcludedVMs:'Brak wykluczonych VM — wszystkie uczestniczą w balansowaniu',selectVM:'Wybierz VM...',fromBalancing:'z balansowania',allNodesExcluded:'Wszystkie węzły są wykluczone — balansowanie jest faktycznie wyłączone',howExclusionWorks:'Jak działa wykluczanie węzłów',exclusionRule1:'Wykluczone węzły NIE będą celami automatycznego balansowania VM',exclusionRule2:'Wykluczone węzły NIE będą otrzymywać VM podczas migracji balansujących',exclusionRule3:'Wykluczone węzły pozostają widoczne i mogą przyjmować migracje ręczne',exclusionRule4:'VM z wykluczonych węzłów mogą nadal zostać przeniesione, jeśli węzeł jest przeciążony',createBackup:'Utwórz kopię zapasową',noBackups:'Nie znaleziono kopii zapasowych',noBackupsHint:'Utwórz kopię zapasową lub sprawdź magazyny kopii zapasowych',backupMode:'Tryb kopii zapasowej',compression:'Kompresja',backupStarted:'Kopia zapasowa uruchomiona',downloadStarted:'Pobieranie rozpoczęte',downloadFailed:'Pobieranie nie powiodło się',restoreBackup:'Przywróć kopię zapasową',selectedBackup:'Wybrana kopia zapasowa',targetVmid:'Docelowy VMID',originalStorage:'Zachowaj oryginalny',sameVmidWarning:'Ten sam VMID = VM zostanie nadpisana!',startAfterRestore:'Uruchom po przywróceniu',confirmRestore:'Na pewno przywrócić kopię zapasową?',restoreStarted:'Przywracanie uruchomione',confirmDeleteBackup:'Na pewno usunąć kopię zapasową?',backupDeleted:'Kopia zapasowa usunięta',verifyBackup:'Zweryfikuj kopię zapasową',confirmVerify:'Zweryfikować tę kopię? Zostanie utworzona tymczasowa VM, uruchomiona, sprawdzona, a następnie usunięta.',verificationStarted:'Weryfikacja kopii zapasowej uruchomiona',verificationPassed:'✓ Kopia zweryfikowana — przywracanie + uruchomienie OK',verificationFailed:'✗ Weryfikacja nie powiodła się',backupVerified:'Kopia zweryfikowana',restoreBootOk:'Przywrócenie + uruchomienie OK',verifiedOk:'Zweryfikowano ✓',restoring:'Przywracanie...',booting:'Uruchamianie...',verifying:'Sprawdzanie...',cleaningUp:'Czyszczenie...',backupModeSnapshot:'Migawka (bez zatrzymywania)',backupModeSuspend:'Wstrzymanie (krótka przerwa)',backupModeStop:'Zatrzymanie (instancja zostanie zatrzymana)',compressZstd:'ZSTD (zalecane)',compressLzo:'LZO (szybkie)',compressGzip:'GZIP',compressNone:'Brak',backupNotes:'Notatki (opcjonalnie)',backupNotesPlaceholder:'np. przed dużą aktualizacją, cotygodniowa kopia...',ha:'HA',haResources:'Zasoby HA',haGroups:'Grupy HA',metricServer:'Serwer metryk',cpuCompatibility:'Zgodność CPU',cpuCompatibilityMode:'Tryb zgodności CPU',cpuCompatibilityDesc:'Zapewnia zgodność migracji na żywo między różnymi generacjami CPU',whatIsCpuCompat:'Czym jest tryb zgodności CPU?',cpuCompatExplain:'Gdy węzły mają różne generacje CPU (np. Haswell i Skylake), migracja na żywo może się nie udać, ponieważ nowsze procesory udostępniają funkcje nieobsługiwane przez starsze.',cpuCompatSolution:'Ustawienie wspólnego typu CPU dla wszystkich VM zapewnia możliwość migracji między dowolnymi węzłami klastra.',recommendedSettings:'Zalecane ustawienia',broadCompatibility:'Szeroka zgodność — działa z większością CPU od 2008 r.',modern:'Nowoczesny',haswell:'Haswell i nowsze (2013+)',newest:'Najnowszy',skylakeAvx:'Skylake-X z AVX-512 (2017+)',noMigration:'Bez migracji',hostDesc:'Bezpośrednie użycie CPU hosta — najwyższa wydajność, bez migracji',nodesCpuInfo:'Informacje o CPU węzłów klastra',howToApply:'Jak zastosować',cpuStep1:'Przejdź do zakładki Sprzęt każdej VM',cpuStep2:'Edytuj ustawienia CPU',cpuStep3:'Zmień „Typ” na wybrany poziom zgodności',cpuStep4:'Uruchom ponownie VM, aby zastosować zmiany',autoDetectedRecommendation:'Automatycznie wykryta rekomendacja',basedOnClusterCpus:'Na podstawie CPU wykrytych w klastrze zalecamy:',availableLevels:'Dostępne poziomy zgodności',safest:'Najbezpieczniejszy',detectedClusterCpus:'Wykryte CPU klastra',loadingCpuInfo:'Ładowanie informacji o CPU...',copy:'Kopiuj',criticalAlert:'ALERT KRYTYCZNY',haRecoveryMayStart:'Możliwe, że trwa odzyskiwanie HA...',nodeOffline:'Węzeł offline',nodeOnline:'Węzeł online',nodeUnreachable:'Węzeł nieosiągalny',offlineSince:'Offline od',firewall:'Zapora',sdn:'SDN',sdnNotAvailable:'SDN niedostępne',sdnNotConfigured:'Software Defined Networking nie jest skonfigurowane w tym klastrze.',sdnPendingChanges:'Istnieją oczekujące zmiany SDN, które trzeba zastosować.',sdnApplied:'Konfiguracja SDN zastosowana',sdnConfigSynced:'Konfiguracja SDN jest zsynchronizowana ze wszystkimi węzłami.',applyingSDN:'Stosowanie konfiguracji SDN na wszystkich węzłach...',sdnApplyReminder:'💡 Kliknij „Zastosuj / Przeładuj”, aby wdrożyć zmiany',applyChanges:'Zastosuj zmiany',sdnZones:'Strefy',sdnVnets:'VNet-y',sdnInfo:'Informacje o SDN',zones:'Strefy',vnets:'VNet-y',subnets:'Podsieci',controllers:'Kontrolery',noZones:'Brak skonfigurowanych stref',noVnets:'Brak skonfigurowanych VNet-ów',createZoneFirst:'Najpierw utwórz strefę',addZone:'Dodaj strefę',addVnet:'Dodaj VNet',addSubnet:'Dodaj podsieć',zoneName:'Nazwa strefy',vnetName:'Nazwa VNet',simpleZoneDesc:'Izolowana strefa z prostym mostkowaniem',vlanZoneDesc:'Strefa oparta na VLAN z tagowaniem 802.1q',vxlanZoneDesc:'Sieć nakładkowa VXLAN',evpnZoneDesc:'BGP EVPN z VXLAN',zoneCreated:'Strefa utworzona — kliknij „Zastosuj / Przeładuj”, aby aktywować',vnetCreated:'VNet utworzony — kliknij „Zastosuj / Przeładuj”, aby aktywować',subnetCreated:'Podsieć utworzona — kliknij „Zastosuj / Przeładuj”, aby aktywować',zoneDeleted:'Strefa usunięta — kliknij „Zastosuj / Przeładuj”, aby aktywować',vnetDeleted:'VNet usunięty — kliknij „Zastosuj / Przeładuj”, aby aktywować',confirmDeleteZone:'Usunąć strefę?',confirmDeleteVnet:'Usunąć VNet?',zoneNameRequired:'Nazwa strefy jest wymagana',vnetNameZoneRequired:'Nazwa VNet i strefa są wymagane',subnetRequired:'Podsieć jest wymagana',sourceNat:'Źródłowy NAT',noControllers:'Brak skonfigurowanych kontrolerów. Kontrolery są wymagane dla stref EVPN/VXLAN.',addController:'Dodaj kontroler',noIpam:'Brak skonfigurowanego IPAM. IPAM zapewnia zarządzanie adresami IP dla podsieci.',addIpam:'Dodaj IPAM',noDns:'Brak skonfigurowanego DNS. Integracja DNS umożliwia automatyczną rejestrację DNS dla VM.',addDns:'Dodaj DNS',seconds:'sekundy',smbiosAuto:'Automatyczny SMBIOS',smbiosAutoDesc:'Automatycznie konfiguruje dane SMBIOS (Producent, Produkt, Numer seryjny) dla nowych VM i VM bez konfiguracji SMBIOS. Przydatne do licencjonowania Windows.',deploySmbiosConfirm:'Wdrożyć automatyczną konfigurację SMBIOS na wszystkich węzłach tego klastra?',rescanAllVms:'Przeskanuj ponownie wszystkie VM',showLogs:'Pokaż logi',deployToAllNodes:'Wdróż na wszystkie węzły',updateAllNodes:'Aktualizuj wszystkie węzły',nodeStatus:'Stan węzła',clickDeployToStart:'Kliknij „Wdróż na wszystkie węzły”, aby rozpocząć',smbiosRequiresSSH:'⚠️ Wymaga klucza SSH skonfigurowanego w ustawieniach połączenia z klastrem',whySSH:'Dlaczego SSH?',smbiosSSHExplanation:'Ta funkcja używa SSH do wdrażania skryptów hook na węzłach. Poświadczenia SSH można opcjonalnie skonfigurować w ustawieniach klastra.',deployed:'Wdrożono',notDeployed:'Nie wdrożono',requiresSSH:'Wymaga SSH',deploymentFailed:'Wdrożenie nie powiodło się',clusterNodes:'Węzły klastra',joinInformation:'Informacje o dołączeniu',datacenterOptions:'Opcje centrum danych',quorate:'Ma quorum',votes:'Głosy',link:'Łącze',resourceUsage:'Użycie zasobów',memory:'Pamięć',addStorage:'Dodaj magazyn',storageId:'ID magazynu',directory:'Katalog',server:'Serwer',content:'Zawartość',shared:'Współdzielony',deleteStorageConfirm:'Na pewno usunąć magazyn?',deleteBackupJobConfirm:'Na pewno usunąć zadanie kopii zapasowej?',storageType:'Typ magazynu',volumeGroup:'Grupa woluminów',thinPool:'Thin Pool',export:'Eksport',share:'Udział',datastore:'Magazyn danych',pool:'Pula',skipCertVerification:'Pomiń weryfikację certyfikatu',backupJobs:'Zadania kopii zapasowych',noBackupJobs:'Brak zadań kopii zapasowych',createBackupJob:'Utwórz zadanie kopii zapasowej',hourly:'Co godzinę',monthly:'Co miesiąc',notification:'Powiadomienie',always:'Zawsze',onFailure:'W razie niepowodzenia',schedule:'Harmonogram',selection:'Wybór',retention:'Retencja',replicationJobs:'Zadania replikacji',guest:'Gość',job:'Zadanie',firewallOptions:'Opcje zapory',firewallRules:'Reguły zapory',noFirewallRules:'Brak reguł zapory',policyIn:'Polityka wejściowa',policyOut:'Polityka wyjściowa',addRule:'Dodaj regułę',deleteRuleConfirm:'Na pewno usunąć regułę?',protocol:'Protokół',confirmDeleteRule:'Usunąć tę regułę zapory?',addFirewallRule:'Dodaj regułę zapory',aliases:'Aliasy',noAliases:'Brak skonfigurowanych aliasów',noIpsets:'Brak skonfigurowanych zestawów IP',firewallLog:'Log zapory',noLogEntries:'Brak wpisów logu',fwEnable:'Zapora',fwDhcp:'DHCP',fwNdp:'NDP',fwRadv:'Router Adv.',fwMacFilter:'Filtr MAC',fwLogLevel:'Poziom logowania wejściowego',fwLogLevelOut:'Poziom logowania wyjściowego',fwAddAlias:'Dodaj alias',fwAddIpset:'Dodaj zestaw IP',ceph:'Ceph',cephStatus:'Stan Ceph',cephHealth:'Stan klastra',cephCapacity:'Pojemność',cephOsds:'OSD',cephMons:'Monitory',cephPools:'Pule',cephMds:'Serwery metadanych',cephFs:'CephFS',cephCreatePool:'Utwórz pulę',replMode:'Tryb transferu',replModeFull:'Pełny (klonowanie + migracja przy każdym uruchomieniu)',replModeIncremental:'Przyrostowy (różnice RBD/ZFS — lepsze dla dużych VM)',replModeHint:'Tryb przyrostowy przesyła tylko zmienione bloki od ostatniej migawki, gdy dyski VM używają Ceph RBD lub ZFS po obu stronach. W przeciwnym razie używany jest tryb pełny.',cephHealthGate:'Blokada według stanu Ceph',cephGateOff:'Wyłączona — ostrzegaj i kontynuuj',cephGateDegraded:'Wstrzymaj, jeśli dane są zagrożone (zalecane dla HCI)',cephGateStrict:'Ścisła — wstrzymaj przy każdym stanie Ceph innym niż OK',cephHealthGateHint:'W klastrze Ceph/HCI wstrzymuj aktualizację kroczącą do czasu odzyskania pełnego stanu Ceph zamiast przechodzić do kolejnego węzła. Tryb „wstrzymaj, jeśli dane są zagrożone” toleruje łagodne ostrzeżenia, takie jak clock skew lub backfill, i zatrzymuje aktualizację tylko przy rzeczywistej utracie redundancji.',cephHealthGateNote:'Po wstrzymaniu aktualizacja zatrzymuje się z podaniem przyczyny. Napraw Ceph, a następnie wybierz Kontynuuj lub Anuluj. Brak wpływu na klastry bez Ceph.',cephCreateOsd:'Utwórz OSD',cephOsdDisk:'Dysk',cephSelectDisk:'Wybierz dysk…',cephOsdDiskHint:'Dyski używane są wyłączone. Utworzenie OSD wymazuje dysk.',cephOsdCreated:'OSD utworzony',cephMgrs:'Menedżery',cephNoMgr:'Brak menedżerów — klaster Ceph wymaga co najmniej jednego aktywnego menedżera',cephMgrDeleted:'Menedżer usunięty',cephCreateMgr:'Utwórz menedżera',cephMgrCreated:'Menedżer utworzony',cephCreateMds:'Utwórz MDS',cephCreateMdsHint:'CephFS wymaga co najmniej jednego działającego MDS.',cephMdsCreated:'MDS utworzony',cephCreateFs:'Utwórz CephFS',cephFsAddStorage:'Dodaj jako magazyn PVE',cephCreateFsHint:'Tworzy pule _data i _metadata. Wymaga działającego MDS.',cephFsNameRequired:'Wprowadź nazwę',cephFsCreated:'CephFS utworzony',cephCreateMon:'Utwórz monitor',cephNotInstalled:'Ceph nie jest zainstalowany',cephNotInstalledDesc:'Na tym klastrze Proxmox nie skonfigurowano klastra Ceph.',cephNotInstalledOnNode:'Ceph nie jest skonfigurowany na tym węźle.',cephInstallHint:'Aby skonfigurować Ceph, otwórz węzeł i użyj zakładki Ceph do inicjalizacji.',cephInit:'Zainicjuj Ceph',cephMirroring:'Mirroring',cephMirrorMode:'Tryb mirroringu',cephMirrorModePool:'Pula (wszystkie obrazy)',cephMirrorModeImage:'Obraz (pojedynczy)',cephMirrorPeers:'Peery',cephMirrorEnable:'Włącz mirroring',cephMirrorDisable:'Wyłącz mirroring',cephMirrorPromote:'Promuj',cephMirrorDemote:'Degraduj',cephMirrorResync:'Synchronizuj ponownie',cephMirrorSchedules:'Harmonogramy migawek',cephMirrorHealth:'Stan mirroringu',cephMirrorSyncStatus:'Stan synchronizacji',cephMirrorImages:'Obrazy',cephMirrorAddPeer:'Dodaj peer',cephMirrorRemovePeer:'Usuń peer',cephMirrorNoPoolsEnabled:'Żadna pula nie ma włączonego mirroringu',cephMirrorSshRequired:'RBD Mirroring wymaga dostępu SSH do klastra',cephMirrorForcePromote:'Wymuś promocję (może spowodować utratę danych!)',cephMirrorAddSchedule:'Dodaj harmonogram',cephMirrorInterval:'Interwał',cephMirrorSiteName:'Nazwa lokalizacji',cephMirrorBackToOverview:'Wróć do przeglądu',balancingConfig:'Konfiguracja balansowania',migrationThreshold:'Próg migracji',migrationThresholdDesc:'Różnica wyniku powodująca uruchomienie migracji',migrationTolerance:'Tolerancja migracji',migrationToleranceDesc:'Martwa strefa zapobiegająca przerzucaniu VM między węzłami (0 = wyłączone)',checkInterval:'Interwał sprawdzania',checkIntervalDesc:'Odstęp między kontrolami balansowania',autoMigrate:'Automatyczna migracja',autoMigrateDesc:'Automatyczna migracja VM przy wykryciu nierównowagi',balanceNow:'Balansuj teraz',balanceNowStarted:'Uruchomiono kontrolę balansowania',dryRun:'Tryb testowy',dryRunDesc:'Tylko symuluj migracje, nie wykonuj ich',balancingEnabled:'Balansowanie włączone',optionsTitle:'Opcje',intervalBetweenChecks:'Odstęp między kontrolami balansowania',haMonitoring:'Monitoring HA',haMonitorActive:'Monitor HA aktywny',fallbackHosts:'Hosty zapasowe',fallbackHostsAuto:'Hosty zapasowe (wykryte automatycznie)',proxmoxHa:'HA Proxmox',proxmoxNativeHa:'Natywne HA Proxmox',fencing:'Fencing',haInactive:'HA nieaktywne',haActivate:'Aktywuj HA',enableNativeHa:'Włącz natywne HA Proxmox dla tej VM',haMonitorDesc:'Monitoruje węzły co 10 sekund. W przypadku awarii VM są automatycznie uruchamiane ponownie na innych węzłach.',nativeHaDesc:'Natywne HA Proxmox działa bezpośrednio w klastrze i zapewnia Fencing oraz Quorum.',vmsWithHa:'VM/CT z HA Proxmox',noVmsWithHa:'Brak VM skonfigurowanych z HA Proxmox. Włącz HA dla wybranych VM w widoku szczegółowym.',removeFromHa:'Usuń z HA',deleteCannotBeUndone:'Tej operacji nie można cofnąć!',purgeDisks:'Usuń trwale — skasuj wszystkie dyski',destroyUnreferencedDisks:'Usuń nieużywane dyski',enterToConfirm:'Wpisz, aby potwierdzić',deletePermanently:'Usuń trwale',updateNode:'Aktualizuj węzeł',updateCommand:'Zostanie uruchomione apt update && apt dist-upgrade.',rebootAfterUpdate:'Uruchom ponownie po aktualizacji',recommendedForKernel:'Zalecane przy aktualizacji jądra',started:'Rozpoczęto',restarted:'uruchomiono ponownie',created:'utworzono',deleted:'usunięto',cloned:'sklonowano',migrated:'zmigrowano',primary:'Główny',fallbacks:'Zapasowe',taskMigrate:'Migracja',taskStart:'Uruchomienie',taskStop:'Zatrzymanie',taskReboot:'Restart',taskCreate:'Tworzenie',taskDelete:'Usuwanie',taskClone:'Klonowanie',taskSnapshot:'Migawka',taskDiskMove:'Przenoszenie dysku',taskDiskResize:'Zmiana rozmiaru dysku',taskFailed:'Zadanie nie powiodło się',taskCancelled:'Zadanie anulowane',taskCancelFailed:'Nie udało się anulować zadania',cancelTask:'Anuluj zadanie',allTasks:'Wszystkie zadania',runningTasks:'Uruchomione zadania',failedTasks:'Nieudane zadania',todaysTasks:'Dzisiejsze zadania',tasksShown:'wyświetlonych zadań',taskOutput:'Wynik zadania',errorLoadingLog:'Błąd ładowania logu',duration:'Czas trwania',clearCompleted:'Wyczyść zakończone',endTime:'Czas zakończenia',output:'Wynik',noOutput:'Brak wyniku',noTasks:'Brak zadań',completed:'zakończone',success:'Sukces',error:'Błąd',unsavedChanges:'Niezapisane zmiany',discardUnappliedChanges:'Odrzucić wszystkie niezastosowane zmiany?',configSaved:'Konfiguracja zapisana',operationFailed:'Operacja nie powiodła się',confirmAction:'Potwierdź akcję',lastCheck:'Ostatnie sprawdzenie',clusterInfo:'Informacje o klastrze',primaryHost:'Główny host',connectedTo:'Połączono z',fallback:'Zapasowy',noRestrictions:'Brak ograniczeń',general:'Ogólne',advanced:'Zaawansowane',os:'System operacyjny',template:'Szablon',help:'Pomoc',lastMigrations:'Ostatnie migracje',noMigrations:'Brak migracji',keyboardLayout:'Układ klawiatury',httpProxy:'Proxy HTTP',consoleViewer:'Przeglądarka konsoli',emailFrom:'Adres nadawcy',macPrefix:'Prefiks MAC',migrationSettings:'Ustawienia migracji',replicationSettings:'Ustawienia replikacji',haSettings:'Ustawienia HA',haSettingsSaved:'Ustawienia HA zapisane',haActive:'HA aktywne',clusterType:'Typ klastra',quorum:'Quorum',quorumYes:'Tak',quorumNo:'Nie',healthy:'Prawidłowy',degraded:'Obniżony',splitBrainPrevention:'Zapobieganie split-brain',splitBrainInfo:'W klastrze 2-węzłowym może wystąpić split-brain, gdy oba węzły uznają drugi za niedostępny. Hosty quorum są pingowane, aby określić, który węzeł może działać.',splitBrainTip:'Użyj adresów IP osiągalnych z obu węzłów (brama, serwery DNS lub zewnętrzne IP). W sieciach bez dostępu do Internetu użyj routera/bramy jako hosta quorum.',quorumSettings:'Ustawienia quorum',enableQuorumCheck:'Włącz kontrolę quorum',quorumCheckDesc:'Zapobiega split-brain przez sprawdzanie osiągalności zewnętrznych hostów',gatewayIp:'Adres IP bramy',gatewayIpHint:'Router/brama dla sieci lokalnych',requiredVotes:'Wymagane głosy',additionalQuorumHosts:'Dodatkowe hosty quorum (oddzielone przecinkami)',quorumHostsHint:'Dla sieci izolowanych: własne serwery DNS, routery lub inne stabilne hosty w sieci',selfFencingRecovery:'Self-fencing i odzyskiwanie',selfFencing:'Self-fencing',selfFencingDesc:'Węzeł bez quorum nie uruchomi VM',networkCheck:'Kontrola sieci',networkCheckDesc:'Sprawdza łączność przed rozpoczęciem odzyskiwania',recoveryDelay:'Opóźnienie odzyskiwania (sekundy)',recoveryDelayHint:'Czas oczekiwania przed uruchomieniem VM na innym węźle',failureThreshold:'Próg awarii',failureThresholdHint:'Liczba nieudanych kontroli, po której węzeł uznawany jest za offline',hardwareWatchdog:'Sprzętowy watchdog',watchdogWarning:'UWAGA: Węzeł automatycznie uruchomi się ponownie po utracie quorum!',fencingExplanation:'Jak zapobiegamy split-brain',fencingStep1Title:'1. Wykrycie utraty quorum',fencingStep1Desc:'Izolowany węzeł traci quorum (< 50% głosów), a /etc/pve przechodzi w tryb TYLKO DO ODCZYTU. pve-ha-lrm automatycznie zatrzymuje wszystkie VM objęte HA.',fencingStep2Title:'2. Self-fencing (samoizolacja)',fencingStep2Desc:'Węzeł rozpoznaje, że jest odizolowany, i odmawia wykonywania operacji na VM. Zapobiega to równoczesnemu uruchomieniu dwóch instancji tej samej VM.',fencingStep3Title:'3. Watchdog (timer sprzętowy)',fencingStep3Desc:'Jeśli jest włączony, timer sprzętowy lub programowy jest regularnie resetowany. Po utracie quorum resetowanie ustaje i po około 60 s następuje twardy restart węzła.',fencingStep4Title:'4. Zewnętrzny fencing (STONITH)',fencingStep4Desc:'Opcjonalny sprzęt IPMI/iLO/iDRAC lub PDU wyłącza węzeł przed uruchomieniem VM na innym węźle.',fencingWarning:'WAŻNE: Brak mechanizmu fencing może doprowadzić do uszkodzenia danych przy split-brain!',fencingRecommendation:'Zalecenia dla klastrów 2-węzłowych:',fencingRecList:'• Skonfiguruj hosty quorum (brama, serwer DNS)\n• Włącz sprzętowy watchdog, jeśli jest dostępny\n• Ustaw opóźnienie odzyskiwania na co najmniej 30 sekund',enableHA:'Włącz HA',disableHA:'Wyłącz HA',changesAfterRestart:'Zmiany aktywne po restarcie',important2NodeCluster:'ważne dla klastrów 2-węzłowych!',twoNodeMode:'Tryb klastra 2-węzłowego',twoNodeWarning:'Ograniczenia klastra 2-węzłowego',twoNodeExplanation:'W klastrze Proxmox z 2 węzłami awaria jednego powoduje utratę quorum przez drugi, przez co nie może on uruchamiać VM. Ten tryb pozwala PegaProx automatycznie wymusić quorum na ocalałym węźle.',enableTwoNodeMode:'Włącz tryb klastra 2-węzłowego',enableTwoNodeModeDesc:'Automatycznie wymuszaj quorum po awarii jednego węzła',twoNodeReady:'Gotowy do HA w klastrze 2-węzłowym',twoNodeCredentialsInfo:'PegaProx użyje poświadczeń klastra, połączy się przez SSH z ocalałym węzłem i uruchomi „pvecm expected 1”, aby przywrócić quorum.',twoNodeTip:'Wskazówka',twoNodeTipText:'Dla najlepszych rezultatów zainstaluj „sshpass” na serwerze PegaProx: apt install sshpass',splitBrainRisk:'Ryzyko split-brain bez fencing!',splitBrainRiskDesc:'Jeśli oba węzły działają, ale komunikacja między nimi zostanie przerwana, wymuszenie quorum może spowodować uruchomienie tej samej VM na OBU węzłach = uszkodzenie danych!',safeSolutions:'Bezpieczne rozwiązania dla klastrów 2-węzłowych:',qdeviceDesc:'Dodaj trzeci głos (wystarczy Raspberry Pi)',ipmiDesc:'Wyłącz drugi węzeł przed rozpoczęciem odzyskiwania',pduDesc:'Użyj zarządzalnej listwy PDU do zdalnego odcięcia zasilania',quorumHostsDesc2:'Zewnętrzne adresy IP służące do określenia, który węzeł jest odizolowany',safetyChecklist:'Lista kontrolna bezpieczeństwa',quorumHostsConfigured:'Hosty quorum skonfigurowane',recoveryDelayCheck:'Opóźnienie odzyskiwania ≥ 30 sekund',selfFencingEnabled:'Self-fencing włączony',storageHeartbeat:'Ochrona split-brain oparta na magazynie',recommendedFor2Node:'Zalecane dla klastrów 2-węzłowych!',storageHeartbeatDesc:'Wykorzystuje współdzielony magazyn (NFS/Ceph/iSCSI) do koordynacji między węzłami. Jeśli węzeł przestaje zapisywać heartbeat, uznawany jest za niedostępny. Mechanizm „poison pill” nakazuje odizolowanemu węzłowi zatrzymanie VM przed rozpoczęciem odzyskiwania.',enableStorageHeartbeat:'Włącz heartbeat oparty na magazynie',enableStorageHeartbeatDesc:'Zapisuj heartbeat na współdzielonym magazynie w celu weryfikacji stanu węzłów',storageHeartbeatPath:'Ścieżka współdzielonego magazynu',storageHeartbeatPathHint:'Ścieżka do magazynu dostępnego ze wszystkich węzłów (np. Ceph, NFS, iSCSI)',heartbeatTimeout:'Limit czasu heartbeat (s)',heartbeatTimeoutHint:'Węzeł uznawany jest za niedostępny po braku heartbeat przez ten czas',poisonPillEnabled:'Włącz mechanizm Poison Pill',poisonPillDesc:'Przekaż odizolowanemu węzłowi przez magazyn polecenie zatrzymania VM przed odzyskiwaniem',strictFencing:'Ścisły tryb fencing',strictFencingDesc:'PRZERWIJ odzyskiwanie, jeśli nie można potwierdzić awarii węzła (bezpieczniej, ale możliwe fałszywe alarmy)',step1Heartbeat:'PegaProx zapisuje heartbeat na współdzielonym magazynie co 5 sekund',step2Check:'Po awarii węzła heartbeat magazynu jest sprawdzany w celu potwierdzenia jego niedostępności',step3Poison:'Zapisywany jest plik „poison pill”, który nakazuje drugiemu węzłowi zatrzymanie VM',step4Recovery:'Odzyskiwanie rozpoczyna się dopiero po potwierdzeniu lub przekroczeniu limitu czasu',nodeAgentRequired:'Wymagany agent węzła!',nodeAgentRequiredDesc:'Aby ta funkcja działała, należy zainstalować PegaProx Node Agent na każdym węźle Proxmox. Agent zapisuje heartbeat i reaguje na poison pill.',splitBrainProtection:'Ochrona przed split-brain',fullyAutomatic:'100% AUTOMATYCZNE',autoProtectionExplain:'PegaProx automatycznie wykrywa współdzielony magazyn, instaluje agentów węzłów i chroni przed split-brain — bez dodatkowej konfiguracji.',sharedStoragesFound:'Znalezione magazyny współdzielone:',inUse:'W UŻYCIU',fullProtectionActive:'Pełna ochrona dla dwóch sieci aktywna',nodeAgentsInstalled:'Agenci węzłów zainstalowani automatycznie',heartbeatsViaStorage:'Heartbeat przez sieć magazynową',sshOnlyMode:'Tryb ochrony tylko przez SSH',noSharedStorageFound:'Nie znaleziono współdzielonego magazynu (NFS/CephFS). Ochrona działa przez weryfikację SSH.',notSafeForDualNetwork:'Niebezpieczne dla konfiguracji z dwiema sieciami (oddzielna sieć serwerowa i magazynowa)',blockStorageOnly:'Znaleziono tylko magazyn blokowy',blockStorageExplain:'Magazyn blokowy (LVM, iSCSI, RBD) nie może przechowywać plików heartbeat. Aby uzyskać pełną ochronę przy dwóch sieciach, dodaj mały udział NFS.',sshOnlyActive:'Aktywna ochrona tylko przez SSH',sshOnlyRisk:'Działa w pojedynczej sieci. Przy dwóch sieciach (oddzielna serwerowa/iSCSI) dodaj mały udział NFS (100 MB wystarczy).',clickToSelect:'Kliknij, aby wybrać',selected:'Wybrano',currentlyActive:'Aktualnie aktywne',blockStoragesIgnored:'Magazyny blokowe (nieobsługiwane)',selfFenceProtection:'Ochrona Self-Fence',advancedSettings:'Ustawienia zaawansowane',selfFenceExplain:'Każdy węzeł sprawdza, czy może osiągnąć menedżera LUB inny węzeł. Jeśli nikogo nie osiąga → jest odizolowany → zatrzymuje własne VM.',nodeCanReachSomeone:'Węzeł może osiągnąć inny element',everythingOk:'Wszystko w porządku — brak działania',nodeCanReachNoone:'Węzeł nie może osiągnąć NIKOGO',nodeStopsOwnVms:'Izolacja! Zatrzymuje własne VM',selfFenceActive:'Ochrona Self-Fence aktywna',agentInstalledOnNodes:'Agent zainstalowany na',selfFenceNotInstalled:'Agent Self-Fence nie jest zainstalowany',selfFenceInstallHint:'Kliknij przycisk, aby zainstalować agenta na wszystkich węzłach. Agent sprawdza osiągalność co 5 sekund.',installSelfFenceAgent:'Zainstaluj agenta Self-Fence',selfFenceInstalling:'Instalowanie agenta...',noSharedStorageNeeded:'Współdzielony magazyn nie jest wymagany',worksWithLvmIscsi:'Działa z LVM, iSCSI i innymi',nodeDecidesItself:'Węzeł decyduje samodzielnie = szybka reakcja',uninstall:'Odinstaluj',confirmUninstallAgent:'Na pewno odinstalować agenta Self-Fence ze wszystkich węzłów?',selfFenceUninstalling:'Odinstalowywanie agenta...',pegaproxVmRecovery:'Automatyczne odzyskiwanie VM PegaProx',pegaproxVmRecoveryDesc:'Wybierz VM, na której działa PegaProx. Jeśli menedżer jest nieosiągalny, ale inne węzły działają, agent automatycznie uruchomi ponownie tę VM.',pegaproxVmRecoveryActive:'Automatyczne odzyskiwanie aktywne — agent uruchomi ponownie tę VM, jeśli menedżer przestanie działać.',noVmSelected:'-- Nie wybrano VM --',enable2NodeMode:'Włącz tryb klastra 2-węzłowego',twoNodeModeDesc:'Automatycznie wymuszaj quorum po awarii jednego węzła',autoSplitBrainProtection:'Automatyczna ochrona przed split-brain',noSetupRequired:'BRAK WYMAGANEJ KONFIGURACJI',autoProtectionDesc:'PegaProx automatycznie zapobiega split-brain, wykorzystując istniejące poświadczenia SSH.',sshSucceeds:'SSH działa:',networkSplitDetected:'Wykryto podział sieci! Najpierw zatrzymano VM na odizolowanym węźle',sshFails:'SSH nie działa:',nodeConfirmedDead:'Potwierdzono awarię węzła — można bezpiecznie rozpocząć failover',advancedOptions:'Opcje zaawansowane',dualNetworkWarning:'Konfiguracja z dwiema sieciami? (serwer + iSCSI)',dualNetworkProblem:'Jeśli sieć serwerowa przestanie działać, ale iSCSI pozostanie aktywne, SSH nie działa, lecz węzeł nadal zapisuje do magazynu = USZKODZENIE DANYCH!',enableDualNetworkProtection:'Włącz ochronę opartą na magazynie',dualNetworkProtectionDesc:'Wymaga, aby serwer PegaProx mógł zamontować współdzielony magazyn (NFS/CephFS)',sharedStoragePath:'Ścieżka współdzielonego magazynu',agentAutoInstall:'Agent węzła zostanie automatycznie zainstalowany przez SSH',devicePassthrough:'Przekazywanie urządzeń',pciDevices:'Urządzenia PCI',usbDevices:'Urządzenia USB',serialPorts:'Porty szeregowe',addPci:'Dodaj PCI',addUsb:'Dodaj USB',addSerial:'Dodaj port szeregowy',noPciDevices:'Brak urządzeń PCI',noUsbDevices:'Brak urządzeń USB',noSerialPorts:'Brak portów szeregowych',availableDevices:'Dostępne urządzenia',selectDevice:'Wybierz urządzenie',pcie:'PCIe (zalecane)',romBar:'ROM-Bar',usb3:'USB 3.0',serialType:'Typ',socketConsole:'Socket (konsola Unix Socket)',deviceAdded:'Urządzenie dodane',deviceRemoved:'Urządzenie usunięte',iommuGroup:'Grupa IOMMU',vendor:'Producent',adding:'Dodawanie...',bandwidthLimits:'Limity przepustowości',maxWorkers:'Maks. liczba workerów',nextVmid:'Następny VMID',userTagAccess:'Dostęp użytkownika do tagów',registeredTags:'Zarejestrowane tagi',subscriptionStatus:'Stan subskrypcji',licensed:'Licencjonowany',notLicensed:'Brak licencji',product:'Produkt',licenseKey:'Klucz subskrypcji',validUntil:'Ważna do',supportLevel:'Poziom wsparcia',noActiveSubscription:'Brak aktywnej subskrypcji',noSubscriptionDesc:'Ten węzeł nie ma ważnej subskrypcji Proxmox VE. Bez subskrypcji nie otrzymasz aktualizacji z repozytorium Enterprise ani wsparcia technicznego.',enterLicenseKey:'Wprowadź klucz subskrypcji',subscriptionKey:'Klucz subskrypcji',pleaseEnterLicenseKey:'Wprowadź klucz subskrypcji',licenseActivated:'Subskrypcja została aktywowana!',activationFailed:'Aktywacja nie powiodła się',activateLicense:'Aktywuj subskrypcję',refreshStatus:'Odśwież status',subscriptionBenefits:'Subskrypcja Proxmox VE zapewnia',subscriptionBenefit1:'Dostęp do repozytorium Enterprise ze stabilnymi aktualizacjami',subscriptionBenefit2:'Wsparcie techniczne Proxmox',subscriptionBenefit3:'Brak ostrzeżenia o braku subskrypcji przy logowaniu',maintenanceModeTitle:'Włącz tryb konserwacji',maintenanceWarning:'Ostrzeżenie: wszystkie działające VM i kontenery na tym węźle zostaną automatycznie zmigrowane na inne węzły.',maintenanceDesc:'Węzeł zostanie wykluczony z balansowania obciążenia do czasu wyłączenia trybu konserwacji.',startMaintenance:'Rozpocznij konserwację',removeNodeFromCluster:'Usuń węzeł z klastra',moveNodeToCluster:'Przenieś węzeł do innego klastra',removeNodeWarning:'Węzeł zostanie trwale usunięty z klastra. Najpierw należy zmigrować wszystkie VM.',removeNodeConfirm:'Usuń węzeł',removeNodeTypeName:'Wpisz nazwę węzła, aby potwierdzić',ready:'Gotowy',completedWithErrors:'Zakończono (z błędami)',evacuating:'Ewakuowanie...',failed:'Niepowodzenie',starting:'Uruchamianie...',progress:'Postęp',migrating:'Migracja',vmsCouldNotMigrate:'Nie udało się zmigrować VM',migrationIncomplete:'Migracja niepełna',someVmsOnLocalStorage:'Nie udało się zmigrować części VM, prawdopodobnie z powodu magazynu lokalnego. Możesz:',proceedWithCaution:'Kontynuuj mimo to (VM zostaną zatrzymane podczas restartu)',exitAndMigrateManually:'Wyjdź z trybu konserwacji i zmigruj ręcznie',forceMaintenanceWarning:'⚠️ OSTRZEŻENIE: Kontynuowanie spowoduje zatrzymanie pozostałych VM na tym węźle podczas restartu. Kontynuować?',proceedAnyway:'Kontynuuj mimo to',failedToMigrate:'Migracja nie powiodła się',vmsWillBeStopped:'VM zostaną zatrzymane podczas restartu',updating:'Aktualizowanie',nodeConfiguration:'Konfiguracja węzła',rebootNodeWarning:'Węzeł zostanie uruchomiony ponownie. Ponieważ działa w trybie konserwacji, VM nie zostaną naruszone.',shutdownNodeWarning:'Węzeł zostanie wyłączony. Trzeba będzie uruchomić go ręcznie!',rebootNow:'Uruchom ponownie teraz',shutdownNow:'Wyłącz teraz',updateAndReboot:'Aktualizuj i uruchom ponownie',sudoNotAvailable:'sudo nie jest dostępne na tym węźle',nodeActionFailed:'Operacja na węźle nie powiodła się',startingUpdateFor:'Rozpoczynanie aktualizacji dla',updateStartedFor:'Aktualizacja rozpoczęta dla',errorStartingUpdate:'Błąd uruchamiania aktualizacji',rebootInitiated:'restart zainicjowany',shutdownInitiated:'wyłączanie zainicjowane',updateRunning:'Aktualizacja trwa',updateFailed:'Aktualizacja nie powiodła się',failedNodes:'Węzły z błędami',maintenanceModeWarning:'Niektóre węzły mogą nadal działać w trybie konserwacji. Sprawdź zakładkę Węzły i w razie potrzeby wyłącz tryb konserwacji ręcznie.',viewLogs:'Pokaż logi',updateCompleted:'Aktualizacja zakończona!',packagesUpdated:'pakietów zaktualizowano.',waitingForNode:'Oczekiwanie na węzeł...',done:'Gotowe',cancelAndExitMaintenance:'Anuluj i wyjdź z trybu konserwacji',sshSettings:'Ustawienia SSH',sshSettingsDesc:'Wymagane do aktualizacji, restartu i wyłączania węzłów. Jeśli pozostawiono puste, zostanie użyty użytkownik i hasło Proxmox.',sshKeyOptional:'Klucz SSH (opcjonalnie)',sshKeyExplanation:'Funkcje SSH (automatyczna konfiguracja SMBIOS, własne skrypty, HA 2-węzłowe) automatycznie używają poświadczeń logowania. Dodaj tutaj klucz tylko wtedy, gdy uwierzytelnianie hasłem jest wyłączone na węzłach.',sshUser:'Użytkownik SSH',sshPort:'Port SSH',sshPrivateKey:'Prywatny klucz SSH',sshKeyHint:'Wklej tutaj prywatny klucz (id_rsa, id_ed25519 itd.)',sshKeyRequired:'Wymagany klucz SSH. Skonfiguruj go w ustawieniach klastra.',balanceContainers:'Balansuj kontenery',balanceLocalDisks:'Balansuj VM z dyskami lokalnymi',balanceLocalDisksDesc:'VM i kontenery z dyskami lokalnymi będą migrowane (VM na żywo z --with-local-disks, LXC z --restart). Dane dysków są kopiowane na węzeł docelowy.',localDiskBalanceWarning:'Migracja VM i kontenerów z dyskami lokalnymi kopiuje wszystkie dane dysków na węzeł docelowy. Może to potrwać długo i znacznie zwiększyć obciążenie sieci.',containerBalanceWarning:'Kontenerów NIE można migrować na żywo! Migracja zatrzyma i ponownie uruchomi kontener, powodując przestój.',predictiveBalancing:'Predykcyjne balansowanie obciążenia',predictiveBalancingDesc:'Migruje VM zanim węzły zostaną przeciążone, na podstawie analizy trendu (w stylu DRS).',predictiveThreshold:'Próg predykcyjny',predictiveThresholdDesc:'Wynik, powyżej którego węzeł uznawany jest za zmierzający w stronę przeciążenia',scoreWeights:'Wagi wyniku',scoreWeightsDesc:'Określ wpływ CPU, RAM i I/O dysków na wynik balansowania. Domyślnie: CPU=1.0, RAM=1.0, IO=0.',cpuBaseline:'Bazowy poziom CPU (zgodność CPU)',cpuBaselineDesc:'Ustaw bazowy poziom zgodności CPU dla migracji na żywo. VM z wyższym typem CPU nie będą migrowane automatycznie. Zapewnia zgodność migracji na żywo.',cpuBaselineNone:'Brak (bez ograniczeń)',cpuBaselineActive:'Bazowy poziom aktywny: VM z typem CPU wyższym od bazowego nie będą automatycznie migrowane. Dla VM używających „cpu: host” sprawdzana jest zgodność producenta.',clusterSettings:'Ustawienia klastra',clusterSettingsDesc:'Skonfiguruj ustawienia balansowania dla każdego klastra.',clusterSettingsSaved:'Ustawienia klastra zapisane',collapse:'Zwiń',threshold:'Próg',interval:'Interwał',saveFailed:'Zapis nie powiódł się',invalidDnsName:'Nieprawidłowa nazwa: musi zaczynać się literą, może zawierać tylko litery, cyfry i myślniki, maksymalnie 63 znaki',addTag:'Dodaj tag...',invalidTagFormat:'Nieprawidłowy format. Tagi muszą zawierać małe litery i cyfry; dozwolone są również myślniki, kropki i podkreślenia.',deleteError:'Błąd usuwania',activationError:'Błąd aktywacji',deactivationError:'Błąd dezaktywacji',bulkMigrationNote:'Migracje będą wykonywane kolejno. Może to potrwać pewien czas.',deleteFailed:'Usuwanie nie powiodło się',uploadFailed:'Przesyłanie nie powiodło się',uploadFailedNetwork:'Przesyłanie nie powiodło się — błąd sieci',createFailed:'Tworzenie nie powiodło się',failedToSaveSettings:'Nie udało się zapisać ustawień',failedToUnlockIp:'Nie udało się odblokować adresu IP',failedToUnlockAllIps:'Nie udało się odblokować wszystkich adresów IP',snapshotFailed:'Tworzenie migawki nie powiodło się',rollbackFailed:'Przywracanie migawki nie powiodło się',startFailed:'Uruchomienie nie powiodło się',securitySettings:'Ustawienia bezpieczeństwa',securityDashboard:'Panel bezpieczeństwa',issuesFound:'wykrytych problemów',allSecure:'Wszystkie systemy są bezpieczne',bannedIps:'Zablokowane adresy IP',securityIssues:'Problemy bezpieczeństwa',recommendations:'Rekomendacje',enableClusterFirewall:'Włącz zaporę dla całego klastra',installSecurityUpdates:'Zainstaluj oczekujące aktualizacje bezpieczeństwa',enable2fa:'Włącz uwierzytelnianie dwuskładnikowe',disableRootLogin:'Wyłącz logowanie root przez SSH',clusterFirewall:'Zapora klastra',nodeFirewalls:'Zapory węzłów',noSecurityUpdates:'Brak oczekujących aktualizacji bezpieczeństwa',systemUpToDate:'Wszystkie systemy są aktualne',sshConfiguration:'Konfiguracja SSH dla każdego węzła',activeJails:'Aktywne jail-e',totalBanned:'Łącznie zablokowanych',notInstalled:'Niezainstalowane',refreshSecurityAudit:'Odśwież audyt bezpieczeństwa',analyzingSecurity:'Analizowanie bezpieczeństwa...',bruteForceProtection:'Ochrona przed brute force',bruteForceProtectionDesc:'Skonfiguruj limity prób logowania i czas blokady, aby blokować nieautoryzowane próby dostępu',loginProtection:'Ochrona logowania',passwordPolicy:'Polityka haseł',minPasswordLength:'Minimalna długość',requireUppercase:'Wielkie litery',requireLowercase:'Małe litery',requireNumbers:'Cyfry',requireSpecial:'Znaki specjalne',sessionTimeout:'Limit czasu sesji',hours:'godziny',securityRecommendations:'Rekomendacje bezpieczeństwa',securityRecommendationsDesc:'Sugestie dotyczące poprawy bezpieczeństwa PegaProx',httpsEnabled:'Połączenie jest szyfrowane',httpsDisabled:'Rozważ włączenie HTTPS dla bezpiecznych połączeń',currentlySetTo:'Aktualnie ustawiono',adminAccounts:'Konta administratorów',adminAccountsActive:'aktywnych kont administratorów',defaultCredentials:'Domyślne poświadczenia',noDefaultPassword:'Nie wykryto domyślnych haseł',defaultPasswordWarning:'Domyślne hasło administratora jest nadal używane!',lockAfter:'Zablokuj po',failedAttempts:'nieudanych próbach',auditLogging:'Logowanie audytowe',auditLoggingEnabled:'Wszystkie działania są rejestrowane na potrzeby bezpieczeństwa',secure:'Bezpieczne',considerLowering:'Rozważ zmniejszenie',reviewRecommended:'Zalecany przegląd',actionRequired:'Wymagane działanie',maxLoginAttempts:'Maks. liczba prób logowania',maxLoginAttemptsDesc:'Liczba nieudanych prób przed zablokowaniem',lockoutTime:'Czas blokady',attemptWindow:'Okno prób',lockedIps:'Zablokowane adresy IP',noLockedIps:'Brak zablokowanych adresów IP',unlockAll:'Odblokuj wszystkie',unlockAllConfirm:'Na pewno odblokować wszystkie adresy IP?',allIpsUnlocked:'Wszystkie adresy IP odblokowane',unlock:'Odblokuj',unlocked:'odblokowano',attempts:'próby',remaining:'pozostało',about:'O programie',developmentTeam:'Zespół programistyczny',creditsAcknowledgments:'Autorzy i podziękowania',links:'Linki',updateManager:'Menedżer aktualizacji',updateManagerDesc:'Sprawdź i zainstaluj aktualizacje na wszystkich węzłach klastra',checkForUpdates:'Sprawdź aktualizacje',checkingUpdates:'Sprawdzanie aktualizacji...',updatesAvailable:'Dostępne aktualizacje',noUpdatesAvailable:'Brak dostępnych aktualizacji',packagesAvailable:'Dostępne pakiety',lastChecked:'Ostatnio sprawdzono',neverChecked:'Nigdy nie sprawdzano',startRollingUpdate:'Rozpocznij rolling update',updateThisNode:'Aktualizuj ten węzeł',package:'Pakiet',currentVersion:'Aktualna wersja',newVersion:'Nowa',noUpdatesForNode:'Ten węzeł jest aktualny',updateNodeDesc:'Na węźle zostanie uruchomione apt update && apt dist-upgrade.',kernelUpdateDetected:'Wykryto aktualizację jądra',rebootRecommended:'Zalecany jest restart w celu zastosowania zmian jądra.',updateStarted:'Aktualizacja rozpoczęta',nodeNotInMaintenance:'Węzeł nie jest w trybie konserwacji.',forceUpdateWarning:'Działające VM na tym węźle mogą zostać zakłócone, jeśli wykonany zostanie restart.',continueAnyway:'Kontynuować mimo to?',rollingUpdateDesc:'Aktualizuje wszystkie węzły kolejno. Każdy węzeł jest przełączany w tryb konserwacji, VM są migrowane, aktualizacje instalowane, a opcjonalnie wykonywany jest restart.',rollingUpdateInProgress:'Rolling update w toku',rollingUpdateCompleted:'Rolling update zakończony',rollingUpdateFailed:'Rolling update nie powiódł się',rollingUpdateCancelled:'Rolling update anulowany',nodesUpdated:'Zaktualizowane węzły',currentlyUpdating:'Aktualnie aktualizowany',waitingForReboot:'Oczekiwanie na restart',nodesCompleted:'Zakończone węzły',nodesRemaining:'Pozostałe węzły',includeReboot:'Restart po aktualizacji',includeRebootHint:'Zalecane przy aktualizacjach jądra',confirmUpdate:'Aktualizacja zostanie pobrana i zainstalowana. Zostanie utworzona kopia zapasowa, a serwer automatycznie uruchomi się ponownie. Kontynuować?',downloadingUpdate:'Pobieranie aktualizacji...',installingUpdate:'Instalowanie aktualizacji...',serverRestarting:'Serwer uruchamia się ponownie...',updateSuccessRestarting:'Aktualizacja zainstalowana! Serwer uruchamia się ponownie...',updateComplete:'Aktualizacja zakończona! Odśwież stronę.',alreadyUpToDate:'System jest już aktualny!',installUpdate:'Zainstaluj aktualizację',updateAvailable:'Dostępna aktualizacja!',newVersionAvailable:'Dostępna nowa wersja!',updateTo:'Aktualizuj do',viewUpdate:'Pokaż aktualizację',later:'Później',whatsNew:'Co nowego',breakingChanges:'Zmiany niekompatybilne',doNotCloseWindow:'Nie zamykaj tego okna...',rollback:'Przywróć',rollbackDesc:'Przywróć poprzednią wersję z kopii zapasowej',viewBackups:'Pokaż kopie zapasowe',selectBackup:'Wybierz kopię zapasową do przywrócenia',noBackupsFound:'Nie znaleziono kopii zapasowych',confirmRollback:'PegaProx zostanie przywrócony z kopii zapasowej, a serwer uruchomi się ponownie. Kontynuować?',restoringBackup:'Przywracanie z kopii zapasowej...',rollbackSuccess:'Przywracanie zakończone pomyślnie! Serwer uruchamia się ponownie...',rollbackWarning:'⚠️ Przywracanie spowoduje restart serwera. Upewnij się, że wszystkie niezapisane zmiany zostały zapisane.',securityStatus:'Stan bezpieczeństwa',dataEncryption:'Szyfrowanie danych',passwordHashing:'Haszowanie haseł',compliance:'Zgodność',complianceStatus:'Stan zgodności',auditLogIntegrity:'Integralność dziennika audytu',encryptionKey:'Klucz szyfrowania',corsConfiguration:'Konfiguracja CORS',verifyIntegrity:'Zweryfikuj integralność',rotateKey:'Zmień klucz',rotating:'Zmiana klucza...',totalEntries:'Łącznie wpisów',verified:'Zweryfikowane',unsigned:'Niepodpisane (stare)',tampered:'Możliwa ingerencja',algorithm:'Algorytm',keySize:'Rozmiar klucza',lastRotation:'Ostatnia rotacja',backups:'Kopie zapasowe',allowedOrigins:'Dozwolone źródła',ipWhitelisting:'Biała lista IP',enableIPWhitelist:'Włącz białą listę IP',ipWhitelistDesc:'Zezwalaj na dostęp tylko z określonych adresów IP',yourIP:'Twój bieżący adres IP',whitelist:'Biała lista',blacklist:'Czarna lista',allowedIPs:'Dozwolone adresy IP',blockedIPs:'Zawsze blokowane',testIP:'Testuj dostęp z IP',supportedFormats:'Obsługiwane formaty',configBackupRestore:'Kopia zapasowa i przywracanie konfiguracji',exportConfig:'Eksportuj konfigurację',importConfig:'Importuj konfigurację',includeUsers:'Uwzględnij konta użytkowników',includeSecrets:'Uwzględnij hasła i dane poufne',includeAuditLog:'Uwzględnij dziennik audytu',canBeLarge:'Może być duży',sensitive:'Dane wrażliwe',downloadBackup:'Pobierz kopię zapasową',exporting:'Eksportowanie...',merge:'Scal',overwrite:'Nadpisz',keepExisting:'Zachowaj istniejące',replaceAll:'Zastąp wszystko',restoreUsers:'Przywróć konta użytkowników',notAdmin:'Z wyłączeniem administratora',validateOnly:'Tylko zweryfikuj, bez wprowadzania zmian',selectBackupFile:'Wybierz plik kopii zapasowej',importing:'Importowanie...',dryRunComplete:'Test zakończony — sprawdź wyniki poniżej',dryRunResults:'Wyniki testu',restoreComplete:'Konfiguracja przywrócona',restoreResults:'Wyniki przywracania',backupVersion:'Wersja kopii zapasowej',backupDate:'Data kopii zapasowej',backupDownloaded:'Zaszyfrowana kopia zapasowa pobrana',backupBy:'Utworzona przez',restored:'Przywrócono',skipped:'Pominięto',secureBackup:'Bezpieczna kopia zapasowa',secureBackupDesc:'Kopie zapasowe są szyfrowane AES-256-GCM. Musisz podać hasło do swojego konta oraz osobne hasło szyfrowania kopii.',securityVerification:'Weryfikacja bezpieczeństwa',exportSecurityDesc:'Aby utworzyć zaszyfrowaną kopię zapasową, potwierdź swoją tożsamość i ustaw hasło kopii.',importSecurityDesc:'Aby przywrócić kopię zapasową, potwierdź swoją tożsamość i podaj hasło kopii.',yourPassword:'Twoje hasło',enterYourPassword:'Wprowadź hasło do swojego konta',backupPassword:'Hasło kopii zapasowej',backupPasswordPlaceholder:'Min. 8 znaków — zapamiętaj je!',confirmBackupPassword:'Potwierdź hasło kopii zapasowej',repeatBackupPassword:'Powtórz hasło kopii zapasowej',backupPasswordMin8:'Hasło kopii zapasowej musi mieć co najmniej 8 znaków',passwordsNoMatch:'Hasła nie są zgodne',backupPasswordRequired:'Hasło kopii zapasowej jest wymagane',rememberBackupPassword:'Zapamiętaj hasło kopii zapasowej! Bez niego nie będzie można jej przywrócić.',restoreFromBackup:'Przywróć z kopii zapasowej',validateBackup:'Zweryfikuj kopię zapasową',backupFile:'Plik kopii zapasowej',backupPasswordUsedWhenCreating:'Hasło użyte podczas tworzenia kopii',autoMigration:'Automatyczna migracja',militaryGradeEncryption:'Szyfrowanie klasy wojskowej',skipNode:'Pomiń węzeł',retryNode:'Ponów dla węzła',cancelRollingUpdate:'Anuluj rolling update',confirmRollingUpdate:'Potwierdź rolling update',rollingUpdateWarning:'Wszystkie węzły zostaną zaktualizowane kolejno. VM będą migrowane automatycznie.',skipUpToDate:'Pomiń aktualne węzły',skipUpToDateHint:'Węzły bez dostępnych aktualizacji zostaną pominięte',evacuationTimeout:'Timeout ewakuacji',evacuationTimeoutHint:'Jak długo czekać na migrację VM przed przekroczeniem limitu czasu',rebootTimeout:'Timeout restartu / powrotu online',rebootTimeoutHint:'Jak długo czekać na powrót węzła online po restarcie. Zwiększ ten czas, jeśli używasz Ceph OSD lub wielu dysków.',allowLocalDisks:'Migruj VM i kontenery z dyskami lokalnymi',allowLocalDisksHint:'Ewakuuj VM i kontenery LXC z lokalnego magazynu, kopiując ich dyski na węzeł docelowy przez sieć klastra. VM migrują na żywo przez --with-local-disks; LXC nie obsługują migracji na żywo i używają pct migrate --restart. Duże dyski wymagają więcej czasu.',allowLocalDisksWarn:'Ewakuacja potrwa znacznie dłużej. Rozważ zwiększenie limitu czasu ewakuacji.',skipEvacuation:'Pomiń ewakuację VM',skipEvacuationHint:'NIEZALECANE — VM pozostają na węźle podczas aktualizacji',skipEvacuationWarning:'⚠️ Ostrzeżenie: VM mogą ulec awarii, jeśli podczas aktualizacji wystąpi problem!',scheduleUpdates:'Harmonogram aktualizacji',enableAutoUpdate:'Włącz automatyczne aktualizacje',autoUpdateDesc:'Automatycznie uruchamiaj rolling update według harmonogramu',updateDay:'Dzień aktualizacji',updateTime:'Czas aktualizacji',serverTimezone:'Strefa czasowa serwera',autoUpdateInfo:'Węzły będą aktualizowane kolejno. VM zostaną automatycznie zmigrowane. Aktualne węzły będą pomijane.',scheduleSaved:'Harmonogram aktualizacji zapisany',scheduledFor:'Zaplanowano na',experimental:'EKSPERYMENTALNE',experimentalWarning:'Używaj ostrożnie — ta funkcja jest nadal eksperymentalna. Najpierw przetestuj ją poza środowiskiem produkcyjnym.',runOnce:'Uruchom jednorazowo',recurring:'Cyklicznie',runOnceInfo:'Aktualizacja zostanie uruchomiona jednorazowo o zaplanowanej porze, a następnie harmonogram zostanie wyłączony.',monday:'Poniedziałek',tuesday:'Wtorek',wednesday:'Środa',thursday:'Czwartek',friday:'Piątek',saturday:'Sobota',sunday:'Niedziela',estimatedTime:'Szacowany czas',minutes:'minuty',updateHistory:'Historia aktualizacji',viewUpdateLog:'Pokaż log aktualizacji',checkingForUpdates:'Sprawdzanie aktualizacji',checkingNodes:'Sprawdzanie dostępnych aktualizacji na węzłach...',connectingToCluster:'Łączenie z klastrem...',processingResults:'Przetwarzanie wyników...',repoInfo:'Zarządzaj repozytoriami APT tego węzła. Włączaj lub wyłączaj repozytoria, aby kontrolować dostępność pakietów.',repoProxmoxNotice:'Uwaga: ze względu na przejście Proxmox na nowy format źródeł wyświetlane informacje mogą być obecnie niedokładne. Trwają prace nad poprawką.',requiresSubscription:'Wymaga subskrypcji',detected:'Wykryto',notConfigured:'Nieskonfigurowane',repoWarning:'Łączenie repozytoriów Enterprise i no-subscription nie jest zalecane. Po zmianie repozytoriów uruchom „apt update”, aby odświeżyć listę pakietów.',noReposFound:'Nie znaleziono repozytoriów',currentNode:'Bieżący węzeł',currentStep:'Bieżący krok',updateLogs:'Logi aktualizacji',cpuCores:'Rdzenie CPU',cpuLimit:'Limit CPU',hardware:'Sprzęt',mountIso:'Zamontuj ISO',noMedia:'Brak nośnika',noIsoEject:'Brak ISO (wysuń)',device:'Urządzenie',cdrom:'CD-ROM',hardDisk:'Dysk twardy',existingCdrom:'Istniejący napęd CD-ROM',hardDiskNotAvailable:'Dysk twardy — niedostępny!',freeSlot:'Wolne gniazdo',mount:'Zamontuj',eject:'Wysuń',freeSpace:'Wolne',notEnoughSpace:'Za mało miejsca!',mountPath:'Ścieżka montowania',mountPathHint:'Bezwzględna ścieżka wewnątrz kontenera, w której ten wolumin będzie zamontowany (np. /data).',mountPathRequired:'Wprowadź bezwzględną ścieżkę montowania wewnątrz kontenera (np. /data)',usedSpace:'Użyte',resize:'Zmień rozmiar',remove:'Usuń',editDiskType:'Zmień typ magistrali',changeDiskBusType:'Zmień typ magistrali dysku',vmIsRunning:'VM jest uruchomiona',vmMustBeStopped:'Maszyna musi być zatrzymana',vmMustBeStoppedForBusChange:'VM musi być zatrzymana przed zmianą typu magistrali dysku. Najpierw wyłącz VM.',currentDisk:'Bieżący',diskBusWarning:'Zmiana typu magistrali wymaga zatrzymania VM. System gościa może wymagać aktualizacji sterowników.',selectNewBusType:'Wybierz nowy typ magistrali',scsiDesc:'Najlepsza wydajność z kontrolerem VirtIO SCSI',virtioDesc:'Starszy VirtIO, dobra wydajność',sataDesc:'Dobra zgodność, umiarkowana wydajność',ideDesc:'Maksymalna zgodność, najniższa wydajność',current:'Bieżący',changeBusType:'Zmień typ magistrali',saving:'Zapisywanie...',diskBusChanged:'Typ magistrali dysku zmieniony',optionsWillBeRemoved:'Następujące opcje nie są obsługiwane i zostaną usunięte',noDisksConfigured:'Brak skonfigurowanych dysków',unusedDisks:'Nieużywane dyski',unusedDisksDesc:'Te dyski są odłączone, ale nadal istnieją. Możesz podłączyć je ponownie lub usunąć.',reattach:'Podłącz ponownie',reattachDisk:'Podłącz dysk ponownie',selectBusType:'Wybierz typ magistrali',diskId:'ID dysku',nextAvailableId:'Następne dostępne ID dla wybranego typu magistrali',diskOptions:'Opcje dysku',ideLimitedOptions:'IDE ma ograniczony zestaw dostępnych opcji',attaching:'Podłączanie...',volume:'Wolumin',diskReattached:'Dysk podłączony ponownie',deleteUnusedDiskConfirm:'Trwale usunąć dysk? Tej operacji nie można cofnąć!',unusedDiskDeleted:'Nieużywany dysk usunięty',configLoadError:'Nie udało się wczytać konfiguracji',networking:'Sieć',networkOverview:'Przegląd sieci',noNetworkData:'Brak danych sieciowych',bridgePorts:'Porty mostka',connectedVms:'Podłączone VM',noVmsOnBridge:'Brak przypisanych VM',presentOnNodes:'Obecny na węzłach',addNetwork:'Dodaj interfejs sieciowy',noNetworksConfigured:'Brak skonfigurowanych sieci',networkDisconnected:'Sieć odłączona',disconnectNetwork:'Odłącz sieć',disconnectNetworkHint:'Symuluje odłączenie kabla sieciowego',connectNetwork:'Podłącz sieć',createSnapshot:'Utwórz migawkę',unknown:'nieznany',noSnapshots:'Brak migawek',createReplication:'Utwórz replikację',replicationNeedsTwoNodes:'Replikacja wymaga co najmniej 2 węzłów w klastrze',replicationHint:'Utwórz zadanie replikacji, aby synchronizować dane VM między węzłami',addReplication:'Dodaj',confirmDeleteReplication:'Usunąć to zadanie replikacji?',replicationInfoTitle:'Replikacja VM',replicationInfoDesc:'Utrzymuj dane VM zsynchronizowane między węzłami na potrzeby failover i odtwarzania awaryjnego. Dostępne są dwa tryby:',zfsNativeDesc:'Przyrostowe ZFS send/recv. Szybkie i wydajne, wymaga ZFS na obu węzłach.',snapshotDesc:'Podejście oparte na klonowaniu i migracji. Działa z dowolnym magazynem (LVM, katalog itp.).',anyStorage:'dowolny magazyn',snapshotReplNote:'Tworzy pełny klon VM i migruje go na węzeł docelowy. Poprzednia replika jest zastępowana przy każdym uruchomieniu.',noSnapshotReplJobs:'Brak zadań replikacji migawkowej',nativeProxmoxReplication:'Natywna replikacja Proxmox (ZFS)',pending:'Oczekujące',zfsReplicationTitle:'Replikacja ZFS dla małych klastrów',zfsReplicationDesc:'Replikacja ZFS używa migawek przyrostowych do synchronizacji danych między węzłami. Jest idealna dla klastrów 2-węzłowych, w których Ceph nie jest praktyczny. Wymaga magazynu ZFS na węźle źródłowym i docelowym.',zfsRequired:'Węzeł źródłowy i docelowy muszą używać magazynu ZFS dla replikowanego dysku VM.',everyMinute:'Co minutę',every5Min:'Co 5 minut',every15Min:'Co 15 minut',every30Min:'Co 30 minut',everyHour:'Co godzinę',every6Hours:'Co 6 godzin',lastSync:'Ostatnia synchronizacja',neverSynced:'Nigdy nie synchronizowano',syncNow:'Synchronizuj teraz',protection:'Ochrona (zapobiega usunięciu/modyfikacji)',kvmVirtualization:'Wirtualizacja sprzętowa KVM',unprivilegedContainer:'Kontener nieuprzywilejowany',other:'Inny',hotplug:'Hotplug',hotplugHint:'Urządzenia, które można dodawać podczas działania VM',hotplugDisk:'Dysk',hotplugNetwork:'Sieć',hotplugUsb:'USB',hotplugMemory:'Pamięć',hotplugCpu:'CPU',qemuGuestAgent:'QEMU Guest Agent',qemuGuestAgentHint:'Umożliwia wyłączanie oraz zamrażanie/odmrażanie systemu plików dla migawek',fstrim:'FSTRIM po klonowaniu/migracji',fstrimHint:'Automatycznie uruchamiaj TRIM po klonowaniu',snapshotDescription:'Opis migawki...',saveRamState:'Zapisz stan RAM (hibernacja)',spaceEfficientSnapshot:'Migawka oszczędzająca miejsce',spaceEfficientSnapshots:'Migawki oszczędzające miejsce',snapshotMode:'Tryb migawki',normalMode:'Standardowy (Proxmox)',efficientMode:'Oszczędzający miejsce (LVM COW)',spaceSavings:'Oszczędność miejsca',normalSnapshotSize:'Standardowa migawka',efficientSnapshotSize:'Oszczędzająca miejsce',guestAgentDetected:'Wykryto Guest Agent (system plików zostanie zamrożony)',noGuestAgent:'Brak Guest Agent (migawka bez zamrażania systemu plików)',managedByPegaprox:'Zarządzane przez PegaProx (niewidoczne w Proxmox)',snapshotUsage:'Użycie migawki',snapshotOverflow:'Migawka jest prawie pełna!',snapshotInvalidated:'Migawka utracona — dane źródłowe są bezpieczne',efficientSnapshotCreated:'Utworzono migawkę oszczędzającą miejsce',efficientSnapshotDeleted:'Usunięto migawkę oszczędzającą miejsce',efficientSnapshotRollback:'Rozpoczęto przywracanie migawki',cowSnapshot:'COW',fsFrozen:'System plików zamrożony',snapshotSizeGb:'Rozmiar migawki (GB)',create:'Utwórz',comment:'Komentarz',commentPlaceholder:'np. replikacja DR',every5min:'Co 5 minut',every15min:'Co 15 minut',every30min:'Co 30 minut',every2hours:'Co 2 godziny',every4hours:'Co 4 godziny',every6hours:'Co 6 godzin',every12hours:'Co 12 godzin',editNetwork:'Edytuj interfejs sieciowy',viommu:'vIOMMU (wirtualizowane IOMMU)',viommuInfo:'Wymagane do zagnieżdżonej wirtualizacji i niektórych scenariuszy passthrough',ballooningMinimum:'Minimalny ballooning',swap:'Swap',machineTypePlaceholder:'np. q35 lub i440fx (puste = domyślne)',compatible:'zgodne',cache:'Pamięć podręczna',noCache:'Bez pamięci podręcznej',unsafe:'niebezpieczne',fastest:'najszybsze',discard:'Odrzucanie',ioThread:'Wątek I/O',ssdEmulation:'Emulacja SSD',branding:'Branding',appName:'Nazwa aplikacji',customLogo:'Własne logo',logoHint:'Zalecane PNG, SVG lub GIF. Maks. 500 KB.',logoUploaded:'Logo przesłane',logoUploadFailed:'Przesyłanie logo nie powiodło się',logoDeleted:'Logo usunięte',loginBackground:'Tło ekranu logowania',loginBackgroundDesc:'Prześlij własne tło ekranu logowania. Maks. 2 MB.',loginBackgroundUploaded:'Tło przesłane',loginBackgroundTooLarge:'Obraz tła logowania musi mieć mniej niż 2 MB',loginBackgroundDeleted:'Tło usunięte',removeBackground:'Usuń tło',upload:'Prześlij',thanksToSponsors:'Podziękowania dla sponsorów',sponsorSubtitle:'Wsparcie rozwoju open source',becomeSponsor:'Zostań sponsorem',sponsorNagTitle:'Pomóż utrzymać PegaProx 💛',sponsorNagBody:'PegaProx to projekt tworzony z pasji — sami pokrywamy koszty serwerów, domen i czasu poświęconego na rozwój. Jeśli to narzędzie oszczędza Ci czas i możesz wesprzeć projekt, będziemy bardzo wdzięczni za wpłatę przez Open Collective. Każde wsparcie, małe czy duże, pomaga utrzymać projekt przy życiu!',sponsorNagCta:'Wesprzyj nas na Open Collective',sponsorNagDismiss:'Może później',sponsorNagSnooze90:'Nie pokazuj ponownie przez 90 dni',madeWithLove:'Stworzone z ❤️ dla społeczności Proxmox',settingsSaved:'Ustawienia zapisane',saveError:'Błąd zapisywania',dnsSaved:'Ustawienia DNS zapisane',hostsSaved:'Ustawienia hostów zapisane',searchDomain:'Domena wyszukiwania',dnsServer:'Serwer DNS',time:'Czas',timezone:'Strefa czasowa',localTime:'Czas lokalny',sslCertificates:'Certyfikaty SSL',uploadCustomCert:'Prześlij własny certyfikat',issuer:'Wystawca',valid:'Ważny',expired:'Wygasł',noCertificates:'Nie znaleziono certyfikatów',certificate:'Certyfikat',privateKey:'Klucz prywatny',certChainHint:'Może zawierać wiele certyfikatów (łańcuch)',restartPveproxyAfterUpload:'Uruchom ponownie pveproxy po przesłaniu',certAndKeyRequired:'Certyfikat i klucz są wymagane',certUploaded:'Certyfikat przesłany!',uploadCertificate:'Prześlij certyfikat',deleteCertConfirm:'Usunąć własny certyfikat i przywrócić samopodpisany?',certDeleted:'Certyfikat usunięty',deleteCustomCert:'Usuń własny certyfikat',syslogLatest:'Syslog (najnowsze wpisy)',datastores:'Magazyny danych',esxiHosts:'Hosty ESXi',connectEsxi:'Połącz z hostem ESXi',esxiHostname:'Nazwa hosta/IP ESXi',esxiUsername:'Nazwa użytkownika',esxiPassword:'Hasło',esxiConnected:'Połączono z ESXi',esxiVms:'VM ESXi',migrateToProxmox:'Migruj do Proxmox',esxiMigrationHint:'PegaProx automatycznie zarządza stanem zasilania VM na ESXi',esxiMigrating:'Import w toku...',esxiMigrationStarted:'Import rozpoczęty',v2pSupportNote:'Tylko dzięki Twojemu wsparciu możemy utrzymać tę funkcję bezpłatną.',v2pSupportAck:'Rozumiem — będę o tym pamiętać.',v2pSupportAckRequired:'Potwierdź zapoznanie się z powyższą informacją',installVirtioDrivers:'Wstępnie zainstaluj sterowniki VirtIO (Windows)',installVirtioDriversDesc:'Umieszcza virtio-win-gt-x64.msi na dysku i przy pierwszym uruchomieniu instaluje pełny zestaw sterowników (magazyn, sieć, balloon, qemu-ga) w trybie cichym jako LocalSystem. Jest to rozwiązanie awaryjne, gdy źródłowa VM nie ma jeszcze sterowników. Wymaga virtio-win.iso na węźle docelowym.',virtioPreInstallWarnTitle:'Lepiej zainstalować sterowniki PRZED migracją',virtioPreInstallWarnBody:'Podłącz virtio-win.iso do działającej źródłowej VM na VMware, zamontuj jako CD i uruchom virtio-win-guest-tools.exe, a dopiero potem wykonaj migrację. Wstrzykiwanie sterowników offline działa w trybie best-effort: Windows 11 / Server 2025 nie zawsze poprawnie wiążą vioscsi podczas wczesnego rozruchu (ograniczenie Proxmox/QEMU), dlatego dysk rozruchowy musi pozostać na pvscsi. VM z zainstalowanymi przed migracją sterownikami mogą później bez problemu przejść na virtio-scsi.',fixQemuArgs:'Napraw argumenty QEMU (po zmianie magistrali dysku)',fixQemuArgsConfirm:'Spowoduje to zapisanie własnych argumentów QEMU (args:) w konfiguracji VM w celu naprawy rozmiarów sektorów po zmianie magistrali. Uwaga: VM z własnymi argumentami nie mogą być później migrowane na żywo ani między klastrami przez Proxmox. Kontynuować?',virtioIsoPath:'Ścieżka virtio-win.iso na węźle',virtioSshfsBootWarn:'Tryb live-mirror uruchamia VM zanim dyski zostaną ustabilizowane — wstrzykiwanie sterowników offline mogłoby uszkodzić działający NTFS. Wstępna instalacja jest tutaj pomijana. Użyj trybu offline / auto / snapshot_zero albo zainstaluj sterowniki po uruchomieniu z zamontowanego virtio-win.iso.',disableNoiseOverlay:'Wyłącz nakładkę szumu',disableNoiseOverlayDesc:'Usuwa subtelną teksturę ditheringu w nowoczesnym układzie',complianceSettings:'Zgodność i utwardzanie',auditRetention:'Retencja dziennika audytu (dni)',auditRetentionHint:'BSI IT-Grundschutz zaleca ≥ 180 dni. NIS2 / KRITIS często wymagają 365 lub więcej. Domyślnie: 90.',airGapMode:'Tryb air-gap',airGapModeDesc:'Wyłącza sprawdzanie aktualizacji i zewnętrzne wyszukiwanie CVE. Przeznaczone dla sieci VS-NfD / niejawnych, w których wychodzący HTTP jest zabroniony. Linki OpenCollective i logo sponsorów pozostają widoczne.',airGapModeActive:'Aktywny — PegaProx nie będzie kontaktować się z usługami zewnętrznymi. Automatyczne wykrywanie OIDC dla publicznych IdP może przestać działać; ustaw adresy discovery na wewnętrzne endpointy.',complianceDashboard:'Panel zgodności',complianceDashboardHint:'Widok audytowy tylko do odczytu dla wszystkich klastrów. Działania administracyjne znajdują się w Ustawienia → Zgodność.',overallScore:'Wynik ogólny',controls:'kontrole',auditActivity:'Ostatnia aktywność audytowa',lastEntries:'ostatnie 200 wpisów',openSettingsCompliance:'Otwórz Ustawienia → Zgodność',complianceProfileNote:'Profil: ',regionEU:'Frameworki UE / DACH',regionUS:'Frameworki obronne / federalne USA',downloadReport:'Pobierz raport (PDF)',complianceReport:'Raport zgodności',coverageSummary:'Podsumowanie pokrycia',property:'Właściwość',value:'Wartość',framework:'Framework',region:'Region',overallCoverage:'Ogólne pokrycie',controlsEvaluated:'Ocenione kontrole',generatedAt:'Wygenerowano',tool:'Narzędzie',disclaimer:'Zastrzeżenie',note:'Uwaga',disclaimerLine1:'Ten raport jest analizą technicznego pokrycia opartą na automatycznych kontrolach audytowych i wykonywaną w trybie best-effort.',disclaimerLine2:'NIE stanowi formalnej certyfikacji, akredytacji ani poświadczenia zgodności z {fw}.',disclaimerLine3:'Formalna zgodność wymaga udokumentowanych dowodów dla poszczególnych kontroli, audytu strony trzeciej oraz — tam, gdzie ma to zastosowanie — certyfikowanych modułów kryptograficznych.',disclaimerLine4:'Traktuj raport jako materiał do analizy luk. Przed przekazaniem wyników audytu ponownie zweryfikuj mapowania względem aktualnej wersji frameworka.',execSummaryPerNode:'Podsumowanie wykonawcze — pokrycie według węzłów',passed:'Zaliczone',coverage:'Pokrycie',otherCrossCutting:'Inne / przekrojowe',fullySatisfied:'w pełni spełnione',ref:'Ref',controlTitle:'Nazwa kontroli',internalCheck:'Kontrola wewnętrzna',noDirectMapping:'brak bezpośredniego mapowania',appendixBRemediation:'Załącznik B — Działania naprawcze',failedControl:'niezaliczona kontrola',failedControls:'niezaliczone kontrole',affectedNodes:'Węzły objęte problemem',recommendedAction:'Zalecane działanie',howToFix:'Jak naprawić',useHardeningTool:'Użyj narzędzia PegaProx Hardening, aby zastosować',appendixAMethodology:'Załącznik A — Metodologia',topic:'Temat',dataSource:'Źródło danych',dataSourceDesc:'Kontrola check_node_hardening() wykonywana przez SSH na każdym węźle klastra. Wewnętrzne identyfikatory kontroli są mapowane na odwołania frameworka przez PegaProx compliance_mapping.py.',passFailDef:'Definicja PASS/FAIL',passFailDefDesc:'PASS = skonfigurowana kontrola zwróciła oczekiwany wynik. FAIL = każdy inny wynik, w tym brak wymaganej konfiguracji.',dashEntries:'Wpisy „—”',dashEntriesDesc:'Kontrola nie należała do wybranego profilu hardeningu albo nie została uruchomiona na tym węźle (np. brak dostępu SSH). Traktuj jako „nie oceniono”.',multiMapping:'Mapowanie 1:N',multiMappingDesc:'Jedna wewnętrzna kontrola może mapować się na wiele kontroli frameworka (np. ssh_crypto obejmuje IA.L2-3.5.10 i SC.L2-3.13.11). Wyświetlane są wszystkie powiązane odwołania.',limitations:'Ograniczenia',limitationsDesc:'Raport obejmuje wyłącznie konfigurację techniczną. Kontrole frameworków obejmują również polityki, szkolenia, bezpieczeństwo fizyczne, reagowanie na incydenty i udokumentowane procedury — te elementy nie są tutaj oceniane.',complianceMappingLoadFail:'Nie udało się wczytać mapowania zgodności',complianceAssessmentReport:'Raport oceny zgodności',subjectOrg:'Podmiot',frameworkRevision:'Wersja frameworka',hardeningProfile:'Profil hardeningu',reportingPeriod:'Okres raportowania',classification:'Klasyfikacja',classificationInternal:'Do użytku wewnętrznego — dokument roboczy audytu',generatedBy:'Wygenerowane przez',reportTool:'Narzędzie raportujące',generatingReport:'Generowanie raportu audytowego — pobieranie dowodów...',reportReady:'Raport gotowy',executiveSummary:'Podsumowanie wykonawcze',compliancePosture:'Poziom zgodności',postureNarrative:'Opis poziomu zgodności',totalControlsEvaluated:'Łączna liczba ocenionych kontroli',highSeverityCoverage:'Pokrycie wysokiego poziomu ważności',mediumSeverityCoverage:'Pokrycie średniego poziomu ważności',lowSeverityCoverage:'Pokrycie niskiego poziomu ważności',informationalCoverage:'Pozycje informacyjne',topFindings:'Najważniejsze ustalenia — najwyższy priorytet',priority:'#',scopeOfAssessment:'Zakres oceny',inScopeCluster:'Klaster w zakresie',inScopeNodes:'Węzły w zakresie',frameworkSource:'Źródło frameworka',frameworkNote:'Uwagi dotyczące frameworka',controlSetSize:'Liczba kontroli',sampling:'Próbkowanie',outOfScope:'Poza zakresem',outOfScopeText:'Polityki administracyjne, bezpieczeństwo personelu, bezpieczeństwo fizyczne, reagowanie na incydenty, ryzyko łańcucha dostaw oraz walidacja modułów kryptograficznych (FIPS 140-3) NIE są oceniane w tym raporcie.',methodology:'Metodologia',criteria:'Kryteria',findingsBySeverity:'Podsumowanie ustaleń — według poziomu ważności',checked:'Sprawdzono',findingsPerNode:'Ustalenia — pokrycie według węzłów',timeline:'Oś czasu',appendixCEvidence:'Załącznik C — Dowody',observations:'obserwacje',checkCommand:'Polecenie sprawdzające',expected:'Oczekiwane',observed:'Zaobserwowane',appendixDGlossary:'Załącznik D — Słownik',term:'Terminal',definition:'Definicja',pegaproxControl:'Kontrola PegaProx',cmPamPasswordRepair:'Napraw stos haseł PAM (odzyskiwanie)',stableVncMode:'Stabilny tryb VNC',stableVncModeDesc:'Opakowuje ramki VNC w AES-256-GCM. Włącz, jeśli w sieci działa inspekcja HTTPS (CrowdStrike, Palo Alto, Zscaler itd.) zakłócająca konsolę VNC.',stableVncModeNote:'następne połączenie VNC użyje szyfrowanego tunelu',pegaPamRepairDesc:'Wykrywa uszkodzony /etc/pam.d/common-password, w którym pam_pwhistory.so dodano z use_authtok, ale przed nim brak pam_pwquality.so. Naprawa: jeśli libpam-pwquality jest zainstalowany, dodaje pam_pwquality.so PRZED pwhistory; w przeciwnym razie usuwa use_authtok, aby pwhistory samodzielnie pytał o hasło. Kopia zapasowa z sygnaturą czasu jest zapisywana jako common-password.bak.repair-. Operacja jest idempotentna — ponowne uruchomienie na zdrowym systemie nic nie zmienia.',pegaPamRepairImpact:'Brak wpływu na zdrowe systemy. Przywraca możliwość zmiany haseł na systemach, na których mechanizm był uszkodzony.',hardeningUiHint:'Uwaga dla operatora: wartości w kolumnie „Kontrola PegaProx” odpowiadają nazwom pól wyboru w Ustawienia → Zgodność → Harden PVE Node. Aby naprawić problem, wybierz niezaliczoną kontrolę o tej nazwie i kliknij „Zastosuj wybrane”.',endOfReportNote:'Koniec raportu. Informacje o ograniczeniach użycia tych ustaleń znajdują się w zastrzeżeniu na początku dokumentu.',hardenProfileAll:'Wszystkie kontrole',hardenProfileHint:'Filtruj kontrole według frameworka zgodności. Wszystkie kontrole = pełny zestaw CIS+Lynis+STIG+PegaProx.',informational:'informacyjne',vsnfdInformational:'Tylko informacyjnie — bez automatycznego zastosowania',vsnfdDiskEnc:'Szyfrowanie dysków (LUKS / natywne ZFS)',vsnfdDiskEncDesc:'Informuje, czy woluminy root/dane używają LUKS lub natywnego szyfrowania ZFS. Tylko audyt — musi być skonfigurowane podczas instalacji.',vsnfdAuditRet:'Retencja journald ≥ 6 miesięcy',vsnfdAuditRetDesc:'Sprawdza, czy journald MaxRetentionSec jest ustawione na co najmniej 6 miesięcy. BSI wymaga retencji logów audytowych ≥ 180 dni.',vsnfdJournaldSize:'journald SystemMaxUse ≥ 1G',vsnfdJournaldSizeDesc:'Zapewnia, że journald może przechowywać wystarczającą ilość logów do spełnienia wymagań retencji.',vsnfdSecureBoot:'UEFI Secure Boot włączony',vsnfdSecureBootDesc:'Informuje, czy firmware wymusza podpisane bootloadery. Nie można tego przełączyć podczas pracy — należy włączyć w firmware.',vsnfdLockdown:'Kernel lockdown (integrity / confidentiality)',vsnfdLockdownDesc:'Sprawdza /sys/kernel/security/lockdown. BSI zaleca tryb „integrity” lub „confidentiality”. Ustaw przez parametr jądra lockdown=integrity przy starcie.',vsnfdPwMin12:'Minimalna długość hasła ≥ 12 (BSI)',vsnfdPwMin12Desc:'BSI wymaga haseł o długości co najmniej 12 znaków (bardziej rygorystyczne niż 8 znaków w CIS-L1). Skonfiguruj przez pwquality minlen.',applyingControl:'Stosowanie…',justApplied:'Właśnie zastosowano',queued:'W kolejce',exemptUsers:'Użytkownicy wyłączeni',alwaysExempt:'zawsze wyłączeni',plusOptional:'+ opcjonalnie',extraServiceUsers:'monitoring,backup',storageUnreachable:'nieosiągalny',storageUnreachableShort:'brak danych',storageUnreachableHint:'Magazyn jest skonfigurowany, ale nieosiągalny z tego węzła — sprawdź sieć / montowanie / poświadczenia',storageRaw:'raw',storageRawNoUsage:'brak statystyk użycia',storageRawHint:'Surowy magazyn blokowy (np. iSCSI bez LVM, RBD bez systemu plików) — Proxmox nie raportuje statystyk użycia dla tego typu',activeOn:'Aktywny na',unreachableFrom:'nieosiągalny z',viewFromNode:'widok z',esxiDisconnect:'Rozłącz',esxiNoVms:'Brak VM na tym hoście ESXi',esxiExperimental:'Import ESXi używa natywnej funkcji Proxmox (PVE 8.1+)',noEsxiHosts:'Brak podłączonych hostów ESXi',fillAllFields:'Wypełnij wszystkie pola',confirmDisconnect:'Rozłączyć ten host ESXi?',xhmTitle:'Migracja między hypervisorami',xhmDesc:'Migruj VM między Proxmox i XCP-ng',xhmDirection:'Kierunek',xhmPveToXcpng:'Proxmox → XCP-ng',xhmXcpngToPve:'XCP-ng → Proxmox',xhmAnalyze:'Analizuj VM',xhmNetworkMapping:'Mapowanie sieci',xhmEstTransferTime:'Szacowany czas transferu',xhmOfflineOnly:'VM musi być zatrzymana (migracja offline)',xhmStartMigration:'Rozpocznij migrację',xhmPvWarning:'VM typu PV (parawirtualizowane) nie mogą być migrowane do KVM',xhmSourceCluster:'Klaster źródłowy',xhmSourceVm:'Źródłowa VM',xhmTargetCluster:'Klaster docelowy',xhmTargetNode:'Węzeł docelowy',xhmTargetStorage:'Magazyn docelowy',xhmNoMigrations:'Brak migracji. Rozpocznij nową za pomocą kreatora migracji.',xhmStartAfter:'Uruchom VM po migracji',xhmRemoveSource:'Usuń źródłową VM po zakończeniu',sharedStorage:'Magazyn współdzielony',clickStorageToView:'Kliknij magazyn, aby wyświetlić jego zawartość',storageEmpty:'Ten magazyn jest pusty',isoSync:'Synchronizacja ISO',backupSla:'SLA kopii zapasowych',backupSlaBreachedPct:'Naruszenie SLA kopii zapasowych %',backupSlaCompliancePct:'Zgodność z SLA kopii zapasowych %',backupSlaDesc:'Określ maksymalny dopuszczalny wiek kopii zapasowej dla każdej VM. Uwzględnia lokalne vzdump oraz migawki PBS i oznacza VM, które nie spełniają wymagań.',maxBackupAge:'Maks. wiek kopii zapasowej (godziny)',zeroDisables:'0 = wyłączone',compliant:'Zgodne',breached:'Naruszone',noBackup:'Brak kopii zapasowej',lastBackup:'Ostatnia kopia zapasowa',age:'Wiek',slaConfigSaved:'Cel SLA kopii zapasowych zapisany',slaConfigSaveFailed:'Zapis nie powiódł się',slaDisabledHint:'Monitorowanie SLA jest wyłączone. Ustaw maksymalny wiek kopii zapasowej powyżej, aby rozpocząć ocenę.',slaLoadingPrompt:'Kliknij odśwież, aby wczytać dane SLA kopii zapasowych.',isoSyncDesc:'Rozprowadzaj obrazy ISO i szablony między wszystkimi węzłami klastra. Przydatne w konfiguracjach opartych wyłącznie na iSCSI bez współdzielonego magazynu plikowego.',syncAll:'Synchronizuj wszystkie brakujące',syncAllStarted:'Synchronizowanie wszystkich brakujących plików...',synced:'Zsynchronizowano',autoSync:'Automatyczna synchronizacja po przesłaniu',autoSyncDesc:'Automatycznie rozprowadzaj nowe obrazy ISO/szablony na wszystkie węzły po przesłaniu',oidcReauthHint:'Zalogowano przez SSO. Hasło nie jest wymagane — sesja zostanie zweryfikowana.',storageDrsDesc:'Automatycznie balansuj użycie dysków między współdzielonymi magazynami',storageUsage:'Użycie magazynu',currentImbalance:'Bieżąca nierównowaga',storageBalanced:'Wszystkie magazyny są prawidłowo zbalansowane. Nie jest wymagane żadne działanie.',experimentalFeature:'Funkcja eksperymentalna',storageBalancingExperimental:'Balansowanie magazynów jest nadal funkcją eksperymentalną. Będziemy wdzięczni za opinie!',uploadIso:'Prześlij ISO',downloadFromUrl:'Pobierz z URL',fromUrl:'Z URL',isoUrl:'Adres URL ISO',isoUrlHint:'Bezpośredni link do pliku ISO (http/https)',autoDetect:'Wykryj automatycznie z URL',startingDownload:'Rozpoczynanie pobierania...',downloading:'Pobieranie...',selectFile:'Wybierz plik',deleteConfirmText:'Czy na pewno chcesz usunąć',createStorageCluster:'Utwórz klaster magazynów',noStorageClusters:'Brak skonfigurowanych klastrów magazynów',createStorageClusterHint:'Utwórz klaster, aby balansować dane między wieloma magazynami',selectClusterToView:'Wybierz klaster magazynów, aby wyświetlić stan balansowania',balancingThreshold:'Próg balansowania',thresholdDesc:'Uruchom balansowanie, gdy nierównowaga przekroczy tę wartość',actionRecommended:'Zalecane działanie',balanced:'Zbalansowane',storagesInCluster:'Magazyny w klastrze',selectStorages:'Wybierz magazyny',minTwo:'min. 2',noSharedStorages:'Brak dostępnych magazynów współdzielonych',confirmDeleteCluster:'Usunąć ten klaster magazynów?',minTwoStorages:'Wymagane są co najmniej 2 magazyny',needTwoStorages:'Potrzebne są co najmniej 2 magazyny',autoBalance:'Automatyczne balansowanie',autoBalanceActive:'Automatyczne balansowanie aktywne',autoBalanceDesc:'Dyski będą automatycznie migrowane, gdy nierównowaga przekroczy próg. VM z aktywnymi migawkami/kopiami zapasowymi są pomijane.',dryRunShort:'Tryb testowy',needsRestart:'WYMAGA RESTARTU',createAlert:'Utwórz alert',editAlert:'Edytuj alert',alertName:'Nazwa alertu',alertMetric:'Metryka',alertThreshold:'Próg',alertOperator:'Warunek',alertTarget:'Cel',alertTargetType:'Typ celu',noAlerts:'Brak skonfigurowanych alertów',testEmail:'Wyślij testowy e-mail',testEmailSuccess:'Testowy e-mail wysłany!',testEmailFailed:'Nie udało się wysłać testowego e-maila',enterEmailAddress:'Wprowadź adres e-mail',saveSmtpSettings:'Zapisz ustawienia SMTP',smtpSettingsSaved:'Ustawienia SMTP zapisane!',enableSmtpHint:'Włącz SMTP, aby skonfigurować ustawienia poczty',smtpHostRequired:'Host SMTP jest wymagany',smtpFromEmailRequired:'Adres e-mail nadawcy jest wymagany',emailRecipients:'Odbiorcy e-mail',addRecipient:'Dodaj odbiorcę',scheduledTasks:'Zaplanowane zadania',scheduledTasksDesc:'Automatyzuj operacje na VM według harmonogramu',createTask:'Utwórz zadanie',editTask:'Edytuj zadanie',taskName:'Nazwa zadania',taskAction:'Akcja',taskSchedule:'Harmonogram',scheduleTime:'Czas',scheduleDay:'Dzień',noScheduledTasks:'Brak zaplanowanych zadań',tagsLabels:'Tagi i etykiety',createTag:'Utwórz tag',tagName:'Nazwa tagu',tagColor:'Kolor',assignedVms:'Przypisane maszyny wirtualne',affinityRules:'Reguły kolokacji',customScripts:'Skrypty niestandardowe',scriptsDesc:'Uruchamiaj własne skrypty .sh lub .py na węzłach klastra',newScript:'Nowy skrypt',noScripts:'Brak skonfigurowanych skryptów',scriptsInfo:'Twórz skrypty automatyzujące zadania na węzłach klastra',runScript:'Uruchom skrypt',runScriptConfirm:'Uruchomić ten skrypt?',scriptStarted:'Uruchomiono wykonywanie skryptu',scriptDeleted:'Skrypt usunięty',scriptCreated:'Skrypt utworzony',scriptUpdated:'Skrypt zaktualizowany',scriptPermissions:'Uprawnienia skryptu',scriptPermissionsDesc:'Skrypty wymagają dostępu SSH do węzłów. Skonfiguruj klucz SSH w ustawieniach klastra.',scriptContent:'Treść skryptu',targetNodes:'Węzły docelowe',scriptWarning:'Skrypty są uruchamiane z uprawnieniami użytkownika SSH. Przed uruchomieniem upewnij się, że są bezpieczne.',passwordRequiredForScripts:'Ze względów bezpieczeństwa wymagane jest potwierdzenie hasłem',viewOutput:'Pokaż wynik',hardenNode:'Utwardzanie węzła PVE',hardenDesc:'Zastosuj mechanizmy utwardzania zgodne z CIS Benchmark dla poszczególnych węzłów PVE przez SSH.',hardenCisRef:'Na podstawie CIS Benchmark, Lynis Security Auditing i wytycznych DoD STIG',lynisRecommendations:'Zalecenia',checkStatus:'Sprawdź status',checking:'Sprawdzanie...',checkingHardening:'Sprawdzanie mechanizmów CIS przez SSH...',controlsActive:'aktywnych mechanizmów',applySelected:'Zastosuj wybrane',securitySelfCheck:'Samokontrola bezpieczeństwa',securitySelfCheckDisclaimer:'Wewnętrzna samokontrola ustawień bezpieczeństwa PegaProx — nie jest formalną oceną, poświadczeniem ani certyfikacją HIPAA lub ISO 27001.',chargeback:'Rozliczanie kosztów',monthlyEstimate:'Szacunkowy koszt miesięczny',basedOnLast:'na podstawie ostatnich',noClustersForTenant:'Brak klastrów przypisanych do tego dzierżawcy.',topVmsByCost:'Najdroższe maszyny wirtualne',downloadCsv:'Pobierz CSV',quotas:'Limity zasobów',quotaZeroHint:'0 = bez limitu',currentUsage:'Bieżące użycie',maxVms:'Maks. liczba VM',maxCores:'Maks. liczba rdzeni',maxMemoryGb:'Maks. RAM (GB)',quotaEnforcement:'Po przekroczeniu',quotaBlock:'Blokuj nowe VM',quotaWarn:'Tylko ostrzegaj (zezwalaj)',quota:'Limit',activeAlerts:'Aktywne alerty',acknowledge:'Potwierdź',acked:'potwierdzono',alertAcked:'Alert potwierdzony',escStep:'etap',severityAuto:'Automatycznie (wg wartości)',escalationLabel:'Eskalacja',escAfter:'Po',addEscStep:'Dodaj etap eskalacji',cisSshdHardening:'Utwardzanie dostępu SSH',cisSshdHardeningDesc:'Logowanie root wyłącznie kluczem (PermitRootLogin prohibit-password), MaxAuthTries 4, X11Forwarding wyłączone, limit bezczynności i brak pustych haseł. PasswordAuthentication pozostaje bez zmian, aby nie zablokować użytkowników korzystających z haseł.',cisSshdHardeningImpact:'Logowanie root hasłem zostanie wyłączone (logowanie kluczem nadal działa). Zmianę można cofnąć za pomocą opcji Cofnij wybrane.',cisPamNullok:'Usuń PAM nullok (blokuj puste hasła)',cisPamNullokDesc:'Usuwa flagę nullok ze wszystkich plików /etc/pam.d/*, dzięki czemu konta z pustym hasłem nie mogą się uwierzytelnić.',cisPamNullokImpact:'Konta z pustymi hasłami nie będą mogły się logować. Zmianę można cofnąć za pomocą opcji Cofnij wybrane.',rollbackSelected:'Cofnij wybrane',appliedTickToRollback:'Zastosowano — zaznacz, aby cofnąć',controlsRolledBack:'mechanizmów cofnięto',hardenRollbackConfirm:'Przywrócić wybrane mechanizmy na tym węźle do stanu sprzed zastosowania? Cofnąć można tylko zmiany wykonane przez PegaProx, dla których zapisano migawkę stanu.',hardenRollbackHint:'Przywróć wybrane mechanizmy do stanu sprzed zastosowania (dotyczy tylko zmian wykonanych przez PegaProx)',applying:'Stosowanie...',controlsApplied:'mechanizmów zastosowano',noControlsSelected:'Nie wybrano żadnych mechanizmów',hardenConfirm:'⚠️ Ostrzeżenie: wybrane mechanizmy utwardzania zostaną zastosowane na tym węźle.\n\nPliki konfiguracji systemu zostaną zmodyfikowane. Niektóre zmiany mogą wymagać ponownego uruchomienia.\n\nKontynuować?',alreadyApplied:'Już zastosowano',applied:'Zastosowano',notApplied:'Nie zastosowano',pveImpact:'Wpływ na PVE',reference:'Odniesienie',control:'Mechanizm',hardenReportTitle:'Raport utwardzania węzła',auditEvidence:'Dowody audytowe',verboseAuditOutput:'Szczegółowy wynik audytu',verboseHint:'Dołącz surowy wynik sprawdzenia dla każdego mechanizmu — przydatne w raportach audytowych',showAuditDetails:'Pokaż szczegóły audytu',hideAuditDetails:'Ukryj szczegóły audytu',actualState:'Stan bieżący',hardenEmpty:'Wybierz węzeł i kliknij „Sprawdź status”',hardenEmptyDesc:'PegaProx sprawdza, które mechanizmy CIS są już zastosowane, i umożliwia włączenie pozostałych.',cisFs:'Wyłącz nieużywane moduły systemów plików',cisFsDesc:'Blokuje ładowanie rzadko używanych modułów systemów plików jądra (cramfs, freevxfs, hfs, hfsplus, jffs2)',cisFsImpact:'Brak wpływu — maszyny wirtualne i kontenery działają bez zmian',cisCoreDumps:'Wyłącz zrzuty pamięci',cisCoreDumpsDesc:'Zapobiega tworzeniu zrzutów pamięci po awarii programów, ponieważ mogą one zawierać hasła i klucze',cisCoreDumpsImpact:'Brak wpływu — awarie VM nadal są normalnie rejestrowane',cisMounts:'Utwardzanie opcji montowania',cisMountsDesc:'Stosuje nodev, nosuid i noexec dla /tmp, /var/tmp oraz /dev/shm w celu ograniczenia eskalacji uprawnień',cisMountsImpact:'Brak wpływu na działanie klastra ani maszyn wirtualnych',cisCron:'Utwardzanie dostępu do Cron/At',cisCronDesc:'Ogranicza dostęp do harmonogramu zadań wyłącznie do użytkownika root, utrudniając utrwalenie dostępu przez atakującego',cisCronImpact:'Brak wpływu — zaplanowane zadania PVE działają jako root',cisNet:'Wyłącz nieużywane protokoły sieciowe',cisNetDesc:'Blokuje ładowanie rzadko używanych protokołów sieciowych (dccp, sctp, rds, tipc)',cisNetImpact:'Brak wpływu — Proxmox ich nie używa',cisJournald:'Utwardzanie Journald',cisJournaldDesc:'Konfiguruje trwałe i kompresowane logowanie, zachowywane po ponownym uruchomieniu systemu, przydatne w analizie powłamaniowej',cisJournaldImpact:'Lepsze możliwości analizy powłamaniowej',cisSshPerms:'Uprawnienia plików SSH',cisSshPermsDesc:'Ustawia bezpieczne uprawnienia (600) dla konfiguracji SSH i kluczy hosta',cisSshPermsImpact:'Brak wpływu — SSH działa normalnie',cisSshCrypto:'Utwardzanie kryptografii SSH',cisSshCryptoDesc:'Konfiguruje SSH tak, aby używało wyłącznie silnych szyfrów (AES-GCM/CTR), bezpiecznej wymiany kluczy (Curve25519) oraz silnych MAC (SHA2-ETM)',cisSshCryptoImpact:'Bardzo stare klienty SSH mogą nie być w stanie się połączyć',cisPam:'Blokowanie kont (pam_faillock)',cisPamDesc:'Blokuje konto po 5 nieudanych próbach logowania i automatycznie odblokowuje je po 10 minutach. Konto root jest wyłączone z tej reguły.',cisPamImpact:'Działa razem z Fail2Ban, zapewniając wielowarstwową ochronę',cisTimeout:'Limit bezczynności powłoki',cisTimeoutDesc:'Automatycznie wylogowuje nieaktywne sesje powłoki po 15 minutach',cisTimeoutImpact:'Dotyczy wyłącznie interaktywnych sesji SSH',cisFilePerms:'Uprawnienia plików systemowych',cisFilePermsDesc:'Ustawia prawidłowe uprawnienia dla /etc/passwd, /etc/shadow, /etc/group i /etc/gshadow',cisFilePermsImpact:'Brak wpływu — standardowe utwardzanie systemu Linux',lynDns:'Zapasowy serwer DNS',lynDnsDesc:'Zapewnia konfigurację co najmniej 2 serwerów DNS w celu redundancji (konfigurowalne)',lynDnsImpact:'Ogranicza ryzyko niedostępności DNS',lynPostfix:'Utwardzanie bannera Postfix',lynPostfixDesc:'Usuwa informacje o wersji oprogramowania z bannera serwera pocztowego, aby ograniczyć ujawnianie informacji o wersji',lynPostfixImpact:'Brak wpływu — ukrywana jest jedynie informacja o wersji',lynPwHash:'Liczba iteracji haszowania haseł',lynPwHashDesc:'Zwiększa liczbę iteracji haszowania haseł SHA (5000–500000), znacznie spowalniając ataki brute-force',lynPwHashImpact:'Dotyczy wyłącznie nowych i zmienianych haseł',lynPwQuality:'Jakość haseł PAM',lynPwQualityDesc:'Wymusza silne hasła: minimum 12 znaków, wielka litera, mała litera, cyfra i znak specjalny. Instaluje libpam-pwquality.',lynPwQualityImpact:'Użytkownicy muszą ustawiać silniejsze hasła',lynPwAging:'Okres ważności haseł',lynPwAgingDesc:'Wymusza zmianę hasła co 365 dni z ostrzeżeniem 30 dni wcześniej. Konto root jest wyłączone z tej reguły.',lynPwAgingImpact:'Użytkownicy muszą zmieniać hasła raz w roku',lynPwHistory:'Historia haseł',lynPwHistoryDesc:'Blokuje ponowne użycie 24 ostatnich haseł za pomocą pam_pwhistory.',lynPwHistoryImpact:'Użytkownicy nie mogą ponownie używać ostatnio stosowanych haseł',lynUmask:'Domyślny Umask (027)',lynUmaskDesc:'Zaostrza domyślne uprawnienia plików, dzięki czemu nowe pliki są dostępne tylko dla właściciela i grupy, a nie dla wszystkich',lynUmaskImpact:'Nowe pliki mają domyślnie bardziej restrykcyjne uprawnienia',cmUmaskToolingNote:'umask 027 wpływa również na narzędzia uruchamiane w powłoce logowania, które tworzą pliki lub kontenery — np. skrypty community LXC ustawiają /etc na 750 i przestaje działać DNS. Przed użyciem takich narzędzi wykonaj umask 022 albo wycofaj tę kontrolę.',cmSshdRootLockoutNote:'PegaProx łączy się z tym klastrem przy użyciu hasła, bez klucza SSH — ta kontrola wyłącza logowanie root hasłem, więc jej zastosowanie odetnie własny dostęp PegaProx do węzła (a wycofanie zmian również wymaga SSH). Najpierw dodaj klucz SSH do klastra.',hardenApplyTitle:'Zastosuj mechanizmy utwardzania',hardenApplyBtn:'Zastosuj',hardenApplyBody:'Spowoduje to zastosowanie {n} mechanizmów do „{node}”. Pliki konfiguracji systemu zostaną zmodyfikowane; niektóre zmiany mogą wymagać ponownego uruchomienia.',hardenAccessAck:'Rozumiem, że te mechanizmy zmieniają dostęp SSH / logowania i przy błędnej konfiguracji mogą zablokować zdalny dostęp.',hardenLockoutAck:'Rozumiem, że ta zmiana odetnie PegaProx od dostępu do tego klastra przy użyciu hasła, i mam dostęp konsolowy lub ręczny pozwalający na odzyskanie dostępu.',lynPkgCleanup:'Czyszczenie pozostałości po pakietach',lynPkgCleanupDesc:'Usuwa pozostałe pliki konfiguracyjne po wcześniej odinstalowanych pakietach',lynPkgCleanupImpact:'Brak wpływu — usuwane są nieużywane pozostałości konfiguracji',lynDebsums:'Weryfikacja pakietów (debsums)',lynDebsumsDesc:'Instaluje debsums do weryfikacji integralności plików pakietów oraz wykrywania uszkodzonych lub zmodyfikowanych plików systemowych',lynDebsumsImpact:'Brak wpływu — narzędzie wykonuje wyłącznie weryfikację',lynBanners:'Bannery logowania',lynBannersDesc:'Wyświetla ostrzeżenie prawne przed logowaniem, wymagane przez niektóre standardy zgodności (PCI-DSS, HIPAA)',lynBannersImpact:'Brak wpływu — zmiana wyłącznie informacyjna',lynAide:'Monitorowanie integralności plików (AIDE)',lynAideDesc:'Tworzy bazę sum kontrolnych plików w celu wykrywania nieautoryzowanych zmian w plikach binarnych i konfiguracji systemu',lynAideImpact:'Początkowe tworzenie bazy danych działa w tle',lynAcct:'Rejestrowanie procesów',lynAcctDesc:'Rejestruje informacje o każdym uruchomionym procesie do celów analizy powłamaniowej (podgląd za pomocą lastcomm)',lynAcctImpact:'Minimalne obciążenie',lynSysstat:'Statystyki systemowe (sysstat)',lynSysstatDesc:'Zbiera w czasie statystyki CPU, pamięci, I/O dysków i sieci (do danych historycznych użyj sar)',lynSysstatImpact:'Minimalne obciążenie — pomaga diagnozować problemy',lynUsb:'Wyłącz pamięć masową USB/FireWire',lynUsbDesc:'Blokuje ładowanie sterowników pamięci masowej USB i FireWire, ograniczając ryzyko kradzieży danych. Klawiatury i myszy nadal działają.',lynUsbImpact:'Dyski USB nie będą rozpoznawane',lynCompilers:'Ogranicz dostęp do kompilatorów',lynCompilersDesc:'Ogranicza użycie kompilatorów (gcc, g++, make) wyłącznie do użytkownika root, utrudniając kompilowanie kodu exploitów',lynCompilersImpact:'Użytkownicy inni niż root nie mogą kompilować',lynAptShow:'Zarządzanie poprawkami (apt-show-versions)',lynAptShowDesc:'Instaluje apt-show-versions, umożliwiając szybki przegląd zainstalowanych pakietów i ich statusu aktualizacji',lynAptShowImpact:'Brak wpływu — narzędzie tylko do odczytu',lynTmpdir:'Izoluj /tmp dla każdej sesji',lynTmpdirDesc:'Tworzy odizolowane katalogi tymczasowe dla każdej sesji użytkownika, ograniczając ataki typu race condition w /tmp',lynTmpdirImpact:'Brak wpływu — dotyczy tylko sesji interaktywnych',stigRecommendations:'Wytyczne',stigSession:'Limit równoczesnych sesji',stigSessionDesc:'Ogranicza każdego użytkownika do maksymalnie 10 równoczesnych sesji logowania. Konto root jest wyłączone z tego ograniczenia ze względu na operacje klastra.',stigSessionImpact:'Brak wpływu — root ma nielimitowaną liczbę sesji',stigInactive:'Wyłącz nieaktywne konta',stigInactiveDesc:'Automatycznie wyłącza konta użytkowników po 35 dniach bez logowania. Konto root i konta usługowe są wyłączone z tej reguły.',stigInactiveImpact:'Nieużywane konta są wyłączane po 35 dniach',stigLegacy:'Usuń niebezpieczne usługi starszego typu',stigLegacyDesc:'Usuwa pakiety telnet, rsh, talk, ntalk i nis, które przesyłają dane, w tym hasła, w postaci niezaszyfrowanej',stigLegacyImpact:'Brak wpływu — Proxmox korzysta z SSH',stigAuditBoot:'Audyt od startu systemu',stigAuditBootDesc:'Dodaje parametr jądra audit=1, aby włączyć audyt od pierwszej chwili uruchamiania systemu i wyeliminować lukę w rejestrowaniu zdarzeń podczas wczesnego startu',stigAuditBootImpact:'Minimalny wpływ — uruchamianie systemu dłuższe o około 1–2 s. Wymagany restart.',stigAuditRules:'Rejestrowanie poleceń uprzywilejowanych',stigAuditRulesDesc:'Rozszerzone rejestrowanie sudo/su/passwd, zmian uprawnień, modyfikacji kont, ładowania modułów jądra, konfiguracji sieci oraz zmian w /etc/pve/',stigAuditRulesImpact:'Minimalny wpływ — audyt obejmuje tylko użytkowników interaktywnych (auid>=1000)',stigAideAudit:'Ochrona narzędzi audytowych (AIDE)',stigAideAuditDesc:'Dodaje pliki binarne audytu (auditd, ausearch, aureport) do monitorowania integralności AIDE z sumami SHA512. Wymaga AIDE.',stigAideAuditImpact:'Brak wpływu — monitorowane są tylko pliki binarne narzędzi audytowych',stigMemProt:'Ochrona pamięci — utwardzanie jądra',stigMemProtDesc:'Parametry jądra: init_on_alloc=1, init_on_free=1, page_alloc.shuffle=1, slab_nomerge. Ograniczają wycieki informacji i ataki use-after-free.',stigMemProtImpact:'Narzut wydajności około 1–3%. Wymagany restart.',stigAuditLock:'Niezmienność reguł audytu',stigAuditLockDesc:'Blokuje konfigurację audytu flagą -e 2. Reguł nie można zmienić bez restartu, co utrudnia atakującemu wyłączenie audytu.',stigAuditLockImpact:'Zmiana reguł audytu wymaga restartu',pegaApparmor:'AppArmor (obowiązkowa kontrola dostępu)',pegaApparmorDesc:'Włącza AppArmor i wymusza wszystkie profile. Ogranicza dostęp programów nawet po ich przejęciu, dodając warstwę ochrony ponad standardowe uprawnienia plików.',pegaApparmorImpact:'Brak wpływu na standardowe PVE — niestandardowe usługi mogą wymagać własnych profili',pegaDisableSvc:'Wyłącz zbędne usługi',pegaDisableSvcDesc:'Zatrzymuje i wyłącza Bluetooth, CUPS (drukowanie) oraz Avahi (mDNS). Mniejsza liczba działających usług oznacza mniejszą powierzchnię ataku.',pegaDisableSvcImpact:'Brak lokalnego drukowania i Bluetooth — bez znaczenia dla serwerów',pegaSysctl:'Utwardzanie sieci i jądra przez sysctl',pegaSysctlDesc:'Stosuje ponad 20 parametrów sysctl: ochronę przed spoofingiem IP, blokowanie przekierowań ICMP, ochronę przed SYN flood, ASLR, ograniczenie dmesg, ptrace scope i ochronę dowiązań symbolicznych.',pegaSysctlImpact:'Brak wpływu — standardowe utwardzanie serwera produkcyjnego',pegaAuditd:'Włącz demona audytu (auditd)',pegaAuditdDesc:'Instaluje i włącza auditd do rejestrowania zdarzeń systemowych. Połącz z regułą STIG „Rejestrowanie poleceń uprzywilejowanych”, aby uzyskać pełniejsze reguły audytu.',pegaAuditdImpact:'Minimalne obciążenie — wymagane jako podstawa dla reguł audytu',createAffinityRule:'Utwórz regułę',editAffinityRule:'Edytuj regułę',ruleName:'Nazwa reguły',ruleType:'Typ reguły',selectVms:'Wybierz maszyny',noAffinityRules:'Brak reguł kolokacji',enforceRule:'Wymuszaj regułę',enforceRuleHint:'Blokuj migracje, które naruszałyby tę regułę',consoleSettings:'Porty konsoli',vncPort:'Port VNC',shellPort:'Port powłoki',consolePortHint:'VNC dla konsol VM, powłoka dla terminali węzłów. Po zmianie wymagany jest restart serwera!',nodeShellHint:'Aby uzyskać dostęp do powłoki węzła lub zobaczyć szczegółowe dane wydajności, użyj przycisku Proxmox UI powyżej albo połącz się bezpośrednio z węzłem.',selfSignedCertWarning:'Certyfikaty samopodpisane',selfSignedCertHint:'VNC i powłoka działają na osobnych portach. W przypadku certyfikatów samopodpisanych trzeba zaakceptować je jednorazowo w przeglądarce.',openVncPort:'Otwórz port VNC',openShellPort:'Otwórz port powłoki',certInstructions:'Dla certyfikatów samopodpisanych:',certStep1:'1. Otwórz ten link w nowej karcie:',certStep2:'2. Zaakceptuj certyfikat w przeglądarce',certStep3:'3. Wróć tutaj i spróbuj ponownie',acceptCert:'Zaakceptuj certyfikat',openInProxmox:'Otwórz w Proxmox',wsConnectionFailed:'Połączenie WebSocket nie powiodło się',checkServerLogs:'Sprawdź logi serwera, aby uzyskać szczegóły',connectingWs:'Łączenie WebSocket',wsConnected:'WebSocket połączony, oczekiwanie na serwer...',ipFetchFailed:'Nie udało się pobrać adresu IP',smtpSettings:'Ustawienia SMTP',smtpHost:'Serwer SMTP',smtpPort:'Port',smtpUser:'Nazwa użytkownika',smtpPassword:'Hasło',smtpFromEmail:'Adres nadawcy',smtpFromName:'Nazwa nadawcy',smtpTls:'Użyj TLS',smtpSsl:'Użyj SSL',alertCooldown:'Odstęp między alertami (sekundy)',alertUpdateAvailable:'Wyślij e-mail, gdy dostępna będzie aktualizacja PegaProx',alertUpdateAvailableDesc:'Sprawdzane raz dziennie. Dla każdej nowej wersji wysyłane jest jedno powiadomienie do odbiorców podanych powyżej.',migrationHistory:'Historia migracji',noMigrationHistory:'Brak zarejestrowanych migracji',passwordExpiry:'Ważność hasła',passwordExpiryDesc:'Wymuszaj zmianę hasła po określonej liczbie dni.',passwordExpiryHint:'Użytkownicy otrzymują przypomnienia e-mail 14, 7, 3 i 1 dzień przed wygaśnięciem hasła. W interfejsie wyświetlany jest również baner ostrzegawczy. Do wysyłania wiadomości wymagane jest skonfigurowane SMTP.',sendExpiryEmails:'Wysyłaj powiadomienia e-mail przed wygaśnięciem hasła',expiryDays:'Hasło wygasa po',warningDays:'Ostrzegaj użytkowników przed wygaśnięciem',passwordExpired:'Twoje hasło wygasło!',passwordExpiresIn:'Twoje hasło wygaśnie za {days} dni',pleaseChangeNow:'Zmień je teraz.',pleaseChangeSoon:'Zmień je wkrótce.',dismissForNow:'Przypomnij później',forcePasswordReset:'Wymuś reset haseł',forcePasswordResetDesc:'Natychmiast wygasza hasła wszystkich użytkowników. Użyj tej funkcji po incydencie bezpieczeństwa.',resetAllPasswords:'Zresetuj wszystkie',confirmPasswordReset:'Potwierdź reset haseł',resetAllWarning:'Spowoduje to wymuszenie zmiany hasła przez WSZYSTKICH użytkowników przy następnym logowaniu. Tej operacji nie można cofnąć.',includeAdmins:'Uwzględnij konta administratorów',includeAdminsWarning:'Ostrzeżenie: również Ty będziesz musiał zmienić swoje hasło!',includeAdminsInExpiry:'Uwzględnij konta administratorów',includeAdminsInExpiryDesc:'Administratorzy również będą musieli regularnie zmieniać swoje hasła',appearance:'Wygląd',themeDesc:'Wybierz motyw kolorystyczny interfejsu',themeNote:'Zmiany motywu są stosowane natychmiast i zapisywane na Twoim koncie.',chooseTheme:'Wybierz motyw',themePersonal:'Wybierz motyw odpowiadający Twoim preferencjom. To ustawienie jest osobiste i dotyczy tylko Twojego konta.',defaultTheme:'Domyślny motyw',defaultThemeDesc:'Ustaw domyślny motyw dla nowych użytkowników. Użytkownicy mogą zmienić swój motyw w sekcji Mój profil.',currentDefault:'Bieżący domyślny',themeInProfile:'Zmień motyw w sekcji Mój profil (kliknij nazwę użytkownika w prawym górnym rogu)',layoutStyle:'Styl układu',layoutStyleDesc:'Wybierz nowoczesny pulpit lub klasyczny styl korporacyjny.',layoutModern:'Nowoczesny',layoutModernDesc:'Pulpit z kartami, animacjami i gradientami',layoutCorporate:'Korporacyjny',layoutCorporateDesc:'Klasyczny styl korporacyjny — zwarty widok danych',layoutCloudDesc:'Przestronna siatka kart w stylu chmurowym',layoutSelectionDesc:'Wybierz preferowany styl interfejsu. Możesz go zmienić w dowolnym momencie w Mój profil → Styl układu.',layoutSelectionHint:'Możesz to zmienić w dowolnym momencie w Mój profil → Styl układu',topologyView:'Topologia',worldMap:'Mapa świata',worldMapHint:'Lokalizacje klastrów',zoomIn:'Powiększ',zoomOut:'Pomniejsz',resetZoom:'Resetuj powiększenie',showCapitals:'Pokaż stolice',hideCapitals:'Ukryj stolice',worldMapLoading:'Ładowanie mapy…',worldMapLoadFailed:'Nie udało się załadować mapy świata',worldMapNoneSet:'Brak klastrów na mapie.',worldMapSetHint:'Ustaw szerokość i długość geograficzną klastra, aby umieścić go na mapie.',clusterLocations:'Lokalizacje klastrów',locationNotSet:'Lokalizacja nieustawiona',latitude:'Szerokość geograficzna',longitude:'Długość geograficzna',locationLabelField:'Etykieta',locationLabelOptional:'opcjonalnie',saveLocation:'Zapisz lokalizację',savingLocation:'Zapisywanie…',clearLocation:'Wyczyść',locationSaved:'Zapisano.',editLocation:'Edytuj',setLocation:'Ustaw',statusConnected:'połączono',statusDisconnected:'rozłączono',plottedOfTotal:'na mapie',diagramView:'Diagram',cardView:'Karty',exportDiagram:'Eksportuj diagram',exportAsPng:'Eksportuj jako PNG',exportAsJpg:'Eksportuj jako JPG',exportAsPdf:'Eksportuj jako PDF',noGuests:'brak gości',backupServers:'Serwery kopii',breadcrumbAll:'Wszystkie',taskbarAutoExpand:'Automatyczne rozwijanie paska zadań',showVmidSidebar:'Pokaż identyfikatory VM na pasku bocznym',showVmidSidebarDesc:'Pokazuj VMID obok nazwy każdej maszyny w drzewie paska bocznego',showVmidSidebarOn:'Identyfikatory VM są widoczne na pasku bocznym',showVmidSidebarOff:'Identyfikatory VM są ukryte',taskbarAutoExpandDesc:'Automatycznie rozwijaj pasek zadań po rozpoczęciu nowych zadań',taskbarAutoExpandEnabled:'Automatyczne rozwijanie paska zadań włączone',taskbarAutoExpandDisabled:'Automatyczne rozwijanie paska zadań wyłączone',dragToResize:'Przeciągnij, aby zmienić rozmiar',userColumnHint:'Pokazuje użytkownika PegaProx, jeśli jest dostępny; w przeciwnym razie użytkownika Proxmox',support:'Wsparcie',supportBundle:'Pakiet diagnostyczny',supportBundleDesc:'Generuje pakiet diagnostyczny zawierający logi, konfigurację i informacje systemowe pomocne w rozwiązywaniu problemów. Dane wrażliwe (hasła, tokeny, sekrety) są automatycznie usuwane.',bundleContents:'Zawartość pakietu',bundleSystemInfo:'Informacje systemowe (wersja, platforma, Python)',bundleClusterStatus:'Stan połączeń z klastrami',bundleAuditLogs:'Ostatnie wpisy dziennika audytu (500 ostatnich)',bundleAppLogs:'Logi aplikacji (1000 ostatnich linii)',bundleDbSchema:'Schemat bazy danych i statystyki',bundleServerSettings:'Ustawienia serwera (hasła usunięte)',bundleUserList:'Lista użytkowników (bez danych wrażliwych)',bundleRecentTasks:'Ostatnie zadania Proxmox',bundleSseStats:'Statystyki połączeń SSE/SSH',generatingBundle:'Generowanie pakietu diagnostycznego...',bundleDownloaded:'Pakiet diagnostyczny został pobrany',bundleError:'Nie udało się wygenerować pakietu diagnostycznego',downloadBundle:'Pobierz pakiet diagnostyczny',bundleSize:'Typowy rozmiar: 50–500 KB',supportResources:'Materiały pomocy',reportIssue:'Zgłoś problem',discussions:'Dyskusje',documentation:'Dokumentacja',releases:'Wydania',quickSystemInfo:'Szybkie informacje o systemie',rescan:'Skanuj ponownie',rescanningStorage:'Ponowne skanowanie magazynu...',storageRescanSuccess:'Ponowne skanowanie magazynu zakończone',storageRescanError:'Nie udało się ponownie przeskanować magazynu',rescanStorageTooltip:'Przeskanuj magazyn ponownie, aby wykryć nowe LUN-y lub woluminy',deepRescanningStorage:'Skanowanie szczegółowe (z pvresize)...',rescanOptions:'Opcje ponownego skanowania',quickRescan:'Szybkie skanowanie',quickRescanDesc:'Odświeża stan magazynu przez API. Użyj do zwykłej aktualizacji statusu.',deepRescan:'Skanowanie szczegółowe',deepRescanDesc:'Ponowne skanowanie SCSI przez SSH, rekonfiguracja multipath i automatyczne pvresize. Użyj po rozszerzeniu LUN-u lub dodaniu nowych LUN-ów.',deepRescanNote:'Wymaga dostępu SSH do węzłów',rescanStorage:'Skanuj magazyn ponownie',rescanStorageDesc:'Przeskanuj magazyn ponownie, aby wykryć zmiany.',themeChanged:'Motyw zmieniono na',themeChangeFailed:'Nie udało się zapisać motywu',uiLayout:'Układ interfejsu',layoutDesc:'Wybierz jeden z dostępnych układów interfejsu.',inventory:'Inwentarz',selectItem:'Wybierz element z drzewa',snapshotsOverview:'Przegląd migawek',snapshotsCleanUp:'Czyszczenie',snapshotsDesc:'Przegląd najstarszych migawek w tym klastrze',snapshotsHint:'Przegląd najstarszych migawek wszystkich maszyn i kontenerów w klastrze.',snapshotsType:'Typ',snapshotsDate:'Utworzono',snapshotsAge:'Wiek',snapshotsAction:'Akcja',filterNodesVms:'Filtruj węzły lub VM…',toggleAffinityEdges:'Pokaż/ukryj połączenia reguł powiązań',affinity:'Powiązania',toggleLegend:'Pokaż/ukryj legendę',lxcTerminal:'Terminal kontenera',toggleStorageTier:'Pokaż/ukryj warstwę magazynu',toggleNetworkTier:'Pokaż/ukryj warstwę sieciową',legend:'Legenda',legendOnline:'Węzeł online',legendOffline:'Węzeł offline',legendLowLoad:'CPU/RAM < 60 %',legendMidLoad:'CPU/RAM 60–80 %',legendHighLoad:'CPU/RAM > 80 %',legendVm:'VM / LXC uruchomione',legendVmStopped:'VM / LXC zatrzymane',legendAntiAff:'Krawędź anti-affinity',legendAff:'Krawędź affinity',legendHint:'Przeciągnij, aby przesunąć · przewiń, aby powiększyć · najedź, aby zobaczyć szczegóły',quorumAtRisk:'quorum zagrożone',nodesOffline:'węzłów offline',openWebUI:'Otwórz interfejs WWW',noHostKnown:'Brak znanego hosta dla tego klastra',openVmWebUI:'Otwórz interfejs WWW',setVmWebLink:'Ustaw adres URL WWW…',editVmWebLink:'Edytuj adres URL WWW…',setVmWebLinkPrompt:'Adres URL WWW tej maszyny lub kontenera (pozostaw puste, aby usunąć):',vmWebLinkSaved:'Adres WWW zapisany',vmWebLinkCleared:'Adres WWW usunięty',guestFilesystems:'Użycie systemów plików',exportFullCsv:'Pełny eksport CSV',exportFullCsvHint:'Eksport CSV po stronie serwera ze wszystkimi wpisami (do 10000)',exportFilteredHint:'Eksportuj widoczne wiersze z zastosowanym bieżącym filtrem',activeSessions:'Aktywne sesje',activeSessionsDesc:'Miejsca, w których jesteś obecnie zalogowany. Cofnij każdą sesję, której nie rozpoznajesz.',currentSession:'ta przeglądarka',lastActive:'Ostatnia aktywność',revoke:'Cofnij',revokeSession:'Cofnij tę sesję',sessionRevoked:'Sesja cofnięta',confirmRevokeCurrent:'Cofnięcie tej sesji spowoduje wylogowanie. Kontynuować?',noSessions:'Brak aktywnych sesji.',portalOnlyAccount:'To konto może logować się wyłącznie przez Portal klienta (/portal)',copyTokenNow:'Skopiuj token teraz — nie zostanie wyświetlony ponownie!',renameVm:'Zmień nazwę VM',renameVmDesc:'Zmień nazwę wyświetlaną',cloneVm:'Klonuj VM',cloneVmDesc:'Utwórz identyczną kopię',v2pMigrationDesc:'Migracja V2P z minimalnym przestojem',deleteVm:'Usuń VM',powerOffFirst:'Najpierw wyłącz VM, aby ją usunąć',permanentlyRemoveVm:'Trwale usuń tę VM',filterPermissions:'Filtruj uprawnienia…',clearAll:'Wyczyść',noMatchingPermissions:'Brak uprawnień pasujących do filtra.',pegaFail2ban:'fail2ban — SSH + PVE Web-UI',pegaFail2banDesc:'Instaluje fail2ban z jailami dla sshd oraz uwierzytelniania Proxmox Web-UI/API. Zasada: 5 nieudanych logowań w ciągu 10 minut powoduje blokadę IP na 24 godziny. Plik znacznikowy /etc/fail2ban/jail.d/pegaprox-pve.conf umożliwia bezpieczne ponowne zastosowanie.',pegaFail2banImpact:'Znikomy wpływ — odczytuje /var/log/daemon.log i /var/log/auth.log. Zablokowane adresy IP sprawdzisz poleceniem `fail2ban-client status proxmox`.',hardwareKeys:'Klucze sprzętowe',hardwareKeysDesc:'YubiKey, Nitrokey, Touch ID, Windows Hello. Używaj jako drugiego składnika logowania. Zarejestruj kilka kluczy, aby mieć zapasowy.',addHardwareKey:'Dodaj klucz bezpieczeństwa',hardwareKeyNamePrompt:'Nazwij ten klucz (np. „YubiKey 5C, biuro”)',hardwareKeyAdded:'Klucz bezpieczeństwa dodany',hardwareKeyRemoved:'Klucz usunięty',noHardwareKeys:'Brak zarejestrowanych kluczy sprzętowych.',confirmRemoveKey:'Usunąć ten klucz?',added:'Dodano',lastUsed:'Ostatnio użyty',browserNoWebauthn:'Przeglądarka nie obsługuje WebAuthn',webauthnUnavailable:'WebAuthn nie jest dostępny na tym serwerze (biblioteka fido2 nie jest zainstalowana).',useSecurityKey:'Użyj klucza bezpieczeństwa',or:'lub',webauthnIpHostTitle:'WebAuthn nie może być używany z adresami IP',webauthnIpHostDesc:'Otwórz PegaProx przez nazwę hosta (np. https://localhost:5000 lub https://your-server.local:5000), aby zarejestrować klucz bezpieczeństwa. Adresy IP takie jak 127.0.0.1 nie są dozwolone przez specyfikację WebAuthn.',capacityOutlook:'Prognoza pojemności',nodeAtRisk:'węzeł zagrożony',nodesAtRisk:'węzłów zagrożonych',allNodesStable:'wszystkie węzły stabilne',peakScore:'szczyt',wmaEngine:'Prognoza',capacityCollecting:'zbieranie danych…',metricAtRisk:'metryka zagrożona',metricsAtRisk:'metryk zagrożonych',allMetricsStable:'wszystkie metryki stabilne',overThreshold:'powyżej progu',etaIn:'przekroczy próg za',forecastEngine:'Prognoza',stable:'stabilne',metric:'metryka',commandPalettePlaceholder:'Wpisz, aby wyszukać klastry, VM lub akcje…',commandPaletteNoResults:'Brak wyników pasujących do zapytania.',navigate:'nawiguj',select:'wybierz',alertChannels:'Kanały alertów',alertChannelsDesc:'Wysyłaj alerty do Slack, Discord, Teams, ntfy lub dowolnego webhooka JSON. Kanały działają niezależnie od powiadomień e-mail.',addChannel:'Dodaj kanał',noChannels:'Brak skonfigurowanych kanałów.',testChannel:'Testuj',confirmDeleteChannel:'Usuń kanał',channelSaved:'Kanał zapisany',channelDeleted:'Kanał usunięty',token:'Token',accountLocked:'Zbyt wiele nieudanych prób. Spróbuj ponownie za około {mins} min.',strictSessionIp:'Ścisłe przypisanie sesji do IP',strictSessionIpLabel:'Unieważnij sesję po zmianie źródłowego adresu IP',strictSessionIpDesc:'Zapobiega użyciu ciasteczka sesji z innej sieci po jego przejęciu. Uwaga: użytkownicy mobilni za NAT operatora lub przełączający VPN mogą zostać wylogowani po zmianie adresu IP.',passwordChangedReloginRequired:'Hasło zostało zmienione — zaloguj się ponownie.',namespaceShort:'NS',reportSummary:'Podsumowanie',reportInventory:'Inwentarz',reportGap:'Analiza luk',reportWindow:'Zakres czasu',last7d:'Ostatnie 7 dni',last30d:'Ostatnie 30 dni',last90d:'Ostatnie 90 dni',last365d:'Ostatnie 365 dni',pickClusterForGap:'Wybierz klaster powyżej, aby uruchomić analizę luk',pickClusterForGapDesc:'Pokazuje, które VM w wybranym klastrze są chronione, mają nieaktualne kopie lub nie są w ogóle chronione na tym PBS.',noBackupsInWindow:'Brak kopii w wybranym zakresie czasu',noMatchingBackups:'Brak pasujących kopii',searchBackups:'Szukaj po nazwie VM, ID lub datastore…',unverifiedOld:'migawek starszych niż 30 dni bez udanej weryfikacji.',perDayActivity:'Aktywność dzienna',perVmRollup:'Ostatnia kopia dla każdej VM',totalJobs:'Łączna liczba zadań',successRate:'Wskaźnik powodzenia',stale:'Nieaktualne',protected:'Chronione',unprotected:'Niechronione',location:'Lokalizacja',daysAgo:'dni temu',now:'teraz',entries:'wpisy',namespace:'Przestrzeń nazw',unprotectedVms:'Niechronione VM',staleBackups:'Nieaktualne (ostatnia kopia starsza niż wybrany zakres)',backupInventory:'Inwentarz kopii zapasowych',firstDetected:'Wykryto po raz pierwszy',noFix:'brak rozwiązania',backupRunning:'Uruchomiono kopię zapasową',apiHealth:'Stan API',compare:'Porównaj',compareSnapshot:'Porównaj z bieżącą konfiguracją',pbsHealth:'Stan PBS',liveBackupProgress:'Trwa tworzenie kopii zapasowej…',preflightOk:'Wszystkie testy zakończone pomyślnie',preflightCheck:'Kontrola wstępna (PBS)',runCheck:'Uruchom kontrolę',autoFetch:'Pobieraj automatycznie',showUnchanged:'Pokaż bez zmian',noDifferences:'Brak różnic',generateKey:'Wygeneruj klucz',downloadJson:'Pobierz JSON',printRecoverySheet:'Drukuj kartę odzyskiwania',fingerprintMismatch:'Niezgodność odcisku',worstDatastore:'Najbardziej obciążony datastore',newestBackup:'Najnowsza kopia',fullIn:'Zapełni się za',liveFingerprint:'Bieżący odcisk',tcpReachable:'TCP osiągalne',authOk:'Uwierzytelnianie OK',datastoreFound:'Datastore znaleziony',keyboardShortcuts:'Skróty klawiaturowe',exportJson:'Eksport JSON',copyToClipboard:'Kopiuj do schowka',copied:'Skopiowano',liveUpdatesDisconnected:'Aktualizacje na żywo rozłączone',tryingReconnect:'Próba ponownego połączenia',autoSnapshotBeforeDelete:'Migawka przed operacją destrukcyjną',autoSnapshotBeforeDeleteDesc:'Automatycznie utwórz migawkę przed usunięciem, odtworzeniem lub migracją między klastrami.',filterRunning:'Uruchomione',filterStopped:'Zatrzymane',filterHasSnapshot:'Ma migawkę',filterHaProtected:'HA',clearFilter:'Wyczyść',bulkSelect:'Wybór zbiorczy',bulkSelected:'Wybrano: {n}',bulkAction:'Akcja',shortcutsHint:'Naciśnij ?, aby wyświetlić skróty',themeToggle:'Przełącz motyw',clusterHealthSshMissing:'Stan klastra wymaga dostępu SSH z PegaProx do węzła (corosync-cfgtool, pvecm, systemctl). Skonfiguruj poświadczenia SSH terminala węzła dla klastra i odśwież.',rollups:'Podsumowania',pools:'pule',byTag:'Według tagu',byPool:'Według puli',tag:'Tag',noGroupings:'Brak pogrupowanych VM.',rollupsHint:'VM z wieloma tagami są uwzględniane w podsumowaniu każdego tagu. CPU to suma bieżącego użycia w %, RAM/Dysk to zagregowane poziomy zapełnienia, a Net I/O jest liczone od uruchomienia VM.',sensors:'Sensory',sensor:'Czujnik',sensorsHint:'Sensory sprzętowe przez lm-sensors. Wartości czerwone przekraczają próg krytyczny, żółte przekraczają maksimum.',temperatureC:'Temperatura (°C)',tempHistoryTitle:'Temperatura w czasie (najcieplejszy sensor)',samples:'próbki',hardwareMonitoring:'Monitoring sprzętu',hardwareMonitoringDisabledDesc:'Monitoring sprzętu in-band (IPMI) nie jest włączony. Odczytuje sensory, pobór mocy, inwentarz i dziennik zdarzeń sprzętowych bezpośrednio na węźle — bez poświadczeń, tylko do odczytu.',enableHardwareMonitoring:'Włącz monitoring sprzętu',hwEnabled:'Monitoring sprzętu włączony',hwEnabledBy:'Włączone przez',hwReadFailed:'Nie udało się odczytać sprzętu',hwIpmitoolMissing:'ipmitool nie jest zainstalowany na tym węźle.',hwInstallHint:'PegaProx uruchomi apt-get install ipmitool na węźle i może załadować moduły jądra IPMI. Tryb tylko do odczytu, wyłącznie lokalne IPMI.',hwInstallIpmitool:'Zainstaluj ipmitool',hwInstalling:'Instalowanie…',hwInstallDone:'ipmitool zainstalowany',hwInstallFailed:'Instalacja ipmitool nie powiodła się',hwNoData:'Brak danych sprzętowych',hwSystemInfo:'Informacje systemowe',hwSensors:'Sensory',hwEventLog:'Dziennik zdarzeń sprzętowych (SEL)',hwConfirmDefault:'Rozumiem i akceptuję odpowiedzialność za włączenie tej funkcji',hwEnable:'Włącz',powerDraw:'Pobór mocy',partNumber:'Nr części',chassisIntrusion:'Naruszenie obudowy',hardwareHealth:'Stan sprzętu',degradedHardware:'Sprzęt w stanie obniżonym',hwAlertWarnPlus:'Ostrzeżenie lub gorzej',hwAlertCritOnly:'Tylko krytyczne',clustersDegradedHwNamed:'{count} klastrów ze sprzętem w stanie obniżonym: {names}',redfishOob:'Poza pasmem (Redfish)',redfishOobDesc:'Odczyt stanu sprzętu przez sieć zarządzania za pomocą API BMC Redfish — wariant poza pasmem, oparty na poświadczeniach, używany gdy in-band IPMI jest niedostępne.',redfishBmcHint:'Endpoint BMC dla tego węzła. Hasło jest przechowywane w postaci zaszyfrowanej i nie będzie ponownie wyświetlane.',enableRedfish:'Włącz monitoring poza pasmem',bmcHost:'Host / IP BMC',bmcUser:'Użytkownik BMC',bmcPassword:'Hasło BMC',bmcVerifySsl:'Weryfikuj certyfikat TLS',bmcTest:'Testuj',bmcTestOk:'Osiągalny',bmcTestFail:'Niepowodzenie',bmcSaved:'Endpoint BMC zapisany',bmcRemoved:'Endpoint BMC usunięty',configVersion:'Wersja konfiguracji',corosyncRings:'Pierścienie Corosync',address:'Adres',services:'Usługi',guestDetail:'Szczegóły gościa',loggedInUsers:'Zalogowani użytkownicy',clockSkew:'Odchylenie zegara',filesystems:'Systemy plików',interfaces:'Interfejsy',topTalkers:'Najaktywniejsze VM',topTalkersHint:'CPU/RAM/Dysk są wartościami bieżącymi; Disk I/O i Net I/O są sumowane od uruchomienia VM (aktywne VM są sortowane najwyżej).',cpuPercent:'CPU %',memoryPercent:'Pamięć %',diskUsagePercent:'Dysk %',diskIo:'Dysk I/O (łącznie bajtów)',netIo:'Sieć I/O (łącznie bajtów)',runningVms:'uruchomionych VM',interfaceStatistics:'Statystyki interfejsów',errOrDropHint:'Niezerowe błędy lub dropy RX/TX są wyróżniane na czerwono. Liczniki są sumowane od uruchomienia systemu.',keyAttributes:'Kluczowe atrybuty',allAttributes:'Wszystkie atrybuty'},// French translations by @IMNotMax (PR #186)
// Falls back to EN for missing keys
fr:{guestRam:'RAM invitée',guestMemory:'Mémoire invitée',guestMemoryUnavailable:'Mémoire invitée indisponible',guestMemoryPressureTooltip:'Pression mémoire de l’invité ; indisponible si l’invité ne peut pas la signaler',hostResident:'Résident hôte',hostResidentMemory:'Mémoire résidente hôte',hostResidentMemoryTooltip:'Mémoire QEMU résidente sur l’hôte, y compris le cache invité récupérable',availableMemory:'Disponible : {value}',timeAgoSec:'il y a {n}s',timeAgoMin:'il y a {n}m',languageSimplifiedChinese:'Chinois simplifié',setupFailedHttp:'Échec de la configuration (HTTP {status})',// #612 Phase 3 — Multi-Cluster EVPN member add/remove
mcevpnMemberAdded:'Cluster ajouté au span',mcevpnMemberRemoved:'Cluster retiré du span',mcevpnRemoveConfirm:'Retirer ce cluster du span ? (le vNet reste sur le cluster)',mcevpnRemovePurgeConfirm:'Retirer ce cluster du span ET supprimer le vNet dessus ?',mcevpnRemoveMember:'Retirer du span (laisser le vNet sur le cluster)',mcevpnRemovePurge:'Retirer du span + supprimer le vNet de ce cluster',mcevpnAddMember:'Ajouter un cluster au span',mcevpnPickCluster:'— choisir un cluster —',// #612 Phase 2 — Multi-Cluster EVPN edit/drift
@@ -7637,10 +7637,10 @@