OSDN Git Service

add the translation to the flash messages.
authorZhiting Lin <zlin035@uottawa.ca>
Sun, 22 Apr 2018 03:42:30 +0000 (11:42 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Sun, 22 Apr 2018 03:42:30 +0000 (11:42 +0800)
src/features/app/reducers.js
src/features/shared/components/Flash/Flash.jsx

index a059178..cbbb0b1 100644 (file)
@@ -24,27 +24,19 @@ export const flashMessages = (state = {}, action) => {
     }
 
     case 'CREATED_ACCOUNT': {
-      return newSuccess(state, <p>
-          Account has been created successfully.
-        </p>)
+      return newSuccess(state, 'CREATED_ACCOUNT')
     }
 
     case 'CREATED_ASSET': {
-      return newSuccess(state, <p>
-        Asset has been created successfully.
-      </p>)
+      return newSuccess(state, 'CREATED_ASSET')
     }
 
     case 'CREATED_TRANSACTION': {
-      return newSuccess(state, <p>
-        Transaction has been submitted successfully.
-      </p>)
+      return newSuccess(state, 'CREATED_TRANSACTION')
     }
 
     case 'CREATED_KEY': {
-      return newSuccess(state, <p>
-        Key has been created successfully.
-      </p>)
+      return newSuccess(state, 'CREATED_KEY')
     }
 
     case 'CREATED_TRANSACTIONFEED': {
@@ -66,9 +58,7 @@ export const flashMessages = (state = {}, action) => {
     }
 
     case 'RESET_PASSWORD_KEY': {
-      return newSuccess(state, <p>
-        Key password has been reset successfully.
-      </p>)
+      return newSuccess(state, 'RESET_PASSWORD_KEY')
     }
 
     case 'DELETE_ACCESS_TOKEN':
@@ -105,9 +95,7 @@ export const flashMessages = (state = {}, action) => {
     }
 
     case 'CREATE_REGISTER_ACCOUNT': {
-      return newSuccess(state, <p>
-          Default account and key have been initialized successfully.
-        </p>)
+      return newSuccess(state, 'CREATE_REGISTER_ACCOUNT')
     }
 
     case 'ERROR': {
@@ -119,7 +107,7 @@ export const flashMessages = (state = {}, action) => {
     }
 
     case 'RESTORE_SUCCESS': {
-      return newSuccess(state, <p>Wallet restore successfully</p>)
+      return newSuccess(state, 'RESTORE_SUCCESS')
     }
 
     default: {
index 434c662..a3d3b42 100644 (file)
@@ -1,6 +1,54 @@
 import React from 'react'
 import styles from './Flash.scss'
 
+const messageLabel ={
+  'CREATED_ASSET': <p>
+    Asset has been created successfully.
+  </p>,
+  'CREATED_ACCOUNT':  <p>
+    Account has been created successfully.
+  </p>,
+  'CREATED_TRANSACTION':  <p>
+    Transaction has been submitted successfully.
+  </p>,
+  'CREATED_KEY':  <p>
+    Key has been created successfully.
+  </p>,
+  'RESET_PASSWORD_KEY':  <p>
+    Key password has been reset successfully.
+  </p>,
+  'CREATE_REGISTER_ACCOUNT':  <p>
+    Default account and key have been initialized successfully.
+  </p>,
+  'RESTORE_SUCCESS': <p>
+    Wallet restore successfully
+  </p>
+}
+
+const messageZHLabel ={
+  'CREATED_ASSET': <p>
+    资产已经成功创建。
+  </p>,
+  'CREATED_ACCOUNT':  <p>
+    账户已经成功创建。
+  </p>,
+  'CREATED_TRANSACTION':  <p>
+    交易已经成功提交。
+  </p>,
+  'CREATED_KEY':  <p>
+    密钥已经成功创建。
+  </p>,
+  'RESET_PASSWORD_KEY':  <p>
+    密钥密码已经重置成功。
+  </p>,
+  'CREATE_REGISTER_ACCOUNT':  <p>
+    默认账户和密钥已经初始化成功。
+  </p>,
+  'RESTORE_SUCCESS': <p>
+    钱包已经成功恢复。
+  </p>
+}
+
 class Flash extends React.Component {
   componentWillReceiveProps(nextProps) {
     Object.keys(nextProps.messages).forEach(key => {
@@ -16,6 +64,7 @@ class Flash extends React.Component {
       return null
     }
 
+    const lang = this.props.lang
     const messages = []
     // Flash messages are stored in an objecty key with a random UUID. If
     // multiple messages are displayed, we rely on the browser maintaining
@@ -23,11 +72,13 @@ class Flash extends React.Component {
     // were created.
     Object.keys(this.props.messages).forEach(key => {
       const item = this.props.messages[key]
+      const messageKey = Object.keys(messageLabel).filter(key => key === item.message)
+      const messageContent = (lang ==='zh' ?  messageZHLabel[messageKey]: messageLabel[messageKey]) ||  item.message
       messages.push(
         <div className={`${styles.alert} ${styles[item.type]} ${styles.main}`} key={key}>
           <div className={styles.content}>
             {item.title && <div><strong>{item.title}</strong></div>}
-            {item.message}
+            {messageContent}
           </div>
 
           <button type='button' className='close' onClick={() => this.props.dismissFlash(key)}>
@@ -48,7 +99,8 @@ import { connect } from 'react-redux'
 
 const mapStateToProps = (state) => ({
   // hideFlash: state.tutorial.isShowing && state.routing.locationBeforeTransitions.pathname.includes(state.tutorial.route)
-  hideFlash: false
+  hideFlash: false,
+  lang: state.core.lang
 })
 
 export default connect(