docs: update CONTRIBUTING.md and README.md (#35)

Reviewed-on: https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls/35
This commit is contained in:
Anri 2022-07-25 00:51:01 +02:00
parent 812c40bb88
commit e6659a4b41
2 changed files with 95 additions and 8 deletions

View file

@ -11,8 +11,12 @@ une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls).
## Sommaire <!-- omit in toc --> ## Sommaire <!-- omit in toc -->
- [Recevoir de l'aide](#recevoir-de-laide) - [Recevoir de l'aide](#recevoir-de-laide)
- [Langues](#langues) - [Langues](#langues)
- [Ajouter une langue](#ajouter-une-langue) - [Ajouter une langue](#ajouter-une-langue)
- [Mettre à jour une langue](#mettre-à-jour-une-langue) - [Mettre à jour une langue](#mettre-à-jour-une-langue)
- [Projet](#projet)
- [Ajouter une commande](#ajouter-une-commande)
- [Ajouter un évènement](#ajouter-un-évènement)
- [Modifier du code](#modifier-du-code)
- [Soumettre ses modifications](#soumettre-ses-modifications) - [Soumettre ses modifications](#soumettre-ses-modifications)
- [Gestion du dépôt](#gestion-du-dépôt) - [Gestion du dépôt](#gestion-du-dépôt)
@ -21,12 +25,12 @@ Si tu as besoin d'aide, tu peux poser ta question sur
le [Discord](https://discord.gg/Z5ePxH4). le [Discord](https://discord.gg/Z5ePxH4).
## Langues ## Langues
La langue par défaut est définie dans [`src/utils/client.ts`](src/utils/client.ts) La langue par défaut est définie dans
dans `client.config.default_lang`. [`src/utils/client.ts`](src/utils/client.ts) dans `client.config.default_lang`.
La langue par défaut fait office de solution de secours dans le cas où une traduction La langue par défaut fait office de solution de secours dans le cas où une
est incomplète. On part donc du postulat que la langue par défaut contient toujours traduction est incomplète. On part donc du postulat que la langue par défaut
toutes les chaînes de caractère dont le bot a besoin. contient toujours toutes les chaînes de caractère dont le bot a besoin.
### Ajouter une langue ### Ajouter une langue
@ -48,6 +52,89 @@ doit être nommé `langue.json` avec `langue` suivant
> Pensez à vérifier si de nouvelles valeurs n'ont pas été ajouté dans > Pensez à vérifier si de nouvelles valeurs n'ont pas été ajouté dans
le fichier langue par défaut, [cf. au dessus](#langues). le fichier langue par défaut, [cf. au dessus](#langues).
## Projet
Le code se trouve dans le dosier [src/](./src/). Dans ce dossier il y a :
- [commands/](./src/commands/) qui contient toutes les commandes, rangés par
catégories
- [events/](./src/events/) qui contient tous les évènements, rangés par
catégories
- [locales/](./src/locales/) qui contient tous les fichiers de langue
- [modules/](./src/modules/) qui contient les extensions utilisé,
par exemple, pour utiliser la fonction `capitalize()` d'un string, il faut
importer le fichier `string.ts` qui se trouve dans le dossier
- [utils/](./src/utils/) qui contient toutes les fonctions utilitaires, rangés
par fichiers
Les dossiers [commands/](./src/commands/) et [events/](./src/events/)
contiennent chaquin un fichier `loader.js` qui charge respectivement
les commandes et les évènements dans le bot.
## Ajouter une commande
Pour ajouter une commande au bot, créez un fichier `nom-de-la-commande.ts` dans
un sous dossier de [`src/commands/`](./src/commands/). Vous pouvez créer une
nouvelle catégorie si votre commande n'entre dans aucune qui existe déjà.
Le contenu du fichier doit commencer comme suit :
```typescript
import { SlashCommandBuilder } from '@discordjs/builders';
import { Client, CommandInteraction } from 'discord.js';
import { getLocale, getLocalizations } from '../../utils/locales';
import { getFilename } from '../../utils/misc';
export default {
data: (client: Client) => {
const filename = getFilename(__filename);
return new SlashCommandBuilder()
.setName(
filename.toLowerCase())
.setDescription(client.locales.get(client.config.default_lang)
?.get(`c_${filename}_desc`) ?? '')
.setNameLocalizations(
getLocalizations(client, `c_${filename}_name`, true))
.setDescriptionLocalizations(
getLocalizations(client, `c_${filename}_desc`)
);
},
interaction: async (interaction: CommandInteraction, client: Client) => {
const loc = getLocale(client, interaction.locale);
/* Votre code ici */
},
};
```
Ce template vous permet de commencé rapidement votre commande car il contient
déjà tout ce qu'il faut pour le support des langues. Pensez bien à ne pas écrire
directement vos chaînes de caractères ici mais bien dans
les [fichiers de langues](./src/locales/), c'est à ça que la variable
`loc` sert.
Vous devez aussi ajouter **obligatoirement** :
- `"c_COMMANDE_name": "NOM"` au fichier de langue, avec `COMMANDE` le nom de
la commande et `NOM` le nom de votre commande.
- `"c_COMMANDE_desc": "DESCRIPTION"` au fichier de langue, avec `COMMANDE`
le nom de la commande et `DESCRIPTION` la description de votre commande.
## Ajouter un évènement
Pour ajouter le support d'un évènement au bot, créez un fichier
`nom-evenement.ts` dans un sous dossier de [`src/events/`](./src/events/). Vous
pouvez créer une nouvelle catégorie si votre commande n'entre dans aucune qui
existe déjà.
Vous pouvez préciser que l'évènement ne sera déclenché qu'une seule fois avec
```typescript
export const once = true;
```
De préférence, merci de mettre un lien en commentaire vers la documentation
de discord.js de l'évènement
([exemple ici pour l'évènement `ready`](./src/events/client/ready.ts#L3))
## Modifier du code
Quand vous modifiez quelque chose, pensez à mettre-à-jour les langues. Si vous
ne savez pas traduire dans une langue, ne vous forcez pas, supprimer simplement
la traduction.
## Soumettre ses modifications ## Soumettre ses modifications
1. Lorsque vous vous sentez confiant dans vos modifications, ouvrez 1. Lorsque vous vous sentez confiant dans vos modifications, ouvrez
une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls) une [Pull Request](https://git.kennel.ml/ConfrerieDuKassoulait/Botanique/pulls)

View file

@ -1,4 +1,4 @@
# 🌱 Botanique 🌱 # 🌱 Botanique
[**Ajoute le bot à ton serveur**](https://discord.com/api/oauth2/authorize?client_id=965598852407230494&permissions=8&scope=bot%20applications.commands) [**Ajoute le bot à ton serveur**](https://discord.com/api/oauth2/authorize?client_id=965598852407230494&permissions=8&scope=bot%20applications.commands)