Skip to content

i18n: add Polish (pl) interface language - #901

Merged
giswqs merged 2 commits into
opengeos:mainfrom
Wolren:i18n/polish
Oct 25, 2026
Merged

giswqs merged 2 commits into
opengeos:mainfrom
Wolren:i18n/polish

Conversation

@Wolren

@Wolren Wolren commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds Polish as an interface language.

  • crates/ui-egui/src/i18n/pl.tsv: the full Polish catalog, all 3,562 strings of the English source, UTF-8 with CRLF as the sibling catalogs use. A Polish system locale now opens RustGIS in Polish instead of falling back to English.
  • crates/ui-egui/src/i18n/mod.rs: registers lang!("pl", "Polski", "Polish", Script::Alphabetic, "pl.tsv") and raises LANGUAGES to 19. Latin script, so no font download and no script_region change.
  • crates/ui-egui/src/i18n/tests.rs: pl_PL.UTF-8 locale detection, plus a registration and English-fallback test.
  • Docs updated for the new count: docs/i18n.md (table row and count), docs/sponsor.md, docs/user-guide/workspace.md, the README badge and Interface row, and GEOLIBRE_PARITY.md.

Testing

  • cargo fmt --all --check: pass.
  • cargo clippy --workspace --all-targets -- -D warnings: pass.
  • cargo xtask layers: pass.
  • pre-commit run --all-files: pass.
  • cargo test -p rustgis-ui-egui i18n: 23 passed, including the mandatory-translation and placeholder-parity tests. The whole rustgis-ui-egui suite passes: 388 library tests and 86 smoke tests.
  • cargo test --workspace: every crate passes except rustgis-data's filegdb::tests::reads_what_gdal_writes_when_gdal_is_installed on this machine. That test fails identically on unmodified main here, because the local GDAL 3.9.2 cannot write a TINZ layer into an OpenFileGDB ("Can only insert a Polygon/MultiPolygon..."). This change touches no file in crates/data.
  • Catalog checks: placeholder sets identical on every line, no em dashes, one tab per line, no trailing whitespace, \n escapes match the English ribbon labels, 3,562 of 3,562 entries translated.
  • Ran the desktop app with RUSTGIS_LANGUAGE=pl on Windows and read the menus, tabs, ribbon and status bar in Polish.

Terminology sources: the QGIS Polish translation catalog for the interface vocabulary, published Esri Poland documentation for geoprocessing terms, and Polish-language geostatistics literature for the analysis terms. Two labels (Swipe, Perceptually uniform) have no retrievable Polish source and use a descriptive rendering.

Related issue

No existing issue for Polish. This change does not touch the data model, dependencies, the .rgis project format, command ids or the plugin interface, so it is opened directly as a pull request per CONTRIBUTING.md.

Summary by CodeRabbit

  • New Features
    • Added Polish as a supported interface language, with English fallback for untranslated text.
    • Expanded language selection to 19 languages.
  • Documentation
    • Updated language counts and the supported-language list.

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters: 1
  • crates/ui-egui/src/i18n/pl.tsv is excluded by !**/*.tsv

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: d8c95486-969c-4c3b-bbdc-f8d214052282

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 70704c48-818a-44fb-be58-d35699ae55de
Commits

Reviewing files that changed from the base of the PR and between 6ef386d and 57734c6.

Files ignored due to path filters: 1
  • crates/ui-egui/src/i18n/pl.tsv is excluded by !**/*.tsv
Files selected for processing: 7
  • GEOLIBRE_PARITY.md
  • README.md
  • crates/ui-egui/src/i18n/mod.rs
  • crates/ui-egui/src/i18n/tests.rs
  • docs/i18n.md
  • docs/sponsor.md
  • docs/user-guide/workspace.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.

Walkthrough

The language registry adds Polish as its 19th language. Tests cover Polish locale resolution, metadata, translation, and English fallback. The README and documentation update their language counts and language table.

Changes: Polish language support

Layer / File(s) Summary
Register and test Polish
crates/ui-egui/src/i18n/mod.rs, crates/ui-egui/src/i18n/tests.rs
The public LANGUAGES registry grows to 19 entries and adds Polish. Tests cover locale resolution, language metadata, the “Open” translation, and English fallback for a missing string.
Update language counts and table
README.md, GEOLIBRE_PARITY.md, docs/i18n.md, docs/sponsor.md, docs/user-guide/workspace.md
The language count changes from 18 to 19. The i18n table adds Polish and rearranges several existing entries.

