From 9b192f4282a72d256be25bd4e3d6d2ea880d66c5 Mon Sep 17 00:00:00 2001 From: Debucquoy Anthony Date: Fri, 1 Mar 2024 17:44:56 +0100 Subject: [PATCH 1/2] idea of internationalisation in JDB --- Documents/JournalDeBord/i18n.md | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Documents/JournalDeBord/i18n.md diff --git a/Documents/JournalDeBord/i18n.md b/Documents/JournalDeBord/i18n.md new file mode 100644 index 0000000..02f0967 --- /dev/null +++ b/Documents/JournalDeBord/i18n.md @@ -0,0 +1,45 @@ +# Internationalization (i18n) + +L'un des critère du projet est de donner la possibilité aux utilisateur de choisir entre différentes +langues. Minimum 2 sont a implémenter, le français et l'anglais. + +## Intention + +La gestion des langue au niveau backend peut sembler être une bonne idée aux premier abord car celà +permeterais de laisser la possibilité a différents frontend utilisant la meme api de traduction. +cependant, peu d'éléments venant de la base de données sont traduisible. Nous alons alors opter pour +une internationalization au niveau du frontend. Dans le cas ou un éléments venant du frontend +devrait être traduit, Il suffirait alors de le faire traduire par le frontend directement + +## Implémentation + +Le frontend va se voir équiper d'une collection de fonctions permettant la traduction. notament +`i18n(key: str) -> str` qui prendrait en entrée une "clé" identifiant la traduction à aller +chercher. Cette clé serait sous la forme : `.`. La fonctions retournera alors la +traduction du texte dans la langue choisie par l'utilisateur. cette langue sera stockée dans les +cookies pour qu'un utilisateur non enregistré puisse naviguer sur le site sans problèmes. Si +l'utilisateur est enregistré elle pourra également être ajouter à son profil pour que la langue soit +mise à jours lors de son prochain passage. + +### Base de données de traduction + +Les traductions seront rasembler dans fichier txt. Une langue sera présente par fichier et une +traduction par ligne. (Ce format semble être utilisé par certaines librairies de spring. Malgré le +fait que nous ne l'utiliserons finalement pas, ce format semble efficace est facile à utilsier). + +Chaque ligne commence par la clé. suivi immédiatement d'un "=". le contenu après ce égale est la +traduction jusqu'au égale. + +## Considérations + +- Il existe certainemnt des librairies prète à l'emploi de traduction mais celà semble être + relativement simple à implémenter manuellement. + +- Dans l'éventualité où nous voudrions implémenter des éléments au milieu d'une traduction (example: + Veuillez vérifier votre addresse mail: `tonitch@herisson.ovh` puis revenir sur le site!). Dans ce + cas nous pouvons utiliser le regex et simplement renseigner ces éléments par \1, \2, \3, ... puis + créer une fonction qui s'occuperais de remplacer ces éléments dans le texte avant de le mettre en + avant. + +- Il ne devrait pas etre trop compliqué d'écrire un script qui vérifie que toutes les traductions + sont présente dans tout les fichiers en vérifiant que toutes les clés d'un fichiers sont présente. -- 2.48.1 From 18252c819eac73cb2a7dbaf5ce584b29c970c492 Mon Sep 17 00:00:00 2001 From: Debucquoy Anthony Date: Sat, 2 Mar 2024 20:06:43 +0100 Subject: [PATCH 2/2] typo maxed --- Documents/JournalDeBord/i18n.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documents/JournalDeBord/i18n.md b/Documents/JournalDeBord/i18n.md index 02f0967..1c8441b 100644 --- a/Documents/JournalDeBord/i18n.md +++ b/Documents/JournalDeBord/i18n.md @@ -23,7 +23,7 @@ mise à jours lors de son prochain passage. ### Base de données de traduction -Les traductions seront rasembler dans fichier txt. Une langue sera présente par fichier et une +Les traductions seront rassembler dans fichier txt. Une langue sera présente par fichier et une traduction par ligne. (Ce format semble être utilisé par certaines librairies de spring. Malgré le fait que nous ne l'utiliserons finalement pas, ce format semble efficace est facile à utilsier). -- 2.48.1