Files
oikos/public/locales/tr.json
T
ulsklyc d1ec7367a0 fix(auth): resolve post-login navigate race condition and add version display (#68) (#70)
Root cause: when auth.me() failed during initial navigation, the catch block
called navigate('/login') without clearing _pendingLoginRedirect. The outer
finally then fired a second concurrent navigate('/login'), which held
isNavigating=true while running. If the user submitted the login form (or
iCloud Keychain autofilled credentials) before the second navigation
completed, navigate('/', user) was silently blocked by the isNavigating guard —
login appeared to succeed but the app never advanced to the dashboard.

Fix: clear _pendingLoginRedirect in the catch block so the finally handler
does not spawn the duplicate navigation.

Also adds a GET /api/v1/version endpoint (no auth required) and shows the
version on the login page, so users can verify their PWA has received the
latest cached JS.

Resolves #68

Co-authored-by: Ulas Kalayci <ulas.kalayci@googlemail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:19:53 +02:00

609 lines
22 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "Kaydet",
"cancel": "İptal",
"delete": "Sil",
"edit": "Düzenle",
"close": "Kapat",
"create": "Oluştur",
"add": "Ekle",
"back": "Geri",
"next": "İleri",
"loading": "Yükleniyor…",
"saving": "Kaydediliyor…",
"required": "Bu alan zorunludur.",
"error": "Hata",
"allFieldsRequired": "Lütfen tüm alanları doldurun.",
"today": "Bugün",
"tomorrow": "Yarın",
"skipToContent": "İçeriğe geç",
"reload": "Yenile",
"errorOccurred": "Bir şeyler ters gitti.",
"unexpectedError": "Beklenmeyen bir hata oluştu.",
"errorGeneric": "Bir hata oluştu.",
"updateAvailable": "Güncelleme mevcut - en son sürümü almak için sayfayı yenileyin.",
"titleRequired": "Başlık zorunludur",
"nameRequired": "Ad zorunludur",
"contentRequired": "İçerik zorunludur",
"all": "Tümü",
"unknownError": "Bilinmeyen hata",
"confirm": "Onayla",
"undo": "Geri al"
},
"nav": {
"dashboard": "Genel Bakış",
"tasks": "Görevler",
"calendar": "Takvim",
"meals": "Yemekler",
"shopping": "Alışveriş",
"notes": "Notlar",
"contacts": "Kişiler",
"budget": "Bütçe",
"settings": "Ayarlar",
"main": "Ana gezinme",
"navigation": "Gezinme",
"quickActions": "Hızlı işlemler"
},
"dashboard": {
"title": "Genel Bakış",
"greetingMorning": "Günaydın, {{name}}",
"greetingDay": "İyi günler, {{name}}",
"greetingEvening": "İyi akşamlar, {{name}}",
"allDone": "Her şey tamam",
"noEvents": "Etkinlik yok",
"noPinnedNotes": "Sabitlenmiş not yok",
"todayMeals": "Bugünün yemekleri",
"allLink": "Tümü",
"weekLink": "Hafta",
"urgentTasksChip": "{{count}} acil görev",
"urgentTasksChipPlural": "{{count}} acil görev",
"eventsChip": "Bugün {{count}} etkinlik",
"eventsChipPlural": "Bugün {{count}} etkinlik",
"todayMealChip": "Bugün: {{title}}",
"loadError": "Gösterge paneli tam olarak yüklenemedi.",
"weatherRefresh": "Hava durumunu yenile",
"weatherRefreshTitle": "Yenile",
"weatherUpdated": "Hava durumu güncellendi",
"weatherFeelsLike": "Hissedilen {{temp}}° · {{humidity}}% · Rüzgar {{wind}} km/s",
"fabTaskLabel": "Görev ekle",
"fabCalendarLabel": "Etkinlik ekle",
"fabShoppingLabel": "Alışveriş ekle",
"fabNoteLabel": "Not ekle",
"fabTask": "Görev",
"fabCalendar": "Etkinlik",
"fabShopping": "Alışveriş",
"fabNote": "Not",
"overdue": "Gecikmiş",
"dueSoon": "Bugün bitiyor",
"dueTomorrow": "Yarın bitiyor",
"allDay": "Tüm gün",
"shoppingMore": "+{{count}} daha",
"weather": "Hava",
"customize": "Özelleştir",
"customizeTitle": "Widget'ları özelleştir",
"customizeReset": "Sıfırla",
"customizeSaved": "Pano kaydedildi",
"customizeMoveUp": "Yukarı",
"customizeMoveDown": "Aşağı"
},
"tasks": {
"title": "Görevler",
"newTask": "Yeni Görev",
"editTask": "Görevi Düzenle",
"emptyTitle": "Görev yok - her şey tamam mı?",
"emptyDescription": "+ düğmesiyle yeni görevler oluşturun.",
"titleLabel": "Başlık *",
"titlePlaceholder": "Ne yapılması gerekiyor?",
"descriptionLabel": "Not",
"descriptionPlaceholder": "İsteğe bağlı ayrıntılar…",
"priorityLabel": "Öncelik",
"categoryLabel": "Kategori",
"dueDateLabel": "Bitiş tarihi",
"dueTimeLabel": "Saat",
"assignedLabel": "Atanan",
"assignedNobody": "- Kimse -",
"statusLabel": "Durum",
"priorityUrgent": "Acil",
"priorityHigh": "Yüksek",
"priorityMedium": "Orta",
"priorityLow": "Düşük",
"priorityNone": "Yok",
"statusOpen": "Açık",
"statusInProgress": "Devam Ediyor",
"statusDone": "Tamamlandı",
"categoryHousehold": "Ev İşleri",
"categorySchool": "Okul",
"categoryShopping": "Alışveriş",
"categoryRepair": "Tamir",
"categoryHealth": "Sağlık",
"categoryFinance": "Finans",
"categoryLeisure": "Boş Zaman",
"categoryMisc": "Diğer",
"overdue": "Gecikmiş",
"overdueDay": "{{count}}g gecikmiş",
"dueToday": "Bugün bitiyor",
"dueTomorrow": "Yarın bitiyor",
"groupOverdue": "Gecikmiş",
"groupToday": "Bugün",
"groupThisWeek": "Bu hafta",
"groupNextWeek": "Gelecek hafta",
"groupLater": "Sonra",
"groupNoDate": "Tarih yok",
"markDone": "{{title}} tamamlandı olarak işaretle",
"markOpen": "{{title}} açık olarak işaretle",
"editButton": "Görevi düzenle",
"swipeOpen": "Yeniden aç",
"swipeDone": "Tamamlandı",
"swipeEdit": "Düzenle",
"subtaskAdd": "+ Alt görev ekle",
"subtaskToggle": "Alt görevleri göster",
"subtaskMarkDone": "{{title}} tamamlandı olarak işaretle",
"deleteConfirm": "Görev ve tüm alt görevler silinsin mi?",
"savedToast": "Görev kaydedildi.",
"createdToast": "Görev oluşturuldu.",
"deletedToast": "Görev silindi.",
"loadError": "Görev yüklenemedi.",
"subtaskPrompt": "Alt görev:",
"kanbanOpen": "Açık",
"kanbanInProgress": "Devam Ediyor",
"kanbanDone": "Tamamlandı",
"kanbanMoveToInProgress": "Devam ediyor olarak ayarla",
"kanbanMoveToDone": "Tamamlandı olarak işaretle",
"kanbanMoveToOpen": "Yeniden aç",
"recurring": "Yinelenen",
"listView": "Liste görünümü",
"kanbanView": "Kanban görünümü"
},
"shopping": {
"title": "Alışveriş",
"noLists": "Liste yok",
"noListsDescription": "+ düğmesiyle bir liste oluşturun.",
"emptyList": "Liste boş",
"emptyListDescription": "Yukarıdaki giriş alanını kullanarak ürün ekleyin.",
"newListPrompt": "Yeni liste adı:",
"newListButton": "Yeni liste oluştur",
"renameListPrompt": "Yeni liste adı:",
"deleteListConfirm": "\"{{name}}\" listesi ve tüm ürünleri silinsin mi?",
"deletedListToast": "Liste silindi.",
"itemDeletedToast": "\"{{name}}\" kaldırıldı.",
"itemsRemovedToast": "{{count}} ürün kaldırıldı.",
"clearChecked": "İşaretlileri sil ({{count}})",
"itemNamePlaceholder": "Ürün ekle…",
"itemQtyPlaceholder": "Miktar",
"itemNameLabel": "Ürün adı",
"itemQtyLabel": "Miktar",
"categoryLabel": "Kategori",
"addItemLabel": "Ürün ekle",
"renameListLabel": "Listeyi yeniden adlandır",
"deleteListLabel": "Listeyi sil",
"swipeBack": "Geri al",
"swipeCheck": "İşaretle",
"swipeDelete": "Sil",
"markDoneLabel": "{{name}} işaretle",
"markUndoneLabel": "{{name}} işaretini kaldır",
"deleteItemLabel": "{{name}} sil",
"listsLoadError": "Listeler yüklenemedi.",
"itemsLoadError": "Ürünler yüklenemedi.",
"catFruitVeg": "Meyve ve Sebze",
"catBakery": "Fırın",
"catDairy": "Süt Ürünleri",
"catMeatFish": "Et ve Balık",
"catFrozen": "Dondurulmuş",
"catDrinks": "İçecekler",
"catHousehold": "Ev Gereçleri",
"catDrugstore": "Eczane",
"catMisc": "Diğer"
},
"meals": {
"title": "Yemek Planı",
"noMealPlanned": "Yemek planlanmadı",
"addMeal": "{{type}} ekle",
"editMeal": "Yemeği düzenle",
"addMealTitle": "Yemek ekle",
"deleteMeal": "Yemeği sil",
"transferToShoppingList": "Malzemeleri alışveriş listesine ekle",
"today": "Bugün",
"prevWeek": "Önceki hafta",
"nextWeek": "Gelecek hafta",
"loadError": "Yemek planı yüklenemedi.",
"typeBreakfast": "Kahvaltı",
"typeLunch": "Öğle yemeği",
"typeDinner": "Akşam yemeği",
"typeSnack": "Atıştırmalık",
"dayMo": "Pzt",
"dayDi": "Sal",
"dayMi": "Çar",
"dayDo": "Per",
"dayFr": "Cum",
"daySa": "Cmt",
"daySo": "Paz",
"dateLabel": "Tarih",
"mealTypeLabel": "Öğün",
"titleLabel": "Başlık *",
"titlePlaceholder": "örn. Mercimek çorbası",
"notesLabel": "Notlar",
"notesPlaceholder": "İsteğe bağlı…",
"ingredientsLabel": "Malzemeler",
"addIngredient": "Malzeme ekle",
"ingredientNamePlaceholder": "Malzeme",
"ingredientQtyPlaceholder": "Miktar",
"ingredientCategoryLabel": "Kategori",
"ingredientCategoryDefault": "Çeşitli",
"removeIngredient": "Malzemeyi kaldır",
"transferLabel": "Malzemeleri alışveriş listesine aktar",
"transferNow": "Şimdi aktar",
"noShoppingLists": "Alışveriş listesi yok",
"transferSuccess": "{{count}} malzeme aktarıldı",
"transferSuccessPlural": "{{count}} malzeme aktarıldı",
"transferAlreadyDone": "Tüm malzemeler zaten aktarıldı",
"ingredientCount": "{{count}} malzeme",
"ingredientCountPlural": "{{count}} malzeme",
"titleRequired": "Başlık zorunludur",
"loadingIndicator": "Yükleniyor…",
"recipeUrlLabel": "Tarif bağlantısı (isteğe bağlı)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Tarifi aç"
},
"calendar": {
"title": "Takvim",
"newEvent": "Yeni Etkinlik",
"editEvent": "Etkinliği Düzenle",
"addEvent": "Etkinlik ekle",
"deleteEvent": "Etkinliği sil",
"noEvents": "Seçilen dönemde etkinlik yok.",
"today": "Bugün",
"back": "Geri",
"forward": "İleri",
"viewMonth": "Ay",
"viewWeek": "Hafta",
"viewDay": "Gün",
"viewAgenda": "Ajanda",
"allDay": "Tüm gün",
"allDayShort": "tüm gün",
"moreEvents": "+{{count}} daha",
"weekNumberLabel": "H{{week}} · {{month}} {{year}}",
"agendaFrom": "{{date}} tarihinden itibaren",
"titleLabel": "Başlık *",
"titlePlaceholder": "örn. Diş hekimi",
"allDayToggle": "Tüm gün",
"startDateLabel": "Başlangıç tarihi",
"startTimeLabel": "Başlangıç saati",
"endDateLabel": "Bitiş tarihi",
"endTimeLabel": "Bitiş saati",
"fromLabel": "Başlangıç",
"toLabel": "Bitiş",
"locationLabel": "Konum",
"locationPlaceholder": "İsteğe bağlı",
"assignedLabel": "Atanan",
"assignedNobody": "- Kimse -",
"colorLabel": "Renk {{color}}",
"descriptionLabel": "Açıklama",
"descriptionPlaceholder": "İsteğe bağlı…",
"popupEdit": "Düzenle",
"deleteConfirm": "\"{{title}}\" silinsin mi?",
"createdToast": "Etkinlik oluşturuldu",
"savedToast": "Etkinlik kaydedildi",
"deletedToast": "Etkinlik silindi",
"loadError": "Etkinlikler yüklenemedi.",
"saveError": "Kaydetme hatası",
"deleteError": "Silme hatası",
"titleRequired": "Başlık zorunludur",
"monthJanuary": "Ocak",
"monthFebruary": "Şubat",
"monthMarch": "Mart",
"monthApril": "Nisan",
"monthMay": "Mayıs",
"monthJune": "Haziran",
"monthJuly": "Temmuz",
"monthAugust": "Ağustos",
"monthSeptember": "Eylül",
"monthOctober": "Ekim",
"monthNovember": "Kasım",
"monthDecember": "Aralık",
"dayShortSunday": "Paz",
"dayShortMonday": "Pzt",
"dayShortTuesday": "Sal",
"dayShortWednesday": "Çar",
"dayShortThursday": "Per",
"dayShortFriday": "Cum",
"dayShortSaturday": "Cmt",
"dayLongSunday": "Pazar",
"dayLongMonday": "Pazartesi",
"dayLongTuesday": "Salı",
"dayLongWednesday": "Çarşamba",
"dayLongThursday": "Perşembe",
"dayLongFriday": "Cuma",
"dayLongSaturday": "Cumartesi",
"timeSuffix": ""
},
"notes": {
"title": "Notlar",
"newNote": "Yeni Not",
"editNote": "Notu Düzenle",
"addNoteLabel": "Yeni Not",
"searchPlaceholder": "Notlarda ara…",
"emptyTitle": "Henüz not yok",
"emptyDescription": "+ düğmesiyle yeni bir not oluşturun.",
"noResultsTitle": "Sonuç yok",
"noResultsDescription": "Hiçbir not \"{{query}}\" içermiyor.",
"titleLabel": "Başlık (isteğe bağlı)",
"titlePlaceholder": "Başlıksız",
"contentLabel": "İçerik",
"contentMarkdownHint": "(Markdown biçimlendirmesi desteklenir)",
"contentPlaceholder": "Not girin…",
"colorLabel": "Renk",
"pinnedLabel": "Sabitle (gösterge panelinde görünür)",
"pinAction": "Sabitle",
"unpinAction": "Sabitlemeyi kaldır",
"deleteLabel": "Notu sil",
"deleteConfirm": "Bu not silinsin mi?",
"createdToast": "Not oluşturuldu",
"savedToast": "Not kaydedildi",
"deletedToast": "Not silindi",
"loadError": "Notlar yüklenemedi.",
"formatBold": "Kalın (Ctrl+B)",
"formatItalic": "İtalik (Ctrl+I)",
"formatUnderline": "Altı çizili (Ctrl+U)",
"formatStrikethrough": "Üstü çizili",
"formatHeading": "Başlık",
"formatList": "Madde listesi",
"formatOrderedList": "Numaralı liste",
"formatChecklist": "Kontrol listesi",
"formatLink": "Bağlantı",
"formatCode": "Kod",
"formatQuote": "Alıntı",
"formatDivider": "Ayırıcı"
},
"contacts": {
"title": "Kişiler",
"newContact": "Yeni Kişi",
"editContact": "Kişiyi Düzenle",
"addButton": "Yeni",
"newContactLabel": "Yeni Kişi",
"searchPlaceholder": "Ad, telefon veya e-posta ara…",
"importButton": "İçe aktar",
"importLabel": "vCard'dan kişi içe aktar",
"importTooltip": "vCard içe aktar",
"emptyTitle": "Henüz kişi yok",
"emptyDescription": "+ düğmesiyle yeni kişiler ekleyin.",
"filterAll": "Tümü",
"nameLabel": "Ad *",
"namePlaceholder": "Tam ad",
"categoryLabel": "Kategori",
"phoneLabel": "Telefon",
"phonePlaceholder": "+90 …",
"emailLabel": "E-posta",
"emailPlaceholder": "ad@ornek.com.tr",
"addressLabel": "Adres",
"addressPlaceholder": "Sokak, Posta Kodu Şehir",
"notesLabel": "Notlar",
"notesPlaceholder": "İsteğe bağlı…",
"callLabel": "Ara",
"emailActionLabel": "E-posta",
"mapsLabel": "Haritada aç",
"exportLabel": "vCard olarak dışa aktar",
"exportTooltip": "vCard dışa aktar",
"deleteLabel": "Kişiyi sil",
"deleteConfirm": "Bu kişi silinsin mi?",
"deletePersonConfirm": "\"{{name}}\" silinsin mi?",
"savedToast": "Kişi kaydedildi",
"updatedToast": "Kişi güncellendi",
"deletedToast": "Kişi silindi",
"importedToast": "{{name}} içe aktarıldı.",
"importError": "İçe aktarma başarısız: {{error}}",
"vcardNoName": "vCard'da ad yok.",
"catDoctor": "Doktor",
"catSchool": "Okul/Kreş",
"catAuthority": "Resmi Kurum",
"catInsurance": "Sigorta",
"catCraftsman": "Usta",
"catEmergency": "Acil",
"catMisc": "Diğer",
"categoryDoctor": "Doktor",
"categorySchool": "Okul/Kreş",
"categoryAuthority": "Resmi Kurum",
"categoryInsurance": "Sigorta",
"categoryCraftsman": "Usta",
"categoryEmergency": "Acil",
"categoryOther": "Diğer"
},
"budget": {
"title": "Bütçe",
"newEntry": "Yeni Kayıt",
"editEntry": "Kaydı Düzenle",
"addEntryLabel": "Kayıt ekle",
"newEntryFabLabel": "Yeni Kayıt",
"currentMonth": "Bu Ay",
"prevMonth": "Önceki ay",
"nextMonth": "Sonraki ay",
"income": "Gelir",
"expenses": "Gider",
"balance": "Bakiye",
"byCategory": "Kategoriye göre",
"transactions": "İşlemler",
"emptyTitle": "Bu ay kayıt yok",
"emptyDescription": "+ düğmesiyle bütçe kayıtları ekleyin.",
"csvExport": "CSV",
"typeExpense": "Gider",
"typeIncome": "Gelir",
"titleLabel": "Başlık *",
"titlePlaceholder": "örn. Market alışverişi",
"amountLabel": "Tutar *",
"amountPlaceholder": "0,00",
"categoryLabel": "Kategori",
"dateLabel": "Tarih *",
"recurringLabel": "Yinelenen",
"deleteLabel": "Kaydı sil",
"deleteConfirm": "Bu kayıt silinsin mi?",
"deletePersonConfirm": "\"{{title}}\" silinsin mi?",
"addedToast": "Kayıt eklendi",
"savedToast": "Kayıt kaydedildi",
"deletedToast": "Kayıt silindi",
"loadError": "Bütçe yüklenemedi.",
"trendNeutral": "- {{month}} ile aynı",
"validAmountRequired": "Lütfen geçerli bir tutar girin",
"dateRequired": "Tarih zorunludur",
"catFood": "Market",
"catRent": "Kira",
"catInsurance": "Sigorta",
"catMobility": "Ulaşım",
"catLeisure": "Eğlence",
"catClothing": "Giyim",
"catHealth": "Sağlık",
"catEducation": "Eğitim",
"catMisc": "Diğer",
"catEarnedIncome": "Kazanç Geliri",
"catInvestmentIncome": "Yatırım Geliri",
"catTransferGiftIncome": "Transferler ve Hediyeler",
"catGovernmentBenefits": "Sosyal Yardımlar",
"catOtherIncome": "Diğer Gelir",
"loadingIndicator": "Yükleniyor…"
},
"settings": {
"title": "Ayarlar",
"tabGeneral": "Genel",
"tabMeals": "Yemekler",
"tabBudget": "Bütçe",
"tabShopping": "Alışveriş",
"tabCalendar": "Takvim",
"tabAccount": "Hesap",
"tabsAriaLabel": "Ayar bölümleri",
"sectionDesign": "Görünüm",
"sectionShopping": "Alışveriş",
"shoppingCategoriesLabel": "Alışveriş Kategorileri",
"shoppingCategoriesHint": "Kategorileri ekleyin, yeniden adlandırın, silin veya sıralayın.",
"shoppingCategoryPlaceholder": "Yeni kategori…",
"shoppingCategoryRenameHint": "Yeniden adlandırmak için tıklayın",
"shoppingCategoryRenamePrompt": "Yeni kategori adı:",
"shoppingCategoryMoveUp": "Kategoriyi yukarı taşı",
"shoppingCategoryMoveDown": "Kategoriyi aşağı taşı",
"shoppingCategoryDelete": "Kategoriyi sil",
"shoppingCategoryDeleteConfirm": "\"{{name}}\" kategorisi silinsin mi? Mevcut ürünler bir sonraki kategoriye taşınacak.",
"shoppingCategoryAdded": "Kategori eklendi.",
"shoppingCategoryRenamed": "Kategori yeniden adlandırıldı.",
"shoppingCategoryDeleted": "Kategori silindi.",
"sectionAccount": "Hesabım",
"sectionCalendarSync": "Takvim Senkronizasyonu",
"sectionFamily": "Aile Üyeleri",
"cardAppearance": "Görünüm",
"themeSystem": "Sistem",
"themeSysLabel": "Sistem ayarını kullan",
"themeLight": "Açık",
"themeLightLabel": "Açık mod",
"themeDark": "Koyu",
"themeDarkLabel": "Koyu mod",
"changePassword": "Şifre değiştir",
"currentPasswordLabel": "Mevcut şifre",
"newPasswordLabel": "Yeni şifre",
"confirmPasswordLabel": "Yeni şifreyi onayla",
"savePassword": "Şifreyi kaydet",
"passwordMismatch": "Şifreler eşleşmiyor.",
"passwordSavedToast": "Şifre başarıyla değiştirildi.",
"googleCalendar": "Google Takvim",
"appleCalendar": "Apple Takvim (iCloud)",
"syncNow": "Şimdi senkronize et",
"disconnect": "Bağlantıyı kes",
"connectGoogle": "Google ile bağlan",
"connected": "Bağlı",
"connectedLastSync": "Bağlı · Son: {{date}}",
"notConnected": "Bağlı değil",
"notConfigured": "Yapılandırılmadı (.env değişkenleri eksik)",
"configured": "Yapılandırıldı (via .env)",
"configuredLastSync": "Yapılandırıldı (via .env) · Son: {{date}}",
"syncSuccess": "{{provider}} senkronize edildi.",
"disconnectedToast": "{{provider}} bağlantısı kesildi.",
"googleOnlyAdmin": "Yalnızca yönetici Google Takvim'i bağlayabilir.",
"appleOnlyAdmin": "Yalnızca yönetici Apple Takvim'i bağlayabilir.",
"caldavUrlLabel": "CalDAV Sunucu URL'si",
"caldavUrlPlaceholder": "https://caldav.icloud.com",
"appleIdLabel": "Apple Kimliği (e-posta)",
"applePasswordLabel": "Uygulamaya özel şifre",
"applePasswordHint": "<strong>appleid.apple.com → Güvenlik</strong> adresinden şifre oluşturun.",
"appleConnectBtn": "Bağlan ve test et",
"appleConnecting": "Bağlanıyor…",
"appleConnectedToast": "Apple Takvim bağlandı.",
"syncSuccessGoogle": "Google ile takvim senkronizasyonu başarıyla bağlandı.",
"syncSuccessApple": "Apple ile takvim senkronizasyonu başarıyla bağlandı.",
"syncErrorGoogle": "Google'a bağlanılamadı. Lütfen tekrar deneyin.",
"syncErrorApple": "Apple'a bağlanılamadı. Lütfen tekrar deneyin.",
"addMember": "+ Üye ekle",
"newMemberTitle": "Yeni Aile Üyesi",
"usernameLabel": "Kullanıcı adı",
"displayNameLabel": "Görünen ad",
"memberPasswordLabel": "Şifre",
"colorLabel": "Renk",
"roleLabel": "Rol",
"roleMember": "Üye",
"roleAdmin": "Yönetici",
"createMember": "Oluştur",
"cancelAddMember": "İptal",
"memberAddedToast": "{{name}} eklendi.",
"deleteMemberConfirm": "{{name}} silinsin mi?",
"memberDeletedToast": "{{name}} silindi.",
"deleteMemberLabel": "Sil",
"logout": "Çıkış yap",
"synchronizing": "Senkronize ediliyor…",
"googleDisconnectConfirm": "Google Takvim bağlantısı kesilsin mi?",
"appleDisconnectConfirm": "Apple Takvim bağlantısı kesilsin mi?",
"localeSystem": "Sistem",
"localeLabel": "Dil",
"languageTitle": "Dil",
"sectionMeals": "Yemek Planı",
"mealTypesLabel": "Görünür öğünler",
"mealTypesHint": "Yalnızca seçili öğün türleri yemek planında gösterilir.",
"mealTypesSaved": "Yemek planı ayarları kaydedildi.",
"mealTypesMinOne": "En az bir öğün türü aktif olmalıdır.",
"sectionBudget": "Bütçe",
"currencyLabel": "Para birimi",
"currencyHint": "Bütçe bölümünde kullanılan para birimini belirler.",
"currencySaved": "Para birimi kaydedildi."
},
"login": {
"tagline": "Aile planlaması. Güvenli. Gizlilik dostu. Açık kaynak.",
"usernameLabel": "Kullanıcı adı",
"usernamePlaceholder": "kullaniciadi",
"passwordLabel": "Şifre",
"passwordPlaceholder": "••••••••",
"loginButton": "Giriş yap",
"loggingIn": "Giriş yapılıyor…",
"tooManyAttempts": "Çok fazla deneme. Lütfen bir süre bekleyin.",
"invalidCredentials": "Geçersiz kimlik bilgileri.",
"version": "v{{version}}"
},
"install": {
"title": "Oikos'u Yükle",
"subtitle": "Ana ekrana ekle",
"iosTip1": "Dokunun ",
"iosTip2": " → \"Ana Ekrana Ekle\"",
"installButton": "Yükle",
"dismissLabel": "Kapat"
},
"modal": {
"closeLabel": "Kapat",
"overlayLabel": "Modal iletişim kutusu arka planı"
},
"rrule": {
"freqNone": "Tekrar yok",
"freqDaily": "Günlük",
"freqWeekly": "Haftalık",
"freqMonthly": "Aylık",
"dayMo": "Pt",
"dayTu": "Sa",
"dayWe": "Ça",
"dayTh": "Pe",
"dayFr": "Cu",
"daySa": "Ct",
"daySu": "Pz",
"labelRepeat": "Tekrar",
"labelEvery": "Her",
"labelOnDays": "Bu günlerde",
"labelUntil": "Bitiş tarihi (isteğe bağlı)",
"unitDay": "gün",
"unitDays": "gün",
"unitWeek": "hafta",
"unitWeeks": "hafta",
"unitMonth": "ay",
"unitMonths": "ay"
}
}