diff --git a/client/src/i18n/TranslationContext.tsx b/client/src/i18n/TranslationContext.tsx index cb2a51754..6ebe7f73b 100644 --- a/client/src/i18n/TranslationContext.tsx +++ b/client/src/i18n/TranslationContext.tsx @@ -15,6 +15,7 @@ import ar from './translations/ar' import br from './translations/br' import cs from './translations/cs' import pl from './translations/pl' +import tr from './translations/tr' import { SUPPORTED_LANGUAGES, SupportedLanguageCode } from './supportedLanguages' export { SUPPORTED_LANGUAGES } @@ -23,7 +24,7 @@ type TranslationStrings = Record = { - de, en, es, fr, hu, it, ru, zh, 'zh-TW': zhTw, nl, id, ar, br, cs, pl, + de, en, es, fr, hu, it, ru, zh, 'zh-TW': zhTw, nl, id, ar, br, cs, pl, tr, } // Derived from SUPPORTED_LANGUAGES — add new languages there, not here. @@ -38,7 +39,7 @@ export function getLocaleForLanguage(language: string): string { export function getIntlLanguage(language: string): string { if (language === 'br') return 'pt-BR' - return ['de', 'es', 'fr', 'hu', 'it', 'ru', 'zh', 'zh-TW', 'nl', 'ar', 'cs', 'pl', 'id'].includes(language) ? language : 'en' + return ['de', 'es', 'fr', 'hu', 'it', 'ru', 'zh', 'zh-TW', 'nl', 'ar', 'cs', 'pl', 'id', 'tr'].includes(language) ? language : 'en' } export function isRtlLanguage(language: string): boolean { diff --git a/client/src/i18n/supportedLanguages.ts b/client/src/i18n/supportedLanguages.ts index 458a9fff1..0f3fe7f1c 100644 --- a/client/src/i18n/supportedLanguages.ts +++ b/client/src/i18n/supportedLanguages.ts @@ -14,6 +14,7 @@ export const SUPPORTED_LANGUAGES = [ { value: 'it', label: 'Italiano', locale: 'it-IT' }, { value: 'ar', label: 'العربية', locale: 'ar-SA' }, { value: 'id', label: 'Bahasa Indonesia', locale: 'id-ID' }, + { value: 'tr', label: 'Turkish', locale: 'tr-TR' }, ] as const export type SupportedLanguageCode = typeof SUPPORTED_LANGUAGES[number]['value'] diff --git a/client/src/i18n/translations/tr.ts b/client/src/i18n/translations/tr.ts new file mode 100644 index 000000000..ea0255f5e --- /dev/null +++ b/client/src/i18n/translations/tr.ts @@ -0,0 +1,2416 @@ +const tr: Record = { + // Common + 'common.save': 'Kaydet', + 'common.showMore': 'Daha fazla göster', + 'common.showLess': 'Daha az göster', + 'common.cancel': 'İptal', + 'common.clear': 'Temizle', + 'common.delete': 'Sil', + 'common.edit': 'Düzenle', + 'common.add': 'Ekle', + 'common.loading': 'Yükleniyor...', + 'common.import': 'İçe Aktar', + 'common.select': 'Seç', + 'common.selectAll': 'Tümünü Seç', + 'common.deselectAll': 'Seçimleri Kaldır', + 'common.error': 'Hata', + 'common.unknownError': 'Bilinmeyen hata', + 'common.tooManyAttempts': 'Çok fazla deneme. Lütfen daha sonra tekrar deneyin.', + 'common.back': 'Geri', + 'common.all': 'Tümü', + 'common.close': 'Kapat', + 'common.open': 'Aç', + 'common.upload': 'Yükle', + 'common.search': 'Ara', + 'common.confirm': 'Onayla', + 'common.ok': 'Tamam', + 'common.yes': 'Evet', + 'common.no': 'Hayır', + 'common.or': 'veya', + 'common.none': 'Hiçbiri', + 'common.date': 'Tarih', + 'common.rename': 'Yeniden Adlandır', + 'common.discardChanges': 'Değişiklikleri İptal Et', + 'common.discard': 'Vazgeç', + 'common.name': 'İsim', + 'common.email': 'E-posta', + 'common.password': 'Şifre', + 'common.saving': 'Kaydediliyor...', + 'common.justNow': 'az önce', + 'common.hoursAgo': '{count} sa önce', + 'common.daysAgo': '{count} g önce', + 'common.saved': 'Kaydedildi', + 'trips.memberRemoved': '{username} çıkarıldı', + 'trips.memberRemoveError': 'Çıkarma başarısız', + 'trips.memberAdded': '{username} eklendi', + 'trips.memberAddError': 'Ekleme başarısız', + 'trips.reminder': 'Hatırlatıcı', + 'trips.reminderNone': 'Hiçbiri', + 'trips.reminderDay': 'gün', + 'trips.reminderDays': 'gün', + 'trips.reminderCustom': 'Özel', + 'trips.reminderDaysBefore': 'gidişten günler önce', + 'trips.reminderDisabledHint': 'Seyahat hatırlatıcıları devre dışı. Yönetim > Ayarlar > Bildirimler kısmından etkinleştirin.', + 'common.update': 'Güncelle', + 'common.change': 'Değiştir', + 'common.uploading': 'Yükleniyor…', + 'common.backToPlanning': 'Planlamaya Dön', + 'common.reset': 'Sıfırla', + 'common.expand': 'Genişlet', + 'common.collapse': 'Daralt', + + // Navbar + 'nav.trip': 'Seyahat', + 'nav.share': 'Paylaş', + 'nav.settings': 'Ayarlar', + 'nav.admin': 'Yönetici', + 'nav.logout': 'Çıkış yap', + 'nav.lightMode': 'Açık Mod', + 'nav.darkMode': 'Koyu Mod', + 'nav.autoMode': 'Otomatik Mod', + 'nav.administrator': 'Yönetici', + + // Dashboard + 'dashboard.title': 'Seyahatlerim', + 'dashboard.subtitle.loading': 'Seyahatler yükleniyor...', + 'dashboard.subtitle.trips': '{count} seyahat ({archived} arşivlenmiş)', + 'dashboard.subtitle.empty': 'İlk seyahatinizi başlatın', + 'dashboard.subtitle.activeOne': '{count} aktif seyahat', + 'dashboard.subtitle.activeMany': '{count} aktif seyahat', + 'dashboard.subtitle.archivedSuffix': ' · {count} arşivlenmiş', + 'dashboard.newTrip': 'Yeni Seyahat', + 'dashboard.gridView': 'Izgara görünümü', + 'dashboard.listView': 'Liste görünümü', + 'dashboard.currency': 'Para Birimi', + 'dashboard.timezone': 'Zaman Dilimleri', + 'dashboard.localTime': 'Yerel', + 'dashboard.timezoneCustomTitle': 'Özel Zaman Dilimi', + 'dashboard.timezoneCustomLabelPlaceholder': 'Etiket (isteğe bağlı)', + 'dashboard.timezoneCustomTzPlaceholder': 'örn. Europe/Istanbul', + 'dashboard.timezoneCustomAdd': 'Ekle', + 'dashboard.timezoneCustomErrorEmpty': 'Bir zaman dilimi tanımlayıcısı girin', + 'dashboard.timezoneCustomErrorInvalid': 'Geçersiz zaman dilimi. Europe/Istanbul formatını kullanın', + 'dashboard.timezoneCustomErrorDuplicate': 'Zaten eklendi', + 'dashboard.emptyTitle': 'Henüz seyahat yok', + 'dashboard.emptyText': 'İlk seyahatinizi oluşturun ve planlamaya başlayın!', + 'dashboard.emptyButton': 'İlk Seyahati Oluştur', + 'dashboard.nextTrip': 'Sıradaki Seyahat', + 'dashboard.shared': 'Paylaşılan', + 'dashboard.sharedBy': '{name} tarafından paylaşıldı', + 'dashboard.days': 'Gün', + 'dashboard.places': 'Mekan', + 'dashboard.members': 'Arkadaş', + 'dashboard.archive': 'Arşivle', + 'dashboard.copyTrip': 'Kopyala', + 'dashboard.copySuffix': 'kopya', + 'dashboard.restore': 'Geri Yükle', + 'dashboard.archived': 'Arşivlendi', + 'dashboard.status.ongoing': 'Devam Ediyor', + 'dashboard.status.today': 'Bugün', + 'dashboard.status.tomorrow': 'Yarın', + 'dashboard.status.past': 'Geçmiş', + 'dashboard.status.daysLeft': '{count} gün kaldı', + 'dashboard.toast.loadError': 'Seyahatler yüklenemedi', + 'dashboard.toast.created': 'Seyahat başarıyla oluşturuldu!', + 'dashboard.toast.createError': 'Seyahat oluşturulamadı', + 'dashboard.toast.updated': 'Seyahat güncellendi!', + 'dashboard.toast.updateError': 'Seyahat güncellenemedi', + 'dashboard.toast.deleted': 'Seyahat silindi', + 'dashboard.toast.deleteError': 'Seyahat silinemedi', + 'dashboard.toast.archived': 'Seyahat arşivlendi', + 'dashboard.toast.archiveError': 'Seyahat arşivlenemedi', + 'dashboard.toast.restored': 'Seyahat geri yüklendi', + 'dashboard.toast.restoreError': 'Seyahat geri yüklenemedi', + 'dashboard.toast.copied': 'Seyahat kopyalandı!', + 'dashboard.toast.copyError': 'Seyahat kopyalanamadı', + 'dashboard.confirm.delete': '"{title}" seyahati silinsin mi? Tüm mekanlar ve planlar kalıcı olarak silinecek.', + 'dashboard.confirm.copy.title': 'Bu seyahat kopyalansın mı?', + 'dashboard.confirm.copy.willCopy': 'Kopyalanacaklar', + 'dashboard.confirm.copy.will1': 'Günler, mekanlar ve gün atamaları', + 'dashboard.confirm.copy.will2': 'Konaklamalar ve rezervasyonlar', + 'dashboard.confirm.copy.will3': 'Bütçe öğeleri ve kategori sırası', + 'dashboard.confirm.copy.will4': 'Eşya listeleri (işaretlenmemiş olanlar)', + 'dashboard.confirm.copy.will5': 'Yapılacaklar (atanmamış ve işaretlenmemiş)', + 'dashboard.confirm.copy.will6': 'Gün notları', + 'dashboard.confirm.copy.wontCopy': 'Kopyalanmayacaklar', + 'dashboard.confirm.copy.wont1': 'İşbirlikçiler ve üye atamaları', + 'dashboard.confirm.copy.wont2': 'İşbirliği notları, anketler ve mesajlar', + 'dashboard.confirm.copy.wont3': 'Dosyalar ve fotoğraflar', + 'dashboard.confirm.copy.wont4': 'Paylaşım bağlantıları', + 'dashboard.confirm.copy.confirm': 'Seyahati kopyala', + 'dashboard.editTrip': 'Seyahati Düzenle', + 'dashboard.createTrip': 'Yeni Seyahat Oluştur', + 'dashboard.tripTitle': 'Başlık', + 'dashboard.tripTitlePlaceholder': 'örn. Japonya Yaz Tatili', + 'dashboard.tripDescription': 'Açıklama', + 'dashboard.tripDescriptionPlaceholder': 'Bu seyahat ne hakkında?', + 'dashboard.startDate': 'Başlangıç Tarihi', + 'dashboard.endDate': 'Bitiş Tarihi', + 'dashboard.dayCount': 'Gün Sayısı', + 'dashboard.dayCountHint': 'Seyahat tarihleri belli olmadığında kaç gün planlanacak.', + 'dashboard.noDateHint': 'Tarih belirlenmedi — varsayılan olarak 7 gün oluşturulacak. Bunu istediğiniz zaman değiştirebilirsiniz.', + 'dashboard.coverImage': 'Kapak Fotoğrafı', + 'dashboard.addCoverImage': 'Kapak fotoğrafı ekle (veya sürükleyip bırak)', + 'dashboard.addMembers': 'Seyahat arkadaşları', + 'dashboard.addMember': 'Üye ekle', + 'dashboard.coverSaved': 'Kapak fotoğrafı kaydedildi', + 'dashboard.coverUploadError': 'Yükleme başarısız', + 'dashboard.coverRemoveError': 'Kaldırma başarısız', + 'dashboard.titleRequired': 'Başlık zorunludur', + 'dashboard.endDateError': 'Bitiş tarihi başlangıç tarihinden sonra olmalıdır', + + // Settings + 'settings.title': 'Ayarlar', + 'settings.subtitle': 'Kişisel ayarlarınızı yapılandırın', + 'settings.tabs.display': 'Görünüm', + 'settings.tabs.map': 'Harita', + 'settings.tabs.notifications': 'Bildirimler', + 'settings.tabs.integrations': 'Entegrasyonlar', + 'settings.tabs.account': 'Hesap', + 'settings.tabs.offline': 'Çevrimdışı', + 'settings.tabs.about': 'Hakkında', + 'settings.map': 'Harita', + 'settings.mapTemplate': 'Harita Şablonu', + 'settings.mapTemplatePlaceholder.select': 'Şablon seç...', + 'settings.mapDefaultHint': 'OpenStreetMap için boş bırakın (varsayılan)', + 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + 'settings.mapHint': 'Harita karoları (tiles) için URL şablonu', + 'settings.mapProvider': 'Harita Sağlayıcı', + 'settings.mapProviderHint': 'Seyahat Planlayıcı ve Yolculuk haritalarını etkiler. Atlas her zaman Leaflet kullanır.', + 'settings.mapLeafletSubtitle': 'Klasik 2B, tüm raster karoları', + 'settings.mapMapboxSubtitle': 'Vektör karolar, 3B binalar ve arazi', + 'settings.mapExperimental': 'Deneysel', + 'settings.mapMapboxToken': 'Mapbox Erişim Anahtarı (Token)', + 'settings.mapMapboxTokenHint': 'Genel anahtar (pk.*) alabileceğiniz yer:', + 'settings.mapMapboxTokenLink': 'mapbox.com → Access tokens', + 'settings.mapStyle': 'Harita Stili', + 'settings.mapStylePlaceholder': 'Bir Mapbox stili seçin', + 'settings.mapStyleHint': 'Ön ayarlı veya kendi mapbox://styles/USER/ID URL\'niz', + 'settings.map3dBuildings': '3B Binalar ve Arazi', + 'settings.map3dHint': 'Eğim + gerçek 3B bina çıkıntıları — uydu dahil her stilde çalışır.', + 'settings.mapHighQuality': 'Yüksek Kalite Modu', + 'settings.mapHighQualityHint': 'Daha keskin kenarlar ve gerçekçi bir dünya görünümü için küre projeksiyonu ve kenar yumuşatma (antialiasing).', + 'settings.mapHighQualityWarning': 'Düşük donanımlı cihazlarda performansı etkileyebilir.', + 'settings.mapTipLabel': 'İpucu:', + 'settings.mapTip': 'Haritayı döndürmek/eğmek için sağ tıklayıp sürükleyin. Bir mekan eklemek için orta tıklayın (sağ tıklama döndürmeye ayrılmıştır).', + 'settings.latitude': 'Enlem', + 'settings.longitude': 'Boylam', + 'settings.saveMap': 'Haritayı Kaydet', + 'settings.apiKeys': 'API Anahtarları', + 'settings.mapsKey': 'Google Maps API Anahtarı', + 'settings.mapsKeyHint': 'Mekan araması için. Places API (Yeni) gerektirir. console.cloud.google.com adresinden alabilirsiniz', + 'settings.weatherKey': 'OpenWeatherMap API Anahtarı', + 'settings.weatherKeyHint': 'Hava durumu verisi için. openweathermap.org/api adresinden ücretsiz alınabilir', + 'settings.keyPlaceholder': 'Anahtarı girin...', + 'settings.configured': 'Yapılandırıldı', + 'settings.saveKeys': 'Anahtarları Kaydet', + 'settings.display': 'Görünüm', + 'settings.colorMode': 'Renk Modu', + 'settings.light': 'Açık', + 'settings.dark': 'Koyu', + 'settings.auto': 'Otomatik', + 'settings.language': 'Dil', + 'settings.temperature': 'Sıcaklık Birimi', + 'settings.timeFormat': 'Saat Formatı', + 'settings.routeCalculation': 'Rota Hesaplama', + 'settings.bookingLabels': 'Rezervasyon rota etiketleri', + 'settings.bookingLabelsHint': 'Haritada istasyon / havalimanı adlarını göster. Kapalı olduğunda sadece simge gösterilir.', + 'settings.blurBookingCodes': 'Rezervasyon Kodlarını Bulanıklaştır', + 'settings.notifications': 'Bildirimler', + 'settings.notifyTripInvite': 'Seyahat davetleri', + 'settings.notifyBookingChange': 'Rezervasyon değişiklikleri', + 'settings.notifyTripReminder': 'Seyahat hatırlatıcıları', + 'settings.notifyTodoDue': 'Yaklaşan yapılacaklar', + 'settings.notifyVacayInvite': 'Tatil birleştirme davetleri', + 'settings.notifyPhotosShared': 'Paylaşılan fotoğraflar (Immich)', + 'settings.notifyCollabMessage': 'Sohbet mesajları (İşbirliği)', + 'settings.notifyPackingTagged': 'Eşya listesi: atamalar', + 'settings.notifyWebhook': 'Webhook bildirimleri', + 'settings.notifyVersionAvailable': 'Yeni sürüm mevcut', + 'settings.notificationPreferences.email': 'E-posta', + 'settings.notificationPreferences.webhook': 'Webhook', + 'settings.notificationPreferences.inapp': 'Uygulama İçi', + 'settings.notificationPreferences.ntfy': 'Ntfy', + 'settings.notificationPreferences.noChannels': 'Hiçbir bildirim kanalı yapılandırılmamış. Bir yöneticiden e-posta veya webhook bildirimlerini ayarlamasını isteyin.', + 'settings.webhookUrl.label': 'Webhook URL', + 'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...', + 'settings.webhookUrl.hint': 'Bildirim almak için Discord, Slack veya özel webhook URL\'nizi girin.', + 'settings.webhookUrl.saved': 'Webhook URL kaydedildi', + 'settings.webhookUrl.test': 'Test', + 'settings.webhookUrl.testSuccess': 'Test webhook\'u başarıyla gönderildi', + 'settings.webhookUrl.testFailed': 'Test webhook\'u başarısız oldu', + 'settings.ntfyUrl.topicLabel': 'Ntfy Konusu', + 'settings.ntfyUrl.topicPlaceholder': 'benim-trek-bildirimlerim', + 'settings.ntfyUrl.serverLabel': 'Ntfy Sunucu URL\'si (isteğe bağlı)', + 'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh', + 'settings.ntfyUrl.hint': 'Anlık bildirimler almak için ntfy konunuzu girin. Yöneticinizin yapılandırdığı varsayılanı kullanmak için sunucuyu boş bırakın.', + 'settings.ntfyUrl.tokenLabel': 'Erişim Anahtarı (isteğe bağlı)', + 'settings.ntfyUrl.tokenHint': 'Şifre korumalı konular için gereklidir.', + 'settings.ntfyUrl.saved': 'Ntfy ayarları kaydedildi', + 'settings.ntfyUrl.test': 'Test', + 'settings.ntfyUrl.testSuccess': 'Test ntfy bildirimi başarıyla gönderildi', + 'settings.ntfyUrl.testFailed': 'Test ntfy bildirimi başarısız oldu', + 'settings.ntfyUrl.tokenCleared': 'Erişim anahtarı temizlendi', + 'admin.notifications.title': 'Bildirimler', + 'admin.notifications.hint': 'Bir bildirim kanalı seçin. Aynı anda sadece bir tanesi aktif olabilir.', + 'admin.notifications.none': 'Devre Dışı', + 'admin.notifications.email': 'E-posta (SMTP)', + 'admin.notifications.webhook': 'Webhook', + 'admin.notifications.ntfy': 'Ntfy', + 'admin.ntfy.hint': 'Kullanıcıların anlık bildirimler için kendi ntfy konularını yapılandırmasına izin verin. Kullanıcı ayarlarını önceden doldurmak için aşağıdan varsayılan sunucuyu ayarlayın.', + 'admin.notifications.save': 'Bildirim ayarlarını kaydet', + 'admin.notifications.saved': 'Bildirim ayarları kaydedildi', + 'admin.notifications.testWebhook': 'Test webhook\'u gönder', + 'admin.notifications.testWebhookSuccess': 'Test webhook\'u başarıyla gönderildi', + 'admin.notifications.testWebhookFailed': 'Test webhook\'u başarısız oldu', + 'admin.notifications.testNtfy': 'Test ntfy gönder', + 'admin.notifications.testNtfySuccess': 'Test ntfy başarıyla gönderildi', + 'admin.notifications.testNtfyFailed': 'Test ntfy başarısız oldu', + 'admin.notifications.emailPanel.title': 'E-posta (SMTP)', + 'admin.notifications.webhookPanel.title': 'Webhook', + 'admin.notifications.inappPanel.title': 'Uygulama İçi', + 'admin.notifications.inappPanel.hint': 'Uygulama içi bildirimler her zaman etkindir ve global olarak devre dışı bırakılamaz.', + 'admin.notifications.adminWebhookPanel.title': 'Yönetici Webhook\'u', + 'admin.notifications.adminWebhookPanel.hint': 'Bu webhook sadece yönetici bildirimleri (örn. sürüm uyarıları) için kullanılır. Kullanıcı başına olan webhook\'lardan bağımsızdır ve ayarlandığında her zaman tetiklenir.', + 'admin.notifications.adminWebhookPanel.saved': 'Yönetici webhook URL\'si kaydedildi', + 'admin.notifications.adminWebhookPanel.testSuccess': 'Test webhook\'u başarıyla gönderildi', + 'admin.notifications.adminWebhookPanel.testFailed': 'Test webhook\'u başarısız oldu', + 'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Bir URL yapılandırıldığında yönetici webhook\'u her zaman tetiklenir', + 'admin.notifications.adminNtfyPanel.title': 'Yönetici Ntfy', + 'admin.notifications.adminNtfyPanel.hint': 'Bu ntfy konusu sadece yönetici bildirimleri (örn. sürüm uyarıları) için kullanılır. Kullanıcı konularından bağımsızdır ve yapılandırıldığında her zaman tetiklenir.', + 'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy Sunucu URL\'si', + 'admin.notifications.adminNtfyPanel.serverHint': 'Ayrıca kullanıcı ntfy bildirimleri için varsayılan sunucu olarak kullanılır. Ntfy.sh varsayılanını kullanmak için boş bırakın. Kullanıcılar bunu kendi ayarlarında geçersiz kılabilir.', + 'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh', + 'admin.notifications.adminNtfyPanel.topicLabel': 'Yönetici Konusu', + 'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-yonetici-bildirimleri', + 'admin.notifications.adminNtfyPanel.tokenLabel': 'Erişim Anahtarı (isteğe bağlı)', + 'admin.notifications.adminNtfyPanel.tokenCleared': 'Yönetici erişim anahtarı temizlendi', + 'admin.notifications.adminNtfyPanel.saved': 'Yönetici ntfy ayarları kaydedildi', + 'admin.notifications.adminNtfyPanel.test': 'Test ntfy gönder', + 'admin.notifications.adminNtfyPanel.testSuccess': 'Test ntfy başarıyla gönderildi', + 'admin.notifications.adminNtfyPanel.testFailed': 'Test ntfy başarısız oldu', + 'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Bir konu yapılandırıldığında yönetici ntfy\'si her zaman tetiklenir', + 'admin.notifications.adminNotificationsHint': 'Sadece yöneticilere özel bildirimleri (örn. sürüm uyarıları) hangi kanalların ileteceğini yapılandırın.', + 'admin.notifications.tripReminders.title': 'Seyahat Hatırlatıcıları', + 'admin.notifications.tripReminders.hint': 'Bir seyahat başlamadan önce hatırlatıcı bildirimi gönderin (seyahatte hatırlatma günlerinin ayarlanmış olmasını gerektirir).', + 'admin.notifications.tripReminders.enabled': 'Seyahat hatırlatıcıları etkinleştirildi', + 'admin.notifications.tripReminders.disabled': 'Seyahat hatırlatıcıları devre dışı bırakıldı', + 'admin.smtp.title': 'E-posta ve Bildirimler', + 'admin.smtp.hint': 'E-posta bildirimleri göndermek için SMTP yapılandırması.', + 'admin.smtp.testButton': 'Test e-postası gönder', + 'admin.webhook.hint': 'Kullanıcıların bildirimler için kendi webhook URL\'lerini (Discord, Slack vb.) yapılandırmasına izin verin.', + 'admin.smtp.testSuccess': 'Test e-postası başarıyla gönderildi', + 'admin.smtp.testFailed': 'Test e-postası başarısız oldu', + 'settings.notificationsDisabled': 'Bildirimler yapılandırılmamış. Bir yöneticiden e-posta veya webhook bildirimlerini etkinleştirmesini isteyin.', + 'settings.notificationsActive': 'Aktif kanal', + 'settings.notificationsManagedByAdmin': 'Bildirim olayları yöneticiniz tarafından yapılandırılır.', + 'dayplan.icsTooltip': 'Takvimi Dışa Aktar (ICS)', + 'share.linkTitle': 'Herkese Açık Bağlantı', + 'share.linkHint': 'Giriş yapmadan bu seyahati herkesin görüntüleyebileceği bir bağlantı oluşturun. Sadece okunabilir — düzenleme yapılamaz.', + 'share.createLink': 'Bağlantı oluştur', + 'share.deleteLink': 'Bağlantıyı sil', + 'share.createError': 'Bağlantı oluşturulamadı', + 'common.copy': 'Kopyala', + 'common.copied': 'Kopyalandı', + 'share.permMap': 'Harita ve Plan', + 'share.permBookings': 'Rezervasyonlar', + 'share.permPacking': 'Eşya Listesi', + 'shared.expired': 'Bağlantı süresi dolmuş veya geçersiz', + 'shared.expiredHint': 'Bu paylaşılan seyahat bağlantısı artık aktif değil.', + 'shared.readOnly': 'Salt okunur paylaşılan görünüm', + 'shared.tabPlan': 'Plan', + 'shared.tabBookings': 'Rezervasyonlar', + 'shared.tabPacking': 'Paketleme', + 'shared.tabBudget': 'Bütçe', + 'shared.tabChat': 'Sohbet', + 'shared.days': 'gün', + 'shared.places': 'mekan', + 'shared.other': 'Diğer', + 'shared.totalBudget': 'Toplam Bütçe', + 'shared.messages': 'mesaj', + 'shared.sharedVia': 'Paylaşılan platform:', + 'shared.confirmed': 'Onaylandı', + 'shared.pending': 'Bekliyor', + 'share.permBudget': 'Bütçe', + 'share.permCollab': 'Sohbet', + 'settings.on': 'Açık', + 'settings.off': 'Kapalı', + 'settings.mcp.title': 'MCP Yapılandırması', + 'settings.mcp.endpoint': 'MCP Bitiş Noktası', + 'settings.mcp.clientConfig': 'İstemci Yapılandırması', + 'settings.mcp.clientConfigHint': ' kısmını aşağıdaki listeden bir API anahtarıyla değiştirin. npx yolu sisteminiz için ayarlanması gerekebilir (örn. Windows\'ta C:\\PROGRA~1\\nodejs\\npx.cmd).', + 'settings.mcp.clientConfigHintOAuth': ' ve kısımlarını yukarıda oluşturduğunuz OAuth 2.1 istemcisinde gösterilen kimlik bilgileriyle değiştirin. mcp-remote ilk bağlantı kurduğunuzda yetkilendirmeyi tamamlamak için tarayıcınızı açacaktır. npx yolu sisteminiz için ayarlanması gerekebilir.', + 'settings.mcp.copy': 'Kopyala', + 'settings.mcp.copied': 'Kopyalandı!', + 'settings.mcp.apiTokens': 'API Anahtarları (Token)', + 'settings.mcp.createToken': 'Yeni Anahtar Oluştur', + 'settings.mcp.noTokens': 'Henüz anahtar yok. MCP istemcilerini bağlamak için bir tane oluşturun.', + 'settings.mcp.tokenCreatedAt': 'Oluşturuldu', + 'settings.mcp.tokenUsedAt': 'Kullanıldı', + 'settings.mcp.deleteTokenTitle': 'Anahtarı Sil', + 'settings.mcp.deleteTokenMessage': 'Bu anahtar anında çalışmayı durduracaktır. Bunu kullanan herhangi bir MCP istemcisi erişimini kaybeder.', + 'settings.mcp.modal.createTitle': 'API Anahtarı Oluştur', + 'settings.mcp.modal.tokenName': 'Anahtar Adı', + 'settings.mcp.modal.tokenNamePlaceholder': 'örn. Claude Desktop, İş bilgisayarı', + 'settings.mcp.modal.creating': 'Oluşturuluyor…', + 'settings.mcp.modal.create': 'Anahtar Oluştur', + 'settings.mcp.modal.createdTitle': 'Anahtar Oluşturuldu', + 'settings.mcp.modal.createdWarning': 'Bu anahtar sadece bir kez gösterilecektir. Şimdi kopyalayıp saklayın — kurtarılamaz.', + 'settings.mcp.modal.done': 'Bitti', + 'settings.mcp.toast.created': 'Anahtar oluşturuldu', + 'settings.mcp.toast.createError': 'Anahtar oluşturulamadı', + 'settings.mcp.toast.deleted': 'Anahtar silindi', + 'settings.mcp.toast.deleteError': 'Anahtar silinemedi', + 'settings.mcp.apiTokensDeprecated': 'API Token\'ları kullanımdan kaldırıldı ve gelecekteki bir sürümde tamamen silinecektir. Lütfen bunun yerine OAuth 2.1 İstemcilerini kullanın.', + 'settings.oauth.clients': 'OAuth 2.1 İstemcileri', + 'settings.oauth.clientsHint': 'Üçüncü taraf MCP uygulamalarının (Claude Web, Cursor vb.) statik token\'lar olmadan bağlanmasına izin vermek için OAuth 2.1 istemcilerini kaydedin.', + 'settings.oauth.createClient': 'Yeni İstemci', + 'settings.oauth.noClients': 'Kayıtlı OAuth istemcisi yok.', + 'settings.oauth.clientId': 'İstemci ID', + 'settings.oauth.clientSecret': 'İstemci Gizli Anahtarı', + 'settings.oauth.deleteClient': 'İstemciyi Sil', + 'settings.oauth.deleteClientMessage': 'Bu istemci ve tüm aktif oturumlar kalıcı olarak silinecek. Bunu kullanan herhangi bir uygulama anında erişimini kaybeder.', + 'settings.oauth.rotateSecret': 'Gizli Anahtarı Yenile', + 'settings.oauth.rotateSecretMessage': 'Yeni bir istemci gizli anahtarı oluşturulacak ve mevcut tüm oturumlar anında geçersiz kılınacaktır. Bu iletişim kutusunu kapatmadan önce uygulamanızı güncelleyin.', + 'settings.oauth.rotateSecretConfirm': 'Yenile', + 'settings.oauth.rotateSecretConfirming': 'Yenileniyor…', + 'settings.oauth.rotateSecretDoneTitle': 'Yeni Gizli Anahtar Oluşturuldu', + 'settings.oauth.rotateSecretDoneWarning': 'Bu gizli anahtar yalnızca bir kez gösterilir. Şimdi kopyalayın ve uygulamanızı güncelleyin — önceki tüm oturumlar geçersiz kılındı.', + 'settings.oauth.activeSessions': 'Aktif OAuth Oturumları', + 'settings.oauth.sessionScopes': 'Kapsamlar', + 'settings.oauth.sessionExpires': 'Sona Erme', + 'settings.oauth.revoke': 'İptal Et', + 'settings.oauth.revokeSession': 'Oturumu İptal Et', + 'settings.oauth.revokeSessionMessage': 'Bu, bu OAuth oturumu için erişimi anında iptal edecektir.', + 'settings.oauth.modal.createTitle': 'OAuth İstemcisini Kaydet', + 'settings.oauth.modal.presets': 'Hızlı ön ayarlar', + 'settings.oauth.modal.clientName': 'Uygulama Adı', + 'settings.oauth.modal.clientNamePlaceholder': 'örn. Claude Web, Benim MCP Uygulamam', + 'settings.oauth.modal.redirectUris': 'Yönlendirme URI\'leri', + 'settings.oauth.modal.redirectUrisPlaceholder': 'https://uygulamaniz.com/callback\nhttps://uygulamaniz.com/auth', + 'settings.oauth.modal.redirectUrisHint': 'Her satıra bir URI. HTTPS gereklidir (localhost hariç). Birebir eşleşme zorunludur.', + 'settings.oauth.modal.scopes': 'İzin Verilen Kapsamlar', + 'settings.oauth.modal.scopesHint': 'list_trips ve get_trip_summary her zaman kullanılabilir — kapsam (scope) gerekmez. Yapay zekanın diğer araçları kullanmak için gereken seyahat ID\'lerini keşfetmesini sağlarlar.', + 'settings.oauth.modal.selectAll': 'Tümünü Seç', + 'settings.oauth.modal.deselectAll': 'Seçimleri Kaldır', + 'settings.oauth.modal.creating': 'Kaydediliyor…', + 'settings.oauth.modal.create': 'İstemciyi Kaydet', + 'settings.oauth.modal.createdTitle': 'İstemci Kaydedildi', + 'settings.oauth.modal.createdWarning': 'İstemci gizli anahtarı (secret) sadece bir kez gösterilir. Şimdi kopyalayın — kurtarılamaz.', + 'settings.oauth.toast.createError': 'OAuth istemcisi kaydedilemedi', + 'settings.oauth.toast.deleted': 'OAuth istemcisi silindi', + 'settings.oauth.toast.deleteError': 'OAuth istemcisi silinemedi', + 'settings.oauth.toast.revoked': 'Oturum iptal edildi', + 'settings.oauth.toast.revokeError': 'Oturum iptal edilemedi', + 'settings.oauth.toast.rotateError': 'İstemci gizli anahtarı yenilenemedi', + 'settings.account': 'Hesap', + 'settings.about': 'Hakkında', + 'settings.about.reportBug': 'Hata Bildir', + 'settings.about.reportBugHint': 'Bir sorun mu buldunuz? Bize bildirin', + 'settings.about.featureRequest': 'Özellik İsteği', + 'settings.about.featureRequestHint': 'Yeni bir özellik önerin', + 'settings.about.wikiHint': 'Dokümantasyon ve rehberler', + 'settings.about.supporters.badge': 'Aylık Destekçiler', + 'settings.about.supporters.title': 'TREK için seyahat arkadaşları', + 'settings.about.supporters.subtitle': 'Siz bir sonraki rotanızı planlarken, bu kişiler TREK\'in geleceğini planlamaya yardımcı oluyor. Aylık katkıları doğrudan geliştirmeye ve harcanan gerçek saatlere gidiyor — böylece TREK Açık Kaynak kalmaya devam ediyor.', + 'settings.about.supporters.since': '{date} tarihinden beri destekçi', + 'settings.about.supporters.tierEmpty': 'İlk siz olun', + 'settings.about.supporter.tier.noReturnTicket': 'Tek Yön Bilet', + 'settings.about.supporter.tier.lostLuggageVip': 'Kayıp Bagaj VIP', + 'settings.about.supporter.tier.businessClassDreamer': 'Business Class Hayalperesti', + 'settings.about.supporter.tier.budgetTraveller': 'Ekonomik Gezgin', + 'settings.about.supporter.tier.hostelBunkmate': 'Hostel Ranza Arkadaşı', + 'settings.about.description': 'TREK, seyahatlerinizi ilk fikirden son anıya kadar organize etmenize yardımcı olan, kendi sunucunuzda barındırılabilen bir seyahat planlayıcıdır. Gün planlaması, bütçe, eşya listeleri, fotoğraflar ve çok daha fazlası — hepsi tek bir yerde, kendi sunucunuzda.', + 'settings.about.madeWith': 'Sevgiyle yapıldı', + 'settings.about.madeBy': 'Maurice ve büyüyen bir açık kaynak topluluğu tarafından.', + 'settings.username': 'Kullanıcı Adı', + 'settings.email': 'E-posta', + 'settings.role': 'Rol', + 'settings.roleAdmin': 'Yönetici', + 'settings.oidcLinked': 'Şununla bağlantılı:', + 'settings.changePassword': 'Şifre Değiştir', + 'settings.currentPassword': 'Mevcut şifre', + 'settings.currentPasswordRequired': 'Mevcut şifre gereklidir', + 'settings.newPassword': 'Yeni şifre', + 'settings.confirmPassword': 'Yeni şifreyi onayla', + 'settings.updatePassword': 'Şifreyi güncelle', + 'settings.passwordRequired': 'Lütfen mevcut ve yeni şifreyi girin', + 'settings.passwordTooShort': 'Şifre en az 8 karakter olmalıdır', + 'settings.passwordMismatch': 'Şifreler eşleşmiyor', + 'settings.passwordWeak': 'Şifre büyük harf, küçük harf, bir rakam ve bir özel karakter içermelidir', + 'settings.passwordChanged': 'Şifre başarıyla değiştirildi', + 'settings.mustChangePassword': 'Devam etmeden önce şifrenizi değiştirmelisiniz. Lütfen aşağıdan yeni bir şifre belirleyin.', + 'settings.deleteAccount': 'Hesabı sil', + 'settings.deleteAccountTitle': 'Hesabınız silinsin mi?', + 'settings.deleteAccountWarning': 'Hesabınız ve tüm seyahatleriniz, mekanlarınız ve dosyalarınız kalıcı olarak silinecek. Bu işlem geri alınamaz.', + 'settings.deleteAccountConfirm': 'Kalıcı olarak sil', + 'settings.deleteBlockedTitle': 'Silme işlemi yapılamıyor', + 'settings.deleteBlockedMessage': 'Tek yönetici sizsiniz. Hesabınızı silmeden önce başka bir kullanıcıyı yönetici yapın.', + 'settings.roleUser': 'Kullanıcı', + 'settings.saveProfile': 'Profili Kaydet', + 'settings.toast.mapSaved': 'Harita ayarları kaydedildi', + 'settings.toast.keysSaved': 'API anahtarları kaydedildi', + 'settings.toast.displaySaved': 'Görünüm ayarları kaydedildi', + 'settings.toast.profileSaved': 'Profil kaydedildi', + 'settings.uploadAvatar': 'Profil Fotoğrafı Yükle', + 'settings.removeAvatar': 'Profil Fotoğrafını Kaldır', + 'settings.avatarUploaded': 'Profil fotoğrafı güncellendi', + 'settings.avatarRemoved': 'Profil fotoğrafı kaldırıldı', + 'settings.avatarError': 'Yükleme başarısız', + 'settings.mfa.title': 'İki faktörlü kimlik doğrulama (2FA)', + 'settings.mfa.description': 'E-posta ve şifrenizle giriş yaparken ikinci bir adım ekler. Bir kimlik doğrulayıcı uygulama kullanın (Google Authenticator, Authy vb.).', + 'settings.mfa.requiredByPolicy': 'Yöneticiniz iki faktörlü kimlik doğrulamayı zorunlu kılıyor. Devam etmeden önce aşağıdan bir kimlik doğrulayıcı uygulama ayarlayın.', + 'settings.mfa.backupTitle': 'Yedek kodlar', + 'settings.mfa.backupDescription': 'Kimlik doğrulayıcı uygulamanıza erişimi kaybederseniz bu tek kullanımlık yedek kodları kullanın.', + 'settings.mfa.backupWarning': 'Bu kodları şimdi kaydedin. Her kod yalnızca bir kez kullanılabilir.', + 'settings.mfa.backupCopy': 'Kodları kopyala', + 'settings.mfa.backupDownload': 'TXT İndir', + 'settings.mfa.backupPrint': 'Yazdır / PDF', + 'settings.mfa.backupCopied': 'Yedek kodlar kopyalandı', + 'settings.mfa.enabled': 'Hesabınızda 2FA etkin.', + 'settings.mfa.disabled': '2FA etkin değil.', + 'settings.mfa.setup': 'Kimlik doğrulayıcıyı kur', + 'settings.mfa.scanQr': 'Bu QR kodunu uygulamanızla tarayın veya gizli anahtarı manuel olarak girin.', + 'settings.mfa.secretLabel': 'Gizli anahtar (manuel giriş)', + 'settings.mfa.codePlaceholder': '6 haneli kod', + 'settings.mfa.enable': '2FA\'yı Etkinleştir', + 'settings.mfa.cancelSetup': 'İptal', + 'settings.mfa.disableTitle': '2FA\'yı Devre Dışı Bırak', + 'settings.mfa.disableHint': 'Hesap şifrenizi ve kimlik doğrulayıcınızdan geçerli bir kodu girin.', + 'settings.mfa.disable': '2FA\'yı Devre Dışı Bırak', + 'settings.mfa.toastEnabled': 'İki faktörlü kimlik doğrulama etkinleştirildi', + 'settings.mfa.toastDisabled': 'İki faktörlü kimlik doğrulama devre dışı bırakıldı', + 'settings.mfa.demoBlocked': 'Demo modunda kullanılamaz', + + // Login + 'login.error': 'Giriş başarısız. Lütfen bilgilerinizi kontrol edin.', + 'login.tagline': 'Sizin Seyahatleriniz.\nSizin Planınız.', + 'login.description': 'Etkileşimli haritalar, bütçeler ve gerçek zamanlı senkronizasyon ile seyahatleri birlikte planlayın.', + 'login.features.maps': 'Etkileşimli Haritalar', + 'login.features.mapsDesc': 'Google Rehber, rotalar ve kümeleme', + 'login.features.realtime': 'Gerçek Zamanlı Senkronizasyon', + 'login.features.realtimeDesc': 'WebSocket ile birlikte planlayın', + 'login.features.budget': 'Bütçe Takibi', + 'login.features.budgetDesc': 'Kategoriler, grafikler ve kişi başı maliyetler', + 'login.features.collab': 'İşbirliği', + 'login.features.collabDesc': 'Paylaşılan seyahatlerle çok kullanıcılı deneyim', + 'login.features.packing': 'Eşya Listeleri', + 'login.features.packingDesc': 'Kategoriler, ilerleme durumu ve öneriler', + 'login.features.bookings': 'Rezervasyonlar', + 'login.features.bookingsDesc': 'Uçuşlar, oteller, restoranlar ve daha fazlası', + 'login.features.files': 'Belgeler', + 'login.features.filesDesc': 'Belgeleri yükleyin ve yönetin', + 'login.features.routes': 'Akıllı Rotalar', + 'login.features.routesDesc': 'Otomatik optimizasyon ve Google Haritalar dışa aktarımı', + 'login.selfHosted': 'Kendi Sunucunuzda \u00B7 Açık Kaynak \u00B7 Verileriniz sizde kalır', + 'login.title': 'Giriş Yap', + 'login.subtitle': 'Tekrar hoş geldiniz', + 'login.signingIn': 'Giriş yapılıyor…', + 'login.signIn': 'Giriş Yap', + 'login.createAdmin': 'Yönetici Hesabı Oluştur', + 'login.createAdminHint': 'TREK için ilk yönetici hesabını kurun.', + 'login.setNewPassword': 'Yeni Şifre Belirle', + 'login.setNewPasswordHint': 'Devam etmeden önce şifrenizi değiştirmelisiniz.', + 'login.createAccount': 'Hesap Oluştur', + 'login.createAccountHint': 'Yeni bir hesap kaydedin.', + 'login.creating': 'Oluşturuluyor…', + 'login.noAccount': 'Hesabınız yok mu?', + 'login.hasAccount': 'Zaten bir hesabınız var mı?', + 'login.register': 'Kayıt Ol', + 'login.emailPlaceholder': 'ornek@email.com', + 'login.username': 'Kullanıcı Adı', + 'login.oidc.registrationDisabled': 'Kayıt işlemleri devre dışı. Yöneticinizle iletişime geçin.', + 'login.oidc.noEmail': 'Sağlayıcıdan e-posta alınamadı.', + 'login.oidc.tokenFailed': 'Kimlik doğrulama başarısız.', + 'login.oidc.invalidState': 'Geçersiz oturum. Lütfen tekrar deneyin.', + 'login.demoFailed': 'Demo girişi başarısız', + 'login.oidcSignIn': '{name} ile Giriş Yap', + 'login.oidcOnly': 'Şifreyle kimlik doğrulama devre dışı bırakıldı. Lütfen SSO sağlayıcınızı kullanarak giriş yapın.', + 'login.oidcLoggedOut': 'Çıkış yaptınız. SSO sağlayıcınızı kullanarak tekrar giriş yapın.', + 'login.demoHint': 'Demoyu deneyin — kayıt gerekmez', + 'login.mfaTitle': 'İki faktörlü kimlik doğrulama', + 'login.mfaSubtitle': 'Kimlik doğrulayıcı uygulamanızdaki 6 haneli kodu girin.', + 'login.mfaCodeLabel': 'Doğrulama kodu', + 'login.mfaCodeRequired': 'Kimlik doğrulayıcı uygulamanızdan kodu girin.', + 'login.mfaHint': 'Google Authenticator, Authy veya başka bir TOTP uygulamasını açın.', + 'login.mfaBack': '← Girişe dön', + 'login.mfaVerify': 'Doğrula', + 'login.invalidInviteLink': 'Geçersiz veya süresi dolmuş davet bağlantısı', + 'login.oidcFailed': 'OIDC girişi başarısız', + 'login.usernameRequired': 'Kullanıcı adı gereklidir', + 'login.passwordMinLength': 'Şifre en az 8 karakter olmalıdır', + 'login.forgotPassword': 'Şifremi unuttum?', + 'login.forgotPasswordTitle': 'Şifrenizi sıfırlayın', + 'login.forgotPasswordBody': 'Kayıt olduğunuz e-posta adresini girin. Bir hesap varsa, sıfırlama bağlantısı göndereceğiz.', + 'login.forgotPasswordSubmit': 'Sıfırlama bağlantısı gönder', + 'login.forgotPasswordSentTitle': 'E-postanızı kontrol edin', + 'login.forgotPasswordSentBody': 'O e-posta için bir hesap varsa, sıfırlama bağlantısı yolda. 60 dakika içinde süresi dolacaktır.', + 'login.forgotPasswordSmtpHintOff': 'Bilginize: yöneticiniz SMTP\'yi yapılandırmadığı için sıfırlama bağlantısı e-posta ile gönderilmek yerine sunucu konsoluna yazdırılacaktır.', + 'login.backToLogin': 'Girişe dön', + 'login.newPassword': 'Yeni şifre', + 'login.confirmPassword': 'Yeni şifreyi onayla', + 'login.passwordsDontMatch': 'Şifreler eşleşmiyor', + 'login.mfaCode': '2FA kodu', + 'login.resetPasswordTitle': 'Yeni bir şifre belirleyin', + 'login.resetPasswordBody': 'Burada daha önce kullanmadığınız güçlü bir şifre seçin. En az 8 karakter.', + 'login.resetPasswordMfaBody': 'Sıfırlama işlemini tamamlamak için 2FA kodunuzu veya bir yedek kodunuzu girin.', + 'login.resetPasswordSubmit': 'Şifreyi sıfırla', + 'login.resetPasswordVerify': 'Doğrula ve sıfırla', + 'login.resetPasswordSuccessTitle': 'Şifre güncellendi', + 'login.resetPasswordSuccessBody': 'Artık yeni şifrenizle giriş yapabilirsiniz.', + 'login.resetPasswordInvalidLink': 'Geçersiz sıfırlama bağlantısı', + 'login.resetPasswordInvalidLinkBody': 'Bu bağlantı eksik veya bozuk. Devam etmek için yeni bir tane talep edin.', + 'login.resetPasswordFailed': 'Sıfırlama başarısız. Bağlantının süresi dolmuş olabilir.', + + // Register + 'register.passwordMismatch': 'Şifreler eşleşmiyor', + 'register.passwordTooShort': 'Şifre en az 8 karakter olmalıdır', + 'register.failed': 'Kayıt başarısız', + 'register.getStarted': 'Başlayın', + 'register.subtitle': 'Bir hesap oluşturun ve hayalinizdeki seyahatleri planlamaya başlayın.', + 'register.feature1': 'Sınırsız seyahat planı', + 'register.feature2': 'Etkileşimli harita görünümü', + 'register.feature3': 'Mekanları ve kategorileri yönetin', + 'register.feature4': 'Rezervasyonları takip edin', + 'register.feature5': 'Eşya listeleri oluşturun', + 'register.feature6': 'Fotoğraf ve dosyaları saklayın', + 'register.createAccount': 'Hesap Oluştur', + 'register.startPlanning': 'Seyahat planlamanıza başlayın', + 'register.minChars': 'Min. 6 karakter', + 'register.confirmPassword': 'Şifreyi Onayla', + 'register.repeatPassword': 'Şifreyi tekrarla', + 'register.registering': 'Kayıt yapılıyor...', + 'register.register': 'Kayıt Ol', + 'register.hasAccount': 'Zaten bir hesabınız var mı?', + 'register.signIn': 'Giriş Yap', + + // Admin + 'admin.title': 'Yönetim', + 'admin.subtitle': 'Kullanıcı yönetimi ve sistem ayarları', + 'admin.tabs.users': 'Kullanıcılar', + 'admin.tabs.categories': 'Kategoriler', + 'admin.tabs.backup': 'Yedekleme', + 'admin.tabs.notifications': 'Bildirimler', + 'admin.tabs.audit': 'Denetim', + 'admin.stats.users': 'Kullanıcılar', + 'admin.stats.trips': 'Seyahatler', + 'admin.stats.places': 'Mekanlar', + 'admin.stats.photos': 'Fotoğraflar', + 'admin.stats.files': 'Dosyalar', + 'admin.table.user': 'Kullanıcı', + 'admin.table.email': 'E-posta', + 'admin.table.role': 'Rol', + 'admin.table.created': 'Oluşturulma', + 'admin.table.lastLogin': 'Son Giriş', + 'admin.table.actions': 'İşlemler', + 'admin.you': '(Sen)', + 'admin.editUser': 'Kullanıcıyı Düzenle', + 'admin.newPassword': 'Yeni Şifre', + 'admin.newPasswordHint': 'Mevcut şifreyi korumak için boş bırakın', + 'admin.deleteUser': '"{name}" kullanıcısı silinsin mi? Tüm seyahatleri kalıcı olarak silinecektir.', + 'admin.deleteUserTitle': 'Kullanıcıyı sil', + 'admin.newPasswordPlaceholder': 'Yeni şifreyi girin…', + 'admin.toast.loadError': 'Yönetici verileri yüklenemedi', + 'admin.toast.userUpdated': 'Kullanıcı güncellendi', + 'admin.toast.updateError': 'Güncelleme başarısız', + 'admin.toast.userDeleted': 'Kullanıcı silindi', + 'admin.toast.deleteError': 'Silme başarısız', + 'admin.toast.cannotDeleteSelf': 'Kendi hesabınızı silemezsiniz', + 'admin.toast.userCreated': 'Kullanıcı oluşturuldu', + 'admin.toast.createError': 'Kullanıcı oluşturulamadı', + 'admin.toast.fieldsRequired': 'Kullanıcı adı, e-posta ve şifre zorunludur', + 'admin.createUser': 'Kullanıcı Oluştur', + 'admin.invite.title': 'Davet Bağlantıları', + 'admin.invite.subtitle': 'Tek kullanımlık kayıt bağlantıları oluşturun', + 'admin.invite.create': 'Bağlantı Oluştur', + 'admin.invite.createAndCopy': 'Oluştur & Kopyala', + 'admin.invite.empty': 'Henüz davet bağlantısı oluşturulmadı', + 'admin.invite.maxUses': 'Maks. Kullanım', + 'admin.invite.expiry': 'Sona Erme', + 'admin.invite.uses': 'kullanıldı', + 'admin.invite.expiresAt': 'bitiş', + 'admin.invite.createdBy': 'oluşturan:', + 'admin.invite.active': 'Aktif', + 'admin.invite.expired': 'Süresi Dolmuş', + 'admin.invite.usedUp': 'Tüketilmiş', + 'admin.invite.copied': 'Davet bağlantısı panoya kopyalandı', + 'admin.invite.copyLink': 'Bağlantıyı kopyala', + 'admin.invite.deleted': 'Davet bağlantısı silindi', + 'admin.invite.createError': 'Davet bağlantısı oluşturulamadı', + 'admin.invite.deleteError': 'Davet bağlantısı silinemedi', + 'admin.tabs.settings': 'Ayarlar', + 'admin.allowRegistration': 'Kayıtlara İzin Ver', + 'admin.allowRegistrationHint': 'Yeni kullanıcılar kendi kendilerine kayıt olabilir', + 'admin.authMethods': 'Kimlik Doğrulama Yöntemleri', + 'admin.passwordLogin': 'Şifre ile Giriş', + 'admin.passwordLoginHint': 'Kullanıcıların e-posta ve şifre ile giriş yapmasına izin verin', + 'admin.passwordRegistration': 'Şifre ile Kayıt', + 'admin.passwordRegistrationHint': 'Yeni kullanıcıların e-posta ve şifre ile kayıt olmasına izin verin', + 'admin.oidcLogin': 'SSO Girişi', + 'admin.oidcLoginHint': 'Kullanıcıların SSO ile giriş yapmasına izin verin', + 'admin.oidcRegistration': 'SSO Otomatik Yetkilendirme', + 'admin.oidcRegistrationHint': 'Yeni SSO kullanıcıları için otomatik olarak hesap oluştur', + 'admin.envOverrideHint': 'Şifreyle giriş ayarları OIDC_ONLY ortam değişkeni tarafından kontrol edilir ve buradan değiştirilemez.', + 'admin.lockoutWarning': 'En az bir giriş yöntemi etkin kalmalıdır', + 'admin.requireMfa': 'İki faktörlü kimlik doğrulamayı (2FA) zorunlu kıl', + 'admin.requireMfaHint': '2FA kullanmayan kullanıcılar, uygulamayı kullanmadan önce Ayarlar\'dan kurulumu tamamlamalıdır.', + 'admin.apiKeys': 'API Anahtarları', + 'admin.apiKeysHint': 'İsteğe bağlı. Fotoğraflar ve hava durumu gibi gelişmiş yer verilerini etkinleştirir.', + 'admin.mapsKey': 'Google Maps API Anahtarı', + 'admin.mapsKeyHint': 'Mekan araması için gereklidir. console.cloud.google.com adresinden alın', + 'admin.mapsKeyHintLong': 'API anahtarı olmadan mekan araması için OpenStreetMap kullanılır. Google API anahtarı ile fotoğraflar, puanlar ve çalışma saatleri de yüklenebilir. console.cloud.google.com adresinden bir tane alın.', + 'admin.recommended': 'Önerilen', + 'admin.weatherKey': 'OpenWeatherMap API Anahtarı', + 'admin.weatherKeyHint': 'Hava durumu verisi için. openweathermap.org adresinden ücretsiz alın', + 'admin.validateKey': 'Test Et', + 'admin.keyValid': 'Bağlandı', + 'admin.keyInvalid': 'Geçersiz', + 'admin.keySaved': 'API anahtarları kaydedildi', + 'admin.oidcTitle': 'Tekil Oturum Açma (OIDC)', + 'admin.oidcSubtitle': 'Google, Apple, Authentik veya Keycloak gibi harici sağlayıcılar aracılığıyla girişe izin verin.', + 'admin.oidcDisplayName': 'Görünen Ad', + 'admin.oidcIssuer': 'Sağlayıcı (Issuer) URL\'si', + 'admin.oidcIssuerHint': 'Sağlayıcının OpenID Connect Issuer URL\'si. örn. https://accounts.google.com', + 'admin.oidcSaved': 'OIDC yapılandırması kaydedildi', + 'admin.oidcOnlyMode': 'Şifreyle kimlik doğrulamayı devre dışı bırak', + 'admin.oidcOnlyModeHint': 'Etkinleştirildiğinde, sadece SSO ile girişe izin verilir. Şifre tabanlı giriş ve kayıt işlemleri engellenir.', + + // File Types + 'admin.fileTypes': 'İzin Verilen Dosya Türleri', + 'admin.fileTypesHint': 'Kullanıcıların hangi dosya türlerini yükleyebileceğini yapılandırın.', + 'admin.fileTypesFormat': 'Virgülle ayrılmış uzantılar (örn. jpg,png,pdf,doc). Tüm türlere izin vermek için * kullanın.', + 'admin.fileTypesSaved': 'Dosya türü ayarları kaydedildi', + + 'admin.placesPhotos.title': 'Mekan Fotoğrafları', + 'admin.placesPhotos.subtitle': 'Fotoğrafları Google Places API\'den alın. API kotasından tasarruf etmek için devre dışı bırakın. Wikimedia fotoğrafları bundan etkilenmez.', + 'admin.placesAutocomplete.title': 'Mekan Otomatik Tamamlama', + 'admin.placesAutocomplete.subtitle': 'Arama önerileri için Google Places API kullanın. API kotasından tasarruf etmek için devre dışı bırakın.', + 'admin.placesDetails.title': 'Mekan Detayları', + 'admin.placesDetails.subtitle': 'Google Places API\'den detaylı mekan bilgilerini (çalışma saatleri, puan, web sitesi) alın. API kotasından tasarruf etmek için devre dışı bırakın.', + // Packing Templates & Bag Tracking + 'admin.bagTracking.title': 'Çanta Takibi', + 'admin.bagTracking.subtitle': 'Paketleme öğeleri için ağırlık ve çanta atamasını etkinleştirin', + 'admin.collab.chat.title': 'Sohbet', + 'admin.collab.chat.subtitle': 'Seyahat işbirliği için gerçek zamanlı mesajlaşma', + 'admin.collab.notes.title': 'Notlar', + 'admin.collab.notes.subtitle': 'Paylaşılan notlar ve belgeler', + 'admin.collab.polls.title': 'Anketler', + 'admin.collab.polls.subtitle': 'Grup anketleri ve oylama', + 'admin.collab.whatsnext.title': "Sırada Ne Var", + 'admin.collab.whatsnext.subtitle': 'Etkinlik önerileri ve sonraki adımlar', + 'admin.tabs.config': 'Kişiselleştirme', + 'admin.tabs.defaults': 'Kullanıcı Varsayılanları', + 'admin.defaultSettings.title': 'Varsayılan Kullanıcı Ayarları', + 'admin.defaultSettings.description': 'Sistem geneli varsayılanları ayarlayın. Bir ayarı değiştirmemiş kullanıcılar bu değerleri görecektir. Kullanıcıların kendi değişiklikleri her zaman önceliklidir.', + 'admin.defaultSettings.saved': 'Varsayılanlar kaydedildi', + 'admin.defaultSettings.reset': 'Sistem varsayılanına sıfırla', + 'admin.defaultSettings.resetToBuiltIn': 'sıfırla', + 'admin.tabs.templates': 'Eşya Şablonları', + 'admin.packingTemplates.title': 'Eşya Listesi Şablonları', + 'admin.packingTemplates.subtitle': 'Seyahatleriniz için yeniden kullanılabilir eşya listeleri oluşturun', + 'admin.packingTemplates.create': 'Yeni Şablon', + 'admin.packingTemplates.namePlaceholder': 'Şablon adı (örn. Plaj Tatili)', + 'admin.packingTemplates.empty': 'Henüz şablon oluşturulmadı', + 'admin.packingTemplates.items': 'öğe', + 'admin.packingTemplates.categories': 'kategori', + 'admin.packingTemplates.itemName': 'Öğe adı', + 'admin.packingTemplates.itemCategory': 'Kategori', + 'admin.packingTemplates.categoryName': 'Kategori adı (örn. Giyim)', + 'admin.packingTemplates.addCategory': 'Kategori ekle', + 'admin.packingTemplates.created': 'Şablon oluşturuldu', + 'admin.packingTemplates.deleted': 'Şablon silindi', + 'admin.packingTemplates.loadError': 'Şablonlar yüklenemedi', + 'admin.packingTemplates.createError': 'Şablon oluşturulamadı', + 'admin.packingTemplates.deleteError': 'Şablon silinemedi', + 'admin.packingTemplates.saveError': 'Kaydetme başarısız', + + // Addons + 'admin.tabs.addons': 'Eklentiler', + 'admin.addons.title': 'Eklentiler', + 'admin.addons.subtitle': 'TREK deneyiminizi özelleştirmek için özellikleri etkinleştirin veya devre dışı bırakın.', + 'admin.addons.catalog.packing.name': 'Listeler', + 'admin.addons.catalog.packing.description': 'Seyahatleriniz için eşya listeleri ve yapılacaklar görevleri', + 'admin.addons.catalog.budget.name': 'Bütçe', + 'admin.addons.catalog.budget.description': 'Harcamaları takip edin ve seyahat bütçenizi planlayın', + 'admin.addons.catalog.documents.name': 'Belgeler', + 'admin.addons.catalog.documents.description': 'Seyahat belgelerini saklayın ve yönetin', + 'admin.addons.catalog.vacay.name': 'Vacay (Tatil)', + 'admin.addons.catalog.vacay.description': 'Takvim görünümlü kişisel tatil planlayıcı', + 'admin.addons.catalog.atlas.name': 'Atlas', + 'admin.addons.catalog.atlas.description': 'Ziyaret edilen ülkeler ve seyahat istatistikleri ile dünya haritası', + 'admin.addons.catalog.collab.name': 'İşbirliği', + 'admin.addons.catalog.collab.description': 'Seyahat planlaması için gerçek zamanlı notlar, anketler ve sohbet', + 'admin.addons.catalog.memories.name': 'Fotoğraflar (Immich)', + 'admin.addons.catalog.memories.description': 'Immich sunucunuz aracılığıyla seyahat fotoğraflarını paylaşın', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Yapay zeka asistanı entegrasyonu için Model Context Protocol', + 'admin.addons.subtitleBefore': 'Deneyiminizi özelleştirmek için özellikleri ', + 'admin.addons.subtitleAfter': ' etkinleştirin veya devre dışı bırakın.', + 'admin.addons.enabled': 'Etkin', + 'admin.addons.disabled': 'Devre Dışı', + 'admin.addons.type.trip': 'Seyahat', + 'admin.addons.type.global': 'Global', + 'admin.addons.type.integration': 'Entegrasyon', + 'admin.addons.tripHint': 'Her seyahatin içinde bir sekme olarak kullanılabilir', + 'admin.addons.globalHint': 'Ana gezinme menüsünde bağımsız bir bölüm olarak kullanılabilir', + 'admin.addons.integrationHint': 'Özel bir sayfası olmayan arka plan servisleri ve API entegrasyonları', + 'admin.addons.toast.updated': 'Eklenti güncellendi', + 'admin.addons.toast.error': 'Eklenti güncellenemedi', + 'admin.addons.noAddons': 'Kullanılabilir eklenti yok', + // Weather info + 'admin.weather.title': 'Hava Durumu Verisi', + 'admin.weather.badge': '24 Mart 2026\'dan beri', + 'admin.weather.description': 'TREK hava durumu veri kaynağı olarak Open-Meteo kullanır. Open-Meteo ücretsiz, açık kaynaklı bir hava durumu servisidir — API anahtarı gerekmez.', + 'admin.weather.forecast': '16 günlük tahmin', + 'admin.weather.forecastDesc': 'Eskiden 5 gündü (OpenWeatherMap)', + 'admin.weather.climate': 'Geçmiş iklim verileri', + 'admin.weather.climateDesc': '16 günlük tahminin ötesindeki günler için son 85 yılın ortalamaları', + 'admin.weather.requests': '10,000 istek / gün', + 'admin.weather.requestsDesc': 'Ücretsiz, API anahtarı gerekmez', + 'admin.weather.locationHint': 'Hava durumu, her günde koordinatları olan ilk mekana göre belirlenir. Bir güne atanmış mekan yoksa, mekan listesinden herhangi bir mekan referans olarak kullanılır.', + + // GitHub + 'admin.tabs.mcpTokens': 'MCP Erişimi', + 'admin.mcpTokens.title': 'MCP Erişimi', + 'admin.mcpTokens.subtitle': 'Tüm kullanıcılar genelinde OAuth oturumlarını ve API token\'larını yönetin', + 'admin.mcpTokens.sectionTitle': 'API Anahtarları (Token)', + 'admin.mcpTokens.owner': 'Sahip', + 'admin.mcpTokens.tokenName': 'Anahtar Adı', + 'admin.mcpTokens.created': 'Oluşturulma', + 'admin.mcpTokens.lastUsed': 'Son Kullanım', + 'admin.mcpTokens.never': 'Asla', + 'admin.mcpTokens.empty': 'Henüz hiçbir MCP anahtarı oluşturulmadı', + 'admin.mcpTokens.deleteTitle': 'Anahtarı Sil', + 'admin.mcpTokens.deleteMessage': 'Bu, anahtarı anında iptal edecektir. Kullanıcı bu anahtar üzerinden MCP erişimini kaybeder.', + 'admin.mcpTokens.deleteSuccess': 'Anahtar silindi', + 'admin.mcpTokens.deleteError': 'Anahtar silinemedi', + 'admin.mcpTokens.loadError': 'Anahtarlar yüklenemedi', + 'admin.oauthSessions.sectionTitle': 'OAuth Oturumları', + 'admin.oauthSessions.clientName': 'İstemci', + 'admin.oauthSessions.owner': 'Sahip', + 'admin.oauthSessions.scopes': 'Kapsamlar', + 'admin.oauthSessions.created': 'Oluşturulma', + 'admin.oauthSessions.empty': 'Aktif OAuth oturumu yok', + 'admin.oauthSessions.revokeTitle': 'Oturumu İptal Et', + 'admin.oauthSessions.revokeMessage': 'Bu, OAuth oturumunu anında iptal edecektir. İstemci MCP erişimini kaybeder.', + 'admin.oauthSessions.revokeSuccess': 'Oturum iptal edildi', + 'admin.oauthSessions.revokeError': 'Oturum iptal edilemedi', + 'admin.oauthSessions.loadError': 'OAuth oturumları yüklenemedi', + 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Güvenliğe duyarlı ve yönetimsel olaylar (yedeklemeler, kullanıcılar, MFA, ayarlar).', + 'admin.audit.empty': 'Henüz denetim kaydı yok.', + 'admin.audit.refresh': 'Yenile', + 'admin.audit.loadMore': 'Daha fazla yükle', + 'admin.audit.showing': '{count} yüklendi · {total} toplam', + 'admin.audit.col.time': 'Zaman', + 'admin.audit.col.user': 'Kullanıcı', + 'admin.audit.col.action': 'İşlem', + 'admin.audit.col.resource': 'Kaynak', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Detaylar', + 'admin.github.title': 'Sürüm Geçmişi', + 'admin.github.subtitle': '{repo} reposundan son güncellemeler', + 'admin.github.latest': 'En Yeni', + 'admin.github.prerelease': 'Ön Sürüm', + 'admin.github.showDetails': 'Detayları göster', + 'admin.github.hideDetails': 'Detayları gizle', + 'admin.github.loadMore': 'Daha fazla yükle', + 'admin.github.loading': 'Yükleniyor...', + 'admin.github.error': 'Sürümler yüklenemedi', + 'admin.github.by': 'yayınlayan:', + 'admin.github.support': 'TREK\'i geliştirmeye devam etmeme yardımcı olur', + + 'admin.update.available': 'Güncelleme mevcut', + 'admin.update.text': 'TREK {version} mevcut. Siz {current} sürümünü kullanıyorsunuz.', + 'admin.update.button': 'GitHub\'da Görüntüle', + 'admin.update.install': 'Güncellemeyi Yükle', + 'admin.update.confirmTitle': 'Güncelleme Yüklensin mi?', + 'admin.update.confirmText': 'TREK {current} sürümünden {version} sürümüne güncellenecek. Sunucu daha sonra otomatik olarak yeniden başlatılacak.', + 'admin.update.dataInfo': 'Tüm verileriniz (seyahatler, kullanıcılar, API anahtarları, yüklemeler, Vacay, Atlas, bütçeler) korunacaktır.', + 'admin.update.warning': 'Yeniden başlatma sırasında uygulama kısa bir süreliğine kullanılamayacaktır.', + 'admin.update.confirm': 'Şimdi Güncelle', + 'admin.update.installing': 'Güncelleniyor…', + 'admin.update.success': 'Güncelleme yüklendi! Sunucu yeniden başlatılıyor…', + 'admin.update.failed': 'Güncelleme başarısız', + 'admin.update.backupHint': 'Güncellemeden önce bir yedek oluşturmanızı öneririz.', + 'admin.update.backupLink': 'Yedeklemeye Git', + 'admin.update.howTo': 'Nasıl Güncellenir', + 'admin.update.dockerText': 'TREK sunucunuz Docker üzerinde çalışıyor. {version} sürümüne güncellemek için sunucunuzda şu komutları çalıştırın:', + 'admin.update.reloadHint': 'Lütfen birkaç saniye içinde sayfayı yenileyin.', + + // Vacay addon + 'vacay.subtitle': 'Tatil günlerini planlayın ve yönetin', + 'vacay.settings': 'Ayarlar', + 'vacay.year': 'Yıl', + 'vacay.addYear': 'Sonraki yılı ekle', + 'vacay.addPrevYear': 'Önceki yılı ekle', + 'vacay.removeYear': 'Yılı kaldır', + 'vacay.removeYearConfirm': '{year} kaldırılsın mı?', + 'vacay.removeYearHint': 'Bu yıla ait tüm tatil girişleri ve şirket tatilleri kalıcı olarak silinecektir.', + 'vacay.remove': 'Kaldır', + 'vacay.persons': 'Kişiler', + 'vacay.noPersons': 'Kişi eklenmedi', + 'vacay.addPerson': 'Kişi Ekle', + 'vacay.editPerson': 'Kişiyi Düzenle', + 'vacay.removePerson': 'Kişiyi Kaldır', + 'vacay.removePersonConfirm': '{name} kaldırılsın mı?', + 'vacay.removePersonHint': 'Bu kişiye ait tüm tatil girişleri kalıcı olarak silinecektir.', + 'vacay.personName': 'İsim', + 'vacay.personNamePlaceholder': 'İsim girin', + 'vacay.color': 'Renk', + 'vacay.add': 'Ekle', + 'vacay.legend': 'Açıklama', + 'vacay.publicHoliday': 'Resmi Tatil', + 'vacay.companyHoliday': 'Şirket Tatili', + 'vacay.weekend': 'Hafta Sonu', + 'vacay.modeVacation': 'Tatil', + 'vacay.modeCompany': 'Şirket Tatili', + 'vacay.entitlement': 'Hak Ediş', + 'vacay.entitlementDays': 'Gün', + 'vacay.used': 'Kullanılan', + 'vacay.remaining': 'Kalan', + 'vacay.carriedOver': '{year} yılından devreden', + 'vacay.blockWeekends': 'Hafta Sonlarını Engelle', + 'vacay.blockWeekendsHint': 'Hafta sonu günlerine tatil girişi yapılmasını engelle', + 'vacay.weekendDays': 'Hafta sonu günleri', + 'vacay.mon': 'Pzt', + 'vacay.tue': 'Sal', + 'vacay.wed': 'Çar', + 'vacay.thu': 'Per', + 'vacay.fri': 'Cum', + 'vacay.sat': 'Cmt', + 'vacay.sun': 'Paz', + 'vacay.publicHolidays': 'Resmi Tatiller', + 'vacay.publicHolidaysHint': 'Takvimde resmi tatilleri işaretleyin', + 'vacay.selectCountry': 'Ülke seçin', + 'vacay.selectRegion': 'Bölge seçin (isteğe bağlı)', + 'vacay.addCalendar': 'Takvim ekle', + 'vacay.calendarLabel': 'Etiket (isteğe bağlı)', + 'vacay.calendarColor': 'Renk', + 'vacay.noCalendars': 'Henüz tatil takvimi eklenmedi', + 'vacay.companyHolidays': 'Şirket Tatilleri', + 'vacay.companyHolidaysHint': 'Şirket geneli tatil günlerinin işaretlenmesine izin ver', + 'vacay.companyHolidaysNoDeduct': 'Şirket tatilleri yıllık izin günlerinden düşülmez.', + 'vacay.weekStart': 'Hafta başlangıcı', + 'vacay.weekStartHint': 'Takvim haftasının Pazartesi veya Pazar günü ile başlamasını seçin', + 'vacay.carryOver': 'Devretme', + 'vacay.carryOverHint': 'Kalan tatil günlerini otomatik olarak sonraki yıla devret', + 'vacay.sharing': 'Paylaşım', + 'vacay.sharingHint': 'Tatil planınızı diğer TREK kullanıcılarıyla paylaşın', + 'vacay.owner': 'Sahip', + 'vacay.shareEmailPlaceholder': 'TREK kullanıcısının e-postası', + 'vacay.shareSuccess': 'Plan başarıyla paylaşıldı', + 'vacay.shareError': 'Plan paylaşılamadı', + 'vacay.dissolve': 'Birleşimi Dağıt', + 'vacay.dissolveHint': 'Takvimleri tekrar ayırın. Kendi girişleriniz korunacaktır.', + 'vacay.dissolveAction': 'Dağıt', + 'vacay.dissolved': 'Takvim ayrıldı', + 'vacay.fusedWith': 'Şununla birleştirildi:', + 'vacay.you': 'sen', + 'vacay.noData': 'Veri yok', + 'vacay.changeColor': 'Rengi değiştir', + 'vacay.inviteUser': 'Kullanıcı Davet Et', + 'vacay.inviteHint': 'Başka bir TREK kullanıcısını birleşik bir tatil takvimi paylaşmaya davet edin.', + 'vacay.selectUser': 'Kullanıcı seçin', + 'vacay.sendInvite': 'Davet Gönder', + 'vacay.inviteSent': 'Davet gönderildi', + 'vacay.inviteError': 'Davet gönderilemedi', + 'vacay.pending': 'bekliyor', + 'vacay.noUsersAvailable': 'Kullanılabilir kullanıcı yok', + 'vacay.accept': 'Kabul Et', + 'vacay.decline': 'Reddet', + 'vacay.acceptFusion': 'Kabul Et ve Birleştir', + 'vacay.inviteTitle': 'Birleştirme İsteği', + 'vacay.inviteWantsToFuse': 'sizinle bir tatil takvimi paylaşmak istiyor.', + 'vacay.fuseInfo1': 'İkiniz de tüm tatil girişlerini ortak tek bir takvimde göreceksiniz.', + 'vacay.fuseInfo2': 'Her iki taraf da birbirleri için giriş oluşturabilir ve düzenleyebilir.', + 'vacay.fuseInfo3': 'Her iki taraf da girişleri silebilir ve tatil hak edişlerini değiştirebilir.', + 'vacay.fuseInfo4': 'Resmi tatiller ve şirket tatilleri gibi ayarlar paylaşılır.', + 'vacay.fuseInfo5': 'Birleşme herhangi bir tarafça istenildiği zaman bozulabilir. Sizin girişleriniz korunur.', + 'nav.myTrips': 'Seyahatlerim', + + // Atlas addon + 'atlas.subtitle': 'Dünya çapındaki seyahat ayak iziniz', + 'atlas.countries': 'Ülkeler', + 'atlas.trips': 'Seyahatler', + 'atlas.places': 'Mekanlar', + 'atlas.unmark': 'Kaldır', + 'atlas.confirmMark': 'Bu ülke ziyaret edilmiş olarak işaretlensin mi?', + 'atlas.confirmUnmark': 'Bu ülke ziyaret edilenler listenizden kaldırılsın mı?', + 'atlas.confirmUnmarkRegion': 'Bu bölge ziyaret edilenler listenizden kaldırılsın mı?', + 'atlas.markVisited': 'Ziyaret edildi olarak işaretle', + 'atlas.markVisitedHint': 'Bu ülkeyi ziyaret edilenler listenize ekleyin', + 'atlas.markRegionVisitedHint': 'Bu bölgeyi ziyaret edilenler listenize ekleyin', + 'atlas.addToBucket': 'Yapılacaklar listesine (Bucket List) ekle', + 'atlas.addPoi': 'Mekan ekle', + 'atlas.searchCountry': 'Bir ülke ara...', + 'atlas.bucketNamePlaceholder': 'İsim (ülke, şehir, mekan...)', + 'atlas.month': 'Ay', + 'atlas.year': 'Yıl', + 'atlas.addToBucketHint': 'Ziyaret etmek istediğiniz bir yer olarak kaydedin', + 'atlas.bucketWhen': 'Ne zaman ziyaret etmeyi planlıyorsunuz?', + 'atlas.statsTab': 'İstatistikler', + 'atlas.bucketTab': 'Bucket List (Hedefler)', + 'atlas.addBucket': 'Hedef listesine ekle', + 'atlas.bucketNotesPlaceholder': 'Notlar (isteğe bağlı)', + 'atlas.bucketEmpty': 'Hedef listeniz boş', + 'atlas.bucketEmptyHint': 'Ziyaret etmeyi hayal ettiğiniz yerleri ekleyin', + 'atlas.days': 'Gün', + 'atlas.visitedCountries': 'Ziyaret Edilen Ülkeler', + 'atlas.cities': 'Şehirler', + 'atlas.noData': 'Henüz seyahat verisi yok', + 'atlas.noDataHint': 'Dünya haritanızı görmek için bir seyahat oluşturun ve mekanlar ekleyin', + 'atlas.lastTrip': 'Son seyahat', + 'atlas.nextTrip': 'Sıradaki seyahat', + 'atlas.daysLeft': 'gün kaldı', + 'atlas.streak': 'Seri', + 'atlas.years': 'yıl', + 'atlas.yearInRow': 'art arda yıl', + 'atlas.yearsInRow': 'art arda yıl', + 'atlas.tripIn': 'yılında seyahat', + 'atlas.tripsIn': 'yılında seyahatler', + 'atlas.since': 'başlangıç', + 'atlas.europe': 'Avrupa', + 'atlas.asia': 'Asya', + 'atlas.northAmerica': 'K. Amerika', + 'atlas.southAmerica': 'G. Amerika', + 'atlas.africa': 'Afrika', + 'atlas.oceania': 'Okyanusya', + 'atlas.other': 'Diğer', + 'atlas.firstVisit': 'İlk seyahat', + 'atlas.lastVisitLabel': 'Son seyahat', + 'atlas.tripSingular': 'Seyahat', + 'atlas.tripPlural': 'Seyahatler', + 'atlas.placeVisited': 'Ziyaret edilen mekan', + 'atlas.placesVisited': 'Ziyaret edilen mekanlar', + + // Trip Planner + 'trip.tabs.plan': 'Plan', + 'trip.tabs.transports': 'Ulaşım', + 'trip.tabs.reservations': 'Rezervasyonlar', + 'trip.tabs.reservationsShort': 'Rezerv.', + 'trip.tabs.packing': 'Eşya Listesi', + 'trip.tabs.packingShort': 'Eşya', + 'trip.tabs.lists': 'Listeler', + 'trip.tabs.listsShort': 'Listeler', + 'trip.tabs.budget': 'Bütçe', + 'trip.tabs.files': 'Dosyalar', + 'trip.loading': 'Seyahat yükleniyor...', + 'trip.loadingPhotos': 'Mekan fotoğrafları yükleniyor...', + 'trip.mobilePlan': 'Plan', + 'trip.mobilePlaces': 'Mekanlar', + 'trip.toast.placeUpdated': 'Mekan güncellendi', + 'trip.toast.placeAdded': 'Mekan eklendi', + 'trip.toast.placeDeleted': 'Mekan silindi', + 'trip.toast.selectDay': 'Lütfen önce bir gün seçin', + 'trip.toast.assignedToDay': 'Mekan güne atandı', + 'trip.toast.reorderError': 'Sıralama başarısız', + 'trip.toast.reservationUpdated': 'Rezervasyon güncellendi', + 'trip.toast.reservationAdded': 'Rezervasyon eklendi', + 'trip.toast.deleted': 'Silindi', + 'trip.confirm.deletePlace': 'Bu mekanı silmek istediğinizden emin misiniz?', + 'trip.confirm.deletePlaces': '{count} mekan silinsin mi?', + 'trip.toast.placesDeleted': '{count} mekan silindi', + + // Day Plan Sidebar + 'dayplan.emptyDay': 'Bu gün için planlanmış mekan yok', + 'dayplan.cannotReorderTransport': 'Sabit saati olan rezervasyonlar yeniden sıralanamaz', + 'dayplan.confirmRemoveTimeTitle': 'Zaman kaldırılsın mı?', + 'dayplan.confirmRemoveTimeBody': 'Bu mekanın sabit bir saati var ({time}). Bunu taşımak saati kaldıracak ve serbest sıralamaya izin verecektir.', + 'dayplan.confirmRemoveTimeAction': 'Zamanı kaldır ve taşı', + 'dayplan.cannotDropOnTimed': 'Öğeler zaman sınırlı kayıtların arasına yerleştirilemez', + 'dayplan.cannotBreakChronology': 'Bu işlem, süreli öğelerin ve rezervasyonların kronolojik sırasını bozacaktır', + 'dayplan.addNote': 'Not Ekle', + 'dayplan.expandAll': 'Tüm günleri genişlet', + 'dayplan.collapseAll': 'Tüm günleri daralt', + 'dayplan.editNote': 'Notu Düzenle', + 'dayplan.noteAdd': 'Not Ekle', + 'dayplan.noteEdit': 'Notu Düzenle', + 'dayplan.noteTitle': 'Not', + 'dayplan.noteSubtitle': 'Günlük Not', + 'dayplan.totalCost': 'Toplam Maliyet', + 'dayplan.days': 'Günler', + 'dayplan.dayN': 'Gün {n}', + 'dayplan.calculating': 'Hesaplanıyor...', + 'dayplan.route': 'Rota', + 'dayplan.optimize': 'Optimize Et', + 'dayplan.optimized': 'Rota optimize edildi', + 'dayplan.routeError': 'Rota hesaplanamadı', + 'dayplan.toast.needTwoPlaces': 'Rota optimizasyonu için en az iki mekan gereklidir', + 'dayplan.toast.routeOptimized': 'Rota optimize edildi', + 'dayplan.toast.noGeoPlaces': 'Rota hesaplaması için koordinatları olan mekan bulunamadı', + 'dayplan.confirmed': 'Onaylandı', + 'dayplan.pendingRes': 'Bekliyor', + 'dayplan.pdf': 'PDF', + 'dayplan.pdfTooltip': 'Gün planını PDF olarak dışa aktar', + 'dayplan.pdfError': 'PDF dışa aktarılamadı', + + // Places Sidebar + 'places.addPlace': 'Mekan/Aktivite Ekle', + 'places.importFile': 'Dosya içe aktar', + 'places.sidebarDrop': 'İçe aktarmak için bırakın', + 'places.importFileHint': 'Google My Maps, Google Earth veya GPS takip cihazlarından .gpx, .kml veya .kmz dosyalarını içe aktarın.', + 'places.importFileDropHere': 'Dosya seçmek için tıklayın veya buraya sürükleyip bırakın', + 'places.importFileDropActive': 'Seçmek için dosyayı bırakın', + 'places.importFileUnsupported': 'Desteklenmeyen dosya türü. .gpx, .kml veya .kmz kullanın.', + 'places.importFileTooLarge': 'Dosya çok büyük. Maksimum yükleme boyutu {maxMb} MB\'dir.', + 'places.importFileError': 'İçe aktarma başarısız', + 'places.importAllSkipped': 'Tüm mekanlar zaten seyahatte mevcuttu.', + 'places.gpxImported': '{count} mekan GPX\'ten içe aktarıldı', + 'places.gpxImportTypes': 'Neyi içe aktarmak istiyorsunuz?', + 'places.gpxImportWaypoints': 'Yol Noktaları (Waypoints)', + 'places.gpxImportRoutes': 'Rotalar', + 'places.gpxImportTracks': 'İzlemeler (Track - Geometri yoluyla)', + 'places.gpxImportNoneSelected': 'İçe aktarmak için en az bir tür seçin.', + 'places.kmlImportTypes': 'Neyi içe aktarmak istiyorsunuz?', + 'places.kmlImportPoints': 'Noktalar (Placemarks)', + 'places.kmlImportPaths': 'Yollar (LineStrings)', + 'places.kmlImportNoneSelected': 'İçe aktarmak için en az bir tür seçin.', + 'places.selectionCount': '{count} seçildi', + 'places.deleteSelected': 'Seçilenleri sil', + 'places.kmlKmzImported': '{count} mekan KMZ/KML\'den içe aktarıldı', + 'places.urlResolved': 'Mekan URL\'den içe aktarıldı', + 'places.importList': 'Liste İçe Aktar', + 'places.kmlKmzSummaryValues': 'İşaretler: {total} • İçe aktarılan: {created} • Atlanan: {skipped}', + 'places.importGoogleList': 'Google Listesi', + 'places.importNaverList': 'Naver Listesi', + 'places.googleListHint': 'Tüm mekanları içe aktarmak için paylaşılan bir Google Maps liste bağlantısını yapıştırın.', + 'places.googleListImported': '{count} mekan "{list}" listesinden içe aktarıldı', + 'places.googleListError': 'Google Maps listesi içe aktarılamadı', + 'places.naverListHint': 'Tüm mekanları içe aktarmak için paylaşılan bir Naver Maps liste bağlantısını yapıştırın.', + 'places.naverListImported': '{count} mekan "{list}" listesinden içe aktarıldı', + 'places.naverListError': 'Naver Maps listesi içe aktarılamadı', + 'places.viewDetails': 'Detayları Görüntüle', + 'places.assignToDay': 'Hangi güne eklensin?', + 'places.all': 'Tümü', + 'places.unplanned': 'Planlanmamış', + 'places.filterTracks': 'İzlemeler', + 'places.search': 'Mekan ara...', + 'places.allCategories': 'Tüm Kategoriler', + 'places.categoriesSelected': 'kategori', + 'places.clearFilter': 'Filtreyi temizle', + 'places.count': '{count} mekan', + 'places.countSingular': '1 mekan', + 'places.allPlanned': 'Tüm mekanlar planlandı', + 'places.noneFound': 'Mekan bulunamadı', + 'places.editPlace': 'Mekanı Düzenle', + 'places.formName': 'İsim', + 'places.formNamePlaceholder': 'örn. Eyfel Kulesi', + 'places.formDescription': 'Açıklama', + 'places.formDescriptionPlaceholder': 'Kısa açıklama...', + 'places.formAddress': 'Adres', + 'places.formAddressPlaceholder': 'Sokak, Şehir, Ülke', + 'places.formLat': 'Enlem (örn. 48.8566)', + 'places.formLng': 'Boylam (örn. 2.3522)', + 'places.formCategory': 'Kategori', + 'places.noCategory': 'Kategori Yok', + 'places.categoryNamePlaceholder': 'Kategori adı', + 'places.formTime': 'Zaman', + 'places.startTime': 'Başlangıç', + 'places.endTime': 'Bitiş', + 'places.endTimeBeforeStart': 'Bitiş zamanı başlangıç zamanından önce', + 'places.timeCollision': 'Zaman çakışması:', + 'places.formWebsite': 'Web sitesi', + 'places.formNotes': 'Notlar', + 'places.formNotesPlaceholder': 'Kişisel notlar...', + 'places.formReservation': 'Rezervasyon', + 'places.reservationNotesPlaceholder': 'Rezervasyon notları, onay numarası...', + 'places.mapsSearchPlaceholder': 'Mekan ara...', + 'places.mapsSearchError': 'Mekan araması başarısız oldu.', + 'places.loadingDetails': 'Mekan detayları yükleniyor…', + 'places.osmHint': 'OpenStreetMap araması kullanılıyor (fotoğraflar, çalışma saatleri veya puanlar yok). Tam detaylar için Ayarlar\'dan bir Google API anahtarı ekleyin.', + 'places.osmActive': 'OpenStreetMap üzerinden arama (fotoğraflar, puanlar veya çalışma saatleri yok). Gelişmiş veri için Ayarlar\'dan bir Google API anahtarı ekleyin.', + 'places.categoryCreateError': 'Kategori oluşturulamadı', + 'places.nameRequired': 'Lütfen bir isim girin', + 'places.saveError': 'Kaydedilemedi', + // Place Inspector + 'inspector.opened': 'Açık', + 'inspector.closed': 'Kapalı', + 'inspector.openingHours': 'Çalışma Saatleri', + 'inspector.showHours': 'Çalışma saatlerini göster', + 'inspector.files': 'Dosyalar', + 'inspector.filesCount': '{count} dosya', + 'inspector.remove': 'Kaldır', + 'inspector.removeFromDay': 'Günden Kaldır', + 'inspector.addToDay': 'Güne Ekle', + 'inspector.confirmedRes': 'Onaylı Rezervasyon', + 'inspector.pendingRes': 'Bekleyen Rezervasyon', + 'inspector.google': 'Google Haritalar\'da Aç', + 'inspector.website': 'Web Sitesini Aç', + 'inspector.addRes': 'Rezervasyon', + 'inspector.editRes': 'Rezervasyonu Düzenle', + 'inspector.participants': 'Katılımcılar', + 'inspector.trackStats': 'Takip İstatistikleri', + + // Reservations + 'reservations.title': 'Rezervasyonlar', + 'reservations.empty': 'Henüz rezervasyon yok', + 'reservations.emptyHint': 'Uçuşlar, oteller ve daha fazlası için rezervasyon ekleyin', + 'reservations.add': 'Rezervasyon Ekle', + 'reservations.addManual': 'Manuel Rezervasyon', + 'reservations.placeHint': 'İpucu: Rezervasyonları gün planınızla ilişkilendirmek için doğrudan bir mekan üzerinden oluşturmanız daha iyidir.', + 'reservations.confirmed': 'Onaylandı', + 'reservations.pending': 'Bekliyor', + 'reservations.summary': '{confirmed} onaylı, {pending} bekleyen', + 'reservations.fromPlan': 'Plandan', + 'reservations.showFiles': 'Dosyaları Göster', + 'reservations.editTitle': 'Rezervasyonu Düzenle', + 'reservations.status': 'Durum', + 'reservations.datetime': 'Tarih ve Saat', + 'reservations.startTime': 'Başlangıç saati', + 'reservations.endTime': 'Bitiş saati', + 'reservations.date': 'Tarih', + 'reservations.time': 'Saat', + 'reservations.timeAlt': 'Saat (alternatif, örn. 19:30)', + 'reservations.notes': 'Notlar', + 'reservations.notesPlaceholder': 'Ek notlar...', + 'reservations.meta.airline': 'Havayolu', + 'reservations.meta.flightNumber': 'Uçuş No.', + 'reservations.meta.from': 'Nereden', + 'reservations.meta.to': 'Nereye', + 'reservations.needsReview': 'İncele', + 'reservations.needsReviewHint': 'Havalimanı otomatik olarak eşleştirilemedi — lütfen konumu onaylayın.', + 'reservations.searchLocation': 'İstasyon, liman, adres ara…', + 'airport.searchPlaceholder': 'Havalimanı kodu veya şehir (örn. IST)', + 'map.connections': 'Bağlantılar', + 'map.showConnections': 'Rezervasyon rotalarını göster', + 'map.hideConnections': 'Rezervasyon rotalarını gizle', + 'reservations.meta.trainNumber': 'Tren No.', + 'reservations.meta.platform': 'Peron', + 'reservations.meta.seat': 'Koltuk', + 'reservations.meta.checkIn': 'Giriş (Check-in)', + 'reservations.meta.checkInUntil': 'Check-in son saati', + 'reservations.meta.checkOut': 'Çıkış (Check-out)', + 'reservations.meta.linkAccommodation': 'Konaklama', + 'reservations.meta.pickAccommodation': 'Konaklama yeri ile ilişkilendir', + 'reservations.meta.noAccommodation': 'Hiçbiri', + 'reservations.meta.hotelPlace': 'Konaklama Yeri', + 'reservations.meta.pickHotel': 'Konaklama yeri seçin', + 'reservations.meta.fromDay': 'Başlangıç', + 'reservations.meta.toDay': 'Bitiş', + 'reservations.meta.selectDay': 'Gün seçin', + 'reservations.type.flight': 'Uçuş', + 'reservations.type.hotel': 'Konaklama', + 'reservations.type.restaurant': 'Restoran', + 'reservations.type.train': 'Tren', + 'reservations.type.car': 'Araç Kiralama', + 'reservations.type.cruise': 'Gemi Turu', + 'reservations.type.event': 'Etkinlik', + 'reservations.type.tour': 'Tur', + 'reservations.type.other': 'Diğer', + 'reservations.confirm.delete': '"{name}" rezervasyonunu silmek istediğinizden emin misiniz?', + 'reservations.confirm.deleteTitle': 'Rezervasyon silinsin mi?', + 'reservations.confirm.deleteBody': '"{name}" kalıcı olarak silinecek.', + 'reservations.toast.updated': 'Rezervasyon güncellendi', + 'reservations.toast.removed': 'Rezervasyon silindi', + 'reservations.toast.fileUploaded': 'Dosya yüklendi', + 'reservations.toast.uploadError': 'Yükleme başarısız', + 'reservations.newTitle': 'Yeni Rezervasyon', + 'reservations.bookingType': 'Rezervasyon Türü', + 'reservations.titleLabel': 'Başlık', + 'reservations.titlePlaceholder': 'örn. THY TK123, Hilton Otel, ...', + 'reservations.locationAddress': 'Konum / Adres', + 'reservations.locationPlaceholder': 'Adres, Havalimanı, Otel...', + 'reservations.confirmationCode': 'Rezervasyon Kodu', + 'reservations.confirmationPlaceholder': 'örn. ABC12345', + 'reservations.day': 'Gün', + 'reservations.noDay': 'Gün Yok', + 'reservations.place': 'Mekan', + 'reservations.noPlace': 'Mekan Yok', + 'reservations.pendingSave': 'kaydedilecek…', + 'reservations.uploading': 'Yükleniyor...', + 'reservations.attachFile': 'Dosya ekle', + 'reservations.linkExisting': 'Mevcut dosyayı ilişkilendir', + 'reservations.toast.saveError': 'Kaydetme başarısız', + 'reservations.toast.updateError': 'Güncelleme başarısız', + 'reservations.toast.deleteError': 'Silme başarısız', + 'reservations.confirm.remove': '"{name}" için rezervasyon kaldırılsın mı?', + 'reservations.linkAssignment': 'Gün atamasına bağla', + 'reservations.pickAssignment': 'Planınızdan bir atama seçin...', + 'reservations.noAssignment': 'Bağlantı yok (bağımsız)', + 'reservations.price': 'Fiyat', + 'reservations.budgetCategory': 'Bütçe kategorisi', + 'reservations.budgetCategoryPlaceholder': 'örn. Ulaşım, Konaklama', + 'reservations.budgetCategoryAuto': 'Otomatik (rezervasyon türünden)', + 'reservations.budgetHint': 'Kaydedildiğinde otomatik olarak bir bütçe girdisi oluşturulacaktır.', + 'reservations.departureDate': 'Kalkış', + 'reservations.arrivalDate': 'Varış', + 'reservations.departureTime': 'Kalkış Saati', + 'reservations.arrivalTime': 'Varış Saati', + 'reservations.pickupDate': 'Alış Tarihi', + 'reservations.returnDate': 'İade Tarihi', + 'reservations.pickupTime': 'Alış Saati', + 'reservations.returnTime': 'İade Saati', + 'reservations.endDate': 'Bitiş Tarihi', + 'reservations.meta.departureTimezone': 'Kalkış ZD', + 'reservations.meta.arrivalTimezone': 'Varış ZD', + 'reservations.span.departure': 'Kalkış', + 'reservations.span.arrival': 'Varış', + 'reservations.span.inTransit': 'Transit', + 'reservations.span.pickup': 'Alış', + 'reservations.span.return': 'İade', + 'reservations.span.active': 'Aktif', + 'reservations.span.start': 'Başlangıç', + 'reservations.span.end': 'Bitiş', + 'reservations.span.ongoing': 'Devam Eden', + 'reservations.validation.endBeforeStart': 'Bitiş tarihi/saati başlangıç tarihi/saatinden sonra olmalıdır', + 'reservations.addBooking': 'Rezervasyon ekle', + + // Budget + 'budget.title': 'Bütçe', + 'budget.exportCsv': 'CSV Dışa Aktar', + 'budget.emptyTitle': 'Henüz bütçe oluşturulmadı', + 'budget.emptyText': 'Seyahat bütçenizi planlamak için kategoriler ve girdiler oluşturun', + 'budget.emptyPlaceholder': 'Kategori adı girin...', + 'budget.createCategory': 'Kategori Oluştur', + 'budget.category': 'Kategori', + 'budget.categoryName': 'Kategori Adı', + 'budget.table.name': 'İsim', + 'budget.table.total': 'Toplam', + 'budget.table.persons': 'Kişiler', + 'budget.table.days': 'Günler', + 'budget.table.perPerson': 'Kişi Başı', + 'budget.table.perDay': 'Günlük', + 'budget.table.perPersonDay': 'K.B. / Gün', + 'budget.table.note': 'Not', + 'budget.table.date': 'Tarih', + 'budget.newEntry': 'Yeni Girdi', + 'budget.defaultEntry': 'Yeni Girdi', + 'budget.defaultCategory': 'Yeni Kategori', + 'budget.total': 'Toplam', + 'budget.totalBudget': 'Toplam Bütçe', + 'budget.byCategory': 'Kategoriye Göre', + 'budget.editTooltip': 'Düzenlemek için tıkla', + 'budget.linkedToReservation': 'Bir rezervasyona bağlı — adını oradan düzenleyin', + 'budget.confirm.deleteCategory': '{count} girdisi olan "{name}" kategorisini silmek istediğinize emin misiniz?', + 'budget.deleteCategory': 'Kategoriyi Sil', + 'budget.perPerson': 'Kişi Başı', + 'budget.paid': 'Ödendi', + 'budget.open': 'Açık', + 'budget.noMembers': 'Atanmış üye yok', + 'budget.settlement': 'Hesaplaşma', + 'budget.settlementInfo': 'Ödediğini belirtmek için bir bütçe kalemindeki üye avatarına tıklayarak yeşil yapın. Hesaplaşma tablosu daha sonra kimin kime ne kadar borcu olduğunu gösterir.', + 'budget.netBalances': 'Net Bakiyeler', + + // Files + 'files.title': 'Dosyalar', + 'files.pageTitle': 'Dosyalar ve Belgeler', + 'files.subtitle': '{trip} için {count} dosya', + 'files.download': 'İndir', + 'files.openError': 'Dosya açılamadı', + 'files.downloadPdf': 'PDF İndir', + 'files.count': '{count} dosya', + 'files.countSingular': '1 dosya', + 'files.uploaded': '{count} yüklendi', + 'files.uploadError': 'Yükleme başarısız', + 'files.dropzone': 'Dosyaları buraya bırakın', + 'files.dropzoneHint': 'veya göz atmak için tıklayın', + 'files.allowedTypes': 'Resimler, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Maks 50 MB', + 'files.uploading': 'Yükleniyor...', + 'files.filterAll': 'Tümü', + 'files.filterPdf': 'PDF\'ler', + 'files.filterImages': 'Resimler', + 'files.filterDocs': 'Belgeler', + 'files.filterCollab': 'İşbirliği Notları', + 'files.sourceCollab': 'İşbirliği Notlarından', + 'files.empty': 'Henüz dosya yok', + 'files.emptyHint': 'Seyahatinize eklemek için dosya yükleyin', + 'files.openTab': 'Yeni sekmede aç', + 'files.confirm.delete': 'Bu dosyayı silmek istediğinizden emin misiniz?', + 'files.toast.deleted': 'Dosya silindi', + 'files.toast.deleteError': 'Dosya silinemedi', + 'files.sourcePlan': 'Gün Planı', + 'files.sourceBooking': 'Rezervasyon', + 'files.attach': 'İliştir', + 'files.pasteHint': 'Resimleri panodan da yapıştırabilirsiniz (Ctrl+V)', + 'files.trash': 'Çöp Kutusu', + 'files.trashEmpty': 'Çöp kutusu boş', + 'files.emptyTrash': 'Çöp Kutusunu Boşalt', + 'files.restore': 'Geri Yükle', + 'files.star': 'Yıldızla', + 'files.unstar': 'Yıldızı Kaldır', + 'files.assign': 'Ata', + 'files.assignTitle': 'Dosya Ata', + 'files.assignPlace': 'Mekan', + 'files.assignBooking': 'Rezervasyon', + 'files.unassigned': 'Atanmamış', + 'files.unlink': 'Bağlantıyı kaldır', + 'files.toast.trashed': 'Çöp kutusuna taşındı', + 'files.toast.restored': 'Dosya geri yüklendi', + 'files.toast.trashEmptied': 'Çöp kutusu boşaltıldı', + 'files.toast.assigned': 'Dosya atandı', + 'files.toast.assignError': 'Atama başarısız', + 'files.toast.restoreError': 'Geri yükleme başarısız', + 'files.confirm.permanentDelete': 'Bu dosya kalıcı olarak silinsin mi? Bu işlem geri alınamaz.', + 'files.confirm.emptyTrash': 'Çöpteki tüm dosyalar kalıcı olarak silinsin mi? Bu işlem geri alınamaz.', + 'files.noteLabel': 'Not', + 'files.notePlaceholder': 'Bir not ekle...', + + // Packing + 'packing.title': 'Eşya Listesi', + 'packing.empty': 'Eşya listesi boş', + 'packing.import': 'İçe Aktar', + 'packing.importTitle': 'Eşya Listesini İçe Aktar', + 'packing.importHint': 'Her satıra bir öğe. Format: Kategori, İsim, Ağırlık gr (isteğe bağlı), Çanta (isteğe bağlı), işaretli/işaretsiz (isteğe bağlı)', + 'packing.importPlaceholder': 'Kişisel Bakım, Diş Fırçası\nGiyim, Tişört, 200\nBelgeler, Pasaport, , El Bagajı\nElektronik, Şarj Aleti, 50, Valiz, checked', + 'packing.importCsv': 'CSV/TXT Yükle', + 'packing.importAction': '{count} İçe Aktar', + 'packing.importSuccess': '{count} öğe içe aktarıldı', + 'packing.importError': 'İçe aktarma başarısız', + 'packing.importEmpty': 'İçe aktarılacak öğe yok', + 'packing.progress': '{packed} / {total} paketlendi (%{percent})', + 'packing.clearChecked': 'İşaretli {count} öğeyi kaldır', + 'packing.clearCheckedShort': '{count} öğeyi kaldır', + 'packing.suggestions': 'Öneriler', + 'packing.suggestionsTitle': 'Öneri Ekle', + 'packing.allSuggested': 'Tüm öneriler eklendi', + 'packing.allPacked': 'Hepsi paketlendi!', + 'packing.addPlaceholder': 'Yeni öğe ekle...', + 'packing.categoryPlaceholder': 'Kategori...', + 'packing.filterAll': 'Tümü', + 'packing.filterOpen': 'Açık', + 'packing.filterDone': 'Tamamlandı', + 'packing.emptyTitle': 'Eşya listesi boş', + 'packing.emptyHint': 'Öğeler ekleyin veya önerileri kullanın', + 'packing.emptyFiltered': 'Bu filtreyle eşleşen öğe yok', + 'packing.menuRename': 'Yeniden Adlandır', + 'packing.menuCheckAll': 'Tümünü İşaretle', + 'packing.menuUncheckAll': 'Tüm İşaretleri Kaldır', + 'packing.menuDeleteCat': 'Kategoriyi Sil', + 'packing.noMembers': 'Seyahat üyesi yok', + 'packing.addItem': 'Öğe ekle', + 'packing.addItemPlaceholder': 'Öğe adı...', + 'packing.addCategory': 'Kategori ekle', + 'packing.newCategoryPlaceholder': 'Kategori adı (örn. Giyim)', + 'packing.applyTemplate': 'Şablon uygula', + 'packing.template': 'Şablon', + 'packing.templateApplied': 'Şablondan {count} öğe eklendi', + 'packing.templateError': 'Şablon uygulanamadı', + 'packing.saveAsTemplate': 'Şablon olarak kaydet', + 'packing.templateName': 'Şablon adı', + 'packing.templateSaved': 'Eşya listesi şablon olarak kaydedildi', + 'packing.bags': 'Çantalar', + 'packing.noBag': 'Atanmamış', + 'packing.totalWeight': 'Toplam ağırlık', + 'packing.bagName': 'Çanta adı...', + 'packing.addBag': 'Çanta ekle', + 'packing.changeCategory': 'Kategoriyi Değiştir', + 'packing.confirm.clearChecked': 'İşaretlenmiş {count} öğeyi kaldırmak istediğinizden emin misiniz?', + 'packing.confirm.deleteCat': '{count} öğesi olan "{name}" kategorisini silmek istediğinizden emin misiniz?', + 'packing.defaultCategory': 'Diğer', + 'packing.toast.saveError': 'Kaydetme başarısız', + 'packing.toast.deleteError': 'Silme başarısız', + 'packing.toast.renameError': 'Yeniden adlandırma başarısız', + 'packing.toast.addError': 'Ekleme başarısız', + + // Packing suggestions + 'packing.suggestions.items': [ + { name: 'Pasaport', category: 'Belgeler' }, + { name: 'Kimlik Kartı', category: 'Belgeler' }, + { name: 'Seyahat Sigortası', category: 'Belgeler' }, + { name: 'Uçak Biletleri', category: 'Belgeler' }, + { name: 'Kredi Kartı', category: 'Finans' }, + { name: 'Nakit Para', category: 'Finans' }, + { name: 'Vize', category: 'Belgeler' }, + { name: 'Tişörtler', category: 'Giyim' }, + { name: 'Pantolonlar', category: 'Giyim' }, + { name: 'İç Çamaşırı', category: 'Giyim' }, + { name: 'Çoraplar', category: 'Giyim' }, + { name: 'Ceket', category: 'Giyim' }, + { name: 'Pijama', category: 'Giyim' }, + { name: 'Mayo/Bikini', category: 'Giyim' }, + { name: 'Yağmurluk', category: 'Giyim' }, + { name: 'Rahat Ayakkabı', category: 'Giyim' }, + { name: 'Diş Fırçası', category: 'Kişisel Bakım' }, + { name: 'Diş Macunu', category: 'Kişisel Bakım' }, + { name: 'Şampuan', category: 'Kişisel Bakım' }, + { name: 'Deodorant', category: 'Kişisel Bakım' }, + { name: 'Güneş Kremi', category: 'Kişisel Bakım' }, + { name: 'Tıraş Bıçağı', category: 'Kişisel Bakım' }, + { name: 'Şarj Aleti', category: 'Elektronik' }, + { name: 'Powerbank', category: 'Elektronik' }, + { name: 'Kulaklık', category: 'Elektronik' }, + { name: 'Seyahat Adaptörü', category: 'Elektronik' }, + { name: 'Kamera', category: 'Elektronik' }, + { name: 'Ağrı Kesici', category: 'Sağlık' }, + { name: 'Yara Bandı', category: 'Sağlık' }, + { name: 'Dezenfektan', category: 'Sağlık' }, + ], + + // Members / Sharing + 'members.shareTrip': 'Seyahati Paylaş', + 'members.inviteUser': 'Kullanıcı Davet Et', + 'members.selectUser': 'Kullanıcı seç…', + 'members.invite': 'Davet Et', + 'members.allHaveAccess': 'Tüm kullanıcıların zaten erişimi var.', + 'members.access': 'Erişim', + 'members.person': 'kişi', + 'members.persons': 'kişiler', + 'members.you': 'sen', + 'members.owner': 'Sahip', + 'members.leaveTrip': 'Seyahatten ayrıl', + 'members.removeAccess': 'Erişimi kaldır', + 'members.confirmLeave': 'Seyahatten ayrılmak istiyor musunuz? Erişiminizi kaybedeceksiniz.', + 'members.confirmRemove': 'Bu kullanıcının erişimi kaldırılsın mı?', + 'members.loadError': 'Üyeler yüklenemedi', + 'members.added': 'eklendi', + 'members.addError': 'Ekleme başarısız', + 'members.removed': 'Üye çıkarıldı', + 'members.removeError': 'Çıkarma başarısız', + + // Categories (Admin) + 'categories.title': 'Kategoriler', + 'categories.subtitle': 'Mekanlar için kategorileri yönetin', + 'categories.new': 'Yeni Kategori', + 'categories.empty': 'Henüz kategori yok', + 'categories.namePlaceholder': 'Kategori adı', + 'categories.icon': 'Simge', + 'categories.color': 'Renk', + 'categories.customColor': 'Özel renk seç', + 'categories.preview': 'Önizleme', + 'categories.defaultName': 'Kategori', + 'categories.update': 'Güncelle', + 'categories.create': 'Oluştur', + 'categories.confirm.delete': 'Kategori silinsin mi? Bu kategorideki mekanlar silinmeyecektir.', + 'categories.toast.loadError': 'Kategoriler yüklenemedi', + 'categories.toast.nameRequired': 'Lütfen bir isim girin', + 'categories.toast.updated': 'Kategori güncellendi', + 'categories.toast.created': 'Kategori oluşturuldu', + 'categories.toast.saveError': 'Kaydetme başarısız', + 'categories.toast.deleted': 'Kategori silindi', + 'categories.toast.deleteError': 'Silme başarısız', + + // Backup (Admin) + 'backup.title': 'Veri Yedekleme', + 'backup.subtitle': 'Veritabanı ve yüklenen tüm dosyalar', + 'backup.refresh': 'Yenile', + 'backup.upload': 'Yedekleme Yükle', + 'backup.uploading': 'Yükleniyor…', + 'backup.create': 'Yedek Oluştur', + 'backup.creating': 'Oluşturuluyor…', + 'backup.empty': 'Henüz yedekleme yok', + 'backup.createFirst': 'İlk yedeği oluştur', + 'backup.download': 'İndir', + 'backup.restore': 'Geri Yükle', + 'backup.confirm.restore': '"{name}" yedeği geri yüklensin mi?\n\nMevcut tüm veriler yedekle değiştirilecektir.', + 'backup.confirm.uploadRestore': '"{name}" yedek dosyası yüklenip geri yüklensin mi?\n\nMevcut tüm verilerin üzerine yazılacaktır.', + 'backup.confirm.delete': '"{name}" yedeği silinsin mi?', + 'backup.toast.loadError': 'Yedeklemeler yüklenemedi', + 'backup.toast.created': 'Yedekleme başarıyla oluşturuldu', + 'backup.toast.createError': 'Yedekleme oluşturulamadı', + 'backup.toast.restored': 'Yedekleme geri yüklendi. Sayfa yeniden yüklenecek…', + 'backup.toast.restoreError': 'Geri yükleme başarısız', + 'backup.toast.uploadError': 'Yükleme başarısız', + 'backup.toast.deleted': 'Yedek silindi', + 'backup.toast.deleteError': 'Silme başarısız', + 'backup.toast.downloadError': 'İndirme başarısız', + 'backup.toast.settingsSaved': 'Otomatik yedekleme ayarları kaydedildi', + 'backup.toast.settingsError': 'Ayarlar kaydedilemedi', + 'backup.auto.title': 'Otomatik Yedekleme', + 'backup.auto.subtitle': 'Bir programa göre otomatik yedekleme', + 'backup.auto.enable': 'Otomatik yedeklemeyi etkinleştir', + 'backup.auto.enableHint': 'Yedeklemeler seçilen programa göre otomatik olarak oluşturulacaktır', + 'backup.auto.interval': 'Aralık', + 'backup.auto.hour': 'Çalışma saati', + 'backup.auto.hourHint': 'Sunucu yerel saati ({format} formatı)', + 'backup.auto.dayOfWeek': 'Haftanın günü', + 'backup.auto.dayOfMonth': 'Ayın günü', + 'backup.auto.dayOfMonthHint': 'Tüm aylarla uyumluluk için 1-28 ile sınırlıdır', + 'backup.auto.scheduleSummary': 'Program', + 'backup.auto.summaryDaily': 'Her gün saat {hour}:00\'da', + 'backup.auto.summaryWeekly': 'Her {day} saat {hour}:00\'da', + 'backup.auto.summaryMonthly': 'Her ayın {day}. günü saat {hour}:00\'da', + 'backup.auto.envLocked': 'Docker', + 'backup.auto.envLockedHint': 'Otomatik yedekleme Docker ortam değişkenleri ile yapılandırılmıştır. Bu ayarları değiştirmek için docker-compose.yml dosyanızı güncelleyin ve konteyneri yeniden başlatın.', + 'backup.auto.copyEnv': 'Docker env değişkenlerini kopyala', + 'backup.auto.envCopied': 'Docker env değişkenleri panoya kopyalandı', + 'backup.auto.keepLabel': 'Şu süreden eski yedekleri sil:', + 'backup.dow.sunday': 'Paz', + 'backup.dow.monday': 'Pzt', + 'backup.dow.tuesday': 'Sal', + 'backup.dow.wednesday': 'Çar', + 'backup.dow.thursday': 'Per', + 'backup.dow.friday': 'Cum', + 'backup.dow.saturday': 'Cmt', + 'backup.interval.hourly': 'Saatlik', + 'backup.interval.daily': 'Günlük', + 'backup.interval.weekly': 'Haftalık', + 'backup.interval.monthly': 'Aylık', + 'backup.keep.1day': '1 gün', + 'backup.keep.3days': '3 gün', + 'backup.keep.7days': '7 gün', + 'backup.keep.14days': '14 gün', + 'backup.keep.30days': '30 gün', + 'backup.keep.forever': 'Sonsuza dek sakla', + + // Photos + 'photos.title': 'Fotoğraflar', + 'photos.subtitle': '{trip} için {count} fotoğraf', + 'photos.dropHere': 'Fotoğrafları buraya bırakın...', + 'photos.dropHereActive': 'Fotoğrafları buraya bırakın', + 'photos.captionForAll': 'Açıklama (hepsi için)', + 'photos.captionPlaceholder': 'İsteğe bağlı açıklama...', + 'photos.addCaption': 'Açıklama ekle...', + 'photos.allDays': 'Tüm Günler', + 'photos.noPhotos': 'Henüz fotoğraf yok', + 'photos.uploadHint': 'Seyahat fotoğraflarınızı yükleyin', + 'photos.clickToSelect': 'veya seçmek için tıklayın', + 'photos.linkPlace': 'Mekan Bağla', + 'photos.noPlace': 'Mekan Yok', + 'photos.uploadN': '{n} fotoğraf yükle', + 'photos.linkDay': 'Gün Bağla', + 'photos.noDay': 'Gün Yok', + 'photos.dayLabel': 'Gün {number}', + 'photos.photoSelected': 'Fotoğraf seçildi', + 'photos.photosSelected': 'Fotoğraflar seçildi', + 'photos.fileTypeHint': 'JPG, PNG, WebP · maks. 10 MB · en fazla 30 fotoğraf', + + // Backup restore modal + 'backup.restoreConfirmTitle': 'Yedek Geri Yüklensin mi?', + 'backup.restoreWarning': 'Mevcut tüm veriler (seyahatler, mekanlar, kullanıcılar, yüklemeler) kalıcı olarak yedekle değiştirilecektir. Bu işlem geri alınamaz.', + 'backup.restoreTip': 'İpucu: Geri yüklemeden önce mevcut durumun yedeğini oluşturun.', + 'backup.restoreConfirm': 'Evet, geri yükle', + + // PDF + 'pdf.travelPlan': 'Seyahat Planı', + 'pdf.planned': 'Planlanan', + 'pdf.costLabel': 'Maliyet', + 'pdf.preview': 'PDF Önizlemesi', + 'pdf.saveAsPdf': 'PDF Olarak Kaydet', + + // Planner + 'planner.places': 'Mekanlar', + 'planner.bookings': 'Rezervasyonlar', + 'planner.packingList': 'Eşya Listesi', + 'planner.documents': 'Belgeler', + 'planner.dayPlan': 'Gün Planı', + 'planner.reservations': 'Rezervasyonlar', + 'planner.minTwoPlaces': 'Koordinatları olan en az 2 mekan gerekli', + 'planner.noGeoPlaces': 'Koordinatları olan mekan yok', + 'planner.routeCalculated': 'Rota hesaplandı', + 'planner.routeCalcFailed': 'Rota hesaplanamadı', + 'planner.routeError': 'Rota hesaplanırken hata', + 'planner.icsExportFailed': 'ICS dışa aktarımı başarısız oldu', + 'planner.routeOptimized': 'Rota optimize edildi', + 'planner.reservationUpdated': 'Rezervasyon güncellendi', + 'planner.reservationAdded': 'Rezervasyon eklendi', + 'planner.confirmDeleteReservation': 'Rezervasyon silinsin mi?', + 'planner.reservationDeleted': 'Rezervasyon silindi', + 'planner.days': 'Gün', + 'planner.allPlaces': 'Tüm Mekanlar', + 'planner.totalPlaces': 'Toplam {n} mekan', + 'planner.noDaysPlanned': 'Henüz planlanmış gün yok', + 'planner.editTrip': 'Seyahati düzenle \u2192', + 'planner.placeOne': '1 mekan', + 'planner.placeN': '{n} mekan', + 'planner.addNote': 'Not ekle', + 'planner.noEntries': 'Bu gün için girdi yok', + 'planner.addPlace': 'Mekan/Aktivite ekle', + 'planner.addPlaceShort': '+ Mekan/Aktivite ekle', + 'planner.resPending': 'Rezervasyon bekliyor · ', + 'planner.resConfirmed': 'Rezervasyon onaylandı · ', + 'planner.notePlaceholder': 'Not\u2026', + 'planner.noteTimePlaceholder': 'Saat (isteğe bağlı)', + 'planner.noteExamplePlaceholder': 'örn. Merkez istasyondan saat 14:30\'da S3, iskele 7\'den vapur, öğle yemeği molası\u2026', + 'planner.totalCost': 'Toplam maliyet', + 'planner.searchPlaces': 'Mekan ara\u2026', + 'planner.allCategories': 'Tüm Kategoriler', + 'planner.noPlacesFound': 'Mekan bulunamadı', + 'planner.addFirstPlace': 'İlk mekanı ekle', + 'planner.noReservations': 'Rezervasyon yok', + 'planner.addFirstReservation': 'İlk rezervasyonu ekle', + 'planner.new': 'Yeni', + 'planner.addToDay': '+ Gün', + 'planner.calculating': 'Hesaplanıyor\u2026', + 'planner.route': 'Rota', + 'planner.optimize': 'Optimize Et', + 'planner.openGoogleMaps': 'Google Haritalar\'da Aç', + 'planner.selectDayHint': 'Gün planını görmek için sol listeden bir gün seçin', + 'planner.noPlacesForDay': 'Bu gün için henüz mekan yok', + 'planner.addPlacesLink': 'Mekan ekle \u2192', + 'planner.minTotal': 'min. toplam', + 'planner.noReservation': 'Rezervasyon yok', + 'planner.removeFromDay': 'Günden kaldır', + 'planner.addToThisDay': 'Güne ekle', + 'planner.overview': 'Genel Bakış', + 'planner.noDays': 'Henüz gün yok', + 'planner.editTripToAddDays': 'Gün eklemek için seyahati düzenleyin', + 'planner.dayCount': '{n} Gün', + 'planner.clickToUnlock': 'Kilidi açmak için tıklayın', + 'planner.keepPosition': 'Rota optimizasyonu sırasında konumu koru', + 'planner.dayDetails': 'Gün detayları', + 'planner.dayN': 'Gün {n}', + + // Dashboard Stats + 'stats.countries': 'Ülkeler', + 'stats.cities': 'Şehirler', + 'stats.trips': 'Seyahatler', + 'stats.places': 'Mekanlar', + 'stats.worldProgress': 'Dünya İlerlemesi', + 'stats.visited': 'ziyaret edildi', + 'stats.remaining': 'kalan', + 'stats.visitedCountries': 'Ziyaret Edilen Ülkeler', + + // Day Detail Panel + 'day.precipProb': 'Yağış olasılığı', + 'day.precipitation': 'Yağış', + 'day.wind': 'Rüzgar', + 'day.sunrise': 'Gündoğumu', + 'day.sunset': 'Günbatımı', + 'day.hourlyForecast': 'Saatlik Tahmin', + 'day.climateHint': 'Geçmiş ortalamalar — bu tarihten önceki 16 gün içinde gerçek tahmin mevcuttur.', + 'day.noWeather': 'Hava durumu verisi mevcut değil. Koordinatları olan bir mekan ekleyin.', + 'day.overview': 'Günlük Genel Bakış', + 'day.accommodation': 'Konaklama', + 'day.addAccommodation': 'Konaklama ekle', + 'day.hotelDayRange': 'Şu günlere uygula:', + 'day.noPlacesForHotel': 'Öncelikle seyahatinize mekanlar ekleyin', + 'day.allDays': 'Tümü', + 'day.checkIn': 'Check-in', + 'day.checkInUntil': 'Son', + 'day.checkOut': 'Check-out', + 'day.confirmation': 'Onay', + 'day.editAccommodation': 'Konaklamayı düzenle', + 'day.reservations': 'Rezervasyonlar', + + // Photos / Immich + 'memories.title': 'Fotoğraflar', + 'memories.notConnected': '{provider_name} bağlı değil', + 'memories.notConnectedHint': 'Bu seyahate fotoğraf ekleyebilmek için Ayarlar\'dan {provider_name} sunucunuzu bağlayın.', + 'memories.notConnectedMultipleHint': 'Bu seyahate fotoğraf ekleyebilmek için Ayarlar\'dan şu fotoğraf sağlayıcılarından birini bağlayın: {provider_names}.', + 'memories.noDates': 'Fotoğrafları yüklemek için seyahatinize tarih ekleyin.', + 'memories.noPhotos': 'Fotoğraf bulunamadı', + 'memories.noPhotosHint': 'Bu seyahatin tarih aralığı için {provider_name} üzerinde fotoğraf bulunamadı.', + 'memories.photosFound': 'fotoğraf', + 'memories.fromOthers': 'diğerlerinden', + 'memories.sharePhotos': 'Fotoğrafları paylaş', + 'memories.sharing': 'Paylaşım', + 'memories.reviewTitle': 'Fotoğraflarınızı gözden geçirin', + 'memories.reviewHint': 'Fotoğrafları paylaşımdan çıkarmak için onlara tıklayın.', + 'memories.shareCount': '{count} fotoğraf paylaş', + //------------------------- + //todo section + 'memories.providerUrl': 'Sunucu URL', + 'memories.providerApiKey': 'API Anahtarı', + 'memories.providerUsername': 'Kullanıcı Adı', + 'memories.providerPassword': 'Şifre', + 'memories.providerOTP': 'MFA kodu (etkinse)', + 'memories.skipSSLVerification': 'SSL sertifikası doğrulamasını atla', + 'memories.immichAutoUpload': 'Yükleme sırasında yolculuk fotoğraflarını Immich\'e kopyala', + 'memories.providerUrlHintSynology': 'URL\'ye Photos uygulaması yolunu ekleyin, örn. https://nas:5001/photo', + 'memories.testConnection': 'Bağlantıyı test et', + 'memories.testShort': 'Test', + 'memories.testFirst': 'Önce bağlantıyı test et', + 'memories.connected': 'Bağlandı', + 'memories.disconnected': 'Bağlı değil', + 'memories.connectionSuccess': '{provider_name} sunucusuna bağlandı', + 'memories.connectionError': '{provider_name} sunucusuna bağlanılamadı', + 'memories.saved': '{provider_name} ayarları kaydedildi', + 'memories.providerDisconnectedBanner': '{provider_name} bağlantınız kesildi. Fotoğrafları görüntülemek için Ayarlar\'dan tekrar bağlanın.', + 'memories.saveError': '{provider_name} ayarları kaydedilemedi', + //------------------------ + 'memories.addPhotos': 'Fotoğraf ekle', + 'memories.linkAlbum': 'Albüm Bağla', + 'memories.selectAlbum': '{provider_name} Albümü Seçin', + 'memories.selectAlbumMultiple': 'Albüm Seçin', + 'memories.noAlbums': 'Albüm bulunamadı', + 'memories.syncAlbum': 'Albümü senkronize et', + 'memories.unlinkAlbum': 'Albüm bağlantısını kaldır', + 'memories.photos': 'fotoğraf', + 'memories.selectPhotos': '{provider_name} sunucusundan fotoğraf seçin', + 'memories.selectPhotosMultiple': 'Fotoğraf Seçin', + 'memories.selectHint': 'Seçmek için fotoğraflara dokunun.', + 'memories.selected': 'seçildi', + 'memories.addSelected': '{count} fotoğraf ekle', + 'memories.alreadyAdded': 'Eklendi', + 'memories.private': 'Gizli', + 'memories.stopSharing': 'Paylaşımı durdur', + 'memories.oldest': 'Önce en eski', + 'memories.newest': 'Önce en yeni', + 'memories.allLocations': 'Tüm konumlar', + 'memories.tripDates': 'Seyahat tarihleri', + 'memories.allPhotos': 'Tüm fotoğraflar', + 'memories.confirmShareTitle': 'Seyahat üyeleriyle paylaşılsın mı?', + 'memories.confirmShareHint': '{count} fotoğraf bu seyahatin tüm üyeleri tarafından görülebilecek. Daha sonra tek tek fotoğrafları gizli yapabilirsiniz.', + 'memories.confirmShareButton': 'Fotoğrafları paylaş', + 'memories.error.loadAlbums': 'Albümler yüklenemedi', + 'memories.error.linkAlbum': 'Albüm bağlanamadı', + 'memories.error.unlinkAlbum': 'Albüm bağlantısı kaldırılamadı', + 'memories.error.syncAlbum': 'Albüm senkronize edilemedi', + 'memories.error.loadPhotos': 'Fotoğraflar yüklenemedi', + 'memories.error.addPhotos': 'Fotoğraflar eklenemedi', + 'memories.error.removePhoto': 'Fotoğraf kaldırılamadı', + 'memories.error.toggleSharing': 'Paylaşım durumu güncellenemedi', + 'memories.saveRouteNotConfigured': 'Kaydetme yolu (route) bu sağlayıcı için yapılandırılmamış', + 'memories.testRouteNotConfigured': 'Test yolu (route) bu sağlayıcı için yapılandırılmamış', + 'memories.fillRequiredFields': 'Lütfen tüm zorunlu alanları doldurun', + + // Collab Addon + 'collab.tabs.chat': 'Sohbet', + 'collab.tabs.notes': 'Notlar', + 'collab.tabs.polls': 'Anketler', + 'collab.whatsNext.title': "Sırada Ne Var", + 'collab.whatsNext.today': 'Bugün', + 'collab.whatsNext.tomorrow': 'Yarın', + 'collab.whatsNext.empty': 'Yaklaşan etkinlik yok', + 'collab.whatsNext.until': 'kadar', + 'collab.whatsNext.emptyHint': 'Saatli etkinlikler burada görünecektir', + 'collab.chat.send': 'Gönder', + 'collab.chat.placeholder': 'Bir mesaj yazın...', + 'collab.chat.empty': 'Sohbeti başlatın', + 'collab.chat.emptyHint': 'Mesajlar tüm seyahat üyeleriyle paylaşılır', + 'collab.chat.emptyDesc': 'Fikirleri, planları ve güncellemeleri seyahat grubunuzla paylaşın', + 'collab.chat.today': 'Bugün', + 'collab.chat.yesterday': 'Dün', + 'collab.chat.deletedMessage': 'bir mesajı sildi', + 'collab.chat.reply': 'Yanıtla', + 'collab.chat.loadMore': 'Eski mesajları yükle', + 'collab.chat.justNow': 'az önce', + 'collab.chat.minutesAgo': '{n}dk önce', + 'collab.chat.hoursAgo': '{n}sa önce', + 'collab.notes.title': 'Notlar', + 'collab.notes.new': 'Yeni Not', + 'collab.notes.empty': 'Henüz not yok', + 'collab.notes.emptyHint': 'Fikirleri ve planları kaydetmeye başlayın', + 'collab.notes.all': 'Tümü', + 'collab.notes.titlePlaceholder': 'Not başlığı', + 'collab.notes.contentPlaceholder': 'Bir şeyler yazın...', + 'collab.notes.categoryPlaceholder': 'Kategori', + 'collab.notes.newCategory': 'Yeni kategori...', + 'collab.notes.category': 'Kategori', + 'collab.notes.noCategory': 'Kategori yok', + 'collab.notes.color': 'Renk', + 'collab.notes.save': 'Kaydet', + 'collab.notes.cancel': 'İptal', + 'collab.notes.edit': 'Düzenle', + 'collab.notes.delete': 'Sil', + 'collab.notes.pin': 'Sabitle', + 'collab.notes.unpin': 'Sabitlemeyi Kaldır', + 'collab.notes.daysAgo': '{n}g önce', + 'collab.notes.categorySettings': 'Kategorileri Yönet', + 'collab.notes.create': 'Oluştur', + 'collab.notes.website': 'Web sitesi', + 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.attachFiles': 'Dosya ekle', + 'collab.notes.noCategoriesYet': 'Henüz kategori yok', + 'collab.notes.emptyDesc': 'Başlamak için bir not oluşturun', + 'collab.polls.title': 'Anketler', + 'collab.polls.new': 'Yeni Anket', + 'collab.polls.empty': 'Henüz anket yok', + 'collab.polls.emptyHint': 'Gruba sorun ve birlikte oylayın', + 'collab.polls.question': 'Soru', + 'collab.polls.questionPlaceholder': 'Ne yapmalıyız?', + 'collab.polls.addOption': '+ Seçenek ekle', + 'collab.polls.optionPlaceholder': 'Seçenek {n}', + 'collab.polls.create': 'Anket Oluştur', + 'collab.polls.close': 'Kapat', + 'collab.polls.closed': 'Kapalı', + 'collab.polls.votes': '{n} oy', + 'collab.polls.vote': '{n} oy', + 'collab.polls.multipleChoice': 'Çoktan seçmeli', + 'collab.polls.multiChoice': 'Çoktan seçmeli', + 'collab.polls.deadline': 'Bitiş tarihi', + 'collab.polls.option': 'Seçenek', + 'collab.polls.options': 'Seçenekler', + 'collab.polls.delete': 'Sil', + 'collab.polls.closedSection': 'Kapananlar', + + // Permissions + 'admin.tabs.permissions': 'İzinler', + 'perm.title': 'İzin Ayarları', + 'perm.subtitle': 'Uygulama genelinde eylemleri kimlerin gerçekleştirebileceğini kontrol edin', + 'perm.saved': 'İzin ayarları kaydedildi', + 'perm.resetDefaults': 'Varsayılanlara sıfırla', + 'perm.customized': 'özelleştirildi', + 'perm.level.admin': 'Sadece yönetici', + 'perm.level.tripOwner': 'Seyahat sahibi', + 'perm.level.tripMember': 'Seyahat üyeleri', + 'perm.level.everybody': 'Herkes', + 'perm.cat.trip': 'Seyahat Yönetimi', + 'perm.cat.members': 'Üye Yönetimi', + 'perm.cat.files': 'Dosyalar', + 'perm.cat.content': 'İçerik ve Plan Programı', + 'perm.cat.extras': 'Bütçe, Paketleme ve İşbirliği', + 'perm.action.trip_create': 'Seyahat oluşturma', + 'perm.action.trip_edit': 'Seyahat detaylarını düzenleme', + 'perm.action.trip_delete': 'Seyahat silme', + 'perm.action.trip_archive': 'Seyahat arşivleme / arşivden çıkarma', + 'perm.action.trip_cover_upload': 'Kapak fotoğrafı yükleme', + 'perm.action.member_manage': 'Üye ekleme / çıkarma', + 'perm.action.file_upload': 'Dosya yükleme', + 'perm.action.file_edit': 'Dosya meta verilerini düzenleme', + 'perm.action.file_delete': 'Dosya silme', + 'perm.action.place_edit': 'Mekan ekleme / düzenleme / silme', + 'perm.action.day_edit': 'Günleri, notları ve atamaları düzenleme', + 'perm.action.reservation_edit': 'Rezervasyonları yönetme', + 'perm.action.budget_edit': 'Bütçeyi yönetme', + 'perm.action.packing_edit': 'Eşya listelerini yönetme', + 'perm.action.collab_edit': 'İşbirliği (notlar, anketler, sohbet)', + 'perm.action.share_manage': 'Paylaşım bağlantılarını yönetme', + 'perm.actionHint.trip_create': 'Kimler yeni seyahat oluşturabilir', + 'perm.actionHint.trip_edit': 'Kimler seyahat adı, tarihleri, açıklaması ve para birimini değiştirebilir', + 'perm.actionHint.trip_delete': 'Kimler bir seyahati kalıcı olarak silebilir', + 'perm.actionHint.trip_archive': 'Kimler bir seyahati arşivleyebilir veya arşivden çıkarabilir', + 'perm.actionHint.trip_cover_upload': 'Kimler kapak fotoğrafını yükleyebilir veya değiştirebilir', + 'perm.actionHint.member_manage': 'Kimler seyahat üyelerini davet edebilir veya çıkarabilir', + 'perm.actionHint.file_upload': 'Kimler seyahate dosya yükleyebilir', + 'perm.actionHint.file_edit': 'Kimler dosya açıklamalarını ve bağlantılarını düzenleyebilir', + 'perm.actionHint.file_delete': 'Kimler dosyaları çöpe taşıyabilir veya kalıcı olarak silebilir', + 'perm.actionHint.place_edit': 'Kimler mekan ekleyebilir, düzenleyebilir veya silebilir', + 'perm.actionHint.day_edit': 'Kimler günleri, gün notlarını ve mekan atamalarını düzenleyebilir', + 'perm.actionHint.reservation_edit': 'Kimler rezervasyon oluşturabilir, düzenleyebilir veya silebilir', + 'perm.actionHint.budget_edit': 'Kimler bütçe kalemleri oluşturabilir, düzenleyebilir veya silebilir', + 'perm.actionHint.packing_edit': 'Kimler eşya listesi öğelerini ve çantaları yönetebilir', + 'perm.actionHint.collab_edit': 'Kimler not, anket oluşturabilir ve mesaj gönderebilir', + 'perm.actionHint.share_manage': 'Kimler herkese açık paylaşım bağlantıları oluşturabilir veya silebilir', + + // Undo + 'undo.button': 'Geri Al', + 'undo.tooltip': 'Geri Al: {action}', + 'undo.assignPlace': 'Mekan güne atandı', + 'undo.removeAssignment': 'Mekan günden kaldırıldı', + 'undo.reorder': 'Mekanlar yeniden sıralandı', + 'undo.optimize': 'Rota optimize edildi', + 'undo.deletePlace': 'Mekan silindi', + 'undo.deletePlaces': 'Mekanlar silindi', + 'undo.moveDay': 'Mekan başka bir güne taşındı', + 'undo.lock': 'Mekan kilidi değiştirildi', + 'undo.importGpx': 'GPX içe aktarma', + 'undo.importKeyholeMarkup': 'KMZ/KML içe aktarma', + 'undo.importGoogleList': 'Google Maps içe aktarma', + 'undo.importNaverList': 'Naver Maps içe aktarma', + 'undo.addPlace': 'Mekan eklendi', + 'undo.done': 'Geri Alındı: {action}', + + // Notifications + 'notifications.title': 'Bildirimler', + 'notifications.markAllRead': 'Tümünü okundu işaretle', + 'notifications.deleteAll': 'Tümünü sil', + 'notifications.showAll': 'Tüm bildirimleri göster', + 'notifications.empty': 'Bildirim yok', + 'notifications.emptyDescription': "Her şey yolunda, yeni bir şey yok!", + 'notifications.all': 'Tümü', + 'notifications.unreadOnly': 'Okunmayanlar', + 'notifications.markRead': 'Okundu olarak işaretle', + 'notifications.markUnread': 'Okunmadı olarak işaretle', + 'notifications.delete': 'Sil', + 'notifications.system': 'Sistem', + 'notifications.synologySessionCleared.title': 'Synology Photos bağlantısı kesildi', + 'notifications.synologySessionCleared.text': 'Sunucunuz veya hesabınız değişti — bağlantınızı tekrar test etmek için Ayarlar\'a gidin.', + + // Notification test keys (dev only) + 'notifications.versionAvailable.title': 'Güncelleme Mevcut', + 'notifications.versionAvailable.text': 'TREK {version} artık kullanılabilir.', + 'notifications.versionAvailable.button': 'Detayları Görüntüle', + 'notifications.test.title': '{actor} tarafından test bildirimi', + 'notifications.test.text': 'Bu basit bir test bildirimidir.', + 'notifications.test.booleanTitle': '{actor} onayınızı istiyor', + 'notifications.test.booleanText': 'Bu bir test boolean bildirimidir. Aşağıdan bir eylem seçin.', + 'notifications.test.accept': 'Onayla', + 'notifications.test.decline': 'Reddet', + 'notifications.test.navigateTitle': 'Şuna bir göz at', + 'notifications.test.navigateText': 'Bu bir test yönlendirme bildirimidir.', + 'notifications.test.goThere': 'Oraya git', + 'notifications.test.adminTitle': 'Yönetici duyurusu', + 'notifications.test.adminText': '{actor} tüm yöneticilere bir test bildirimi gönderdi.', + 'notifications.test.tripTitle': '{actor} seyahatinizde paylaştı', + 'notifications.test.tripText': '"{trip}" seyahati için test bildirimi.', + + // Todo + 'todo.subtab.packing': 'Eşya Listesi', + 'todo.subtab.todo': 'Yapılacaklar', + 'todo.completed': 'tamamlandı', + 'todo.filter.all': 'Tümü', + 'todo.filter.open': 'Açık', + 'todo.filter.done': 'Tamamlanan', + 'todo.uncategorized': 'Kategorisiz', + 'todo.namePlaceholder': 'Görev adı', + 'todo.descriptionPlaceholder': 'Açıklama (isteğe bağlı)', + 'todo.unassigned': 'Atanmamış', + 'todo.noCategory': 'Kategori yok', + 'todo.hasDescription': 'Açıklaması var', + 'todo.addItem': 'Yeni görev ekle', + 'todo.sidebar.sortBy': 'Sıralama ölçütü', + 'todo.priority': 'Öncelik', + 'todo.newCategoryLabel': 'yeni', + 'budget.categoriesLabel': 'kategoriler', + 'todo.newCategory': 'Kategori adı', + 'todo.addCategory': 'Kategori ekle', + 'todo.newItem': 'Yeni görev', + 'todo.empty': 'Henüz görev yok. Başlamak için bir görev ekleyin!', + 'todo.filter.my': 'Görevlerim', + 'todo.filter.overdue': 'Süresi geçmiş', + 'todo.sidebar.tasks': 'Görevler', + 'todo.sidebar.categories': 'Kategoriler', + 'todo.detail.title': 'Görev', + 'todo.detail.description': 'Açıklama', + 'todo.detail.category': 'Kategori', + 'todo.detail.dueDate': 'Son tarih', + 'todo.detail.assignedTo': 'Atanan kişi', + 'todo.detail.delete': 'Sil', + 'todo.detail.save': 'Değişiklikleri kaydet', + 'todo.sortByPrio': 'Öncelik', + 'todo.detail.priority': 'Öncelik', + 'todo.detail.noPriority': 'Hiçbiri', + 'todo.detail.create': 'Görev oluştur', + + // Notifications — dev test events + 'notif.test.title': '[Test] Bildirim', + 'notif.test.simple.text': 'Bu basit bir test bildirimidir.', + 'notif.test.boolean.text': 'Bu test bildirimini kabul ediyor musunuz?', + 'notif.test.navigate.text': 'Kontrol paneline gitmek için aşağıya tıklayın.', + + // Notifications + 'notif.trip_invite.title': 'Seyahat Daveti', + 'notif.trip_invite.text': '{actor} sizi {trip} seyahatine davet etti', + 'notif.booking_change.title': 'Rezervasyon Güncellendi', + 'notif.booking_change.text': '{actor}, {trip} seyahatindeki bir rezervasyonu güncelledi', + 'notif.trip_reminder.title': 'Seyahat Hatırlatıcı', + 'notif.trip_reminder.text': '{trip} seyahatiniz çok yaklaştı!', + 'notif.todo_due.title': 'Yapılacaklar zamanı', + 'notif.todo_due.text': '{trip} seyahatindeki {todo} için son tarih {due}', + 'notif.vacay_invite.title': 'Vacay Birleştirme Daveti', + 'notif.vacay_invite.text': '{actor} tatil planlarını birleştirmek için sizi davet etti', + 'notif.photos_shared.title': 'Fotoğraflar Paylaşıldı', + 'notif.photos_shared.text': '{actor}, {trip} seyahatinde {count} fotoğraf paylaştı', + 'notif.collab_message.title': 'Yeni Mesaj', + 'notif.collab_message.text': '{actor}, {trip} seyahatinde bir mesaj gönderdi', + 'notif.packing_tagged.title': 'Eşya Ataması', + 'notif.packing_tagged.text': '{actor}, {trip} seyahatinde sizi {category} kategorisine atadı', + 'notif.version_available.title': 'Yeni Sürüm Mevcut', + 'notif.version_available.text': 'TREK {version} artık kullanılabilir', + 'notif.action.view_trip': 'Seyahati Gör', + 'notif.action.view_collab': 'Mesajları Gör', + 'notif.action.view_packing': 'Eşya Listesini Gör', + 'notif.action.view_photos': 'Fotoğrafları Gör', + 'notif.action.view_vacay': 'Vacay\'ı Gör', + 'notif.action.view_admin': 'Yönetime Git', + 'notif.action.view': 'Görüntüle', + 'notif.action.accept': 'Kabul Et', + 'notif.action.decline': 'Reddet', + 'notif.generic.title': 'Bildirim', + 'notif.generic.text': 'Yeni bir bildiriminiz var', + 'notif.dev.unknown_event.title': '[DEV] Bilinmeyen Olay', + 'notif.dev.unknown_event.text': '"{event}" olay türü EVENT_NOTIFICATION_CONFIG içinde kayıtlı değil', + + // Journey addon + 'journey.search.placeholder': 'Yolculuklarda ara…', + 'journey.search.noResults': '"{query}" ile eşleşen yolculuk yok', + 'journey.title': 'Yolculuk', + 'journey.subtitle': 'Seyahatlerinizi yaşarken takip edin', + 'journey.new': 'Yeni Yolculuk', + 'journey.create': 'Oluştur', + 'journey.titlePlaceholder': 'Nereye gidiyorsunuz?', + 'journey.empty': 'Henüz yolculuk yok', + 'journey.emptyHint': 'Sıradaki seyahatinizi belgelemeye başlayın', + 'journey.deleted': 'Yolculuk silindi', + 'journey.createError': 'Yolculuk oluşturulamadı', + 'journey.deleteError': 'Yolculuk silinemedi', + 'journey.deleteConfirmTitle': 'Sil', + 'journey.deleteConfirmMessage': '"{title}" silinsin mi? Bu işlem geri alınamaz.', + 'journey.deleteConfirmGeneric': 'Bunu silmek istediğinizden emin misiniz?', + 'journey.notFound': 'Yolculuk bulunamadı', + 'journey.photos': 'Fotoğraflar', + 'journey.timelineEmpty': 'Henüz durak yok', + 'journey.timelineEmptyHint': 'Başlamak için yer bildirimi (check-in) yapın veya günlük girdisi yazın', + 'journey.status.draft': 'Taslak', + 'journey.status.active': 'Aktif', + 'journey.status.completed': 'Tamamlandı', + 'journey.status.upcoming': 'Yaklaşan', + 'journey.status.archived': 'Arşivlendi', + 'journey.checkin.add': 'Yer bildirimi (Check-in)', + 'journey.checkin.namePlaceholder': 'Konum adı', + 'journey.checkin.notesPlaceholder': 'Notlar (isteğe bağlı)', + 'journey.checkin.save': 'Kaydet', + 'journey.checkin.error': 'Yer bildirimi kaydedilemedi', + 'journey.entry.add': 'Günlük', + 'journey.entry.edit': 'Girdiyi düzenle', + 'journey.entry.titlePlaceholder': 'Başlık (isteğe bağlı)', + 'journey.entry.bodyPlaceholder': 'Bugün neler oldu?', + 'journey.entry.save': 'Kaydet', + 'journey.entry.error': 'Girdi kaydedilemedi', + 'journey.photo.add': 'Fotoğraf', + 'journey.photo.uploadError': 'Yükleme başarısız', + 'journey.share.share': 'Paylaş', + 'journey.share.public': 'Herkese Açık', + 'journey.share.linkCopied': 'Herkese açık bağlantı kopyalandı', + 'journey.share.disabled': 'Herkese açık paylaşım devre dışı', + 'journey.editor.titlePlaceholder': 'Bu ana bir isim verin...', + 'journey.editor.bodyPlaceholder': 'Bu günün hikayesini anlatın...', + 'journey.editor.placePlaceholder': 'Konum (isteğe bağlı)', + 'journey.editor.tagsPlaceholder': 'Etiketler: gizli cevher, en iyi yemek, mutlaka tekrar gidilmeli...', + 'journey.visibility.private': 'Gizli', + 'journey.visibility.shared': 'Paylaşılan', + 'journey.visibility.public': 'Herkese Açık', + 'journey.emptyState.title': 'Hikayeniz burada başlıyor', + 'journey.emptyState.subtitle': 'Bir yerde check-in yapın veya ilk günlük girdinizi yazın', + + // Journey Frontpage + 'journey.frontpage.subtitle': 'Seyahatlerinizi asla unutamayacağınız hikayelere dönüştürün', + 'journey.frontpage.createJourney': 'Yolculuk Oluştur', + 'journey.frontpage.activeJourney': 'Aktif Yolculuk', + 'journey.frontpage.allJourneys': 'Tüm Yolculuklar', + 'journey.frontpage.journeys': 'yolculuk', + 'journey.frontpage.createNew': 'Yeni bir Yolculuk oluşturun', + 'journey.frontpage.createNewSub': 'Seyahatleri seçin, hikayeler yazın, maceralarınızı paylaşın', + 'journey.frontpage.live': 'Canlı', + 'journey.frontpage.synced': 'Senkronize', + 'journey.frontpage.continueWriting': 'Yazmaya devam et', + 'journey.frontpage.updated': 'Güncellendi: {time}', + 'journey.frontpage.suggestionLabel': 'Seyahat yeni bitti', + 'journey.frontpage.suggestionText': '{title} seyahatini bir Yolculuğa dönüştürün', + 'journey.frontpage.dismiss': 'Gizle', + 'journey.frontpage.journeyName': 'Yolculuk Adı', + 'journey.frontpage.namePlaceholder': 'örn. Güneydoğu Asya 2026', + 'journey.frontpage.selectTrips': 'Seyahatleri Seçin', + 'journey.frontpage.tripsSelected': 'seyahat seçildi', + 'journey.frontpage.trips': 'seyahat', + 'journey.frontpage.placesImported': 'mekan içe aktarılacak', + 'journey.frontpage.places': 'mekan', + + // Journey Detail + 'journey.detail.backToJourney': 'Yolculuğa Dön', + 'journey.detail.syncedWithTrips': 'Seyahatlerle Senkronize', + 'journey.detail.addEntry': 'Girdi Ekle', + 'journey.detail.newEntry': 'Yeni Girdi', + 'journey.detail.editEntry': 'Girdiyi Düzenle', + 'journey.detail.noEntries': 'Henüz girdi yok', + 'journey.detail.noEntriesHint': 'Taslak girdilerle başlamak için bir seyahat ekleyin', + 'journey.detail.noPhotos': 'Henüz fotoğraf yok', + 'journey.detail.noPhotosHint': 'Girdilere fotoğraf yükleyin veya Immich/Synology kütüphanenize göz atın', + 'journey.detail.journeyTab': 'Yolculuk', + 'journey.detail.journeyStats': 'Yolculuk İstatistikleri', + 'journey.detail.syncedTrips': 'Senkronize Seyahatler', + 'journey.detail.noTripsLinked': 'Henüz seyahat bağlanmadı', + 'journey.detail.contributors': 'Katkıda Bulunanlar', + 'journey.detail.readMore': 'Devamını oku', + 'journey.detail.prosCons': 'Artılar ve Eksiler', + 'journey.detail.photos': 'fotoğraf', + 'journey.detail.day': 'Gün {number}', + 'journey.detail.places': 'mekan', + + // Journey Detail — Stats + 'journey.stats.days': 'Günler', + 'journey.stats.cities': 'Şehirler', + 'journey.stats.entries': 'Girdiler', + 'journey.stats.photos': 'Fotoğraflar', + 'journey.stats.places': 'Mekanlar', + 'journey.skeletons.show': 'Önerileri göster', + 'journey.skeletons.hide': 'Önerileri gizle', + + // Journey Detail — Verdict + 'journey.verdict.lovedIt': 'Çok sevdim', + 'journey.verdict.couldBeBetter': 'Daha iyi olabilirdi', + + // Journey Detail — Synced badge + 'journey.synced.places': 'mekan', + 'journey.synced.synced': 'senkronize', + + // Journey Entry Editor + 'journey.editor.discardChangesConfirm': 'Kaydedilmemiş değişiklikleriniz var. İptal edilsin mi?', + 'journey.editor.uploadPhotos': 'Fotoğraf yükle', + 'journey.editor.uploading': 'Yükleniyor...', + 'journey.editor.fromGallery': 'Galeriden', + 'journey.editor.allPhotosAdded': 'Tüm fotoğraflar zaten eklendi', + 'journey.editor.writeStory': 'Hikayenizi yazın...', + 'journey.editor.prosCons': 'Artılar ve Eksiler', + 'journey.editor.pros': 'Artılar', + 'journey.editor.cons': 'Eksiler', + 'journey.editor.proPlaceholder': 'Harika bir şey...', + 'journey.editor.conPlaceholder': 'Pek iyi olmayan bir şey...', + 'journey.editor.addAnother': 'Başka ekle', + 'journey.editor.date': 'Tarih', + 'journey.editor.location': 'Konum', + 'journey.editor.searchLocation': 'Konum ara...', + 'journey.editor.mood': 'Ruh Hali', + 'journey.editor.weather': 'Hava Durumu', + 'journey.editor.photoFirst': '1.', + 'journey.editor.makeFirst': '1. Yap', + 'journey.editor.searching': 'Aranıyor...', + + // Journey Entry — Moods + 'journey.mood.amazing': 'Harika', + 'journey.mood.good': 'İyi', + 'journey.mood.neutral': 'Nötr', + 'journey.mood.rough': 'Zorlu', + + // Journey Entry — Weather + 'journey.weather.sunny': 'Güneşli', + 'journey.weather.partly': 'Parçalı Bulutlu', + 'journey.weather.cloudy': 'Bulutlu', + 'journey.weather.rainy': 'Yağmurlu', + 'journey.weather.stormy': 'Fırtınalı', + 'journey.weather.cold': 'Karlı', + + // Journey — Trip Linking + 'journey.trips.linkTrip': 'Seyahat Bağla', + 'journey.trips.searchTrip': 'Seyahat Ara', + 'journey.trips.searchPlaceholder': 'Seyahat adı veya destinasyon...', + 'journey.trips.noTripsAvailable': 'Bağlanacak seyahat yok', + 'journey.trips.link': 'Bağla', + 'journey.trips.tripLinked': 'Seyahat bağlandı', + 'journey.trips.linkFailed': 'Seyahat bağlanamadı', + 'journey.trips.addTrip': 'Seyahat Ekle', + 'journey.trips.unlinkTrip': 'Seyahat Bağlantısını Kaldır', + 'journey.trips.unlinkMessage': '"{title}" bağlantısı kaldırılsın mı? Bu seyahatten senkronize edilen tüm girdiler ve fotoğraflar kalıcı olarak silinecektir. Bu işlem geri alınamaz.', + 'journey.trips.unlink': 'Bağlantıyı Kaldır', + 'journey.trips.tripUnlinked': 'Seyahat bağlantısı kaldırıldı', + 'journey.trips.unlinkFailed': 'Seyahat bağlantısı kaldırılamadı', + 'journey.trips.noTripsLinkedSettings': 'Bağlı seyahat yok', + + // Journey — Contributors + 'journey.contributors.invite': 'Katkıda Bulunan Davet Et', + 'journey.contributors.searchUser': 'Kullanıcı Ara', + 'journey.contributors.searchPlaceholder': 'Kullanıcı adı veya e-posta...', + 'journey.contributors.noUsers': 'Kullanıcı bulunamadı', + 'journey.contributors.role': 'Rol', + 'journey.contributors.added': 'Katkıda bulunan eklendi', + 'journey.contributors.addFailed': 'Katkıda bulunan eklenemedi', + 'journey.contributors.remove': 'Katkıda bulunanı çıkar', + 'journey.contributors.removeConfirm': '{username} bu yolculuktan çıkarılsın mı?', + 'journey.contributors.removed': 'Katkıda bulunan çıkarıldı', + 'journey.contributors.removeFailed': 'Katkıda bulunan çıkarılamadı', + + // Journey — Share + 'journey.share.publicShare': 'Herkese Açık Paylaşım', + 'journey.share.createLink': 'Paylaşım bağlantısı oluştur', + 'journey.share.linkCreated': 'Paylaşım bağlantısı oluşturuldu', + 'journey.share.createFailed': 'Bağlantı oluşturulamadı', + 'journey.share.copy': 'Kopyala', + 'journey.share.copied': 'Kopyalandı!', + 'journey.share.timeline': 'Zaman Tüneli', + 'journey.share.gallery': 'Galeri', + 'journey.share.map': 'Harita', + 'journey.share.removeLink': 'Paylaşım bağlantısını kaldır', + 'journey.share.linkDeleted': 'Paylaşım bağlantısı silindi', + 'journey.share.deleteFailed': 'Silme başarısız', + 'journey.share.updateFailed': 'Güncelleme başarısız', + + // Journey — Invite + 'journey.invite.role': 'Rol', + 'journey.invite.viewer': 'İzleyici', + 'journey.invite.editor': 'Düzenleyici', + 'journey.invite.invite': 'Davet Et', + 'journey.invite.inviting': 'Davet ediliyor...', + + // Journey — Settings Dialog + 'journey.settings.title': 'Yolculuk Ayarları', + 'journey.settings.coverImage': 'Kapak Fotoğrafı', + 'journey.settings.changeCover': 'Kapağı değiştir', + 'journey.settings.addCover': 'Kapak fotoğrafı ekle', + 'journey.settings.name': 'İsim', + 'journey.settings.subtitle': 'Alt başlık', + 'journey.settings.subtitlePlaceholder': 'örn. Tayland, Vietnam ve Kamboçya', + 'journey.settings.endJourney': 'Yolculuğu Arşivle', + 'journey.settings.reopenJourney': 'Yolculuğu Geri Yükle', + 'journey.settings.archived': 'Yolculuk arşivlendi', + 'journey.settings.reopened': 'Yolculuk geri yüklendi', + 'journey.settings.endDescription': 'Canlı (Live) rozetini gizler. İstediğiniz zaman tekrar açabilirsiniz.', + 'journey.settings.delete': 'Sil', + 'journey.settings.deleteJourney': 'Yolculuğu Sil', + 'journey.settings.deleteMessage': '"{title}" silinsin mi? Tüm girdiler ve fotoğraflar kaybolacak.', + 'journey.settings.saved': 'Ayarlar kaydedildi', + 'journey.settings.saveFailed': 'Kaydetme başarısız', + 'journey.settings.coverUpdated': 'Kapak güncellendi', + 'journey.settings.coverFailed': 'Yükleme başarısız', + 'journey.settings.failedToDelete': 'Silme başarısız', + 'journey.entries.deleteTitle': 'Girdiyi Sil', + 'journey.photosUploaded': '{count} fotoğraf yüklendi', + 'journey.photosAdded': '{count} fotoğraf eklendi', + + // Journey — Public Page + 'journey.public.notFound': 'Bulunamadı', + 'journey.public.notFoundMessage': 'Bu yolculuk mevcut değil veya bağlantının süresi dolmuş.', + 'journey.public.readOnly': 'Salt okunur · Herkese Açık Yolculuk', + 'journey.public.tagline': 'Travel Resource & Exploration Kit', + 'journey.public.sharedVia': 'Paylaşılan platform:', + 'journey.public.madeWith': 'Altyapı:', + + // Journey — PDF Export + 'journey.pdf.journeyBook': 'Yolculuk Kitabı', + 'journey.pdf.madeWith': 'TREK ile hazırlandı', + 'journey.pdf.day': 'Gün', + 'journey.pdf.theEnd': 'Son', + 'journey.pdf.saveAsPdf': 'PDF Olarak Kaydet', + 'journey.pdf.pages': 'sayfa', + 'journey.picker.tripPeriod': 'Seyahat Süresi', + 'journey.picker.dateRange': 'Tarih Aralığı', + 'journey.picker.allPhotos': 'Tüm Fotoğraflar', + 'journey.picker.albums': 'Albümler', + 'journey.picker.selected': 'seçildi', + 'journey.picker.addTo': 'Şuraya ekle:', + 'journey.picker.newGallery': 'Yeni Galeri', + 'journey.picker.selectAll': 'Tümünü seç', + 'journey.picker.deselectAll': 'Seçimleri kaldır', + 'journey.picker.noAlbums': 'Albüm bulunamadı', + 'journey.picker.selectDate': 'Tarih seçin', + 'journey.picker.search': 'Ara', + + // Dashboard Mobile + 'dashboard.greeting.morning': 'Günaydın,', + 'dashboard.greeting.afternoon': 'Tünaydın,', + 'dashboard.greeting.evening': 'İyi akşamlar,', + 'dashboard.mobile.liveNow': 'Şu An Canlı', + 'dashboard.mobile.tripProgress': 'Seyahat ilerlemesi', + 'dashboard.mobile.daysLeft': '{count} gün kaldı', + 'dashboard.mobile.places': 'Mekanlar', + 'dashboard.mobile.buddies': 'Arkadaş', + 'dashboard.mobile.newTrip': 'Yeni Seyahat', + 'dashboard.mobile.currency': 'Para Birimi', + 'dashboard.mobile.timezone': 'Zaman Dilimi', + 'dashboard.mobile.upcomingTrips': 'Yaklaşan Seyahatler', + 'dashboard.mobile.yourTrips': 'Seyahatleriniz', + 'dashboard.mobile.trips': 'seyahat', + 'dashboard.mobile.starts': 'Başlangıç', + 'dashboard.mobile.duration': 'Süre', + 'dashboard.mobile.day': 'gün', + 'dashboard.mobile.days': 'gün', + 'dashboard.mobile.ongoing': 'Devam Ediyor', + 'dashboard.mobile.startsToday': 'Bugün başlıyor', + 'dashboard.mobile.tomorrow': 'Yarın', + 'dashboard.mobile.inDays': '{count} gün içinde', + 'dashboard.mobile.inMonths': '{count} ay içinde', + 'dashboard.mobile.completed': 'Tamamlandı', + 'dashboard.mobile.currencyConverter': 'Kur Çevirici', + + // BottomNav & Profile + 'nav.profile': 'Profil', + 'nav.bottomSettings': 'Ayarlar', + 'nav.bottomAdmin': 'Yönetici Ayarları', + 'nav.bottomLogout': 'Çıkış Yap', + 'nav.bottomAdminBadge': 'Yönetici', + + // DayPlan Mobile + 'dayplan.mobile.addPlace': 'Mekan Ekle', + 'dayplan.mobile.searchPlaces': 'Mekan ara...', + 'dayplan.mobile.allAssigned': 'Tüm mekanlar atandı', + 'dayplan.mobile.noMatch': 'Eşleşme yok', + 'dayplan.mobile.createNew': 'Yeni mekan oluştur', + + 'admin.addons.catalog.journey.name': 'Yolculuk', + 'admin.addons.catalog.journey.description': 'Yer bildirimleri, fotoğraflar ve günlük hikayeler ile seyahat takibi ve seyir defteri', + + // OAuth scope groups + 'oauth.scope.group.trips': 'Seyahatler', + 'oauth.scope.group.places': 'Mekanlar', + 'oauth.scope.group.atlas': 'Atlas', + 'oauth.scope.group.packing': 'Eşya Listesi', + 'oauth.scope.group.todos': 'Yapılacaklar', + 'oauth.scope.group.budget': 'Bütçe', + 'oauth.scope.group.reservations': 'Rezervasyonlar', + 'oauth.scope.group.collab': 'İşbirliği', + 'oauth.scope.group.notifications': 'Bildirimler', + 'oauth.scope.group.vacay': 'Tatil', + 'oauth.scope.group.geo': 'Coğrafi (Geo)', + 'oauth.scope.group.weather': 'Hava Durumu', + 'oauth.scope.group.journey': 'Yolculuk', + + // OAuth scope labels & descriptions + 'oauth.scope.trips:read.label': 'Seyahatleri ve planları görüntüle', + 'oauth.scope.trips:read.description': 'Seyahatleri, günleri, gün notlarını ve üyeleri oku', + 'oauth.scope.trips:write.label': 'Seyahatleri ve planları düzenle', + 'oauth.scope.trips:write.description': 'Seyahatleri, günleri, notları oluştur ve güncelle, üyeleri yönet', + 'oauth.scope.trips:delete.label': 'Seyahatleri sil', + 'oauth.scope.trips:delete.description': 'Seyahatleri kalıcı olarak sil — bu işlem geri alınamaz', + 'oauth.scope.trips:share.label': 'Paylaşım bağlantılarını yönet', + 'oauth.scope.trips:share.description': 'Seyahatler için herkese açık paylaşım bağlantıları oluştur, güncelle ve iptal et', + 'oauth.scope.places:read.label': 'Mekanları ve harita verilerini görüntüle', + 'oauth.scope.places:read.description': 'Mekanları, gün atamalarını, etiketleri ve kategorileri oku', + 'oauth.scope.places:write.label': 'Mekanları yönet', + 'oauth.scope.places:write.description': 'Mekanları, atamaları ve etiketleri oluştur, güncelle ve sil', + 'oauth.scope.atlas:read.label': 'Atlası görüntüle', + 'oauth.scope.atlas:read.description': 'Ziyaret edilen ülkeleri, bölgeleri ve hedefler listesini (bucket list) oku', + 'oauth.scope.atlas:write.label': 'Atlası yönet', + 'oauth.scope.atlas:write.description': 'Ülkeleri ve bölgeleri ziyaret edildi olarak işaretle, hedefler listesini yönet', + 'oauth.scope.packing:read.label': 'Eşya listelerini görüntüle', + 'oauth.scope.packing:read.description': 'Paketleme öğelerini, çantaları ve kategori atananları oku', + 'oauth.scope.packing:write.label': 'Eşya listelerini yönet', + 'oauth.scope.packing:write.description': 'Eşya listesi öğelerini ve çantaları ekle, güncelle, sil, durumunu değiştir ve yeniden sırala', + 'oauth.scope.todos:read.label': 'Yapılacaklar listelerini görüntüle', + 'oauth.scope.todos:read.description': 'Seyahat yapılacaklarını ve kategori atananları oku', + 'oauth.scope.todos:write.label': 'Yapılacaklar listelerini yönet', + 'oauth.scope.todos:write.description': 'Yapılacakları oluştur, güncelle, durumunu değiştir, sil ve yeniden sırala', + 'oauth.scope.budget:read.label': 'Bütçeyi görüntüle', + 'oauth.scope.budget:read.description': 'Bütçe kalemlerini ve harcama dökümünü oku', + 'oauth.scope.budget:write.label': 'Bütçeyi yönet', + 'oauth.scope.budget:write.description': 'Bütçe kalemleri oluştur, güncelle ve sil', + 'oauth.scope.reservations:read.label': 'Rezervasyonları görüntüle', + 'oauth.scope.reservations:read.description': 'Rezervasyonları ve konaklama detaylarını oku', + 'oauth.scope.reservations:write.label': 'Rezervasyonları yönet', + 'oauth.scope.reservations:write.description': 'Rezervasyonlar oluştur, güncelle, sil ve yeniden sırala', + 'oauth.scope.collab:read.label': 'İşbirliğini görüntüle', + 'oauth.scope.collab:read.description': 'İşbirliği notlarını, anketleri ve mesajları oku', + 'oauth.scope.collab:write.label': 'İşbirliğini yönet', + 'oauth.scope.collab:write.description': 'İşbirliği notları, anketler ve mesajlar oluştur, güncelle ve sil', + 'oauth.scope.notifications:read.label': 'Bildirimleri görüntüle', + 'oauth.scope.notifications:read.description': 'Uygulama içi bildirimleri ve okunmamış sayılarını oku', + 'oauth.scope.notifications:write.label': 'Bildirimleri yönet', + 'oauth.scope.notifications:write.description': 'Bildirimleri okundu olarak işaretle ve onlara yanıt ver', + 'oauth.scope.vacay:read.label': 'Tatil planlarını görüntüle', + 'oauth.scope.vacay:read.description': 'Tatil planlama verilerini, girdileri ve istatistikleri oku', + 'oauth.scope.vacay:write.label': 'Tatil planlarını yönet', + 'oauth.scope.vacay:write.description': 'Tatil girdilerini, resmi tatilleri ve ekip planlarını oluştur ve yönet', + 'oauth.scope.geo:read.label': 'Haritalar ve coğrafi kodlama', + 'oauth.scope.geo:read.description': 'Konum ara, harita URL\'lerini çözümle ve koordinatları adreslere dönüştür', + 'oauth.scope.weather:read.label': 'Hava durumu tahminleri', + 'oauth.scope.weather:read.description': 'Seyahat konumları ve tarihleri için hava durumu tahminleri al', + 'oauth.scope.journey:read.label': 'Yolculukları görüntüle', + 'oauth.scope.journey:read.description': 'Yolculukları, girdileri ve katkıda bulunanlar listesini oku', + 'oauth.scope.journey:write.label': 'Yolculukları yönet', + 'oauth.scope.journey:write.description': 'Yolculukları ve girdilerini oluştur, güncelle ve sil', + 'oauth.scope.journey:share.label': 'Yolculuk bağlantılarını yönet', + 'oauth.scope.journey:share.description': 'Yolculuklar için herkese açık paylaşım bağlantıları oluştur, güncelle ve iptal et', + + // System notices — 3.0.0 upgrade + 'system_notice.v3_photos.title': 'Fotoğraflar 3.0\'da taşındı', + 'system_notice.v3_photos.body': 'Seyahat Planlayıcısındaki **Fotoğraflar** kaldırıldı. Fotoğraflarınız güvende — TREK hiçbir zaman Immich veya Synology kütüphanenizi değiştirmedi.\n\nFotoğraflar artık **Yolculuk (Journey)** eklentisinde yer alıyor. Yolculuk isteğe bağlıdır — henüz kullanılamıyorsa, yöneticinizden Yönetim → Eklentiler altından etkinleştirmesini isteyin.', + 'system_notice.v3_journey.title': 'Yolculuk (Journey) ile tanışın — seyahat günlüğü', + 'system_notice.v3_journey.body': 'Seyahatlerinizi zaman tünelleri, fotoğraf galerileri ve etkileşimli haritalarla zengin seyahat hikayeleri olarak belgeleyin.', + 'system_notice.v3_journey.cta_label': 'Yolculuğu Aç', + 'system_notice.v3_journey.highlight_timeline': 'Gün gün zaman tüneli ve galeri', + 'system_notice.v3_journey.highlight_photos': 'Immich veya Synology\'den içe aktarın', + 'system_notice.v3_journey.highlight_share': 'Herkese açık paylaşın — giriş gerekmez', + 'system_notice.v3_journey.highlight_export': 'PDF fotoğraf kitabı olarak dışa aktarın', + 'system_notice.v3_features.title': '3.0\'daki diğer öne çıkanlar', + 'system_notice.v3_features.body': 'Bu sürüm hakkında bilmeye değer birkaç şey daha.', + 'system_notice.v3_features.highlight_dashboard': 'Mobil öncelikli kontrol paneli (dashboard) yeniliği', + 'system_notice.v3_features.highlight_offline': 'PWA olarak tam çevrimdışı mod', + 'system_notice.v3_features.highlight_search': 'Gerçek zamanlı mekan arama otomatik tamamlama', + 'system_notice.v3_features.highlight_import': 'KMZ/KML dosyalarından mekanları içe aktarma', + + // System notices — MCP OAuth 2.1 upgrade + 'system_notice.v3_mcp.title': 'MCP: OAuth 2.1 güncellemesi', + 'system_notice.v3_mcp.body': 'MCP entegrasyonu tamamen elden geçirildi. OAuth 2.1 artık önerilen kimlik doğrulama yöntemidir. Eski statik anahtarlar (trek_\u2026) kullanımdan kaldırılmıştır ve gelecekteki bir sürümde silinecektir.', + 'system_notice.v3_mcp.highlight_oauth': 'OAuth 2.1 önerilir (mcp-remote)', + 'system_notice.v3_mcp.highlight_scopes': '24 ince ayarlı izin kapsamı', + 'system_notice.v3_mcp.highlight_deprecated': 'Statik trek_ token\'ları kullanımdan kaldırıldı', + 'system_notice.v3_mcp.highlight_tools': 'Genişletilmiş araç seti ve yönlendirmeler', + + // System notices — personal thank you + 'system_notice.v3_thankyou.title': 'Benden kişisel bir not', + 'system_notice.v3_thankyou.body': 'Gitmeden önce — biraz zamanınızı almak istiyorum.\n\nTREK, kendi seyahatlerim için geliştirdiğim bir yan proje olarak başladı. Sizin gibi 4.000 kişinin maceralarını planlamak için güveneceği bir şeye dönüşeceğini hiç hayal etmemiştim. Her bir yıldız, her bir hata bildirimi, her bir özellik isteği — hepsini okuyorum ve tam zamanlı işim ile üniversite arasındaki o uzun gecelerde bana güç veriyorlar.\n\nBunu bilmenizi isterim: TREK her zaman açık kaynak, her zaman kendi sunucunuzda (self-hosted) ve her zaman size ait kalacak. İzleme yok, abonelik yok, gizli şartlar yok. Sadece seyahat etmeyi sizin kadar seven biri tarafından yapılmış bir araç.\n\n[jubnl](https://github.com/jubnl)\'a özel teşekkürler — inanılmaz bir işbirlikçi oldun. 3.0 sürümünü harika yapan şeylerin çoğunda senin parmak izin var. Bu proje daha çok yeniyken bile inandığın için teşekkür ederim.\n\nVe bir hata bildiren, bir metni çeviren, TREK\'i bir arkadaşıyla paylaşan veya sadece bir seyahat planlamak için kullanan her birinize — **teşekkür ederim**. Bunun var olma sebebi sizsiniz.\n\nBirlikte nice yeni maceralara.\n\n— Maurice\n\n---\n\n[Discord\'daki topluluğa katılın](https://discord.gg/7Q6M6jDwzf)\n\nEğer TREK seyahatlerinizi güzelleştiriyorsa, [küçük bir kahve](https://ko-fi.com/mauriceboe) ışıkların her zaman açık kalmasını sağlar.', + + // System notices — onboarding + 'system_notice.welcome_v1.title': 'TREK\'e Hoş Geldiniz', + 'system_notice.welcome_v1.body': 'Hepsi bir arada seyahat planlayıcınız. Rotalar oluşturun, seyahatleri arkadaşlarınızla paylaşın ve her zaman düzenli kalın — çevrimiçi veya çevrimdışı.', + 'system_notice.welcome_v1.cta_label': 'Bir seyahat planla', + 'system_notice.welcome_v1.hero_alt': 'TREK planlama arayüzü ile manzaralı bir seyahat noktası', + 'system_notice.welcome_v1.highlight_plan': 'Her seyahat için gün gün plan programlar', + 'system_notice.welcome_v1.highlight_share': 'Seyahat arkadaşlarınızla işbirliği yapın', + 'system_notice.welcome_v1.highlight_offline': 'Mobilde çevrimdışı çalışır', + 'system_notice.dev_test_modal.title': '[Dev] Test duyurusu', + 'system_notice.dev_test_modal.body': 'Bu sadece geliştirici amaçlı bir test duyurusudur.', + 'system_notice.pager.prev': 'Önceki duyuru', + 'system_notice.pager.next': 'Sonraki duyuru', + 'system_notice.pager.counter': '{current} / {total}', + 'system_notice.pager.goto': '{n}. duyuruya git', + 'system_notice.pager.position': 'Duyuru {current} / {total}', + 'transport.addTransport': 'Ulaşım ekle', + 'transport.modalTitle.create': 'Ulaşım ekle', + 'transport.modalTitle.edit': 'Ulaşımı düzenle', + 'transport.title': 'Ulaşımlar', + 'transport.addManual': 'Manuel Ulaşım', +} + +export default tr