Merge branch 'Stirling-Tools:main' into main

This commit is contained in:
Dimitris Doukas 2024-04-15 17:05:08 +03:00 committed by GitHub
commit 9402109663
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 2121 additions and 769 deletions

87
.github/workflows/sync_files.yml vendored Normal file
View file

@ -0,0 +1,87 @@
name: Sync Files
on:
push:
branches:
- main
paths:
- "build.gradle"
- "src/main/resources/messages_*.properties"
permissions:
contents: write
pull-requests: write
jobs:
sync-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: "3.x"
- name: Install dependencies
run: pip install pyyaml
- name: Sync versions
run: python .github/scripts/gradle_to_chart.py
- name: Set up git config
run: |
git config --global user.email "GitHub Action <action@github.com>"
git config --global user.name "GitHub Action <action@github.com>"
- name: Run git add
run: |
git add .
git diff --staged --quiet || git commit -m ":floppy_disk: Sync Versions
> Made via sync_files.yml" || echo "no changes"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6.0.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update files
committer: GitHub Action <action@github.com>
author: GitHub Action <action@github.com>
signoff: true
branch: sync_version
title: ":floppy_disk: Update Version"
body: |
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
draft: false
delete-branch: true
sync-readme:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: "3.x"
- name: Sync README
run: python scripts/counter_translation.py
- name: Set up git config
run: |
git config --global user.email "GitHub Action <action@github.com>"
git config --global user.name "GitHub Action <action@github.com>"
- name: Run git add
run: |
git add .
git diff --staged --quiet || git commit -m ":memo: Sync README
> Made via sync_files.yml" || echo "no changes"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6.0.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update files
committer: GitHub Action <action@github.com>
author: GitHub Action <action@github.com>
signoff: true
branch: sync_readme
title: ":memo: Update README: Translation Progress Table"
body: |
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
draft: false
delete-branch: true

View file

@ -1,51 +0,0 @@
name: Sync Versions
on:
push:
branches:
- main
paths:
- "build.gradle"
permissions:
contents: write
pull-requests: write
jobs:
sync-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Set up Python
uses: actions/setup-python@v5.0.0
with:
python-version: '3.x'
- name: Install dependencies
run: pip install pyyaml
- name: Sync versions
run: python .github/scripts/gradle_to_chart.py
- name: Set up git config
run: |
git config --global user.email "GitHub Action <action@github.com>"
git config --global user.name "GitHub Action <action@github.com>"
- name: Run git add
run: |
git add .
git diff --staged --quiet || git commit -m ":floppy_disk: Sync Versions
> Made via sync_versions.yml" || echo "no changes"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update files
committer: GitHub Action <action@github.com>
author: GitHub Action <action@github.com>
signoff: true
branch: sync_version
title: ":floppy_disk: Update Version"
body: |
Auto-generated by [create-pull-request][1]
[1]: https://github.com/peter-evans/create-pull-request
draft: false
delete-branch: true

View file

@ -57,7 +57,8 @@ RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /et
# User permissions
addgroup -S stirlingpdfgroup && adduser -S stirlingpdfuser -G stirlingpdfgroup && \
chown -R stirlingpdfuser:stirlingpdfgroup $HOME /scripts /usr/share/fonts/opentype/noto /configs /customFiles /pipeline && \
chown stirlingpdfuser:stirlingpdfgroup /app.jar
chown stirlingpdfuser:stirlingpdfgroup /app.jar && \
tesseract --list-langs
EXPOSE 8080

View file