Priority: Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Possibly related PRs

  • opengeos/RustGIS#803: Adds Bengali to the same language registry and tests; this change extends that registry.
  • opengeos/RustGIS#847: Updates the same language-count references and i18n table before this change.

Suggested reviewers: sophisticatedstupid, giswqs

Merge Risk: Minimal · up to 57734

The Polish language addition is mergeable with no identified current risk.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. (5 skipped: 5 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the main change: adding Polish as an interface language.
Description check Passed The description includes complete Summary, Testing, and Related issue sections. It explains the catalog, registration, tests, documentation updates, validation results, and the known unrelated GDAL fa…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description includes complete Summary, Testing, and Related issue sections. It explains the catalog, registration, tests, documentation updates, validation results, and the known unrelated GDAL failure.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. (5 skipped: 5 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A Polish word joins the list,
Its locale finds its place,
“Open” speaks in Polish,
Missing words fall back with grace,
A rabbit counts to nineteen,
Then hops through every page.

Comment @coderabbitai help to get the list of available commands.

@giswqs giswqs added the claude-review Apply to run the Claude code review on this PR (remove and re-add to run again) label Oct 25, 2026
Comment thread crates/ui-egui/src/i18n/pl.tsv Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Code review

This PR adds a Polish (pl) interface catalog and registers it. It also updates the language counts from 18 to 19 in the README, the docs and GEOLIBRE_PARITY.md. I read the Rust, docs and test changes in full. I only skimmed the 3,563-line pl.tsv (about the first 600 lines and the last few), so the translations themselves are unreviewed.

Bugs

  • None found. The LANGUAGES array size is bumped to 19 and pl is inserted between nl and pt. A search for leftover "18 languages" or [LangInfo; 18] strings outside the catalogs found none.

Security

  • Nothing to raise. The change is static data plus a registry entry.

Performance

  • Nothing to raise. The 209 KB catalog adds about the same embedded data as the other languages.

Quality

  • crates/ui-egui/src/i18n/pl.tsv:1: the header comment reads # de interface catalog (copied from the German file) and should be # pl. Confidence: high. It's cosmetic, and I left a suggestion on the line.
  • pl.tsv, low confidence: the — fps entry is translated as - fps (an em dash became a hyphen). I did not check whether other catalogs do the same.

AGENTS.md

  • Adherence looks fine:
    • New tests cover the tag mapping (pl_PL.UTF-8) and registration/fallback.
    • Docs, README and the parity file are updated.
    • No new dependencies or assets.
    • AGENTS.md says the maintainer translates missing strings before release. That doesn't conflict with a contributor submitting a full catalog.

Change size

Compared: the whole PR against main (merge base 6ef386d to PR head 2e63489).

Metric Value
Files changed 8 (1 added, 7 modified, 0 removed, 0 renamed)
Size before 96.9 KB
Size after 301.3 KB
Total size change +204.4 KB
File Before After Change
crates/ui-egui/src/i18n/pl.tsv 0 B 203.9 KB +203.9 KB
crates/ui-egui/src/i18n/tests.rs 10.2 KB 10.6 KB +450 B
crates/ui-egui/src/i18n/mod.rs 19.1 KB 19.1 KB +67 B
docs/i18n.md 3.7 KB 3.7 KB +33 B
GEOLIBRE_PARITY.md 22.7 KB 22.7 KB 0 B
README.md 21.8 KB 21.8 KB 0 B
docs/sponsor.md 3.6 KB 3.6 KB 0 B
docs/user-guide/workspace.md 16.0 KB 16.0 KB 0 B

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@giswqs

giswqs commented Oct 25, 2026

Copy link
Copy Markdown
Member

@coderabbitai approve

@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Comments resolved and changes approved.

@github-actions

Copy link
Copy Markdown
Contributor

📖 Docs preview

Item Value
Preview https://preview.rustgis.app/pr-901/
Web app https://preview.rustgis.app/pr-901/app/
Commit 99c0211

GitHub Pages takes a minute or two to publish a new commit. Newer commits from the fork aren't published until a maintainer adds the preview label (once per commit).

@giswqs
giswqs merged commit 797ccab into opengeos:main Oct 25, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-review Apply to run the Claude code review on this PR (remove and re-add to run again)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants