itizawa 6 лет назад
Родитель
Сommit
212f6ecf6d

+ 46 - 0
resource/locales/en-US/admin/user_management.json

@@ -0,0 +1,46 @@
+{
+  "invite_users": "Invite New Users",
+  "invite_modal": {
+    "emails": "Emails",
+    "invite_thru_email": "Send Invitation Email",
+    "valid_email": "Valid email address is required",
+    "temporary_password": "The created user has a temporary password",
+    "send_new_password": "Please send the new password to the user.",
+    "send_temporary_password": "Be sure to copy the temporary password ON THIS SCREEN and send it to the user.",
+    "existing_email": "The following emails already exist"
+  },
+  "user_table": {
+    "administrator": "Administrator",
+    "edit_menu": "Edit Menu",
+    "reset_password": "Reset Password",
+    "administrator_menu": "Administrator Menu",
+    "accept": "Accept",
+    "deactivate_account": "Deactivate Account",
+    "your_own": "You cannot deactivate your own account",
+    "remove_admin_access": "Remove Admin Access",
+    "cannot_remove": "You cannot remove yourself from administrator",
+    "give_admin_access": "Give Admin Access"
+  },
+  "reset_password": "Reset Password",
+  "reset_password_modal": {
+    "password_never_seen": "The temporary password can never be retrieved after this screen is closed.",
+    "password_reset_message": "Let the user know the new password below and strongly recommend to change another one immediately.",
+    "send_new_password": "Please send the new password to the user.",
+    "target_user": "Target User",
+    "new_password": "New Password"
+  },
+  "invite": "Invite",
+  "invited": "User was invited",
+  "external_account": "External Account Management",
+  "external_account_list": "External Account List",
+  "back_to_user_management": "Back to User Management",
+  "authentication_provider": "Authentication Provider",
+  "manage": "Manage",
+  "password_setting": "Password Setting",
+  "password_setting_help": "Is password set?",
+  "set": "Yes",
+  "unset": "No",
+  "related_username": "Related user's ",
+  "cannot_invite_maximum_users": "Can not invite more than the maximum number of users.",
+  "current_users": "Current users:"
+}

+ 7 - 1
resource/locales/en-US/common/toaster.json

@@ -1,3 +1,9 @@
 {
-  "update_successed": "Succeeded to update {{target}} setting"
+  "update_successed": "Succeeded to update {{target}} setting",
+  "give_user_admin": "Succeeded to give {{username}} admin",
+  "remove_user_admin": "Succeeded to remove {{username}} admin ",
+  "activate_user_success": "Succeeded to activating {{username}}",
+  "deactivate_user_success": "Succeeded to deactivate {{username}}",
+  "remove_user_success": "Succeeded to removing {{username}} ",
+  "remove_external_user_success": "Succeeded to remove {{accountId}} "
 }

+ 0 - 43
resource/locales/en-US/translation.json

@@ -579,49 +579,6 @@
       "ifttt_link": "Create a new IFTTT applet with Email trigger"
     }
   },
-  "user_management": {
-    "target_user": "Target User",
-    "new_password": "New Password",
-    "invite_users": "Invite New Users",
-    "emails": "Emails",
-    "invite_thru_email": "Send Invitation Email",
-    "invite": "Invite",
-    "invited": "User was invited",
-    "give_admin_access": "Give Admin Access",
-    "remove_admin_access": "Remove Admin Access",
-    "external_account": "External Account Management",
-    "external_account_list": "External Account List",
-    "back_to_user_management": "Back to User Management",
-    "authentication_provider": "Authentication Provider",
-    "manage": "Manage",
-    "edit_menu": "Edit Menu",
-    "password_setting": "Password Setting",
-    "password_setting_help": "Is password set?",
-    "set": "Yes",
-    "unset": "No",
-    "temporary_password": "The created user has a temporary password",
-    "send_temporary_password": "Be sure to copy the temporary password ON THIS SCREEN and send it to the user.",
-    "password_reset_message": "Let the user know the new password below and strongly recommend to change another one immediately.",
-    "send_new_password": "Please send the new password to the user.",
-    "password_never_seen": "The temporary password can never be retrieved after this screen is closed.",
-    "reset_password": "Reset Password",
-    "related_username": "Related user's ",
-    "accept": "Accept",
-    "deactivate_account": "Deactivate Account",
-    "your_own": "You cannot deactivate your own account",
-    "administrator_menu": "Administrator Menu",
-    "cannot_remove": "You cannot remove yourself from administrator",
-    "cannot_invite_maximum_users": "Can not invite more than the maximum number of users.",
-    "current_users": "Current users:",
-    "valid_email": "Valid email address is required",
-    "existing_email": "The following emails already exist",
-    "give_user_admin": "Succeeded to give {{username}} admin",
-    "remove_user_admin": "Succeeded to remove {{username}} admin ",
-    "activate_user_success": "Succeeded to activating {{username}}",
-    "deactivate_user_success": "Succeeded to deactivate {{username}}",
-    "remove_user_success": "Succeeded to removing {{username}} ",
-    "remove_external_user_success": "Succeeded to remove {{accountId}} "
-  },
   "user_group_management": {
     "search_option": "Search Option",
     "enable_option": "Enable {{option}}",

+ 46 - 0
resource/locales/ja/admin/user_management.json

@@ -0,0 +1,46 @@
+{
+  "invite_users": "新規ユーザーの招待",
+  "invite_modal": {
+    "emails": "メールアドレス (複数行入力で複数人招待可能)",
+    "invite_thru_email": "招待をメールで送信",
+    "valid_email": "メールアドレスを入力してください。",
+    "temporary_password": "作成したユーザーは仮パスワードが設定されています。",
+    "send_new_password": "新規発行したパスワードを、対象ユーザーへ連絡してください。",
+    "send_temporary_password": "招待メールを送っていない場合、この画面で必ず仮パスワードをコピーし、招待者へ連絡してください。",
+    "existing_email": "以下のEmailはすでに存在しています。"
+  },
+  "user_table": {
+    "administrator": "管理者",
+    "edit_menu": "編集メニュー",
+    "reset_password": "パスワードの再発行",
+    "administrator_menu": "管理者メニュー",
+    "accept": "承認する",
+    "deactivate_account": "アカウント停止",
+    "your_own": "自分自身のアカウントを停止することはできません",
+    "remove_admin_access": "管理者から外す",
+    "cannot_remove": "自分自身を管理者から外すことはできません",
+    "give_admin_access": "管理者にする"
+  },
+  "reset_password": "パスワードのリセット",
+  "reset_password_modal": {
+    "password_never_seen": "表示されたパスワードはこの画面を閉じると二度と表示できませんのでご注意ください。",
+    "password_reset_message": "対象ユーザーに下記のパスワードを伝え、すぐに新しく別のパスワードを設定するよう伝えてください。",
+    "send_new_password": "新規発行したパスワードを、対象ユーザーへ連絡してください。",
+    "target_user": "対象ユーザー",
+    "new_password": "新しいパスワード"
+  },
+  "external_account": "外部アカウントの管理",
+  "invite": "招待する",
+  "invited": "ユーザーを招待しました",
+  "external_account_list": "外部アカウント一覧",
+  "back_to_user_management": "ユーザー管理に戻る",
+  "authentication_provider": "認証情報プロバイダ",
+  "manage": "操作",
+  "password_setting": "パスワード設定",
+  "password_setting_help": "関連付けられているユーザーがパスワードを設定しているかどうかを表示します",
+  "set": "設定済み",
+  "unset": "未設定",
+  "related_username": "関連付けられているユーザーの ",
+  "cannot_invite_maximum_users": "ユーザーが上限に達したため招待できません。",
+  "current_users": "現在のユーザー数:"
+}

+ 7 - 1
resource/locales/ja/common/toaster.json

@@ -1,3 +1,9 @@
 {
-  "update_successed": "{{target}}設定を更新しました"
+  "update_successed": "{{target}}設定を更新しました",
+  "give_user_admin": "{{username}}を管理者に設定しました",
+  "remove_user_admin": "{{username}}を管理者から外しました",
+  "activate_user_success": "{{username}}を有効化しました",
+  "deactivate_user_success": "{{username}}を無効化しました",
+  "remove_user_success": "{{username}}を削除しました",
+  "remove_external_user_success": "{{accountId}}を削除しました "
 }

+ 0 - 43
resource/locales/ja/translation.json

@@ -562,49 +562,6 @@
       "ifttt_link": "IFTTT でメールトリガの新しいアプレットを作る"
     }
   },
