feat: add core i18n runtime and catalogs

This commit is contained in:
poyrazavsever
2026-07-19 03:06:38 +03:00
parent 0548820584
commit f4a2342ac4
12 changed files with 776 additions and 0 deletions
+244
View File
@@ -0,0 +1,244 @@
import type { TranslationCatalog } from "@/lib/i18n/types";
import { common } from "./common";
export const trCatalog = {
common: {
...common,
"notFound.title": "Sayfa bulunamadı",
"notFound.description": "Aradığın sayfa taşınmış, silinmiş veya hiç var olmamış olabilir.",
"notFound.backHome": "Ana sayfaya dön",
"error.title": "Bir şeyler ters gitti",
"error.description": "Beklenmeyen bir hata oluştu. Lütfen tekrar dene.",
"error.retry": "Tekrar dene",
"maintenance.title": "Bakım modu",
"maintenance.description": "Bu çalışma alanı kısa süreli bakımda. Lütfen birazdan tekrar dene.",
"itemsCount": "{count, plural, one {# öğe} other {# öğe}}",
},
auth: {
"login.title": "Giriş yap",
"login.description": "Neta çalışma alanına erişmek için hesabına giriş yap.",
"login.email": "E-posta",
"login.emailPlaceholder": "ornek@mail.com",
"login.password": "Şifre",
"login.forgotPassword": "Şifremi unuttum",
"login.submit": "Giriş yap",
"login.pending": "Giriş yapılıyor...",
"login.setupPrompt": "İlk kurulumu yapmadın mı?",
"login.createAdmin": "Admin hesabını oluştur",
"register.title": "Admin hesabı oluştur",
"register.firstAdminTitle": "İlk admin hesabını oluştur",
"register.description": "Bu Neta çalışma alanının ilk yönetici hesabını oluştur.",
"register.submit": "Admin hesabını oluştur",
"register.pending": "Oluşturuluyor...",
"register.hasAccount": "Zaten hesabın var mı?",
"register.closed": "Kayıt kapalı. Bu Neta kurulumunda ilk admin hesabı zaten oluşturulmuş.",
"register.failed": "Kullanıcı oluşturulamadı.",
"forgot.title": "Şifre sıfırlama",
"forgot.description": "Self-host kurulumda e-posta sağlayıcısı bağlandığında bu akış aktif edilir.",
"forgot.helper": "Şimdilik admin panelinden yeni şifre belirleyebilir veya veritabanındaki kullanıcıyı yönetebilirsin.",
"forgot.back": "Giriş sayfasına dön",
"reset.title": "Yeni şifre belirle",
"reset.description": "Şifre sıfırlama bağlantısı entegrasyonu henüz yapılandırılmadı.",
"invite.title": "Portal davetini kabul et",
"invite.description": "Davet edilen hesabın için adını ve şifreni belirle.",
"invite.email": "E-posta",
"invite.displayName": "Ad soyad",
"invite.password": "Şifre",
"invite.passwordHelp": "En az 8 karakter kullan.",
"invite.submit": "Portal hesabını oluştur",
"invite.pending": "Hesap oluşturuluyor...",
"invite.backToLogin": "Giriş sayfasına dön",
"invite.expired": "Bu davetin süresi dolmuş. Freelancer'dan yeni bir bağlantı istemelisin.",
"invite.accepted": "Bu davet daha önce kullanılmış. Hesabınla giriş yapabilirsin.",
"invite.revoked": "Bu davet iptal edilmiş. Freelancer'dan yeni bir bağlantı istemelisin.",
"invite.success": "Portal hesabın oluşturuldu. Şimdi giriş yapabilirsin.",
"language": "Dil",
"marketing.headline": "Freelancer işlerini, müşterilerini ve finansını tek yerde yönet.",
"marketing.description": "{app}, günlük operasyonunu, projelerini, side projectlerini ve temel finans durumunu sade raporlarla takip etmen için tasarlanır.",
"marketing.openSource": "Açık kaynak ve self-host edilebilir.",
"marketing.github": "GitHub",
"marketing.via": "üzerinden ulaşabilirsin.",
"marketing.builtBy": "tarafından kodlandı.",
"highlights.clients": "Müşteriler",
"highlights.calendar": "Takvim",
"highlights.finance": "Finans",
"highlights.reports": "Raporlar",
"messages.invalidCredentials": "E-posta veya şifre hatalı.",
"messages.setupUnavailable": "Kayıt kapalı. Bu Neta kurulumunda ilk freelancer hesabı zaten oluşturulmuş.",
"messages.setupStateError": "Kurulum durumu okunamadı.",
"messages.signupFailed": "Kullanıcı oluşturulamadı.",
"messages.portalInviteFailed": "Portal hesabı oluşturulamadı.",
},
navigation: {
"groups.overview": "GENEL BAKIŞ",
"groups.operations": "OPERASYON",
"groups.personal": "KİŞİSEL",
"groups.ai": "AI ASİSTAN",
"groups.processes": "SÜREÇLER",
"items.dashboard": "Dashboard",
"items.calendar": "Takvim",
"items.analytics": "Analizler",
"items.clients": "Müşteriler",
"items.projects": "Projeler",
"items.tasks": "Görevler",
"items.finance": "Finans",
"items.journal": "Günlük",
"items.chat": "Sohbet",
"items.settings": "Ayarlar",
"items.portalProjects": "Projeleriniz",
"items.portalTasks": "Yapılan Görevler",
"items.portalRevisions": "Revizyon Talepleri",
"shell.skipToContent": "Ana içeriğe geç",
"shell.homeAriaLabel": "{app} ana sayfa",
"shell.mobileMenuAriaLabel": "Ana menüyü aç veya kapat",
"shell.mobileMenuTooltip": "Menü",
"shell.logoAlt": "{app} logosu",
"shell.progressTitle": "Proje ilerlemesi",
"shell.progressValue": "%{progress} tamamlandı",
"shell.progressAriaLabel": "Proje ilerlemesi",
"shell.accountMenuAriaLabel": "{name} için hesap menüsünü aç",
"account.signOut": "Çıkış yap",
"account.signingOut": "Çıkış yapılıyor",
"account.signOutError": "Çıkış yapılamadı. Lütfen tekrar deneyin.",
},
dashboard: {
"title": "Dashboard",
"description": "İş performansını, gelirlerini ve günlük durumunu takip et.",
"stats.netEarnings": "Net Kazanç",
"stats.activeProjects": "Aktif Projeler",
"stats.completedTasks": "Tamamlanan Görev",
"stats.averageMood": "Ortalama Mood",
"sections.financeSummary": "Gelir / Gider Özeti",
"sections.moodTrend": "Mood & Enerji Trendi",
"sections.recentProjects": "Son Eklenen Projeler",
"sections.recentClients": "Son Eklenen Müşteriler",
"empty.finance": "Bu tarih aralığında finansal veri yok.",
"empty.journal": "Bu tarih aralığında günlük verisi yok.",
"empty.projects": "Henüz proje yok.",
"empty.clients": "Henüz müşteri yok.",
"filters.range": "Tarih aralığı",
"filters.today": "Bugün",
"filters.thisWeek": "Bu Hafta",
"filters.thisMonth": "Bu Ay",
},
clients: {
"title": "Müşteriler",
"description": "Müşteri ilişkilerini, projeleri ve takipleri yönetin.",
"actions.add": "Müşteri ekle",
"fields.name": "Müşteri adı",
"fields.email": "E-posta",
},
projects: {
"title": "Projeler",
"description": "Proje durumlarını, teslim tarihlerini ve müşteri bağlantılarını takip edin.",
"actions.add": "Proje ekle",
"actions.risk": "AI Risk Analizi",
"stats.active": "Aktif proje",
"stats.progress": "Ortalama ilerleme",
"stats.budget": "Toplam bütçe",
"fields.name": "Proje adı",
"fields.description": "Açıklama",
},
tasks: {
"title": "Görevler",
"description": "Yapılacak işleri, öncelikleri ve proje bağlantılarını yönetin.",
"actions.add": "Görev ekle",
"view.kanban": "Kanban",
"view.list": "Liste",
"fields.title": "Görev başlığı",
"fields.description": "Açıklama",
},
calendar: {
"title": "Takvim",
"description": "Toplantı, odak zamanı ve teslim tarihlerini planlayın.",
"actions.add": "Etkinlik ekle",
"event.title": "Etkinlik",
},
finance: {
"title": "Finans İşlemleri",
"description": "Gelir, gider, ödeme durumu ve proje/müşteri bağlantılarını takip et.",
"actions.add": "İşlem ekle",
"actions.ai": "AI Analizi",
},
journal: {
"title": "Günlük",
"description": "Mood, enerji ve çalışma notlarını takip edin.",
"actions.add": "Günlük ekle",
"fields.note": "Not",
},
chat: {
"title": "Sohbet",
"description": "İş verilerinle bağlamlı AI asistan görüşmeleri yap.",
"actions.new": "Yeni sohbet",
"errors.invalid": "Sohbet isteği geçersiz.",
},
settings: {
"title": "Ayarlar",
"language.title": "Diller ve çeviriler",
"language.default": "Varsayılan dil",
},
portal: {
"dashboard.title": "Müşteri Paneli",
"dashboard.activeProjects": "Aktif Projeler",
"dashboard.completed": "Tamamlanan",
"dashboard.averageProgress": "Ortalama İlerleme",
"dashboard.allProjects": "Tüm Projeleriniz",
"projects.title": "Projeleriniz",
"projects.empty": "Henüz size atanmış bir proje bulunmuyor.",
"tasks.title": "Yapılan Görevler",
"tasks.empty": "Henüz sizinle paylaşılan bir görev bulunmuyor.",
"revisions.title": "Revizyon Talepleri",
"revisions.mine": "Revizyon Taleplerim",
"revisions.empty": "Henüz bir revizyon talebinde bulunmadınız.",
"actions.requestRevision": "Revizyon Talep Et",
"actions.noRevisionQuota": "Revizyon Hakkı Bitti",
"actions.sendRequest": "Talebi Gönder",
"actions.cancel": "İptal",
"actions.newRequest": "Yeni Talep Oluştur",
"labels.delivery": "Teslim",
"labels.deadline": "Son Teslim",
"labels.progress": "İlerleme",
"labels.project": "Proje",
"labels.remainingQuota": "Kalan Hak",
"labels.unlimited": "Sınırsız",
"tabs.overview": "Genel Bakış",
"tabs.plan": "Plan & Aşamalar",
"tabs.revisions": "Revizyonlar",
"sections.progress": "İlerleme Durumu",
"sections.doneTasks": "Yapılan İşler",
"empty.tasks": "Listelenecek görev bulunmuyor.",
"empty.plan": "Henüz bir plan yüklenmemiş.",
"empty.revisions": "Henüz bir revizyon talebi oluşturmadınız.",
"revision.title": "Yeni Revizyon Talebi",
"revision.pendingWarning": "Şu anda sonuçlanmamış {count} adet revizyon talebiniz var. Yeni bir tane eklemek istediğinize emin misiniz?",
"revision.descriptionLabel": "Lütfen yapılmasını istediğiniz değişiklikleri detaylıca açıklayın",
"revision.descriptionPlaceholder": "Şu kısmın rengi mavi olabilir mi? Ayrıca metinleri güncelleyelim...",
"revision.success": "Revizyon talebiniz başarıyla iletildi.",
"revision.error": "Revizyon talebi oluşturulamadı.",
"status.project.active": "Aktif",
"status.project.completed": "Tamamlandı",
"status.project.waiting": "Beklemede",
"status.task.todo": "Bekliyor",
"status.task.inProgress": "İşleniyor",
"status.task.done": "Tamamlandı",
"status.revision.pending": "Bekliyor",
"status.revision.inProgress": "İşleniyor",
"status.revision.completed": "Tamamlandı",
"status.revision.rejected": "Reddedildi",
},
status: {
"project.active": "Aktif",
"project.completed": "Tamamlandı",
"task.todo": "Yapılacak",
"task.done": "Tamamlandı",
},
validation: {
"required": "Bu alan zorunludur.",
"invalidLocale": "Dil kodu geçersiz.",
"unsupportedLocale": "Bu dil desteklenmiyor.",
},
api: {
"errors.unauthenticated": "Geçerli bir oturum gerekli.",
"errors.forbidden": "Bu işlem için yetkiniz yok.",
},
} as const satisfies TranslationCatalog;