Skip to content

Commit

Permalink
feat( #80 ): app translated to 🇫🇷 French
Browse files Browse the repository at this point in the history
  • Loading branch information
DogukanUrker committed Jul 22, 2024
1 parent 3b95047 commit 634b82c
Show file tree
Hide file tree
Showing 3 changed files with 324 additions and 1 deletion.
2 changes: 1 addition & 1 deletion constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
REGISTRATION = True # (bool)

# Supported languages for the application
LANGUAGES = ["en", "tr", "es", "de", "zh"] # (list)
LANGUAGES = ["en", "tr", "es", "de", "zh", "fr"] # (list)


### LOGGER SETTINGS ###
Expand Down
3 changes: 3 additions & 0 deletions templates/tailwindUI/changeLanguage.html.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
<a href="/setLanguage/de" class="m-2 hover:text-rose-500 duration-150">
🇩🇪 Deutsch
</a>
<a href="/setLanguage/fr" class="m-2 hover:text-rose-500 duration-150">
🇫🇷 Français
</a>
<a href="/setLanguage/zh" class="m-2 hover:text-rose-500 duration-150">
🇨🇳 中国人
</a>
Expand Down
320 changes: 320 additions & 0 deletions translations/fr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,320 @@
{
"about": {
"title": "À propos",
"version": "Version",
"description": "Application de blog simple réalisée avec Flask, SQLite3, WTForms, Passlib, reCAPTCHA, Requests, TailwindCSS, Tabler Icons",
"moreInfo": "Cliquez pour plus d'informations sur",
"sourceRepo": "code source",
"credits": "Fait avec <i class='ti ti-heart-filled text-rose-500'></i> par <a href='https://dogukanurker.com/' target='_blank' class='text-rose-500 font-medium'>Doğukan Ürker</a>"
},
"accountSettings": {
"title": "Paramètres du compte",
"username": "changer le nom d'utilisateur",
"password": "changer le mot de passe",
"delete": "supprimer le compte",
"language": "changer la langue",
"profilePicture": "changer la photo de profil"
},
"adminPanel": {
"title": "Panneau d'administration",
"users": "Utilisateurs",
"posts": "Articles",
"comments": "Commentaires"
},
"adminPanelComments": {
"title": "Panneau d'administration - Commentaires",
"comments": "Commentaires",
"postID": "ID de l'article",
"creationTime": "Heure de création",
"creationDate": "Date de création",
"author": "Auteur"
},
"adminPanelUsers": {
"title": "Panneau d'administration - Utilisateurs",
"id": "ID",
"users": "Utilisateurs",
"email": "Email",
"joinTime": "Heure d'inscription",
"joinDate": "Date d'inscription",
"role": "Rôle",
"points": "Points",
"delete": "supprimer l'utilisateur",
"setUser": "définir le rôle de l'utilisateur en tant qu'utilisateur",
"setAdmin": "définir le rôle de l'utilisateur en tant qu'administrateur"
},
"categories": {
"all": "Tous",
"apps": "Applications",
"art": "Art",
"books": "Livres",
"business": "Affaires",
"code": "Code",
"education": "Éducation",
"finance": "Finance",
"foods": "Nourriture",
"games": "Jeux",
"health": "Santé",
"history": "Histoire",
"movies": "Films",
"music": "Musique",
"nature": "Nature",
"science": "Science",
"series": "Séries",
"sports": "Sports",
"technology": "Technologie",
"travel": "Voyage",
"web": "Web",
"other": "Autre"
},
"changeLanguage": {
"title": "Choisir la langue"
},
"changePassword": {
"title": "Changer le mot de passe",
"currentPassword": "Mot de passe actuel",
"newPassword": "Nouveau mot de passe",
"confirmPassword": "Confirmer le mot de passe",
"change": "Changer le mot de passe"
},
"changeProfilePicture": {
"title": "Changer la photo de profil",
"default": "la graine par défaut est votre nom d'utilisateur",
"info": "cliquez pour plus d'informations sur les graines de photo de profil",
"set": "Définir la photo de profil",
"placeholder": "Entrez la graine pour la photo de profil"
},
"changeUserName": {
"title": "Changer le nom d'utilisateur",
"placeholder": "Nouveau nom d'utilisateur",
"change": "Changer le nom d'utilisateur"
},
"createPost": {
"title": "Créer un article",
"titlePlaceholder": "titre de l'article",
"category": "Sélectionnez une catégorie",
"content": "Contenu",
"banner": "Télécharger une bannière",
"bannerPlaceholder": "bannière de l'article",
"tags": "étiquettes",
"post": "Publier",
"separate": "(Séparez les étiquettes par des virgules)"
},
"csrfError": {
"reason": "Raison",
"description": "Remplissez à nouveau le même formulaire."
},
"dashboard": {
"title": "Tableau de bord",
"titleAdmin": "Panneau d'administration - Articles",
"posts": "Articles",
"comments": "Commentaires",
"tags": "Étiquettes",
"views": "Vues",
"creationTime": "Heure de création",
"creationDate": "Date de création",
"editTime": "Dernière heure de modification",
"editDate": "Dernière date de modification",
"author": "Auteur",
"category": "Catégorie",
"noPosts": "Cet utilisateur n'a pas encore créé d'articles.",
"noPost": "Pas encore d'article,",
"create": "créer un",
"go": "aller à l'article"
},
"editPost": {
"title": "Modifier l'article",
"titlePlaceholder": "titre de l'article",
"category": "Sélectionner une catégorie",
"current": "Bannière actuelle",
"new": "Nouvelle bannière",
"tags": "étiquettes",
"separate": "(Séparez les étiquettes par des virgules)",
"save": "Enregistrer les modifications",
"bannerPlaceholder": "bannière de l'article"
},
"login": {
"title": "Connexion",
"username": "nom d'utilisateur",
"password": "mot de passe",
"forgot": "Mot de passe oublié ?"
},
"notFound": {
"text": "Je ne sais pas ce que c'est",
"sorry": "désolé",
"home": "aller à l'accueil"
},
"passwordReset": {
"title": "Réinitialisation du mot de passe",
"email": "email",
"username": "nom d'utilisateur",
"send": "Envoyer un e-mail de réinitialisation",
"reset": "Réinitialiser le mot de passe",
"code": "Envoyer le code",
"codePlaceholder": "Entrez le code que vous avez reçu",
"newPassword": "Nouveau mot de passe",
"confirmPassword": "Confirmer le mot de passe"
},
"post": {
"placeholder": "Quelles sont vos pensées ?"
},
"sortMenu": {
"asc": "Croissant",
"desc": "Décroissant",
"create": "Date de création",
"title": "Titre",
"views": "Vues",
"category": "Catégorie",
"edit": "Dernière date de modification"
},
"search": {
"title": "Recherche",
"noResults": "Aucun résultat",
"users": "Utilisateurs",
"posts": "Articles",
"results": "Résultats"
},
"searchBar": {
"title": "Recherche",
"placeholder": "recherche"
},
"signup": {
"title": "Inscription",
"username": "nom d'utilisateur",
"email": "email",
"password": "mot de passe",
"confirm": "confirmer le mot de passe",
"policy": "Politique de confidentialité",
"by": "En vous inscrivant, vous acceptez"
},
"unauthorized": {
"title": "Erreur reCAPTCHA",
"request": "Veuillez soumettre à nouveau le formulaire.",
"info": "La vérification reCAPTCHA a échoué."
},
"user": {
"posts": "Articles",
"comments": "Commentaires",
"points": "Points",
"joinDate": "Date d'inscription",
"createDate": "Date de création",
"createTime": "Heure de création",
"dashboard": "tableau de bord",
"role": "Rôle",
"user": "Utilisateur",
"admin": "administrateur",
"settings": "paramètres",
"views": "Vues",
"go": "aller à l'article"
},
"verifyUser": {
"title": "Vérifier le compte",
"placeholder": "Entrez le code que vous avez reçu",
"send": "Cliquez pour envoyer le code de vérification"
},
"flash": {
"changePassword": {
"same": "Le nouveau mot de passe ne peut pas être identique à l'ancien mot de passe.",
"match": "Les mots de passe ne correspondent pas.",
"success": "Le mot de passe a été modifié.",
"old": "L'ancien mot de passe est incorrect.",
"login": "Vous devez vous connecter pour changer votre mot de passe."
},
"changeProfilePicture": {
"success": "La photo de profil a été changée."
},
"changeUserName": {
"same": "C'est déjà votre nom d'utilisateur.",
"success": "Le nom d'utilisateur a été modifié.",
"taken": "Ce nom d'utilisateur est déjà pris.",
"ascii": "Le nom d'utilisateur ne peut contenir que des caractères ASCII."
},
"createPost": {
"success": "Vous avez gagné 20 points pour avoir créé un article.",
"login": "Vous devez vous connecter pour créer un article.",
"empty": "Vous ne pouvez pas laisser le titre ou le contenu vide."
},
"dashboard": {
"login": "Vous devez vous connecter pour voir votre tableau de bord."
},
"editPost": {
"success": "L'article a été modifié.",
"login": "Vous devez vous connecter pour modifier un article.",
"empty": "Vous ne pouvez pas laisser le titre ou le contenu vide.",
"author": "Vous ne pouvez pas modifier un article d'un autre auteur."
},
"login": {
"success": "Vous vous êtes connecté avec succès.",
"password": "Mot de passe incorrect",
"notFound": "Utilisateur non trouvé"
},
"logout": {
"success": "Vous vous êtes déconnecté avec succès."
},
"passwordReset": {
"success": "Le mot de passe a été réinitialisé. Vous pouvez vous connecter avec votre nouveau mot de passe.",
"email": "L'email a été envoyé.",
"code": "Le code a été envoyé.",
"same": "Le nouveau mot de passe ne peut pas être identique à l'ancien mot de passe.",
"match": "Les mots de passe ne correspondent pas.",
"notFound": "Utilisateur non trouvé.",
"wrong": "Code incorrect."
},
"delete": {
"user": "L'utilisateur a été supprimé.",
"post": "L'article a été supprimé.",
"comment": "Le commentaire a été supprimé."
},
"setLanguage": {
"success": "La langue a été modifiée."
},
"post": {
"success": "Vous avez gagné 5 points en commentant."
},
"signup": {
"success": "Vous vous êtes inscrit avec succès.",
"ascii": "Le nom d'utilisateur ne peut contenir que des caractères ASCII.",
"username": "Ce nom d'utilisateur est déjà pris.",
"email": "Cet email est déjà pris.",
"password": "Les mots de passe ne correspondent pas.",
"taken": "Ce nom d'utilisateur et cet email sont déjà pris."
},
"verifyUser": {
"success": "Votre compte a été vérifié.",
"code": "Le code a été envoyé.",
"notFound": "Utilisateur non trouvé.",
"wrong": "Code incorrect."
},
"error": {
"wrongCall": "Vous avez effectué un appel de message flash incorrect côté serveur."
}
},
"roles": {
"user": "Utilisateur",
"admin": "Administrateur"
},
"privacyPolicy": {
"title": "Politique de Confidentialité",
"intro": "Cette Politique de Confidentialité décrit comment Doğukan Ürker's Flask Blog ('nous', 'notre') collecte, utilise et divulgue vos informations lorsque vous utilisez notre application mobile (l' 'App').",
"information": "Collecte et Utilisation des Informations",
"informationText": "Lorsque vous utilisez notre App, nous collectons et enregistrons divers types de données sur l'activité des utilisateurs, y compris mais sans s'y limiter :",
"informationUser": "Données de connexion des utilisateurs : Nous collectons des informations liées aux activités de connexion des utilisateurs à des fins d'authentification et de sécurité.",
"informationPost": "Données des articles et des commentaires : Nous collectons des informations sur les articles et les commentaires publiés dans l'App pour des raisons de fonctionnalité et d'engagement des utilisateurs.",
"informationGeneral": "Activité générale des utilisateurs : Nous enregistrons diverses activités des utilisateurs au sein de l'App pour améliorer l'expérience utilisateur, résoudre les problèmes techniques et analyser les modèles d'utilisation.",
"cookies": "Cookies",
"cookiesText": "Notre App utilise des cookies pour améliorer l'expérience utilisateur. Les cookies que nous utilisons comprennent :",
"cookiesTheme": "Cookie de thème UI : Nous stockons la préférence de thème UI sélectionnée par l'utilisateur pour personnaliser l'apparence de l'App.",
"cookiesLanguage": "Langue par défaut du navigateur : Nous stockons la préférence de langue par défaut du navigateur de l'utilisateur pour fournir du contenu localisé.",
"serviceProviders": "Fournisseurs de services",
"serviceProvidersText": "Nous pouvons employer des entreprises ou des individus tiers pour faciliter notre App ou fournir des services en notre nom. Ces tiers peuvent avoir accès à vos informations pour effectuer des tâches telles que l'analyse, l'hébergement et le support technique. Cependant, ils sont tenus de ne pas divulguer ou utiliser ces informations à d'autres fins.",
"otherLinks": "Liens vers d'autres sites",
"otherLinksText": "Notre App peut contenir des liens vers des sites externes, y compris X et le site personnel de Doğukan Ürker. Nous ne sommes pas responsables du contenu ou des pratiques de confidentialité de ces sites externes. Nous encourageons les utilisateurs à examiner les politiques de confidentialité de ces sites avant de fournir des informations personnelles.",
"security": "Sécurité",
"securityText": "Nous prenons des précautions raisonnables pour protéger les informations collectées par le biais de notre App. Cependant, veuillez noter qu'aucune méthode de transmission sur Internet ou méthode de stockage électronique n'est 100% sécurisée, et nous ne pouvons garantir une sécurité absolue.",
"children": "Confidentialité des enfants",
"childrenText": "Notre App n'est pas destinée à être utilisée par des personnes de moins de 13 ans. Nous ne collectons pas sciemment d'informations personnelles identifiables auprès des enfants de moins de 13 ans. Si vous êtes un parent ou un tuteur et que vous êtes conscient que votre enfant nous a fourni des informations personnelles, veuillez nous contacter afin que nous puissions prendre les mesures nécessaires.",
"changes": "Modifications de cette Politique de Confidentialité",
"changesText": "Nous pouvons mettre à jour notre Politique de Confidentialité de temps en temps. Par conséquent, nous vous conseillons de consulter cette page périodiquement pour toute modification. Nous vous informerons de toute modification en publiant la nouvelle Politique de Confidentialité sur cette page. Ces modifications sont effectives immédiatement après leur publication sur cette page.",
"contact": "Nous Contacter",
"contactText": "Si vous avez des questions ou des suggestions concernant notre Politique de Confidentialité, n'hésitez pas à nous contacter. Mail :"
}
}

0 comments on commit 634b82c

Please sign in to comment.