Typed Locale

Déclaration de Locale et de Type

Temps de lecture estimé: 2 minutes

Lors de l'utilisation de typed-locale, il est important de définir correctement vos objets de traduction et leurs types correspondants. Cela garantit la sécurité des types dans toute votre application et offre une excellente autocomplétion dans votre IDE.

Création d'objets de traduction

Tout d'abord, créons un objet de traduction pour la langue par défaut (généralement l'anglais) :

import {plural} from 'typed-locale'; export const en = { hello: 'Hello', helloName: 'Hello, {{name}}', youHaveMessages: plural({ none: 'You have no messages', one: 'You have 1 message', other: 'You have {{count}} messages', }), } as const;

Notez l'utilisation de as const à la fin de l'objet. C'est crucial pour que TypeScript infère les types les plus spécifiques possibles.

Définition des types

Après avoir créé votre objet de traduction, vous devez définir son type en utilisant le type utilitaire InferTranslation fourni par typed-locale :

import {InferTranslation} from 'typed-locale'; type Translation = InferTranslation<typeof en>;

Ce type Translation représentera maintenant la structure de vos traductions, y compris tous les objets imbriqués et les règles de pluralisation.

Création d'objets pour d'autres langues

Pour les autres langues, vous pouvez créer des objets conformes au type Translation :

export const fr: Translation = { hello: 'Bonjour', helloName: 'Bonjour, {{name}}', youHaveMessages: plural({ none: 'Vous n'avez aucun message', one: 'Vous avez 1 message', other: 'Vous avez {{count}} messages', }), };

Si vous travaillez sur une nouvelle langue et que toutes les traductions ne sont pas encore prêtes, vous pouvez utiliser InferPartialTranslation :

import {InferPartialTranslation} from 'typed-locale'; export const de: InferPartialTranslation<Translation> = { hello: 'Hallo', helloName: 'Hallo, {{name}}', // youHaveMessages peut être ajouté plus tard };

Cela vous permet d'ajouter progressivement des traductions sans que TypeScript ne se plaigne des clés manquantes.

Création d'un dictionnaire

Une fois que vous avez vos objets de traduction, vous pouvez créer un dictionnaire :

const dictionary = {en, fr, de};

Ce dictionnaire peut ensuite être utilisé pour créer un traducteur, comme indiqué dans la section "Créer un traducteur" de la documentation.

En suivant ces étapes, vous vous assurez que vos traductions sont type-safe et que vous obtiendrez un support IDE approprié lorsque vous les utiliserez dans votre application.