-  "user_management": {
-    "target_user": "対象ユーザー",
-    "new_password": "新しいパスワード",
-    "invite_users": "新規ユーザーの招待",
-    "emails": "メールアドレス (複数行入力で複数人招待可能)",
-    "invite_thru_email": "招待をメールで送信",
-    "invite": "招待する",
-    "invited": "ユーザーを招待しました",
-    "give_admin_access": "管理者にする",
-    "remove_admin_access": "管理者から外す",
-    "external_account": "外部アカウントの管理",
-    "external_account_list": "外部アカウント一覧",
-    "back_to_user_management": "ユーザー管理に戻る",
-    "authentication_provider": "認証情報プロバイダ",
-    "manage": "操作",
-    "edit_menu": "編集メニュー",
-    "password_setting": "パスワード設定",
-    "password_setting_help": "関連付けられているユーザーがパスワードを設定しているかどうかを表示します",
-    "set": "設定済み",
-    "unset": "未設定",
-    "temporary_password": "作成したユーザーは仮パスワードが設定されています。",
-    "send_temporary_password": "招待メールを送っていない場合、この画面で必ず仮パスワードをコピーし、招待者へ連絡してください。",
-    "password_reset_message": "対象ユーザーに下記のパスワードを伝え、すぐに新しく別のパスワードを設定するよう伝えてください。",
-    "send_new_password": "新規発行したパスワードを、対象ユーザーへ連絡してください。",
-    "password_never_seen": "表示されたパスワードはこの画面を閉じると二度と表示できませんのでご注意ください。",
-    "reset_password": "パスワードの再発行",
-    "related_username": "関連付けられているユーザーの ",
-    "accept": "承認する",
-    "deactivate_account": "アカウント停止",
-    "your_own": "自分自身のアカウントを停止することはできません",
-    "administrator_menu": "管理者メニュー",
-    "cannot_remove": "自分自身を管理者から外すことはできません",
-    "cannot_invite_maximum_users": "ユーザーが上限に達したため招待できません。",
-    "current_users": "現在のユーザー数:",
-    "valid_email": "メールアドレスを入力してください。",
-    "existing_email": "以下のEmailはすでに存在しています。",
-    "give_user_admin": "{{username}}を管理者に設定しました",
-    "remove_user_admin": "{{username}}を管理者から外しました",
-    "activate_user_success": "{{username}}を有効化しました",
-    "deactivate_user_success": "{{username}}を無効化しました",
-    "remove_user_success": "{{username}}を削除しました",
-    "remove_external_user_success": "{{accountId}}を削除しました "
-  },
   "user_group_management": {
     "search_option": "検索オプション",
     "enable_option": "{{option}}を有効にする",

+ 2 - 2
src/client/js/components/Admin/UserManagement.jsx

@@ -57,11 +57,11 @@ class UserManagement extends React.Component {
           <InviteUserControl />
           <a className="btn btn-default btn-outline ml-2" href="/admin/users/external-accounts">
             <i className="icon-user-follow" aria-hidden="true"></i>
-            { t('user_management.external_account') }
+            {t('user_management:external_account')}
           </a>
         </p>
 
-        <h2>{ t('User_Management') }</h2>
+        <h2>{t('User_Management')}</h2>
 
         {pager}
         <UserTable />

+ 2 - 2
src/client/js/components/Admin/Users/GiveAdminButton.jsx

@@ -20,7 +20,7 @@ class GiveAdminButton extends React.Component {
 
     try {
       const username = await this.props.adminUsersContainer.giveUserAdmin(this.props.user._id);
-      toastSuccess(t('user_management.give_user_admin', { username }));
+      toastSuccess(t('toaster:give_user_admin', { username }));
     }
     catch (err) {
       toastError(err);
@@ -32,7 +32,7 @@ class GiveAdminButton extends React.Component {
 
     return (
       <a className="px-4" onClick={() => { this.onClickGiveAdminBtn() }}>
-        <i className="icon-fw icon-user-following"></i> { t('user_management.give_admin_access') }
+        <i className="icon-fw icon-user-following"></i> {t('user_management:user_table.give_admin_access')}
       </a>
     );
   }

+ 1 - 1
src/client/js/components/Admin/Users/InviteUserControl.jsx

@@ -15,7 +15,7 @@ class InviteUserControl extends React.Component {
     return (
       <Fragment>
         <button type="button" className="btn btn-default" onClick={adminUsersContainer.toggleUserInviteModal}>
-          { t('user_management.invite_users') }
+          {t('user_management:invite_users')}
         </button>
         <UserInviteModal />
       </Fragment>

+ 8 - 8
src/client/js/components/Admin/Users/PasswordResetModal.jsx

@@ -41,12 +41,12 @@ class PasswordResetModal extends React.Component {
 
     return (
       <div>
-        <p className="alert alert-danger">{ t('user_management.password_reset_message') }</p>
+        <p className="alert alert-danger">{t('user_management:reset_password_modal.password_reset_message')}</p>
         <p>
-          { t('user_management.target_user') }: <code>{ user.email }</code>
+          {t('user_management:reset_password_modal.target_user')}: <code>{user.email}</code>
         </p>
         <p>
-          { t('user_management.new_password') }: <code>{ this.state.temporaryPassword }</code>
+          {t('user_management:reset_password_modal.new_password')}: <code>{this.state.temporaryPassword}</code>
         </p>
       </div>
     );
@@ -59,14 +59,14 @@ class PasswordResetModal extends React.Component {
     return (
       <div>
         <p>
-          { t('user_management.password_never_seen') }<br />
-          <span className="text-danger">{ t('user_management.send_new_password') }</span>
+          {t('user_management:reset_password_modal.password_never_seen')}<br />
+          <span className="text-danger">{t('user_management:reset_password_modal.send_new_password')}</span>
         </p>
         <p>
-          { t('user_management.target_user') }: <code>{ user.email }</code>
+          {t('user_management:reset_password_modal.target_user')}: <code>{user.email}</code>
         </p>
         <button type="submit" className="btn btn-primary" onClick={this.resetPassword}>
-          { t('user_management.reset_password')}
+          {t('user_management:reset_password')}
         </button>
       </div>
     );
@@ -88,7 +88,7 @@ class PasswordResetModal extends React.Component {
       <Modal show={adminUsersContainer.state.isPasswordResetModalShown} onHide={adminUsersContainer.hidePasswordResetModal}>
         <Modal.Header className="modal-header" closeButton>
           <Modal.Title>
-            { t('user_management.reset_password') }
+            {t('user_management:reset_password')}
           </Modal.Title>
         </Modal.Header>
         <Modal.Body>

+ 4 - 4
src/client/js/components/Admin/Users/RemoveAdminButton.jsx

@@ -20,7 +20,7 @@ class RemoveAdminButton extends React.Component {
 
     try {
       const username = await this.props.adminUsersContainer.removeUserAdmin(this.props.user._id);
-      toastSuccess(t('user_management.remove_user_admin', { username }));
+      toastSuccess(t('toaster:remove_user_admin', { username }));
     }
     catch (err) {
       toastError(err);
@@ -33,7 +33,7 @@ class RemoveAdminButton extends React.Component {
 
     return (
       <a className="px-4" onClick={() => { this.onClickRemoveAdminBtn() }}>
-        <i className="icon-fw icon-user-unfollow"></i> { t('user_management.remove_admin_access') }
+        <i className="icon-fw icon-user-unfollow"></i> {t('user_management:user_table.remove_admin_access')}
       </a>
     );
   }
@@ -43,8 +43,8 @@ class RemoveAdminButton extends React.Component {
 
     return (
       <div className="px-4">
-        <i className="icon-fw icon-user-unfollow mb-2"></i>{ t('user_management.remove_admin_access') }
-        <p className="alert alert-danger">{ t('user_management.cannot_remove') }</p>
+        <i className="icon-fw icon-user-unfollow mb-2"></i>{t('user_management:user_table.remove_admin_access')}
+        <p className="alert alert-danger">{t('user_management:user_table.cannot_remove')}</p>
       </div>
     );
   }

+ 2 - 2
src/client/js/components/Admin/Users/StatusActivateButton.jsx

@@ -20,7 +20,7 @@ class StatusActivateButton extends React.Component {
 
     try {
       const username = await this.props.adminUsersContainer.activateUser(this.props.user._id);
-      toastSuccess(t('user_management.activate_user_success', { username }));
+      toastSuccess(t('toaster:activate_user_success', { username }));
     }
     catch (err) {
       toastError(err);
@@ -32,7 +32,7 @@ class StatusActivateButton extends React.Component {
 
     return (
       <a className="px-4" onClick={() => { this.onClickAcceptBtn() }}>
-        <i className="icon-fw icon-user-following"></i> { t('user_management.accept') }
+        <i className="icon-fw icon-user-following"></i> {t('user_management:user_table.accept')}
       </a>
     );
   }

+ 4 - 4
src/client/js/components/Admin/Users/StatusSuspendedButton.jsx

@@ -20,7 +20,7 @@ class StatusSuspendedButton extends React.Component {
 
     try {
       const username = await this.props.adminUsersContainer.deactivateUser(this.props.user._id);
-      toastSuccess(t('user_management.deactivate_user_success', { username }));
+      toastSuccess(t('toaster:deactivate_user_success', { username }));
     }
     catch (err) {
       toastError(err);
@@ -32,7 +32,7 @@ class StatusSuspendedButton extends React.Component {
 
     return (
       <a className="px-4" onClick={() => { this.onClickDeactiveBtn() }}>
-        <i className="icon-fw icon-ban"></i> { t('user_management.deactivate_account') }
+        <i className="icon-fw icon-ban"></i> {t('user_management:user_table.deactivate_account')}
       </a>
     );
   }
@@ -42,8 +42,8 @@ class StatusSuspendedButton extends React.Component {
 
     return (
       <div className="px-4">
-        <i className="icon-fw icon-ban mb-2"></i>{ t('user_management.deactivate_account') }
-        <p className="alert alert-danger">{ t('user_management.your_own') }</p>
+        <i className="icon-fw icon-ban mb-2"></i>{t('user_management:user_table.deactivate_account')}
+        <p className="alert alert-danger">{t('user_management:user_table.your_own')}</p>
       </div>
     );
   }

+ 12 - 12
src/client/js/components/Admin/Users/UserInviteModal.jsx

@@ -44,7 +44,7 @@ class UserInviteModal extends React.Component {
 
     return (
       <>
-        <label> { t('user_management.emails') }</label>
+        <label> {t('user_management:invite_modal.emails')}</label>
         <textarea
           className="form-control"
           placeholder="e.g. user@growi.org"
@@ -52,7 +52,7 @@ class UserInviteModal extends React.Component {
           value={this.state.emailInputValue}
           onChange={this.handleInput}
         />
-        {!this.validEmail() && <p className="m-2 text-danger">{ t('user_management.valid_email') }</p>}
+        {!this.validEmail() && <p className="m-2 text-danger">{t('user_management:invite_modal.valid_email')}</p>}
       </>
     );
   }
@@ -63,8 +63,8 @@ class UserInviteModal extends React.Component {
 
     return (
       <>
-        <p>{t('user_management.temporary_password')}</p>
-        <p>{t('user_management.send_new_password')}</p>
+        <p>{t('user_management:invite_modal.temporary_password')}</p>
+        <p>{t('user_management:invite_modal.send_new_password')}</p>
         {invitedEmailList.createdUserList.length > 0 && this.renderCreatedEmail(invitedEmailList.createdUserList)}
         {invitedEmailList.existingEmailList.length > 0 && this.renderExistingEmail(invitedEmailList.existingEmailList)}
       </>
@@ -79,12 +79,12 @@ class UserInviteModal extends React.Component {
         <div className="checkbox checkbox-success text-left" onChange={this.handleCheckBox} style={{ flex: 1 }}>
           <input type="checkbox" id="sendEmail" className="form-check-input" name="sendEmail" defaultChecked={this.state.sendEmail} />
           <label htmlFor="sendEmail">
-            { t('user_management.invite_thru_email') }
+            {t('user_management:invite_modal.invite_thru_email')}
           </label>
         </div>
         <div>
           <Button bsStyle="danger" className="fcbtn btn btn-xs btn-danger btn-outline btn-rounded" onClick={this.onToggleModal}>
-          Cancel
+            Cancel
           </Button>
           <Button
             bsStyle="primary"
@@ -92,7 +92,7 @@ class UserInviteModal extends React.Component {
             onClick={this.handleSubmit}
             disabled={!this.validEmail()}
           >
-          Done
+            Done
           </Button>
         </div>
       </>
@@ -105,7 +105,7 @@ class UserInviteModal extends React.Component {
     return (
       <>
         <label className="mr-3 text-left text-danger" style={{ flex: 1 }}>
-          {t('user_management.send_temporary_password')}
+          {t('user_management:invite_modal.send_temporary_password')}
         </label>
         <Button
           bsStyle="primary"
@@ -138,7 +138,7 @@ class UserInviteModal extends React.Component {
 
     return (
       <>
-        <p className="text-warning">{ t('user_management.existing_email') }</p>
+        <p className="text-warning">{t('user_management:existing_email')}</p>
         <ul>
           {emailList.map((user) => {
             return (
@@ -188,16 +188,16 @@ class UserInviteModal extends React.Component {
       <Modal show={adminUsersContainer.state.isUserInviteModalShown} onHide={this.onToggleModal}>
         <Modal.Header className="modal-header" closeButton>
           <Modal.Title>
-            { t('user_management.invite_users') }
+            {t('user_management:invite_users')}
           </Modal.Title>
         </Modal.Header>
         <Modal.Body>
           {invitedEmailList == null ? this.renderModalBody()
-           : this.renderCreatedModalBody()}
+            : this.renderCreatedModalBody()}
         </Modal.Body>
         <Modal.Footer className="d-flex">
           {invitedEmailList == null ? this.renderModalFooter()
-           : this.renderCreatedModalFooter()}
+            : this.renderCreatedModalFooter()}
         </Modal.Footer>
       </Modal>
     );

+ 4 - 4
src/client/js/components/Admin/Users/UserMenu.jsx

@@ -33,10 +33,10 @@ class UserMenu extends React.Component {
 
     return (
       <Fragment>
-        <li className="dropdown-header">{ t('user_management.edit_menu') }</li>
+        <li className="dropdown-header">{t('user_management:user_table.edit_menu')}</li>
         <li onClick={this.onPasswordResetClicked}>
           <a>
-            <i className="icon-fw icon-key"></i>{ t('user_management.reset_password') }
+            <i className="icon-fw icon-key"></i>{t('user_management:user_table.reset_password')}
           </a>
         </li>
       </Fragment>
@@ -49,7 +49,7 @@ class UserMenu extends React.Component {
     return (
       <Fragment>
         <li className="divider"></li>
-        <li className="dropdown-header">{ t('status') }</li>
+        <li className="dropdown-header">{t('status')}</li>
         <li>
           {(user.status === 1 || user.status === 3) && <StatusActivateButton user={user} />}
           {user.status === 2 && <StatusSuspendedButton user={user} />}
@@ -65,7 +65,7 @@ class UserMenu extends React.Component {
     return (
       <Fragment>
         <li className="divider pl-0"></li>
-        <li className="dropdown-header">{ t('user_management.administrator_menu') }</li>
+        <li className="dropdown-header">{t('user_management:user_table.administrator_menu')}</li>
         <li>
           {user.admin === true && <RemoveAdminButton user={user} />}
           {user.admin === false && <GiveAdminButton user={user} />}

+ 2 - 2
src/client/js/components/Admin/Users/UserRemoveButton.jsx

@@ -21,7 +21,7 @@ class UserRemoveButton extends React.Component {
     try {
       await this.props.adminUsersContainer.removeUser(this.props.user._id);
       const { username } = this.props.user;
-      toastSuccess(t('user_management.remove_user_success', { username }));
+      toastSuccess(t('toaster:remove_user_success', { username }));
     }
     catch (err) {
       toastError(err);
@@ -33,7 +33,7 @@ class UserRemoveButton extends React.Component {
 
     return (
       <a className="px-4" onClick={() => { this.onClickDeleteBtn() }}>
-        <i className="icon-fw icon-fire text-danger"></i> { t('Delete') }
+        <i className="icon-fw icon-fire text-danger"></i> {t('Delete')}
       </a>
     );
   }

+ 7 - 7
src/client/js/components/Admin/Users/UserTable.jsx

@@ -70,12 +70,12 @@ class UserTable extends React.Component {
           <thead>
             <tr>
               <th width="100px">#</th>
-              <th>{ t('status') }</th>
+              <th>{t('status')}</th>
               <th><code>username</code></th>
-              <th>{ t('Name') }</th>
-              <th>{ t('Email') }</th>
-              <th width="100px">{ t('Created') }</th>
-              <th width="150px">{ t('Last_Login') }</th>
+              <th>{t('Name')}</th>
+              <th>{t('Email')}</th>
+              <th width="100px">{t('Created')}</th>
+              <th width="150px">{t('Last_Login')}</th>
               <th width="70px"></th>
             </tr>
           </thead>
@@ -85,7 +85,7 @@ class UserTable extends React.Component {
                 <tr key={user._id}>
                   <td>
                     <UserPicture user={user} className="picture img-circle" />
-                    {user.admin && <span className="label label-inverse label-admin ml-2">{ t('administrator') }</span>}
+                    {user.admin && <span className="label label-inverse label-admin ml-2">{t('user_management:user_table.administrator')}</span>}
                   </td>
                   <td>{this.getUserStatusLabel(user.status)}</td>
                   <td>
@@ -95,7 +95,7 @@ class UserTable extends React.Component {
                   <td>{user.email}</td>
                   <td>{dateFnsFormat(new Date(user.createdAt), 'yyyy-MM-dd')}</td>
                   <td>
-                    { user.lastLoginAt && <span>{dateFnsFormat(new Date(user.lastLoginAt), 'yyyy-MM-dd HH:mm')}</span> }
+                    {user.lastLoginAt && <span>{dateFnsFormat(new Date(user.lastLoginAt), 'yyyy-MM-dd HH:mm')}</span>}
                   </td>
                   <td>
                     <UserMenu user={user} />