Skip to content

feat(installer): multi-language installer (EN / JA / RU / ZH / KO) - #29

Merged
mkpoli merged 3 commits into
masterfrom
feat/installer-i18n
Jun 27, 2026
Merged

feat(installer): multi-language installer (EN / JA / RU / ZH / KO)#29
mkpoli merged 3 commits into
masterfrom
feat/installer-i18n

Conversation

@mkpoli

@mkpoli mkpoli commented Jun 20, 2026

Copy link
Copy Markdown
Owner

Adds a language picker to the setup wizard — five languages, all using Inno Setup's official bundled .isl files (no vendored translations):

language source
English / Japanese / Russian compiler:Default.isl / compiler:Languages\*.isl
Chinese (Simplified) compiler:Languages\ChineseSimplified.isl
Korean compiler:Languages\Korean.isl
  • Chinese & Korean were promoted from "unofficial" to official in Inno Setup 6.5.0, so they no longer need vendoring — requires ISCC ≥ 6.5.0 on the build runner (the choco install innosetup default is 6.5.x).
  • The final-page instruction (switch input via Win+Space, type romaji) is translated per language.
  • The .iss carries a UTF-8 BOM so Inno reads its non-ASCII messages as UTF-8.

Ainu (Aynu itak) is a separate, attested-only locale in #37 (stacked on this PR).

⚠️ Needs a Windows build to verify the Inno compile — ISCC can't run locally; the installer is only compiled by the release workflow, not PR CI.

Adds a language picker to the setup wizard with five languages:

- English / Japanese / Russian — Inno Setup's bundled .isl files.
- Chinese (Simplified) — the community translation, bundled under installer/i18n/.
- Ainu (Aynu itak) — a partial manual locale: an English base with vetted Ainu
  welcome strings (irankarapte, porokram, aeynuyep, Aynu itak — from the project
  README and Ainu dictionaries via the Ainu MCP); other wizard strings fall back
  to English, pending native-speaker review.

The final-page instruction (switch input with Win+Space, type romaji) is
translated per language. Non-ASCII files carry a UTF-8 BOM so Inno reads them as
UTF-8 (not system ANSI) on the Windows build runner.
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The installer script now prompts for a setup language, declares five supported locales, and replaces the shared finish text with localized per-language labels. The script file also includes a UTF-8 BOM prefix.

Changes

Installer localization

Layer / File(s) Summary
Script header and language setup
installer/ainuKey.iss
Adds a UTF-8 BOM, enables ShowLanguageDialog, and declares English, Japanese, Russian, Simplified Chinese, and Korean installer languages with their message files.
Localized finish labels
installer/ainuKey.iss
Replaces the single final-page instruction with per-language FinishedLabel strings.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

૮⸝⸝> ᗜ <⸝⸝ა I hop through menus bright and new,
five tongues now greet the setup view.
I nibble romaji, quick and neat,
then finish labels sound complete.
Hooray—this bunny packs with cheer!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Title check ✅ Passed The title clearly summarizes the main change: adding multi-language installer support for the listed locales.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/installer-i18n

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

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

Keep this PR to the four well-supported locales (EN / JA / RU / ZH-Hans). The
partial English-based Ainu.isl was only a placeholder; a proper, full-fledged
Ainu (Aynu itak) locale — translated from mediawiki-ainu-i18n and the Ainu MCP
rather than English-fallback — is built separately in its own PR.
@mkpoli
mkpoli force-pushed the feat/installer-i18n branch from 6be3c62 to 3683229 Compare June 27, 2026 10:20
@mkpoli mkpoli changed the title feat(installer): multi-language installer (EN/JA/RU/ZH-Hans + Ainu) feat(installer): multi-language installer (EN / JA / RU / ZH-Hans) Jun 27, 2026
Inno Setup 6.5.0+ ships ChineseSimplified and Korean as official languages
(promoted from 'unofficial' in 6.5.0), so reference them via compiler:Languagesinstead of vendoring. Removes the bundled ChineseSimplified.isl; adds Korean with
a localized finish-page instruction. Requires ISCC >= 6.5.0 on the build runner.
@mkpoli mkpoli changed the title feat(installer): multi-language installer (EN / JA / RU / ZH-Hans) feat(installer): multi-language installer (EN / JA / RU / ZH / KO) Jun 27, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@installer/ainuKey.iss`:
- Around line 39-48: The installer language list in ainuKey.iss assumes
ChineseSimplified.isl and Korean.isl are present in the stock Inno Setup
install, but they may be missing on a clean runner. Update the [Languages]
entries to point to bundled .isl files for the affected locales, and keep the
existing English/Japanese/Russian entries as-is so the installer can build
reliably. Use the Language names in the [Languages] section as the place to wire
in the bundled message files.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 06c2f7ec-5e9f-4434-9d6d-f0fb43215f4e

📥 Commits

Reviewing files that changed from the base of the PR and between 2dbb794 and 156d71b.

📒 Files selected for processing (1)
  • installer/ainuKey.iss

Comment thread installer/ainuKey.iss
@mkpoli
mkpoli merged commit 6f4df58 into master Jun 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant