Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 0 additions & 63 deletions .github/workflows/crowdin-download.yml

This file was deleted.

37 changes: 0 additions & 37 deletions .github/workflows/crowdin-upload.yml

This file was deleted.

12 changes: 5 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,19 +188,17 @@ To add a new token to the app, the process is pretty simple. All you’ll need t

## Translations

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/).
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.

To upload strings:
After adding or changing strings in the app, regenerate the catalogs:

```bash
crowdin upload sources
pnpm i18n
```

To download strings:
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.

```bash
crowdin download
```
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.

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).

Expand Down
125 changes: 0 additions & 125 deletions crowdin.yml

This file was deleted.

5 changes: 0 additions & 5 deletions src/locales/de/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: de\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
msgid "If you DO NOT unstake within {0} of unstake window, you will need to activate cooldown process again."
Expand Down
5 changes: 0 additions & 5 deletions src/locales/el/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: el\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
#: src/modules/umbrella/StakeCooldownModalContent.tsx
Expand Down
5 changes: 0 additions & 5 deletions src/locales/es/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
#: src/modules/umbrella/StakeCooldownModalContent.tsx
Expand Down
5 changes: 0 additions & 5 deletions src/locales/fr/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
#: src/modules/umbrella/StakeCooldownModalContent.tsx
Expand Down
5 changes: 0 additions & 5 deletions src/locales/ru/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: Russian\n"
"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"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: ru\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

#: src/components/transactions/StakeCooldown/StakeCooldownModalContent.tsx
msgid "If you DO NOT unstake within {0} of unstake window, you will need to activate cooldown process again."
Expand Down
5 changes: 0 additions & 5 deletions src/locales/zh/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: aave-interface\n"
"X-Crowdin-Project-ID: 502668\n"
"X-Crowdin-Language: zh-CN\n"
"X-Crowdin-File: /src/locales/en/messages.po\n"
"X-Crowdin-File-ID: 46\n"

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