Skip to content

feat(i18n): complete settings UI internationalization#9458

Open
SivanCola wants to merge 2 commits into
warpdotdev:masterfrom
SivanCola:feat/language-switching
Open

feat(i18n): complete settings UI internationalization#9458
SivanCola wants to merge 2 commits into
warpdotdev:masterfrom
SivanCola:feat/language-switching

Conversation

@SivanCola
Copy link
Copy Markdown

Summary

  • Add full i18n support for all settings pages across 6 languages (en, zh_cn, ja, ko, de, pt_br)
  • Add 115 new translation keys for MCP servers, platform API, privacy, features, billing, and shared settings
  • Convert 42 source files to use i18n::t() calls (1139 total calls)
  • All 6 language files now have 1055 keys, fully synchronized
  • cargo test -p i18n passes (11/11 tests)

Changes

Translation files (6 files)

  • en.rs: 940 → 1055 keys (+115 new keys)
  • zh_cn.rs: 940 → 1055 keys
  • ja.rs: 635 → 1055 keys (+420)
  • ko.rs: 635 → 1055 keys (+420)
  • de.rs: 635 → 1055 keys (+420)
  • pt_br.rs: 635 → 1055 keys (+420)

Source files converted (42 files, 1139 i18n::t() calls)

High priority (previously 0 i18n calls):

  • teams_page.rs (110 calls), billing_and_usage_page.rs (107), execution_profile_view.rs (36), main_page.rs (28), show_blocks_view.rs (17)

MCP servers (6 files, 84 calls):

  • list_page.rs (25), edit_page.rs (14), server_card.rs (14), update_modal.rs (12), destructive_mcp_confirmation_dialog.rs (12), installation_modal.rs (7)

Platform & other (10 files, 47 calls):

  • create_api_key_modal.rs (23), settings_page.rs (3), add_regex_modal.rs (5), overage_limit_modal.rs (5), working_directory.rs (2), startup_shell.rs (2), undo_close.rs (2), expire_api_key_button.rs (1), new_environment_button.rs (1), about_page.rs (1)

Previously converted (26 files, 1008 calls):

  • ai_page.rs (181), features_page.rs (119), appearance_page.rs (95), code_page.rs (58), environments_page.rs (40), privacy_page.rs (38), mod.rs (25), platform_page.rs (20), warpify_page.rs (19), keybindings.rs (15), and 16 more

Build improvement

  • Improve Metal shader compiler detection in build.rs to support non-Xcode setups (falls back to direct metal command when xcrun metal is unavailable)

Test plan

  • cargo test -p i18n passes (11/11 tests)
  • All 1055 keys present in all 6 language files
  • No raw CJK/accented characters (all unicode escapes)
  • cargo build --bin warp-oss --features skip_login compiles successfully

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented Apr 29, 2026

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @SivanCola on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment @cla-bot check to trigger another check.

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented Apr 29, 2026

@SivanCola

I ran into an unexpected error while working on this.

Powered by Oz

Add i18n crate with translations for 6 languages (en/zh-CN/ja/ko/de/pt-BR).
Convert settings UI pages to use i18n::t() calls. Translation key sync
is in progress - background agents are adding missing keys to ja/ko/de/pt_BR.

Current state:
- 940 English keys, 635-841 keys in other languages (sync in progress)
- Converted pages: appearance, ai, features, code, privacy, environments,
  keybindings, platform, warpify, mcp_servers, referrals, agent_modal
- Pending: teams_page, billing_page, execution_profile, show_blocks,
  main_page, and ~10 sub-page/modal files
Add full i18n support for all settings pages across 6 languages
(en, zh_cn, ja, ko, de, pt_br).

Translation files:
- Add 115 new translation keys for MCP servers, platform API,
  privacy, features, billing, and shared settings
- All 6 language files now have 1055 keys, fully synchronized
- cargo test -p i18n passes (11/11 tests)

Source file conversion (42 files, 1139 i18n::t() calls):
- MCP servers: list_page, edit_page, server_card, installation_modal,
  update_modal, destructive_mcp_confirmation_dialog
- Platform: create_api_key_modal, expire_api_key_button
- Features: working_directory, startup_shell, undo_close
- Settings: settings_page, add_regex_modal, overage_limit_modal,
  new_environment_button, about_page
- Previously converted: teams_page, billing_and_usage_page,
  execution_profile_view, show_blocks_view, main_page, and 15 more

Build: improve Metal shader compiler detection for non-Xcode setups
@SivanCola SivanCola force-pushed the feat/language-switching branch from 1f36cd1 to ba5b498 Compare April 29, 2026 18:12
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented Apr 29, 2026

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @SivanCola on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment @cla-bot check to trigger another check.

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented Apr 29, 2026

@SivanCola

I'm checking this implementation PR for association with a likely matching ready issue.

Powered by Oz

@SivanCola
Copy link
Copy Markdown
Author

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label Apr 29, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented Apr 29, 2026

The cla-bot has been summoned, and re-checked this pull request!

@captainsafia captainsafia added the external-contributor Indicates that a PR has been opened by someone outside the Warp team. label Apr 30, 2026 — with Image Warp Dev Github Integration
@ErshovDmitry ErshovDmitry mentioned this pull request May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed external-contributor Indicates that a PR has been opened by someone outside the Warp team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants