/** Turkish UI strings. */ export const tr: Record = { 'toolbar.new_folder': 'Yeni klasör', 'toolbar.upload': 'Yükle', 'toolbar.search': 'Ara', 'toolbar.search.placeholder': 'Ada ya da tag: ile ara…', 'toolbar.view.list': 'Liste', 'toolbar.view.grid': 'Izgara', 'toolbar.refresh': 'Yenile', 'toolbar.go_up': 'Üst Klasör', 'ctx.open': 'Aç', 'ctx.preview': 'Önizle', 'ctx.download': 'İndir', 'ctx.convert': 'Dönüştür', 'ctx.rename': 'Yeniden adlandır', 'ctx.delete': 'Sil', 'ctx.delete_perm': 'Kalıcı Olarak Sil', 'ctx.restore': 'Geri Getir', 'ctx.share': 'Paylaş', 'ctx.move': 'Taşı', 'ctx.copy': 'Kopyala', 'ctx.cut': 'Kes', 'ctx.show_hidden': 'Gizli dosyaları göster', 'ctx.hide_hidden': 'Gizli dosyaları gizle', 'ctx.keep_local': 'Bilgisayarda tut', 'ctx.keep_online': 'Yalnızca çevrimiçi tut', 'ctx.keep_reveal': 'Yerel klasörü aç', 'ctx.keep_inherited': 'Üst klasörle bilgisayarda tutuluyor', 'keep.started': 'Bilgisayarda tutulacak — eşitleme başladı', 'keep.failed': 'Bilgisayarda tutulamadı', 'keep.badge_kept': 'Bilgisayarda', 'keep.badge_syncing': 'Eşitleniyor…', 'keep.badge_cloud': 'Yalnızca çevrimiçi', 'keep.badge_partial': 'İçinde bilgisayarda tutulanlar var', 'keep.strip_transfer': '{name} eşitleniyor — {done}/{total} (%{pct})', 'keep.strip_inventory': '{name} eşitleniyor — sunucu taranıyor…', 'keep.strip_settling': '{name} eşitleniyor — son durum kaydediliyor…', 'ctx.paste': 'Yapıştır', 'ctx.info': 'Bilgi', 'ctx.duplicate': 'Kopyasını Oluştur', 'ctx.new_file': 'Yeni dosya', 'modal.delete.title': 'Silinsin mi?', 'modal.delete.message': '{count} öğe çöpe atılacak.', 'modal.delete.message_one': '{count} öğe çöpe atılacak.', 'modal.delete.confirm': 'Çöpe At', 'modal.delete.cancel': 'Vazgeç', 'modal.rename.title': 'Yeniden adlandır', 'modal.rename.save': 'Kaydet', 'modal.rename.cancel': 'Vazgeç', 'modal.newfolder.title': 'Yeni klasör', 'modal.newfolder.placeholder': 'Klasör adı', 'modal.newfolder.create': 'Oluştur', 'modal.newfolder.cancel': 'Vazgeç', 'modal.share.title': 'Paylaşım Linki', 'modal.share.pin': 'PIN koruması', 'modal.share.expires': 'Son kullanma', 'modal.share.max_downloads': 'İndirme limiti', 'modal.share.create': 'Paylaş', 'modal.share.cancel': 'Vazgeç', 'modal.share.close': 'Kapat', 'modal.share.limit_applied': '(sunucu sınırı uygulandı)', 'modal.share.copy': 'Kopyala', 'modal.share.url_copied': 'Link kopyalandı', 'modal.share.pin_copied': 'PIN kopyalandı', 'modal.share.cli_copied': 'CLI komutu kopyalandı', 'upload.progress': 'Yükleniyor', 'upload.done': 'Tamamlandı', 'upload.error': 'Hata', 'upload.failed': '“{name}” yüklenemedi', 'upload.aborted': 'İptal edildi', 'upload.cancel': 'İptal', 'upload.resuming': '“{name}” %{percent} noktasından devam ediyor', 'upload.committing': 'Tamamlanıyor', 'upload.transferring': 'Depolamaya aktarılıyor', 'empty.folder': 'Bu klasör boş', 'empty.search': 'Sonuç bulunamadı', 'loading': 'Yükleniyor…', 'notFound.title': 'Klasör bulunamadı', 'notFound.desc': 'Bu klasör mevcut değil, taşınmış ya da erişim yetkiniz yok.', 'notFound.goRoot': 'Kök klasöre dön', 'col.name': 'Ad', 'col.size': 'Boyut', 'col.modified': 'Tarih', 'col.type': 'Tür', 'unit.bytes': 'B', 'unit.kb': 'KB', 'unit.mb': 'MB', 'unit.gb': 'GB', 'unit.tb': 'TB', 'unit.pb': 'PB', 'breadcrumb.root': 'Kök', 'breadcrumb.copy_path': 'Yolu kopyala', 'breadcrumb.go_to_path': 'Yola git', 'breadcrumb.path_placeholder': 'fileman/foo/bar', 'ops.copy': 'Kopyalanıyor', 'ops.move': 'Taşınıyor', 'ops.delete': 'Siliniyor', 'ops.queued': 'sırada', 'ops.done': 'tamamlandı', 'ops.error': 'hata', 'node.trash': 'Çöp Kutusu', 'node.folder': 'Klasör', // ——— Zengin önizleyici chrome ——— 'viewer.open_in_new_tab': 'Yeni sekmede aç', 'viewer.loading': 'Yükleniyor…', 'viewer.failed_to_load': 'Dosya yüklenemedi', 'viewer.peer_not_installed': 'Bu dosya tipi için opsiyonel kütüphane kurulu değil. Peer dependency yükle veya İndir düğmesini kullan.', 'viewer.format_unsupported_3d': 'Bu 3B format tarayıcı önizlemesinde desteklenmiyor (model-viewer yalnızca .glb / .gltf / .usdz okur). Lütfen indirip yerel bir araçta açın.', 'viewer.zoom_in': 'Yakınlaştır', 'viewer.zoom_out': 'Uzaklaştır', 'viewer.fit_width': 'Sayfa genişliğine sığdır', 'viewer.next_page': 'Sonraki sayfa', 'viewer.prev_page': 'Önceki sayfa', 'viewer.page_n_of_m': 'Sayfa {n} / {m}', 'viewer.tags': 'Etiketler', 'viewer.layers': 'Katmanlar', 'viewer.toc': 'İçindekiler', 'viewer.font_smaller': 'Yazıyı küçült', 'viewer.font_larger': 'Yazıyı büyüt', 'viewer.search': 'Ara', 'viewer.download': 'İndir', 'viewer.saving': 'Kaydediliyor…', 'viewer.save': 'Kaydet (Ctrl+S)', 'viewer.saved': 'Kaydedildi', 'viewer.save_error': 'Hata', 'viewer.editor_loading': 'Editör yükleniyor…', 'viewer.no_preview': 'Bu dosya tipi için önizleme henüz yok.', 'viewer.edit': 'Düzenle', 'viewer.close': 'Kapat', 'presence.expand': 'İsimleri göster', 'presence.collapse': 'Küçült', 'viewer.save_annotations': 'Açıklamaları kaydet', 'viewer.annotations_on': 'Açıklamalar: açık', 'viewer.annotations_off': 'Açıklamalar: kapalı', 'viewer.read_only': 'Salt okunur', 'viewer.csv_first_row_header': 'İlk satır başlık olsun', 'viewer.csv_filter': 'Satır filtrele…', 'viewer.epub_prev': 'Önceki', 'viewer.epub_next': 'Sonraki', 'viewer.drawio.disabled': 'diagrams.net editörü bu filex kurulumunda yapılandırılmamış — yönetici FILEX_DRAWIO_URL\'yi ayarlamalı.', 'viewer.archive.entries': '{n} dosya', 'viewer.archive.entries_one': '{n} dosya', 'viewer.archive.empty': 'Arşiv boş.', 'viewer.archive.error': 'Arşiv okunamadı.', 'viewer.name': 'Ad', 'viewer.size': 'Boyut', // ——— cila:a — sıralama / tarih grupları / yoğunluk ——— 'col.sort': 'Sırala', 'group.today': 'Bugün', 'group.yesterday': 'Dün', 'group.this_week': 'Bu Hafta', 'group.this_month': 'Bu Ay', 'group.no_date': 'Tarihsiz', 'toolbar.density.compact': 'Sıkışık görünüm', 'toolbar.density.comfortable': 'Rahat görünüm', // ——— cila:c — komut paleti + kısayol yardımı + breadcrumb ——— 'palette.placeholder': 'Dosya, klasör veya komut ara…', 'palette.files': 'Dosyalar', 'palette.commands': 'Komutlar', 'palette.goto': 'Yola git', 'palette.empty': 'Sonuç bulunamadı', 'palette.hint': '↑↓ gezin · Enter seç · Esc kapat', 'cmd.view_toggle': 'Görünümü değiştir (liste ⇄ ızgara)', 'cmd.trash': 'Çöp kutusunu aç', 'shortcuts.title': 'Klavye Kısayolları', 'shortcuts.group.nav': 'Gezinme', 'shortcuts.group.selection': 'Seçim', 'shortcuts.group.file': 'Dosya işlemleri', 'shortcuts.palette': 'Komut paleti', 'shortcuts.search': 'Aramaya odaklan', 'shortcuts.go_up': 'Üst klasöre çık', 'shortcuts.open': 'Seçili öğeyi aç', 'shortcuts.close': 'Kapat / vazgeç', 'shortcuts.toggle_hidden': 'Gizli dosyaları göster/gizle', 'shortcuts.help': 'Bu yardım penceresi', 'shortcuts.select_all': 'Tümünü seç', 'shortcuts.star': 'Yıldızla / yıldızı kaldır', 'shortcuts.rename': 'Yeniden adlandır', 'shortcuts.delete': 'Sil', 'shortcuts.cut': 'Kes', 'shortcuts.copy': 'Kopyala', 'shortcuts.paste': 'Yapıştır', 'breadcrumb.more': 'Aradaki klasörler', // ——— State screens + undo snackbar + connection badge (cila:b) ——— 'empty.hint': 'Dosyaları buraya sürükleyip bırakın', 'empty.upload': 'Dosya yükle', 'empty.search.title': 'Aramanla eşleşen dosya yok', 'empty.search.hint': 'Farklı bir arama terimi deneyin', 'empty.trash.title': 'Çöp kutusu boş', 'error.title': 'Liste yüklenemedi', 'error.retry': 'Yeniden dene', 'toast.undo': 'Geri Al', 'toast.undone': 'Geri alındı', 'toast.undo_failed': 'Geri alınamadı', 'toast.renamed': 'Yeniden adlandırıldı', 'toast.moved': 'Taşındı', 'toast.trashed': 'Çöpe taşındı', /* i18n:hardcoded — FileExplorer.vue'da düz string olarak duran, hiçbir dilin değiştiremediği bildirim metinleri. */ 'toast.failed': 'İşlem başarısız', 'toast.copied': 'Kopyalandı', 'toast.deleted': 'Silindi', 'toast.cut': 'Kesildi', 'toast.cut_ready': 'Kes → Yapıştır hazır', 'toast.copy_ready': 'Kopyala → Yapıştır hazır', 'toast.same_folder_cut': 'Aynı klasöre kesilemez', 'toast.restored': '{n} öğe geri getirildi', 'toast.restored_one': '{n} öğe geri getirildi', 'toast.restore_taken': '{n} öğe geri getirilmedi: aynı adla bir şey zaten var. Oradakinin adını değiştirip yeniden deneyin.', 'toast.restore_taken_one': '“{name}” geri getirilmedi: aynı adla bir şey zaten var. Oradakinin adını değiştirip yeniden deneyin.', 'toast.delete_queued': 'Silme kuyruğa alındı', 'toast.trash_retention': 'Çöpteki öğeler saklama süresi sonunda otomatik silinir. Kalıcı silme yönetici panelinden yapılır.', 'dropzone.hint': 'Dosyaları buraya bırak', 'modal.newfolder.invalid': 'Geçersiz karakter', 'viewer.office_unconfigured': 'OnlyOffice yapılandırması yok', 'viewer.pdf_inline_failed': 'Tarayıcı PDF\'i inline açamadı.', 'viewer.too_large': 'Dosya çok büyük (>1 MB).', 'viewer.csv_rows': '{n} satır', 'viewer.csv_rows_one': '{n} satır', 'presence.others': '{n} kişi', 'presence.others_one': '{n} kişi', 'conn.offline': 'Canlı bağlantı yok — değişiklikler gecikebilir', 'conn.tooltip': 'Sunucuyla canlı bağlantı kurulamadı; liste belirli aralıklarla otomatik yenilenir. Bağlantı geri gelince bu uyarı kaybolur.', /* === bul:s3 === */ 'palette.everywhere': 'Her yerde', 'palette.searching': 'Aranıyor…', 'palette.saved': 'Kayıtlı aramalar', 'palette.save': 'Aramayı kaydet', 'palette.saved.delete': 'Kayıtlı aramayı sil', 'search.in_content': 'İçerikte', /* === bag:b4 === */ 'toolbar.more': 'Diğer işlemler', 'toolbar.search.close': 'Aramayı kapat', 'sheet.menu': 'İşlemler', 'sheet.close': 'Kapat', /* === koru:k1 === */ 'toolbar.inspector': 'Ayrıntılar', 'ctx.details': 'Ayrıntılar', /* yildiz:s1 — yıldızlamak bir eylem, menüde de öyle görünür. */ 'ctx.star': 'Yıldızla', 'ctx.unstar': 'Yıldızı kaldır', 'star.failed': 'Yıldız değiştirilemedi', 'shortcuts.inspector': 'Ayrıntılar panelini aç/kapat', 'inspector.title': 'Ayrıntılar', 'inspector.copy_name': 'Adı kopyala', 'inspector.items': '{n} öğe', 'inspector.items_one': '{n} öğe', 'inspector.type': 'Tür', 'inspector.select_hint': 'Ayrıntılarını görmek için bir öğe seçin.', /* pane:p1 — panel SON seçilen şeyi tutar (Burak'ın kararı, 2026-09-13); dolayısıyla bölünmüş pencerenin bakılmayan yarısındaki bir öğeyi anlatıyor olabilir. Bu satır hangisi olduğunu ve nerede durduğunu söyler. */ 'inspector.held': 'Son seçilen — {where} içinde', 'inspector.close': 'Kapat', 'inspector.section.general': 'Genel', 'inspector.section.tags': 'Etiketler', /* etiket:t1 — TagPicker'ın kendi çerçevesi. 2026-09-13'e kadar bu üçü katalogdan bağımsız olarak İngilizce basılıyordu; `tags.open` ise çipin yeni "bu etiketi taşıyan her şeyi göster" kapısı. */ 'tags.open': 'Etiketi aç: {tag}', 'tags.add': '+ Etiket ekle', 'tags.name': 'Etiket adı', 'tags.remove': 'Etiketi kaldır', 'inspector.section.versions': 'Sürümler', 'inspector.section.permissions': 'İzinler', 'inspector.section.shares': 'Paylaşımlar', 'inspector.path': 'Yol', 'inspector.size': 'Boyut', 'inspector.modified': 'Değiştirilme', 'inspector.mime': 'MIME türü', 'inspector.etag': 'ETag', 'inspector.nodeId': 'Düğüm kimliği', 'inspector.copy': 'Kopyala', 'inspector.copied': 'Kopyalandı', 'inspector.error': 'Yüklenemedi', 'inspector.items_summary': '{n} öğe, toplam {size}', 'inspector.items_summary_one': '{n} öğe, toplam {size}', 'inspector.folder_items': '{n} öğe', 'inspector.folder_items_one': '{n} öğe', 'inspector.versions.empty': 'Sürüm geçmişi yok', 'inspector.versions.v': 'Sürüm {n}', 'inspector.versions.restore': 'Geri yükle', 'inspector.versions.restore_confirm': 'Bu sürüm geri yüklensin mi?', 'inspector.versions.snapshot_current': 'Önce şimdiki halin sürümünü al', 'inspector.versions.confirm': 'Onayla', 'inspector.versions.cancel': 'Vazgeç', 'inspector.versions.take_snapshot': 'Şimdiki halin sürümünü al', 'inspector.versions.restored': 'Sürüm geri yüklendi', 'inspector.versions.snapshotted': 'Sürüm alındı', 'inspector.versions.unsupported': 'Sunucu bu işlemi desteklemiyor', 'inspector.perm.none': 'Erişim yok', 'inspector.perm.viewer': 'Görüntüleyen', 'inspector.perm.editor': 'Düzenleyen', 'inspector.perm.owner': 'Sahip', 'inspector.perm.manage': 'İzinleri yönet', 'inspector.shares.empty': 'Paylaşım linki yok', 'inspector.shares.copy': 'Linki kopyala', /* wiring:c1 — tema galerisi */ 'theme.menu': 'Tema', 'theme.title': 'Tema Galerisi', 'theme.hint': 'Tema yalnız renk paletini değiştirir; gündüz mü gece mi olduğu yukarıdaki seçim.', 'theme.mode.label': 'Görünüm', 'theme.mode.light': 'Gündüz', 'theme.mode.dark': 'Gece', 'theme.mode.auto': 'Otomatik', 'theme.reset': 'Varsayılana dön', 'theme.close': 'Kapat', 'theme.selected': 'Seçili', 'theme.name.default': 'Varsayılan', 'theme.name.night': 'Gece Mavisi', 'theme.name.forest': 'Orman', 'theme.name.amber': 'Kehribar', 'theme.name.lilac': 'Leylak', 'theme.name.contrast': 'Yüksek Kontrast', 'theme.name.gray': 'Yumuşak Gri', 'theme.name.terminal': 'Terminal Yeşili', /* === zaman:z3 — saat dilimi seçici (gömme penceresi + web ayarları) === */ 'tz.menu': 'Saat dilimi', 'tz.title': 'Saat dilimi', 'tz.label': 'Tarihleri şu saatle göster', 'tz.search': 'Şehir, ülke ya da saat farkı arayın — “İstanbul” veya “GMT+3” deneyin', 'tz.default.device': 'Bu cihazın saat dilimini kullan ({zone})', 'tz.default.account': 'Hesabın saat dilimini kullan ({zone})', 'tz.default.host': 'Bu sitenin varsayılanını kullan ({zone})', 'tz.no_match': '“{query}” ile eşleşen saat dilimi yok. Bir şehir, bir ülke ya da GMT+3 gibi bir fark deneyin.', 'tz.more': '{n} kayıt daha var — listeyi daraltmak için yazmayı sürdürün.', 'tz.hint': 'Yalnızca bu tarayıcıda saklanır. Her tarih tek bir an olarak saklanır ve burada seçtiğiniz saatle gösterilir.', 'tz.now': '{zone} bölgesinde şu an: {time}', /* === wiring:c2 — özelleştirilebilir kısayollar + hızlı bakış === */ 'shortcuts.quicklook': 'Hızlı bakış', 'shortcuts.customize': 'Özelleştir', 'shortcuts.settings.menu': 'Kısayollar', 'shortcuts.settings.title': 'Kısayol Ayarları', 'shortcuts.settings.hint': 'Bir kısayolu değiştirmek için "Değiştir"e basıp yeni tuş kombinasyonuna basın. Değişiklikler yalnızca bu tarayıcıda saklanır.', 'shortcuts.settings.change': 'Değiştir', 'shortcuts.settings.capture': 'Tuşlara basın… (Esc iptal)', 'shortcuts.settings.reset': 'Varsayılana dön', 'shortcuts.settings.reset_all': 'Tümünü sıfırla', 'shortcuts.settings.unbound': 'Atanmadı', 'shortcuts.settings.fixed': 'Sabit', 'shortcuts.settings.customized': 'Özelleştirildi', 'shortcuts.settings.conflict': 'kombinasyonu "{name}" kısayolunda kullanılıyor.', 'shortcuts.settings.conflict_fixed': 'kombinasyonu "{name}" sabit kısayoluna ayrılmış — kullanılamaz.', 'shortcuts.settings.conflict_take': 'Eskisini boşa çıkar ve ata', 'shortcuts.settings.conflict_cancel': 'Vazgeç', 'quicklook.hint_close': 'kapat', 'quicklook.hint_nav': 'önceki/sonraki', 'quicklook.hint_open': 'aç', /* === /wiring:c2 === */ /* === wiring:c3 — işlem merkezi === */ 'opc.title': 'İşlemler', 'opc.aria_badge': '{n} işlem — işlem merkezini aç/kapat', 'opc.aria_badge_one': '{n} işlem — işlem merkezini aç/kapat', 'opc.close': 'Kapat', 'opc.active': 'Sürüyor', 'opc.history': 'Geçmiş', 'opc.clear': 'Temizle', 'opc.empty': 'İşlem yok', 'opc.cancel': 'İptal', 'opc.retry': 'Yeniden dene', 'opc.dismiss': 'Kapat', 'opc.queued': 'Sırada', 'opc.percent': '%{n}', 'opc.status.running': 'Sürüyor', 'opc.status.done': 'Bitti', 'opc.status.error': 'Hata', 'opc.status.aborted': 'İptal edildi', 'opc.kind.upload': 'Yükleme', 'opc.kind.copy': 'Kopyalama', 'opc.kind.move': 'Taşıma', 'opc.kind.delete': 'Silme', 'opc.kind.convert': 'Dönüştürme', 'opc.kind.archive': 'Arşiv', /* === wiring:c4 — onboarding turu + erişilebilirlik + hata kartı === */ 'tour.aria': 'Tanıtım turu', 'tour.restart': 'Turu tekrar başlat', 'tour.skip': 'Turu atla', 'tour.back': 'Geri', 'tour.next': 'İleri', 'tour.done': 'Bitti', 'tour.progress': '{n} / {m}', 'tour.step.nav.title': 'Depolar ve görünümler', 'tour.step.nav.desc': 'Ana sayfa, Benimle paylaşılanlar, Son kullanılanlar, Yıldızlılar ve Çöp Kutusu hep bu panelde durur; altında da depoların ve bağlantıların. Sol üst köşedeki düğme paneli ince bir şeride indirir ve geri açar.', 'tour.step.nav.desc_closed': 'Bu düğme gezinti panelini açar: Ana sayfa, Benimle paylaşılanlar, Son kullanılanlar, Yıldızlılar ve Çöp Kutusu; altında da depoların ve bağlantıların.', 'tour.step.new.title': 'Yeni bir şey ekle', 'tour.step.new.desc': 'Yeni olan her şey buradan başlar: bu cihazdan dosya yükleyebilir, klasör oluşturabilir ya da birinden dosya isteyebilirsin. Dosyaları pencereye sürükleyip bırakmak da yükler.', 'tour.step.new.desc_fab': 'Bu düğme bu cihazdan dosya yükler. Dosyaları pencereye sürükleyip bırakmak da çalışır.', 'tour.step.search.title': 'Arama', 'tour.step.search.desc': 'Bu alan deponun tamamında ada göre arar; ayraçları ve bir harflik yazım hatasını affeder, yani "fatura 2026" yazdığında fatura_2026.pdf gelir. tag:fatura yazarak etikete göre süzebilirsin. Yanındaki sürgü düğmesi gelişmiş aramayı, {palette} ise komut paletini açar; palet komut da çalıştırır.', 'tour.step.crumb.title': 'Bulunduğun yer', 'tour.step.crumb.desc': 'Bu iz, ekrandaki klasörün adresidir. Adımlardan birine tıklayarak üste çıkabilir, sonuncusunun yanındaki oktan içindeki klasörleri görebilirsin.', 'tour.step.filters.title': 'Listeyi daralt', 'tour.step.filters.desc': 'Tür, Kişiler, Değiştirilme ve Boyut bulunduğun klasörü süzer; yanındaki kutu yazdıkça adlara göre eşleşir, satırın sonundaki denetim ise sıralar.', 'tour.step.view.title': 'Görünümü değiştir', 'tour.step.view.desc': 'Bu klasörün nasıl çizildiğini değiştirir; seçimin hatırlanır.', 'tour.step.details.title': 'Ayrıntılar ve paylaşım', 'tour.step.details.desc': 'Bir dosyayı seçip bu paneli açtığında ayrıntılarını, hareketlerini ve paylaşım bağlantılarını görürsün. Tam menü için dosyaya sağ tıkla ya da satırının sonundaki düğmeyi kullan: oradaki "Paylaş / İzinler" ile PIN ve son kullanma süresi verilebilen bir bağlantı oluşturulur.', 'tour.step.help.title': 'Kısayollar', 'tour.step.help.desc': '{help} tuşu kısayol kartını, {palette} komut paletini açar. Tema ve "Turu tekrar başlat" sağ üstteki "Diğer işlemler" menüsünde; hesabın ve çıkış ise yanındaki avatarın arkasında.', 'error.hint': 'Bağlantı ya da sunucu kaynaklı geçici bir sorun olabilir. Yeniden deneyin.', 'error.details': 'Teknik ayrıntılar', 'col.star': 'Yıldız', 'toolbar.view_label': 'Görünüm', 'list.aria': 'Dosya listesi', 'grid.aria': 'Dosya ızgarası', /* === wiring:d1 — sekmeler + split panel === */ 'tabs.strip': 'Sekmeler', 'tabs.new': 'Yeni sekme', 'tabs.close': 'Sekmeyi kapat', 'tabs.split': 'Görünümü böl', 'tabs.split_off': 'Bölmeyi kapat', 'ctx.open_new_tab': 'Yeni sekmede aç', 'shortcuts.group.tabs': 'Sekmeler', 'shortcuts.tab_new': 'Yeni sekme', 'shortcuts.tab_close': 'Sekmeyi kapat', 'shortcuts.tab_next': 'Sonraki sekme', 'shortcuts.tab_prev': 'Önceki sekme', /* tus:t1 — menü fiilleri */ 'shortcuts.new_folder': 'Yeni klasör', 'shortcuts.upload': 'Dosya yükle', 'shortcuts.refresh': 'Listeyi yenile', 'shortcuts.download': 'İndir', 'shortcuts.preview': 'Önizle', 'shortcuts.share': 'Paylaş / izinler', 'shortcuts.tags': 'Etiketler', 'shortcuts.convert': 'Dönüştür', 'shortcuts.open_tab': 'Yeni sekmede aç', 'shortcuts.copy_path': 'Yolu kopyala', 'shortcuts.copy_id': 'Kimliği kopyala', 'shortcuts.restore': 'Çöp kutusundan geri al', 'shortcuts.settings.reserved': 'tarayıcı tarafından sayfaya ulaşmadan yakalanıyor, burada hiçbir şey yapmaz. Başka bir tuş seçin.', 'shortcuts.settings.reserved_badge': 'Yalnız masaüstü uygulamasında', 'shortcuts.settings.reserved_title': 'Bu kombinasyonu tarayıcının kendisi işliyor. Masaüstü uygulamasında ve kurulu PWA’da çalışır, tarayıcı sekmesinde çalışmaz.', 'cmd.tab_new': 'Yeni sekme aç', 'cmd.split_toggle': 'Görünümü böl / birleştir', 'split.pane': 'İkincil panel', 'split.close': 'Yan paneli kapat', 'split.error': 'Liste yüklenemedi', 'split.retry': 'Yeniden dene', 'split.copy_queued': 'Kopyalama kuyruğa alındı', 'split.move_queued': 'Taşıma kuyruğa alındı', 'toast.move_kept_both': 'Taşıma kuyruğa alındı. Hedefte aynı adla bir öğe vardı, taşınan öğe onun yanına “-copy” ekiyle konacak. Bu taşıma geri alınamaz.', 'split.cross_copy': 'Depolar farklı — kopyalama kuyruğa alındı', 'dragout.downloading': 'Bırakılan klasöre indiriliyor…', 'dragout.not_found': 'Bırakılan yer bulunamadı — dosya bir klasöre değil bir uygulamaya bırakıldıysa indirme yapılamaz', 'dragout.done': 'İndirme tamamlandı', 'dragout.ready': 'Dosyalar hazır — masaüstüne sürükleyebilirsin', 'dragout.preparing': 'Sürükleme için hazırlanıyor…', 'split.cross_move': 'Depolar farklı — taşıma kuyruğa alındı (baytlar aktarılıp kaynak silinir)', /* === /wiring:d1 === */ /* wiring:d2 — galeri görünümü */ 'toolbar.view.gallery': 'Galeri', 'gallery.aria': 'Dosya galerisi', /* /wiring:d2 */ /* wiring:d3 — Yorumlar (inspector node comments) */ 'inspector.section.comments': 'Yorumlar', 'inspector.comments.empty': 'Henüz yorum yok.', 'inspector.comments.placeholder': 'Yorum yaz…', 'inspector.comments.send': 'Gönder', 'inspector.comments.delete': 'Yorumu sil', /* wiring:e2 — uçtan uca şifreli klasörler */ 'e2e.create.title': 'Şifreli klasör oluştur', 'e2e.create.option': 'Şifreli klasör oluştur…', 'e2e.create.pw_label': 'Klasör parolası', 'e2e.create.pw_placeholder': 'En az 8 karakter', 'e2e.create.pw2_label': 'Parolayı tekrar girin', 'e2e.create.warn_title': 'GERİ DÖNÜŞÜ YOK', 'e2e.create.warn_body': 'Bu klasördeki dosyalar yalnız bu parolayla ya da klasör oluşturulurken bir kez gösterilen kurtarma anahtarıyla açılır. Parola sunucuda TUTULMAZ; kurtarma anahtarının da filex\'te kopyası kalmaz. İkisini de kaybederseniz içerik sonsuza dek gider.', 'e2e.create.ack': 'Anladım: parolayı da kurtarma anahtarını da kaybedersem verilerim kurtarılamaz.', 'e2e.create.ack_required': 'Devam etmek için uyarıyı onaylayın.', 'e2e.create.pw_short': 'Parola en az 8 karakter olmalı.', 'e2e.create.pw_mismatch': 'Parolalar birbirini tutmuyor.', 'e2e.create.bad_name': 'Geçersiz klasör adı.', 'e2e.create.create': 'Şifreli klasörü oluştur', 'e2e.create.busy': 'Oluşturuluyor…', 'e2e.create.done': 'Şifreli klasör oluşturuldu', 'e2e.create.failed': 'Şifreli klasör oluşturulamadı', 'e2e.create.nested': 'Şifreli klasörün içine ikinci bir şifreli klasör açılamaz.', 'e2e.locked.title': 'Bu klasör uçtan uca şifreli', 'e2e.locked.hint': 'İçeriği görmek için klasör parolasını girin. Parola yalnız bu sekmede, bellekte tutulur.', 'e2e.locked.pw_placeholder': 'Klasör parolası', 'e2e.locked.unlock': 'Kilidi aç', 'e2e.locked.busy': 'Doğrulanıyor…', 'e2e.unlock.wrong': 'Parola yanlış.', 'e2e.unlock.marker_missing': 'Şifre dosyası (.filex-e2e.json) okunamadı.', /* ikon:emoji — listedeki işaretin erişilebilir adı. Satır eskiden yalnız bir 🔒 basıyordu; onun yerini alan asma kilit kutunun içinde aria-hidden, dolayısıyla adı taşıyan yer bu. */ 'e2e.badge': 'Şifreli klasör', 'e2e.strip.label': 'Şifreli klasör — kilit açık', 'e2e.strip.lock': 'Kilitle', 'e2e.locked_toast': 'Klasör kilitlendi', 'e2e.upload.too_big': '200 MB üstü dosyalar şifreli klasöre yüklenemez (MVP sınırı)', 'e2e.upload.locked': 'Önce klasörün kilidini açın', 'e2e.decrypting': 'Çözülüyor…', 'e2e.decrypt_failed': 'Dosya çözülemedi (parola değişmiş ya da dosya bozulmuş olabilir).', /* wiring:e2 recovery — kurtarma anahtarı + yönetici escrow'u */ 'e2e.create.escrow_title': 'Bu sunucunun da bir anahtarı var', 'e2e.create.escrow_body': 'Bu kurulumda anahtar emaneti (escrow) açık: sunucunun işletmecisi bu klasörü parolanız olmadan açabilir. O anahtar kullanıldığında size bildirim gelir. Escrow sunucu kurulurken sabitlenir; bir klasör için kapatılamaz.', 'e2e.locked.use_recovery': 'Parolayı mı kaybettiniz? Kurtarma anahtarı kullanın', 'e2e.recovery.title': 'Kurtarma anahtarınızı saklayın', 'e2e.recovery.title_upgraded': 'Kurtarma anahtarınız', 'e2e.recovery.lead': 'Bu anahtar klasörü parolasız açar. Yalnız bir kez gösterilir — filex bu anahtarı saklamaz ve bir daha gösteremez.', 'e2e.recovery.lead_upgraded': 'Bu klasörün artık bir kurtarma anahtarı var. Klasörü parolasız açar, yalnız bir kez gösterilir ve filex\'te kopyası kalmaz.', 'e2e.recovery.copy': 'Kopyala', 'e2e.recovery.copied': 'Kopyalandı', 'e2e.recovery.download': 'Dosya olarak indir', 'e2e.recovery.warn_title': 'BUNU PAROLA GİBİ SAKLAYIN', 'e2e.recovery.warn_body': 'Bu anahtarı eline geçiren herkes klasörü okuyabilir. Parolanızdan ayrı bir yerde tutun — parolanın yanında duran bir anahtar sizi unutmaya karşı korur, başkasına karşı değil.', 'e2e.recovery.escrow_title': 'Bu sunucunun da bir anahtarı var', 'e2e.recovery.escrow_body': 'Bu kurulumda anahtar emaneti açık: sunucunun işletmecisi bu klasörü parolanız olmadan açabilir. O anahtar kullanıldığında size bildirim gelir.', 'e2e.recovery.escrow_kid': 'Emanet anahtarı', 'e2e.recovery.ack': 'Bu anahtarı güvenli bir yere kaydettim.', 'e2e.recovery.done': 'Tamam', 'e2e.recover.title': 'Parolasız kilit açma', 'e2e.recover.none': 'Bu klasör kurtarma anahtarları eklenmeden önce oluşturulmuş, bu yüzden anahtarı yok. Tek giriş yolu parolası. Bir kez parolayla açın, filex kurtarma anahtarı eklemeyi önerecek.', 'e2e.recover.tab_recovery': 'Kurtarma anahtarı', 'e2e.recover.tab_escrow': 'Emanet anahtarı', 'e2e.recover.recovery_hint': 'Klasör oluşturulurken bir kez gösterilen anahtar.', 'e2e.recover.recovery_placeholder': 'XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX', 'e2e.recover.escrow_warn_title': 'Klasörün sahibine haber gidecek', 'e2e.recover.escrow_warn_body': 'Emanet anahtarıyla açılan klasörün sahibine bildirim gönderilir. Yalnız yetkiniz olduğunda kullanın.', 'e2e.recover.escrow_kid': 'Emanet anahtarı', 'e2e.recover.escrow_predates': 'Bu kurulumun emanet anahtarı var ama bu klasörün yok. Klasör, emanet burada açılmadan önce oluşturulmuş; ana anahtarı emanet kimliğine hiç sarmalanmadı. Emanet anahtarı bu klasörü açmaz. İşletmecinin yapabileceği hiçbir şey bunu değiştirmez — sarmalama için klasörün parolası gerekir ve sunucu onu hiçbir zaman görmedi. Klasörün sahibi verebilir: parolayla kilidi açıp işletmeciye anahtar vermeyi seçebilir. O yapılana kadar parolayı ya da kurtarma anahtarını kullanın.', 'e2e.recover.escrow_other_key': 'Bu klasör BAŞKA bir kurulumun emanet anahtarını taşıyor. Başka yerde oluşturulup buraya geri yüklenmiş, bu yüzden bu kurulumun emanet anahtarı onu açmaz. Yalnızca sarmalandığı emanet anahtarının özel yarısı açabilir.', 'e2e.recover.escrow_placeholder': 'Emanet özel anahtarını yapıştırın (PKCS#8, base64 ya da PEM)', 'e2e.recover.bad_format': 'Bu bir kurtarma anahtarına benzemiyor. Dörtlü sekiz grup, toplam 32 karakter olmalı.', 'e2e.recover.escrow_required': 'Emanet özel anahtarını yapıştırın.', 'e2e.recover.wrong_recovery': 'Bu kurtarma anahtarı bu klasörü açmıyor.', 'e2e.recover.wrong_escrow': 'Bu emanet anahtarı bu klasörü açmıyor. Escrow açılmadan önce oluşturulmuş klasörlerin emanet anahtarı yoktur ve sonradan da eklenemez.', 'e2e.recover.bad_escrow_key': 'Bu okunabilir bir özel anahtar değil (PKCS#8, base64 ya da PEM bekleniyor).', 'e2e.recover.notify_failed': 'Klasör sahibine bildirim gönderilemedi, bu yüzden kilit açılmadı. Emanet anahtarının kullanımı her zaman duyurulur.', 'e2e.recover.recovery_done': 'Kurtarma anahtarıyla açıldı', 'e2e.recover.escrow_done': 'Emanet anahtarıyla açıldı — klasör sahibine bildirildi', 'e2e.recover.unlock': 'Kilidi aç', 'e2e.recover.busy': 'Açılıyor…', 'e2e.escrowoffer.title': 'İşletmeciye bu klasörün anahtarı verilsin mi?', 'e2e.escrowoffer.body': 'Bu klasör, burada anahtar emaneti açılmadan önce oluşturulmuş; bu yüzden kurulumun işletmecisi onu açamıyor. Şu anda — parolanız bellekteyken — filex bu klasörü emanet anahtarına sarmalayabilir. Dosyalarınız yeniden şifrelenmez, hiçbir yere taşınmaz; yalnızca anahtar dosyası değişir.', 'e2e.escrowoffer.consequence': 'Bunun anlamı: işletmeci, parolanız olmadan bu klasöre giren ikinci ve kalıcı bir yol kazanır. O anahtar kullanıldığında size bildirim gelir, ama bu bildirim bir denetim değil yalnızca bir duyurudur.', 'e2e.escrowoffer.learn_more': 'Emanet anahtarı neyi yapar, neyi yapamaz', 'e2e.escrowoffer.password_label': 'Klasör parolası', 'e2e.escrowoffer.password_required': 'Klasör parolasını girin.', 'e2e.escrowoffer.wrong_password': 'Bu, bu klasörün parolası değil.', 'e2e.escrowoffer.accept': 'İşletmeciye anahtar ver', 'e2e.escrowoffer.decline': 'Hayır, bende kalsın', 'e2e.escrowoffer.cancel': 'Vazgeç', 'e2e.escrowoffer.busy': 'Sarmalanıyor…', 'e2e.escrowoffer.done': 'İşletmeci artık bu klasörü emanet anahtarıyla açabilir', 'e2e.escrowoffer.declined_toast': 'Sizde kaldı. filex bu klasör için bir daha sormayacak.', 'e2e.escrowoffer.decline_failed': 'Cevabınız kaydedilemedi, bu yüzden filex bir dahakine yine soracak. Klasörde hiçbir şey değişmedi.', 'e2e.escrowoffer.failed': 'İşletmeciye bu klasörün anahtarı verilemedi', 'e2e.escrowoffer.strip_action': 'Emanet anahtarı…', 'e2e.upgrade.title': 'Bu klasörün kurtarma anahtarı yok', 'e2e.upgrade.body': 'Kurtarma anahtarları eklenmeden önce oluşturulmuş, bu yüzden tek giriş yolu parolası. Şu anda — ve yalnız şu anda, parola bellekteyken — filex bir tane ekleyebilir. Dosyalarınız yeniden şifrelenmez, hiçbir yere taşınmaz.', 'e2e.upgrade.escrow_note': 'Not: bu kurulumda anahtar emaneti açık; kurtarma anahtarı eklemek aynı zamanda işletmecinin bu klasörü parolanız olmadan açabilmesi demektir.', 'e2e.upgrade.accept': 'Kurtarma anahtarı oluştur', 'e2e.upgrade.decline': 'Şimdi değil', 'e2e.upgrade.busy': 'Oluşturuluyor…', 'e2e.upgrade.failed': 'Bu klasöre kurtarma anahtarı eklenemedi', 'e2e.download.failed': 'Şifreli dosya indirilemedi.', /* /wiring:e2 */ /* ── connections: storage config + "how to connect" ────────────── `storages.*` keys are the ones the BACKEND's driver descriptors name (each driver package declares one next to its Init). They are kept identical to web/src/locales/*.json on purpose: the same descriptor is rendered on both surfaces, so a field that reads "Base path" in the admin panel and something else in the desktop app would be the same drift this whole mechanism exists to stop. */ 'conn.title': 'Depo bağlantıları', 'conn.subtitle': '{host} sunucusunu bir arka uca bağlayın ya da kendi bilgisayarınızı {host} sunucusuna bağlayın.', 'conn.close': 'Kapat', 'conn.tab.storages': 'Depolar', 'conn.tab.connect': 'Nasıl bağlanılır', 'conn.loading': 'Yükleniyor…', 'conn.visibleOnly': 'bu depoya göz atabilirsiniz', 'conn.denied.title': 'Buraya depo ekleyebilen tek kişi yöneticidir', 'conn.denied.none': 'Hesabınız dosyalara göz atabilir ama bu sunucunun nereye bağlı olduğunu değiştiremez. Depo eklemek ya da düzenlemek için sunucunun yöneticisine başvurun.', 'conn.denied.anonymous': 'Bu sunucuda oturum açmış değilsiniz.', 'conn.denied.unreachable': 'Sunucu yanıt vermedi: {error}', 'conn.denied.guideHint': 'Zaten görebildiğiniz depolara kendi bilgisayarınızdan bağlanmak için yönetici yetkisi gerekmez.', 'conn.denied.guideCta': 'Nasıl bağlanacağımı göster', 'conn.list.count': '{n} depo', 'conn.list.count_one': '{n} depo', 'conn.list.add': 'Depo ekle', 'conn.list.empty': 'Henüz yapılandırılmış depo yok. Bir tane ekleyin, dosyalar dosya yöneticisinde görünsün.', 'conn.list.edit': 'Düzenle', 'conn.list.remove': 'Kaldır', 'conn.list.confirm': 'Gerçekten kaldırılsın mı?', 'conn.list.readOnly': 'salt okunur', 'conn.list.disabled': 'kapalı', 'conn.form.newTitle': 'Yeni depo', 'conn.form.editTitle': '“{name}” düzenleniyor', 'conn.form.name': 'Görünen isim', 'conn.form.namePlaceholder': 'fotograflar', 'conn.form.nameHelp': 'Bu deponun her yerdeki adı: dosya yöneticisinde, yollarda (isim://klasor) ve WebDAV adreslerinde.', 'conn.form.driver': 'Tür', 'conn.form.driverLocked': 'Bir deponun türü oluşturulduktan sonra değiştirilemez — yollar zaten ona işaret ediyor.', 'conn.form.readOnly': 'Salt okunur (bu depoya hiçbir şey yazılamaz)', 'conn.form.enabled': 'Etkin', 'conn.form.test': 'Bağlantıyı sına', 'conn.form.testing': 'Sınanıyor…', 'conn.form.testOk': 'Bağlandı. Kökte {count} öğe var.', 'conn.form.testOk_one': 'Bağlandı. Kökte {count} öğe var.', 'conn.form.testFail': 'Bağlanılamadı: {error}', 'conn.form.save': 'Kaydet', 'conn.form.saving': 'Kaydediliyor…', 'conn.form.cancel': 'Vazgeç', 'conn.form.nameRequired': 'Depoya bir isim verin.', 'conn.form.fillRequired': '* ile işaretli alanları doldurun.', 'conn.form.required': 'Zorunlu', 'conn.form.advanced': 'Gelişmiş ayarlar', 'conn.form.noFields': 'Bu sunucu bu sürücü için hiçbir ayar tanımlamadı.', 'conn.form.reveal': 'Göster', 'conn.form.hide': 'Gizle', 'conn.guide.protocol': 'Protokol', 'conn.guide.storage': 'Depo', 'conn.guide.allStorages': 'Tüm depolar', 'conn.guide.copy': 'Kopyala', 'conn.guide.copied': 'Kopyalandı', 'conn.guide.goodToKnow': 'Bilmekte fayda var', 'conn.guide.userPlaceholder': 'eposta@ornek.com', 'conn.guide.secretPlaceholder': 'parolaniz-ya-da-token', 'conn.guide.fact.url': 'Adres', 'conn.guide.fact.urlRootHint': 'Görebildiğiniz her depo bu adresin altında bir klasör olarak görünür.', 'conn.guide.fact.urlStorageHint': 'Doğrudan “{storage}” deposunu bağlar. Son parçayı silerseniz tüm depoları görürsünüz.', 'conn.guide.fact.user': 'Kullanıcı adı', 'conn.guide.fact.password': 'Parola', 'conn.guide.webdav.summary': 'WebDAV, filex’i bir sürücü gibi bağlar: Windows Gezgini, macOS Finder, Linux, rclone ve Cyberduck bu protokolü konuşur ve yapılan her değişiklik filex’e yansır.', 'conn.guide.webdav.userHint': 'filex hesabınızın e-posta adresi — görünen adınız değil.', 'conn.guide.webdav.passwordHint': 'Hesap parolanız ya da bir API token (Ayarlar → API token). İki adımlı doğrulaması açık bir hesap ZORUNLU olarak token kullanır: Basic kimlik doğrulamasında ikinci adım için yer yoktur.', 'conn.guide.webdav.win.s1': 'Dosya Gezgini’ni açın, Bu bilgisayar’a sağ tıklayın ve “Ağ sürücüsü bağla…” deyin.', 'conn.guide.webdav.win.s2': 'Bir sürücü harfi seçin ve klasör olarak {url} adresini girin.', 'conn.guide.webdav.win.s3': '“Farklı kimlik bilgileri kullanarak bağlan” kutusunu işaretleyin ve yukarıdaki kullanıcı adı/parola ile girin.', 'conn.guide.webdav.win.cmdCaption': 'Komut İstemi (sihirbaz olmadan aynı iş)', 'conn.guide.webdav.win.limits': 'Windows’un tam olarak filex hatası gibi görünen üç yerleşik sınırı vardır: aktarımlar ~47,7 MB’ta durur, yaklaşık bin dosyalı klasörler açılmaz (“Disk biçimlendirilmemiş”) ve her iki ayarı değiştirdikten sonra WebClient hizmeti yeniden başlatılmalıdır.', 'conn.guide.webdav.win.regCaption': 'Yönetici olarak çalıştırın, sonra sürücüyü yeniden bağlayın', 'conn.guide.webdav.win.https': 'HTTPS zorunludur. Windows Basic kimlik bilgilerini yalnızca TLS üzerinden gönderir; düz http:// üzerinde hiçbir açıklama vermeden reddeder. BasicAuthLevel değerini 2 yapmayın — TLS kullanın.', 'conn.guide.webdav.win.persist': 'Bağlanan sürücü oturum kapatmayı atlatamaz: Windows 7’den beri Basic kimlik bilgileri Kimlik Bilgisi Yöneticisi’nde saklanamaz ve /persistent:yes bunu değiştirmez. Kendiliğinden geri gelsin istiyorsanız komutu bir oturum açma betiğinden yeniden çalıştırın.', 'conn.guide.webdav.win.service': 'Hiç bağlanamıyorsa WebClient hizmetinin çalıştığından emin olun: sc config WebClient start= auto && net start WebClient.', 'conn.guide.webdav.mac.s1': 'Finder’da Git → Sunucuya Bağlan… (⌘K) yolunu izleyin.', 'conn.guide.webdav.mac.s2': '{url} adresini girip bağlanın.', 'conn.guide.webdav.mac.s3': 'Yukarıdaki kullanıcı adı ve parolayla kimliğinizi doğrulayın.', 'conn.guide.webdav.mac.note': 'Sürücü Konumlar altında görünür; her depo en üst düzeyde bir klasördür.', 'conn.guide.webdav.linux.mountCaption': 'davfs2 ya da masaüstü dosya yöneticisi (GNOME Dosyalar, Dolphin)', 'conn.guide.webdav.linux.gvfsComment': 'ya da bu adresi GNOME Dosyalar / Dolphin icine yapistirin', 'conn.guide.webdav.linux.locks': 'davfs2 için kilitler kapatılmalıdır. filex WebDAV kilitlerini süreç belleğinde tutar; yeniden başlatmayı atlatamazlar ve kopyalar arasında paylaşılmazlar — davfs2 tersini varsayar ve takılır.', 'conn.guide.webdav.rclone.obscureCaption': 'rclone parolayı gizlenmiş biçimde saklar — önce bunu çalıştırıp çıktısını aşağıya yapıştırın', 'conn.guide.webdav.rclone.passPlaceholder': '', 'conn.guide.webdav.rclone.useCaption': 'Kullanımı', 'conn.guide.webdav.duck.s1': 'Yeni Yer İmi → WebDAV (HTTPS).', 'conn.guide.webdav.duck.s2': 'Sunucu {host}, port 443.', 'conn.guide.webdav.duck.s3': 'Yol {path}.', 'conn.guide.webdav.duck.s4': 'Kullanıcı adı {user}, parola yukarıdaki gibi.', 'conn.guide.webdav.note.delete': 'WebDAV üzerinden silme kalıcıdır. Web arayüzü dosyaları filex çöp kutusuna taşır; istemciden silme ise nesneyi doğrudan arka uçtan kaldırır.', 'conn.guide.webdav.note.locks': 'Kilitler sunucu belleğinde durur: yeniden başlatmayı atlatamazlar ve kopyalar arasında paylaşılmazlar. Windows ile Office’i memnun etmek için varlar, eşzamanlı düzenlemeyi hakemlemek için değil.', 'conn.guide.webdav.note.permissions': 'Web arayüzünde ne görüyorsanız burada da onu görürsünüz. Kök yalnızca açabildiğiniz depoları listeler; yetkiniz dışındaki bir yol 403 değil 404 döner, böylece ağaç neyin var olduğunu sızdırmaz.', 'conn.guide.webdav.note.http': 'Bu sunucuya düz http:// ile erişiliyor. Windows kimlik bilgilerinizi hiç göndermez, diğer tüm istemciler ise parolanızı açık metin olarak yollar. Bağlamadan önce filex’i TLS arkasına alın.', // ── S3 ucu: anahtarlar ve rehber ───────────────────────────────── 'conn.s3keys.title': 'S3 erişim anahtarları', 'conn.s3keys.lead': 'Bir erişim anahtarı, S3 konuşan her istemcinin — rclone, restic, AWS CLI, mc, s3fs, Cyberduck — filex’e bağlanmasını sağlar. Anahtar sizin yetkinizi taşır, bir fazlasını değil.', 'conn.s3keys.disabled': 'Bu sunucuda S3 ucu kapalı (FILEX_S3). Burada üretilen anahtar, yönetici ucu tekrar açana kadar bağlanmaz.', 'conn.s3keys.cannotMint': 'Erişim anahtarı üretebilecek bir hesapla oturum açmış değilsiniz. Aşağıdaki talimatlar yine geçerli — bir anahtar isteyip yapıştırmanız yeter.', 'conn.s3keys.label': 'Ne için? (dizüstü yedeği, CI, …)', 'conn.s3keys.defaultLabel': 'erişim anahtarı', 'conn.s3keys.everyBucket': 'Görebildiğim tüm kovalar', 'conn.s3keys.prefix': 'Kova içindeki klasör (isteğe bağlı)', 'conn.s3keys.mint': 'Anahtar oluştur', 'conn.s3keys.inheritNote': 'Bir anahtar sahip olduğunuz yetkiyi yalnızca DARALTABİLİR: yetkileriniz, kiracınız, rolünüz. Anahtarı tek bir kovaya ya da klasöre kısıtlamak, bir dizüstü yedeği ile her şeyi okuyabilen bir kimlik arasındaki farktır.', 'conn.s3keys.once': 'Gizli anahtarı şimdi kopyalayın — bir daha gösterilmeyecek.', 'conn.s3keys.accessKeyID': 'Erişim anahtarı kimliği', 'conn.s3keys.secret': 'Gizli anahtar', 'conn.s3keys.dismiss': 'Kopyaladım', 'conn.s3keys.col.label': 'Etiket', 'conn.s3keys.col.key': 'Erişim anahtarı kimliği', 'conn.s3keys.col.scope': 'Kapsam', 'conn.s3keys.col.lastUsed': 'Son kullanım', 'conn.s3keys.scopeAll': 'görebildiğiniz her şey', 'conn.s3keys.noLabel': '(etiketsiz)', 'conn.s3keys.neverUsed': 'hiç', 'conn.s3keys.enable': 'Aç', 'conn.s3keys.disable': 'Kapat', 'conn.s3keys.revoke': 'İptal et', 'conn.s3keys.confirm': 'Emin misiniz?', 'conn.s3keys.empty': 'Henüz erişim anahtarı yok.', 'conn.guide.s3.summary': 'S3 ucu, S3 konuşan her şeyin — yedekleme, senkron araçları, SDK’lar — hedefi olarak filex’i kullanmanızı sağlar; hem de zaten sahip olduğunuz depolarla.', 'conn.guide.s3.keyPlaceholder': 'yukarıdan bir anahtar oluşturun', 'conn.guide.s3.secretPlaceholder': 'anahtarı oluştururken bir kez gösterilir', 'conn.guide.s3.fact.endpoint': 'Uç adresi', 'conn.guide.s3.fact.endpointHint': 'İstemciyi buraya yöneltin, filex’in web adresine değil.', 'conn.guide.s3.fact.bucket': 'Kova', 'conn.guide.s3.fact.bucketHint': 'Kova = filex deposu. Kovaları istemci değil yönetici oluşturur.', 'conn.guide.s3.fact.key': 'Erişim anahtarı kimliği', 'conn.guide.s3.fact.keyHint': 'Genel yarısı; her istekte gider.', 'conn.guide.s3.fact.secret': 'Gizli anahtar', 'conn.guide.s3.fact.secretHint': 'Yalnızca anahtar oluşturulurken bir kez gösterilir. filex bir daha gösteremez — kaybolduysa yeni anahtar üretin.', 'conn.guide.s3.fact.region': 'Bölge', 'conn.guide.s3.fact.regionHint': 'filex’te bölge yok; hangi değeri verirseniz aynen geri döner. Yine de istemciler bir değer ister.', 'conn.guide.s3.fact.addressing': 'Adresleme', 'conn.guide.s3.fact.pathStyle': 'yol tabanlı (zorunlu)', 'conn.guide.s3.fact.pathStyleHint': 'Bu kurulumda S3’e ayrılmış bir alan adı yok, yani kova.host çözülmez.', 'conn.guide.s3.fact.virtualHosted': 'sanal-host ya da yol tabanlı', 'conn.guide.s3.fact.virtualHostedHint': 'Bu kurulumun kendi S3 alan adı var, iki adresleme de çalışır.', 'conn.guide.s3.rclone.useCaption': 'Kullanımı', 'conn.guide.s3.rclone.mtime': 'filex dosyanın değişiklik zamanını taşır (x-amz-meta-mtime); böylece rclone sync ilk turdan sonra oturur, her seferinde her şeyi yeniden yüklemez.', 'conn.guide.s3.aws.configureCaption': 'Bir kez ayarlayın', 'conn.guide.s3.aws.useCaption': 'Kullanımı', 'conn.guide.s3.aws.pathStyle': 'AWS yapılandırmanıza yol tabanlı adreslemeyi ekleyin; yoksa her komut DNS aşamasında düşer.', 'conn.guide.s3.restic.envCaption': 'Ortam değişkenleri', 'conn.guide.s3.restic.useCaption': 'Yedekle, doğrula, buda', 'conn.guide.s3.restic.verified': 'Bu uca karşı ölçüldü: restic check --read-data her pack’i bayt bayt okuyor ve hata bulmuyor.', 'conn.guide.s3.mc.aliasCaption': 'Takma adı ekleyin', 'conn.guide.s3.mc.useCaption': 'Kullanımı', 'conn.guide.s3.s3fs.credsCaption': 'Kimlik dosyası', 'conn.guide.s3.s3fs.mountCaption': 'Bağlayın', 'conn.guide.s3.s3fs.note': 's3fs üzerinden bir dosyayı düzenlemek nesnenin tamamını yeniden yazar; silme ise filex çöpüne gider. Paylaşılan bir klasör için iyi, veritabanı için değil.', 'conn.guide.s3.duck.s1': 'Yeni yer imi → Amazon S3.', 'conn.guide.s3.duck.s2': 'Sunucu: {host}.', 'conn.guide.s3.duck.s3': 'Erişim anahtarı kimliği: {key}, gizli anahtar yukarıdaki.', 'conn.guide.s3.duck.s4': 'Yer imini açın; kovalar sizin filex depolarınızdır.', 'conn.guide.s3.duck.pathStyle': 'Tercihler → S3 altında "Use virtual host style" seçeneğini KAPATIN — bu kurulumda joker S3 alan adı yok.', 'conn.guide.s3.sdk.note': 'SigV4 konuşan her istemci aynı şekilde çalışır: uç adresi, anahtar, gizli anahtar ve bu kurulumun kendi S3 alan adı yoksa yol tabanlı adresleme.', 'conn.guide.s3.note.buckets': 'Kova = filex deposu. İstemci kovanın İÇİNDE klasör ve nesne oluşturabilir, ama kovanın kendisini oluşturamaz: kova bir sürücü ve bir yol ister, bunu bir S3 isteği ifade edemez.', 'conn.guide.s3.note.permissions': 'Anahtar tam olarak sizin gördüğünüzü görür. Açamayacağınız bir kova "yasak" değil "böyle bir kova yok" der; böylece uç, neyin var olduğunu sızdırmaz.', 'conn.guide.s3.note.trash': 'Silme her yerdeki gibi filex çöpüne gider ve saklama politikası süpürene kadar geri alınabilir.', 'conn.guide.s3.note.mtime': 'Yüklemeler değişiklik zamanını taşır; istemcinin gönderdiği sağlama toplamları (Content-MD5, x-amz-checksum-*) doğrulanır — bozulmuş bir yükleme saklanmaz, reddedilir.', 'conn.guide.s3.note.pathStyle': 'Bu kurulumda S3’e ayrılmış alan adı yok; istemcilere yol tabanlı adresleme söylenmeli. Söylenmezse güncel bir SDK, ne filex’i ne de sebebi anan bir DNS hatasıyla düşer.', 'conn.guide.s3.note.http': 'Bu uç düz http://. İmzalar isteği yine korur ama nesneler açık metin gider. Bir yedeği buraya yöneltmeden önce filex’i TLS arkasına alın.', // ── SFTP ucu: anahtarlar ve rehber ─────────────────────────────── 'conn.sshkeys.title': 'SSH anahtarları', 'conn.sshkeys.lead': 'Bir açık anahtar kaydedin; SSH konuşan her istemci — sftp, scp, WinSCP, FileZilla, rclone, sshfs — parolanızı göndermeden bağlansın.', 'conn.sshkeys.disabled': 'Bu sunucuda SFTP ucu kapalı (FILEX_SFTP). Burada kaydedilen anahtar, yönetici ucu açana kadar bağlanmaz.', 'conn.sshkeys.cannotAdd': 'Anahtar kaydedebilecek bir hesapla oturum açmış değilsiniz.', 'conn.sshkeys.paste': '~/.ssh/id_ed25519.pub dosyasının içeriğini yapıştırın', 'conn.sshkeys.name': 'Ad (isteğe bağlı — boşsa anahtarın kendi yorumu kullanılır)', 'conn.sshkeys.add': 'Anahtar ekle', 'conn.sshkeys.noCopyId': 'ssh-copy-id burada çalışamaz: kabuk üzerinden ~/.ssh/authorized_keys dosyasına ekler, filex’in kabuğu yoktur. Giriş yolu bu kutudur.', 'conn.sshkeys.col.name': 'Ad', 'conn.sshkeys.col.fingerprint': 'Parmak izi', 'conn.sshkeys.col.added': 'Eklendi', 'conn.sshkeys.col.lastUsed': 'Son kullanım', 'conn.sshkeys.noName': '(adsız)', 'conn.sshkeys.neverUsed': 'hiç', 'conn.sshkeys.enable': 'Aç', 'conn.sshkeys.disable': 'Kapat', 'conn.sshkeys.remove': 'Sil', 'conn.sshkeys.confirm': 'Emin misiniz?', 'conn.sshkeys.empty': 'Henüz anahtar yok. Anahtarsız istemciler hesap parolanızla giriş yapar.', 'conn.guide.sftp.summary': 'SFTP, filex’i SSH konuşan her şeyin erişebileceği hâle getirir: bir yedekleme işi, bir tarayıcı, WinSCP, rclone ya da bağlanmış bir klasör.', 'conn.guide.sftp.fact.host': 'Sunucu', 'conn.guide.sftp.fact.hostHint': 'Web uygulamasıyla aynı makine, kendine ait bir portta.', 'conn.guide.sftp.fact.port': 'Port', 'conn.guide.sftp.fact.portHint': 'Ne 22 ne 443: SFTP ham TCP’dir, web vekilinin içinden geçemez.', 'conn.guide.sftp.fact.userHint': 'Kısa giriş adınız. Giriş adındaki @ işareti çoğu istemcinin ayar dosyasında tırnaklanmak zorundadır; bu alan tam da onu ortadan kaldırır.', 'conn.guide.sftp.fact.auth': 'Giriş yöntemi', 'conn.guide.sftp.fact.authKey': 'kayıtlı SSH anahtarınız (ya da parolanız)', 'conn.guide.sftp.fact.authPassword': 'hesap parolanız — ya da yukarıdan bir anahtar kaydedin', 'conn.guide.sftp.fact.authHint': 'API token da parola yerine geçer ve tek başına iptal edilebilir. İki adımlı doğrulaması açık bir hesap anahtar ya da token kullanmalıdır.', 'conn.guide.sftp.fact.path': 'Yol', 'conn.guide.sftp.fact.pathHint': 'İlk klasör bir depodur; kök, açabildiğiniz depoları listeler.', 'conn.guide.sftp.openssh.connectCaption': 'Bağlan, gönder, al', 'conn.guide.sftp.openssh.noShell': 'Burada kabuk yok, yalnız SFTP alt sistemi var. `ssh sunucu komut` bilerek reddedilir; scp çalışır çünkü OpenSSH 9 onun için de SFTP konuşur.', 'conn.guide.sftp.key.tab': 'Anahtar kurulumu', 'conn.guide.sftp.key.s1': 'Bağlanacak makinede bir anahtar çifti üretin (zaten varsa atlayın).', 'conn.guide.sftp.key.s2': 'AÇIK yarısını kopyalayın — .pub dosyası, asla diğeri değil.', 'conn.guide.sftp.key.s3': 'Yukarıdaki kutuya yapıştırıp bağlanın; o andan sonra parola gönderilmez.', 'conn.guide.sftp.key.genCaption': 'Kendi makinenizde', 'conn.guide.sftp.key.noCopyId': 'ssh-copy-id filex’e karşı ÇALIŞMAZ: ~/.ssh/authorized_keys dosyasına eklemek için kabuğa ihtiyacı var, filex’te kabuk yok. Anahtarı yukarıdan yapıştırın.', 'conn.guide.sftp.winscp.s1': 'Yeni site → Dosya protokolü: SFTP.', 'conn.guide.sftp.winscp.s2': 'Sunucu adı: {host}, port: {port}.', 'conn.guide.sftp.winscp.s3': 'Kullanıcı adı: {user}. Anahtar için: Gelişmiş → SSH → Kimlik Doğrulama → özel anahtar dosyası.', 'conn.guide.sftp.winscp.s4': 'WinSCP .ppk biçiminde özel anahtar ister — OpenSSH anahtarını kendi aracıyla (Araçlar → PuTTYgen) bir kez dönüştürün.', 'conn.guide.sftp.filezilla.s1': 'Dosya → Site Yöneticisi → Yeni site, Protokol: SFTP.', 'conn.guide.sftp.filezilla.s2': 'Sunucu: {host}, port: {port}.', 'conn.guide.sftp.filezilla.s3': 'Kullanıcı: {user}. Giriş türü: parola için Normal, anahtar için Anahtar dosyası.', 'conn.guide.sftp.rclone.useCaption': 'Kullanımı', 'conn.guide.sftp.sshfs.mountCaption': 'Bağla ve çöz', 'conn.guide.sftp.sshfs.note': 'Bağlanmış bir klasörde her kayıt dosyanın tamamını yeniden yazar. Belgeler için iyi; veritabanı ya da yerinde düzenlediğiniz bir video için değil.', 'conn.guide.sftp.note.storages': 'Kök bir ev dizini değildir: açabildiğiniz depoları listeler ve yolun ilk parçası bir depoyu adlandırır.', 'conn.guide.sftp.note.permissions': 'İstemcinizin çizdiği izin bitleri buradaki erişim seviyenizden gelir; yani salt-okunur görünen bir dosya sizin için gerçekten öyledir.', 'conn.guide.sftp.note.trash': 'Silme her yerdeki gibi filex çöpüne gider ve saklama politikası süpürene kadar geri alınabilir.', 'conn.guide.sftp.note.totp': 'Hesabınızda iki adımlı doğrulama açıksa parola burada çalışmaz — SSH’ın kodu soracak bir kanalı yok. Bir anahtar kaydedin ya da parola yerine API token kullanın.', 'conn.guide.sftp.note.disabled': 'Bu sunucuda SFTP ucu kapalı. Yönetici açtığında bu talimatlar çalışacaktır.', // ── FTPS ───────────────────────────────────────────────────────── 'conn.guide.ftps.summary': 'FTPS, yalnızca FTP öğrenmiş ekipman için var: tarayıp-klasöre-atan yazıcılar, EDI muhatapları, eski laboratuvar ve endüstri yazılımları. Her zaman TLS üzerinden.', 'conn.guide.ftps.fact.host': 'Sunucu', 'conn.guide.ftps.fact.hostHint': 'Web uygulamasıyla aynı makine, kendine ait bir portta.', 'conn.guide.ftps.fact.port': 'Port', 'conn.guide.ftps.fact.portHint': 'Kontrol kanalı. Veri, aşağıdaki pasif aralıktan ayrı bir porttan akar.', 'conn.guide.ftps.fact.mode': 'Şifreleme', 'conn.guide.ftps.fact.modeValue': 'FTPS — açık (explicit) TLS, zorunlu', 'conn.guide.ftps.fact.modeHint': 'Düz FTP, parola okunmadan reddedilir. "Require explicit FTP over TLS" seçin; "plain FTP" ya da "implicit" asla.', 'conn.guide.ftps.fact.userHint': 'Kısa giriş adınız ya da e-postanız. Parola yerine API token da geçer ve tek başına iptal edilebilir.', 'conn.guide.ftps.fact.passwordHint': 'Hesap parolanız ya da bir API token. İki adımlı doğrulaması açık hesap token kullanmalıdır — FTP\'nin kodu soracak bir yolu yok.', 'conn.guide.ftps.fact.pasv': 'Pasif portlar', 'conn.guide.ftps.fact.pasvHint': 'Veri bağlantıları buraya düşer. Güvenlik duvarınız bu aralığı kapatıyorsa aktarım iki tarafta da hata vermeden ASILI KALIR — FTP\'nin klasik arızası budur.', 'conn.guide.ftps.filezilla.s1': 'Dosya → Site Yöneticisi → Yeni site, Protokol: FTP.', 'conn.guide.ftps.filezilla.s2': 'Sunucu: {host}, port: {port}.', 'conn.guide.ftps.filezilla.s3': 'Şifreleme: "Require explicit FTP over TLS". Giriş türü: Normal, kullanıcı: {user}.', 'conn.guide.ftps.filezilla.s4': 'Aktarım ayarları → Pasif. Bu sunucu aktif modu reddeder.', 'conn.guide.ftps.winscp.s1': 'Yeni site → Dosya protokolü: FTP, Şifreleme: TLS/SSL Explicit encryption.', 'conn.guide.ftps.winscp.s2': 'Sunucu adı: {host}, port: {port}.', 'conn.guide.ftps.winscp.s3': 'Kullanıcı adı: {user}, parola yukarıdaki.', 'conn.guide.ftps.curl.caption': 'Gönder ve al', 'conn.guide.ftps.curl.sslReqd': '--ssl-reqd isteğe bağlı değil: curl\'ün düz metne geri düşmek yerine TLS\'i ZORUNLU kılmasını sağlar. Bu sunucu zaten düz metni reddediyor, ama alışkanlık sizi reddetmeyen sunuculara karşı korur.', 'conn.guide.ftps.lftp.caption': 'Bağlan', 'conn.guide.ftps.lftp.protectData': 'ssl-protect-data yalnız girişi değil DOSYAYI da şifreler. Olmazsa lftp TLS ile giriş yapar ve dosyayı açık metin gönderir — sahada en sık yapılan FTPS yanlışı budur.', 'conn.guide.ftps.rclone.useCaption': 'Kullanımı', 'conn.guide.ftps.printer.tab': 'Tarayıcı / yazıcı', 'conn.guide.ftps.printer.s1': 'Cihazın tara-ve-FTP\'ye-gönder ayarlarında: sunucu {host}, port {port}.', 'conn.guide.ftps.printer.s2': 'Kullanıcı: {user}, parola yukarıdaki. Cihaz için kendi parolanız yerine bir API token üretin — başka hiçbir şeyi değiştirmeden iptal edilebilir.', 'conn.guide.ftps.printer.s3': 'Yol: {path} — ya da önceden oluşturduğunuz bir alt klasör. Cihaz depo oluşturamaz.', 'conn.guide.ftps.printer.s4': '"SSL/TLS" ya da "FTPS explicit" seçeneğini AÇIN ve PASİF modu seçin.', 'conn.guide.ftps.printer.noTLS': 'Tara-ve-gönder yazılımlarının önemli bir kısmı TLS konuşamıyor. Bu sunucu öyle bir cihazla konuşmayacak ve bu bilinçli: alternatifi, belgelerinizin ve parolanızın ofis ağında açık metin dolaşması.', 'conn.guide.ftps.note.tls': 'TLS zorunludur ve kapatan bir düğme yoktur. Düz FTP parolanızı açık metin gönderir, ardından dosyanızı da.', 'conn.guide.ftps.note.passive': 'Yalnızca pasif mod. Aktif modda sunucu istemciyi geri arar; bu NAT arkasında çalışmaz ve çoğu güvenlik duvarı tarafından engellenir.', 'conn.guide.ftps.note.storages': 'Kök bir ev dizini değildir: açabildiğiniz depoları listeler ve yolun ilk parçası bir depoyu adlandırır.', 'conn.guide.ftps.note.trash': 'Silme her yerdeki gibi filex çöpüne gider ve saklama politikası süpürene kadar geri alınabilir.', 'conn.guide.ftps.note.prefer': 'İstemci SFTP konuşabiliyorsa onu tercih edin: tek bağlantı, tek port, pasif mod sürprizi yok.', 'conn.guide.ftps.note.selfSigned': 'Bu sunucu kendinden imzalı bir sertifika kullanıyor. Kanalı şifreler ama karşı tarafın kim olduğunu kanıtlamaz; çoğu istemci bir kez onay ister. Önemli bir iş için gerçek sertifika koyun.', 'conn.guide.ftps.note.disabled': 'Bu sunucuda FTPS ucu kapalı. Yönetici açtığında bu talimatlar çalışacaktır.', // ── NFS ────────────────────────────────────────────────────────── 'conn.nfs.title': 'NFS export\'ları', 'conn.nfs.lead': 'Bir export, ağınızdaki bir makinenin filex\'i sürücü olarak bağlamasını sağlar — medya oynatıcı, derleme sunucusu, yedek kutusu.', 'conn.nfs.pathIsSecret': '⚠ Export yolu PAROLANIN TA KENDİSİDİR. NFS, Kerberos olmadan istemciye kim olduğunu soramaz; bu yüzden filex yola 32 rastgele bayt koyar: yolu bilen sizin adınıza bağlanır. Bağlama satırını bir kimlik bilgisi gibi saklayın — /etc/fstab çoğu sistemde herkes tarafından okunabilir.', 'conn.nfs.disabled': 'Bu sunucuda NFS ucu kapalı (FILEX_NFS). Burada oluşturulan export, yönetici ucu açana kadar bağlanmaz.', 'conn.nfs.cannotMint': 'Export oluşturabilecek bir hesapla oturum açmış değilsiniz.', 'conn.nfs.label': 'Ne için? (medya oynatıcı, yedek kutusu, …)', 'conn.nfs.defaultLabel': 'nfs export', 'conn.nfs.everyStorage': 'Görebildiğim tüm depolar', 'conn.nfs.prefix': 'Depo içindeki klasör (isteğe bağlı)', 'conn.nfs.allowCidrs': 'İzinli adresler, örn. 192.168.1.0/24 (isteğe bağlı)', 'conn.nfs.readOnly': 'Salt okunur', 'conn.nfs.readOnlyHint': 'Bir makine için güvenli varsayılan salt okunurdur: sizin yetkiniz ne olursa olsun bu bağlantı üzerinden her yazmayı reddeder. Adres listesi daha da daraltır — listenin dışından gelen bağlanamaz.', 'conn.nfs.mint': 'Export oluştur', 'conn.nfs.once': 'Şimdi kopyalayın — yol yalnızca bir kez gösterilir ve geri alınamaz.', 'conn.nfs.dismiss': 'Kopyaladım', 'conn.nfs.col.label': 'Etiket', 'conn.nfs.col.scope': 'Kapsam', 'conn.nfs.col.mode': 'Mod', 'conn.nfs.col.lastUsed': 'Son bağlanma', 'conn.nfs.scopeAll': 'görebildiğiniz her şey', 'conn.nfs.modeRead': 'salt okunur', 'conn.nfs.modeWrite': 'okuma/yazma', 'conn.nfs.noLabel': '(etiketsiz)', 'conn.nfs.neverUsed': 'hiç', 'conn.nfs.enable': 'Aç', 'conn.nfs.disable': 'Kapat', 'conn.nfs.revoke': 'İptal et', 'conn.nfs.confirm': 'Emin misiniz?', 'conn.nfs.empty': 'Henüz export yok.', 'conn.guide.nfs.summary': 'NFS, filex\'i kendi ağınızdaki bir makinede sürücü olarak bağlar — NAS protokolü, onu bekleyen cihazlar için.', 'conn.guide.nfs.pathPlaceholder': 'yukarıdan bir export oluşturun', 'conn.guide.nfs.fact.host': 'Sunucu', 'conn.guide.nfs.fact.hostHint': 'Web uygulamasıyla aynı makine, kendine ait bir portta.', 'conn.guide.nfs.fact.port': 'Port', 'conn.guide.nfs.fact.portHint': 'Hem port= hem mountport= buna ayarlanmalı; filex mount ve NFS servislerini tek portta veriyor.', 'conn.guide.nfs.fact.export': 'Export yolu', 'conn.guide.nfs.fact.exportHint': 'Kimlik bilgisi budur. Export oluşturulurken bir kez gösterilir ve hash\'li saklanır — filex bir daha gösteremez.', 'conn.guide.nfs.fact.options': 'Bağlama seçenekleri', 'conn.guide.nfs.fact.optionsHint': 'nolock, çünkü filex NFS kilit yöneticisini çalıştırmıyor; nfsvers=3, çünkü bu sunucunun konuştuğu sürüm bu.', 'conn.guide.nfs.linux.mountCaption': 'Bağla', 'conn.guide.nfs.linux.fstabSecret': 'Bu yolu içeren bir /etc/fstab satırı, herkesin okuyabildiği bir dosyadaki paroladır. Ortamınızda önemliyse kimlik korumalı automount kullanın ya da bağlamayı yalnız root\'un okuyabildiği bir unit dosyasında tutun.', 'conn.guide.nfs.mac.mountCaption': 'Bağla', 'conn.guide.nfs.mac.resvport': 'macOS resvport ister: istemcisi ayrıcalıklı bir kaynak portta ısrar eder ve olmadan bağlantıyı reddeder.', 'conn.guide.nfs.win.s1': 'Windows Özellikleri\'nden "Services for NFS" → "Client for NFS" bileşenini açın (yalnız Pro ve Enterprise; Home\'da yok).', 'conn.guide.nfs.win.s2': 'Komut İstemi\'ni yönetici olarak açın.', 'conn.guide.nfs.win.s3': 'Aşağıdaki komutla export\'u bir sürücü harfine bağlayın.', 'conn.guide.nfs.win.cmdCaption': 'Z: sürücüsüne bağla', 'conn.guide.nfs.win.port': 'Windows\'un mount servisinin portunu söyleme imkânı yok; yalnızca standart 2049 portundaki bir NFS sunucusuna erişebilir. Bu sunucu başka bir porttaysa SFTP\'yi ya da filex masaüstü uygulamasını kullanın.', 'conn.guide.nfs.nas.tab': 'NAS / medya oynatıcı', 'conn.guide.nfs.nas.s1': 'Cihazın NFS ayarlarında: sunucu {host}, port {port} (ayrı ayrı soruyorsa hem NFS hem mount portunu ayarlayın).', 'conn.guide.nfs.nas.s2': 'Uzak yol: yukarıdaki export yolu, birebir.', 'conn.guide.nfs.nas.s3': 'NFS sürüm 3, kilitleme kapalı. Cihazın gerçekten yazması gerekmiyorsa export\'u salt okunur oluşturun.', 'conn.guide.nfs.note.unencrypted': 'NFSv3 şifreli değildir. Trafiği okuyabilen dosyalarınızı görür, yolu öğrenen bağlanabilir. Ev/ofis ağında ya da VPN üzerinden kullanın — internet üzerinden asla.', 'conn.guide.nfs.note.pathIsSecret': 'Export yolu kimlik bilgisinin tamamıdır. Sızarsa yukarıdaki listeden iptal edin; değiştirilecek başka bir şey yok.', 'conn.guide.nfs.note.noPortmapper': '111 portunda portmapper yok; portu söylenmeyen istemci sunucuyu bulamaz. Buradaki her komutun port= ve mountport= taşımasının sebebi bu.', 'conn.guide.nfs.note.uid': 'İstemcinizin gönderdiği kullanıcı ve grup kimlikleri yok sayılır: bağlantı zaten kime ait olduğunu biliyor. Gördüğünüz izinler filex\'teki erişiminizden gelir.', 'conn.guide.nfs.note.trash': 'Silme her yerdeki gibi filex çöpüne gider ve saklama politikası süpürene kadar geri alınabilir.', 'conn.guide.nfs.note.revoke': 'İptal anında değil, bir sonraki istekte etkili olur: NFS\'te sonlandırılacak bir oturum yok, bağlantısı açık olan istemci sıradaki işleminde hata alır.', 'conn.guide.nfs.note.disabled': 'Bu sunucuda NFS ucu kapalı. Yönetici açtığında bu talimatlar çalışacaktır.', 'conn.tokens.title': 'API jetonları', 'conn.tokens.lead': 'FTPS, WebDAV ve filex mount hesap parolanız yerine bir jetonla giriş yapar. Buradan üretin — tek başına iptal edilebilir, ayrıca iki adımlı doğrulaması açık bir hesap bunlarda parolasını zaten kullanamaz.', 'conn.tokens.mint': 'Jeton oluştur', 'conn.tokens.once': 'Şimdi kopyalayın — yalnızca bir kez gösterilir. Sunucuda yalnız özeti saklandığı için bir daha gösterilemez.', 'conn.tokens.dismiss': 'Kopyaladım', 'conn.tokens.cannotMint': 'Bu oturum jeton üretemiyor. Kendi hesabınızla giriş yapıp oluşturun.', 'conn.tokens.empty': 'Henüz jeton yok.', 'conn.tokens.neverUsed': 'hiç', 'conn.tokens.revoke': 'İptal et', 'conn.tokens.confirm': 'Emin misin?', 'conn.tokens.col.label': 'Ad', 'conn.tokens.col.scopes': 'Yetkisi', 'conn.tokens.col.used': 'Son kullanım', 'conn.tokens.revokeHint': 'İptal, yalnız bir sonraki girişi değil AÇIK bağlantıyı da durdurur: SFTP ya da FTPS oturumu kesilir, bağlı bir sürücü yarım dakika içinde çalışmayı bırakır.', 'conn.guide.mount.summary': 'filex mount, uzaktaki bir filex sunucusunu bu makinede bir klasöre bağlar — tarayıcının kullandığı aynı HTTPS üzerinden. Buradakilerin her yerden çalışan tek yöntemi: yerel ağ da gerekmez, ek sunucu da, üçüncü parti bir istemci de.', 'conn.guide.mount.fact.url': 'Sunucu adresi', 'conn.guide.mount.fact.urlHint': 'Tarayıcıda kullandığınız adresin aynısı. Başka hiçbir şeye erişilebilir olması gerekmez.', 'conn.guide.mount.fact.token': 'API jetonu', 'conn.guide.mount.fact.tokenPlaceholder': 'Jetonlar bölümünden oluşturun', 'conn.guide.mount.fact.tokenHint': 'Parolanız değil, jeton — tek başına iptal edilebilir, ayrıca 2FA açık bir hesap burada parolasını zaten kullanamaz.', 'conn.guide.mount.fact.remote': 'Neyi bağlayacağınız', 'conn.guide.mount.fact.remoteHint': '--remote vermezseniz her depo bir klasör olarak görünür; tek bir depoyu — ya da onun içindeki bir klasörü — adlandırırsanız yalnızca o bağlanır.', 'conn.guide.mount.linux.mountCaption': 'Bağlayın', 'conn.guide.mount.linux.umountCaption': 'Ayırın', 'conn.guide.mount.linux.umountWarn': 'Süreci öldürerek değil, fusermount ile ayırın. Ayrılmadan ölen bir bağlantı, birileri elle fusermount çalıştırana kadar her ls komutunun asılı kaldığı bir klasör bırakır.', 'conn.guide.mount.linux.systemdCaption': 'Girişte otomatik bağlansın (systemd kullanıcı birimi)', 'conn.guide.mount.win.winfsp': "Windows'ta bir kez WinFsp kurulması gerekiyor — ücretsiz ve açık kaynak: https://winfsp.dev. Başka bir şey gerekmiyor, sonrasında yönetici hakkı da istemiyor.", 'conn.guide.mount.win.mountCaption': 'Sürücü olarak bağlayın', 'conn.guide.mount.win.freeLetter': 'BOŞ bir sürücü harfi seçin. Harf bağlama sırasında oluşturulur, var olan bir şeye eklenmez; kullanımdaki bir harfi verirseniz bunu söylemeyen bir hatayla başarısız olur.', 'conn.guide.mount.win.stop': 'O pencerede Ctrl-C ile durdurun. Sürücü kaybolur ve bu makinede hiçbir şey kalmaz.', 'conn.guide.mount.mac.unsupported': "filex mount macOS'ta çalışmıyor. macFUSE gerekiyor; lisansı filex gibi bir programın onu sizin yerinize kurmasına izin vermiyor ve Go bağlaması filex'in bilinçli olarak kullanmadığı bir C derleyicisi istiyor. Komut burada çalışıyormuş gibi görünüp hiçbir şey yapmak yerine açıkça reddediyor.", 'conn.guide.mount.mac.alternatives': "macOS'ta filex masaüstü uygulamasını klasör senkronuyla kullanın (dosyalar diskte durur) ya da sürücü bağlayabilen bir istemciyle SFTP.", 'conn.guide.mount.note.notASync': 'Bu bir senkronizasyon değildir. Küçük bir okuma önbelleği dışında bu makineye hiçbir şey kopyalanmaz; yüz bin dosyanın içinden birini gerisini indirmeden açar. Dosyaları çevrimdışıyken istiyorsanız klasör senkronunu kullanın.', 'conn.guide.mount.note.reachable': 'Sunucuya, tarayıcının geçtiği hangi vekil ya da tünel varsa oradan ulaşır — çünkü altında aynı API vardır. İzinleriniz, depolarınız ve çok kiracılı bir sunucuda kiracınız da birlikte gelir.', 'conn.guide.mount.note.wholeFileWrites': 'Bağlantı üzerinden yazdığınız dosya, yazılırken değil, program onu kapattığında yüklenir. Çok büyük bir dosyayı yerinde düzenlemek burada yerel diskten yavaştır; içeri ve dışarı kopyalamak değildir.', 'conn.guide.mount.note.trash': 'Silme her yerdeki gibi filex çöp kutusuna gider ve saklama politikası süpürene kadar geri alınabilir.', 'conn.guide.mount.note.revoke': 'Bir bağlantıyı durdurmak için jetonu iptal edin. Bağlantı hâlâ takılı olsa bile yarım dakika içinde hizmet vermeyi bırakır.', 'storages.driver.ftp': 'FTP / FTPS', 'storages.driver.local': 'Yerel dosya sistemi', 'storages.driver.s3': 'S3 / Hetzner / MinIO', 'storages.driver.sftp': 'SFTP', 'storages.driver.smb': 'SMB / CIFS (NAS)', 'storages.driver.webdav': 'WebDAV', 'storages.fieldHelp.smbShare': "Sunucu adı olmadan yalnızca paylaşım adı: `\\\\nas\\media` değil, `media`.", 'storages.fieldHelp.smbDomain': 'Yalnızca Windows etki alanı hesabı için. NAS kullanıyorsanız boş bırakın.', 'storages.fieldHelp.smbRoot': 'Paylaşımın içindeki alt klasör. Paylaşımın tamamı için boş bırakın.', 'storages.fields.share': 'Paylaşım', 'storages.fields.domain': 'Etki alanı / çalışma grubu', 'storages.fields.dialTimeout': 'Bağlanma zaman aşımı (saniye)', 'storages.fieldHelp.disablePresign': 'Varsayılan olarak açık: yüklemeler ve herkese açık paylaşım bağlantılarındaki indirmeler filex üzerinden akar; kova endpoint\'inin tarayıcıdan erişilebilir olması gerekmez (yalnız yerel ağdaki MinIO doğrudan çalışır). Yalnızca endpoint kullanıcıların tarayıcısından erişilebiliyorsa (AWS, herkese açık MinIO) ve tarayıcının kovayla doğrudan konuşmasını istiyorsanız kapatın — çok büyük dosyalarda daha hızlıdır, ama depo SDK\'nın imzaladığı URL\'leri kabul etmelidir (Ceph RGW / bazı Hetzner kurulumları SignatureDoesNotMatch döner).', 'storages.fieldHelp.endpoint': 'AWS S3 için boş bırakın. S3 uyumlu diğer tüm depolar kendi endpoint\'ini ister.', 'storages.fieldHelp.hostKey': 'authorized_keys / known_hosts satır biçiminde tek bir açık anahtar.', 'storages.fieldHelp.insecureSkipHostKey': 'Her sunucu anahtarını kabul eder. Yalnızca geçici sunucular için.', 'storages.fieldHelp.keyPath': 'Sunucudaki anahtar dosyasının yolu; depo başlarken okunur. PEM alanı boşken kullanılır.', 'storages.fieldHelp.knownHosts': 'Katı sunucu anahtarı denetimi için OpenSSH known_hosts yolu. Varsayılan, ~/.filex/known_hosts içinde ilk bağlantıda güven.', 'storages.fieldHelp.passive': 'Kapatmak aktif moda geçirir; bu, sunucunun bu makineye geri bağlanmasını gerektirir.', 'storages.fieldHelp.path': 'Sunucudaki dizin. Yoksa oluşturulur; filex asla / dizinini mount etmez.', 'storages.fieldHelp.pathStyle': 'AWS dışındaki tüm depolarda açık olmalı. Endpoint girildiyse ve bu alana hiç dokunulmadıysa kendiliğinden açılır.', 'storages.fieldHelp.prefix': 'Bucket içindeki alt klasör. Zorunlu: filex bucket kökünün sahipliğini asla almaz.', 'storages.fieldHelp.region': 'Boş bırakılırsa "auto" kullanılır.', 'storages.fieldHelp.root': 'Arka uçtaki alt klasör. Zorunlu: filex hesabın kökünü asla mount etmez.', 'storages.fieldHelp.sftpAuth': 'Parola ya da özel anahtardan biri zorunludur.', 'storages.fieldHelp.tls': 'Düz FTP kimlik bilgilerini açık metin gönderir — sunucu destekliyorsa açın.', 'storages.fields.accessKey': 'Access key', 'storages.fields.basePath': 'Temel yol', 'storages.fields.bucket': 'Bucket', 'storages.fields.disablePresign': 'İmzalı URL\'leri kapat', 'storages.fields.endpoint': 'Endpoint', 'storages.fields.host': 'Sunucu', 'storages.fields.hostKey': 'Sabitlenmiş sunucu anahtarı', 'storages.fields.insecureSkipHostKey': 'Sunucu anahtarı doğrulamasını atla (güvensiz)', 'storages.fields.keyPath': 'Özel anahtar dosyası', 'storages.fields.knownHosts': 'known_hosts dosyası', 'storages.fields.name': 'Görünen isim', 'storages.fields.namePlaceholder': 'Kişisel fotoğraflar', 'storages.fields.passive': 'Pasif mod (PASV)', 'storages.fields.password': 'Parola', 'storages.fields.path': 'Dizin yolu', 'storages.fields.pathStyle': 'Path-style URL kullan (Hetzner, MinIO)', 'storages.fields.port': 'Port', 'storages.fields.prefix': 'Önek (prefix)', 'storages.fields.privateKey': 'Özel anahtar (PEM)', 'storages.fields.rbac': 'Öğe bazlı erişim denetimi (RBAC)', 'storages.fields.rbacHint': 'Açıkken admin olmayanlar yalnızca izin panelinden kendilerine verilen dosya/klasörleri görür. Kapalıyken depo tüm kullanıcılara açıktır (yetki role göre).', 'storages.fields.readOnly': 'Salt okunur mount', 'storages.fields.region': 'Bölge', 'storages.fields.root': 'Temel yol', 'storages.fields.secretKey': 'Secret key', 'storages.fields.tls': 'FTPS (açık AUTH TLS)', 'storages.fields.url': 'Temel URL', 'storages.fields.user': 'Kullanıcı', /* === gezinti:g1 — gezinti paneli (SideNav) === */ 'sidenav.title': 'Gezinti', 'sidenav.views': 'Görünümler', 'sidenav.storages': 'Depolar', 'sidenav.home': 'Ana sayfa', 'sidenav.myfiles': 'Dosyalarım', 'sidenav.recent': 'Son kullanılanlar', 'sidenav.starred': 'Yıldızlılar', 'sidenav.shared': 'Benimle paylaşılanlar', 'sidenav.trash': 'Çöp Kutusu', 'sidenav.collapse': 'Gezintiyi daralt', 'sidenav.expand': 'Gezintiyi genişlet', 'sidenav.close': 'Gezintiyi kapat', // ⚠ aç/kapat çifti ÇEKMECENİN, daralt/genişlet çifti yerleşik PANELİN — // ikisi birbirinin yerine kullanılamaz; bkz. en.ts'teki not ve Toolbar.vue // içindeki `navToggleLabel`. 560px altında panel listenin üzerine gelen bir // çekmecedir: raya inmez, hiç ekranda değildir; "genişlet" olmayan bir // genişliği büyütmeyi vaat ederdi. 'sidenav.open': 'Gezintiyi aç', 'sidenav.storage.shared': 'Paylaşılan', 'sidenav.storage.readOnly': 'Salt okunur', // ⚠ `toolbar.nav` KALDIRILDI, yerine bir şey konmadı — bkz. en.ts'teki not. // Paneli daraltan tek denetimin etiketiydi; önce "Gezinti" (panelin adı, // düğmenin ne yaptığını söylemiyor), sonra "Gezintiyi göster/gizle" (sabit // geçici çözüm). Gerçek düzeltme yukarıdaki dört `sidenav.*` fiili: // etiket `navOpen`'a bağlı, daraltacaksa "daralt", genişletecekse // "genişlet" yazıyor. 'node.home': 'Ana sayfa', 'node.recent': 'Son kullanılanlar', 'node.starred': 'Yıldızlılar', 'node.shared': 'Benimle paylaşılanlar', 'empty.recent.title': 'Henüz hiçbir şey açılmadı', 'empty.recent.hint': 'Açtığın dosyalar burada görünür', 'empty.starred.title': 'Henüz yıldızlı dosya yok', 'empty.starred.hint': 'Bir dosyayı yıldızla, burada bulasın', 'empty.shared.title': 'Seninle henüz bir şey paylaşılmadı', 'empty.shared.hint': 'Başkalarının paylaştığı klasör ve dosyalar burada görünür', /* etiket:t1 */ 'sidenav.tags': 'Etiketler', 'sidenav.tags.empty': 'Henüz etiket yok — bir dosyaya sağ tıklayıp Etiketler’den ekleyebilirsin.', 'sidenav.tags.more': '{count} tane daha göster', 'sidenav.tags.less': 'Daha az göster', 'empty.tag.title': '“{tag}” etiketli hiçbir şey yok', 'empty.tag.hint': 'Bir dosyaya sağ tıklayıp Etiketler’i seç, burada görünsün', 'sidenav.connections': 'Bağlantılar', 'sidenav.connect': 'Nasıl bağlanılır', 'sidenav.apikeys': 'API anahtarları', 'overlay.close': 'Kapat', 'conn.tokens.scopes': 'İzinler', 'conn.tokens.root': 'Tek bir klasörle sınırla (isteğe bağlı)', 'conn.tokens.rootPlaceholder': 'depo://klasör', 'conn.tokens.expiry': 'Geçerlilik (gün)', 'conn.tokens.expiryNever': 'süresiz', 'conn.tokens.defaultName': 'API anahtarı {date}', 'conn.tokens.namePlaceholder': 'Ad — ör. yedekleme betiği', 'conn.tokens.capNote': 'Tavan hesabın ve yetkilerin — sahip olduğundan fazlasını istemek reddedilir, verilmez.', /* === /gezinti:g1 === */ /* === surucu:d1 — kabuk (GitHub #14); artık `uiProfile: 'drive'` ile gelen bir seçenek değil, her profilde çizilir === */ 'drive.new': 'Yeni', 'drive.new.upload': 'Dosya yükle', 'drive.new.folder': 'Yeni klasör', 'drive.new.request': 'Dosya iste', 'drive.new.document': 'Yeni belge', /* === belge:n1 — "Yeni belge": + Yeni altındaki seçici ================== Tür adları BURADA durmuyor. Her kutucuk sözcüklerini lib/fileIcons `typeLabelFor`den okur — listedeki Tür sütununun okuduğu tablonun aynısı — böylece ".docx" iki yerde de aynı adla anılır ve yeni bir tür için hiç dizge gerekmez. Aşağıda yalnız bu pencerenin kendi metni var. */ 'newdoc.title': 'Yeni belge', 'newdoc.type.label': 'Belge türü', 'newdoc.group.document': 'Belgeler', 'newdoc.group.text': 'Metin ve kod', 'newdoc.group.diagram': 'Çizimler', 'newdoc.withheld.onlyoffice': 'Ofis belgeleri için bir belge sunucusu (OnlyOffice) gerekir; burada tanımlı değil.', 'newdoc.withheld.drawio': 'Çizimler için drawio servisi gerekir; burada tanımlı değil.', 'newdoc.empty.title': 'Kullanılabilir belge türü yok', 'newdoc.empty.body': 'Bu sunucu, bu uygulamanın oluşturabileceği bir tür sunmadı.', 'newdoc.empty.blocked': 'Bu sunucunun oluşturabildiği her tür, burada tanımlı olmayan bir düzenleyici servisine bağlı.', 'newdoc.name': 'Ad', 'newdoc.name.placeholder': 'Belge adı', 'newdoc.untitled': 'Adsız', 'newdoc.err.slash': 'Ad eğik çizgi içeremez.', 'newdoc.err.exists': '{name} burada zaten var. Başka bir ad seçin.', 'newdoc.location': 'Konum', 'newdoc.location.none': 'Bir klasör seçin', 'newdoc.location.change': 'Değiştir', 'newdoc.location.noaccess': 'Bu klasöre kaydedemezsiniz.', 'newdoc.create': 'Oluştur', 'newdoc.creating': 'Oluşturuluyor…', 'newdoc.cancel': 'Vazgeç', 'drive.search.placeholder': '{scope} deposunda ara', 'drive.search.placeholder_all': 'Tüm depolarda ara', 'drive.search.hint_title': 'Her yerde ara ve komut çalıştır ({combo})', 'drive.storage.used': '{total} alanın {used} kadarı dolu', 'drive.storage.used_unlimited': '{used} kullanılıyor', 'drive.storage.label': 'Depolama', /* === gorunum:v3-shell — Ana sayfa görünümü (kabuğun içindeki genel bakış) * Bölüm başlıkları `sidenav.storages` / `sidenav.recent` / `sidenav.starred`, * boş durumlar da `empty.recent.*` / `empty.starred.*` — bilerek: Ana * sayfadaki "Son kullanılanlar" başlığı ile yanındaki panel satırı aynı * şeydir, ikisine ayrı metin yazmak onları çeviri çeviri birbirinden * ayırmanın yoludur. Aşağıda yalnızca başka hiçbir yerde olmayanlar var. */ 'home.title': 'Ana sayfa', 'home.storages.empty': 'Henüz depo yok', 'home.storages.hint': 'Depo, filex’in okuyup yazdığı sürücüdür — depoları yönetici ekler.', 'drive.section.folders': 'Klasörler', 'drive.section.files': 'Dosyalar', 'filter.aria': 'Süzgeçler', 'filter.type': 'Tür', 'filter.type.any': 'Her tür', 'filter.type.folder': 'Klasörler', 'filter.type.document': 'Belgeler', 'filter.type.spreadsheet': 'Hesap tabloları', 'filter.type.presentation': 'Sunumlar', 'filter.type.pdf': 'PDF’ler', 'filter.type.image': 'Görseller', 'filter.type.video': 'Videolar', 'filter.type.audio': 'Ses dosyaları', 'filter.type.archive': 'Arşivler', 'filter.type.code': 'Kod', 'filter.modified': 'Değiştirilme', 'filter.modified.any': 'Her zaman', 'filter.modified.today': 'Bugün', 'filter.modified.7d': 'Son 7 gün', 'filter.modified.30d': 'Son 30 gün', 'filter.modified.year': 'Bu yıl', 'filter.size': 'Boyut', 'filter.size.any': 'Her boyut', 'filter.size.lt1': '1 MB altı', 'filter.size.1to10': '1 - 10 MB', 'filter.size.10to100': '10 - 100 MB', 'filter.size.gt100': '100 MB üstü', /* surucu:d1-actions — filtre satırının sonundaki ⋮ menüsü. Yalnızca menünün KENDİ adı yeni: içindeki her satır o eylemin zaten sahip olduğu metni kullanır (`toolbar.new_folder`, `toolbar.upload`, `ctx.paste`, `shortcuts.select_all`, `selection.clear`) — bir komutu yeniden adlandıran menü, okuyucuya aynı şeyi iki kez öğretir. */ 'filter.actions': 'Liste işlemleri', 'filter.clear': 'Süzgeçleri temizle', 'filter.empty.title': 'Bu süzgeçlere uyan bir şey yok', 'filter.empty.hint': 'Bir süzgeci kaldır ya da yukarıdaki alandan her yerde ara.', 'filter.count': '{total} öğeden {shown} tanesi', 'inspector.tab.details': 'Ayrıntılar', 'inspector.tab.activity': 'Etkinlik', 'inspector.people': 'Erişimi olan kişiler', 'inspector.people.you': 'Sen', 'inspector.people.inherited': 'üst klasörden', 'inspector.people.empty': 'Yalnızca sen ve aşağıdaki bağlantıya sahip olanlar.', 'inspector.people.manage': 'Erişimi yönet', 'inspector.link': 'Paylaşım bağlantısı', 'inspector.link.none': 'Paylaşılmadı', 'inspector.link.create': 'Bağlantı oluştur', 'inspector.link.copy': 'Bağlantıyı kopyala', 'inspector.activity.empty': 'Bu öğe için henüz etkinlik kaydı yok.', 'inspector.activity.hint': 'Sürümler dosya değiştikçe, yorumlar ise insanlar yazdıkça birikir.', 'inspector.activity.version': '{n}. sürüm kaydedildi', 'inspector.activity.comment': '{who} yorum yaptı', 'inspector.activity.select': 'Etkinliğini görmek için bir dosya ya da klasör seç.', /* === /surucu:d1 === */ /* i18n:hardcoded — dönüştürme kutusunda hiç anahtar yoktu: her etiket, kimsenin geçirmediği isteğe bağlı bir `t` prop'unun arkasındaki düz Türkçe metindi. */ 'convert.title': 'Dönüştür', 'convert.loading': 'Dönüştürücü yükleniyor…', 'convert.done': 'Dönüştürüldü ve klasöre yüklendi.', 'convert.close': 'Kapat', 'convert.from': 'Kaynak', 'convert.search_format': 'Hedef format ara (pdf, mp4, png…)', 'convert.no_format': 'Eşleşen format yok.', 'convert.unsupported_input': 'Bu dosya tipi için kaynak format bulunamadı.', 'convert.converting': 'Dönüştürülüyor…', 'convert.convert': 'Dönüştür', /* === gorunum:v1-chrome — filtre satırındaki ad kutusu === */ 'filter.find': 'Bu klasörde filtrele…', /* surucu:d1-scope — satırların bir klasörün içeriği olmadığı yerlerde aynı kutu. Neyi daralttığını söylemek zorunda: depo listesinde "bu klasör" hiçbir şeyi adlandırmaz, Ana sayfada ise üç bloğu birden adlandırırdı. */ 'filter.find.storages': 'Depolarda filtrele…', 'filter.find.home': 'Ana sayfada filtrele…', /* === gorunum:v1-viewer — tam ekran görüntüleyicinin kendi çerçevesi === */ 'viewer.share': 'Paylaş', 'viewer.nav_prev': 'Önceki dosya', 'viewer.nav_next': 'Sonraki dosya', /* Üst çubuğun künye satırındaki sayaç: "246,3 KB • 9 Eyl 2026 • 1 / 9". */ 'viewer.counter': '{i} / {n}', 'viewer.zoom_reset': 'Yakınlaştırmayı sıfırla', 'viewer.fullscreen': 'Tam ekran', 'viewer.exit_fullscreen': 'Tam ekrandan çık', 'viewer.md_placeholder': '# Markdown buraya…', /* === gorunum:v1-selbar — filtre satırının yerini alan seçim çubuğu === */ 'selection.count': '{n} seçildi', 'selection.clear': 'Seçimi temizle', /* === gorunum:v1-preview — türün adı, kelimeyle ======================= Tür sütunu eskiden uzantıyı büyük harfle yazıyordu; artık bunları yazıyor. Hangisinin seçileceğine `lib/fileIcons.ts` karar verir (`typeLabelKey`) — bir türü adlandıran yalnız iki yer var: o tablo ve bu liste. Eşleşmeyen her şey yine büyük harfli uzantıya düşer. `Klasör` burada DEĞİL: o `node.folder`, grid kartının alt yazısı zaten onu basar. */ 'ftype.typescript': 'TypeScript', 'ftype.javascript': 'JavaScript', 'ftype.vue': 'Vue bileşeni', 'ftype.python': 'Python', 'ftype.go': 'Go', 'ftype.rust': 'Rust', 'ftype.php': 'PHP', 'ftype.ruby': 'Ruby', 'ftype.java': 'Java', 'ftype.kotlin': 'Kotlin', 'ftype.swift': 'Swift', 'ftype.c': 'C kaynağı', 'ftype.cpp': 'C++ kaynağı', 'ftype.csharp': 'C# kaynağı', 'ftype.stylesheet': 'Stil dosyası', 'ftype.html': 'HTML belgesi', 'ftype.json': 'JSON verisi', 'ftype.yaml': 'YAML', 'ftype.xml': 'XML', 'ftype.toml': 'TOML', 'ftype.sql': 'SQL', 'ftype.shell': 'Kabuk betiği', 'ftype.powershell': 'PowerShell betiği', 'ftype.markdown': 'Markdown', 'ftype.plaintext': 'Düz metin', 'ftype.log': 'Günlük dosyası', 'ftype.config': 'Ayar dosyası', 'ftype.sheet': 'Hesap tablosu', 'ftype.figma': 'Figma tasarımı', 'ftype.design': 'Tasarım dosyası', 'ftype.image': 'Görsel', 'ftype.video': 'Video', 'ftype.audio': 'Ses', 'ftype.pdf': 'PDF belgesi', 'ftype.document': 'Belge', 'ftype.slides': 'Sunum', 'ftype.archive': 'Arşiv', 'ftype.code': 'Kod', /* === gorunum:v1-advsearch — Gelişmiş arama penceresi =================== * İki `filter.*` anahtarı kardeşlerinin yanında değil burada: paylaşılan * birleşimlere pencerenin eklediği yeni üyeler (`modified: 'around'`, * `size: 'range'`). Filtre satırı bunları hiç seçmez ama biri oraya * ulaşırsa `chipLabel` ham anahtarı yazardı. */ 'filter.modified.around': 'Bir tarihin çevresinde', 'filter.size.range': 'Özel aralık', 'advsearch.open': 'Gelişmiş arama', 'advsearch.title': 'Gelişmiş arama', 'advsearch.subtitle': 'Dosyaları ada, içeriğe, yola ya da etikete göre bulun.', 'advsearch.close': 'Kapat', 'advsearch.content.heading': 'İçerik araması', 'advsearch.viewall': 'Tüm sonuçları gör', 'advsearch.where.any_short': 'Her yerde', 'advsearch.where.here_short': 'Yalnız burada', 'advsearch.where.skip_short': 'Burayı atla', 'advsearch.server.legend': 'Sunucunun aradığı', 'advsearch.client.legend': 'Gelen sonuçları daralt', 'advsearch.query.label': 'Kelimeler', 'advsearch.query.placeholder': 'Adın bir parçası ya da dosyanın içindeki kelimeler', 'advsearch.scope.label': 'Nerede arasın', 'advsearch.scope.name': 'Ad ve yol', 'advsearch.scope.content': 'Dosya içeriği', 'advsearch.scope.all': 'İkisi de', 'advsearch.scope.hint': 'İçerik, dizinden aranır; dizin metin türü dosyaların ilk 200 KB’ını kapsar.', 'advsearch.people.name_only': 'Sahip, gelen satırlardan okunur; sahip bilgisi taşıyan satırları da yalnız ad araması döndürür.', 'advsearch.scope.name_only': 'Burada yalnız ad ve yol: içerik sonucu gezgine hangi depodan geldiği bilgisi olmadan ulaşır, bu yüzden içerik araması yalnız tek depolu kurulumlarda sunulur.', 'advsearch.tags.label': 'Etiketler', 'advsearch.tags.placeholder': 'fatura, üç aylık rapor', 'advsearch.tags.exclude': 'Şu etiketler hariç', 'advsearch.tags.exclude_placeholder': 'arşiv', 'advsearch.tags.hint': 'Virgülle ayırın. Etiket daraltır: birden çok etiket hepsini birden taşıyan dosyalar demektir, hiç kullanılmamış bir etiket ise hiçbir şey döndürmez.', 'advsearch.where.label': 'Klasör', 'advsearch.where.any': 'Bu deponun her yerinde', 'advsearch.where.here': 'Yalnız {folder} içinde', 'advsearch.where.skip': '{folder} dışındaki her yerde', 'advsearch.around.label': 'Şu kadar içinde', 'advsearch.around.date': 'Tarih ve saat', 'advsearch.around.h1': '1 saat', 'advsearch.around.d1': '1 gün', 'advsearch.around.w1': '1 hafta', 'advsearch.size.range_label': 'Şunun arasında', 'advsearch.size.from': 'En az', 'advsearch.size.to': 'En çok', 'advsearch.count.idle': 'Bir şeyler yazın ya da etiket seçin.', 'advsearch.count.counting': 'Sayılıyor…', 'advsearch.count.result': '{n} eşleşen öğe', 'advsearch.count.capped': 'Sonuçların ilk sayfasında {n} eşleşen öğe', 'advsearch.count.result_one': '1 eşleşen öğe', 'advsearch.count.capped_one': 'Sonuçların ilk sayfasında 1 eşleşen öğe', 'advsearch.count.error': 'Sayım çalıştırılamadı.', 'advsearch.count.cost': 'Sayım bu aramayı çalıştırır. Tür, sahip, tarih, boyut ve klasör sunucuda değil, gelen satırlar üzerinde uygulanır.', 'advsearch.wire': 'Gönderilen', 'advsearch.reset': 'Sıfırla', 'advsearch.cancel': 'Vazgeç', 'advsearch.submit': 'Ara', /* === gorunum:v2-topbar — sayfanın üst barı kalktı; onun taşıdıklarını artık gezginin kendi başlığı ve kırıntı satırı taşıyor. === */ 'breadcrumb.subfolders': 'Alt klasörler', 'breadcrumb.subfolders.empty': 'Burada alt klasör yok', 'header.admin': 'Yönetim paneli', 'header.settings': 'Ayarlar', 'header.signout': 'Çıkış yap', 'ai.assistant': 'AI asistanı', 'ai.soon': 'Yakında', 'ai.assistant.soon': 'AI asistanı — yakında', /* gorunum:v2-share — Paylaş / İzinler penceresinin kendi çerçevesi. İçindeki denetimler eski metinlerini koruyor; buradakiler yeni kabuk: başlık, tek anahtar, "şu anda kim açabilir" cümlesi ve her şeyin katlandığı üç adlı bölüm. */ 'access.title': '"{name}" paylaşımı', 'access.close': 'Kapat', 'access.done': 'Bitti', 'access.copy': 'Kopyala', 'access.copied': 'Kopyalandı', 'access.link.switch': 'Bağlantı paylaşımı', 'access.who.private': 'Yalnızca erişimi olan kişiler açabilir.', 'access.who.link': 'Bağlantıyı bilen herkes açabilir.', 'access.who.pin': "Bağlantıyı ve PIN'i bilen herkes açabilir.", 'access.who.existing': 'Bağlantı paylaşımı açık — {n} bağlantı var.', 'access.who.existing_one': 'Bağlantı paylaşımı açık — {n} bağlantı var.', 'access.section.link': 'Bağlantı seçenekleri', 'access.section.people': 'Erişimi olanlar', 'access.section.drop': 'Dosya iste', 'access.sum.pin_on': 'PIN var', 'access.sum.pin_off': 'PIN yok', 'access.sum.people': '{n} kişi', 'access.sum.people_one': '{n} kişi', 'access.sum.people_none': 'Henüz kimse yok', 'access.sum.drop': '{n} yükleme bağlantısı', 'access.sum.drop_one': '{n} yükleme bağlantısı', 'access.sum.drop_none': 'Yükleme bağlantısı yok', /* Sahiplik — Sahibi sütunu ve Kişiler çipi. "Sistem", filex üzerinden kimsenin koymadığı satırın dürüst karşılığıdır (tarayıcı buldu ya da doğrudan kovaya yazıldı); boşluk değil, gerçek bir cevaptır. */ 'col.owner': 'Sahibi', 'owner.you': 'Siz', 'owner.system': 'Sistem', 'owner.unknown': 'Bilinmiyor', 'owner.external': 'Yükleme bağlantısıyla geldi', 'owner.last_actor': 'Son değiştiren: {who}', 'filter.people': 'Kişiler', 'filter.people.any': 'Herkes', 'filter.people.me': 'Siz', 'filter.people.system': 'Sistem', 'filter.people.someone': 'Başka biri', /* surucu:d1-sort — filtre satırının sağ ucundaki sıralama denetimi. Dört ölçütün adı `col.*`: menü, liste görünümünün sütun başlıklarındaki sözcüklerin aynısını sunar — tek bir sıralamayı süren iki denetim onu farklı adlarla anamaz. */ 'sort.by': 'Sıralama ölçütü', 'sort.asc': 'Artan', 'sort.desc': 'Azalan', /* Bir ARAMA SONUCUNUN sırası. Beşinci bir sıralama ölçütü değildir — ekrandaki satırları sunucu sıraladığında denetim, ölçüt adı yerine bunu yazar; böylece yapmadığı bir sıralamayı üstlenmez. `_why` denetimin neden kapalı olduğudur: Burak, denetimin sessizce işlevsizleşmesini değil nedeninin yazılmasını istedi. */ 'sort.relevance': 'Alaka', 'sort.relevance_why': 'Arama sonuçları eşleşme yakınlığına göre listelenir. Seçtiğiniz sıralama, aramadan çıkınca geri gelir.', /* === tablo:t1 — tablonun kendi yapılandırması ========================== Sütun genişlikleri ve görünürlüğü EKRANINIZA dair bir tercihtir; bir klasörün hangi görünümle açılacağı ise KLASÖRE dair bir olgudur. İkisi de buradan ayarlanır; `folder_hint` kuralı tek cümlede, tam da ona şaşıracak kişinin okuyabileceği yerde söyler. */ 'col.location': 'Konum', 'cols.menu': 'Sütun seçenekleri', 'cols.title': 'Sütunlar', 'cols.resize': '{col} sütununu yeniden boyutlandır', 'cols.move_left': '{col} sütununu sola taşı', 'cols.move_right': '{col} sütununu sağa taşı', 'cols.reset': 'Sütunları sıfırla', 'cols.folder_title': 'Klasör görünümü', 'cols.folder_hint': 'Ayarladığınız klasörler kendi görünümünü korur. Son seçiminiz diğer her yerde varsayılan olur.', 'cols.forget_folder': 'Bu klasörün görünümünü unut', 'cols.apply_all': 'Tüm klasörlere uygula ({count} klasör hatırlanıyor)', /* === tablo:t1 — çöp kutusu bilgi şeridi ================================ ⚠ `retention` yalnızca kurulum bize sayıyı SÖYLEDİĞİNDE kullanılır (GET /api/admin/protection). Diğer her durumda `retention_unknown` aynı şeyi, doğrulayamadığımız bir süreyi taahhüt etmeden söyler: yanlış saklama süresi yazan bir şerit, hiç şerit olmamasından kötüdür — insanlar ona bakıp karar verir. */ 'trash.retention': 'Çöp kutusundaki öğeler {days} gün sonra kalıcı olarak silinir.', 'trash.retention_one': 'Çöp kutusundaki öğeler {days} gün sonra kalıcı olarak silinir.', 'trash.retention_unknown': 'Çöp kutusundaki öğeler, yöneticinizin belirlediği saklama süresi dolunca kalıcı olarak silinir.', 'trash.empty_action': 'Çöp kutusunu boşalt', 'trash.empty_confirm_title': 'Çöp kutusu boşaltılsın mı?', 'trash.empty_confirm_body_one': 'Bu işlem 1 öğeyi ({size}) kalıcı olarak siler. Geri alınamaz.', 'trash.empty_confirm_body': 'Bu işlem {count} öğeyi ({size}) kalıcı olarak siler. Geri alınamaz.', 'trash.empty_confirm_body_nosize_one': 'Bu işlem 1 öğeyi kalıcı olarak siler. Geri alınamaz.', 'trash.empty_confirm_body_nosize': 'Bu işlem {count} öğeyi kalıcı olarak siler. Geri alınamaz.', 'trash.emptied': 'Çöp kutusu boşaltıldı', 'empty.trash.hint': 'Sildiğiniz dosyalar önce buraya düşer, böylece geri alabilirsiniz.', /* tasi:m1 — hedef klasör seçici (modals/DestinationPickerModal.vue) ve üzerine kurulan iki seçim eylemi. */ 'destpicker.title.move': 'Şuraya taşı', 'destpicker.title.copy': 'Şuraya kopyala', 'destpicker.title.choose': 'Klasör seç', 'destpicker.confirm.move': 'Buraya taşı', 'destpicker.confirm.copy': 'Buraya kopyala', 'destpicker.confirm.choose': 'Bu klasörü seç', 'destpicker.cancel': 'Vazgeç', 'destpicker.up': 'Bir üst klasör', 'destpicker.crumbs': 'Konum', 'destpicker.drives': 'Sürücüler', 'destpicker.loading': 'Yükleniyor…', 'destpicker.empty': 'Burada alt klasör yok', 'destpicker.unreadable': 'Bu klasör açılamıyor.', 'destpicker.readonly': 'Salt okunur', 'destpicker.readonly_here': 'Bu klasöre yazamazsınız.', 'destpicker.pick_a_drive': 'Bir klasör seçmek için önce bir depo açın.', 'destpicker.target': 'Hedef: {name}', 'destpicker.tag.blocked': 'Uygun değil', 'destpicker.blocked.self': 'Bir klasör kendi içine taşınamaz.', 'destpicker.blocked.descendant': 'Bir klasör kendi alt klasörlerinden birine taşınamaz.', 'ctx.move_to': 'Şuraya taşı…', 'ctx.copy_to': 'Şuraya kopyala…', 'ctx.access.one_only': 'Paylaşım aynı anda tek öğe için çalışır.', 'toast.archive.preparing': 'Arşiv hazırlanıyor…', 'toast.archive.started': '{name} indiriliyor ({count} dosya)', 'toast.archive.started_one': '{name} indiriliyor ({count} dosya)', 'toast.archive.empty': 'İndirilecek bir şey yok — seçimde okunabilir dosya bulunmuyor.', 'toast.moved_to': '{name} klasörüne taşındı', 'toast.copied_to': '{name} klasörüne kopyalama kuyruğa alındı', };