feat(i18n): add internationalization support with language selection and CJK fonts#1639
Open
snnh wants to merge 13 commits into
Open
feat(i18n): add internationalization support with language selection and CJK fonts#1639snnh wants to merge 13 commits into
snnh wants to merge 13 commits into
Conversation
…and translation tokens feat(i18n): 添加国际化支持,包括语言选择和翻译令牌
feat(translation): 添加简体中文UI本地化
fix(i18n): 将头文件引用从 String.h 更新为 Types.h 以保持兼容性
…ranslation tokens feat(i18n): 集成CJK字体并将硬编码UI字符串迁移到翻译令牌
…ontroller config and achievements refactor(ui): 将控制器配置和成就界面中的硬编码字符串迁移到翻译令牌
…raphics tuner, prelaunch, settings, and controller toasts
encounter
reviewed
May 19, 2026
Member
encounter
left a comment
There was a problem hiding this comment.
I found several instances where this removes upstream changes accidentally, which makes it hard to review as a whole. Overall it seems like a reasonable approach but the team will have to decide if it's the route we want for i18n
| return button; | ||
| } | ||
|
|
||
| SelectButton& config_int_select(Pane& leftPane, Pane& rightPane, ConfigVar<int>& var, |
Author
I am sorry, I didn't notice it during the review |
…3D11 backend - overlay.cpp: change second arg of PADGetKeyButtonBindings from nullptr to &count - settings.cpp: expose D3D11 backend by removing it from exclusion list - settings.cpp: add config_int_select helper for integer selection controls
…d add framerate cap config - Replace boolean enableFrameInterpolation with FrameInterpMode (OFF/CAPPED/UNLIMITED) - Add integer FRAMERATE_CAP config (30-540), disabled unless interpolation is CAPPED - Update Dusk preset to use FrameInterpMode::Unlimited instead of true - Fix controller binding detection in overlay by initializing count pointer for PADGetKeyButtonBindings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add full internationalization (i18n) support to Dusklight, including a language selection UI, translation token system, CJK font integration, and initial translations for English, Simplified Chinese, Japanese, and French.
Changes
src/dusk/ui/i18n.cpp,src/dusk/ui/i18n.hpp): Translation token loading and language switching system[TOKEN_NAME]) across settings, overlay, controller config, achievements, graphics tuner, prelaunch, warp, menu bar, and reportingres/i18n/— en.xml, zh-cn.xml, ja.xml, fr.xmltools/check_i18n_tokens.py— script to detect missing translation tokensconfigPathsplitReference
This implementation follows RmlUi's localization system using translation tokens via
Rml::Translate:https://mikke89.github.io/RmlUiDoc/pages/localisation.html
Disclaimer
Only PR description and commit messages were generated with AI assistance.