Skip to content

I18n#11382

Open
ErshovDmitry wants to merge 7 commits into
warpdotdev:masterfrom
ErshovDmitry:i18n
Open

I18n#11382
ErshovDmitry wants to merge 7 commits into
warpdotdev:masterfrom
ErshovDmitry:i18n

Conversation

@ErshovDmitry
Copy link
Copy Markdown

@ErshovDmitry ErshovDmitry commented May 20, 2026

What

Adds i18n (internationalization) support to Warp with Russian locale. Compatible with @ZacharyZcR's YAML approach (#10630 / #10990).

Architecture

  • crates/i18n/t!() / t_required!() macros, TranslationLookup, locale switching
  • resources/bundled/locales/{en,ru}.yml — ~2000 keys each (100% Russian coverage)
  • WARP_LANG env var → system locale → en fallback
  • crate::menu_label() helper — 481 call sites, returns &'static str

Compatibility

Fully drop-in compatible with ZacharyZcR's YAML framework.

Status

cargo check -p warp     → 0 errors, 0 warnings
cargo test -p i18n      → 11/11 pass
cargo test -p warp -- menu_label → 4/4 pass
  • Synced with upstream master (74 commits, June 6 2026)
  • 4 sync waves, ~260 commits total
  • 0 merge conflicts
  • 1 squashed commit

Related

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 20, 2026

Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: Dmitry.
This is most likely caused by a git client misconfiguration; please make sure to:

  1. check if your git client is configured with an email to sign commits git config --list | grep email
  2. If not, set it up using git config --global user.email email@example.com
  3. Make sure that the git commit email is configured in your GitHub account settings, see https://github.com/settings/emails

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 20, 2026

@ErshovDmitry

This PR is not linked to an issue that is marked with ready-to-implement.

Issue-state enforcement details:

  • Associated same-repo issues checked: none

  • Required readiness label: ready-to-implement

To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.

Powered by Oz

@github-actions github-actions Bot added the external-contributor Indicates that a PR has been opened by someone outside the Warp team. label May 20, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

@ErshovDmitry

This PR is not linked to an issue that is marked with ready-to-implement.

Issue-state enforcement details:

  • Associated same-repo issues checked: none

  • Required readiness label: ready-to-implement

To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.

Powered by Oz

@ErshovDmitry
Copy link
Copy Markdown
Author

