i18n: hardcoded English UI strings can't be translated
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 40/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- react, tailwindcss, typescript
- Domaine
- documentation, frontend, localization
Piste de recherche
Start with the LanguageSwitcher, PhoneInput and NavBar components, finding the hardcoded strings listed in the issue table. Decide how the proposed optional labels prop and its typed keys should look, and how Intl.DisplayNames fits PhoneInput country names; the issue leaves both open. Done means exported *Labels types with TSDoc, a docs section with a translated example, and tests showing custom labels render.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
i18n: hardcoded English UI strings can't be translated
For a localization library, the components ship non-translatable English text:
| Component | Strings |
|---|---|
LanguageSwitcher |
Search..., Search languages, No results, Select language, Current language: … |
PhoneInput |
Select country, Search countries..., Search countries, country names (English only) |
NavBar |
Select language, Current language: …, Toggle menu, GitHub |
Proposal
Add an optional labels prop per component with typed keys and English defaults, e.g.:
<LanguageSwitcher
locales={locales}
labels={{
search: "Rechercher…",
noResults: "Aucun résultat",
listbox: "Choisir la langue",
current: (name) => `Langue actuelle : ${name}`,
}}
/>
For PhoneInput country names, consider Intl.DisplayNames with a displayLocale prop.
Acceptance
- Exported
*Labelstypes, TSDoc on each key - Docs page section showing a translated example
- Tests asserting custom labels render
- Langage dominant
- TypeScript
- Étoiles
- 39
- Forks
- 16
- Merge moyen
- 18 h 14 min
- PR mergées (30 j)
- 35
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de babelize/babelize-elements
-
accessibility help wanted
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
babelize/babelize-elements#94 ·
Les mainteneurs répondent en général sous 1 jour
-
component help wanted
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
babelize/babelize-elements#93 ·
Les mainteneurs répondent en général sous 1 jour
-
Component: Relative TimeOuvertecomponent date-time good first issue
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
babelize/babelize-elements#92 ·
Les mainteneurs répondent en général sous 1 jour
-
Component: Timezone PickerOuvertecomponent date-time good first issue
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
babelize/babelize-elements#91 ·
Les mainteneurs répondent en général sous 1 jour
-
component good first issue language-switcher
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
babelize/babelize-elements#90 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de babelize/babelize-elements
Issues similaires
-
cloudflare-cache-binding: `unstorage://` keys are rejected by the Cache API, cache never storesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 2 jours
-
reproduced
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
anomalyco/opencode#62052 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
strapi/design-system#2084 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour