Compare commits

...

4 Commits

Author SHA1 Message Date
Ludy
1d68ec287a
Merge fa8df329dfcd0299d533fd6dd4e92a52975a6564 into 3fda82e39d6a6922143394c2b4a9d758496aff4d 2025-04-16 18:46:49 +01:00
ConnorYoh
3fda82e39d
2728 bug signed rotated document different than preview (#3360)
# Description of Changes

Please provide a summary of the changes, including:

- Change the maths for accounting for rotation in add image and sign.
- Images are now placed in the expected place


Closes #2728 

---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md)
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md)
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:21:08 +01:00
Muratcan Yeldan
a1013a339a
Update messages_tr_TR.properties (#3363)
# Description of Changes

Completed the rest of the untranslated labels to Turkish(tr_TR).

---

## Checklist

### General

- [X] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [X] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md)
(if applicable)
- [X] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md)
(if applicable)
- [X] I have performed a self-review of my own code
- [X] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:20:37 +01:00
Peter Dave Hello
5430e6d159
Update and improve zh_TW Traditional Chinese locale (#3362)
# Description of Changes

Update and improve zh_TW Traditional Chinese locale

cc #3152 #3337

---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md)
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md)
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
2025-04-16 16:20:26 +01:00
4 changed files with 309 additions and 306 deletions

View File

@ -10,9 +10,9 @@ multiPdfPrompt=PDFleri seçin (2+)
multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın) multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın)
imgPrompt=Resim(leri) seçin imgPrompt=Resim(leri) seçin
genericSubmit=Gönder genericSubmit=Gönder
uploadLimit=Maximum file size: uploadLimit=Maksimum dosya boyutu:
uploadLimitExceededSingular=is too large. Maximum allowed size is uploadLimitExceededSingular=çok büyük. İzin verilen maksimum boyut:
uploadLimitExceededPlural=are too large. Maximum allowed size is uploadLimitExceededPlural=çok büyük. İzin verilen maksimum boyut:
processTimeWarning=Uyarı: Bu işlem, dosya boyutuna bağlı olarak bir dakikaya kadar sürebilir. processTimeWarning=Uyarı: Bu işlem, dosya boyutuna bağlı olarak bir dakikaya kadar sürebilir.
pageOrderPrompt=Özel Sayfa Sırası (Virgülle ayrılmış sayfa numaraları veya 2n+1 gibi bir fonksiyon girin) : pageOrderPrompt=Özel Sayfa Sırası (Virgülle ayrılmış sayfa numaraları veya 2n+1 gibi bir fonksiyon girin) :
pageSelectionPrompt=Özel Sayfa Seçimi (1,5,6 sayfa numaralarının virgülle ayrılmış bir listesini veya 2n+1 gibi bir fonksiyon girin) : pageSelectionPrompt=Özel Sayfa Seçimi (1,5,6 sayfa numaralarının virgülle ayrılmış bir listesini veya 2n+1 gibi bir fonksiyon girin) :
@ -80,20 +80,20 @@ color=Renk
sponsor=Bağış sponsor=Bağış
info=Bilgi info=Bilgi
pro=Pro pro=Pro
page=Page page=Sayfa
pages=Pages pages=Sayfalar
loading=Loading... loading=Yükleniyor...
addToDoc=Add to Document addToDoc=Dökümana Ekle
reset=Reset reset=Sıfırla
apply=Apply apply=Uygula
noFileSelected=No file selected. Please upload one. noFileSelected=Hiçbir dosya seçilmedi. Lütfen bir dosya yükleyin.
legal.privacy=Gizlilik Politikası legal.privacy=Gizlilik Politikası
legal.terms=Şartlar ve koşullar legal.terms=Şartlar ve koşullar
legal.accessibility=Erişilebilirlik legal.accessibility=Erişilebilirlik
legal.cookie=Çerez Politikası legal.cookie=Çerez Politikası
legal.impressum=Hakkımızda legal.impressum=Hakkımızda
legal.showCookieBanner=Cookie Preferences legal.showCookieBanner=Çerez Tercihleri
############### ###############
# Pipeline # # Pipeline #
@ -123,21 +123,21 @@ pipelineOptions.validateButton=Doğrula
######################## ########################
# ENTERPRISE EDITION # # ENTERPRISE EDITION #
######################## ########################
enterpriseEdition.button=Upgrade to Pro enterpriseEdition.button=Pro Sürümüne Yükselt
enterpriseEdition.warning=This feature is only available to Pro users. enterpriseEdition.warning=Bu özellik yalnızca Pro kullanıcılarına sunulmaktadır.
enterpriseEdition.yamlAdvert=Stirling PDF Pro supports YAML configuration files and other SSO features. enterpriseEdition.yamlAdvert=Stirling PDF Pro, YAML yapılandırma dosyalarını ve diğer SSO özelliklerini destekler.
enterpriseEdition.ssoAdvert=Looking for more user management features? Check out Stirling PDF Pro enterpriseEdition.ssoAdvert=Daha fazla kullanıcı yönetimi özelliği mi arıyorsunuz? Stirling PDF Pro'ya göz atın
################# #################
# Analytics # # Analytics #
################# #################
analytics.title=Do you want make Stirling PDF better? analytics.title=Stirling PDFi daha iyi hale getirmek ister misiniz?
analytics.paragraph1=Stirling PDF has opt in analytics to help us improve the product. We do not track any personal information or file contents. analytics.paragraph1=Stirling PDF, ürünü geliştirmemize yardımcı olmak için isteğe bağlı analizleri içerir. Kişisel bilgileri veya dosya içeriklerini asla takip etmiyoruz.
analytics.paragraph2=Please consider enabling analytics to help Stirling-PDF grow and to allow us to understand our users better. analytics.paragraph2=Stirling PDFin büyümesine destek olmak ve kullanıcılarımızı daha iyi anlayabilmemiz için analizleri etkinleştirmeyi düşünebilirsiniz.
analytics.enable=Enable analytics analytics.enable=Analizi Etkinleştir
analytics.disable=Disable analytics analytics.disable=Analizi Devre Dışı Bırak
analytics.settings=You can change the settings for analytics in the config/settings.yml file analytics.settings=Analiz ayarlarını config/settings.yml dosyasından değiştirebilirsiniz
############# #############
@ -237,31 +237,31 @@ adminUserSettings.activeUsers=Aktif Kullanıcılar:
adminUserSettings.disabledUsers=Devre Dışı Kullanıcılar: adminUserSettings.disabledUsers=Devre Dışı Kullanıcılar:
adminUserSettings.totalUsers=Toplam Kullanıcılar: adminUserSettings.totalUsers=Toplam Kullanıcılar:
adminUserSettings.lastRequest=Son İstek adminUserSettings.lastRequest=Son İstek
adminUserSettings.usage=View Usage adminUserSettings.usage=Kullanımı Görüntüle
endpointStatistics.title=Endpoint Statistics endpointStatistics.title=Endpoint İstatistikleri
endpointStatistics.header=Endpoint Statistics endpointStatistics.header=Endpoint İstatistikleri
endpointStatistics.top10=Top 10 endpointStatistics.top10=En Çok Kullanılan 10
endpointStatistics.top20=Top 20 endpointStatistics.top20=En Çok Kullanılan 20
endpointStatistics.all=All endpointStatistics.all=Hepsi
endpointStatistics.refresh=Refresh endpointStatistics.refresh=Yenile
endpointStatistics.includeHomepage=Include Homepage ('/') endpointStatistics.includeHomepage=Ana Sayfayı Dahil Et ('/')
endpointStatistics.includeLoginPage=Include Login Page ('/login') endpointStatistics.includeLoginPage=Giriş Sayfasını Dahil Et ('/login')
endpointStatistics.totalEndpoints=Total Endpoints endpointStatistics.totalEndpoints=Toplam Uç Nokta
endpointStatistics.totalVisits=Total Visits endpointStatistics.totalVisits=Toplam Ziyaret
endpointStatistics.showing=Showing endpointStatistics.showing=Gösteriliyor
endpointStatistics.selectedVisits=Selected Visits endpointStatistics.selectedVisits=Seçilen Ziyaretler
endpointStatistics.endpoint=Endpoint endpointStatistics.endpoint=Endpoint
endpointStatistics.visits=Visits endpointStatistics.visits=Ziyaret
endpointStatistics.percentage=Percentage endpointStatistics.percentage=Yüzde
endpointStatistics.loading=Loading... endpointStatistics.loading=Yükleniyor...
endpointStatistics.failedToLoad=Failed to load endpoint data. Please try refreshing. endpointStatistics.failedToLoad=Endpoint verileri yüklenemedi. Lütfen sayfayı yenileyin.
endpointStatistics.home=Home endpointStatistics.home=Ana Sayfa
endpointStatistics.login=Login endpointStatistics.login=Giriş
endpointStatistics.top=Top endpointStatistics.top=En Çok
endpointStatistics.numberOfVisits=Number of Visits endpointStatistics.numberOfVisits=Ziyaret Sayısı
endpointStatistics.visitsTooltip=Visits: {0} ({1}% of total) endpointStatistics.visitsTooltip=Ziyaret: {0} (toplamın %{1}i)
endpointStatistics.retry=Retry endpointStatistics.retry=Yeniden Dene
database.title=Veri Tabanını İçe/Dışa Aktar database.title=Veri Tabanını İçe/Dışa Aktar
database.header=Veri Tabanını İçe/Dışa Aktar database.header=Veri Tabanını İçe/Dışa Aktar
@ -276,14 +276,14 @@ database.info_1=Verileri içe aktarırken, yapının doğru olduğundan emin olm
database.info_2=Karşıya yüklerken dosya adı önemli değildir. Daha sonra yedekleme_kullanıcısı_yyyyAAggSdd.sql biçiminde yeniden adlandırılacak ve tutarlı bir adlandırma kuralı sağlanacaktır. database.info_2=Karşıya yüklerken dosya adı önemli değildir. Daha sonra yedekleme_kullanıcısı_yyyyAAggSdd.sql biçiminde yeniden adlandırılacak ve tutarlı bir adlandırma kuralı sağlanacaktır.
database.submit=Yedeklemeyi İçe Aktar database.submit=Yedeklemeyi İçe Aktar
database.importIntoDatabaseSuccessed=Veri tabanına başarıyla aktarıldı database.importIntoDatabaseSuccessed=Veri tabanına başarıyla aktarıldı
database.backupCreated=Database backup successful database.backupCreated=Veritabanı yedeklemesi başarılı
database.fileNotFound=Dosya bulunamadı database.fileNotFound=Dosya bulunamadı
database.fileNullOrEmpty=Dosya yok veya boş olmamalıdır database.fileNullOrEmpty=Dosya yok veya boş olmamalıdır
database.failedImportFile=Dosya İçe Aktarılamadı database.failedImportFile=Dosya İçe Aktarılamadı
database.notSupported=This function is not available for your database connection. database.notSupported=Bu işlev, mevcut veritabanı bağlantınız için desteklenmiyor.
session.expired=Your session has expired. Please refresh the page and try again. session.expired=Oturumunuzun süresi doldu. Lütfen sayfayı yenileyip tekrar deneyin.
session.refreshPage=Refresh Page session.refreshPage=Sayfayı Yenile
############# #############
# HOME-PAGE # # HOME-PAGE #
@ -296,14 +296,14 @@ home.viewPdf.title=View/Edit PDF
home.viewPdf.desc=Görüntüleyin, açıklama ekleyin, metin veya resim ekleyin home.viewPdf.desc=Görüntüleyin, açıklama ekleyin, metin veya resim ekleyin
viewPdf.tags=görüntüle,oku,açıklama ekle,metin,görüntü viewPdf.tags=görüntüle,oku,açıklama ekle,metin,görüntü
home.setFavorites=Set Favourites home.setFavorites=Favorilere Ekle
home.hideFavorites=Hide Favourites home.hideFavorites=Favorileri Gizle
home.showFavorites=Show Favourites home.showFavorites=Favorileri Göster
home.legacyHomepage=Old homepage home.legacyHomepage=Eski ana sayfa
home.newHomePage=Try our new homepage! home.newHomePage=Yeni ana sayfamızı deneyin!
home.alphabetical=Alphabetical home.alphabetical=Alfabetik
home.globalPopularity=Global Popularity home.globalPopularity=Global Popülerlik
home.sortBy=Sort by: home.sortBy=Sıralama ölçütü:
home.multiTool.title=PDF Çoklu Araç home.multiTool.title=PDF Çoklu Araç
home.multiTool.desc=Birleştir, Döndür, Yeniden Düzenle ve Sayfaları Kaldır home.multiTool.desc=Birleştir, Döndür, Yeniden Düzenle ve Sayfaları Kaldır
@ -492,9 +492,9 @@ home.MarkdownToPDF.title=Markdown'dan PDF'e
home.MarkdownToPDF.desc=Herhangi bir Markdown dosyasını PDF'e dönüştürür home.MarkdownToPDF.desc=Herhangi bir Markdown dosyasını PDF'e dönüştürür
MarkdownToPDF.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür MarkdownToPDF.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür
home.PDFToMarkdown.title=PDF to Markdown home.PDFToMarkdown.title=PDF'den Markdown'a
home.PDFToMarkdown.desc=Converts any PDF to Markdown home.PDFToMarkdown.desc=Herhangi bir PDF'yi Markdown formatına dönüştürür
PDFToMarkdown.tags=markup,web-content,transformation,convert,md PDFToMarkdown.tags=biçimlendirme,web-içeriği,dönüşüm,dönüştür,md
home.getPdfInfo.title=PDF Hakkında TÜM Bilgiyi Al home.getPdfInfo.title=PDF Hakkında TÜM Bilgiyi Al
home.getPdfInfo.desc=PDF'ler hakkında mümkün olan her türlü bilgiyi toplar home.getPdfInfo.desc=PDF'ler hakkında mümkün olan her türlü bilgiyi toplar
@ -519,9 +519,9 @@ home.autoRedact.title=Otomatik Karartma
home.autoRedact.desc=Giriş metnine dayanarak bir PDF'teki metni Otomatik Karartır (Redakte) home.autoRedact.desc=Giriş metnine dayanarak bir PDF'teki metni Otomatik Karartır (Redakte)
autoRedact.tags=Karart,Gizle,karartma,siyah,markör,gizli autoRedact.tags=Karart,Gizle,karartma,siyah,markör,gizli
home.redact.title=Manual Redaction home.redact.title=Manuel Sansürleme
home.redact.desc=Redacts a PDF based on selected text, drawn shapes and/or selected page(s) home.redact.desc=Seçilen metinler, çizilen şekiller ve/veya belirli sayfalar üzerinden PDF'yi sansürler
redact.tags=Redact,Hide,black out,black,marker,hidden,manual redact.tags=Sansürle,Gizle,karart,karartma,işaretleyici,gizli,manuel
home.tableExtraxt.title=PDF'den CSV'ye home.tableExtraxt.title=PDF'den CSV'ye
home.tableExtraxt.desc=PDF'den Tabloları çıkarır ve CSV'ye dönüştürür home.tableExtraxt.desc=PDF'den Tabloları çıkarır ve CSV'ye dönüştürür
@ -551,32 +551,32 @@ home.removeImagePdf.desc=Dosya boyutunu küçültmek için PDF'den resmi kaldır
removeImagePdf.tags=Resmi Kaldır,Sayfa İşlemleri,Arka uç,sunucu tarafı removeImagePdf.tags=Resmi Kaldır,Sayfa İşlemleri,Arka uç,sunucu tarafı
home.splitPdfByChapters.title=Split PDF by Chapters home.splitPdfByChapters.title=PDF'yi Bölümlere Göre Böl
home.splitPdfByChapters.desc=Split a PDF into multiple files based on its chapter structure. home.splitPdfByChapters.desc=PDF'yi bölüm yapısına göre birden fazla dosyaya ayırın.
splitPdfByChapters.tags=split,chapters,bookmarks,organize splitPdfByChapters.tags=böl, bölümler, yer imleri, düzenle
home.validateSignature.title=Validate PDF Signature home.validateSignature.title=PDF İmzasını Doğrula
home.validateSignature.desc=Verify digital signatures and certificates in PDF documents home.validateSignature.desc=PDF belgelerindeki dijital imzaları ve sertifikaları doğrulayın
validateSignature.tags=signature,verify,validate,pdf,certificate,digital signature,Validate Signature,Validate certificate validateSignature.tags=imza, doğrula, geçerlilik kontrolü, pdf, sertifika, dijital imza, İmzayı Doğrula, Sertifikayı Doğrula
#replace-invert-color #replace-invert-color
replace-color.title=Replace-Invert-Color replace-color.title=Renk Değiştir-Tersine Çevir
replace-color.header=Replace-Invert Color PDF replace-color.header=PDF Renklerini Değiştir veya Tersine Çevir
home.replaceColorPdf.title=Replace and Invert Color home.replaceColorPdf.title=Renkleri Değiştir ve Tersine Çevir
home.replaceColorPdf.desc=Replace color for text and background in PDF and invert full color of pdf to reduce file size home.replaceColorPdf.desc=PDF'deki metin ve arka plan renklerini değiştirin ve PDF'nin tüm renklerini tersine çevirerek dosya boyutunu azaltın
replaceColorPdf.tags=Replace Color,Page operations,Back end,server side replaceColorPdf.tags=Renk Değiştir, Sayfa işlemleri, Arka yüz, Sunucu tarafı
replace-color.selectText.1=Replace or Invert color Options replace-color.selectText.1=Renk Değiştir veya Tersine Çevirme Seçenekleri
replace-color.selectText.2=Default(Default high contrast colors) replace-color.selectText.2=Varsayılan (Yüksek kontrastlı varsayılan renkler)
replace-color.selectText.3=Custom(Customized colors) replace-color.selectText.3=Özel (Kişiselleştirilmiş renkler)
replace-color.selectText.4=Full-Invert(Invert all colors) replace-color.selectText.4=Tümü Tersine Çevir (Tüm renkleri tersine çevir)
replace-color.selectText.5=High contrast color options replace-color.selectText.5=Yüksek kontrastlı renk seçenekleri
replace-color.selectText.6=white text on black background replace-color.selectText.6=Siyah arka plan üzerine beyaz metin
replace-color.selectText.7=Black text on white background replace-color.selectText.7=Beyaz arka plan üzerine siyah metin
replace-color.selectText.8=Yellow text on black background replace-color.selectText.8=Siyah arka plan üzerine sarı metin
replace-color.selectText.9=Green text on black background replace-color.selectText.9=Siyah arka plan üzerine yeşil metin
replace-color.selectText.10=Choose text Color replace-color.selectText.10=Metin Rengini Seç
replace-color.selectText.11=Choose background Color replace-color.selectText.11=Arka Plan Rengini Seç
replace-color.submit=Replace replace-color.submit=Değiştir
@ -602,11 +602,11 @@ login.oauth2invalidRequest=Geçersiz İstek
login.oauth2AccessDenied=Erişim Reddedildi login.oauth2AccessDenied=Erişim Reddedildi
login.oauth2InvalidTokenResponse=Geçersiz Belirteç Yanıtı login.oauth2InvalidTokenResponse=Geçersiz Belirteç Yanıtı
login.oauth2InvalidIdToken=Geçersiz Kimlik Belirteci login.oauth2InvalidIdToken=Geçersiz Kimlik Belirteci
login.relyingPartyRegistrationNotFound=No relying party registration found login.relyingPartyRegistrationNotFound=Bağlı taraf kaydı bulunamadı
login.userIsDisabled=Kullanıcı devre dışı bırakıldı, şu anda bu kullanıcı adıyla giriş engellendi. Lütfen yöneticiyle iletişime geçin. login.userIsDisabled=Kullanıcı devre dışı bırakıldı, şu anda bu kullanıcı adıyla giriş engellendi. Lütfen yöneticiyle iletişime geçin.
login.alreadyLoggedIn=You are already logged in to login.alreadyLoggedIn=Zaten şu cihazlarda oturum açılmış:
login.alreadyLoggedIn2=devices. Please log out of the devices and try again. login.alreadyLoggedIn2=Lütfen bu cihazlardan çıkış yaparak tekrar deneyin.
login.toManySessions=You have too many active sessions login.toManySessions=Çok fazla aktif oturumunuz var
#auto-redact #auto-redact
autoRedact.title=Otomatik Karartma autoRedact.title=Otomatik Karartma
@ -621,31 +621,31 @@ autoRedact.convertPDFToImageLabel=PDF'i PDF-Görüntü'ye dönüştür (Kutunun
autoRedact.submitButton=Gönder autoRedact.submitButton=Gönder
#redact #redact
redact.title=Manual Redaction redact.title=Manuel Sansürleme
redact.header=Manual Redaction redact.header=Manuel Sansürleme
redact.submit=Redact redact.submit=Sansürle
redact.textBasedRedaction=Text based Redaction redact.textBasedRedaction=Metin Tabanlı Sansürleme
redact.pageBasedRedaction=Page-based Redaction redact.pageBasedRedaction=Sayfa Tabanlı Sansürleme
redact.convertPDFToImageLabel=Convert PDF to PDF-Image (Used to remove text behind the box) redact.convertPDFToImageLabel=PDF'yi Görsel PDF'ye Dönüştür (Kutunun arkasındaki metni kaldırmak için kullanılır)
redact.pageRedactionNumbers.title=Pages redact.pageRedactionNumbers.title=Sayfalar
redact.pageRedactionNumbers.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1) redact.pageRedactionNumbers.placeholder=(örneğin: 1,2,8 veya 4,7,12-16 ya da 2n-1)
redact.redactionColor.title=Redaction Color redact.redactionColor.title=Sansür Rengi
redact.export=Export redact.export=Dışa Aktar
redact.upload=Upload redact.upload=Yükle
redact.boxRedaction=Box draw redaction redact.boxRedaction=Kutu Çizerek Sansürleme
redact.zoom=Zoom redact.zoom=Yakınlaştırma
redact.zoomIn=Zoom in redact.zoomIn=Yakınlaştır
redact.zoomOut=Zoom out redact.zoomOut=Uzaklaştır
redact.nextPage=Next Page redact.nextPage=Sonraki Sayfa
redact.previousPage=Previous Page redact.previousPage=Önceki Sayfa
redact.toggleSidebar=Toggle Sidebar redact.toggleSidebar=Kenar Çubuğunu Aç/Kapat
redact.showThumbnails=Show Thumbnails redact.showThumbnails=Küçük Resimleri Göster
redact.showDocumentOutline=Show Document Outline (double-click to expand/collapse all items) redact.showDocumentOutline=Belge Anahatlarını Göster (tüm öğeleri genişletmek/daraltmak için çift tıklayın)
redact.showAttatchments=Show Attachments redact.showAttatchments=Ekleri Göster
redact.showLayers=Show Layers (double-click to reset all layers to the default state) redact.showLayers=Katmanları Göster (tüm katmanları varsayılana döndürmek için çift tıklayın)
redact.colourPicker=Colour Picker redact.colourPicker=Renk Seçici
redact.findCurrentOutlineItem=Find current outline item redact.findCurrentOutlineItem=Geçerli Anahat Öğesini Bul
redact.applyChanges=Apply Changes redact.applyChanges=Değişiklikleri Uygula
#showJS #showJS
showJS.title=Javascript'i Göster showJS.title=Javascript'i Göster
@ -739,10 +739,10 @@ sanitizePDF.title=PDF'i Temizle
sanitizePDF.header=PDF dosyasını temizle sanitizePDF.header=PDF dosyasını temizle
sanitizePDF.selectText.1=JavaScript işlemlerini kaldır sanitizePDF.selectText.1=JavaScript işlemlerini kaldır
sanitizePDF.selectText.2=Gömülü dosyaları kaldır sanitizePDF.selectText.2=Gömülü dosyaları kaldır
sanitizePDF.selectText.3=Remove XMP metadata sanitizePDF.selectText.3=XMP meta verisini kaldır
sanitizePDF.selectText.4=Linkleri kaldır sanitizePDF.selectText.4=Linkleri kaldır
sanitizePDF.selectText.5=Fontları kaldır sanitizePDF.selectText.5=Fontları kaldır
sanitizePDF.selectText.6=Remove Document Info Metadata sanitizePDF.selectText.6=Belge Bilgisi Meta Verisini Kaldır
sanitizePDF.submit=PDF'i Temizle sanitizePDF.submit=PDF'i Temizle
@ -821,7 +821,7 @@ scalePages.submit=Gönder
certSign.title=Sertifika İmzalama certSign.title=Sertifika İmzalama
certSign.header=Sertifikanızla bir PDF imzalayın (Devam eden iş) certSign.header=Sertifikanızla bir PDF imzalayın (Devam eden iş)
certSign.selectPDF=İmzalamak için bir PDF Dosyası seçin: certSign.selectPDF=İmzalamak için bir PDF Dosyası seçin:
certSign.jksNote=Note: Sertifika türünüz aşağıda listelenmemişse, lütfen keytool komut satırı aracını kullanarak sertifikanızı bir Java Keystore (.jks) dosyasına dönüştürün. Ardından, aşağıdaki .jks dosyası seçeneğini seçin. certSign.jksNote=Not: Sertifika türünüz aşağıda listelenmemişse, lütfen keytool komut satırı aracını kullanarak sertifikanızı bir Java Keystore (.jks) dosyasına dönüştürün. Ardından, aşağıdaki .jks dosyası seçeneğini seçin.
certSign.selectKey=Özel Anahtar Dosyanızı Seçin (PKCS#8 formatında, .pem veya .der olabilir): certSign.selectKey=Özel Anahtar Dosyanızı Seçin (PKCS#8 formatında, .pem veya .der olabilir):
certSign.selectCert=Sertifika Dosyanızı Seçin (X.509 formatında, .pem veya .der olabilir): certSign.selectCert=Sertifika Dosyanızı Seçin (X.509 formatında, .pem veya .der olabilir):
certSign.selectP12=PKCS#12 Anahtar Deposu Dosyanızı Seçin (.p12 veya .pfx) (İsteğe bağlı, sağlanırsa, özel anahtarınızı ve sertifikanızı içermelidir): certSign.selectP12=PKCS#12 Anahtar Deposu Dosyanızı Seçin (.p12 veya .pfx) (İsteğe bağlı, sağlanırsa, özel anahtarınızı ve sertifikanızı içermelidir):
@ -867,9 +867,9 @@ compare.highlightColor.2=Vurgu Rengi 2:
compare.document.1=Belge 1 compare.document.1=Belge 1
compare.document.2=Belge 2 compare.document.2=Belge 2
compare.submit=Karşılaştır compare.submit=Karşılaştır
compare.complex.message=One or both of the provided documents are large files, accuracy of comparison may be reduced compare.complex.message=Verilen belgelerden biri veya her ikisi büyük dosyalar olduğundan karşılaştırma doğruluğu azalabilir
compare.large.file.message=One or Both of the provided documents are too large to process compare.large.file.message=Verilen belgelerden biri veya her ikisi işlenemeyecek kadar büyük
compare.no.text.message=One or both of the selected PDFs have no text content. Please choose PDFs with text for comparison. compare.no.text.message=Seçilen PDF'lerden biri veya her ikisinde metin içeriği yok. Lütfen karşılaştırma için metin içeren PDF'ler seçin.
#sign #sign
sign.title=İmzala sign.title=İmzala
@ -879,20 +879,20 @@ sign.draw=İmza Çiz
sign.text=Metin Girişi sign.text=Metin Girişi
sign.clear=Temizle sign.clear=Temizle
sign.add=Ekle sign.add=Ekle
sign.saved=Saved Signatures sign.saved=Kaydedilmiş İmzalar
sign.save=Save Signature sign.save=İmzayı Kaydet
sign.personalSigs=Personal Signatures sign.personalSigs=Kişisel İmzalar
sign.sharedSigs=Shared Signatures sign.sharedSigs=Paylaşılan İmzalar
sign.noSavedSigs=No saved signatures found sign.noSavedSigs=Kayıtlı imza bulunamadı
sign.addToAll=Add to all pages sign.addToAll=Tüm sayfalara ekle
sign.delete=Delete sign.delete=Sil
sign.first=First page sign.first=İlk sayfa
sign.last=Last page sign.last=Son sayfa
sign.next=Next page sign.next=Sonraki sayfa
sign.previous=Previous page sign.previous=Önceki sayfa
sign.maintainRatio=Toggle maintain aspect ratio sign.maintainRatio=Oranı korumayı değiştir
sign.undo=Undo sign.undo=Geri Al
sign.redo=Redo sign.redo=Yinele
#repair #repair
repair.title=Onar repair.title=Onar
@ -1003,7 +1003,7 @@ pdfOrganiser.mode.7=İlk Önce Kaldır
pdfOrganiser.mode.8=Sonuncuyu Kaldır pdfOrganiser.mode.8=Sonuncuyu Kaldır
pdfOrganiser.mode.9=İlk ve Sonu Kaldır pdfOrganiser.mode.9=İlk ve Sonu Kaldır
pdfOrganiser.mode.10=Tek-Çift Birleştirme pdfOrganiser.mode.10=Tek-Çift Birleştirme
pdfOrganiser.mode.11=Duplicate all pages pdfOrganiser.mode.11=Tüm sayfaları çoğalt
pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1) pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1)
@ -1011,39 +1011,39 @@ pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1)
multiTool.title=PDF Çoklu Araç multiTool.title=PDF Çoklu Araç
multiTool.header=PDF Çoklu Araç multiTool.header=PDF Çoklu Araç
multiTool.uploadPrompts=Dosya Adı multiTool.uploadPrompts=Dosya Adı
multiTool.selectAll=Select All multiTool.selectAll=Tümünü Seç
multiTool.deselectAll=Deselect All multiTool.deselectAll=Seçimi Kaldır
multiTool.selectPages=Page Select multiTool.selectPages=Sayfa Seç
multiTool.selectedPages=Selected Pages multiTool.selectedPages=Seçilen Sayfalar
multiTool.page=Page multiTool.page=Sayfa
multiTool.deleteSelected=Delete Selected multiTool.deleteSelected=Seçilenleri Sil
multiTool.downloadAll=Export multiTool.downloadAll=Dışa Aktar
multiTool.downloadSelected=Export Selected multiTool.downloadSelected=Seçilenleri Dışa Aktar
multiTool.insertPageBreak=Insert Page Break multiTool.insertPageBreak=Sayfa Sonu Ekle
multiTool.addFile=Add File multiTool.addFile=Dosya Ekle
multiTool.rotateLeft=Rotate Left multiTool.rotateLeft=Sola Döndür
multiTool.rotateRight=Rotate Right multiTool.rotateRight=Sağa Döndür
multiTool.split=Split multiTool.split=Böl
multiTool.moveLeft=Move Left multiTool.moveLeft=Sola Taşı
multiTool.moveRight=Move Right multiTool.moveRight=Sağa Taşı
multiTool.delete=Delete multiTool.delete=Sil
multiTool.dragDropMessage=Page(s) Selected multiTool.dragDropMessage=Sayfa(lar) Seçildi
multiTool.undo=Undo multiTool.undo=Geri Al
multiTool.redo=Redo multiTool.redo=Yinele
#decrypt #decrypt
decrypt.passwordPrompt=This file is password-protected. Please enter the password: decrypt.passwordPrompt=Bu dosya parola korumalı. Lütfen parolayı girin:
decrypt.cancelled=Operation cancelled for PDF: {0} decrypt.cancelled=PDF için işlem iptal edildi: {0}
decrypt.noPassword=No password provided for encrypted PDF: {0} decrypt.noPassword=Şifrelenmiş PDF için parola girilmedi: {0}
decrypt.invalidPassword=Please try again with the correct password. decrypt.invalidPassword=Lütfen doğru parolayla tekrar deneyin.
decrypt.invalidPasswordHeader=Incorrect password or unsupported encryption for PDF: {0} decrypt.invalidPasswordHeader=PDF için yanlış parola veya desteklenmeyen şifreleme: {0}
decrypt.unexpectedError=There was an error processing the file. Please try again. decrypt.unexpectedError=Dosya işlenirken bir hata oluştu. Lütfen tekrar deneyin.
decrypt.serverError=Server error while decrypting: {0} decrypt.serverError=Şifre çözme sırasında sunucu hatası: {0}
decrypt.success=File decrypted successfully. decrypt.success=Dosyanın şifresi başarıyla çözüldü.
#multiTool-advert #multiTool-advert
multiTool-advert.message=This feature is also available in our <a href="{0}">multi-tool page</a>. Check it out for enhanced page-by-page UI and additional features! multiTool-advert.message=Bu özellik <a href="{0}">çoklu araçlar sayfamızda</a> da mevcuttur. Sayfa sayfa gelişmiş arayüz ve ek özellikler için göz atın!
#view pdf #view pdf
viewPdf.title=View/Edit PDF viewPdf.title=View/Edit PDF
@ -1306,21 +1306,21 @@ licenses.license=Lisans
survey.nav=Anket survey.nav=Anket
survey.title=Stirling-PDF Anketi survey.title=Stirling-PDF Anketi
survey.description=Stirling-PDF'te izleme yok, bu yüzden Stirling-PDF'i iyileştirmek için kullanıcılarımızdan geri bildirim almak istiyoruz! survey.description=Stirling-PDF'te izleme yok, bu yüzden Stirling-PDF'i iyileştirmek için kullanıcılarımızdan geri bildirim almak istiyoruz!
survey.changes=Stirling-PDF has changed since the last survey! To find out more please check our blog post here: survey.changes=Stirling-PDF son ankete göre değişti! Daha fazla bilgi için blog yazımıza göz atın:
survey.changes2=With these changes we are getting paid business support and funding survey.changes2=Bu değişikliklerle birlikte ücretli kurumsal destek ve fon alıyoruz
survey.please=Lütfen anketimize katılmayı düşünün! survey.please=Lütfen anketimize katılmayı düşünün!
survey.disabled=(Anket açılır penceresi sonraki güncellemelerde devre dışı bırakılacak ancak sayfanın alt kısmında yer alacaktır) survey.disabled=(Anket açılır penceresi sonraki güncellemelerde devre dışı bırakılacak ancak sayfanın alt kısmında yer alacaktır)
survey.button=Ankete Katıl survey.button=Ankete Katıl
survey.dontShowAgain=Tekrar gösterme survey.dontShowAgain=Tekrar gösterme
survey.meeting.1=If you're using Stirling PDF at work, we'd love to speak to you. We're offering technical support sessions in exchange for a 15 minute user discovery session. survey.meeting.1=Eğer Stirling PDF'i iş yerinizde kullanıyorsanız, sizinle görüşmek isteriz. 15 dakikalık bir kullanıcı keşif oturumu karşılığında teknik destek sunuyoruz.
survey.meeting.2=This is a chance to: survey.meeting.2=Bu fırsat sayesinde:
survey.meeting.3=Get help with deployment, integrations, or troubleshooting survey.meeting.3=Kurulum, entegrasyonlar veya sorun giderme konularında yardım alabilirsiniz
survey.meeting.4=Provide direct feedback on performance, edge cases, and feature gaps survey.meeting.4=Performans, uç durumlar ve eksik özellikler hakkında doğrudan geri bildirim sağlayabilirsiniz
survey.meeting.5=Help us refine Stirling PDF for real-world enterprise use survey.meeting.5=Stirling PDFi gerçek dünya kurumsal kullanımı için daha iyi hale getirmemize yardımcı olabilirsiniz
survey.meeting.6=If you're interested, you can book time with our team directly. (English speaking only) survey.meeting.6=İlgileniyorsanız, ekibimizden doğrudan zaman ayırabilirsiniz. (Yalnızca İngilizce)
survey.meeting.7=Looking forward to digging into your use cases and making Stirling PDF even better! survey.meeting.7=Kullanım senaryolarınızı dinlemeyi ve Stirling PDFi daha da iyi hale getirmeyi sabırsızlıkla bekliyoruz!
survey.meeting.notInterested=Not a business and/or interested in a meeting? survey.meeting.notInterested=Kurumsal kullanıcı değilseniz ve/veya görüşmeye ilgi duymuyorsanız
survey.meeting.button=Book meeting survey.meeting.button=Görüşme Planla
#error #error
error.sorry=Sorun için özür dileriz! error.sorry=Sorun için özür dileriz!
@ -1343,90 +1343,90 @@ removeImage.removeImage=Resmi kaldır
removeImage.submit=Resmi kaldır removeImage.submit=Resmi kaldır
splitByChapters.title=Split PDF by Chapters splitByChapters.title=PDF'yi Bölümlere Ayır
splitByChapters.header=Split PDF by Chapters splitByChapters.header=PDF'yi Bölümlere Ayır
splitByChapters.bookmarkLevel=Bookmark Level splitByChapters.bookmarkLevel=Yer imi Seviyesi
splitByChapters.includeMetadata=Include Metadata splitByChapters.includeMetadata=Meta Veriyi Dahil Et
splitByChapters.allowDuplicates=Allow Duplicates splitByChapters.allowDuplicates=Yinelenen Yer İmlerine İzin Ver
splitByChapters.desc.1=This tool splits a PDF file into multiple PDFs based on its chapter structure. splitByChapters.desc.1=Bu araç, bir PDF dosyasını bölüm yapısına göre birden fazla PDF'ye böler.
splitByChapters.desc.2=Bookmark Level: Choose the level of bookmarks to use for splitting (0 for top-level, 1 for second-level, etc.). splitByChapters.desc.2=Bölme için kullanılacak yer imi seviyesini seçin (0 en üst seviye, 1 ikinci seviye vb.).
splitByChapters.desc.3=Include Metadata: If checked, the original PDF's metadata will be included in each split PDF. splitByChapters.desc.3=Meta Veriyi Dahil Et: İşaretlenirse, orijinal PDF'nin meta verisi her bir bölünmüş PDF'ye dahil edilir.
splitByChapters.desc.4=Allow Duplicates: If checked, allows multiple bookmarks on the same page to create separate PDFs. splitByChapters.desc.4=Yinelenen Yer İmlerine İzin Ver: İşaretlenirse, aynı sayfadaki birden fazla yer imi ayrı PDF'ler oluşturabilir.
splitByChapters.submit=Split PDF splitByChapters.submit=PDF'yi Ayır
#File Chooser #File Chooser
fileChooser.click=Click fileChooser.click=Seç
fileChooser.or=or fileChooser.or=veya
fileChooser.dragAndDrop=Drag & Drop fileChooser.dragAndDrop=Sürükle & Bırak
fileChooser.dragAndDropPDF=Drag & Drop PDF file fileChooser.dragAndDropPDF=PDF dosyasını Sürükle & Bırak
fileChooser.dragAndDropImage=Drag & Drop Image file fileChooser.dragAndDropImage=Görsel dosyasını Sürükle & Bırak
fileChooser.hoveredDragAndDrop=Drag & Drop file(s) here fileChooser.hoveredDragAndDrop=Dosya(lar)ı buraya sürükleyip bırakın
fileChooser.extractPDF=Extracting... fileChooser.extractPDF=PDF Çıkarılıyor...
#release notes #release notes
releases.footer=Releases releases.footer=Sürümler
releases.title=Release Notes releases.title=Sürüm Notları
releases.header=Release Notes releases.header=Sürüm Notları
releases.current.version=Current Release releases.current.version=Mevcut Sürüm
releases.note=Release notes are only available in English releases.note=Sürüm notları yalnızca İngilizce dilinde mevcuttur
#Validate Signature #Validate Signature
validateSignature.title=Validate PDF Signatures validateSignature.title=PDF İmzalarını Doğrula
validateSignature.header=Validate Digital Signatures validateSignature.header=Dijital İmzaları Doğrula
validateSignature.selectPDF=Select signed PDF file validateSignature.selectPDF=İmzalanmış PDF dosyasını seçin
validateSignature.submit=Validate Signatures validateSignature.submit=İmzaları Doğrula
validateSignature.results=Validation Results validateSignature.results=Doğrulama Sonuçları
validateSignature.status=Status validateSignature.status=Durum
validateSignature.signer=Signer validateSignature.signer=İmzalayan
validateSignature.date=Date validateSignature.date=Tarih
validateSignature.reason=Reason validateSignature.reason=Gerekçe
validateSignature.location=Location validateSignature.location=Konum
validateSignature.noSignatures=No digital signatures found in this document validateSignature.noSignatures=Bu belgede dijital imza bulunamadı
validateSignature.status.valid=Valid validateSignature.status.valid=Geçerli
validateSignature.status.invalid=Invalid validateSignature.status.invalid=Geçersiz
validateSignature.chain.invalid=Certificate chain validation failed - cannot verify signer's identity validateSignature.chain.invalid=Sertifika zinciri doğrulaması başarısız - imzalayanın kimliği doğrulanamıyor
validateSignature.trust.invalid=Certificate not in trust store - source cannot be verified validateSignature.trust.invalid=Sertifika güvenilir mağazada değil - kaynak doğrulanamıyor
validateSignature.cert.expired=Certificate has expired validateSignature.cert.expired=Sertifika süresi dolmuş
validateSignature.cert.revoked=Certificate has been revoked validateSignature.cert.revoked=Sertifika iptal edilmiş
validateSignature.signature.info=Signature Information validateSignature.signature.info=İmza Bilgisi
validateSignature.signature=Signature validateSignature.signature=İmza
validateSignature.signature.mathValid=Signature is mathematically valid BUT: validateSignature.signature.mathValid=İmza matematiksel olarak geçerli, ANCAK:
validateSignature.selectCustomCert=Custom Certificate File X.509 (Optional) validateSignature.selectCustomCert=Özel Sertifika Dosyası X.509 (İsteğe Bağlı)
validateSignature.cert.info=Certificate Details validateSignature.cert.info=Sertifika Detayları
validateSignature.cert.issuer=Issuer validateSignature.cert.issuer=Veren
validateSignature.cert.subject=Subject validateSignature.cert.subject=Konu
validateSignature.cert.serialNumber=Serial Number validateSignature.cert.serialNumber=Seri Numarası
validateSignature.cert.validFrom=Valid From validateSignature.cert.validFrom=Geçerlilik Başlangıcı
validateSignature.cert.validUntil=Valid Until validateSignature.cert.validUntil=Geçerlilik Bitişi
validateSignature.cert.algorithm=Algorithm validateSignature.cert.algorithm=Algoritma
validateSignature.cert.keySize=Key Size validateSignature.cert.keySize=Anahtar Boyutu
validateSignature.cert.version=Version validateSignature.cert.version=Sürüm
validateSignature.cert.keyUsage=Key Usage validateSignature.cert.keyUsage=Anahtar Kullanımı
validateSignature.cert.selfSigned=Self-Signed validateSignature.cert.selfSigned=Kendi Kendine İmzalı
validateSignature.cert.bits=bits validateSignature.cert.bits=bits
#################### ####################
# Cookie banner # # Cookie banner #
#################### ####################
cookieBanner.popUp.title=How we use Cookies cookieBanner.popUp.title=Çerezleri Nasıl Kullanıyoruz
cookieBanner.popUp.description.1=We use cookies and other technologies to make Stirling PDF work better for you—helping us improve our tools and keep building features you'll love. cookieBanner.popUp.description.1=Stirling PDFyi sizin için daha iyi çalıştırmak için çerezler ve diğer teknolojileri kullanıyoruz — araçlarımızı geliştirmemize ve seveceğiniz özellikler oluşturmamıza yardımcı oluyorlar.
cookieBanner.popUp.description.2=If youd rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly. cookieBanner.popUp.description.2=İstemiyorsanız, Hayır Teşekkürler butonuna tıklayarak yalnızca temel, gerekli çerezleri etkinleştirebilirsiniz.
cookieBanner.popUp.acceptAllBtn=Okay cookieBanner.popUp.acceptAllBtn=Tamam
cookieBanner.popUp.acceptNecessaryBtn=No Thanks cookieBanner.popUp.acceptNecessaryBtn=Hayır Teşekkürler
cookieBanner.popUp.showPreferencesBtn=Manage preferences cookieBanner.popUp.showPreferencesBtn=Tercihleri Yönet
cookieBanner.preferencesModal.title=Consent Preferences Center cookieBanner.preferencesModal.title=Onay Tercih Merkezi
cookieBanner.preferencesModal.acceptAllBtn=Accept all cookieBanner.preferencesModal.acceptAllBtn=Tümünü Kabul Et
cookieBanner.preferencesModal.acceptNecessaryBtn=Reject all cookieBanner.preferencesModal.acceptNecessaryBtn=Tümünü Reddet
cookieBanner.preferencesModal.savePreferencesBtn=Save preferences cookieBanner.preferencesModal.savePreferencesBtn=Tercihleri Kaydet
cookieBanner.preferencesModal.closeIconLabel=Close modal cookieBanner.preferencesModal.closeIconLabel=Kapat
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services cookieBanner.preferencesModal.serviceCounterLabel=Hizmet|Hizmetler
cookieBanner.preferencesModal.subtitle=Cookie Usage cookieBanner.preferencesModal.subtitle=Çerez Kullanımı
cookieBanner.preferencesModal.description.1=Stirling PDF uses cookies and similar technologies to enhance your experience and understand how our tools are used. This helps us improve performance, develop the features you care about, and provide ongoing support to our users. cookieBanner.preferencesModal.description.1=Stirling PDF, deneyiminizi geliştirmek ve araçlarımızın nasıl kullanıldığını anlamak için çerezler ve benzeri teknolojiler kullanır. Bu, performansı iyileştirmemize, önemsediğiniz özellikleri geliştirmemize ve kullanıcılarımıza sürekli destek sağlamamıza yardımcı olur.
cookieBanner.preferencesModal.description.2=Stirling PDF cannot—and will never—track or access the content of the documents you use. cookieBanner.preferencesModal.description.2=Stirling PDF, kullandığınız belgelerin içeriğini asla takip edemez veya erişemez.
cookieBanner.preferencesModal.description.3=Your privacy and trust are at the core of what we do. cookieBanner.preferencesModal.description.3=Gizliliğiniz ve güveniniz bizim için en önemli şeydir.
cookieBanner.preferencesModal.necessary.title.1=Strictly Necessary Cookies cookieBanner.preferencesModal.necessary.title.1=Kesinlikle Gerekli Çerezler
cookieBanner.preferencesModal.necessary.title.2=Always Enabled cookieBanner.preferencesModal.necessary.title.2=Her Zaman Etkin
cookieBanner.preferencesModal.necessary.description=These cookies are essential for the website to function properly. They enable core features like setting your privacy preferences, logging in, and filling out forms—which is why they cant be turned off. cookieBanner.preferencesModal.necessary.description=Bu çerezler, web sitesinin düzgün çalışabilmesi için gereklidir. Gizlilik tercihlerinizi ayarlama, giriş yapma ve form doldurma gibi temel işlevleri mümkün kılarlar — bu nedenle devre dışı bırakılamazlar.
cookieBanner.preferencesModal.analytics.title=Analytics cookieBanner.preferencesModal.analytics.title=Analitik
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with. cookieBanner.preferencesModal.analytics.description=Bu çerezler, araçlarımızın nasıl kullanıldığını anlamamıza yardımcı olur, böylece topluluğumuzun en çok değer verdiği özellikleri geliştirmeye odaklanabiliriz. İçiniz rahat olsun — Stirling PDF, belgelerinizin içeriğini asla takip etmez ve etmeyecektir.