@ -1,5 +1,5 @@
<p align="center"><img src="https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/main/docs/stirling.png" width="80" ><br><h1 align="center">Stirling-PDF</h1>
</p>
<p align="center"><img src="https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/main/docs/stirling.png" width="80" ></p>
<h1 align="center">Stirling-PDF</h1>
[![Docker Pulls](https://img.shields.io/docker/pulls/frooodle/s-pdf)](https://hub.docker.com/r/frooodle/s-pdf)
[![Discord](https://img.shields.io/discord/1068636748814483718?label=Discord)](https://discord.gg/Cn8pWhQRxZ)
@ -10,25 +10,26 @@
[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/Stirling-Tools/Stirling-PDF/tree/digitalOcean&refcode=c3210994b1af)
This is a powerful locally hosted web based PDF manipulation tool using docker that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application started as a 100% ChatGPT-made application and has evolved to include a wide range of features to handle all your PDF needs.
This is a robust, locally hosted web-based PDF manipulation tool using Docker. It enables you to carry out various operations on PDF files, including splitting, merging, converting, reorganizing, adding images, rotating, compressing, and more. Originally developed entirely by ChatGPT, this locally hosted web application has evolved to encompass a comprehensive set of features, addressing all your PDF requirements.
Stirling PDF makes no outbound calls for any record keeping or tracking.
Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes.
All files and PDFs exist either exclusively on the client side, reside in server memory only during task execution, or temporarily reside in a file solely for the execution of the task. Any file downloaded by the user will have been deleted from the server by that point.
![stirling-home](images/stirling-home.jpg)
## Features
- Dark mode support.
- Custom download options (see [here](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/images/settings.png) for example)
- Parallel file processing and downloads
- API for integration with external scripts
- Optional Login and Authentication support (see [here](https://github.com/Stirling-Tools/Stirling-PDF/tree/main#login-authentication) for documentation)
## **PDF Features**
### **Page Operations**
- View and modify PDFs - View multi page PDFs with custom viewing sorting and searching. Plus on page edit features like annotate, draw and adding text and images. (Using PDF.js with Joxit and Liberation.Liberation fonts)
- Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages.
- Merge multiple PDFs together into a single resultant file.
@ -45,6 +46,7 @@ All files and PDFs exist either exclusively on the client side, reside in server
- Convert PDF to a single page.
### **Conversion Operations**
- Convert PDFs to and from images.
- Convert any common file to PDF (using LibreOffice).
- Convert PDF to Word/Powerpoint/Others (using LibreOffice).
@ -53,6 +55,7 @@ All files and PDFs exist either exclusively on the client side, reside in server
- Markdown to PDF.
### **Security & Permissions**
- Add and remove passwords.
- Change/set PDF Permissions.
- Add watermark(s).
@ -61,6 +64,7 @@ All files and PDFs exist either exclusively on the client side, reside in server
- Auto-redact text.
### **Other Operations**
- Add/Generate/Write signatures.
- Repair PDFs.
- Detect and remove blank pages.
@ -77,11 +81,11 @@ All files and PDFs exist either exclusively on the client side, reside in server
- Flatten PDFs.
- Get all information on a PDF to view or export as JSON.
For a overview of the tasks and the technology each uses please view [Endpoint-groups.md](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Endpoint-groups.md)
Demo of the app is available [here](https://stirlingpdf.io). username: demo, password: demo
## Technologies used
- Spring Boot + Thymeleaf
- [PDFBox](https://github.com/apache/pdfbox/tree/trunk)
- [LibreOffice](https://www.libreoffice.org/discover/libreoffice/) for advanced conversions
@ -94,9 +98,11 @@ Demo of the app is available [here](https://stirlingpdf.io). username: demo, pas
## How to use
### Locally
Please view https://github.com/Stirling-Tools/Stirling-PDF/blob/main/LocalRunGuide.md
### Docker / Podman
https://hub.docker.com/r/frooodle/s-pdf
Stirling PDF has 2 different versions, a Full version and ultra-Lite version. Depending on the types of features you use you may want a smaller image to save on space.
@ -106,6 +112,7 @@ For people that don't mind about space optimization just use the latest tag.
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/frooodle/s-pdf/latest-ultra-lite?label=Stirling-PDF%20Ultra-Lite)
Docker Run
```bash
docker run -d \
-p 8080:8080 \
@ -122,7 +129,9 @@ docker run -d \
-v /location/of/customFiles:/customFiles \
```
Docker Compose
```yaml
version: '3.3'
services:
@ -143,54 +152,61 @@ services:
Note: Podman is CLI-compatible with Docker, so simply replace "docker" with "podman".
## Enable OCR/Compression feature
Please view https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToUseOCR.md
## Supported Languages
Stirling PDF currently supports 26!
- English (English) (en_GB)
- English (US) (en_US)
- Arabic (العربية) (ar_AR)
- German (Deutsch) (de_DE)
- French (Français) (fr_FR)
- Spanish (Español) (es_ES)
- Simplified Chinese (简体中文) (zh_CN)
- Traditional Chinese (繁體中文) (zh_TW)
- Catalan (Català) (ca_CA)
- Italian (Italiano) (it_IT)
- Swedish (Svenska) (sv_SE)
- Polish (Polski) (pl_PL)
- Romanian (Română) (ro_RO)
- Korean (한국어) (ko_KR)
- Portuguese Brazilian (Português) (pt_BR)
- Russian (Русский) (ru_RU)
- Basque (Euskara) (eu_ES)
- Japanese (日本語) (ja_JP)
- Dutch (Nederlands) (nl_NL)
- Greek (el_GR)
- Turkish (Türkçe) (tr_TR)
- Indonesia (Bahasa Indonesia) (id_ID)
- Hindi (हिंदी) (hi_IN)
- Hungarian (Magyar) (hu_HU)
- Bulgarian (Български) (bg_BG)
- Sebian Latin alphabet (Srpski) (sr_LATN_RS)
Stirling PDF currently supports 27!
| Language | Progress |
| ------------------------------------------- | -------------------------------------- |
| English (English) (en_GB) | ![100%](https://geps.dev/progress/100) |
| English (US) (en_US) | ![100%](https://geps.dev/progress/100) |
| Arabic (العربية) (ar_AR) | ![58%](https://geps.dev/progress/58) |
| German (Deutsch) (de_DE) | ![98%](https://geps.dev/progress/98) |
| French (Français) (fr_FR) | ![94%](https://geps.dev/progress/94) |
| Spanish (Español) (es_ES) | ![95%](https://geps.dev/progress/95) |
| Simplified Chinese (简体中文) (zh_CN) | ![99%](https://geps.dev/progress/99) |
| Traditional Chinese (繁體中文) (zh_TW) | ![99%](https://geps.dev/progress/99) |
| Catalan (Català) (ca_CA) | ![65%](https://geps.dev/progress/65) |
| Italian (Italiano) (it_IT) | ![98%](https://geps.dev/progress/98) |
| Swedish (Svenska) (sv_SE) | ![58%](https://geps.dev/progress/58) |
| Polish (Polski) (pl_PL) | ![60%](https://geps.dev/progress/60) |
| Romanian (Română) (ro_RO) | ![58%](https://geps.dev/progress/58) |
| Korean (한국어) (ko_KR) | ![94%](https://geps.dev/progress/94) |
| Portuguese Brazilian (Português) (pt_BR) | ![74%](https://geps.dev/progress/74) |
| Russian (Русский) (ru_RU) | ![94%](https://geps.dev/progress/94) |
| Basque (Euskara) (eu_ES) | ![76%](https://geps.dev/progress/76) |
| Japanese (日本語) (ja_JP) | ![94%](https://geps.dev/progress/94) |
| Dutch (Nederlands) (nl_NL) | ![92%](https://geps.dev/progress/92) |
| Greek (Ελληνικά) (el_GR) | ![92%](https://geps.dev/progress/92) |
| Turkish (Türkçe) (tr_TR) | ![99%](https://geps.dev/progress/99) |
| Indonesia (Bahasa Indonesia) (id_ID) | ![87%](https://geps.dev/progress/87) |
| Hindi (हिंदी) (hi_IN) | ![88%](https://geps.dev/progress/88) |
| Hungarian (Magyar) (hu_HU) | ![87%](https://geps.dev/progress/87) |
| Bulgarian (Български) (bg_BG) | ![82%](https://geps.dev/progress/82) |
| Sebian Latin alphabet (Srpski) (sr_LATN_RS) | ![89%](https://geps.dev/progress/89) |
| Ukrainian (Українська) (uk_UA) | ![98%](https://geps.dev/progress/98) |
## Contributing (creating issues, translations, fixing bugs, etc.)
Please see our [Contributing Guide](CONTRIBUTING.md)!
## Customisation
Stirling PDF allows easy customization of the app.
Includes things like
- Custom application name
- Custom slogans, icons, images, and even custom HTML (via file overrides)
There are two options for this, either using the generated settings file ``settings.yml``
This file is located in the ``/configs`` directory and follows standard YAML formatting
Environment variables are also supported and would override the settings file
For example in the settings.yml you have
```yaml
system:
defaultLocale: 'en-US'
@ -199,6 +215,7 @@ system:
To have this via an environment variable you would have ``SYSTEM_DEFAULTLOCALE``
The Current list of settings is
```yaml
security:
enableLogin: false # set to 'true' to enable login
@ -221,24 +238,31 @@ endpoints:
metrics:
enabled: true # 'true' to enable Info APIs endpoints (view http://localhost:8080/swagger-ui/index.html#/API to learn more), 'false' to disable
```
### Extra notes
- Endpoints. Currently, the endpoints ENDPOINTS_TO_REMOVE and GROUPS_TO_REMOVE can include comma separate lists of endpoints and groups to disable as example ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages would disable both image-to-pdf and remove pages, GROUPS_TO_REMOVE=LibreOffice Would disable all things that use LibreOffice. You can see a list of all endpoints and groups [here](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Endpoint-groups.md)
- customStaticFilePath. Customise static files such as the app logo by placing files in the /customFiles/static/ directory. An example of customising app logo is placing a /customFiles/static/favicon.svg to override current SVG. This can be used to change any images/icons/css/fonts/js etc in Stirling-PDF
### Environment only parameters
- ``SYSTEM_ROOTURIPATH`` ie set to ``/pdf-app`` to Set the application's root URI to ``localhost:8080/pdf-app``
- ``SYSTEM_CONNECTIONTIMEOUTMINUTES`` to set custom connection timeout values
- ``DOCKER_ENABLE_SECURITY`` to tell docker to download security jar (required as true for auth login)
- ``INSTALL_BOOK_AND_ADVANCED_HTML_OPS`` to download calibre onto stirling-pdf enabling pdf to/from book and advanced html conversion
## API
For those wanting to use Stirling-PDFs backend API to link with their own custom scripting to edit PDFs you can view all existing API documentation
[here](https://app.swaggerhub.com/apis-docs/Stirling-Tools/Stirling-PDF/) or navigate to /swagger-ui/index.html of your stirling-pdf instance for your versions documentation (Or by following the API button in your settings of Stirling-PDF)
## Login authentication
![stirling-login](images/login-light.png)
### Prerequisites:
- User must have the folder ./configs volumed within docker so that it is retained during updates.
- Docker uses must download the security jar version by setting ``DOCKER_ENABLE_SECURITY`` to ``true`` in environment variables.
- Then either enable login via the settings.yml file or via setting ``SECURITY_ENABLE_LOGIN`` to ``true``
@ -257,6 +281,7 @@ For API usage you must provide a header with 'X-API-Key' and the associated API
## FAQ
### Q1: What are your planned features?
- Progress bar/Tracking
- Full custom logic pipelines to combine multiple operations together.
- Folder support with auto scanning to perform operations on
@ -266,7 +291,9 @@ For API usage you must provide a header with 'X-API-Key' and the associated API
- Fill forms manually or automatically
### Q2: Why is my application downloading .htm files?
This is an issue caused commonly by your NGINX configuration. The default file upload size for NGINX is 1MB, you need to add the following in your Nginx sites-available file. ``client_max_body_size SIZE;`` Where "SIZE" is 50M for example for 50MB files.
### Q3: Why is my download timing out
NGINX has timeout values by default so if you are running Stirling-PDF behind NGINX you may need to set a timeout value such as adding the config ``proxy_read_timeout 3600;``

View file

@ -12,7 +12,7 @@ plugins {
import com.github.jk1.license.render.*
group = 'stirling.software'
version = '0.22.7'
version = '0.22.8'
sourceCompatibility = '17'
repositories {

View file

@ -1,5 +1,5 @@
apiVersion: v2
appVersion: 0.22.6
appVersion: 0.22.8
description: locally hosted web application that allows you to perform various operations
on PDF files
home: https://github.com/Stirling-Tools/Stirling-PDF

View file

@ -0,0 +1,122 @@
"""A script to update language progress status in README.md based on
properties file comparison.
This script compares default properties file with others in a directory to
determine language progress.
It then updates README.md based on provided progress list.
Author: Ludy87
Example:
To use this script, simply run it from command line:
$ python counter_translation.py
"""
import os
import glob
import re
from typing import List, Tuple
def write_readme(progress_list: List[Tuple[str, int]]) -> None:
"""
Updates the progress status in the README.md file based
on the provided progress list.
Parameters:
progress_list (List[Tuple[str, int]]): A list of tuples containing
language and progress percentage.
Returns:
None
"""
with open("README.md", "r", encoding="utf-8") as file:
content = file.read()
lines = content.split("\n")
for i, line in enumerate(lines[2:], start=2):
for progress in progress_list:
language, value = progress
if language in line:
match = re.search(r"\!\[(\d+(\.\d+)?)%\]\(.*\)", line)
if match:
lines[i] = line.replace(
match.group(0),
f"![{value}%](https://geps.dev/progress/{value})",
)
new_content = "\n".join(lines)
with open("README.md", "w", encoding="utf-8") as file:
file.write(new_content)
def compare_files(default_file_path, files_directory) -> List[Tuple[str, int]]:
"""
Compares the default properties file with other
properties files in the directory.
Parameters:
default_file_path (str): The path to the default properties file.
files_directory (str): The directory containing other properties files.
Returns:
List[Tuple[str, int]]: A list of tuples containing
language and progress percentage.
"""
file_paths = glob.glob(os.path.join(files_directory, "messages_*.properties"))
num_lines = sum(1 for _ in open(default_file_path, encoding="utf-8"))
result_list = []
for file_path in file_paths:
language = (
os.path.basename(file_path)
.split("messages_", 1)[1]
.split(".properties", 1)[0]
)
fails = 0
if "en_GB" in language or "en_US" in language:
result_list.append(("en_GB", 100))
result_list.append(("en_US", 100))
continue
with open(default_file_path, "r", encoding="utf-8") as default_file, open(
file_path, "r", encoding="utf-8"
) as file:
for _ in range(5):
next(default_file)
try:
next(file)
except StopIteration:
fails = num_lines
for _, (line_default, line_file) in enumerate(
zip(default_file, file), start=6
):
try:
if (
line_default.split("=", 1)[1].strip()
== line_file.split("=", 1)[1].strip()
):
fails += 1
except IndexError:
pass
result_list.append(
(
language,
int((num_lines - fails) * 100 / num_lines),
)
)
unique_data = list(set(result_list))
unique_data.sort(key=lambda x: x[1], reverse=True)
return unique_data
if __name__ == "__main__":
directory = os.path.join(os.getcwd(), "src", "main", "resources")
reference_file = os.path.join(directory, "messages_en_GB.properties")
write_readme(compare_files(reference_file, directory))

View file

@ -56,7 +56,7 @@ public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationF
}
private boolean isDemoUser(String username) {
Optional<User> user = userService.findByUsername(username);
Optional<User> user = userService.findByUsernameIgnoreCase(username);
return user.isPresent()
&& user.get().getAuthorities().stream()
.anyMatch(authority -> "ROLE_DEMO_USER".equals(authority.getAuthority()));

View file

@ -39,7 +39,7 @@ public class FirstLoginFilter extends OncePerRequestFilter {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.isAuthenticated()) {
Optional<User> user = userService.findByUsername(authentication.getName());
Optional<User> user = userService.findByUsernameIgnoreCase(authentication.getName());
if ("GET".equalsIgnoreCase(method)
&& user.isPresent()
&& user.get().isFirstLogin()

View file

@ -38,7 +38,7 @@ public class InitialSecuritySetup {
initialUsername, initialPassword, Role.ADMIN.getRoleId(), true);
}
}
if (!userService.usernameExists(Role.INTERNAL_API_USER.getRoleId())) {
if (!userService.usernameExistsIgnoreCase(Role.INTERNAL_API_USER.getRoleId())) {
userService.saveUser(
Role.INTERNAL_API_USER.getRoleId(),
UUID.randomUUID().toString(),

View file

@ -62,7 +62,7 @@ public class UserService implements UserServiceInterface {
public User addApiKeyToUser(String username) {
User user =
userRepository
.findByUsername(username)
.findByUsernameIgnoreCase(username)
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
user.setApiKey(generateApiKey());
@ -76,7 +76,7 @@ public class UserService implements UserServiceInterface {
public String getApiKeyForUser(String username) {
User user =
userRepository
.findByUsername(username)
.findByUsernameIgnoreCase(username)
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
return user.getApiKey();
}
@ -103,7 +103,7 @@ public class UserService implements UserServiceInterface {
}
public boolean validateApiKeyForUser(String username, String apiKey) {
Optional<User> userOpt = userRepository.findByUsername(username);
Optional<User> userOpt = userRepository.findByUsernameIgnoreCase(username);
return userOpt.isPresent() && userOpt.get().getApiKey().equals(apiKey);
}
@ -136,7 +136,7 @@ public class UserService implements UserServiceInterface {
}
public void deleteUser(String username) {
Optional<User> userOpt = userRepository.findByUsername(username);
Optional<User> userOpt = userRepository.findByUsernameIgnoreCase(username);
if (userOpt.isPresent()) {
for (Authority authority : userOpt.get().getAuthorities()) {
if (authority.getAuthority().equals(Role.INTERNAL_API_USER.getRoleId())) {
@ -151,12 +151,16 @@ public class UserService implements UserServiceInterface {
return userRepository.findByUsername(username).isPresent();
}
public boolean usernameExistsIgnoreCase(String username) {
return userRepository.findByUsernameIgnoreCase(username).isPresent();
}
public boolean hasUsers() {
return userRepository.count() > 0;
}
public void updateUserSettings(String username, Map<String, String> updates) {
Optional<User> userOpt = userRepository.findByUsername(username);
Optional<User> userOpt = userRepository.findByUsernameIgnoreCase(username);
if (userOpt.isPresent()) {
User user = userOpt.get();
Map<String, String> settingsMap = user.getSettings();

View file

@ -27,7 +27,9 @@ import io.github.pixee.security.Filenames;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import stirling.software.SPDF.model.PdfMetadata;
import stirling.software.SPDF.model.api.PDFWithPageNums;
import stirling.software.SPDF.utils.PdfUtils;
import stirling.software.SPDF.utils.WebResponseUtils;
@RestController
@ -49,6 +51,7 @@ public class SplitPDFController {
// open the pdf document
PDDocument document = Loader.loadPDF(file.getBytes());
PdfMetadata metadata = PdfUtils.extractMetadataFromPdf(document);
int totalPages = document.getNumberOfPages();
List<Integer> pageNumbers = request.getPageNumbersList(document, false);
System.out.println(
@ -75,6 +78,9 @@ public class SplitPDFController {
}
previousPageNumber = splitPoint + 1;
// Transfer metadata to split pdf
PdfUtils.setMetadataToPdf(splitDocument, metadata);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
splitDocument.save(baos);

View file

@ -43,7 +43,7 @@ public class UserController {
@PreAuthorize("!hasAuthority('ROLE_DEMO_USER')")
@PostMapping("/register")
public String register(@ModelAttribute UsernameAndPass requestModel, Model model) {
if (userService.usernameExists(requestModel.getUsername())) {
if (userService.usernameExistsIgnoreCase(requestModel.getUsername())) {
model.addAttribute("error", "Username already exists");
return "register";
}
@ -70,7 +70,8 @@ public class UserController {
return new RedirectView("/account?messageType=notAuthenticated");
}
Optional<User> userOpt = userService.findByUsernameIgnoreCase(principal.getName());
// The username MUST be unique when renaming
Optional<User> userOpt = userService.findByUsername(principal.getName());
if (userOpt == null || userOpt.isEmpty()) {
return new RedirectView("/account?messageType=userNotFound");
@ -113,7 +114,7 @@ public class UserController {
return new RedirectView("/change-creds?messageType=notAuthenticated");
}
Optional<User> userOpt = userService.findByUsername(principal.getName());
Optional<User> userOpt = userService.findByUsernameIgnoreCase(principal.getName());
if (userOpt == null || userOpt.isEmpty()) {
return new RedirectView("/change-creds?messageType=userNotFound");
@ -146,7 +147,7 @@ public class UserController {
return new RedirectView("/account?messageType=notAuthenticated");
}
Optional<User> userOpt = userService.findByUsername(principal.getName());
Optional<User> userOpt = userService.findByUsernameIgnoreCase(principal.getName());
if (userOpt == null || userOpt.isEmpty()) {
return new RedirectView("/account?messageType=userNotFound");
@ -207,7 +208,7 @@ public class UserController {
return new RedirectView("/addUsers?messageType=usernameExists");
}
}
if (userService.usernameExists(username)) {
if (userService.usernameExistsIgnoreCase(username)) {
return new RedirectView("/addUsers?messageType=usernameExists");
}
try {
@ -231,7 +232,7 @@ public class UserController {
public RedirectView deleteUser(
@PathVariable(name = "username") String username, Authentication authentication) {
if (!userService.usernameExists(username)) {
if (!userService.usernameExistsIgnoreCase(username)) {
return new RedirectView("/addUsers?messageType=deleteUsernameExists");
}
@ -239,7 +240,7 @@ public class UserController {
String currentUsername = authentication.getName();
// Check if the provided username matches the current session's username
if (currentUsername.equals(username)) {
if (currentUsername.equalsIgnoreCase(username)) {
return new RedirectView("/addUsers?messageType=deleteCurrentUser");
}
invalidateUserSessions(username);

View file

@ -0,0 +1,32 @@
package stirling.software.SPDF.controller.api.converters;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import stirling.software.SPDF.model.api.PDFFile;
import stirling.software.SPDF.utils.PDFToFile;
@RestController
@Tag(name = "Convert", description = "Convert APIs")
@RequestMapping("/api/v1/convert")
public class ConvertPDFToHtml {
@PostMapping(consumes = "multipart/form-data", value = "/pdf/html")
@Operation(
summary = "Convert PDF to HTML",
description =
"This endpoint converts a PDF file to HTML format. Input:PDF Output:HTML Type:SISO")
public ResponseEntity<byte[]> processPdfToHTML(@ModelAttribute PDFFile request)
throws Exception {
MultipartFile inputFile = request.getFileInput();
PDFToFile pdfToFile = new PDFToFile();
return pdfToFile.processPdfToHtml(inputFile);
}
}

View file

@ -9,7 +9,6 @@ import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@ -143,8 +142,7 @@ public class ExtractImageScansController {
.runCommandWithOutputHandling(command);
// Read the output photos in temp directory
List<Path> tempOutputFiles =
Files.list(tempDir).sorted().collect(Collectors.toList());
List<Path> tempOutputFiles = Files.list(tempDir).sorted().toList();
for (Path tempOutputFile : tempOutputFiles) {
byte[] imageBytes = Files.readAllBytes(tempOutputFile);
processedImageBytes.add(imageBytes);

View file

@ -95,7 +95,7 @@ public class AccountWebController {
// Fetch user details from the database
Optional<User> user =
userRepository.findByUsername(
userRepository.findByUsernameIgnoreCase(
username); // Assuming findByUsername method exists
if (!user.isPresent()) {
// Handle error appropriately
@ -145,7 +145,7 @@ public class AccountWebController {
// Fetch user details from the database
Optional<User> user =
userRepository.findByUsername(
userRepository.findByUsernameIgnoreCase(
username); // Assuming findByUsername method exists
if (!user.isPresent()) {
// Handle error appropriately

View file

@ -0,0 +1,19 @@
package stirling.software.SPDF.model;
import java.util.Calendar;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class PdfMetadata {
private String author;
private String producer;
private String title;
private String creator;
private String subject;
private String keywords;
private Calendar creationDate;
private Calendar modificationDate;
}

View file

@ -88,6 +88,7 @@ public class GeneralUtils {
}
sizeStr = sizeStr.trim().toUpperCase();
sizeStr = sizeStr.replace(",", ".").replace(" ", "");
try {
if (sizeStr.endsWith("KB")) {
return (long)
@ -185,7 +186,7 @@ public class GeneralUtils {
// Insert multiplication between a number and 'n' (e.g., "4n" becomes "4*n")
String withMultiplication = expression.replaceAll("(\\d)n", "$1*n");
// Now replace 'n' with its current value
return withMultiplication.replaceAll("n", String.valueOf(nValue));
return withMultiplication.replace("n", String.valueOf(nValue));
}
private static List<Integer> handlePart(String part, int totalPages, int offset) {

View file

@ -6,6 +6,7 @@ import java.awt.image.RenderedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@ -19,11 +20,8 @@ import javax.imageio.stream.ImageOutputStream;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject;
@ -39,6 +37,8 @@ import org.springframework.web.multipart.MultipartFile;
import io.github.pixee.security.Filenames;
import stirling.software.SPDF.model.PdfMetadata;
public class PdfUtils {
private static final Logger logger = LoggerFactory.getLogger(PdfUtils.class);
@ -421,4 +421,28 @@ public class PdfUtils {
logger.info("PDF successfully saved to byte array");
return baos.toByteArray();
}
public static PdfMetadata extractMetadataFromPdf(PDDocument pdf) {
return PdfMetadata.builder()
.author(pdf.getDocumentInformation().getAuthor())
.producer(pdf.getDocumentInformation().getProducer())
.title(pdf.getDocumentInformation().getTitle())
.creator(pdf.getDocumentInformation().getCreator())
.subject(pdf.getDocumentInformation().getSubject())
.keywords(pdf.getDocumentInformation().getKeywords())
.creationDate(pdf.getDocumentInformation().getCreationDate())
.modificationDate(pdf.getDocumentInformation().getModificationDate())
.build();
}
public static void setMetadataToPdf(PDDocument pdf, PdfMetadata pdfMetadata) {
pdf.getDocumentInformation().setAuthor(pdfMetadata.getAuthor());
pdf.getDocumentInformation().setProducer(pdfMetadata.getProducer());
pdf.getDocumentInformation().setTitle(pdfMetadata.getTitle());
pdf.getDocumentInformation().setCreator(pdfMetadata.getCreator());
pdf.getDocumentInformation().setSubject(pdfMetadata.getSubject());
pdf.getDocumentInformation().setKeywords(pdfMetadata.getKeywords());
pdf.getDocumentInformation().setCreationDate(pdfMetadata.getCreationDate());
pdf.getDocumentInformation().setModificationDate(Calendar.getInstance());
}
}

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=حدد زاوية الدوران (بمضاعفات 90 درج
rotate.submit=استدارة
#merge
#split-pdfs
split.title=انقسام PDF
split.header=تقسيم PDF
split.desc.1=الأرقام التي تحددها هي رقم الصفحة التي تريد تقسيمها
split.desc.2=على هذا النحو ، سيؤدي تحديد 1،3،7-8 إلى تقسيم مستند من 10 صفحات إلى 6 PDFS منفصلة مع:
split.desc.2=على هذا النحو ، سيؤدي تحديد 1،3،7-9 إلى تقسيم مستند من 10 صفحات إلى 6 PDFS منفصلة مع:
split.desc.3=المستند رقم 1: الصفحة 1
split.desc.4=المستند رقم 2: الصفحتان 2 و 3
split.desc.5=المستند رقم 3: الصفحة 4 و 5 و 6
split.desc.6=المستند رقم 4: الصفحة 7
split.desc.7=المستند رقم 5: الصفحة 8
split.desc.8=المستند رقم 6: الصفحتان 9 و 10
split.desc.5=المستند رقم 3: الصفحة 4 و 5 و 6 و 7
split.desc.6=المستند رقم 4: الصفحة 8
split.desc.7=المستند رقم 5: الصفحة 9
split.desc.8=المستند رقم 6: الصفحة 10
split.splitPages=أدخل الصفحات المراد تقسيمها:
split.submit=Split

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Изберете ъгъл на въртене (кратно
rotate.submit=Завъртане
#merge
#split-pdfs
split.title=Разделяне на PDF
split.header=Разделяне на PDF
split.desc.1=Числата, които избирате, са номера на страницата, на която искате да направите разделяне
split.desc.2=Така че избирането на 1,3,7-8 ще раздели документ от 10 страници на 6 отделни PDF файла с:
split.desc.2=Така че избирането на 1,3,7-9 ще раздели документ от 10 страници на 6 отделни PDF файла с:
split.desc.3=Документ #1: Страница 1
split.desc.4=Документ #2: Страница 2 и 3
split.desc.5=Документ #3: Страница 4, 5 и 6
split.desc.6=Документ #4: Страница 7
split.desc.7=Документ #5: Страница 8
split.desc.8=Документ #6: Страница 9 и 10
split.desc.5=Документ #3: Страница 4, 5, 6 и 7
split.desc.6=Документ #4: Страница 8
split.desc.7=Документ #5: Страница 9
split.desc.8=Документ #6: Страница 10
split.splitPages=Въведете страници за разделяне:
split.submit=Разделяне

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Selecciona l'angle de gir (en múltiples de 90 graus):
rotate.submit=Rota
#merge
#split-pdfs
split.title=Divideix PDF
split.header=Divideix PDF
split.desc.1=Els números seleccionats són el número de pàgina en què voleu fer la divisió
split.desc.2=Per tant, seleccionant 1,3,7-8 dividiria un document de 10 pàgines en 6 PDFS separats amb:
split.desc.2=Per tant, seleccionant 1,3,7-9 dividiria un document de 10 pàgines en 6 PDFS separats amb:
split.desc.3=Document #1: Pàgina 1
split.desc.4=Document #2: Pàgina 2 i 3
split.desc.5=Document #3: Pàgina 4, 5 i 6
split.desc.6=Document #4: Pàgina 7
split.desc.7=Document #5: Pàgina 8
split.desc.8=Document #6: Pàgina 9 i 10
split.desc.5=Document #3: Pàgina 4, 5, 6 i 7
split.desc.6=Document #4: Pàgina 8
split.desc.7=Document #5: Pàgina 9
split.desc.8=Document #6: Pàgina 10
split.splitPages=Introdueix pàgines per dividir-les:
split.submit=Divideix

View file

@ -57,15 +57,16 @@ usernameExistsMessage=Neuer Benutzername existiert bereits.
invalidUsernameMessage=Ungültiger Benutzername. Der Benutzername darf nur Buchstaben und Zahlen enthalten.
deleteCurrentUserMessage=Der aktuell angemeldete Benutzer kann nicht gelöscht werden.
deleteUsernameExistsMessage=Der Benutzername existiert nicht und kann nicht gelöscht werden.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
error=Fehler
oops=Hoppla!
help=Hilfe
goHomepage=Zur Startseite gehen
joinDiscord=Unserem Discord-Server beitreten
seeDockerHub=Docker Hub ansehen
visitGithub=GitHub-Repository besuchen
donate=Spenden
color=Farbe
sponsor=Sponsor
@ -77,8 +78,8 @@ pipeline.uploadButton=Benutzerdefinierter Upload
pipeline.configureButton=Konfigurieren
pipeline.defaultOption=Benutzerdefiniert
pipeline.submitButton=Speichern
pipeline.help=Pipeline Help
pipeline.scanHelp=Folder Scanning Help
pipeline.help=Hilfe für Pipeline
pipeline.scanHelp=Hilfe zum Ordnerscan
######################
# Pipeline Options #
@ -373,17 +374,17 @@ getPdfInfo.tags=infomation,daten,statistik
home.extractPage.title=Seite(n) extrahieren
home.extractPage.desc=Extrahiert ausgewählte Seiten aus einer PDF
extractPage.tags=extrahieren
extractPage.tags=extrahieren,seite
home.PdfToSinglePage.title=PDF zu einer Seite zusammenfassen
home.PdfToSinglePage.desc=Fügt alle PDF-Seiten zu einer einzigen großen Seite zusammen
PdfToSinglePage.tags=einzelseite
PdfToSinglePage.tags=einzelseite,zusammenfassen
home.showJS.title=Javascript anzeigen
home.showJS.desc=Alle Javascript Funktionen in einer PDF anzeigen
showJS.tags=js
showJS.tags=js,javascript
home.autoRedact.title=Automatisch zensieren/schwärzen
home.autoRedact.desc=Automatisches Zensieren (Schwärzen) von Text in einer PDF-Datei basierend auf dem eingegebenen Text
@ -391,7 +392,7 @@ autoRedact.tags=zensieren,schwärzen
home.tableExtraxt.title=Tabelle extrahieren
home.tableExtraxt.desc=Tabelle aus PDF in CSV extrahieren
tableExtraxt.tags=CSV
tableExtraxt.tags=CSV,tabelle,extrahieren
home.autoSizeSplitPDF.title=Teilen nach Größe/Anzahl
@ -414,11 +415,11 @@ AddStampRequest.tags=stempeln,bild hinzufügen,bild zentrieren,wasserzeichen,pdf
home.PDFToBook.title=PDF zum Buch
home.PDFToBook.desc=Konvertiert PDF mit Calibre in Buch-/Comic-Formate
PDFToBook.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
PDFToBook.tags=buch,comic,calibre,convert,manga,amazon,kindle
home.BookToPDF.title=Buch als PDF
home.BookToPDF.desc=Konvertiert Buch-/Comic-Formate mithilfe von Calibre in PDF
BookToPDF.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
BookToPDF.tags=buch,comic,calibre,convert,manga,amazon,kindle
###########################
@ -466,7 +467,7 @@ pdfToSinglePage.submit=Zusammenfassen
pageExtracter.title=Seiten extrahieren
pageExtracter.header=Seiten extrahieren
pageExtracter.submit=Extrahieren
pageExtracter.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
pageExtracter.placeholder=(z.B. 1,2,8 oder 4,7,12-16 oder 2n-1)
#getPdfInfo
@ -769,23 +770,23 @@ merge.submit=Zusammenführen
pdfOrganiser.title=Seiten anordnen
pdfOrganiser.header=PDF Seitenorganisation
pdfOrganiser.submit=Seiten anordnen
pdfOrganiser.mode=Mode
pdfOrganiser.mode.1=Custom Page Order
pdfOrganiser.mode.2=Reverse Order
pdfOrganiser.mode.3=Duplex Sort
pdfOrganiser.mode.4=Booklet Sort
pdfOrganiser.mode.5=Side Stitch Booklet Sort
pdfOrganiser.mode.6=Odd-Even Split
pdfOrganiser.mode.7=Remove First
pdfOrganiser.mode.8=Remove Last
pdfOrganiser.mode.9=Remove First and Last
pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1)
pdfOrganiser.mode=Modus
pdfOrganiser.mode.1=Benutzerdefinierte Seitenreihenfolge
pdfOrganiser.mode.2=Umgekehrte Reihenfolge
pdfOrganiser.mode.3=Duplex-Sortierung
pdfOrganiser.mode.4=Heftsortierung
pdfOrganiser.mode.5=Seitenheftungs-Heftsortierung
pdfOrganiser.mode.6=Ungerade-Gerade-Teilung
pdfOrganiser.mode.7=Erste entfernen
pdfOrganiser.mode.8=Letzte entfernen
pdfOrganiser.mode.9=Erste und letzte entfernen
pdfOrganiser.placeholder=(z.B. 1,3,2 oder 4-8,2,10-12 oder 2n-1)
#multiTool
multiTool.title=PDF-Multitool
multiTool.header=PDF-Multitool
multiTool.uploadPrompts=Please Upload PDF
multiTool.uploadPrompts=Bitte PDF hochladen
#view pdf
viewPdf.title=PDF anzeigen
@ -796,7 +797,7 @@ pageRemover.title=Seiten entfernen
pageRemover.header=PDF Seiten entfernen
pageRemover.pagesToDelete=Seiten zu entfernen (geben Sie eine Kommagetrennte Liste der Seitenzahlen an):
pageRemover.submit=Seiten löschen
pageRemover.placeholder=(e.g. 1,2,6 or 1-10,15-30)
pageRemover.placeholder=(z.B. 1,2,6 oder 1-10,15-30)
#rotate
@ -806,17 +807,17 @@ rotate.selectAngle=Wählen Sie den Winkel (in Vielfachen von 90 Grad):
rotate.submit=Herunterladen
#merge
#split-pdfs
split.title=PDF aufteilen
split.header=PDF aufteilen
split.desc.1=Die Nummern, die Sie auswählen, sind die Seitenzahlen, an denen Sie aufteilen möchten.
split.desc.2=So würde die Auswahl von 1,3,7-8 ein 10-seitiges Dokument in 6 separate PDFs aufteilen, mit:
split.desc.2=So würde die Auswahl von 1,3,7-9 ein 10-seitiges Dokument in 6 separate PDFs aufteilen, mit:
split.desc.3=Dokument #1: Seite 1
split.desc.4=Dokument #2: Seite 2 und 3
split.desc.5=Dokument #3: Seite 4, 5 und 6
split.desc.6=Dokument #4: Seite 7
split.desc.7=Dokument #5: Seite 8
split.desc.8=Dokument #6: Seite 9 und 10
split.desc.5=Dokument #3: Seite 4, 5, 6 und 7
split.desc.6=Dokument #4: Seite 8
split.desc.7=Dokument #5: Seite 9
split.desc.8=Dokument #6: Seite 10
split.splitPages=Geben Sie die Seiten an, an denen aufgeteilt werden soll:
split.submit=Aufteilen
@ -885,7 +886,7 @@ watermark.selectText.8=Wasserzeichen Typ:
watermark.selectText.9=Wasserzeichen-Bild:
watermark.submit=Wasserzeichen hinzufügen
watermark.type.1=Text
watermark.type.2=Image
watermark.type.2=Bild
#Change permissions
@ -1031,15 +1032,15 @@ licenses.license=Lizenz
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=Entschuldigung für das Problem!
error.needHelp=Brauchst du Hilfe / Ein Problem gefunden?
error.contactTip=Wenn du weiterhin Probleme hast, zögere nicht, uns um Hilfe zu bitten. Du kannst ein Ticket auf unserer GitHub-Seite einreichen oder uns über Discord kontaktieren:
error.404.head=404 - Seite nicht gefunden | Ups, wir sind im Code gestolpert!
error.404.1=Wir können die gesuchte Seite nicht finden.
error.404.2=Etwas ist schiefgelaufen
error.github=Ein Ticket auf GitHub einreichen
error.showStack=Stack-Trace anzeigen
error.copyStack=Stack-Trace kopieren
error.githubSubmit=GitHub - Ein Ticket einreichen
error.discordSubmit=Discord - Unterstützungsbeitrag einreichen

View file

@ -10,18 +10,18 @@ multiPdfDropPrompt=Επιλογή (ή τράβηγμα αρχείου και α
imgPrompt=Επιλογή Εικόνας(Εικόνων)
genericSubmit=Υποβολή
processTimeWarning=Προσοχή: Αυτή η διαδικασία μπορεί να διαρκέσει έως και ένα λεπτό ανάλογα με το μέγεθος του αρχείου
pageOrderPrompt=Προσαρμοσμένη Σειρά Σελίδας (Προσθέστε μία λίστε απο αριθμούς σελιδών, χωρισμένες με κόμμα ή συναρτήσεις όπως 2n+1) :
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
goToPage=Go
pageOrderPrompt=Προσαρμοσμένη Σειρά Σελίδας (Προσθέστε μία λίστα απο αριθμούς σελιδών, χωρισμένες με κόμμα ή συναρτήσεις όπως 2n+1) :
pageSelectionPrompt=Προσαρμοσμένη Επιλογή Σελίδας (Προσθέστε μία λίστα απο αριθμούς σελιδών, χωρισμένες με κόμμα 1,5,6 ή συναρτήσεις όπως 2n+1):
goToPage=Πήγαινε
true=Αληθές
false=Λανθασμένο
unknown=Άγνωστο
save=Αποθήκευση
saveToBrowser=Save to Browser
saveToBrowser=Αποθήκευση στο Browser
close=Κλείσιμο
filesSelected=αρχεία που επιλέχθηκαν
noFavourites=Κανένα αγαπήμενο δεν έχει προστεθεί
downloadComplete=Download Complete
downloadComplete=Η Λήψη Ολοκληρώθηκε
bored=Βαριέστε να περιμένετε;
alphabet=Αλφάβητο
downloadPdf=Κατέβασμα του PDF
@ -45,53 +45,54 @@ red=Κόκκινο
green=Πράσινο
blue=Μπλέ
custom=Προσαρμογή...
WorkInProgess=Work in progress, May not work or be buggy, Please report any problems!
poweredBy=Powered by
yes=Yes
no=No
WorkInProgess=Εργασία σε εξέλιξη, Ενδέχεται να μην λειτουργεί ή να έχει λάθη, Παρακαλώ αναφέρετε τυχόν προβλήματα!
poweredBy=Τροφοδοτείται από
yes=Ναι
no=Όχι
changedCredsMessage=Τα διαπιστευτήρια έχουν αλλάξει!
notAuthenticatedMessage=Ο χρήστης δεν έχει αυθεντικοποιηθεί.
userNotFoundMessage=Ο χρήστης δεν βρέθηκε.
incorrectPasswordMessage=Ο τρέχων κωδικός πρόσβασης είναι λανθασμένος.
usernameExistsMessage=Το νέο όνομα χρήστη υπάρχει ήδη.
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
deleteCurrentUserMessage=Cannot delete currently logged in user.
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
invalidUsernameMessage=Μη έγκυρο όνομα χρήστη, το όνομα χρήστη πρέπει να περιέχει μόνο αλφαβητικούς χαρακτήρες και αριθμούς.
deleteCurrentUserMessage=Δεν είναι δυνατή η διαγραφή του τρέχοντος συνδεδεμένου χρήστη.
deleteUsernameExistsMessage=Το όνομα χρήστη δεν υπάρχει και δεν μπορεί να διαγραφεί.
error=Σφάλμα
oops=Ωχ!
help=Βοήθεια
goHomepage=Πήγαινε στην Αρχική Σελίδα
joinDiscord=Εγγραφείτε στο Server του Discord μας
seeDockerHub=Βλέπε το Docker Hub
visitGithub=Επισκεφθείτε το Αποθετήριο του Github
donate=Δωρισε
color=Χρώμα
sponsor=οστηρικτής
###############
# Pipeline #
###############
pipeline.header=Pipeline Menu (Beta)
pipeline.header=Μενού Pipeline (Beta)
pipeline.uploadButton=Upload Custom
pipeline.configureButton=Configure
pipeline.configureButton=Διαμόρφωσε
pipeline.defaultOption=Custom
pipeline.submitButton=Submit
pipeline.help=Pipeline Help
pipeline.scanHelp=Folder Scanning Help
pipeline.submitButton=Υποβολή
pipeline.help=Βοήθεια για το Pipeline
pipeline.scanHelp=Βοήθεια για Σάρωση Φακέλων
######################
# Pipeline Options #
######################
pipelineOptions.header=Pipeline Configuration
pipelineOptions.pipelineNameLabel=Pipeline Name
pipelineOptions.saveSettings=Save Operation Settings
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
pipelineOptions.selectOperation=Select Operation
pipelineOptions.addOperationButton=Add operation
pipelineOptions.header=Διαμόρφωση Pipeline
pipelineOptions.pipelineNameLabel=Όνομα Pipeline
pipelineOptions.saveSettings=Αποθήκευση Ρυθμίσεων Λειτουργίας
pipelineOptions.pipelineNamePrompt=Εισαγάγετε το όνομα του pipeline εδώ
pipelineOptions.selectOperation=Επιλέξτε Λειτουργία
pipelineOptions.addOperationButton=Προσθήκη λειτουργίας
pipelineOptions.pipelineHeader=Pipeline:
pipelineOptions.saveButton=Download
pipelineOptions.validateButton=Validate
pipelineOptions.saveButton=Λήψη
pipelineOptions.validateButton=Επικυρώνω
@ -111,12 +112,12 @@ navbar.settings=Ρυθμίσεις
#############
settings.title=Ρυθμίσεις
settings.update=Υπάρχει διαθέσιμη ενημέρωση
settings.appVersion=Έκδοση εφαρμογής: App Version:
settings.appVersion=Έκδοση εφαρμογής:
settings.downloadOption.title=Επιλέξετε την επιλογή λήψης (Για λήψεις μεμονωμένων αρχείων χωρίς zip):
settings.downloadOption.1=Άνοιγμα στο ίδιο παράθυρο
settings.downloadOption.2=Άνοιγμα σε νέο παράθυρο
settings.downloadOption.3=Λήψη αρχείου
settings.zipThreshold=Zip αρχεία όταν ο αριθμός των ληφθέντων αρχείων είναι πολύ μεγάλος
settings.zipThreshold=Αρχεία Zip όταν ο αριθμός των ληφθέντων αρχείων είναι πολύ μεγάλος
settings.signOut=Αποσύνδεση
settings.accountSettings=Ρυθμίσεις Λογαριασμού
@ -124,7 +125,7 @@ settings.accountSettings=Ρυθμίσεις Λογαριασμού
changeCreds.title=Αλλαγή Διαπιστευτηρίων
changeCreds.header=Ενημέρωση των λεπτομερειών του Λογαριασμού σας
changeCreds.changePassword=You are using default login credentials. Please enter a new password
changeCreds.changePassword=Χρησιμοποιείτε προεπιλεγμένα διαπιστευτήρια σύνδεσης. Εισαγάγετε έναν νέο κωδικό πρόσβασης
changeCreds.newUsername=Νέο Όνομα Χρήστη
changeCreds.oldPassword=Τρέχων Κωδικός Πρόσβασης
changeCreds.newPassword=Νέος Κωδικός Πρόσβασης
@ -164,10 +165,10 @@ adminUserSettings.roles=Ρόλοι
adminUserSettings.role=Ρόλος
adminUserSettings.actions=Ενέργειες
adminUserSettings.apiUser=Περιορισμένος Χρήστης για διεπαφή προγραμματισμού εφαρμογών (API User)
adminUserSettings.extraApiUser=Additional Limited API User
adminUserSettings.extraApiUser=Πρόσθετος Περιορισμένος Χρήστης για Διεπαφή Προγραμματισμού Εφαρμογών (API User)
adminUserSettings.webOnlyUser=Χρήστης μόνο Ιστού
adminUserSettings.demoUser=Demo User (No custom settings)
adminUserSettings.internalApiUser=Internal API User
adminUserSettings.demoUser=Demo χρήστης (Χωρίς προσαρμοσμένες ρυθμίσεις)
adminUserSettings.internalApiUser=Εσωτερικός API χρήστης
adminUserSettings.forceChange=Αναγκάστε τον χρήστη να αλλάξει το όνομα χρήστη/κωδικό πρόσβασης κατά τη σύνδεση
adminUserSettings.submit=Αποθήκευση Χρήστη
@ -175,7 +176,7 @@ adminUserSettings.submit=Αποθήκευση Χρήστη
# HOME-PAGE #
#############
home.desc=Η τοπικά φιλοξενούμενη one-stop-shop σας για όλες τις ανάγκες σας σε PDF.
home.searchBar=Search for features...
home.searchBar=Αναζήτηση για χαρακτηριστικά...
home.viewPdf.title=Εμφάνιση PDF
@ -196,7 +197,7 @@ split.tags=Page operations,divide,Multi Page,cut,server side
home.rotate.title=Περιστροφή
home.rotate.desc=Περιστροφή των PDF σας με εύκολο τρόπο.
rotate.tags=server side
rotate.tags=από την πλευρά του server
home.imageToPdf.title=Εικόνα σε PDF
@ -389,35 +390,35 @@ home.autoRedact.title=Αυτόματο Μαύρισμα Κειμένου
home.autoRedact.desc=Αυτόματη επεξεργασία (Μαύρισμα) κείμενου σε PDF με βάση το κείμενο εισαγωγής
autoRedact.tags=Redact,Hide,black out,black,marker,hidden
home.tableExtraxt.title=PDF to CSV
home.tableExtraxt.desc=Extracts Tables from a PDF converting it to CSV
home.tableExtraxt.title=PDF σε CSV
home.tableExtraxt.desc=Εξάγει πίνακες από PDF μετατρέποντάς το σε CSV
tableExtraxt.tags=CSV,Table Extraction,extract,convert
home.autoSizeSplitPDF.title=Auto Split by Size/Count
home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count
home.autoSizeSplitPDF.title=Αυτόματη διαίρεση κατά μέγεθος/πλήθος
home.autoSizeSplitPDF.desc=Διαχωρίστε ένα μόνο PDF σε πολλά έγγραφα με βάση το μέγεθος, τον αριθμό σελίδων ή τον αριθμό εγγράφων
autoSizeSplitPDF.tags=pdf,split,document,organization
home.overlay-pdfs.title=Overlay PDFs
home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF
home.overlay-pdfs.title=Επικάλυψη PDFs
home.overlay-pdfs.desc=Επικαλύπτει αρχεία PDF πάνω σε άλλο PDF
overlay-pdfs.tags=Overlay
home.split-by-sections.title=Split PDF by Sections
home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections
home.split-by-sections.title=Διαχωρισμός PDF ανά ενότητες
home.split-by-sections.desc=Διαχωρίστε κάθε σελίδα ενός PDF σε μικρότερες οριζόντιες και κάθετες ενότητες
split-by-sections.tags=Section Split, Divide, Customize
home.AddStampRequest.title=Add Stamp to PDF
home.AddStampRequest.desc=Add text or add image stamps at set locations
home.AddStampRequest.title=Προσθήκη σφραγίδας σε PDF
home.AddStampRequest.desc=Προσθέστε κείμενο ή προσθέστε σφραγίδες εικόνας σε καθορισμένες τοποθεσίες
AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize
home.PDFToBook.title=PDF to Book
home.PDFToBook.desc=Converts PDF to Book/Comic formats using calibre
home.PDFToBook.title=PDF σε Book
home.PDFToBook.desc=Μετατρέπει τις μορφές PDF σε Book/Comic χρησιμοποιώντας calibre
PDFToBook.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
home.BookToPDF.title=Book to PDF
home.BookToPDF.desc=Converts Books/Comics formats to PDF using calibre
home.BookToPDF.title=Book σε PDF
home.BookToPDF.desc=Μετατρέπει τις μορφές Books/Comics σε PDF χρησιμοποιώντας calibre
BookToPDF.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
@ -466,7 +467,7 @@ pdfToSinglePage.submit=Μετατροπή σε Μονή Σελίδα
pageExtracter.title=Εξαγωγή Σελίδων
pageExtracter.header=EΕξαγωγή Σελίδων
pageExtracter.submit=Εξαγωγή
pageExtracter.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
pageExtracter.placeholder=(π.χ. 1,2,8 ή 4,7,12-16 ή 2n-1)
#getPdfInfo
@ -498,37 +499,37 @@ HTMLToPDF.header=HTML σε PDF
HTMLToPDF.help=Δέχεται αρχεία τύπου HTML και τύπου ZIP που περιέχουν html/css/εικόνες κ.λπ. που απαιτούνται
HTMLToPDF.submit=Μετατροπή
HTMLToPDF.credit=Χρησιμοποιεί WeasyPrint
HTMLToPDF.zoom=Zoom level for displaying the website.
HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default)
HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default)
HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default)
HTMLToPDF.printBackground=Render the background of websites.
HTMLToPDF.defaultHeader=Enable Default Header (Name and page number)
HTMLToPDF.cssMediaType=Change the CSS media type of the page.
HTMLToPDF.none=None
HTMLToPDF.print=Print
HTMLToPDF.zoom=Επίπεδο ζουμ για την εμφάνιση του ιστότοπου.
HTMLToPDF.pageWidth=Το πλάτος της σελίδας σε εκατοστά. (Κενό έως προεπιλογή)
HTMLToPDF.pageHeight=Το ύψος της σελίδας σε εκατοστά. (Κενό έως προεπιλογή)
HTMLToPDF.marginTop=Το επάνω περιθώριο της σελίδας σε χιλιοστά. (Κενό έως προεπιλογή)
HTMLToPDF.marginBottom=Κάτω περιθώριο σελίδας σε χιλιοστά. (Κενό έως προεπιλογή)
HTMLToPDF.marginLeft=Το αριστερό περιθώριο της σελίδας σε χιλιοστά. (Κενό έως προεπιλογή)
HTMLToPDF.marginRight=Το δεξί περιθώριο της σελίδας σε χιλιοστά. (Κενό έως προεπιλογή)
HTMLToPDF.printBackground=Αποδώστε το φόντο των ιστοσελίδων.
HTMLToPDF.defaultHeader=Ενεργοποίηση προεπιλεγμένης κεφαλίδας (Όνομα και αριθμός σελίδας)
HTMLToPDF.cssMediaType=Αλλάξτε τον τύπο μέσων (media type )CSS της σελίδας.
HTMLToPDF.none=Κανένα
HTMLToPDF.print=Εκτύπωσε
HTMLToPDF.screen=Screen
#AddStampRequest
AddStampRequest.header=Stamp PDF
AddStampRequest.title=Stamp PDF
AddStampRequest.stampType=Stamp Type
AddStampRequest.stampText=Stamp Text
AddStampRequest.stampImage=Stamp Image
AddStampRequest.alphabet=Alphabet
AddStampRequest.fontSize=Font/Image Size
AddStampRequest.rotation=Rotation
AddStampRequest.opacity=Opacity
AddStampRequest.position=Position
AddStampRequest.overrideX=Override X Coordinate
AddStampRequest.overrideY=Override Y Coordinate
AddStampRequest.customMargin=Custom Margin
AddStampRequest.customColor=Custom Text Color
AddStampRequest.submit=Submit
AddStampRequest.header=Σφραγίδα PDF
AddStampRequest.title=Σφραγίδα PDF
AddStampRequest.stampType=Τύπος σφραγίδας
AddStampRequest.stampText=Κείμενο σφραγίδας
AddStampRequest.stampImage=Εικόνα σφραγίδας
AddStampRequest.alphabet=Αλφάβητο
AddStampRequest.fontSize=Μέγεθος γραμματοσειράς/εικόνας
AddStampRequest.rotation=Περιστροφή
AddStampRequest.opacity=Αδιαφάνεια
AddStampRequest.position=Θέση
AddStampRequest.overrideX=Override Συντεταγμένης X
AddStampRequest.overrideY=Override Συντεταγμένης Ψ
AddStampRequest.customMargin=Προσαρμοσμένο Περιθώριο
AddStampRequest.customColor=Προσαρμοσμένο χρώμα κειμένου
AddStampRequest.submit=Υποβολή
#sanitizePDF
@ -617,11 +618,11 @@ scalePages.submit=Υποβολή
certSign.title=Υπογραφή Πιστοποιητικού
certSign.header=Υπογράψτε ένα αρχείο PDF με το πιστοποιητικό σας (Εργασία σε εξέλιξη)
certSign.selectPDF=Επιλογή αρχείου PDF για υπογραφή:
certSign.jksNote=Note: If your certificate type is not listed below, please convert it to a Java Keystore (.jks) file using the keytool command line tool. Then, choose the .jks file option below.
certSign.jksNote=Σημείωση: Εάν ο τύπος πιστοποιητικού σας δεν αναφέρεται παρακάτω, μετατρέψτε το σε αρχείο Java Keystore (.jks) χρησιμοποιώντας το εργαλείο γραμμής εντολών keytool. Στη συνέχεια, επιλέξτε την επιλογή αρχείου .jks παρακάτω.
certSign.selectKey=Επιλέξτε το αρχείο του ιδιωτικού κλειδιού σας (μορφή PKCS#8, μπορεί να είναι .pem ή .der):
certSign.selectCert=Επιλέξτε το αρχείο πιστοποιητικού σας (μορφή X.509, μπορεί να είναι .pem ή .der):
certSign.selectP12=Επιλέξτε το αρχείο PKCS#12 Keystore (.p12 ή .pfx) (Προαιρετικό, εάν παρέχεται, θα πρέπει να περιέχει το ιδιωτικό κλειδί και το πιστοποιητικό σας):
certSign.selectJKS=Select Your Java Keystore File (.jks or .keystore):
certSign.selectJKS=Επιλέξτε το αρχείο Java Keystore (.jks ή .keystore):
certSign.certType=Τύπος Πιστοποιητικού
certSign.password=Εισαγάγετε τον κωδικό του Keystore ή του Ιδιωτικού Κλειδιού (εάν υπάρχει):
certSign.showSig=Εμφάνιση Υπογραφής
@ -642,9 +643,9 @@ removeBlanks.submit=Αφαίρεση Κενών
#removeAnnotations
removeAnnotations.title=Remove Annotations
removeAnnotations.header=Remove Annotations
removeAnnotations.submit=Remove
removeAnnotations.title=Κατάργηση σχολιασμών
removeAnnotations.header=Κατάργηση σχολιασμών
removeAnnotations.submit=Κατάργηση
#compare
@ -655,17 +656,17 @@ compare.document.2=Έγγραφο 2
compare.submit=Σύγκριση
#BookToPDF
BookToPDF.title=Books and Comics to PDF
BookToPDF.header=Book to PDF
BookToPDF.credit=Uses Calibre
BookToPDF.submit=Convert
BookToPDF.title=Books και Comics σε PDF
BookToPDF.header=Book σε PDF
BookToPDF.credit=Χρησιμοποιεί Caliber
BookToPDF.submit=Μετατροπή
#PDFToBook
PDFToBook.title=PDF to Book
PDFToBook.header=PDF to Book
PDFToBook.selectText.1=Format
PDFToBook.credit=Uses Calibre
PDFToBook.submit=Convert
PDFToBook.title=PDF σε Book
PDFToBook.header=PDF σε Book
PDFToBook.selectText.1=Μορφή
PDFToBook.credit=Χρησιμοποιεί Caliber
PDFToBook.submit=Μετατροπή
#sign
sign.title=Υπογραφή
@ -752,7 +753,7 @@ compress.submit=Συμπίεση
#Add image
addImage.title=Προσθήκη Εικόνας
addImage.header=Προσθήκη Εικόνας σε PDF
addImage.everyPage=Κάθε Σελίδα?
addImage.everyPage=Κάθε Σελίδα;
addImage.upload=Προσθήκη Εικόνας
addImage.submit=Προσθήκη Εικόνας
@ -770,53 +771,53 @@ pdfOrganiser.title=Διοργανωτής σελίδας
pdfOrganiser.header=Διοργανωτής σελίδας PDF
pdfOrganiser.submit=Αναδιάταξη σελίδων
pdfOrganiser.mode=Mode
pdfOrganiser.mode.1=Custom Page Order
pdfOrganiser.mode.2=Reverse Order
pdfOrganiser.mode.3=Duplex Sort
pdfOrganiser.mode.4=Booklet Sort
pdfOrganiser.mode.1=Προσαρμοσμένη Σειρά Σελίδας
pdfOrganiser.mode.2=Αντίστροφη Σειρά
pdfOrganiser.mode.3=Ταξινόμηση Διπλής Όψης (Duplex Sort)
pdfOrganiser.mode.4=Ταξινόμηση Φυλλαδίου (Booklet Sort)
pdfOrganiser.mode.5=Side Stitch Booklet Sort
pdfOrganiser.mode.6=Odd-Even Split
pdfOrganiser.mode.7=Remove First
pdfOrganiser.mode.8=Remove Last
pdfOrganiser.mode.9=Remove First and Last
pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1)
pdfOrganiser.mode.6=Διαίρεση Μονού-Ζυγού
pdfOrganiser.mode.7=Αφαίρεση Πρώτου
pdfOrganiser.mode.8=Αφαίρεση Τελευταίου
pdfOrganiser.mode.9=Αφαίρεση Πρώτου και Τελευταίου
pdfOrganiser.placeholder=(π.χ. 1,3,2 ή 4-8,2,10-12 ή 2n-1)
#multiTool
multiTool.title=PDF Πολυεργαλείο
multiTool.header=PDF Πολυεργαλείο
multiTool.uploadPrompts=Please Upload PDF
multiTool.uploadPrompts=Ανεβάστε το PDF
#view pdf
viewPdf.title=View PDF
viewPdf.header=View PDF
viewPdf.title=Προβολή PDF
viewPdf.header=Προβολή PDF
#pageRemover
pageRemover.title=Αφαιρετής Σελίδων
pageRemover.header=Αφαιρετής Σελίδων PDF
pageRemover.pagesToDelete=Σελίδες προς διαγραφή (Εισαγάγετε μια λίστα με αριθμούς σελίδων διαχωρισμένων με κόμματα):
pageRemover.submit=Αφαίρεση Σελίδων
pageRemover.placeholder=(e.g. 1,2,6 or 1-10,15-30)
pageRemover.placeholder=(π.χ. 1,2,6 ή 1-10,15-30)
#rotate
rotate.title=Περιστροφή PDF
rotate.header=Περιστροφή PDF
rotate.selectAngle=Select rotation angle (in multiples of 90 degrees):
rotate.submit=Rotate
rotate.selectAngle=Επιλέξτε γωνία περιστροφής (σε πολλαπλάσια των 90 μοιρών):
rotate.submit=Περιστροφή
#merge
#split-pdfs
split.title=Διαίρεση PDF
split.header=Διαίρεση PDF
split.desc.1=Οι αριθμοί που επιλέγετε είναι ο αριθμός σελίδας στον οποίο θέλετε να κάνετε διαχωρισμό
split.desc.2=Ως εκ τούτου, η επιλογή 1,3,7-8 θα χωρίσει ένα έγγραφο 10 σελίδων σε 6 ξεχωριστά αρχεία PDF με:
split.desc.2=Ως εκ τούτου, η επιλογή 1,3,7-9 θα χωρίσει ένα έγγραφο 10 σελίδων σε 6 ξεχωριστά αρχεία PDF με:
split.desc.3=Έγγραφο #1: Σελίδα 1
split.desc.4=Έγγραφο #2: Σελίδα 2 και 3
split.desc.5=Έγγραφο #3: Σελίδα 4, 5 κσι 6
split.desc.6=Έγγραφο #4: Σελίδα 7
split.desc.7=Έγγραφο #5: Σελίδα 8
split.desc.8=Έγγραφο #6: Σελίδα 9 και 10
split.desc.5=Έγγραφο #3: Σελίδα 4, 5, 6 και 7
split.desc.6=Έγγραφο #4: Σελίδα 8
split.desc.7=Έγγραφο #5: Σελίδα 9
split.desc.8=Έγγραφο #6: Σελίδα 10
split.splitPages=Εισαγάγετε σελίδες για διαχωρισμό:
split.submit=Διαίρεση
@ -884,8 +885,8 @@ watermark.selectText.7=Αδιαφάνεια (Opacity) (0% - 100%):
watermark.selectText.8=Τύπος Υδατογραφήματος:
watermark.selectText.9=Εικόνα Υδατογραφήματος:
watermark.submit=Προσθήκη Υδατογραφήματος
watermark.type.1=Text
watermark.type.2=Image
watermark.type.1=Κείμενο
watermark.type.2=Εικόνα
#Change permissions
@ -937,7 +938,7 @@ pdfToPDFA.title=PDF σε PDF/A
pdfToPDFA.header=PDF σε PDF/A
pdfToPDFA.credit=Αυτή η υπηρεσία χρησιμοποιεί OCRmyPDF για PDF/A μετατροπή
pdfToPDFA.submit=Μετατροπή
pdfToPDFA.tip=Currently does not work for multiple inputs at once
pdfToPDFA.tip=Προς το παρόν δεν λειτουργεί για πολλαπλές εισόδους ταυτόχρονα
#PDFToWord
@ -978,68 +979,68 @@ PDFToXML.credit=Αυτή η υπηρεσία χρησιμοποιεί LibreOffic
PDFToXML.submit=Μετατροπή
#PDFToCSV
PDFToCSV.title=PDF ?? CSV
PDFToCSV.header=PDF ?? CSV
PDFToCSV.prompt=Choose page to extract table
PDFToCSV.submit=?????????
PDFToCSV.title=PDF σε CSV
PDFToCSV.header=PDF σε CSV
PDFToCSV.prompt=Επιλέξτε σελίδα για εξαγωγή πίνακα
PDFToCSV.submit=Εξαξωγή
#split-by-size-or-count
split-by-size-or-count.title=Split PDF by Size or Count
split-by-size-or-count.header=Split PDF by Size or Count
split-by-size-or-count.type.label=Select Split Type
split-by-size-or-count.type.size=By Size
split-by-size-or-count.type.pageCount=By Page Count
split-by-size-or-count.type.docCount=By Document Count
split-by-size-or-count.value.label=Enter Value
split-by-size-or-count.value.placeholder=Enter size (e.g., 2MB or 3KB) or count (e.g., 5)
split-by-size-or-count.submit=Submit
split-by-size-or-count.title=Διαχωρίστε το PDF Κατά Μέγεθος ή Μέτρηση
split-by-size-or-count.header=Διαχωρίστε το PDF Κατά Μέγεθος ή Μέτρηση
split-by-size-or-count.type.label=Επιλέξτε Τύπος Διαχωρισμού
split-by-size-or-count.type.size=Ανά Μέγεθος
split-by-size-or-count.type.pageCount=Ανά αριθμό σελίδων
split-by-size-or-count.type.docCount=Ανά αριθμό εγγράφων
split-by-size-or-count.value.label=Εισαγάγετε τιμή
split-by-size-or-count.value.placeholder=Εισαγάγετε μέγεθος (π.χ. 2MB ή 3KB) ή μέτρηση (π.χ. 5)
split-by-size-or-count.submit=Υποβολή
#overlay-pdfs
overlay-pdfs.header=Overlay PDF Files
overlay-pdfs.baseFile.label=Select Base PDF File
overlay-pdfs.overlayFiles.label=Select Overlay PDF Files
overlay-pdfs.mode.label=Select Overlay Mode
overlay-pdfs.mode.sequential=Sequential Overlay
overlay-pdfs.mode.interleaved=Interleaved Overlay
overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay
overlay-pdfs.counts.label=Overlay Counts (for Fixed Repeat Mode)
overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1)
overlay-pdfs.position.label=Select Overlay Position
overlay-pdfs.header=Επικάλυψη αρχείων PDF
overlay-pdfs.baseFile.label=Επιλέξτε Βασικό αρχείο PDF
overlay-pdfs.overlayFiles.label=Επιλέξτε Επικάλυψη αρχείων PDF
overlay-pdfs.mode.label=Επιλέξτε Λειτουργία Επικάλυψης
overlay-pdfs.mode.sequential=Διαδοχική Επικάλυψη
overlay-pdfs.mode.interleaved=Επικάλυψη με Παρεμβολή
overlay-pdfs.mode.fixedRepeat=Διορθώθηκε η Επικάλυψη Επανάληψης
overlay-pdfs.counts.label=Μετρήσεις επικάλυψης (για σταθερή λειτουργία επανάληψης)
overlay-pdfs.counts.placeholder=Εισαγάγετε μετρήσεις διαχωρισμένες με κόμματα (π.χ. 2,3,1)
overlay-pdfs.position.label=Επιλέξτε Θέση Επικάλυψης
overlay-pdfs.position.foreground=Foreground
overlay-pdfs.position.background=Background
overlay-pdfs.submit=Submit
overlay-pdfs.submit=Υποβολή
#split-by-sections
split-by-sections.title=Split PDF by Sections
split-by-sections.header=Split PDF into Sections
split-by-sections.horizontal.label=Horizontal Divisions
split-by-sections.vertical.label=Vertical Divisions
split-by-sections.horizontal.placeholder=Enter number of horizontal divisions
split-by-sections.vertical.placeholder=Enter number of vertical divisions
split-by-sections.submit=Split PDF
split-by-sections.merge=Merge Into One PDF
split-by-sections.title=Διαχωρισμός PDF ανά ενότητες
split-by-sections.header=Διαχωρίστε το PDF σε Ενότητες
split-by-sections.horizontal.label=Οριζόντιες Διαιρέσεις
split-by-sections.vertical.label=Κάθετες Διαιρέσεις
split-by-sections.horizontal.placeholder=Εισαγάγετε τον αριθμό των οριζόντιων διαιρέσεων
split-by-sections.vertical.placeholder=Εισαγάγετε τον αριθμό των κάθετων διαιρέσεων
split-by-sections.submit=Διαχωρισμός PDF
split-by-sections.merge=Συγχώνευση σε ένα PDF
#licenses
licenses.nav=Licenses
licenses.title=3rd Party Licenses
licenses.header=3rd Party Licenses
licenses.nav=Άδειες
licenses.title=3rd Party Άδειες
licenses.header=3rd Party Άδειες
licenses.module=Module
licenses.version=Version
licenses.license=License
licenses.version=Εκδοχή
licenses.license=Άδεια
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=Συγγνώμη για το ζήτημα!
error.needHelp=Χρειάζεστε βοήθεια / Βρήκατε πρόβλημα;
error.contactTip=Εάν εξακολουθείτε να αντιμετωπίζετε προβλήματα, μη διστάσετε να επικοινωνήσετε μαζί μας για βοήθεια. Μπορείτε να υποβάλετε ένα ticket στη σελίδα μας στο GitHub ή να επικοινωνήσετε μαζί μας μέσω του Discord:
error.404.head=404 - Η σελίδα δεν βρέθηκε | Oops, we tripped in the code!
error.404.1=Δεν μπορούμε να βρούμε τη σελίδα που ψάχνετε.
error.404.2=Κάτι πήγε στραβά
error.github=Υποβάλετε ένα ticket στο GitHub
error.showStack=Εμφάνιση Stack Trace
error.copyStack=Αντιγραφή Stack Trace
error.githubSubmit=GitHub - Υποβάλετε ένα ticket
error.discordSubmit=Discord - Υποβάλετε ένα Support post

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Select rotation angle (in multiples of 90 degrees):
rotate.submit=Rotate
#merge
#split-pdfs
split.title=Split PDF
split.header=Split PDF
split.desc.1=The numbers you select are the page number you wish to do a split on
split.desc.2=As such selecting 1,3,7-8 would split a 10 page document into 6 separate PDFS with:
split.desc.2=As such selecting 1,3,7-9 would split a 10 page document into 6 separate PDFS with:
split.desc.3=Document #1: Page 1
split.desc.4=Document #2: Page 2 and 3
split.desc.5=Document #3: Page 4, 5 and 6
split.desc.6=Document #4: Page 7
split.desc.7=Document #5: Page 8
split.desc.8=Document #6: Page 9 and 10
split.desc.5=Document #3: Page 4, 5, 6 and 7
split.desc.6=Document #4: Page 8
split.desc.7=Document #5: Page 9
split.desc.8=Document #6: Page 10
split.splitPages=Enter pages to split on:
split.submit=Split

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Select rotation angle (in multiples of 90 degrees):
rotate.submit=Rotate
#merge
#split-pdfs
split.title=Split PDF
split.header=Split PDF
split.desc.1=The numbers you select are the page number you wish to do a split on
split.desc.2=As such selecting 1,3,7-8 would split a 10 page document into 6 separate PDFS with:
split.desc.2=As such selecting 1,3,7-9 would split a 10 page document into 6 separate PDFS with:
split.desc.3=Document #1: Page 1
split.desc.4=Document #2: Page 2 and 3
split.desc.5=Document #3: Page 4, 5 and 6
split.desc.6=Document #4: Page 7
split.desc.7=Document #5: Page 8
split.desc.8=Document #6: Page 9 and 10
split.desc.5=Document #3: Page 4, 5, 6, 7
split.desc.6=Document #4: Page 8
split.desc.7=Document #5: Page 9
split.desc.8=Document #6: Page 10
split.splitPages=Enter pages to split on:
split.submit=Split

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Seleccionar ángulo de rotación (en múltiplos de 90 grados)
rotate.submit=Rotar
#merge
#split-pdfs
split.title=Dividir PDF
split.header=Dividir PDF
split.desc.1=Los números que seleccione son el número de página en el que desea hacer una división
split.desc.2=Como tal, seleccionar 1,3,7-8 dividiría un documento de 10 páginas en 6 archivos PDF separados con:
split.desc.2=Como tal, seleccionar 1,3,7-9 dividiría un documento de 10 páginas en 6 archivos PDF separados con:
split.desc.3=Documento #1: Página 1
split.desc.4=Documento #2: Páginas 2 y 3
split.desc.5=Documento #3: Páginas 4, 5 y 6
split.desc.6=Documento #4: Página 7
split.desc.7=Documento #5: Página 8
split.desc.8=Documento #6: Páginas 9 y 10
split.desc.5=Documento #3: Páginas 4, 5, 6 y 7
split.desc.6=Documento #4: Página 8
split.desc.7=Documento #5: Página 9
split.desc.8=Documento #6: Páginas 10
split.splitPages=Introducir las páginas para dividir:
split.submit=Dividir

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Hautatu errotazio-angelua (90 graduko multiploetan):
rotate.submit=Biratu
#merge
#split-pdfs
split.title=Zatitu PDFa
split.header=Zatitu PDFa
split.desc.1=Hautatzen dituzun zenbakiak zatiketa egin nahi duzun orrialde-zenbakiak dira
split.desc.2=Beraz, 1,3,7-8 hautatzean 10 orrialdeko dokumentua zatituko luke 6 PDF fitxategi bereizituetan
split.desc.2=Beraz, 1,3,7-9 hautatzean 10 orrialdeko dokumentua zatituko luke 6 PDF fitxategi bereizituetan
split.desc.3=#1 Dokumentua: 1. orrialdea
split.desc.4=#2 Dokumentua: 2. eta 3. orrialdeak
split.desc.5=#3 Dokumentua: 4., 5. eta 6. orrialdeak
split.desc.6=#4 Dokumentua: 7. orrialdea
split.desc.7=#5 Dokumentua: 8. orrialdea
split.desc.8=#6 Dokumentua: 9. eta 10. orrialdeak
split.desc.5=#3 Dokumentua: 4., 5., 6. eta 7. orrialdeak
split.desc.6=#4 Dokumentua: 8. orrialdea
split.desc.7=#5 Dokumentua: 9. orrialdea
split.desc.8=#6 Dokumentua: 10. orrialdeak
split.splitPages=Sartu orrialdeak zatitzeko:
split.submit=Zatitu

View file

@ -54,18 +54,19 @@ notAuthenticatedMessage=Utilisateur non authentifié.
userNotFoundMessage=Utilisateur non trouvé.
incorrectPasswordMessage=Le mot de passe actuel est incorrect.
usernameExistsMessage=Le nouveau nom dutilisateur existe déjà.
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
deleteCurrentUserMessage=Cannot delete currently logged in user.
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
invalidUsernameMessage=Nom dutilisateur invalide, le nom dutilisateur ne peut contenir que des chiffres et des lettres.
deleteCurrentUserMessage=Impossible de supprimer lutilisateur actuellement connecté.
deleteUsernameExistsMessage=Le nom dutilisateur nexiste pas et ne peut pas être supprimé.
error=Erreur
oops=Oups !
help=Aide
goHomepage=Aller à la page daccueil
joinDiscord=Rejoignez notre serveur Discord
seeDockerHub=Consulter le Docker Hub
visitGithub=Visiter le dépôt Github
donate=Faire un don
color=Couleur
sponsor=Sponsor
@ -124,7 +125,7 @@ settings.accountSettings=Paramètres du compte
changeCreds.title=Modifiez vos identifiants
changeCreds.header=Mettez à jour vos identifiants de connexion
changeCreds.changePassword=You are using default login credentials. Please enter a new password
changeCreds.changePassword=Vous utilisez les identifiants de connexion par défaut. Veuillez saisir un nouveau mot de passe
changeCreds.newUsername=Nouveau nom dutilisateur
changeCreds.oldPassword=Mot de passe actuel
changeCreds.newPassword=Nouveau mot de passe
@ -159,12 +160,12 @@ adminUserSettings.header=Administration des paramètres des utilisateurs
adminUserSettings.admin=Administateur
adminUserSettings.user=Utilisateur
adminUserSettings.addUser=Ajouter un utilisateur
adminUserSettings.usernameInfo=Username must only contain letters and numbers, no spaces or special characters.
adminUserSettings.usernameInfo=Le nom dutilisateur ne doit contenir que des lettres et des chiffres, sans espaces ni caractères spéciaux.
adminUserSettings.roles=Rôles
adminUserSettings.role=Rôle
adminUserSettings.actions=Actions
adminUserSettings.apiUser=Utilisateur API limité
adminUserSettings.extraApiUser=Additional Limited API User
adminUserSettings.extraApiUser=Utilisateur limité supplémentaire de lAPI
adminUserSettings.webOnlyUser=Utilisateur Web uniquement
adminUserSettings.demoUser=Demo User (Paramètres par défaut)
adminUserSettings.internalApiUser=Internal API User
@ -806,17 +807,17 @@ rotate.selectAngle=Angle de rotation (par multiples de 90degrés)
rotate.submit=Pivoter
#merge
#split-pdfs
split.title=Diviser
split.header=Diviser
split.desc.1=Les numéros que vous sélectionnez sont le numéro de page sur lequel vous souhaitez faire une division
split.desc.2=Ainsi, la sélection de 1,3,7-8 diviserait un document de 10 pages en 6 PDF distincts avec :
split.desc.2=Ainsi, la sélection de 1,3,7-9 diviserait un document de 10 pages en 6 PDF distincts avec :
split.desc.3=Document #1: Page 1
split.desc.4=Document #2: Page 2 et 3
split.desc.5=Document #3: Page 4, 5 et 6
split.desc.6=Document #4: Page 7
split.desc.7=Document #5: Page 8
split.desc.8=Document #6: Page 9 et 10
split.desc.5=Document #3: Page 4, 5, 6 et 7
split.desc.6=Document #4: Page 8
split.desc.7=Document #5: Page 9
split.desc.8=Document #6: Page 10
split.splitPages=Pages sur lesquelles diviser
split.submit=Diviser
@ -1019,7 +1020,7 @@ split-by-sections.vertical.label=Divisions verticales
split-by-sections.horizontal.placeholder=Saisir le nombre de divisions horizontales
split-by-sections.vertical.placeholder=Entrer le nombre de divisions verticales
split-by-sections.submit=Diviser le PDF
split-by-sections.merge=Merge Into One PDF
split-by-sections.merge=Fusionner en un seul PDF
#licenses
licenses.nav=Licences
@ -1031,15 +1032,15 @@ licenses.license=Licence
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=Désolé pour ce problème !
error.needHelp=Besoin daide / Vous avez trouvé un problème ?
error.contactTip=Si vous avez encore des problèmes, nhésitez pas à nous contacter pour obtenir de laide. Vous pouvez soumettre un ticket sur notre page GitHub ou nous contacter via Discord :
error.404.head=404 - Page non trouvée | oups on sest foiré !
error.404.1=Nous ne parvenons pas à trouver la page que vous recherchez.
error.404.2=Quelque chose na pas fonctionné
error.github=Créer un ticket sur GitHub
error.showStack=Afficher la Stack Trace
error.copyStack=Copier la Stack Trace
error.githubSubmit=GitHub - Créer un ticket
error.discordSubmit=Discord - Poster un message de demande dassistance

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=चुनें घुमाने का कोण (90 ड
rotate.submit=घुमाएं
#merge
#split-pdfs
split.title=पीडीएफ को विभाजित करें
split.header=पीडीएफ को विभाजित करें
split.desc.1=जिन नंबरों को आप चुनते हैं, वे पृष्ठ संख्या होती हैं जिन पर आप विभाजन करना चाहते हैं।
split.desc.2=इसलिए, 1,3,7-8 का चयन करना एक 10 पृष्ठों के दस्तावेज़ को 6 अलग-अलग पीडीएफ में विभाजित करेगा जैसे:
split.desc.2=इसलिए, 1,3,7-9 का चयन करना एक 10 पृष्ठों के दस्तावेज़ को 6 अलग-अलग पीडीएफ में विभाजित करेगा जैसे:
split.desc.3=दस्तावेज़ #1: पृष्ठ 1
split.desc.4=दस्तावेज़ #2: पृष्ठ 2 और 3
split.desc.5=दस्तावेज़ #3: पृष्ठ 4, 5 और 6
split.desc.5=दस्तावेज़ #3: पृष्ठ 4, 5, 6 और 7
split.desc.6=दस्तावेज़ #4: पृष्ठ 7
split.desc.7=दस्तावेज़ #5: पृष्ठ 8
split.desc.8=दस्तावेज़ #6: पृष्ठ 9 और 10
split.desc.8=दस्तावेज़ #6: पृष्ठ 10
split.splitPages=विभाजन करने के लिए पृष्ठ दर्ज करें:
split.submit=विभाजित करें

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Válassza ki a forgatási szöget (90 fok egész számú töb
rotate.submit=Forgatás
#merge
#split-pdfs
split.title=PDF szétválasztás
split.header=PDF szétválasztás
split.desc.1=A kiválasztott számok a szétválasztani kívánt oldalszámok
split.desc.2=Például az 1,3,7-8 kiválasztása egy 10 oldalas dokumentumot 6 különálló PDF-fé szétválaszt
split.desc.2=Például az 1,3,7-9 kiválasztása egy 10 oldalas dokumentumot 6 különálló PDF-fé szétválaszt
split.desc.3=Dokumentum #1: Oldal 1
split.desc.4=Dokumentum #2: Oldal 2 és 3
split.desc.5=Dokumentum #3: Oldal 4, 5 és 6
split.desc.6=Dokumentum #4: Oldal 7
split.desc.7=Dokumentum #5: Oldal 8
split.desc.8=Dokumentum #6: Oldal 9 és 10
split.desc.5=Dokumentum #3: Oldal 4, 5, 6 és 7
split.desc.6=Dokumentum #4: Oldal 8
split.desc.7=Dokumentum #5: Oldal 9
split.desc.8=Dokumentum #6: Oldal 10
split.splitPages=Adja meg az oldalakat, amelyekre szét akarja választani:
split.submit=Szétválasztás

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Pilih sudut rotasi (dalam kelipatan 90 derajat):
rotate.submit=Rotasi
#merge
#split-pdfs
split.title=Membagi PDF
split.header=Membagi PDF
split.desc.1=Angka yang Anda pilih adalah nomor halaman yang ingin Anda pisahkan
split.desc.2=Dengan demikian, memilih 1,3,7-8 akan membagi dokumen 10 halaman menjadi 6 PDF terpisah:
split.desc.2=Dengan demikian, memilih 1,3,7-9 akan membagi dokumen 10 halaman menjadi 6 PDF terpisah:
split.desc.3=Dokumen #1: Halaman 1
split.desc.4=Dokumen #2: Halaman 2 dan 3
split.desc.5=Dokumen #3: Halaman 4, 5 dan 6
split.desc.6=Dokumen #4: Halaman 7
split.desc.7=Dokumen #5: Halaman 8
split.desc.8=Dokumen #6: Halaman 9 dan 10
split.desc.5=Dokumen #3: Halaman 4, 5, 6 dan 7
split.desc.6=Dokumen #4: Halaman 8
split.desc.7=Dokumen #5: Halaman 9
split.desc.8=Dokumen #6: Halaman 10
split.splitPages=Masukkan halaman yang akan dipisah:
split.submit=Pisahkan

View file

@ -66,6 +66,7 @@ seeDockerHub=Vedi DockerHub
visitGithub=Visita il repository Github
donate=Donazione
color=Colore
sponsor=Sponsor
@ -79,6 +80,7 @@ pipeline.defaultOption=Personalizzato
pipeline.submitButton=Invia
pipeline.help=Aiuto sulla pipeline
pipeline.scanHelp=Aiuto per la scansione delle cartelle
######################
# Pipeline Options #
######################
@ -127,7 +129,7 @@ changeCreds.changePassword=Stai utilizzando le credenziali di accesso predefinit
changeCreds.newUsername=Nuovo nome utente
changeCreds.oldPassword=Password attuale
changeCreds.newPassword=Nuova Password
changeCreds.confirmNewPassword=Conferma Nuova Password
changeCreds.confirmNewPassword=Conferma nuova Password
changeCreds.submit=Invia modifiche
@ -187,7 +189,7 @@ multiTool.tags=Strumento multiplo,operazione multipla,interfaccia utente,trascin
home.merge.title=Unisci
home.merge.desc=Unisci facilmente più PDF in uno.
merge.tags=unione,operazioni sulla pagina,back end,lato server
merge.tags=unione,operazioni sulla pagina,back-end,lato server
home.split.title=Dividi
home.split.desc=Dividi un singolo PDF in più documenti.
@ -465,7 +467,7 @@ pdfToSinglePage.submit=Converti in pagina singola
pageExtracter.title=Estrai pagine
pageExtracter.header=Estrai pagine
pageExtracter.submit=Estrai
pageExtracter.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
pageExtracter.placeholder=(es. 1,2,8 o 4,7,12-16 o 2n-1)
#getPdfInfo
@ -795,7 +797,7 @@ pageRemover.title=Rimuovi pagine
pageRemover.header=Rimuovi pagine da un PDF
pageRemover.pagesToDelete=Pagine da eliminare (inserisci una lista di numeri separati da virgola):
pageRemover.submit=Rimuovi pagine
pageRemover.placeholder=(e.g. 1,2,6 or 1-10,15-30)
pageRemover.placeholder=(es. 1,2,6 o 1-10,15-30)
#rotate
@ -805,17 +807,17 @@ rotate.selectAngle=Scegli angolo di rotazione (in multipli di 90 gradi):
rotate.submit=Ruota
#merge
#split-pdfs
split.title=Dividi PDF
split.header=Dividi PDF
split.desc.1=I numeri che scegli sono le pagine a cui desideri dividere il documento
split.desc.2=Per esempio inserendo 1,3,7-8 separeresti un documento di 10 pagine in 6 diversi PDF con:
split.desc.2=Per esempio inserendo 1,3,7-9 separeresti un documento di 10 pagine in 6 diversi PDF con:
split.desc.3=Documento #1: Pagina 1
split.desc.4=Documento #2: Pagine 2 e 3
split.desc.5=Documento #3: Pagine 4, 5 e 6
split.desc.6=Documento #4: Pagina 7
split.desc.7=Documento #5: Pagina 8
split.desc.8=Documento #6: Pagine 9 e 10
split.desc.5=Documento #3: Pagine 4, 5, 6 e 7
split.desc.6=Documento #4: Pagina 8
split.desc.7=Documento #5: Pagina 9
split.desc.8=Documento #6: Pagine 10
split.splitPages=Inserisci pagine a cui dividere:
split.submit=Dividi

View file

@ -57,15 +57,16 @@ usernameExistsMessage=新しいユーザー名はすでに存在します。
invalidUsernameMessage=ユーザー名が無効です。ユーザー名にはアルファベットと数字のみを使用してください。
deleteCurrentUserMessage=現在ログインしているユーザーは削除できません。
deleteUsernameExistsMessage=そのユーザー名は存在しないため削除できません。
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
error=エラー
oops=おっと!
help=ヘルプ
goHomepage=ホームページへ移動
joinDiscord=Discordサーバーに参加する
seeDockerHub=Docker Hubを見る
visitGithub=Githubリポジトリを訪問する
donate=寄付する
color=
sponsor=スポンサー
@ -806,17 +807,17 @@ rotate.selectAngle=回転角度を選択 (90度の倍数):
rotate.submit=回転
#merge
#split-pdfs
split.title=PDFの分割
split.header=PDFの分割
split.desc.1=選択する番号は分割するページ番号です。
split.desc.2=したがって、1,3,7-8を選択すると、10ページのドキュメントが以下のように6つのPDFに分割されることになります。
split.desc.2=したがって、1,3,7-9を選択すると、10ページのドキュメントが以下のように6つのPDFに分割されることになります。
split.desc.3=ドキュメント #1: ページ 1
split.desc.4=ドキュメント #2: ページ 2, 3
split.desc.5=ドキュメント #3: ページ 4, 5, 6
split.desc.6=ドキュメント #4: ページ 7
split.desc.7=ドキュメント #5: ページ 8
split.desc.8=ドキュメント #6: ページ 9, 10
split.desc.5=ドキュメント #3: ページ 4, 5, 6, 7
split.desc.6=ドキュメント #4: ページ 8
split.desc.7=ドキュメント #5: ページ 9
split.desc.8=ドキュメント #6: ページ 10
split.splitPages=分割するページ番号を入力:
split.submit=分割
@ -1031,15 +1032,15 @@ licenses.license=ライセンス
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=問題が発生したことをお詫び申し上げます!
error.needHelp=助けが必要/問題が見つかりましたか?
error.contactTip=まだ問題が解決していない場合は、お手数ですが、GitHubページでチケットを提出するか、Discordで私たちに連絡してください
error.404.head=404 - ページが見つかりません | おっと、コードでつまずきました!
error.404.1=あなたが探しているページが見つかりません。
error.404.2=何か問題が発生しました
error.github=GitHubでチケットを提出
error.showStack=スタックトレースを表示
error.copyStack=スタックトレースをコピー
error.githubSubmit=GitHub - チケットを提出
error.discordSubmit=Discord - サポート投稿を提出

View file

@ -57,15 +57,16 @@ usernameExistsMessage=새 사용자명이 이미 존재합니다.
invalidUsernameMessage=사용자 이름이 잘못되었습니다. 사용자 이름에는 알파벳 문자와 숫자만 포함되어야 합니다.
deleteCurrentUserMessage=현재 로그인한 사용자를 삭제할 수 없습니다.
deleteUsernameExistsMessage=사용자 이름이 존재하지 않으며 삭제할 수 없습니다.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
error=오류
oops=어머나!
help=도움말
goHomepage=홈페이지로 이동
joinDiscord=Discord 서버에 참여하기
seeDockerHub=Docker Hub에서 확인하기
visitGithub=GitHub 저장소 방문하기
donate=기부하기
color=색상
sponsor=스폰서
@ -806,17 +807,17 @@ rotate.selectAngle=회전 각도 선택 (90도의 배수로):
rotate.submit=회전
#merge
#split-pdfs
split.title=PDF 분할
split.header=PDF 분할
split.desc.1=입력한 번호는 분할할 페이지의 번호입니다.
split.desc.2=예를 들어, 1,3,7-8을 입력하면 10페이지 문서를 아래와 같이 6개의 별도의 PDF 문서로 분할하게 됩니다.
split.desc.2=예를 들어, 1,3,7-9을 입력하면 10페이지 문서를 아래와 같이 6개의 별도의 PDF 문서로 분할하게 됩니다.
split.desc.3=문서 #1: 페이지 1
split.desc.4=문서 #2: 페이지 2, 3
split.desc.5=문서 #3: 페이지 4, 5, 6
split.desc.6=문서 #4: 페이지 7
split.desc.7=문서 #5: 페이지 8
split.desc.8=문서 #6: 페이지 9, 10
split.desc.5=문서 #3: 페이지 4, 5, 6, 7
split.desc.6=문서 #4: 페이지 8
split.desc.7=문서 #5: 페이지 9
split.desc.8=문서 #6: 페이지 10
split.splitPages=분할할 페이지 입력:
split.submit=분할
@ -1031,15 +1032,15 @@ licenses.license=라이센스
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=문제를 끼친 점 죄송합니다!
error.needHelp=도움이 필요하신가요 / 문제가 있으신가요?
error.contactTip=여전히 문제가 해결되지 않는다면 망설이지 마시고 도움을 요청하십시오. GitHub 페이지에서 티켓을 제출하거나 Discord를 통해 우리에게 연락하실 수 있습니다:
error.404.head=404 - 페이지를 찾을 수 없습니다 | 이런, 코드에 걸려 넘어졌어요!
error.404.1=원하시는 페이지를 찾을 수가 없네요.
error.404.2=문제가 발생했습니다
error.github=GitHub에서 티켓 제출
error.showStack=스택 추적 보기
error.copyStack=스택 추적 복사
error.githubSubmit=GitHub - 티켓 제출
error.discordSubmit=Discord - 문의 게시

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Selecteer rotatiehoek (in veelvouden van 90 graden):
rotate.submit=Roteren
#merge
#split-pdfs
split.title=PDF splitsen
split.header=PDF splitsen
split.desc.1=De nummers die je kiest zijn de paginanummers waarop je een splitsing wilt uitvoeren
split.desc.2=Als zodanig selecteren van 1,3,7-8 zou een 10 pagina's tellend document splitsen in 6 aparte PDF's met:
split.desc.2=Als zodanig selecteren van 1,3,7-9 zou een 10 pagina's tellend document splitsen in 6 aparte PDF's met:
split.desc.3=Document #1: Pagina 1
split.desc.4=Document #2: Pagina 2 en 3
split.desc.5=Document #3: Pagina 4, 5 en 6
split.desc.6=Document #4: Pagina 7
split.desc.7=Document #5: Pagina 8
split.desc.8=Document #6: Pagina 9 en 10
split.desc.5=Document #3: Pagina 4, 5, 6 en 7
split.desc.6=Document #4: Pagina 8
split.desc.7=Document #5: Pagina 9
split.desc.8=Document #6: Pagina 10
split.splitPages=Voer pagina's in om op te splitsen:
split.submit=Splitsen

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Wybierz kąt obrotu (domyślnie 90 stopni):
rotate.submit=Obróć
#merge
#split-pdfs
split.title=Podziel dokument PDF
split.header=Podziel dokument PDF
split.desc.1=Wybrane numery to numery stron, na których chcesz dokonać podziału
split.desc.2=Np. taki wybór 1,3,7-8 podzieliłby 10-stronicowy dokument na 6 oddzielnych plików PDF z:
split.desc.2=Np. taki wybór 1,3,7-9 podzieliłby 10-stronicowy dokument na 6 oddzielnych plików PDF z:
split.desc.3=Dokument #1: Strona 1
split.desc.4=Dokument #2: Strona 2 i 3
split.desc.5=Dokument #3: Strona 4, 5 i 6
split.desc.6=Dokument #4: Strona 7
split.desc.7=Dokument #5: Strona 8
split.desc.8=Dokument #6: Strona 9 i 10
split.desc.5=Dokument #3: Strona 4, 5, 6 i 7
split.desc.6=Dokument #4: Strona 8
split.desc.7=Dokument #5: Strona 9
split.desc.8=Dokument #6: Strona 10
split.splitPages=Wprowadź strony do podziału na:
split.submit=Podziel

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Selecione o ângulo de rotação (múltiplos de 90 graus):
rotate.submit=Girar
#merge
#split-pdfs
split.title=Dividir PDF
split.header=Dividir PDF
split.desc.1=Os números selecionados correspondem às páginas onde você deseja fazer a divisão.
split.desc.2=Por exemplo, selecionar 1,3,7-8 dividirá um documento de 10 páginas em 6 PDFs separados da seguinte forma:
split.desc.2=Por exemplo, selecionar 1,3,7-9 dividirá um documento de 10 páginas em 6 PDFs separados da seguinte forma:
split.desc.3=Documento Nº1: Página 1
split.desc.4=Documento Nº2: Páginas 2 e 3
split.desc.5=Documento Nº3: Páginas 4, 5 e 6
split.desc.6=Documento Nº4: Página 7
split.desc.7=Documento Nº5: Página 8
split.desc.8=Documento Nº6: Páginas 9 e 10
split.desc.5=Documento Nº3: Páginas 4, 5, 6 e 7
split.desc.6=Documento Nº4: Página 8
split.desc.7=Documento Nº5: Página 9
split.desc.8=Documento Nº6: Páginas 10
split.splitPages=Digite as páginas para a divisão:
split.submit=Dividir

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Seleccione o ângulo de rotação (múltiplos de 90 graus):
rotate.submit=Girar
#merge
#split-pdfs
split.title=Dividir PDF
split.header=Dividir PDF
split.desc.1=Os números seleccionados correspondem às páginas onde você deseja fazer a divisão.
split.desc.2=Por exemplo, seleccionar 1,3,7-8 dividirá um documento de 10 páginas em 6 PDFs separados da seguinte forma:
split.desc.2=Por exemplo, seleccionar 1,3,7-9 dividirá um documento de 10 páginas em 6 PDFs separados da seguinte forma:
split.desc.3=Documento Nº1: Página 1
split.desc.4=Documento Nº2: Páginas 2 e 3
split.desc.5=Documento Nº3: Páginas 4, 5 e 6
split.desc.6=Documento Nº4: Página 7
split.desc.7=Documento Nº5: Página 8
split.desc.8=Documento Nº6: Páginas 9 e 10
split.desc.5=Documento Nº3: Páginas 4, 5, 6 e 7
split.desc.6=Documento Nº4: Página 8
split.desc.7=Documento Nº5: Página 9
split.desc.8=Documento Nº6: Páginas 10
split.splitPages=Digite as páginas para a divisão:
split.submit=Dividir

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Selectați un unghi de rotație (în multiplicate de 90 de gr
rotate.submit=Rotește
#merge
#split-pdfs
split.title=Împarte PDF
split.header=Împarte PDF
split.desc.1=Numerele pe care le selectați reprezintă numărul paginii pe care doriți să o împărțiți
split.desc.2=Prin urmare, selectând 1,3,7-8, un document cu 10 pagini va fi împărțit în 6 PDF-uri separate, astfel:
split.desc.2=Prin urmare, selectând 1,3,7-9, un document cu 10 pagini va fi împărțit în 6 PDF-uri separate, astfel:
split.desc.3=Documentul #1: Pagina 1
split.desc.4=Documentul #2: Paginile 2 și 3
split.desc.5=Documentul #3: Paginile 4, 5 și 6
split.desc.6=Documentul #4: Pagina 7
split.desc.7=Documentul #5: Pagina 8
split.desc.8=Documentul #6: Paginile 9 și 10
split.desc.5=Documentul #3: Paginile 4, 5, 6 și 7
split.desc.6=Documentul #4: Pagina 8
split.desc.7=Documentul #5: Pagina 9
split.desc.8=Documentul #6: Pagina 10
split.splitPages=Introduceți paginile pe care să le împărțiți:
split.submit=Împarte

View file

@ -57,15 +57,16 @@ usernameExistsMessage=Новое имя пользователя уже суще
invalidUsernameMessage=Недопустимое имя пользователя, Имя пользователя должно содержать только буквы алфавита и цифры.
deleteCurrentUserMessage=Невозможно удалить пользователя, вошедшего в систему.
deleteUsernameExistsMessage=Имя пользователя не существует и не может быть удалено.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
error=Ошибка
oops=Ой!
help=Помощь
goHomepage=Перейти на главную страницу
joinDiscord=Присоединиться к нашему серверу Discord
seeDockerHub=Посмотреть в Docker Hub
visitGithub=Посетить репозиторий на GitHub
donate=Пожертвовать
color=Цвет
sponsor=Спонсор
@ -806,17 +807,17 @@ rotate.selectAngle=Выберите угол поворота (кратный 90
rotate.submit=Повернуть
#merge
#split-pdfs
split.title=Разделить PDF
split.header=Разделить PDF
split.desc.1=Выбранные вами числа — это номера страниц, на которых вы хотите сделать разделение.
split.desc.2=Таким образом, выбор 1,3,7-8 разделит 10-страничный документ на 6 отдельных PDF-файлов с:
split.desc.3=Документ #1: Page 1
split.desc.4=Документ #2: Page 2 and 3
split.desc.5=Документ #3: Page 4, 5 and 6
split.desc.6=Документ #4: Page 7
split.desc.7=Документ #5: Page 8
split.desc.8=Документ #6: Page 9 and 10
split.desc.2=Таким образом, выбор 1,3,7-9 разделит 10-страничный документ на 6 отдельных PDF-файлов с:
split.desc.3=Документ #1: Страница 1
split.desc.4=Документ #2: Страница 2 и 3
split.desc.5=Документ #3: Страница 4, 5, 6 aиnd 7
split.desc.6=Документ #4: Страница 8
split.desc.7=Документ #5: Страница 9
split.desc.8=Документ #6: Страница 10
split.splitPages=Введите страницы для разделения:
split.submit=Разделить
@ -1031,15 +1032,15 @@ licenses.license=Лицензия
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=Извините за проблему!
error.needHelp=Нужна помощь / Нашли проблему?
error.contactTip=Если у вас все еще есть проблемы, не стесняйтесь обращаться к нам за помощью. Вы можете отправить заявку на нашей странице GitHub или связаться с нами через Discord:
error.404.head=404 - Страница не найдена | Ой, мы запутались в коде!
error.404.1=Мы не можем найти страницу, которую вы ищете.
error.404.2=Произошла ошибка
error.github=Отправить заявку на GitHub
error.showStack=Показать стек вызовов
error.copyStack=Скопировать стек вызовов
error.githubSubmit=GitHub - Отправить заявку
error.discordSubmit=Discord - Отправить запрос в поддержку

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Izaberite ugao rotacije (u višestrukim od 90 stepeni):
rotate.submit=Rotiraj
#merge
#split-pdfs
split.title=Razdvajanje PDF-a
split.header=Razdvajanje PDF-a
split.desc.1=Brojevi koje izaberete predstavljaju brojeve stranica na kojima želite napraviti razdvajanje
split.desc.2=Na primer, izbor 1,3,7-8 bi razdvojio dokument od 10 stranica u 6 odvojenih PDF-a sa:
split.desc.2=Na primer, izbor 1,3,7-9 bi razdvojio dokument od 10 stranica u 6 odvojenih PDF-a sa:
split.desc.3=Dokument #1: Stranica 1
split.desc.4=Dokument #2: Stranice 2 i 3
split.desc.5=Dokument #3: Stranice 4, 5 i 6
split.desc.6=Dokument #4: Stranica 7
split.desc.7=Dokument #5: Stranica 8
split.desc.8=Dokument #6: Stranice 9 i 10
split.desc.5=Dokument #3: Stranice 4, 5, 6 i 7
split.desc.6=Dokument #4: Stranica 8
split.desc.7=Dokument #5: Stranica 9
split.desc.8=Dokument #6: Stranice 10
split.splitPages=Unesite stranice za razdvajanje:
split.submit=Razdvoji

View file

@ -66,6 +66,7 @@ seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
sponsor=Sponsor
@ -806,17 +807,17 @@ rotate.selectAngle=Välj rotationsvinkel (i multipler av 90 grader):
rotate.submit=Rotera
#merge
#split-pdfs
split.title=Dela upp PDF
split.header=Dela upp PDF
split.desc.1=Siffrorna du väljer är sidnumret du vill göra en split på
split.desc.2=Som sådan skulle ett val av 1,3,7-8 dela upp ett 10-sidigt dokument i 6 separata PDF-filer med:
split.desc.2=Som sådan skulle ett val av 1,3,7-9 dela upp ett 10-sidigt dokument i 6 separata PDF-filer med:
split.desc.3=Dokument #1: Sida 1
split.desc.4=Dokument #2: Sida 2 och 3
split.desc.5=Dokument #3: Sida 4, 5 och 6
split.desc.6=Dokument #4: Sida 7
split.desc.7=Dokument #5: Sida 8
split.desc.8=Dokument #6: Sida 9 och 10
split.desc.5=Dokument #3: Sida 4, 5, 6 och 7
split.desc.6=Dokument #4: Sida 8
split.desc.7=Dokument #5: Sida 9
split.desc.8=Dokument #6: Sida 10
split.splitPages=Ange sidor att dela på:
split.submit=Dela

View file

@ -11,17 +11,17 @@ imgPrompt=Resim(leri) seçin
genericSubmit=Gönder
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) :
pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
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) :
goToPage=Git
true=Doğru
false=Yanlış
unknown=Bilinmeyen
save=Kaydet
saveToBrowser=Save to Browser
saveToBrowser=Tarayıcıya Kaydet
close=Kapat
filesSelected=dosya seçildi
noFavourites=Favori eklenmedi
downloadComplete=Download Complete
downloadComplete=İndirme Tamamlandı
bored=Sıkıldınız mı?
alphabet=Alfabe
downloadPdf=PDF İndir
@ -45,53 +45,54 @@ red=Kırmızı
green=Yeşil
blue=Mavi
custom=Özel
WorkInProgess=Work in progress, May not work or be buggy, Please report any problems!
poweredBy=Powered by
yes=Yes
no=No
WorkInProgess=Çalışmalar devam ediyor, Çalışmayabilir veya hatalı olabilir, Lütfen herhangi bir sorunu bildirin!
poweredBy=Tarafından desteklenmektedir
yes=Evet
no=Hayır
changedCredsMessage=Bilgiler değiştirildi!
notAuthenticatedMessage=Kullanıcı doğrulanmadı.
userNotFoundMessage=Kullanıcı bulunamadı.
incorrectPasswordMessage=Mevcut şifre yanlış.
usernameExistsMessage=Yeni Kullanıcı Adı zaten var.
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
deleteCurrentUserMessage=Cannot delete currently logged in user.
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
invalidUsernameMessage=Geçersiz kullanıcı adı, Kullanıcı adı yalnızca alfabe karakterleri ve sayılar içermelidir.
deleteCurrentUserMessage=Şu anda oturum açmış olan kullanıcı silinemiyor.
deleteUsernameExistsMessage=Kullanıcı adı mevcut değil ve silinemez.
error=Hata
oops=Tüh!
help=Yardım
goHomepage=Anasayfa'ya git
joinDiscord=Discord sunucumuza katılın
seeDockerHub=Docker Hub'a bakın
visitGithub=Github Deposunu Ziyaret Edin
donate=Bağış Yapın
color=Renk
sponsor=Sponsor
###############
# Pipeline #
###############
pipeline.header=Pipeline Menu (Beta)
pipeline.uploadButton=Upload Custom
pipeline.configureButton=Configure
pipeline.defaultOption=Custom
pipeline.submitButton=Submit
pipeline.help=Pipeline Help
pipeline.scanHelp=Folder Scanning Help
pipeline.header=Pipeline Menü (Beta)
pipeline.uploadButton=Upload edin
pipeline.configureButton=Yapılandır
pipeline.defaultOption=Özel
pipeline.submitButton=Gönder
pipeline.help=Pipeline Yardım
pipeline.scanHelp=Klasör Tarama Yardımı
######################
# Pipeline Options #
######################
pipelineOptions.header=Pipeline Configuration
pipelineOptions.pipelineNameLabel=Pipeline Name
pipelineOptions.saveSettings=Save Operation Settings
pipelineOptions.pipelineNamePrompt=Enter pipeline name here
pipelineOptions.selectOperation=Select Operation
pipelineOptions.addOperationButton=Add operation
pipelineOptions.header=Pipeline Yapılandırma
pipelineOptions.pipelineNameLabel=Pipeline İsim
pipelineOptions.saveSettings=Ayarları Kaydet
pipelineOptions.pipelineNamePrompt=Buraya isim girin
pipelineOptions.selectOperation=İşlem Seçin
pipelineOptions.addOperationButton=İşlem ekle
pipelineOptions.pipelineHeader=Pipeline:
pipelineOptions.saveButton=Download
pipelineOptions.validateButton=Validate
pipelineOptions.saveButton=İndir
pipelineOptions.validateButton=Doğrula
@ -159,15 +160,15 @@ adminUserSettings.header=Yönetici Kullanıcı Kontrol Ayarları
adminUserSettings.admin=Yönetici
adminUserSettings.user=Kullanıcı
adminUserSettings.addUser=Yeni Kullanıcı Ekle
adminUserSettings.usernameInfo=Username must only contain letters and numbers, no spaces or special characters.
adminUserSettings.usernameInfo=Kullanıcı adı yalnızca harf ve rakamlardan oluşmalı, boşluk veya özel karakter içermemelidir.
adminUserSettings.roles=Roller
adminUserSettings.role=Rol
adminUserSettings.actions=Eylemler
adminUserSettings.apiUser=Sınırlı API Kullanıcısı
adminUserSettings.extraApiUser=Additional Limited API User
adminUserSettings.extraApiUser=Ek Sınırlı API Kullanıcısı
adminUserSettings.webOnlyUser=Sadece Web Kullanıcısı
adminUserSettings.demoUser=Demo User (No custom settings)
adminUserSettings.internalApiUser=Internal API User
adminUserSettings.demoUser=Demo Kullanıcısı (Özel ayar yok)
adminUserSettings.internalApiUser=Dahili API Kullanıcısı
adminUserSettings.forceChange=Kullanıcının girişte kullanıcı adı/şifre değiştirmesini zorla
adminUserSettings.submit=Kullanıcıyı Kaydet
@ -175,12 +176,12 @@ adminUserSettings.submit=Kullanıcıyı Kaydet
# HOME-PAGE #
#############
home.desc=Yerel olarak barındırılan tüm PDF ihtiyaçlarınız için tek durak noktanız.
home.searchBar=Search for features...
home.searchBar=Özellikleri arayın...
home.viewPdf.title=View PDF
home.viewPdf.desc=View, annotate, add text or images
viewPdf.tags=view,read,annotate,text,image
home.viewPdf.title=PDF Görüntüle
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ü
home.multiTool.title=PDF Çoklu Araç
home.multiTool.desc=Birleştir, Döndür, Yeniden Düzenle ve Sayfaları Kaldır
@ -304,9 +305,9 @@ home.removeBlanks.title=Boş Sayfaları Kaldır
home.removeBlanks.desc=Bir belgeden boş sayfaları tespit eder ve kaldırır
removeBlanks.tags=temizle,sadeleştir,içeriksiz,düzenle
home.removeAnnotations.title=Remove Annotations
home.removeAnnotations.desc=Removes all comments/annotations from a PDF
removeAnnotations.tags=comments,highlight,notes,markup,remove
home.removeAnnotations.title=Ek Açıklamaları Kaldır
home.removeAnnotations.desc=PDF'deki tüm yorumları/açıklamaları kaldırır
removeAnnotations.tags=yorumlar,vurgulama,notlar,işaretleme,kaldırma
home.compare.title=Karşılaştır
home.compare.desc=2 PDF Belgesi arasındaki farkları karşılaştırır ve gösterir
@ -389,36 +390,36 @@ home.autoRedact.title=Otomatik Karartma
home.autoRedact.desc=Giriş metnine dayanarak bir PDF'teki metni Otomatik Karartır (Redakte)
autoRedact.tags=Karart,Gizle,karartma,siyah,markör,gizli
home.tableExtraxt.title=PDF to CSV
home.tableExtraxt.desc=Extracts Tables from a PDF converting it to CSV
tableExtraxt.tags=CSV,Table Extraction,extract,convert
home.tableExtraxt.title=PDF'den CSV'ye
home.tableExtraxt.desc=PDF'den Tabloları çıkarır ve CSV'ye dönüştürür
tableExtraxt.tags=CSV, Tablo Çıkarma, ayıklama, dönüştürme
home.autoSizeSplitPDF.title=Auto Split by Size/Count
home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count
autoSizeSplitPDF.tags=pdf,split,document,organization
home.autoSizeSplitPDF.title=Boyut/Sayıya Göre Otomatik Bölme
home.autoSizeSplitPDF.desc=Tek bir PDF'yi boyut, sayfa sayısı veya belge sayısına göre birden fazla belgeye bölün
autoSizeSplitPDF.tags=pdf,bölme,belge,organizasyon
home.overlay-pdfs.title=Overlay PDFs
home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF
overlay-pdfs.tags=Overlay
home.overlay-pdfs.title=PDF'leri Bindirme
home.overlay-pdfs.desc=PDF'leri başka bir PDF'nin üzerine bindirir
overlay-pdfs.tags=Bindirme
home.split-by-sections.title=Split PDF by Sections
home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections
split-by-sections.tags=Section Split, Divide, Customize
home.split-by-sections.title=PDF'yi Bölümlere Ayırma
home.split-by-sections.desc=PDF'nin her sayfasını daha küçük yatay ve dikey bölümlere ayırın
split-by-sections.tags=Bölümlere Ayırma, Bölme, Özelleştirme
home.AddStampRequest.title=Add Stamp to PDF
home.AddStampRequest.desc=Add text or add image stamps at set locations
AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize
home.AddStampRequest.title=PDF'ye Damga Ekleme
home.AddStampRequest.desc=Belirlenen konumlara metin veya resim damgaları ekleyin
AddStampRequest.tags=Damga, Görüntü ekle, Görüntüyü ortala, Filigran, PDF, Göm, Özelleştir
home.PDFToBook.title=PDF to Book
home.PDFToBook.desc=Converts PDF to Book/Comic formats using calibre
PDFToBook.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
home.PDFToBook.title=PDF'den Kitaba
home.PDFToBook.desc=Calibre kullanarak PDF'yi Kitap/Komik formatlarına dönüştürür
PDFToBook.tags=Kitap,Çizgi Roman,Calibre,Dönüştür,manga,amazon,kindle,epub,mobi,azw3,docx,rtf,txt,html,lit,fb2,pdb,lrf
home.BookToPDF.title=Book to PDF
home.BookToPDF.desc=Converts Books/Comics formats to PDF using calibre
BookToPDF.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle
home.BookToPDF.title=Kitaptan PDF'ye
home.BookToPDF.desc=calibre kullanarak Kitap/Karikatür formatlarını PDF'ye dönüştürür
BookToPDF.tags=Kitap,Çizgi Roman,Calibre,Dönüştür,manga,amazon,kindle,epub,mobi,azw3,docx,rtf,txt,html,lit,fb2,pdb,lrf
###########################
@ -466,7 +467,7 @@ pdfToSinglePage.submit=Tek Sayfaya Dönüştür
pageExtracter.title=Sayfaları Çıkar
pageExtracter.header=Sayfaları Çıkar
pageExtracter.submit=Çıkar
pageExtracter.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
pageExtracter.placeholder=(örneğin 1,2,8 veya 4,7,12-16 ya da 2n-1)
#getPdfInfo
@ -498,37 +499,37 @@ HTMLToPDF.header=HTML'den PDF'e
HTMLToPDF.help=HTML dosyalarını ve html/css/görsel vb. içeren ZIP'leri kabul eder
HTMLToPDF.submit=Dönüştür
HTMLToPDF.credit=WeasyPrint Kullanıyor
HTMLToPDF.zoom=Zoom level for displaying the website.
HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default)
HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default)
HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default)
HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default)
HTMLToPDF.printBackground=Render the background of websites.
HTMLToPDF.defaultHeader=Enable Default Header (Name and page number)
HTMLToPDF.cssMediaType=Change the CSS media type of the page.
HTMLToPDF.none=None
HTMLToPDF.print=Print
HTMLToPDF.screen=Screen
HTMLToPDF.zoom=Web sitesini görüntülemek için yakınlaştırma düzeyi.
HTMLToPDF.pageWidth=Sayfanın santimetre cinsinden genişliği. (Varsayılan olarak boş)
HTMLToPDF.pageHeight=Sayfanın santimetre cinsinden yüksekliği. (Varsayılan olarak boş)
HTMLToPDF.marginTop=Sayfanın milimetre cinsinden üst kenar boşluğu. (Varsayılan olarak boş)
HTMLToPDF.marginBottom=Sayfanın milimetre cinsinden alt kenar boşluğu. (Varsayılan olarak boş)
HTMLToPDF.marginLeft=Sayfanın milimetre cinsinden sol kenar boşluğu. (Varsayılan olarak boş)
HTMLToPDF.marginRight=Sayfanın milimetre cinsinden sağ kenar boşluğu. (Varsayılan olarak boş)
HTMLToPDF.printBackground=Web sitelerinin arka planını oluşturun.
HTMLToPDF.defaultHeader=Varsayılan Üstbilgiyi Etkinleştir (Ad ve sayfa numarası)
HTMLToPDF.cssMediaType=Sayfanın CSS ortam türünü değiştirin.
HTMLToPDF.none=Hiçbiri
HTMLToPDF.print=Yazdır
HTMLToPDF.screen=Ekran
#AddStampRequest
AddStampRequest.header=Stamp PDF
AddStampRequest.title=Stamp PDF
AddStampRequest.stampType=Stamp Type
AddStampRequest.stampText=Stamp Text
AddStampRequest.stampImage=Stamp Image
AddStampRequest.alphabet=Alphabet
AddStampRequest.fontSize=Font/Image Size
AddStampRequest.rotation=Rotation
AddStampRequest.opacity=Opacity
AddStampRequest.position=Position
AddStampRequest.overrideX=Override X Coordinate
AddStampRequest.overrideY=Override Y Coordinate
AddStampRequest.customMargin=Custom Margin
AddStampRequest.customColor=Custom Text Color
AddStampRequest.submit=Submit
AddStampRequest.header=Damga PDF
AddStampRequest.title=Damga PDF
AddStampRequest.stampType=Damga Türü
AddStampRequest.stampText=Damga Metni
AddStampRequest.stampImage=Damga Resmi
AddStampRequest.alphabet=Alfabe
AddStampRequest.fontSize=Yazı Tipi/Görüntü Boyutu
AddStampRequest.rotation=Döndürme
AddStampRequest.opacity=Opaklık
AddStampRequest.position=Konum
AddStampRequest.overrideX=X Koordinatını geçersiz kıl
AddStampRequest.overrideY=Y Koordinatını Geçersiz Kıl
AddStampRequest.customMargin=Özel Kenar Boşluğu
AddStampRequest.customColor=Özel Metin Rengi
AddStampRequest.submit=Gönder
#sanitizePDF
@ -617,11 +618,11 @@ scalePages.submit=Gönder
certSign.title=Sertifika İmzalama
certSign.header=Sertifikanızla bir PDF imzalayın (Devam eden iş)
certSign.selectPDF=İmzalamak için bir PDF Dosyası seçin:
certSign.jksNote=Note: If your certificate type is not listed below, please convert it to a Java Keystore (.jks) file using the keytool command line tool. Then, choose the .jks file option below.
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.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.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.selectJKS=Select Your Java Keystore File (.jks or .keystore):
certSign.selectJKS=Java Keystore Dosyanızı (.jks veya .keystore) seçin:
certSign.certType=Sertifika Türü
certSign.password=Anahtar Deposu veya Özel Anahtar Şifrenizi Girin (Varsa):
certSign.showSig=İmzayı Göster
@ -642,9 +643,9 @@ removeBlanks.submit=Boşları Kaldır
#removeAnnotations
removeAnnotations.title=Remove Annotations
removeAnnotations.header=Remove Annotations
removeAnnotations.submit=Remove
removeAnnotations.title=Ek Açıklamaları Kaldır
removeAnnotations.header=Ek Açıklamaları Kaldır
removeAnnotations.submit=Kaldır
#compare
@ -655,17 +656,17 @@ compare.document.2=Belge 2
compare.submit=Karşılaştır
#BookToPDF
BookToPDF.title=Books and Comics to PDF
BookToPDF.header=Book to PDF
BookToPDF.credit=Uses Calibre
BookToPDF.submit=Convert
BookToPDF.title=Kitapları ve Çizgi Romanları PDF'e Dönüştürme
BookToPDF.header=Kitaptan PDF'ye
BookToPDF.credit=Kalibre Kullanır
BookToPDF.submit=Dönüştür
#PDFToBook
PDFToBook.title=PDF to Book
PDFToBook.header=PDF to Book
PDFToBook.title=PDF'den Kitaba
PDFToBook.header=PDF'den Kitaba
PDFToBook.selectText.1=Format
PDFToBook.credit=Uses Calibre
PDFToBook.submit=Convert
PDFToBook.credit=Kalibre Kullanır
PDFToBook.submit=Dönüştür
#sign
sign.title=İmzala
@ -769,34 +770,34 @@ merge.submit=Birleştir
pdfOrganiser.title=Sayfa Organizatörü
pdfOrganiser.header=PDF Sayfa Organizatörü
pdfOrganiser.submit=Sayfaları Yeniden Düzenle
pdfOrganiser.mode=Mode
pdfOrganiser.mode.1=Custom Page Order
pdfOrganiser.mode.2=Reverse Order
pdfOrganiser.mode.3=Duplex Sort
pdfOrganiser.mode.4=Booklet Sort
pdfOrganiser.mode.5=Side Stitch Booklet Sort
pdfOrganiser.mode.6=Odd-Even Split
pdfOrganiser.mode.7=Remove First
pdfOrganiser.mode.8=Remove Last
pdfOrganiser.mode.9=Remove First and Last
pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1)
pdfOrganiser.mode=Mod
pdfOrganiser.mode.1=Özel Sayfa Düzeni
pdfOrganiser.mode.2=Ters Sıralama
pdfOrganiser.mode.3=Çift Taraflı Sıralama
pdfOrganiser.mode.4=Kitapçık Sıralama
pdfOrganiser.mode.5=Yandan Dikişli Kitapçık Sıralama
pdfOrganiser.mode.6=Tek-Çift Ayrımı
pdfOrganiser.mode.7=İlk Önce Kaldır
pdfOrganiser.mode.8=Sonuncuyu Kaldır
pdfOrganiser.mode.9=İlk ve Sonu Kaldır
pdfOrganiser.placeholder=(örn. 1,3,2 veya 4-8,2,10-12 veya 2n-1)
#multiTool
multiTool.title=PDF Çoklu Araç
multiTool.header=PDF Çoklu Araç
multiTool.uploadPrompts=Please Upload PDF
multiTool.uploadPrompts=Lütfen PDF Yükleyin
#view pdf
viewPdf.title=View PDF
viewPdf.header=View PDF
viewPdf.title=PDF Görüntüle
viewPdf.header=PDF Görüntüle
#pageRemover
pageRemover.title=Sayfa Silici
pageRemover.header=PDF Sayfa silici
pageRemover.pagesToDelete=Silinmesi gereken sayfalar (Virgülle ayrılmış sayfa numaraları listesi girin):
pageRemover.submit=Sayfaları Sil
pageRemover.placeholder=(e.g. 1,2,6 or 1-10,15-30)
pageRemover.placeholder=(örn. 1,2,6 veya 1-10,15-30)
#rotate
@ -806,17 +807,17 @@ rotate.selectAngle=Döndürme açısını seçin (90 derecenin katları olarak):
rotate.submit=Döndür
#merge
#split-pdfs
split.title=PDF Ayır
split.header=PDF Ayır
split.desc.1=Seçtiğiniz numaralar, bir ayrım yapmak istediğiniz sayfa numarasıdır
split.desc.2=Bu nedenle, 1,3,7-8 seçmek 10 sayfalı bir belgeyi şunlarla 6 ayrı PDF'e böler:
split.desc.2=Bu nedenle, 1,3,7-9 seçmek 10 sayfalı bir belgeyi şunlarla 6 ayrı PDF'e böler:
split.desc.3=Belge #1: Sayfa 1
split.desc.4=Belge #2: Sayfa 2 ve 3
split.desc.5=Belge #3: Sayfa 4, 5 ve 6
split.desc.6=Belge #4: Sayfa 7
split.desc.7=Belge #5: Sayfa 8
split.desc.8=Belge #6: Sayfa 9 ve 10
split.desc.5=Belge #3: Sayfa 4, 5, 6 ve 7
split.desc.6=Belge #4: Sayfa 8
split.desc.7=Belge #5: Sayfa 9
split.desc.8=Belge #6: Sayfa 10
split.splitPages=Ayrılacak sayfaları girin:
split.submit=Ayır
@ -884,8 +885,8 @@ watermark.selectText.7=Opaklık (0% - 100%):
watermark.selectText.8=Filigran Türü:
watermark.selectText.9=Filigran Resmi:
watermark.submit=Filigran Ekle
watermark.type.1=Text
watermark.type.2=Image
watermark.type.1=Metin
watermark.type.2=Resim
#Change permissions
@ -937,7 +938,7 @@ pdfToPDFA.title=PDF'den PDF/A'ya
pdfToPDFA.header=PDF'den PDF/A'ya
pdfToPDFA.credit=Bu hizmet PDF/A dönüşümü için OCRmyPDF kullanır
pdfToPDFA.submit=Dönüştür
pdfToPDFA.tip=Currently does not work for multiple inputs at once
pdfToPDFA.tip=Şu anda aynı anda birden fazla giriş için çalışmıyor
#PDFToWord
@ -978,68 +979,68 @@ PDFToXML.credit=Bu hizmet dosya dönüşümü için LibreOffice kullanır.
PDFToXML.submit=Dönüştür
#PDFToCSV
PDFToCSV.title=PDF to CSV
PDFToCSV.header=PDF to CSV
PDFToCSV.prompt=Choose page to extract table
PDFToCSV.submit=Extract
PDFToCSV.title=PDF'den CSV'ye
PDFToCSV.header=PDF'den CSV'ye
PDFToCSV.prompt=Tabloyu çıkarmak için sayfa seçin
PDFToCSV.submit=Çıkart
#split-by-size-or-count
split-by-size-or-count.title=Split PDF by Size or Count
split-by-size-or-count.header=Split PDF by Size or Count
split-by-size-or-count.type.label=Select Split Type
split-by-size-or-count.type.size=By Size
split-by-size-or-count.type.pageCount=By Page Count
split-by-size-or-count.type.docCount=By Document Count
split-by-size-or-count.value.label=Enter Value
split-by-size-or-count.value.placeholder=Enter size (e.g., 2MB or 3KB) or count (e.g., 5)
split-by-size-or-count.submit=Submit
split-by-size-or-count.title=PDF'yi Boyuta veya Sayıya Göre Bölme
split-by-size-or-count.header=PDF'yi Boyuta veya Sayıya Göre Bölme
split-by-size-or-count.type.label=Bölme Türünü Seçin
split-by-size-or-count.type.size=Boyuta Göre
split-by-size-or-count.type.pageCount=Sayfa Sayısına Göre
split-by-size-or-count.type.docCount=Belge Sayısına Göre
split-by-size-or-count.value.label=Değer Girin
split-by-size-or-count.value.placeholder=Boyutu (örn. 2MB veya 3KB) veya sayıyı (örn. 5) girin
split-by-size-or-count.submit=Gönder
#overlay-pdfs
overlay-pdfs.header=Overlay PDF Files
overlay-pdfs.baseFile.label=Select Base PDF File
overlay-pdfs.overlayFiles.label=Select Overlay PDF Files
overlay-pdfs.mode.label=Select Overlay Mode
overlay-pdfs.mode.sequential=Sequential Overlay
overlay-pdfs.mode.interleaved=Interleaved Overlay
overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay
overlay-pdfs.counts.label=Overlay Counts (for Fixed Repeat Mode)
overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1)
overlay-pdfs.position.label=Select Overlay Position
overlay-pdfs.position.foreground=Foreground
overlay-pdfs.position.background=Background
overlay-pdfs.submit=Submit
overlay-pdfs.header=PDF Dosyalarını Bindirme
overlay-pdfs.baseFile.label=Temel PDF Dosyasını Seçin
overlay-pdfs.overlayFiles.label=İkinci PDF Dosyalarını Seçin
overlay-pdfs.mode.label=Bindirme Modunu Seçin
overlay-pdfs.mode.sequential=Sıralı Bindirme
overlay-pdfs.mode.interleaved=Serpiştirilmiş Bindirme
overlay-pdfs.mode.fixedRepeat=Sabit Tekrar Bindirme
overlay-pdfs.counts.label=Bindirme Sayıları (Sabit Tekrar Modu için)
overlay-pdfs.counts.placeholder=Virgülle ayrılmış sayıları girin (örn. 2,3,1)
overlay-pdfs.position.label=Bindirme Konumunu Seçin
overlay-pdfs.position.foreground=Ön plan
overlay-pdfs.position.background=Arka plan
overlay-pdfs.submit=Gönder
#split-by-sections
split-by-sections.title=Split PDF by Sections
split-by-sections.header=Split PDF into Sections
split-by-sections.horizontal.label=Horizontal Divisions
split-by-sections.vertical.label=Vertical Divisions
split-by-sections.horizontal.placeholder=Enter number of horizontal divisions
split-by-sections.vertical.placeholder=Enter number of vertical divisions
split-by-sections.submit=Split PDF
split-by-sections.merge=Merge Into One PDF
split-by-sections.title=PDF'yi Bölümlere Ayırma
split-by-sections.header=PDF'yi Bölümlere Ayırma
split-by-sections.horizontal.label=Yatay Bölümler
split-by-sections.vertical.label=Dikey Bölümler
split-by-sections.horizontal.placeholder=Yatay bölme sayısını girin
split-by-sections.vertical.placeholder=Dikey bölme sayısını girin
split-by-sections.submit=PDF'yi Böl
split-by-sections.merge=Bir PDF'de Birleştirin
#licenses
licenses.nav=Licenses
licenses.title=3rd Party Licenses
licenses.header=3rd Party Licenses
licenses.module=Module
licenses.version=Version
licenses.license=License
licenses.nav=Lisanslar
licenses.title=3. Taraf Lisansları
licenses.header=3. Taraf Lisansları
licenses.module=Modül
licenses.version=Versiyon
licenses.license=Lisans
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=Sorun için özür dileriz!
error.needHelp=Yardıma mı ihtiyacınız var / Bir sorun mu buldunuz?
error.contactTip=Hala sorun yaşıyorsanız, yardım için bize ulaşmaktan çekinmeyin. GitHub sayfamızdan bir bilet gönderebilir veya Discord üzerinden bizimle iletişime geçebilirsiniz:
error.404.head=404 - Sayfa Bulunamadı | Tüh, kodda takıldık!
error.404.1=Aradığınız sayfayı bulamıyoruz.
error.404.2=Bir şeyler ters gitti
error.github=GitHub üzerinden bir hata bildirin
error.showStack=Yığın İzlemesini Göster
error.copyStack=Yığın İzini Kopyala
error.githubSubmit=GitHub - Hata gönderin
error.discordSubmit=Discord - Destek gönderisi gönderin

File diff suppressed because it is too large Load diff

View file

@ -66,6 +66,7 @@ seeDockerHub=查看Docker Hub
visitGithub=访问Github仓库
donate=捐款
color=颜色
sponsor=赞助
@ -806,14 +807,14 @@ rotate.selectAngle=选择旋转角度以90度的倍数
rotate.submit=旋转
#merge
#split-pdfs
split.title=拆分PDF
split.header=拆分PDF
split.desc.1=选择希望进行分割的页数
split.desc.2=如选择1,3,7-8将把一个10页的文件分割成6个独立的PDF
split.desc.2=如选择1,3,7-9将把一个10页的文件分割成6个独立的PDF
split.desc.3=文档 #1第1页
split.desc.4=文档 #2第2页和第3页
split.desc.5=文档 #3第4页、第5页和第6
split.desc.5=文档 #3第4页、第5页、第6页和第7
split.desc.6=文档 #4第7页
split.desc.7=文档 #5第8页
split.desc.8=文档 #6第9页和第10页

View file

@ -57,15 +57,16 @@ usernameExistsMessage=新使用者名稱已存在。
invalidUsernameMessage=使用者名無效,使用者名只能包含字母字元和數位。
deleteCurrentUserMessage=無法刪除目前登錄的使用者。
deleteUsernameExistsMessage=使用者名不存在,無法刪除。
error=Error
oops=Oops!
help=Help
goHomepage=Go to Homepage
joinDiscord=Join our Discord server
seeDockerHub=See Docker Hub
visitGithub=Visit Github Repository
donate=Donate
color=Color
error=錯誤
oops=哎呀!
help=幫助
goHomepage=前往首頁
joinDiscord=加入我們的Discord服務器
seeDockerHub=查看Docker Hub
visitGithub=訪問Github存儲庫
donate=捐贈
color=顏色
sponsor=贊助
@ -806,17 +807,17 @@ rotate.selectAngle=選擇旋轉角度(以 90 度的倍數):
rotate.submit=旋轉
#merge
#split-pdfs
split.title=分割 PDF
split.header=分割 PDF
split.desc.1=您選擇的數字是您希望進行分割的頁碼
split.desc.2=因此,選擇 1,3,7-8 將會將一個 10 頁的文件分割為 6 個單獨的 PDF包括
split.desc.2=因此,選擇 1,3,7-9 將會將一個 10 頁的文件分割為 6 個單獨的 PDF包括
split.desc.3=文件 #1頁面 1
split.desc.4=文件 #2頁面 2 和 3
split.desc.5=文件 #3頁面 4、5 和 6
split.desc.6=文件 #4頁面 7
split.desc.7=文件 #5頁面 8
split.desc.8=文件 #6頁面 9 和 10
split.desc.5=文件 #3頁面 4、5、6 和 7
split.desc.6=文件 #4頁面 8
split.desc.7=文件 #5頁面 9
split.desc.8=文件 #6頁面 10
split.splitPages=輸入要分割的頁面:
split.submit=分割
@ -1031,15 +1032,15 @@ licenses.license=許可證
# error
error.sorry=Sorry for the issue!
error.needHelp=Need help / Found an issue?
error.contactTip=If you're still having trouble, don't hesitate to reach out to us for help. You can submit a ticket on our GitHub page or contact us through Discord:
error.404.head=404 - Page Not Found | Oops, we tripped in the code!
error.404.1=We can't seem to find the page you're looking for.
error.404.2=Something went wrong
error.github=Submit a ticket on GitHub
error.showStack=Show Stack Trace
error.copyStack=Copy Stack Trace
error.githubSubmit=GitHub - Submit a ticket
error.discordSubmit=Discord - Submit Support post
error.sorry=對於這個問題,我們感到抱歉!
error.needHelp=需要幫助/發現了一個問題?
error.contactTip=如果你仍然遇到問題請不要猶豫隨時向我們尋求幫助。你可以在我們的GitHub頁面提交工單或通過Discord與我們聯繋
error.404.head=404 - 找不到頁面 | 哎呀,我們在代碼中走錯了路!
error.404.1=我們好像找不到你正在尋找的頁面。
error.404.2=出了點錯誤
error.github=在GitHub上提交工單
error.showStack=顯示堆疊追蹤
error.copyStack=複製堆疊追蹤
error.githubSubmit=GitHub - 提交工單
error.discordSubmit=Discord - 提交支援帖子

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ua" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="gold" d="M0 0h640v480H0z"/>
<path fill="#0057b8" d="M0 0h640v240H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 232 B

View file

@ -26,4 +26,5 @@
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="hu_HU"> <img src="images/flags/hu.svg" alt="icon" width="20" height="15"> Hungarian</a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="hi_IN"> <img src="images/flags/in.svg" alt="icon" width="20" height="15"> हिन्दी</a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="sr_LATN_RS"> <img src="images/flags/rs.svg" alt="icon" width="20" height="15"> Srpski</a>
<a class="dropdown-item lang_dropdown-item" href="" data-bs-language-code="uk_UA"> <img src="images/flags/ua.svg" alt="icon" width="20" height="15"> Українська</a>
</th:block>

View file

@ -192,7 +192,7 @@
<div class="modal-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<p class="mb-0" th:utext="#{settings.appVersion} + ' ' + ${@appVersion}"></p>
<a href="https://github.com/sponsors/Frooodle" class="btn btn-sm btn-outline-primary" role="button" target="_blank">Sponsor Stirling-PDF</a>
<a href="https://github.com/sponsors/Frooodle" class="btn btn-sm btn-outline-primary" role="button" target="_blank" th:text="#{sponsor}+' Stirling-PDF'"></a>
<a href="swagger-ui/index.html" class="btn btn-sm btn-outline-primary" role="button" target="_blank">API</a>
<a href="https://github.com/Stirling-Tools/Stirling-PDF/releases" class="btn btn-sm btn-outline-primary" id="update-btn" th:utext="#{settings.update}" role="button" target="_blank"></a>
</div>