Skip to content

chore: remove crowdin i18n integration - #3088

Open
sammdec wants to merge 1 commit into
mainfrom
chore/remove-crowdin
Open

chore: remove crowdin i18n integration#3088
sammdec wants to merge 1 commit into
mainfrom
chore/remove-crowdin

Conversation

@sammdec

@sammdec sammdec commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Removes the Crowdin integration. The sync has been broken since May 2025 — the last successful sync commit was 2025-05-30, and the scheduled download workflow has failed on every run since with fatal: could not read Username for 'https://github.com': terminal prompts disabled (exit 128) inside the Crowdin action's git step. That's a job firing every 6 hours for ~14 months and never succeeding, so no translations have actually flowed in during that time.

Rather than fix the credentials, this drops the integration and keeps the catalogs maintained in-repo via Lingui.

Changes

  • Delete crowdin.yml, .github/workflows/crowdin-download.yml, .github/workflows/crowdin-upload.yml
  • Rewrite the Translations section of CONTRIBUTING.md to document the Lingui-only flow (pnpm i18n = extract + compile) instead of the crowdin upload sources / crowdin download commands
  • Strip the stale X-Crowdin-* header metadata (project ID, file IDs) from the six non-English .po catalogs — header lines only, no translation content touched

Impact

No runtime change. Translations still ship from the committed .po files and are compiled by Lingui at build time exactly as before. The language switcher and SUPPORTED_LANGUAGES (en, es, fr, el) are untouched.

i18n-check.yml had no Crowdin coupling — it just runs pnpm i18n and fails if the tree is dirty — and is now the sole i18n CI guard.

Verification

Ran pnpm i18n locally (the exact command i18n-check.yml runs). It compiles cleanly, does not re-add the stripped X-Crowdin-* headers, and leaves the tree with no changes beyond this diff — so that check will pass.

Follow-ups (deliberately not in this PR)

  • src/locales/ still contains de, ru, and zh catalogs that aren't in lingui.config.js or SUPPORTED_LANGUAGES. They're dead weight, but pruning them is a separate call from removing Crowdin.
  • The CROWDIN_TOKEN repo secret is now unreferenced and can be revoked in GitHub settings.

🤖 Generated with Claude Code

The Crowdin sync has been broken since May 2025 — the scheduled
download workflow has failed on every run since (git auth failure,
exit 128), so no translations have flowed in for ~14 months.

Remove the integration and keep the catalogs in-repo:

- delete crowdin.yml and the download/upload workflows
- document the Lingui-only flow in CONTRIBUTING.md
- strip stale X-Crowdin-* headers from the non-English catalogs

No runtime change: translations still ship from the committed .po
files. i18n-check.yml was already Crowdin-independent and is now the
sole i18n CI guard.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@odin-by-borg

odin-by-borg Bot commented Aug 10, 2026

Copy link
Copy Markdown

Mjolnir Security Review

VerdictCLEAN · 0 findings
Commite9b2d54 · 8s

No security vulnerabilities identified. This PR removes Crowdin integration by deleting CI workflow files, the Crowdin configuration, and Crowdin-specific metadata headers from locale .po files, and updates CONTRIBUTING.md documentation accordingly. All changes are limited to CI configuration, documentation, and translation metadata — no application code, authentication logic, or security-sensitive functionality is affected.

View in Odin


10 PRs reviewed

@vercel

vercel Bot commented Aug 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interface Ready Ready Preview Aug 10, 2026 2:20pm

Request Review

@github-actions

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

📦 Next.js Bundle Analysis for aave-ui

This analysis was generated by the Next.js Bundle Analysis action. 🤖

⚠️ Global Bundle Size Increased

Page Size (compressed)
global 1.32 MB (🟡 +90 B)
Details

The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!

Six Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load
/ 96.01 KB (🟡 +2 B) 1.42 MB
/dashboard 85.59 KB (🟡 +2 B) 1.41 MB
/markets 54.89 KB (🟡 +2 B) 1.38 MB
/safety-module 56.45 KB (🟡 +2 B) 1.38 MB
/sgho 92.99 KB (🟡 +2 B) 1.41 MB
/v3-migration 52.64 KB (🟡 +2 B) 1.37 MB
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this.

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.

1 participant