language() déclare une langue du bot, depuis n’importe quel fichier de src/. Elle prend un objet, LanguageConfig, dont locale est la langue.
src/messages/en-US.ts
Comment écrire les fichiers et quelle langue parle
t est dans le
guide. Cette page liste ce qui existe.language()
src/ ; locale dit quelle langue : chaque fonction reçoit alors t, qui donne un texte dans la langue de qui lira le message, avec ses {paramètres} remplis. Une langue peut être déclarée à plusieurs endroits : les textes d’une fonctionnalité à côté d’elle, avec le même locale, s’ajoutent aux autres.
LanguageConfig
Ce qu’un fichier donne àlanguage().
Si c’est la langue utilisée quand celle d’une personne ou d’un serveur n’est
pas déclarée. Exactement une langue le dit ; avec une seule langue, cela va
sans dire. Quand une autre langue le dit déjà, c’est refusé : une seule peut
être celle par défaut. Une fois les fichiers exécutés (
chapterjs dev,
chapterjs build), une deuxième langue qui le dit est une erreur de type sur
le default: true des deux (voir ProjectLanguageDefaults).Ce que le bot répond de lui-même dans cette langue, quand il ne peut pas lancer
ce qui a été demandé : les phrases de
FrameworkTexts, celles que ce fichier veut
traduire. Les autres restent en anglais.MessageTexts
MessageText
{paramètres}, ou un texte à plusieurs formes, choisies par count.
PluralText
Un texte à plusieurs formes, une par quantité :t('members', { count }) choisit la forme de la langue pour ce nombre (one pour 1 en anglais, other pour le reste ; le français, le russe ou l’arabe en ont d’autres). other est toujours là ; les formes qu’une langue n’utilise pas sont laissées de côté. {count} dans une forme est le nombre lui-même.
Pour 0, dans toutes les langues ; et là où une langue a une forme à elle pour d’autres nombres aussi (l’arabe, le letton).
FrameworkTexts
Ce que le bot répond de lui-même, quand il ne peut pas lancer ce qui a été demandé : là où une commande ou un composant ne peut pas être utilisé, un bouton d’un vieux message, unrun qui a échoué… Chaque phrase a une version anglaise ; un fichier de langue donne la sienne dans framework, celles qu’il veut. {what} est le mot pour ce qui a été utilisé : command, button, menu ou form, donnés ici aussi.
CommandsTranslations
'ping', 'mod ban'), son nom, sa description, ses options et ses choix dans cette langue, comme les prennent les locales d’un fichier de commande (CommandTranslation). L’éditeur propose les commandes du projet qui n’ont pas de description dans leur fichier (une qui en a une possède ses textes, locales compris) ; leurs options et choix sont vérifiés au chargement des fichiers.
ProjectCommands
Les commandes du projet, telles que les voit l’éditeur : le nom de chaque commande,true quand les fichiers de langue la décrivent, false quand la commande a sa propre description. Rempli par le dossier .chapterjs/ du projet, pour que les commands d’un fichier de langue proposent celles qu’il peut traduire. Les options et les choix sont vérifiés au chargement des fichiers.
ProjectLanguageDefaults
Les langues qui disentdefault: true quand plus d’une le dit, telles que les voit l’éditeur : une clé par langue. Rempli par le dossier .chapterjs/ du projet, pour que chacune soit soulignée ; vide quand au plus une langue le dit.
LanguageDeclaration
Ce que renvoielanguage() : une déclaration que le framework trouve dans les exports d’un fichier.
Translator
t, tel que le reçoivent les fonctions : donne un texte des fichiers de langue dans la langue de qui lira le message, avec ses paramètres remplis. M est l’ensemble des textes de la langue par défaut, qui type les clés et les paramètres : un texte qu’une autre langue n’a pas est pris dans celle-ci.
t()
in()
t.in('fr', 'welcome', { name }), ou t.in(owner.locale, 'pong'). La langue de la personne qui le lira, quand ce n’est pas celle que parle t.
t pour une autre langue, pour écrire plusieurs textes : t.in('fr')('welcome', { name }).
ProjectLocales
Les langues du projet, telles que les voit l’éditeur : une clé par langue déclarée. Rempli par le dossier.chapterjs/ du projet, vide quand le projet n’a aucune langue.
ProjectLocale
'en-US', 'fr'…
LocaleGiven
t.in() : l’éditeur propose celles du projet, et toute langue de Discord est acceptée (celle d’une personne, d’un serveur), t prenant alors la plus proche déclarée. Un mot qui n’est pas une langue de Discord est souligné, avec celles du projet.
TranslationContext
TranslationContext est ce que reçoit chaque fonction quand le projet a une langue : t. Rien sinon.
ProjectMessages
Les textes du projet, tels que les voit l’éditeur : les clés qu’acceptet et les paramètres de chacun, depuis chaque déclaration de chaque langue, la langue par défaut d’abord. Rempli par le dossier .chapterjs/ du projet quand il a une langue, vide sinon.
MergedMessages
t est typé quand un projet a plusieurs langues, celle par défaut d’abord, puis les autres (un texte que la langue par défaut n’a pas est pris dans la langue qui l’a).
MessagesOf
t est typé, pour un fichier de langue : ses textes.
Les textes d’un composant
DynamicText
t et des données du composant.
TextContext
Ce à partir de quoi un texte d’un composant est calculé quand c’est une fonction :t dans la langue de qui lira le message, et les données que transporte le composant.
Les paramètres
Placeholders
'Hello {name}' a 'name'. Écrit entre accolades, un paramètre est un nom fait de lettres, de chiffres et de _ ; {{ et }} sont des accolades écrites telles quelles. Un pluriel a count, et les paramètres de ses formes.
ParamsOf
t pour un texte : une valeur par paramètre, ou rien quand le texte n’en a pas. Un nombre est écrit comme la langue écrit les nombres (1,234 en anglais, 1 234 en français) : donnez un texte pour le garder tel quel. Le count d’un pluriel est un nombre.
ParamsArgs
t après la clé : les paramètres, seulement quand il y en a.
Documentation de Discord