diff --git a/packages/app/src/context/language.tsx b/packages/app/src/context/language.tsx index 905305d3a..50cc302f4 100644 --- a/packages/app/src/context/language.tsx +++ b/packages/app/src/context/language.tsx @@ -19,6 +19,7 @@ import { dict as no } from "@/i18n/no" import { dict as br } from "@/i18n/br" import { dict as th } from "@/i18n/th" import { dict as bs } from "@/i18n/bs" +import { dict as tr } from "@/i18n/tr" import { dict as uiEn } from "@opencode-ai/ui/i18n/en" import { dict as uiZh } from "@opencode-ai/ui/i18n/zh" import { dict as uiZht } from "@opencode-ai/ui/i18n/zht" @@ -35,6 +36,7 @@ import { dict as uiNo } from "@opencode-ai/ui/i18n/no" import { dict as uiBr } from "@opencode-ai/ui/i18n/br" import { dict as uiTh } from "@opencode-ai/ui/i18n/th" import { dict as uiBs } from "@opencode-ai/ui/i18n/bs" +import { dict as uiTr } from "@opencode-ai/ui/i18n/tr" export type Locale = | "en" @@ -53,6 +55,7 @@ export type Locale = | "br" | "th" | "bs" + | "tr" type RawDictionary = typeof en & typeof uiEn type Dictionary = i18n.Flatten @@ -78,6 +81,7 @@ const LOCALES: readonly Locale[] = [ "no", "br", "th", + "tr", ] const LABEL_KEY: Record = { @@ -97,6 +101,7 @@ const LABEL_KEY: Record = { br: "language.br", th: "language.th", bs: "language.bs", + tr: "language.tr", } const base = i18n.flatten({ ...en, ...uiEn }) @@ -117,6 +122,7 @@ const DICT: Record = { br: { ...base, ...i18n.flatten({ ...br, ...uiBr }) }, th: { ...base, ...i18n.flatten({ ...th, ...uiTh }) }, bs: { ...base, ...i18n.flatten({ ...bs, ...uiBs }) }, + tr: { ...base, ...i18n.flatten({ ...tr, ...uiTr }) }, } const localeMatchers: Array<{ locale: Locale; match: (language: string) => boolean }> = [ @@ -138,6 +144,7 @@ const localeMatchers: Array<{ locale: Locale; match: (language: string) => boole { locale: "br", match: (language) => language.startsWith("pt") }, { locale: "th", match: (language) => language.startsWith("th") }, { locale: "bs", match: (language) => language.startsWith("bs") }, + { locale: "tr", match: (language) => language.startsWith("tr") }, ] type ParityKey = "command.session.previous.unseen" | "command.session.next.unseen" @@ -157,6 +164,7 @@ const PARITY_CHECK: Record, Record> = { br, th, bs, + tr, } void PARITY_CHECK diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index e13d407af..4b97bfb89 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -397,6 +397,7 @@ export const dict = { "language.br": "Português (Brasil)", "language.bs": "Bosanski", "language.th": "ไทย", + "language.tr": "Türkçe", "toast.language.title": "Language", "toast.language.description": "Switched to {{language}}", diff --git a/packages/app/src/i18n/parity.test.ts b/packages/app/src/i18n/parity.test.ts index a75dbd3a3..c06a55ab1 100644 --- a/packages/app/src/i18n/parity.test.ts +++ b/packages/app/src/i18n/parity.test.ts @@ -15,8 +15,9 @@ import { dict as ru } from "./ru" import { dict as th } from "./th" import { dict as zh } from "./zh" import { dict as zht } from "./zht" +import { dict as tr } from "./tr" -const locales = [ar, br, bs, da, de, es, fr, ja, ko, no, pl, ru, th, zh, zht] +const locales = [ar, br, bs, da, de, es, fr, ja, ko, no, pl, ru, th, tr, zh, zht] const keys = ["command.session.previous.unseen", "command.session.next.unseen"] as const describe("i18n parity", () => { diff --git a/packages/app/src/i18n/tr.ts b/packages/app/src/i18n/tr.ts new file mode 100644 index 000000000..164d2eb3b --- /dev/null +++ b/packages/app/src/i18n/tr.ts @@ -0,0 +1,831 @@ +import { dict as en } from "./en" + +type Keys = keyof typeof en + +export const dict = { + "command.category.suggested": "Önerilen", + "command.category.view": "Görünüm", + "command.category.project": "Proje", + "command.category.provider": "Sağlayıcı", + "command.category.server": "Sunucu", + "command.category.session": "Oturum", + "command.category.theme": "Tema", + "command.category.language": "Dil", + "command.category.file": "Dosya", + "command.category.context": "Bağlam", + "command.category.terminal": "Terminal", + "command.category.model": "Model", + "command.category.mcp": "MCP", + "command.category.agent": "Ajan", + "command.category.permissions": "İzinler", + "command.category.workspace": "Çalışma Alanı", + "command.category.settings": "Ayarlar", + + "theme.scheme.system": "Sistem", + "theme.scheme.light": "Açık", + "theme.scheme.dark": "Koyu", + + "command.sidebar.toggle": "Kenar çubuğunu aç/kapat", + "command.project.open": "Proje aç", + "command.provider.connect": "Sağlayıcı bağla", + "command.server.switch": "Sunucu değiştir", + "command.settings.open": "Ayarları aç", + "command.session.previous": "Önceki oturum", + "command.session.next": "Sonraki oturum", + "command.session.previous.unseen": "Önceki okunmamış oturum", + "command.session.next.unseen": "Sonraki okunmamış oturum", + "command.session.archive": "Oturumu arşivle", + + "command.palette": "Komut paleti", + + "command.theme.cycle": "Tema değiştir", + "command.theme.set": "Tema kullan: {{theme}}", + "command.theme.scheme.cycle": "Renk şemasını değiştir", + "command.theme.scheme.set": "Renk şeması kullan: {{scheme}}", + + "command.language.cycle": "Dil değiştir", + "command.language.set": "Dil kullan: {{language}}", + + "command.session.new": "Yeni oturum", + "command.file.open": "Dosya aç", + "command.tab.close": "Sekmeyi kapat", + "command.context.addSelection": "Seçimi bağlama ekle", + "command.context.addSelection.description": "Mevcut dosyadan seçili satırları ekle", + "command.input.focus": "Girişi odakla", + "command.terminal.toggle": "Terminali aç/kapat", + "command.fileTree.toggle": "Dosya ağacını aç/kapat", + "command.review.toggle": "İncelemeyi aç/kapat", + "command.terminal.new": "Yeni terminal", + "command.terminal.new.description": "Yeni bir terminal sekmesi oluştur", + "command.steps.toggle": "Adımları aç/kapat", + "command.steps.toggle.description": "Mevcut mesaj için adımları göster veya gizle", + "command.message.previous": "Önceki mesaj", + "command.message.previous.description": "Önceki kullanıcı mesajına git", + "command.message.next": "Sonraki mesaj", + "command.message.next.description": "Sonraki kullanıcı mesajına git", + "command.model.choose": "Model seç", + "command.model.choose.description": "Farklı bir model seç", + "command.mcp.toggle": "MCP'leri aç/kapat", + "command.mcp.toggle.description": "MCP'leri aç/kapat", + "command.agent.cycle": "Ajan değiştir", + "command.agent.cycle.description": "Sonraki ajana geç", + "command.agent.cycle.reverse": "Ajanı geri değiştir", + "command.agent.cycle.reverse.description": "Önceki ajana geç", + "command.model.variant.cycle": "Düşünme eforu değiştir", + "command.model.variant.cycle.description": "Sonraki efor seviyesine geç", + "command.prompt.mode.shell": "Kabuk", + "command.prompt.mode.normal": "Komut", + "command.permissions.autoaccept.enable": "Düzenlemeleri otomatik kabul et", + "command.permissions.autoaccept.disable": "Otomatik kabulü durdur", + "command.workspace.toggle": "Çalışma alanlarını aç/kapat", + "command.workspace.toggle.description": "Kenar çubuğunda birden fazla çalışma alanını göster veya gizle", + "command.session.undo": "Geri al", + "command.session.undo.description": "Son mesajı geri al", + "command.session.redo": "Yinele", + "command.session.redo.description": "Son geri alınan mesajı yinele", + "command.session.compact": "Oturumu sıkıştır", + "command.session.compact.description": "Bağlam boyutunu azaltmak için oturumu özetle", + "command.session.fork": "Mesajdan dallandır", + "command.session.fork.description": "Önceki bir mesajdan yeni oturum oluştur", + "command.session.share": "Oturumu paylaş", + "command.session.share.description": "Bu oturumu paylaş ve URL'yi panoya kopyala", + "command.session.unshare": "Paylaşımı kaldır", + "command.session.unshare.description": "Bu oturumun paylaşımını durdur", + + "palette.search.placeholder": "Dosya, komut ve oturum ara", + "palette.empty": "Sonuç bulunamadı", + "palette.group.commands": "Komutlar", + "palette.group.files": "Dosyalar", + + "dialog.provider.search.placeholder": "Sağlayıcı ara", + "dialog.provider.empty": "Sağlayıcı bulunamadı", + "dialog.provider.group.popular": "Popüler", + "dialog.provider.group.other": "Diğer", + "dialog.provider.tag.recommended": "Önerilen", + "dialog.provider.opencode.note": "Claude, GPT, Gemini ve daha fazlasını içeren seçilmiş modeller", + "dialog.provider.opencode.tagline": "Güvenilir optimize edilmiş modeller", + "dialog.provider.opencodeGo.tagline": "Herkes için düşük maliyetli abonelik", + "dialog.provider.anthropic.note": "Pro ve Max dahil Claude modellerine doğrudan erişim", + "dialog.provider.copilot.note": "GitHub Copilot üzerinden kodlama yardımı için yapay zekâ modelleri", + "dialog.provider.openai.note": "Hızlı ve yetenekli genel yapay zekâ görevleri için GPT modelleri", + "dialog.provider.google.note": "Hızlı ve yapılandırılmış yanıtlar için Gemini modelleri", + "dialog.provider.openrouter.note": "Tek bir sağlayıcıdan tüm desteklenen modellere eriş", + "dialog.provider.vercel.note": "Akıllı yönlendirme ile yapay zekâ modellerine birleşik erişim", + + "dialog.model.select.title": "Model seç", + "dialog.model.search.placeholder": "Model ara", + "dialog.model.empty": "Model sonucu yok", + "dialog.model.manage": "Modelleri yönet", + "dialog.model.manage.description": "Model seçicide hangi modellerin görüneceğini özelleştirin.", + "dialog.model.manage.provider.toggle": "Tüm {{provider}} modellerini aç/kapat", + + "dialog.model.unpaid.freeModels.title": "OpenCode tarafından sunulan ücretsiz modeller", + "dialog.model.unpaid.addMore.title": "Popüler sağlayıcılardan daha fazla model ekleyin", + + "dialog.provider.viewAll": "Daha fazla sağlayıcı göster", + + "provider.connect.title": "{{provider}} bağla", + "provider.connect.title.anthropicProMax": "Claude Pro/Max ile giriş yap", + "provider.connect.selectMethod": "{{provider}} için giriş yöntemini seçin.", + "provider.connect.method.apiKey": "API anahtarı", + "provider.connect.status.inProgress": "Yetkilendirme devam ediyor...", + "provider.connect.status.waiting": "Yetkilendirme bekleniyor...", + "provider.connect.status.failed": "Yetkilendirme başarısız: {{error}}", + "provider.connect.apiKey.description": + "{{provider}} hesabınızı bağlamak ve OpenCode'da {{provider}} modellerini kullanmak için {{provider}} API anahtarınızı girin.", + "provider.connect.apiKey.label": "{{provider}} API anahtarı", + "provider.connect.apiKey.placeholder": "API anahtarı", + "provider.connect.apiKey.required": "API anahtarı gerekli", + "provider.connect.opencodeZen.line1": + "OpenCode Zen, kodlama ajanları için seçilmiş güvenilir optimize edilmiş modellere erişim sağlar.", + "provider.connect.opencodeZen.line2": + "Tek bir API anahtarıyla Claude, GPT, Gemini, GLM ve daha fazlası gibi modellere erişebilirsiniz.", + "provider.connect.opencodeZen.visit.prefix": "", + "provider.connect.opencodeZen.visit.link": "opencode.ai/zen", + "provider.connect.opencodeZen.visit.suffix": " adresini ziyaret ederek API anahtarınızı alın.", + "provider.connect.oauth.code.visit.prefix": "Hesabınızı bağlamak ve OpenCode'da {{provider}} modellerini kullanmak için ", + "provider.connect.oauth.code.visit.link": "bu bağlantıya", + "provider.connect.oauth.code.visit.suffix": " tıklayarak yetkilendirme kodunuzu alın.", + "provider.connect.oauth.code.label": "{{method}} yetkilendirme kodu", + "provider.connect.oauth.code.placeholder": "Yetkilendirme kodu", + "provider.connect.oauth.code.required": "Yetkilendirme kodu gerekli", + "provider.connect.oauth.code.invalid": "Geçersiz yetkilendirme kodu", + "provider.connect.oauth.auto.visit.prefix": "", + "provider.connect.oauth.auto.visit.link": "Bu bağlantıya", + "provider.connect.oauth.auto.visit.suffix": + " tıklayarak aşağıdaki kodu girin ve hesabınızı bağlayarak OpenCode'da {{provider}} modellerini kullanın.", + "provider.connect.oauth.auto.confirmationCode": "Onay kodu", + "provider.connect.toast.connected.title": "{{provider}} bağlandı", + "provider.connect.toast.connected.description": "{{provider}} modelleri artık kullanımda.", + + "provider.custom.title": "Özel sağlayıcı", + "provider.custom.description.prefix": "OpenAI uyumlu bir sağlayıcı yapılandırın. ", + "provider.custom.description.link": "Sağlayıcı yapılandırma dökümanları", + "provider.custom.description.suffix": " sayfasına bakın.", + "provider.custom.field.providerID.label": "Sağlayıcı kimlik", + "provider.custom.field.providerID.placeholder": "saglayicim", + "provider.custom.field.providerID.description": "Küçük harfler, rakamlar, tire veya alt çizgi", + "provider.custom.field.name.label": "Görünen ad", + "provider.custom.field.name.placeholder": "Yapay Zekâ Sağlayıcım", + "provider.custom.field.baseURL.label": "Temel URL", + "provider.custom.field.baseURL.placeholder": "https://api.saglayicim.com/v1", + "provider.custom.field.apiKey.label": "API anahtarı", + "provider.custom.field.apiKey.placeholder": "API anahtarı", + "provider.custom.field.apiKey.description": "İsteğe bağlı. Kimlik doğrulamayı başlıklar ile yönetiyorsanız boş bırakın.", + "provider.custom.models.label": "Modeller", + "provider.custom.models.id.label": "Kimlik", + "provider.custom.models.id.placeholder": "model-kimlik", + "provider.custom.models.name.label": "Ad", + "provider.custom.models.name.placeholder": "Görünen Ad", + "provider.custom.models.remove": "Modeli kaldır", + "provider.custom.models.add": "Model ekle", + "provider.custom.headers.label": "Başlıklar (isteğe bağlı)", + "provider.custom.headers.key.label": "Başlık", + "provider.custom.headers.key.placeholder": "Başlık-Adı", + "provider.custom.headers.value.label": "Değer", + "provider.custom.headers.value.placeholder": "değer", + "provider.custom.headers.remove": "Başlığı kaldır", + "provider.custom.headers.add": "Başlık ekle", + "provider.custom.error.providerID.required": "Sağlayıcı kimlik gerekli", + "provider.custom.error.providerID.format": "Küçük harf, rakam, tire veya alt çizgi kullanın", + "provider.custom.error.providerID.exists": "Bu sağlayıcı kimlik zaten mevcut", + "provider.custom.error.name.required": "Görünen ad gerekli", + "provider.custom.error.baseURL.required": "Temel URL gerekli", + "provider.custom.error.baseURL.format": "http:// veya https:// ile başlamalı", + "provider.custom.error.required": "Gerekli", + "provider.custom.error.duplicate": "Tekrar", + + "provider.disconnect.toast.disconnected.title": "{{provider}} bağlantısı kesildi", + "provider.disconnect.toast.disconnected.description": "{{provider}} modelleri artık kullanılabilir değil.", + + "model.tag.free": "Ücretsiz", + "model.tag.latest": "En yeni", + "model.provider.anthropic": "Anthropic", + "model.provider.openai": "OpenAI", + "model.provider.google": "Google", + "model.provider.xai": "xAI", + "model.provider.meta": "Meta", + "model.input.text": "metin", + "model.input.image": "görsel", + "model.input.audio": "ses", + "model.input.video": "video", + "model.input.pdf": "pdf", + "model.tooltip.allows": "Kabul eder: {{inputs}}", + "model.tooltip.reasoning.allowed": "Akıl yürütme destekler", + "model.tooltip.reasoning.none": "Akıl yürütme yok", + "model.tooltip.context": "Bağlam limiti {{limit}}", + + "common.search.placeholder": "Ara", + "common.goBack": "Geri git", + "common.goForward": "İleri git", + "common.loading": "Yükleniyor", + "common.loading.ellipsis": "...", + "common.cancel": "İptal", + "common.connect": "Bağlan", + "common.disconnect": "Bağlantı Kes", + "common.submit": "Gönder", + "common.save": "Kaydet", + "common.saving": "Kaydediliyor...", + "common.default": "Varsayılan", + "common.attachment": "ek", + + "prompt.placeholder.shell": "Kabuk komutu girin...", + "prompt.placeholder.normal": 'Bir şeyler sorun... "{{example}}"', + "prompt.placeholder.simple": "Bir şeyler sorun...", + "prompt.placeholder.summarizeComments": "Yorumları özetle…", + "prompt.placeholder.summarizeComment": "Yorumu özetle…", + "prompt.mode.shell": "Kabuk", + "prompt.mode.normal": "Komut", + "prompt.mode.shell.exit": "çıkmak için esc", + + "prompt.example.1": "Kod tabanındaki bir TODO'yu düzelt", + "prompt.example.2": "Bu projenin teknoloji yığını nedir?", + "prompt.example.3": "Bozuk testleri düzelt", + "prompt.example.4": "Kimlik doğrulamanın nasıl çalıştığını açıkla", + "prompt.example.5": "Güvenlik açıkları bul ve düzelt", + "prompt.example.6": "Kullanıcı servisi için birim testleri ekle", + "prompt.example.7": "Bu fonksiyonu daha okunabilir hale getir", + "prompt.example.8": "Bu hata ne anlama geliyor?", + "prompt.example.9": "Bu sorunu ayıklamama yardım et", + "prompt.example.10": "API dokümantasyonu oluştur", + "prompt.example.11": "Veritabanı sorgularını optimize et", + "prompt.example.12": "Girdi doğrulama ekle", + "prompt.example.13": "İçin yeni bir bileşen oluştur...", + "prompt.example.14": "Bu projeyi nasıl dağıtabilirim?", + "prompt.example.15": "Kodumu en iyi uygulamalar için incele", + "prompt.example.16": "Bu fonksiyona hata yönetimi ekle", + "prompt.example.17": "Bu regex kalıbını açıkla", + "prompt.example.18": "Bunu TypeScript'e dönüştür", + "prompt.example.19": "Kod tabanı boyunca loglama ekle", + "prompt.example.20": "Hangi bağımlılıklar güncellenmemiş?", + "prompt.example.21": "Bir göç betiği yazmama yardım et", + "prompt.example.22": "Bu uç nokta için önbellekleme uygula", + "prompt.example.23": "Bu listeye sayfalama ekle", + "prompt.example.24": "İçin bir CLI komutu oluştur...", + "prompt.example.25": "Ortam değişkenleri burada nasıl çalışıyor?", + + "prompt.popover.emptyResults": "Eşleşen sonuç yok", + "prompt.popover.emptyCommands": "Eşleşen komut yok", + "prompt.dropzone.label": "Görsel veya PDF'leri buraya bırakın", + "prompt.dropzone.file.label": "@bahsetmek için dosyayı bırakın", + "prompt.slash.badge.custom": "özel", + "prompt.slash.badge.skill": "beceri", + "prompt.slash.badge.mcp": "mcp", + "prompt.context.active": "aktif", + "prompt.context.includeActiveFile": "Aktif dosyayı dahil et", + "prompt.context.removeActiveFile": "Aktif dosyayı bağlamdan çıkar", + "prompt.context.removeFile": "Dosyayı bağlamdan çıkar", + "prompt.action.attachFile": "Dosya ekle", + "prompt.attachment.remove": "Eki kaldır", + "prompt.action.send": "Gönder", + "prompt.action.stop": "Durdur", + + "prompt.toast.pasteUnsupported.title": "Desteklenmeyen yapıştırma", + "prompt.toast.pasteUnsupported.description": "Buraya sadece görsel veya PDF yapıştırılabilir.", + "prompt.toast.modelAgentRequired.title": "Bir ajan ve model seçin", + "prompt.toast.modelAgentRequired.description": "Komut göndermeden önce bir ajan ve model seçin.", + "prompt.toast.worktreeCreateFailed.title": "Çalışma ağacı oluşturulamadı", + "prompt.toast.sessionCreateFailed.title": "Oturum oluşturulamadı", + "prompt.toast.shellSendFailed.title": "Kabuk komutu gönderilemedi", + "prompt.toast.commandSendFailed.title": "Komut gönderilemedi", + "prompt.toast.promptSendFailed.title": "Komut gönderilemedi", + "prompt.toast.promptSendFailed.description": "Oturum alınamadı", + + "dialog.mcp.title": "MCP'ler", + "dialog.mcp.description": "{{total}} içerisinden {{enabled}} etkin", + "dialog.mcp.empty": "Yapılandırılmış MCP yok", + + "dialog.lsp.empty": "LSP'ler dosya türlerinden otomatik algılanır", + "dialog.plugins.empty": "Eklentiler opencode.json içinde yapılandırılır", + + "mcp.status.connected": "bağlı", + "mcp.status.failed": "başarısız", + "mcp.status.needs_auth": "kimlik doğrulama gerekli", + "mcp.status.disabled": "devre dışı", + + "dialog.fork.empty": "Dallandırılacak mesaj yok", + + "dialog.directory.search.placeholder": "Klasör ara", + "dialog.directory.empty": "Klasör bulunamadı", + + "dialog.server.title": "Sunucular", + "dialog.server.description": "Bu uygulamanın hangi OpenCode sunucusuna bağlanacağını değiştirin.", + "dialog.server.search.placeholder": "Sunucu ara", + "dialog.server.empty": "Henüz sunucu yok", + "dialog.server.add.title": "Sunucu ekle", + "dialog.server.add.url": "Sunucu URL'si", + "dialog.server.add.placeholder": "http://localhost:4096", + "dialog.server.add.error": "Sunucuya bağlanılamadı", + "dialog.server.add.checking": "Kontrol ediliyor...", + "dialog.server.add.button": "Sunucu ekle", + "dialog.server.default.title": "Varsayılan sunucu", + "dialog.server.default.description": + "Uygulama başlatıldığında yerel sunucu başlatmak yerine bu sunucuya bağlan. Yeniden başlatma gerektirir.", + "dialog.server.default.none": "Sunucu seçilmedi", + "dialog.server.default.set": "Mevcut sunucuyu varsayılan olarak ayarla", + "dialog.server.default.clear": "Temizle", + "dialog.server.action.remove": "Sunucuyu kaldır", + + "dialog.server.menu.edit": "Düzenle", + "dialog.server.menu.default": "Varsayılan olarak ayarla", + "dialog.server.menu.defaultRemove": "Varsayılanı kaldır", + "dialog.server.menu.delete": "Sil", + "dialog.server.current": "Mevcut Sunucu", + "dialog.server.status.default": "Varsayılan", + + "dialog.project.edit.title": "Projeyi düzenle", + "dialog.project.edit.name": "Ad", + "dialog.project.edit.icon": "Simge", + "dialog.project.edit.icon.alt": "Proje simgesi", + "dialog.project.edit.icon.hint": "Tıkla veya bir görsel sürükle", + "dialog.project.edit.icon.recommended": "Önerilen: 128x128px", + "dialog.project.edit.color": "Renk", + "dialog.project.edit.color.select": "{{color}} rengini seç", + "dialog.project.edit.worktree.startup": "Çalışma alanı başlatma betiği", + "dialog.project.edit.worktree.startup.description": "Yeni bir çalışma alanı (worktree) oluşturduktan sonra çalışır.", + "dialog.project.edit.worktree.startup.placeholder": "örneğin bun install", + + "context.breakdown.title": "Bağlam Dökümü", + "context.breakdown.note": 'Girdi tokenlerinin yaklaşık dökümü. "Diğer" araç tanımları ve ek yükleri içerir.', + "context.breakdown.system": "Sistem", + "context.breakdown.user": "Kullanıcı", + "context.breakdown.assistant": "Asistan", + "context.breakdown.tool": "Araç Çağrıları", + "context.breakdown.other": "Diğer", + + "context.systemPrompt.title": "Sistem Komutu", + "context.rawMessages.title": "Ham mesajlar", + + "context.stats.session": "Oturum", + "context.stats.messages": "Mesajlar", + "context.stats.provider": "Sağlayıcı", + "context.stats.model": "Model", + "context.stats.limit": "Bağlam Limiti", + "context.stats.totalTokens": "Toplam Token", + "context.stats.usage": "Kullanım", + "context.stats.inputTokens": "Girdi Tokenleri", + "context.stats.outputTokens": "Çıktı Tokenleri", + "context.stats.reasoningTokens": "Akıl Yürütme Tokenleri", + "context.stats.cacheTokens": "Önbellek Tokenleri (okuma/yazma)", + "context.stats.userMessages": "Kullanıcı Mesajları", + "context.stats.assistantMessages": "Asistan Mesajları", + "context.stats.totalCost": "Toplam Maliyet", + "context.stats.sessionCreated": "Oturum Oluşturulma", + "context.stats.lastActivity": "Son Etkinlik", + + "context.usage.tokens": "Tokenler", + "context.usage.usage": "Kullanım", + "context.usage.cost": "Maliyet", + "context.usage.clickToView": "Bağlamı görüntüle", + "context.usage.view": "Bağlam kullanımını görüntüle", + + "language.en": "English", + "language.zh": "简体中文", + "language.zht": "繁體中文", + "language.ko": "한국어", + "language.de": "Deutsch", + "language.es": "Español", + "language.fr": "Français", + "language.da": "Dansk", + "language.ja": "日本語", + "language.pl": "Polski", + "language.ru": "Русский", + "language.ar": "العربية", + "language.no": "Norsk", + "language.br": "Português (Brasil)", + "language.bs": "Bosanski", + "language.th": "ไทย", + "language.tr": "Türkçe", + + "toast.language.title": "Dil", + "toast.language.description": "{{language}} diline geçildi", + + "toast.theme.title": "Tema değiştirildi", + "toast.scheme.title": "Renk şeması", + + "toast.workspace.enabled.title": "Çalışma alanları etkinleştirildi", + "toast.workspace.enabled.description": "Kenar çubuğunda birden fazla çalışma ağacı gösterilecek", + "toast.workspace.disabled.title": "Çalışma alanları devre dışı bırakıldı", + "toast.workspace.disabled.description": "Kenar çubuğunda yalnızca ana çalışma ağacı gösterilecek", + + "toast.permissions.autoaccept.on.title": "Düzenlemeler otomatik kabul ediliyor", + "toast.permissions.autoaccept.on.description": "Düzenleme ve yazma izinleri otomatik olarak onaylanacak", + "toast.permissions.autoaccept.off.title": "Otomatik kabul durduruldu", + "toast.permissions.autoaccept.off.description": "Düzenleme ve yazma izinleri onay gerektirecek", + + "toast.model.none.title": "Model seçilmedi", + "toast.model.none.description": "Bu oturumu özetlemek için bir sağlayıcı bağlayın", + + "toast.file.loadFailed.title": "Dosya yüklenemedi", + "toast.file.listFailed.title": "Dosyalar listelenemedi", + + "toast.context.noLineSelection.title": "Satır seçimi yok", + "toast.context.noLineSelection.description": "Önce bir dosya sekmesinde satır aralığı seçin.", + + "toast.session.share.copyFailed.title": "URL panoya kopyalanamadı", + "toast.session.share.success.title": "Oturum paylaşıldı", + "toast.session.share.success.description": "Paylaşım URL'si panoya kopyalandı!", + "toast.session.share.failed.title": "Oturum paylaşılamadı", + "toast.session.share.failed.description": "Oturum paylaşılırken bir hata oluştu", + + "toast.session.unshare.success.title": "Oturum paylaşımı kaldırıldı", + "toast.session.unshare.success.description": "Oturum paylaşımı başarıyla kaldırıldı!", + "toast.session.unshare.failed.title": "Oturum paylaşımı kaldırılamadı", + "toast.session.unshare.failed.description": "Oturum paylaşımı kaldırılırken bir hata oluştu", + + "toast.session.listFailed.title": "{{project}} için oturumlar yüklenemedi", + + "toast.update.title": "Güncelleme mevcut", + "toast.update.description": "OpenCode'un yeni bir sürümü ({{version}}) yüklemeye hazır.", + "toast.update.action.installRestart": "Yükle ve yeniden başlat", + "toast.update.action.notYet": "Şimdi değil", + + "error.page.title": "Bir şeyler yanlış gitti", + "error.page.description": "Uygulama yüklenirken bir hata oluştu.", + "error.page.details.label": "Hata Detayları", + "error.page.action.restart": "Yeniden Başlat", + "error.page.action.checking": "Kontrol ediliyor...", + "error.page.action.checkUpdates": "Güncellemeleri kontrol et", + "error.page.action.updateTo": "{{version}} sürümüne güncelle", + "error.page.report.prefix": "Lütfen bu hatayı OpenCode ekibine bildirin", + "error.page.report.discord": "Discord üzerinden", + "error.page.version": "Sürüm: {{version}}", + + "error.dev.rootNotFound": + "Kök eleman bulunamadı. index.html dosyanıza eklemeyi unuttunuz mu? Ya da id özelliği yanlış mı yazıldı?", + + "error.globalSync.connectFailed": "Sunucuya bağlanılamadı. `{{url}}` adresinde çalışan bir sunucu var mı?", + "directory.error.invalidUrl": "URL'de geçersiz dizin.", + + "error.chain.unknown": "Bilinmeyen hata", + "error.chain.causedBy": "Nedeni:", + "error.chain.apiError": "API hatası", + "error.chain.status": "Durum: {{status}}", + "error.chain.retryable": "Yeniden denenebilir: {{retryable}}", + "error.chain.responseBody": "Yanıt gövdesi:\n{{body}}", + "error.chain.didYouMean": "Bunu mu demek istediniz: {{suggestions}}", + "error.chain.modelNotFound": "Model bulunamadı: {{provider}}/{{model}}", + "error.chain.checkConfig": "Yapılandırma dosyanızı (opencode.json) sağlayıcı/model adlarını kontrol edin", + "error.chain.mcpFailed": 'MCP sunucusu "{{name}}" başarısız oldu. Not: OpenCode henüz MCP kimlik doğrulamasını desteklemiyor.', + "error.chain.providerAuthFailed": "Sağlayıcı kimlik doğrulaması başarısız ({{provider}}): {{message}}", + "error.chain.providerInitFailed": + '"{{provider}}" sağlayıcısı başlatılamadı. Kimlik bilgilerini ve yapılandırmayı kontrol edin.', + "error.chain.configJsonInvalid": "{{path}} adresindeki yapılandırma dosyası geçerli JSON(C) değil", + "error.chain.configJsonInvalidWithMessage": "{{path}} adresindeki yapılandırma dosyası geçerli JSON(C) değil: {{message}}", + "error.chain.configDirectoryTypo": + '"{{dir}}" dizini {{path}} içinde geçerli değil. Dizini "{{suggestion}}" olarak yeniden adlandırın veya kaldırın. Bu yaygın bir yazım hatasıdır.', + "error.chain.configFrontmatterError": "{{path}} içindeki ön bilgi ayrıştırılamadı:\n{{message}}", + "error.chain.configInvalid": "{{path}} adresindeki yapılandırma dosyası geçersiz", + "error.chain.configInvalidWithMessage": "{{path}} adresindeki yapılandırma dosyası geçersiz: {{message}}", + + "notification.permission.title": "İzin gerekli", + "notification.permission.description": "{{projectName}} içindeki {{sessionTitle}} izin gerektiriyor", + "notification.question.title": "Soru", + "notification.question.description": "{{projectName}} içindeki {{sessionTitle}} bir soru soruyor", + "notification.action.goToSession": "Oturuma git", + + "notification.session.responseReady.title": "Yanıt hazır", + "notification.session.error.title": "Oturum hatası", + "notification.session.error.fallbackDescription": "Bir hata oluştu", + + "home.recentProjects": "Son projeler", + "home.empty.title": "Son proje yok", + "home.empty.description": "Yerel bir proje açarak başlayın", + + "session.tab.session": "Oturum", + "session.tab.review": "İnceleme", + "session.tab.context": "Bağlam", + "session.panel.reviewAndFiles": "İnceleme ve dosyalar", + "session.review.filesChanged": "{{count}} Dosya Değişti", + "session.review.change.one": "Değişiklik", + "session.review.change.other": "Değişiklik", + "session.review.loadingChanges": "Değişiklikler yükleniyor...", + "session.review.empty": "Bu oturumda henüz değişiklik yok", + "session.review.noVcs": "Git VCS algılanamadı, oturum değişiklikleri tespit edilemeyecek", + "session.review.noChanges": "Değişiklik yok", + + "session.files.selectToOpen": "Açmak için bir dosya seçin", + "session.files.all": "Tüm dosyalar", + "session.files.binaryContent": "İkili dosya (içerik görüntülenemiyor)", + + "session.messages.renderEarlier": "Önceki mesajları göster", + "session.messages.loadingEarlier": "Önceki mesajlar yükleniyor...", + "session.messages.loadEarlier": "Önceki mesajları yükle", + "session.messages.loading": "Mesajlar yükleniyor...", + "session.messages.jumpToLatest": "En sona atla", + + "session.context.addToContext": "{{selection}} bağlama ekle", + "session.todo.title": "Görevler", + "session.todo.collapse": "Daralt", + "session.todo.expand": "Genişlet", + + "session.new.worktree.main": "Ana dal", + "session.new.worktree.mainWithBranch": "Ana dal ({{branch}})", + "session.new.worktree.create": "Yeni çalışma ağacı oluştur", + "session.new.lastModified": "Son değişiklik", + + "session.header.search.placeholder": "{{project}} ara", + "session.header.searchFiles": "Dosya ara", + "session.header.openIn": "Aç", + "session.header.open.action": "{{app}} ile aç", + "session.header.open.ariaLabel": "{{app}} ile aç", + "session.header.open.menu": "Açma seçenekleri", + "session.header.open.copyPath": "Yolu kopyala", + + "status.popover.trigger": "Durum", + "status.popover.ariaLabel": "Sunucu yapılandırmaları", + "status.popover.tab.servers": "Sunucular", + "status.popover.tab.mcp": "MCP", + "status.popover.tab.lsp": "LSP", + "status.popover.tab.plugins": "Eklentiler", + "status.popover.action.manageServers": "Sunucuları yönet", + + "session.share.popover.title": "Web'de yayınla", + "session.share.popover.description.shared": + "Bu oturum web'de herkese açıktır. Bağlantıya sahip herkes erişebilir.", + "session.share.popover.description.unshared": + "Oturumu web'de herkese açık olarak paylaşın. Bağlantıya sahip herkes erişebilecek.", + "session.share.action.share": "Paylaş", + "session.share.action.publish": "Yayınla", + "session.share.action.publishing": "Yayınlanıyor...", + "session.share.action.unpublish": "Yayından kaldır", + "session.share.action.unpublishing": "Yayından kaldırılıyor...", + "session.share.action.view": "Görüntüle", + "session.share.copy.copied": "Kopyalandı", + "session.share.copy.copyLink": "Bağlantı kopyala", + + "lsp.tooltip.none": "LSP sunucusu yok", + "lsp.label.connected": "{{count}} LSP", + + "prompt.loading": "Komut yükleniyor...", + "terminal.loading": "Terminal yükleniyor...", + "terminal.title": "Terminal", + "terminal.title.numbered": "Terminal {{number}}", + "terminal.close": "Terminali kapat", + "terminal.connectionLost.title": "Bağlantı Kesildi", + "terminal.connectionLost.description": + "Terminal bağlantısı kesildi. Bu durum sunucu yeniden başladığında oluşabilir.", + + "common.closeTab": "Sekmeyi kapat", + "common.dismiss": "Kapat", + "common.requestFailed": "İstek başarısız", + "common.moreOptions": "Daha fazla seçenek", + "common.learnMore": "Daha fazla bilgi", + "common.rename": "Yeniden adlandır", + "common.reset": "Sıfırla", + "common.archive": "Arşivle", + "common.delete": "Sil", + "common.close": "Kapat", + "common.edit": "Düzenle", + "common.loadMore": "Daha fazla yükle", + "common.key.esc": "ESC", + + "sidebar.menu.toggle": "Menüyü aç/kapat", + "sidebar.nav.projectsAndSessions": "Projeler ve oturumlar", + "sidebar.settings": "Ayarlar", + "sidebar.help": "Yardım", + "sidebar.workspaces.enable": "Çalışma alanlarını etkinleştir", + "sidebar.workspaces.disable": "Çalışma alanlarını devre dışı bırak", + "sidebar.gettingStarted.title": "Başlarken", + "sidebar.gettingStarted.line1": "OpenCode ücretsiz modeller içerir, böylece hemen başlayabilirsiniz.", + "sidebar.gettingStarted.line2": "Claude, GPT, Gemini vb. modelleri kullanmak için herhangi bir sağlayıcı bağlayın.", + "sidebar.project.recentSessions": "Son oturumlar", + "sidebar.project.viewAllSessions": "Tüm oturumları görüntüle", + "sidebar.project.clearNotifications": "Bildirimleri temizle", + + "app.name.desktop": "OpenCode Masaüstü", + + "settings.section.desktop": "Masaüstü", + "settings.section.server": "Sunucu", + "settings.tab.general": "Genel", + "settings.tab.shortcuts": "Kısayollar", + "settings.desktop.section.wsl": "WSL", + "settings.desktop.wsl.title": "WSL entegrasyonu", + "settings.desktop.wsl.description": "OpenCode sunucusunu Windows'ta WSL içinde çalıştırın.", + + "settings.general.section.appearance": "Görünüm", + "settings.general.section.notifications": "Sistem bildirimleri", + "settings.general.section.updates": "Güncellemeler", + "settings.general.section.sounds": "Ses efektleri", + "settings.general.section.feed": "Akış", + "settings.general.section.display": "Ekran", + + "settings.general.row.language.title": "Dil", + "settings.general.row.language.description": "OpenCode'un görünüm dilini değiştirin", + "settings.general.row.appearance.title": "Görünüm", + "settings.general.row.appearance.description": "OpenCode'un cihazınızdaki görünümünü özelleştirin", + "settings.general.row.theme.title": "Tema", + "settings.general.row.theme.description": "OpenCode'un temasını özelleştirin.", + "settings.general.row.font.title": "Yazı Tipi", + "settings.general.row.font.description": "Kod bloklarında kullanılan monospace yazı tipini özelleştirin", + "settings.general.row.reasoningSummaries.title": "Akıl yürütme özetlerini göster", + "settings.general.row.reasoningSummaries.description": "Zaman çizelgesinde model akıl yürütme özetlerini görüntüle", + "settings.general.row.shellToolPartsExpanded.title": "Kabuk araç bileşenlerini genişlet", + "settings.general.row.shellToolPartsExpanded.description": + "Zaman çizelgesinde kabuk araç bileşenlerini varsayılan olarak genişletilmiş göster", + "settings.general.row.editToolPartsExpanded.title": "Düzenleme araç bileşenlerini genişlet", + "settings.general.row.editToolPartsExpanded.description": + "Zaman çizelgesinde düzenleme, yazma ve yama araç bileşenlerini varsayılan olarak genişletilmiş göster", + + "settings.general.row.wayland.title": "Yerel Wayland kullan", + "settings.general.row.wayland.description": "Wayland'da X11 geri dönüşünü devre dışı bırak. Yeniden başlatma gerektirir.", + "settings.general.row.wayland.tooltip": + "Karışık yenileme hızlı monitörlere sahip Linux'ta yerel Wayland daha kararlı olabilir.", + + "settings.general.row.releaseNotes.title": "Sürüm notları", + "settings.general.row.releaseNotes.description": "Güncellemelerden sonra Yenilikler bildirimlerini göster", + + "settings.updates.row.startup.title": "Başlangıçta güncellemeleri kontrol et", + "settings.updates.row.startup.description": "OpenCode başladığında otomatik güncelleme kontrolü yap", + "settings.updates.row.check.title": "Güncellemeleri kontrol et", + "settings.updates.row.check.description": "Elle güncelleme kontrolü yap ve varsa yükle", + "settings.updates.action.checkNow": "Şimdi kontrol et", + "settings.updates.action.checking": "Kontrol ediliyor...", + "settings.updates.toast.latest.title": "Güncelsiniz", + "settings.updates.toast.latest.description": "OpenCode'un en son sürümünü kullanıyorsunuz.", + + "font.option.ibmPlexMono": "IBM Plex Mono", + "font.option.cascadiaCode": "Cascadia Code", + "font.option.firaCode": "Fira Code", + "font.option.hack": "Hack", + "font.option.inconsolata": "Inconsolata", + "font.option.intelOneMono": "Intel One Mono", + "font.option.iosevka": "Iosevka", + "font.option.jetbrainsMono": "JetBrains Mono", + "font.option.mesloLgs": "Meslo LGS", + "font.option.robotoMono": "Roboto Mono", + "font.option.sourceCodePro": "Source Code Pro", + "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", + + "sound.option.none": "Yok", + "sound.option.alert01": "Uyarı 01", + "sound.option.alert02": "Uyarı 02", + "sound.option.alert03": "Uyarı 03", + "sound.option.alert04": "Uyarı 04", + "sound.option.alert05": "Uyarı 05", + "sound.option.alert06": "Uyarı 06", + "sound.option.alert07": "Uyarı 07", + "sound.option.alert08": "Uyarı 08", + "sound.option.alert09": "Uyarı 09", + "sound.option.alert10": "Uyarı 10", + "sound.option.bipbop01": "Bip-bop 01", + "sound.option.bipbop02": "Bip-bop 02", + "sound.option.bipbop03": "Bip-bop 03", + "sound.option.bipbop04": "Bip-bop 04", + "sound.option.bipbop05": "Bip-bop 05", + "sound.option.bipbop06": "Bip-bop 06", + "sound.option.bipbop07": "Bip-bop 07", + "sound.option.bipbop08": "Bip-bop 08", + "sound.option.bipbop09": "Bip-bop 09", + "sound.option.bipbop10": "Bip-bop 10", + "sound.option.staplebops01": "Staplebops 01", + "sound.option.staplebops02": "Staplebops 02", + "sound.option.staplebops03": "Staplebops 03", + "sound.option.staplebops04": "Staplebops 04", + "sound.option.staplebops05": "Staplebops 05", + "sound.option.staplebops06": "Staplebops 06", + "sound.option.staplebops07": "Staplebops 07", + "sound.option.nope01": "Hayır 01", + "sound.option.nope02": "Hayır 02", + "sound.option.nope03": "Hayır 03", + "sound.option.nope04": "Hayır 04", + "sound.option.nope05": "Hayır 05", + "sound.option.nope06": "Hayır 06", + "sound.option.nope07": "Hayır 07", + "sound.option.nope08": "Hayır 08", + "sound.option.nope09": "Hayır 09", + "sound.option.nope10": "Hayır 10", + "sound.option.nope11": "Hayır 11", + "sound.option.nope12": "Hayır 12", + "sound.option.yup01": "Evet 01", + "sound.option.yup02": "Evet 02", + "sound.option.yup03": "Evet 03", + "sound.option.yup04": "Evet 04", + "sound.option.yup05": "Evet 05", + "sound.option.yup06": "Evet 06", + + "settings.general.notifications.agent.title": "Ajan", + "settings.general.notifications.agent.description": + "Ajan tamamlandığında veya dikkat gerektirdiğinde sistem bildirimi göster", + "settings.general.notifications.permissions.title": "İzinler", + "settings.general.notifications.permissions.description": "İzin gerektiğinde sistem bildirimi göster", + "settings.general.notifications.errors.title": "Hatalar", + "settings.general.notifications.errors.description": "Hata oluştuğunda sistem bildirimi göster", + + "settings.general.sounds.agent.title": "Ajan", + "settings.general.sounds.agent.description": "Ajan tamamlandığında veya dikkat gerektirdiğinde ses çal", + "settings.general.sounds.permissions.title": "İzinler", + "settings.general.sounds.permissions.description": "İzin gerektiğinde ses çal", + "settings.general.sounds.errors.title": "Hatalar", + "settings.general.sounds.errors.description": "Hata oluştuğunda ses çal", + + "settings.shortcuts.title": "Klavye kısayolları", + "settings.shortcuts.reset.button": "Varsayılanlara sıfırla", + "settings.shortcuts.reset.toast.title": "Kısayollar sıfırlandı", + "settings.shortcuts.reset.toast.description": "Klavye kısayolları varsayılanlara sıfırlandı.", + "settings.shortcuts.conflict.title": "Kısayol zaten kullanılıyor", + "settings.shortcuts.conflict.description": "{{keybind}} zaten {{titles}} için atanmış.", + "settings.shortcuts.unassigned": "Atanmamış", + "settings.shortcuts.pressKeys": "Tuşlara basın", + "settings.shortcuts.search.placeholder": "Kısayol ara", + "settings.shortcuts.search.empty": "Kısayol bulunamadı", + + "settings.shortcuts.group.general": "Genel", + "settings.shortcuts.group.session": "Oturum", + "settings.shortcuts.group.navigation": "Gezinme", + "settings.shortcuts.group.modelAndAgent": "Model ve ajan", + "settings.shortcuts.group.terminal": "Terminal", + "settings.shortcuts.group.prompt": "Komut", + + "settings.providers.title": "Sağlayıcılar", + "settings.providers.description": "Sağlayıcı ayarları burada yapılandırılabilecek.", + "settings.providers.section.connected": "Bağlı sağlayıcılar", + "settings.providers.connected.empty": "Bağlı sağlayıcı yok", + "settings.providers.section.popular": "Popüler sağlayıcılar", + "settings.providers.tag.environment": "Ortam", + "settings.providers.tag.config": "Yapılandırma", + "settings.providers.tag.custom": "Özel", + "settings.providers.tag.other": "Diğer", + "settings.models.title": "Modeller", + "settings.models.description": "Model ayarları burada yapılandırılabilecek.", + "settings.agents.title": "Ajanlar", + "settings.agents.description": "Ajan ayarları burada yapılandırılabilecek.", + "settings.commands.title": "Komutlar", + "settings.commands.description": "Komut ayarları burada yapılandırılabilecek.", + "settings.mcp.title": "MCP", + "settings.mcp.description": "MCP ayarları burada yapılandırılabilecek.", + + "settings.permissions.title": "İzinler", + "settings.permissions.description": "Sunucunun varsayılan olarak hangi araçları kullanabileceğini kontrol edin.", + "settings.permissions.section.tools": "Araçlar", + "settings.permissions.toast.updateFailed.title": "İzinler güncellenemedi", + + "settings.permissions.action.allow": "İzin Ver", + "settings.permissions.action.ask": "Sor", + "settings.permissions.action.deny": "Reddet", + + "settings.permissions.tool.read.title": "Oku", + "settings.permissions.tool.read.description": "Bir dosyayı okuma (dosya yoluyla eşleşir)", + "settings.permissions.tool.edit.title": "Düzenle", + "settings.permissions.tool.edit.description": "Düzenleme, yazma, yama ve çoklu düzenleme dahil dosyaları değiştir", + "settings.permissions.tool.glob.title": "Glob", + "settings.permissions.tool.glob.description": "Glob kalıpları kullanarak dosyaları eşle", + "settings.permissions.tool.grep.title": "Grep", + "settings.permissions.tool.grep.description": "Düzenli ifadeler kullanarak dosya içerikleri ara", + "settings.permissions.tool.list.title": "Listele", + "settings.permissions.tool.list.description": "Bir dizindeki dosyaları listele", + "settings.permissions.tool.bash.title": "Bash", + "settings.permissions.tool.bash.description": "Kabuk komutları çalıştır", + "settings.permissions.tool.task.title": "Görev", + "settings.permissions.tool.task.description": "Alt ajanlar başlat", + "settings.permissions.tool.skill.title": "Beceri", + "settings.permissions.tool.skill.description": "Ada göre bir beceri yükle", + "settings.permissions.tool.lsp.title": "LSP", + "settings.permissions.tool.lsp.description": "Dil sunucusu sorguları çalıştır", + "settings.permissions.tool.todoread.title": "Görev Oku", + "settings.permissions.tool.todoread.description": "Görev listesini oku", + "settings.permissions.tool.todowrite.title": "Görev Yaz", + "settings.permissions.tool.todowrite.description": "Görev listesini güncelle", + "settings.permissions.tool.webfetch.title": "Web Getir", + "settings.permissions.tool.webfetch.description": "Bir URL'den içerik getir", + "settings.permissions.tool.websearch.title": "Web Ara", + "settings.permissions.tool.websearch.description": "Web'de ara", + "settings.permissions.tool.codesearch.title": "Kod Ara", + "settings.permissions.tool.codesearch.description": "Web'de kod ara", + "settings.permissions.tool.external_directory.title": "Harici Dizin", + "settings.permissions.tool.external_directory.description": "Proje dizini dışındaki dosyalara eriş", + "settings.permissions.tool.doom_loop.title": "Sonsuz Döngü", + "settings.permissions.tool.doom_loop.description": "Aynı girdiyle tekrarlanan araç çağrılarını algıla", + + "session.delete.failed.title": "Oturum silinemedi", + "session.delete.title": "Oturumu sil", + "session.delete.confirm": '"{{name}}" oturumu silinsin mi?', + "session.delete.button": "Oturumu sil", + + "workspace.new": "Yeni çalışma alanı", + "workspace.type.local": "yerel", + "workspace.type.sandbox": "sandbox", + "workspace.create.failed.title": "Çalışma alanı oluşturulamadı", + "workspace.delete.failed.title": "Çalışma alanı silinemedi", + "workspace.resetting.title": "Çalışma alanı sıfırlanıyor", + "workspace.resetting.description": "Bu bir dakika sürebilir.", + "workspace.reset.failed.title": "Çalışma alanı sıfırlanamadı", + "workspace.reset.success.title": "Çalışma alanı sıfırlandı", + "workspace.reset.success.description": "Çalışma alanı artık varsayılan dalla eşleşiyor.", + "workspace.error.stillPreparing": "Çalışma alanı hâlâ hazırlanıyor", + "workspace.status.checking": "Birleşmemiş değişiklikler kontrol ediliyor...", + "workspace.status.error": "Git durumu doğrulanamadı.", + "workspace.status.clean": "Birleşmemiş değişiklik algılanmadı.", + "workspace.status.dirty": "Bu çalışma alanında birleşmemiş değişiklikler algılandı.", + "workspace.delete.title": "Çalışma alanını sil", + "workspace.delete.confirm": '"{{name}}" çalışma alanı silinsin mi?', + "workspace.delete.button": "Çalışma alanını sil", + "workspace.reset.title": "Çalışma alanını sıfırla", + "workspace.reset.confirm": '"{{name}}" çalışma alanı sıfırlansın mı?', + "workspace.reset.button": "Çalışma alanını sıfırla", + "workspace.reset.archived.none": "Arşivlenecek aktif oturum yok.", + "workspace.reset.archived.one": "1 oturum arşivlenecek.", + "workspace.reset.archived.many": "{{count}} oturum arşivlenecek.", + "workspace.reset.note": "Bu işlem çalışma alanını varsayılan dalla eşleşecek şekilde sıfırlayacak.", +} satisfies Partial> diff --git a/packages/ui/src/i18n/tr.ts b/packages/ui/src/i18n/tr.ts new file mode 100644 index 000000000..15db281cd --- /dev/null +++ b/packages/ui/src/i18n/tr.ts @@ -0,0 +1,123 @@ +import { dict as en } from "./en" + +type Keys = keyof typeof en + +export const dict = { + "ui.sessionReview.title": "Oturum değişiklikleri", + "ui.sessionReview.title.lastTurn": "Son tur değişiklikleri", + "ui.sessionReview.diffStyle.unified": "Birleşik", + "ui.sessionReview.diffStyle.split": "Bölünmüş", + "ui.sessionReview.expandAll": "Tümünü genişlet", + "ui.sessionReview.collapseAll": "Tümünü daralt", + + "ui.sessionReview.change.added": "Eklendi", + "ui.sessionReview.change.removed": "Kaldırıldı", + "ui.sessionReview.change.modified": "Değiştirildi", + "ui.sessionReview.image.loading": "Yükleniyor...", + "ui.sessionReview.image.placeholder": "Görsel", + "ui.sessionReview.largeDiff.title": "Fark gösterimi için çok büyük", + "ui.sessionReview.largeDiff.meta": "Limit: {{limit}} değişen satır. Mevcut: {{current}} değişen satır.", + "ui.sessionReview.largeDiff.renderAnyway": "Yine de göster", + + "ui.lineComment.label.prefix": "Yorum: ", + "ui.lineComment.label.suffix": "", + "ui.lineComment.editorLabel.prefix": "Yorum yapılıyor: ", + "ui.lineComment.editorLabel.suffix": "", + "ui.lineComment.placeholder": "Yorum ekle", + "ui.lineComment.submit": "Yorum yap", + + "ui.sessionTurn.steps.show": "Adımları göster", + "ui.sessionTurn.steps.hide": "Adımları gizle", + "ui.sessionTurn.summary.response": "Yanıt", + "ui.sessionTurn.diff.showMore": "Daha fazla değişiklik göster ({{count}})", + + "ui.sessionTurn.retry.retrying": "yeniden deneniyor", + "ui.sessionTurn.retry.inSeconds": "{{seconds}}sn içinde", + "ui.sessionTurn.error.freeUsageExceeded": "Ücretsiz kullanım aşıldı", + "ui.sessionTurn.error.addCredits": "Kredi ekle", + + "ui.sessionTurn.status.delegating": "Görev devrediliyor", + "ui.sessionTurn.status.planning": "Sonraki adımlar planlanıyor", + "ui.sessionTurn.status.gatheringContext": "Keşfediliyor", + "ui.sessionTurn.status.gatheredContext": "Keşfedildi", + "ui.sessionTurn.status.searchingCodebase": "Kod tabanı aranıyor", + "ui.sessionTurn.status.searchingWeb": "Web aranıyor", + "ui.sessionTurn.status.makingEdits": "Düzenlemeler yapılıyor", + "ui.sessionTurn.status.runningCommands": "Komutlar çalıştırılıyor", + "ui.sessionTurn.status.thinking": "Düşünüyor", + "ui.sessionTurn.status.thinkingWithTopic": "Düşünüyor - {{topic}}", + "ui.sessionTurn.status.gatheringThoughts": "Düşünceler toplanıyor", + "ui.sessionTurn.status.consideringNextSteps": "Sonraki adımlar değerlendiriliyor", + + "ui.messagePart.diagnostic.error": "Hata", + "ui.messagePart.title.edit": "Düzenle", + "ui.messagePart.title.write": "Yaz", + "ui.messagePart.option.typeOwnAnswer": "Kendi cevabınızı yazın", + "ui.messagePart.review.title": "Cevapları inceleyin", + + "ui.list.loading": "Yükleniyor", + "ui.list.empty": "Sonuç bulunamadı", + "ui.list.clearFilter": "Filtreyi temizle", + "ui.list.emptyWithFilter.prefix": "Sonuç bulunamadı:", + "ui.list.emptyWithFilter.suffix": "", + + "ui.messageNav.newMessage": "Yeni mesaj", + + "ui.textField.copyToClipboard": "Panoya kopyala", + "ui.textField.copyLink": "Bağlantı kopyala", + "ui.textField.copied": "Kopyalandı", + + "ui.imagePreview.alt": "Görsel önizleme", + + "ui.tool.read": "Oku", + "ui.tool.loaded": "Yüklendi", + "ui.tool.list": "Listele", + "ui.tool.glob": "Glob", + "ui.tool.grep": "Grep", + "ui.tool.webfetch": "Web getir", + "ui.tool.shell": "Kabuk", + "ui.tool.patch": "Yama", + "ui.tool.todos": "Görevler", + "ui.tool.todos.read": "Görevleri oku", + "ui.tool.questions": "Sorular", + "ui.tool.agent": "{{type}} Ajan", + + "ui.common.file.one": "dosya", + "ui.common.file.other": "dosya", + "ui.common.question.one": "soru", + "ui.common.question.other": "soru", + + "ui.common.add": "Ekle", + "ui.common.back": "Geri", + "ui.common.cancel": "İptal", + "ui.common.confirm": "Onayla", + "ui.common.dismiss": "Kapat", + "ui.common.close": "Kapat", + "ui.common.next": "İleri", + "ui.common.submit": "Gönder", + + "ui.permission.deny": "Reddet", + "ui.permission.allowAlways": "Her zaman izin ver", + "ui.permission.allowOnce": "Bir kez izin ver", + + "ui.message.expand": "Mesajı genişlet", + "ui.message.collapse": "Mesajı daralt", + "ui.message.copy": "Kopyala", + "ui.message.copyMessage": "Mesajı kopyala", + "ui.message.copyResponse": "Yanıtı kopyala", + "ui.message.copied": "Kopyalandı", + "ui.message.interrupted": "Kesildi", + "ui.message.attachment.alt": "ek", + + "ui.patch.action.deleted": "Silindi", + "ui.patch.action.created": "Oluşturuldu", + "ui.patch.action.moved": "Taşındı", + "ui.patch.action.patched": "Yamalandı", + + "ui.question.subtitle.answered": "{{count}} cevaplandı", + "ui.question.answer.none": "(cevap yok)", + "ui.question.review.notAnswered": "(cevaplanmadı)", + "ui.question.multiHint": "Geçerli tüm cevapları seçin", + "ui.question.singleHint": "Bir cevap seçin", + "ui.question.custom.placeholder": "Cevabınızı yazın...", +} satisfies Partial>