diff --git a/.github/claude/issue-analyst-context.md b/.github/claude/issue-analyst-context.md index b31354402..0234460f0 100644 --- a/.github/claude/issue-analyst-context.md +++ b/.github/claude/issue-analyst-context.md @@ -89,7 +89,7 @@ question it already answers. `cd docs && pnpm gen:api`, because `docs-ci.yml` fires only on `docs/**`. Step 4 is the one that reaches production wrong. - **i18n.** A new English key goes in EVERY locale JSON in - `internal/web/translation/` (13 files) AND must be referenced from + `internal/web/translation/` (14 files) AND must be referenced from `frontend/src` or Go in the SAME change. `frontend/src/test/i18n-dead-keys.test.ts` fails on a missing locale file and on an orphan key alike. diff --git a/CLAUDE.md b/CLAUDE.md index fbdb4684e..3784785b4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -63,7 +63,7 @@ file locations when it can answer in one hop. CPU/memory watchdogs, …); full table in `docs/architecture.md` §5.4. - `middleware/`, `entity/`, `global/`, `session/` (CSRF), `network/`, `runtime/` (master/sub-node over mTLS), `websocket/`. - - `locale/` + `translation/` — i18n, 13 embedded locale JSON files. + - `locale/` + `translation/` — i18n, 14 embedded locale JSON files. - `frontend/` — React + TS source (see `frontend/CLAUDE.md`). - `tools/openapigen/` — Go generator that emits frontend types + Zod/JSON schemas into `frontend/src/generated/` from Go structs. The OpenAPI doc itself @@ -107,7 +107,7 @@ file locations when it can answer in one hop. `cd docs && pnpm gen:api` to refresh the MDX under `docs/content/docs/en/reference/api/`. `docs-ci.yml` fires only on `docs/**`. - A new English i18n key goes in EVERY locale JSON in `internal/web/translation/` - (13 files) AND must be referenced from `frontend/src` or Go in the SAME commit — + (14 files) AND must be referenced from `frontend/src` or Go in the SAME commit — `frontend/src/test/i18n-dead-keys.test.ts` fails both ways. It is a frontend test, so run `npm test`, not just `make test-go`. At runtime the frontend falls back to en-US; Go (`internal/web/locale/`) returns "" for an unknown key. diff --git a/README.ar_EG.md b/README.ar_EG.md index 7204d4847..12d8f3146 100644 --- a/README.ar_EG.md +++ b/README.ar_EG.md @@ -41,7 +41,7 @@ - **واجهة RESTful API** مع رموز وصول محدودة النطاق وقابلة لانتهاء الصلاحية، ومرجع API داخل اللوحة. - **لوحة قابلة للتثبيت (PWA)** — ثبّت 3X-UI على سطح المكتب أو شاشة هاتفك الرئيسية. - **تخزين مرن** — SQLite (افتراضي) أو PostgreSQL. -- **13 لغة لواجهة المستخدم** مع سمات داكنة وفاتحة. +- **14 لغة لواجهة المستخدم** مع سمات داكنة وفاتحة. - **تكامل مع Fail2ban** لفرض حدود IP لكل عميل. ## لقطات الشاشة @@ -177,9 +177,9 @@ docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui ## اللغات المدعومة -تتوفر واجهة اللوحة بـ 13 لغة: +تتوفر واجهة اللوحة بـ 14 لغة: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## المساهمة diff --git a/README.es_ES.md b/README.es_ES.md index 3a96d7ba6..1b8393cf3 100644 --- a/README.es_ES.md +++ b/README.es_ES.md @@ -41,7 +41,7 @@ Construido como un fork mejorado del proyecto X-UI original, 3X-UI añade un sop - **API RESTful** con tokens de alcance limitado y caducidad opcional, y una referencia de la API dentro del panel. - **Panel instalable (PWA)** — ancla 3X-UI al escritorio o a la pantalla de inicio del móvil. - **Almacenamiento flexible** — SQLite (predeterminado) o PostgreSQL. -- **13 idiomas de interfaz** con temas oscuro y claro. +- **14 idiomas de interfaz** con temas oscuro y claro. - **Integración con Fail2ban** para aplicar límites de IP por cliente. ## Capturas de pantalla @@ -177,9 +177,9 @@ La lista completa está en la [referencia de variables de entorno](https://docs. ## Idiomas Compatibles -La interfaz del panel está disponible en 13 idiomas: +La interfaz del panel está disponible en 14 idiomas: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## Contribuir diff --git a/README.fa_IR.md b/README.fa_IR.md index aaaf25f03..6e62fd38f 100644 --- a/README.fa_IR.md +++ b/README.fa_IR.md @@ -41,7 +41,7 @@ - **‏RESTful API** با توکن‌های محدودشده (scoped) و دارای انقضای اختیاری، به‌همراه مرجع API درون‌پنل. - **پنل قابل نصب (PWA)** — 3X-UI را به دسکتاپ یا صفحه‌ی اصلی گوشی خود سنجاق کنید. - **ذخیره‌سازی منعطف** — SQLite (پیش‌فرض) یا PostgreSQL. -- **‏۱۳ زبان رابط کاربری** با تم‌های تیره و روشن. +- **‏۱۴ زبان رابط کاربری** با تم‌های تیره و روشن. - **یکپارچگی با Fail2ban** برای اعمال محدودیت IP به‌ازای هر کلاینت. ## اسکرین‌شات‌ها @@ -177,9 +177,9 @@ docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui ## زبان‌های پشتیبانی‌شده -رابط کاربری پنل به ۱۳ زبان در دسترس است: +رابط کاربری پنل به ۱۴ زبان در دسترس است: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## مشارکت diff --git a/README.md b/README.md index 9d9f3b6b7..5465a5d5b 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Built as an enhanced fork of the original X-UI project, 3X-UI adds broader proto - **RESTful API** with scoped, optionally expiring tokens and an in-panel API reference. - **Installable panel (PWA)** — pin 3X-UI to a desktop or phone home screen. - **Flexible storage** — SQLite (default) or PostgreSQL. -- **13 UI languages** with dark and light themes. +- **14 UI languages** with dark and light themes. - **Fail2ban integration** for enforcing per-client IP limits. ## Screenshots @@ -177,9 +177,9 @@ The complete list is on the [environment variables reference](https://docs.sanae ## Supported Languages -The panel UI is available in 13 languages: +The panel UI is available in 14 languages: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## Contributing diff --git a/README.ru_RU.md b/README.ru_RU.md index 0544871d4..cd634087d 100644 --- a/README.ru_RU.md +++ b/README.ru_RU.md @@ -41,7 +41,7 @@ - **RESTful API** с токенами ограниченной области действия и необязательным сроком действия, а также справочником API внутри панели. - **Устанавливаемая панель (PWA)** — закрепите 3X-UI на рабочем столе или главном экране телефона. - **Гибкое хранилище** — SQLite (по умолчанию) или PostgreSQL. -- **13 языков интерфейса** с тёмной и светлой темами. +- **14 языков интерфейса** с тёмной и светлой темами. - **Интеграция с Fail2ban** для применения лимитов IP по каждому клиенту. ## Скриншоты @@ -177,9 +177,9 @@ docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui ## Поддерживаемые языки -Интерфейс панели доступен на 13 языках: +Интерфейс панели доступен на 14 языках: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## Участие в разработке diff --git a/README.tr_TR.md b/README.tr_TR.md index d89298c96..cc88e32fb 100644 --- a/README.tr_TR.md +++ b/README.tr_TR.md @@ -41,7 +41,7 @@ Orijinal X-UI projesinin geliştirilmiş bir çatallaması (fork) olarak inşa e - Kapsamı sınırlanmış, isteğe bağlı olarak süresi dolan token'lar ve panel içi API referansı sunan **RESTful API**. - **Kurulabilir panel (PWA)** — 3X-UI'yi masaüstüne veya telefon ana ekranına sabitleyin. - **Esnek depolama** — SQLite (varsayılan) veya PostgreSQL. -- Koyu ve açık tema seçenekleriyle **13 farklı UI dili**. +- Koyu ve açık tema seçenekleriyle **14 farklı UI dili**. - Kullanıcı başına IP limitlerini zorunlu kılmak için **Fail2ban entegrasyonu**. ## Ekran Görüntüleri @@ -177,9 +177,9 @@ Tam liste [ortam değişkenleri referansında](https://docs.sanaei.dev/docs/refe ## Desteklenen Diller -Panel arayüzü 13 farklı dilde mevcuttur: +Panel arayüzü 14 farklı dilde mevcuttur: -İngilizce · Farsça · Arapça · Çince (Basitleştirilmiş) · Çince (Geleneksel) · İspanyolca · Rusça · Ukraynaca · Türkçe · Vietnamca · Japonca · Endonezce · Portekizce (Brezilya) +İngilizce · Farsça · Arapça · Çince (Basitleştirilmiş) · Çince (Geleneksel) · İspanyolca · Rusça · Ukraynaca · Türkçe · Vietnamca · Japonca · Endonezce · Portekizce (Brezilya) · Slovakça ## Katkıda Bulunma diff --git a/README.zh_CN.md b/README.zh_CN.md index 277af2eaa..4dcdc32ce 100644 --- a/README.zh_CN.md +++ b/README.zh_CN.md @@ -41,7 +41,7 @@ - **RESTful API**,支持带作用域、可设置有效期的令牌,并提供面板内置的 API 参考文档。 - **可安装面板 (PWA)** — 将 3X-UI 固定到桌面或手机主屏幕。 - **灵活的存储** — SQLite(默认)或 PostgreSQL。 -- **13 种界面语言**,支持深色和浅色主题。 +- **14 种界面语言**,支持深色和浅色主题。 - **Fail2ban 集成**,用于强制执行按客户端的 IP 限制。 ## 截图 @@ -177,9 +177,9 @@ docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW ... ghcr.io/mhsanaei/3x-ui ## 支持的语言 -面板界面提供 13 种语言: +面板界面提供 14 种语言: -English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) +English · فارسی · العربية · 中文(简体) · 中文(繁體) · Español · Русский · Українська · Türkçe · Tiếng Việt · 日本語 · Bahasa Indonesia · Português (Brasil) · Slovenčina ## 贡献 diff --git a/REVIEW.md b/REVIEW.md index 47fda3527..165dac943 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -132,7 +132,7 @@ the code already handles is not a finding at all. - Missing tests for getters, constants, renames or pure map lookups — `CLAUDE.md` rejects such tests outright. - A missing or unreferenced i18n key. - `frontend/src/test/i18n-dead-keys.test.ts` pins the 13 locale files in + `frontend/src/test/i18n-dead-keys.test.ts` pins the 14 locale files in `internal/web/translation/` in both directions, so the `frontend` job is already red. Report the failing check, not the key. diff --git a/docs/architecture.md b/docs/architecture.md index c0c21dccc..b2e1e959c 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -231,7 +231,7 @@ node heartbeat every 5s, periodic traffic resets (hourly/daily/weekly/monthly). │ │ ├── network/ # Custom net listeners (e.g. proxy-protocol aware) │ │ ├── session/ # Session/cookie helpers │ │ ├── websocket/ # WS hub implementation -│ │ ├── locale/ + translation/ # i18n middleware + 13 locale JSON catalogs +│ │ ├── locale/ + translation/ # i18n middleware + 14 locale JSON catalogs │ │ ├── entity/ # Shared request/response DTOs │ │ └── dist/ # ⚠️ Vite build output, embedded via go:embed (generated — do not hand-edit) │ │ @@ -623,7 +623,7 @@ them with a comment starting `@claude review` on a PR or `@claude analyze` on an (`FetchCertFingerprint`), `service/node_mtls.go`, and `runtime/tls_client.go`. - **Restart is signal-driven.** `main.go` traps SIGHUP to restart panel+sub servers; the in-process restart hook (`global.SetRestartHook`) funnels into the same path. -- **i18n:** backend catalogs in `internal/web/translation/` (13 locales, shared with the +- **i18n:** backend catalogs in `internal/web/translation/` (14 locales, shared with the frontend); frontend wiring in `frontend/src/i18n/`. Persian (`fa_IR`) is a first-class locale (Jalali calendar via `persian-calendar-suite`). - **Tests live next to code** (`foo.go` ↔ `foo_test.go`), plus golden snapshots in diff --git a/docs/content/docs/en/help/faq.mdx b/docs/content/docs/en/help/faq.mdx index b19b083e7..22480abaf 100644 --- a/docs/content/docs/en/help/faq.mdx +++ b/docs/content/docs/en/help/faq.mdx @@ -31,7 +31,7 @@ Import a client's share link or QR code, or use a 3x-ui is an enhanced fork of the original X-UI project. It adds broader protocol support, improved stability, per-client traffic accounting, multi-node -management, a 13-language UI, and many quality-of-life features. +management, a 14-language UI, and many quality-of-life features. ## How do I update? diff --git a/docs/content/docs/fa/help/faq.mdx b/docs/content/docs/fa/help/faq.mdx index ba090bb14..9cfc5689f 100644 --- a/docs/content/docs/fa/help/faq.mdx +++ b/docs/content/docs/fa/help/faq.mdx @@ -31,7 +31,7 @@ SQLite گزینه پیش‌فرض است و برای بیشتر استقراره 3x-ui یک فورک ارتقایافته از پروژه اصلی X-UI است. این پروژه پشتیبانی گسترده‌تری از پروتکل‌ها، پایداری بهبودیافته، حسابداری ترافیک به‌ازای هر کلاینت، مدیریت چندنودی، -یک رابط کاربری ۱۳ زبانه و بسیاری از امکانات رفاهی را اضافه می‌کند. +یک رابط کاربری ۱۴ زبانه و بسیاری از امکانات رفاهی را اضافه می‌کند. ## چگونه به‌روزرسانی کنم؟ diff --git a/docs/content/docs/ru/help/faq.mdx b/docs/content/docs/ru/help/faq.mdx index 49ca8b5a7..dce70df30 100644 --- a/docs/content/docs/ru/help/faq.mdx +++ b/docs/content/docs/ru/help/faq.mdx @@ -31,7 +31,7 @@ SQLite используется по умолчанию и подходит дл 3x-ui — это улучшенный форк оригинального проекта X-UI. Он добавляет более широкую поддержку протоколов, повышенную стабильность, поклиентский учёт трафика, управление несколькими -узлами, интерфейс на 13 языках и множество улучшений для удобства работы. +узлами, интерфейс на 14 языках и множество улучшений для удобства работы. ## Как мне обновиться? diff --git a/docs/content/docs/zh/help/faq.mdx b/docs/content/docs/zh/help/faq.mdx index 50aba2ed7..9cb9cccea 100644 --- a/docs/content/docs/zh/help/faq.mdx +++ b/docs/content/docs/zh/help/faq.mdx @@ -30,7 +30,7 @@ SQLite 是默认选项,适用于大多数部署场景。对于规模更大的 ## 3x-ui 与 x-ui 有什么区别? 3x-ui 是原版 X-UI 项目的增强分支。它增加了更广泛的协议支持、更佳的稳定性、 -按客户端的流量统计、多节点管理、13 种语言的界面,以及众多提升使用体验的功能。 +按客户端的流量统计、多节点管理、14 种语言的界面,以及众多提升使用体验的功能。 ## 我该如何更新? diff --git a/frontend/src/i18n/AntdRootConfig.tsx b/frontend/src/i18n/AntdRootConfig.tsx index ea33cc4f9..f4d6bb4fd 100644 --- a/frontend/src/i18n/AntdRootConfig.tsx +++ b/frontend/src/i18n/AntdRootConfig.tsx @@ -12,6 +12,7 @@ const antdLocaleLoaders: Record Promise<{ default: Locale }>> = { 'ja-JP': () => import('antd/es/locale/ja_JP'), 'pt-BR': () => import('antd/es/locale/pt_BR'), 'ru-RU': () => import('antd/es/locale/ru_RU'), + 'sk-SK': () => import('antd/es/locale/sk_SK'), 'tr-TR': () => import('antd/es/locale/tr_TR'), 'uk-UA': () => import('antd/es/locale/uk_UA'), 'vi-VN': () => import('antd/es/locale/vi_VN'), diff --git a/frontend/src/test/i18n-dead-keys.test.ts b/frontend/src/test/i18n-dead-keys.test.ts index a12ccf60b..a8b595f64 100644 --- a/frontend/src/test/i18n-dead-keys.test.ts +++ b/frontend/src/test/i18n-dead-keys.test.ts @@ -5,7 +5,7 @@ import { join, resolve } from 'node:path'; import { describe, expect, it } from 'vitest'; /* - * Guards the 13-locale translation set two ways: every key in en-US must be + * Guards the 14-locale translation set two ways: every key in en-US must be * referenced somewhere in the frontend or Go sources (dead keys accumulate * silently — this test deleted over two hundred of them when it was * introduced), and every locale must carry exactly the en-US key set @@ -77,7 +77,7 @@ describe('i18n keys', () => { const dead = enKeys.filter( (key) => !tokens.has(key) && !prefixes.some((p) => key.startsWith(p)), ); - expect(dead, `dead i18n keys (delete from all 13 locales):\n ${dead.join('\n ')}`).toEqual( + expect(dead, `dead i18n keys (delete from all 14 locales):\n ${dead.join('\n ')}`).toEqual( [], ); }); diff --git a/frontend/src/test/language-scope.test.ts b/frontend/src/test/language-scope.test.ts index c8b75a722..341e479be 100644 --- a/frontend/src/test/language-scope.test.ts +++ b/frontend/src/test/language-scope.test.ts @@ -41,6 +41,24 @@ describe('subscription language scope', () => { expect(dateTimeFormat).toHaveBeenLastCalledWith('fa-IR', expect.any(Object)); }); + it('maps a Slovak browser to the Slovak panel locale instead of resetting to English', async () => { + vi.resetModules(); + const utils = await import('@/utils'); + const cookies = new Map(); + vi.spyOn(utils.CookieManager, 'getCookie').mockImplementation( + (name) => cookies.get(name) ?? '', + ); + vi.spyOn(utils.CookieManager, 'setCookie').mockImplementation((name, value) => { + cookies.set(name, value); + }); + const reload = vi.fn(); + vi.stubGlobal('window', { navigator: { language: 'sk' }, location: { reload } }); + + expect(utils.LanguageManager.getLanguage()).toBe('sk-SK'); + expect(cookies.get('lang')).toBe('sk-SK'); + expect(reload).not.toHaveBeenCalled(); + }); + it('does not resolve the language for empty or invalid dates', async () => { const utils = await import('@/utils'); const getLanguage = vi.spyOn(utils.LanguageManager, 'getLanguage').mockReturnValue('en-US'); diff --git a/frontend/src/utils/index.ts b/frontend/src/utils/index.ts index 4b21a87c9..e3f781620 100644 --- a/frontend/src/utils/index.ts +++ b/frontend/src/utils/index.ts @@ -901,6 +901,7 @@ export class LanguageManager { { name: 'Український', value: 'uk-UA', icon: '🇺🇦' }, { name: 'Türkçe', value: 'tr-TR', icon: '🇹🇷' }, { name: 'Português', value: 'pt-BR', icon: '🇧🇷' }, + { name: 'Slovenčina', value: 'sk-SK', icon: '🇸🇰' }, ]; static getLanguage(scope: LanguageScope = 'panel'): string { @@ -931,6 +932,7 @@ export class LanguageManager { ['uk', LanguageManager.supportedLanguages[10].value], ['tr', LanguageManager.supportedLanguages[11].value], ['pt', LanguageManager.supportedLanguages[12].value], + ['sk', LanguageManager.supportedLanguages[13].value], ]; simularLangs.forEach((pair) => { diff --git a/internal/web/translation/sk-SK.json b/internal/web/translation/sk-SK.json new file mode 100644 index 000000000..42e2cc3d3 --- /dev/null +++ b/internal/web/translation/sk-SK.json @@ -0,0 +1,2789 @@ +{ + "username": "Používateľské meno", + "password": "Heslo", + "login": "Prihlásiť sa", + "confirm": "Potvrdiť", + "cancel": "Zrušiť", + "close": "Zavrieť", + "save": "Uložiť", + "logout": "Odhlásiť sa", + "create": "Vytvoriť", + "add": "Pridať", + "remove": "Odstrániť", + "update": "Aktualizovať", + "copy": "Kopírovať", + "copied": "Skopírované", + "more": "viac", + "download": "Stiahnuť", + "regenerate": "Vygenerovať znova", + "jsonEditor": "Editor JSON", + "downloadImage": "Stiahnuť obrázok", + "sort": "Zoradiť", + "remark": "Názov", + "enable": "Zapnuté", + "protocol": "Protokol", + "search": "Hľadať", + "filter": "Filtrovať", + "all": "Všetko", + "from": "Od", + "to": "Do", + "done": "Hotovo", + "loading": "Načítava sa…", + "refresh": "Obnoviť", + "clear": "Vyčistiť", + "second": "Sekunda", + "minute": "Minúta", + "hour": "Hodina", + "day": "Deň", + "check": "Skontrolovať", + "indefinite": "Bez časového obmedzenia", + "unlimited": "Bez obmedzenia", + "none": "Žiadne", + "qrCode": "QR kód", + "info": "Ďalšie informácie", + "edit": "Upraviť", + "delete": "Odstrániť", + "reset": "Vynulovať", + "noData": "Zatiaľ tu nič nie je", + "copySuccess": "Úspešne skopírované", + "sure": "Áno", + "encryption": "Šifrovanie", + "transmission": "Prenos", + "host": "Hostiteľ", + "path": "Cesta", + "camouflage": "Maskovanie", + "status": "Stav", + "enabled": "Zapnuté", + "disabled": "Vypnuté", + "depleted": "Ukončené", + "depletingSoon": "Blíži sa vyčerpanie", + "offline": "Offline", + "online": "Online", + "domainName": "Doména", + "monitor": "IP adresa na počúvanie", + "certificate": "Digitálny certifikát", + "fail": "Nepodarilo sa", + "comment": "Poznámka", + "success": "Úspešné", + "lastOnline": "Naposledy online", + "lastSubFetch": "Posledné načítanie odberu", + "getVersion": "Zistiť verziu", + "install": "Nainštalovať", + "clients": "Klienti", + "usage": "Spotreba", + "twoFactorCode": "Kód", + "remained": "Zostáva", + "security": "Bezpečnosť", + "emptyDnsDesc": "Zatiaľ nie sú pridané žiadne DNS servery.", + "emptyFakeDnsDesc": "Zatiaľ nie sú pridané žiadne servery Fake DNS.", + "emptyBalancersDesc": "Zatiaľ nie je pridané žiadne vyvažovanie záťaže.", + "somethingWentWrong": "Niečo sa nepodarilo", + "subscription": { + "title": "Informácie o pripojení", + "status": "Stav", + "downloaded": "Stiahnuté", + "uploaded": "Odoslané", + "expiry": "Platnosť do", + "totalQuota": "Celkový dátový limit", + "individualLinks": "Samostatné odkazy", + "active": "Aktívne", + "inactive": "Neaktívne", + "unlimited": "Bez obmedzenia", + "noExpiry": "Bez obmedzenia platnosti", + "copyAllConfigs": "Skopírovať všetky konfigurácie", + "copyAllConfigsCopied": "Všetky konfigurácie sú skopírované", + "daysLeft": "Zostávajúce dni", + "expired": "Platnosť skončila", + "depleted": "Dátový limit je vyčerpaný", + "ofTotal": "z {total}", + "tabLinks": "Odber konfigurácií", + "tabApps": "Aplikácie", + "tabConfigs": "Konfigurácie", + "scanTitle": "Naskenujte telefónom", + "scanHint": "Naskenujte tento kód vo svojej VPN aplikácii. Odber konfigurácií sa pridá bez kopírovania odkazu.", + "updateInterval": "Interval automatického obnovenia (hodiny): {hours}", + "support": "Podpora", + "qrTitle": "Naskenovať. Importovať. Pripojiť sa.", + "qrHint": "Naskenujte kód v klientskej aplikácii. Nikomu ho nesprístupňujte.", + "saveQr": "Uložiť QR kód" + }, + "menu": { + "theme": "Vzhľad", + "dashboard": "Prehľad", + "inbounds": "Vstupy", + "clients": "Klienti", + "groups": "Skupiny", + "nodes": "Servery", + "hosts": "Adresy serverov", + "settings": "Nastavenia panelu", + "xray": "Nastavenia Xray", + "routing": "Smerovanie", + "outbounds": "Výstupy", + "apiDocs": "Dokumentácia API", + "donate": "Podporiť projekt", + "sponsors": "Sponzori", + "docs": "Dokumentácia", + "openMenu": "Otvoriť menu", + "pinSidebar": "Pripnúť bočné menu", + "unpinSidebar": "Odopnúť bočné menu", + "subFormats": "Formáty odberu" + }, + "pages": { + "login": { + "hello": "Dobrý deň", + "title": "Vitajte", + "loginAgain": "Platnosť prihlásenia vypršala. Prihláste sa znova.", + "toasts": { + "invalidFormData": "Zadané údaje majú neplatný formát.", + "emptyUsername": "Zadajte používateľské meno", + "emptyPassword": "Zadajte heslo", + "wrongUsernameOrPassword": "Nesprávne používateľské meno, heslo alebo kód dvojfaktorového overenia.", + "successLogin": "Úspešne ste sa prihlásili." + } + }, + "index": { + "cpu": "CPU", + "swap": "Swap", + "storage": "Úložisko", + "memory": "RAM", + "xrayStatus": "Xray", + "stopXray": "Zastaviť", + "restartXray": "Reštartovať", + "xraySwitch": "Verzia", + "xrayUpdates": "Aktualizácie Xray", + "xraySwitchClickDesk": "Verziu vyberajte opatrne. Staršie verzie nemusia podporovať aktuálnu konfiguráciu.", + "updatePanel": "Aktualizovať panel", + "panelUpdateDesc": "Aktualizuje sa samotný 3X-UI na najnovšie vydanie a reštartuje sa služba panelu.", + "currentPanelVersion": "Aktuálna verzia panelu", + "latestPanelVersion": "Najnovšia verzia panelu", + "panelUpToDate": "Panel je aktuálny", + "devChannel": "Vývojové vydania", + "devChannelWarning": "Vývojové zostavy sledujú každú zmenu vo vetve main a nie sú stabilnými vydaniami. Automatický návrat na staršiu verziu nie je dostupný.", + "currentCommit": "Aktuálny commit", + "latestCommit": "Najnovší commit", + "updateChannelChanged": "Zdroj aktualizácií bol zmenený", + "xrayStatusUnknown": "Neznámy", + "xrayStatusRunning": "Beží", + "xrayStatusStop": "Zastavený", + "xrayStatusError": "Chyba", + "systemHistoryTitle": "História systému", + "historyTitleCpu": "Využitie CPU", + "historyTitleMem": "Využitie pamäte", + "historyTitleNetwork": "Sieťový prenos", + "historyTitlePackets": "Sieťové pakety", + "historyTitleDisk": "Čítanie a zápis na disk", + "historyTitleOnline": "Pripojení klienti", + "historyTitleLoad": "Priemerná záťaž systému (1 / 5 / 15 min)", + "historyTitleConnections": "Aktívne spojenia (TCP / UDP)", + "historyTitleDiskUsage": "Využitie miesta na disku", + "historyTabBandwidth": "Prenos", + "historyTabPackets": "Pakety", + "historyTabDisk": "Diskové operácie", + "historyTabOnline": "Online", + "historyTabLoad": "Záťaž", + "historyTabConnections": "Spojenia", + "historyTabDiskUsage": "Využitie disku", + "xrayMetricsTitle": "Metriky Xray", + "xrayTitleHeap": "Pridelená pamäť haldy", + "xrayTitleSys": "Pamäť vyhradená operačným systémom", + "xrayTitleObjects": "Živé objekty na halde", + "xrayTitleGcCount": "Dokončené cykly uvoľňovania pamäte", + "xrayTitleGcPause": "Trvanie pozastavenia pri uvoľňovaní pamäte", + "xrayTitleObservatory": "Stav pripojenia výstupov", + "xrayTabHeap": "Halda", + "xrayTabSys": "Systém", + "xrayTabObjects": "Objekty", + "xrayTabGcCount": "Počet cyklov GC", + "xrayTabGcPause": "Pozastavenie GC", + "xrayTabObservatory": "Dostupnosť výstupov", + "xrayMetricsDisabled": "Zdroj metrík Xray nie je nastavený", + "xrayMetricsHint": "Do hlavnej úrovne konfigurácie Xray pridajte blok metrics so značkou metrics_out a adresou počúvania 127.0.0.1:11111. Potom Xray reštartujte.", + "xrayObservatoryEmpty": "Zatiaľ nie sú dostupné údaje o výstupoch", + "xrayObservatoryHint": "Do konfigurácie Xray pridajte blok observatory so značkami výstupov, ktoré sa majú kontrolovať. Potom Xray reštartujte.", + "xrayObservatoryTagPlaceholder": "Vyberte výstup", + "xrayObservatoryAlive": "Dostupný", + "xrayObservatoryDead": "Nedostupný", + "xrayObservatoryLastSeen": "Naposledy dostupný", + "xrayObservatoryLastTry": "Posledný pokus", + "connectionCount": "Štatistiky spojení", + "ipAddresses": "IP adresy", + "toggleIpVisibility": "Zobraziť alebo skryť IP adresu", + "overallSpeed": "Celková rýchlosť", + "upload": "Odosielanie", + "download": "Sťahovanie", + "sent": "Odoslané", + "received": "Prijaté", + "xraySwitchVersionDialog": "Naozaj chcete zmeniť verziu Xray?", + "xraySwitchVersionDialogDesc": "Verzia Xray sa zmení na #version#.", + "xraySwitchVersionPopover": "Xray bol úspešne aktualizovaný", + "panelUpdateDialog": "Naozaj chcete aktualizovať panel?", + "panelUpdateDialogDesc": "3X-UI sa aktualizuje na #version# a reštartuje sa služba panelu.", + "panelUpdateStartedPopover": "Aktualizácia panelu sa začala", + "panelUpdateFailedTitle": "Aktualizácia panelu zlyhala", + "panelUpdateFailedDesc": "Aktualizácia sa nedokončila úspešne. Skontrolujte záznamy servera alebo spustite príkaz 'x-ui update'.", + "panelUpdateUnknownTitle": "Nepodarilo sa potvrdiť dokončenie aktualizácie", + "panelUpdateUnknownDesc": "Panel neoznámil výsledok včas. Obnovte stránku a skontrolujte aktuálnu verziu alebo si pozrite záznamy servera.", + "geofileUpdateDialog": "Naozaj chcete aktualizovať geodáta?", + "geofileUpdateDialogDesc": "Aktualizuje sa súbor #filename#.", + "geofilesUpdateDialogDesc": "Aktualizujú sa všetky súbory geodát.", + "geofilesUpdateAll": "Aktualizovať všetko", + "geofileUpdatePopover": "Geodáta boli úspešne aktualizované", + "geodataTitle": "Automatická aktualizácia geodát", + "geodataHint": "Xray tieto súbory sťahuje podľa plánu a načíta ich bez reštartu. Odkazy musia používať HTTPS. Každý súbor musí byť aspoň raz uložený v priečinku bin, aby ho Xray mohol aktualizovať.", + "geodataCron": "Plán (cron)", + "geodataOutbound": "Sťahovať cez výstup (voliteľné)", + "geodataFile": "Názov súboru", + "geodataAddFile": "Pridať súbor", + "geodataUseStandardSources": "Použiť štandardné zdroje", + "geodataSaveRestart": "Uložiť a reštartovať Xray", + "geodataConfirmTitle": "Uložiť nastavenia geodát?", + "geodataConfirmContent": "Zmení sa šablóna konfigurácie Xray a Xray sa reštartuje.", + "geodataInvalidUrl": "Pre každý súbor zadajte odkaz HTTPS.", + "geodataInvalidFile": "Použite samotný názov súboru, napr. geosite_custom.dat, bez cesty.", + "geodataInvalidCron": "Výraz cron musí mať 5 polí, napr. 0 4 * * *", + "geodataEmpty": "Nie sú nastavené žiadne súbory. V pravidlách smerovania na ne odkazujte ako ext:geosite_custom.dat:category.", + "dontRefresh": "Prebieha inštalácia. Neobnovujte stránku.", + "logs": "Systémové záznamy", + "accessLogs": "Záznamy prístupov", + "autoUpdate": "Automatické obnovenie", + "amneziawgLogs": "Záznamy AmneziaWG", + "amneziawgHandshake": "Posledné nadviazanie spojenia", + "amneziawgInterface": "Rozhranie", + "amneziawgInbound": "Vstup", + "amneziawgEndpoint": "Koncový bod", + "amneziawgIdle": "Nečinný", + "amneziawgEvents": "Udalosti", + "amneziawgNoPeers": "Momentálne nie je pripojený žiadny peer AmneziaWG", + "amneziawgNoEvents": "Zatiaľ nie sú zaznamenané žiadne udalosti AmneziaWG", + "config": "Konfigurácia", + "backupTitle": "Záloha a obnova", + "exportDatabase": "Vytvoriť zálohu", + "exportDatabaseDesc": "Stiahne sa súbor .db so zálohou aktuálnej databázy do vášho zariadenia. Rovnaký súbor možno obnoviť aj v paneli s PostgreSQL.", + "importDatabase": "Obnoviť zo zálohy", + "importDatabaseDesc": "Vyberte a nahrajte zálohu .db alebo migračný súbor .dump zo svojho zariadenia. Obnoví sa z neho databáza.", + "importDatabaseSuccess": "Databáza bola úspešne importovaná.", + "importDatabaseError": "Pri importe databázy nastala chyba.", + "readDatabaseError": "Pri čítaní databázy nastala chyba.", + "getDatabaseError": "Pri získavaní databázy nastala chyba.", + "getConfigError": "Pri získavaní konfiguračného súboru nastala chyba.", + "backupPostgresNote": "Tento panel používa PostgreSQL. Záloha sa sťahuje ako archív pg_dump (.dump) a obnovuje sa cez pg_restore. Obnoviť možno aj databázu SQLite (.db) alebo migračný súbor SQLite; jeho údaje sa importujú do PostgreSQL. Na serveri musia byť nainštalované klientské nástroje PostgreSQL (pg_dump a pg_restore).", + "exportDatabasePgDesc": "Stiahne sa záloha aktuálnej databázy PostgreSQL (.dump) do vášho zariadenia.", + "importDatabasePgDesc": "Vyberte a nahrajte zálohu PostgreSQL (.dump), databázu SQLite (.db) alebo migračný súbor SQLite. Obnovením sa nahradia všetky aktuálne údaje.", + "migrationDownload": "Stiahnuť migračnú databázu", + "migrationDownloadPgDesc": "Stiahne sa databáza SQLite (.db) vytvorená z vašich údajov PostgreSQL, pripravená na spustenie panelu so SQLite.", + "avg": "priemer", + "peak": "maximum", + "free": "voľné", + "openSockets": "otvorené sockety", + "throughputSub": "Celkom za rozhranie", + "avgWindow": "Priemer za zobrazené obdobie", + "healthWarm": "{list} — zvýšená záťaž", + "healthCritical": "{list} — kritický stav", + "panel": "Panel", + "threads": "Vlákna", + "uptime": "Čas prevádzky", + "logLevelDebug": "Ladenie", + "logLevelInfo": "Informácia", + "logLevelNotice": "Oznámenie", + "logLevelWarning": "Upozornenie", + "logLevelError": "Chyba", + "accessDirect": "PRIAMO", + "accessBlocked": "BLOKOVANÉ", + "accessProxy": "PROXY", + "importKeepHostSettings": "Ponechať nastavenia tohto servera", + "importKeepHostSettingsDesc": "Ponechajú sa adresy počúvania, porty, základná cesta, certifikáty a identita tohto servera namiesto nastavení z nahraného súboru.", + "logLines": "Počet riadkov", + "timeRange": "Časový rozsah" + }, + "inbounds": { + "totalDownUp": "Celkom odoslané/prijaté", + "totalUsage": "Celková spotreba", + "inboundCount": "Počet vstupov", + "operate": "Menu", + "enable": "Zapnuté", + "remark": "Názov", + "node": "Server", + "deployTo": "Nasadiť na", + "localPanel": "Miestny panel", + "fallbacks": { + "title": "Náhradné ciele", + "empty": "Zatiaľ nie sú pridané žiadne náhradné ciele", + "add": "Pridať náhradný cieľ", + "pickInbound": "Vyberte vstup", + "matchAny": "ľubovoľné", + "destPlaceholder": "automaticky (adresa:port vnoreného vstupu)", + "needsTls": "Náhradné ciele sú dostupné po výbere TLS alebo Reality na karte Bezpečnosť (iba VLESS/Trojan cez RAW)." + }, + "protocol": "Protokol", + "port": "Port", + "portMap": "Mapovanie portov", + "traffic": "Spotreba", + "speed": "Rýchlosť", + "expireDate": "Platnosť", + "createdAt": "Vytvorené", + "updatedAt": "Upravené", + "resetTraffic": "Vynulovať spotrebu", + "addInbound": "Pridať vstup", + "generalActions": "Hromadné akcie", + "modifyInbound": "Upraviť vstup", + "deleteConfirmTitle": "Odstrániť vstup „{remark}“?", + "deleteConfirmContent": "Odstráni sa vstup aj všetci jeho klienti. Túto akciu nemožno vrátiť späť.", + "resetConfirmTitle": "Vynulovať spotrebu vstupu „{remark}“?", + "resetConfirmContent": "Počítadlá odoslaných a prijatých dát tohto vstupu sa nastavia na 0.", + "selectedCount": "Vybrané: {count}", + "selectAll": "Vybrať všetko", + "bulkDeleteConfirmTitle": "Odstrániť vybrané vstupy ({count})?", + "bulkDeleteConfirmContent": "Odstránia sa vybrané vstupy aj všetci ich klienti. Túto akciu nemožno vrátiť späť.", + "cloneConfirmTitle": "Vytvoriť kópiu vstupu „{remark}“?", + "cloneConfirmContent": "Vytvorí sa kópia s novým portom a prázdnym zoznamom klientov.", + "delAllClients": "Odstrániť všetkých klientov", + "delAllClientsConfirmTitle": "Odstrániť všetkých klientov ({count}) zo vstupu „{remark}“?", + "delAllClientsConfirmContent": "Zo vstupu sa odstránia všetci klienti aj ich záznamy o spotrebe. Samotný vstup zostane zachovaný. Túto akciu nemožno vrátiť späť.", + "attachClients": "Priradiť klientov k vstupom…", + "addClientsToGroup": "Pridať klientov do skupiny…", + "attachClientsTitle": "Priradiť klientov zo vstupu „{remark}“", + "attachClientsDesc": "Vybraným vstupom sa priradia rovnakí klienti ({count}) s rovnakým UUID/heslom a spoločnou spotrebou. Zostanú aj na tomto vstupe.", + "attachClientsTargets": "Cieľové vstupy", + "attachClientsNoTargets": "Nie sú dostupné žiadne ďalšie kompatibilné vstupy.", + "attachClientsResult": "Priradené: {attached}, preskočené: {skipped}.", + "attachClientsResultMixed": "Priradené: {attached}, preskočené: {skipped}, chyby: {errors}.", + "attachClientsSelectLabel": "Klienti na priradenie", + "attachClientsSearchPlaceholder": "Hľadať podľa názvu klienta alebo poznámky", + "attachClientsStatusDisabled": "Vypnutý", + "attachClientsSelectedCount": "Vybrané: {selected} z {total}", + "attachExistingClients": "Priradiť existujúcich klientov…", + "attachExistingTitle": "Priradiť existujúcich klientov k vstupu „{remark}“", + "attachExistingDesc": "K tomuto vstupu sa priradia existujúci klienti (dostupných: {count}) s rovnakým UUID/heslom a spoločnou spotrebou. Už priradení klienti sa preskočia.", + "attachExistingNoClients": "Zatiaľ neexistujú žiadni klienti. Najprv ich vytvorte a potom ich sem priraďte.", + "attachExistingStatusAttached": "Už priradený", + "detachClients": "Odobrať klientov zo vstupu", + "detachClientsTitle": "Odobrať klientov zo vstupu „{remark}“", + "detachClientsDesc": "Vybraní klienti sa odoberú iba z tohto vstupu. Ich účty zostanú zachované; na úplné odstránenie použite akciu Odstrániť. Vstup má celkovo {count} klientov.", + "detachClientsResult": "Odobraté: {detached}, preskočené: {skipped}.", + "detachClientsResultMixed": "Odobraté: {detached}, preskočené: {skipped}, chyby: {errors}.", + "detachClientsSelectLabel": "Klienti na odobratie", + "exportLinksTitle": "Exportovať odkazy vstupu", + "exportSubsTitle": "Exportovať odkazy na odber", + "exportAllLinksTitle": "Exportovať odkazy všetkých vstupov", + "exportAllSubsTitle": "Exportovať všetky odkazy na odber", + "exportAllLinksFileName": "Vsetky-vstupy", + "exportAllSubsFileName": "Odbery-vsetkych-vstupov", + "inboundJsonTitle": "JSON vstupu", + "resetTrafficContent": "Naozaj chcete vynulovať spotrebu?", + "copyLink": "Skopírovať odkaz", + "address": "Adresa", + "network": "Sieť", + "destinationPort": "Cieľový port", + "targetAddress": "Cieľová adresa", + "monitorDesc": "Prázdne pole znamená počúvanie na všetkých IP adresách", + "meansNoLimit": "= bez obmedzenia (jednotka: GB)", + "totalFlow": "Celkový dátový limit", + "leaveBlankToNeverExpire": "Prázdne pole znamená neobmedzenú platnosť", + "certificatePath": "Cesta k súboru", + "certificateContent": "Obsah súboru", + "publicKey": "Verejný kľúč", + "privatekey": "Súkromný kľúč", + "client": "Klient", + "export": "Exportovať všetky odkazy", + "clone": "Vytvoriť kópiu", + "resetAllTraffic": "Vynulovať spotrebu všetkých vstupov", + "resetAllTrafficTitle": "Vynulovať spotrebu všetkých vstupov", + "resetAllTrafficContent": "Naozaj chcete vynulovať spotrebu všetkých vstupov?", + "email": "Názov klienta", + "IPLimit": "Limit IP adries", + "IPLimitlog": "Záznam IP adries", + "IPLimitlogclear": "Vyčistiť záznam", + "setDefaultCert": "Použiť certifikát panelu", + "setDefaultCertEmpty": "Panel nemá nastavený certifikát. Najprv ho pridajte v nastaveniach.", + "streamTab": "Prenos", + "securityTab": "Bezpečnosť", + "sniffingTab": "Rozpoznávanie prevádzky", + "sniffingMetadataOnly": "Iba metadáta", + "sniffingRouteOnly": "Iba na smerovanie", + "sniffingIpsExcluded": "Vynechané IP adresy", + "sniffingDomainsExcluded": "Vynechané domény", + "decryption": "Dešifrovanie", + "encryption": "Šifrovanie", + "vlessAuthX25519": "X25519 (natívne)", + "vlessAuthMlkem768": "ML-KEM-768 (natívne)", + "vlessAuthX25519Xorpub": "X25519 (xorpub)", + "vlessAuthX25519Random": "X25519 (náhodné)", + "vlessAuthMlkem768Xorpub": "ML-KEM-768 (xorpub)", + "vlessAuthMlkem768Random": "ML-KEM-768 (náhodné)", + "vlessAuthCustom": "Vlastné", + "vlessAuthSelected": "Vybrané: {auth}", + "vlessAuthGenerate": "Vygenerovať kľúče", + "vlessAuthGenerateButton": "Vygenerovať", + "advanced": { + "title": "Časti konfigurácie vstupu v JSON", + "subtitle": "Úplný JSON vstupu a samostatné editory pre settings, sniffing a streamSettings.", + "all": "Všetko", + "allHelp": "Celý objekt vstupu so všetkými poľami v jednom editore.", + "settings": "Nastavenia", + "settingsHelp": "Obal bloku settings v Xray:", + "sniffing": "Rozpoznávanie prevádzky", + "sniffingHelp": "Obal bloku sniffing v Xray:", + "stream": "Prenos", + "streamHelp": "Obal bloku stream v Xray:" + }, + "advancedTitle": "Pokročilé nastavenia", + "subSortIndex": "Poradie v odbere", + "inboundInfo": "Informácie o vstupe", + "exportInbound": "Exportovať vstup", + "import": "Importovať", + "importInbound": "Importovať vstup", + "periodicTrafficResetTitle": "Nulovanie spotreby", + "periodicTrafficResetDay": "Deň mesačného nulovania", + "periodicTrafficReset": { + "never": "Nikdy", + "daily": "Denne", + "weekly": "Týždenne", + "monthly": "Mesačne", + "hourly": "Každú hodinu" + }, + "toasts": { + "obtain": "Získať", + "updateSuccess": "Aktualizácia bola úspešná.", + "logCleanSuccess": "Záznam bol vyčistený.", + "inboundUpdateSuccess": "Vstup bol úspešne aktualizovaný.", + "inboundCreateSuccess": "Vstup bol úspešne vytvorený.", + "bulkDeleted": "Odstránené vstupy: {count}", + "bulkDeletedMixed": "Odstránené: {ok}, neúspešné: {failed}", + "clonedMany": "Vytvorené kópie vstupov: {count}", + "clonedMixed": "Vytvorené kópie: {ok}, neúspešné: {failed}", + "inboundDeleteSuccess": "Vstup bol úspešne odstránený.", + "inboundClientAddSuccess": "Klienti boli pridaní k vstupu.", + "inboundClientDeleteSuccess": "Klient bol odstránený zo vstupu.", + "inboundClientUpdateSuccess": "Klient na vstupe bol aktualizovaný.", + "savedNodeOfflineWillSync": "Uložené miestne. Príslušný server je offline alebo vypnutý. Zmena sa zosynchronizuje po jeho opätovnom pripojení.", + "resetAllClientTrafficSuccess": "Spotreba všetkých klientov bola vynulovaná.", + "resetAllTrafficSuccess": "Všetka spotreba bola vynulovaná.", + "resetInboundClientTrafficSuccess": "Spotreba bola vynulovaná.", + "resetInboundTrafficSuccess": "Spotreba vstupu bola vynulovaná.", + "trafficGetError": "Nepodarilo sa načítať spotrebu.", + "getNewX25519CertError": "Nepodarilo sa získať certifikát X25519.", + "getNewmldsa65Error": "Nepodarilo sa získať mldsa65.", + "getNewVlessEncError": "Nepodarilo sa získať VlessEnc.", + "scanRealityTargetError": "Nepodarilo sa preveriť cieľ REALITY.", + "scanRealityTargetFeasible": "Cieľ je vhodný. Cieľová adresa a SNI boli doplnené.", + "scanRealityTargetNotFeasible": "Cieľ je dostupný, ale nie je vhodný pre REALITY.", + "scanRealityTargetPrivate": "Cieľ je dostupný, ale nachádza sa v súkromnej alebo miestnej sieti.", + "invalidClientField": "Klient {client}: {field} — {reason}", + "invalidField": "{field} — {reason}", + "invalidCertificate": "Certifikát TLS {index}: {reason}", + "moreIssues": "{message} (ďalšie: +{count})" + }, + "form": { + "autoFill": "Vyplniť automaticky", + "moveUp": "Posunúť nahor", + "moveDown": "Posunúť nadol", + "addAll": "Pridať všetko", + "addAllFallbackTooltip": "Pridať náhradný cieľ pre každý vhodný vstup, ktorý ešte nie je pripojený", + "peers": "Peery", + "addPeer": "Pridať peer", + "keepAlive": "Udržiavanie spojenia", + "autoSystemRoutesTooltip": "Iba pre Windows. Tieto rozsahy CIDR sa automaticky pridajú do systémovej smerovacej tabuľky, aby príslušná prevádzka prechádzala cez TUN.", + "autoOutboundsInterface": "Automatický výber rozhrania výstupov", + "autoOutboundsInterfaceTooltip": "Fyzické rozhranie pre odchádzajúcu prevádzku. Hodnota 'auto' ho zistí automaticky; zapne sa aj pri automatických systémových trasách.", + "rewriteAddress": "Prepísať adresu", + "rewritePort": "Prepísať port", + "allowedNetwork": "Povolená sieť", + "followRedirect": "Sledovať presmerovanie", + "accounts": "Účty", + "allowTransparent": "Povoliť transparentný režim", + "encryptionMethod": "Spôsob šifrovania", + "fakeTlsDomain": "Doména FakeTLS (SNI)", + "mtprotoSecret": "Tajný kľúč", + "mtgDomainFrontingIp": "IP adresa krycieho servera", + "mtgDomainFrontingPort": "Port krycieho servera", + "mtgDomainFrontingProxyProtocol": "Protokol PROXY krycieho servera", + "mtgDomainFrontingHint": "Kam mtg posiela prevádzku mimo Telegramu, napr. na váš krycí web NGINX. Prázdna IP znamená použitie domény FakeTLS cez DNS. Predvolený port je 443.", + "mtgProxyProtocolListener": "Prijímať protokol PROXY na vstupe", + "mtgPreferIp": "Uprednostnená verzia IP", + "mtgDebug": "Podrobné záznamy ladenia", + "mtgRouteThroughXray": "Smerovať cez Xray", + "mtgRouteThroughXrayHint": "Posielať prevádzku Telegramu z tohto proxy cez Xray podľa vašich pravidiel smerovania. Pomocný proces mtg sa pripája cez miestny most SOCKS so značkou tohto vstupu. Túto značku môžete použiť v pokročilých pravidlách na karte Smerovanie.", + "mtgRouteOutbound": "Výstup", + "mtgRouteOutboundHint": "Voliteľné. Vynútiť odosielanie prevádzky Telegramu cez tento výstup alebo vyvažovanie záťaže. Prázdne pole ponechá rozhodnutie pravidlám smerovania.", + "mtgRouteOutboundPlaceholder": "Použiť pravidlá smerovania", + "mtprotoFakeTlsDomainHint": "Predvolená doména FakeTLS na vytváranie tajných kľúčov nových klientov. Každý klient môže používať vlastnú kryciu doménu.", + "mtgThrottleMaxConnections": "Najviac spojení", + "mtgThrottleMaxConnectionsHint": "Obmedziť súbežné spojenia všetkých používateľov s rovnomerným rozdelením limitu. Hodnota 0 obmedzenie vypne.", + "mtgPendingHandshakesMaxPerIp": "Najviac nedokončených spojení na IP", + "mtgPendingHandshakesMaxPerIpHint": "Zatvárať nové spojenia z IP adresy, ktorá už má tento počet nedokončených nadviazaní spojenia. Klienti za spoločnou IP (NAT operátora) zdieľajú jeden limit. Hodnota 0 ho vypne.", + "mtgAdTagInvalid": "Reklamná značka musí mať presne 32 hexadecimálnych znakov.", + "mtgPublicIpv4": "Verejná IPv4", + "mtgPublicIpv6": "Verejná IPv6", + "mtgPublicIpHint": "Dostupná verejná adresa tohto servera pre sprostredkujúci reklamný proxy. Prázdne pole umožní mtg zistiť adresu automaticky.", + "visionTestseed": "Testovacia hodnota Vision (testseed)", + "version": "Verzia", + "udpIdleTimeout": "Časový limit nečinnosti UDP (s)", + "masquerade": "Maskovanie servera", + "type": "Typ", + "upstreamUrl": "URL cieľového servera", + "rewriteHost": "Prepísať hlavičku Host", + "xForwarded": "Hlavičky X-Forwarded", + "skipTlsVerify": "Vynechať overenie TLS", + "directory": "Priečinok", + "statusCode": "Stavový kód", + "body": "Telo správy", + "headers": "Hlavičky", + "proxyProtocol": "Protokol PROXY", + "requestVersion": "Verzia požiadavky", + "requestMethod": "Metóda požiadavky", + "requestPath": "Cesta požiadavky", + "requestHeaders": "Hlavičky požiadavky", + "responseVersion": "Verzia odpovede", + "responseStatus": "Stav odpovede", + "responseReason": "Dôvod odpovede", + "responseHeaders": "Hlavičky odpovede", + "heartbeatPeriod": "Interval kontroly spojenia", + "serviceName": "Názov služby", + "authority": "Autorita", + "multiMode": "Režim viacerých prenosov", + "maxBufferedUpload": "Najviac dát vo vyrovnávacej pamäti odosielania", + "maxUploadSize": "Najväčšie odoslanie (bajty)", + "streamUpServer": "Server na odosielanie dát", + "serverMaxHeaderBytes": "Najväčšia veľkosť hlavičiek servera", + "paddingBytes": "Počet bajtov výplne", + "uplinkHttpMethod": "Metóda HTTP pri odosielaní", + "paddingObfsMode": "Režim maskovania výplne", + "paddingKey": "Kľúč výplne", + "paddingHeader": "Hlavička výplne", + "paddingPlacement": "Umiestnenie výplne", + "paddingMethod": "Spôsob výplne", + "sessionPlacement": "Umiestnenie relácie", + "sessionKey": "Kľúč relácie", + "sessionIDTable": "Znaková sada ID relácie", + "sessionIDTableHint": "Znaková sada na vytváranie ID relácií: preddefinovaný názov (ALPHABET, Base62, hex, number, …) alebo vlastný reťazec ASCII. Prázdne pole použije predvolené nastavenie xray-core.", + "sessionIDLength": "Dĺžka ID relácie", + "sessionIDLengthHint": "Dĺžka alebo rozsah (napr. 8-16) vytváraných ID relácií. Použije sa iba pri nastavenej znakovej sade ID relácie. Najmenšia hodnota musí byť väčšia ako 0.", + "sequencePlacement": "Umiestnenie poradia", + "sequenceKey": "Kľúč poradia", + "uplinkDataPlacement": "Umiestnenie odosielaných dát", + "uplinkDataKey": "Kľúč odosielaných dát", + "noSseHeader": "Bez hlavičky SSE", + "ttiMs": "TTI (ms)", + "uplinkMbps": "Odosielanie (MB/s)", + "downlinkMbps": "Sťahovanie (MB/s)", + "cwndMultiplier": "Násobiteľ CWND", + "maxSendingWindow": "Najväčšie odosielacie okno", + "externalProxy": "Externý proxy", + "forceTls": "Vynútiť TLS", + "fingerprint": "Odtlačok", + "defaultOption": "Predvolené", + "routeMark": "Značka smerovania", + "tcpKeepAliveInterval": "Interval udržiavania TCP spojenia", + "tcpKeepAliveIdle": "Nečinnosť pred udržiavaním TCP spojenia", + "tcpMaxSeg": "Najväčší segment TCP", + "tcpUserTimeout": "Používateľský časový limit TCP", + "tcpWindowClamp": "Obmedzenie prijímacieho okna TCP", + "tcpWindowClampHint": "Hodnota 0 použije predvolené nastavenie systému. Iná hodnota obmedzí oznamovanú veľkosť prijímacieho okna TCP. Nízke hodnoty, napr. 600 z príkladu dokumentácie Xray, môžu výrazne znížiť priepustnosť pri vysokej odozve.", + "tcpFastOpen": "TCP Fast Open", + "multipathTcp": "Viaccestné TCP", + "penetrate": "Režim penetrate", + "v6Only": "Iba IPv6", + "tcpCongestion": "Riadenie zahltenia TCP", + "dialerProxy": "Proxy na nadväzovanie spojení", + "trustedXForwardedFor": "Dôveryhodná hlavička s IP klienta", + "trustedXForwardedForHint": "Použiť túto hlavičku požiadavky ako skutočnú IP klienta (napr. CF-Connecting-IP za CDN Cloudflare). Platí iba pre WebSocket, HTTPUpgrade, XHTTP a gRPC. Prázdne pole znamená ignorovanie preposlaných hlavičiek.", + "proxyProtocolHint": "Prijať hlavičku protokolu PROXY a zistiť skutočnú IP klienta za tunelom alebo sprostredkujúcim serverom L4 (HAProxy, gost, nginx-stream, Xray dokodemo-door) či Cloudflare Spectrum. Predradený server MUSÍ posielať protokol PROXY. Podporované sú TCP, WebSocket, HTTPUpgrade a gRPC; mKCP nie.", + "realClientIp": "Skutočná IP klienta", + "realClientIpHint": "Ak sa klient pripája cez CDN alebo sprostredkujúci server, zaznamenať jeho skutočnú IP namiesto adresy sprostredkovateľa. Výberom predvoľby sa vyplnia príslušné polia sockopt nižšie. Tieto polia sa klientom v odbere konfigurácií neposielajú.", + "realClientIpPresetOff": "Vypnuté / priame pripojenie", + "realClientIpPresetCloudflare": "Cloudflare CDN", + "realClientIpPresetProxyProtocol": "Sprostredkovateľ L4 / Spectrum (PROXY)", + "realClientIpTrustedHeaderTransportWarn": "Dôveryhodná hlavička X-Forwarded-For sa používa iba pri WebSocket, HTTPUpgrade a XHTTP. Pri aktuálnom prenose sa ignoruje.", + "realClientIpProxyProtocolTransportWarn": "Tento prenos (mKCP) nepodporuje protokol PROXY. Použite TCP/RAW, WebSocket, HTTPUpgrade, gRPC alebo XHTTP.", + "addressPortStrategy": "Spôsob výberu adresy a portu", + "tryDelayMs": "Oneskorenie pokusu (ms)", + "prioritizeIPv6": "Uprednostniť IPv6", + "interleave": "Striedať adresy", + "maxConcurrentTry": "Najviac súbežných pokusov", + "customSockopt": "Vlastné nastavenia socketu", + "addCustomOption": "Pridať vlastné nastavenie", + "serverNameIndication": "Názov servera (SNI)", + "cipherSuites": "Šifrovacie sady", + "autoOption": "Automaticky", + "minMaxVersion": "Najnižšia/najvyššia verzia", + "rejectUnknownSni": "Odmietnuť neznáme SNI", + "disableSystemRoot": "Nepoužívať systémové koreňové certifikáty", + "sessionResumption": "Obnovovanie relácie", + "oneTimeLoading": "Jednorazové načítanie", + "usageOption": "Spôsob použitia", + "buildChain": "Zostaviť reťazec certifikátov", + "echKey": "Kľúč ECH", + "echSockopt": "Nastavenia socketu ECH", + "echSockoptTip": "Nastavenia socketu pre spojenie, ktorým Xray získava zoznam konfigurácií ECH (napr. načítanie cez výstup dialerProxy). Vypnuté znamená použitie predvolených hodnôt.", + "echCdnWarningTitle": "Lokálne vygenerované kľúče ECH fungujú len pri priamom pripojení", + "echCdnWarningBody": "Pár kľúčov vytvorený tlačidlom „Get New ECH Cert“ platí len vtedy, keď sa klienti pripájajú priamo na tento VPS. Ak inbound ide cez Cloudflare CDN (VLESS + xhttp/WS za oranžovým oblakom), Cloudflare ukončuje vonkajšie TLS vlastnými kľúčmi ECH a pravidelne ich mení, takže lokálny kľúč vždy zlyhá pri handshake. Namiesto toho použite pomocníka pre dynamické ECH.", + "echDynamicTitle": "Dynamické ECH od Cloudflare (funguje za oranžovým oblakom)", + "echPresetLabel": "Prednastavená kombinácia", + "echPresetOtherDomains": "Ďalšie cieľové domény ECH", + "echPresetAdvanced": "Vlastná kombinácia…", + "echDynamicIntro": "Vyplní zoznam konfigurácií ECH dynamickým vyhľadávaním na strane klienta (cieľová doména + DoH resolver). Klient sa pri každom pripojení pýta resolvera na HTTPS záznam domény, takže vždy vidí aktuálne kľúče ECH – vrátane tých, ktoré Cloudflare mení.", + "echDynamicDomain": "Cieľová doména ECH", + "echDynamicDoh": "DoH resolver", + "echDomainAuto": "Automaticky – vyhľadať záznam ECH pre SNI uzla", + "echDynamicApply": "Použiť v zozname konfigurácií ECH", + "echDynamicCustom": "Vlastná URL…", + "echDynamicInvalid": "Na zostavenie hodnoty zadajte platnú doménu a URL resolvera (https, h2c alebo udp).", + "echDynamicUnsupportedScheme": "Xray získava konfiguráciu ECH len cez https://, h2c:// alebo udp://. Tento endpoint nikdy neodpovie.", + "echDynamicPlaceholder": "cloudflare-ech.com+https://dns.alidns.com/dns-query", + "echDynamicOverwriteTitle": "Tento inbound má lokálne vygenerovaný pár kľúčov ECH", + "echDynamicOverwriteBody": "Za CDN sa tento pár kľúčov nikdy nepoužije: TLS handshake ukončuje CDN. Použitím dynamickej hodnoty sa nahradí zoznam konfigurácií ECH a vymaže sa lokálny kľúč ECH.", + "echDynamicOverwriteConfirm": "Nahradiť a vymazať lokálny kľúč", + "echExistingNotDynamic": "Tento zoznam konfigurácií ECH nie je v dynamickom tvare; vyplnením sa nahradí to, čo ste zadali ručne.", + "echDohGroup": { + "china": "Pevninská Čína (dostupné spoza GFW)", + "global": "Globálne", + "europe": "Európa", + "udp": "Obyčajné DNS (udp://)" + }, + "echRecommended": "odporúčané", + "echMainlandAdvisory": "Resolvery z pevninskej Číny potrebujú cieľovú doménu, ktorej HTTPS záznam obsahuje ECH; pred uložením dvojicu overte.", + "echConfigList": "Zoznam konfigurácií ECH", + "echConfigListHint": "Posiela sa klientom v zdieľaných odkazoch a predplatných. Prijíma lokálny ECHConfigList (z tlačidla nižšie) alebo dynamický tvar doména+DoH URL.", + "echKeyHint": "Len pre priame pripojenia – ak je inbound za CDN, nechajte prázdne.", + "curvePreferences": "Uprednostnené krivky", + "curvePreferencesTip": "Obmedziť krivky výmeny kľúčov TLS ponúkané serverom, v poradí preferencie (napr. X25519MLKEM768, X25519). Prázdne pole použije predvolené nastavenie Xray-core.", + "masterKeyLog": "Záznam hlavných kľúčov TLS", + "masterKeyLogTip": "Cesta na zápis hlavných kľúčov TLS vo formáte SSLKEYLOGFILE na ladenie cez Wireshark. V bežnej prevádzke ponechajte prázdne. Každý, kto má tento súbor, môže dešifrovať prevádzku.", + "verifyPeerCertByName": "Overiť certifikát protistrany podľa názvu", + "verifyPeerCertByNameTip": "Klienti budú overovať certifikát servera podľa tohto názvu namiesto SNI. Viac názvov oddeľte čiarkou. Nastavenie panelu sa pridáva do odkazov na pripojenie (vcn). Nahrádza allowInsecure, ktoré Xray odstránil po 2026-06-01.", + "pinnedPeerCertSha256": "Pevne určený SHA-256 certifikátu", + "pinnedPeerCertSha256Tip": "Odtlačky SHA-256 certifikátu protistrany v hexadecimálnom tvare (napr. e8e2d3…), oddelené čiarkami. Nezapisujú sa do serverovej konfigurácie Xray. Panel ich pridá do odkazov, aby klienti mohli overiť presný certifikát.", + "pinnedPeerCertSha256Placeholder": "hexadecimálne odtlačky oddelené čiarkou", + "pinFromCert": "Doplniť z certifikátu tohto vstupu", + "pinFromRemote": "Získať odtlačok dotazom na SNI (xray tls ping)", + "pinFromRemoteNoSni": "Najprv nastavte SNI (serverName), aby bolo možné získať vzdialený certifikát.", + "pinFromRemoteFailed": "Nepodarilo sa získať odtlačok vzdialeného certifikátu.", + "getNewEchCert": "Získať nový certifikát ECH", + "show": "Zobraziť", + "xver": "Xver", + "target": "Cieľ", + "maxTimeDiff": "Najväčší časový rozdiel (ms)", + "minClientVer": "Najnižšia verzia klienta", + "maxClientVer": "Najvyššia verzia klienta", + "minClientVerHint": "V Xray-core v26.9.8+ prázdne pole znamená bez dolného limitu: prijímajú sa všetky verzie klientov vrátane Mihomo a sing-box. Verzie jadra v26.7.11 až v26.9.7 pri prázdnom poli vyžadujú aspoň 26.3.27. V nich nastavte 1.0.0, ak chcete prijať aj tieto klienty. Zadaná verzia odmietne klientov, ktorí hlásia staršiu verziu.", + "maxClientVerHint": "Prázdne pole znamená bez horného limitu. Zadaná hodnota nesmie byť nižšia ako najnižšia verzia klienta, inak sa odmietnu všetci klienti.", + "clientVerInvalid": "Verzia klienta môže mať najviac tri čísla od 0 do 255 oddelené bodkou (napr. 26.3.27)", + "maxClientVerBelowMin": "Najvyššia verzia klienta nesmie byť nižšia ako najnižšia", + "shortIds": "Krátke ID", + "realityTargetHint": "Povinné. Cieľ musí obsahovať port (napr. example.com:443). Bez portu sa Xray-core nespustí.", + "realityTargetRequired": "Zadajte cieľ REALITY", + "tlsCertificateRequired": "Pred uložením importujte certifikát TLS alebo zadajte cestu k jeho súboru", + "tlsPrivateKeyRequired": "Pred uložením importujte súkromný kľúč TLS alebo zadajte cestu k jeho súboru", + "tlsServerCertificateRequired": "TLS vyžaduje aspoň jeden serverový certifikát so súkromným kľúčom (encipherment alebo issue)", + "realityTargetNeedsPort": "Cieľ REALITY musí obsahovať port (napr. example.com:443)", + "realityTargetInvalidPort": "Cieľ REALITY má neplatný port", + "scan": "Preveriť", + "findTargets": "Nájsť ciele", + "scanModalTitle": "Vyhľadávanie cieľov REALITY", + "scanModalDesc": "Overte doménu alebo prehľadajte IP adresu či rozsah CIDR a nájdite ciele REALITY podľa ich certifikátov. Prázdne pole preverí bežných kandidátov.", + "scanDiscoverPlaceholder": "IP, CIDR alebo doména; prázdne pole preverí bežných kandidátov", + "scanStatus": "Stav", + "scanFeasible": "Vhodný", + "scanNotFeasible": "Nevhodný", + "scanCurve": "Výmena kľúčov", + "scanCert": "Certifikát", + "scanCertInvalid": "Nedôveryhodný", + "scanCertExpiry": "Platnosť certifikátu do", + "scanCertChain": "Reťazec certifikátov", + "scanMldsaCertChainTooSmall": "Reťazec certifikátov cieľa má {length} bajtov, menej ako minimum {min} bajtov pre ML-DSA-65. Spôsobí to zlyhanie spojenia bez zjavnej chyby. Vyberte iný cieľ alebo vypnite ML-DSA-65.", + "scanSniUsed": "Použité SNI", + "scanPrivateNote": "Overené cez súkromnú alebo miestnu sieť. Táto adresa nie je dostupná z internetu.", + "scanPrivateConfirmTitle": "Cieľ v miestnej sieti", + "scanPrivateConfirmContent": "„{target}“ sa prekladá na súkromnú alebo loopback adresu. Iba pre tento test sa obíde ochrana panelu proti SSRF. Pokračovať?", + "scanLatency": "Odozva", + "scanUse": "Použiť", + "scanRescan": "Preveriť znova", + "spiderX": "SpiderX", + "spiderXHint": "Z tejto počiatočnej hodnoty panel odvodí jedinečnú cestu spx každého klienta. Nová hodnota zmení cesty všetkým klientom.", + "getNewCert": "Získať nový certifikát", + "mldsa65Seed": "Počiatočná hodnota mldsa65", + "mldsa65Verify": "Overovací kľúč mldsa65", + "getNewSeed": "Vygenerovať novú hodnotu (seed)", + "limitFallback": "Obmedziť náhradné spojenia", + "limitFallbackUpload": "Obmedziť odosielanie náhradných spojení", + "limitFallbackDownload": "Obmedziť sťahovanie náhradných spojení", + "afterBytes": "Po prenose bajtov", + "afterBytesTip": "Náhradné spojenie môže preniesť tento počet bajtov plnou rýchlosťou, potom sa obmedzí. Hodnota 0 ho obmedzí od prvého bajtu.", + "bytesPerSec": "Bajty za sekundu", + "bytesPerSecTip": "Limit rýchlosti (bajty/s) náhradnej prevádzky po prekročení prahu. Bráni využívaniu servera ako bezplatného spojenia k cieľu. Hodnota 0 vypne obmedzenie v danom smere.", + "burstBytesPerSec": "Krátkodobý limit bajtov za sekundu", + "burstBytesPerSecTip": "Povolená krátka špička nad trvalým limitom (veľkosť zásobníka tokenov). Hodnota nižšia ako Bajty za sekundu sa automaticky zvýši na rovnakú úroveň.", + "listenHelp": "Namiesto portu TCP možno počúvať na Unix sockete. Zadajte jeho cestu (napr. /run/xray/in.sock) alebo abstraktný názov začínajúci @ (napr. @xray/in.sock). Port v takom prípade nastavte na 0.", + "shareAddrStrategy": "Výber adresy pre odkazy", + "shareAddrStrategyHelp": "Určuje adresu v exportovaných odkazoch na pripojenie, QR kódoch a odbere konfigurácií.", + "shareAddr": "Vlastná adresa pre odkazy", + "shareAddrHelp": "Použije sa iba pri voľbe Vlastné. Zadajte názov hostiteľa alebo IP bez protokolu a portu.", + "subSortIndex": "Poradie v odbere konfigurácií", + "subSortIndexHelp": "Poradie odkazov tohto vstupu v odbere (klientska stránka a aplikácie). Nižšie hodnoty sa zobrazia skôr. Pri rovnakých hodnotách sa zachová poradie vytvorenia. Zoznam vstupov v paneli sa nemení.", + "excludeFromSub": "Vynechať z odberu konfigurácií", + "excludeFromSubHelp": "Skryť odkazy tohto vstupu v odbere konfigurácií. Vstup zostane zapnutý a funkčný.", + "disableFlow": "Vypnúť režim XTLS flow", + "disableFlowHelp": "Nepridávať tomuto vstupu automaticky xtls-rprx-vision, ani keď ho prenos podporuje (napr. tunelovaný vstup XHTTP so šifrovaním VLESS). Ostatné podporované vstupy v rovnakom odbere si Vision ponechajú. Iba pre VLESS.", + "shareAddrStrategyOptions": { + "node": "Adresa servera", + "listen": "Adresa počúvania vstupu", + "custom": "Vlastné" + }, + "xdrive": { + "service": "Úložisko", + "serviceLocal": "Miestny priečinok", + "serviceTemplate": "Vlastná šablóna", + "remoteFolder": "Vzdialený priečinok", + "clientId": "ID klienta", + "clientSecret": "Tajný kľúč klienta", + "refreshToken": "Obnovovací token", + "secrets": "Tajné hodnoty", + "secretsDesc": "Hodnoty, ktoré šablóna číta ako {secret0}, {secret1}, …", + "template": "Šablóna úložiska", + "templateInvalid": "Musí ísť o objekt JSON", + "front": "Adresa krycieho servera", + "frontDesc": "Voliteľný hostiteľ alebo IP na pripojenie k API úložiska cez kryciu doménu (domain fronting).", + "frontPort": "Port krycieho servera", + "segmentBytes": "Veľkosť segmentu (bajty)", + "flushInterval": "Interval zápisu (ms)", + "pollInterval": "Interval zisťovania (ms)", + "maxPollInterval": "Najdlhší interval zisťovania (ms)", + "eagerWindow": "Okno predbežného odoslania (ms)", + "holeTimeout": "Čakanie na chýbajúci segment (ms)", + "sessionTtl": "Platnosť relácie (s)", + "concurrency": "Počet súbežných operácií" + }, + "masque": { + "addressPool": "Rozsahy adries", + "addressPoolDesc": "Adresy tunelov sa prideľujú z týchto prefixov, najviac jednej IPv4 a jednej IPv6." + }, + "tunDesc": "Typ adaptéra", + "tunDescTooltip": "Iba pre Windows: typ tunela nového adaptéra Wintun. Prázdne pole znamená Wintun.", + "autoSystemDnsToGateway": "Systémové DNS cez bránu", + "autoSystemDnsToGatewayTooltip": "Iba pre Linux: nasmerovať systemd-resolved na bránu TUN, aby systémové DNS dotazy prechádzali cez Xray. Vyžaduje bránu. Ak nastavenie zlyhá, TUN sa nespustí.", + "autoSystemWfpBlockLeak": "Blokovať úniky (WFP)", + "autoSystemWfpBlockLeakTooltip": "Iba pre Windows s automatickými systémovými trasami: dns ponechá DNS v TUN (vyžaduje DNS servery), misconfigtun zablokuje verziu IP, pre ktorú nevedie žiadna trasa do TUN.", + "maxVersion": "Maximálna verzia", + "headerName": "Názov hlavičky", + "headerValue": "Hodnota hlavičky" + }, + "info": { + "mode": "Režim", + "grpcServiceName": "Názov služby gRPC", + "grpcMultiMode": "Viacnásobný režim gRPC", + "interfaceName": "Názov rozhrania", + "mtu": "MTU", + "gateway": "Brána", + "dns": "DNS", + "outboundsInterface": "Rozhranie výstupov", + "autoSystemRoutes": "Automatické systémové trasy", + "followRedirect": "Sledovať presmerovanie", + "auth": "Overenie", + "noKernelTun": "TUN v používateľskom priestore", + "keepAlive": "Udržiavanie spojenia", + "peerNumber": "Peer {n}", + "peerNumberConfig": "Konfigurácia peeru {n}" + }, + "sniffingDestOverride": "Prepísať cieľ" + }, + "clients": { + "tabBasics": "Základné údaje", + "tabCredentials": "Prihlasovacie údaje", + "tabLinks": "Odkazy", + "wireguardConfig": "Konfigurácia WireGuard", + "config": "Konfigurácia", + "linksHint": "Pridajte externé odkazy na pripojenie a vzdialené odbery konfigurácií, ktoré sa majú zahrnúť do odberu tohto klienta.", + "addExternalLink": "Pridať externý odkaz", + "addExternalSubscription": "Pridať externý odber", + "noExternalLinks": "Zatiaľ nie sú pridané žiadne externé odkazy.", + "noExternalSubscriptions": "Zatiaľ nie sú pridané žiadne externé odbery.", + "namePrefix": "Predpona názvu", + "lastFetchAt": "Posledné načítanie", + "lastFetchError": "Chyba načítania", + "neverFetched": "Zatiaľ nenačítané", + "submitEdit": "Uložiť zmeny", + "clientCount": "Počet klientov", + "bulk": "Pridať hromadne", + "selectAll": "Vybrať všetko", + "clearAll": "Zrušiť výber", + "method": "Spôsob", + "first": "Prvý", + "last": "Posledný", + "ipLog": "Záznam IP adries", + "prefix": "Predpona", + "postfix": "Prípona", + "delayedStart": "Začať pri prvom použití", + "expireDays": "Platnosť (dni)", + "renew": "Automatické obnovenie", + "renewDesc": "Automatické obnovenie po skončení platnosti (jednotka: deň)", + "renewDays": "Automatické obnovenie (dni)", + "searchPlaceholder": "Hľadať podľa názvu, poznámky, ID odberu, UUID, hesla, overenia, Telegram ID…", + "filterTitle": "Filtrovať klientov", + "clearAllFilters": "Vyčistiť filtre", + "filters": { + "nodes": "Servery", + "localPanel": "Miestne (tento panel)" + }, + "showingCount": "Zobrazené: {shown} z {total}", + "sortOldest": "Od najstarších", + "sortNewest": "Od najnovších", + "sortRecentlyUpdated": "Naposledy upravené", + "sortRecentlyOnline": "Naposledy online", + "sortEmailAZ": "Názov A→Z", + "sortEmailZA": "Názov Z→A", + "sortMostTraffic": "Od najvyššej spotreby", + "sortHighestRemaining": "Od najväčšieho zostatku", + "sortExpiringSoonest": "Od najbližšieho skončenia platnosti", + "has": "Obsahuje", + "hasNot": "Neobsahuje", + "actions": "Akcie", + "totalGB": "Dátový limit (GB)", + "totalGBDesc": "Dátový limit tohto klienta. Hodnota 0 znamená bez obmedzenia.", + "expiryTime": "Platnosť do", + "addClients": "Pridať klientov", + "limitIp": "Limit IP adries", + "limitIpDesc": "Najvyšší počet súčasne používaných IP adries. Hodnota 0 znamená bez obmedzenia.", + "limitHwid": "Limit zariadení HWID", + "limitHwidDesc": "Najvyšší počet registrovaných zariadení pre požiadavky na odber konfigurácií. Hodnota 0 znamená bez obmedzenia.", + "hwidLog": "Zariadenia HWID", + "hwidDevice": "Registrované zariadenie", + "noHwids": "Zatiaľ nie sú registrované žiadne zariadenia HWID", + "firstSeen": "Prvý výskyt", + "lastSeen": "Posledný výskyt", + "hwidFingerprint": "Odtlačok HWID", + "deleteHwid": "Odstrániť zariadenie", + "deleteHwidConfirm": "Odstrániť toto zariadenie? Pri ďalšom načítaní odberu sa bude musieť znova zaregistrovať.", + "hwidDeleted": "Zariadenie bolo odstránené.", + "clearHwidsConfirm": "Odstrániť všetky registrované zariadenia? Pri ďalšom načítaní odberu sa bude každé zariadenie musieť znova zaregistrovať.", + "limitIpFail2banMissing": "Fail2ban nie je nainštalovaný, preto nemožno vynútiť limit IP adries. Na zapnutie tejto možnosti nainštalujte Fail2ban z ponuky príkazu x-ui.", + "limitIpFail2banWindows": "Fail2ban nie je vo Windows dostupný, preto nemožno vynútiť limit IP adries.", + "limitIpDisabled": "Funkcia limitu IP adries je na tomto serveri vypnutá.", + "password": "Heslo", + "passwordDesc": "Používajú ho klienti Trojan, Shadowsocks, TUIC a MASQUE. Pri VLESS, VMess, Hysteria a WireGuard sa ignoruje.", + "subId": "ID odberu", + "subIdDesc": "Slúži aj ako pozývací kód klienta do Telegram bota. Kto ho pošle botovi, priradí sa k tomuto klientovi. Použite dlhé náhodné ID. Krátke alebo odhadnuteľné ID si môže privlastniť niekto iný.", + "online": "Online", + "email": "Názov klienta", + "emailInvalidChars": "Názov klienta nesmie obsahovať medzery, '/', '\\' ani riadiace znaky", + "subIdInvalidChars": "ID odberu nesmie obsahovať medzery, '/', '\\' ani riadiace znaky", + "group": "Skupina", + "groupDesc": "Označenie súvisiacich klientov, napr. tímu, zákazníka alebo regiónu. V paneli nástrojov podľa neho môžete filtrovať.", + "groupPlaceholder": "napr. zakaznik-a", + "comment": "Poznámka", + "traffic": "Spotreba", + "speed": "Rýchlosť", + "offline": "Offline", + "addClient": "Pridať klienta", + "qrCode": "QR kód", + "clientInfo": "Informácie o klientovi", + "editClient": "Upraviť klienta", + "client": "Klient", + "enabled": "Zapnutý", + "remaining": "Zostáva", + "duration": "Platnosť", + "attachedInbounds": "Priradené vstupy", + "selectInbound": "Vyberte jeden alebo viac vstupov", + "selectAllInbounds": "Vybrať všetko", + "clearAllInbounds": "Zrušiť výber", + "noSubId": "Klient nemá ID odberu, preto nemá odkaz na zdieľanie.", + "noLinks": "Nie sú dostupné odkazy na pripojenie. Najprv klienta priraďte k vstupu s podporovaným protokolom.", + "qrStandard": "Štandardný", + "happLinkRetry": "Skúsiť znova", + "happLinkErrorHint": "Odkaz Happ sa nepodarilo vytvoriť. Skúste to znova alebo si pozrite podrobnosti v časti {dashboard} → {logs}.", + "happLinkSourceTooLong": "URL odberu prekračuje limit panelu 8192 bajtov UTF-8. Skráťte ju alebo použite štandardný odkaz.", + "happLinkQrTooLong": "Tento odkaz Happ je platný, ale na zobrazenie v QR kóde je príliš dlhý. Celý odkaz získate tlačidlom Kopírovať.", + "happLinkDisabledHint": "Pred použitím Happ zapnite vytváranie odkazov Happ v nastaveniach.", + "happLinkDisabledTitle": "Vytváranie šifrovaných odkazov Happ nie je zapnuté", + "happLinkDisabledDescription": "Zapnite miestne vytváranie šifrovaných odkazov na odber pre Happ. Iba pre aplikáciu Happ.", + "happLinkSettingsAction": "Otvoriť nastavenia", + "happLinkDisclosure": "Vytvorené miestne. Každý, kto má tento odkaz, môže získať alebo zdieľať URL odberu konfigurácií.", + "happLinkOptionLabel": "Šifrovaný odkaz Happ", + "link": "Odkaz", + "resetNotPossible": "Najprv klienta priraďte k vstupu.", + "resetAllTraffics": "Vynulovať spotrebu všetkých klientov", + "resetAllTrafficsTitle": "Vynulovať spotrebu všetkých klientov?", + "resetAllTrafficsContent": "Počítadlá odoslaných a prijatých dát všetkých klientov sa nastavia na nulu. Dátové limity ani platnosť sa nezmenia. Túto akciu nemožno vrátiť späť.", + "deleteConfirmTitle": "Odstrániť klienta {email}?", + "deleteConfirmContent": "Klient sa odstráni zo všetkých priradených vstupov aj so záznamom o spotrebe. Túto akciu nemožno vrátiť späť.", + "adjustSelected": "Upraviť ({count})", + "subLinksSelected": "Odkazy na odber ({count})", + "addToGroupTitle": "Pridať klientov ({count}) do skupiny", + "addToGroupTooltip": "Vyberte existujúcu skupinu alebo zadajte nový názov. Akciou Odobrať zo skupiny zrušíte aktuálne priradenie klientov.", + "groupName": "Názov skupiny", + "addToGroupSuccessToast": "Pridané do skupiny {group}: {count}", + "ungroupSuccessToast": "Zo skupiny bolo odobratých klientov: {count}", + "ungroup": "Odobrať zo skupiny", + "ungroupConfirmTitle": "Odobrať vybraných klientov ({count}) zo skupiny?", + "ungroupConfirmContent": "Vybraným klientom sa zruší označenie skupiny. Samotní klienti zostanú zachovaní; na ich úplné odstránenie použite akciu Odstrániť.", + "addToGroup": "Pridať do skupiny", + "attach": "Priradiť", + "adjust": "Upraviť", + "subLinks": "Odkazy na odber", + "enable": "Zapnúť", + "disable": "Vypnúť", + "bulkEnableConfirmTitle": "Zapnúť vybraných klientov ({count})?", + "bulkEnableConfirmContent": "Vybraní klienti sa zapnú na všetkých priradených vstupoch. Klienti s vyčerpaným dátovým limitom alebo skončenou platnosťou sa automaticky znova vypnú.", + "bulkDisableConfirmTitle": "Vypnúť vybraných klientov ({count})?", + "bulkDisableConfirmContent": "Vybraní klienti sa vypnú na všetkých priradených vstupoch. Okamžite stratia prístup, ale ich účty a spotreba zostanú zachované.", + "selectedCount": "Vybrané: {count}", + "attachToInboundsTitle": "Priradiť klientov ({count}) k vstupom", + "attachToInboundsDesc": "Vybraní klienti ({count}) sa priradia k zvoleným vstupom s rovnakým UUID/heslom a spoločnou spotrebou. Existujúce priradenia zostanú zachované.", + "attachToInboundsTargets": "Cieľové vstupy", + "attachToInboundsNoTargets": "Nie sú dostupné žiadne vstupy s podporou viacerých klientov.", + "detach": "Odobrať zo vstupov", + "detachFromInboundsTitle": "Odobrať klientov ({count}) zo vstupov", + "detachFromInboundsDesc": "Vybraní klienti ({count}) sa odoberú zo zvolených vstupov. Neexistujúce priradenia sa preskočia. Účty klientov zostanú zachované; na ich úplné odstránenie použite akciu Odstrániť.", + "detachFromInboundsTargets": "Vstupy, z ktorých odobrať klientov", + "detachFromInboundsNoTargets": "Nie sú dostupné žiadne vstupy s podporou viacerých klientov.", + "detachFromInboundsResult": "Odobraté: {detached}, preskočené: {skipped}.", + "detachFromInboundsResultMixed": "Odobraté: {detached}, preskočené: {skipped}, chyby: {errors}.", + "subLinksTitle": "Odkazy na odber ({count})", + "subLinkColumn": "URL odberu konfigurácií", + "subJsonLinkColumn": "URL odberu JSON", + "subLinksCopyAll": "Skopírovať všetko", + "subLinksCopiedAll": "Skopírované odkazy: {count}", + "subLinksEmpty": "Žiadny z vybraných klientov nemá ID odberu.", + "subLinksDisabled": "Služba odberu konfigurácií je vypnutá.", + "subLinksDisabledHint": "Na vytváranie odkazov zapnite odber v časti Nastavenia panelu → Odber konfigurácií.", + "bulkDeleteConfirmTitle": "Odstrániť vybraných klientov ({count})?", + "bulkDeleteConfirmContent": "Vybraní klienti sa odstránia zo všetkých priradených vstupov aj so záznamami o spotrebe. Túto akciu nemožno vrátiť späť.", + "bulkAdjustTitle": "Upraviť vybraných klientov ({count})", + "bulkAdjustHint": "Kladné hodnoty pridávajú, záporné odoberajú. Pri klientovi s neobmedzenou platnosťou alebo spotrebou sa príslušné pole preskočí.", + "bulkAdjustNothing": "Pred použitím zmien vyplňte aspoň jedno pole.", + "addDays": "Pridať dni", + "addTrafficGB": "Pridať dáta (GB)", + "bulkFlow": "Nastaviť režim flow", + "bulkFlowNoChange": "Bez zmeny", + "bulkFlowDisable": "Vypnúť (vymazať flow)", + "delDepleted": "Odstrániť ukončených klientov", + "delDepletedConfirmTitle": "Odstrániť ukončených klientov?", + "delDepletedConfirmContent": "Odstránia sa všetci klienti s vyčerpaným dátovým limitom alebo skončenou platnosťou. Túto akciu nemožno vrátiť späť.", + "exportClients": "Exportovať klientov", + "importClients": "Importovať klientov", + "import": "Importovať", + "delOrphans": "Odstrániť nepriradených klientov", + "delOrphansConfirmTitle": "Odstrániť klientov bez vstupu?", + "delOrphansConfirmContent": "Odstránia sa všetci klienti, ktorí nie sú priradení k žiadnemu vstupu, aj so záznamami o spotrebe. Túto akciu nemožno vrátiť späť.", + "auth": "Overenie", + "hysteriaAuth": "Overovací údaj Hysteria", + "hysteriaAuthDesc": "Prihlasovací údaj iba pre klientov Hysteria. Trojan a Shadowsocks používajú pole Heslo.", + "uuid": "UUID", + "flow": "Režim flow", + "vmessSecurity": "Zabezpečenie VMess", + "wireguardPrivateKey": "Súkromný kľúč WireGuard", + "wireguardPublicKey": "Verejný kľúč WireGuard", + "wireguardPreSharedKey": "Predzdieľaný kľúč WireGuard", + "wireguardAllowedIPs": "Povolené IP adresy WireGuard", + "wireguardAllowedIPsHint": "Prázdne pole umožní automatické pridelenie. Viac položiek oddeľte čiarkou.", + "amneziaWgPrivateKey": "Súkromný kľúč AmneziaWG", + "amneziaWgPublicKey": "Verejný kľúč AmneziaWG", + "amneziaWgPreSharedKey": "Predzdieľaný kľúč AmneziaWG", + "amneziaWgAllowedIPs": "Povolené IP adresy AmneziaWG", + "amneziaWgAllowedIPsHint": "Prázdne pole umožní automatické pridelenie. Viac položiek oddeľte čiarkou.", + "amneziaWgForwardedPorts": "Presmerované porty", + "amneziaWgForwardedPortsHint": "Porty alebo rozsahy presmerované cez DNAT na tohto klienta, napr. 80, 443, 8000-8100. Prázdne pole znamená žiadne presmerovanie.", + "tunnelKeepAlive": "Udržiavanie spojenia (sekundy)", + "amneziaWgKeepAliveHint": "Zadajte sekundy ako číslo alebo rozsah (napríklad 15-25). Hodnoty musia byť od 0 do 65535; 0 vypína keepalive.", + "amneziaWgKeepAliveInvalid": "Zadajte celé číslo alebo rozsah od 0 do 65535.", + "tunnelKeepAliveHint": "Ako často klient posiela paket na udržanie spojenia. Bežná hodnota 25 udrží mapovanie NAT a po výpadku vrátane reštartu panelu znova pripojí nečinný peer. Hodnota 0 funkciu vypne; nečinný klient zostane odpojený, kým neodošle dáta.", + "amneziaWgConfig": "Konfigurácia AmneziaWG", + "tuicConfig": "Konfigurácia TUIC (Clash)", + "mtprotoSecret": "Tajný kľúč MTProto", + "mtprotoSecretHint": "Tajný kľúč FakeTLS tohto klienta. Novým vygenerovaním ho zmeníte.", + "mtprotoAdTag": "Reklamná značka (sponzorovaný kanál)", + "mtprotoAdTagHint": "Voliteľná 32-znaková hexadecimálna značka z registrácie proxy v Telegrame. Klient sa potom pripája cez sprostredkujúce proxy Telegramu a sponzorovaný kanál sa zobrazí na začiatku jeho zoznamu konverzácií.", + "reverseTag": "Značka spätného pripojenia", + "reverseTagPlaceholder": "Voliteľná značka spätného pripojenia", + "telegramId": "ID používateľa Telegramu", + "telegramIdPlaceholder": "Číselné ID používateľa Telegramu (0 = žiadne)", + "ipLimit": "Limit IP adries", + "toasts": { + "deleted": "Klient bol odstránený", + "trafficReset": "Spotreba bola vynulovaná", + "allTrafficsReset": "Spotreba všetkých klientov bola vynulovaná", + "bulkDeleted": "Odstránení klienti: {count}", + "bulkDeletedMixed": "Odstránené: {ok}, neúspešné: {failed}", + "bulkEnabled": "Zapnutí klienti: {count}", + "bulkEnabledMixed": "Zapnuté: {ok}, neúspešné: {failed}", + "bulkDisabled": "Vypnutí klienti: {count}", + "bulkDisabledMixed": "Vypnuté: {ok}, neúspešné: {failed}", + "bulkCreated": "Vytvorení klienti: {count}", + "bulkCreatedMixed": "Vytvorené: {ok}, neúspešné: {failed}", + "bulkAdjusted": "Upravení klienti: {count}", + "bulkAdjustedMixed": "Upravené: {ok}, preskočené: {skipped}", + "delDepleted": "Odstránení ukončení klienti: {count}", + "delOrphans": "Odstránení nepriradení klienti: {count}", + "imported": "Importovaní klienti: {count}", + "importedMixed": "Importované: {ok}, preskočené: {failed}" + }, + "renewMax": "Najviac obnovení", + "renewMaxDesc": "Koľkokrát sa môže platnosť automaticky obnoviť, než účet zostane neplatný. Hodnota 0 znamená bez obmedzenia. Pri dobiehaní zmeškaných období sa každé obdobie počíta ako jedno obnovenie.", + "renewMode": "Automatické obnovenie", + "renewModeNone": "Vypnuté", + "renewModeInterval": "Pevný interval (dni)", + "renewModeWeekly": "Každý kalendárny týždeň", + "renewModeMonthly": "Každý kalendárny mesiac", + "renewWeekday": "Deň týždenného obnovenia", + "renewScheduleDesc": "Kalendárne obnovenie prebieha o polnoci v časovom pásme panelu a vynuluje aj spotrebu klienta. Samostatné nulovanie spotreby nechajte vypnuté, ak nechcete ďalšie nulovanie navyše. Mesačné obnovenie 1. deň znamená platnosť do konca predchádzajúceho mesiaca; 31. deň nie je rovnaká hranica.", + "renewPreview": "Ukážka obnovenia (časové pásmo panelu: {zone})", + "renewServerLocal": "Miestny čas servera", + "renewPreviewHint": "Dátumy používajú časové pásmo panelu. Zobrazenie ukážky platnosť klienta neobnoví.", + "renewAt": "Okamih obnovenia", + "renewValidThrough": "Platné do", + "renewNextExpiry": "Koniec platnosti po obnovení", + "renewPeriods": "Odhadovaný počet použitých obnovení: {count}", + "renewUnavailable": "Zostávajúci počet obnovení nestačí na predĺženie platnosti do budúcnosti.", + "renewFirstUse": "Dátumy budú dostupné po prvom použití. Počiatočná dĺžka platnosti sa nemení.", + "renewSetExpiry": "Nastaviť koniec prvého obdobia", + "renewNeedsExpiry": "Pred automatickým obnovením musí byť nastavený koniec platnosti.", + "renewPreviewError": "Nepodarilo sa načítať ukážku dátumov obnovenia.", + "renewOnDay": "Deň mesačného obnovenia", + "renewOnDayDesc": "Obnoviť v tento deň každého kalendárneho mesiaca o polnoci v časovom pásme panelu namiesto intervalu N dní. Ak mesiac tento deň nemá, obnovenie prebehne v jeho posledný deň.", + "renewsUsed": "Použité obnovenia", + "bulkAdTagHint": "Zadajte 32-znakovú hexadecimálnu značku alebo 'none' na odstránenie sponzorovaného kanála zo vstupov MTProto.", + "renewIntervalDesc": "Po skončení platnosti pridá nastavený počet 24-hodinových dní k predchádzajúcemu koncu platnosti a vynuluje spotrebu klienta. Samostatné nulovanie spotreby nechajte vypnuté, ak nechcete ďalšie nulovanie navyše.", + "renewWeeklyDesc": "Kalendárne obnovenie prebieha o polnoci v časovom pásme panelu a vynuluje aj spotrebu klienta. Samostatné nulovanie spotreby nechajte vypnuté, ak nechcete ďalšie nulovanie navyše." + }, + "groups": { + "name": "Názov", + "clientCount": "Klienti", + "totalGroups": "Počet skupín", + "totalGroupedClients": "Klienti priradení k skupine", + "trafficUsed": "Spotrebované dáta", + "upload": "Odosielanie", + "download": "Sťahovanie", + "totalTraffic": "Celková spotreba", + "totalUpDown": "Celkom odoslané / prijaté", + "addGroup": "Pridať skupinu", + "createSuccess": "Skupina „{name}“ bola vytvorená.", + "rename": "Premenovať", + "renameTitle": "Premenovať skupinu {name}", + "renameCollision": "Skupina s názvom „{name}“ už existuje.", + "renameSuccess": "Názov skupiny bol zmenený pri klientoch: {count}.", + "deleteConfirmTitle": "Odstrániť skupinu {name}?", + "deleteConfirmContent": "Skupina sa odstráni a zruší sa jej označenie pri klientoch: {count}. Samotní klienti sa neodstránia.", + "deleteSuccess": "Zo skupiny bolo odobratých klientov: {count}.", + "resetTraffic": "Vynulovať spotrebu", + "resetConfirmTitle": "Vynulovať spotrebu skupiny {name}?", + "resetConfirmContent": "Vynuluje sa iba počítadlo skupiny. Počítadlá jednotlivých klientov sa nezmenia.", + "resetSuccess": "Spotreba skupiny {name} bola vynulovaná.", + "adjustSuccess": "Upravení klienti v skupine {name}: {count}.", + "emptyForAction": "Táto skupina zatiaľ nemá žiadnych klientov.", + "deleteGroupOnly": "Odstrániť skupinu (ponechať klientov)", + "deleteClients": "Odstrániť klientov v skupine", + "deleteClientsConfirmTitle": "Odstrániť všetkých klientov zo skupiny {name}?", + "deleteClientsConfirmContent": "Natrvalo sa odstránia klienti ({count}) aj so záznamami o spotrebe. Zruší sa aj označenie skupiny. Túto akciu nemožno vrátiť späť.", + "deleteClientsSuccess": "Odstránení klienti: {count}.", + "deleteClientsMixed": "Odstránené: {ok}, preskočené: {failed}", + "addToGroup": "Pridať klientov…", + "addToGroupTitle": "Pridať klientov do skupiny „{name}“", + "addToGroupDesc": "Vyberte klientov, ktorých chcete pridať do skupiny. Ich existujúce priradenia k vstupom zostanú zachované. Zmení sa iba skupina. Už priradení klienti sa nezobrazujú.", + "addToGroupEmpty": "Nie sú dostupní žiadni ďalší klienti na pridanie.", + "addToGroupResult": "Pridané do skupiny {name}: {count}.", + "removeFromGroup": "Odobrať klientov…", + "removeFromGroupTitle": "Odobrať klientov zo skupiny „{name}“", + "removeFromGroupDesc": "Vyberte členov, ktorých chcete odobrať zo skupiny. Samotní klienti zostanú zachovaní. Na ich úplné odstránenie použite akciu „Odstrániť klientov v skupine“.", + "removeFromGroupResult": "Odobraté zo skupiny {name}: {count}." + }, + "hosts": { + "addHost": "Pridať adresu servera", + "editHost": "Upraviť adresu servera", + "selectInbound": "Vyberte vstup", + "selectedCount": "Vybrané: {count}", + "summary": { + "total": "Celkom", + "enabled": "Zapnuté", + "disabled": "Vypnuté" + }, + "moveUp": "Posunúť nahor", + "moveDown": "Posunúť nadol", + "bulkEnable": "Zapnúť", + "bulkDisable": "Vypnúť", + "bulkDelete": "Odstrániť", + "bulkDeleteConfirm": "Odstrániť vybrané adresy serverov ({count})?", + "deleteConfirmTitle": "Odstrániť adresu servera „{name}“?", + "sections": { + "basic": "Základné", + "security": "Bezpečnosť", + "advanced": "Pokročilé", + "general": "Všeobecné", + "clash": "Clash (mihomo)" + }, + "fields": { + "remark": "Názov", + "serverDescription": "Popis", + "inbound": "Vstupy", + "address": "Adresa", + "port": "Port", + "endpoint": "Koncový bod", + "enable": "Zapnúť", + "actions": "Akcie", + "security": "Bezpečnosť", + "sni": "SNI", + "overrideSniFromAddress": "Použiť adresu ako SNI", + "keepSniBlank": "Ponechať SNI prázdne", + "hostHeader": "Hlavička Host", + "path": "Cesta", + "alpn": "ALPN", + "fingerprint": "Odtlačok", + "pins": "Pevne určený SHA-256 certifikátu", + "verifyPeerCertByName": "Overiť certifikát protistrany podľa názvu", + "allowInsecure": "Povoliť nezabezpečené pripojenie", + "muxParams": "Multiplexovanie (Mux)", + "sockoptParams": "Nastavenia socketu", + "finalMask": "Konečné maskovanie", + "vlessRoute": "Trasa VLESS", + "mihomoIpVersion": "Verzia IP", + "mihomoX25519": "Mihomo X25519", + "shuffleHost": "Náhodne meniť hostiteľa", + "randomCount": "Počet náhodných IP", + "tags": "Značky", + "nodeGuids": "Servery", + "excludeFromSubTypes": "Vynechať z formátov", + "inheritAddress": "Preberá sa" + }, + "hints": { + "address": "Prázdne pole preberie adresu samotného vstupu.", + "port": "Hodnota 0 preberie port vstupu.", + "tags": "Koncovým používateľom sa nezobrazujú. Posielajú sa iba v surovom odbere RAW. Povolené sú iba veľké písmená, číslice, _ a :.", + "nodeGuids": "Vyberte servery dostupné cez túto adresu. Ide iba o vizuálne priradenie.", + "serverDescription": "Voliteľná poznámka zobrazená pod názvom.", + "allowInsecure": "Vynechať overenie certifikátu TLS (allowInsecure / skip-cert-verify).", + "vlessRoute": "Jedna hodnota trasy VLESS (0-65535) vložená do UUID, napr. 443. Prázdne pole znamená žiadnu trasu.", + "mihomoX25519": "Len pre Mihomo: použiť obyčajný REALITY hello s X25519 bez ML-KEM (support-x25519mlkem768: false). Pre servery s Xray-core starším ako 26.9.8, ktoré ML-KEM nevyžadujú.", + "remark": "Bežný názov tejto adresy servera. Ako názov konfigurácie sa zobrazí iba vtedy, ak samotný vstup nemá vlastný názov." + }, + "remarkVars": { + "title": "Premenné šablóny", + "intro": "Kliknutím vložíte premennú. Pri vytváraní odberu sa nahradí hodnotou príslušného klienta.", + "preview": "Ukážka", + "groups": { + "client": "Klient", + "traffic": "Spotreba", + "time": "Čas a stav", + "connection": "Pripojenie" + }, + "descEMAIL": "Názov klienta", + "descINBOUND": "Vlastný názov vstupu (názov konfigurácie)", + "descHOST": "Názov adresy servera", + "descID": "UUID klienta", + "descSHORT_ID": "Prvých 8 znakov UUID", + "descTELEGRAM_ID": "Telegram ID klienta (prázdne, ak nie je nastavené)", + "descSUB_ID": "ID odberu", + "descCOMMENT": "Poznámka ku klientovi", + "descTRAFFIC_USED": "Spotrebované dáta v čitateľnom tvare", + "descTRAFFIC_LEFT": "Zostávajúce dáta (skryté pri neobmedzenom limite)", + "descTRAFFIC_TOTAL": "Celkový dátový limit (skrytý pri neobmedzenom limite)", + "descTRAFFIC_USED_BYTES": "Spotrebované dáta v bajtoch", + "descTRAFFIC_LEFT_BYTES": "Zostávajúce dáta v bajtoch", + "descTRAFFIC_TOTAL_BYTES": "Celkový dátový limit v bajtoch", + "descUP": "Odoslané dáta", + "descDOWN": "Prijaté dáta", + "descSTATUS": "active / expired / disabled / depleted (aktívny / platnosť skončila / vypnutý / dáta vyčerpané)", + "descSTATUS_EMOJI": "Stav ako emoji (✅ ⏳ 🚫)", + "descDAYS_LEFT": "Dni do skončenia platnosti (skryté pri neobmedzenej platnosti)", + "descTIME_LEFT": "Zostávajúci čas (napr. 12d 4h 30m)", + "descUSAGE_PERCENTAGE": "Spotreba v percentách (skryté pri neobmedzenom limite)", + "descEXPIRE_DATE": "Dátum skončenia platnosti (YYYY-MM-DD)", + "descJALALI_EXPIRE_DATE": "Dátum skončenia platnosti v kalendári Jalali (YYYY/MM/DD)", + "descEXPIRE_UNIX": "Koniec platnosti ako časová značka Unix (sekundy)", + "descCREATED_UNIX": "Čas vytvorenia ako časová značka Unix (sekundy)", + "descRESET_DAYS": "Interval nulovania spotreby v dňoch", + "descRESET_DAY": "Deň mesačného kalendárneho obnovenia", + "descPROTOCOL": "Protokol vstupu (VLESS, VMess, Trojan, …)", + "descTRANSPORT": "Prenosová sieť (tcp, ws, grpc, …)", + "descSECURITY": "Zabezpečenie prenosu (TLS, REALITY, NONE)" + }, + "toasts": { + "list": "Nepodarilo sa načítať adresy serverov", + "obtain": "Nepodarilo sa načítať adresu servera", + "add": "Adresa servera bola pridaná", + "update": "Adresa servera bola aktualizovaná", + "delete": "Adresa servera bola odstránená", + "badTag": "Neplatná značka", + "badVlessRoute": "Zadajte jedno číslo od 0 do 65535" + }, + "dragToReorder": "Presunutím zmeníte poradie {name}" + }, + "nodes": { + "addNode": "Pridať server", + "editNode": "Upraviť server", + "totalNodes": "Počet serverov", + "onlineNodes": "Online", + "offlineNodes": "Offline", + "avgLatency": "Priemerná odozva", + "name": "Názov", + "namePlaceholder": "napr. de-frankfurt-1", + "addressPlaceholder": "panel.example.com alebo 1.2.3.4", + "remark": "Poznámka", + "scheme": "Protokol URL", + "address": "Adresa", + "port": "Port", + "basePath": "Základná cesta", + "apiToken": "Token API", + "apiTokenPlaceholder": "Token zo stránky Nastavenia vzdialeného panelu", + "apiTokenHint": "Token API nájdete vo vzdialenom paneli v časti Overovanie → Token API.", + "apiTokenKeepHint": "Prázdne pole ponechá aktuálny token", + "allowPrivateAddress": "Povoliť súkromnú adresu", + "allowPrivateAddressHint": "Zapnite iba pri serveroch v súkromnej sieti alebo VPN.", + "outboundTag": "Výstup na pripojenie", + "outboundTagHint": "Smerovať požiadavky API tohto servera cez vybraný výstup Xray. Do bežiacej konfigurácie sa automaticky pridá miestny vstupný most a zmena sa použije za behu. Prázdne pole znamená priame pripojenie.", + "outboundTagPlaceholder": "Priame pripojenie", + "inboundSyncMode": "Import vstupov", + "inboundSyncModeHint": "Vyberte vstupy, ktoré sa majú z tohto servera importovať. Pri existujúcich serveroch sú predvolene vybrané všetky.", + "allInbounds": "Všetky vstupy", + "selectedInbounds": "Vybrané vstupy", + "inboundTags": "Vstupy", + "inboundTagsHint": "Výber sa páruje podľa značky vstupu. Prázdny výber neimportuje nič.", + "inboundTagsPlaceholder": "Načítajte a vyberte vstupy", + "loadInbounds": "Načítať vstupy zo servera", + "inboundsLoaded": "Načítané vstupy: {{count}}", + "inboundsLoadFailed": "Nepodarilo sa načítať vstupy", + "enable": "Zapnutý", + "status": "Stav", + "cpu": "CPU", + "mem": "Pamäť", + "netUp": "Odosielanie (KB/s)", + "netDown": "Sťahovanie (KB/s)", + "uptime": "Čas prevádzky", + "latency": "Odozva", + "lastHeartbeat": "Posledné hlásenie stavu", + "xrayVersion": "Verzia Xray", + "panelVersion": "Verzia panelu", + "actions": "Akcie", + "probe": "Skontrolovať teraz", + "updatePanel": "Aktualizovať panel", + "updateSelected": "Aktualizovať vybrané ({count})", + "updateAvailable": "Je dostupná aktualizácia", + "updateConfirmTitle": "Aktualizovať vybrané servery ({count}) na najnovšiu verziu?", + "updateConfirmContent": "Každý vybraný server stiahne najnovšie vydanie a reštartuje sa s ním. Aktualizujú sa iba zapnuté a dostupné servery.", + "updateDevChannel": "Prejsť na vývojové vydanie (najnovší commit)", + "testConnection": "Otestovať pripojenie", + "connectionOk": "Pripojenie je v poriadku ({ms} ms)", + "connectionFailed": "Pripojenie zlyhalo", + "never": "nikdy", + "justNow": "práve teraz", + "subNode": "Podriadený server", + "subNodeTip": "Iba na čítanie: podriadený server dostupný cez {parent}. Spravujte ho z panelu servera {parent}.", + "deleteConfirmTitle": "Odstrániť server „{name}“?", + "deleteConfirmContent": "Prestane sa sledovať tento server. Samotný vzdialený panel sa nezmení.", + "statusValues": { + "online": "Online", + "offline": "Offline", + "unknown": "Neznámy", + "xrayError": "Chyba Xray", + "xrayStopped": "Zastavený" + }, + "toasts": { + "list": "Nepodarilo sa načítať servery", + "obtain": "Nepodarilo sa načítať server", + "add": "Pridať server", + "update": "Aktualizovať server", + "delete": "Odstrániť server", + "deleted": "Server bol odstránený", + "test": "Otestovať pripojenie", + "fillRequired": "Zadajte názov, adresu, port a token API", + "probeFailed": "Kontrola zlyhala", + "updateStarted": "Aktualizácia panelu sa začala", + "updateResult": "Aktualizácia spustená na serveroch: {ok}, neúspešné: {failed}", + "updateNoneEligible": "Vyberte aspoň jeden dostupný a zapnutý server", + "saveMtls": "Uložiť mTLS servera", + "reloadMtls": "Znova načítať prihlasovací údaj mTLS hlavného panelu" + }, + "tlsVerifyMode": "Overovanie TLS", + "tlsVerifyModeHint": "Spôsob overenia certifikátu HTTPS vzdialeného servera. Pri certifikáte podpísanom sebou samým použite pevný odtlačok alebo vynechanie overenia (iba servery HTTPS).", + "tlsVerify": "Overiť (predvolená certifikačná autorita)", + "tlsPin": "Pevný odtlačok certifikátu (SHA-256)", + "tlsSkip": "Vynechať overenie", + "tlsMtls": "Vzájomné TLS (klientsky certifikát)", + "mtlsFormHint": "Tento server overuje panel klientskym certifikátom. Skopírujte certifikačnú autoritu tohto panelu z časti mTLS serverov na vzdialený server, nastavte jeho dôveryhodnú nadradenú autoritu a potom ho reštartujte.", + "mtls": { + "title": "mTLS serverov", + "intro": "Vzájomné TLS pridáva k tokenu API aj overenie klientskym certifikátom pri komunikácii medzi servermi. Je voliteľné. Prázdne nastavenie ponechá overenie iba tokenom.", + "copyCa": "Skopírovať certifikačnú autoritu panelu", + "copyCaHint": "Odovzdajte tento certifikát serverom spravovaným týmto panelom a nastavte im vzájomné TLS.", + "caCopied": "Certifikát autority bol skopírovaný do schránky", + "caFailed": "Nepodarilo sa získať certifikát autority", + "trustLabel": "Dôveryhodná nadradená certifikačná autorita", + "trustHint": "Ak tento panel sám funguje ako spravovaný server, vložte sem certifikát autority nadradeného panelu, aby sa vyžadoval jeho klientsky certifikát. Zmenu použijete reštartom panelu.", + "trustPlaceholder": "-----BEGIN CERTIFICATE-----", + "save": "Uložiť dôveryhodnú autoritu", + "saved": "Dôveryhodná autorita bola uložená. Zmenu použijete reštartom panelu." + }, + "tlsSkipWarning": "Vynechanie overenia odstráni ochranu pred útokom sprostredkovateľa a token API môže byť zachytený. Uprednostnite pevný odtlačok certifikátu.", + "pinnedCert": "Pevný odtlačok certifikátu SHA-256", + "pinnedCertHint": "SHA-256 certifikátu servera vo formáte Base64 alebo hex. Tlačidlo Získať ho načíta zo servera.", + "pinnedCertPlaceholder": "SHA-256 vo formáte base64 alebo hex", + "fetchPin": "Získať", + "pinFetched": "Aktuálny certifikát servera bol načítaný", + "pinFetchFailed": "Nepodarilo sa získať certifikát" + }, + "settings": { + "defaultTag": "Predvolené", + "title": "Nastavenia panelu", + "save": "Uložiť", + "infoDesc": "Každú zmenu najprv uložte. Na jej použitie reštartujte panel.", + "restartPanel": "Reštartovať panel", + "restartPanelDesc": "Naozaj chcete reštartovať panel? Ak sa po reštarte nedá otvoriť, skontrolujte záznamy panelu na serveri.", + "restartPanelSuccess": "Panel bol úspešne reštartovaný.", + "actions": "Akcie", + "resetDefaultConfig": "Obnoviť predvolené nastavenia", + "panelSettings": "Všeobecné", + "securitySettings": "Overovanie", + "securityWarnings": "Bezpečnostné upozornenia", + "panelExposed": "Panel môže byť nedostatočne chránený:", + "warnHttp": "Panel používa nešifrované HTTP. Na bežnú prevádzku nastavte TLS.", + "warnDefaultPort": "Predvolený port 2053 je všeobecne známy. Zmeňte ho na náhodný port.", + "warnDefaultBasePath": "Predvolená základná cesta „/“ je všeobecne známa. Zmeňte ju na náhodnú cestu.", + "warnDefaultSubPath": "Predvolená cesta odberu „/sub/“ je všeobecne známa. Zmeňte ju.", + "warnDefaultJsonPath": "Predvolená cesta odberu JSON „/json/“ je všeobecne známa. Zmeňte ju.", + "TGBotSettings": "Telegram bot", + "panelListeningIP": "IP adresa na počúvanie", + "panelListeningIPDesc": "IP adresa webového panelu. Prázdne pole znamená počúvanie na všetkých IP adresách.", + "panelListeningDomain": "Doména panelu", + "panelListeningDomainDesc": "Doména webového panelu. Prázdne pole umožní prístup cez všetky domény a IP adresy.", + "panelPort": "Port na počúvanie", + "panelPortDesc": "Port webového panelu. Musí byť voľný.", + "publicKeyPath": "Cesta k verejnému kľúču", + "publicKeyPathDesc": "Cesta k súboru s verejným kľúčom webového panelu. Začína sa znakom '/'.", + "privateKeyPath": "Cesta k súkromnému kľúču", + "privateKeyPathDesc": "Cesta k súboru so súkromným kľúčom webového panelu. Začína sa znakom '/'.", + "panelUrlPath": "Cesta URI", + "panelUrlPathDesc": "Cesta URI webového panelu. Začína aj končí sa znakom '/'.", + "pageSize": "Počet riadkov na stránku", + "pageSizeDesc": "Počet riadkov tabuľky vstupov na jednej stránke (0 = vypnuté).", + "panelOutbound": "Výstup pre požiadavky panelu", + "panelOutboundDesc": "Smeruje vlastné požiadavky panelu cez tento výstup Xray: kontroly a sťahovanie verzií panelu/Xray, Telegram aj bežné aktualizácie geodát. Umožní obísť blokovanie GitHubu alebo Telegramu na serveri. Do bežiacej konfigurácie sa automaticky pridá miestny vstupný most a zmena sa použije za behu. Natívna automatická aktualizácia geodát Xray sa nemení; má vlastný výstup na sťahovanie. Prázdne pole znamená priame pripojenie.", + "panelOutboundPh": "Priame pripojenie", + "remarkTemplate": "Šablóna názvov", + "remarkTemplateDesc": "Nahradí model názvu pri všetkých odkazoch na odber. Zadajte vlastný formát s premennými, ktoré vložíte príslušným tlačidlom. Prázdne pole použije model vyššie.", + "subShowIdentityOnAllLinks": "Zobraziť identitu pri každom odkaze", + "subShowIdentityOnAllLinksDesc": "Pri zapnutí zostanú {{EMAIL}} a {{USERNAME}} v názve každého odkazu v obsahu odberu. Údaje o spotrebe sa zobrazujú iba pri prvom odkaze.", + "datepicker": "Typ kalendára", + "datepickerPlaceholder": "Vyberte dátum", + "datepickerDescription": "Plánované úlohy sa riadia týmto kalendárom.", + "oldUsername": "Aktuálne používateľské meno", + "currentPassword": "Aktuálne heslo", + "newUsername": "Nové používateľské meno", + "newPassword": "Nové heslo", + "telegramBotEnable": "Zapnúť Telegram bota", + "telegramBotEnableDesc": "Zapne Telegram bota.", + "telegramToken": "Token Telegramu", + "telegramTokenDesc": "Token Telegram bota získaný od '{'@'}BotFather'.", + "telegramProxy": "Proxy SOCKS", + "telegramProxyDesc": "Zapne proxy SOCKS5 na pripojenie k Telegramu. Nastavte ho podľa návodu.", + "telegramAPIServer": "Server API Telegramu", + "telegramAPIServerDesc": "Server API na komunikáciu s Telegramom. Prázdne pole použije predvolený server.", + "telegramChatId": "ID konverzácie správcu", + "telegramChatIdDesc": "ID konverzácií správcov v Telegrame oddelené čiarkou. Získate ich od {'@'}userinfobot alebo príkazom '/id' v botovi.", + "telegramNotifyTime": "Čas upozornení", + "telegramNotifyTimeDesc": "Ako často Telegram bot posiela pravidelné správy. Vyberte interval alebo možnosť Vlastné a zadajte výraz crontab.", + "notifyTime": { + "every": "@every — opakovať v intervale", + "hourly": "@hourly — každú hodinu", + "daily": "@daily — denne o 00:00", + "weekly": "@weekly — každý týždeň", + "monthly": "@monthly — každý mesiac", + "custom": "Vlastné (crontab)", + "seconds": "Sekundy", + "minutes": "Minúty", + "hours": "Hodiny", + "interval": "Interval", + "unit": "Jednotka" + }, + "tgNotifyBackup": "Záloha databázy", + "tgNotifyBackupDesc": "Posielať so správou aj súbor so zálohou databázy.", + "tgNotifyLogin": "Upozornenie na prihlásenie", + "tgNotifyLoginDesc": "Pri každom pokuse o prihlásenie do panelu poslať používateľské meno, IP adresu a čas.", + "sessionMaxAge": "Platnosť prihlásenia", + "sessionMaxAgeDesc": "Ako dlho môžete zostať prihlásení (jednotka: minúta).", + "expireTimeDiff": "Upozornenie na koniec platnosti", + "expireTimeDiffDesc": "Upozorniť na koniec platnosti pri dosiahnutí tohto prahu (jednotka: deň).", + "trafficDiff": "Upozornenie na dátový limit", + "trafficDiffDesc": "Upozorniť na blížiace sa vyčerpanie dát pri dosiahnutí tohto prahu (jednotka: GB).", + "tgNotifyCpu": "Upozornenie na záťaž CPU", + "tgNotifyCpuDesc": "Upozorniť pri prekročení tejto záťaže CPU (jednotka: %).", + "timeZone": "Časové pásmo", + "timeZoneDesc": "Plánované úlohy sa riadia týmto časovým pásmom.", + "subSettings": "Odber konfigurácií", + "subEnable": "Služba odberu konfigurácií", + "subEnableDesc": "Zapnúť alebo vypnúť službu odberu konfigurácií.", + "subJsonEnable": "Samostatne zapnúť alebo vypnúť koncový bod odberu JSON.", + "subJsonEnableTitle": "Odber JSON", + "subClashEnableTitle": "Odber Clash / Mihomo", + "subFormatsTipTitle": "Nastavenia jednotlivých formátov odberu", + "subFormatsTipDesc": "Samostatne nastavte cesty URL pre JSON a Clash / Mihomo, verejné URL a automatické rozpoznávanie klientov.", + "subFormatsTipAction": "Otvoriť formáty odberu", + "subJsonAutoDetect": "Automaticky rozpoznať klientov Xray JSON", + "subJsonAutoDetectDesc": "Podporovaní klienti pri požiadavke na štandardnú URL odberu automaticky dostanú pole konfigurácií Xray JSON. Ostatní dostanú pôvodnú odpoveď raw/base64. Vyžaduje zapnutý odber JSON a reštart panelu.", + "subJsonAlwaysArray": "Vždy vracať pole JSON", + "subJsonAlwaysArrayDesc": "Samostatný koncový bod JSON vráti pole aj pri jedinom profile podľa štandardu odberu XTLS. Automaticky rozpoznané odpovede JSON vždy používajú pole. Vypnutím sa zachová staršia odpoveď s jedným objektom.", + "subJsonUserAgentRegex": "Regulárny výraz User-Agent pre Xray JSON", + "subJsonUserAgentRegexDesc": "Regulárny výraz Go RE2 porovnávaný s hlavičkou User-Agent klienta na výber formátu Xray JSON pri štandardnej URL odberu. Predvolene je prázdny, takže rozpoznávanie začne až po zadaní vzoru požadovaných klientov. Ostatní dostanú odpoveď raw/base64. Po zmene reštartujte panel.", + "subJsonRoutingRules": "Profil smerovania pre odber JSON", + "subJsonRoutingRulesDesc": "JSON smerovania, odkaz happ:// alebo incy://, prípadne URL https://. Nahradí DNS a pravidlá smerovania v konfiguráciách odberu JSON, aj pre klientov ignorujúcich hlavičky, napr. Happ a INCY s vlastným vyvažovaním. Ak je nastavenie hlavičky smerovania Happ prázdne, rovnaký profil sa pošle aj v hlavičke Routing (JSON a URL ako odkaz happ://), aby klienti získali príslušné geodáta.", + "subJsonDns": "DNS servery", + "subJsonDnsDesc": "Nahradí blok dns v každej konfigurácii odberu JSON: zadajte celý objekt dns alebo pole servers. V týchto konfiguráciách nahradí aj DNS profilu smerovania. Klienti používajúci hlavičku Routing si ponechajú DNS z profilu. Prázdne pole zachová vstavaný DNS resolver.", + "subClashAutoDetect": "Automaticky rozpoznať klientov Clash/Mihomo", + "subClashAutoDetectDesc": "Rozpoznaní klienti Clash/Mihomo pri požiadavke na štandardnú URL odberu automaticky dostanú Clash YAML. Prehliadač naďalej zobrazí klientsku stránku a ostatní dostanú odpoveď raw/base64. Samostatné URL pre JSON a Clash zostanú dostupné. Vyžaduje zapnutý odber Clash/Mihomo a reštart panelu.", + "subClashUserAgentRegex": "Regulárny výraz User-Agent pre Clash/Mihomo", + "subClashUserAgentRegexDesc": "Regulárny výraz Go RE2 na rozpoznanie klientov Clash/Mihomo podľa hlavičky User-Agent pri štandardnej URL odberu. Prázdne pole použije predvolený vzor. Po zmene reštartujte panel.", + "subTitle": "Názov odberu", + "subTitleDesc": "Názov vo VPN klientovi. Podporuje premenné identity klienta: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.", + "subSupportUrl": "URL podpory", + "subSupportUrlDesc": "Odkaz na technickú podporu vo VPN klientovi. Podporuje premenné identity klienta: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.", + "subProfileMode": "Stránka profilu", + "subProfileModeDesc": "Vyberte webový odkaz, ktorý sa zobrazí vo VPN klientovi.", + "subProfileModeNone": "Bez odkazu", + "subProfileModeBuiltin": "Vstavaná stránka odberu", + "subProfileModeCustom": "Vlastný web", + "subProfileBuiltinWarning": "Táto stránka sprístupňuje URL odberov a konfigurácie serverov, aj pri šifrovaných odberoch Happ.", + "subProfileUrl": "URL profilu", + "subProfileUrlDesc": "Odkaz na váš web vo VPN klientovi. Podporuje premenné identity klienta: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}. Prázdne pole odkaz vynechá.", + "subAnnounce": "Oznámenie", + "subAnnounceDesc": "Text oznámenia vo VPN klientovi. Podporuje premenné identity klienta: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.", + "subThemeDir": "Priečinok vzhľadu odberu", + "subThemeDirDesc": "Absolútna cesta k priečinku s vlastnou šablónou klientskej stránky index.html/sub.html (napr. /etc/3x-ui/sub_templates/my-theme/). Prázdne pole použije predvolenú stránku.", + "subThemeDirDocs": "Návod na šablóny ↗", + "subEnableRouting": "Zapnúť smerovanie", + "happLinkEnable": "Šifrované odkazy na odber", + "happLinkEnableDesc": "Umožní vytvárať šifrované odkazy Happ v okne QR kódu klienta. URL odberov sa spracúvajú miestne.", + "subEnableRoutingDesc": "Globálne zapnutie smerovania vo VPN klientovi. Iba pre Happ.", + "subRoutingRules": "Pravidlá smerovania", + "subRoutingRulesDesc": "Vložte hotový odkaz happ:// alebo jednu stálu URL HTTPS vracajúcu takýto odkaz či JSON. Panel pravidlá obnovuje na pozadí a ponechá poslednú platnú hodnotu. Požiadavky na odber preto nečakajú na zdroj. Iba pre Happ.", + "subHideSettings": "Skryť nastavenia servera", + "subHideSettingsDesc": "Vo VPN klientovi skryje možnosť zobraziť a upraviť konfigurácie serverov. Iba pre Happ.", + "subIncyEnableRouting": "Zapnúť smerovanie", + "subIncyEnableRoutingDesc": "Pridá profil smerovania do obsahu odberu pre klienta Incy. Iba pre Incy.", + "subIncyRoutingRules": "Pravidlá smerovania", + "subIncyRoutingRulesDesc": "Vložte hotový odkaz incy:// alebo jednu stálu URL HTTPS vracajúcu JSON. Z URL HTTPS vznikne profil automatického smerovania, ktorý obnovuje samotný Incy. Iba pre Incy.", + "subClashEnableRouting": "Zapnúť smerovanie", + "subClashEnableRoutingDesc": "Zahrnúť globálne pravidlá smerovania Clash/Mihomo do vytvorených odberov YAML.", + "subClashRoutingRules": "Globálne pravidlá smerovania", + "subClashRoutingRulesDesc": "Vložte pravidlá/YAML priamo alebo jednu stálu URL HTTPS. Panel ich obnovuje na pozadí, importuje iba skupiny, poskytovateľov a pravidlá. Vytvorené VPN servery aj posledná platná hodnota zostanú zachované.", + "subClashRemoteDNS": "Použiť DNS zo vzdialených pravidiel", + "subClashRemoteDNSDesc": "Keď je v poli globálnych pravidiel smerovania URL, prevezmú sa aj jej sekcie dns a sniffer. Zapnite len pre šablónu, ktorej dôverujete.", + "subListen": "IP adresa na počúvanie", + "subListenDesc": "IP adresa služby odberu konfigurácií. Prázdne pole znamená počúvanie na všetkých IP adresách.", + "subPort": "Port na počúvanie", + "subPortDesc": "Port služby odberu konfigurácií. Musí byť voľný. Ak je pole „URI reverzného proxy“ nižšie prázdne, použije sa aj v odkaze a QR kóde panelu. Pri prístupe cez reverzný proxy na inom porte nastavte „URI reverzného proxy“.", + "subCertPath": "Cesta k verejnému kľúču", + "subCertPathDesc": "Cesta k súboru s verejným kľúčom služby odberu. Začína sa znakom '/'.", + "subKeyPath": "Cesta k súkromnému kľúču", + "subKeyPathDesc": "Cesta k súboru so súkromným kľúčom služby odberu. Začína sa znakom '/'.", + "subPath": "Cesta URI", + "subPathDesc": "Cesta URI služby odberu konfigurácií. Začína aj končí sa znakom '/'.", + "subDomain": "Doména služby", + "subDomainDesc": "Doména služby odberu. Prázdne pole umožní všetky domény a IP adresy. Ak je pole „URI reverzného proxy“ prázdne, použije sa aj ako náhradná doména zobrazeného odkazu na odber. Ak sú panel a odber dostupné cez odlišné domény, napr. za reverzným proxy, nastavte „URI reverzného proxy“.", + "subUpdates": "Interval aktualizácií", + "subUpdatesDesc": "Interval aktualizácie odberu v klientskych aplikáciách (jednotka: hodina).", + "externalSubUserAgent": "User-Agent externého odberu", + "externalSubUserAgentDesc": "Hlavička User-Agent odosielaná pri načítaní externého odberu klienta. Prázdne pole použije predvolenú hodnotu v2rayNG/1.8.5. Niektorí poskytovatelia neznámych klientov odmietajú.", + "subEncrypt": "Kódovanie", + "subEncryptDesc": "Obsah odpovede služby odberu sa zakóduje do Base64.", + "subURI": "URI reverzného proxy", + "subURIDesc": "Úplná základná URL (scheme://domain[:port]/path/) pre odkaz na odber a QR kód namiesto domény a portu počúvania. Nastavte ju vždy, keď je odber dostupný cez reverzný proxy alebo inú doménu či port než vyššie.", + "externalTrafficInformEnable": "Hlásenie spotreby externému API", + "externalTrafficInformEnableDesc": "Pri každej aktualizácii spotreby informovať externé API.", + "externalTrafficInformURI": "URI externého hlásenia spotreby", + "externalTrafficInformURIDesc": "Na túto URI sa posielajú aktualizácie spotreby.", + "restartXrayOnClientDisable": "Reštartovať Xray po vypnutí klienta", + "restartXrayOnClientDisableDesc": "Keď klient stratí prístup pre skončenú platnosť alebo vyčerpaný limit, prípadne ho správca vypne či odstráni, reštartovať Xray a ukončiť jeho existujúce spojenia.", + "fragment": "Fragmentácia", + "fragmentDesc": "Zapnúť delenie paketu TLS hello.", + "fragmentSett": "Nastavenia fragmentácie", + "noisesDesc": "Zapnúť šumové pakety.", + "noisesSett": "Nastavenia šumových paketov", + "trustedProxyCidrs": "Dôveryhodné proxy adresy CIDR", + "trustedProxyCidrsDesc": "IP adresy alebo rozsahy CIDR oddelené čiarkou, ktoré smú nastavovať preposlané hlavičky hostiteľa, protokolu a IP klienta.", + "realityScanCandidates": "Predvolené ciele vyhľadávania REALITY", + "realityScanCandidatesDesc": "Ciele host:port alebo rozsahy CIDR oddelené čiarkou. Použijú sa pri vyhľadávaní cieľov s prázdnym poľom. Nastavte si často používané ciele.", + "ldap": { + "enable": "Zapnúť synchronizáciu LDAP", + "host": "Hostiteľ LDAP", + "port": "Port LDAP", + "useTls": "Použiť TLS (LDAPS)", + "skipTlsVerify": "Vynechať overenie certifikátu TLS", + "skipTlsVerifyDesc": "Nezabezpečené: vypne overenie certifikátu servera. Používajte iba s internými alebo nedôveryhodnými certifikačnými autoritami.", + "bindDn": "Prihlasovací DN", + "passwordConfigured": "Nastavené. Prázdne pole ponechá aktuálne heslo.", + "passwordUnconfigured": "Nenastavené.", + "passwordPlaceholder": "Nastavené; nová hodnota nahradí aktuálnu", + "baseDn": "Základný DN", + "userFilter": "Filter používateľov", + "userAttr": "Atribút používateľa (meno/e-mail)", + "vlessField": "Atribút príznaku VLESS", + "flagField": "Všeobecný atribút príznaku (voliteľné)", + "flagFieldDesc": "Ak je nastavený, nahradí príznak VLESS, napr. shadowInactive.", + "truthyValues": "Hodnoty znamenajúce zapnutie", + "truthyValuesDesc": "Oddeľte čiarkou. Predvolené: true,1,yes,on", + "invertFlag": "Obrátiť význam príznaku", + "invertFlagDesc": "Zapnite, ak atribút znamená vypnutie, napr. shadowInactive.", + "syncSchedule": "Plán synchronizácie", + "syncScheduleDesc": "Výraz podobný cron, napr. @every 1m", + "inboundTags": "Značky vstupov", + "inboundTagsDesc": "Vstupy, na ktorých môže synchronizácia LDAP automaticky vytvárať alebo odstraňovať klientov.", + "noInbounds": "Žiadne vstupy sa nenašli. Najprv vytvorte vstup v časti Vstupy.", + "autoCreate": "Automaticky vytvárať klientov", + "autoDelete": "Automaticky odstraňovať klientov", + "defaultTotalGb": "Predvolený dátový limit (GB)", + "defaultExpiryDays": "Predvolená platnosť (dni)", + "defaultIpLimit": "Predvolený limit IP adries" + }, + "subFormats": { + "finalMask": "Konečné maskovanie", + "finalMaskDesc": "Pridá maskovanie TCP/UDP finalmask a parametre QUIC Xray do každého vytvoreného profilu Xray JSON. Vyžaduje klientsku aplikáciu podporujúcu odbery Xray JSON a novšie jadro Xray.", + "packets": "Pakety", + "length": "Dĺžka", + "interval": "Interval", + "maxSplit": "Najväčší počet častí", + "noises": "Šumové pakety", + "noiseItem": "Šum č. {n}", + "type": "Typ", + "packet": "Paket", + "delayMs": "Oneskorenie (ms)", + "applyTo": "Použiť na", + "addNoise": "+ Šum", + "concurrency": "Počet súbežných prenosov", + "xudpConcurrency": "Súbežné prenosy xudp", + "xudpUdp443": "xudp UDP 443" + }, + "mux": "Multiplexovanie (Mux)", + "muxDesc": "Prenáša viac nezávislých dátových tokov v jednom nadviazanom spojení.", + "muxSett": "Nastavenia multiplexovania", + "direct": "Priame pripojenie", + "directDesc": "Priame spojenia s doménami alebo rozsahmi IP konkrétnej krajiny.", + "block": "Blokovanie spojení", + "blockDesc": "Blokovať spojenia s vybranými doménami alebo rozsahmi IP cez výstup blackhole.", + "notifications": "Upozornenia", + "certs": "Certifikáty", + "externalTraffic": "Externé hlásenie spotreby", + "dateAndTime": "Dátum a čas", + "proxyAndServer": "Proxy a server", + "intervals": "Intervaly", + "information": "Informácie", + "profile": "Profil", + "language": "Jazyk", + "telegramBotLanguage": "Jazyk Telegram bota", + "security": { + "admin": "Prihlasovacie údaje správcu", + "twoFactor": "Dvojfaktorové overenie", + "twoFactorEnable": "Zapnúť 2FA", + "twoFactorEnableDesc": "Pridá ďalší krok overenia a zvýši bezpečnosť prihlásenia.", + "twoFactorModalSetTitle": "Zapnúť dvojfaktorové overenie", + "twoFactorModalDeleteTitle": "Vypnúť dvojfaktorové overenie", + "twoFactorModalSteps": "Dvojfaktorové overenie nastavíte takto:", + "twoFactorModalFirstStep": "1. Naskenujte QR kód v overovacej aplikácii alebo skopírujte token vedľa kódu a vložte ho do aplikácie", + "twoFactorModalSecondStep": "2. Zadajte kód z aplikácie", + "twoFactorModalRemoveStep": "Na vypnutie dvojfaktorového overenia zadajte kód z aplikácie.", + "twoFactorModalChangeCredentialsTitle": "Zmeniť prihlasovacie údaje", + "twoFactorModalChangeCredentialsStep": "Na zmenu prihlasovacích údajov správcu zadajte kód z aplikácie.", + "twoFactorModalSetSuccess": "Dvojfaktorové overenie bolo zapnuté", + "twoFactorModalDeleteSuccess": "Dvojfaktorové overenie bolo vypnuté", + "twoFactorModalError": "Nesprávny kód", + "show": "Zobraziť", + "hide": "Skryť", + "apiTokenNew": "Nový token", + "apiTokenName": "Názov", + "apiTokenNamePlaceholder": "napr. centralny-panel-a", + "apiTokenNameRequired": "Zadajte názov", + "apiTokenScope": "Rozsah oprávnení", + "apiTokenScopeAdmin": "Správca", + "apiTokenScopeAdminDesc": "Úplný prístup ku všetkým koncovým bodom API panelu. Používajte iba pre dôveryhodnú automatizáciu.", + "apiTokenScopeMonitor": "Sledovanie stavu", + "apiTokenScopeMonitorDesc": "Prístup iba na čítanie stavu systému, verzií a metrík.", + "apiTokenScopeNodeSync": "Synchronizácia servera", + "apiTokenScopeNodeSyncDesc": "Synchronizuje konfiguráciu servera, vstupy, klientov, spotrebu a stav Xray. Neumožňuje aktualizovať softvér panelu.", + "apiTokenScopeNodeAdmin": "Správca servera", + "apiTokenScopeNodeAdminDesc": "Zahŕňa synchronizáciu servera a navyše umožňuje spúšťať aktualizácie softvéru panelu.", + "apiTokenEmpty": "Zatiaľ nie sú vytvorené žiadne tokeny. Vytvorte token na overovanie botov alebo vzdialených panelov.", + "apiTokenDeleteWarning": "Každý, kto používa tento token, okamžite stratí možnosť overenia.", + "apiTokenCreatedTitle": "Token bol vytvorený", + "apiTokenCreatedNotice": "Token si teraz skopírujte. Z bezpečnostných dôvodov sa neukladá v čitateľnej podobe a už sa znova nezobrazí." + }, + "toasts": { + "modifySettings": "Nastavenia boli zmenené.", + "getSettings": "Nepodarilo sa načítať nastavenia.", + "modifyUserError": "Nepodarilo sa zmeniť prihlasovacie údaje správcu.", + "modifyUser": "Prihlasovacie údaje správcu boli zmenené.", + "originalUserPassIncorrect": "Aktuálne používateľské meno alebo heslo je nesprávne", + "userPassMustBeNotEmpty": "Nové používateľské meno aj heslo sú prázdne", + "getOutboundTrafficError": "Nepodarilo sa načítať spotrebu", + "resetOutboundTrafficError": "Nepodarilo sa vynulovať spotrebu výstupov" + }, + "smtpSettings": "Nastavenia SMTP", + "smtpEnable": "Zapnúť e-mailové upozornenia", + "smtpEnableDesc": "Zapnúť posielanie upozornení cez SMTP", + "smtpHost": "Hostiteľ SMTP", + "smtpHostDesc": "Názov servera SMTP (napr. smtp.gmail.com)", + "smtpPort": "Port SMTP", + "smtpPortDesc": "Port servera SMTP (predvolene: 587)", + "smtpUsername": "Používateľské meno SMTP", + "smtpUsernameDesc": "Meno na prihlásenie k SMTP", + "smtpFrom": "Adresa odosielateľa SMTP", + "smtpFromDesc": "Adresa odosielateľa v hlavičke From. Prázdne pole použije používateľské meno.", + "smtpFromName": "Meno odosielateľa SMTP", + "smtpFromNameDesc": "Voliteľné meno zobrazené pred adresou odosielateľa v hlavičke From.", + "smtpPassword": "Heslo SMTP", + "smtpPasswordDesc": "Heslo na prihlásenie k SMTP", + "smtpTo": "Príjemcovia", + "smtpToDesc": "E-mailové adresy príjemcov oddelené čiarkou", + "emailSettings": "E-mail", + "emailNotifications": "Upozornenia", + "smtpEventBusNotify": "E-mailové upozornenia na udalosti", + "smtpEventBusNotifyDesc": "Vyberte udalosti, pri ktorých sa má poslať e-mailové upozornenie", + "tgEventBusNotify": "Upozornenia Telegramu na udalosti", + "tgEventBusNotifyDesc": "Vyberte udalosti, pri ktorých sa má poslať upozornenie cez Telegram", + "testSmtp": "Poslať skúšobný e-mail", + "testTgBot": "Poslať skúšobnú správu", + "eventGroupOutbound": "Výstup", + "eventGroupXray": "Jadro Xray", + "eventGroupSystem": "Systém", + "eventGroupSecurity": "Bezpečnosť", + "eventGroupNode": "Servery", + "eventOutboundDown": "Nedostupný", + "eventOutboundUp": "Dostupný", + "eventDownThresholdHint": "neúspešných kontrol za sebou", + "eventXrayCrash": "Pád procesu", + "eventNodeDown": "Nedostupný", + "eventNodeUp": "Dostupný", + "eventCPUHigh": "Vysoké využitie CPU (%)", + "requestFailed": "Požiadavka zlyhala", + "smtpEncryption": "Šifrovanie", + "smtpEncryptionDesc": "Spôsob šifrovania spojenia SMTP", + "smtpEncryptionNone": "Žiadne (nešifrovaný text)", + "smtpEncryptionStartTLS": "STARTTLS", + "smtpEncryptionTLS": "TLS (priame)", + "smtpStageConnect": "Pripojenie", + "smtpStageAuth": "Overenie", + "smtpStageSend": "Odoslanie", + "smtpTestSuccess": "Skúšobný e-mail bol odoslaný", + "smtpHostNotConfigured": "Server SMTP nie je nastavený", + "smtpNoRecipients": "Nie sú nastavení žiadni príjemcovia", + "smtpFromNotConfigured": "Adresa odosielateľa SMTP nie je nastavená", + "eventLoginAttempt": "Pokus o prihlásenie", + "telegramTokenConfigured": "Nastavené. Prázdne pole ponechá aktuálny token.", + "telegramTokenPlaceholder": "Nastavené; nový token nahradí aktuálny", + "smtpPasswordConfigured": "Nastavené. Prázdne pole ponechá aktuálne heslo.", + "smtpPasswordPlaceholder": "Nastavené; nové heslo nahradí aktuálne", + "smtpNotInitialized": "SMTP nie je pripravené", + "tgBotNotEnabled": "Telegram bot nie je zapnutý", + "tgTestFailed": "Skúška Telegramu zlyhala", + "tgTestSuccess": "Skúšobná správa bola odoslaná do Telegramu", + "tgBotNotRunning": "Telegram bot nebeží", + "smtpErrorAuth": "Overenie zlyhalo. Skontrolujte používateľské meno a heslo.", + "smtpErrorStarttls": "Server vyžaduje STARTTLS. Zmeňte spôsob šifrovania.", + "smtpErrorTls": "Server vyžaduje TLS. Zmeňte spôsob šifrovania.", + "smtpErrorRefused": "Spojenie bolo odmietnuté. Skontrolujte hostiteľa a port.", + "smtpErrorTimeout": "Čas na pripojenie vypršal. Hostiteľ nie je dostupný.", + "smtpErrorRelay": "Server odmieta odosielanie z tejto adresy", + "smtpErrorEof": "Server zatvoril spojenie", + "smtpErrorUnknown": "Chyba SMTP. Podrobnosti nájdete v zázname panelu.", + "eventMemoryHigh": "Vysoké využitie pamäte (%)", + "validation": { + "pathLeadingSlash": "Cesta sa musí začínať znakom /" + }, + "secretClear": "Vymazať", + "secretClearUndo": "Vrátiť vymazanie", + "calendarGregorian": "Gregoriánsky (štandardný)", + "calendarJalalian": "Jalali (شمسی)", + "ipLimitAllowlist": "Výnimky z limitu IP adries", + "ipLimitAllowlistDesc": "Adresy a siete, ktoré sa nikdy nezapočítajú do limitu IP ani nezablokujú. Spoločná adresa kancelárie alebo školy tak nevyčerpá limit klienta. Zadajte IP alebo CIDR oddelené čiarkou.", + "subBalancers": { + "menu": "Vyvažovanie v odbere", + "title": "Vyvažovanie odberu konfigurácií", + "add": "Pridať vyvažovanie", + "desc": "Každé zapnuté vyvažovanie sa pridá do odberu JSON ako ďalší profil, ktorý automaticky vyberá najlepší koncový bod zo zvolených vstupov (routing.balancers + burstObservatory v konfigurácii klienta).", + "remark": "Názov", + "remarkPlaceholder": "Automaticky · najrýchlejšie", + "strategy": "Spôsob výberu", + "strategyLeastLoad": "Najnižšia záťaž", + "strategyLeastPing": "Najnižšia odozva", + "strategyRandom": "Náhodne", + "strategyRoundRobin": "Postupne dookola", + "sortOrder": "Poradie", + "sortOrderHelp": "Pozícia v zozname odberu, spoločne s poradím vstupov. Pri rovnakom čísle nasleduje vyvažovanie po vstupe.", + "inbounds": "Vstupy", + "inboundsCount": "Počet vstupov: {count}", + "weights": "Váhy členov", + "weightsHelp": "Iba pre LeastLoad: nižšia váha znamená častejší výber. Bez zadanej hodnoty má člen váhu 1.", + "enabled": "Zapnuté", + "empty": "Zatiaľ nie je pridané žiadne vyvažovanie", + "deleteConfirm": "Odstrániť toto vyvažovanie?", + "errRemarkRequired": "Zadajte názov", + "errInboundsRequired": "Vyberte aspoň jeden vstup", + "errSortOrder": "Poradie musí byť celé číslo ≥ 1", + "errWeightPositive": "Váhy musia byť väčšie ako 0", + "toasts": { + "list": "Nepodarilo sa načítať vyvažovanie odberov", + "create": "Nepodarilo sa vytvoriť vyvažovanie odberu", + "update": "Nepodarilo sa upraviť vyvažovanie odberu", + "delete": "Nepodarilo sa odstrániť vyvažovanie odberu", + "invalidId": "Neplatné ID" + }, + "tabBalancers": "Vyvažovanie", + "tabObservatory": "Kontrola dostupnosti", + "observatory": { + "title": "Kontrola dostupnosti pre vyvažovanie", + "desc": "Parametre kontrol burst observatory vložených do každého profilu leastPing/leastLoad. Pri random/roundRobin sa kontrola dostupnosti nepridáva. Ukladá sa ako spoločné nastavenie odberu JSON pre celý panel.", + "destination": "URL na meranie odozvy", + "destinationDesc": "URL, ktorú klient používa na meranie odozvy každého výstupu.", + "connectivity": "URL na overenie pripojenia", + "connectivityDesc": "Voliteľná URL na jednorazové overenie, že člen dosiahne cieľ merania. Prázdne pole túto kontrolu vynechá.", + "interval": "Interval kontrol", + "intervalDesc": "Čas medzi jednotlivými kolami merania, napr. 1m.", + "timeout": "Časový limit kontroly", + "timeoutDesc": "Časový limit jedného merania, napr. 5s.", + "sampling": "Vzorkovanie", + "samplingDesc": "Počet po sebe idúcich meraní, z ktorých sa vypočíta stabilnejší priemer.", + "httpMethod": "Metóda HTTP", + "httpMethodDesc": "Metóda požiadaviek pri meraní.", + "note": "Vyvažovanie leastPing/leastLoad vždy obsahuje burst observatory. Tento prepínač umožní vlastné parametre merania. Vypnutý použije vstavané hodnoty. Zmeny sa použijú po reštarte panelu." + } + }, + "subCalendarExpireInclusive": "Zobrazenie konca mesačnej platnosti v odbere", + "subCalendarExpireInclusiveDesc": "Predvolene vypnuté. Pri obnove v 1. deň mesiaca o polnoci v pásme panelu hlási hlavička odberu ako koniec platnosti poslednú sekundu predchádzajúceho mesiaca. Skutočné ukončenie a obnovovanie sa nemení. Klienti používajú vlastné časové pásmo a môžu odber považovať za neplatný o sekundu skôr.", + "subInfoNodeEnable": "Samostatný informačný profil", + "subInfoNodeEnableDesc": "Názov a zostávajúce dáta/dni sa zobrazia hore ako samostatný nefunkčný profil SOCKS. Odbery so skončenou platnosťou alebo vyčerpaným limitom potom vrátia iba stavový profil.", + "subExpiredTemplate": "Šablóna skončenej platnosti", + "subExpiredTemplateDesc": "Šablóna informačného profilu pre účet so skončenou platnosťou.", + "subTrafficDepletedTemplate": "Šablóna vyčerpaného limitu", + "subTrafficDepletedTemplateDesc": "Šablóna informačného profilu pre účet s vyčerpaným dátovým limitom.", + "subHappAutoDetect": "Automaticky rozpoznať hlavičky Happ", + "subHappAutoDetectDesc": "Automaticky pridať smerovanie a hlavičky Happ, ak hlavička User-Agent označuje Happ.", + "subHappProviderId": "ID poskytovateľa", + "subHappProviderIdDesc": "Jedinečný identifikátor poskytovateľa pre správu klientov Happ, priradenie vzdialenej konfigurácie a migráciu.", + "subHappNewUrl": "Nová URL odberu", + "subHappNewUrlDesc": "Cieľová URL na automatickú migráciu klientov. Po nastavení klienti Happ prejdú na tento odkaz na odber.", + "subHappFallbackUrl": "Záložná URL odberu", + "subHappFallbackUrlDesc": "Záložná adresa odberu pre Happ pri nedostupnosti hlavnej URL.", + "subHappSubInfoText": "Text oznamovacieho panela", + "subHappSubInfoTextDesc": "Vlastný oznamovací panel hore v klientovi Happ (najviac 200 znakov).", + "subHappSubInfoColor": "Zvýrazňujúca farba oznamu", + "subHappSubInfoColorDesc": "Farebný vzhľad oznamovacieho panela.", + "subHappSubInfoButtonText": "Text tlačidla oznamu", + "subHappSubInfoButtonTextDesc": "Text tlačidla v oznamovacom paneli (najviac 25 znakov).", + "subHappSubInfoButtonLink": "Odkaz tlačidla oznamu", + "subHappSubInfoButtonLinkDesc": "URL otvorená po kliknutí na tlačidlo oznamu.", + "subHappSubExpire": "Oznam skončenej platnosti", + "subHappSubExpireDesc": "V Happ zobraziť oznam, keď používateľovi skončí platnosť alebo vyčerpá dáta.", + "subHappSubExpireButtonLink": "Odkaz na obnovenie", + "subHappSubExpireButtonLinkDesc": "URL otvorená po kliknutí na tlačidlo obnovenia pri skončenej platnosti.", + "subHappNotificationExpire": "Upozornenia na koniec platnosti", + "subHappNotificationExpireDesc": "Požiadať Happ, aby používateľa upozornil 3 dni pred skončením platnosti odberu.", + "subHappNoLimit": "Režim bez limitu", + "subHappNoLimitDesc": "Zvýšiť limit RAM pre xray-core v Happ na lepšiu stabilitu a výkon (beta).", + "subHappAlwaysHwid": "Vynútiť identifikátor zariadenia (HWID)", + "subHappAlwaysHwidDesc": "Zabrániť používateľom vypnúť odosielanie HWID v nastaveniach Happ.", + "subHappTunMode": "Režim TUN", + "subHappTunModeDesc": "Sieťová vrstva TUN na počítači: system (vrstva operačného systému) alebo gVisor (používateľská vrstva).", + "subHappTunType": "Jadro TUN", + "subHappTunTypeDesc": "Jadro pripojenia TUN na počítači: sing-box, tun2proxy, default (Happ TUN) alebo Xray.", + "subHappExcludeRoutes": "Vynechané trasy CIDR", + "subHappExcludeRoutesDesc": "Rozsahy IP CIDR oddelené čiarkou (napr. 192.168.0.0/16, 10.0.0.0/8), ktoré obídu tunel VPN.", + "subHappExcludeApns": "Vynechať Apple APNs", + "subHappExcludeApnsDesc": "Služby push upozornení Apple obídu VPN, aby spoľahlivo fungovali upozornenia na pozadí iOS.", + "subHappColorProfile": "Farebný vzhľad klienta", + "subHappColorProfileDesc": "Vlastné farby iOS vo formáte JSON alebo resetcolors na obnovenie predvolených farieb.", + "subHappPingType": "Spôsob merania odozvy", + "subHappPingTypeDesc": "Ako Happ meria odozvu serverov: cez proxy (GET alebo HEAD), TCP či ICMP.", + "subHappLocalProxyAuth": "Overovanie miestneho proxy", + "subHappLocalProxyAuthDesc": "Posiela do Happ nastavenia socks-auth-mode / http-auth-mode. Bez overenia môže každá aplikácia v zariadení používať miestny proxy SOCKS5/HTTP v Happ, pripojiť sa do tunela a zistiť adresu servera. Voľba „Automaticky“ vytvorí náhodné prihlasovacie údaje a funguje aj bez ID poskytovateľa.", + "subHappLocalProxyAuthAuto": "Automaticky (náhodné prihlasovacie údaje)", + "subHappLocalProxyAuthDisable": "Vypnuté", + "subHappLocalProxyAuthUnset": "Neposielať (predvolené nastavenie klienta)", + "subHappAutoConnect": "Pripojiť automaticky pri spustení", + "subHappAutoConnectDesc": "Požiadať Happ o automatické pripojenie k VPN pri spustení aplikácie.", + "subHappAutoConnectType": "Cieľ automatického pripojenia", + "subHappAutoConnectTypeDesc": "Server pre automatické pripojenie: s najnižšou odozvou, naposledy použitý alebo náhodný.", + "subHappPerAppMode": "Smerovanie aplikácií Android", + "subHappPerAppModeDesc": "Riadenie aplikácií Android: vypnuté, zapnuté (cez proxy iba uvedené aplikácie) alebo obísť (vynechať uvedené aplikácie).", + "subHappPerAppList": "Názvy balíkov Android", + "subHappPerAppListDesc": "Názvy balíkov aplikácií Android na zahrnutie alebo vynechanie, oddelené čiarkou (napr. org.telegram.messenger).", + "subHappPresetIran": "Obísť proxy pre Irán", + "subHappPresetChina": "Priamo pre Čínu (Bypass-CN)", + "subHappIncludeAdblock": "Pridať blokovanie reklám", + "subHappApplyPreset": "Použiť predvoľbu", + "subHappPresetGlobal": "Všetko cez proxy", + "subHappPresetLocal": "Cez proxy okrem miestnej siete", + "subHappPresetOff": "Vypnúť smerovanie (happ://routing/off)", + "subHappColorBlue": "Modrá (štandardná / predvolená)", + "subHappColorGreen": "Zelená (úspech)", + "subHappColorRed": "Červená (upozornenie / nebezpečenstvo)", + "subHappTunModeDefault": "Predvolené", + "subHappTunModeSystem": "Systém (sieťová vrstva systému)", + "subHappTunModeGvisor": "gVisor (používateľská sieťová vrstva)", + "subHappTunTypeSingbox": "sing-box", + "subHappTunTypeTun2proxy": "tun2proxy", + "subHappTunTypeDefault": "Predvolené (Happ TUN)", + "subHappTunTypeXray": "Xray TUN", + "subHappPingProxy": "Cez proxy (odozva GET)", + "subHappPingProxyHead": "Cez proxy (odozva HEAD)", + "subHappPingTcp": "Nadviazanie spojenia TCP", + "subHappPingIcmp": "ICMP ping", + "subHappAutoConnectLowestDelay": "Najnižšia odozva (najrýchlejší server)", + "subHappAutoConnectLastUsed": "Naposledy použitý server", + "subHappAutoConnectRandom": "Náhodný server", + "subHappPerAppOff": "Vypnuté", + "subHappPerAppOn": "Zapnuté (cez proxy iba uvedené aplikácie)", + "subHappPerAppBypass": "Obísť (vynechať uvedené aplikácie)", + "subHappPresetApplied": "Predvoľba Happ bola použitá v pravidlách smerovania", + "subHappPresets": "Predvoľby smerovania", + "subHappPresetsDesc": "Vyberte základnú predvoľbu a prípadné blokovanie reklám. Jej použitím sa nahradia aktuálne pravidlá smerovania.", + "subHappVisualBuilder": "Vizuálny editor pravidiel", + "subHappVisualBuilderDesc": "Načítajte aktuálny profil smerovania a upravte jeho pravidlá alebo celý JSON.", + "subHappEditorBasic": "Základné pravidlá", + "subHappEditorAdvanced": "Pokročilý editor", + "subHappEditorListHint": "Jedno pravidlo na riadok. Ostatné polia profilu zostanú zachované.", + "subHappEditorAdvancedHint": "Upravte celý profil JSON. Zmeny sa zosynchronizujú s kartou základných pravidiel.", + "subHappEditorInvalidJson": "Zadajte objekt JSON. Zoznamy smerovania, ak sú uvedené, musia byť polia reťazcov alebo null.", + "subHappEditorLoadInvalid": "Aktuálne pravidlá nie sú platným odkazom na smerovanie Happ ani profilom JSON.", + "subHappEditorLoadRemote": "Vzdialené URL tu nemožno načítať. Najprv vložte odkaz na smerovanie Happ alebo profil JSON.", + "subHappEditorLoadOff": "Smerovanie je vypnuté. Použite predvoľbu alebo vymažte pravidlá smerovania a vytvorte profil.", + "subHappEditorNew": "Žiadne aktuálne pravidlá. Začnite prázdnym vlastným profilom.", + "subHappBuildDeeplink": "Vytvoriť odkaz na nastavenie", + "subHappModalTitle": "Vizuálny editor smerovania Happ", + "subHappDirectDomains": "Domény priamo (mimo proxy)", + "subHappProxyDomains": "Domény cez proxy (tunel)", + "subHappBlockDomains": "Blokované domény (reklamy/škodlivý obsah)", + "subHappDirectIPs": "IP / CIDR priamo", + "subHappProxyIPs": "IP / CIDR cez proxy", + "subHappBlockIPs": "Blokované IP / CIDR", + "subHappDeeplinkGenerated": "Odkaz bol vytvorený a použitý v pravidlách smerovania", + "subHappGroupRouting": "Smerovanie a pravidlá", + "subHappGroupNetwork": "Sieť a jadro TUN", + "subHappGroupThemes": "Vzhľad a farby", + "subHappGroupFailover": "Migrácia a správa aplikácie", + "discordSettings": "Discord bot", + "discordBotEnable": "Zapnúť upozornenia Discordu", + "discordBotEnableDesc": "Posielať systémové upozornenia a udalosti do kanála Discord cez bota", + "discordBotToken": "Token Discord bota", + "discordBotTokenDesc": "Token bota z Discord Developer Portal", + "discordTokenConfigured": "Token je nastavený. Nový token nahradí aktuálny.", + "discordTokenPlaceholder": "Zadajte token bota", + "discordChannelId": "ID kanála", + "discordChannelIdDesc": "ID kanála Discord na posielanie upozornení", + "discordAdminIds": "ID správcov", + "discordAdminIdsDesc": "ID používateľov Discordu, ktorí smú spúšťať príkazy bota, oddelené čiarkou. Správy od ostatných sa ignorujú. Prázdny zoznam príkazy vypne.", + "discordEventBusNotify": "Upozornenia Discordu", + "testDiscord": "Poslať skúšobné upozornenie", + "testDiscordDesc": "Poslať skúšobné upozornenie na overenie tokenu bota a ID kanála", + "discordNotInitialized": "Služba Discord nie je pripravená", + "discordBotNotEnabled": "Discord bot nie je zapnutý", + "discordTestFailed": "Skúška Discordu zlyhala", + "discordTestSuccess": "Skúšobné upozornenie bolo odoslané", + "discordBotLanguage": "Jazyk Discord bota", + "discordNotifyTime": "Čas upozornení", + "discordNotifyTimeDesc": "Ako často Discord bot posiela pravidelné správy. Vyberte interval alebo možnosť Vlastné a zadajte výraz crontab.", + "discordNotifyBackup": "Záloha databázy", + "discordNotifyBackupDesc": "Posielať so správou aj súbor so zálohou databázy.", + "discordEventBusNotifyDesc": "Vyberte udalosti, pri ktorých sa má poslať upozornenie cez Discord", + "subIncyAppAutoDetect": "Automaticky rozpoznať hlavičky Incy", + "subIncyAppAutoDetectDesc": "Posielať hlavičky správy aplikácie Incy, ak User-Agent klienta označuje INCY.", + "subIncyNotSet": "Nenastavené", + "subIncyOn": "Zapnuté", + "subIncyOff": "Vypnuté", + "subIncyGroupApp": "Aplikácia", + "subIncyProfileDescription": "Popis profilu", + "subIncyProfileDescriptionDesc": "Samostatný popis odberu. Text mimo ASCII sa odosiela v Base64.", + "subIncySortOrder": "Poradie serverov", + "subIncySortOrderDesc": "V iOS/Android platí pre tento odber, na počítači pre celú aplikáciu.", + "subIncySortNone": "Poradie v odbere", + "subIncySortPing": "Podľa odozvy", + "subIncySortName": "Podľa názvu", + "subIncySupportEmail": "E-mail podpory", + "subIncySupportEmailDesc": "Na kartu odberu pridá tlačidlo E-mail.", + "subIncyAnnounceUrl": "Odkaz oznámenia", + "subIncyAnnounceUrlDesc": "Cieľ odkazu v oznámení na úvodnej obrazovke.", + "subIncyPremiumUrl": "Odkaz Premium", + "subIncyPremiumUrlDesc": "Tlačidlo Premium na karte. Má prednosť aj pred odkazom tlačidla oznamu.", + "subIncyGroupBanners": "Oznamovacie panely", + "subIncyBannerText": "Text oznamu", + "subIncyBannerTextDesc": "Nahradí text oznamu. Iba pre poskytovateľov Premium.", + "subIncyBannerButtonText": "Text tlačidla oznamu", + "subIncyBannerButtonTextDesc": "Text tlačidla v ozname. Prázdne pole tlačidlo skryje.", + "subIncyBannerButtonUrl": "Odkaz tlačidla oznamu", + "subIncyBannerButtonUrlDesc": "URL tlačidla oznamu.", + "subIncyBannerBgColor": "Pozadie oznamu", + "subIncyBannerBgColorDesc": "Farba v hexadecimálnom tvare, napr. #E53E3E.", + "subIncyBannerButtonColor": "Farba tlačidla oznamu", + "subIncyBannerButtonColorDesc": "Farba v hexadecimálnom tvare, napr. #38A169.", + "subIncyGroupPrivacy": "Súkromie", + "subIncyHideUrl": "Skryť URL odberu", + "subIncyHideUrlDesc": "Skryje URL pri zdieľaní, kopírovaní, v QR kóde aj v zálohách.", + "subIncyHideCheck": "Skryť tlačidlo kontroly", + "subIncyHideCheckDesc": "Z úvodnej obrazovky odstráni tlačidlo na overenie pripojenia.", + "subIncyNoLimit": "Režim bez limitu (iOS)", + "subIncyNoLimitDesc": "Režim s nízkou spotrebou pamäte, ktorý udrží tunel aktívny v limite 50 MB systému iOS.", + "subIncyPerAppEnable": "Režim podľa aplikácií (Android)", + "subIncyPerAppEnableDesc": "Zapne oddelené smerovanie podľa aplikácií. Voľba Vypnuté prepíše výber používateľa.", + "subIncyPerAppMode": "Spôsob smerovania aplikácií", + "subIncyPerAppModeDesc": "Proxy: iba uvedené aplikácie používajú VPN. Obísť: uvedené aplikácie VPN vynechajú.", + "subIncyPerAppModeProxy": "Iba uvedené aplikácie", + "subIncyPerAppModeBypass": "Uvedené aplikácie mimo VPN", + "subIncyPerAppList": "Zoznam aplikácií", + "subIncyPerAppListDesc": "Názvy balíkov oddelené čiarkami alebo novými riadkami, prípadne URL textového súboru.", + "subIncyGroupNetwork": "Sieť", + "subIncyFragmentationEnable": "Fragmentácia", + "subIncyFragmentationEnableDesc": "Zapne delenie TCP paketov a nahradí globálne nastavenie.", + "subIncyFragmentLength": "Dĺžka časti", + "subIncyFragmentLengthDesc": "Rozsah v bajtoch, napr. 10-30.", + "subIncyFragmentInterval": "Interval medzi časťami", + "subIncyFragmentIntervalDesc": "Rozsah v milisekundách, napr. 20-40.", + "subIncyFragmentPackets": "Pakety na delenie", + "subIncyFragmentPacketsDesc": "Ktoré TCP pakety sa majú deliť: tlshello, 1-3, 1 alebo all.", + "subIncyNoisesEnable": "Šumové pakety", + "subIncyNoisesEnableDesc": "Pred nadviazaním VPN spojenia odošle náhodný šum UDP.", + "subIncyNoisesType": "Typ obsahu šumového paketu", + "subIncyNoisesTypeDesc": "rand, str alebo hex.", + "subIncyNoisesPacket": "Obsah šumového paketu", + "subIncyNoisesPacketDesc": "Dátový obsah; pri rand rozsah dĺžky, napr. 10-20.", + "subIncyNoisesDelay": "Oneskorenie šumu", + "subIncyNoisesDelayDesc": "Rozsah oneskorenia v milisekundách, napr. 10-50.", + "subIncyResolveEnable": "Preložiť adresu servera (DoH)", + "subIncyResolveEnableDesc": "Pred pripojením preloží adresu servera cez DoH.", + "subIncyResolveDnsDomain": "Koncový bod DoH", + "subIncyResolveDnsDomainDesc": "URL servera DoH, zvyčajne končiaca na /dns-query.", + "subIncyResolveDnsIp": "IP servera DoH", + "subIncyResolveDnsIpDesc": "IP adresa servera DoH použitá na počiatočné pripojenie.", + "subIncyGroupRouting": "Smerovanie", + "subHostSortMode": "Poradie uzlov v predplatnom", + "subHostSortInbound": "Poradie inboundov (predvolené)", + "subHostSortHosts": "Poradie hostiteľov", + "subHostSortModeDesc": "Poradie hostiteľov sa riadi stránkou Hostitelia naprieč inboundmi. Určuje poradie, ktoré odosiela server; klientske aplikácie môžu použiť vlastné triedenie." + }, + "xray": { + "save": "Uložiť", + "restartSuccess": "Xray bol úspešne reštartovaný.", + "stopSuccess": "Xray bol úspešne zastavený.", + "restartError": "Pri reštarte Xray nastala chyba.", + "stopError": "Pri zastavovaní Xray nastala chyba.", + "basicTemplate": "Základné", + "advancedTemplate": "Pokročilé", + "generalConfigs": "Všeobecné", + "generalConfigsDesc": "Všeobecné nastavenia konfigurácie.", + "logConfigs": "Záznamy", + "logConfigsDesc": "Zaznamenávanie môže znížiť výkon servera. Zapínajte ho podľa potreby.", + "basicRouting": "Základné smerovanie", + "blockConnectionsConfigsDesc": "Tieto voľby blokujú prevádzku podľa zvolenej krajiny.", + "directConnectionsConfigsDesc": "Priame pripojenie zabezpečí, že vybraná prevádzka nepôjde cez ďalší server.", + "blockips": "Blokované IP adresy", + "blockdomains": "Blokované domény", + "directips": "IP adresy priamo", + "directdomains": "Domény priamo", + "ipv4Routing": "Smerovanie IPv4", + "ipv4RoutingDesc": "Tieto voľby smerujú prevádzku k vybraným cieľom cez IPv4.", + "Template": "Pokročilá šablóna konfigurácie Xray", + "TemplateDesc": "Podľa tejto šablóny sa vytvorí výsledný konfiguračný súbor Xray.", + "FreedomStrategy": "Spôsob pripojenia protokolu Freedom", + "FreedomStrategyDesc": "Nastavte spôsob výberu sieťovej adresy pre protokol Freedom.", + "FreedomHappyEyeballs": "Freedom Happy Eyeballs (IPv4/IPv6)", + "FreedomHappyEyeballsDesc": "Súbežné pripájanie cez IPv4/IPv6 pre priamy výstup freedom. Vhodné pre výstupné servery s oboma verziami IP.", + "FreedomHappyEyeballsTryDelayDesc": "Počet milisekúnd pred pokusom cez druhú verziu IP. Ako východisková hodnota sa hodí 150–250 ms.", + "RoutingStrategy": "Celkový spôsob smerovania", + "RoutingStrategyDesc": "Nastavte spôsob smerovania a prekladu adries pre všetky požiadavky.", + "outboundTestUrl": "URL na test výstupov", + "outboundTestUrlDesc": "URL použitá na overenie pripojenia cez výstup.", + "Torrent": "Blokovať protokol BitTorrent", + "Inbounds": "Vstupy", + "Outbounds": "Výstupy", + "Balancers": "Vyvažovanie záťaže", + "balancerTagRequired": "Zadajte značku", + "balancerSelectorRequired": "Vyberte aspoň jeden výstup", + "balancerLive": "Aktuálny cieľ", + "balancerOverride": "Vynútený výber", + "balancerOverridePh": "Automaticky (podľa stratégie)", + "balancerLiveRefresh": "Obnoviť aktuálny stav vyvažovania", + "balancerNotRunning": "Toto vyvažovanie nie je v bežiacom Xray aktívne. Najprv uložte zmeny alebo spustite Xray.", + "routeTester": "Test smerovania", + "routeTesterDesc": "Zistí z bežiaceho Xray, ktorý výstup by použil pre spojenie. Neposielajú sa žiadne dáta. Rozhodnutie poskytne priamo aktívne smerovanie.", + "routeTesterDest": "Doména alebo IP", + "routeTesterPort": "Port", + "routeTesterInbound": "Vstup", + "routeTesterProtocol": "Rozpoznaný protokol", + "routeTesterTest": "Otestovať trasu", + "routeTesterMatchedOutbound": "Vybraný výstup", + "routeTesterViaBalancer": "cez vyvažovanie", + "routeTesterDefaultOutbound": "Žiadne pravidlo nevyhovuje. Prevádzka použije predvolený, teda prvý výstup.", + "Routings": "Pravidlá smerovania", + "importRules": "Importovať pravidlá", + "exportRules": "Exportovať pravidlá", + "importOutbounds": "Importovať výstupy", + "exportOutbounds": "Exportovať výstupy", + "importInvalidJson": "Neplatný JSON. Očakáva sa pole alebo objekt so zodpovedajúcim kľúčom.", + "completeTemplate": "Všetko", + "logLevel": "Úroveň záznamov", + "logLevelDesc": "Určuje, ktoré informácie sa zapisujú do chybových záznamov.", + "accessLog": "Záznam prístupov", + "accessLogDesc": "Cesta k súboru záznamov prístupov. Hodnota 'none' zapisovanie vypne.", + "errorLog": "Záznam chýb", + "errorLogDesc": "Cesta k súboru chybových záznamov. Hodnota 'none' zapisovanie vypne.", + "dnsLog": "Záznam DNS", + "dnsLogDesc": "Zapnúť zaznamenávanie DNS dotazov", + "maskAddress": "Maskovať adresy", + "maskAddressDesc": "Pri zapnutí automaticky nahradí IP adresy v záznamoch maskovanou hodnotou.", + "statistics": "Štatistiky", + "statsInboundUplink": "Štatistiky odosielania vstupov", + "statsInboundDownlink": "Štatistiky sťahovania vstupov", + "statsOutboundUplink": "Štatistiky odosielania výstupov", + "statsOutboundDownlink": "Štatistiky sťahovania výstupov", + "metricsListen": "Adresa metrík", + "metricsListenDesc": "Sprístupní metriky Xray vo formáte Prometheus na zadanej adrese a porte (napr. 127.0.0.1:11111). Prázdne pole ich vypne. Použite localhost a reverzný proxy, keďže metriky nevyžadujú prihlásenie.", + "metricsTag": "Značka metrík", + "connectionLimits": "Limity spojení", + "connectionLimitsDesc": "Pravidlá spojení pre používateľskú úroveň 0. Prázdne polia použijú predvolené hodnoty Xray.", + "connIdle": "Časový limit nečinnosti", + "connIdleDesc": "Zatvorí spojenie po tomto počte sekúnd nečinnosti. Nižšia hodnota na vyťažených serveroch rýchlejšie uvoľňuje pamäť a deskriptory súborov (predvolene v Xray: 300).", + "bufferSize": "Veľkosť vyrovnávacej pamäte", + "bufferSizeDesc": "Vnútorná vyrovnávacia pamäť jedného spojenia v KB. Hodnota 0 zníži spotrebu pamäte na serveroch s malou RAM. Predvolená hodnota Xray závisí od platformy.", + "bufferSizePlaceholder": "automaticky", + "seconds": "sekundy", + "rules": { + "source": "Zdroj", + "dest": "Cieľ", + "inbound": "Vstup", + "balancer": "Vyvažovanie", + "useComma": "Zoznam oddelený čiarkou" + }, + "routing": { + "dragToReorder": "Potiahnutím zmeníte poradie" + }, + "geoBrowser": { + "title": "Kategórie geodát", + "openTooltip": "Prehliadať kategórie geodát", + "database": "Databáza", + "searchCategory": "Hľadať kategóriu", + "searchEntries": "Filtrovať obsah kategórie", + "selectFound": "Vybrať nájdené", + "selected": "Vybrané: {count}", + "clearAll": "Zrušiť výber", + "apply": "Použiť", + "emptySelection": "Označte kategórie. Pridajú sa ako hodnoty pravidla.", + "pickCategory": "Vyberte kategóriu vľavo a zobrazte jej obsah", + "noMatches": "Nič sa nenašlo", + "noFiles": "V priečinku Xray nie sú databázy geodát", + "noFilesHint": "Objavia sa po stiahnutí geosite.dat a geoip.dat cez Xray", + "fileMeta": "Počet kategórií: {count} · {size} · aktualizované {date}", + "entriesCount": "Počet položiek: {count}", + "subnetsCount": "Počet podsietí: {count}", + "shownRange": "Zobrazené: {from}–{to} z {total}", + "loadFailed": "Nepodarilo sa načítať databázy geodát", + "checkFailed": "Tieto hodnoty sa nepodarilo overiť v databázach geodát", + "parseFailed": "Poškodený súbor alebo nesprávny formát databázy geosite/geoip", + "tooLarge": "Príliš veľké na prehliadanie", + "unknownCategories": "Nenachádza sa v databáze: {tokens}", + "missingDatabase": "Súbor databázy sa nenašiel: {tokens}. Pridajte ho v časti Geodáta.", + "unknownAttribute": "Atribút sa nenašiel, pravidlo by ničomu nevyhovovalo: {tokens}", + "invalidToken": "Xray túto hodnotu neprijme: {tokens}", + "wrongKind": "Nesprávny typ databázy pre toto pole: {tokens}" + }, + "ruleForm": { + "sourceIps": "Zdrojové IP adresy", + "sourcePort": "Zdrojový port", + "vlessRoute": "Trasa VLESS", + "attributes": "Atribúty", + "value": "Hodnota", + "user": "Používateľ", + "userPlaceholder": "Vyberte používateľov", + "userEmpty": "Nie sú dostupní žiadni používatelia", + "userLoadError": "Nepodarilo sa načítať používateľov", + "inboundTags": "Značky vstupov", + "outboundTag": "Značka výstupu", + "balancerTag": "Značka vyvažovania", + "balancerTagTooltip": "Smeruje prevádzku cez jedno z nastavených vyvažovaní záťaže" + }, + "outboundForm": { + "tagDuplicate": "Túto značku už používa iný výstup", + "tagRequired": "Zadajte značku", + "tagPlaceholder": "jedinecna-znacka", + "localIpPlaceholder": "miestna IP", + "dialerProxyPlaceholder": "Vyberte výstup na zreťazenie", + "dialerProxyHint": "Pripojí tento výstup cez iný výstup určený značkou a vytvorí reťaz proxy. Prázdne pole znamená priame pripojenie.", + "targetStrategyHint": "Ako sa pred pripojením preloží cieľová doména: AsIs (predvolené) ju pošle nepreloženú, UseIP… ju preloží s náhradným postupom, ForceIP… vyžaduje úspešný preklad.", + "addressRequired": "Zadajte adresu", + "portRequired": "Zadajte port", + "optional": "voliteľné", + "udpOverTcp": "UDP cez TCP", + "uotVersion": "Verzia UoT", + "inboundTag": "Značka vstupu", + "inboundTagPlaceholder": "značka vstupu použitá v pravidlách smerovania", + "responseType": "Typ odpovede", + "customResponseData": "Vlastná odpoveď (base64)", + "rewriteNetwork": "Prepísať sieť", + "unchanged": "(bez zmeny)", + "unchangedAddress": "(bez zmeny) napr. 1.1.1.1", + "rules": "Pravidlá", + "ruleN": "Pravidlo {n}", + "action": "Akcia", + "redirect": "Presmerovať", + "finalRules": "Konečné pravidlá", + "overrideXrayPrivateIp": "Nahradiť predvolené blokovanie súkromných IP v Xray", + "blockDelay": "Oneskorenie blokovania (ms)", + "reverseSniffing": "Spätné rozpoznávanie prevádzky", + "reserved": "Vyhradené", + "remoteDNS": "Vzdialené DNS", + "minUploadInterval": "Najkratší interval odosielania (ms)", + "maxUploadSizeBytes": "Najväčšie odoslanie (bajty)", + "uplinkChunkSize": "Veľkosť odosielanej časti", + "noGrpcHeader": "Bez hlavičky gRPC", + "maxConcurrency": "Najviac súbežných prenosov", + "maxConnections": "Najviac spojení", + "maxReuseTimes": "Najviac opakovaných použití", + "maxRequestTimes": "Najviac požiadaviek", + "maxReusableSecs": "Najdlhšie opakované použitie (s)", + "keepAlivePeriod": "Interval udržiavania spojenia", + "authPassword": "Overovacie heslo", + "visionTestpre": "Vision testpre", + "serverNamePlaceholder": "názov servera", + "verifyPeerName": "Overiť názov protistrany", + "pinnedSha256": "Pevný odtlačok SHA256", + "useSystemCA": "Použiť systémové certifikačné autority", + "shortId": "Krátke ID", + "sockopts": "Nastavenia socketu", + "keepAliveInterval": "Interval udržiavania spojenia", + "markFwmark": "Značka (fwmark)", + "interface": "Rozhranie", + "proxyProtocol": "Protokol PROXY", + "tcpUserTimeoutMs": "Používateľský časový limit TCP (ms)", + "tcpKeepAliveIdleS": "Nečinnosť pred udržiavaním TCP spojenia (s)", + "masqueWarpDesc": "Pripojiť sa ku Cloudflare WARP cez MASQUE s registrovaným kľúčom ECDSA P-256. Hostiteľ a cesta predvolene používajú koncový bod Cloudflare.", + "masqueWarpPublicKey": "Verejný kľúč koncového bodu", + "masqueWarpAddress": "Adresy tunela" + }, + "outbound": { + "tag": "Značka", + "egress": "Výstupná adresa", + "egressHint": "Spustite test HTTP a zobrazte výstupnú IP adresu aj krajinu.", + "outboundStatus": "Stav výstupu", + "sendThrough": "Odosielať cez", + "targetStrategy": "Spôsob výberu cieľa", + "modeRealDelay": "Skutočná odozva", + "testModeTooltip": "TCP: rýchly test nadviazania spojenia. HTTP: celá požiadavka cez Xray. Skutočná odozva: celkový čas vrátane nadviazania spojenia.", + "testAll": "Otestovať všetko", + "httpStatus": "Stav HTTP", + "breakdownConnect": "Pripojenie proxy", + "breakdownTls": "TLS cez výstup", + "breakdownTtfb": "Prvý bajt", + "country": "Krajina", + "server": "Server", + "city": "Mesto", + "allCities": "Všetky mestá", + "moveToTop": "Presunúť na začiatok" + }, + "outboundSub": { + "manage": "Odbery konfigurácií", + "title": "Odbery výstupov", + "remark": "Názov (voliteľné)", + "remarkPlaceholder": "napr. servery HK", + "url": "URL odberu", + "urlPlaceholder": "https://... (zoznam odkazov v base64)", + "tagPrefix": "Predpona značky", + "tagPrefixPlaceholder": "hk-", + "userAgent": "User-Agent", + "interval": "Interval aktualizácií", + "hours": "h", + "minutes": "min", + "intervalHint": "Predvolene 10 minút. Úloha na pozadí kontroluje odbery často, ale každý znova načíta až po uplynutí jeho vlastného intervalu.", + "enabled": "Zapnutý", + "allowPrivate": "Povoliť súkromnú adresu", + "allowPrivateHint": "Povoliť localhost, LAN a súkromné IP v URL tohto odberu. Z bezpečnostných dôvodov je to predvolene vypnuté. Zapnite iba pre dôveryhodný miestny zdroj.", + "prepend": "Pred ručne pridané výstupy", + "prependHint": "Umiestniť výstupy tohto odberu pred ručne pridané výstupy, aby sa niektorý mohol stať predvoleným.", + "preview": "Ukážka", + "previewEmpty": "Na tejto URL sa nenašli žiadne výstupy.", + "refreshAll": "Obnoviť všetko", + "statusOk": "V poriadku", + "toastUpdated": "Odber bol aktualizovaný", + "addButton": "Pridať", + "active": "Aktívne odbery", + "empty": "Zatiaľ nie sú pridané žiadne odbery. Pridajte ich vyššie.", + "colRemark": "Názov", + "colLastFetch": "Posledné načítanie", + "colEnabled": "Zapnutý", + "auto": "automaticky", + "never": "nikdy", + "refreshNow": "Obnoviť teraz", + "deleteConfirm": "Odstrániť tento odber?", + "restartHint": "Po pridaní alebo obnovení reštartujte Xray, prípadne počkajte na ďalšie automatické načítanie, aby sa výstupy aktivovali.", + "fromSubsTitle": "Z odberov výstupov (iba na čítanie)", + "fromSubsDesc": "Importované z aktívnych odberov. Spravujte ich vyššie v časti Odbery konfigurácií.", + "toastLoadFailed": "Nepodarilo sa načítať odbery", + "toastUrlRequired": "Zadajte URL odberu", + "toastAdded": "Odber bol pridaný", + "toastAddFailed": "Nepodarilo sa pridať odber", + "toastRefreshed": "Obnovené", + "toastRefreshFailed": "Obnovenie zlyhalo", + "toastDeleted": "Odstránené", + "toastDeleteFailed": "Odstránenie zlyhalo" + }, + "pia": { + "menu": "PIA", + "username": "Používateľské meno PIA", + "password": "Heslo PIA", + "account": "Účet", + "region": "Región", + "allRegions": "Všetky regióny", + "noServers": "Pre vybranú krajinu sa nenašli žiadne servery", + "outboundAdded": "Výstup PIA bol pridaný", + "outboundUpdated": "Výstup PIA bol aktualizovaný", + "addedServers": "Pridané servery", + "alreadyAdded": "Tento server už je v zozname výstupov. Na obnovenie jeho kľúča použite {reset}.", + "provisionFailed": "Nepodarilo sa vytvoriť výstup PIA. Skúste to znova." + }, + "tabBalancerSettings": "Nastavenia vyvažovania", + "tabObservatory": "Kontrola dostupnosti", + "observatory": { + "autoManaged": "Kontroly sa spravujú automaticky podľa vyvažovania záťaže. Nižšie nastavte spôsob merania. Sledované výstupy sa vyberajú podľa nastavení vyvažovania.", + "emptyHint": "Žiadna kontrola spojení nie je aktívna. Automaticky sa pridá pri vyvažovaní Najnižšia odozva či Najnižšia záťaž alebo pri náhodnom/postupnom vyvažovaní s náhradným cieľom. Pred výberom výstupu sa tak môže overiť jeho dostupnosť.", + "mixedLegacy": "Konfigurácia obsahuje Observatory aj Burst Observatory. Xray používa iba jednu spoločnú kontrolu dostupnosti, takže táto staršia kombinácia nie je podporovaná. Uloženie vyvažovania ju zjednotí.", + "subjectSelector": "Sledované výstupy", + "subjectSelectorDesc": "Značky výstupov na meranie. Spravujú sa automaticky podľa vyvažovania záťaže.", + "probeURL": "URL na meranie", + "probeURLDesc": "URL načítaná pri meraní každého výstupu. Mala by vracať HTTP 204.", + "probeInterval": "Interval merania", + "probeIntervalDesc": "Ako často sa má merať každý výstup, napr. 30s, 1m, 2h45m.", + "enableConcurrency": "Súbežné meranie", + "enableConcurrencyDesc": "Merať všetky sledované výstupy naraz namiesto postupne. Je to rýchlejšie, ale výraznejšie sa to prejaví v sieti.", + "destination": "Cieľ merania", + "destinationDesc": "URL načítaná pri meraní každého výstupu. Mala by vracať HTTP 204.", + "connectivity": "Kontrola pripojenia", + "connectivityDesc": "Voliteľná URL v miestnej sieti. Skúsi sa iba po zlyhaní cieľa merania. Prázdne pole kontrolu vynechá.", + "interval": "Interval merania", + "intervalDesc": "Priemerný čas medzi meraniami jedného výstupu, napr. 1m. Najmenej 10s.", + "timeout": "Časový limit merania", + "timeoutDesc": "Ako dlho čakať na meranie, než sa označí za neúspešné, napr. 5s.", + "sampling": "Počet vzoriek", + "samplingDesc": "Počet posledných výsledkov použitých na hodnotenie výstupu.", + "httpMethod": "Metóda HTTP", + "httpMethodDesc": "Metóda HTTP použitá pri meraní.", + "deleteAlsoObservatory": "Toto je posledné vyvažovanie používajúce Observatory, preto sa odstráni aj táto kontrola.", + "deleteAlsoBurst": "Toto je posledné vyvažovanie používajúce Burst Observatory, preto sa odstráni aj táto kontrola." + }, + "refCleanup": { + "header": "Odstránenie upraví aj smerovanie:", + "ruleRemoved": "Pravidlo {label} sa odstráni (nezostal žiadny cieľ)", + "ruleModified": "Pravidlo {label} zostane zachované (použije {keeps})", + "balancerRemoved": "Vyvažovanie {tag} sa odstráni (nezostali žiadne ciele)" + }, + "balancer": { + "balancerStrategy": "Spôsob výberu", + "tag": "Značka", + "tagDuplicate": "Túto značku už používa iné vyvažovanie", + "tagPlaceholder": "jedinečná značka vyvažovania", + "selector": "Výber výstupov", + "fallback": "Náhradný cieľ", + "fallbackBalancerHint": "Vyberte iné vyvažovanie ako náhradný cieľ", + "balancerFallbackInfo": "Prevádzka prejde cez: Vyvažovanie → Loopback → Server → Cieľové vyvažovanie → Výstup. Pribudne tak ďalší prechod cez server, ktorý môže mierne zvýšiť odozvu.", + "balancerFallbackCycle": "Toto vyvažovanie nemožno nastaviť ako náhradný cieľ. Vznikla by kruhová závislosť.", + "balancerDeleteInUse": "Toto vyvažovanie nemožno odstrániť. Ako náhradný cieľ ho používa: {names}", + "reservedPrefix": "Predpona _bl_ je vyhradená pre interné objekty loopback vyvažovania", + "cycleTooltip": "Cyklus: {path} → (späť na {start})", + "expected": "Očakávaný počet", + "expectedPlaceholder": "optimálny počet serverov", + "maxRtt": "Najvyššie RTT", + "tolerance": "Tolerancia", + "baselines": "Referenčné hodnoty", + "costs": "Náklady", + "costMatch": "Vzor značky", + "costValue": "Váha", + "costRegexp": "Porovnanie regulárnym výrazom" + }, + "wireguard": { + "secretKey": "Tajný kľúč", + "publicKey": "Verejný kľúč", + "subnetIp": "Podsieť", + "subnetCidr": "Podsieť CIDR", + "allowedIPs": "Povolené IP adresy", + "endpoint": "Koncový bod", + "domainStrategy": "Spôsob prekladu domén" + }, + "amneziawg": { + "privateKey": "Súkromný kľúč", + "publicKey": "Verejný kľúč", + "subnetIp": "Podsieť", + "subnetCidr": "Podsieť CIDR", + "mtu": "MTU", + "primaryDns": "Primárne DNS", + "secondaryDns": "Sekundárne DNS", + "externalInterface": "Vonkajšie rozhranie", + "externalInterfaceHint": "Sieťové rozhranie hostiteľa pre NAT (PostUp/PostDown). Prázdne pole umožní automatické zistenie.", + "ipv6Enabled": "Zapnúť IPv6", + "ipv6Subnet": "Podsieť IPv6", + "ipv6SubnetHint": "Napr. fd86:ea04:1115::/64. Povinné pri zapnutej IPv6.", + "ipv6ExternalInterface": "Vonkajšie rozhranie IPv6", + "ipv6ExternalInterfaceHint": "Sieťové rozhranie hostiteľa, na ktoré sa pridávajú aliasy IPv6 adries peerov. Prázdne pole použije vonkajšie rozhranie.", + "obfuscation": "Parametre maskovania", + "regenerateObfuscation": "Vygenerovať znova", + "jc": "Jc (počet šumových paketov)", + "jmin": "Jmin (najmenšia veľkosť šumového paketu)", + "jmax": "Jmax (najväčšia veľkosť šumového paketu)", + "s1": "S1 (výplň úvodného paketu)", + "s2": "S2 (výplň paketu odpovede)", + "s3": "S3 (výplň odpovede cookie)", + "s4": "S4 (výplň dátového paketu)", + "h1": "H1 (identifikačná hlavička)", + "h2": "H2 (identifikačná hlavička)", + "h3": "H3 (identifikačná hlavička)", + "h4": "H4 (identifikačná hlavička)", + "hHint": "Jedno celé číslo alebo rozsah od-do. Prázdne pole ponechá klasické predvolené hodnoty 1/2/3/4.", + "i1": "I1 (podpisový paket)", + "i1Hint": "Voliteľný podpisový paket. Prázdne pole ho vynechá.", + "i2": "I2 (podpisový paket)", + "i3": "I3 (podpisový paket)", + "i4": "I4 (podpisový paket)", + "i5": "I5 (podpisový paket)", + "headerProtectionKey": "HeaderProtectionKey (ochrana hlavičky)", + "headerProtectionKeyHint": "32-bajtový kľúč v Base64 musí byť rovnaký vo všetkých klientskych konfiguráciách. Prázdne pole vypne ochranu hlavičky.", + "contentPaddingAddition": "ContentPaddingAddition (výplň obsahu)", + "contentPaddingAdditionHint": "Jedno celé číslo alebo rozsah bajtov od-do pridaných k dátovým paketom. Prázdne pole funkciu vypne.", + "rekeyAfterTime": "RekeyAfterTime (sekundy)", + "rekeyTimeout": "RekeyTimeout (sekundy)", + "rejectAfterTime": "RejectAfterTime (sekundy)", + "keepaliveTimeout": "KeepaliveTimeout (sekundy)", + "maxHandshakeAttempts": "MaxHandshakeAttempts (najviac pokusov o spojenie)", + "timingRangeHint": "Jedno celé číslo alebo rozsah od-do. Prázdne pole ponechá predvolenú hodnotu WireGuard.", + "maxHandshakeAttemptsHint": "Počet opakovaných pokusov o spojenie pred ukončením. Prázdne pole použije predvolenú hodnotu.", + "randomTrailers": "RandomTrailers (náhodné bajty na konci)", + "randomTrailersHint": "Ku každému paketu pridá náhodné bajty. Obe strany potrebujú AmneziaWG 3.1+.", + "disableCookies": "DisableCookies (vypnúť cookies)", + "disableCookiesHint": "Nikdy neposielať odpovede cookie. Odstráni rozpoznateľný znak pre DPI, ale oslabí ochranu pred zahltením.", + "listenPort": "Port na počúvanie (voliteľné)", + "listenPortHint": "Pevný miestny zdrojový port UDP. Hodnota 0 vyberie port automaticky.", + "outboundObfuscationHint": "Musia sa presne zhodovať s parametrami servera." + }, + "tuic": { + "congestionControl": "Riadenie zahltenia", + "congestionControlHint": "Algoritmus servera aj klienta. Zmeny servera sa použijú po opätovnom pripojení.", + "profileOptions": "Nastavenia klientskych profilov", + "alpn": "ALPN", + "udpRelayMode": "Režim preposielania UDP", + "udpRelayModeHint": "Režim UDP klienta. Server podporuje oba.", + "zeroRttHandshake": "Nadviazanie spojenia Zero-RTT", + "logLevel": "Úroveň záznamov", + "logLevelHint": "Najnižšia úroveň zaznamenávania tohto vstupu.", + "maxIdleTime": "Najdlhší čas nečinnosti (s)", + "authTimeout": "Časový limit overenia (s)", + "maxUdpRelayPacketSize": "Najväčšia veľkosť paketu UDP", + "sni": "SNI", + "sniHint": "Názov servera TLS v klientskom profile.", + "sniRequired": "Zadajte doménu na automatické doplnenie ciest k certifikátom." + }, + "tun": { + "userLevel": "Používateľská úroveň" + }, + "nord": { + "accessToken": "Prístupový token", + "privateKey": "Súkromný kľúč", + "noServers": "Pre vybranú krajinu sa nenašli žiadne servery", + "noPublicKey": "Vybraný server nezverejňuje verejný kľúč NordLynx.", + "outboundAdded": "Výstup NordVPN bol pridaný", + "outboundUpdated": "Výstup NordVPN bol aktualizovaný", + "serverLoad": "Záťaž servera", + "addedServers": "Pridané servery", + "alreadyAdded": "Tento server už je v zozname výstupov. Na obnovenie jeho kľúča použite {reset}." + }, + "warp": { + "changeIp": "Zmeniť IP", + "changeIpSuccess": "IP adresa WARP bola zmenená", + "autoUpdateIp": "Automaticky meniť IP adresu", + "intervalDays": "Interval (dni)", + "intervalDesc": "Automaticky mení IP adresu. Hodnota 0 funkciu vypne.", + "licenseError": "Nepodarilo sa nastaviť licenciu WARP.", + "fetchFirst": "Najprv načítajte konfiguráciu WARP.", + "createAccount": "Vytvoriť účet WARP", + "accessToken": "Prístupový token", + "deviceId": "ID zariadenia", + "licenseKey": "Licenčný kľúč", + "privateKey": "Súkromný kľúč", + "deleteAccount": "Odstrániť účet", + "settings": "Nastavenia", + "licenseKeyLabel": "Licenčný kľúč WARP / WARP+", + "key": "Kľúč", + "keyPlaceholder": "26-znakový kľúč WARP+", + "accountInfo": "Informácie o účte", + "deviceName": "Názov zariadenia", + "deviceModel": "Model zariadenia", + "deviceEnabled": "Zariadenie je zapnuté", + "accountType": "Typ účtu", + "role": "Rola", + "warpPlusData": "Dáta WARP+", + "quota": "Dátový limit", + "usage": "Spotreba", + "addOutbound": "Pridať výstup", + "masqueDesc": "Zaregistruje samostatné zariadenie WARP pre MASQUE. Registrácia WireGuard vyššie zostane zachovaná.", + "addMasqueOutbound": "Pridať výstup WARP cez MASQUE" + }, + "dns": { + "enable": "Zapnúť DNS", + "enableDesc": "Zapnúť vstavaný DNS server", + "tag": "Značka vstupu DNS", + "tagDesc": "Táto značka bude dostupná ako značka vstupu v pravidlách smerovania.", + "clientIp": "IP klienta", + "clientIpDesc": "Pri DNS dotazoch oznámi serveru polohu zadanej IP adresy", + "disableCache": "Vypnúť vyrovnávaciu pamäť", + "disableCacheDesc": "Vypne ukladanie odpovedí DNS do vyrovnávacej pamäte", + "disableFallback": "Vypnúť náhradné dotazy", + "disableFallbackDesc": "Vypne náhradné DNS dotazy", + "disableFallbackIfMatch": "Vypnúť náhradné dotazy pri zhode", + "disableFallbackIfMatchDesc": "Pri zhode domény so zoznamom DNS servera sa neposielajú náhradné dotazy", + "enableParallelQuery": "Zapnúť súbežné dotazy", + "enableParallelQueryDesc": "Súbežné DNS dotazy na viac serverov zrýchlia preklad adries", + "strategy": "Spôsob dotazovania", + "strategyDesc": "Celkový spôsob prekladu doménových názvov", + "add": "Pridať server", + "edit": "Upraviť server", + "domains": "Domény", + "expectIPs": "Očakávané IP adresy", + "unexpectIPs": "Neočakávané IP adresy", + "useSystemHosts": "Použiť systémový súbor hosts", + "useSystemHostsDesc": "Použiť súbor hosts operačného systému", + "serveStale": "Použiť staršie odpovede", + "serveStaleDesc": "Vráti uložené odpovede po platnosti a obnoví ich na pozadí", + "serveExpiredTTL": "Platnosť starších odpovedí", + "serveExpiredTTLDesc": "Platnosť starších odpovedí v sekundách. Hodnota 0 znamená bez obmedzenia platnosti.", + "timeoutMs": "Časový limit (ms)", + "skipFallback": "Vynechať náhradné dotazy", + "finalQuery": "Konečný dotaz", + "hosts": "Statické preklady adries", + "hostsAdd": "Pridať statický preklad", + "hostsEmpty": "Nie sú nastavené žiadne vlastné preklady adries", + "hostsDomain": "Doména (napr. domain:example.com)", + "hostsValues": "IP alebo doména; zadajte a stlačte Enter", + "usePreset": "Použiť predvoľbu", + "dnsPresetTitle": "Predvoľby DNS", + "dnsPresetFamily": "Skupina", + "clearAll": "Odstrániť všetko", + "clearAllTitle": "Odstrániť všetky DNS servery?", + "clearAllConfirm": "Zo zoznamu sa odstránia všetky DNS servery. Túto akciu nemožno vrátiť späť.", + "dnsLeakWarning": "DNS môže unikať cez localhost, nešifrované UDP/TCP, miestny režim DoH/DoQ, náhradné dotazy alebo IP klienta EDNS. Ak záleží na súkromí, použite smerované DoH, pevné záznamy hosts a vypnite náhradné dotazy.", + "script": "Skript Lua", + "scriptDesc": "Cesta k súboru .lua s funkciou HandleDNSQuery, absolútna alebo vzhľadom na priečinok bin Xray. Skript odpovedá na všetky dotazy a servery oslovuje iba vlastným kódom. Ak súbor chýba alebo je neplatný, Xray sa nespustí.", + "serverId": "ID", + "serverIdDesc": "Názov, podľa ktorého skript DNS Lua vyberie tento server" + }, + "fakedns": { + "add": "Pridať Fake DNS", + "ipPool": "Podsieť fondu IP adries", + "poolSize": "Veľkosť fondu" + }, + "defaultOutbound": "Predvolený výstup", + "defaultOutboundDesc": "Prevádzka bez zhody s pravidlom smerovania použije tento výstup. Xray používa prvý výstup v zozname.", + "routingScript": "Skript smerovania", + "routingScriptDesc": "Cesta k súboru .lua s funkciou HandleRoute, absolútna alebo vzhľadom na priečinok bin Xray. Skript vyberá každú trasu a Xray ignoruje všetky pravidlá vrátane pravidla api panelu. Vstup api preto smerujte na výstup api, inak prestanú fungovať štatistiky spotreby aj zmeny klientov za behu. Ak súbor chýba alebo je neplatný, Xray sa nespustí.", + "routingScriptActive": "V časti {section} je nastavený skript smerovania, preto Xray tieto pravidlá ignoruje." + }, + "sponsors": { + "title": "Sponzori", + "intro": "Spoločnosti podporujúce vývoj 3X-UI. Sponzorované odkazy sa otvoria na novej karte.", + "become": "Stať sa sponzorom", + "tag": "Sponzor", + "visit": "Navštíviť", + "yourBrand": "Miesto pre vašu značku", + "yourBrandText": "Predstavte svoju spoločnosť tisícom správcov serverov, ktorí denne otvárajú 3X-UI." + } + }, + "tgbot": { + "keyboardClosed": "❌ Vlastná klávesnica bola zatvorená!", + "noResult": "❗ Žiadny výsledok!", + "noQuery": "❌ Dotaz sa nenašiel. Použite príkaz znova.", + "wentWrong": "❌ Niečo sa nepodarilo!", + "noIpRecord": "❗ Žiadny záznam IP adries!", + "noInbounds": "❗ Žiadny vstup sa nenašiel!", + "unlimited": "♾ Bez obmedzenia (vynulovať)", + "add": "Pridať", + "month": "Mesiac", + "months": "Mesiace", + "days": "Dni", + "hours": "Hodiny", + "minutes": "Minúty", + "unknown": "Neznáme", + "inbounds": "Vstupy", + "clients": "Klienti", + "offline": "🔴 Offline", + "online": "🟢 Online", + "commands": { + "unknown": "❗ Neznámy príkaz.", + "pleaseChoose": "👇 Vyberte možnosť:\r\n", + "help": "🤖 Vitajte! Tento bot zobrazuje údaje z webového panelu a umožňuje ich podľa potreby upravovať.\r\n\r\n", + "start": "👋 Dobrý deň, {{ .Firstname }}.\r\n", + "welcome": "🤖 Vitajte v botovi na správu {{ .Hostname }}.\r\n", + "status": "✅ Bot je v poriadku!", + "usage": "❗ Zadajte text na vyhľadanie!", + "getID": "🆔 Vaše ID: {{ .ID }}", + "helpAdminCommands": "Reštart jadra Xray:\r\n/restart\r\n\r\nVyhľadanie klienta podľa názvu:\r\n/usage [Email]\r\n\r\nVyhľadanie vstupov so štatistikami klientov:\r\n/inbound [Remark]\r\n\r\nID konverzácie Telegramu:\r\n/id", + "helpClientCommands": "Štatistiky klienta vyhľadáte príkazom:\r\n\r\n/usage [Email]\r\n\r\nID konverzácie Telegramu:\r\n/id", + "restartUsage": "\r\n\r\n/restart", + "restartSuccess": "✅ Akcia bola úspešná!", + "restartFailed": "❗ Pri vykonávaní nastala chyba.\r\n\r\nChyba: {{ .Error }}.", + "xrayNotRunning": "❗ Jadro Xray nebeží.", + "startDesc": "Zobraziť hlavné menu", + "helpDesc": "Pomoc s botom", + "statusDesc": "Skontrolovať stav bota", + "idDesc": "Zobraziť vaše Telegram ID", + "usageDesc": "Zobraziť spotrebu klienta: /usage email", + "inboundDesc": "Vyhľadať vstupy: /inbound remark (správca)", + "restartDesc": "Reštartovať jadro Xray (správca)", + "broadcastDesc": "Poslať správu všetkým klientom (správca)", + "clearallDesc": "Vynulovať spotrebu všetkých klientov (správca)" + }, + "messages": { + "cpuThreshold": "Záťaž CPU {{ .Percent }}% prekročila prah {{ .Threshold }}%", + "selectUserFailed": "❌ Nepodarilo sa vybrať používateľa!", + "userSaved": "✅ Používateľ Telegramu bol uložený.", + "loginSuccess": "✅ Úspešné prihlásenie do panelu.\r\n", + "loginFailed": "❗️Pokus o prihlásenie do panelu zlyhal.\r\n", + "report": "🕰 Plánované správy: {{ .RunTime }}\r\n", + "datetime": "⏰ Dátum a čas: {{ .DateTime }}\r\n", + "hostname": "💻 Hostiteľ: {{ .Hostname }}\r\n", + "version": "🚀 Verzia 3X-UI: {{ .Version }}\r\n", + "xrayVersion": "📡 Verzia Xray: {{ .XrayVersion }}\r\n", + "ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n", + "ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n", + "ip": "🌐 IP: {{ .IP }}\r\n", + "ips": "🔢 IP adresy:\r\n{{ .IPs }}\r\n", + "serverUpTime": "⏳ Čas prevádzky: {{ .UpTime }} {{ .Unit }}\r\n", + "serverLoad": "📈 Záťaž systému: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n", + "serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n", + "tcpCount": "🔹 TCP: {{ .Count }}\r\n", + "udpCount": "🔸 UDP: {{ .Count }}\r\n", + "traffic": "🚦 Spotreba: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n", + "xrayStatus": "ℹ️ Stav: {{ .State }}\r\n", + "username": "👤 Používateľské meno: {{ .Username }}\r\n", + "reason": "❗️ Dôvod: {{ .Reason }}\r\n", + "time": "⏰ Čas: {{ .Time }}\r\n", + "inbound": "📍 Vstup: {{ .Remark }}\r\n", + "port": "🔌 Port: {{ .Port }}\r\n", + "expire": "📅 Platnosť do: {{ .Time }}\r\n", + "expireIn": "📅 Platnosť zostáva: {{ .Time }}\r\n", + "active": "💡 Aktívny: {{ .Enable }}\r\n", + "enabled": "🚨 Zapnutý: {{ .Enable }}\r\n", + "online": "🌐 Stav pripojenia: {{ .Status }}\r\n", + "lastOnline": "🔙 Naposledy online: {{ .Time }}\r\n", + "email": "📧 Klient: {{ .Email }}\r\n", + "upload": "🔼 Odoslané: ↑{{ .Upload }}\r\n", + "download": "🔽 Prijaté: ↓{{ .Download }}\r\n", + "total": "📊 Celkom: ↑↓{{ .UpDown }} / {{ .Total }}\r\n", + "TGUser": "👤 Používateľ Telegramu: {{ .TelegramID }}\r\n", + "inviteBound": "✅ Váš účet Telegramu je priradený ku klientovi {{ .Email }}.\r\n", + "inviteInvalid": "❗ Tento pozývací odkaz je neplatný alebo už bol použitý.\r\n", + "inviteRateLimited": "⏳ Priveľa pokusov o priradenie. Skúste to neskôr.\r\n", + "inviteRateLimitedAdmin": "⚠️ Pokusy o priradenie zablokované pre {{ .User }} ({{ .ID }}): viac ako {{ .Limit }} pokusov za hodinu. Niekto môže hádať ID odberov.", + "inviteLink": "🔗 Pozývací odkaz pre {{ .Email }}:\r\n{{ .Link }}\r\n\r\nPrvý používateľ, ktorý ho otvorí, sa priradí k tomuto klientovi.\r\n", + "exhaustedCount": "🚨 Počet s vyčerpaným limitom {{ .Type }}:\r\n", + "onlinesCount": "🌐 Pripojení klienti: {{ .Count }}\r\n", + "disabled": "🛑 Vypnutí: {{ .Disabled }}\r\n", + "depleteSoon": "🔜 Blíži sa vyčerpanie: {{ .Deplete }}\r\n\r\n", + "backupTime": "🗄 Čas zálohy: {{ .Time }}\r\n", + "refreshedOn": "\r\n📋🔄 Obnovené: {{ .Time }}\r\n\r\n", + "yes": "✅ Áno", + "no": "❌ Nie", + "received_email": "📧📥 Názov klienta bol aktualizovaný.", + "received_comment": "💬📥 Poznámka bola aktualizovaná.", + "email_prompt": "📧 Predvolený názov klienta: {{ .ClientEmail }}\n\nZadajte názov klienta.", + "comment_prompt": "💬 Predvolená poznámka: {{ .ClientComment }}\n\nZadajte poznámku.", + "cancel": "❌ Akcia bola zrušená! \n\nKedykoľvek môžete začať znova príkazom /start. 🔄", + "error_add_client": "⚠️ Chyba:\n\n {{ .error }}", + "using_default_value": "Dobre, ponechám predvolenú hodnotu. 😊", + "incorrect_input": "Zadaná hodnota nie je platná.\nText musí byť súvislý, bez medzier.\nSprávne: aaaaaa\nNesprávne: aaa aaa 🚫", + "broadcastAskText": "📤 Hromadná správa: pošlite obsah pre klientov — text, fotografiu, video, súbor alebo celý album.", + "broadcastAlreadyRunning": "❗ Hromadné odosielanie už prebieha. Počkajte na jeho dokončenie.", + "broadcastNoRecipients": "❗ Nie sú dostupní klienti s priradeným Telegram ID.", + "broadcastPreview": "📤 Správa sa odošle príjemcom v počte {{ .Count }}. Odoslať?", + "broadcastNotCopyable": "❗ Túto správu nemožno skopírovať na hromadné odoslanie. Pošlite inú.", + "broadcastUnreachable": "ℹ️ Príjemcovia v počte {{ .Count }} ešte nespustili bota alebo ho zablokovali, preto im nemožno písať. Požiadajte ich, aby stlačili Štart.", + "broadcastProgress": "📤 Odoslané: {{ .Sent }} z {{ .Total }} (neúspešné: {{ .Failed }})\r\n", + "broadcastFinished": "✅ Hromadné odosielanie bolo dokončené.\r\n👥 Príjemcovia: {{ .Total }}\r\n📨 Doručené: {{ .Sent }}\r\n🚫 Neúspešné: {{ .Failed }}\r\n⏭ Preskočené: {{ .Skipped }}\r\n⏱ Čas: {{ .Time }}\r\n", + "broadcastCanceled": "🛑 Hromadné odosielanie bolo zrušené.\r\n👥 Príjemcovia: {{ .Total }}\r\n📨 Doručené: {{ .Sent }}\r\n🚫 Neúspešné: {{ .Failed }}\r\n⏭ Preskočené: {{ .Skipped }}\r\n⏱ Čas: {{ .Time }}\r\n", + "AreYouSure": "Naozaj chcete pokračovať? 🤔", + "SuccessResetTraffic": "📧 Klient: {{ .ClientEmail }}\n🏁 Výsledok: ✅ Úspešné", + "FailedResetTraffic": "📧 Klient: {{ .ClientEmail }}\n🏁 Výsledok: ❌ Neúspešné \n\n🛠️ Chyba: [ {{ .ErrorMessage }} ]", + "FinishProcess": "🔚 Nulovanie spotreby všetkých klientov bolo dokončené.", + "eventOutboundDown": "Výstup {{ .Tag }} je NEDOSTUPNÝ", + "eventOutboundUp": "Výstup {{ .Tag }} je DOSTUPNÝ", + "eventErrorDetail": "Chyba: {{ .Error }}", + "eventDelayDetail": "Odozva: {{ .Delay }}ms", + "eventXrayCrash": "Jadro Xray SPADLO", + "eventXrayCrashError": "Chyba: {{ .Error }}", + "eventNodeDown": "Server {{ .Name }} je NEDOSTUPNÝ", + "eventNodeUp": "Server {{ .Name }} je DOSTUPNÝ", + "eventLoginFallback": "Neúspešné prihlásenie z {{ .Source }}", + "memoryThreshold": "Využitie pamäte {{ .Percent }}% prekročilo prah {{ .Threshold }}%" + }, + "buttons": { + "closeKeyboard": "❌ Zavrieť klávesnicu", + "cancel": "❌ Zrušiť", + "broadcastSend": "📤 Odoslať teraz", + "cancelReset": "❌ Zrušiť nulovanie", + "cancelIpLimit": "❌ Zrušiť nastavenie limitu IP", + "confirmResetTraffic": "✅ Potvrdiť vynulovanie spotreby?", + "confirmClearIps": "✅ Potvrdiť vyčistenie IP adries?", + "confirmRemoveTGUser": "✅ Potvrdiť odobratie používateľa Telegramu?", + "confirmToggle": "✅ Potvrdiť zapnutie/vypnutie používateľa?", + "dbBackup": "Získať zálohu databázy", + "serverUsage": "Využitie servera", + "getInbounds": "Zobraziť vstupy", + "depleteSoon": "Blíži sa vyčerpanie", + "clientUsage": "Zobraziť spotrebu", + "onlines": "Pripojení klienti", + "commands": "Príkazy", + "refresh": "🔄 Obnoviť", + "clearIPs": "❌ Vyčistiť IP adresy", + "removeTGUser": "❌ Odobrať používateľa Telegramu", + "selectTGUser": "👤 Vybrať používateľa Telegramu", + "selectOneTGUser": "👤 Vyberte používateľa Telegramu:", + "resetTraffic": "📈 Vynulovať spotrebu", + "resetExpire": "📅 Zmeniť koniec platnosti", + "ipLog": "🔢 Záznam IP adries", + "ipLimit": "🔢 Limit IP adries", + "setTGUser": "👤 Nastaviť používateľa Telegramu", + "inviteLink": "🔗 Pozývací odkaz", + "toggle": "🔘 Zapnúť / vypnúť", + "custom": "🔢 Vlastné", + "confirmNumber": "✅ Potvrdiť: {{ .Num }}", + "confirmNumberAdd": "✅ Potvrdiť pridanie: {{ .Num }}", + "limitTraffic": "🚧 Dátový limit", + "getBanLogs": "Zobraziť záznamy blokovania", + "allClients": "Všetci klienti", + "addClient": "Pridať klienta", + "submitDisable": "Uložiť ako vypnuté ☑️", + "submitEnable": "Uložiť ako zapnuté ✅", + "use_default": "🏷️ Použiť predvolené", + "change_email": "⚙️📧 Názov klienta", + "change_comment": "⚙️💬 Poznámka", + "ResetAllTraffics": "Vynulovať všetku spotrebu", + "SortedTrafficUsageReport": "Zoradený prehľad spotreby" + }, + "answers": { + "broadcastStarted": "🚀 Hromadné odosielanie sa začalo.", + "broadcastCanceling": "🛑 Odosielanie sa zastaví po aktuálnom príjemcovi.", + "broadcastCanceled": "❌ Hromadné odosielanie bolo zrušené.", + "successfulOperation": "✅ Akcia bola úspešná!", + "errorOperation": "❗ Pri vykonávaní nastala chyba.", + "getInboundsFailed": "❌ Nepodarilo sa načítať vstupy.", + "getClientsFailed": "❌ Nepodarilo sa načítať klientov.", + "canceled": "❌ {{ .Email }}: Akcia bola zrušená.", + "clientRefreshSuccess": "✅ {{ .Email }}: Údaje klienta boli obnovené.", + "IpRefreshSuccess": "✅ {{ .Email }}: IP adresy boli obnovené.", + "TGIdRefreshSuccess": "✅ {{ .Email }}: Priradenie používateľa Telegramu bolo obnovené.", + "resetTrafficSuccess": "✅ {{ .Email }}: Spotreba bola vynulovaná.", + "setTrafficLimitSuccess": "✅ {{ .Email }}: Dátový limit bol uložený.", + "expireResetSuccess": "✅ {{ .Email }}: Dĺžka platnosti bola zmenená.", + "resetIpSuccess": "✅ {{ .Email }}: Limit IP adries {{ .Count }} bol uložený.", + "clearIpSuccess": "✅ {{ .Email }}: IP adresy boli vyčistené.", + "getIpLog": "✅ {{ .Email }}: Záznam IP adries bol načítaný.", + "getUserInfo": "✅ {{ .Email }}: Údaje používateľa Telegramu boli načítané.", + "removedTGUserSuccess": "✅ {{ .Email }}: Priradenie používateľa Telegramu bolo odstránené.", + "enableSuccess": "✅ {{ .Email }}: Klient bol zapnutý.", + "disableSuccess": "✅ {{ .Email }}: Klient bol vypnutý.", + "askToAddUserId": "Vaša konfigurácia sa nenašla!\r\nPožiadajte správcu, aby do vašich konfigurácií pridal vaše ID konverzácie Telegramu.\r\n\r\nVaše ID konverzácie: {{ .TgUserID }}", + "chooseClient": "Vyberte klienta vstupu {{ .Inbound }}", + "chooseInbound": "Vyberte vstup", + "qrCodeForClient": "QR kód pre klienta {{ .Email }}:" + } + }, + "discord": { + "test": { + "title": "Skúška upozornení Discordu v 3x-ui", + "body": "Toto je skúšobné upozornenie na overenie správneho nastavenia upozornení Discordu." + }, + "footer": "Panel 3x-ui", + "fields": { + "panelVersion": "Verzia panelu", + "xrayCore": "Jadro Xray", + "systemLoad": "Záťaž systému", + "networkTraffic": "Sieťový prenos", + "totalUsed": "Celková spotreba", + "quota": "Dátový limit", + "error": "Chyba", + "delay": "Odozva", + "outbound": "Výstup", + "node": "Server", + "threshold": "Prah", + "reason": "Dôvod", + "time": "Čas", + "source": "Zdroj" + }, + "values": { + "uptime": "{{ .Days }}d {{ .Hours }}h", + "traffic": "↑{{ .Up }} ↓{{ .Down }} (Celkom: {{ .Total }})", + "counts": "Celkom: {{ .Total }} | Blíži sa vyčerpanie: {{ .Depleting }} | Vypnutí: {{ .Disabled }}", + "inbound": "Protokol: `{{ .Protocol }}` | Port: `{{ .Port }}` | Klienti: `{{ .Clients }}` | Spotreba: `↑{{ .Up }} ↓{{ .Down }}` | Stav: `{{ .State }}`" + }, + "alerts": { + "outboundDown": "Výstup je nedostupný", + "outboundUp": "Výstup je dostupný", + "nodeDown": "Server je nedostupný", + "nodeUp": "Server je dostupný", + "xrayCrash": "Jadro Xray spadlo", + "cpuHigh": "Prekročený prah využitia CPU", + "memoryHigh": "Prekročený prah využitia pamäte", + "loginSuccess": "Úspešné prihlásenie", + "loginFailed": "Neúspešné prihlásenie" + }, + "report": { + "title": "📊 Správa o stave 3x-ui", + "summary": "Pravidelná správa o stave servera a proxy **{{ .Host }}**", + "footer": "Plánovaná správa 3x-ui • Plán: {{ .RunTime }}" + }, + "commands": { + "helpTitle": "🤖 Príkazy Discord bota 3x-ui", + "helpDescription": "Dostupné príkazy na sledovanie a správu servera 3x-ui:", + "helpStatus": "Zobraziť záťaž systému, RAM, CPU, spojenia a pripojených používateľov", + "helpReport": "Vytvoriť úplnú správu o stave, prípadne aj so zálohou databázy", + "helpBackup": "Okamžite poslať súbor so zálohou databázy", + "helpUsage": "Zistiť spotrebu, dátový limit a platnosť klienta", + "helpInbounds": "Zobraziť všetky nastavené vstupy s portmi a štatistikami klientov", + "helpRestart": "Reštartovať jadro Xray", + "helpHelp": "Zobraziť tento zoznam dostupných príkazov", + "statusTitle": "⚡ Stav servera 3x-ui", + "statusDescription": "Aktuálne prevádzkové údaje pre **{{ .Host }}**", + "backupTitle": "🗄️ Záloha databázy", + "backupDescription": "Záloha 3x-ui vytvorená o `{{ .Time }}`", + "backupUnavailable": "❌ Služba zálohovania nie je dostupná", + "backupFailed": "❌ Nepodarilo sa načítať zálohu databázy: {{ .Error }}", + "usageHint": "⚠️ Použitie: `!usage ` alebo `/usage `", + "usageTitle": "👤 Spotreba klienta: {{ .Email }}", + "usageDescription": "Vstup: **{{ .Remark }}** (port {{ .Port }})", + "clientNotFound": "⚠️ Klient `{{ .Email }}` sa nenašiel v žiadnom nastavenom vstupe.", + "inboundsUnavailable": "❌ Služba vstupov nie je dostupná", + "inboundsFailed": "❌ Nepodarilo sa načítať vstupy: {{ .Error }}", + "inboundsTitle": "🔌 Nastavené vstupy", + "inboundsDescription": "Počet vstupov: **{{ .Count }}**", + "noInbounds": "ℹ️ Nie sú nastavené žiadne vstupy.", + "xrayUnavailable": "❌ Služba Xray nie je dostupná", + "restarting": "🔄 Reštartuje sa jadro Xray…", + "restartFailed": "❌ Nepodarilo sa reštartovať Xray: {{ .Error }}", + "restartSuccess": "✅ Jadro Xray bolo úspešne reštartované." + } + }, + "email": { + "labelStatus": "Stav", + "labelOutbound": "Výstup", + "labelNode": "Server", + "labelError": "Chyba", + "labelDelay": "Odozva", + "labelUsername": "Používateľské meno", + "labelIP": "IP", + "labelReason": "Dôvod", + "labelSource": "Zdroj", + "statusCrashed": "PÁD PROCESU", + "statusHigh": "VYSOKÉ", + "statusSuccess": "ÚSPEŠNÉ", + "statusFailed": "NEÚSPEŠNÉ", + "statusDown": "NEDOSTUPNÝ", + "statusUp": "DOSTUPNÝ" + }, + "commandPalette": { + "title": "Rýchle vyhľadávanie a príkazy", + "placeholder": "Zadajte príkaz alebo hľadajte klientov, vstupy či stránky…", + "search": "Hľadať…", + "navigation": "Navigácia", + "actions": "Akcie", + "navigate": "Prejsť na", + "select": "Vybrať", + "copySubscription": "Skopírovať odber", + "restartXray": "Reštartovať službu Xray", + "restartXraySuccess": "Xray bol úspešne reštartovaný", + "settings": "Nastavenia" + } +}