Compare commits

..

3 Commits

Author SHA1 Message Date
stirlingbot[bot]
209c76d885
🌐 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>
2025-05-31 12:31:25 +01:00
Ludy
3293d0d8a1
Fix Tibetan locale code to bo_CN and update translation ignore configurations (#3614)
# 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.
2025-05-31 12:24:02 +01:00
Ludy
45462dc5d4
Use setup-bot token for GitHub Actions and fix GH_APP_ID secret reference (#3615)
# 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.
2025-05-31 12:23:20 +01:00
7 changed files with 788 additions and 40 deletions

View File

@ -36,6 +36,7 @@ jobs:
id: get-pr-data id: get-pr-data
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with: with:
github-token: ${{ steps.setup-bot.outputs.token }}
script: | script: |
const prNumber = context.payload.pull_request.number; const prNumber = context.payload.pull_request.number;
const repoOwner = context.payload.repository.owner.login; const repoOwner = context.payload.repository.owner.login;
@ -56,7 +57,7 @@ jobs:
- name: Fetch PR changed files - name: Fetch PR changed files
id: fetch-pr-changes id: fetch-pr-changes
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ steps.setup-bot.outputs.token }}
run: | run: |
echo "Fetching PR changed files..." echo "Fetching PR changed files..."
echo "Getting list of changed files from PR..." echo "Getting list of changed files from PR..."
@ -66,6 +67,7 @@ jobs:
id: determine-file id: determine-file
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with: with:
github-token: ${{ steps.setup-bot.outputs.token }}
script: | script: |
const fs = require("fs"); const fs = require("fs");
const path = require("path"); const path = require("path");
@ -206,6 +208,7 @@ jobs:
if: env.SCRIPT_OUTPUT != '' if: env.SCRIPT_OUTPUT != ''
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with: with:
github-token: ${{ steps.setup-bot.outputs.token }}
script: | script: |
const { GITHUB_REPOSITORY, SCRIPT_OUTPUT } = process.env; const { GITHUB_REPOSITORY, SCRIPT_OUTPUT } = process.env;
const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/'); const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/');

View File

@ -30,7 +30,7 @@ jobs:
id: setup-bot id: setup-bot
uses: ./.github/actions/setup-bot uses: ./.github/actions/setup-bot
with: with:
app-id: ${{ vars.GH_APP_ID }} app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Set up Python - name: Set up Python

View File