Oh wow — I just noticed there are already several i18n PRs open (#10630, #10990, #9458, #9922). I should have checked first before opening mine. My apologies for the noise!

That said, I see none of them include Russian yet. If the team settles on one i18n approach (looks like #10630 / #10990 is the leading one?), I'd be happy to contribute Russian translations to that effort instead.

I'll close this PR if it's just adding clutter — just let me know.

Cheers,
Dmitry

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 20, 2026

Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: Dmitry.
This is most likely caused by a git client misconfiguration; please make sure to:

  1. check if your git client is configured with an email to sign commits git config --list | grep email
  2. If not, set it up using git config --global user.email email@example.com
  3. Make sure that the git commit email is configured in your GitHub account settings, see https://github.com/settings/emails

2 similar comments
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 20, 2026

Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: Dmitry.
This is most likely caused by a git client misconfiguration; please make sure to:

  1. check if your git client is configured with an email to sign commits git config --list | grep email
  2. If not, set it up using git config --global user.email email@example.com
  3. Make sure that the git commit email is configured in your GitHub account settings, see https://github.com/settings/emails

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 20, 2026

Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: Dmitry.
This is most likely caused by a git client misconfiguration; please make sure to:

  1. check if your git client is configured with an email to sign commits git config --list | grep email
  2. If not, set it up using git config --global user.email email@example.com
  3. Make sure that the git commit email is configured in your GitHub account settings, see https://github.com/settings/emails

@ErshovDmitry
Copy link
Copy Markdown
Author

Update:** I've rewritten this PR to match @ZacharyZcR's YAML approach from #10630 / #10990:

The Russian ru.yml should be a drop-in addition to the framework once it's approved. Happy to rebase onto whichever PR lands first.

Dmitry

@ErshovDmitry
Copy link
Copy Markdown
Author

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label May 20, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 20, 2026

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

@ErshovDmitry
Copy link
Copy Markdown
Author

@oss-maintainers This PR now follows the same YAML-based approach as #10630 / #10990 by @ZacharyZcR — matching crates/i18n/ API, resources/bundled/locales/{en,ru}.yml, t!() / t_required!() macros, and WARP_LANG env var detection.

It's blocked by the issue-state enforcement check (needs a ready-to-implement issue). Could a maintainer please add ready-to-implement to #1194, or let me know if I should create a separate tracking issue?

Russian ru.yml (247 keys) is ready to drop into whichever i18n PR lands first. Happy to rebase.

Cheers,
Dmitry

@ZacharyZcR
Copy link
Copy Markdown

Hello! Maybe we can collaborate on a project! You can reach out to the Warp Slack channel.

@ErshovDmitry
Copy link
Copy Markdown
Author

@ZacharyZcR Thanks for reaching out! Happy to collaborate. We've matched your YAML approach — crates/i18n/, t!()/t_required!() macros, resources/bundled/locales/{en,ru}.yml (1080 keys, full Russian translation). Our ru.yml should be a drop-in addition.

We have some merge conflicts with master to fix first (3 files). Will resolve those and update the PR.

How can we help with #10630? Happy to contribute Russian translations in your format, or collaborate however makes sense.

Cheers,
Dmitry

@ZacharyZcR
Copy link
Copy Markdown

@ZacharyZcR Thanks for reaching out! Happy to collaborate. We've matched your YAML approach — crates/i18n/, t!()/t_required!() macros, resources/bundled/locales/{en,ru}.yml (1080 keys, full Russian translation). Our ru.yml should be a drop-in addition.

We have some merge conflicts with master to fix first (3 files). Will resolve those and update the PR.

How can we help with #10630? Happy to contribute Russian translations in your format, or collaborate however makes sense.

Cheers, Dmitry

Thank you very much! Perhaps we could reach out to Warp’s Slack channel together and let them decide how to proceed with development. Also, your PR needs to be linked to an issue with a specific tag; you can take a look at my PR and issue.

@ErshovDmitry
Copy link
Copy Markdown
Author

@ZacharyZcR Just to clarify — I don't speak English myself, I'm communicating through DeepSeek AI (which also built this PR). So I'm a bit nervous about posting in the Slack channel directly — I don't want to say something wrong.

If you could mention me (@ErshovDmitry) in the #oss-contributors Slack channel, I'd be happy to help! My AI assistant can handle the technical discussion, just need someone to bridge the intro.

Also — merge conflicts with master are now resolved. PR is clean: 0 warnings, 1191 i18n calls, 59 files covered.

Cheers,
Dmitry (via DeepSeek)

@ErshovDmitry
Copy link
Copy Markdown
Author

Ah, just realized — Slack doesn't work in Russia, and VPN isn't straightforward either. So I won't be able to join the Slack channel, sorry about that.

But I'm still here on GitHub and happy to collaborate! We can discuss anything here or on the PRs directly.

Dmitry (via DeepSeek)

@ZacharyZcR
Copy link
Copy Markdown

Ah, just realized — Slack doesn't work in Russia, and VPN isn't straightforward either. So I won't be able to join the Slack channel, sorry about that.

But I'm still here on GitHub and happy to collaborate! We can discuss anything here or on the PRs directly.

Dmitry (via DeepSeek)

Oh, no problem—I’m not an English major either.

@ErshovDmitry
Copy link
Copy Markdown
Author

Status update — synced with upstream master, squashed to 1 commit.

cargo check -p warp     → 0 errors, 0 warnings
cargo test -p i18n      → 11/11 pass
cargo test -p warp -- menu_label → 4/4 pass

@ZacharyZcR — our ru.yml is ready to drop into your framework whenever it lands. Happy to help!

@oss-maintainers — this PR is merge-ready following the same YAML approach as #10630. Would appreciate a ready-to-implement label or guidance on next steps.

- Sync with origin/master (28 commits behind)
- Restore i18n crate, menu_label(), init_locale()
- Re-apply menu_label() to ai_page, features_page, agent_management,
  workspace/view, workspace/mod, local_code_editor
- Convert 11 const strings to fn() -> &'static str for runtime i18n
- Add 4 menu_label tests in app/src/lib.rs
- 0 errors, 0 warnings (cargo check -p warp)
- 11/11 tests pass (cargo test -p i18n)
@ErshovDmitry
Copy link
Copy Markdown
Author

Status update — synced with upstream master (June 1, 2026)

cargo check -p warp     → 0 errors, 0 warnings
cargo test -p i18n      → 11/11 pass
cargo test -p warp -- menu_label → 4/4 pass

Changes since last update:

  • Synced 28 upstream commits from master
  • 487 menu_label() calls across 5 files (ai_page, agent_management, workspace/view, workspace/mod, local_code_editor)
  • 11 const→fn conversions for runtime i18n
  • ~2000 keys in en.yml + ru.yml (100% Russian coverage)
  • 0 merge conflicts with current master

@oss-maintainers — PR is merge-ready. Would appreciate ready-to-implement on #1194 or guidance on next steps.

cc @ZacharyZcR

@ErshovDmitry
Copy link
Copy Markdown
Author

Status update — synced with upstream master (June 3, 2026)

cargo check -p warp     → 0 errors, 0 warnings
cargo test -p i18n      → 11/11 pass
BEHIND origin/master    → 0

Changes since last update:

  • Synced 3 waves of upstream commits (~186 total)
  • i18n crate integrated into workspace (Cargo.toml + app/Cargo.toml)
  • menu_label() calls preserved across all merges
  • No new UI strings to wrap in this sync

@oss-maintainers — PR is merge-ready following the same YAML approach as #10630. Would appreciate ready-to-implement on #1194.

cc @ZacharyZcR

@ErshovDmitry
Copy link
Copy Markdown
Author

Status update — synced with upstream master (June 6, 2026)

cargo check -p warp     → 0 errors, 0 warnings
cargo test -p i18n      → 11/11 pass
BEHIND origin/master    → 0

Changes since last update:

  • Synced 74 upstream commits (June 4–6)
  • Setup autonomous agent with 6-hour cron sync
  • Updated AGENTS.md with process gates + startup sequence
  • menu_label() calls preserved across all merges (481 calls)
  • en.yml + ru.yml: ~2000 keys, 100% Russian coverage

@oss-maintainers — PR is merge-ready following the same YAML approach as #10630. Would appreciate ready-to-implement on #1194.

cc @ZacharyZcR

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.

Application language switch / i18n Support multiple languages and localizations

2 participants