From 64766a129c1115dc415ab475f96f84aa306b94e2 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 18 Jun 2025 18:46:20 +0100 Subject: [PATCH 1/5] Version prop fix + test (#3764) # Description of Changes Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- build.gradle | 17 +++------- testing/test.sh | 88 +++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 90 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 819a63980..20933193e 100644 --- a/build.gradle +++ b/build.gradle @@ -170,19 +170,10 @@ subprojects { test { useJUnitPlatform() } - - // Ensure all packaging tasks depend on writeVersion from root project - tasks.withType(org.springframework.boot.gradle.tasks.bundling.BootJar) { - dependsOn(rootProject.tasks.writeVersion) - } - - tasks.withType(Jar) { - dependsOn(rootProject.tasks.writeVersion) - } - - tasks.withType(org.gradle.api.tasks.bundling.Zip) { - dependsOn(rootProject.tasks.writeVersion) - } + + tasks.named("processResources") { + dependsOn(rootProject.tasks.writeVersion) + } } tasks.withType(JavaCompile).configureEach { diff --git a/testing/test.sh b/testing/test.sh index c7fb49d91..4658edeb5 100644 --- a/testing/test.sh +++ b/testing/test.sh @@ -169,6 +169,50 @@ compare_file_lists() { return 0 } +# Get the expected version from Gradle once +get_expected_version() { + ./gradlew printVersion --quiet | tail -1 +} + +# Function to verify the application version +verify_app_version() { + local service_name=$1 + local base_url=$2 + + echo "Checking version for $service_name (expecting $EXPECTED_VERSION)..." + + # Try to access the homepage and extract the version + local response + response=$(curl -s "$base_url") + + # Extract version from pixel tracking tag + local actual_version + actual_version=$(echo "$response" | grep -o 'appVersion=[0-9.]*' | head -1 | sed 's/appVersion=//') + + # If we couldn't find the version in the pixel tag, try other approaches + if [ -z "$actual_version" ]; then + # Check for "App Version:" format + if echo "$response" | grep -q "App Version:"; then + actual_version=$(echo "$response" | grep -o "App Version: [0-9.]*" | sed 's/App Version: //') + else + echo "❌ Version verification failed: Could not find version information" + return 1 + fi + fi + + # Check if the extracted version matches expected version + if [ "$actual_version" = "$EXPECTED_VERSION" ]; then + echo "✅ Version verification passed: $actual_version" + return 0 + elif [ "$actual_version" = "0.0.0" ]; then + echo "❌ Version verification failed: Found placeholder version 0.0.0" + return 1 + else + echo "❌ Version verification failed: Found $actual_version, expected $EXPECTED_VERSION" + return 1 + fi +} + # Function to test a Docker Compose configuration test_compose() { local compose_file=$1 @@ -206,20 +250,27 @@ run_tests() { fi } + # Main testing routine main() { SECONDS=0 cd "$PROJECT_ROOT" - export DOCKER_CLI_EXPERIMENTAL=enabled - export COMPOSE_DOCKER_CLI_BUILD=0 + export DOCKER_CLI_EXPERIMENTAL=enabled + export COMPOSE_DOCKER_CLI_BUILD=0 export DISABLE_ADDITIONAL_FEATURES=true + # Run the gradlew build command and check if it fails if ! ./gradlew clean build; then echo "Gradle build failed with security disabled, exiting script." exit 1 fi + + # Get expected version after the build to ensure version.properties is created + echo "Getting expected version from Gradle..." + EXPECTED_VERSION=$(get_expected_version) + echo "Expected version: $EXPECTED_VERSION" # Building Docker images # docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest -f ./Dockerfile . @@ -237,6 +288,16 @@ main() { echo "Webpage accessibility lite tests failed" fi cd "$PROJECT_ROOT" + + echo "Testing version verification..." + if verify_app_version "Stirling-PDF-Ultra-Lite" "http://localhost:8080"; then + passed_tests+=("Stirling-PDF-Ultra-Lite-Version-Check") + echo "Version verification passed for Stirling-PDF-Ultra-Lite" + else + failed_tests+=("Stirling-PDF-Ultra-Lite-Version-Check") + echo "Version verification failed for Stirling-PDF-Ultra-Lite" + fi + docker-compose -f "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml" down # run_tests "Stirling-PDF" "./exampleYmlFiles/docker-compose-latest.yml" @@ -248,6 +309,11 @@ main() { echo "Gradle build failed with security enabled, exiting script." exit 1 fi + + # Get expected version after the security-enabled build + echo "Getting expected version from Gradle (security enabled)..." + EXPECTED_VERSION=$(get_expected_version) + echo "Expected version with security enabled: $EXPECTED_VERSION" # Building Docker images with security enabled # docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest -f ./Dockerfile . @@ -273,6 +339,15 @@ main() { echo "Webpage accessibility full tests failed" fi cd "$PROJECT_ROOT" + + echo "Testing version verification..." + if verify_app_version "Stirling-PDF-Security-Fat" "http://localhost:8080"; then + passed_tests+=("Stirling-PDF-Security-Fat-Version-Check") + echo "Version verification passed for Stirling-PDF-Security-Fat" + else + failed_tests+=("Stirling-PDF-Security-Fat-Version-Check") + echo "Version verification failed for Stirling-PDF-Security-Fat" + fi docker-compose -f "./exampleYmlFiles/docker-compose-latest-fat-security.yml" down @@ -341,6 +416,15 @@ main() { failed_tests+=("Disabled-Endpoints") echo "Disabled Endpoints tests failed" fi + + echo "Testing version verification..." + if verify_app_version "Stirling-PDF-Fat-Disable-Endpoints" "http://localhost:8080"; then + passed_tests+=("Stirling-PDF-Fat-Disable-Endpoints-Version-Check") + echo "Version verification passed for Stirling-PDF-Fat-Disable-Endpoints" + else + failed_tests+=("Stirling-PDF-Fat-Disable-Endpoints-Version-Check") + echo "Version verification failed for Stirling-PDF-Fat-Disable-Endpoints" + fi docker-compose -f "./exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml" down From 50aa5e718d2325bcd367b81a3022df80deb704e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Sz=C3=BCcs?= <127139797+Balazs-Szucs@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:48:56 +0200 Subject: [PATCH 2/5] Added Hungarian translations for audit dashboard and added the untranslatable items to .toml file (#3765) # Description of Changes - Added Hungarian translations for various audit dashboard elements, including titles, filters, and modal details. - Added new ignore tags in `ignore_translation.toml` to accommodate additional untranslatable fields for the Hungarian locale. --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [x] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- scripts/ignore_translation.toml | 20 +++ .../main/resources/messages_hu_HU.properties | 116 +++++++++--------- 2 files changed, 78 insertions(+), 58 deletions(-) diff --git a/scripts/ignore_translation.toml b/scripts/ignore_translation.toml index ed8c91713..42fdd9f61 100644 --- a/scripts/ignore_translation.toml +++ b/scripts/ignore_translation.toml @@ -420,7 +420,27 @@ ignore = [ [hu_HU] ignore = [ + 'AddStampRequest.alphabet', + 'AddStampRequest.position', + 'adminUserSettings.admin', + 'alphabet', + 'audit.dashboard.export.json', + 'audit.dashboard.modal.id', + 'audit.dashboard.table.id', + 'certSign.name', + 'cookieBanner.popUp.acceptAllBtn', + 'endpointStatistics.top10', + 'endpointStatistics.top20', 'language.direction', + 'licenses.version', + 'poweredBy', + 'pro', + 'sponsor', + 'text', + 'validateSignature.cert.bits', + 'validateSignature.cert.version', + 'validateSignature.status', + 'watermark.type.1', ] [id_ID] diff --git a/stirling-pdf/src/main/resources/messages_hu_HU.properties b/stirling-pdf/src/main/resources/messages_hu_HU.properties index 1e9c5ff7f..eee163a92 100644 --- a/stirling-pdf/src/main/resources/messages_hu_HU.properties +++ b/stirling-pdf/src/main/resources/messages_hu_HU.properties @@ -1638,82 +1638,82 @@ validateSignature.cert.selfSigned=Önaláírt validateSignature.cert.bits=bit # Audit Dashboard -audit.dashboard.title=Audit Dashboard -audit.dashboard.systemStatus=Audit System Status -audit.dashboard.status=Status -audit.dashboard.enabled=Enabled -audit.dashboard.disabled=Disabled -audit.dashboard.currentLevel=Current Level -audit.dashboard.retentionPeriod=Retention Period -audit.dashboard.days=days -audit.dashboard.totalEvents=Total Events +audit.dashboard.title=Audit Vezérlőpult +audit.dashboard.systemStatus=Audit Rendszer Állapota +audit.dashboard.status=Állapot +audit.dashboard.enabled=Engedélyezve +audit.dashboard.disabled=Letiltva +audit.dashboard.currentLevel=Jelenlegi Szint +audit.dashboard.retentionPeriod=Megőrzési Időszak +audit.dashboard.days=nap +audit.dashboard.totalEvents=Összes Esemény # Audit Dashboard Tabs -audit.dashboard.tab.dashboard=Dashboard -audit.dashboard.tab.events=Audit Events -audit.dashboard.tab.export=Export +audit.dashboard.tab.dashboard=Vezérlőpult +audit.dashboard.tab.events=Audit Események +audit.dashboard.tab.export=Exportálás # Dashboard Charts -audit.dashboard.eventsByType=Events by Type -audit.dashboard.eventsByUser=Events by User -audit.dashboard.eventsOverTime=Events Over Time -audit.dashboard.period.7days=7 Days -audit.dashboard.period.30days=30 Days -audit.dashboard.period.90days=90 Days +audit.dashboard.eventsByType=Események Típus Szerint +audit.dashboard.eventsByUser=Események Felhasználó Szerint +audit.dashboard.eventsOverTime=Események Időben +audit.dashboard.period.7days=7 Nap +audit.dashboard.period.30days=30 Nap +audit.dashboard.period.90days=90 Nap # Events Tab -audit.dashboard.auditEvents=Audit Events -audit.dashboard.filter.eventType=Event Type -audit.dashboard.filter.allEventTypes=All event types -audit.dashboard.filter.user=User -audit.dashboard.filter.userPlaceholder=Filter by user -audit.dashboard.filter.startDate=Start Date -audit.dashboard.filter.endDate=End Date -audit.dashboard.filter.apply=Apply Filters -audit.dashboard.filter.reset=Reset Filters +audit.dashboard.auditEvents=Audit Események +audit.dashboard.filter.eventType=Esemény Típusa +audit.dashboard.filter.allEventTypes=Minden esemény típus +audit.dashboard.filter.user=Felhasználó +audit.dashboard.filter.userPlaceholder=Szűrés felhasználó szerint +audit.dashboard.filter.startDate=Kezdő Dátum +audit.dashboard.filter.endDate=Befejező Dátum +audit.dashboard.filter.apply=Szűrők Alkalmazása +audit.dashboard.filter.reset=Szűrők Visszaállítása # Table Headers audit.dashboard.table.id=ID -audit.dashboard.table.time=Time -audit.dashboard.table.user=User -audit.dashboard.table.type=Type -audit.dashboard.table.details=Details -audit.dashboard.table.viewDetails=View Details +audit.dashboard.table.time=Idő +audit.dashboard.table.user=Felhasználó +audit.dashboard.table.type=Típus +audit.dashboard.table.details=Részletek +audit.dashboard.table.viewDetails=Részletek Megtekintése # Pagination -audit.dashboard.pagination.show=Show -audit.dashboard.pagination.entries=entries -audit.dashboard.pagination.pageInfo1=Page -audit.dashboard.pagination.pageInfo2=of -audit.dashboard.pagination.totalRecords=Total records: +audit.dashboard.pagination.show=Megjelenítés +audit.dashboard.pagination.entries=bejegyzés +audit.dashboard.pagination.pageInfo1=Oldal +audit.dashboard.pagination.pageInfo2=/ +audit.dashboard.pagination.totalRecords=Összes rekord: # Modal -audit.dashboard.modal.eventDetails=Event Details +audit.dashboard.modal.eventDetails=Esemény Részletei audit.dashboard.modal.id=ID -audit.dashboard.modal.user=User -audit.dashboard.modal.type=Type -audit.dashboard.modal.time=Time -audit.dashboard.modal.data=Data +audit.dashboard.modal.user=Felhasználó +audit.dashboard.modal.type=Típus +audit.dashboard.modal.time=Idő +audit.dashboard.modal.data=Adatok # Export Tab -audit.dashboard.export.title=Export Audit Data -audit.dashboard.export.format=Export Format -audit.dashboard.export.csv=CSV (Comma Separated Values) +audit.dashboard.export.title=Audit Adatok Exportálása +audit.dashboard.export.format=Export Formátum +audit.dashboard.export.csv=CSV (Vesszővel Elválasztott Értékek) audit.dashboard.export.json=JSON (JavaScript Object Notation) -audit.dashboard.export.button=Export Data -audit.dashboard.export.infoTitle=Export Information -audit.dashboard.export.infoDesc1=The export will include all audit events matching the selected filters. For large datasets, the export may take a few moments to generate. -audit.dashboard.export.infoDesc2=Exported data will include: -audit.dashboard.export.infoItem1=Event ID -audit.dashboard.export.infoItem2=User -audit.dashboard.export.infoItem3=Event Type -audit.dashboard.export.infoItem4=Timestamp -audit.dashboard.export.infoItem5=Event Data +audit.dashboard.export.button=Adatok Exportálása +audit.dashboard.export.infoTitle=Export Információk +audit.dashboard.export.infoDesc1=Az export tartalmazni fogja az összes audit eseményt, amelyek megfelelnek a kiválasztott szűrőknek. Nagy adathalmazok esetén az export generálása eltarthat néhány percig. +audit.dashboard.export.infoDesc2=Az exportált adatok tartalmazni fogják: +audit.dashboard.export.infoItem1=Esemény ID +audit.dashboard.export.infoItem2=Felhasználó +audit.dashboard.export.infoItem3=Esemény Típusa +audit.dashboard.export.infoItem4=Időbélyeg +audit.dashboard.export.infoItem5=Esemény Adatok # JavaScript i18n keys -audit.dashboard.js.noEventsFound=No audit events found matching the current filters -audit.dashboard.js.errorLoading=Error loading data: -audit.dashboard.js.errorRendering=Error rendering table: -audit.dashboard.js.loadingPage=Loading page +audit.dashboard.js.noEventsFound=Nem található audit esemény a jelenlegi szűrőknek megfelelően +audit.dashboard.js.errorLoading=Hiba az adatok betöltésekor: +audit.dashboard.js.errorRendering=Hiba a táblázat megjelenítésekor: +audit.dashboard.js.loadingPage=Oldal betöltése #################### # Cookie banner # From ec805209a5bb76ab8cc95f7bcb4fd38699154f1d Mon Sep 17 00:00:00 2001 From: albanobattistella <34811668+albanobattistella@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:49:16 +0200 Subject: [PATCH 3/5] Update messages_it_IT.properties (#3763) # Description of Changes Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- .../main/resources/messages_it_IT.properties | 118 +++++++++--------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/stirling-pdf/src/main/resources/messages_it_IT.properties b/stirling-pdf/src/main/resources/messages_it_IT.properties index 0e7c4e5e9..06662dccc 100644 --- a/stirling-pdf/src/main/resources/messages_it_IT.properties +++ b/stirling-pdf/src/main/resources/messages_it_IT.properties @@ -200,7 +200,7 @@ disabledCurrentUserMessage=L'utente corrente non può essere disabilitato downgradeCurrentUserLongMessage=Impossibile declassare il ruolo dell'utente corrente. Pertanto, l'utente corrente non verrà visualizzato. userAlreadyExistsOAuthMessage=L'utente esiste già come utente OAuth2. userAlreadyExistsWebMessage=L'utente esiste già come utente web. -invalidRoleMessage=Invalid role. +invalidRoleMessage=Ruolo non valido. error=Errore oops=Oops! help=Aiuto @@ -1548,7 +1548,7 @@ survey.meeting.1=Se utilizzi Stirling PDF al lavoro, saremo lieti di parlare con survey.meeting.2=Questa è un'opportunità per: survey.meeting.3=Ottenere assistenza per la distribuzione, le integrazioni o la risoluzione dei problemi survey.meeting.4=Fornire feedback diretto su prestazioni, casi limite e lacune nelle funzionalità -survey.meeting.5=Aiutaci a perfezionare Stirling PDF per un utilizzo aziendale nel mondo reale +survey.meeting.5=Aiutarci a perfezionare Stirling PDF per un utilizzo aziendale nel mondo reale survey.meeting.6=Se sei interessato, puoi prenotare un appuntamento direttamente con il nostro team. (Solo in inglese) survey.meeting.7=Non vediamo l'ora di approfondire i tuoi casi d'uso e di migliorare ulteriormente Stirling PDF! survey.meeting.notInterested=Non sei un'azienda e/o sei interessato a un incontro? @@ -1638,82 +1638,82 @@ validateSignature.cert.selfSigned=Autofirmato validateSignature.cert.bits=bit # Audit Dashboard -audit.dashboard.title=Audit Dashboard -audit.dashboard.systemStatus=Audit System Status -audit.dashboard.status=Status -audit.dashboard.enabled=Enabled -audit.dashboard.disabled=Disabled -audit.dashboard.currentLevel=Current Level -audit.dashboard.retentionPeriod=Retention Period -audit.dashboard.days=days -audit.dashboard.totalEvents=Total Events +audit.dashboard.title=Dashboard di controllo +audit.dashboard.systemStatus=Stato del sistema di controllo +audit.dashboard.status=Stato +audit.dashboard.enabled=Abilitato +audit.dashboard.disabled=Disabilitato +audit.dashboard.currentLevel=Livello attuale +audit.dashboard.retentionPeriod=Periodo di conservazione +audit.dashboard.days=giorni +audit.dashboard.totalEvents=Eventi totali # Audit Dashboard Tabs audit.dashboard.tab.dashboard=Dashboard -audit.dashboard.tab.events=Audit Events -audit.dashboard.tab.export=Export +audit.dashboard.tab.events=Controllo eventi +audit.dashboard.tab.export=Esporta # Dashboard Charts -audit.dashboard.eventsByType=Events by Type -audit.dashboard.eventsByUser=Events by User -audit.dashboard.eventsOverTime=Events Over Time -audit.dashboard.period.7days=7 Days -audit.dashboard.period.30days=30 Days -audit.dashboard.period.90days=90 Days +audit.dashboard.eventsByType=Eventi per tipo +audit.dashboard.eventsByUser=Eventi per utente +audit.dashboard.eventsOverTime=Eventi nel tempo +audit.dashboard.period.7days=7 giorni +audit.dashboard.period.30days=30 giorni +audit.dashboard.period.90days=90 giorni # Events Tab -audit.dashboard.auditEvents=Audit Events -audit.dashboard.filter.eventType=Event Type -audit.dashboard.filter.allEventTypes=All event types -audit.dashboard.filter.user=User -audit.dashboard.filter.userPlaceholder=Filter by user -audit.dashboard.filter.startDate=Start Date -audit.dashboard.filter.endDate=End Date -audit.dashboard.filter.apply=Apply Filters -audit.dashboard.filter.reset=Reset Filters +audit.dashboard.auditEvents=Controllo eventi +audit.dashboard.filter.eventType=Tipo di evento +audit.dashboard.filter.allEventTypes=Tutti i tipi di eventi +audit.dashboard.filter.user=Utente +audit.dashboard.filter.userPlaceholder=Filtra per utente +audit.dashboard.filter.startDate=Data di inizio +audit.dashboard.filter.endDate=Data di fine +audit.dashboard.filter.apply=Applica filtri +audit.dashboard.filter.reset=Resetta Filtri # Table Headers audit.dashboard.table.id=ID -audit.dashboard.table.time=Time -audit.dashboard.table.user=User -audit.dashboard.table.type=Type -audit.dashboard.table.details=Details -audit.dashboard.table.viewDetails=View Details +audit.dashboard.table.time=Orario +audit.dashboard.table.user=Utente +audit.dashboard.table.type=Tipo +audit.dashboard.table.details=Dettagli +audit.dashboard.table.viewDetails=Vedi dettagli # Pagination -audit.dashboard.pagination.show=Show -audit.dashboard.pagination.entries=entries -audit.dashboard.pagination.pageInfo1=Page -audit.dashboard.pagination.pageInfo2=of -audit.dashboard.pagination.totalRecords=Total records: +audit.dashboard.pagination.show=Mostra +audit.dashboard.pagination.entries=voci +audit.dashboard.pagination.pageInfo1=Pagina +audit.dashboard.pagination.pageInfo2=di +audit.dashboard.pagination.totalRecords=Record totali: # Modal -audit.dashboard.modal.eventDetails=Event Details +audit.dashboard.modal.eventDetails=Dettagli dell'evento audit.dashboard.modal.id=ID -audit.dashboard.modal.user=User -audit.dashboard.modal.type=Type -audit.dashboard.modal.time=Time -audit.dashboard.modal.data=Data +audit.dashboard.modal.user=Utente +audit.dashboard.modal.type=Tipo +audit.dashboard.modal.time=ora +audit.dashboard.modal.data=Dati # Export Tab -audit.dashboard.export.title=Export Audit Data -audit.dashboard.export.format=Export Format -audit.dashboard.export.csv=CSV (Comma Separated Values) +audit.dashboard.export.title=Esportazione dei dati di controllo +audit.dashboard.export.format=Formato di esportazione +audit.dashboard.export.csv=CSV (valori separati da virgola) audit.dashboard.export.json=JSON (JavaScript Object Notation) -audit.dashboard.export.button=Export Data -audit.dashboard.export.infoTitle=Export Information -audit.dashboard.export.infoDesc1=The export will include all audit events matching the selected filters. For large datasets, the export may take a few moments to generate. -audit.dashboard.export.infoDesc2=Exported data will include: -audit.dashboard.export.infoItem1=Event ID -audit.dashboard.export.infoItem2=User -audit.dashboard.export.infoItem3=Event Type -audit.dashboard.export.infoItem4=Timestamp -audit.dashboard.export.infoItem5=Event Data +audit.dashboard.export.button=Esporta dati +audit.dashboard.export.infoTitle=Informazioni sull'esportazione +audit.dashboard.export.infoDesc1=L'esportazione includerà tutti gli eventi di controllo corrispondenti ai filtri selezionati. Per set di dati di grandi dimensioni, la generazione dell'esportazione potrebbe richiedere alcuni minuti. +audit.dashboard.export.infoDesc2=I dati esportati includeranno: +audit.dashboard.export.infoItem1=ID evento +audit.dashboard.export.infoItem2=Utente +audit.dashboard.export.infoItem3=Tipo evento +audit.dashboard.export.infoItem4=Marca temporale +audit.dashboard.export.infoItem5=Dati dell'evento # JavaScript i18n keys -audit.dashboard.js.noEventsFound=No audit events found matching the current filters -audit.dashboard.js.errorLoading=Error loading data: -audit.dashboard.js.errorRendering=Error rendering table: -audit.dashboard.js.loadingPage=Loading page +audit.dashboard.js.noEventsFound=Nessun evento di audit trovato corrispondente ai filtri correnti +audit.dashboard.js.errorLoading=Errore durante il caricamento dei dati: +audit.dashboard.js.errorRendering=Errore nel rendering della tabella: +audit.dashboard.js.loadingPage=Caricamento pagina #################### # Cookie banner # From ddad1eddefbe1c91eca1e7f32222b70b9ba4249a Mon Sep 17 00:00:00 2001 From: "stirlingbot[bot]" <195170888+stirlingbot[bot]@users.noreply.github.com> Date: Wed, 18 Jun 2025 18:50:56 +0100 Subject: [PATCH 4/5] :globe_with_meridians: Sync Translations + Update README Progress Table (#3766) ### Description of Changes This Pull Request was automatically generated to synchronize updates to translation files and documentation. Below are the details of the changes made: #### **1. Synchronization of Translation Files** - Updated translation files (`messages_*.properties`) to reflect changes in the reference file `messages_en_GB.properties`. - Ensured consistency and synchronization across all supported language files. - Highlighted any missing or incomplete translations. #### **2. Update README.md** - Generated the translation progress table in `README.md`. - Added a summary of the current translation status for all supported languages. - Included up-to-date statistics on translation coverage. #### **Why these changes are necessary** - Keeps translation files aligned with the latest reference updates. - Ensures the documentation reflects the current translation progress. --- Auto-generated by [create-pull-request][1]. [1]: https://github.com/peter-evans/create-pull-request Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com> --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a26ef7121..828ddf773 100644 --- a/README.md +++ b/README.md @@ -131,10 +131,10 @@ Stirling-PDF currently supports 40 languages! | German (Deutsch) (de_DE) | ![92%](https://geps.dev/progress/92) | | Greek (Ελληνικά) (el_GR) | ![71%](https://geps.dev/progress/71) | | Hindi (हिंदी) (hi_IN) | ![71%](https://geps.dev/progress/71) | -| Hungarian (Magyar) (hu_HU) | ![94%](https://geps.dev/progress/94) | +| Hungarian (Magyar) (hu_HU) | ![99%](https://geps.dev/progress/99) | | Indonesian (Bahasa Indonesia) (id_ID) | ![65%](https://geps.dev/progress/65) | | Irish (Gaeilge) (ga_IE) | ![72%](https://geps.dev/progress/72) | -| Italian (Italiano) (it_IT) | ![94%](https://geps.dev/progress/94) | +| Italian (Italiano) (it_IT) | ![98%](https://geps.dev/progress/98) | | Japanese (日本語) (ja_JP) | ![72%](https://geps.dev/progress/72) | | Korean (한국어) (ko_KR) | ![71%](https://geps.dev/progress/71) | | Norwegian (Norsk) (no_NB) | ![70%](https://geps.dev/progress/70) | From c080158b1c111899396c1c948f9ced2eae8fae8c Mon Sep 17 00:00:00 2001 From: Ludy Date: Wed, 18 Jun 2025 23:27:50 +0200 Subject: [PATCH 5/5] chore: add advanced PR auto-labeling configuration and workflow (#3767) # Description of Changes Please provide a summary of the changes, including: - Added `.github/labeler-config-srvaroa.yml` to define a comprehensive auto-labeling configuration for PRs based on title patterns and file paths. - Introduced a new GitHub Actions workflow `.github/workflows/auto-labelerV2.yml` that uses the `srvaroa/labeler` action to automatically label pull requests. - Extended `.github/labels.yml` to include missing label definitions required for the auto-labeling setup (e.g., `Bugfix`, `build`, `ci`, `perf`, etc.). --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- .github/labeler-config-srvaroa.yml | 136 +++++++++++++++++++++++++++ .github/labels.yml | 27 ++++++ .github/workflows/auto-labelerV2.yml | 35 +++++++ 3 files changed, 198 insertions(+) create mode 100644 .github/labeler-config-srvaroa.yml create mode 100644 .github/workflows/auto-labelerV2.yml diff --git a/.github/labeler-config-srvaroa.yml b/.github/labeler-config-srvaroa.yml new file mode 100644 index 000000000..9bb02d7d7 --- /dev/null +++ b/.github/labeler-config-srvaroa.yml @@ -0,0 +1,136 @@ +version: 1 +labels: + + - label: "Bugfix" + title: '^fix:.*' + + - label: "enhancement" + title: '^feat:.*' + + - label: "build" + title: '^build:.*' + + - label: "chore" + title: '^chore:.*' + + - label: "ci" + title: '^ci:.*' + + - label: "perf" + title: '^perf:.*' + + - label: "refactor" + title: '^refactor:.*' + + - label: "revert" + title: '^revert:.*' + + - label: "style" + title: '^style:.*' + + - label: 'API' + title: '.*openapi.*' + + - label: 'Translation' + files: + - 'stirling-pdf/src/main/resources/messages_[a-zA-Z_]{2}_[a-zA-Z_]{2,7}.properties' + - 'scripts/ignore_translation.toml' + - 'stirling-pdf/src/main/resources/templates/fragments/languages.html' + - '.github/scripts/check_language_properties.py' + + - label: 'Front End' + files: + - 'stirling-pdf/src/main/resources/templates/**/*' + - 'proprietary/src/main/resources/templates/**/*' + - 'stirling-pdf/src/main/resources/static/**/*' + - 'proprietary/src/main/resources/static/**/*' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/**/*' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/UI/**/*' + + - label: 'Java' + files: + - 'common/src/main/java/**/*.java' + - 'proprietary/src/main/java/**/*.java' + - 'stirling-pdf/src/main/java/**/*.java' + + - label: 'Back End' + files: + - 'stirling-pdf/src/main/java/stirling/software/SPDF/config/**/*' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/**/*' + - 'stirling-pdf/src/main/resources/settings.yml.template' + - 'stirling-pdf/src/main/resources/application.properties' + - 'stirling-pdf/src/main/resources/banner.txt' + - 'scripts/png_to_webp.py' + - 'split_photos.py' + + - label: 'Security' + files: + - 'proprietary/src/main/java/stirling/software/proprietary/security/**/*' + - 'scripts/download-security-jar.sh' + - '.github/workflows/dependency-review.yml' + - '.github/workflows/scorecards.yml' + + - label: 'API' + files: + - 'stirling-pdf/src/main/java/stirling/software/SPDF/config/OpenApiConfig.java' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/web/MetricsController.java' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/**/*' + - 'stirling-pdf/src/main/java/stirling/software/SPDF/model/api/**/*' + - 'scripts/png_to_webp.py' + - 'split_photos.py' + - '.github/workflows/swagger.yml' + + - label: 'Documentation' + files: + - '**/*.md' + - 'scripts/counter_translation.py' + - 'scripts/ignore_translation.toml' + title: '^docs:.*' + + - label: 'Docker' + files: + - '.github/workflows/build.yml' + - '.github/workflows/push-docker.yml' + - 'Dockerfile' + - 'Dockerfile.fat' + - 'Dockerfile.ultra-lite' + - 'exampleYmlFiles/*.yml' + - 'scripts/download-security-jar.sh' + - 'scripts/init.sh' + - 'scripts/init-without-ocr.sh' + - 'scripts/installFonts.sh' + - 'test.sh' + - 'test2.sh' + + - label: 'Devtools' + files: + - '.devcontainer/**/*' + - 'Dockerfile.dev' + - '.vscode/**/*' + - '.editorconfig' + - '.pre-commit-config' + - '.github/workflows/pre_commit.yml' + - 'HowToAddNewLanguage.md' + + - label: 'Test' + files: + - 'common/src/test/**/*' + - 'proprietary/src/test/**/*' + - 'stirling-pdf/src/test/**/*' + - 'testing/**/*' + - '.github/workflows/scorecards.yml' + + - label: 'Github' + files: + - '.github/**/*' + + - label: 'Gradle' + files: + - 'gradle/**/*' + - 'gradlew' + - 'gradlew.bat' + - 'settings.gradle' + - 'build.gradle' + - 'common/build.gradle' + - 'proprietary/build.gradle' + - 'stirling-pdf/build.gradle' diff --git a/.github/labels.yml b/.github/labels.yml index f4e077f0a..3a5973003 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -111,3 +111,30 @@ - name: "Devtools" color: "FF9E1F" description: "Development tools" +- name: "Bugfix" + color: "FF9E1F" + description: "Pull requests that fix bugs" +- name: "Gradle" + color: "FF9E1F" + description: "Pull requests that update Gradle code" +- name: "build" + color: "1E90FF" + description: "Changes that affect the build system or external dependencies" +- name: "chore" + color: "FFD700" + description: "Routine tasks or maintenance that don't modify src or test files" +- name: "ci" + color: "4682B4" + description: "Changes to CI configuration files and scripts" +- name: "perf" + color: "FF69B4" + description: "Changes that improve performance" +- name: "refactor" + color: "9932CC" + description: "Code changes that neither fix a bug nor add a feature" +- name: "revert" + color: "DC143C" + description: "Reverts a previous commit" +- name: "style" + color: "FFA500" + description: "Changes that do not affect the meaning of the code (formatting, etc.)" \ No newline at end of file diff --git a/.github/workflows/auto-labelerV2.yml b/.github/workflows/auto-labelerV2.yml new file mode 100644 index 000000000..dec73ddac --- /dev/null +++ b/.github/workflows/auto-labelerV2.yml @@ -0,0 +1,35 @@ +name: "Auto Pull Request Labeler V2" +on: + pull_request_target: + types: [opened, synchronize] + +permissions: + contents: read + +jobs: + labeler: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Harden Runner + uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1 + with: + egress-policy: audit + + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup GitHub App Bot + id: setup-bot + uses: ./.github/actions/setup-bot + with: + app-id: ${{ secrets.GH_APP_ID }} + private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} + + - uses: srvaroa/labeler@0a20eccb8c94a1ee0bed5f16859aece1c45c3e55 # v1.13.0 + with: + config_path: .github/labeler-config-srvaroa.yml + use_local_config: false + fail_on_error: true + env: + GITHUB_TOKEN: "${{ steps.setup-bot.outputs.token }}"