L'objectif de ce projet est de créer un traducteur en C qui permet à un utilisateur de saisir un mot dans une langue nationale et de recevoir sa traduction en langue Yemba. Le programme s'appuie sur une table de hachage pour stocker et rechercher les mots du dictionnaire, et les données sont chargées depuis un fichier texte externe
# Traducteur National-Yemba en C
## Objectif du projet
Ce projet est un traducteur simple de mots français vers la langue yembà, une langue originaire des peuples bamilékés de l'Ouest Cameroun (le yemba est encore appelé appelée *atsang-bangwa*, *bafou*, *bamileke-yemba*, *dschang* ou *tchang* pour plus d'info *cliquez ici*). L'objectif est de créer un programme en langage C qui permet à un utilisateur de traduire des mots en utilisant une table de hachage comme structure de données principale.
## Approche méthodologique
Pour aborder ce projet, nous avons suivi les étapes suivantes :
### Étape 1 : Analyse des exigences
Identifier les fonctionnalités essentielles :
- **traduction**,
- **recherche dans un dictionnaire**,
- **gestion des données avec une table de hachage**.
- Choisir une structure de données efficace pour optimiser les performances (table de hachage).
### Étape 2 : Conception modulaire
Diviser le programme en modules :
hash_table : Gestion de la table de hachage.
file_handler : Chargement des données depuis le fichier texte.
app_function: Gestion des fonctions du programme.
main : Interaction avec l'utilisateur.
makefile: Simplifier la compilation.
### Étape 3 : Développement
Implémentation progressive des modules avec des tests à chaque étape.
Documentation du code avec des commentaires et des noms de variables intuitives
### Étape 4 : Test et validation
Test des cas suivants :
Mot présent dans le dictionnaire.
Mot absent du dictionnaire.
Gestion des collisions dans la table de hachage.
## Organisation des fichiers
**main.c**: Point d'entrée du programme.
**hash_table.c/h**: Gestion de la table de hachage (création, insertion, recherche, libération).
**app_function.c/h**: Gestion des fonctions de l'appli pour plus de modulariter (affichage, liberation de memoire, insertion, recherche...).
**file_handler.c/h**: Gestion du fichier words.txt pour charger les mots et leurs traductions.
**words.txt**: Fichier contenant les mots et leurs tradu …