浏览代码

update i18n

master
jason.lam 1年前
父节点
当前提交
a94c53fb78
共有 16 个文件被更改,包括 213 次插入73 次删除
  1. +4
    -1
      src/pages/DemandNote/Search_Public/SearchForm.js
  2. +2
    -2
      src/pages/Organization/DetailPage/OrganizationCard.js
  3. +3
    -2
      src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js
  4. +2
    -1
      src/pages/Payment/Search_Public/SearchForm.js
  5. +2
    -1
      src/pages/Proof/Search_Public/SearchForm.js
  6. +4
    -1
      src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js
  7. +3
    -2
      src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
  8. +8
    -2
      src/pages/authentication/BusRegister.js
  9. +7
    -1
      src/pages/authentication/IAmSmartRegister.js
  10. +8
    -2
      src/pages/authentication/Register.js
  11. +47
    -32
      src/pages/authentication/auth-forms/BusCustomFormWizard.js
  12. +31
    -16
      src/pages/authentication/auth-forms/CustomFormWizard.js
  13. +17
    -10
      src/pages/authentication/auth-forms/IAmSmartFormWizard.js
  14. +25
    -0
      src/translations/en.json
  15. +25
    -0
      src/translations/zh-CN.json
  16. +25
    -0
      src/translations/zh-HK.json

+ 4
- 1
src/pages/DemandNote/Search_Public/SearchForm.js 查看文件

@@ -12,6 +12,7 @@ import * as React from "react";
import * as ComboData from "utils/ComboData"; import * as ComboData from "utils/ComboData";
import * as DateUtils from "utils/DateUtils"; import * as DateUtils from "utils/DateUtils";
import * as FormatUtils from "utils/FormatUtils"; import * as FormatUtils from "utils/FormatUtils";
import {FormattedMessage} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




@@ -215,7 +216,9 @@ const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData
textTransform: 'capitalize', textTransform: 'capitalize',
alignItems: 'end' alignItems: 'end'
}}> }}>
<Typography variant="h5">重置</Typography>
<Typography variant="h5">
<FormattedMessage id="reset"/>
</Typography>
</Button> </Button>
</Grid> </Grid>




+ 2
- 2
src/pages/Organization/DetailPage/OrganizationCard.js 查看文件