@ -117,45 +117,45 @@ Stirling-PDF currently supports 40 languages!
| Language | Progress | | Language | Progress |
| -------------------------------------------- | -------------------------------------- | | -------------------------------------------- | -------------------------------------- |
| Arabic (العربية) (ar_AR) | ![75%](https://geps.dev/progress/75) | | Arabic (العربية) (ar_AR) | ![75%](https://geps.dev/progress/75) |
| Azerbaijani (Azərbaycan Dili) (az_AZ) | ![74%](https://geps.dev/progress/74) | | Azerbaijani (Azərbaycan Dili) (az_AZ) | ![75%](https://geps.dev/progress/75) |
| Basque (Euskara) (eu_ES) | ![43%](https://geps.dev/progress/43) | | Basque (Euskara) (eu_ES) | ![44%](https://geps.dev/progress/44) |
| Bulgarian (Български) (bg_BG) | ![83%](https://geps.dev/progress/83) | | Bulgarian (Български) (bg_BG) | ![83%](https://geps.dev/progress/83) |
| Catalan (Català) (ca_CA) | ![80%](https://geps.dev/progress/80) | | Catalan (Català) (ca_CA) | ![82%](https://geps.dev/progress/82) |
| Croatian (Hrvatski) (hr_HR) | ![72%](https://geps.dev/progress/72) | | Croatian (Hrvatski) (hr_HR) | ![74%](https://geps.dev/progress/74) |
| Czech (Česky) (cs_CZ) | ![82%](https://geps.dev/progress/82) | | Czech (Česky) (cs_CZ) | ![85%](https://geps.dev/progress/85) |
| Danish (Dansk) (da_DK) | ![71%](https://geps.dev/progress/71) | | Danish (Dansk) (da_DK) | ![75%](https://geps.dev/progress/75) |
| Dutch (Nederlands) (nl_NL) | ![71%](https://geps.dev/progress/71) | | Dutch (Nederlands) (nl_NL) | ![73%](https://geps.dev/progress/73) |
| English (English) (en_GB) | ![100%](https://geps.dev/progress/100) | | English (English) (en_GB) | ![100%](https://geps.dev/progress/100) |
| English (US) (en_US) | ![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) | | French (Français) (fr_FR) | ![84%](https://geps.dev/progress/84) |
| German (Deutsch) (de_DE) | ![89%](https://geps.dev/progress/89) | | German (Deutsch) (de_DE) | ![91%](https://geps.dev/progress/91) |
| Greek (Ελληνικά) (el_GR) | ![81%](https://geps.dev/progress/81) | | Greek (Ελληνικά) (el_GR) | ![82%](https://geps.dev/progress/82) |
| Hindi (हिंदी) (hi_IN) | ![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) | | Hungarian (Magyar) (hu_HU) | ![89%](https://geps.dev/progress/89) |
| Indonesian (Bahasa Indonesia) (id_ID) | ![72%](https://geps.dev/progress/72) | | Indonesian (Bahasa Indonesia) (id_ID) | ![75%](https://geps.dev/progress/75) |
| Irish (Gaeilge) (ga_IE) | ![82%](https://geps.dev/progress/82) | | Irish (Gaeilge) (ga_IE) | ![83%](https://geps.dev/progress/83) |
| Italian (Italiano) (it_IT) | ![96%](https://geps.dev/progress/96) | | Italian (Italiano) (it_IT) | ![98%](https://geps.dev/progress/98) |
| Japanese (日本語) (ja_JP) | ![84%](https://geps.dev/progress/84) | | Japanese (日本語) (ja_JP) | ![84%](https://geps.dev/progress/84) |
| Korean (한국어) (ko_KR) | ![82%](https://geps.dev/progress/82) | | 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) | | Persian (فارسی) (fa_IR) | ![78%](https://geps.dev/progress/78) |
| Polish (Polski) (pl_PL) | ![85%](https://geps.dev/progress/85) | | Polish (Polski) (pl_PL) | ![88%](https://geps.dev/progress/88) |
| Portuguese (Português) (pt_PT) | ![82%](https://geps.dev/progress/82) | | Portuguese (Português) (pt_PT) | ![84%](https://geps.dev/progress/84) |
| Portuguese Brazilian (Português) (pt_BR) | ![87%](https://geps.dev/progress/87) | | Portuguese Brazilian (Português) (pt_BR) | ![89%](https://geps.dev/progress/89) |
| Romanian (Română) (ro_RO) | ![67%](https://geps.dev/progress/67) | | Romanian (Română) (ro_RO) | ![70%](https://geps.dev/progress/70) |
| Russian (Русский) (ru_RU) | ![89%](https://geps.dev/progress/89) | | Russian (Русский) (ru_RU) | ![89%](https://geps.dev/progress/89) |
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![53%](https://geps.dev/progress/53) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![53%](https://geps.dev/progress/53) |
| Simplified Chinese (简体中文) (zh_CN) | ![88%](https://geps.dev/progress/88) | | Simplified Chinese (简体中文) (zh_CN) | ![88%](https://geps.dev/progress/88) |
| Slovakian (Slovensky) (sk_SK) | ![61%](https://geps.dev/progress/61) | | Slovakian (Slovensky) (sk_SK) | ![63%](https://geps.dev/progress/63) |
| Slovenian (Slovenščina) (sl_SI) | ![84%](https://geps.dev/progress/84) | | Slovenian (Slovenščina) (sl_SI) | ![87%](https://geps.dev/progress/87) |
| Spanish (Español) (es_ES) | ![89%](https://geps.dev/progress/89) | | Spanish (Español) (es_ES) | ![91%](https://geps.dev/progress/91) |
| Swedish (Svenska) (sv_SE) | ![78%](https://geps.dev/progress/78) | | Swedish (Svenska) (sv_SE) | ![80%](https://geps.dev/progress/80) |
| Thai (ไทย) (th_TH) | ![71%](https://geps.dev/progress/71) | | Thai (ไทย) (th_TH) | ![72%](https://geps.dev/progress/72) |
| 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) | | 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) | | 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) | | Malayalam (മലയാളം) (ml_IN) | ![89%](https://geps.dev/progress/89) |
## Stirling PDF Enterprise ## Stirling PDF Enterprise

View File

@ -182,7 +182,8 @@ def compare_files(
sort_ignore_translation[language]["ignore"].remove( sort_ignore_translation[language]["ignore"].remove(
default_key.strip() 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}") print(f"{line_default}|{line_file}")
exit(1) exit(1)
except IndexError: except IndexError:

View File

@ -1,34 +1,190 @@
[ar_AR] [ar_AR]
ignore = [ ignore = [
'lang.div',
'lang.dzo',
'lang.que',
'language.direction', 'language.direction',
] ]
[az_AZ] [az_AZ]
ignore = [ 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', 'language.direction',
] ]
[bg_BG] [bg_BG]
ignore = [
'lang.div',
'lang.dzo',
'lang.iku',
'lang.que',
'language.direction',
]
[bo_CN]
ignore = [ ignore = [
'language.direction', 'language.direction',
] ]
[ca_CA] [ca_CA]
ignore = [ ignore = [
'PDFToText.tags',
'adminUserSettings.admin', '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', 'language.direction',
'watermark.type.1', 'watermark.type.1',
] ]
[cs_CZ] [cs_CZ]
ignore = [ 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', 'language.direction',
'text', 'text',
] ]
[da_DK] [da_DK]
ignore = [ 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', 'language.direction',
] ]
@ -41,8 +197,36 @@ ignore = [
'addPageNumbers.selectText.3', 'addPageNumbers.selectText.3',
'alphabet', 'alphabet',
'certSign.name', 'certSign.name',
'cookieBanner.popUp.acceptAllBtn',
'endpointStatistics.top10',
'endpointStatistics.top20',
'fileChooser.dragAndDrop', 'fileChooser.dragAndDrop',
'home.pipeline.title', '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', 'language.direction',
'legal.impressum', 'legal.impressum',
'licenses.version', 'licenses.version',
@ -56,13 +240,19 @@ ignore = [
'validateSignature.cert.version', 'validateSignature.cert.version',
'validateSignature.status', 'validateSignature.status',
'watermark.type.1', 'watermark.type.1',
'endpointStatistics.top10',
'endpointStatistics.top20',
'cookieBanner.popUp.acceptAllBtn',
] ]
[el_GR] [el_GR]
ignore = [ ignore = [
'lang.ceb',
'lang.dzo',
'lang.iku',
'lang.ori',
'lang.pan',
'lang.que',
'lang.sin',
'lang.uig',
'lang.uzb_cyrl',
'language.direction', 'language.direction',
] ]
@ -70,6 +260,31 @@ ignore = [
ignore = [ ignore = [
'adminUserSettings.roles', 'adminUserSettings.roles',
'error', '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', 'language.direction',
'no', 'no',
'showJS.tags', 'showJS.tags',
@ -77,6 +292,23 @@ ignore = [
[eu_ES] [eu_ES]
ignore = [ 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', 'language.direction',
] ]
@ -96,6 +328,31 @@ ignore = [
'alphabet', 'alphabet',
'compare.document.1', 'compare.document.1',
'compare.document.2', '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', 'language.direction',
'licenses.license', 'licenses.license',
'licenses.module', 'licenses.module',
@ -108,6 +365,24 @@ ignore = [
[ga_IE] [ga_IE]
ignore = [ 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', 'language.direction',
] ]
@ -120,22 +395,126 @@ ignore = [
ignore = [ ignore = [
'PDFToBook.selectText.1', 'PDFToBook.selectText.1',
'home.pipeline.title', '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', 'language.direction',
'showJS.tags', 'showJS.tags',
] ]
[hu_HU] [hu_HU]
ignore = [ 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', 'language.direction',
] ]
[id_ID] [id_ID]
ignore = [ 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', 'language.direction',
] ]
[it_IT] [it_IT]
ignore = [ 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', 'language.direction',
'no', 'no',
'password', 'password',
@ -148,11 +527,21 @@ ignore = [
[ja_JP] [ja_JP]
ignore = [ ignore = [
'lang.jav',
'language.direction', 'language.direction',
] ]
[ko_KR] [ko_KR]
ignore = [ ignore = [
'lang.fao',
'lang.pus',
'lang.sun',
'language.direction',
]
[ml_IN]
ignore = [
'lang.iku',
'language.direction', 'language.direction',
] ]
@ -160,6 +549,37 @@ ignore = [
ignore = [ ignore = [
'compare.document.1', 'compare.document.1',
'compare.document.2', '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', 'language.direction',
'navbar.allTools', 'navbar.allTools',
'sponsor', 'sponsor',
@ -170,6 +590,49 @@ ignore = [
'PDFToBook.selectText.1', 'PDFToBook.selectText.1',
'adminUserSettings.admin', 'adminUserSettings.admin',
'info', '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', 'language.direction',
'oops', 'oops',
'sponsor', 'sponsor',
@ -178,27 +641,148 @@ ignore = [
[pl_PL] [pl_PL]
ignore = [ ignore = [
'PDFToBook.selectText.1', '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', 'language.direction',
] ]
[pt_BR] [pt_BR]
ignore = [ 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', 'language.direction',
'pipelineOptions.pipelineHeader', 'pipelineOptions.pipelineHeader',
] ]
[pt_PT] [pt_PT]
ignore = [ 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', 'language.direction',
] ]
[ro_RO] [ro_RO]
ignore = [ 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', 'language.direction',
] ]
[ru_RU] [ru_RU]
ignore = [ ignore = [
'lang.iku',
'lang.pus',
'language.direction', 'language.direction',
] ]
@ -207,6 +791,25 @@ ignore = [
'adminUserSettings.admin', 'adminUserSettings.admin',
'home.multiTool.title', 'home.multiTool.title',
'info', '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', 'language.direction',
'navbar.sections.security', 'navbar.sections.security',
'text', 'text',
@ -215,6 +818,37 @@ ignore = [
[sl_SI] [sl_SI]
ignore = [ 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', 'language.direction',
] ]
@ -227,11 +861,43 @@ ignore = [
[sv_SE] [sv_SE]
ignore = [ 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', 'language.direction',
] ]
[th_TH] [th_TH]
ignore = [ ignore = [
'lang.dzo',
'lang.kir',
'lang.pan',
'lang.sin',
'lang.slk_frak',
'lang.tir',
'lang.uzb_cyrl',
'language.direction', 'language.direction',
'pipelineOptions.pipelineHeader', 'pipelineOptions.pipelineHeader',
'showJS.tags', 'showJS.tags',
@ -239,33 +905,111 @@ ignore = [
[tr_TR] [tr_TR]
ignore = [ 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', 'language.direction',
] ]
[uk_UA] [uk_UA]
ignore = [ ignore = [
'lang.iku',
'language.direction', 'language.direction',
] ]
[vi_VN] [vi_VN]
ignore = [ 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', 'language.direction',
'pipeline.title', 'pipeline.title',
'pipelineOptions.pipelineHeader', 'pipelineOptions.pipelineHeader',
'showJS.tags', 'showJS.tags',
] ]
[zh_BO]
ignore = [
'language.direction',
]
[zh_CN] [zh_CN]
ignore = [ ignore = [
'lang.dzo',
'lang.iku',
'lang.que',
'language.direction', 'language.direction',
] ]
[zh_TW] [zh_TW]
ignore = [ ignore = [
'lang.dzo',
'lang.iku',
'lang.que',
'language.direction', 'language.direction',
] ]

View File

@ -4,7 +4,7 @@
<div th:replace="~{fragments/languageEntry :: languageEntry ('ca_CA', 'Català')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('ca_CA', 'Català')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('zh_CN', '简体中文')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('zh_CN', '简体中文')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('zh_TW', '繁體中文')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('zh_TW', '繁體中文')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('zh_BO', 'བོད་ཡིག')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('bo_CN', 'བོད་ཡིག')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('az_AZ', 'Azərbaycan Dili')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('az_AZ', 'Azərbaycan Dili')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('da_DK', 'Dansk')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('da_DK', 'Dansk')}"></div>
<div th:replace="~{fragments/languageEntry :: languageEntry ('de_DE', 'Deutsch')}"></div> <div th:replace="~{fragments/languageEntry :: languageEntry ('de_DE', 'Deutsch')}"></div>