dsh-locale-tr 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hasan Aytaç (github.com/aytacbilgisayar-hub)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # dsh-locale-tr — DeepSeek Harness Türkçe Dil Paketi
2
+
3
+ DeepSeek Harness (`dsh`) web arayüzüne **Türkçe (tr)** dil desteği ekleyen,
4
+ resmî olmayan bir topluluk eklentisi. `dsh` yerleşik olarak yalnızca Çince (zh)
5
+ ve İngilizce (en) ile gelir; bu paket, dsh'nin kendi belgelerinde tanımlı *dış
6
+ dil paketi* mekanizmasını kullanarak `tr` dilini kaydeder ve **38 arayüz
7
+ namespace'inde 1147 metni** Türkçeleştirir.
8
+
9
+ > English summary below · [English](#english)
10
+
11
+ ## Neler çevrildi
12
+
13
+ Ayarlar, Modeller, Eklentiler, Ajan ön ayarları, kenar çubuğu ve çalışma
14
+ alanları, sohbet/besteci alanı (mesaj kutusu, gönderme davranışı, araç
15
+ kartları), işlem akışı (trajectory), alt ajanlar, hatırlatıcılar, dosya/görsel
16
+ önizlemeleri, hedefler, geri bildirim, sorular ve daha fazlası. Çevirisi olmayan
17
+ her metin `fallback: en` sayesinde İngilizce görünür — hiçbir şey kırılmaz.
18
+
19
+ ## Kurulum
20
+
21
+ `dsh`'nin ev dizini `$DSH_HOME` (varsayılan: `~/.dsh`). Web profilini kullandığı
22
+ varsayılır (`$DSH_HOME/profiles/web`).
23
+
24
+ 1. Bu depoyu profilinizin erişebileceği bir yere klonlayın, örn. `$DSH_HOME/dsh-locale-tr`:
25
+
26
+ ```bash
27
+ git clone https://github.com/aytacbilgisayar-hub/dsh-locale-tr.git "$DSH_HOME/dsh-locale-tr"
28
+ ```
29
+
30
+ 2. Web profiline eklenti olarak ekleyin (pnpm gerektirir; `dsh plugin` pnpm'e devreder):
31
+
32
+ ```bash
33
+ dsh plugin --profile web add "$DSH_HOME/dsh-locale-tr"
34
+ ```
35
+
36
+ 3. `$DSH_HOME/profiles/web/cordis.patch.yml` dosyasının sonuna, eklentiyi
37
+ etkinleştiren bir `insert:` girdisi ekleyin:
38
+
39
+ ```yaml
40
+ - insert:
41
+ - id: locale-tr
42
+ name: dsh-locale-tr
43
+ ```
44
+
45
+ 4. `dsh web`'i (yeniden) başlatın. Ayarlar → Genel'de **Türkçe** seçeneği belirir.
46
+ Kalıcı seçim için `$DSH_HOME/settings.yaml` içine şunu koyabilirsiniz:
47
+
48
+ ```yaml
49
+ locale:
50
+ preference: tr
51
+ ```
52
+
53
+ > Not: `lib/client.js`, dsh'nin tarayıcıya servis ettiği paket biçiminde
54
+ > (`window.__ModuleLoader__.load(...)`) hazır olarak depoda bulunur; ayrı bir
55
+ > derleme adımı olmadan çalışır.
56
+
57
+ ## Çeviriyi düzenleme / genişletme
58
+
59
+ Tek kaynak: [`src/translations.json`](src/translations.json) — `namespace → { anahtar: "Türkçe metin" }`.
60
+ Placeholder'ları (`{name}`, `{count}`, `{value}` vb.) olduğu gibi koruyun.
61
+
62
+ ```bash
63
+ # translations.json'u düzenleyin, sonra:
64
+ npm run build # lib/client.js ve src/client.js'i yeniden üretir
65
+ ```
66
+
67
+ Ardından `dsh web`'i yeniden başlatıp tarayıcıda sert yenileme yapın (Ctrl+Shift+R).
68
+
69
+ ## Bakım — yeni dsh sürümleri
70
+
71
+ dsh güncellenip yeni metinler eklerse, o metinler İngilizce görünür (kırılmaz).
72
+ Yeni İngilizce anahtarları kurulu dsh'den çıkarmak için:
73
+
74
+ ```bash
75
+ node scripts/extract-en.mjs "<dsh-kurulumu>/node_modules/@deepseek-ai" extracted-en.json
76
+ ```
77
+
78
+ `extracted-en.json`'u `src/translations.json` ile karşılaştırın, eksik anahtarları
79
+ çevirip ekleyin, `npm run build` çalıştırın.
80
+
81
+ ## Nasıl çalışır
82
+
83
+ `dsh-client-locale` paketinin genel API'sini kullanır:
84
+
85
+ ```js
86
+ export const inject = ["locale"];
87
+ export function apply(ctx) {
88
+ ctx.effect(() => ctx.locale.addLanguage({ id: "tr", label: "Türkçe", fallback: "en" }), "…");
89
+ for (const ns of Object.keys(dicts))
90
+ ctx.effect(() => ctx.locale.register(ns, "tr", dicts[ns]), "…");
91
+ }
92
+ ```
93
+
94
+ `lib/index.js` (Node/Host yarısı) boştur; tek işi paketin yüklenebilir bir
95
+ eklenti olmasını sağlamaktır, böylece dsh `dsh.client` bildirimini görüp
96
+ `lib/client.js`'i tarayıcıya servis eder.
97
+
98
+ ## Lisans ve atıf
99
+
100
+ MIT. Çeviriler, MIT lisanslı DeepSeek Harness'in arayüz metinlerinin Türkçe
101
+ karşılıklarıdır (türev çalışma). Bu resmî bir DeepSeek/DeepSeek Harness ürünü
102
+ değildir; bağımsız bir topluluk eklentisidir.
103
+
104
+ ---
105
+
106
+ <a id="english"></a>
107
+
108
+ ## English
109
+
110
+ Unofficial community plugin that adds **Turkish (tr)** to the DeepSeek Harness
111
+ (`dsh`) web UI. `dsh` ships only Chinese (zh) and English (en) built in; this
112
+ package uses dsh's documented *external language-pack* mechanism to register the
113
+ `tr` locale and translates **1147 strings across 38 UI namespaces**. Untranslated
114
+ strings fall back to English, so nothing breaks.
115
+
116
+ **Install:** clone into a location your web profile can resolve (e.g.
117
+ `$DSH_HOME/dsh-locale-tr`), run `dsh plugin --profile web add "$DSH_HOME/dsh-locale-tr"`,
118
+ then append to `$DSH_HOME/profiles/web/cordis.patch.yml`:
119
+
120
+ ```yaml
121
+ - insert:
122
+ - id: locale-tr
123
+ name: dsh-locale-tr
124
+ ```
125
+
126
+ Restart `dsh web`; pick **Türkçe** in Settings → General (or set
127
+ `locale.preference: tr` in `settings.yaml`).
128
+
129
+ **Editing:** the single source of truth is [`src/translations.json`](src/translations.json)
130
+ (`namespace → { key: "Turkish text" }`; keep `{placeholders}` intact). Run
131
+ `npm run build` to regenerate `lib/client.js`. For new dsh versions, use
132
+ `scripts/extract-en.mjs` to pull fresh English keys, translate the missing ones,
133
+ and rebuild.
134
+
135
+ **License:** MIT. Translations are a derivative of the MIT-licensed DeepSeek
136
+ Harness UI strings. Not affiliated with or endorsed by DeepSeek.
package/lib/client.js ADDED
@@ -0,0 +1,20 @@
1
+ window.__ModuleLoader__.load({
2
+ id: "dsh-locale-tr",
3
+ factory: (require) => {
4
+ var module = { exports: {} };
5
+ var exports = module.exports;
6
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
+ const dicts = {"common":{"ok":"Tamam","cancel":"İptal","close":"Kapat","copy":"Kopyala","copied":"Kopyalandı","copy.failed":"Kopyalanamadı","copy.value":"Değeri kopyala","copy.json":"JSON'u kopyala","copy.path":"Özellik yolunu kopyala","copy.prettyJson":"Düzenli JSON'u kopyala","copy.compactJson":"Sıkışık JSON'u kopyala","copy.optionsHint":"{action}; kopyalama seçenekleri için sağ tıklayın","retry":"Yeniden dene","loading":"Yükleniyor…","load.failed":"Yüklenemedi","submit":"Gönder","submitting":"Gönderiliyor…","next":"İleri","previous":"Geri","skip":"Atla","delete":"Sil","edit":"Düzenle","save":"Kaydet","search":"Ara","more":"Daha fazla","collapse":"Daralt","expand":"Genişlet","back":"Geri","brand.localBuild":"DSH Yerel Derleme","unknown":"Bilinmiyor","none":"Yok","truncated":"Kısaltıldı","json.collapseNode":"JSON düğümünü daralt","json.expandNode":"JSON düğümünü genişlet","json.label":"JSON","markdown.footnotes":"Dipnotlar","markdown.truncatedCharacters":"… {total} karakterde kısaltıldı","number.thousand":"{value}K","number.million":"{value}M"},"settings.locale":{"language.title":"Dil"},"settings.agentPreset":{"error":"Ajan ön ayarları yüklenemedi.","userTrust":"Özel","seatHint":"Başlatmak üzere olduğunuz oturum için ajan ön ayarı","headerHint":"Bu oturumun çalıştırdığı ajan ön ayarı, başladığında sabitlendi","nav":"Ajan ön ayarları","sectionIntro":"Ön ayar, bir oturumun ajanının çalıştırdığı eklenti bileşimidir — araçları, istemi ve yetenekleri. Var olan birini çoğaltıp kendinize uyarlayın ya da Oluşturucu modunda ajanın sizin için bir taslak hazırlamasına izin verin.","builtIn":"Yerleşik","setDefault":"Varsayılan yap","view":"Görüntüle","presetStandardName":"Standart mod","presetStandardDescription":"Dosya düzenleme, kabuk, dosya ve web araması, beceriler, planlama, hedefler, alt ajanlar ve iş akışlarıyla tam kodlama ajanı.","presetPtcName":"PTC modu","presetPtcDescription":"İş akışı aracı olmayan tam kodlama ajanı; diğer araçlar PTC modu SDK'sı üzerinden sunulur, böylece model çok adımlı işlemleri tek bir TypeScript programında birleştirebilir.","presetMinimalName":"Minimal mod","presetMinimalDescription":"Kalıcı kabuğu olan tek araçlı kodlama ajanı.","presetCordisName":"Oluşturucu modu","presetCordisDescription":"Özel ajan ön ayarları oluşturmak için tasarlandı; tüm Standart mod yeteneklerine ek olarak çalışma zamanı incelemesi, eklenti denemeleri ve ön ayar yazma rehberliği içerir.","duplicate":"Çoğalt","duplicateUnavailable":"Bu dağıtımda yazılabilir bir ön ayar dizini yok","delete":"Sil","presetId":"Tanımlayıcı","presetIdPlaceholder":"ajanim","displayName":"Ad","displayNamePlaceholder":"Seçicide görünür; varsayılan olarak tanımlayıcı kullanılır","inUse":"Kullanımda","builtInGroup":"Yerleşik","customGroup":"Özel","noDescription":"Açıklama yok.","brokenBadge":"Yüklenemedi","brokenNoCopy":"Yüklenemeyen bir ön ayar çoğaltılamaz","switchRefused":"{name} ön ayarına geçilemedi: {reason}","copyOf":"Kaynak","composition":"Bileşim (agent.cordis.yml)","cancel":"İptal","close":"Kapat","retry":"Yeniden dene","copyTitle":"Ön ayarı çoğalt","copyIntro":"Ön ayarın tamamı bu makinede kopyalanır. Tanımlayıcı, dizin adı olur ve sonradan değiştirilemez; diğer her şey ön ayarın kendi dosyalarından düzenlenir.","create":"Oluştur","creating":"Oluşturuluyor…","creatorDraft":"Oluşturucu moduyla özel bir ön ayar taslağı hazırla","openLocation":"Klasörü aç","showLocation":"Konumu göster","revealedPathLabel":"Ön ayar dosyaları:","idRequired":"Ön ayara bir tanımlayıcı verin.","idInvalid":"Küçük harf, rakam ve tire kullanın; bir harf veya rakamla başlayın.","idTaken":"Bu tanımlayıcıya sahip bir ön ayar zaten var.","deleteTitle":"Bu ön ayar silinsin mi?","deleteDescription":"Ön ayar dizini silinir. Üzerinde çalışan oturumlar çalışmaya devam eder; yeni oturumlar bunu seçemez.","deleteConfirm":"Sil","deleting":"Siliniyor…"},"approval":{"waiting":"Onay bekleniyor","detail.aria":"Onay ayrıntıları","escalation":"{toolName} aracı ayrıcalıklı çalıştırma istiyor","reject":"Reddet","allowOnce":"Bir kez izin ver"},"chat":{"view.chat":"Sohbet","number.groupSeparator":".","duration.compactSeconds":"{seconds}sn","duration.compactMinutes":"{minutes}dk{seconds}sn","duration.milliseconds":"{milliseconds}ms","stats.counts":"{turns} tur {steps} adım","stats.cacheHit":"Önbellek isabeti %{percent}","stats.dialog.title":"Oturum istatistikleri","stats.dialog.usageTitle":"Token kullanımı","stats.dialog.llmTime":"LLM süresi","stats.dialog.toolTime":"Araç süresi","stats.dialog.ttft":"Ort. ilk token süresi (TTFT)","stats.dialog.speed":"Saniyedeki token (TPS)","chat.loadingHistory":"Geçmiş yükleniyor…","chat.loadError":"Geçmiş yüklenemedi: {message} ({code})","chat.loadOlder":"Öncekileri yükle","chat.toBottom":"En alta dön","chat.deepDiving":"Derinlemesine inceleniyor...","chat.turnNavigation.label":"Tur gezinmesi","chat.turnNavigation.jump":"{turn}. tura atla","chat.turnNavigation.jumpLoad":"{turn}. turu yükle ve atla","chat.turnNavigation.turn":"{turn}. tur","settings.transcript.title":"Konuşma görünümü","settings.transcript.description":"Tamamlanan turlarda süreç içeriğini denetler","settings.transcript.normal":"Normal","settings.transcript.compact":"Sıkışık","fileOpen.title":"Dosya açılamadı","fileOpen.unknown":"Bu dosya açılamadı","message.extraBlock":"Ek içerik bloğu","message.systemPrompt":"Sistem istemi","message.systemPromptUpdate":"Sistem istemi güncellemesi","message.contextInjection":"Bağlam enjeksiyonu","message.contextRecall":"Oturum hatırlaması","message.referenceSummary":"Referans oturum · {labels}","message.referenceSeparator":", ","message.context.instructions.loaded":"yüklendi","message.context.instructions.added":"eklendi","message.context.instructions.updated":"güncellendi","message.context.instructions.removed":"kaldırıldı","message.context.catalog.replaced":"Değiştirme kataloğu","message.context.catalog.more":"… {count} tane daha","message.context.snapshot.supersedes":"Önceki anlık görüntülerin yerine geçer","message.context.relay.from":"{session} oturumundan","message.context.recall.counts":"{retained} tutuldu · {omitted} atlandı","message.context.recall.truncated":"kısaltıldı","message.compaction":"Bağlam sıkıştırıldı","message.compaction.running":"Bağlam sıkıştırılıyor…","message.compaction.completed":"{items} geçmiş öğesi sıkıştırıldı (~{tokens} token)","message.compaction.expand":"Sıkıştırma özetini görüntüle","message.compaction.unavailable":"Sıkıştırma özeti kullanılamıyor","message.compaction.commandTitle":"sıkıştır","message.think":"Düşün","message.unknownSurface":"Bilinmeyen yüzey olayı: {type}","message.unknownBlock":"Bilinmeyen içerik bloğu","message.turnProcess.toolCalls.one":"{count} araç çağrısı","message.turnProcess.toolCalls.other":"{count} araç çağrısı","message.turnProcess.messages.one":"{count} mesaj","message.turnProcess.messages.other":"{count} mesaj","message.turnProcess.subagents.one":"{count} alt ajan","message.turnProcess.subagents.other":"{count} alt ajan","message.turnProcess.thoughtForAWhile":"Bir süre düşündü","message.turnProcess.separator":" · ","message.stopped":"Durduruldu","message.branch":"Yeni bir konuşmaya dallan","message.branchUnavailable":"Yalnızca tamamlanmış bir turun son mesajında kullanılabilir","message.retry.active":"Model isteği yeniden deneniyor","message.retry.cancelled":"Model isteği yeniden denemesi iptal edildi","message.retry.started":"Model isteği yeniden denendi","message.retry.scheduled":"Model isteğini yeniden denemek için bekleniyor","message.retry.status":"{label} ({retry}/{maximum}) · {seconds}sn","message.retry.delay":"Yeniden deneme gecikmesi: ","message.retry.failure":"Başarısızlık nedeni: ","message.failure.auth":"API anahtarı geçersiz","message.turnError":"Bu tur başarısız oldu","message.maxTokens":"Çıktı token sınırına ulaşıldı","message.maxTokens.hint":"Yanıt kesildi; önceki çıktı konuşmada korunuyor. Modelin devam etmesi için \"devam et\" gönderin.","message.ranFor":"{duration} sürdü","message.tokensPerSecond":"{tps} tok/sn","message.turnUsage.title":"Tur kullanımı","message.turnUsage.consumed":"Kullanım {total}","message.turnUsage.model":"Sağlayıcı / model","message.turnUsage.cacheHit":"Önbellek isabeti","message.turnUsage.input":"Önbelleğe alınmamış girdi","message.turnUsage.cacheRead":"Önbellekten girdi","message.turnUsage.cacheWrite":"Önbelleğe yazma","message.turnUsage.output":"Çıktı","message.turnUsage.reasoning":" ({tokens} akıl yürütme)","message.turnUsage.count":"{count} tok","message.turnTime.title":"Tur süresi ve hızı","message.turnTime.duration":"Toplam çalışma süresi","message.turnTime.speed":"Saniyedeki token (TPS)","message.turnTime.ttft":"İlk token süresi (TTFT)","duration.seconds":"{seconds}sn","duration.minutes":"{minutes}dk {seconds}sn","command.running":"Çalışıyor…","command.failed":"Komut başarısız oldu","command.done":"Tamamlandı","command.title":"Komut","row.running":"Çalışıyor","row.failed":"Başarısız","json.truncated":"… kısaltıldı, toplam {total} karakter","clock.md":"{d}.{m}","clock.ymd":"{y}-{m}-{d}"},"command":{"description.compact":"Eski konuşma geçmişini sıkıştır","description.export":"Bu Oturum günlüğünü ZIP arşivi olarak indir","description.feedback":"bu oturumla ilgili geri bildirim kaydet","description.goal":"uzun süren bir görev için hedef belirle veya görüntüle","description.permission":"İzin ön ayarını değiştir (sandbox modu + onay ilkesi)","description.plan":"Plan moduna gir veya çık","search.placeholder":"Ara…","search.aria":"Seçenekleri filtrele","status.loading":"Seçenekler yükleniyor…","status.applying":"Uygulanıyor…","status.empty":"Seçenek yok","overlay.aria":"/{command} seçenekleri","listbox.aria":"/{command} eşleşmeleri","notice.attachmentsUnsupported":"/{command} ek kabul etmez; önce onları kaldırın"},"deliverables":{"presented.nativeUnavailable":"Bu dosyanın kullanılabilir bir Host yolu yok. Kenar çubuğunda önizleyin.","presented.revealError":"Dosya yöneticisinde gösterilemedi. Yeniden deneyin.","presented.directoryError":"İçeren klasör açılamadı. Yeniden deneyin.","presented.directoryOpening":"İçeren klasör açılıyor…","presented.directoryOpened":"İçeren klasörün açılması istendi","presented.revealed":"Dosya yöneticisinde gösterilmesi istendi","presented.revealing":"Dosya yöneticisinde gösteriliyor…","presented.unavailable":"Bu Host'ta dosya veya klasör açacak bir masaüstü yok","presented.retry":"Yeniden dene","presented.hostError":"Host masaüstü bilgisi okunamadı","presented.directory":"İçeren klasörü aç","presented.explorer":"Dosya Gezgini'nde göster","presented.finder":"Finder'da göster","presented.defaultApp":"Varsayılan uygulamada aç","presented.more":"{name} için daha fazla dosya işlemi","presented.action":"Aç","presented.preview":"Kenar çubuğunda önizle","presented.previewButton":"{name} dosyasını kenar çubuğunda aç","presented.previewCard":"{name} dosyasını kenar çubuğunda önizle","presented.all":"Tüm {count} dosya","presented.expandAria":"Teslim edilen {count} dosyanın tümünü göster","presented.collapse":"Daralt","presented.collapseAria":"Teslim edilen dosyaları daralt","presented.opening":"Açılıyor…","presented.opened":"Varsayılan uygulamada açıldı","presented.error":"Açılamadı. Yeniden denemek için tıklayın.","presented.file":"Dosya","row.title":"Dosyaları sun","row.running":"Teslim ediliyor","row.ok":"Teslim edildi","row.error":"Teslim başarısız","row.stopped":"Kesildi","row.inspect":"Çağrıyı incele","presented.open":"{name} dosyasını varsayılan uygulamada aç","produced.label":"Değişen dosyalar","produced.moreOne":"+ 1 dosya","produced.more":"+ {count} dosya","produced.open":"{name} dosyasını aç"},"goal":{"phase.active":"Süren Hedef","phase.active.disarmed":"Etkin Olmayan Hedef","phase.paused":"Duraklatılmış Hedef","phase.blocked":"Engellenmiş Hedef","objective.aria":"Hedef amacı","commandInput.aria":"Komut girişi","action.save":"Hedefi kaydet","action.cancel":"Düzenlemeyi iptal et","action.pause":"Hedefi duraklat","action.resume":"Hedefi sürdür","action.edit":"Hedefi düzenle","action.clear":"Hedefi temizle"},"slash.menu":{"command":"Komutlar","skill":"Beceriler","subagent":"Alt ajanlar","loading":"Yükleniyor…","drill.aria":"Klasöre göz at","drill.hint":"Klasöre göz at","drill.key":"Tab","crumbs.aria":"Klasör gezinmesi","suggestions.aria":"Tetikleyici önerileri"},"job":{"count.live.one":"{count} arka plan işi çalışıyor","count.live.other":"{count} arka plan işi çalışıyor","count.idle.one":"{count} arka plan işi","count.idle.other":"{count} arka plan işi","list.aria":"Arka plan işleri","status.running":"çalışıyor","status.stopping":"durduruluyor","status.completed":"tamamlandı","status.killed":"iptal edildi","status.failed":"başarısız","duration.seconds":"{seconds}sn","duration.minutes":"{minutes}dk {seconds}sn","duration.hours":"{hours}sa {minutes}dk","duration.title.live":"{duration} süredir çalışıyor","duration.title.done":"{duration} sürdü"},"feedback":{"action.like":"İyi yanıt","action.likeActive":"Değerlendirmeyi kaldır","action.dislike":"Kötü yanıt","action.dislikeActive":"Değerlendirmeyi kaldır","dialog.title":"Geri bildirim gönder","dialog.categories":"Geri bildirim kategorisi","dialog.detail":"Geri bildirim ayrıntıları","dialog.hint":"İyileştirmemize yardımcı olmak için ayrıntı ekleyin. Gönderiminiz mevcut konuşma günlüğünü içerecektir.","category.task-result":"Görev sonucu","category.instruction-following":"Talimatı anlama ve uygulama","category.product-interaction":"Ürün özellikleri ve etkileşim","category.service-stability":"Kararlılık ve hız","category.resource-cost":"Kaynak kullanımı ve maliyet","category.security-privacy-permission":"Güvenlik, gizlilik ve izinler","category.other":"Diğer","toast.recorded":"Geri bildiriminiz için teşekkürler","error.conflict":"Bu geri bildirim başka bir yerde değişti; en güncel durum gösteriliyor","error.load":"Geri bildirim yüklenemedi","error.generic":"Geri bildirim kaydedilemedi","error.noteTooLarge":"Açıklama çok uzun; kısaltıp yeniden gönderin"},"model":{"command.description":"Bu konuşma için modeli seç","option.loadError":"Katalog yüklenemedi: {message}","option.deepseekV4Flash.description":"Hızlı, verimli ve ekonomik; odaklı, rutin veya paralel görevlere uygun.","option.deepseekV4Pro.description":"Daha güçlü ajansal kodlama, bilgi ve zorlu akıl yürütme; daha yüksek maliyetle karmaşık veya kalite açısından kritik görevlere uygun.","trigger.fallback":"Model seç","trigger.loading":"Modeller yükleniyor…","trigger.selectAria":"Model seç","trigger.aria":"Model seç, geçerli {model}","trigger.ariaEffort":"Model seç, geçerli {model}, akıl yürütme çabası {effort}","menu.aria":"Model ve akıl yürütme çabası","menu.model":"Model","menu.effort":"Çaba","effort.providerDefault":"Varsayılan","status.loading":"Model listesi yenileniyor…","error.action":"Model işlemi başarısız: {message}","action.reload":"Yeniden yükle","warning.groupLoad":"{name} yüklenemedi: {message}","empty.models":"Kullanılabilir model yok.","blocked.composer":"Bu model kullanılamıyor — devam etmek için bir tane seçin","empty.efforts":"Bu model akıl yürütme çabası seviyesi sunmuyor."},"settings.permission":{"title":"İzin","description":"Yeni oturumlar için varsayılan izin modunu seçin","loading":"Yükleniyor","unavailable":"Kullanılamıyor","preset.readOnly":"Salt Okunur","preset.workspaceWrite":"Çalışma Alanına Yazma","preset.fullAccess":"Tam erişim","confirm.title":"Tam erişim etkinleştirilsin mi?","confirm.description":"Tam erişim, yeni oturumların onay adımlarını azaltmasına ve hassas işlemler, dosya değişiklikleri veya harici komutlar dâhil daha fazla işlemi doğrudan yapmasına olanak tanır. Yalnızca sonraki görevlere güvendiğinizde kullanın.","confirm.acknowledge":"Riskleri anlıyorum ve devam etmek istiyorum","confirm.cancel":"İptal","confirm.enable":"Tam erişimi etkinleştir"},"plan":{"chip.label":"Plan","chip.on.aria":"Plan modu açık, kapatmak için basın","chip.on.title":"Plan modu açık — kapatmak için tıklayın (/plan off)","chip.off.aria":"Plan modu kapalı, açmak için basın","chip.off.title":"Plan modu kapalı — açmak için tıklayın (/plan)","chip.exitFailed":"Plan modundan çıkılamadı"},"reference":{"section.files":"Dosyalar ve klasörler","section.sessions":"Oturumlar","candidate.noCwd":"(çalışma dizini yok)","crumb.root":"Çalışma alanı","time.now":"şimdi","time.minutes":"{n}dk","time.hours":"{n}sa","time.days":"{n}g","time.months":"{n}ay","time.years":"{n}y"},"schedule.catalog":{"trigger.one":"{count} hatırlatıcı","trigger.other":"{count} hatırlatıcı","list.aria":"Etkin hatırlatıcılar","status.scheduled":"Zamanlandı","status.overdue":"Gecikti","frequency.once":"Bir kez","frequency.every":"Her {value} {unit}","unit.day.one":"gün","unit.day.other":"gün","unit.hour.one":"saat","unit.hour.other":"saat","unit.minute.one":"dakika","unit.minute.other":"dakika","unit.second.one":"saniye","unit.second.other":"saniye","relative.now":"Şimdi zamanı geldi","relative.future":"{value} {unit} içinde","relative.overdue":"{value} {unit} gecikti"},"settings":{"trigger":"Ayarlar","title":"Ayarlar","close":"Kapat","openDocument":"Yapılandırma dosyasını aç","openDocument.error":"Yapılandırma dosyası açılamadı","general.nav":"Genel","connection.error":"Bağlantı kesildi","connection.retry":"Şimdi yeniden bağlan","connection.connecting":"Yeniden bağlanılıyor","connection.connected":"Bağlandı","connection.reconnect":"Bağlantı kesildi, şimdi yeniden bağlanın","connection.restart":"Otomatik yeniden bağlanılıyor, şimdi yeniden bağlanın"},"settings.models":{"nav":"Modeller","title":"Modeller","intro":"Aşağıdaki sağlayıcıların modellerini kullanmak için API anahtarlarınızı girin.","edit":"Düzenle","editProvider":"{provider} düzenle","remove":"Sil","removeProvider":"{provider} sil","deleteTitle":"{provider} silinsin mi?","deleteDescription":"{provider} silindiğinde yapılandırması kaldırılır. Kullandığı kimlik bilgisi başka yerde yönetilir ve korunur.","deleteDescriptionWithCredential":"{provider} silindiğinde yapılandırması ve saklanan API anahtarı kaldırılır.","deleteConfirm":"{provider} sil","deleting":"{provider} siliniyor…","add":"Sağlayıcı ekle","provider":"Sağlayıcı","close":"Kapat","cancel":"İptal","apply":"Uygula","applying":"Uygulanıyor…","savedProvider":"{provider} kaydedildi.","credentialConfigured":"API anahtarı yapılandırıldı","credentialMissing":"API anahtarı eksik","readOnly":"Bu dağıtımda ayarlar belgesi salt okunur.","loadFailed":"Sağlayıcı dizini yüklenemedi","conflict":"Bu kart açıkken başka biri bu ayarları değiştirdi. Geçerli değerleri düzenlemek için kapatıp yeniden açın.","retry":"Yeniden dene","keyInput":"API anahtarı","keyPlaceholder":"API anahtarınızı girin","keyPlaceholderNative":"Bir API anahtarı girin veya ortam kimlik doğrulaması için boş bırakın","keyStored":"Yapılandırıldı — değiştirmek için yeni bir değer girin","keyEnvLocked":"Başlatma ortamı tarafından sağlandı (salt okunur)","customized":"Özelleştirilmiş ayarlar","baseUrl":"Temel URL","baseUrlDefault":"Sağlayıcı varsayılanı","models":"Modeller","modelsInherited":"Adaptör varsayılanları kullanılıyor","modelsCustomized":"Özelleştirilmiş model kataloğu","resetModels":"Varsayılanları geri yükle","model":"Model","modelId":"Model kimliği","modelName":"Görünen ad","modelNamePlaceholder":"Boş olduğunda model kimliği kullanılır","contextWindow":"Bağlam penceresi","contextWindowPlaceholder":"Sağlayıcı varsayılanı kullanılır","maxTokens":"En fazla çıktı token'ı","maxTokensPlaceholder":"Sağlayıcı varsayılanı kullanılır","modelAdvanced":"Kapasiteler","addModel":"Model ekle","removeModel":"Modeli sil","modelsEmpty":"Seçicide hiçbir model gösterilmeyecek. Listelenmeyen kimlikler yine de doğrudan gönderilebilir.","keyBlank":"API anahtarını girin veya saklananı korumak için alanı boş bırakın.","keyBlankNew":"API anahtarını girin veya bu sağlayıcı başka bir yolla kimlik doğruluyorsa alanı boş bırakın.","keyIllegalCharacters":"Bu API anahtarı geçerli bir biçimde değil. Lütfen kontrol edin.","modelIdRequired":"Model kimliği gerekli.","modelIdDuplicate":"Model kimliği benzersiz olmalı.","modelNameInvalid":"Görünen ad boş olamaz.","modelContextInvalid":"Bağlam penceresi 131072, 256K veya 1M gibi pozitif bir sayı olmalı.","modelMaxTokensInvalid":"En fazla çıktı token'ı 8192, 64K veya 1M gibi pozitif bir sayı olmalı.","advancedHint":"Diğer alanlar settings.yaml içindedir; o bölümü doğrudan düzenleyin.","modelCapacityInvalid":"Kapasite bir sayı olmalı, isteğe bağlı olarak K veya M ekiyle.","modelDuplicate":"Her model kimliği yalnızca bir kez görünebilir.","modelContextWindow":"Bağlam penceresi","modelMaxTokens":"En fazla çıktı token'ı","fetchModels":"Kullanılabilir modelleri getir","fetching":"Sağlayıcıya soruluyor…","fetchNeedsBaseUrl":"Önce temel URL'yi girin, sonra getirin.","fetchEmpty":"Sağlayıcı hiç model listelemedi. Elle ekleyin.","fetchTitle":"Eklenecek modelleri seçin","fetchDescription":"Bunlar bu sağlayıcının sunduğu modeller. Eklenecekleri seçin.","fetchSearch":"Modelleri ara","fetchNoMatches":"Eşleşen model yok.","fetchSelectAll":"Tümünü seç","fetchDeselectAll":"Seçimi kaldır","fetchAdopt":"Seçilenleri ekle","customAdd":"Özel sağlayıcı ekle","customTitle":"Özel sağlayıcı","customTag":"Özel","customRoute":"Sağlayıcı kimliği","customRouteHint":"İsteklerde ve kimlik bilgisi adı olarak bu sağlayıcıyı benzersiz biçimde adlandıran, bir harfle başlayan küçük harfli tanımlayıcı.","customRouteInvalid":"Küçük harfle başlayın; ardından küçük harf, rakam ve tire kullanın.","customRouteTaken":"Bir sağlayıcı bu kimliği zaten kullanıyor.","customDisplayName":"Görünen ad","customApi":"API protokolü","customApiUnset":"Seçilmedi","customNeedsBaseUrl":"Özel bir sağlayıcı için temel URL gerekir.","customBaseUrlInvalid":"Geçerli bir HTTP veya HTTPS URL'si girin.","customNeedsModels":"Özel bir sağlayıcı için en az bir model gerekir.","customBaseUrlPlaceholder":"https://gateway.example/v1","settingsPathUnresolvable":"çözümlenemeyen ayar yolu","create":"Sağlayıcı oluştur","creating":"Oluşturuluyor…","welcomeTitle":"İç Test Bildirimi","welcomeBody":"DeepSeek Harness 0.1 hâlâ Harness geliştiricileri için test aşamasındadır. Birçok alanın daha da iyileştirilmesi gerekiyor ve geliştirici topluluğundan gelecek geri bildirimleri memnuniyetle karşılıyoruz. DeepSeek Harness'in çekirdek eklentileri ve temel API'leri önümüzdeki aylarda hızla gelişmeye devam edecek.\n\nAçık kaynaklı, açık, yeniden kullanılabilir ve birleştirilebilir altyapı üzerine inşa ederek dünyanın dört bir yanındaki geliştiricilerle zekânın sınırlarını keşfetmeyi dört gözle bekliyoruz. Her yerden Harness geliştiricilerini DSH eklenti ekosistemine katılmaya davet ediyoruz.","welcomeContinue":"Devam et","welcomeError":"Onay kaydedilemedi. Lütfen yeniden deneyin.","onboardingTitle":"Başlamak için bir API anahtarı ekleyin","onboardingDescription":"Geliştirmeye başlamak için resmi DeepSeek sağlayıcısını yapılandırın.","onboardingLater":"Sonra yapılandır","onboardingSave":"Kaydet ve devam et","onboardingSaving":"Kaydediliyor…","keyRequired":"Devam etmek için bir API anahtarı girin."},"settings.pluginInventory":{"tab":"Eklenti listesi","loading":"Eklentiler okunuyor…","error":"Eklentiler geçici olarak kullanılamıyor.","retry":"Yeniden dene","search":"Eklentileri ara","empty":"Kullanılabilir eklenti yok.","emptySearch":"Eşleşen eklenti yok.","presetTitle":"Oturum eklentileri","presetSubtitle":"Ajan ön ayarları tarafından oturum başına bileştirilir","countUnit":"eklenti","switcherLabel":"İncelenecek ajan ön ayarını seçin","presetOptionDefault":"{name} (varsayılan)","presetOptionBroken":"{name} (yüklenemedi)","globalTitle":"Global eklentiler","globalSubtitle":"Sistem ve her oturum tarafından paylaşılır","presetProvidedDetail":"Global olarak devre dışı; ajan ön ayarları oturum başına sağlar","enabledIn":"Şurada etkin","viewInPreset":"Ön ayar grubunda görüntüle","matchesInOtherPresets":"Diğer ön ayarlarda {count} eşleşme daha: ","failedCountLabel":"başarısız","enabledTag":"Etkin","disabledTag":"Devre dışı","conditionalTag":"Koşullu","presetEnabledTag":"Ön ayarlarla etkin","failedTag":"Başarısız","moduleLabel":"Modül","fromPreset":"Kaynak","condition":"Şu durumda devre dışı","configuration":"Yapılandırma","runtime":"Durum","unobserved":"Çalışmıyor","pending":"Bağımlılıklar bekleniyor","loadingPhase":"Yükleniyor","active":"Çalışıyor","failed":"Başlatılamadı","unloading":"Kaldırılıyor"},"settings.plugins":{"nav":"Eklentiler","title":"Eklentiler","intro":"Bu dağıtıma kurulu eklentileri yapılandırın ve inceleyin.","tabs":"Eklenti görünümleri","configurableTab":"Eklenti yapılandırması","empty":"Bu dağıtım hiçbir eklenti ayarı sunmuyor.","overridden":"Geçersiz kılındı","reset":"Varsayılana sıfırla","readOnly":"Bu dağıtım ayarları salt okunur olarak saklar.","expand":"Ayarları göster","collapse":"Ayarları gizle","save":"Kaydet","saving":"Kaydediliyor…","discard":"Vazgeç","unsaved":"Kaydedilmedi","saveFailed":"Dağıtım bu değerleri kabul etmedi; düzeltmeniz için bırakıldı.","invalidNumber":"Bir sayı girin veya varsayılanı kullanmak için boş bırakın.","bashTitle":"Kabuk","bashDescription":"Ajanın çalıştırdığı her komutu sınırlar.","bashTimeoutMs":"Komut zaman aşımı (ms)","bashTimeoutMsHint":"Bir komutun sonlandırılmadan önce ne kadar çalışabileceği.","bashMaxOutputBytes":"Akış başına çıktı sınırı (bayt)","bashMaxOutputBytesHint":"Bunun ötesindeki çıktı kaybolmak yerine geçici bir dosyaya aktarılır.","agentLoopTitle":"Ajan döngüsü","agentLoopDescription":"Ajanın araç çağrılarını nasıl dağıttığı.","agentLoopMaxParallel":"Paralel araç çağrıları","agentLoopMaxParallelHint":"Bir adım içinde aynı anda çalışan paralel-güvenli çağrıların üst sınırı.","webSearchTitle":"Web araması","webSearchDescription":"DeepSeek arama sağlayıcısı.","webSearchApiKey":"API anahtarı","webSearchApiKeyHint":"Ayarlar dosyasının dışında saklanır. Mevcut anahtarı korumak için boş bırakın.","webSearchApiKeySet":"Bir anahtar yapılandırıldı.","webSearchApiKeyUnset":"Yapılandırılmış anahtar yok; biri eklenene kadar arama kullanılamaz.","webSearchBaseUrl":"Uç nokta","webSearchBaseUrlHint":"Sağlayıcı varsayılanını kullanmak için boş bırakın.","webSearchMaxUses":"İstek başına en fazla arama","webSearchMaxUsesHint":"Bir isteğin yanıt vermeden önce kaç kez arama yapabileceği.","subagentModelSelectionTitle":"Alt ajan","subagentModelSelectionDescription":"Ajanların alt ajanlar için hangi modelleri seçebileceğini denetleyin.","subagentModelSelectionToggle":"Ajanların alt ajanlar için model seçmesine izin ver","subagentModelSelectionChoose":"Etkinleştirildiğinde, ajanlar her alt ajan için aşağıdaki yetkili modellerden bir sağlayıcı, model ve akıl yürütme çabası seçebilir. Yalnızca yeni oturumlara uygulanır.","subagentModelSelectionAllowed":"Ajanların seçebileceği modeller","subagentModelSelectionLoading":"Modeller yükleniyor…","subagentModelSelectionLoadFailed":"Modeller yüklenemedi.","subagentModelSelectionRetry":"Yeniden dene","subagentModelSelectionPartial":"Bazı model sağlayıcıları yüklenemedi; kaydedilmiş seçimler kaldırılabilir durumda.","subagentModelSelectionUnavailable":"Şu anda kullanılamıyor","subagentModelSelectionUnavailableGroup":"Kaydedildi ama şu anda kullanılamıyor","subagentModelSelectionEmpty":"Hiçbir model sağlayıcısı şu anda bir model sunmuyor.","subagentModelSelectionRequired":"Kaydetmeden önce en az bir model seçin.","subagentModelSelectionConflict":"Ayarlar başka bir yerde değişti. Taslağınızdan vazgeçip yeniden deneyin.","subagentModelSelectionOff":"Alt ajanlar yapılandırılmış varsayılanları kullanır veya üst ajanın modelini devralır. Kaydedilmiş model seçimleri korunur."},"sidebar":{"session.new":"Yeni Oturum","session.new.label":"Yeni oturum","toggle.open":"Kenar çubuğunu aç","toggle.collapse":"Kenar çubuğunu daralt","panels.label":"Global paneller"},"documentMarkdown":{"viewer.label":"Markdown","code.copy":"Kopyala","code.copied":"Kopyalandı","footnotes":"Dipnotlar"},"documentHtml":{"title":"HTML","frame":"HTML belge önizlemesi","loading":"HTML önizlemesi hazırlanıyor…","failed":"Bu HTML belgesi önizlenemedi."},"sidebarImage":{"title":"Görsel","preview":"Görsel önizleme: {name}","loading":"Görsel açılıyor…","failed":"Bu görsel görüntülenemedi.","unsupported":"Görsel önizleme için dosyanın tam içeriği gerekir."},"sidebarPdf":{"title":"PDF","pageImage":"PDF sayfası {page}","loading":"PDF açılıyor…","rendering":"Sayfa oluşturuluyor…","failed":"PDF görüntülenemiyor: {message}","password":"Bu PDF parola gerektiriyor; parola korumalı önizlemeler desteklenmiyor.","workerFailed":"PDF oluşturma işlemi devam edemedi. Lütfen yeniden deneyin.","unsupported":"PDF önizleme için dosyanın tam içeriği gerekir.","retry":"Yeniden dene"},"sidebarCodePreview":{"title":"Kod","copy":"Kopyala","copied":"Kopyalandı"},"sidebarDocumentPreview":{"loading":"Okunuyor…","loadMore":"Daha fazla yükle","changed":"Dosya değişti, önceki içerik gösteriliyor.","reloadNow":"Yeniden yükle","reload":"Dosyayı yeniden oku","wrap.enable":"Satır kaydırmayı aç","wrap.disable":"Satır kaydırmayı kapat","wrap.aria":"Satır kaydırma","openWith":"Birlikte aç","viewer.text":"Düz metin","resourceUnavailable":"Dosya kaynağı hizmeti kullanılamıyor.","rendererUnavailable":"{name} önizlemesi kullanılamıyor.","error.notFound":"Dosya bulunamadı. Taşınmış veya silinmiş olabilir.","error.tooLarge":"Bu sayfa {limit} sınırını aşıyor ve okunamaz.","error.notText":"Metin dosyası değil, şimdilik önizleme kullanılamıyor.","error.notRegularFile":"Normal bir dosya değil, gösterilecek bir şey yok.","error.unavailable":"Okuma başarısız: {message}","retry":"Yeniden dene"},"sidebarFiles":{"type.label":"Dosyalar","guide.title":"Çalışma alanı dosyaları","guide.description":"Bu oturumun çalışma alanındaki dosyalara göz atın","loading":"Okunuyor…","empty":"Boş dizin","truncated":"Çok fazla öğe, yalnızca bazıları gösteriliyor.","noWorkspace":"Bu oturumun çalışma alanı dizini yok.","reload":"Yeniden yükle","entry.other":"Dosya veya dizin değil, bu yüzden açılamaz.","error.notFound":"O dizin yok. Taşınmış veya silinmiş olabilir.","error.outsideWorkspace":"O dizin çalışma alanının dışında, bu yüzden kenar çubuğu onu okumaz.","error.notDirectory":"Bu bir dizin değil.","error.unavailable":"Okuma başarısız: {message}"},"sidebarRight":{"chrome.expand":"Kenar çubuğunu aç","chrome.expandAria":"Sağ kenar çubuğunu aç","chrome.collapse":"Kenar çubuğunu daralt","chrome.collapseAria":"Sağ kenar çubuğunu daralt","chrome.toFullscreen":"Tam ekran","chrome.exitFullscreen":"Tam ekrandan çık","dock.emptyPane":"Boş bölme","dock.splitPane":"Böl","dock.splitPaneDisabled":"İki bölme sınırdır","dock.splitPaneNarrow":"Bölmek için yeterli genişlik yok, kenar çubuğunu genişletin","dock.closeTab":"Kapat","dock.addTab":"Yeni sekme","dock.dockFloat":"Kenar çubuğuna geri gönder","dock.closeFloat":"Kapat","dock.drop.center":"Buraya taşı","dock.drop.left":"Sola böl ekle","dock.drop.right":"Sağa böl ekle","dock.drop.top":"Üste böl ekle","dock.drop.bottom":"Alta böl ekle","tab.guide.title":"Başlangıç","tab.unavailable":"Buradaki hiçbir şey bu tür içeriği henüz görüntüleyemiyor."},"skill":{"row.title":"Beceri","row.running":"Beceri yükleniyor","row.failed":"Beceri yüklenemedi","row.stopped":"Beceri yüklemesi durduruldu","row.instructions":"Talimatlar","row.inspect":"İncele","menu.userOnly":"yalnızca kullanıcı"},"subagent":{"diagnostic.corrupt":"bozuk oturum kaydı","diagnostic.unsupported":"desteklenmeyen alt ajan kayıt sürümü","diagnostic.unavailable":"oturum kaydı geçici olarak kullanılamıyor","duration.seconds":"{seconds}sn","duration.minutes":"{minutes}dk {seconds}sn","duration.hours":"{hours}sa {minutes}dk {seconds}sn","duration.days":"{days}g","duration.daysHours":"{days}g {hours}sa","duration.months":"~{months}ay","duration.monthsDays":"~{months}ay {days}g","duration.years":"~{years}y","duration.yearsMonths":"~{years}y {months}ay","duration.exactDays":"{days}g {hours}sa {minutes}dk {seconds}sn","duration.exactTitle":"Toplam etkin süre: {duration}","tokens.thousand":"{value}K","tokens.million":"{value}M","tokens.total":"{value} tok","loading.label":"Alt ajanlar yükleniyor…","loading.aria":"Alt ajanlar yükleniyor","load.error":"Alt ajanlar yüklenemedi","retry":"Yeniden dene","mode.oneShot":"tek seferlik","mode.continuable":"sürdürülebilir","activity.running":"çalışıyor","activity.inactive":"çalışmıyor","branch.collapse":"{label} alt öğelerini daralt","branch.expand":"{label} alt öğelerini genişlet","count.total.one":"{count} alt ajan","count.total.other":"{count} alt ajan","count.running.one":"{count} alt ajan çalışıyor","count.running.other":"{count} alt ajan çalışıyor","switcher.aria":"Alt ajan değiştir: {title}","tree.aria":"Alt ajan oturumları","readonly.oneShot.title":"Tek seferlik alt ajan kaydı","readonly.title":"Bu alt ajan şimdilik salt okunur","readonly.oneShot.body":"Tek seferlik görevler takip mesajı kabul etmez; tam yürütme kaydını burada inceleyin.","readonly.body":"Üst oturum çevrimdışı; mesaj göndermeye devam etmek için yeniden açın."},"settings.theme":{"appearance.title":"Görünüm","appearance.light":"Açık","appearance.dark":"Koyu","appearance.system":"Sistem","fontSize.title":"Yazı tipi boyutu","fontSize.description":"Yalnızca konuşma içeriğini etkiler","fontSize.unit":"px","fontSize.increase":"Yazı tipi boyutunu büyüt","fontSize.decrease":"Yazı tipi boyutunu küçült"},"trajectory":{"view.trajectory":"İşlem Akışı","toolbar.aria":"İşlem akışı araç çubuğu","toolbar.duration":"Süre","toolbar.useActualDuration":"Gerçek süreyi kullan","toolbar.useEqualWidth":"Eşit genişlikli işlemleri kullan","toolbar.actualTime":"Gerçek zaman","toolbar.turns":"Turlar","toolbar.expandTurns":"Turları genişlet","toolbar.collapseTurns":"Turları daralt","toolbar.calls":"Çağrılar","toolbar.expandCalls":"Çağrıları genişlet","toolbar.collapseCalls":"Çağrıları daralt","toolbar.search":"İşlem akışında ara","toolbar.searchPlaceholder":"Ara","kind.system":"SİSTEM","kind.user":"KULLANICI","kind.context":"BAĞLAM","kind.compacted":"SIKIŞTIRILMIŞ","kind.message":"Mesaj","kind.assistant":"ASİSTAN","kind.tool":"ARAÇ","kind.subtool":"ALT ARAÇ","kind.sub":"Alt","column.input":"Girdi","column.output":"Çıktı","column.think":"Düşün","column.time":"Zaman","column.model":"Model","column.tools":"Araçlar","turn.label":"{turn}. tur","section.betweenTurns":"Turlar arası","group.message":"Mesaj","group.step":"{step}. adım","group.compaction":"Sıkıştırma {seq}","status.failed":"Başarısız","status.pending":"Beklemede","status.completed":"Tamamlandı","timing.notAvailable":"Kullanılamıyor","timing.notRecorded":"Kaydedilmedi","timing.stepStartUnavailable":"Adım başlangıcı kullanılamıyor","timing.firstTokenUnavailable":"İlk token kullanılamıyor","timing.usageUnavailable":"Kullanım kullanılamıyor","timing.outputTokensUnavailable":"Çıktı token'ları kullanılamıyor","timing.durationTooShort":"Süre çok kısa","timing.showLocalTime":"Yerel saati göster","timing.showUnixTimestamp":"Unix zaman damgasını göster","timing.started":"Başladı","timing.totalDuration":"Toplam süre","timing.ttft":"TTFT","timing.generation":"Üretim","timing.throughput":"Verim","timing.duration":"Süre","timing.source":"Zamanlama kaynağı","timing.sessionTimestamps":"Oturum zaman damgaları","timing.sessionTimestampsRunning":"Oturum zaman damgaları (çalışıyor)","timing.request":"İstek Zamanlaması","unit.milliseconds":"{value} ms","unit.seconds":"{value} sn","unit.tokens":"{value} tok","unit.tokensPerSecond":"{value} tok/sn","usage.tokens":"Token","usage.reasoning":"Akıl yürütme","usage.content":"İçerik","usage.notReported":"Kullanım bildirilmedi","usage.input":"Girdi","usage.cached":"Önbellekli","usage.cacheCreated":"Önbellek oluşturuldu","usage.other":"Diğer","usage.output":"Çıktı","usage.thisRequest":"Bu istek","usage.sessionCumulative":"Oturum toplamı","options.notRecorded":"Seçenekler kaydedilmedi","options.json":"İstek seçenekleri JSON","source.unknown":"Bilinmiyor","source.user":"Kullanıcı","source.plugin":"Eklenti","source.pluginNamed":"Eklenti · {plugin}","source.goal":"Hedef","source.goalRound":"Hedef · Tur {round}","source.notRecorded":"Kaynak kaydedilmedi","source.messageJson":"Mesaj kaynağı JSON","tab.summary":"Özet","tab.rawOutput":"Ham Çıktı","tab.preview":"Önizleme","tab.raw":"Ham","tab.source":"Kaynak","tab.payload":"Yük","tab.result":"Sonuç","tab.schema":"Şema","tab.timing":"Zamanlama","tab.diff":"Fark","tab.systemPrompt":"Sistem İstemi","tab.tools":"Araçlar","tab.options":"Seçenekler","tab.usage":"Kullanım","record.toolCallOnly":"(yalnızca araç çağrısı)","record.noContent":"İçerik yok","record.noPayload":"Yük yakalanmadı","record.noResult":"Sonuç yakalanmadı","record.noOutput":"Çıktı yok","record.schemaUnavailable":"Şema kullanılamıyor","record.parameters":"Parametreler","record.resultJson":"Sonuç JSON","record.json":"JSON","record.parametersJson":"parametreler JSON","record.namedParametersJson":"{name} parametreleri JSON","record.payloadJson":"Yük JSON","record.outputJson":"Sonuç JSON","record.thinking":"Düşünme","record.systemPromptMissing":"Bu istekte sistem istemi yok","record.toolsMissing":"Bu istekte araç yok","record.systemPrompt":"Sistem İstemi","record.tools":"Araçlar","block.openSummary":"#{index} Bloğunun araç çağrısı özetini aç","block.openSummaryTitle":"Araç çağrısı özetini aç","block.label":"#{index} Blok {type}","history.loadingTrajectory":"İşlem akışı yükleniyor…","history.loadingEarlier":"Önceki geçmiş yükleniyor…","history.loadingEarlierAria":"Önceki geçmiş yükleniyor…","history.loadEarlier":"Önceki geçmişi yükle","history.clickToLoadEarlier":"Önceki geçmişi yüklemek için tıklayın","request.label":"#{request} İstek","request.labelCompaction":"#{request} İstek · Sıkıştırma","request.compaction":"Sıkıştırma · {section}","request.compactionPurpose":"Sıkıştırma","request.retryProgress":"{retry} / {maximum}","request.collapsedSummary":"Daraltılmış {kind} özeti, {summary}","request.collapsedTurn":"tur","request.collapsedAssistant":"asistan","request.rowAria":"{request}{kind}, {content}","request.rowPrefix":"İstek {request}, ","request.rowAriaCompaction":"İstek {request}, sıkıştırma","request.noContent":"içerik yok","summary.toolCalls.one":"{count} araç çağrısı","summary.toolCalls.other":"{count} araç çağrısı","summary.steps.one":"{count} adım","summary.steps.other":"{count} adım","details.event":"Olay ayrıntıları","details.resize":"Olay ayrıntılarını yeniden boyutlandır","details.resizeTitle":"Yeniden boyutlandırmak için sürükleyin. Sıfırlamak için çift tıklayın.","details.close":"Ayrıntıları kapat","details.status":"Durum","details.purpose":"Amaç","details.provider":"Sağlayıcı","details.model":"Model","details.toolCalls":"Araç çağrıları","details.subtoolCalls":"Alt araç çağrıları","details.error":"Hata","details.failure.auth":"API anahtarı geçersiz","details.retry":"Yeniden dene","details.scheduled":"Zamanlandı","details.retryDelay":"Yeniden deneme gecikmesi","details.result":"Sonuç","details.compacted":"Sıkıştırıldı","details.assistantMessage":"Asistan Mesajı","details.source":"Kaynak","details.hierarchy":"Hiyerarşi","details.toolCall":"Araç Çağrısı","timeline.aria":"İşlem akışı zaman çizelgesi","timeline.overviewAria":"Zaman çizelgesi genel görünümü; olaylara odaklanmak için yatay sürükleyin","timeline.noTimingData":"Zamanlama verisi yok","timeline.total":"Toplam {duration}","timeline.started":"{time} başladı","timeline.ttftDecoding":"TTFT {ttft} · Kod çözme {decoding}","layout.compacting":"Bağlam sıkıştırılıyor…","layout.compactionFailed":"Sıkıştırma başarısız","layout.compacted":"Bağlam sıkıştırıldı","layout.toolCallOnly":"Yalnızca araç çağrısı","layout.imageOnly":"Görseller ×{count}","layout.fileAttachments":"Dosyalar ×{count}","layout.initialSystemPrompt":"İlk Sistem İstemi","layout.systemPromptUpdated":"Sistem İstemi Güncellendi","layout.toolsUpdated":"Araçlar Güncellendi","layout.systemPromptAndToolsUpdated":"Sistem İstemi ve Araçlar Güncellendi","layout.compactionInterrupted":"Sıkıştırma tamamlanmadan kesildi."},"question":{"error.incomplete":"Lütfen önce bu soruyu tamamlayın.","error.unanswered":"Lütfen bir seçenek seçin veya özel bir yanıt girin.","nav.prev":"Önceki soru","nav.next":"Sonraki soru","nav.minimize":"Soru kartını daralt","nav.maximize":"Soru kartını genişlet","nav.cancel":"Tüm soruları kapat","option.recommended":"Önerilen","custom.placeholder":"Yanıtınızı yazın","action.skip":"Bu soruyu atla","action.next":"İleri","plan.header":"Plan incelemesi","plan.approve":"Onayla","plan.decline":"Reddet","plan.discuss":"Bunun hakkında konuş"},"workflowRun":{"run.title":"{name}","run.members.one":"{count} üye","run.members.other":"{count} üye","run.empty":"Başlatılan üye yok","phase.unassigned":"Aşamasız","phase.empty":"Boş aşama adı","statusCount.running":"Çalışan {count}","statusCount.completed":"Tamamlanan {count}","statusCount.failed":"Başarısız {count}","statusCount.cancelled":"İptal edilen {count}","statusCount.interrupted":"Kesilen {count}","member.empty":"Boş üye adı","member.open":"{name} aç","status.running":"Çalışıyor","status.completed":"Tamamlandı","status.failed":"Başarısız","status.cancelled":"İptal edildi","status.interrupted":"Kesildi"},"workspace":{"group.ungrouped":"Gruplanmamış","session.new":"Yeni Oturum","section.workspaces":"Çalışma alanları","section.sessions":"Oturumlar","viewOptions.label":"Görünüm seçenekleri","groupBy.label":"Grupla","groupBy.workspace":"Çalışma alanı","groupBy.flat":"Tek listede","orderBy.label":"Sırala","orderBy.manual":"Elle","orderBy.updated":"Son güncelleme","sessions.expand":"{n} oturum daha göster","sessions.collapse":"Daha az göster","empty.none":"Henüz oturum yok","empty.noMatches":"Eşleşme yok","workspace.add":"Çalışma alanı ekle","search.sessions.aria":"Oturumlarda ara","search.placeholder":"Oturumlarda ara...","search.clear":"Aramayı temizle","search.results.aria":"Arama sonuçları","search.pending":"Oturum geçmişinde aranıyor…","search.unavailable":"İçerik araması geçici olarak kullanılamıyor. Ad eşleşmeleri gösteriliyor.","search.noMatches":"Eşleşen oturum yok","search.hasMore":"İlk {n} sonuç gösteriliyor. Aramanızı daraltın.","menu.addWorkspace":"Çalışma alanı ekle…","picker.loading":"Çalışma alanları yükleniyor…","conflict.named":"“{name}” adlı bir çalışma alanı zaten var.","folderError.title":"Klasör açılamadı","folderError.retry":"Yeniden seç","rename":"Yeniden adlandır","rename.workspace.title":"Çalışma alanını yeniden adlandır","rename.session.title":"Oturumu yeniden adlandır","field.workspaceName":"Çalışma alanı adı","field.sessionName":"Oturum adı","delete.workspace":"Çalışma alanını sil","delete.desc":"Bu, “{name}” alanını çalışma alanı listesinden kaldırır. Klasör ve oturum günlükleri korunur. Oturumları Gruplanmamış altında görünür.","delete.pending":"Çalışma alanı siliniyor…","menu.fork":"Oturumu çatalla","menu.archiveSession":"Oturumu arşivle","sessions.count.one":"{n} oturum","sessions.count.other":"{n} oturum","actions.workspace.aria":"{name} için çalışma alanı işlemleri","actions.session.aria":"{name} için oturum işlemleri","actions.newSession.aria":"{name} içinde yeni oturum","status.running":"Çalışıyor","status.subagentsRunning.one":"{n} alt ajan çalışıyor","status.subagentsRunning.other":"{n} alt ajan çalışıyor","status.idle":"Boşta","status.waitingApproval":"Onay bekleniyor","status.planReview":"Plan inceleme bekliyor","status.waitingAnswer":"Yanıt bekleniyor","status.completed":"Tamamlandı","schedule.active":"Etkin zamanlanmış görev var","hover.created":"{time} oluşturuldu","hover.copied":"Kopyalandı","date.ymd":"{y}-{m}-{d}","time.now":"şimdi","time.minutes":"{n}dk","time.hours":"{n}sa","time.days":"{n}g","time.months":"{n}ay","time.years":"{n}y","time.ago":"{t} önce"},"conversation":{"hint.plan":"planı oluşturmak için görevini açıkla","hint.goal":"uzun süren bir görevin amacını açıkla","hint.goal.active":"hedef etkin — düzenle / duraklat / sürdür / temizle","placeholder.plan":"planı oluşturmak için görevini açıkla","placeholder.default":"Mesaj yazın ya da görev çalıştırın, / komutlar, @ dosyalar veya oturumlar","placeholder.unavailable":"Oturum kullanılamıyor","placeholder.parentOffline":"Üst oturum çevrimdışı; gönderme kullanılamıyor ama çalışmayı yine de durdurabilirsiniz","placeholder.hero":"Ne oluşturmak istediğinizi açıklayın, / komutlar, @ dosyalar veya oturumlar","placeholder.workspace":"Başlamak için bir çalışma alanı seçin","placeholder.steerQueue":"Cmd/Ctrl+Enter tüm sıradaki mesajları yönlendirir","input.commands":"Komutlar","input.stop":"Üretimi durdur","input.send":"Mesaj gönder","input.send.queue":"Mesajı sıraya al","input.send.steer":"Mesajı yönlendir","input.accessMode":"Erişim modu, geçerli: {name}","attachment.pending":"Bekleyen ekler","attachment.scrollLeft":"Ekleri sola kaydır","attachment.scrollRight":"Ekleri sağa kaydır","attachment.dropTitle":"Eklemek için dosyaları veya görselleri buraya sürükleyin","attachment.dropDesc":"Görsel sınırı: en fazla {count} görsel, her biri {size}","attachment.dropBlocked":"Şu anda dosya ve görsel eklenemez","image.pending":"Bekleyen görseller","image.openOriginal":"Orijinali görüntüle","image.openOriginalLabel":"{label}, orijinali görüntülemek için tıklayın","image.remove":"{name} görselini kaldır","image.original":"Orijinal görsel","image.label":"Görsel","image.loadFailed":"Görsel yüklenemedi; yeniden denemek için tıklayın","image.loading":"Görsel yükleniyor…","image.preview":"Orijinal görsel önizlemesi","image.closePreview":"Orijinal görsel önizlemesini kapat","image.unsupportedType":"Yalnızca PNG, JPG, WebP ve GIF görseller desteklenir","image.tooMany":"Bir mesaj en fazla {count} görsel içerebilir","image.fileTooLarge":"Her görsel {size} değerinden küçük olmalı","image.totalTooLarge":"Görseller toplamda {size} değerini aşıyor; bazılarını kaldırıp yeniden deneyin","image.tooManyPixels":"Görsel çözünürlüğü çok yüksek; sıkıştırıp yeniden deneyin","image.dimensionTooLarge":"Görsel kenarları en fazla {size}px olmalı; küçültüp yeniden deneyin","image.modelUnsupported":"Geçerli model görselleri desteklemiyor; destekleyen bir modele geçin","image.sendFailed":"Görseller gönderilemedi ({reason}); yeniden ekleyip deneyin","file.attach":"Ek ekle","file.pending":"Bekleyen dosyalar","file.remove":"{name} dosyasını kaldır","file.uploading":"Yükleniyor…","file.uploadFailed":"Yükleme başarısız; yeniden denemek için tıklayın","file.retry":"{name} yüklemesini yeniden dene","file.stillUploading":"Dosyalar hâlâ yükleniyor; bitince gönderin","file.sessionUnavailable":"Oturum kullanılamıyor; dosyalar yüklenemez","file.notStaged":"Dosya yüklemesi tamamlanmadı; yeniden ekleyip deneyin","file.label":"Dosya","context.aria":"bağlamın {percent} kadarı kullanıldı","context.used":"bağlam kullanıldı","context.system":"Sistem istemi","context.tools":"Araç tanımları","context.messages":"Mesajlar","settings.enter.title":"Meşgulken gönderme davranışı","settings.enter.description":"Ajan çalışırken Enter tuşu ve Gönder düğmesinin ne yaptığı; Cmd/Ctrl+Enter diğer davranışı kullanır","settings.enter.queue":"Sıraya al","settings.enter.steer":"Yönlendir","access.preset.readOnly":"Salt Okunur","access.preset.workspaceWrite":"Çalışma Alanına Yazma","access.preset.fullAccess":"Tam erişim","access.confirm.title":"Tam erişim etkinleştirilsin mi?","access.confirm.description":"Tam erişim onay adımlarını azaltır ve ajanın hassas işlemler, dosya değişiklikleri veya harici komutlar dâhil daha fazla işlemi doğrudan yapmasına olanak tanır. Yalnızca geçerli göreve güvendiğinizde kullanın.","access.confirm.acknowledge":"Riskleri anlıyorum ve devam etmek istiyorum","access.confirm.cancel":"İptal","access.confirm.enable":"Tam erişimi etkinleştir","hero.headline":"Bilinmeyene Doğru","hero.preview":"Önizleme","hero.chooseWorkspace":"Çalışma alanı seç","session.hierarchy":"Oturum hiyerarşisi","todo.title":"Yapılacaklar","todo.progress.done":"{done} tamamlandı","todo.progress.active":"{active} sürüyor","todo.progress.pending":"{pending} bekliyor","todo.rowTitle":"Yapılacaklar listesini güncelle","todo.completed":"{done}/{total} tamamlandı","command.attachmentsUnsupported":"/{command} ek kabul etmez; önce onları kaldırın","ask.rowTitle":"Soru sor","ask.waiting":"bekliyor","ask.cancelled":"iptal edildi","ask.cancelledDetail":"Bu soru grubu yanıtlar gönderilmeden iptal edildi.","ask.interrupted":"kesildi","ask.interruptedDetail":"Bu soru grubu yanıtlar gönderilmeden kesildi.","ask.answered":"{answered}/{total} yanıtlandı","ask.skipped":"Yanıtlanmadı","bash.running":"Çalışıyor","bash.failed":"Başarısız","bash.stopped":"Durduruldu","row.running":"Çalışıyor","row.failed":"Başarısız","row.stopped":"Durduruldu","row.input":"GİRDİ","row.output":"ÇIKTI","row.inspect":"İncele","tool.title.search":"Ara","tool.title.read":"Oku","tool.title.bash":"Bash","tool.title.write":"Yaz","tool.title.edit":"Düzenle","tool.title.code":"Kod","tool.title.generic":"Araç çağrısı","tool.title.inspect":"İncele","tool.title.runCordis":"Cordis Eklentisini Çalıştır","tool.title.stopCordis":"Cordis Eklentisini Durdur","tool.title.removeCordis":"Cordis Eklentisini Kaldır","tool.title.pwsh":"Pwsh","tool.title.readImage":"Görsel oku","tool.title.grep":"Grep","tool.title.glob":"Glob","tool.title.webSearch":"Ara","tool.title.webFetch":"Getir","diff.files.one":"{count} dosya","diff.files.other":"{count} dosya","diff.collapseAria":"Farkı daralt","diff.expandAria":"{count} fark satırı daha genişlet","diff.expandRest":"… {count} satır daha","read.window":"{total} satırın {shown} tanesi gösteriliyor","read.collapseAria":"İçeriği daralt","read.expandAria":"{count} satır daha genişlet","read.expandRest":"… {count} satır daha","search.paths":"{shown} yol","search.paths.truncated":"{total} yolun {shown} tanesi gösteriliyor","search.matches":"{shown} eşleşme · {files} dosya","search.matches.truncated":"{total} eşleşmenin {shown} tanesi gösteriliyor · {files} dosya","search.noResults":"Sonuç yok","search.collapseAria":"Sonuçları daralt","search.expandAria":"{count} sonuç satırı daha genişlet","search.expandRest":"… {count} satır daha","web.noResults":"Sonuç bulunamadı","web.sourcesTruncated":"Kaynak listesi kısaltıldı","web.http":"HTTP","web.contentTruncated":"İçerik kısaltıldı","details.running":"Çalışıyor…","queue.count":"{n} sıradaki mesaj","queue.sending":"Gönderiliyor…","queue.image":"Sıradaki mesaj görseli","queue.file":"Sıradaki dosya {name}","queue.edit":"Sıradaki mesajı düzenle","queue.edit.unsupported":"Metin dışı içerik var; düzenleme henüz desteklenmiyor","queue.save":"Sıradaki mesajı kaydet","queue.cancelEdit":"Düzenlemeyi iptal et","queue.remove":"Sıradaki mesajı kaldır","queue.steer":"Sıradaki mesajı yönlendir","queue.steer.unavailable":"Yönlendirme yalnızca ajan çalışırken kullanılabilir","queue.editFailed":"Düzenleme başarısız: bu mesaj gönderilmeye başlamış olabilir.","queue.removeFailed":"Kaldırma başarısız: bu mesaj gönderilmeye başlamış olabilir.","queue.steerFailed":"Yönlendirme başarısız. Yeniden deneyin.","terminal.signal":"sinyal {signal}","terminal.exitCode":"çıkış kodu {code}","terminal.running":"Çalışıyor","terminal.failed":"Başarısız","terminal.done":"Bitti","terminal.noOutput":"Çıktı yok","terminal.collapseAria":"Çıktıyı daralt","terminal.expandAria":"Kalan {n} çıktı satırını genişlet","terminal.expandRest":"… {n} satır daha","terminal.sendInput":"(girdi gönder)","terminal.session":"Terminal {sessionId}"},"open-in-app":{"open.title":"Çalışma alanını {app} ile aç","open.tooltip":"Yerelde aç","open.error":"Açılamadı","menu.toggle":"Açılacak bir uygulama seçin","menu.aria":"Şununla aç","app.finder":"Finder","app.explorer":"Dosya Gezgini","app.filemanager":"Dosyalar","app.terminal":"Terminal"}};
8
+ const inject = ["locale"];
9
+ function apply(ctx) {
10
+ ctx.effect(() => ctx.locale.addLanguage({ id: "tr", label: "Türkçe", fallback: "en" }), "dsh-locale-tr: language");
11
+ for (const ns of Object.keys(dicts)) {
12
+ const d = dicts[ns];
13
+ ctx.effect(() => ctx.locale.register(ns, "tr", d), "dsh-locale-tr: " + ns);
14
+ }
15
+ }
16
+ exports.apply = apply;
17
+ exports.inject = inject;
18
+ return module.exports;
19
+ }
20
+ });
package/lib/index.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * dsh-locale-tr — Node/Host half.
3
+ *
4
+ * This plugin has nothing to register on the Host side. Its only job here is to
5
+ * exist as a loadable Cordis plugin (named by an `insert:` entry in the web
6
+ * profile's cordis.patch.yml) so that @deepseek-ai/dsh-client-modules notices
7
+ * this package's `dsh.client` declaration and serves lib/client.js to the
8
+ * browser. All Turkish-language work happens in the browser half (lib/client.js,
9
+ * generated from src/translations.json).
10
+ */
11
+ export function apply(ctx) {
12
+ // intentionally empty — nothing needed on the Host/Node side.
13
+ }
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "dsh-locale-tr",
3
+ "version": "0.1.0",
4
+ "description": "Turkish (Türkçe) language pack for DeepSeek Harness (dsh) — a client plugin that registers the 'tr' UI locale.",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "exports": {
8
+ ".": "./lib/index.js",
9
+ "./client": "./lib/client.js",
10
+ "./package.json": "./package.json"
11
+ },
12
+ "files": [
13
+ "lib/",
14
+ "src/translations.json",
15
+ "src/client.js"
16
+ ],
17
+ "scripts": {
18
+ "build": "node scripts/build.mjs"
19
+ },
20
+ "dsh": {
21
+ "client": {
22
+ "inject": ["@deepseek-ai/dsh-client-locale"],
23
+ "platform": "web",
24
+ "immediately": true
25
+ }
26
+ },
27
+ "keywords": [
28
+ "dsh-plugin",
29
+ "deepseek-harness",
30
+ "dsh",
31
+ "locale",
32
+ "i18n",
33
+ "l10n",
34
+ "turkish",
35
+ "turkce",
36
+ "türkçe"
37
+ ],
38
+ "author": "Hasan Aytaç <aytacbilgisayar@gmail.com>",
39
+ "license": "MIT",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/aytacbilgisayar-hub/dsh-locale-tr.git"
43
+ },
44
+ "homepage": "https://github.com/aytacbilgisayar-hub/dsh-locale-tr#readme",
45
+ "bugs": {
46
+ "url": "https://github.com/aytacbilgisayar-hub/dsh-locale-tr/issues"
47
+ }
48
+ }