View File

@ -10,9 +10,9 @@ multiPdfPrompt=選擇多個 PDF 檔案
multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案 multiPdfDropPrompt=選擇(或拖放)所有需要的 PDF 檔案
imgPrompt=選擇圖片 imgPrompt=選擇圖片
genericSubmit=送出 genericSubmit=送出
uploadLimit=Maximum file size: uploadLimit=檔案大小上限:
uploadLimitExceededSingular=is too large. Maximum allowed size is uploadLimitExceededSingular=太大。允許的最大檔案大小為
uploadLimitExceededPlural=are too large. Maximum allowed size is uploadLimitExceededPlural=太大。允許的最大檔案大小為
processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小 processTimeWarning=警告:此過程可能長達一分鐘,具體取決於檔案大小
pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1 pageOrderPrompt=自訂頁面順序(輸入以逗號分隔的頁碼或函式,如 2n+1
pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單): pageSelectionPrompt=自訂頁面選擇(輸入以逗號分隔的頁碼 1、5、6 或 2n+1 等函式的清單):
@ -237,30 +237,30 @@ adminUserSettings.activeUsers=使用中的使用者:
adminUserSettings.disabledUsers=已停用的使用者: adminUserSettings.disabledUsers=已停用的使用者:
adminUserSettings.totalUsers=使用者總數: adminUserSettings.totalUsers=使用者總數:
adminUserSettings.lastRequest=最後請求時間 adminUserSettings.lastRequest=最後請求時間
adminUserSettings.usage=查看使用方式 adminUserSettings.usage=檢視使用情況
endpointStatistics.title=端點統計資料 endpointStatistics.title=端點統計
endpointStatistics.header=端點統計資料 endpointStatistics.header=端點統計
endpointStatistics.top10=前 10 endpointStatistics.top10=前 10
endpointStatistics.top20=前 20 endpointStatistics.top20=前 20
endpointStatistics.all=選擇全部 endpointStatistics.all=全部
endpointStatistics.refresh=重新載入 endpointStatistics.refresh=重新整理
endpointStatistics.includeHomepage=包含頁 ('/') endpointStatistics.includeHomepage=包含頁 ('/')
endpointStatistics.includeLoginPage=包含登入頁面 ('/login') endpointStatistics.includeLoginPage=包含登入頁面 ('/login')
endpointStatistics.totalEndpoints=全部端點 endpointStatistics.totalEndpoints=端點總數
endpointStatistics.totalVisits=瀏覽次數 endpointStatistics.totalVisits=造訪次數
endpointStatistics.showing=顯示中 endpointStatistics.showing=顯示中
endpointStatistics.selectedVisits=所選瀏覽次數 endpointStatistics.selectedVisits=選取的造訪次數
endpointStatistics.endpoint=端點 endpointStatistics.endpoint=端點
endpointStatistics.visits=次數 endpointStatistics.visits=訪次數
endpointStatistics.percentage=百分比 endpointStatistics.percentage=百分比
endpointStatistics.loading=載入中... endpointStatistics.loading=載入中...
endpointStatistics.failedToLoad=無法載入端點。請嘗試重新載入 endpointStatistics.failedToLoad=無法載入端點資料。請嘗試重新整理
endpointStatistics.home= endpointStatistics.home=
endpointStatistics.login=登入 endpointStatistics.login=登入
endpointStatistics.top=最多瀏覽 endpointStatistics.top=
endpointStatistics.numberOfVisits=瀏覽次數 endpointStatistics.numberOfVisits=造訪次數
endpointStatistics.visitsTooltip=瀏覽次數: {0} ({1}% of total) endpointStatistics.visitsTooltip=造訪次數:{0}(總數的 {1}%
endpointStatistics.retry=重試 endpointStatistics.retry=重試
database.title=資料庫匯入/匯出 database.title=資料庫匯入/匯出
@ -891,7 +891,7 @@ sign.last=最後一頁
sign.next=下一頁 sign.next=下一頁
sign.previous=上一頁 sign.previous=上一頁
sign.maintainRatio=切換維持長寬比 sign.maintainRatio=切換維持長寬比
sign.undo= sign.undo=
sign.redo=重做 sign.redo=重做
#repair #repair
@ -1319,7 +1319,7 @@ survey.meeting.4=針對效能、特殊案例和缺少的功能提供直接意見
survey.meeting.5=協助我們改良 Stirling PDF 以符合實際企業使用需求 survey.meeting.5=協助我們改良 Stirling PDF 以符合實際企業使用需求
survey.meeting.6=如果您有興趣,可以直接預約時間與我們的團隊交流。(僅提供英語服務) survey.meeting.6=如果您有興趣,可以直接預約時間與我們的團隊交流。(僅提供英語服務)
survey.meeting.7=期待深入了解您的使用情境,讓 Stirling PDF 變得更好! survey.meeting.7=期待深入了解您的使用情境,讓 Stirling PDF 變得更好!
survey.meeting.notInterested=不是企業用戶或對會議不感興趣? survey.meeting.notInterested=不是企業使用者或對會議不感興趣?
survey.meeting.button=預約會議 survey.meeting.button=預約會議
#error #error
@ -1418,11 +1418,11 @@ cookieBanner.preferencesModal.title=喜好設定中心
cookieBanner.preferencesModal.acceptAllBtn=全部接受 cookieBanner.preferencesModal.acceptAllBtn=全部接受
cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕 cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕
cookieBanner.preferencesModal.savePreferencesBtn=儲存設定 cookieBanner.preferencesModal.savePreferencesBtn=儲存設定
cookieBanner.preferencesModal.closeIconLabel=Close modal cookieBanner.preferencesModal.closeIconLabel=關閉視窗
cookieBanner.preferencesModal.serviceCounterLabel=服務|服務 cookieBanner.preferencesModal.serviceCounterLabel=服務|服務
cookieBanner.preferencesModal.subtitle=Cookies 的用途 cookieBanner.preferencesModal.subtitle=Cookies 的用途
cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。 cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。
cookieBanner.preferencesModal.description.2=Stirling PDF 不會——且永遠——追蹤或存取您的文件。 cookieBanner.preferencesModal.description.2=Stirling PDF 不能——且永遠不會——追蹤或存取您的文件。
cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。 cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。
cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies
cookieBanner.preferencesModal.necessary.title.2=永遠開啟 cookieBanner.preferencesModal.necessary.title.2=永遠開啟

View File

@ -544,21 +544,17 @@ const DraggableUtils = {
angle: rotateAngle, // Store rotation angle: rotateAngle, // Store rotation
}; };
// Auxiliary variables const pageRotation = page.getRotation();
let widthAdjusted = page.getWidth();
let heightAdjusted = page.getHeight();
const rotation = page.getRotation();
// Normalize page rotation angle // Normalize page rotation angle
let normalizedAngle = rotation.angle % 360; let normalizedAngle = pageRotation.angle % 360;
if (normalizedAngle < 0) { if (normalizedAngle < 0) {
normalizedAngle += 360; normalizedAngle += 360;
} }
// Adjust page dimensions for rotated pages // Determine the viewed page dimensions based on the normalized rotation angle
if (normalizedAngle === 90 || normalizedAngle === 270) { let viewedPageWidth = (normalizedAngle === 90 || normalizedAngle === 270) ? page.getHeight() : page.getWidth();
[widthAdjusted, heightAdjusted] = [heightAdjusted, widthAdjusted]; let viewedPageHeight = (normalizedAngle === 90 || normalizedAngle === 270) ? page.getWidth() : page.getHeight();
}
const draggablePositionRelative = { const draggablePositionRelative = {
x: draggablePositionPixels.x / offsetWidth, x: draggablePositionPixels.x / offsetWidth,
@ -569,51 +565,58 @@ const DraggableUtils = {
}; };
const draggablePositionPdf = { const draggablePositionPdf = {
x: draggablePositionRelative.x * widthAdjusted, x: draggablePositionRelative.x * viewedPageWidth,
y: draggablePositionRelative.y * heightAdjusted, y: draggablePositionRelative.y * viewedPageHeight,
width: draggablePositionRelative.width * widthAdjusted, width: draggablePositionRelative.width * viewedPageWidth,
height: draggablePositionRelative.height * heightAdjusted, height: draggablePositionRelative.height * viewedPageHeight,
}; };
// Calculate position based on normalized page rotation // Calculate position based on normalized page rotation
let x = draggablePositionPdf.x; let x = draggablePositionPdf.x;
let y = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height; let y = viewedPageHeight - draggablePositionPdf.y - draggablePositionPdf.height;
let originx = x + draggablePositionPdf.width / 2;
let originy = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height / 2;
if (normalizedAngle === 90) { if (normalizedAngle === 90) {
x = draggablePositionPdf.y + draggablePositionPdf.height; x = draggablePositionPdf.y;
y = draggablePositionPdf.x; y = draggablePositionPdf.x;
} else if (normalizedAngle === 180) { } else if (normalizedAngle === 180) {
x = widthAdjusted - draggablePositionPdf.x; x = viewedPageWidth - draggablePositionPdf.x - draggablePositionPdf.width;
y = draggablePositionPdf.y + draggablePositionPdf.height; y = draggablePositionPdf.y;
} else if (normalizedAngle === 270) { } else if (normalizedAngle === 270) {
x = heightAdjusted - draggablePositionPdf.y - draggablePositionPdf.height; x = viewedPageHeight - draggablePositionPdf.y - draggablePositionPdf.height;
y = widthAdjusted - draggablePositionPdf.x; y = viewedPageWidth - draggablePositionPdf.x - draggablePositionPdf.width;
} }
// let angle = draggablePositionPixels.angle % 360;
// if (angle < 0) angle += 360; // Normalize to positive angle // Convert rotation angle to radians
const radians = -draggablePositionPixels.angle; // Convert angle to radians let pageRotationInRadians = PDFLib.degreesToRadians(normalizedAngle);
const rotationInRadians = pageRotationInRadians - draggablePositionPixels.angle;
// Calculate the center of the image
const imageCenterX = x + draggablePositionPdf.width / 2;
const imageCenterY = y + draggablePositionPdf.height / 2;
// Apply transformations to rotate the image about its center
page.pushOperators( page.pushOperators(
PDFLib.pushGraphicsState(), PDFLib.pushGraphicsState(),
PDFLib.concatTransformationMatrix(1, 0, 0, 1, originx, originy), PDFLib.concatTransformationMatrix(1, 0, 0, 1, imageCenterX, imageCenterY), // Translate to center
PDFLib.concatTransformationMatrix( PDFLib.concatTransformationMatrix(
Math.cos(radians), Math.cos(rotationInRadians),
Math.sin(radians), Math.sin(rotationInRadians),
-Math.sin(radians), -Math.sin(rotationInRadians),
Math.cos(radians), Math.cos(rotationInRadians),
0, 0,
0 0
), ), // Rotate
PDFLib.concatTransformationMatrix(1, 0, 0, 1, -1 * originx, -1 * originy) PDFLib.concatTransformationMatrix(1, 0, 0, 1, -imageCenterX, -imageCenterY) // Translate back
); );
page.drawImage(pdfImageObject, { page.drawImage(pdfImageObject, {
x: x, x: x,
y: y, y: y,
width: draggablePositionPdf.width, width: draggablePositionPdf.width,
height: draggablePositionPdf.height, height: draggablePositionPdf.height,
}); });
// Restore the graphics state
page.pushOperators(PDFLib.popGraphicsState()); page.pushOperators(PDFLib.popGraphicsState());
} }
} }

View File

@ -170,7 +170,7 @@ function setupFileInput(chooser) {
inputContainer.querySelector('#fileInputText').innerHTML = window.fileInput.loading; inputContainer.querySelector('#fileInputText').innerHTML = window.fileInput.loading;
async function checkZipFile() { async function checkZipFile() {
const hasZipFiles = allFiles.some(file => file.type && zipTypes.includes(file.type)); const hasZipFiles = allFiles.some(file => ((typeof(file.type) != undefined) && zipTypes.includes(file.type)));
// Only change to extractPDF message if we actually have zip files // Only change to extractPDF message if we actually have zip files
if (hasZipFiles) { if (hasZipFiles) {