feat Hungarian (hu) locale (#288)

Co-authored-by: Komlósi Zsolt <zsolt.komlosi@gvsx.hu>
This commit is contained in:
komlosizsolt 2026-05-02 14:15:58 +02:00 committed by GitHub
parent 6805628458
commit 6a6aba9042
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 670 additions and 4 deletions

View file

@ -28,6 +28,7 @@ READMEs covers any locale that has a translated README, dict or no dict.
| `de` | Deutsch | `de.ts` | `README.de.md` | active |
| `es-ES` | Español (España) | `es-ES.ts` | — | active |
| `fa` | فارسی | `fa.ts` | — | active |
| `hu` | Magyar | `hu.ts` | — | active |
| `ja` | 日本語 | — | `README.ja-JP.md` | active (README only) |
| `ko` | 한국어 | — | `README.ko.md` | active (README only) |
| `pt-BR` | Português (Brasil) | `pt-BR.ts` | — | active |

View file

@ -20,6 +20,7 @@ import { ru } from './locales/ru';
import { zhCN } from './locales/zh-CN';
import { zhTW } from './locales/zh-TW';
import { pl } from './locales/pl';
import { hu } from './locales/hu';
import { LOCALES, type Dict, type Locale } from './types';
export { LOCALES, LOCALE_LABEL } from './types';
@ -39,6 +40,7 @@ const DICTS: Record<Locale, Dict> = {
'ja': ja,
'ko': ko,
'pl': pl,
'hu': hu,
};
const LS_KEY = 'open-design:locale';

View file

@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest';
import { en } from './locales/en';
import { LOCALES, LOCALE_LABEL, type Dict, type Locale } from './types';
const EXPECTED_LOCALES = ['en', 'de', 'zh-CN', 'zh-TW', 'pt-BR', 'es-ES', 'ru', 'fa', 'ja', 'ko', 'pl'];
const EXPECTED_LOCALES = ['en', 'de', 'zh-CN', 'zh-TW', 'pt-BR', 'es-ES', 'ru', 'fa', 'ja', 'ko', 'pl', 'hu'];
function placeholders(value: string): string[] {
const names: string[] = [];

View file

@ -0,0 +1,662 @@
import type { Dict } from '../types';
export const hu: Dict = {
'common.cancel': 'Mégse',
'common.save': 'Mentés',
'common.close': 'Bezárás',
'common.delete': 'Törlés',
'common.rename': 'Átnevezés',
'common.preview': 'Előnézet',
'common.share': 'Megosztás',
'common.search': 'Keresés',
'common.searchEllipsis': 'Keresés…',
'common.loading': 'Betöltés…',
'common.all': 'Összes',
'common.none': 'Nincs',
'common.default': 'Alapértelmezett',
'common.installed': 'telepítve',
'common.notInstalled': 'nincs telepítve',
'common.active': 'aktív',
'common.offline': 'offline',
'common.selected': 'kiválasztva',
'common.create': 'Létrehozás',
'common.openPreview': 'Előnézet megnyitása',
'common.exitFullscreen': 'Kilépés a teljes képernyőből',
'common.fullscreen': 'Teljes képernyő',
'common.openInNewTab': 'Megnyitás új lapon',
'common.exportPdf': 'Exportálás PDF-ként',
'common.exportZip': 'Letöltés .zip-ként',
'common.exportHtml': 'Exportálás önálló HTML-ként',
'common.justNow': 'az imént',
'common.minutesAgo': '{n} perce',
'common.hoursAgo': '{n} órája',
'common.daysAgo': '{n} napja',
'common.now': 'most',
'common.minutesShort': '{n}p',
'common.hoursShort': '{n}ó',
'common.daysShort': '{n}n',
'common.untitled': 'Cím nélkül',
'app.brand': 'Open Design',
'app.brandPill': 'Kutatási előzetes',
'app.brandSubtitle': 'a Nexu Labs-tól',
'app.welcomeLoading': 'Munkaterület betöltése…',
'settings.welcomeKicker': 'Üdvözlünk',
'settings.welcomeTitle': 'Open Design beállítása',
'settings.welcomeSubtitle':
'Válaszd ki, hogyan szeretnéd futtatni a generálásokat. Ezt bármikor módosíthatod a felső sáv Beállítások gombjával.',
'settings.kicker': 'Beállítások',
'settings.title': 'Végrehajtás és modell',
'settings.subtitle':
'Válassz a helyi code-agent CLI és az Anthropic API (BYOK) között. Az API-kulcs csak ebben a böngészőben tárolódik.',
'settings.modeAria': 'Végrehajtási mód',
'settings.modeDaemon': 'Helyi CLI',
'settings.modeDaemonHelp': 'Futtatás a gépeden lévő code-agent CLI-n keresztül',
'settings.modeDaemonOffline': 'A daemon nem fut',
'settings.modeDaemonOfflineMeta': 'a daemon offline',
'settings.modeDaemonInstalledMeta': '{count} telepítve',
'settings.modeApi': 'Anthropic API',
'settings.modeApiMeta': 'BYOK',
'settings.codeAgent': 'Code agent',
'settings.codeAgentHint':
'A PATH átvizsgálásával észlelve. Válaszd ki a CLI-t, amelyen át a generálásokat szeretnéd futtatni.',
'settings.rescan': '↻ Újraellenőrzés',
'settings.rescanTitle': 'PATH újraellenőrzése',
'settings.noAgentsDetected':
'Még nincs észlelt ügynök. Telepítsd a Claude Code, Codex, Gemini CLI, OpenCode, Cursor Agent, Qwen vagy GitHub Copilot CLI valamelyikét, majd kattints az Újraellenőrzésre.',
'settings.apiSection': 'Anthropic API',
'settings.apiKey': 'API-kulcs',
'settings.showKey': 'Kulcs megjelenítése',
'settings.hideKey': 'Kulcs elrejtése',
'settings.show': 'Megjelenítés',
'settings.hide': 'Elrejtés',
'settings.model': 'Modell',
'settings.baseUrl': 'Base URL',
'settings.maxTokens': 'Max tokenek (opcionális)',
'settings.maxTokensHint':
'A válasz hosszának felső határa. Minden modellnek van hangolt alapértelmezése (placeholderként látható); hagyd üresen az alkalmazásához, vagy adj meg számot a felülíráshoz.',
'settings.apiHint':
'A hívások közvetlenül ebből a böngészőből mennek a megadott bázis URL-re. Nincs proxy. A kulcs sosem hagyja el a localStorage-t.',
'settings.skipForNow': 'Most kihagyom',
'settings.getStarted': 'Kezdjük',
'settings.envConfigure': 'Végrehajtási mód beállítása',
'settings.localCli': 'Helyi CLI',
'settings.anthropicApi': 'Anthropic API',
'settings.noAgentSelected': 'nincs kiválasztott ügynök',
'settings.language': 'Nyelv',
'settings.languageHint': 'A felület nyelvének váltása. Ebben a böngészőben mentve.',
'settings.appearance': 'Megjelenés',
'settings.appearanceHint': 'Válassz világos, sötét, vagy kövesd a rendszer beállítását.',
'settings.themeSystem': 'Rendszer',
'settings.themeLight': 'Világos',
'settings.themeDark': 'Sötét',
'settings.modelPicker': 'Modell',
'settings.reasoningPicker': 'Gondolkodási erőfeszítés',
'settings.modelPickerHint':
'A CLI-tól kérdezi le, ha az közzéteszi a `models` parancsot. Az „Alapértelmezett" a CLI saját konfigjára bízza a választást; az „Egyedi…" tetszőleges, a CLI által elfogadott modell-id-t enged megadni.',
'settings.modelCustom': 'Egyedi (gépeld be alább)…',
'settings.modelCustomLabel': 'Egyedi modell-id',
'settings.modelCustomPlaceholder': 'pl. anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Média-szolgáltatók',
'settings.mediaProvidersHint':
'API-kulcsok kép-, videó- és hanggeneráláshoz. Helyben tárolva, és a helyi daemonnal szinkronizálva.',
'settings.mediaProviderApiKey': 'API-kulcs',
'settings.mediaProviderBaseUrl': 'Bázis URL',
'settings.mediaProviderConfigured': 'Beállítva',
'settings.mediaProviderUnset': 'Nincs beállítva',
'settings.mediaProviderClear': 'Törlés',
'settings.mediaProviderPlaceholder': 'API-kulcs beillesztése',
'settings.mediaProviderBaseUrlPlaceholder': 'Alapértelmezett bázis URL felülírása',
'settings.about': 'Névjegy',
'settings.aboutHint': 'Verzió- és futtatókörnyezeti adatok',
'settings.appVersion': 'Verzió',
'settings.appChannel': 'Csatorna',
'settings.appRuntime': 'Futtatókörnyezet',
'settings.appPlatform': 'Platform',
'settings.appArchitecture': 'Architektúra',
'settings.runtimePackaged': 'Csomagolt alkalmazás',
'settings.runtimeDevelopment': 'Fejlesztői',
'settings.versionUnavailable': 'A verzió adatai nem érhetők el, amíg a daemon offline.',
'entry.tabDesigns': 'Tervek',
'entry.tabExamples': 'Példák',
'entry.tabDesignSystems': 'Designrendszerek',
'entry.openSettingsTitle': 'Beállítások',
'entry.openSettingsAria': 'Beállítások megnyitása',
'entry.resizeAria': 'Oldalsáv átméretezése',
'entry.loadingWorkspace': 'Munkaterület betöltése…',
'entry.tabImageTemplates': 'Képsablonok',
'entry.tabVideoTemplates': 'Videósablonok',
'promptTemplates.searchPlaceholder': 'Sablonok keresése…',
'promptTemplates.countLabel': '{n} találat',
'promptTemplates.emptyImage': 'Még nincs telepített képsablon.',
'promptTemplates.emptyVideo': 'Még nincs telepített videósablon.',
'promptTemplates.emptyNoMatch': 'Egy sablon sem felel meg a keresésnek.',
'promptTemplates.attributionFooter': 'Nyilvános prompt-tárakból átvéve. Minden kártya az eredeti szerzőre mutat.',
'promptTemplates.openPreviewTitle': 'Prompt és előnézet megnyitása',
'promptTemplates.sourcePrefix': 'Forrás:',
'promptTemplates.fetchError': 'A sablon törzse nem tölthető be.',
'promptTemplates.promptLabel': 'Prompt törzse',
'promptTemplates.copyPrompt': 'Prompt másolása',
'promptTemplates.copyDone': 'Másolva!',
'promptTemplates.modelHint': 'Ajánlott modell: {model}',
'promptTemplates.openSource': 'Eredeti megnyitása',
'promptTemplates.openFullscreen': 'Teljes képernyős előnézet',
'promptTemplates.closeFullscreen': 'Teljes képernyős előnézet bezárása',
'promptTemplates.retry': 'Újra',
'newproj.tabPrototype': 'Prototípus',
'newproj.tabDeck': 'Diavetítés',
'newproj.tabTemplate': 'Sablonból',
'newproj.tabOther': 'Egyéb',
'newproj.titlePrototype': 'Új prototípus',
'newproj.titleDeck': 'Új diavetítés',
'newproj.titleTemplate': 'Indulás sablonból',
'newproj.titleImage': 'Új kép',
'newproj.titleVideo': 'Új videó',
'newproj.titleAudio': 'Új hang',
'newproj.titleOther': 'Új projekt',
'newproj.namePlaceholder': 'Projekt neve',
'newproj.fidelityLabel': 'Részletesség',
'newproj.fidelityWireframe': 'Wireframe',
'newproj.fidelityHigh': 'Részletes',
'newproj.toggleSpeakerNotes': 'Előadói jegyzetek használata',
'newproj.toggleSpeakerNotesHint': 'Kevesebb szöveg a diákon — a beszédpontok a jegyzetekbe kerülnek.',
'newproj.toggleAnimations': 'Animációk hozzáadása',
'newproj.toggleAnimationsHint':
'Mozgás (belépés, hover, átmenetek) hozzáadása a sablonra.',
'newproj.templateLabel': 'Sablon',
'newproj.noTemplatesTitle': 'Még nincs sablon',
'newproj.noTemplatesBody':
'Nyiss meg egy projektet, majd a fájlnézőben a Megosztás menüvel alakítsd sablonná. A sablonok itt jelennek meg.',
'newproj.savedTemplate': 'Mentett sablon',
'newproj.fileSingular': 'fájl',
'newproj.filePlural': 'fájl',
'newproj.create': 'Létrehozás',
'newproj.createFromTemplate': 'Létrehozás sablonból',
'newproj.createDisabledTitle':
'Először ments el egy projektet sablonként (bármely projekt Megosztás menüjéből).',
'newproj.importClaudeZip': 'Claude Design ZIP importálása',
'newproj.importClaudeZipTitle': 'Claude Design .zip export importálása',
'newproj.importingClaudeZip': 'Importálás…',
'newproj.privacyFooter': 'Alapértelmezetten csak te láthatod a projekted.',
'newproj.designSystem': 'Designrendszer',
'newproj.dsNoneFreeform': 'Nincs — szabad formátum',
'newproj.dsNoneSubtitleEmpty': 'Nincsenek rendszertokenek, válassz saját palettát',
'newproj.dsNoneSubtitleSelected': 'Hagyd ki a rendszertokeneket. Az ügynök maga választ palettát.',
'newproj.dsCategoryFallback': 'Designrendszer',
'newproj.dsSearch': 'Designrendszerek keresése…',
'newproj.dsModeAria': 'Kijelölési mód',
'newproj.dsModeSingle': 'Egy',
'newproj.dsModeMulti': 'Több',
'newproj.dsNoneTitle': 'Nincs — szabad formátum',
'newproj.dsNoneSub': 'Hagyd ki a rendszertokeneket. Az ügynök maga választ palettát.',
'newproj.dsEmpty': 'Egy designrendszer sem felel meg a „{query}" keresésnek.',
'newproj.dsFootSingular': 'csak inspiráció.',
'newproj.dsFootPlural': 'csak inspiráció.',
'newproj.dsFootClear': 'Törlés',
'newproj.dsBadgeDefault': 'ALAPÉRT.',
'newproj.dsPrimaryFallback': 'Elsődleges',
'newproj.surfaceImage': 'Kép',
'newproj.surfaceVideo': 'Videó',
'newproj.surfaceAudio': 'Hang',
'newproj.modelLabel': 'Modell',
'newproj.aspectLabel': 'Képarány',
'newproj.imageStyleLabel': 'Stílusjegyzetek',
'newproj.imageStylePlaceholder': 'Magazinszerű fotó, lágy nappali fény, tompa paletta',
'newproj.videoLengthLabel': 'Hossz',
'newproj.videoLengthSeconds': '{n} mp',
'newproj.audioKindLabel': 'Hangtípus',
'newproj.audioKindMusic': 'Zene',
'newproj.audioKindSpeech': 'Beszéd / TTS',
'newproj.audioKindSfx': 'Hangeffekt',
'newproj.audioDurationLabel': 'Időtartam',
'newproj.audioDurationSeconds': '{n} mp',
'newproj.voiceLabel': 'Hang',
'newproj.voicePlaceholder': 'Szolgáltatói hang-id, opcionális',
'newproj.promptTemplateLabel': 'Hivatkozási sablon',
'newproj.promptTemplateNoneTitle': 'Nincs — saját megfogalmazás',
'newproj.promptTemplateNoneSub': 'Hagyd ki a galériát, írd le a saját brieffed',
'newproj.promptTemplateRefSub': 'Hivatkozási sablon',
'newproj.promptTemplateSearch': 'Sablonok keresése…',
'newproj.promptTemplateEmpty': 'Még nincs telepített sablon ehhez a felülethez.',
'newproj.promptTemplateBodyLabel': 'Prompt (módosítható)',
'newproj.promptTemplateOptimizeHint':
'Bármit módosíthatsz — a változtatásaid beépülnek az ügynök briefjébe.',
'newproj.promptTemplateBodyEmpty':
'Üres törzs — az ügynök nem kap sablonhivatkozást.',
'designs.subRecent': 'Legutóbbi',
'designs.subYours': 'A te terveid',
'designs.filterAria': 'Projektek szűrése',
'designs.searchPlaceholder': 'Keresés…',
'designs.emptyNoProjects': 'Még nincs projekt. Hozz létre egyet a bal oldalon.',
'designs.emptyNoMatch': 'Egy projekt sem felel meg a keresésnek.',
'designs.deleteTitle': 'Projekt törlése',
'designs.deleteConfirm': 'Törlöd a(z) „{name}" projektet?',
'designs.cardFreeform': 'szabad formátum',
'designs.status.notStarted': 'Nem kezdődött el',
'designs.status.queued': 'Sorban',
'designs.status.running': 'Fut',
'designs.status.awaitingInput': 'Bevitelre vár',
'designs.status.succeeded': 'Befejezve',
'designs.status.failed': 'Sikertelen',
'designs.status.canceled': 'Megszakítva',
'designs.viewToggleAria': 'Nézet módja',
'designs.viewGrid': 'Rácsnézet',
'designs.viewKanban': 'Tábla nézet',
'designs.kanbanEmptyColumn': 'Nincs terv',
'designs.deleteAria': '{name} projekt törlése',
'examples.typeLabel': 'Típus',
'examples.surfaceLabel': 'Felület',
'examples.surfaceWeb': 'Web',
'examples.surfaceImage': 'Kép',
'examples.surfaceVideo': 'Videó',
'examples.surfaceAudio': 'Hang',
'examples.scenarioLabel': 'Forgatókönyv',
'examples.modeAll': 'Mind',
'examples.modePrototypeDesktop': 'Prototípusok · Asztali',
'examples.modePrototypeMobile': 'Prototípusok · Mobil',
'examples.modeDeck': 'Diák',
'examples.modeDocument': 'Dokumentumok és sablonok',
'examples.scenarioGeneral': 'Általános',
'examples.scenarioEngineering': 'Mérnöki',
'examples.scenarioProduct': 'Termék',
'examples.scenarioDesign': 'Design',
'examples.scenarioMarketing': 'Marketing',
'examples.scenarioSales': 'Értékesítés',
'examples.scenarioFinance': 'Pénzügy',
'examples.scenarioHr': 'HR',
'examples.scenarioOperations': 'Operáció',
'examples.scenarioSupport': 'Ügyfélszolgálat',
'examples.scenarioLegal': 'Jogi',
'examples.scenarioEducation': 'Oktatás',
'examples.scenarioPersonal': 'Személyes',
'examples.emptyNoSkills': 'Nincs elérhető skill. Fut a daemon?',
'examples.emptyNoMatch': 'Egy példa sem felel meg ezeknek a szűrőknek.',
'examples.openPreview': '⤢ Előnézet megnyitása',
'examples.loadingPreview': 'Előnézet betöltése…',
'examples.hoverPreview': 'Vidd fölé az egeret az előnézethez',
'examples.usePrompt': 'Használd ezt a promptot',
'examples.previewModalTitle': 'Teljes előnézet (modális)',
'examples.shareTitle': 'Példa megosztása',
'examples.shareLoadFirst': 'Vidd fölé az egeret az előnézet betöltéséhez',
'examples.shareMenu': 'Megosztás ▾',
'examples.exportPdfAllSlides': 'Exportálás PDF-ként (minden dia)',
'examples.exportPptxLocked': 'Exportálás PPTX-ként… (előbb sablont nyiss)',
'examples.tagSlideDeck': 'Diavetítés',
'examples.tagTemplate': 'Sablon',
'examples.tagDesignSystem': 'Designrendszer',
'examples.tagMobilePrototype': 'Mobil prototípus',
'examples.tagDesktopPrototype': 'Asztali prototípus',
'examples.tagImage': 'Kép',
'examples.tagVideo': 'Videó',
'examples.tagAudio': 'Hang',
'examples.previewLabel': 'Előnézet',
'ds.surfaceLabel': 'Felület',
'ds.surfaceWeb': 'Web',
'ds.surfaceImage': 'Kép',
'ds.surfaceVideo': 'Videó',
'ds.surfaceAudio': 'Hang',
'ds.searchPlaceholder': 'Designrendszerek keresése…',
'ds.emptyNoMatch': 'Egy designrendszer sem felel meg a keresésnek.',
'ds.badgeDefault': 'ALAPÉRT.',
'ds.preview': 'Előnézet',
'ds.previewTitle': 'Designrendszer előnézete',
'ds.categoryAll': 'Mind',
'ds.categoryUncategorized': 'Kategorizálatlan',
'ds.showcase': 'Bemutató',
'ds.tokens': 'Tokenek',
'avatar.title': 'Fiók és beállítások',
'avatar.localCli': 'Helyi CLI',
'avatar.anthropicApi': 'Anthropic API',
'avatar.useLocal': 'Helyi CLI használata',
'avatar.useApi': 'Anthropic API használata',
'avatar.codeAgent': 'Kód-ügynök',
'avatar.rescan': 'PATH újraellenőrzése',
'avatar.settings': 'Beállítások',
'avatar.backToProjects': 'Vissza a projektekhez',
'avatar.metaActive': 'aktív',
'avatar.metaOffline': 'offline',
'avatar.metaSelected': 'kiválasztva',
'avatar.noAgentSelected': 'nincs kiválasztott ügynök',
'avatar.modelSection': 'Modell',
'avatar.modelLabel': 'Modell',
'avatar.reasoningLabel': 'Gondolkodás',
'avatar.customSuffix': '(egyedi)',
'project.backToProjects': 'Vissza a projektekhez',
'project.metaFreeform': 'szabad formátum',
'chat.tabChat': 'Csevegés',
'chat.tabComments': 'Megjegyzések',
'chat.commentsSoon': 'Megjegyzések — hamarosan',
'chat.conversationsTitle': 'Beszélgetések',
'chat.conversationsAria': 'Beszélgetések előzménye',
'chat.newConversation': 'Új beszélgetés',
'chat.newConversationsTitle': 'Új beszélgetés',
'chat.conversationsHeading': 'Beszélgetések',
'chat.new': 'Új',
'chat.emptyConversations': 'Még nincs beszélgetés.',
'chat.deleteConversation': 'Beszélgetés törlése',
'chat.deleteConversationConfirm':
'Törlöd a(z) „{title}" beszélgetést? Ez eltávolítja az üzeneteit.',
'chat.untitledConversation': 'Cím nélküli beszélgetés',
'chat.startTitle': 'Indíts beszélgetést',
'chat.startHint':
'Húzz vagy illessz be képeket vizuális hivatkozásként, vagy gépelj @-et a projekt egy fájljának csatolásához. Vagy próbáld ki ezeket a kezdéseket:',
'chat.fillInputTitle': 'Kattints a beviteli mező kitöltéséhez',
'chat.jumpToLatest': 'Ugrás a legutóbbira',
'chat.scrollToLatest': 'Görgetés a legutóbbira',
'chat.you': 'Te',
'chat.openFile': '{name} megnyitása',
'chat.composerPlaceholder':
'Írd le a kívánt designt — illessz be vagy húzz képeket, vagy @-tel hivatkozz fájlra…',
'chat.composerHint':
'⌘/Ctrl + Enter: küldés · képek beillesztése · @ fájlra hivatkozás',
'chat.cliSettingsTitle': 'CLI- és modellbeállítások',
'chat.cliSettingsAria': 'CLI- és modellbeállítások megnyitása',
'chat.attachTitle': 'Fájlok csatolása (vagy beillesztés / húzás)',
'chat.attachAria': 'Fájlok csatolása',
'chat.importTitle': 'Források importálása (hamarosan)',
'chat.importLabel': 'Importálás',
'chat.importComingSoon': 'Hamarosan',
'chat.importSoon': 'Hamarosan',
'chat.importFig': '.fig fájl feltöltése',
'chat.importGitHub': 'GitHub csatlakoztatása',
'chat.importWeb': 'Webelem mentése',
'chat.importFolder': 'Kódmappa hozzákapcsolása',
'chat.importSkills': 'Skillek és designrendszerek',
'chat.importProject': 'Hivatkozás másik projektre',
'chat.send': 'Küldés',
'chat.stop': 'Leállítás',
'chat.removeAria': '{name} eltávolítása',
'chat.example1Title': 'Magazinszerű pitch deck',
'chat.example1Tag': 'Magazin',
'chat.example1Prompt':
'Egy 10 diás magazinszerű pitch deck egy designstúdió seed köréhez — svájci rácselrendezés, túlméretezett serif címsorok félkövér drop capekkel, monospace szakaszszámok, bőséges üres tér, és teljes kihasználású fotódiák szövegközpontú diákkal váltakozva. Borító, vízió, piac, termék, eredmények, csapat, kérés, kapcsolat.',
'chat.example2Title': 'SaaS analitikai dashboard',
'chat.example2Tag': 'Adat',
'chat.example2Prompt':
'Sűrű analitikai dashboard fejlesztői SaaS-hez — KPI-csík hét/hét deltákkal, két egymásra rakott vonaldiagram (MRR és aktív munkaterületek), világtérképes hőtérkép a használatról, kohorsz-megtartási rács, top-ügyfelek ranglista, és valós idejű eseménystream. Sötét téma, táblázatos monospace számok, sparkline akcentusok.',
'chat.example3Title': 'Éves jelentés long-scroll',
'chat.example3Tag': 'Magazinszerű',
'chat.example3Prompt':
'Interaktív éves jelentés egy klíma-non-profitnak — long-scroll magazinszerű elrendezés, nagy kiemelt-idézet blokkokkal, adatvizualizációkkal (egymásra rakott oszlopok, animált számlálók, projekthelyek choropleth térképe), fotó-megszakítókkal, donor fallal, és záró cselekvésre hívással. Modern serif törzs, sans-serif diagramcímkék, földes papírpaletta.',
'preview.shareMenu': 'Megosztás ▾',
'preview.openInNewTab': 'Megnyitás új lapon',
'preview.exit': '⤓ Kilépés',
'preview.fullscreen': '⤢ Teljes képernyő',
'preview.closeTitle': 'Bezárás (Esc)',
'preview.loading': '{label} betöltése…',
'misc.savedTemplate': 'Mentett sablon',
'misc.primary': 'Elsődleges',
'misc.designSystem': 'Designrendszer',
'workspace.designFiles': 'Designfájlok',
'workspace.closeTab': 'Lap bezárása',
'workspace.deleteFileConfirm': 'Törlöd a(z) „{name}" fájlt a projektmappából?',
'workspace.openFromDesignFiles': 'Nyiss meg egy fájlt innen:',
'workspace.designFilesLink': 'Designfájlok',
'workspace.loadingSketch': 'Vázlat betöltése…',
'designFiles.title': 'Designfájlok',
'designFiles.upload': 'Fájlok feltöltése',
'designFiles.pasteText': 'Beillesztés szövegfájlként',
'designFiles.newSketch': 'Új vázlat',
'designFiles.empty':
'Még nincs itt semmi. Húzz be fájlokat, vagy hozz létre vázlatot / illessz be szöveget.',
'designFiles.refresh': 'Frissítés',
'designFiles.delete': 'Törlés',
'designFiles.searchPlaceholder': 'Fájlok keresése…',
'designFiles.up': 'Fel',
'designFiles.back': 'Vissza',
'designFiles.crumbs': 'projekt',
'designFiles.rowMenu': 'Sor menü',
'designFiles.openInTab': 'Megnyitás lapon',
'designFiles.download': 'Letöltés',
'designFiles.dropTitle': '⤓ Húzd ide a fájlokat',
'designFiles.dropDesc':
'Képek, dokumentumok, hivatkozások vagy mappák — az ügynök kontextusként használja őket.',
'designFiles.upload.title': 'Fájlok feltöltése',
'designFiles.paste.title': 'Szöveg beillesztése fájlként',
'designFiles.upload.label': 'Feltöltés',
'designFiles.paste.label': 'Beillesztés',
'designFiles.previewOpen': 'Megnyitás',
'designFiles.previewClose': 'Előnézet bezárása',
'designFiles.modified': 'Módosítva: {time} · {size}',
'designFiles.weeksAgo': '{n} hete',
'designFiles.sectionPages': 'Oldalak',
'designFiles.sectionScripts': 'Szkriptek',
'designFiles.sectionImages': 'Képek',
'designFiles.sectionSketches': 'Vázlatok',
'designFiles.sectionOther': 'Egyéb',
'designFiles.kindHtml': 'HTML oldal',
'designFiles.kindImage': 'Kép',
'designFiles.kindSketch': 'Vázlat',
'designFiles.kindText': 'Szöveg',
'designFiles.kindCode': 'Szkript',
'designFiles.kindPdf': 'PDF',
'designFiles.kindDocument': 'Dokumentum',
'designFiles.kindPresentation': 'Prezentáció',
'designFiles.kindSpreadsheet': 'Táblázat',
'designFiles.kindBinary': 'Bináris',
'pasteDialog.title': 'Szöveg beillesztése',
'pasteDialog.hint': 'A projektmappába mentve. Bármilyen név adható.',
'pasteDialog.fileNameLabel': 'Fájlnév',
'pasteDialog.namePlaceholder': 'jegyzetek.txt',
'pasteDialog.contentLabel': 'Tartalom',
'pasteDialog.contentPlaceholder': 'Illessz be bármit…',
'pasteDialog.save': 'Mentés',
'pasteDialog.cancel': 'Mégse',
'sketch.save': 'Vázlat mentése',
'sketch.cancel': 'Mégse',
'sketch.saving': 'Mentés…',
'sketch.tooltipDirty': 'Mentetlen változtatások',
'sketch.tooltipClean': 'Mentve',
'fileViewer.empty': 'Válassz fájlt a megtekintéshez.',
'fileViewer.loading': 'Betöltés…',
'fileViewer.exportPptx': 'Exportálás PPTX-ként',
'fileViewer.openInNewTab': 'Megnyitás új lapon',
'fileViewer.copyPath': 'Útvonal másolása',
'fileViewer.copied': 'Másolva!',
'fileViewer.share': 'Megosztás',
'fileViewer.binaryMeta': 'Bináris · {size}',
'fileViewer.binaryNote':
'Bináris fájl ({size} bájt). A megtekintéshez töltsd le, vagy nyisd meg lemezről.',
'fileViewer.pdfMeta': 'PDF · {size}',
'fileViewer.documentMeta': 'Dokumentum',
'fileViewer.presentationMeta': 'Prezentáció',
'fileViewer.spreadsheetMeta': 'Táblázat',
'fileViewer.previewUnavailable': 'Előnézet nem elérhető. Töltsd le vagy nyisd meg a fájlt a megtekintéshez.',
'fileViewer.download': 'Letöltés',
'fileViewer.open': 'Megnyitás',
'fileViewer.imageMeta': 'Kép · {size}',
'fileViewer.reactMeta': 'React komponens · {size}',
'fileViewer.sketchMeta': 'Vázlat · {size}',
'fileViewer.markdownStreamingMeta': 'Streamelő előnézet…',
'fileViewer.markdownErrorMeta': 'Az előnézet hiányos lehet (generálási hiba).',
'fileViewer.markdownStreamingStatus': 'Streamelés… részleges markdownt mutatva.',
'fileViewer.markdownErrorStatus': 'Generálási hiba. Az utolsó elérhető tartalom látszik.',
'fileViewer.videoMeta': 'Videó · {size}',
'fileViewer.audioMeta': 'Hang · {size}',
'fileViewer.reload': 'Újratöltés',
'fileViewer.reloadDisk': 'Újratöltés lemezről',
'fileViewer.copy': 'Másolás',
'fileViewer.copyTitle': 'Fájltartalom másolása',
'fileViewer.saveDisabled': 'Mentés (csak olvasható nézet)',
'fileViewer.save': 'Mentés',
'fileViewer.preview': 'Előnézet',
'fileViewer.source': 'Forrás',
'fileViewer.tweaks': 'Finomhangolás',
'fileViewer.comment': 'Megjegyzés',
'fileViewer.edit': 'Szerkesztés',
'fileViewer.draw': 'Rajz',
'fileViewer.zoomOut': 'Kicsinyítés',
'fileViewer.zoomIn': 'Nagyítás',
'fileViewer.resetZoom': 'Nagyítás visszaállítása',
'fileViewer.reloadAria': 'Újratöltés',
'fileViewer.previousSlide': 'Előző dia',
'fileViewer.nextSlide': 'Következő dia',
'fileViewer.slideNavAria': 'Dianavigáció',
'fileViewer.present': 'Bemutatás',
'fileViewer.presentInTab': 'Ezen a lapon',
'fileViewer.presentFullscreen': 'Teljes képernyő',
'fileViewer.presentNewTab': 'Új lap',
'fileViewer.exitPresentation': 'Bemutató bezárása',
'fileViewer.shareLabel': 'Megosztás',
'fileViewer.exportPdf': 'Exportálás PDF-ként',
'fileViewer.exportPdfAllSlides': 'Exportálás PDF-ként (minden dia)',
'fileViewer.exportPptxBusy': 'Várj, amíg az aktuális kör befejeződik.',
'fileViewer.exportPptxHint':
'Küldj kérést az ügynöknek, hogy alakítsa át ezt a designt PPTX-szé.',
'fileViewer.exportPptxNa': 'A PPTX export itt nem elérhető.',
'fileViewer.exportZip': 'Letöltés .zip-ként',
'fileViewer.exportHtml': 'Exportálás önálló HTML-ként',
'fileViewer.exportJsx': 'Exportálás JSX-ként',
'fileViewer.exportReactHtml': 'Előnézet exportálása HTML-ként',
'fileViewer.saveAsTemplate': 'Mentés sablonként…',
'fileViewer.savingTemplate': 'Sablon mentése…',
'fileViewer.savedTemplate': 'Mentve „{name}" néven',
'fileViewer.savedTemplateFail': 'A sablon mentése nem sikerült — próbáld újra.',
'fileViewer.templateNamePrompt': 'Sablon neve',
'fileViewer.templateNameDefault': 'Cím nélküli sablon',
'fileViewer.templateDescPrompt':
'Rövid leírás (opcionális — mitől hasznos ez a sablon?)',
'fileViewer.deployToVercel': 'Telepítés Vercelre',
'fileViewer.redeployToVercel': 'Újratelepítés',
'fileViewer.deployingToVercel': 'Telepítés Vercelre…',
'fileViewer.preparingPublicLink': 'Nyilvános link előkészítése…',
'fileViewer.copyDeployLink': 'Link másolása',
'fileViewer.deployModalTitle': 'Telepítés Vercelre',
'fileViewer.deployModalSubtitle':
'Telepítsd ezt a HTML-artefaktumot Vercel Preview-ként a saját fiókodból.',
'fileViewer.vercelToken': 'Vercel token',
'fileViewer.vercelTokenGetLink': 'Vercel token kérése',
'fileViewer.vercelTokenPlaceholder': 'Illeszd be a Vercel tokenedet',
'fileViewer.vercelTokenReuseHint':
'A mentett tokent használjuk. Adj meg újat a cseréhez.',
'fileViewer.vercelTokenRequired': 'Előbb adj meg és ments el egy Vercel tokent.',
'fileViewer.vercelTeamId': 'Team ID',
'fileViewer.vercelTeamSlug': 'Team slug',
'fileViewer.optional': 'Opcionális',
'fileViewer.vercelPreviewOnly': 'A telepítések egyelőre csak Preview-k.',
'fileViewer.savingConfig': 'Mentés…',
'fileViewer.deployConfigSaveFailed': 'A Vercel beállítások nem menthetők.',
'fileViewer.deployFailed': 'A telepítés sikertelen. Ellenőrizd a Vercel beállításokat, és próbáld újra.',
'fileViewer.deployResultLabel': 'Telepített URL',
'fileViewer.deployLinkPreparingLabel': 'Nyilvános link várólistán',
'fileViewer.deployLinkDelayed':
'Az oldal telepítve. A Vercel még készíti a nyilvános linket.',
'fileViewer.deployLinkProtectedLabel': 'Vercel-védelem aktív',
'fileViewer.deployLinkProtected':
'Az oldal telepítve, de a Vercel hitelesítést kér ehhez az előnézeti linkhez. Kapcsold ki a Deployment Protection-t, vagy használj egyedi domaint.',
'fileViewer.retryLink': 'Újra most',
'questionForm.submit': 'Beküldés',
'questionForm.skip': 'Kihagyás',
'questionForm.locked': 'Megválaszolva',
'conv.switch': 'Beszélgetés váltása',
'conv.label': 'Beszélgetés',
'conv.heading': 'Beszélgetések',
'conv.new': '+ Új',
'conv.empty': 'Még nincs beszélgetés.',
'conv.untitled': 'Cím nélküli beszélgetés',
'conv.renameTooltip': 'Dupla kattintás az átnevezéshez',
'conv.delete': 'Beszélgetés törlése',
'conv.deleteConfirm': 'Törlöd a(z) „{title}" beszélgetést? Ez eltávolítja az üzeneteit.',
'agentPicker.label': 'Ügynök',
'agentPicker.modeChoose': 'Válassz végrehajtási módot',
'agentPicker.localCli': 'Helyi CLI',
'agentPicker.daemonOff': 'a daemon kikapcsolva',
'agentPicker.byok': 'Anthropic API · BYOK',
'agentPicker.selectAgent': 'Válassz egy észlelt code-agent CLI-t',
'agentPicker.noAgents': 'nincs ügynök a PATH-on',
'agentPicker.notInstalled': 'nincs telepítve',
'agentPicker.rescan': 'Helyi PATH újraellenőrzése ügynökökért',
'tool.openInTab': '{name} megnyitása lapon',
'tool.open': 'megnyitás',
'tool.todos': 'Feladatok',
'tool.write': 'Írás',
'tool.edit': 'Szerkesztés',
'tool.read': 'Olvasás',
'tool.bash': 'Bash',
'tool.glob': 'Glob',
'tool.grep': 'Grep',
'tool.fetch': 'Lekérés',
'tool.search': 'Keresés',
'tool.lines': '{n} sor',
'tool.changeSingular': 'változás',
'tool.changePlural': 'változás',
'tool.in': 'itt: {path}',
'tool.hide': 'elrejtés',
'tool.output': 'kimenet',
'tool.running': 'fut…',
'tool.error': 'hiba',
'tool.done': 'kész',
'assistant.role': 'Asszisztens',
'assistant.workingLabel': 'Dolgozik',
'assistant.doneLabel': 'Kész',
'assistant.unfinishedLabel': 'Befejezetlen munkával állt le',
'assistant.unfinishedSummary': '{n} feladat hátravan',
'assistant.unfinishedMore': '+{n} további',
'assistant.continueRemaining': 'Hátralévő feladatok folytatása',
'assistant.outTokens': '{n} ki',
'assistant.producedFiles': 'A körben létrehozott fájlok',
'assistant.openFile': 'Megnyitás',
'assistant.downloadFile': 'Letöltés',
'assistant.thinking': 'Gondolkodik',
'assistant.systemReminder': 'Rendszer-emlékeztető',
'assistant.waitingFirstOutput': 'Az első kimenetre vár',
'assistant.statusBootingAgent': 'Ügynök indítása',
'assistant.statusStarting': 'Indítás',
'assistant.statusRequesting': 'Kérés küldése',
'assistant.statusThinking': 'Gondolkodik',
'assistant.statusStreaming': 'Streamelés',
'assistant.slowHint':
'Tovább tart a szokásosnál. Az űrlap általában 510 mp alatt megjelenik — leállíthatod és újrafogalmazhatod.',
'assistant.verbEditing': 'Szerkesztés',
'assistant.verbWriting': 'Írás',
'assistant.verbReading': 'Olvasás',
'assistant.verbSearching': 'Keresés',
'assistant.verbRunning': 'Futtatás',
'assistant.verbTodos': 'Feladatok',
'assistant.verbFetching': 'Lekérés',
'assistant.verbCalling': 'Hívás',
'qf.answered': 'megválaszolva',
'qf.choose': 'Válassz…',
'qf.required': 'kötelező',
'qf.lockedSubmitted':
'Válaszok elküldve — az ügynök ezeket használja a folyamat további részében.',
'qf.lockedPrev': 'Ez az űrlap egy korábbi körből származik.',
'qf.hint':
'Válaszd, ami illik. Hagyd ki az opcionális mezőket, amik nem érdekesek — az ügynök ésszerű alapértékeket használ.',
'qf.submitDefault': 'Válaszok küldése',
'qf.submitDisabledTitle': 'Előbb töltsd ki a kötelező mezőket',
'qf.submitTitle': 'Válaszok küldése',
'qf.cardSelected': 'kiválasztva',
'qf.cardRefs': 'Hivatkozások:',
'qf.cardSampleText': 'Árvíztűrő tükörfúrógép · 0123',
'sketch.toolSelect': 'Kijelölés (nem aktív)',
'sketch.toolPen': 'Toll',
'sketch.toolText': 'Szöveg',
'sketch.toolRect': 'Téglalap',
'sketch.toolArrow': 'Nyíl',
'sketch.toolEraser': 'Radír',
'sketch.color': 'Szín',
'sketch.strokeSize': 'Vonalvastagság',
'sketch.undo': 'Visszavonás',
'sketch.clear': 'Törlés',
'sketch.close': 'Bezárás',
'sketch.textPrompt': 'Szöveg:',
};

View file

@ -1,8 +1,8 @@
// Supported UI locales. Adding a new locale requires creating a new
// dictionary in `./locales/` and registering it in `./index.tsx`.
export type Locale = 'en' | 'de' | 'zh-CN' | 'zh-TW' | 'pt-BR' | 'es-ES' | 'ru' | 'fa' | 'ja' | 'ko' | 'pl';
export type Locale = 'en' | 'de' | 'zh-CN' | 'zh-TW' | 'pt-BR' | 'es-ES' | 'ru' | 'fa' | 'ja' | 'ko' | 'pl' | 'hu';
export const LOCALES: Locale[] = ['en', 'de', 'zh-CN', 'zh-TW', 'pt-BR', 'es-ES', 'ru', 'fa', 'ja', 'ko', 'pl'];
export const LOCALES: Locale[] = ['en', 'de', 'zh-CN', 'zh-TW', 'pt-BR', 'es-ES', 'ru', 'fa', 'ja', 'ko', 'pl', 'hu'];
export const LOCALE_LABEL: Record<Locale, string> = {
'en': 'English',
@ -15,7 +15,8 @@ export const LOCALE_LABEL: Record<Locale, string> = {
'fa': 'فارسی',
'ja': '日本語',
'ko': '한국어',
'pl': 'Polski'
'pl': 'Polski',
'hu': 'Magyar'
};
// Translation dictionary shape — flat keys, dot-namespaced. We keep it