@@ -56,8 +56,8 @@ const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => {
tel_countryCode: yup.string().min(3, displayErrorMsg('請輸入國際區號')), tel_countryCode: yup.string().min(3, displayErrorMsg('請輸入國際區號')),
phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')), phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')),
faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(), faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(),
brExpiryDate: yup.string().min(8).required(displayErrorMsg('請輸入商業登記證有效日期')),
brNo: yup.string().required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`請輸入有效商業登記證號碼`)), function (value) {
brExpiryDate: yup.string().min(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))),
brNo: yup.string().required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'}))).test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'}))), function (value) {
var brNo_pattern = /[0-9]{8}/ var brNo_pattern = /[0-9]{8}/
if (value !== undefined) { if (value !== undefined) {
if (value.match(brNo_pattern)) { if (value.match(brNo_pattern)) {


+ 3
- 2
src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js 查看文件

@@ -54,8 +54,9 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => {
tel_countryCode: yup.string().min(3, displayErrorMsg("請輸入國際區號")), tel_countryCode: yup.string().min(3, displayErrorMsg("請輸入國際區號")),
phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')), phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')),
faxNumber: yup.string().min(8).nullable(), faxNumber: yup.string().min(8).nullable(),
brExpiryDate: yup.string().min(8).required(displayErrorMsg('請輸入商業登記證有效日期')),
brNo: yup.string().max(8).required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`請輸入有效商業登記證號碼 (e.g. 12341234)`)), function (value) {
brExpiryDate: yup.string().min(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))),
brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'})))
.test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`)), function (value) {
var brNo_pattern = /[0-9]{8}/ var brNo_pattern = /[0-9]{8}/
if (value !== undefined) { if (value !== undefined) {
if (value.size==8 && value.match(brNo_pattern)) { if (value.size==8 && value.match(brNo_pattern)) {


+ 2
- 1
src/pages/Payment/Search_Public/SearchForm.js 查看文件

@@ -13,6 +13,7 @@ import * as DateUtils from "utils/DateUtils";
import * as ComboData from "utils/ComboData"; import * as ComboData from "utils/ComboData";
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react"; import {ThemeProvider} from "@emotion/react";
import {FormattedMessage} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




@@ -182,7 +183,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
variant="contained" variant="contained"
onClick={resetForm} onClick={resetForm}
> >
重置
<FormattedMessage id="reset"/>
</Button> </Button>
</Grid> </Grid>




+ 2
- 1
src/pages/Proof/Search_Public/SearchForm.js 查看文件

@@ -14,6 +14,7 @@ import * as DateUtils from "utils/DateUtils";
import * as FormatUtils from "utils/FormatUtils"; import * as FormatUtils from "utils/FormatUtils";
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react"; import {ThemeProvider} from "@emotion/react";
import {FormattedMessage} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




@@ -275,7 +276,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData
variant="contained" variant="contained"
onClick={resetForm} onClick={resetForm}
> >
重置
<FormattedMessage id="reset"/>
</Button> </Button>
</Grid> </Grid>




+ 4
- 1
src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js 查看文件

@@ -15,6 +15,7 @@ import {
} from "utils/Utils"; } from "utils/Utils";
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react"; import {ThemeProvider} from "@emotion/react";
import {FormattedMessage} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




@@ -212,7 +213,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
variant="contained" variant="contained"
onClick={resetForm} onClick={resetForm}
> >
<Typography variant="pnspsButtonText">重置</Typography>
<Typography variant="pnspsButtonText">
<FormattedMessage id="reset"/>
</Typography>
</Button> </Button>
</Grid> </Grid>




+ 3
- 2
src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js 查看文件

@@ -58,8 +58,9 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
fax_countryCode: yup.string().min(3, displayErrorMsg('請輸入3位數字')).nullable(), fax_countryCode: yup.string().min(3, displayErrorMsg('請輸入3位數字')).nullable(),
phoneNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).required(displayErrorMsg('請輸入聯絡電話')), phoneNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).required(displayErrorMsg('請輸入聯絡電話')),
faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(), faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(),
brExpiryDate: yup.string().min(8, displayErrorMsg('請輸入商業登記證有效日期')),
brNo: yup.string().max(8).required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(`請輸入有效商業登記證號碼 (e.g. 12341234)`), function (value) {
brExpiryDate: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))),
brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'})))
.test('checkBrNoFormat', displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`), function (value) {
var brNo_pattern = /[0-9]{8}/ var brNo_pattern = /[0-9]{8}/
if (value !== undefined) { if (value !== undefined) {
if (value.match(brNo_pattern)) { if (value.match(brNo_pattern)) {


+ 8
- 2
src/pages/authentication/BusRegister.js 查看文件

@@ -23,12 +23,11 @@ const AuthWrapper = Loadable(lazy(() => import('./AuthWrapperCustom')));
import axios from "axios"; import axios from "axios";
import { GET_USERNAME, POST_VERIFY_CAPTCHA } from "utils/ApiPathConst"; import { GET_USERNAME, POST_VERIFY_CAPTCHA } from "utils/ApiPathConst";
import {useTheme} from "@emotion/react"; import {useTheme} from "@emotion/react";
import {useIntl} from "react-intl";
// import CustomFormWizard from './auth-forms/BusCustomFormWizard'; // import CustomFormWizard from './auth-forms/BusCustomFormWizard';
// import AuthWrapper from './AuthWrapperCustom'; // import AuthWrapper from './AuthWrapperCustom';


// ================================|| REGISTER ||================================ // // ================================|| REGISTER ||================================ //
const steps = ['個人資料', '預覽', '完成提交'];

const BusRegister = () => { const BusRegister = () => {
const [activeStep, setActiveStep] = useState(0); const [activeStep, setActiveStep] = useState(0);
const [completed, setCompleted] = useState([false]); const [completed, setCompleted] = useState([false]);
@@ -37,6 +36,13 @@ const BusRegister = () => {
const [base64Url, setBase64Url] = useState("") const [base64Url, setBase64Url] = useState("")
const [checkCode, setCheckCode] = useState("") const [checkCode, setCheckCode] = useState("")
const theme = useTheme(); const theme = useTheme();
const intl = useIntl();
const steps = [
intl.formatMessage({id: 'personalInformation'}),
intl.formatMessage({id: 'preview'}),
intl.formatMessage({id: 'finishSubmission'})
];

const stepStyle = { const stepStyle = {
[theme.breakpoints.up('lg')]: { [theme.breakpoints.up('lg')]: {
width: '40%', width: '40%',


+ 7
- 1
src/pages/authentication/IAmSmartRegister.js 查看文件

@@ -22,6 +22,7 @@ import Loadable from 'components/Loadable';
import { lazy } from 'react'; import { lazy } from 'react';
import { notifyActionError } from 'utils/CommonFunction'; import { notifyActionError } from 'utils/CommonFunction';
import axios from "axios"; import axios from "axios";
import {useIntl} from "react-intl";
const CustomFormWizard = Loadable(lazy(() => import('./auth-forms/IAmSmartFormWizard'))); const CustomFormWizard = Loadable(lazy(() => import('./auth-forms/IAmSmartFormWizard')));
const AuthWrapper = Loadable(lazy(() => import('./AuthWrapperCustom'))); const AuthWrapper = Loadable(lazy(() => import('./AuthWrapperCustom')));
// ================================|| REGISTER ||================================ // // ================================|| REGISTER ||================================ //
@@ -49,7 +50,6 @@ const stepStyle = {
} }
} }
} }
const steps = ['個人資料', '預覽', '完成提交'];


const Register = () => { const Register = () => {
const [activeStep, setActiveStep] = useState(0); const [activeStep, setActiveStep] = useState(0);
@@ -58,6 +58,12 @@ const Register = () => {
const [base64Url, setBase64Url] = useState("") const [base64Url, setBase64Url] = useState("")
const [checkCode, setCheckCode] = useState("") const [checkCode, setCheckCode] = useState("")
const [idNo, setIdNo] = useState(""); const [idNo, setIdNo] = useState("");
const intl = useIntl();
const steps = [
intl.formatMessage({id: 'personalInformation'}),
intl.formatMessage({id: 'preview'}),
intl.formatMessage({id: 'finishSubmission'})
];


const totalSteps = () => { const totalSteps = () => {
return steps.length; return steps.length;


+ 8
- 2
src/pages/authentication/Register.js 查看文件

@@ -23,12 +23,11 @@ import { lazy } from 'react';
import { notifyActionError } from 'utils/CommonFunction'; import { notifyActionError } from 'utils/CommonFunction';
import axios from "axios"; import axios from "axios";
import {useTheme} from "@emotion/react"; import {useTheme} from "@emotion/react";
import {useIntl} from "react-intl";
const CustomFormWizard = Loadable(lazy(() => import('./auth-forms/CustomFormWizard'))); const CustomFormWizard = Loadable(lazy(() => import('./auth-forms/CustomFormWizard')));
const AuthWrapper = Loadable(lazy(() => import('./AuthWrapperCustom'))); const AuthWrapper = Loadable(lazy(() => import('./AuthWrapperCustom')));
// ================================|| REGISTER ||================================ // // ================================|| REGISTER ||================================ //


const steps = ['個人資料', '預覽', '完成提交'];

const Register = () => { const Register = () => {
const [activeStep, setActiveStep] = useState(0); const [activeStep, setActiveStep] = useState(0);
const [completed, setCompleted] = useState([false]); const [completed, setCompleted] = useState([false]);
@@ -37,6 +36,13 @@ const Register = () => {
const [base64Url, setBase64Url] = useState("") const [base64Url, setBase64Url] = useState("")
const [checkCode, setCheckCode] = useState("") const [checkCode, setCheckCode] = useState("")
const theme = useTheme(); const theme = useTheme();
const intl = useIntl();
const steps = [
intl.formatMessage({id: 'personalInformation'}),
intl.formatMessage({id: 'preview'}),
intl.formatMessage({id: 'finishSubmission'})
];

const stepStyle = { const stepStyle = {
[theme.breakpoints.up('lg')]: { [theme.breakpoints.up('lg')]: {
width: '40%', width: '40%',


+ 47
- 32
src/pages/authentication/auth-forms/BusCustomFormWizard.js 查看文件

@@ -505,7 +505,7 @@ const BusCustomFormWizard = (props) => {
.matches(/^(?=.*[A-Z])/, { message: displayErrorMsg('請包括最少1個大寫字母') }) .matches(/^(?=.*[A-Z])/, { message: displayErrorMsg('請包括最少1個大寫字母') })
.matches(/^(?=.*[0-9])/, { message: displayErrorMsg('請包括最少1個數字') }) .matches(/^(?=.*[0-9])/, { message: displayErrorMsg('請包括最少1個數字') })
.matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg('請包括最少1個特殊字符') }), .matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg('請包括最少1個特殊字符') }),
confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg('請確認密碼')).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')),
confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg(intl.formatMessage({id: 'pleaseConfirmPassword'}))).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')),
enName: yup.string().max(255).required(displayErrorMsg('請輸入英文姓名')), enName: yup.string().max(255).required(displayErrorMsg('請輸入英文姓名')),
enCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('No special characters $/^/*/(/)') }).when('chCompanyName', { enCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('No special characters $/^/*/(/)') }).when('chCompanyName', {
is: (chCompanyName) => !chCompanyName || chCompanyName.length === 0, is: (chCompanyName) => !chCompanyName || chCompanyName.length === 0,
@@ -525,8 +525,10 @@ const BusCustomFormWizard = (props) => {
faxCountryCode: yup.string().min(2, displayErrorMsg('請輸入最少2位數字')), faxCountryCode: yup.string().min(2, displayErrorMsg('請輸入最少2位數字')),
phone: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')).required(displayErrorMsg('請輸入聯絡電話')), phone: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')).required(displayErrorMsg('請輸入聯絡電話')),
fax: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')), fax: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')),
brExpiryDate: yup.date().min(new Date().toISOString().split("T")[0], displayErrorMsg('請輸入商業登記證有效日期')).max("2099-12-31", displayErrorMsg('請輸入商業登記證有效日期')).required(displayErrorMsg('請輸入商業登記證有效日期')),
brNo: yup.string().max(8).required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(`請輸入有效商業登記證號碼 (e.g. 12341234)`), function (value) {
brExpiryDate: yup.date().min(new Date().toISOString().split("T")[0], displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'})))
.max("2099-12-31", displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))).
required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))),
brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'}))).test('checkBrNoFormat', displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`), function (value) {
// var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ // var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/
var brNo_pattern = /[0-9]{8}/ var brNo_pattern = /[0-9]{8}/
if (value !== undefined) { if (value !== undefined) {
@@ -565,14 +567,20 @@ const BusCustomFormWizard = (props) => {
<Grid container spacing={3}> <Grid container spacing={3}>
<Grid item xs={12} md={12}> <Grid item xs={12} md={12}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Button variant="outlined" type="reset" onClick={handleReset.bind(null, formik.resetForm)} sx={{ height: '40px' }}><Typography variant="pnspsFormHeader">重置</Typography></Button>
<Button variant="outlined" type="reset" onClick={handleReset.bind(null, formik.resetForm)} sx={{ height: '40px' }}><Typography variant="pnspsFormHeader">
<FormattedMessage id="reset"/>
</Typography></Button>
<div style={{ borderBottom: "3px solid #1A4399", width: "100%", margin_right: "15px" }}> <div style={{ borderBottom: "3px solid #1A4399", width: "100%", margin_right: "15px" }}>
<Typography display="inline" variant="h3" sx={{ color: '#1A4399' }}> <Typography display="inline" variant="h3" sx={{ color: '#1A4399' }}>
<FormattedMessage id="becomeNewBusinessUser"/> <FormattedMessage id="becomeNewBusinessUser"/>
</Typography> </Typography>
</div> </div>
<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>註有*的項目必須輸入資料</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>你的登入資料</Typography>
<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>
<FormattedMessage id="requireString"/>
</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourLoginInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -697,7 +705,7 @@ const BusCustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="confirmPassword-signup"> <InputLabel htmlFor="confirmPassword-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
確認密碼
<FormattedMessage id="confirmPassword"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -731,7 +739,7 @@ const BusCustomFormWizard = (props) => {
</IconButton> </IconButton>
</InputAdornment> </InputAdornment>
} }
placeholder="確認密碼"
placeholder={intl.formatMessage({id: 'confirmPassword'})}
fullWidth fullWidth
error={Boolean(formik.touched.confirmPassword && formik.errors.confirmPassword)} error={Boolean(formik.touched.confirmPassword && formik.errors.confirmPassword)}
/> />
@@ -756,7 +764,9 @@ const BusCustomFormWizard = (props) => {
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" /*sx={{ color: '#1A4399' }}*/>你的機構/公司資料</Typography>
<Typography display="inline" variant="h4" /*sx={{ color: '#1A4399' }}*/>
<FormattedMessage id="yourBusinessInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -765,15 +775,14 @@ const BusCustomFormWizard = (props) => {


<Grid item xs={12} md={12}> <Grid item xs={12} md={12}>
<Typography variant="subtitle1"> <Typography variant="subtitle1">
•請輸入機構/公司英文名稱或中文名稱<br />
•Please enter the English/Chinese name of the organisation/company
•<FormattedMessage id="pleaseEnterOrgOrCompName"/>
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="enCompanyName-signup"> <InputLabel htmlFor="enCompanyName-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
機構/公司英文名稱
<FormattedMessage id="businessEngName"/>
</Typography> </Typography>
</InputLabel> </InputLabel>
<OutlinedInput <OutlinedInput
@@ -782,7 +791,7 @@ const BusCustomFormWizard = (props) => {
value={formik.values.enCompanyName} value={formik.values.enCompanyName}
name="enCompanyName" name="enCompanyName"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="與商業登記證相同"
placeholder={intl.formatMessage({id: 'sameAsBusinessRegistrationCert'})}
fullWidth fullWidth
error={Boolean(formik.touched.enCompanyName && formik.errors.enCompanyName && selectedAddress5 !== "內地")} error={Boolean(formik.touched.enCompanyName && formik.errors.enCompanyName && selectedAddress5 !== "內地")}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
@@ -805,7 +814,7 @@ const BusCustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="chCompanyName-signup"> <InputLabel htmlFor="chCompanyName-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
機構/公司中文名稱
<FormattedMessage id="businessChName"/>
</Typography> </Typography>
</InputLabel> </InputLabel>
<OutlinedInput <OutlinedInput
@@ -816,7 +825,7 @@ const BusCustomFormWizard = (props) => {
value={formik.values.chCompanyName.trim()} value={formik.values.chCompanyName.trim()}
name="chCompanyName" name="chCompanyName"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="與商業登記證相同"
placeholder={intl.formatMessage({id: 'sameAsBusinessRegistrationCert'})}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
@@ -837,7 +846,7 @@ const BusCustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="brNo-signup" sx={{ whiteSpace: 'pre-wrap', wordWrap: 'break-word' }}> <InputLabel htmlFor="brNo-signup" sx={{ whiteSpace: 'pre-wrap', wordWrap: 'break-word' }}>
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
商業登記證號碼 (e.g. 12341234)
<FormattedMessage id="businessRegCertNumber"/> (e.g. 12341234)
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -850,7 +859,7 @@ const BusCustomFormWizard = (props) => {
name="brNo" name="brNo"
onChange={formik.handleChange} onChange={formik.handleChange}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
placeholder="與商業登記證相同"
placeholder={intl.formatMessage({id: 'sameAsBusinessRegistrationCert'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -870,7 +879,7 @@ const BusCustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="brExpiryDate-signup"> <InputLabel htmlFor="brExpiryDate-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
商業登記證有效日期
<FormattedMessage id="businessRegCertValidityDate"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -883,7 +892,7 @@ const BusCustomFormWizard = (props) => {
name="brExpiryDate" name="brExpiryDate"
onChange={formik.handleChange} onChange={formik.handleChange}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
placeholder="與商業登記證相同"
placeholder={intl.formatMessage({id: 'sameAsBusinessRegistrationCert'})}
inputProps={{ inputProps={{
max: "2099-12-31", max: "2099-12-31",
min: new Date().toISOString().split("T")[0], min: new Date().toISOString().split("T")[0],
@@ -905,7 +914,7 @@ const BusCustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="address1-signup"> <InputLabel htmlFor="address1-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
地址
<FormattedMessage id="formAddress"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -916,7 +925,7 @@ const BusCustomFormWizard = (props) => {
value={formik.values.address1} value={formik.values.address1}
name="address1" name="address1"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第一行"
placeholder={intl.formatMessage({id: 'addressLine1'})}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
@@ -933,7 +942,7 @@ const BusCustomFormWizard = (props) => {
value={formik.values.address2} value={formik.values.address2}
name="address2" name="address2"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第二行"
placeholder={intl.formatMessage({id: 'addressLine2'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -949,7 +958,7 @@ const BusCustomFormWizard = (props) => {
value={formik.values.address3} value={formik.values.address3}
name="address3" name="address3"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第三行"
placeholder={intl.formatMessage({id: 'addressLine3'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -968,7 +977,9 @@ const BusCustomFormWizard = (props) => {
setSelectedAddress4(newValue); setSelectedAddress4(newValue);
}} }}
sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 3px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }} sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 3px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField {...params} placeholder="區域 (只適用於香港)" />}
renderInput={(params) => <TextField {...params}
placeholder={intl.formatMessage({id: 'region'})}
/>}
/> />
<Autocomplete <Autocomplete
disablePortal disablePortal
@@ -1414,7 +1425,9 @@ const BusCustomFormWizard = (props) => {
</Typography> </Typography>
</div> </div>
{/* <Typography mt={0.25} variant="h6" sx={{ fontSize: 12,color: '#f10000'}}>註有*的項目必須輸入資料</Typography> */} {/* <Typography mt={0.25} variant="h6" sx={{ fontSize: 12,color: '#f10000'}}>註有*的項目必須輸入資料</Typography> */}
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>你的登入資料</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourLoginInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -1434,7 +1447,9 @@ const BusCustomFormWizard = (props) => {
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" /*sx={{ color: '#1A4399' }}*/>你的機構/公司資料</Typography>
<Typography display="inline" variant="h4" /*sx={{ color: '#1A4399' }}*/>
<FormattedMessage id="yourBusinessInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -1444,7 +1459,7 @@ const BusCustomFormWizard = (props) => {
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
機構/公司英文名稱:
<FormattedMessage id="businessEngName"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader" id="preview-enCompanyName-signup"> <Typography variant="pnspsFormHeader" id="preview-enCompanyName-signup">
{formik.values.enCompanyName} {formik.values.enCompanyName}
@@ -1454,7 +1469,7 @@ const BusCustomFormWizard = (props) => {
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
機構/公司中文名稱:
<FormattedMessage id="businessChName"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader" id="preview-chCompanyName-signup"> <Typography variant="pnspsFormHeader" id="preview-chCompanyName-signup">
{formik.values.chCompanyName} {formik.values.chCompanyName}
@@ -1473,7 +1488,7 @@ const BusCustomFormWizard = (props) => {
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
商業登記證號碼:
<FormattedMessage id="businessRegCertNumber"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader" id="brNo-login"> <Typography variant="pnspsFormHeader" id="brNo-login">
{formik.values.brNo} {formik.values.brNo}
@@ -1483,7 +1498,7 @@ const BusCustomFormWizard = (props) => {
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
商業登記證有效日期:
<FormattedMessage id="businessRegCertValidityDate"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader" id="brExpiryDate-login"> <Typography variant="pnspsFormHeader" id="brExpiryDate-login">
{formik.values.brExpiryDate} {formik.values.brExpiryDate}
@@ -1494,7 +1509,7 @@ const BusCustomFormWizard = (props) => {
<Grid item xs={12}> <Grid item xs={12}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
地址:
<FormattedMessage id="formAddress"/>:
</Typography> </Typography>
<Stack spacing={1} direction="column"> <Stack spacing={1} direction="column">
<Typography variant="pnspsFormHeader" id="preview-address1-signup"> <Typography variant="pnspsFormHeader" id="preview-address1-signup">
@@ -1513,7 +1528,7 @@ const BusCustomFormWizard = (props) => {
{selectedAddress5 === "香港" ? {selectedAddress5 === "香港" ?
<Stack direction="row"> <Stack direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]} id="preview-address4-signup"> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]} id="preview-address4-signup">
區域 (只適用於香港):
<FormattedMessage id="region"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
{selectedAddress4} {selectedAddress4}


+ 31
- 16
src/pages/authentication/auth-forms/CustomFormWizard.js 查看文件

@@ -563,7 +563,7 @@ const CustomFormWizard = (props) => {
.matches(/^(?=.*[A-Z])/, { message: displayErrorMsg('請包括最少1個大寫字母') }) .matches(/^(?=.*[A-Z])/, { message: displayErrorMsg('請包括最少1個大寫字母') })
.matches(/^(?=.*[0-9])/, { message: displayErrorMsg('請包括最少1個數字') }) .matches(/^(?=.*[0-9])/, { message: displayErrorMsg('請包括最少1個數字') })
.matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg('請包括最少1個特殊字符') }), .matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg('請包括最少1個特殊字符') }),
confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg('請確認密碼')).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')),
confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg(intl.formatMessage({id: 'pleaseConfirmPassword'}))).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')),
enName: yup.string().max(255).required(displayErrorMsg('請輸入英文姓名')), enName: yup.string().max(255).required(displayErrorMsg('請輸入英文姓名')),
chName: yup.string().max(6).required(displayErrorMsg('請輸入中文姓名')), chName: yup.string().max(6).required(displayErrorMsg('請輸入中文姓名')),
address1: yup.string().max(255).required(displayErrorMsg('請輸入第一行地址')), address1: yup.string().max(255).required(displayErrorMsg('請輸入第一行地址')),
@@ -662,14 +662,22 @@ const CustomFormWizard = (props) => {
<Grid container spacing={3}> <Grid container spacing={3}>
<Grid item xs={12} md={12}> <Grid item xs={12} md={12}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Button variant="outlined" type="reset" onClick={handleReset.bind(null, formik.resetForm)} sx={{ height: '40px' }}><Typography variant="pnspsFormHeader">重置</Typography></Button>
<Button variant="outlined" type="reset" onClick={handleReset.bind(null, formik.resetForm)} sx={{ height: '40px' }}>
<Typography variant="pnspsFormHeader">
<FormattedMessage id="reset"/>
</Typography>
</Button>
<div style={{ borderBottom: "3px solid #1A4399", width: "100%", margin_right: "15px" }}> <div style={{ borderBottom: "3px solid #1A4399", width: "100%", margin_right: "15px" }}>
<Typography display="inline" variant="h3" sx={{ color: '#1A4399' }}> <Typography display="inline" variant="h3" sx={{ color: '#1A4399' }}>
<FormattedMessage id="becomeNewPersonalUser"/> <FormattedMessage id="becomeNewPersonalUser"/>
</Typography> </Typography>
</div> </div>
<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>註有*的項目必須輸入資料</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>你的登入資料</Typography>
<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>
<FormattedMessage id="requireString"/>
</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourLoginInformation"/>
</Typography>
</Stack> </Stack>
</Grid> </Grid>
<Grid item xs={12} md={12}> <Grid item xs={12} md={12}>
@@ -791,7 +799,7 @@ const CustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="confirmPassword-signup"> <InputLabel htmlFor="confirmPassword-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
確認密碼
<FormattedMessage id="confirmPassword"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -825,7 +833,7 @@ const CustomFormWizard = (props) => {
</IconButton> </IconButton>
</InputAdornment> </InputAdornment>
} }
placeholder="確認密碼"
placeholder={intl.formatMessage({id: 'confirmPassword'})}
fullWidth fullWidth
error={Boolean(formik.touched.confirmPassword && formik.errors.confirmPassword)} error={Boolean(formik.touched.confirmPassword && formik.errors.confirmPassword)}
/> />
@@ -850,7 +858,9 @@ const CustomFormWizard = (props) => {
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>你的個人資料</Typography>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourPersonalInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -1109,7 +1119,7 @@ const CustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="address1-signup"> <InputLabel htmlFor="address1-signup">
<Typography variant="pnspsFormHeader"> <Typography variant="pnspsFormHeader">
地址
<FormattedMessage id="formAddress"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
</Typography> </Typography>
</InputLabel> </InputLabel>
@@ -1120,7 +1130,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address1} value={formik.values.address1}
name="address1" name="address1"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第一行"
placeholder={intl.formatMessage({id: 'addressLine1'})}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
@@ -1137,7 +1147,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address2} value={formik.values.address2}
name="address2" name="address2"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第二行"
placeholder={intl.formatMessage({id: 'addressLine2'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -1153,7 +1163,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address3} value={formik.values.address3}
name="address3" name="address3"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第三行"
placeholder={intl.formatMessage({id: 'addressLine3'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -1172,7 +1182,8 @@ const CustomFormWizard = (props) => {
setSelectedAddress4(newValue); setSelectedAddress4(newValue);
}} }}
sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 3px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }} sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 3px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField {...params} placeholder="區域 (只適用於香港)" />}
renderInput={(params) => <TextField {...params} placeholder={intl.formatMessage({id: 'region'})}
/>}
/> />
<Autocomplete <Autocomplete
disablePortal disablePortal
@@ -1584,7 +1595,9 @@ const CustomFormWizard = (props) => {
</Typography> </Typography>
</div> </div>
{/* <Typography mt={0.25} variant="h6" sx={{ fontSize: 12,color: '#f10000'}}>註有*的項目必須輸入資料</Typography> */} {/* <Typography mt={0.25} variant="h6" sx={{ fontSize: 12,color: '#f10000'}}>註有*的項目必須輸入資料</Typography> */}
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>你的登入資料</Typography>
<Typography mt={0.25} variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourLoginInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -1604,7 +1617,9 @@ const CustomFormWizard = (props) => {
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>你的個人資料</Typography>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourPersonalInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -1662,7 +1677,7 @@ const CustomFormWizard = (props) => {
<Grid item xs={12}> <Grid item xs={12}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
地址:
<FormattedMessage id="formAddress"/>:
</Typography> </Typography>
<Stack spacing={1} direction="column"> <Stack spacing={1} direction="column">
<Typography variant="pnspsFormHeader" id="preview-address1-signup"> <Typography variant="pnspsFormHeader" id="preview-address1-signup">
@@ -1681,7 +1696,7 @@ const CustomFormWizard = (props) => {
{selectedAddress5 == ("香港") ? {selectedAddress5 == ("香港") ?
<Stack direction="row"> <Stack direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]} id="preview-address4-signup"> <Typography variant="pnspsFormHeader" color={theme.palette.grey[600]} id="preview-address4-signup">
區域 (只適用於香港):
<FormattedMessage id="region"/>:
</Typography> </Typography>
<Typography variant="pnspsFormHeader">{selectedAddress4}</Typography> <Typography variant="pnspsFormHeader">{selectedAddress4}</Typography>
</Stack> </Stack>


+ 17
- 10
src/pages/authentication/auth-forms/IAmSmartFormWizard.js 查看文件

@@ -397,7 +397,9 @@ const CustomFormWizard = (props) => {
</Typography><img src={iAmSmartICon} alt="iAM Smart" width="50" /> </Typography><img src={iAmSmartICon} alt="iAM Smart" width="50" />
</div> </div>


<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>註有*的項目必須輸入資料。</Typography>
<Typography mt={0.25} variant="h6" sx={{ color: '#f10000' }}>
<FormattedMessage id="requireString"/>。
</Typography>
<Stack mt={1} direction="row" style={{ alignItems: "center" }}><img src={iAmSmartICon} alt="iAM Smart" width="25" /><Typography mt={0.25} variant="h6" >: 表示該項由「智方便」提供。</Typography></Stack> <Stack mt={1} direction="row" style={{ alignItems: "center" }}><img src={iAmSmartICon} alt="iAM Smart" width="25" /><Typography mt={0.25} variant="h6" >: 表示該項由「智方便」提供。</Typography></Stack>


</Stack> </Stack>
@@ -406,7 +408,9 @@ const CustomFormWizard = (props) => {
<Grid container spacing={1}> <Grid container spacing={1}>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>你的個人資料</Typography>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourPersonalInformation"/>
</Typography>
</Stack> </Stack>
</Grid> </Grid>
<Grid item xs={12} md={12} > <Grid item xs={12} md={12} >
@@ -443,7 +447,7 @@ const CustomFormWizard = (props) => {
<Stack spacing={1}> <Stack spacing={1}>
<InputLabel htmlFor="address1-signup"> <InputLabel htmlFor="address1-signup">
<Typography variant="h5"> <Typography variant="h5">
地址
<FormattedMessage id="formAddress"/>
<span style={{ color: '#f10000' }}>*</span> <span style={{ color: '#f10000' }}>*</span>
{iAmSmartData.address1?<img src={iAmSmartICon} alt="iAM Smart" width="25" />:null} {iAmSmartData.address1?<img src={iAmSmartICon} alt="iAM Smart" width="25" />:null}
</Typography> </Typography>
@@ -455,7 +459,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address1} value={formik.values.address1}
name="address1" name="address1"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第一行"
placeholder={intl.formatMessage({id: 'addressLine1'})}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
@@ -472,7 +476,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address2} value={formik.values.address2}
name="address2" name="address2"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第二行"
placeholder={intl.formatMessage({id: 'addressLine2'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -488,7 +492,7 @@ const CustomFormWizard = (props) => {
value={formik.values.address3} value={formik.values.address3}
name="address3" name="address3"
onChange={formik.handleChange} onChange={formik.handleChange}
placeholder="第三行"
placeholder={intl.formatMessage({id: 'addressLine3'})}
inputProps={{ inputProps={{
onKeyDown: (e) => { onKeyDown: (e) => {
if (e.key === 'Enter') { if (e.key === 'Enter') {
@@ -507,7 +511,8 @@ const CustomFormWizard = (props) => {
setSelectedAddress4(newValue); setSelectedAddress4(newValue);
}} }}
sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 0px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }} sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 0px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField {...params} placeholder="區域 (只適用於香港)" />}
renderInput={(params) => <TextField {...params} placeholder={intl.formatMessage({id: 'region'})}
/>}
/> />
<Autocomplete <Autocomplete
disablePortal disablePortal
@@ -890,7 +895,9 @@ const CustomFormWizard = (props) => {
<Grid container spacing={2}> <Grid container spacing={2}>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>
<Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}> <Stack direction="column" justifyContent="space-between" alignItems="baseline" sx={{ mb: { xs: -0.5, sm: 0.5 } }}>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>你的個人資料</Typography>
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="yourPersonalInformation"/>
</Typography>
{/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary"> {/* <Typography component={Link} to="/login" variant="body1" sx={{ textDecoration: 'none' }} color="primary">
Already have an account? Already have an account?
</Typography> */} </Typography> */}
@@ -930,7 +937,7 @@ const CustomFormWizard = (props) => {
<Grid item xs={12}> <Grid item xs={12}>
<Stack spacing={1} direction="row"> <Stack spacing={1} direction="row">
<Typography variant="h5" color={theme.palette.grey[600]}> <Typography variant="h5" color={theme.palette.grey[600]}>
地址:
<FormattedMessage id="formAddress"/>:
</Typography> </Typography>
<Stack spacing={1} direction="column"> <Stack spacing={1} direction="column">
<Typography variant="h5" id="preview-address1-signup"> <Typography variant="h5" id="preview-address1-signup">
@@ -949,7 +956,7 @@ const CustomFormWizard = (props) => {
{selectedAddress5 == ("香港") ? {selectedAddress5 == ("香港") ?
<Stack direction="row"> <Stack direction="row">
<Typography variant="h5" color={theme.palette.grey[600]} id="preview-address4-signup"> <Typography variant="h5" color={theme.palette.grey[600]} id="preview-address4-signup">
區域 (只適用於香港):
<FormattedMessage id="region"/>:
</Typography> </Typography>
<Typography variant="h5">{selectedAddress4}</Typography> <Typography variant="h5">{selectedAddress4}</Typography>
</Stack> </Stack>


+ 25
- 0
src/translations/en.json 查看文件

@@ -48,6 +48,31 @@
"userPhoneNumber": "Mobile Phone Number", "userPhoneNumber": "Mobile Phone Number",
"userAddress": "Residential Address", "userAddress": "Residential Address",


"personalInformation": "Personal Information",
"yourPersonalInformation": "Your Personal Information",
"yourLoginInformation": "Your Login Information",
"yourBusinessInformation": "Your Organization/Company Information",
"businessEngName": "English name of Organization/Company",
"businessChName": "Chinese name of Organization/Company",
"preview": "Preview",
"finishSubmission": "Finish Submission",
"reset": "reset",
"requireString": "Items marked with * must be filled in",
"confirmPassword": "Confirm password",
"pleaseConfirmPassword": "Please confirm password",
"pleaseEnterOrgOrCompName": "Please enter the English/Chinese name of the organisation/company",
"sameAsBusinessRegistrationCert": "Same as Business Registration Certificate",
"businessRegCertNumber": "Business Reg Cert Number",
"pleaseFillInBusinessRegCertNumber": "Please fill in Business Registration Certificate Number",
"pleaseFillInValidBusinessRegCertNumber": "Please fill in valid Business Registration Certificate Number",
"businessRegCertValidityDate": "Business Reg Cert validity date",
"pleaseFillInBusinessRegCertValidityDate": "Please fill in Business Reg Cert validity date",
"formAddress": "Address",
"addressLine1": "First line",
"addressLine2": "Second line",
"addressLine3": "Third line",
"region": "Region (only applicable to Hong Kong)",

"Dashboard": "Dashboard", "Dashboard": "Dashboard",
"event": "Event" "event": "Event"
} }

+ 25
- 0
src/translations/zh-CN.json 查看文件

@@ -48,6 +48,31 @@
"userPhoneNumber": "手机号码", "userPhoneNumber": "手机号码",
"userAddress": "住宅地址", "userAddress": "住宅地址",


"personalInformation": "个人资料",
"yourPersonalInformation": "你的个人资料",
"yourLoginInformation": "你的登入资料",
"yourBusinessInformation": "你的机构/公司资料",
"businessEngName": "机构/公司英文名称",
"businessChName": "机构/公司中文名称",
"preview": "预览",
"finishSubmission": "完成提交",
"reset": "重置",
"requireString": "注有*的项目必须输入资料",
"confirmPassword": "确认密码",
"pleaseConfirmPassword": "请确认密码",
"pleaseEnterOrgOrCompName": "请输入机构/公司英文名称或中文名称",
"sameAsBusinessRegistrationCert": "与商业登记证相同",
"businessRegCertNumber": "商业登记证号码",
"pleaseFillInBusinessRegCertNumber": "请输入商业登记证号码",
"pleaseFillInValidBusinessRegCertNumber": "请输入有效商业登记证号码",
"businessRegCertValidityDate": "商业登记证有效日期",
"pleaseFillInBusinessRegCertValidityDate": "请输入商业登记证有效日期",
"formAddress": "地址",
"addressLine1": "第一行",
"addressLine2": "第二行",
"addressLine3": "第三行",
"region": "区域 (只适用于香港)",

"Dashboard": "仪表板", "Dashboard": "仪表板",
"event": "活动" "event": "活动"
} }

+ 25
- 0
src/translations/zh-HK.json 查看文件

@@ -48,6 +48,31 @@
"userPhoneNumber": "手機號碼", "userPhoneNumber": "手機號碼",
"userAddress": "住宅地址", "userAddress": "住宅地址",


"personalInformation": "個人資料",
"yourPersonalInformation": "你的個人資料",
"yourLoginInformation": "你的登入資料",
"yourBusinessInformation": "你的機構/公司資料",
"businessEngName": "機構/公司英文名稱",
"businessChName": "機構/公司中文名稱",
"preview": "預覽",
"finishSubmission": "完成提交",
"reset": "重置",
"requireString": "註有*的項目必須輸入資料",
"confirmPassword": "確認密碼",
"pleaseConfirmPassword": "請確認密碼",
"pleaseEnterOrgOrCompName": "請輸入機構/公司英文名稱或中文名稱",
"sameAsBusinessRegistrationCert": "與商業登記證相同",
"businessRegCertNumber": "商業登記證號碼",
"pleaseFillInBusinessRegCertNumber": "請輸入商業登記證號碼",
"pleaseFillInValidBusinessRegCertNumber": "請輸入有效商業登記證號碼",
"businessRegCertValidityDate": "商業登記證有效日期",
"pleaseFillInBusinessRegCertValidityDate": "請輸入商業登記證有效日期",
"formAddress": "地址",
"addressLine1": "第一行",
"addressLine2": "第二行",
"addressLine3": "第三行",
"region": "區域 (只適用於香港)",

"Dashboard": "儀表板", "Dashboard": "儀表板",
"event": "活動" "event": "活動"
} }

正在加载...
取消
保存