Skip to content

Add Simplified Chinese localization with English fallback - #72

Closed
KameraZhao wants to merge 1 commit into
NotProtonNot:mainfrom
KameraZhao:codex/upstream-simplified-chinese
Closed

KameraZhao wants to merge 1 commit into
NotProtonNot:mainfrom
KameraZhao:codex/upstream-simplified-chinese

Conversation

@KameraZhao

Copy link
Copy Markdown
Contributor

Add Simplified Chinese localization with English fallback

Summary

Add Simplified Chinese support to the native NotProton app and the injected
Steam compatibility panel without creating a separate release channel.

  • 401 native-app translations, including menus, progress, errors, prefix tools,
    backup controls and explicit save-data-loss warnings.
  • Follow macOS app language preferences, including per-app selection, rather
    than force Chinese. Keep English fallback and existing English test assertions.
  • Resolve bundled resources in a relocated .app, including SwiftPM's
    lowercased localization directory names.
  • Safely interpolate game names and other dynamic values in one pass.
  • Bilingual Steam compatibility labels, with the page language preferred over
    the browser language. No changes to option keys, backend values or gate anchors.
  • Catalog checks, native localization smoke tests and tests of both panel shapes.

Based on upstream main at 8593594 (v1.1.3).

Scope

The original macOS minimum, official Sparkle feed, signing public key, release
workflow and English branding are retained. This PR intentionally does not
include the separate fork's macOS 15 backport, Chinese-only defaults, disabled
updater, or source-sync automation.

Validation

Passed locally on macOS 15.8 using Swift 6.2.3 / Command Line Tools:

  • make localizationcheck: all 401 translations, English fallback, locale
    matching, interpolation, literal inserted values and destructive warnings.
  • Relocated resource-bundle fixture with per-app Chinese/English preferences and
    explicit language overrides; official updater configuration retained.
  • make panel-behavior: original English behavior, switching, launch options,
    shell behavior, migration and new bilingual tests for both emitted shapes.
  • make webpatch-fixtures: both shapes, 14 gates, 5 fixes, 14 chunk paths and
    three fixtures; anchors intact and unsupported drift refused.
  • callscheck, compatcheck, compatsvc-check, launch-shell, envcheck,
    buildcheck, settingscheck, routecheck, bridgecheck, gamedrivecheck,
    seedcheck.
  • git diff --check.

Not verified:

  • The full Swift suite and full upstream app build. Local swift test fails at
    upstream's retained ToolbarItemGroup.visibilityPriority API with the installed
    SDK. The local Command Line Tools also lack the Swift Testing module.
    These unrelated upstream/toolchain constraints were not changed in this PR.
  • The final bilingual app UI on macOS 26, live Steam stable/beta language changes,
    real game launches and an end-to-end signed update.
  • GitHub Actions have not yet run for this branch.

Please run the existing app workflow and manually review both languages before
merging. If useful, I can split the native-app and Steam-panel changes for review.

@KameraZhao
KameraZhao marked this pull request as ready for review October 9, 2026 14:30
@NotProtonNot

Copy link
Copy Markdown
Owner

Thank you so much. I will merge this for the next release 🇨🇳 😄

@NotProtonNot

Copy link
Copy Markdown
Owner

Thank you, merged as e1f0e68 with you as the author.

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.

3 participants