From 45462dc5d4f1e6c1433c629b8b126abeb62f40c2 Mon Sep 17 00:00:00 2001 From: Ludy Date: Sat, 31 May 2025 13:23:20 +0200 Subject: [PATCH 1/3] Use setup-bot token for GitHub Actions and fix GH_APP_ID secret reference (#3615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes Please provide a summary of the changes, including: - **What was changed** - In **`.github/workflows/check_properties.yml`**, each `actions/github-script` step now uses the GitHub App token output (`${{ steps.setup-bot.outputs.token }}`) instead of relying on the default `secrets.GITHUB_TOKEN`. - In **`.github/workflows/sync_files.yml`**, the `app-id` input for the `setup-bot` action was corrected to use `${{ secrets.GH_APP_ID }}` instead of `${{ vars.GH_APP_ID }}`. - **Why the change was made** - To ensure all workflow steps authenticate through the GitHub App with least-privilege tokens, improving security and avoiding permission issues with the default token or inaccessible repo variables. - To maintain consistency across workflows by centralizing authentication to the App’s token output. --- ## 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/workflows/check_properties.yml | 5 ++++- .github/workflows/sync_files.yml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_properties.yml b/.github/workflows/check_properties.yml index c8640ff37..d74e3084a 100644 --- a/.github/workflows/check_properties.yml +++ b/.github/workflows/check_properties.yml @@ -36,6 +36,7 @@ jobs: id: get-pr-data uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: + github-token: ${{ steps.setup-bot.outputs.token }} script: | const prNumber = context.payload.pull_request.number; const repoOwner = context.payload.repository.owner.login; @@ -56,7 +57,7 @@ jobs: - name: Fetch PR changed files id: fetch-pr-changes env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ steps.setup-bot.outputs.token }} run: | echo "Fetching PR changed files..." echo "Getting list of changed files from PR..." @@ -66,6 +67,7 @@ jobs: id: determine-file uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: + github-token: ${{ steps.setup-bot.outputs.token }} script: | const fs = require("fs"); const path = require("path"); @@ -206,6 +208,7 @@ jobs: if: env.SCRIPT_OUTPUT != '' uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: + github-token: ${{ steps.setup-bot.outputs.token }} script: | const { GITHUB_REPOSITORY, SCRIPT_OUTPUT } = process.env; const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/'); diff --git a/.github/workflows/sync_files.yml b/.github/workflows/sync_files.yml index 72aff82f1..92b4f3c87 100644 --- a/.github/workflows/sync_files.yml +++ b/.github/workflows/sync_files.yml @@ -30,7 +30,7 @@ jobs: id: setup-bot uses: ./.github/actions/setup-bot with: - app-id: ${{ vars.GH_APP_ID }} + app-id: ${{ secrets.GH_APP_ID }} private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} - name: Set up Python From 3293d0d8a19070262d37a3818034d53efff7117c Mon Sep 17 00:00:00 2001 From: Ludy Date: Sat, 31 May 2025 13:24:02 +0200 Subject: [PATCH 2/3] Fix Tibetan locale code to bo_CN and update translation ignore configurations (#3614) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes ## This PR also serves as a test for PR #3615. ### PR #3615 must first be merged to complete the test. --- - **What was changed** - Replaced Tibetan locale code in README (`README.md`) from `zh_BO` to `bo_CN`. - Renamed resource file `messages_zh_BO.properties` to `messages_bo_CN.properties` and updated its internal keys/translations. - Updated the HTML fragment (`templates/fragments/languages.html`) to reference `bo_CN` instead of `zh_BO`. - Added a `[bo_CN]` section in `scripts/ignore_translation.toml` and expanded ignore rules across multiple language sections to cover additional codes. - Enhanced `counter_translation.py` error handling: now catches `ValueError` as `e` and logs file path and line number for easier debugging. - **Why the change was made** - The proper locale identifier for Tibetan is `bo_CN`, aligning with [Localizely’s standard](https://localizely.com/locale-code/bo-CN/). - Ensures consistency across code, resources, and templates so the Tibetan translation loads correctly. - Expanded ignore lists prevent false positives in translation coverage checks, and improved error logging aids maintenance of the translation scripts. --- ## 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) - [ ] 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. --- README.md | 2 +- scripts/counter_translation.py | 3 +- scripts/ignore_translation.toml | 762 +++++++++++++++++- ...O.properties => messages_bo_CN.properties} | 0 .../templates/fragments/languages.html | 2 +- 5 files changed, 757 insertions(+), 12 deletions(-) rename src/main/resources/{messages_zh_BO.properties => messages_bo_CN.properties} (100%) diff --git a/README.md b/README.md index 30335755d..ddedb9436 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ Stirling-PDF currently supports 40 languages! | Spanish (Español) (es_ES) | ![89%](https://geps.dev/progress/89) | | Swedish (Svenska) (sv_SE) | ![78%](https://geps.dev/progress/78) | | Thai (ไทย) (th_TH) | ![71%](https://geps.dev/progress/71) | -| Tibetan (བོད་ཡིག་) (zh_BO) | ![79%](https://geps.dev/progress/79) | +| Tibetan (བོད་ཡིག་) (bo_CN) | ![79%](https://geps.dev/progress/79) | | Traditional Chinese (繁體中文) (zh_TW) | ![89%](https://geps.dev/progress/89) | | Turkish (Türkçe) (tr_TR) | ![87%](https://geps.dev/progress/87) | | Ukrainian (Українська) (uk_UA) | ![89%](https://geps.dev/progress/89) | diff --git a/scripts/counter_translation.py b/scripts/counter_translation.py index 789cb7c11..f5bcfa1e5 100644 --- a/scripts/counter_translation.py +++ b/scripts/counter_translation.py @@ -182,7 +182,8 @@ def compare_files( sort_ignore_translation[language]["ignore"].remove( default_key.strip() ) - except ValueError: + except ValueError as e: + print(f"Error processing line {line_num} in {file_path}: {e}") print(f"{line_default}|{line_file}") exit(1) except IndexError: diff --git a/scripts/ignore_translation.toml b/scripts/ignore_translation.toml index 12f3bc7a4..9c95ba192 100644 --- a/scripts/ignore_translation.toml +++ b/scripts/ignore_translation.toml @@ -1,34 +1,190 @@ [ar_AR] ignore = [ + 'lang.div', + 'lang.dzo', + 'lang.que', 'language.direction', ] [az_AZ] ignore = [ + 'lang.afr', + 'lang.bre', + 'lang.div', + 'lang.epo', + 'lang.guj', + 'lang.hin', + 'lang.kan', + 'lang.mal', + 'lang.mar', + 'lang.mlt', + 'lang.mri', + 'lang.msa', + 'lang.nep', + 'lang.ori', + 'lang.pan', + 'lang.san', + 'lang.sin', + 'lang.slk', + 'lang.snd', + 'lang.sun', + 'lang.tam', + 'lang.tat', + 'lang.urd', + 'lang.yor', 'language.direction', ] [bg_BG] +ignore = [ + 'lang.div', + 'lang.dzo', + 'lang.iku', + 'lang.que', + 'language.direction', +] + +[bo_CN] ignore = [ 'language.direction', ] [ca_CA] ignore = [ - 'PDFToText.tags', 'adminUserSettings.admin', + 'lang.amh', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.fao', + 'lang.fry', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.kan', + 'lang.kaz', + 'lang.lao', + 'lang.mar', + 'lang.mri', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.snd', + 'lang.swa', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tir', + 'lang.uzb', + 'lang.uzb_cyrl', 'language.direction', 'watermark.type.1', ] [cs_CZ] ignore = [ + 'lang.amh', + 'lang.asm', + 'lang.bod', + 'lang.bos', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.frk', + 'lang.gla', + 'lang.guj', + 'lang.iku', + 'lang.jav', + 'lang.kan', + 'lang.kat', + 'lang.khm', + 'lang.kir', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.msa', + 'lang.nor', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.san', + 'lang.sin', + 'lang.snd', + 'lang.sun', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgl', + 'lang.tha', + 'lang.tir', + 'lang.uig', + 'lang.urd', + 'lang.uzb', + 'lang.uzb_cyrl', + 'lang.yor', 'language.direction', 'text', ] [da_DK] ignore = [ + 'lang.afr', + 'lang.amh', + 'lang.ben', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.frk', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.jav', + 'lang.kan', + 'lang.khm', + 'lang.lao', + 'lang.lat', + 'lang.ltz', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.msa', + 'lang.nep', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.san', + 'lang.sin', + 'lang.slk_frak', + 'lang.snd', + 'lang.sun', + 'lang.swa', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tha', + 'lang.tir', + 'lang.ton', + 'lang.uig', + 'lang.urd', + 'lang.uzb', + 'lang.yor', 'language.direction', ] @@ -41,8 +197,36 @@ ignore = [ 'addPageNumbers.selectText.3', 'alphabet', 'certSign.name', + 'cookieBanner.popUp.acceptAllBtn', + 'endpointStatistics.top10', + 'endpointStatistics.top20', 'fileChooser.dragAndDrop', 'home.pipeline.title', + 'lang.afr', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.kan', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.nep', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.san', + 'lang.snd', + 'lang.tam', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.urd', + 'lang.yor', 'language.direction', 'legal.impressum', 'licenses.version', @@ -56,13 +240,19 @@ ignore = [ 'validateSignature.cert.version', 'validateSignature.status', 'watermark.type.1', - 'endpointStatistics.top10', - 'endpointStatistics.top20', - 'cookieBanner.popUp.acceptAllBtn', ] [el_GR] ignore = [ + 'lang.ceb', + 'lang.dzo', + 'lang.iku', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.sin', + 'lang.uig', + 'lang.uzb_cyrl', 'language.direction', ] @@ -70,6 +260,31 @@ ignore = [ ignore = [ 'adminUserSettings.roles', 'error', + 'lang.asm', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.fil', + 'lang.frm', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.san', + 'lang.snd', + 'lang.sun', + 'lang.tam', + 'lang.tel', + 'lang.tir', + 'lang.urd', + 'lang.uzb', + 'lang.yor', 'language.direction', 'no', 'showJS.tags', @@ -77,6 +292,23 @@ ignore = [ [eu_ES] ignore = [ + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.mal', + 'lang.pan', + 'lang.que', + 'lang.san', + 'lang.slv', + 'lang.snd', + 'lang.sqi', + 'lang.tat', + 'lang.tir', + 'lang.yor', 'language.direction', ] @@ -96,6 +328,31 @@ ignore = [ 'alphabet', 'compare.document.1', 'compare.document.2', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.eus', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.kaz', + 'lang.khm', + 'lang.lao', + 'lang.ltz', + 'lang.mal', + 'lang.mar', + 'lang.oci', + 'lang.ori', + 'lang.que', + 'lang.san', + 'lang.snd', + 'lang.swa', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.yor', 'language.direction', 'licenses.license', 'licenses.module', @@ -108,6 +365,24 @@ ignore = [ [ga_IE] ignore = [ + 'lang.ceb', + 'lang.cos', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.guj', + 'lang.hat', + 'lang.iku', + 'lang.lao', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.sin', + 'lang.snd', + 'lang.sun', + 'lang.tgk', + 'lang.tir', + 'lang.uig', 'language.direction', ] @@ -120,22 +395,126 @@ ignore = [ ignore = [ 'PDFToBook.selectText.1', 'home.pipeline.title', + 'lang.bod', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.dzo', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mri', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.san', + 'lang.snd', + 'lang.tam', + 'lang.tel', + 'lang.tgl', + 'lang.tir', 'language.direction', 'showJS.tags', ] [hu_HU] ignore = [ + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.fao', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mar', + 'lang.mri', + 'lang.ori', + 'lang.que', + 'lang.tel', + 'lang.tgl', 'language.direction', ] [id_ID] ignore = [ + 'lang.aze', + 'lang.aze_cyrl', + 'lang.bre', + 'lang.cat', + 'lang.ceb', + 'lang.chr', + 'lang.cym', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.eus', + 'lang.fao', + 'lang.frk', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.kan', + 'lang.kaz', + 'lang.kir', + 'lang.lao', + 'lang.lat', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.slk_frak', + 'lang.snd', + 'lang.sun', + 'lang.swa', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tha', + 'lang.tir', + 'lang.uig', + 'lang.urd', + 'lang.uzb', + 'lang.uzb_cyrl', + 'lang.yor', 'language.direction', ] [it_IT] ignore = [ + 'lang.asm', + 'lang.aze', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.fao', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.snd', + 'lang.swa', + 'lang.tam', + 'lang.tel', + 'lang.tgl', + 'lang.urd', + 'lang.yor', 'language.direction', 'no', 'password', @@ -148,11 +527,21 @@ ignore = [ [ja_JP] ignore = [ + 'lang.jav', 'language.direction', ] [ko_KR] ignore = [ + 'lang.fao', + 'lang.pus', + 'lang.sun', + 'language.direction', +] + +[ml_IN] +ignore = [ + 'lang.iku', 'language.direction', ] @@ -160,6 +549,37 @@ ignore = [ ignore = [ 'compare.document.1', 'compare.document.2', + 'lang.afr', + 'lang.asm', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.dzo', + 'lang.epo', + 'lang.fao', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.sin', + 'lang.snd', + 'lang.sun', + 'lang.swa', + 'lang.tam', + 'lang.tel', + 'lang.tgl', + 'lang.ton', + 'lang.urd', + 'lang.yor', 'language.direction', 'navbar.allTools', 'sponsor', @@ -170,6 +590,49 @@ ignore = [ 'PDFToBook.selectText.1', 'adminUserSettings.admin', 'info', + 'lang.afr', + 'lang.amh', + 'lang.ben', + 'lang.bos', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.dan_frak', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.guj', + 'lang.hin', + 'lang.iku', + 'lang.kan', + 'lang.khm', + 'lang.lao', + 'lang.lat', + 'lang.ltz', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.msa', + 'lang.nep', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.que', + 'lang.san', + 'lang.slk_frak', + 'lang.snd', + 'lang.swa', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tha', + 'lang.tir', + 'lang.ton', + 'lang.uig', + 'lang.urd', + 'lang.yor', 'language.direction', 'oops', 'sponsor', @@ -178,27 +641,148 @@ ignore = [ [pl_PL] ignore = [ 'PDFToBook.selectText.1', + 'lang.afr', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.cos', + 'lang.div', + 'lang.dzo', + 'lang.fao', + 'lang.frk', + 'lang.guj', + 'lang.hat', + 'lang.iku', + 'lang.kan', + 'lang.khm', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.nep', + 'lang.oci', + 'lang.ori', + 'lang.pus', + 'lang.que', + 'lang.snd', + 'lang.sun', + 'lang.swa', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.uig', + 'lang.urd', 'language.direction', ] [pt_BR] ignore = [ + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.fao', + 'lang.fil', + 'lang.frk', + 'lang.fry', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.kir', + 'lang.mar', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.snd', + 'lang.tat', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.uig', + 'lang.uzb', + 'lang.yid', 'language.direction', 'pipelineOptions.pipelineHeader', ] [pt_PT] ignore = [ + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.fao', + 'lang.fil', + 'lang.frk', + 'lang.fry', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.kir', + 'lang.mar', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.snd', + 'lang.tat', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.uig', + 'lang.uzb', + 'lang.yid', 'language.direction', ] [ro_RO] ignore = [ + 'lang.amh', + 'lang.asm', + 'lang.bod', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.cos', + 'lang.deu_frak', + 'lang.div', + 'lang.dzo', + 'lang.est', + 'lang.fao', + 'lang.glg', + 'lang.guj', + 'lang.iku', + 'lang.jav', + 'lang.kan', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.nep', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.pus', + 'lang.slk_frak', + 'lang.snd', + 'lang.sun', + 'lang.swa', + 'lang.tam', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.urd', + 'lang.yor', 'language.direction', ] [ru_RU] ignore = [ + 'lang.iku', + 'lang.pus', 'language.direction', ] @@ -207,6 +791,25 @@ ignore = [ 'adminUserSettings.admin', 'home.multiTool.title', 'info', + 'lang.ceb', + 'lang.chr', + 'lang.dzo', + 'lang.epo', + 'lang.iku', + 'lang.kaz', + 'lang.mar', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.san', + 'lang.sin', + 'lang.snd', + 'lang.tat', + 'lang.tel', + 'lang.tgl', + 'lang.tir', + 'lang.urd', + 'lang.uzb', 'language.direction', 'navbar.sections.security', 'text', @@ -215,6 +818,37 @@ ignore = [ [sl_SI] ignore = [ + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.eus', + 'lang.fao', + 'lang.frk', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.lao', + 'lang.mar', + 'lang.mri', + 'lang.oci', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.slk', + 'lang.snd', + 'lang.sun', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tir', + 'lang.urd', + 'lang.uzb', + 'lang.yor', 'language.direction', ] @@ -227,11 +861,43 @@ ignore = [ [sv_SE] ignore = [ + 'lang.ben', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.dzo', + 'lang.epo', + 'lang.guj', + 'lang.hin', + 'lang.kan', + 'lang.lao', + 'lang.lat', + 'lang.mal', + 'lang.mri', + 'lang.ori', + 'lang.pan', + 'lang.que', + 'lang.san', + 'lang.slk_frak', + 'lang.snd', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tir', + 'lang.urd', + 'lang.yor', 'language.direction', ] [th_TH] ignore = [ + 'lang.dzo', + 'lang.kir', + 'lang.pan', + 'lang.sin', + 'lang.slk_frak', + 'lang.tir', + 'lang.uzb_cyrl', 'language.direction', 'pipelineOptions.pipelineHeader', 'showJS.tags', @@ -239,33 +905,111 @@ ignore = [ [tr_TR] ignore = [ + 'lang.afr', + 'lang.bre', + 'lang.ceb', + 'lang.chr', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.fao', + 'lang.guj', + 'lang.kan', + 'lang.lao', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.msa', + 'lang.ori', + 'lang.pus', + 'lang.que', + 'lang.sin', + 'lang.slk', + 'lang.slk_frak', + 'lang.snd', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tgl', + 'lang.tir', + 'lang.urd', + 'lang.yor', 'language.direction', ] [uk_UA] ignore = [ + 'lang.iku', 'language.direction', ] [vi_VN] ignore = [ + 'lang.amh', + 'lang.asm', + 'lang.aze', + 'lang.aze_cyrl', + 'lang.bos', + 'lang.bre', + 'lang.cat', + 'lang.ceb', + 'lang.chr', + 'lang.cos', + 'lang.div', + 'lang.dzo', + 'lang.epo', + 'lang.eus', + 'lang.fao', + 'lang.glg', + 'lang.guj', + 'lang.iku', + 'lang.kan', + 'lang.kaz', + 'lang.kir', + 'lang.lat', + 'lang.ltz', + 'lang.mal', + 'lang.mar', + 'lang.mri', + 'lang.msa', + 'lang.ori', + 'lang.pus', + 'lang.que', + 'lang.sin', + 'lang.slk', + 'lang.slk_frak', + 'lang.snd', + 'lang.swa', + 'lang.syr', + 'lang.tam', + 'lang.tat', + 'lang.tel', + 'lang.tgk', + 'lang.tir', + 'lang.uig', + 'lang.uzb', + 'lang.uzb_cyrl', + 'lang.yid', + 'lang.yor', 'language.direction', 'pipeline.title', 'pipelineOptions.pipelineHeader', 'showJS.tags', ] -[zh_BO] -ignore = [ - 'language.direction', -] - [zh_CN] ignore = [ + 'lang.dzo', + 'lang.iku', + 'lang.que', 'language.direction', ] [zh_TW] ignore = [ + 'lang.dzo', + 'lang.iku', + 'lang.que', 'language.direction', ] diff --git a/src/main/resources/messages_zh_BO.properties b/src/main/resources/messages_bo_CN.properties similarity index 100% rename from src/main/resources/messages_zh_BO.properties rename to src/main/resources/messages_bo_CN.properties diff --git a/src/main/resources/templates/fragments/languages.html b/src/main/resources/templates/fragments/languages.html index e987ea2b3..bf11d91b2 100644 --- a/src/main/resources/templates/fragments/languages.html +++ b/src/main/resources/templates/fragments/languages.html @@ -4,7 +4,7 @@
-
+
From 209c76d8855e2664e99414b88f04ab6bd5010da0 Mon Sep 17 00:00:00 2001 From: "stirlingbot[bot]" <195170888+stirlingbot[bot]@users.noreply.github.com> Date: Sat, 31 May 2025 12:31:25 +0100 Subject: [PATCH 3/3] :globe_with_meridians: Sync Translations + Update README Progress Table (#3616) ### 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 | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index ddedb9436..3243a9f74 100644 --- a/README.md +++ b/README.md @@ -117,45 +117,45 @@ Stirling-PDF currently supports 40 languages! | Language | Progress | | -------------------------------------------- | -------------------------------------- | | Arabic (العربية) (ar_AR) | ![75%](https://geps.dev/progress/75) | -| Azerbaijani (Azərbaycan Dili) (az_AZ) | ![74%](https://geps.dev/progress/74) | -| Basque (Euskara) (eu_ES) | ![43%](https://geps.dev/progress/43) | +| Azerbaijani (Azərbaycan Dili) (az_AZ) | ![75%](https://geps.dev/progress/75) | +| Basque (Euskara) (eu_ES) | ![44%](https://geps.dev/progress/44) | | Bulgarian (Български) (bg_BG) | ![83%](https://geps.dev/progress/83) | -| Catalan (Català) (ca_CA) | ![80%](https://geps.dev/progress/80) | -| Croatian (Hrvatski) (hr_HR) | ![72%](https://geps.dev/progress/72) | -| Czech (Česky) (cs_CZ) | ![82%](https://geps.dev/progress/82) | -| Danish (Dansk) (da_DK) | ![71%](https://geps.dev/progress/71) | -| Dutch (Nederlands) (nl_NL) | ![71%](https://geps.dev/progress/71) | +| Catalan (Català) (ca_CA) | ![82%](https://geps.dev/progress/82) | +| Croatian (Hrvatski) (hr_HR) | ![74%](https://geps.dev/progress/74) | +| Czech (Česky) (cs_CZ) | ![85%](https://geps.dev/progress/85) | +| Danish (Dansk) (da_DK) | ![75%](https://geps.dev/progress/75) | +| Dutch (Nederlands) (nl_NL) | ![73%](https://geps.dev/progress/73) | | English (English) (en_GB) | ![100%](https://geps.dev/progress/100) | | English (US) (en_US) | ![100%](https://geps.dev/progress/100) | -| French (Français) (fr_FR) | ![82%](https://geps.dev/progress/82) | -| German (Deutsch) (de_DE) | ![89%](https://geps.dev/progress/89) | -| Greek (Ελληνικά) (el_GR) | ![81%](https://geps.dev/progress/81) | +| French (Français) (fr_FR) | ![84%](https://geps.dev/progress/84) | +| German (Deutsch) (de_DE) | ![91%](https://geps.dev/progress/91) | +| Greek (Ελληνικά) (el_GR) | ![82%](https://geps.dev/progress/82) | | Hindi (हिंदी) (hi_IN) | ![82%](https://geps.dev/progress/82) | -| Hungarian (Magyar) (hu_HU) | ![88%](https://geps.dev/progress/88) | -| Indonesian (Bahasa Indonesia) (id_ID) | ![72%](https://geps.dev/progress/72) | -| Irish (Gaeilge) (ga_IE) | ![82%](https://geps.dev/progress/82) | -| Italian (Italiano) (it_IT) | ![96%](https://geps.dev/progress/96) | +| Hungarian (Magyar) (hu_HU) | ![89%](https://geps.dev/progress/89) | +| Indonesian (Bahasa Indonesia) (id_ID) | ![75%](https://geps.dev/progress/75) | +| Irish (Gaeilge) (ga_IE) | ![83%](https://geps.dev/progress/83) | +| Italian (Italiano) (it_IT) | ![98%](https://geps.dev/progress/98) | | Japanese (日本語) (ja_JP) | ![84%](https://geps.dev/progress/84) | | Korean (한국어) (ko_KR) | ![82%](https://geps.dev/progress/82) | -| Norwegian (Norsk) (no_NB) | ![77%](https://geps.dev/progress/77) | +| Norwegian (Norsk) (no_NB) | ![80%](https://geps.dev/progress/80) | | Persian (فارسی) (fa_IR) | ![78%](https://geps.dev/progress/78) | -| Polish (Polski) (pl_PL) | ![85%](https://geps.dev/progress/85) | -| Portuguese (Português) (pt_PT) | ![82%](https://geps.dev/progress/82) | -| Portuguese Brazilian (Português) (pt_BR) | ![87%](https://geps.dev/progress/87) | -| Romanian (Română) (ro_RO) | ![67%](https://geps.dev/progress/67) | +| Polish (Polski) (pl_PL) | ![88%](https://geps.dev/progress/88) | +| Portuguese (Português) (pt_PT) | ![84%](https://geps.dev/progress/84) | +| Portuguese Brazilian (Português) (pt_BR) | ![89%](https://geps.dev/progress/89) | +| Romanian (Română) (ro_RO) | ![70%](https://geps.dev/progress/70) | | Russian (Русский) (ru_RU) | ![89%](https://geps.dev/progress/89) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![53%](https://geps.dev/progress/53) | | Simplified Chinese (简体中文) (zh_CN) | ![88%](https://geps.dev/progress/88) | -| Slovakian (Slovensky) (sk_SK) | ![61%](https://geps.dev/progress/61) | -| Slovenian (Slovenščina) (sl_SI) | ![84%](https://geps.dev/progress/84) | -| Spanish (Español) (es_ES) | ![89%](https://geps.dev/progress/89) | -| Swedish (Svenska) (sv_SE) | ![78%](https://geps.dev/progress/78) | -| Thai (ไทย) (th_TH) | ![71%](https://geps.dev/progress/71) | +| Slovakian (Slovensky) (sk_SK) | ![63%](https://geps.dev/progress/63) | +| Slovenian (Slovenščina) (sl_SI) | ![87%](https://geps.dev/progress/87) | +| Spanish (Español) (es_ES) | ![91%](https://geps.dev/progress/91) | +| Swedish (Svenska) (sv_SE) | ![80%](https://geps.dev/progress/80) | +| Thai (ไทย) (th_TH) | ![72%](https://geps.dev/progress/72) | | Tibetan (བོད་ཡིག་) (bo_CN) | ![79%](https://geps.dev/progress/79) | | Traditional Chinese (繁體中文) (zh_TW) | ![89%](https://geps.dev/progress/89) | -| Turkish (Türkçe) (tr_TR) | ![87%](https://geps.dev/progress/87) | +| Turkish (Türkçe) (tr_TR) | ![90%](https://geps.dev/progress/90) | | Ukrainian (Українська) (uk_UA) | ![89%](https://geps.dev/progress/89) | -| Vietnamese (Tiếng Việt) (vi_VN) | ![66%](https://geps.dev/progress/66) | +| Vietnamese (Tiếng Việt) (vi_VN) | ![70%](https://geps.dev/progress/70) | | Malayalam (മലയാളം) (ml_IN) | ![89%](https://geps.dev/progress/89) | ## Stirling PDF Enterprise