Explorar el Código

translation of account, dashboard and login page

AlexiCauvin hace 6 años
padre
commit
3c47fa6fe7

+ 46 - 1
frontend/i18next.scanner/en/translation.json Ver fichero

@@ -19,5 +19,50 @@
19 19
   "Logout": "Logout",
20 20
   "Notification": "Notification",
21 21
   "Archive Topic": "Archive Topic",
22
-  "Deleted File": "Deleted File"
22
+  "Deleted File": "Deleted File",
23
+  "Name :": "Name :",
24
+  "Email Adress :": "Email Adress :",
25
+  "Send": "Send",
26
+  "Workspace and notifications": "Workspace and notifications",
27
+  "Workspace": "Workspace",
28
+  "Role": "Role",
29
+  "Account information": "Account information",
30
+  "Change your password": "Change your password",
31
+  "Password": "Password",
32
+  "Change your name": "Change your name",
33
+  "Change your email": "Change your email",
34
+  "Old Password": "Old Password",
35
+  "New Password": "New Password",
36
+  "Change your Timezone": "Change your Timezone",
37
+  "Calendar": "Calendar",
38
+  "Access your personal calendar": "Access your personal calendar",
39
+  "Dashboard": "Dashboard",
40
+  "Active advanced Dashboard": "Active advanced Dashboard",
41
+  "Change your status": "Change your status",
42
+  "subscriber": "subscriber",
43
+  "unsubscribed": "unsubscribed",
44
+  "Start a new Thread": "Start a new Thread",
45
+  "Writing a document": "Writing a document",
46
+  "Upload a file": "Upload a file",
47
+  "Start a videoconference": "Start a videoconference",
48
+  "View the Calendar": "View the Calendar",
49
+  "Recent activity": "Recent activity",
50
+  "Mark everything as read": "Mark everything as read",
51
+  "See more": "See more",
52
+  "Member List": "Member List",
53
+  "Add a member": "Add a member",
54
+  "Enter the name or email of the member": "Enter the name or email of the member",
55
+  "Create an account": "Create an account",
56
+  "Choose the role of the member": "Choose the role of the member",
57
+  "Supervisor": "Supervisor",
58
+  "Content Manager": "Content Manager",
59
+  "Contributor": "Contributor",
60
+  "Reader": "Reader",
61
+  "Validate": "Validate",
62
+  "Implement Tracim in your explorer": "Implement Tracim in your explorer",
63
+  "Find all your documents deposited online directly on your computer via the workstation, without going through the software.": "Find all your documents deposited online directly on your computer via the workstation, without going through the software.",
64
+  "Workspace Calendar": "Workspace Calendar",
65
+  "Each workspace has its own calendar.": "Each workspace has its own calendar.",
66
+  "Email Adress": "Email Adress",
67
+  "Explore the workspace": "Explore the workspace"
23 68
 }

+ 46 - 1
frontend/i18next.scanner/fr/translation.json Ver fichero

@@ -19,5 +19,50 @@
19 19
   "Logout": "Se Déconnecter",
20 20
   "Notification": "Notification",
21 21
   "Archive Topic": "Conversation archivée",
22
-  "Deleted File": "Fichier supprimé"
22
+  "Deleted File": "Fichier supprimé",
23
+  "Name :": "Nom :",
24
+  "Email Adress :": "Adresse mail :",
25
+  "Send": "Envoyer",
26
+  "Workspace and notifications": "Espace de travail & Notifications",
27
+  "Workspace": "Espace de travail",
28
+  "Role": "Rôle",
29
+  "Account information": "Information du compte",
30
+  "Change your password": "Changer votre mot de passe",
31
+  "Password": "Mot de passe",
32
+  "Change your name": "Modifier votre nom",
33
+  "Change your email": "Modifier votre email",
34
+  "Old Password": "Ancien mot de passe",
35
+  "New Password": "Nouveau mot de passe",
36
+  "Change your Timezone": "Modifier votre fuseau horaire",
37
+  "Calendar": "Calendrier",
38
+  "Access your personal calendar": "Accéder à votre calendrier personnel",
39
+  "Dashboard": "Tableau de bord",
40
+  "Active advanced Dashboard": "Activer le mode avancé ",
41
+  "Change your status": "Changer de status",
42
+  "subscriber": "Abonné(e)",
43
+  "unsubscribed": "Non Abonné(e)",
44
+  "Start a new Thread": "Débuter une nouvelle discussion",
45
+  "Writing a document": "Rédiger un document",
46
+  "Upload a file": "Importer un fichier",
47
+  "Start a videoconference": "Débuter une visioconférence",
48
+  "View the Calendar": "Voir le Calendrier",
49
+  "Explore the workspace": "Explorer l'espace de travail",
50
+  "Recent activity": "Activité récente",
51
+  "Mark everything as read": "Tout marquer comme lu",
52
+  "See more": "Voir plus",
53
+  "Member List": "Liste des membres",
54
+  "Add a member": "Ajouter un membre",
55
+  "Enter the name or email of the member": "Renseigner le nom ou l'email de l'utilisateur",
56
+  "Create an account": "Créer un compte",
57
+  "Supervisor": "Responsable",
58
+  "Content Manager": "Gestionnaire de contenu",
59
+  "Contributor": "Contributeur",
60
+  "Reader": "Lecteur",
61
+  "Validate": "Validé",
62
+  "Implement Tracim in your explorer": "Implémenter Tracim dans votre explorateur",
63
+  "Find all your documents deposited online directly on your computer via the workstation, without going through the software.": "Retrouvez tous vos documents déposés en ligne directement sur votre ordinateur via le poste de travail, sans passer par le logiciel.",
64
+  "Workspace Calendar": "Calendrier de l'espace de travail",
65
+  "Each workspace has its own calendar.": "Chaque espace de travail à son propre calendrier",
66
+  "Choose the role of the member": "Choisissez le rôle du membre",
67
+  "Email Adress": "Adresse email"
23 68
 }

+ 2 - 2
frontend/src/component/Account/Calendar.jsx Ver fichero

