SSP multilingual resource monorepo. languages/english/ is the source locale; other locales are maintained by CI or contributors.
| Directory | Language | LANGID |
|---|---|---|
languages/english/ |
English | 1033 |
languages/chinese-simplified/ |
Simplified Chinese | 2052 |
languages/chinese-traditional/ |
Traditional Chinese | 1028 |
Each locale directory is a complete SSP language pack. Drag it into SSP or package it as a .nar for distribution.
ssp-i18n/
├── shared/
│ └── resource_r.h # Global resource ID header (shared by all locale resource.rc files)
├── languages/
│ ├── english/
│ ├── chinese-simplified/
│ └── chinese-traditional/
├── scripts/
│ ├── build-resource.ps1 # Build resource.dll for all or a single locale
│ └── convert-legacy-rc.ps1 # One-time legacy RC conversion tool (used for zh-CN/zh-TW migration)
└── .github/workflows/
Requires the Visual C++ toolchain (rc.exe, link.exe). On Windows, install Build Tools.
# Build all locales
pwsh ./scripts/build-resource.ps1
# Build a single locale
pwsh ./scripts/build-resource.ps1 -Locale chinese-simplifiedThe script reads the id field from each locale's descript.txt as the LCID, and injects the shared/ directory via /i to resolve #include "resource_r.h".
| Workflow | Trigger | Description |
|---|---|---|
sync-translations.yml |
Push to languages/english/** or shared/resource_r.h |
fount-CI syncs English changes to other locales and rebuilds resource.dll |
add-language.yml |
Manual workflow_dispatch |
Uses fount-CI to add a new language based on languages/english/ |
md5-CI-build.yml |
Any push | Updates the updates.txt MD5 manifest for each locale |
auto_release.yml |
Tag push | Packages english.nar, chinese-simplified.nar, chinese-traditional.nar and publishes a Release |
Configure these in the repository Settings → Secrets:
| Secret | Description |
|---|---|
OPENAI_BASE_URL |
OpenAI-compatible API base URL |
OPENAI_API_KEY |
API key |
OPENAI_MODEL |
Model name |
sync-translations checks out with fetch-depth: 7 so the agent can diff the previous commit's languages/english/ changes.
- Edit English resources: Edit
languages/english/directly (message.txt,resource.rc, etc.). CI will sync other locales on push. - Edit translations: You can edit a locale directly, but changes may be overwritten on the next
languages/english/update. Review sync results after English changes. - Add a new language: Manually run add new language in Actions, providing the folder name, display name, and LANGID.
- Update
resource_r.h: Generated by upstream SSP'smake_resource_rc.pyfromsakura.rc/resource.h, placed inshared/. After updating, rebuildlanguages/english/resource.rcand push.
Push a version tag (e.g. 2.7.76.6) to trigger auto_release. Download the corresponding .nar packages from GitHub Releases.