Skip to content

Commit e9b2d54

Browse files
sammdecclaude
andcommitted
chore: remove crowdin i18n integration
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>
1 parent 7e5bb41 commit e9b2d54

10 files changed

Lines changed: 5 additions & 262 deletions

File tree

.github/workflows/crowdin-download.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.

.github/workflows/crowdin-upload.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,19 +188,17 @@ To add a new token to the app, the process is pretty simple. All you’ll need t
188188

189189
## Translations
190190

191-
Aave uses [Crowdin](https://crowdin.com/) for translation management and internationalization. We only update strings within the app. Everything else is downloaded from Crowdin. For more information, such as installing their CLI tool, read their [documentation](https://developer.crowdin.com/api/v2/).
191+
Aave uses [Lingui](https://lingui.dev/) for internationalization. Translation catalogs live in `src/locales/<locale>/messages.po` and are maintained directly in this repository — `src/locales/en/messages.po` is the source catalog, generated from the `Trans` macros and `t` calls in the code.
192192

193-
To upload strings:
193+
After adding or changing strings in the app, regenerate the catalogs:
194194

195195
```bash
196-
crowdin upload sources
196+
pnpm i18n
197197
```
198198

199-
To download strings:
199+
This runs `i18n:extract` (updates `messages.po` for every configured locale with the strings found in the source) followed by `i18n:compile` (builds the `messages.js` files the app loads at runtime). Commit the resulting `.po` changes along with your code.
200200

201-
```bash
202-
crowdin download
203-
```
201+
Translations for non-English locales are filled in by hand in the corresponding `messages.po` file. Any string left with an empty `msgstr` falls back to English.
204202

205203
If you would like to add support for a new language across the app, please [open up an issue](https://github.com/aave/interface/issues/new/choose) and add the `i18n` label to it. This helps us categorize, and it will also help to gauge public interest for the new language. If the community decides to go forward with your preferred language, you may open up a pull request. Please follow the template of [this PR](https://github.com/aave/interface/pull/447#issue-1165545965).
206204

crowdin.yml

Lines changed: 0 additions & 125 deletions
This file was deleted.

src/locales/de/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: German\n"
1414
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: de\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
msgid "If you DO NOT unstake within {0} of unstake window, you will need to activate cooldown process again."

src/locales/el/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: Greek\n"
1414
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: el\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
#: src/modules/umbrella/StakeCooldownModalContent.tsx

src/locales/es/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: Spanish\n"
1414
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: es-ES\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
#: src/modules/umbrella/StakeCooldownModalContent.tsx

src/locales/fr/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: French\n"
1414
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: fr\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
#: src/modules/umbrella/StakeCooldownModalContent.tsx

src/locales/ru/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: Russian\n"
1414
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: ru\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
msgid "If you DO NOT unstake within {0} of unstake window, you will need to activate cooldown process again."

src/locales/zh/messages.po

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ msgstr ""
1212
"Last-Translator: \n"
1313
"Language-Team: Chinese Simplified\n"
1414
"Plural-Forms: nplurals=1; plural=0;\n"
15-
"X-Crowdin-Project: aave-interface\n"
16-
"X-Crowdin-Project-ID: 502668\n"
17-
"X-Crowdin-Language: zh-CN\n"
18-
"X-Crowdin-File: /src/locales/en/messages.po\n"
19-
"X-Crowdin-File-ID: 46\n"
2015

2116
#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
2217
msgid "If you DO NOT unstake within {0} of unstake window, you will need to activate cooldown process again."

0 commit comments

Comments
 (0)