diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json new file mode 100644 index 000000000..c40067f11 --- /dev/null +++ b/public/locales/tr/common.json @@ -0,0 +1,318 @@ +{ + "nav": { + "home": "Ana Sayfa", + "about": "Hakkında", + "contact": "İletişim", + "licensing": "Lisanslama", + "allTools": "Tüm Araçlar", + "openMainMenu": "Ana menüyü aç", + "language": "Dil" + }, + "hero": { + "title": "Gizlilik temelli", + "pdfToolkit": "PDF Araç Seti", + "builtForPrivacy": "elinizin altında", + "noSignups": "Üyelik Yok", + "unlimitedUse": "Sınırsız Kullanım", + "worksOffline": "Çevrimdışı Çalışır", + "startUsing": "Hemen Kullanmaya Başla" + }, + "usedBy": { + "title": "Bu şirketler ve çalışanları tarafından kullanılıyor:" + }, + "features": { + "title": "Neden", + "bentoPdf": "BentoPDF?", + "noSignup": { + "title": "Üyelik Yok", + "description": "Hemen kullanın. Hesap veya e-posta gerekmez." + }, + "noUploads": { + "title": "Karşıya Yükleme Yok", + "description": "%100 istemci taraflı. Dosyalarınız asla cihazınızdan ayrılmaz." + }, + "foreverFree": { + "title": "Sonsuza Kadar Ücretsiz", + "description": "Deneme süresi ve ödeme duvarları olmadan tüm araçları kullanın." + }, + "noLimits": { + "title": "Sınırsız", + "description": "İstediğiniz kadar kullanırsınız; gizli kullanım limitleri yok." + }, + "batchProcessing": { + "title": "Toplu İşleme", + "description": "Bir seferde sınırsız PDF işleyin." + }, + "lightningFast": { + "title": "Yıldırım Hızında", + "description": "PDF'leri bekletmeden ve gecikmeden hemen işleyin." + } + }, + "tools": { + "title": "İşte Karşınızda", + "toolsLabel": "Araçlar", + "subtitle": "Dosya yükleyiciyi açmak için bir araç seçin", + "searchPlaceholder": "Bir araç arayın (örn. 'böl', 'düzenle'...)", + "backToTools": "Araçlara Dön" + }, + "upload": { + "clickToSelect": "Seçmek için tıklayın", + "orDragAndDrop": "veya sürükleyip bırakın", + "pdfOrImages": "PDF'ler veya Resimler", + "filesNeverLeave": "Dosyalarınız cihazınızdan asla ayrılmaz.", + "addMore": "Başka Dosya Ekle", + "clearAll": "Hepsini Temizle" + }, + "loader": { + "processing": "İşleniyor..." + }, + "alert": { + "title": "Uyarı", + "ok": "Tamam" + }, + "preview": { + "title": "Belge Önizlemesi", + "downloadAsPdf": "PDF Olarak İndir", + "close": "Kapat" + }, + "settings": { + "title": "Ayarlar", + "shortcuts": "Kısayollar", + "preferences": "Tercihler", + "displayPreferences": "Görüntü Tercihleri", + "searchShortcuts": "Kısayolları ara...", + "shortcutsInfo": "Kısayol atamak için tuşlara basın ve basılı tutun. Değişiklikler otomatik olarak kaydedilir.", + "shortcutsWarning": "⚠️ Yaygın tarayıcı kısayollarından kaçının (Cmd/Ctrl+W, Cmd/Ctrl+T, Cmd/Ctrl+N vb.) çünkü bu kısayollar güvenilir çalışmayabilir.", + "import": "İçe Aktar", + "export": "Dışa Aktar", + "resetToDefaults": "Varsayılana Sıfırla", + "fullWidthMode": "Tam Genişlik Modu", + "fullWidthDescription": "Ortalanmış kutucuk yerine tüm araçlar için tam ekran genişliği kullanın", + "settingsAutoSaved": "Ayarlar otomatik olarak kaydedildi", + "clickToSet": "Ayarlamak için tıklayın", + "pressKeys": "Tuşlara basın...", + "warnings": { + "alreadyInUse": "Kısayol Zaten Kullanımda", + "assignedTo": "zaten atanmış:", + "chooseDifferent": "Lütfen farklı bir kısayol seçin.", + "reserved": "Rezerve Kısayol Uyarısı", + "commonlyUsed": "genellikle şunun için kullanılır:", + "unreliable": "Bu kısayol güvenilir çalışmayabilir veya tarayıcı/sistem davranışlarıyla çakışabilir.", + "useAnyway": "Yine de kullanmak ister misiniz?", + "resetTitle": "Kısayolları Sıfırla", + "resetMessage": "Tüm kısayolları varsayılan değerlere sıfırlamak istediğinizden emin misiniz?

Bu işlem geri alınamaz.", + "importSuccessTitle": "İçe Aktarma Başarılı", + "importSuccessMessage": "Kısayollar başarıyla içe aktarıldı!", + "importFailTitle": "İçe Aktarma Başarısız", + "importFailMessage": "Kısayolları içe aktarma başarısız oldu. Geçersiz dosya formatı." + } + }, + "warning": { + "title": "Uyarı", + "cancel": "İptal", + "proceed": "Devam Et" + }, + "compliance": { + "title": "Verileriniz cihazınızdan asla ayrılmaz", + "weKeep": "Küresel güvenlik standartlarına uyarak", + "yourInfoSafe": "Bilgilerinizi güvende", + "byFollowingStandards": "tutuyoruz.", + "processingLocal": "Tüm işlemler cihazınızda yerel olarak gerçekleşir.", + "gdpr": { + "title": "GDPR Uyumlu", + "description": "Avrupa Birliği'ndeki bireylerin kişisel verilerini ve gizliliğini korur." + }, + "ccpa": { + "title": "CCPA Uyumlu", + "description": "California sakini olanların kişisel bilgilerinin nasıl toplanacağı, kullanılacağı ve paylaşılacağı konusunda haklarını korur." + }, + "hipaa": { + "title": "HIPAA Uyumlu", + "description": "ABD sağlık sisteminde hassas sağlık bilgilerinin işlenmesi için koruma önlemlerine sahiptir." + } + }, + "faq": { + "title": "Sık Sorulan", + "questions": "Sorular", + "isFree": { + "question": "BentoPDF gerçekten ücretsiz mi?", + "answer": "Evet, kesinlikle. BentoPDF'deki tüm araçlar üyelik, dosya sınırlaması, filigran olmadan %100 ücretsizdir. Herkesin basit, güçlü PDF araçlarına ödeme duvarı olmadan erişimi hak ettiğine inanıyoruz." + }, + "areFilesSecure": { + "question": "Dosyalarım güvenli mi? Hangi cihazda işleniyor?", + "answer": "Dosyalarınız mümkün olduğu kadar güvenlidir çünkü asla bilgisayarınızdan ayrılmaz. Tüm işlemler doğrudan web tarayıcınızda (istemci tarafında) gerçekleşir. Dosyalarınızı asla sunucuya yüklemediğimiz için belgelerinizin gizliliğini ve kontrolünü tamamen siz elinizde tutarsınız." + }, + "platforms": { + "question": "Mac, Windows ve Mobil cihazlarda çalışıyor mu?", + "answer": "Evet! BentoPDF tamamen tarayıcınızda çalıştığından, Windows, macOS, Linux, iOS ve Android dâhil olmak üzere modern web tarayıcısı olan her işletim sisteminde çalışır." + }, + "gdprCompliant": { + "question": "BentoPDF GDPR uyumlu mu?", + "answer": "Evet. BentoPDF tamamen GDPR uyumludur. Tüm dosya işlemleri doğrudan tarayıcınızda yerel olarak gerçekleştiğinden ve dosyalarınızı hiçbir sunucuya göndermediğimizden verilerinize erişimimiz olmaz. Bu da daima belgelerinizin kontrolünün sizde olduğunu garanti eder." + }, + "dataStorage": { + "question": "Herhangi bir dosyamı saklıyor ya da takip ediyor musunuz?", + "answer": "Hayır. Hiçbir zaman dosyalarınızı saklamaz, takip etmez ya da günlüğe kaydetmeyiz. BentoPDF'de yaptığınız her şey tarayıcı belleğinizde olur ve sayfayı kapattığınızda ortadan kalkar. Sunuculara yükleme, geçmiş günlükleri veya sunucu bağlantısı yoktur." + }, + "different": { + "question": "BentoPDF diğer PDF araçlarından neyi farklı kılıyor?", + "answer": "Çoğu PDF aracı, işleme için dosyalarınızı sunucuya yükler. BentoPDF bunu asla yapmaz. Dosyalarınızı doğrudan tarayıcınızda işlemek için güvenli, modern web teknolojileri kullanıyoruz. Daha hızlı performans, daha güçlü gizlilik ve tam rahatlama anlamına gelir." + }, + "browserBased": { + "question": "Tarayıcı tabanlı işleme beni nasıl güvende tutar?", + "answer": "Tamamen tarayıcınız içinde çalışarak BentoPDF, dosyalarınızın cihazınızdan asla ayrılmadığından emin olur. Bu, sunucu saldırıları, veri ihlalleri veya yetkisiz erişim risklerini ortadan kaldırır. Dosyalarınız daima size aittir." + }, + "analytics": { + "question": "Beni takip etmek için çerezler veya analiz araçları kullanıyor musunuz?", + "answer": "Gizliliğinize önem veriyoruz. BentoPDF kişisel bilgileri takip etmez. Sadece anonim ziyaret sayılarını görmek için Simple Analytics kullanıyoruz. Bu demektir ki sitemizi kaç kullanıcının ziyaret ettiğini bilebiliriz ama kim olduğunuzu asla öğrenmeyiz. Simple Analytics tamamen GDPR uyumludur ve gizliliğinize saygı duyar." + } + }, + "testimonials": { + "title": "İşte", + "users": "Kullanıcılarımızın", + "say": "Yorumları" + }, + "support": { + "title": "Çalışmalarımı Beğendiniz mi?", + "description": "BentoPDF herkes için ücretsiz, özel ve güçlü bir PDF araç seti sağlamaya yönelik bir tutku projesidir. Yararlı bulduysanız geliştirilmesini desteklemeyi düşünün. Her kahve destek anlamına gelir!", + "buyMeCoffee": "Bana Bir Kahve Ismarlayın" + }, + "footer": { + "copyright": "© 2025 BentoPDF. Tüm hakları saklıdır.", + "version": "Sürüm", + "company": "Şirket", + "aboutUs": "Hakkımızda", + "faqLink": "SSS", + "contactUs": "İletişim", + "legal": "Yasal", + "termsAndConditions": "Kullanım Şartları", + "privacyPolicy": "Gizlilik Politikası", + "followUs": "Bizi Takip Edin" + }, + "merge": { + "title": "PDF'leri Birleştir", + "description": "Tam dosyaları birleştirin ya da yeni belgede belirli sayfaları birleştirmek için seçin.", + "fileMode": "Dosya Modu", + "pageMode": "Sayfa Modu", + "howItWorks": "Nasıl çalışır:", + "fileModeInstructions": [ + "Dosyaların sırasını değiştirmek için simgeyi tıklayıp sürükleyin.", + "Her dosyanın \"Sayfalar\" kutusuna, sadece o sayfaları birleştirmek için aralıklar belirtebilirsiniz (örn. \"1-3, 5\").", + "O dosyadaki tüm sayfaları dâhil etmek için \"Sayfalar\" kutusunu boş bırakın." + ], + "pageModeInstructions": [ + "Yüklenen PDF dosyalarınızdaki tüm sayfalar aşağıda gösterilmiştir.", + "Yeni dosyanız için tam sırayı oluşturmak için bireysel sayfa küçük resimlerini sürükleyip bırakmanız yeterlidir." + ], + "mergePdfs": "PDF'leri Birleştir" + }, + "common": { + "page": "Sayfa", + "pages": "Sayfalar", + "of": "/", + "download": "İndir", + "cancel": "İptal", + "save": "Kaydet", + "delete": "Sil", + "edit": "Düzenle", + "add": "Ekle", + "remove": "Kaldır", + "loading": "Yükleniyor...", + "error": "Hata", + "success": "Başarılı", + "file": "Dosya", + "files": "Dosyalar" + }, + "about": { + "hero": { + "title": "PDF araçları", + "subtitle": "hızlı, gizli ve ücretsiz olmalı.", + "noCompromises": "O kadar." + }, + "mission": { + "title": "Misyonumuz", + "description": "Gizliliğinize saygı duyan ve asla ödeme talep etmeyen en kapsamlı PDF araç setini sunmak. Gerekli belge araçlarına herkesin, her yerde engeller olmadan erişebilmesi gerektiğine inanıyoruz." + }, + "philosophy": { + "label": "Temel Felsefemiz", + "title": "Önce Gizlilik. Her zaman.", + "description": "Verinin bir malzeme olduğu çağda farklı bir yaklaşım izliyoruz. Bentopdf araçları için gerekli tüm işlemler tarayıcınızda yerel olarak gerçekleşir. Bu, dosyalarınızın sunucularımıza asla ulaşmayacağı, belgelerinizi asla göremeyeceğimiz ve yaptıklarınızı takip edemeyeceğimiz anlamına gelir. Belgeleriniz tamamen ve kesinlikle özeldir. Bu sadece bir özellik değil, temelimizdir." + }, + "whyBentopdf": { + "title": "Neden", + "speed": { + "title": "Hız İçin Tasarlandı", + "description": "Sunucuya yükleme veya indirme beklemek yok. WebAssembly gibi modern web teknolojilerini kullanarak dosyaları doğrudan tarayıcınızda işleyerek tüm araçlarımıza eşsiz bir hız sunuyoruz." + }, + "free": { + "title": "Tamamen Ücretsiz", + "description": "Deneme sürümleri yok, abonelikler yok, gizli ücretler yok ve \"premium\" özellikleri rehin tutmuyoruz. Güçlü PDF araçlarının bir kamu hizmeti olması gerektiğine inanıyoruz." + }, + "noAccount": { + "title": "Hesap Gerektirmez", + "description": "Herhangi bir aracı hemen kullanmaya başlayın. E-posta adresinize, şifreye veya kişisel bilgilerinize ihtiyacımız yok. İş akışınız sorunsuz ve anonim olmalı." + }, + "openSource": { + "title": "Açık Kaynak Ruhu", + "description": "Şeffaflık çerçevesinde inşa edildi. PDF-lib ve PDF.js gibi inanılmaz açık kaynak kütüphanelerden yararlanıyoruz ve güçlü araçlara herkesin erişebilmesi için topluluk odaklı çabaya inanıyoruz." + } + }, + "cta": { + "title": "Başlamaya hazır mısınız?", + "description": "Günlük belge ihtiyaçları için Bentopdf'ye güvenen binlerce kullanıcıya katılın. Gizlilik ve performansın farkını deneyimleyin.", + "button": "Tüm Araçları Keşfedin" + } + }, + "contact": { + "title": "İletişime Geçin", + "subtitle": "Sizden haber almayı çok isteriz. Sorularınız, geri bildirimleriniz ya da özellik istekleriniz olursa lütfen çekinmeden bizimle iletişime geçin.", + "email": "Doğrudan şu e-posta adresiyle bize ulaşabilirsiniz:" + }, + "licensing": { + "title": "Lisanslama", + "subtitle": "İhtiyaçlarınıza uygun lisansı seçin." + }, + "multiTool": { + "uploadPdfs": "PDF Yükle", + "upload": "Yükle", + "addBlankPage": "Boş Sayfa Ekle", + "edit": "Düzenle:", + "undo": "Geri Al", + "redo": "İleri Al", + "reset": "Sıfırla", + "selection": "Seçim:", + "selectAll": "Tümünü Seç", + "deselectAll": "Tüm Seçimi Kaldır", + "rotate": "Döndür:", + "rotateLeft": "Sola", + "rotateRight": "Sağa", + "transform": "Dönüştür:", + "duplicate": "Çoğalt", + "split": "Böl", + "clear": "Temizle:", + "delete": "Sil", + "download": "İndir:", + "downloadSelected": "Seçilenleri İndir", + "exportPdf": "PDF Olarak Dışa Aktar", + "uploadPdfFiles": "PDF Dosyalarını Seç", + "dragAndDrop": "PDF dosyalarını buraya sürükleyip bırakın veya seçmek için tıklayın", + "selectFiles": "Dosyaları Seç", + "renderingPages": "Sayfalar oluşturuluyor...", + "actions": { + "duplicatePage": "Bu sayfayı çoğalt", + "deletePage": "Bu sayfayı sil", + "insertPdf": "Bu sayfadan sonra PDF ekle", + "toggleSplit": "Bundan sonra bölme seçeneğini değiştir" + }, + "pleaseWait": "Lütfen Bekleyin", + "pagesRendering": "Sayfalar hala oluşturuluyor. Lütfen bekleyin...", + "noPagesSelected": "Sayfa Seçilmedi", + "selectOnePage": "İndirmek için en az bir sayfa seçin.", + "noPages": "Sayfa Yok", + "noPagesToExport": "Dışa aktarılacak sayfa yok.", + "renderingTitle": "Sayfa önizlemeleri oluşturuluyor", + "errorRendering": "Sayfa küçük resimleri oluşturulamadı", + "error": "Hata", + "failedToLoad": "Yüklenemedi" + } +} \ No newline at end of file diff --git a/public/locales/tr/tools.json b/public/locales/tr/tools.json new file mode 100644 index 000000000..9a77b5008 --- /dev/null +++ b/public/locales/tr/tools.json @@ -0,0 +1,282 @@ +{ + "categories": { + "popularTools": "Popüler Araçlar", + "editAnnotate": "Düzenle ve Açıklama Ekle", + "convertToPdf": "PDF'ye Dönüştür", + "convertFromPdf": "PDF'den Dönüştür", + "organizeManage": "Düzenle ve Yönet", + "optimizeRepair": "Optimize Et ve Onar", + "securePdf": "PDF Güvenceye Al" + }, + "pdfMultiTool": { + "name": "PDF Çoklu Araç", + "subtitle": "Birleştir, Böl, Düzenle, Sil, Döndür, Boş Sayfa Ekle, Çıkar ve Tek bir arayüzde çoğalt." + }, + "mergePdf": { + "name": "PDF Birleştir", + "subtitle": "Birden fazla PDF dosyasını tek bir dosyada birleştirin. Yer İşaretlerini Korur." + }, + "splitPdf": { + "name": "PDF Böl", + "subtitle": "Belirli sayfaları yeni bir PDF olarak çıkarın." + }, + "compressPdf": { + "name": "PDF Sıkıştır", + "subtitle": "PDF dosyanızın boyutunu küçültün." + }, + "pdfEditor": { + "name": "PDF Düzenleyici", + "subtitle": "Açıklama ekleme, vurgulama, düzeltme, yorum ekleme, şekil/resim ekleme, arama ve PDF görüntüleme işlemleri." + }, + "jpgToPdf": { + "name": "JPG'den PDF'ye", + "subtitle": "Bir veya daha fazla JPG resminden PDF oluşturun." + }, + "signPdf": { + "name": "PDF İmzala", + "subtitle": "Çizerek, yazarak ya da imzanızı yükleyerek imzalayın." + }, + "cropPdf": { + "name": "PDF Kırp", + "subtitle": "PDF'inizdeki her sayfanın kenar boşluklarını kırpın." + }, + "extractPages": { + "name": "Sayfaları Çıkar", + "subtitle": "Seçili sayfaları yeni dosya olarak kaydedin." + }, + "duplicateOrganize": { + "name": "Çoğalt ve Düzenle", + "subtitle": "Sayfaları çoğaltın, yeniden sıralayın ve silin." + }, + "deletePages": { + "name": "Sayfa Sil", + "subtitle": "Belgenizden belirli sayfaları kaldırın." + }, + "editBookmarks": { + "name": "Yer İşaretlerini Düzenle", + "subtitle": "PDF yer işaretleri ekleyin, düzenleyin, içe aktarın, silin ve çıkarın." + }, + "tableOfContents": { + "name": "İçindekiler", + "subtitle": "PDF yer işaretlerinden bir içerik tablosu sayfası oluşturun." + }, + "pageNumbers": { + "name": "Sayfa Numaraları", + "subtitle": "Belgenize sayfa numaraları ekleyin." + }, + "addWatermark": { + "name": "Filigran Ekle", + "subtitle": "PDF sayfalarınızın üzerine metin veya bir resim yerleştirin." + }, + "headerFooter": { + "name": "Başlık ve Altbilgi", + "subtitle": "Sayfaların en üstüne ve altına metin ekleyin." + }, + "invertColors": { + "name": "Renkleri Ters Çevir", + "subtitle": "PDF'nizin \"koyu tema\" sürümünü oluşturun." + }, + "backgroundColor": { + "name": "Arka Plan Rengi", + "subtitle": "PDF'nizin arka plan rengini değiştirin." + }, + "changeTextColor": { + "name": "Metin Rengini Değiştir", + "subtitle": "PDF'deki metin rengini değiştirin." + }, + "addStamps": { + "name": "Damga Ekle", + "subtitle": "Ek açıklama araç çubuğunu kullanarak PDF'nize resim damgaları ekleyin.", + "usernameLabel": "Damga Kullanıcı Adı", + "usernamePlaceholder": "Adınızı girin (damgalar için)", + "usernameHint": "Bu ad oluşturduğunuz damgalarda görünecektir." + }, + "removeAnnotations": { + "name": "Açıklamaları Kaldır", + "subtitle": "Yorumları, vurguları ve bağlantıları kaldırın." + }, + "pdfFormFiller": { + "name": "PDF Form Doldurucu", + "subtitle": "Tarayıcıda doğrudan formları doldurun. Ayrıca XFA formlarını da destekler." + }, + "createPdfForm": { + "name": "PDF Form Oluştur", + "subtitle": "Sürükle-bırak metin alanları ile doldurulabilir PDF formlar oluşturun." + }, + "removeBlankPages": { + "name": "Boş Sayfaları Kaldır", + "subtitle": "Boş sayfaları otomatik olarak tespit edip silin." + }, + "imageToPdf": { + "name": "Resimden PDF'ye", + "subtitle": "JPG, PNG, WebP, BMP, TIFF, SVG, HEIC dosyalarını PDF'ye dönüştürün." + }, + "pngToPdf": { + "name": "PNG'den PDF'ye", + "subtitle": "Bir veya daha fazla PNG resminden PDF oluşturun." + }, + "webpToPdf": { + "name": "WebP'den PDF'ye", + "subtitle": "Bir veya daha fazla WebP resminden PDF oluşturun." + }, + "svgToPdf": { + "name": "SVG'den PDF'ye", + "subtitle": "Bir veya daha fazla SVG resminden PDF oluşturun." + }, + "bmpToPdf": { + "name": "BMP'den PDF'ye", + "subtitle": "Bir veya daha fazla BMP resminden PDF oluşturun." + }, + "heicToPdf": { + "name": "HEIC'den PDF'ye", + "subtitle": "Bir veya daha fazla HEIC resminden PDF oluşturun." + }, + "tiffToPdf": { + "name": "TIFF'den PDF'ye", + "subtitle": "Bir veya daha fazla TIFF resminden PDF oluşturun." + }, + "textToPdf": { + "name": "Metinden PDF'ye", + "subtitle": "Düz metin dosyasını PDF'ye dönüştürün." + }, + "jsonToPdf": { + "name": "JSON'dan PDF'ye", + "subtitle": "JSON dosyalarını PDF formatına dönüştürün." + }, + "pdfToJpg": { + "name": "PDF'den JPG'ye", + "subtitle": "Her PDF sayfasını JPG resmi olarak dönüştürün." + }, + "pdfToPng": { + "name": "PDF'den PNG'ye", + "subtitle": "Her PDF sayfasını PNG resmi olarak dönüştürün." + }, + "pdfToWebp": { + "name": "PDF'den WebP'ye", + "subtitle": "Her PDF sayfasını WebP resmi olarak dönüştürün." + }, + "pdfToBmp": { + "name": "PDF'den BMP'ye", + "subtitle": "Her PDF sayfasını BMP resmi olarak dönüştürün." + }, + "pdfToTiff": { + "name": "PDF'den TIFF'ye", + "subtitle": "Her PDF sayfasını TIFF resmi olarak dönüştürün." + }, + "pdfToGreyscale": { + "name": "PDF'yi Gri Tonlamaya Dönüştür", + "subtitle": "Tüm renkleri siyah-beyaza dönüştürün." + }, + "pdfToJson": { + "name": "PDF'den JSON'a", + "subtitle": "PDF dosyalarını JSON formatına dönüştürün." + }, + "ocrPdf": { + "name": "OCR PDF", + "subtitle": "PDF'yi aranabilir ve kopyalanabilir hâle getirin." + }, + "alternateMix": { + "name": "Sayfaları Alternatif Karıştır", + "subtitle": "PDF'leri her birinden sayfaları alternatif olarak alarak birleştirin. Yer İşaretlerini Korur." + }, + "addAttachments": { + "name": "Ek Dosyalar Ekle", + "subtitle": "Bir veya daha fazla dosyayı PDF'nize gömün." + }, + "extractAttachments": { + "name": "Ek Dosyaları Çıkar", + "subtitle": "Tüm gömülü dosyaları PDF(ler)den ZIP olarak çıkarın." + }, + "editAttachments": { + "name": "Ek Dosyaları Düzenle", + "subtitle": "PDF'nizdeki ekleri görüntüleyin veya kaldırın." + }, + "dividePages": { + "name": "Sayfaları Böl", + "subtitle": "Sayfaları yatay veya dikey olarak bölün." + }, + "addBlankPage": { + "name": "Boş Sayfa Ekle", + "subtitle": "PDF'nizin herhangi bir yerine boş bir sayfa ekleyin." + }, + "reversePages": { + "name": "Sayfaları Ters Çevir", + "subtitle": "Belgedeki tüm sayfaların sırasını tersine çevirin." + }, + "rotatePdf": { + "name": "PDF Döndür", + "subtitle": "Sayfaları 90 derecelik artışlarla döndürün." + }, + "nUpPdf": { + "name": "N-Up PDF", + "subtitle": "Birden fazla sayfayı tek bir sayfaya yerleştirin." + }, + "combineToSinglePage": { + "name": "Tek Sayfada Birleştir", + "subtitle": "Tüm sayfaları sürekli bir kaydırma olarak birleştirin." + }, + "viewMetadata": { + "name": "Meta Verileri Görüntüle", + "subtitle": "PDF'nizin gizli özelliklerini inceleyin." + }, + "editMetadata": { + "name": "Meta Verileri Düzenle", + "subtitle": "Yazar, başlık ve diğer özellikleri değiştirin." + }, + "pdfsToZip": { + "name": "PDF'leri ZIP'e Dönüştür", + "subtitle": "Birden fazla PDF dosyasını ZIP arşivine paketleyin." + }, + "comparePdfs": { + "name": "PDF'leri Karşılaştır", + "subtitle": "İki PDF'i yan yana karşılaştırın." + }, + "posterizePdf": { + "name": "PDF'yi Posterleştir", + "subtitle": "Büyük bir sayfayı birden fazla küçük sayfaya bölün." + }, + "fixPageSize": { + "name": "Sayfa Boyutunu Düzelt", + "subtitle": "Tüm sayfaları standart bir boyuta getirin." + }, + "linearizePdf": { + "name": "PDF'yi Doğrusallaştır", + "subtitle": "PDF'yi hızlı web görüntülemesi için optimize edin." + }, + "pageDimensions": { + "name": "Sayfa Boyutları", + "subtitle": "Sayfa boyutu, yönü ve ölçü birimlerini analiz edin." + }, + "removeRestrictions": { + "name": "Kısıtlamaları Kaldır", + "subtitle": "Dijital olarak imzalanan PDF dosyalarıyla ilişkili parola korumasını ve güvenlik kısıtlamalarını kaldırın." + }, + "repairPdf": { + "name": "PDF Onar", + "subtitle": "Bozulmuş veya zarar görmüş PDF dosyalarından veri kurtarın." + }, + "encryptPdf": { + "name": "PDF Şifrele", + "subtitle": "PDF'nizi bir parola ekleyerek kilitleyin." + }, + "sanitizePdf": { + "name": "PDF Temizle", + "subtitle": "Meta verileri, açıklamaları, komut dosyalarını ve daha fazlasını kaldırın." + }, + "decryptPdf": { + "name": "PDF Şifresini Kaldır", + "subtitle": "PDF'nin kilidini parola korumasını kaldırarak açın." + }, + "flattenPdf": { + "name": "PDF'yi Düzleştir", + "subtitle": "Form alanlarını ve açıklamaları düzenlenemez hâle getirin." + }, + "removeMetadata": { + "name": "Meta Verileri Kaldır", + "subtitle": "PDF'nizden gizli verileri temizleyin." + }, + "changePermissions": { + "name": "İzinleri Değiştir", + "subtitle": "Bir PDF üzerinde kullanıcı izinlerini ayarlayın veya değiştirin." + } +} \ No newline at end of file diff --git a/src/js/i18n/i18n.ts b/src/js/i18n/i18n.ts index f29f7d644..16fb32074 100644 --- a/src/js/i18n/i18n.ts +++ b/src/js/i18n/i18n.ts @@ -3,7 +3,7 @@ import LanguageDetector from 'i18next-browser-languagedetector'; import HttpBackend from 'i18next-http-backend'; // Supported languages -export const supportedLanguages = ['en', 'de', 'zh', 'vi'] as const; +export const supportedLanguages = ['en', 'de', 'zh', 'vi', 'tr'] as const; export type SupportedLanguage = (typeof supportedLanguages)[number]; export const languageNames: Record = { @@ -11,11 +11,12 @@ export const languageNames: Record = { de: 'Deutsch', zh: '中文', vi: 'Tiếng Việt', + tr: 'Türkçe', }; export const getLanguageFromUrl = (): SupportedLanguage => { const path = window.location.pathname; - const langMatch = path.match(/^\/(en|de|zh|vi)(?:\/|$)/); + const langMatch = path.match(/^\/(en|de|zh|vi|tr)(?:\/|$)/); if (langMatch && supportedLanguages.includes(langMatch[1] as SupportedLanguage)) { return langMatch[1] as SupportedLanguage; } @@ -71,9 +72,9 @@ export const changeLanguage = (lang: SupportedLanguage): void => { const currentLang = getLanguageFromUrl(); let newPath: string; - if (currentPath.match(/^\/(en|de|zh|vi)\//)) { - newPath = currentPath.replace(/^\/(en|de|zh|vi)\//, `/${lang}/`); - } else if (currentPath.match(/^\/(en|de|zh|vi)$/)) { + if (currentPath.match(/^\/(en|de|zh|vi|tr)\//)) { + newPath = currentPath.replace(/^\/(en|de|zh|vi|tr)\//, `/${lang}/`); + } else if (currentPath.match(/^\/(en|de|zh|vi|tr)$/)) { newPath = `/${lang}`; } else { newPath = `/${lang}${currentPath}`; @@ -135,7 +136,7 @@ export const rewriteLinks = (): void => { return; } - if (href.match(/^\/(en|de|zh|vi)\//)) { + if (href.match(/^\/(en|de|zh|vi|tr)\//)) { return; } let newHref: string; diff --git a/vite.config.ts b/vite.config.ts index 32552f50c..66f27dd2f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -11,7 +11,7 @@ function pagesRewritePlugin(): Plugin { server.middlewares.use((req, res, next) => { const url = req.url?.split('?')[0] || ''; - const langMatch = url.match(/^\/(en|de|zh|vi)(\/.*)?$/); + const langMatch = url.match(/^\/(en|de|zh|vi|tr)(\/.*)?$/); if (langMatch) { const lang = langMatch[1]; const restOfPath = langMatch[2] || '/';