@@ -5,7 +5,7 @@ export const Calendar = props => {
5 5
     <div className='account__userpreference__setting__calendar'>
6 6
 
7 7
       <div className='calendar__title subTitle ml-2 ml-sm-0'>
8
-        Calendrier
8
+        {props.t('Calendar')}
9 9
       </div>
10 10
 
11 11
       <div className='calendar__text ml-2 ml-sm-0'>
@@ -13,7 +13,7 @@ export const Calendar = props => {
13 13
       </div>
14 14
 
15 15
       <div className='calendar__title ml-2 ml-sm-0'>
16
-        Accèder à votre Calendrier personnel
16
+        {props.t('Access your personal calendar')}
17 17
       </div>
18 18
       <div className='calendar__link ml-2 ml-sm-0'>
19 19
         {props.user.caldavUrl}

+ 4 - 4
frontend/src/component/Account/Notification.jsx Ver fichero

@@ -9,7 +9,7 @@ export const Notification = props => {
9 9
   return (
10 10
     <div className='account__userpreference__setting__notification'>
11 11
       <div className='notification__sectiontitle subTitle ml-2 ml-sm-0'>
12
-        Espace de Travail & Notification
12
+        {props.t('Workspace and notifications')}
13 13
       </div>
14 14
 
15 15
       <div className='notification__text ml-2 ml-sm-0'>
@@ -20,9 +20,9 @@ export const Notification = props => {
20 20
         <table className='table'>
21 21
           <thead>
22 22
             <tr>
23
-              <th>Espace de travail</th>
24
-              <th>Role</th>
25
-              <th>Notification</th>
23
+              <th>{props.t('Workspace')}</th>
24
+              <th>{props.t('Role')}</th>
25
+              <th>{props.t('Notification')}</th>
26 26
             </tr>
27 27
           </thead>
28 28
           <tbody>

+ 15 - 6
frontend/src/component/Account/Password.jsx Ver fichero

@@ -1,10 +1,11 @@
1 1
 import React from 'react'
2
+import { translate } from 'react-i18next'
2 3
 
3 4
 export const Password = props => {
4 5
   return (
5 6
     <div className='account__userpreference__setting__personaldata'>
6 7
       <div className='personaldata__sectiontitle subTitle ml-2 ml-sm-0'>
7
-        Changer de mot de passe
8
+        {props.t('Change your password')}
8 9
       </div>
9 10
 
10 11
       <div className='personaldata__text ml-2 ml-sm-0'>
@@ -13,12 +14,20 @@ export const Password = props => {
13 14
 
14 15
       <form className='personaldata__form mr-5'>
15 16
         <div className='personaldata__form__title'>
16
-          Mot de passe :
17
+          {props.t('Password')}
17 18
         </div>
18
-        <input className='personaldata__form__txtinput form-control' type='password' placeholder='Ancien mot de passe' />
19
-        <input className='personaldata__form__txtinput form-control mt-4' type='password' placeholder='Nouveau mot de passe' />
19
+        <input
20
+          className='personaldata__form__txtinput form-control'
21
+          type='password'
22
+          placeholder={props.inputPlaceholderOldPassword}
23
+        />
24
+        <input
25
+          className='personaldata__form__txtinput form-control mt-4'
26
+          type='password'
27
+          placeholder={props.inputPlaceholderNewPassword}
28
+        />
20 29
         <button type='submit' className='personaldata__form__button btn btn-outline-primary mt-4'>
21
-          Envoyer
30
+          {props.t('Send')}
22 31
         </button>
23 32
       </form>
24 33
 
@@ -26,4 +35,4 @@ export const Password = props => {
26 35
   )
27 36
 }
28 37
 
29
-export default Password
38
+export default translate()(Password)

+ 22 - 7
frontend/src/component/Account/PersonalData.jsx Ver fichero

@@ -1,10 +1,12 @@
1 1
 import React from 'react'
2
+import PropTypes from 'prop-types'
3
+import { translate } from 'react-i18next'
2 4
 
3 5
 export const PersonalData = props => {
4 6
   return (
5 7
     <div className='account__userpreference__setting__personaldata'>
6 8
       <div className='personaldata__sectiontitle subTitle ml-2 ml-sm-0'>
7
-        Information du compte
9
+        {props.t('Account information')}
8 10
       </div>
9 11
 
10 12
       <div className='personaldata__text ml-2 ml-sm-0'>
@@ -13,23 +15,36 @@ export const PersonalData = props => {
13 15
 
14 16
       <form className='personaldata__form'>
15 17
         <div className='personaldata__form__title'>
16
-          Nom :
18
+          {props.t('Name :')}
17 19
         </div>
18 20
         <div className='d-flex align-items-center justify-content-between flex-wrap mb-4'>
19
-          <input className='personaldata__form__txtinput form-control mt-3 mt-sm-0' type='text' placeholder='Nom' />
21
+          <input
22
+            className='personaldata__form__txtinput form-control mt-3 mt-sm-0'
23
+            type='text'
24
+            placeholder={props.inputPlaceholderNameUser}
25
+          />
20 26
         </div>
21 27
         <div className='personaldata__form__title'>
22
-          Adresse mail :
28
+          {props.t('Email Adress :')}
23 29
         </div>
24 30
         <div className='d-flex align-items-center justify-content-between flex-wrap mb-4'>
25
-          <input className='personaldata__form__txtinput form-control mt-3 mt-sm-0' type='email' placeholder='Nouvelle adresse mail' />
31
+          <input
32
+            className='personaldata__form__txtinput form-control mt-3 mt-sm-0'
33
+            type='email'
34
+            placeholder={props.inputPlaceholderEmailUser}
35
+          />
26 36
         </div>
27 37
         <button type='submit' className='personaldata__form__button btn btn-outline-primary'>
28
-          Envoyer
38
+          {props.t('Send')}
29 39
         </button>
30 40
       </form>
31 41
     </div>
32 42
   )
33 43
 }
34 44
 
35
-export default PersonalData
45
+PersonalData.propTypes = {
46
+  inputPlaceholderNameUser: PropTypes.string,
47
+  inputPlaceholderEmailUser: PropTypes.string
48
+}
49
+
50
+export default translate()(PersonalData)

+ 3 - 2
frontend/src/component/Account/Timezone.jsx Ver fichero

@@ -1,6 +1,7 @@
1 1
 import React from 'react'
2 2
 import Select from 'react-select'
3 3
 import 'react-select/dist/react-select.css'
4
+import { translate } from 'react-i18next'
4 5
 
5 6
 export const Timezone = props => {
6 7
   const handleChangeTimezone = selectedTimezone => props.onChangeTimezone(props.timezone.find(t => t.place === selectedTimezone.place))
@@ -9,7 +10,7 @@ export const Timezone = props => {
9 10
     <div className='account__userpreference__setting__timezone'>
10 11
 
11 12
       <div className='timezone__title subTitle ml-2 ml-sm-0'>
12
-        Changer de Fuseau Horaire
13
+        {props.t('Change your Timezone')}
13 14
       </div>
14 15
 
15 16
       <div className='timezone__text ml-2 ml-sm-0'>
@@ -32,4 +33,4 @@ export const Timezone = props => {
32 33
   )
33 34
 }
34 35
 
35
-export default Timezone
36
+export default translate()(Timezone)

+ 12 - 5
frontend/src/container/Account.jsx Ver fichero

@@ -19,6 +19,7 @@ import {
19 19
   getTimezone,
20 20
   getUserRole
21 21
 } from '../action-creator.async.js'
22
+import { translate } from 'react-i18next'
22 23
 
23 24
 class Account extends React.Component {
24 25
   constructor (props) {
@@ -79,7 +80,10 @@ class Account extends React.Component {
79 80
     const subComponent = (() => {
80 81
       switch (this.state.subComponentMenu.find(({active}) => active).name) {
81 82
         case 'personalData':
82
-          return <PersonalData />
83
+          return <PersonalData
84
+            inputPlaceholderNameUser={this.props.t('Change your name')}
85
+            inputPlaceholderEmailUser={this.props.t('Change your email')}
86
+          />
83 87
 
84 88
         // case 'calendar':
85 89
         //   return <Calendar user={this.props.user} />
@@ -90,11 +94,14 @@ class Account extends React.Component {
90 94
             onChangeSubscriptionNotif={this.handleChangeSubscriptionNotif}
91 95
           />
92 96
 
97
+        case 'password':
98
+          return <Password
99
+            inputPlaceholderOldPassword={this.props.t('Old Password')}
100
+            inputPlaceholderNewPassword={this.props.t('New Password')}
101
+          />
102
+
93 103
         case 'timezone':
94 104
           return <Timezone timezone={this.props.timezone} onChangeTimezone={this.handleChangeTimezone} />
95
-
96
-        case 'password':
97
-          return <Password />
98 105
       }
99 106
     })()
100 107
 
@@ -129,4 +136,4 @@ class Account extends React.Component {
129 136
 }
130 137
 
131 138
 const mapStateToProps = ({ user, workspaceList, timezone }) => ({ user, workspaceList, timezone })
132
-export default connect(mapStateToProps)(Account)
139
+export default translate()(connect(mapStateToProps)(Account))

+ 38 - 30
frontend/src/container/Dashboard.jsx Ver fichero

@@ -10,6 +10,7 @@ import {
10 10
   setAppList,
11 11
   setContentTypeList, setWorkspaceListIsOpenInSidebar, updateWorkspaceListData
12 12
 } from '../action-creator.sync.js'
13
+import { translate } from 'react-i18next'
13 14
 
14 15
 class Dashboard extends React.Component {
15 16
   constructor (props) {
@@ -75,12 +76,14 @@ class Dashboard extends React.Component {
75 76
             <div className='dashboard__header mb-5'>
76 77
               <div className='pageTitleGeneric dashboard__header__title d-flex align-items-center'>
77 78
                 <div className='pageTitleGeneric__title dashboard__header__title__text mr-3'>
78
-                  Dashboard
79
+                  {this.props.t('Dashboard')}
79 80
                 </div>
80 81
                 <div className='dashboard__header__acces' />
81 82
               </div>
82 83
               <div className='dashboard__header__advancedmode mr-3'>
83
-                <button type='button' className='btn btn-primary'>Activer édition avancé</button>
84
+                <button type='button' className='btn btn-primary'>
85
+                  {this.props.t('Active advanced Dashboard')}
86
+                </button>
84 87
               </div>
85 88
             </div>
86 89
 
@@ -119,7 +122,7 @@ class Dashboard extends React.Component {
119 122
                       className='dashboard__userstatut__notification__btn btn btn-outline-primary'
120 123
                       onClick={this.handleToggleNotifBtn}
121 124
                     >
122
-                      Changer de statut
125
+                      {this.props.t('Change your status')}
123 126
                     </div>
124 127
                   }
125 128
 
@@ -129,9 +132,11 @@ class Dashboard extends React.Component {
129 132
                         Abonné(e)
130 133
                       </button>
131 134
                       <div className='dashboard__userstatut__notification__subscribe__submenu dropdown-menu'>
132
-                        <div className='dashboard__userstatut__notification__subscribe__submenu__item dropdown-item'>Abonné(e)
135
+                        <div className='dashboard__userstatut__notification__subscribe__submenu__item dropdown-item'>
136
+                          {this.props.t('subscriber')}
133 137
                         </div>
134
-                        <div className='dashboard__userstatut__notification__subscribe__submenu__item dropdown-item dropdown-item'>Non Abonné(e)
138
+                        <div className='dashboard__userstatut__notification__subscribe__submenu__item dropdown-item dropdown-item'>
139
+                          {this.props.t('unsubscribed')}
135 140
                         </div>
136 141
                       </div>
137 142
                     </div>
@@ -147,7 +152,7 @@ class Dashboard extends React.Component {
147 152
                     <i className='fa fa-comments-o' />
148 153
                   </div>
149 154
                   <div className='dashboard__calltoaction__button__text__title'>
150
-                    Débuter une nouvelle discussion
155
+                    {this.props.t('Start a new Thread')}
151 156
                   </div>
152 157
                 </div>
153 158
               </div>
@@ -158,7 +163,7 @@ class Dashboard extends React.Component {
158 163
                     <i className='fa fa-file-text-o' />
159 164
                   </div>
160 165
                   <div className='dashboard__calltoaction__button__text__title'>
161
-                    Rédiger un document
166
+                    {this.props.t('Writing a document')}
162 167
                   </div>
163 168
                 </div>
164 169
               </div>
@@ -169,7 +174,7 @@ class Dashboard extends React.Component {
169 174
                     <i className='fa fa-paperclip' />
170 175
                   </div>
171 176
                   <div className='dashboard__calltoaction__button__text__title'>
172
-                    Importer un fichier
177
+                    {this.props.t('Upload a file')}
173 178
                   </div>
174 179
                 </div>
175 180
               </div>
@@ -181,7 +186,7 @@ class Dashboard extends React.Component {
181 186
                       <i className='fa fa-video-camera' />
182 187
                     </div>
183 188
                     <div className='dashboard__calltoaction__button__text__title'>
184
-                      Débuter une visioconférence
189
+                      {this.props.t('Start a videoconference')}
185 190
                     </div>
186 191
                   </div>
187 192
                 </div>
@@ -192,7 +197,7 @@ class Dashboard extends React.Component {
192 197
                       <i className='fa fa-calendar' />
193 198
                     </div>
194 199
                     <div className='dashboard__calltoaction__button__text__title'>
195
-                      Voir le Calendrier
200
+                      {this.props.t('View the Calendar')}
196 201
                     </div>
197 202
                   </div>
198 203
                 </div>
@@ -204,7 +209,7 @@ class Dashboard extends React.Component {
204 209
                     <i className='fa fa-folder-open-o' />
205 210
                   </div>
206 211
                   <div className='dashboard__calltoaction__button__text__title'>
207
-                    Explorer le Workspace
212
+                    {this.props.t('Explore the workspace')}
208 213
                   </div>
209 214
                 </div>
210 215
               </div>
@@ -214,11 +219,11 @@ class Dashboard extends React.Component {
214 219
               <div className='dashboard__activity'>
215 220
                 <div className='dashboard__activity__header'>
216 221
                   <div className='dashboard__activity__header__title subTitle'>
217
-                    Activité récente
222
+                    {this.props.t('Recent activity')}
218 223
                   </div>
219 224
 
220 225
                   <div className='dashboard__activity__header__allread btn btn-outline-primary'>
221
-                    Tout marquer comme lu
226
+                    {this.props.t('Mark everything as read')}
222 227
                   </div>
223 228
                 </div>
224 229
                 <div className='dashboard__activity__wrapper'>
@@ -278,7 +283,7 @@ class Dashboard extends React.Component {
278 283
 
279 284
                   <div className='dashboard__activity__more d-flex flex-row-reverse'>
280 285
                     <div className='dashboard__activity__more__btn btn btn-outline-primary'>
281
-                      Voir plus
286
+                      {this.props.t('See more')}
282 287
                     </div>
283 288
                   </div>
284 289
                 </div>
@@ -287,7 +292,7 @@ class Dashboard extends React.Component {
287 292
               <div className='dashboard__memberlist'>
288 293
 
289 294
                 <div className='dashboard__memberlist__title subTitle'>
290
-                  Liste des membres
295
+                  {this.props.t('Member List')}
291 296
                 </div>
292 297
 
293 298
                 <div className='dashboard__memberlist__wrapper'>
@@ -426,9 +431,8 @@ class Dashboard extends React.Component {
426 431
                           </div>
427 432
                           <div
428 433
                             className='dashboard__memberlist__btnadd__button__text'
429
-
430 434
                           >
431
-                             Ajouter un membre
435
+                            {this.props.t('Add a member')}
432 436
                           </div>
433 437
                         </div>
434 438
                       </div>
@@ -444,7 +448,9 @@ class Dashboard extends React.Component {
444 448
                       </div>
445 449
                       <div className='dashboard__memberlist__form__member'>
446 450
                         <div className='dashboard__memberlist__form__member__name'>
447
-                          <label className='name__label' htmlFor='addmember'>Indiquer le nom ou l'email du membre</label>
451
+                          <label className='name__label' htmlFor='addmember'>
452
+                            {this.props.t('Enter the name or email of the member')}
453
+                          </label>
448 454
                           <input type='text' id='addmember' className='name__input form-control' placeholder='Nom ou Email' />
449 455
                         </div>
450 456
                         <div className='dashboard__memberlist__form__member__create'>
@@ -452,13 +458,13 @@ class Dashboard extends React.Component {
452 458
                             <input type='radio' />
453 459
                           </div>
454 460
                           <div className='create__text'>
455
-                            Créer un compte
461
+                            {this.props.t('Create an account')}
456 462
                           </div>
457 463
                         </div>
458 464
                       </div>
459 465
                       <div className='dashboard__memberlist__form__role'>
460 466
                         <div className='dashboard__memberlist__form__role__text'>
461
-                          Choisissez le rôle du membre
467
+                          {this.props.t('Choose the role of the member')}
462 468
                         </div>
463 469
                         <ul className='dashboard__memberlist__form__role__list'>
464 470
                           <li className='dashboard__memberlist__form__role__list__item'>
@@ -470,7 +476,7 @@ class Dashboard extends React.Component {
470 476
                                 <i className='fa fa-gavel' />
471 477
                               </div>
472 478
                               <div className='item__text__name'>
473
-                                Responsable
479
+                                {this.props.t('Supervisor')}
474 480
                               </div>
475 481
                             </div>
476 482
                           </li>
@@ -483,7 +489,7 @@ class Dashboard extends React.Component {
483 489
                                 <i className='fa fa-graduation-cap' />
484 490
                               </div>
485 491
                               <div className='item__text__name'>
486
-                                Gestionnaire de contenu
492
+                                {this.props.t('Content Manager')}
487 493
                               </div>
488 494
                             </div>
489 495
                           </li>
@@ -496,7 +502,7 @@ class Dashboard extends React.Component {
496 502
                                 <i className='fa fa-pencil' />
497 503
                               </div>
498 504
                               <div className='item__text__name'>
499
-                                Contributeur
505
+                                {this.props.t('Contributor')}
500 506
                               </div>
501 507
                             </div>
502 508
                           </li>
@@ -509,14 +515,16 @@ class Dashboard extends React.Component {
509 515
                                 <i className='fa fa-eye' />
510 516
                               </div>
511 517
                               <div className='item__text__name'>
512
-                                Lecteur
518
+                                {this.props.t('Reader')}
513 519
                               </div>
514 520
                             </div>
515 521
                           </li>
516 522
                         </ul>
517 523
                       </div>
518 524
                       <div className='dashboard__memberlist__form__submitbtn'>
519
-                        <button className='btn btn-outline-primary'>Valider</button>
525
+                        <button className='btn btn-outline-primary'>
526
+                          {this.props.t('Validate')}
527
+                        </button>
520 528
                       </div>
521 529
                     </form>
522 530
                   }
@@ -535,14 +543,14 @@ class Dashboard extends React.Component {
535 543
                   </div>
536 544
 
537 545
                   <div className='dashboard__moreinfo__webdav__btn__text genericBtnInfoDashboard__btn__text'>
538
-                    Implémenter Tracim dans votre explorateur
546
+                    {this.props.t('Implement Tracim in your explorer')}
539 547
                   </div>
540 548
                 </div>
541 549
                 {this.state.displayWebdavBtn === true &&
542 550
                   <div>
543 551
                     <div className='dashboard__moreinfo__webdav__information genericBtnInfoDashboard__info'>
544 552
                       <div className='dashboard__moreinfo__webdav__information__text genericBtnInfoDashboard__info__text'>
545
-                        Retrouvez tous vos documents déposés en ligne directement sur votre ordinateur via le poste de travail, sans passer par le logiciel.
553
+                        {this.props.t('Find all your documents deposited online directly on your computer via the workstation, without going through the software.')}'
546 554
                       </div>
547 555
 
548 556
                       <div className='dashboard__moreinfo__webdav__information__link genericBtnInfoDashboard__info__link'>
@@ -563,7 +571,7 @@ class Dashboard extends React.Component {
563 571
                     </div>
564 572
 
565 573
                     <div className='dashboard__moreinfo__calendar__btn__text genericBtnInfoDashboard__btn__text'>
566
-                      Calendrier de l'espace de travail
574
+                      {this.props.t('Workspace Calendar')}
567 575
                     </div>
568 576
                   </div>
569 577
                 </div>
@@ -572,7 +580,7 @@ class Dashboard extends React.Component {
572 580
                     <div>
573 581
                       <div className='dashboard__moreinfo__calendar__information genericBtnInfoDashboard__info'>
574 582
                         <div className='dashboard__moreinfo__calendar__information__text genericBtnInfoDashboard__info__text'>
575
-                          Chaque espace de travail possède son propre calendrier.
583
+                          {this.props.t('Each workspace has its own calendar.')}
576 584
                         </div>
577 585
 
578 586
                         <div className='dashboard__moreinfo__calendar__information__link genericBtnInfoDashboard__info__link'>
@@ -592,4 +600,4 @@ class Dashboard extends React.Component {
592 600
 }
593 601
 
594 602
 const mapStateToProps = ({ user, app, contentType, workspaceList }) => ({ user, app, contentType, workspaceList })
595
-export default connect(mapStateToProps)(Dashboard)
603
+export default translate()(connect(mapStateToProps)(Dashboard))

+ 2 - 2
frontend/src/container/Login.jsx Ver fichero

@@ -83,7 +83,7 @@ class Login extends React.Component {
83 83
                         customClass='mb-3 mt-4'
84 84
                         icon='fa-envelope-open-o'
85 85
                         type='email'
86
-                        placeHolder='Adresse Email'
86
+                        placeHolder={this.props.t('Email Adress')}
87 87
                         invalidMsg='Email invalide.'
88 88
                         isInvalid={this.state.inputLogin.isInvalid}
89 89
                         value={this.state.inputLogin.value}
@@ -95,7 +95,7 @@ class Login extends React.Component {
95 95
                         customClass=''
96 96
                         icon='fa-lock'
97 97
                         type='password'
98
-                        placeHolder='Mot de passe'
98
+                        placeHolder={this.props.t('Password')}
99 99
                         invalidMsg='Mot de passe invalide.'
100 100
                         isInvalid={this.state.inputPassword.isInvalid}
101 101
                         value={this.state.inputPassword.value}