mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	custom default Lang
This commit is contained in:
		
							parent
							
								
									9087a3ebbd
								
							
						
					
					
						commit
						d4459eb6d6
					
				@ -91,7 +91,9 @@ Also please note as i add new features i will google translate existing language
 | 
			
		||||
2. Use the application by following the instructions on the website.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Customize App Name
 | 
			
		||||
## Customize App
 | 
			
		||||
Stirling PDF allows easy customization of the visible application name.
 | 
			
		||||
Simply use environment variables APP_HOME_NAME, APP_HOME_DESCRIPTION and APP_NAVBAR_NAME with Docker or Java. 
 | 
			
		||||
If running Java directly, you can also pass these as properties using -D arguments.
 | 
			
		||||
 | 
			
		||||
Using the same method you can also change the default language by providing APP_LOCALE with values like de-DE fr-FR or ar-AR to select your default language (Will always default to English on invalid locale)
 | 
			
		||||
@ -5,7 +5,7 @@ plugins {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
group = 'stirling.software'
 | 
			
		||||
version = '0.4.6'
 | 
			
		||||
version = '0.4.7'
 | 
			
		||||
sourceCompatibility = '17'
 | 
			
		||||
 | 
			
		||||
repositories {
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,24 @@ public class Beans implements WebMvcConfigurer {
 | 
			
		||||
    @Bean
 | 
			
		||||
    public LocaleResolver localeResolver() {
 | 
			
		||||
        SessionLocaleResolver slr = new SessionLocaleResolver();
 | 
			
		||||
        slr.setDefaultLocale(Locale.UK);
 | 
			
		||||
 | 
			
		||||
        String appLocaleEnv = System.getProperty("APP_LOCALE");
 | 
			
		||||
        if(appLocaleEnv == null)
 | 
			
		||||
            appLocaleEnv = System.getenv("APP_LOCALE");
 | 
			
		||||
        Locale defaultLocale = Locale.UK; // Fallback to UK locale if environment variable is not set
 | 
			
		||||
 | 
			
		||||
        if (appLocaleEnv != null && !appLocaleEnv.isEmpty()) {
 | 
			
		||||
            Locale tempLocale = Locale.forLanguageTag(appLocaleEnv);
 | 
			
		||||
            String tempLanguageTag = tempLocale.toLanguageTag();
 | 
			
		||||
 | 
			
		||||
            if (appLocaleEnv.equalsIgnoreCase(tempLanguageTag)) {
 | 
			
		||||
                defaultLocale = tempLocale;
 | 
			
		||||
            } else {
 | 
			
		||||
                System.err.println("Invalid APP_LOCALE environment variable value. Falling back to default Locale.UK.");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        slr.setDefaultLocale(defaultLocale);
 | 
			
		||||
        return slr;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -87,6 +87,10 @@ home.ocr.desc=\u064A\u0642\u0648\u0645 \u0628\u0631\u0646\u0627\u0645\u062C \u06
 | 
			
		||||
home.extractImages.title=\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631
 | 
			
		||||
home.extractImages.desc=\u064A\u0633\u062A\u062E\u0631\u062C \u062C\u0645\u064A\u0639 \u0627\u0644\u0635\u0648\u0631 \u0645\u0646 \u0645\u0644\u0641 PDF \u0648\u064A\u062D\u0641\u0638\u0647\u0627 \u0641\u064A \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064A\u062F\u064A
 | 
			
		||||
 | 
			
		||||
home.pdfToPDFA.title = \u062A\u062D\u0648\u064A\u0644 \u0645\u0644\u0641\u0627\u062A PDF \u0625\u0644\u0649 PDF / A
 | 
			
		||||
home.pdfToPDFA.desc = \u062A\u062D\u0648\u064A\u0644 PDF \u0625\u0644\u0649 PDF / A \u0644\u0644\u062A\u062E\u0632\u064A\u0646 \u0637\u0648\u064A\u0644 \u0627\u0644\u0645\u062F\u0649
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
navbar.settings=\u0625\u0639\u062F\u0627\u062F\u0627\u062A
 | 
			
		||||
settings.title=\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A
 | 
			
		||||
settings.update=\u0627\u0644\u062A\u062D\u062F\u064A\u062B \u0645\u062A\u0627\u062D
 | 
			
		||||
 | 
			
		||||
@ -13,8 +13,8 @@ multiPdfPrompt=Choisir des PDF (2+)
 | 
			
		||||
multiPdfDropPrompt=Sélectionnez (ou glissez-déposez) tous les PDF dont vous avez besoin
 | 
			
		||||
imgPrompt=Choisir une image
 | 
			
		||||
genericSubmit=Soumettre
 | 
			
		||||
processTimeWarning=AttentionÂ: ce processus peut prendre jusqu'à une minute en fonction de la taille du fichier
 | 
			
		||||
pageOrderPrompt=Ordre des pages (Entrez une liste de numéros de page séparés par des virgules)Â:
 | 
			
		||||
processTimeWarning=Attention<EFBFBD>: ce processus peut prendre jusqu'à une minute en fonction de la taille du fichier
 | 
			
		||||
pageOrderPrompt=Ordre des pages (Entrez une liste de numéros de page séparés par des virgules):
 | 
			
		||||
goToPage=Aller
 | 
			
		||||
true=Vrai
 | 
			
		||||
false=Faux
 | 
			
		||||
@ -74,65 +74,66 @@ home.removePassword.desc=Supprimez la protection par mot de passe de votre docum
 | 
			
		||||
home.compressPdfs.title=Compresser les PDF
 | 
			
		||||
home.compressPdfs.desc=Compressez les PDF pour réduire leur taille de fichier.
 | 
			
		||||
 | 
			
		||||
home.changeMetadata.title=Modifier les métadonnées
 | 
			
		||||
home.changeMetadata.desc=Modifier/Supprimer/Ajouter des métadonnées d'un document PDF
 | 
			
		||||
home.changeMetadata.title=Modifier les métadonnées
 | 
			
		||||
home.changeMetadata.desc=Modifier/Supprimer/Ajouter des métadonnées d'un document PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
home.fileToPDF.title=Convertir un fichier en PDF
 | 
			
		||||
home.fileToPDF.desc=Convertissez presque n\u2019importe quel fichier en PDF (DOCX, PNG, XLS, PPT, TXT et plus)
 | 
			
		||||
 | 
			
		||||
home.ocr.title=Exécuter l'OCR sur les scans PDF et/ou de nettoyage
 | 
			
		||||
home.ocr.desc=Le nettoyage analyse et détecte le texte des images dans un PDF et le rajoute en tant que texte.
 | 
			
		||||
home.ocr.title=Exécuter l'OCR sur les scans PDF et/ou de nettoyage
 | 
			
		||||
home.ocr.desc=Le nettoyage analyse et détecte le texte des images dans un PDF et le rajoute en tant que texte.
 | 
			
		||||
 | 
			
		||||
home.extractImages.title=Extraire les images
 | 
			
		||||
home.extractImages.desc=Extrait toutes les images d\u2019un PDF et les enregistre au format zip
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
navbar.settings=Paramètres
 | 
			
		||||
settings.title=Paramètres
 | 
			
		||||
settings.update=Mise à jour disponible
 | 
			
		||||
settings.appVersion=Version de l\u2019application :
 | 
			
		||||
settings.downloadOption.title=Choisissez l\u2019option de téléchargement (pour les téléchargements sans fichier unique) :
 | 
			
		||||
settings.downloadOption.1=Ouvrir dans la même fenêtre
 | 
			
		||||
settings.downloadOption.2=Ouvrir dans une nouvelle fenêtre
 | 
			
		||||
settings.downloadOption.3=Fichier téléchargé
 | 
			
		||||
settings.zipThreshold=Zip les fichiers lorsque le nombre de fichiers téléchargés dépasse
 | 
			
		||||
home.pdfToPDFA.title=Convertir PDF en PDF/A
 | 
			
		||||
home.pdfToPDFA.desc=Convertir un PDF en PDF/A pour un stockage à long terme
 | 
			
		||||
 | 
			
		||||
navbar.settings=Paramètres
 | 
			
		||||
settings.title=Paramètres
 | 
			
		||||
settings.update=Mise à jour disponible
 | 
			
		||||
settings.appVersion=Version de l'application :
 | 
			
		||||
settings.downloadOption.title=Choisissez l'option de téléchargement (pour les téléchargements sans fichier unique) :
 | 
			
		||||
settings.downloadOption.1=Ouvrir dans la même fenêtre
 | 
			
		||||
settings.downloadOption.2=Ouvrir dans une nouvelle fenêtre
 | 
			
		||||
settings.downloadOption.3=Fichier téléchargé
 | 
			
		||||
settings.zipThreshold=Zip les fichiers lorsque le nombre de fichiers téléchargés dépasse
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#OCR
 | 
			
		||||
ocr.title=OCR / Nettoyage de numérisation
 | 
			
		||||
ocr.header=Nettoyage des scans / OCR (reconnaissance optique des caractères)
 | 
			
		||||
ocr.selectText.1=Sélectionnez les langues à détecter dans le PDF (celles répertoriées sont celles actuellement détectées) :
 | 
			
		||||
ocr.title=OCR / Nettoyage de numérisation
 | 
			
		||||
ocr.header=Nettoyage des scans / OCR (reconnaissance optique des caractères)
 | 
			
		||||
ocr.selectText.1=Sélectionnez les langues à détecter dans le PDF (celles répertoriées sont celles actuellement détectées) :
 | 
			
		||||
ocr.selectText.2=Produire un fichier texte contenant du texte OCR avec le PDF OCR
 | 
			
		||||
ocr.selectText.3=Les pages correctes ont été numérisées à un angle oblique en les remettant en place
 | 
			
		||||
ocr.selectText.3=Les pages correctes ont été numérisées à un angle oblique en les remettant en place
 | 
			
		||||
ocr.selectText.4=Nettoyer la page pour qu'il soit moins probable que l'OCR trouve du texte dans le bruit de fond. (Pas de changement de sortie)
 | 
			
		||||
ocr.selectText.5=Nettoyer la page afin qu'il soit moins probable que l'OCR trouve du texte dans le bruit de fond, maintient le nettoyage dans la sortie.
 | 
			
		||||
ocr.selectText.6=Ignore les pages contenant du texte interactif, seulement les pages OCR qui sont des images
 | 
			
		||||
ocr.selectText.7=Forcer l'OCR, OCR chaque page supprimera tous les éléments de texte d'origine
 | 
			
		||||
ocr.selectText.7=Forcer l'OCR, OCR chaque page supprimera tous les éléments de texte d'origine
 | 
			
		||||
ocr.selectText.8=Normal (Erreur si le PDF contient du texte)
 | 
			
		||||
ocr.selectText.9=Paramètres supplémentaires
 | 
			
		||||
ocr.selectText.9=Paramètres supplémentaires
 | 
			
		||||
ocr.selectText.10=Mode ROC
 | 
			
		||||
ocr.help=Veuillez lire cette documentation pour savoir comment l\u2019utiliser pour d\u2019autres langues et/ou une utilisation non dans docker
 | 
			
		||||
ocr.credit=Ce service utilise OCRmyPDF et Tesseract pour l\u2019OCR.
 | 
			
		||||
ocr.help=Veuillez lire cette documentation pour savoir comment l'utiliser pour d'autres langues et/ou une utilisation non dans docker
 | 
			
		||||
ocr.credit=Ce service utilise OCRmyPDF et Tesseract pour l'OCR.
 | 
			
		||||
ocr.submit=Traiter PDF avec OCR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
extractImages.title=Extraire les images
 | 
			
		||||
extractImages.header=Extraire les images
 | 
			
		||||
extractImages.selectText=Sélectionner le format d\u2019image pour convertir les images extraites en
 | 
			
		||||
extractImages.submit=Extrait
 | 
			
		||||
extractImages.selectText=Sélectionner le format d'image pour convertir les images extraites en
 | 
			
		||||
extractImages.submit=Extraire
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#File au format PDF
 | 
			
		||||
fileToPDF.title=Fichier au PDF
 | 
			
		||||
fileToPDF.header=Convertir n\u2019importe quel fichier au format PDF
 | 
			
		||||
#File to PDF
 | 
			
		||||
fileToPDF.title=Fichier au format PDF
 | 
			
		||||
fileToPDF.header=Convertir n'importe quel fichier au format PDF
 | 
			
		||||
fileToPDF.credit=Ce service utilise LibreOffice et Unoconv pour la conversion de fichiers.
 | 
			
		||||
fileToPDF.supportedFileTypes=Les types de fichiers pris en charge doivent inclure les éléments ci-dessous, mais pour une liste complète et mise à jour des formats pris en charge, veuillez vous référer à la documentation de LibreOffice
 | 
			
		||||
fileToPDF.supportedFileTypes=Les types de fichiers pris en charge doivent inclure les éléments ci-dessous, mais pour une liste complète et mise à jour des formats pris en charge, veuillez vous référer à la documentation de LibreOffice.
 | 
			
		||||
fileToPDF.submit=Convertir en PDF
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#Add image
 | 
			
		||||
addImage.title=Ajouter une image
 | 
			
		||||
addImage.header=Ajouter une image au PDF (Travail en cours)
 | 
			
		||||
@ -142,13 +143,13 @@ addImage.submit=Ajouter une image
 | 
			
		||||
compress.title=Compresser
 | 
			
		||||
compress.header=Compresser le PDF
 | 
			
		||||
compress.credit=Ce service utilise OCRmyPDF pour la compression/optimisation PDF.
 | 
			
		||||
compress.selectText.1=Niveau d\u2019optimisation :
 | 
			
		||||
compress.selectText.2=0 (pas d\u2019optimisation)
 | 
			
		||||
compress.selectText.3=1 (par défaut, optimisation sans perte)
 | 
			
		||||
compress.selectText.1=Niveau d'optimisation :
 | 
			
		||||
compress.selectText.2=0 (pas d'optimisation)
 | 
			
		||||
compress.selectText.3=1 (par défaut, optimisation sans perte)
 | 
			
		||||
compress.selectText.4=2 (optimisation avec perte)
 | 
			
		||||
compress.selectText.5=3 (optimisation avec perte, plus agressive)
 | 
			
		||||
compress.selectText.6=Activer l\u2019affichage Web rapide (linéariser PDF)
 | 
			
		||||
compress.selectText.7=Activer l\u2019encodage JBIG2 avec perte
 | 
			
		||||
compress.selectText.6=Activer l'affichage Web rapide (linéariser PDF)
 | 
			
		||||
compress.selectText.7=Activer l'encodage JBIG2 avec perte
 | 
			
		||||
compress.submit=Compresser
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -166,54 +167,50 @@ pdfOrganiser.submit=Réorganiser les pages
 | 
			
		||||
#pageRemover
 | 
			
		||||
pageRemover.title=Suppresseur de pages
 | 
			
		||||
pageRemover.header=Outil de suppression de pages PDF
 | 
			
		||||
pageRemover.pagesToDelete=Pages à supprimer (Entrez une liste de numéros de page séparés par des virgules)Â:
 | 
			
		||||
pageRemover.pagesToDelete=Pages à supprimer (Entrez une liste de numéros de page séparés par des virgules):
 | 
			
		||||
pageRemover.submit=Supprimer des pages
 | 
			
		||||
 | 
			
		||||
#rotate
 | 
			
		||||
rotate.title=Faire pivoter le PDF
 | 
			
		||||
rotate.header=Faire pivoter le PDF
 | 
			
		||||
rotate.selectAngle=S\u00e9lectionner l'angle de rotation (en multiples de 90 degr\u00e9s):
 | 
			
		||||
rotate.selectAngle=Sélectionner l'angle de rotation (en multiples de 90 degrés) :
 | 
			
		||||
rotate.submit=Rotation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#merge
 | 
			
		||||
#Split PDF
 | 
			
		||||
split.title=Fractionner le PDF
 | 
			
		||||
split.header=Diviser le PDF
 | 
			
		||||
split.desc.1=Les numéros que vous sélectionnez sont le numéro de page sur lequel vous souhaitez faire un fractionnement
 | 
			
		||||
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.3=Document #1Â: Page 1
 | 
			
		||||
split.desc.4=Document #2Â: Pages 2 et 3
 | 
			
		||||
split.desc.5=Document #3Â: Pages 4, 5 et 6
 | 
			
		||||
split.desc.6=Document #4Â: Page 7
 | 
			
		||||
split.desc.7=Document #5Â: Page 8
 | 
			
		||||
split.desc.8=Document #6Â: Pages 9 et 10
 | 
			
		||||
split.splitPages=Entrez les pages sur lesquelles fractionnerÂ:
 | 
			
		||||
split.desc.1=Les numéros que vous sélectionnez sont le numéro de page sur lequel vous souhaitez faire un fractionnement.
 | 
			
		||||
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.3=Document #1 : Page 1
 | 
			
		||||
split.desc.4=Document #2 : Pages 2 et 3
 | 
			
		||||
split.desc.5=Document #3 : Pages 4, 5 et 6
 | 
			
		||||
split.desc.6=Document #4 : Page 7
 | 
			
		||||
split.desc.7=Document #5 : Page 8
 | 
			
		||||
split.desc.8=Document #6 : Pages 9 et 10
 | 
			
		||||
split.splitPages=Entrez les pages sur lesquelles fractionner :
 | 
			
		||||
split.submit=Diviser
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#merge
 | 
			
		||||
#imageToPDF
 | 
			
		||||
imageToPDF.title=Image au format PDF
 | 
			
		||||
imageToPDF.header=Image au format PDF
 | 
			
		||||
imageToPDF.submit=Convertir
 | 
			
		||||
imageToPDF.selectText.1=Étirer pour s'adapter
 | 
			
		||||
imageToPDF.selectText.1=Étirer pour s'adapter
 | 
			
		||||
imageToPDF.selectText.2=Rotation automatique du PDF
 | 
			
		||||
imageToPDF.selectText.3=Logique de fichiers multiples (activé uniquement si vous travaillez avec plusieurs images)
 | 
			
		||||
imageToPDF.selectText.4= Fusionner en un seul PDF
 | 
			
		||||
imageToPDF.selectText.5= Convertir en PDFs distincts
 | 
			
		||||
imageToPDF.selectText.3=Logique de fichiers multiples (activé uniquement si vous travaillez avec plusieurs images)
 | 
			
		||||
imageToPDF.selectText.4=Fusionner en un seul PDF
 | 
			
		||||
imageToPDF.selectText.5=Convertir en PDFs distincts
 | 
			
		||||
 | 
			
		||||
#pdfToImage
 | 
			
		||||
#PDF to Image
 | 
			
		||||
pdfToImage.title=PDF vers image
 | 
			
		||||
pdfToImage.header=PDF vers image
 | 
			
		||||
pdfToImage.selectText=Format d'image
 | 
			
		||||
pdfToImage.singleOrMultiple=Type de résultat d'image
 | 
			
		||||
pdfToImage.singleOrMultiple=Type de résultat d'image
 | 
			
		||||
pdfToImage.single=Une seule grande image
 | 
			
		||||
pdfToImage.multi=Plusieurs images
 | 
			
		||||
pdfToImage.colorType=Type de couleur
 | 
			
		||||
pdfToImage.color=Couleur
 | 
			
		||||
pdfToImage.grey=Niveaux de gris
 | 
			
		||||
pdfToImage.blackwhite=Noir et Blanc (Peut perdre des données !)
 | 
			
		||||
pdfToImage.blackwhite=Noir et Blanc (Peut perdre des données !)
 | 
			
		||||
pdfToImage.submit=Convertir
 | 
			
		||||
 | 
			
		||||
#addPassword
 | 
			
		||||
@ -237,36 +234,36 @@ addPassword.submit=Crypter
 | 
			
		||||
#watermark
 | 
			
		||||
watermark.title=Ajouter un filigrane
 | 
			
		||||
watermark.header=Ajouter un filigrane
 | 
			
		||||
watermark.selectText.1=Sélectionnez le PDF auquel ajouter un filigraneÂ:
 | 
			
		||||
watermark.selectText.2=Texte du filigraneÂ:
 | 
			
		||||
watermark.selectText.3=Taille de la policeÂ:
 | 
			
		||||
watermark.selectText.4=Rotation (0-360)Â:
 | 
			
		||||
watermark.selectText.5=widthSpacer (Espace entre chaque filigrane horizontalement)Â:
 | 
			
		||||
watermark.selectText.6=heightSpacer (Espace entre chaque filigrane verticalement)Â:
 | 
			
		||||
watermark.selectText.7=Opacité (0 % - 100 %):
 | 
			
		||||
watermark.selectText.1=Sélectionnez le PDF auquel ajouter un filigrane :
 | 
			
		||||
watermark.selectText.2=Texte du filigrane :
 | 
			
		||||
watermark.selectText.3=Taille de la police :
 | 
			
		||||
watermark.selectText.4=Rotation (0-360) :
 | 
			
		||||
watermark.selectText.5=widthSpacer (Espace entre chaque filigrane horizontalement) :
 | 
			
		||||
watermark.selectText.6=heightSpacer (Espace entre chaque filigrane verticalement) :
 | 
			
		||||
watermark.selectText.7=Opacité (0 % - 100 %) :
 | 
			
		||||
watermark.submit=Ajouter un filigrane
 | 
			
		||||
 | 
			
		||||
#remove-watermark
 | 
			
		||||
remove-watermark.title=Supprimer le filigrane
 | 
			
		||||
remove-watermark.header=Supprimer le filigrane
 | 
			
		||||
remove-watermark.selectText.1=Sélectionnez le PDF pour supprimer le filigrane:
 | 
			
		||||
remove-watermark.selectText.2=Texte du filigrane:
 | 
			
		||||
remove-watermark.selectText.1=Sélectionnez le PDF pour supprimer le filigrane :
 | 
			
		||||
remove-watermark.selectText.2=Texte du filigrane :
 | 
			
		||||
remove-watermark.submit=Supprimer le filigrane
 | 
			
		||||
 | 
			
		||||
#Change permissions
 | 
			
		||||
#Change Permissions
 | 
			
		||||
permissions.title=Modifier les autorisations
 | 
			
		||||
permissions.header=Modifier les autorisations
 | 
			
		||||
permissions.warning=Attention pour que ces permissions soient immuables il est recommandé de les définir avec un mot de passe via la page add-password
 | 
			
		||||
permissions.selectText.1=Sélectionnez PDF pour modifier les autorisations
 | 
			
		||||
permissions.selectText.2=Autorisations à définir
 | 
			
		||||
permissions.warning=Attention pour que ces permissions soient immuables il est recommandé de les définir avec un mot de passe via la page add-password.
 | 
			
		||||
permissions.selectText.1=Sélectionnez le PDF pour modifier les autorisations :
 | 
			
		||||
permissions.selectText.2=Autorisations à définir :
 | 
			
		||||
permissions.selectText.3=Employer l'assemblage du document
 | 
			
		||||
permissions.selectText.4=Employer l'extraction de contenu
 | 
			
		||||
permissions.selectText.5=Employer l'extraction pour l'accessibilité
 | 
			
		||||
permissions.selectText.6=Employer de remplir le formulaire
 | 
			
		||||
permissions.selectText.7=Employer la modification
 | 
			
		||||
permissions.selectText.8=Employer la modification des annotations
 | 
			
		||||
permissions.selectText.9=Employer l'impression
 | 
			
		||||
permissions.selectText.10=Emp�cher l'impression de diff�rents formats
 | 
			
		||||
permissions.selectText.6=Employer pour remplir le formulaire
 | 
			
		||||
permissions.selectText.7=Employer pour la modification
 | 
			
		||||
permissions.selectText.8=Employer pour la modification des annotations
 | 
			
		||||
permissions.selectText.9=Employer pour l'impression
 | 
			
		||||
permissions.selectText.10=Empêcher l'impression de différents formats
 | 
			
		||||
permissions.submit=Modificateur
 | 
			
		||||
 | 
			
		||||
#supprimer le mot de passe
 | 
			
		||||
@ -276,29 +273,30 @@ removePassword.selectText.1=Sélectionnez le PDF à déchiffrer
 | 
			
		||||
removePassword.selectText.2=Mot de passe
 | 
			
		||||
removePassword.submit=Supprimer
 | 
			
		||||
 | 
			
		||||
changeMetadata.title=Modifier les métadonnées
 | 
			
		||||
changeMetadata.header=Modifier les métadonnées
 | 
			
		||||
changeMetadata.selectText.1=Veuillez modifier les variables que vous souhaitez modifier
 | 
			
		||||
changeMetadata.selectText.2=Supprimer toutes les métadonnées
 | 
			
		||||
changeMetadata.selectText.3=Afficher les métadonnées personnalisées:
 | 
			
		||||
changeMetadata.author=Auteur:
 | 
			
		||||
changeMetadata.creationDate=Date de création (aaaa/MM/jj HH:mm:ss):
 | 
			
		||||
changeMetadata.creator=Créateur:
 | 
			
		||||
changeMetadata.keywords=Mots clés:
 | 
			
		||||
changeMetadata.modDate=Date de modification (aaaa/MM/jj HH:mm:ss):
 | 
			
		||||
changeMetadata.producer=Producteur:
 | 
			
		||||
changeMetadata.subject=Objet:
 | 
			
		||||
changeMetadata.title=Titre:
 | 
			
		||||
changeMetadata.trapped=Piégé:
 | 
			
		||||
changeMetadata.selectText.4=Autres métadonnées:
 | 
			
		||||
changeMetadata.selectText.5=Ajouter une entrée de métadonnées personnalisées
 | 
			
		||||
#Change Metadata
 | 
			
		||||
changeMetadata.title=Modifier les métadonnées
 | 
			
		||||
changeMetadata.header=Modifier les métadonnées
 | 
			
		||||
changeMetadata.selectText.1=Veuillez modifier les variables que vous souhaitez modifier.
 | 
			
		||||
changeMetadata.selectText.2=Supprimer toutes les métadonnées.
 | 
			
		||||
changeMetadata.selectText.3=Afficher les métadonnées personnalisées :
 | 
			
		||||
changeMetadata.author=Auteur :
 | 
			
		||||
changeMetadata.creationDate=Date de création (aaaa/MM/jj HH:mm:ss) :
 | 
			
		||||
changeMetadata.creator=Créateur :
 | 
			
		||||
changeMetadata.keywords=Mots clés :
 | 
			
		||||
changeMetadata.modDate=Date de modification (aaaa/MM/jj HH:mm:ss) :
 | 
			
		||||
changeMetadata.producer=Producteur :
 | 
			
		||||
changeMetadata.subject=Objet :
 | 
			
		||||
changeMetadata.title=Titre :
 | 
			
		||||
changeMetadata.trapped=Piégé :
 | 
			
		||||
changeMetadata.selectText.4=Autres métadonnées :
 | 
			
		||||
changeMetadata.selectText.5=Ajouter une entrée de métadonnées personnalisées
 | 
			
		||||
changeMetadata.submit=Modifier
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#XLS to PDF
 | 
			
		||||
xlsToPdf.title=Excel vers PDF
 | 
			
		||||
xlsToPdf.header=Excel en PDF
 | 
			
		||||
xlsToPdf.selectText.1=Sélectionnez une feuille Excel XLS ou XLSX à convertir
 | 
			
		||||
xlsToPdf.convert=convertir
 | 
			
		||||
xlsToPdf.selectText.1=Sélectionnez une feuille Excel XLS ou XLSX à convertir.
 | 
			
		||||
xlsToPdf.convert=Convertir
 | 
			
		||||
 | 
			
		||||
pdfToPDFA.title=PDF vers PDF/A
 | 
			
		||||
pdfToPDFA.header=PDF vers PDF/A
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{addImage.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{compress.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{fileToPDF.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{imageToPDF.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{pdfToImage.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{pdfToPDFA.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
  <head>
 | 
			
		||||
    <title>Error! :(</title>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{extractImages.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,63 +1,32 @@
 | 
			
		||||
<div th:fragment="navbar" class="mx-auto">
 | 
			
		||||
    <script>
 | 
			
		||||
					document
 | 
			
		||||
							.addEventListener(
 | 
			
		||||
									'DOMContentLoaded',
 | 
			
		||||
									function() {
 | 
			
		||||
										// Get the dropdown items
 | 
			
		||||
										var dropdownItems = document
 | 
			
		||||
												.querySelectorAll('.lang_dropdown-item');
 | 
			
		||||
    document.addEventListener('DOMContentLoaded', function () {
 | 
			
		||||
        const defaultLocale = document.documentElement.lang || 'en_GB';
 | 
			
		||||
        const storedLocale = localStorage.getItem('languageCode') || defaultLocale;
 | 
			
		||||
        const dropdownItems = document.querySelectorAll('.lang_dropdown-item');
 | 
			
		||||
 | 
			
		||||
										// Loop through the dropdown items
 | 
			
		||||
										for (var i = 0; i < dropdownItems.length; i++) {
 | 
			
		||||
											dropdownItems[i].classList
 | 
			
		||||
													.remove('active');
 | 
			
		||||
											if (dropdownItems[i].dataset.languageCode === localStorage
 | 
			
		||||
													.getItem('languageCode')) {
 | 
			
		||||
												dropdownItems[i].classList
 | 
			
		||||
														.add('active');
 | 
			
		||||
											}
 | 
			
		||||
        for (let i = 0; i < dropdownItems.length; i++) {
 | 
			
		||||
            const item = dropdownItems[i];
 | 
			
		||||
            item.classList.remove('active');
 | 
			
		||||
            if (item.dataset.languageCode === storedLocale) {
 | 
			
		||||
                item.classList.add('active');
 | 
			
		||||
            }
 | 
			
		||||
            item.addEventListener('click', handleDropdownItemClick);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
											// Add a click event listener to each dropdown item
 | 
			
		||||
											dropdownItems[i]
 | 
			
		||||
													.addEventListener(
 | 
			
		||||
															'click',
 | 
			
		||||
															function(event) {
 | 
			
		||||
    function handleDropdownItemClick(event) {
 | 
			
		||||
        event.preventDefault();
 | 
			
		||||
        const languageCode = this.dataset.languageCode;
 | 
			
		||||
        localStorage.setItem('languageCode', languageCode);
 | 
			
		||||
 | 
			
		||||
																// Prevent the default link behavior
 | 
			
		||||
																event
 | 
			
		||||
																		.preventDefault();
 | 
			
		||||
 | 
			
		||||
																// Get the language code
 | 
			
		||||
																var languageCode = this.dataset.languageCode;
 | 
			
		||||
 | 
			
		||||
																// Save the language code to local storage
 | 
			
		||||
																localStorage
 | 
			
		||||
																		.setItem(
 | 
			
		||||
																				'languageCode',
 | 
			
		||||
																				languageCode);
 | 
			
		||||
 | 
			
		||||
																// Get the current URL
 | 
			
		||||
																var currentUrl = window.location.href;
 | 
			
		||||
 | 
			
		||||
																// Check if the URL already contains a "?lang" query parameter
 | 
			
		||||
																if (currentUrl
 | 
			
		||||
																		.indexOf('?lang=') === -1) {
 | 
			
		||||
																	// Update the URL with the "?lang" query parameter
 | 
			
		||||
																	window.location.href = currentUrl
 | 
			
		||||
																			+ '?lang='
 | 
			
		||||
																			+ languageCode;
 | 
			
		||||
																} else {
 | 
			
		||||
																	// Replace the "?lang" query parameter with the new value
 | 
			
		||||
																	window.location.href = currentUrl
 | 
			
		||||
																			.replace(
 | 
			
		||||
																					/\?lang=\w{2,}/,
 | 
			
		||||
																					'?lang='
 | 
			
		||||
																							+ languageCode);
 | 
			
		||||
																}
 | 
			
		||||
															});
 | 
			
		||||
										}
 | 
			
		||||
									});
 | 
			
		||||
        const currentUrl = window.location.href;
 | 
			
		||||
        if (currentUrl.indexOf('?lang=') === -1) {
 | 
			
		||||
            window.location.href = currentUrl + '?lang=' + languageCode;
 | 
			
		||||
        } else {
 | 
			
		||||
            window.location.href = currentUrl.replace(/\?lang=\w{2,}/, '?lang=' + languageCode);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
				</script>
 | 
			
		||||
 | 
			
		||||
<script th:inline="javascript">
 | 
			
		||||
@ -173,10 +142,10 @@ function compareVersions(version1, version2) {
 | 
			
		||||
                        </svg>
 | 
			
		||||
                         </a>
 | 
			
		||||
                        <div class="dropdown-menu" aria-labelledby="languageDropdown">
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="en_GB">English</a> 
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="ar_AR">العربية</a>
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="de_DE">Deutsch</a> 
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="fr_FR">Français</a>
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="en_GB" >English</a> 
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="ar_AR" >العربية</a>
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="de_DE" >Deutsch</a> 
 | 
			
		||||
                            <a class="dropdown-item lang_dropdown-item" href="" data-language-code="fr_FR" >Français</a>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </li>
 | 
			
		||||
                    
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title='')}"></th:block>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{merge.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{ocr.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{pdfOrganiser.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{pageRemover.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{rotate.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{addPassword.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{watermark.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{changeMetadata.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{permissions.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{removePassword.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{remove-watermark.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html th:lang="${#locale.language}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
 | 
			
		||||
 | 
			
		||||
<th:block th:insert="~{fragments/common :: head(title=#{split.title})}"></th:block>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user