diff --git a/internal/ui/web/messages/tr.json b/internal/ui/web/messages/tr.json new file mode 100644 index 00000000..22dfbade --- /dev/null +++ b/internal/ui/web/messages/tr.json @@ -0,0 +1,622 @@ +{ + "$schema": "https://inlang.com/schema/inlang-message-format", + "meta_language": "Türkçe", + "meta_code": "TR", + "nav_dashboard": "Pano", + "palette_placeholder": "Komut yazın veya arayın…", + "palette_empty": "Sonuç yok", + "palette_group_pages": "Sayfalar", + "palette_group_sites": "Siteler", + "palette_group_services": "Servisler", + "palette_group_actions": "Eylemler", + "palette_action_link": "Site bağla…", + "palette_action_addService": "Servis ekle…", + "palette_action_heal": "{count} hatalı worker'ı onar", + "palette_action_checkUpdates": "Güncellemeleri kontrol et", + "palette_action_openDocs": "Belgeleri aç", + "palette_action_openCurrentSite": "Mevcut siteyi tarayıcıda aç", + "palette_action_toggleTheme": "Koyu/açık tema değiştir", + "palette_hint_navigate": "gezin", + "palette_hint_select": "seç", + "palette_hint_toggle": "değiştir", + "dashboard_title": "Pano", + "dashboard_subtitle": "Lerd'in çalışan her şeyi tek bakışta", + "dashboard_search": "Ara", + "dashboard_searchHint": "Siteleri, servisleri, eylemleri ara (⌘K veya /)", + "onboarding_title": "Lerd'e hoş geldiniz", + "onboarding_subtitle": "Yerel PHP geliştirme yöneticiniz. Üç adımda başlayın.", + "onboarding_park_title": "Bir dizini park edin", + "onboarding_park_body": "Park edilen dizin altındaki tüm projeler oluşturuldukça otomatik bağlanır.", + "onboarding_link_title": "Bir proje bağlayın", + "onboarding_link_body": "Bir yerde Laravel, Symfony veya WordPress siteniz var mı? Doğrudan bağlayın.", + "onboarding_link_cta": "Site bağla", + "onboarding_service_title": "Bir servis ekleyin", + "onboarding_service_body": "Hazır ön ayarlardan MySQL, Redis, Mailpit ve daha fazlasını ayağa kaldırın.", + "onboarding_service_cta": "Ön ayarlara göz at", + "onboarding_docs": "Belgeleri aç", + "onboarding_dismiss": "Kapat", + "onboarding_dismissHint": "Bu kartı kalıcı olarak gizlemek için kapatın", + "onboarding_loopbackOnly": "Bu eylemi kullanmak için Lerd'i yerel olarak çalıştırın.", + "dashboard_hero_allGood": "Her şey yolunda · {sitesRunning}/{sitesTotal} site · {servicesActive} servis aktif", + "dashboard_hero_workersFailing": "{count} worker hatalı", + "dashboard_hero_coreDown": "{components} çalışmıyor", + "dashboard_hero_coreDownHint": "Sitelerin yanıt vermesi için çekirdek servisler gereklidir.", + "dashboard_hero_lerdUpdate": "Lerd v{version} sürümü mevcut", + "dashboard_hero_serviceUpdates": "{count} servis güncellemesi mevcut", + "dashboard_hero_updatesMixed": "Lerd v{lerd} ve {count} servis güncellemesi mevcut", + "dashboard_hero_review": "İncele", + "dashboard_hero_openSystem": "Sistemi aç", + "dashboard_health_title": "Sistem sağlığı", + "dashboard_health_healthy": "Sağlıklı", + "dashboard_health_attention": "Dikkat", + "dashboard_health_problem": "Sorun", + "dashboard_health_loading": "Kontrol ediliyor…", + "dashboard_health_dns": "DNS çözümleyici (*.{tld})", + "dashboard_health_nginx": "Nginx", + "dashboard_health_watcher": "Dosya izleyici", + "dashboard_health_php": "PHP-FPM", + "dashboard_health_node": "Node.js", + "dashboard_health_open": "Sistemi aç →", + "dashboard_lerd_title": "Lerd", + "dashboard_lerd_manage": "Yönet →", + "dashboard_lerd_viewChangelog": "Yenilikleri gör", + "dashboard_lerd_hideChangelog": "Değişiklik günlüğünü gizle", + "dashboard_sites_title": "Siteler", + "dashboard_sites_summary": "{running}/{total} çalışıyor", + "dashboard_sites_running": "Çalışıyor", + "dashboard_sites_paused": "Duraklatıldı", + "dashboard_sites_failing": "Hatalı", + "dashboard_sites_frameworks": "Framework'ler", + "dashboard_sites_link": "Site bağla", + "dashboard_sites_open": "Siteleri aç →", + "dashboard_sites_openInBrowser": "Tarayıcıda aç", + "dashboard_sites_worktrees": "{count} worktree", + "dashboard_services_title": "Servisler", + "dashboard_services_summary": "{running}/{total} aktif", + "dashboard_services_empty": "Çalışan servis yok.", + "dashboard_services_updates": "{count} güncelleme mevcut", + "dashboard_services_add": "Ekle", + "dashboard_services_open": "Servisleri aç →", + "dashboard_workers_title": "Worker'lar", + "dashboard_workers_healthy": "Tümü sağlıklı", + "dashboard_workers_failing": "{count} hatalı", + "dashboard_workers_summary": "{active}/{total} aktif", + "dashboard_workers_none": "Yok", + "dashboard_workers_empty": "Yapılandırılmış queue, schedule veya framework worker'ı yok.", + "dashboard_workers_healAll": "Tümünü onar", + "dashboard_workers_healing": "Onarılıyor: {done} / {total} ({pct}%)", + "dashboard_workers_allGood": "Onarılacak bir şey yok.", + "dashboard_resources_title": "Kaynaklar", + "dashboard_resources_loading": "Konteyner istatistikleri okunuyor…", + "dashboard_resources_unavailable": "Konteyner istatistikleri mevcut değil.", + "dashboard_resources_cpu": "CPU", + "dashboard_resources_memory": "Bellek", + "dashboard_resources_ofHost": "/", + "dashboard_resources_top": "En çok tüketenler", + "dashboard_activity_title": "Son etkinlikler", + "dashboard_activity_empty": "Henüz etkinlik yok — olaylar değiştikçe burada görünecek.", + "activity_site_linked": "{subject} bağlandı", + "activity_site_removed": "{subject} bağlantısı kesildi", + "activity_site_paused": "{subject} duraklatıldı", + "activity_site_resumed": "{subject} devam ettirildi", + "activity_site_running": "{subject} çalışıyor", + "activity_site_stopped": "{subject} durduruldu", + "activity_service_added": "{subject} kuruldu", + "activity_service_removed": "{subject} kaldırıldı", + "activity_service_active": "{subject} aktif", + "activity_service_inactive": "{subject} durduruldu", + "activity_service_update": "{subject} için güncelleme mevcut (v{version})", + "activity_service_version": "{subject} {version} sürümüne güncellendi", + "activity_worker_failed": "{subject} sitesindeki {worker} worker'ı başarısız oldu", + "activity_worker_healed": "{subject} worker'ı kurtarıldı", + "time_now": "az önce", + "time_min_ago": "{n}dk önce", + "time_hour_ago": "{n}sa önce", + "time_day_ago": "{n}g önce", + "nav_sites": "Siteler", + "nav_services": "Servisler", + "nav_system": "Sistem", + "nav_apps": "Uygulamalar", + "nav_documentation": "Belgeler", + "common_back": "Geri", + "common_close": "Kapat", + "common_moreActions": "Daha fazla eylem", + "services_update": "Güncelle", + "services_updateTo": "{tag} sürümüne güncelle", + "services_upgrade": "Yükselt", + "services_upgradeTo": "Yükselt → {tag}", + "services_migrate": "Geçir", + "services_migrateTo": "Geçir → {tag}", + "services_rollback": "Geri Al", + "services_rollbackTo": "Geri Al → {tag}", + "services_updateAvailable": "Güncelleme mevcut", + "services_updateAvailableTo": "Güncelleme mevcut: {tag}", + "services_upgradeWarning": "{tag} sürümüne yükselt (manuel veri geçişi gerekebilir, önce servis belgelerini inceleyin)", + "services_migrateExplain": "{tag} sürümüne dump+restore ile geçir (veri uyumsuz atlamalar için Yükselt'ten daha güvenli)", + "services_rollbackExplain": "{tag} sürümüne geri al (son güncellemeden önce çalışan imaj)", + "common_cancel": "İptal", + "common_save": "Kaydet", + "common_refresh": "Yenile", + "common_clear": "Temizle", + "common_reconnect": "Yeniden bağlan", + "common_live": "canlı", + "common_disconnected": "bağlantı kesildi", + "common_terminal": "Terminal", + "common_edit": "Düzenle", + "common_remove": "Kaldır", + "common_add": "Ekle", + "common_install": "Kur", + "common_installing": "Kuruluyor...", + "common_installed": "Kuruldu", + "common_loading": "Yükleniyor...", + "common_open": "Aç", + "common_openInNewTab": "Yeni sekmede aç", + "common_start": "Başlat", + "common_stop": "Durdur", + "common_restart": "Yeniden başlat", + "common_enable": "Etkinleştir", + "common_disable": "Devre dışı bırak", + "common_enabled": "Etkin", + "common_disabled": "Devre dışı", + "common_running": "Çalışıyor", + "common_stopped": "Durdu", + "common_failed": "Başarısız", + "common_done": "Tamam", + "common_copy": "Kopyala", + "common_copied": "Kopyalandı!", + "common_default": "varsayılan", + "common_selectItem": "Bir {item} seçin", + "common_noItems": "{items} yok", + "common_sites": "site", + "common_site": "site", + "theme_light": "açık", + "theme_auto": "oto", + "theme_dark": "koyu", + "sites_title": "Siteler", + "sites_empty": "Henüz site yok", + "sites_emptyHint": "Şunu çalıştırın: {cmd}", + "sites_select": "Bir site seçin", + "sites_paused": "Duraklatıldı", + "sites_pausedDetail_title": "Bu site duraklatıldı", + "sites_pausedDetail_hint": "Site duraklatıldığı sürece Nginx {domain} adresini sunmuyor. Tekrar çevrimiçi yapmak için devam ettirin.", + "sites_pausedDetail_action": "Siteyi devam ettir", + "sites_pausedDetail_busy": "Devam ettiriliyor…", + "sites_linkNew": "Yeni site bağla", + "sites_manageDomains": "Domain'leri yönet", + "sites_pause": "Duraklat", + "sites_resume": "Devam ettir", + "sites_unlink": "Bağlantıyı kes", + "sites_openInBrowser": "Tarayıcıda aç", + "sites_openInTerminal": "Terminalde aç", + "sites_restartContainer": "Konteyneri yeniden başlat", + "sites_workerFailing": "Worker hatalı", + "sites_confirmUnlink": "{domain} bağlantısı kesilsin mi? Site nginx tarafından artık sunulmayacak.", + "sites_unlinkFailed": "Bağlantı kesme başarısız: {error}", + "sites_restartFailed": "Yeniden başlatma başarısız: {error}", + "sites_extraMore": "+{count} daha", + "sites_gitWorktrees": "Git Worktree'leri", + "sites_tabs_appLogs": "Uygulama Logları", + "sites_tabs_phpFpm": "PHP-FPM", + "sites_tabs_frankenphp": "FrankenPHP", + "sites_tabs_container": "Konteyner", + "sites_tabs_queue": "Kuyruk", + "sites_tabs_horizon": "Horizon", + "sites_tabs_stripe": "Stripe", + "sites_tabs_schedule": "Zamanlayıcı", + "sites_tabs_reverb": "Reverb", + "sites_controls_https": "HTTPS", + "sites_controls_lan": "LAN", + "sites_controls_queue": "Kuyruk", + "sites_controls_horizon": "Horizon", + "sites_controls_schedule": "Zamanlayıcı", + "sites_controls_reverb": "Reverb", + "sites_controls_httpsToggle_on": "HTTPS'i devre dışı bırak", + "sites_controls_httpsToggle_off": "HTTPS'i etkinleştir", + "sites_controls_lanToggle_on": "LAN paylaşımını durdur", + "sites_controls_lanToggle_off": "LAN'da paylaş", + "sites_controls_queueToggle_on": "Kuyruk worker'ını durdur", + "sites_controls_queueToggle_off": "Kuyruk worker'ını başlat", + "sites_controls_queueToggle_failing": "Kuyruk worker'ı hatalı, yeniden başlatmak için tıklayın", + "sites_controls_horizonToggle_on": "Horizon'u durdur", + "sites_controls_horizonToggle_off": "Horizon'u başlat", + "sites_controls_horizonToggle_failing": "Horizon hatalı, yeniden başlatmak için tıklayın", + "sites_controls_scheduleToggle_on": "Zamanlayıcıyı durdur", + "sites_controls_scheduleToggle_off": "Zamanlayıcıyı başlat", + "sites_controls_reverbToggle_on": "Reverb'i durdur", + "sites_controls_reverbToggle_off": "Reverb'i başlat", + "sites_controls_stripe": "Stripe", + "sites_controls_stripeToggle_on": "Stripe dinleyicisini durdur", + "sites_controls_stripeToggle_off": "Stripe dinleyicisini başlat", + "sites_controls_vite": "Vite", + "sites_controls_viteToggle_on": "Vite dev sunucusunu durdur", + "sites_controls_viteToggle_off": "Vite dev sunucusunu başlat", + "sites_controls_phpPlaceholder": "— PHP —", + "sites_controls_nodeDefault": "Varsayılan Node", + "sites_controls_versionChangeFailed": "Sürüm değiştirme başarısız: {error}", + "sites_controls_inheritsFromMain": "Main'den miras alıyor", + "sites_controls_inheritedSuffix": "(miras alınmış)", + "sites_controls_dbIsolated": "İzole DB", + "sites_controls_dbShareParent": "Üst veritabanını paylaş", + "sites_controls_dbIsolatedTitle": "Worktree DB: {db}", + "sites_controls_dbDropConfirm": "Bu worktree için izole veritabanı silinsin mi? Burada uygulanan migration'lar kaybolacak.", + "sites_controls_dbToggleFailed": "Worktree DB değiştirme başarısız: {error}", + "sites_controls_dbIsolateFailed": "Worktree DB izolasyonu başarısız: {error}", + "sites_controls_workerToggle_on": "{label} durdur", + "sites_controls_workerToggle_off": "{label} başlat", + "sites_badges_xdebug": "Xdebug", + "sites_badges_xdebugOff": "kapalı", + "sites_badges_xdebugOn": "Xdebug {mode}", + "sites_badges_xdebugDisabled": "Xdebug kapalı", + "sites_badges_xdebugClickToManage": "yönetmek için tıklayın", + "sites_badges_frankenphp": "FrankenPHP", + "sites_badges_frankenphpWorker": "worker", + "sites_badges_frankenphpWorkerTitle": "FrankenPHP worker modu", + "sites_appLogs_waiting": "Log çıktısı bekleniyor...", + "sites_appLogs_empty": "Log kaydı bulunamadı.", + "sites_appLogs_noFilesWorktree": "Bu worktree'in storage/logs dizininde henüz log dosyası yok. Uygulama bir log yazar yazmaz burada görünecek.", + "sites_appLogs_noFiles": "storage/logs'da henüz log dosyası yok. Uygulama bir log yazar yazmaz burada görünecek.", + "sites_appLogs_search": "Logları ara...", + "sites_appLogs_latest": "En son", + "sites_appLogs_all": "Tümü", + "services_title": "Servisler", + "services_empty": "Çalışan servis yok", + "services_select": "Bir servis seçin", + "services_addPreset": "Bir servis ön ayarı ekle", + "services_hasDependencies": "Bağımlılıkları var", + "services_dependsOn": "bağımlı:", + "services_groups_queues": "Kuyruklar", + "services_groups_horizon": "Horizon", + "services_groups_schedules": "Zamanlayıcılar", + "services_groups_reverb": "Reverb", + "services_groups_stripe": "Stripe", + "services_groups_workers": "Worker'lar", + "services_pin": "Sabitle", + "services_pinned": "Sabitlendi", + "services_pinTitle": "Sabitle, kullanılmadığında otomatik durdurma", + "services_unpinTitle": "Sabitlemeyi kaldır, kullanılmadığında otomatik durdurmaya izin ver", + "services_removeCustom": "Bu özel servisi kaldır", + "services_dashboard": "Pano", + "services_openConnection": "Bağlantı URL'sini aç", + "services_openAdmin": "{name} aç", + "services_labels_queueWorker": "Kuyruk worker'ı", + "services_labels_horizon": "Horizon", + "services_labels_stripeListener": "Stripe dinleyicisi", + "services_labels_scheduler": "Zamanlayıcı", + "services_labels_reverb": "Reverb", + "services_labels_vite": "Vite", + "services_labels_worker": "{name} worker", + "services_env_connect": "Bağlan", + "services_env_connectHint": "Host'unuzdan {loopback4} veya {loopback6} kullanın. Konteynerlerin içinden aşağıdaki .env bloğunda gösterilen hostname'i kullanın.", + "services_env_title": ".env", + "services_env_none": "Bu servisin env değişkeni yok.", + "services_banner_addPreset": "{name} eklensin mi?", + "services_banner_description": "{description}. {svcName} servisini otomatik başlatan bir özel servis olarak kurulur.", + "services_banner_dismiss": "Kapat, bunu Servisler + düğmesinden hâlâ ekleyebilirsiniz", + "services_banner_installFirst": "önce {deps} kur", + "services_preset_title": "Servis ön ayarı ekle", + "services_preset_subtitle": "Hazır, isteğe bağlı servisler. Birini kurmak Servisler sekmesinden başlatabileceğiniz, durdurabileceğiniz veya kaldırabileceğiniz özel bir servis olarak ekler.", + "services_preset_allInstalled": "Tüm hazır ön ayarlar kuruldu.", + "services_preset_installedTag": "{tags} kuruldu", + "services_preset_dashboard": "pano:", + "services_preset_dependsOn": "bağımlı:", + "services_preset_installFirst": "önce {deps} kur", + "services_preset_phase_add": "Ekle", + "services_preset_phase_adding": "Ekleniyor...", + "services_preset_phase_installingConfig": "Yapılandırma yazılıyor...", + "services_preset_phase_startingDep": "{dep} başlatılıyor...", + "services_preset_phase_startingDeps": "Bağımlılıklar başlatılıyor...", + "services_preset_phase_pullingImage": "İmaj çekiliyor...", + "services_preset_phase_startingUnit": "Servis başlatılıyor...", + "services_preset_phase_waitingReady": "Hazır olması bekleniyor...", + "system_title": "Sistem", + "system_dns": "DNS", + "system_nginx": "Nginx", + "system_watcher": "İzleyici", + "system_phpFpm": "PHP-FPM", + "system_nodeJs": "Node.js", + "system_lerd": "Lerd", + "system_system": "sistem", + "system_container": "Konteyner", + "system_tld": "TLD", + "system_sitesUsingVersion": "Bu sürümü kullanan siteler", + "system_noSitesUsingPhp": "PHP {version} sürümünü kullanan site yok.", + "system_noSitesUsingNode": "Node {version} sürümünü kullanan site yok.", + "system_startLerd": "Lerd'i başlat", + "system_stopLerd": "Lerd'i durdur", + "system_dns_ok": "Tamam", + "system_dns_failed": "Başarısız", + "system_dns_fixHint": "{start} deneyin veya DNS'i düzeltmek için {cmd} çalıştırın.", + "system_dns_quietDefault": "dnsmasq varsayılan olarak sessizdir. Çözümlenen sorguları burada görmek için {path} dosyasına {option} ekleyin ve lerd-dns'i yeniden başlatın.", + "system_watcher_description": "Park edilen dizinleri, site dosyalarını, git worktree'lerini ve DNS sağlığını izler. Varsayılan olarak WARN ve ERROR olaylarını loglar; ayrıntılı çıktı için servis ortamında {env} ayarlayın.", + "system_watcher_quiet": "Henüz olay yok, izleyici sessizce çalışıyor.", + "system_php_xdebug": "Xdebug", + "system_php_xdebugHint": "Değişiklikte FPM'i yeniden başlatır", + "system_php_sites": "Siteler", + "system_php_setDefault": "Varsayılan yap", + "system_php_stopWarn": "{count} site bu sürümü kullanıyor, çalışmayı durduracaklar", + "system_php_removeWarn": "{count} site hâlâ bu sürümü kullanıyor", + "system_php_stopTitle": "FPM'i durdur", + "system_php_startTitle": "FPM'i başlat", + "system_php_removeTitle": "Bu sürümü kaldır", + "system_node_setDefault": "Varsayılan yap", + "system_node_defaultVersion": "Varsayılan sürüm", + "system_node_managedBySystem": "Sistem Node.js kullanılıyor.", + "system_node_managedBySystemHint": "Buradan Node.js sürümleri kurmak veya değiştirmek için terminalde `lerd install` çalıştırın ve lerd-yönetimli Node'u kabul edin.", + "system_node_cannotRemove": "Kaldırılamaz, siteler bu sürümü kullanıyor", + "system_node_cannotRemoveDefault": "Varsayılan sürüm kaldırılamaz", + "system_node_cannotRemoveSystem": "Node sistem tarafından yönetiliyor", + "system_node_removeTitle": "Bu sürümü kaldır", + "system_node_noneInstalled": "Henüz kurulu Node sürümü yok.", + "system_node_installNewTitle": "Yeni bir sürüm kur", + "system_node_installNewHint": "Ana sürüm (örn. {major}) veya belirli bir sürüm (örn. {specific}) girin. fnm aracılığıyla kurulur.", + "system_node_installPlaceholder": "örn. 22", + "system_node_installed": "Kuruldu!", + "system_node_installFailed": "Kurulum başarısız", + "system_lerd_updateTag": "güncelleme", + "system_lerd_updateAvailable": "Güncelleme mevcut", + "system_lerd_latest": "En son sürümü kullanıyorsunuz.", + "system_lerd_available": "{version} mevcut", + "system_lerd_updateHint": "Lerd, sudo soracak ve indirme ilerlemesini gösterecek interaktif terminal gerektiren kurucusunu yeniden çalıştırarak güncelleme yapar. Güncelleme komutu önceden doldurulmuş bir terminal açmak için aşağıya tıklayın veya herhangi bir terminalde {cmd} çalıştırın.", + "system_lerd_openTerminal": "Terminal aç ve güncelle", + "system_lerd_openingTerminal": "Açılıyor...", + "system_lerd_whatsNew": "Yenilikler", + "system_lerd_checkForUpdates": "Güncellemeleri kontrol et", + "system_lerd_checking": "Kontrol ediliyor...", + "system_lerd_starBlurb": "Lerd'i faydalı buluyor musunuz?", + "system_lerd_starCta": "GitHub'da yıldız verin", + "system_lerd_starAfter": "böylece başkaları da keşfedebilir.", + "system_workerMode_listLabel": "Worker çalışma zamanı", + "system_workerMode_title": "Worker çalışma zamanı", + "system_workerMode_execBadge": "Exec modu", + "system_workerMode_containerBadge": "Konteyner modu", + "system_workerMode_description": "macOS'ta framework worker'larının (queue, schedule, horizon, reverb, özel) nasıl başlatıldığını kontrol eder. Daha düşük bellek için varsayılan exec modudur.", + "system_workerMode_exec_title": "Exec (önerilen)", + "system_workerMode_exec_description": "Her worker için paylaşılan FPM konteynerine bir podman exec, pid-file dedup koruyucu ile launchd tarafından denetlenir. Worker başına sıfıra yakın bellek yükü. Linux profiline uyar.", + "system_workerMode_container_title": "Konteyner", + "system_workerMode_container_description": "Her worker için FPM imajından üretilen ayrı bir konteyner. Daha yüksek bellek (özellikle kendi havuzunu denetleyen Horizon için), ama podman'ın kendi yeniden başlatma politikasıyla 1:1 supervisor sınırı.", + "system_workerMode_note_label": "Not:", + "system_workerMode_note_body": "Modu değiştirmek tüm aktif worker'ları eski şekliyle durdurur, disk üzerindeki artefaktları temizler ve yeni şekliyle yeniden başlatır. Diğer lerd servisleri (FPM, nginx, DNS, dahili servisler) etkilenmez.", + "system_workerMode_confirm_title": "Worker çalışma zamanı değiştirilsin mi?", + "system_workerMode_confirm_body": "{from} modundan {to} moduna geçilsin mi? Her aktif worker durdurulacak, disk üzerindeki artefaktları temizlenecek ve yeni şekliyle yeniden başlatılacak.", + "system_workerMode_confirm_hint": "FPM, nginx, DNS ve dahili servisler etkilenmez. Bu birkaç saniye sürebilir.", + "system_workerMode_apply_confirm": "Geçiş yap ve worker'ları yeniden başlat", + "system_workerMode_apply_running": "Worker'lar yeniden başlatılıyor…", + "system_workerMode_apply_failed": "Worker çalışma zamanı değiştirilemedi. Worker'lar değişmedi.", + "system_workerMode_progress_savingConfig": "Yapılandırma kaydediliyor…", + "system_workerMode_progress_sweeping": "Sahipsiz konteynerler temizleniyor…", + "system_workerMode_progress_stopping": "{unit} durduruluyor…", + "system_workerMode_progress_cleaning": "{unit} temizleniyor…", + "system_workerMode_progress_starting": "{unit} başlatılıyor…", + "system_autostart_title": "Otomatik başlatma", + "system_autostart_enabled": "etkin", + "system_autostart_disabled": "devre dışı", + "system_autostart_description": "Etkinleştirildiğinde, lerd-ui ve lerd-watcher her oturum açıldığında otomatik başlar.", + "system_autostart_toggleOn": "Otomatik başlatmayı etkinleştir", + "system_autostart_toggleOff": "Otomatik başlatmayı devre dışı bırak", + "system_lan_title": "LAN erişimi", + "system_lan_exposed": "açık", + "system_lan_loopback": "yalnızca loopback", + "system_lan_exposedDescription": "Siteler LAN'daki diğer cihazlardan {ip} adresinde erişilebilir. dnsmasq çözümleyici {pattern} sorgularını bu adresle yanıtlar. Veritabanı, önbellek ve mail konteynerleri yalnızca loopback'te kalır ({loop4} ve dual-stack host'larda {loop6}), Laravel uygulamaları onlara dahili köprü üzerinden ulaşır, ağa açmaya gerek yok.", + "system_lan_loopbackDescription": "Lerd yalnızca loopback'e bağlı ({loop4} ve dual-stack host'larda {loop6}), ağdaki diğer cihazlara görünmez. Güvenilmeyen wifi (kafeler, konferans ağları) için güvenli. Sitelerinizi güvenilir bir LAN'daki başka bir makineyle paylaşmak için açın.", + "system_lan_macosWarning": "macOS: Bu anahtar yalnızca DNS çözümlemeyi kontrol eder ({pattern} → 127.0.0.1 veya LAN IP). 80 ve 443 portları gvproxy sınırlaması nedeniyle her zaman LAN'dan erişilebilir, Podman Machine ağ katmanı ayrıcalıklı portlar için IP-spesifik bağlamayı desteklemez. Servis portları (MySQL, Redis vb.) düzgün şekilde 127.0.0.1'e kısıtlıdır.", + "system_lan_expose": "LAN'a aç", + "system_lan_exposing": "Açılıyor...", + "system_lan_stop": "LAN erişimini durdur", + "system_lan_disabling": "Devre dışı bırakılıyor...", + "system_lan_progress_exposing": "LAN'a açılıyor", + "system_lan_progress_stopping": "LAN erişimi durduruluyor", + "system_lan_progress_starting": "Başlatılıyor...", + "system_lan_progress_doneExposed": "Lerd artık {ip} adresinde LAN'a açık.", + "system_lan_progress_doneHidden": "Lerd yalnızca loopback'e geri döndü.", + "system_lan_progress_working": "Çalışıyor...", + "system_lan_postExpose_resolver": "DNS çözümleyici {unit} aracılığıyla {addr} (UDP+TCP) üzerinde açıldı.", + "system_lan_postExpose_dnsmasq": "dnsmasq artık {pattern} sorgularını {ip} ile yanıtlıyor.", + "system_lan_postExpose_firewall": "Erişim vermek istediğiniz cihazlardan 5300 portuna güvenlik duvarınızın izin verdiğinden emin olun.", + "system_lan_remote_title": "Uzak bir makine sağla", + "system_lan_remote_hint": "Makinenin lerd kök CA'sını kurmak ve DNS çözümleyicisini tek seferde yapılandırmak için kullanabileceği tek kullanımlık bir kod (15 dk geçerlilik) oluşturun.", + "system_lan_remote_generate": "Kurulum kodu oluştur", + "system_lan_remote_generating": "Oluşturuluyor...", + "system_lan_remote_newCode": "Yeni bir kod oluştur", + "system_lan_remote_codeLabel": "Kod: {code}", + "system_lan_remote_expiresIn": "{time} içinde sona erecek", + "system_lan_remote_runOnMachine": "Makinede şunu çalıştırın:", + "system_lan_remote_bullet1": "Eksikse {mkcert} kurar ve HTTPS sitelerinin doğrulanması için lerd kök CA'sına güven ekler.", + "system_lan_remote_bullet2": "Aktif çözümleyiciyi tespit eder (NetworkManager+dnsmasq, systemd-resolved, bağımsız dnsmasq veya macOS {resolver}) ve {test} sorgularını bu sunucunun DNS'ine 5300 portunda yönlendirir.", + "system_lan_remote_bullet3": "Tamamen LAN üzerinden çalışır, hiçbir trafik ağınızdan dışarı çıkmaz.", + "system_lan_remote_copyTooltip_copy": "Panoya kopyala", + "system_lan_remote_copyTooltip_copied": "Kopyalandı!", + "system_lan_remote_footer": "Uç nokta RFC 1918 kaynak IP'leriyle kısıtlıdır ve kod tek kullanımlıktır. Yeni bir kod için tekrar {generate}'a tıklayın.", + "system_remote_title": "Uzak pano erişimi", + "system_remote_status_active": "aktif", + "system_remote_status_inert": "atıl", + "system_remote_status_disabled": "devre dışı", + "system_remote_description": "Devre dışı bırakıldığında, yalnızca loopback ({loop4} ve {loop6}) panoya ulaşabilir. LAN istemcilerine HTTP Basic auth ile erişim vermek için etkinleştirin. Loopback her zaman kimlik doğrulamayı atlar, böylece bu makineden kendinizi asla kilitleyemezsiniz.", + "system_remote_usernameRow": "Kullanıcı adı: {username}", + "system_remote_inertWarning": "Kimlik bilgileri kaydedildi ama atıl, LAN erişimi kapalı, dolayısıyla LAN istemcileri hâlâ 403 alır. Aktif yapmak için {cmd} çalıştırın (veya yukarıdaki {btn} düğmesine tıklayın).", + "system_remote_disable": "LAN erişimini devre dışı bırak", + "system_remote_enable": "LAN erişimini etkinleştir", + "system_remote_enableDisabledHint": "Önce lan:expose çalıştırın, onsuz pano yalnızca loopback'tedir ve kimlik bilgileri atıl olur.", + "system_remote_exposeFirst": "Önce Lerd'i LAN'a açın. Pano kimlik bilgileri yalnızca pano diğer cihazlardan erişilebilir olduğunda anlamlıdır.", + "system_remoteModal_title": "Panoya LAN erişimini etkinleştir", + "system_remoteModal_subtitle": "Bir kullanıcı adı ve şifre belirleyin. LAN istemcileri panoya ulaşmak için bunları HTTP Basic auth aracılığıyla sunmak zorunda kalacak. Bu makineden yapılan loopback erişimi her zaman kapıyı atlar, kendinizi asla kilitleyemezsiniz.", + "system_remoteModal_username": "Kullanıcı adı", + "system_remoteModal_password": "Şifre", + "system_remoteModal_enable": "LAN erişimini etkinleştir", + "system_remoteModal_enabling": "Etkinleştiriliyor...", + "system_language_title": "Dil", + "system_language_description": "Arayüz dili. Varsayılan olarak tarayıcı dilinizdir; İngilizce'ye geri döner.", + "apps_empty": "Aktif servis panosu yok. Burada görmek için panolu bir servis başlatın (örn. mailpit, rustfs, phpMyAdmin).", + "domains_title": "Domain'leri Yönet", + "domains_add": "Domain ekle", + "domains_primary": "birincil", + "domains_flash_added": "Domain eklendi", + "domains_flash_updated": "Domain güncellendi", + "domains_flash_removed": "Domain kaldırıldı", + "domains_flash_removedYaml": ".lerd.yaml dosyasından kaldırıldı", + "domains_cannotRemoveLast": "Son domain kaldırılamaz", + "domains_conflict_usedBy": "{owner} tarafından kullanılıyor", + "domains_conflict_removeYaml": ".lerd.yaml'dan kaldır", + "link_title": "Site Bağla", + "link_directory": "Dizin", + "link_noSubdirs": "Alt dizin yok", + "link_linking": "Bağlanıyor...", + "link_linkThisDir": "Bu Dizini Bağla", + "link_waitingOutput": "Çıktı bekleniyor...", + "link_failed": "Bağlama başarısız", + "workers_health_banner_title": "{count} worker hatalı", + "workers_health_banner_starting": "{unit} başlatılıyor…", + "workers_health_banner_heal": "Onar", + "workers_health_banner_healing": "Onarılıyor…", + "workers_health_banner_dismiss": "Kapat", + "workers_health_banner_progress": "Onarılıyor: {done} / {total}…", + "nav_dumps": "Dump'lar", + "dumps_searchPlaceholder": "Etiket, dosya, değer ara…", + "dumps_filter_allSites": "Tüm siteler", + "dumps_filter_allContexts": "Tüm bağlamlar", + "dumps_filter_web": "Web (fpm)", + "dumps_filter_cli": "CLI", + "dumps_unknownSite": "(bilinmiyor)", + "dumps_disabled_title": "Dump köprüsü devre dışı", + "dumps_disabled_body": "Bir dump() veya dd() tetikleyin, yakalama açık olduğunda burada görünecek.", + "dumps_enable": "Dump köprüsünü etkinleştir", + "dumps_enabling": "Etkinleştiriliyor…", + "dumps_waiting_title": "Dump'lar bekleniyor…", + "dumps_waiting_body": "PHP kodunuzda bir dump() veya dd() tetikleyin, burada görünecek.", + "dumps_groupCount": "{count} dump", + "dumps_truncated": "uyarı: dumper sınırlarıyla kesildi", + "dumps_toggle_busy": "Dump köprüsü değiştiriliyor…", + "dumps_toggle_on": "Dump köprüsü açık, devre dışı bırakmak için tıklayın", + "dumps_toggle_off": "Dump köprüsü kapalı, etkinleştirmek için tıklayın", + "dumps_bridge_title": "Dump köprüsü", + "dumps_bridge_capturing": "Yakalanıyor", + "dumps_bridge_off": "Kapalı", + "dumps_bridge_listenerUp": "açık", + "dumps_bridge_listenerDown": "kapalı", + "dumps_bridge_listener": "Dinleyici {addr} adresinde {state}.", + "dumps_bridge_buffered": "Tamponlanmış: {count}", + "dumps_bridge_bufferedLast": "son {time}", + "dumps_bridge_passthrough": "Yanıta da yazdır (passthrough)", + "dumps_bridge_passthroughRestarting": "FPM konteynerleri yeniden başlatılıyor…", + "dumps_bridge_passthroughHint": "Değiştirmek her lerd-php*-fpm birimini yeniden başlatır.", + "dumps_bridge_description": "PHP-FPM ve CLI'dan her dump() / dd() çağrısını panoya yakalar.", + "tinker_mode_tinkerTitle": "Laravel'i artisan tinker üzerinden bootstrap eder", + "tinker_mode_phpTitle": "Düz PHP çalışma zamanı", + "tinker_clearTitle": "Editör ve çıktıyı temizle", + "tinker_runTitle": "Çalıştır (Ctrl+Enter)", + "tinker_run": "Çalıştır", + "tinker_running": "Çalışıyor…", + "tinker_copyEditorTitle": "Editör içeriğini panoya kopyala", + "tinker_copyOutputTitle": "Bu çıktıyı kopyala", + "tinker_placeholder": "// Birini deneyin:\n// echo 1 + 1;\n// User::count();\n// collect([1,2,3])->sum();\n", + "tinker_noOutput": "(çıktı yok)", + "sites_tabs_overview": "Genel bakış", + "sites_tabs_tinker": "Tinker", + "services_tabs_logs": "Loglar", + "services_portConflictTitle": "{ports} portu host'ta zaten kullanımda. Çakışan süreci durdurun veya lerd portunu değiştirin. İşletim sisteminize göre find komutu için `lerd doctor` çalıştırın.", + "services_reinstall_action": "Yeniden kur", + "services_reinstall_withReset": "Yeniden kur + veri sıfırla", + "services_reinstall_submitting": "Yeniden kuruluyor…", + "services_reinstall_title": "{name} yeniden kur", + "services_reinstall_body": "{name} servisini mevcut sürümde durdurur, kaldırır ve yeniden kurar. Bir servis güncellemesinin yeni imajla uyumsuz veri ürettiğinde kullanın.", + "services_reinstall_resetLabel": "Temiz duruma sıfırla (veriyi kaldır)", + "services_reinstall_resetHint": "Veri dizinini bir kenara taşır ({name}.pre-remove- olarak kurtarılabilir) ve {count} bağlı site için yeni servis üzerinde veritabanlarını veya kovaları yeniden oluşturur.", + "services_reinstall_wipeWarn": "Veri silinecek. Yeniden kurulum bağlı site(ler) için boş veritabanları veya kovalar yeniden oluşturacak, ancak önceki içerikleri kaybolur (kenara taşınan kopya manuel olarak geri yüklenebilir).", + "services_reinstall_menuTitle": "Mevcut sürümde durdur, kaldır ve yeniden kur. İsteğe bağlı veri sıfırlama veri dizinini siler ve bağlı siteleri yeniden sağlar.", + "services_confirm_typeBefore": "Onaylamak için yazın:", + "services_confirm_typeAfter": "", + "services_delete_title": "{name} kaldır", + "services_delete_dependentsWarn": "{count} site bu servise bağımlı.", + "services_delete_breakWarn": "Kaldırmak yeniden kurana kadar o siteleri bozar.", + "services_delete_body": "Birimi durdurur, konteyneri kaldırır ve servis yapılandırmasını siler. Varsayılan servisler daha sonra ön ayar listesinden yeniden kurulabilir.", + "services_delete_removeDataLabel": "Servis verisini de kaldır", + "services_delete_removeDataHint": "~/.local/share/lerd/data/{name} dizinini {name}.pre-remove- olarak yeniden adlandırır (kurtarılabilir).", + "services_delete_submitting": "Kaldırılıyor…", + "worktreeDb_title": "Worktree veritabanını izole et", + "worktreeDb_body": "{branch} worktree'i için yeni bir veritabanı oluşturulacak. Neyle başlaması gerektiğini seçin.", + "worktreeDb_cloneFromMain": "Main'den klonla ({domain})", + "worktreeDb_empty": "Boş veritabanı", + "worktreeDb_cloneFromBranch": "{branch} dalından klonla", + "worktreeDb_cloneFromBranchDb": "{branch} dalından klonla ({db})", + "worktreeDb_cloningHint": "Klonlama servis konteyneri içinde mysqldump | mysql (veya pg_dump | psql) çalıştırır.", + "worktreeDb_isolateAction": "İzole et", + "lanShare_qrAlt": "QR kodu", + "common_closeDashboard": "Panoyu kapat", + "palette_ariaLabel": "Komut paleti", + "system_php_xdebugModeTitle": "Xdebug modu", + "system_remote_changeCredentials": "Kimlik bilgilerini değiştir", + "system_remote_enableDashboardLan": "Panoyu LAN'da etkinleştir", + "sites_controls_workersFromMain": "Worker'lar main'den çalışıyor", + "sites_controls_workersFromMainTitle": "Queue, schedule, Horizon ve Reverb yalnızca main dalına karşı çalışır. Başlatmak veya durdurmak için main'e geçin.", + "worktreeMgr_title": "Worktree'leri yönet", + "worktreeMgr_listEmpty": "Henüz worktree yok.", + "worktreeMgr_add": "Worktree ekle", + "worktreeMgr_isolatedDbBadge": "izole db", + "worktreeMgr_removeTitle": "{branch} worktree'i kaldırılsın mı?", + "worktreeMgr_force": "Commit edilmemiş değişiklikleri at", + "worktreeMgr_dropDb": "{db} veritabanını da sil", + "worktreeMgr_removing": "Kaldırılıyor…", + "worktreeMgr_branchHeading": "Dal", + "worktreeMgr_newBranchOpt": "Yeni dal", + "worktreeMgr_existingBranchOpt": "Mevcut dal", + "worktreeMgr_branchNamePlaceholder": "feature/dalim", + "worktreeMgr_basedOn": "Şuna dayalı", + "worktreeMgr_pickBranch": "Bir dal seçin", + "worktreeMgr_currentBranch": "{branch} (mevcut)", + "worktreeMgr_databaseHeading": "Veritabanı", + "worktreeMgr_runMigrations": "Oluşturduktan sonra migration'ları çalıştır", + "worktreeMgr_assetsHeading": "Frontend varlıkları", + "worktreeMgr_create": "Worktree oluştur", + "worktreeMgr_creating": "Oluşturuluyor…", + "worktreeMgr_createFailed": "Worktree oluşturulamadı", + "worktreeMgr_completedWithWarnings": "Uyarılarla tamamlandı", + "worktreeMgr_backToList": "Listeye dön", + "notify_banner_title": "Lerd'den bildirim alın", + "notify_banner_subtitle": "Panoyu kontrol etmeyi atlayın. Lerd yakalanan mailler, worker hataları ve tamamlanan işlemler için bir bildirim açacak.", + "notify_banner_enable": "Etkinleştir", + "notify_banner_dismiss": "Kapat", + "notify_settings_title": "Bildirimler", + "notify_settings_master": "Bildirimleri etkinleştir", + "notify_settings_master_hint": "Ana anahtar. Devre dışı bırakıldığında her kategoriyi kapatır.", + "notify_settings_category_mail": "Mailpit tarafından yakalanan mail", + "notify_settings_category_mail_hint": "Mailpit'in SMTP aracılığıyla kabul ettiği her e-posta.", + "notify_settings_category_worker_failed": "Worker hataları", + "notify_settings_category_worker_failed_hint": "Queue, Horizon, Reverb, schedule veya stripe worker hatalı duruma girdiğinde.", + "notify_settings_category_op_done": "Servis işlemleri tamamlandı", + "notify_settings_category_op_done_hint": "Uzun süren install / migrate / reinstall / update tamamlandı (veya başarısız oldu).", + "notify_settings_category_update_available": "Servis güncellemeleri mevcut", + "notify_settings_category_update_available_hint": "Registry, çalışan bir servis için daha yeni bir imaj etiketine sahip.", + "notify_settings_category_dump": "Dump'lar alındı", + "notify_settings_category_dump_hint": "Bir siteden ray() / dump() / var-dump paketi geldi. Varsayılan olarak kapalı, genellikle gürültülü.", + "notify_settings_test": "Test bildirimi gönder", + "notify_settings_test_sent": "Gönderildi", + "notify_settings_devices_title": "Abone cihazlar", + "notify_settings_devices_none": "Henüz push bildirimleri için abone tarayıcı yok.", + "notify_settings_devices_forget": "Unut", + "notify_settings_added_at": "{when} eklendi", + "notify_settings_denied_title": "Bildirimler engellendi", + "notify_settings_denied_body": "Bu sayfa izin istediğinde Engelle'yi seçtiniz. Tarayıcılar otomatik olarak bir daha sormaz, dolayısıyla bu sitenin engelinin elle kaldırılması gerekir.", + "notify_settings_denied_origin": "Engeli kaldırılacak site: {origin}", + "notify_settings_denied_chromium": "Adres çubuğunun solundaki küçük simgeye tıklayın, Site ayarlarını açın, ardından Bildirimleri İzin Ver olarak ayarlayın.", + "notify_settings_denied_firefox": "Adres çubuğunun solundaki küçük simgeye tıklayın, İzinler altında Bildirimleri bulun ve Engeli kaldırın.", + "notify_settings_denied_safari": "Safari'yi açın, ardından Ayarlar, Web Siteleri, Bildirimler. Bu siteyi bulun ve İzin Ver olarak değiştirin.", + "notify_settings_denied_generic": "Bu tarayıcının sayfa için site izinleri ayarlarını açın ve Bildirimleri İzin Ver olarak değiştirin.", + "notify_settings_denied_recheck": "Engeli kaldırdım, tekrar kontrol et", + "notify_settings_denied_still_blocked": "Hâlâ engellenmiş. İzni az önce değiştirdiyseniz bu sayfayı yeniden yükleyin.", + "notify_settings_unsubscribed_title": "Bu tarayıcı abone değil", + "notify_settings_unsubscribed_body": "Açık sekmeler hâlâ bildirim açacak ama sekme kapatıldığında lerd hiçbir şey itmez.", + "notify_settings_unsubscribed_action": "Bu tarayıcıyı abone yap", + "notify_mail_title": "Yeni e-posta: {subject}", + "notify_mail_body": "Kimden: {from}", + "notify_worker_failed_title": "{site} sitesinde worker hatası", + "notify_worker_failed_body": "{worker} {state} durumunda. Onarmak için lerd'i açın.", + "notify_op_done_title": "{op} tamamlandı: {service}", + "notify_op_done_body": "{duration} sürdü. Lerd'i açmak için tıklayın.", + "notify_op_failed_title": "{op} başarısız: {service}", + "notify_op_failed_body": "{message}", + "notify_update_title": "Güncelleme mevcut: {service}", + "notify_update_body": "{version} sürümü mevcut.", + "notify_dump_title": "{site} sitesinden dump", + "notify_dump_body": "{text}", + "notify_test_title": "lerd bildirim testi", + "notify_test_body": "Bunu görüyorsanız, push bildirimleri çalışıyor." +} diff --git a/internal/ui/web/project.inlang/settings.json b/internal/ui/web/project.inlang/settings.json index 5a0e089f..d1815bb0 100644 --- a/internal/ui/web/project.inlang/settings.json +++ b/internal/ui/web/project.inlang/settings.json @@ -1,7 +1,7 @@ { "$schema": "https://inlang.com/schema/project-settings", "baseLocale": "en", - "locales": ["en", "es", "pt", "fr", "de", "id", "nl"], + "locales": ["en", "es", "pt", "fr", "de", "id", "nl", "tr"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js" ], diff --git a/internal/ui/web/src/lib/locales.test.ts b/internal/ui/web/src/lib/locales.test.ts index bb70c417..b965570d 100644 --- a/internal/ui/web/src/lib/locales.test.ts +++ b/internal/ui/web/src/lib/locales.test.ts @@ -6,9 +6,10 @@ import fr from '../../messages/fr.json'; import de from '../../messages/de.json'; import id from '../../messages/id.json'; import nl from '../../messages/nl.json'; +import tr from '../../messages/tr.json'; import { LOCALES, LOCALE_LABELS, LOCALE_CODES } from '../stores/locale'; -const locales: Record> = { en, es, pt, fr, de, id, nl }; +const locales: Record> = { en, es, pt, fr, de, id, nl, tr }; const baseKeys = Object.keys(en).sort(); describe('UI locale message files', () => { @@ -38,5 +39,6 @@ describe('UI locale message files', () => { expect(LOCALES).toContain('de'); expect(LOCALES).toContain('id'); expect(LOCALES).toContain('nl'); + expect(LOCALES).toContain('tr'); }); }); diff --git a/internal/ui/web/src/stores/locale.ts b/internal/ui/web/src/stores/locale.ts index 2042c244..50772f1e 100644 --- a/internal/ui/web/src/stores/locale.ts +++ b/internal/ui/web/src/stores/locale.ts @@ -12,7 +12,8 @@ export const LOCALE_LABELS: Record = { fr: 'Français', de: 'Deutsch', id: 'Bahasa Indonesia', - nl: 'Nederlands' + nl: 'Nederlands', + tr: 'Türkçe' }; export const LOCALE_CODES: Record = { @@ -22,7 +23,8 @@ export const LOCALE_CODES: Record = { fr: 'FR', de: 'DE', id: 'ID', - nl: 'NL' + nl: 'NL', + tr: 'TR' }; // Reactive store mirroring Paraglide's active locale. Paraglide stores the