Skip to content

Commit a045849

Browse files
committed
chore: add Français - fr-FR language support
1 parent 087e153 commit a045849

File tree

2 files changed

+158
-0
lines changed

2 files changed

+158
-0
lines changed
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
/**
2+
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3+
*
4+
* WSO2 LLC. licenses this file to you under the Apache License,
5+
* Version 2.0 (the "License"); you may not use this file except
6+
* in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing,
12+
* software distributed under the License is distributed on an
13+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
* KIND, either express or implied. See the License for the
15+
* specific language governing permissions and limitations
16+
* under the License.
17+
*/
18+
19+
/* eslint-disable sort-keys */
20+
/* eslint-disable @typescript-eslint/naming-convention */
21+
22+
import {I18nTranslations, I18nMetadata, I18nBundle} from '../models/i18n';
23+
24+
const translations: I18nTranslations = {
25+
/* |---------------------------------------------------------------| */
26+
/* | Elements | */
27+
/* |---------------------------------------------------------------| */
28+
29+
/* Buttons */
30+
'elements.buttons.signIn': 'Se connecter',
31+
'elements.buttons.signOut': 'Se déconnecter',
32+
'elements.buttons.signUp': 'S\'inscrire',
33+
'elements.buttons.facebook': 'Continuer avec Facebook',
34+
'elements.buttons.google': 'Continuer avec Google',
35+
'elements.buttons.github': 'Continuer avec GitHub',
36+
'elements.buttons.microsoft': 'Continuer avec Microsoft',
37+
'elements.buttons.linkedin': 'Continuer with LinkedIn',
38+
'elements.buttons.ethereum': 'Continuer avec Sign In Ethereum',
39+
'elements.buttons.multi.option': 'Continuer avec {connection}',
40+
'elements.buttons.social': 'Continuer avec {connection}',
41+
42+
/* Fields */
43+
'elements.fields.placeholder': 'Entrez votre {field}',
44+
45+
/* |---------------------------------------------------------------| */
46+
/* | Widgets | */
47+
/* |---------------------------------------------------------------| */
48+
49+
/* Base Sign In */
50+
'signin.title': 'Se connecter',
51+
'signin.subtitle': 'Entrez vos identifiants pour continuer.',
52+
53+
/* Base Sign Up */
54+
'signup.title': 'S\'inscrire',
55+
'signup.subtitle': 'Créez un nouveau compte pour commencer.',
56+
57+
/* Email OTP */
58+
'email.otp.title': 'Vérification OTP',
59+
'email.otp.subtitle': 'Entrez le code envoyé à votre adresse e-mail.',
60+
'email.otp.submit.button': 'Continuer',
61+
62+
/* Identifier First */
63+
'identifier.first.title': 'Se connecter',
64+
'identifier.first.subtitle': 'Entrez votre nom d\'utilisateur ou votre adresse e-mail.',
65+
'identifier.first.submit.button': 'Continuer',
66+
67+
/* SMS OTP */
68+
'sms.otp.title': 'Vérification OTP',
69+
'sms.otp.subtitle': 'Entrez le code envoyé à votre numéro de téléphone.',
70+
'sms.otp.submit.button': 'Continuer',
71+
72+
/* TOTP */
73+
'totp.title': 'Vérifiez votre identité',
74+
'totp.subtitle': 'Entrez le code de votre application d\'authentification.',
75+
'totp.submit.button': 'Continuer',
76+
77+
/* Username Password */
78+
'username.password.submit.button': 'Continuer',
79+
'username.password.title': 'Se connecter',
80+
'username.password.subtitle': 'Entrez votre nom d\'utilisateur et votre mot de passe pour continuer.',
81+
82+
/* |---------------------------------------------------------------| */
83+
/* | User Profile | */
84+
/* |---------------------------------------------------------------| */
85+
86+
'user.profile.title': 'Profil',
87+
'user.profile.update.generic.error': 'Une erreur est survenue lors de la mise à jour de votre profil. Veuillez réessayer.',
88+
89+
/* |---------------------------------------------------------------| */
90+
/* | Organization Switcher | */
91+
/* |---------------------------------------------------------------| */
92+
93+
'organization.switcher.select.organization': 'Sélectionner l\'organisation',
94+
'organization.switcher.switch.organization': 'Changer d\'organisation',
95+
'organization.switcher.loading.organizations': 'Chargement des organisations...',
96+
'organization.switcher.members': 'membres',
97+
'organization.switcher.member': 'membre',
98+
'organization.switcher.create.organization': 'Créer une organisation',
99+
'organization.switcher.manage.organizations': 'Gérer les organisations',
100+
'organization.switcher.manage.button': 'Gérer',
101+
'organization.switcher.organizations.title': 'Organisations',
102+
'organization.switcher.switch.button': 'Changer',
103+
'organization.switcher.no.access': 'Aucun accès',
104+
'organization.switcher.status.label': 'Statut:',
105+
'organization.switcher.showing.count': 'Affichage de {showing} sur {total} organisations',
106+
'organization.switcher.refresh.button': 'Rafraîchir',
107+
'organization.switcher.load.more': 'Charger plus d\'organisations',
108+
'organization.switcher.loading.more': 'Chargement...',
109+
'organization.switcher.no.organizations': 'Aucune organisation trouvée',
110+
'organization.switcher.error.prefix': 'Erreur:',
111+
'organization.profile.title': 'Profil de l\'organisation',
112+
'organization.profile.loading': 'Chargement de l\'organisation...',
113+
'organization.profile.error': 'Échec du chargement de l\'organisation',
114+
115+
'organization.create.title': 'Créer une organisation',
116+
'organization.create.name.label': 'Nom de l\'organisation',
117+
'organization.create.name.placeholder': 'Entrez le nom de l\'organisation',
118+
'organization.create.handle.label': 'Identifiant de l\'organisation',
119+
'organization.create.handle.placeholder': 'mon-organisation',
120+
'organization.create.description.label': 'Description',
121+
'organization.create.description.placeholder': 'Entrez la description de l\'organisation',
122+
'organization.create.button': 'Créer une organisation',
123+
'organization.create.creating': 'Création en cours...',
124+
'organization.create.cancel': 'Annuler',
125+
126+
/* |---------------------------------------------------------------| */
127+
/* | Messages | */
128+
/* |---------------------------------------------------------------| */
129+
130+
'messages.loading': 'Chargement...',
131+
132+
/* |---------------------------------------------------------------| */
133+
/* | Errors | */
134+
/* |---------------------------------------------------------------| */
135+
136+
'errors.title': 'Erreur',
137+
'errors.sign.in.initialization': 'Une erreur est survenue lors de l\'initialisation. Veuillez réessayer plus tard.',
138+
'errors.sign.in.flow.failure': 'Une erreur est survenue lors du flux de connexion. Veuillez réessayer plus tard.',
139+
'errors.sign.in.flow.completion.failure': 'Une erreur est survenue lors de la finalisation du flux de connexion. Veuillez réessayer plus tard.',
140+
'errors.sign.in.flow.passkeys.failure': 'Une erreur est survenue lors de la connexion avec les clefs d\'accès. Veuillez réessayer plus tard.',
141+
'errors.sign.in.flow.passkeys.completion.failure': 'Une erreur est survenue lors de la finalisation du flux de connexion avec les clefs d\'accès. Veuillez réessayer plus tard.',
142+
};
143+
144+
const metadata: I18nMetadata = {
145+
localeCode: 'fr-FR',
146+
countryCode: 'FR',
147+
languageCode: 'fr',
148+
displayName: 'Français (France)',
149+
direction: 'ltr',
150+
};
151+
152+
const fr_FR: I18nBundle = {
153+
metadata,
154+
translations,
155+
};
156+
157+
export default fr_FR;

packages/i18n/src/translations/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@
1717
*/
1818

1919
export {default as en_US} from './en-US';
20+
export {default as fr_FR} from './fr-FR';
2021
export {default as hi_IN} from './hi-IN';

0 commit comments

Comments
 (0)