Browse Source

add locale french

jimmyGALLAND 1 year ago
parent
commit
ab949ed6ac

+ 2 - 0
src/store/app.js

@@ -4,12 +4,14 @@ import zhCn from 'element-plus/es/locale/lang/zh-cn'
4 4
 import en from 'element-plus/es/locale/lang/en'
5 5
 import ko from 'element-plus/es/locale/lang/ko'
6 6
 import ru from 'element-plus/es/locale/lang/ru'
7
+import fr from 'element-plus/es/locale/lang/fr'
7 8
 import es from 'element-plus/es/locale/lang/es'
8 9
 import { admin, app } from '@/api/config'
9 10
 
10 11
 const langs = {
11 12
   'zh-CN': { name: '中文', value: zhCn, sideBarWidth: '210px' },
12 13
   'en': { name: 'English', value: en, sideBarWidth: '230px' },
14
+  'fr': { name: 'Français', value: fr, sideBarWidth: '280px' },
13 15
   'ko': { name: '한국어', value: ko, sideBarWidth: '230px' },
14 16
   'ru': { name: 'русский', value: ru, sideBarWidth: '250px' },
15 17
   'es': { name: 'español', value: es, sideBarWidth: '280px' },

+ 2 - 0
src/utils/i18n.js

@@ -1,4 +1,5 @@
1 1
 import en from '@/utils/i18n/en.json'
2
+import fr from '@/utils/i18n/fr.json'
2 3
 import zhCN from '@/utils/i18n/zh_CN.json'
3 4
 import ko from '@/utils/i18n/ko.json'
4 5
 import ru from '@/utils/i18n/ru.json'
@@ -10,6 +11,7 @@ export function T (key, params, num = 0) {
10 11
   const lang = appStore.setting.lang
11 12
   const trans = {
12 13
     'en': en,
14
+    'fr': fr,
13 15
     'zh-CN': zhCN,
14 16
     'ko': ko,
15 17
     'ru': ru,

+ 478 - 0
src/utils/i18n/fr.json

@@ -0,0 +1,478 @@
1
+{
2
+  "Login": {
3
+  "One": "Connexion"
4
+  },
5
+  "Logout": {
6
+  "One": "Déconnexion"
7
+  },
8
+  "Register": {
9
+  "One": "S'inscrire"
10
+  },
11
+  "Confirm": {
12
+  "One": "Confirmer"
13
+  },
14
+  "Username": {
15
+  "One": "Nom d'utilisateur"
16
+  },
17
+  "Password": {
18
+  "One": "Mot de passe"
19
+  },
20
+  "LoginSuccess": {
21
+  "One": "Connexion réussie"
22
+  },
23
+  "ForgotPassword": {
24
+  "One": "Mot de passe oublié"
25
+  },
26
+  "ResetPassword": {
27
+  "One": "Réinitialiser le mot de passe"
28
+  },
29
+  "ChangePassword": {
30
+  "One": "Modifier le mot de passe"
31
+  },
32
+  "Userinfo": {
33
+  "One": "Informations utilisateur"
34
+  },
35
+  "ParamRequired": {
36
+  "One": "{param} est obligatoire"
37
+  },
38
+  "HasBind": {
39
+  "One": "A une liaison"
40
+  },
41
+  "NoBind": {
42
+  "One": "Aucune liaison"
43
+  },
44
+  "UnBind": {
45
+  "One": "Délier"
46
+  },
47
+  "ToBind": {
48
+  "One": "Lier"
49
+  },
50
+  "Confirm?": {
51
+  "One": "{param} Confirmer?"
52
+  },
53
+  "Cancel": {
54
+  "One": "Annuler"
55
+  },
56
+  "Platform": {
57
+  "One": "Plateforme"
58
+  },
59
+  "Status": {
60
+  "One": "État"
61
+  },
62
+  "Actions": {
63
+  "One": "Actions"
64
+  },
65
+  "Filter": {
66
+  "One": "Filtre"
67
+  },
68
+  "Add": {
69
+  "One": "Ajouter"
70
+  },
71
+  "Hostname": {
72
+  "One": "Nom d'hôte"
73
+  },
74
+  "Alias": {
75
+  "One": "Alias"
76
+  },
77
+  "Hash": {
78
+  "One": "Hachage"
79
+  },
80
+  "Tags": {
81
+  "One": "Etiquettes"
82
+  },
83
+  "Edit": {
84
+  "One": "Modifier"
85
+  },
86
+  "Delete": {
87
+  "One": "Supprimer"
88
+  },
89
+  "Create": {
90
+  "One": "Créer"
91
+  },
92
+  "Update" : {
93
+  "One" : "Mise à jour"
94
+  },
95
+  "LoginName" : {
96
+  "One" : "Nom de connexion"
97
+  },
98
+  "Submit" : {
99
+  "One" : "Envoyer"
100
+  },
101
+  "OperationSuccess" : {
102
+  "One" : "Opération réussie"
103
+  },
104
+  "Owner" : {
105
+  "One" : "Propriétaire"
106
+  },
107
+  "Name" : {
108
+  "One" : "Nom"
109
+  },
110
+  "Color" : {
111
+  "One" : "Couleur"
112
+  },
113
+  "CreatedAt" : {
114
+  "One" : "Créé le"
115
+  },
116
+  "UpdatedAt" : {
117
+  "One" : "Mis à jour le"
118
+  },
119
+  "Memory" : {
120
+  "One" : "Mémoire"
121
+  },
122
+  "Os" : {
123
+  "One" : "Os"
124
+  },
125
+  "Uuid" : {
126
+  "One" : "Uuid"
127
+  },
128
+  "Version" : {
129
+  "One": "Version"
130
+  },
131
+  "Type": {
132
+  "One": "Type"
133
+  },
134
+  "Group": {
135
+  "One": "Groupe"
136
+  },
137
+  "CommonGroup": {
138
+  "One": "Groupe commun"
139
+  },
140
+  "CommonGroupNote": {
141
+  "One": "Seuls les administrateurs peuvent voir les membres du groupe et leurs appareils"
142
+  },
143
+  "SharedGroup": {
144
+  "One": "Groupe partagé"
145
+  },
146
+  "SharedGroupNote": {
147
+  "One": "Tous les utilisateurs peuvent voir les membres du groupe et leurs appareils"
148
+  },
149
+  "Nickname": {
150
+  "One": "Pseudonyme"
151
+  },
152
+  "UserTags": {
153
+  "One": "Etiquettes utilisateur"
154
+  },
155
+  "UserAddressBook": {
156
+  "One": "Carnet d'adresses utilisateur"
157
+  },
158
+  "IsAdmin": {
159
+  "One": "Est administrateur"
160
+  },
161
+  "PleaseInputNewPassword": {
162
+  "One": "Veuillez saisir nouveau mot de passe"
163
+  },
164
+  "AutoRegister": {
165
+  "One": "Enregistrement automatique"
166
+  },
167
+  "AutoRegisterNote": {
168
+  "One": "Si activé, un compte sera automatiquement enregistré lorsqu'un utilisateur se connectera avec OAuth sans lier un compte existant"
169
+  },
170
+  "ThirdName": {
171
+  "One": "Troisième nom"
172
+  },
173
+  "Close": {
174
+  "One": "Fermer"
175
+  },
176
+  "OauthBinding": {
177
+  "One": "Vous autorisez la liaison"
178
+  },
179
+  "OauthLogining": {
180
+  "One": "Vous autorisez la connexion"
181
+  },
182
+  "OauthCloseNote": {
183
+  "One": "Si vous ne l'autorisez pas, veuillez fermer la page directement"
184
+  },
185
+  "OperationSuccessAndCloseAfter3Seconds": {
186
+  "One": "Opération réussie, fermer après 3 secondes"
187
+  },
188
+  "ConfirmOauth": {
189
+  "One": "Confirmer Oauth"
190
+  },
191
+  "View": {
192
+    "One": "Informations"
193
+  },
194
+  "Device": {
195
+    "One": "Appareil"
196
+  },
197
+  "ChangeLang": {
198
+  "One": "Changer la langue"
199
+  },
200
+  "My": {
201
+  "One": "Moi"
202
+  },
203
+  "Info": {
204
+  "One": "Info"
205
+  },
206
+  "AddressBooks": {
207
+  "One": "Carnets d'adresses"
208
+  },
209
+  "System": {
210
+  "One": "Système"
211
+  },
212
+  "PeerManage": {
213
+  "One": "Appareils"
214
+  },
215
+  "AddressBookManage": {
216
+  "One": "Carnets d'adresses"
217
+  },
218
+  "GroupManage": {
219
+  "One": "Groupes"
220
+  },
221
+  "UserManage": {
222
+  "One": "Utilisateurs"
223
+  },
224
+  "UserAdd": {
225
+  "One": "Ajout d'utilisateur"
226
+  },
227
+  "UserEdit": {
228
+  "One": "Utilisateur Modifier"
229
+  },
230
+  "TagsManage": {
231
+  "One": "Etiquettes"
232
+  },
233
+  "OauthManage": {
234
+  "One": "Oauth"
235
+  },
236
+  "LoginLog": {
237
+  "One": "Journal de connexion"
238
+  },
239
+  "LastOnlineTime": {
240
+  "One": "Dernière heure de connexion"
241
+  },
242
+  "JustNow": {
243
+  "One": "Juste maintenant"
244
+  },
245
+  "MinutesAgo": {
246
+  "One": "Il y a {param} minute",
247
+  "Other": "Il y a {param} minutes"
248
+  },
249
+  "HoursAgo": {
250
+  "One": "Il y a {param} heure",
251
+  "Other": "Il y a {param} heures"
252
+  },
253
+  "DaysAgo": {
254
+  "One": "Il y a {param} jour",
255
+  "Other": "Il y a {param} jours"
256
+  },
257
+  "MonthsAgo": {
258
+  "One": " Il y a {param} mois",
259
+  "Autre": "Il y a {param} mois"
260
+  },
261
+  "YearsAgo": {
262
+  "One": "Il y a {param} an",
263
+  "Autre": "Il y a {param} ans"
264
+  },
265
+  "MinutesLess": {
266
+  "One": "Moins de {param} minute",
267
+  "Autre": "Moins de {param} minutes"
268
+  },
269
+  "HoursLess": {
270
+  "One": "Moins de {param} heure",
271
+  "Autre": "Moins de {param} heures"
272
+  },
273
+  "DaysLess": {
274
+  "One": "Moins de {param} jour",
275
+  "Autre": "Moins de {param} jours"
276
+  },
277
+  "Export": {
278
+  "One": "Exporter"
279
+  },
280
+  "AddToAddressBook": {
281
+  "One": "Ajouter au carnet d'adresses"
282
+  },
283
+  "BatchDelete": {
284
+  "One": "Suppression par lot"
285
+  },
286
+  "PleaseSelectData": {
287
+  "One": "Veuillez sélectionner des données"
288
+  },
289
+  "PasswordType": {
290
+  "One": "Type de mot de passe"
291
+  },
292
+  "OncePassword": {
293
+  "One": "Mot de passe à usage unique"
294
+  },
295
+  "FixedPassword": {
296
+  "One": "Mot de passe fixe"
297
+  },
298
+  "FixedPasswordWarning": {
299
+  "One": "Les mots de passe fixes peuvent être divulgués, veuillez donc les utiliser avec prudence et l'utilisation de mots de passe à usage unique est recommandée"
300
+  },
301
+  "ExpireTime": {
302
+  "One": "Heure d'expiration"
303
+  },
304
+  "Minutes": {
305
+  "One": "{param} Minute",
306
+  "Other": "{param} Minutes"
307
+  },
308
+  "Hours": {
309
+  "One": "{param} Heure",
310
+  "Other": "{param} Heures"
311
+  },
312
+  "Days": {
313
+  "One": "{param} Jour",
314
+  "Other": "{param} Jours"
315
+  },
316
+  "Weeks": {
317
+  "One": "{param} Semaine",
318
+  "Other": "{param} Semaines"
319
+  },
320
+  "Months": {
321
+  "One": "{param} Mois",
322
+  "Other": "{param} Mois"
323
+  },
324
+  "Forever": {
325
+  "One": "Forever"
326
+  },
327
+  "Error": {
328
+  "One": "Erreur"
329
+  },
330
+  "IDNotExist": {
331
+  "One": "L'ID n'existe pas"
332
+  },
333
+  "RemoteDesktopOffline": {
334
+  "One": "Le bureau à distance est hors ligne"
335
+  },
336
+  "KeyMismatch": {
337
+  "One": "Non-correspondance de clé"
338
+  },
339
+  "KeyOveruse": {
340
+  "One": "Surutilisation de clé"
341
+  },
342
+  "Link": {
343
+  "One": "Lien"
344
+  },
345
+  "CopySuccess": {
346
+  "One": "Copie réussie"
347
+  },
348
+  "CopyFailed": {
349
+  "One": "Copie échouée"
350
+  },
351
+  "Timeout": {
352
+  "One": "Expiration du délai"
353
+  },
354
+  "AuditConnLog": {
355
+  "One": "Journal de connexion"
356
+  },
357
+  "Peer": {
358
+  "One": "Appareil",
359
+  "Other": "Appareils distants"
360
+  },
361
+  "FromPeer": {
362
+  "One": "Par Appareil distant"
363
+  },
364
+  "FromName": {
365
+  "One": "Par nom"
366
+  },
367
+  "CloseTime": {
368
+  "One": "Heure de clôture"
369
+  },
370
+  "AuditFileLog": {
371
+  "One": "Fichier Journal"
372
+  },
373
+  "Common": {
374
+  "One": "Commun"
375
+  },
376
+  "File": {
377
+  "One": "Fichier"
378
+  },
379
+  "Num": {
380
+  "One": "Num"
381
+  },
382
+  "Ip": {
383
+  "One": "Ip"
384
+  },
385
+  "FileName": {
386
+  "One": "Nom du fichier"
387
+  },
388
+  "FileInfo": {
389
+  "One": "Informations sur le fichier"
390
+  },
391
+  "Path": {
392
+  "One": "Chemin"
393
+  },
394
+  "IndexNum": {
395
+  "One": "Num. index"
396
+  },
397
+  "ToRemote": {
398
+  "One": "Vers distant"
399
+  },
400
+  "ToLocal": {
401
+  "One": "Vers local"
402
+  },
403
+  "AddressBookName": {
404
+  "One": "Nom du carnet d'adresses"
405
+  },
406
+  "AddRule": {
407
+  "One": "Ajouter une règle"
408
+  },
409
+  "ShareRules": {
410
+  "One": "Partager des règles"
411
+  },
412
+  "Rule": {
413
+  "One": "Règle"
414
+  },
415
+  "Read": {
416
+  "One": "Lecture"
417
+  },
418
+  "ReadWrite": {
419
+  "One": "Lecture et écriture"
420
+  },
421
+  "FullControl": {
422
+  "One": "Contrôle total"
423
+  },
424
+  "ShareTo": {
425
+  "One": "Partager avec"
426
+  },
427
+  "MyAddressBook": {
428
+  "One": "Mon carnet d'adresses"
429
+  },
430
+  "AddressBook": {
431
+  "One": "Carnet d'adresses"
432
+  },
433
+  "AddressBookNameManage": {
434
+  "One": "Noms du carnet d'adresses"
435
+  },
436
+  "MyAddressBookTips": {
437
+  "One": "\"Mon carnet d'adresses\" est la valeur par défaut du système, ne peut pas être modifié ou supprimé"
438
+  },
439
+  "LastOnlineIp": {
440
+  "One": "Dernière adresse IP en ligne"
441
+  },
442
+  "ConfirmPassword": {
443
+  "One": "Confirmer le mot de passe"
444
+  },
445
+  "PasswordNotMatchConfirmPassword": {
446
+  "One": "Les mots de passe ne correspondent pas"
447
+  },
448
+  "ToLogin": {
449
+  "One": "Pour se connecter"
450
+  },
451
+  "UserToken": {
452
+  "One": "Jeton Utilisateur"
453
+  },
454
+  "Token": {
455
+    "One": "Jeton"
456
+  },
457
+  "MyPeer": {
458
+    "One": "Mon appareil"
459
+  },
460
+  "BatchAddToAB": {
461
+  "One": "Ajout par lots au carnet d'adresses"
462
+  },
463
+  "BatchEditTags": {
464
+  "One": "Modification par lots des étiquettes"
465
+  },
466
+  "User": {
467
+  "One": "Utilisateur"
468
+  },
469
+  "ShareRecord": {
470
+  "One": "Enregistrement des partages"
471
+  },
472
+  "Second": {
473
+  "One": "Seconde"
474
+  },
475
+  "Captcha": {
476
+  "One": "Captcha"
477
+  }
478
+}

+ 1 - 1
src/views/login/log.vue

@@ -2,7 +2,7 @@
2 2
   <div>
3 3
     <el-card class="list-query" shadow="hover">
4 4
       <el-form inline label-width="80px">
5
-        <el-form-item label="用户">
5
+        <el-form-item :label="T('User')">
6 6
           <el-select v-model="listQuery.user_id" clearable>
7 7
             <el-option
8 8
                 v-for="item in allUsers"

+ 1 - 1
src/views/my/share_record/index.vue

@@ -14,7 +14,7 @@
14 14
         <el-table-column prop="id" label="ID" align="center" width="100"/>
15 15
         <el-table-column prop="peer_id" :label="T('Peer')" align="center"/>
16 16
         <el-table-column prop="created_at" :label="T('CreatedAt')" align="center"/>
17
-        <el-table-column :label="`${T('ExpireTime')}(${T('Second')})`" prop="expire" align="center">
17
+        <el-table-column :label="`${T('ExpireTime')} (${T('Second')})`" prop="expire" align="center">
18 18
           <template #default="{row}">
19 19
             <el-tag :type="expired(row)?'info':'success'">{{ row.expire ? row.expire : T('Forever') }}</el-tag>
20 20
           </template>

+ 1 - 1
src/views/share_record/index.vue

@@ -29,7 +29,7 @@
29 29
         </el-table-column>
30 30
         <el-table-column prop="peer_id" :label="T('Peer')" align="center"/>
31 31
         <el-table-column prop="created_at" :label="T('CreatedAt')" align="center"/>
32
-        <el-table-column :label="`${T('ExpireTime')}(${T('Second')})`" prop="expire" align="center">
32
+        <el-table-column :label="`${T('ExpireTime')} (${T('Second')})`" prop="expire" align="center">
33 33
           <template #default="{row}">
34 34
             <el-tag :type="expired(row)?'info':'success'">{{ row.expire ? row.expire : T('Forever') }}</el-tag>
35 35
           </template>

+ 1 - 1
src/views/user/token.vue

@@ -2,7 +2,7 @@
2 2
   <div>
3 3
     <el-card class="list-query" shadow="hover">
4 4
       <el-form inline label-width="80px">
5
-        <el-form-item label="用户">
5
+        <el-form-item :label="T('User')">
6 6
           <el-select v-model="listQuery.user_id" clearable>
7 7
             <el-option
8 8
                 v-for="item in allUsers"