| @@ -81,7 +81,9 @@ const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData | |||||
| <Grid item xs={12}> | <Grid item xs={12}> | ||||
| <CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
| <Grid item justifyContent="space-between" alignItems="center"> | <Grid item justifyContent="space-between" alignItems="center"> | ||||
| <Typography variant="h5">搜尋</Typography> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="search"/> | |||||
| </Typography> | |||||
| </Grid> | </Grid> | ||||
| </CardContent> | </CardContent> | ||||
| </Grid> | </Grid> | ||||
| @@ -10,7 +10,7 @@ import * as FormatUtils from "utils/FormatUtils" | |||||
| import { FiDataGrid } from "components/FiDataGrid"; | import { FiDataGrid } from "components/FiDataGrid"; | ||||
| import * as DateUtils from "utils/DateUtils" | import * as DateUtils from "utils/DateUtils" | ||||
| import {useTheme} from "@emotion/react"; | import {useTheme} from "@emotion/react"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| import {FormattedMessage, useIntl} from "react-intl"; | |||||
| // import * as Utils from "utils/Utils" | // import * as Utils from "utils/Utils" | ||||
| // ==============================|| EVENT TABLE ||============================== // | // ==============================|| EVENT TABLE ||============================== // | ||||
| @@ -19,6 +19,8 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
| const [total, setTotal] = React.useState(0); | const [total, setTotal] = React.useState(0); | ||||
| const theme = useTheme(); | const theme = useTheme(); | ||||
| const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | ||||
| const intl = useIntl(); | |||||
| const { locale } = intl; | |||||
| //const intl = useIntl(); | //const intl = useIntl(); | ||||
| React.useEffect(() => { | React.useEffect(() => { | ||||
| @@ -45,24 +47,25 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
| { | { | ||||
| id: 'appNo', | id: 'appNo', | ||||
| field: 'appNo', | field: 'appNo', | ||||
| headerName:'項目', | |||||
| headerName: intl.formatMessage({id: 'terms'}), | |||||
| width: isMdOrLg ? 'auto' : 300, | width: isMdOrLg ? 'auto' : 300, | ||||
| flex: isMdOrLg ? 1 : undefined, | flex: isMdOrLg ? 1 : undefined, | ||||
| renderCell: (params) => { | renderCell: (params) => { | ||||
| let appNo = params.row.appNo; | let appNo = params.row.appNo; | ||||
| // console.log(params) | // console.log(params) | ||||
| return <div style={{ margin: 4, textAlign:"left"}}>憲報第6號副刊公告<br/> | |||||
| return <div style={{ margin: 4, textAlign:"left"}}> | |||||
| <FormattedMessage id="gazetteSampleName"/><br/> | |||||
| {isORGLoggedIn()?<>Care Of: {params.row.careOf}<br /></>:null} | {isORGLoggedIn()?<>Care Of: {params.row.careOf}<br /></>:null} | ||||
| <FormattedMessage id="applicationId"/>: {appNo}<br/> | <FormattedMessage id="applicationId"/>: {appNo}<br/> | ||||
| 憲報日期: {DateUtils.dateStr_Cht(params.row.issueDate)}<br/> | |||||
| 長度: {params.row.length+ " cm"}</div> | |||||
| <FormattedMessage id="gazetteDate"/>: {locale === 'en' ? DateUtils.dateStr(params.row.issueDate) : DateUtils.dateStr_Cht(params.row.issueDate)}<br/> | |||||
| <FormattedMessage id="gazetteLength"/>: {params.row.length+ " cm"}</div> | |||||
| }, | }, | ||||
| }, | }, | ||||
| { | { | ||||
| id: 'fee', | id: 'fee', | ||||
| field: 'fee', | field: 'fee', | ||||
| headerName: '金額 (HK$)', | |||||
| width: 150, | |||||
| headerName: intl.formatMessage({id: 'currencyPrice'}) + ' (HK$)', | |||||
| width: 200, | |||||
| valueGetter: (params) => { | valueGetter: (params) => { | ||||
| return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | ||||
| } | } | ||||
| @@ -23,6 +23,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('../Details_Public/Payme | |||||
| const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| width: '100%', | width: '100%', | ||||
| @@ -159,7 +160,9 @@ const AckPage = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -204,7 +207,9 @@ const AckPage = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentCancel"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -246,7 +251,9 @@ const AckPage = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentFail"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -254,7 +254,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:FPS付款</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentFPSPay"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -269,7 +269,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:FPS付款</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentFPSPay"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -23,6 +23,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('../Details_Public/Payme | |||||
| const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| width: '100%', | width: '100%', | ||||
| @@ -146,7 +147,9 @@ const Fpscallback = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -198,7 +201,9 @@ const Fpscallback = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentCancel"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -235,7 +240,9 @@ const Fpscallback = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentFail"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -149,7 +149,7 @@ const MultiPaymentWindow = (props) => { | |||||
| <center> | <center> | ||||
| <Grid item xs={12} md={12} width="100%"> | <Grid item xs={12} md={12} width="100%"> | ||||
| <Typography variant="h5" sx={{ textAlign: "left" }}> | <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
| 交易參考編號: {transactionData.transactionid} | |||||
| <FormattedMessage id="transactionRefNo"/>: {transactionData.transactionid} | |||||
| </Typography> | </Typography> | ||||
| {/* <Typography variant="h5" sx={{ textAlign: "left" }}> | {/* <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
| @@ -163,7 +163,7 @@ const MultiPaymentWindow = (props) => { | |||||
| <Grid container spacing={1} direction="row" justifyContent="flex-start" alignItems="center"> | <Grid container spacing={1} direction="row" justifyContent="flex-start" alignItems="center"> | ||||
| <Grid item> | <Grid item> | ||||
| <Typography variant="h5" sx={{ textAlign: "left" }}> | <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
| 請選擇付款方法: | |||||
| <FormattedMessage id="selectPaymentMethod"/>: | |||||
| </Typography> | </Typography> | ||||
| </Grid> | </Grid> | ||||
| <Grid item> | <Grid item> | ||||
| @@ -203,7 +203,7 @@ const MultiPaymentWindow = (props) => { | |||||
| <Grid container direction="row" justifyContent="flex-start" alignItems="center"> | <Grid container direction="row" justifyContent="flex-start" alignItems="center"> | ||||
| <Grid item> | <Grid item> | ||||
| <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center" }}> | <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center" }}> | ||||
| 已選擇付款方法: | |||||
| <FormattedMessage id="selectedPaymentMethod"/>: | |||||
| </FormLabel> | </FormLabel> | ||||
| </Grid> | </Grid> | ||||
| <Grid item> | <Grid item> | ||||
| @@ -217,7 +217,7 @@ const MultiPaymentWindow = (props) => { | |||||
| </Grid>: | </Grid>: | ||||
| <Grid container direction="row" justifyContent="center" alignItems="center"> | <Grid container direction="row" justifyContent="center" alignItems="center"> | ||||
| <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center"}}> | <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center"}}> | ||||
| 付款功能現在不可用。 | |||||
| <FormattedMessage id="paymentMethodNotAvailable"/>。 | |||||
| </FormLabel> | </FormLabel> | ||||
| </Grid> | </Grid> | ||||
| } | } | ||||
| @@ -247,12 +247,12 @@ const MultiPaymentWindow = (props) => { | |||||
| <Stack direction="row" justifyContent="space-around"> | <Stack direction="row" justifyContent="space-around"> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button variant="contained" onClick={() => props.setOpen(false)} autoFocus > | <Button variant="contained" onClick={() => props.setOpen(false)} autoFocus > | ||||
| 取消 | |||||
| <FormattedMessage id="cancel"/> | |||||
| </Button> | </Button> | ||||
| </DialogActions> | </DialogActions> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button variant="contained" color="success" onClick={confirmPaymentHandle()} disabled={paymentMethod === ""}> | <Button variant="contained" color="success" onClick={confirmPaymentHandle()} disabled={paymentMethod === ""}> | ||||
| 確認 | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Button> | </Button> | ||||
| </DialogActions> | </DialogActions> | ||||
| </Stack> | </Stack> | ||||
| @@ -20,6 +20,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('./Details_Public/Paymen | |||||
| const DataGrid = Loadable(React.lazy(() => import('./Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('./Details_Public/DataGrid'))); | ||||
| import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const BackgroundHead = { | const BackgroundHead = { | ||||
| backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
| width: '100%', | width: '100%', | ||||
| @@ -162,7 +163,9 @@ const Index = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -207,7 +210,9 @@ const Index = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentCancel"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -249,7 +254,9 @@ const Index = () => { | |||||
| <Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePaymentFail"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -68,7 +68,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
| {/*row 1*/} | {/*row 1*/} | ||||
| <CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
| <Grid item justifyContent="space-between" alignItems="center" > | <Grid item justifyContent="space-between" alignItems="center" > | ||||
| <Typography variant="h4">搜尋</Typography> | |||||
| <Typography variant="h4"> | |||||
| <FormattedMessage id="search"/> | |||||
| </Typography> | |||||
| </Grid> | </Grid> | ||||
| </CardContent> | </CardContent> | ||||
| @@ -394,7 +394,9 @@ const Index = () => { | |||||
| <Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
| <div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
| <Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款</Typography> | |||||
| <Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
| <FormattedMessage id="publicNoticePayment"/> | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </div> | </div> | ||||
| </Grid> | </Grid> | ||||
| @@ -428,7 +430,8 @@ const Index = () => { | |||||
| // color="error" | // color="error" | ||||
| onClick={() => { navigate("/publicNotice") }} | onClick={() => { navigate("/publicNotice") }} | ||||
| sx={{ mt: 4 }} | sx={{ mt: 4 }} | ||||
| >取消 | |||||
| > | |||||
| <FormattedMessage id="cancel"/> | |||||
| </Button> | </Button> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| </Stack> | </Stack> | ||||
| @@ -446,7 +449,9 @@ const Index = () => { | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -96,7 +96,7 @@ const Index = () => { | |||||
| <center> | <center> | ||||
| <Grid item xs={12} md={8} > | <Grid item xs={12} md={8} > | ||||
| <Typography variant="h3" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | <Typography variant="h3" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | ||||
| 公共啟事:校對完成及付款 | |||||
| <FormattedMessage id="publicNoticePaymentProofDoneAndPaid"/> | |||||
| </Typography> | </Typography> | ||||
| <Typography variant="h4" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}> | <Typography variant="h4" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}> | ||||
| @@ -162,12 +162,19 @@ const Index = () => { | |||||
| </DialogTitle> | </DialogTitle> | ||||
| <DialogContent style={{ display: 'flex', }}> | <DialogContent style={{ display: 'flex', }}> | ||||
| <Stack direction="column" justifyContent="space-between"> | <Stack direction="column" justifyContent="space-between"> | ||||
| <Typography variant="h4">總額(HK$): {FormatUtils.currencyFormat(fee)}</Typography> | |||||
| <Typography variant="h4"> | |||||
| <FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(fee)} | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
| <Button onClick={() => setIsPopUp(false)}> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -79,7 +79,7 @@ const Index = () => { | |||||
| <center> | <center> | ||||
| <Grid item xs={12} md={8} > | <Grid item xs={12} md={8} > | ||||
| <Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | <Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | ||||
| 公共啟事:校對完成 | |||||
| <FormattedMessage id="publicNoticePaymentProofDone"/> | |||||
| </Typography> | </Typography> | ||||
| @@ -66,7 +66,7 @@ const ApplicationDetailCard = ({ formData, }) => { | |||||
| content={false} | content={false} | ||||
| > | > | ||||
| <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | ||||
| 公共啟事:校對資料 | |||||
| <FormattedMessage id="publicNoticePaymentProofInfo"/> | |||||
| </Typography> | </Typography> | ||||
| <form> | <form> | ||||
| <Grid container direction="column"> | <Grid container direction="column"> | ||||
| @@ -143,7 +143,7 @@ const FormPanel = ({ formData }) => { | |||||
| content={false}> | content={false}> | ||||
| <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | ||||
| 公共啟事:校對回覆 | |||||
| <FormattedMessage id="publicNoticePaymentProofComment"/> | |||||
| </Typography> | </Typography> | ||||
| <form onSubmit={formik.handleSubmit}> | <form onSubmit={formik.handleSubmit}> | ||||
| @@ -102,7 +102,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData | |||||
| {/*row 1*/} | {/*row 1*/} | ||||
| <CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
| <Grid item justifyContent="space-between" alignItems="center"> | <Grid item justifyContent="space-between" alignItems="center"> | ||||
| <Typography variant="h4">搜尋</Typography> | |||||
| <Typography variant="h4"> | |||||
| <FormattedMessage id="search"/> | |||||
| </Typography> | |||||
| </Grid> | </Grid> | ||||
| </CardContent> | </CardContent> | ||||
| @@ -246,7 +246,7 @@ const PublicNoticeApplyForm = ({ loadedData, selections }) => { | |||||
| } | } | ||||
| <Grid item xs={12} md={12} lg={12}> | <Grid item xs={12} md={12} lg={12}> | ||||
| {FieldUtils.getTextArea({ | {FieldUtils.getTextArea({ | ||||
| label: "備註:", | |||||
| label: intl.formatMessage({id: 'extraMark'}) + ":", | |||||
| valueName: "remarks", | valueName: "remarks", | ||||
| form: formik, | form: formik, | ||||
| inputProps: { maxLength: 255 } | inputProps: { maxLength: 255 } | ||||
| @@ -40,7 +40,7 @@ import DownloadIcon from '@mui/icons-material/Download'; | |||||
| 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 * as React from "react"; | import * as React from "react"; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| import {FormattedMessage, useIntl} from "react-intl"; | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const ApplicationDetailCard = ( | const ApplicationDetailCard = ( | ||||
| { applicationDetailData, | { applicationDetailData, | ||||
| @@ -64,6 +64,7 @@ const ApplicationDetailCard = ( | |||||
| // getValues | // getValues | ||||
| } = useForm(); | } = useForm(); | ||||
| const navigate = useNavigate(); | const navigate = useNavigate(); | ||||
| const intl = useIntl(); | |||||
| useEffect(() => { | useEffect(() => { | ||||
| //if user data from parent are not null | //if user data from parent are not null | ||||
| @@ -166,11 +167,10 @@ const ApplicationDetailCard = ( | |||||
| onClick={cancelledClick()} | onClick={cancelledClick()} | ||||
| color="edit" | color="edit" | ||||
| disabled={currentApplicationDetailData.status !== "submitted"} | disabled={currentApplicationDetailData.status !== "submitted"} | ||||
| title={"取消"} | |||||
| title={intl.formatMessage({id: 'cancel'})} | |||||
| startIcon={<CloseIcon />} | startIcon={<CloseIcon />} | ||||
| > | > | ||||
| 取消 | |||||
| <FormattedMessage id="cancel"/> | |||||
| </Button> | </Button> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| </Stack> | </Stack> | ||||
| @@ -564,7 +564,9 @@ const ApplicationDetailCard = ( | |||||
| <Grid container alignItems={"center"}> | <Grid container alignItems={"center"}> | ||||
| <Grid item xs={12} md={3} lg={3} | <Grid item xs={12} md={3} lg={3} | ||||
| sx={{ display: 'flex', alignItems: 'center' }}> | sx={{ display: 'flex', alignItems: 'center' }}> | ||||
| <FormLabel><Typography variant="h5">備註:</Typography></FormLabel> | |||||
| <FormLabel><Typography variant="h5"> | |||||
| <FormattedMessage id="extraMark"/>: | |||||
| </Typography></FormLabel> | |||||
| </Grid> | </Grid> | ||||
| <Grid item xs={12} md={9} lg={9}> | <Grid item xs={12} md={9} lg={9}> | ||||
| <Typography variant="h5">{currentApplicationDetailData.remarks}</Typography> | <Typography variant="h5">{currentApplicationDetailData.remarks}</Typography> | ||||
| @@ -592,12 +594,18 @@ const ApplicationDetailCard = ( | |||||
| </DialogTitle> | </DialogTitle> | ||||
| <DialogContent style={{ display: 'flex', }}> | <DialogContent style={{ display: 'flex', }}> | ||||
| <Stack direction="column" justifyContent="space-between"> | <Stack direction="column" justifyContent="space-between"> | ||||
| <Typography variant="h4">總額(HK$): {FormatUtils.currencyFormat(fee)}</Typography> | |||||
| <Typography variant="h4"> | |||||
| <FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(fee)} | |||||
| </Typography> | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
| <Button onClick={() => setIsPopUp(false)}><Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -613,7 +621,10 @@ const ApplicationDetailCard = ( | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setErrorPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => setErrorPopUp(false)}> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -20,6 +20,7 @@ import { useFormik,FormikProvider } from 'formik'; | |||||
| import * as yup from 'yup'; | import * as yup from 'yup'; | ||||
| 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"; | |||||
| const StatusChangeDialog = (props) => { | const StatusChangeDialog = (props) => { | ||||
| @@ -83,7 +84,7 @@ const StatusChangeDialog = (props) => { | |||||
| autoFocus | autoFocus | ||||
| color="delete" | color="delete" | ||||
| > | > | ||||
| 取消 | |||||
| <FormattedMessage id="cancel"/> | |||||
| </Button> | </Button> | ||||
| </DialogActions> | </DialogActions> | ||||
| <DialogActions> | <DialogActions> | ||||
| @@ -93,7 +94,7 @@ const StatusChangeDialog = (props) => { | |||||
| onClick={acceptedHandle()} | onClick={acceptedHandle()} | ||||
| autoFocus | autoFocus | ||||
| > | > | ||||
| 確定 | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Button> | </Button> | ||||
| </DialogActions> | </DialogActions> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| @@ -223,14 +223,15 @@ export default function SubmittedTab({ rows }) { | |||||
| </Typography> | </Typography> | ||||
| ({DateUtils.datetimeStr(datas[i].created)}) | ({DateUtils.datetimeStr(datas[i].created)}) | ||||
| </Stack> | </Stack> | ||||
| 備註: {datas[i].remarks} | |||||
| <FormattedMessage id="extraMark"/>: {datas[i].remarks} | |||||
| <br /><br /> | <br /><br /> | ||||
| </>); | </>); | ||||
| totalAmount += datas[i].fee; | totalAmount += datas[i].fee; | ||||
| } | } | ||||
| content.push(<Typography variant="h5"> | content.push(<Typography variant="h5"> | ||||
| 總額(HK$): {FormatUtils.currencyFormat(totalAmount)} <br /><br /> | |||||
| <FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(totalAmount)} | |||||
| <br /><br /> | |||||
| </Typography>); | </Typography>); | ||||
| //setAmount(totalAmount); | //setAmount(totalAmount); | ||||
| return content; | return content; | ||||
| @@ -353,8 +354,13 @@ export default function SubmittedTab({ rows }) { | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
| <Button onClick={() => setIsPopUp(false)}> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| <Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -371,8 +377,13 @@ export default function SubmittedTab({ rows }) { | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setCheckCareOf(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => afterWarningPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
| <Button onClick={() => setCheckCareOf(false)}> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| <Button onClick={() => afterWarningPayment()}><Typography variant="h5"> | |||||
| <FormattedMessage id="confirm"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -389,7 +400,10 @@ export default function SubmittedTab({ rows }) { | |||||
| </Stack> | </Stack> | ||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
| <Button onClick={() => setExpiryDateErr(false)}> | |||||
| <Typography variant="h5"> | |||||
| <FormattedMessage id="close"/> | |||||
| </Typography></Button> | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </div> | ||||
| @@ -65,7 +65,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
| {/*row 1*/} | {/*row 1*/} | ||||
| <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:marginBottom}}> | <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:marginBottom}}> | ||||
| <Typography variant="pnspsFormTitle" > | <Typography variant="pnspsFormTitle" > | ||||
| 搜尋 | |||||
| <FormattedMessage id="search"/> | |||||
| </Typography> | </Typography> | ||||
| </Grid> | </Grid> | ||||
| {/*row 2*/} | {/*row 2*/} | ||||
| @@ -224,7 +224,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
| variant="contained" | variant="contained" | ||||
| type="submit" | type="submit" | ||||
| > | > | ||||
| <Typography variant="pnspsButtonText">搜尋</Typography> | |||||
| <Typography variant="pnspsButtonText"> | |||||
| <FormattedMessage id="search"/> | |||||
| </Typography> | |||||
| </Button> | </Button> | ||||
| </Grid> | </Grid> | ||||
| </ThemeProvider> | </ThemeProvider> | ||||
| @@ -97,9 +97,9 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
| id: 'status', | id: 'status', | ||||
| field: 'status', | field: 'status', | ||||
| headerName: intl.formatMessage({id: 'status'}), | headerName: intl.formatMessage({id: 'status'}), | ||||
| width: 160, | |||||
| width: 200, | |||||
| renderCell: (params) => { | renderCell: (params) => { | ||||
| return [StatusUtils.getStatus(params)] | |||||
| return [StatusUtils.getStatusIntl(params, intl)] | |||||
| }, | }, | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -16,6 +16,7 @@ import { | |||||
| DialogTitle | DialogTitle | ||||
| } from '@mui/material'; | } from '@mui/material'; | ||||
| import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; | import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; | ||||
| import {FormattedMessage} from "react-intl"; | |||||
| const PasswordAlertDialog = (props) => { | const PasswordAlertDialog = (props) => { | ||||
| return ( | return ( | ||||
| @@ -54,7 +55,7 @@ const PasswordAlertDialog = (props) => { | |||||
| </DialogContent> | </DialogContent> | ||||
| <DialogActions> | <DialogActions> | ||||
| <Button variant="contained" color="error" onClick={props.handleClose} autoFocus> | <Button variant="contained" color="error" onClick={props.handleClose} autoFocus> | ||||
| 關閉 | |||||
| <FormattedMessage id="close"/> | |||||
| </Button> | </Button> | ||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| @@ -6,6 +6,9 @@ | |||||
| "PNSPS": "PNSPS", | "PNSPS": "PNSPS", | ||||
| "HKSARGOV": "HKSAR Government", | "HKSARGOV": "HKSAR Government", | ||||
| "Gazette": "Gazette", | "Gazette": "Gazette", | ||||
| "gazetteDate": "GazetteDate", | |||||
| "gazetteLength": "length", | |||||
| "gazetteSampleName": "Gazette Supplement No. 6", | |||||
| "registerTitle1": "Become", | "registerTitle1": "Become", | ||||
| "registerTitle2": "Gazette Notice", | "registerTitle2": "Gazette Notice", | ||||
| @@ -20,6 +23,15 @@ | |||||
| "mainPage": "Main Page", | "mainPage": "Main Page", | ||||
| "myPublicNotice": "My Public Notice", | "myPublicNotice": "My Public Notice", | ||||
| "publicNoticePayment": "Public Notice: Payment", | |||||
| "publicNoticePaymentFail": "Public Notice: Payment Failed", | |||||
| "publicNoticePaymentSuccess": "Public Notice: Payment Success", | |||||
| "publicNoticePaymentCancel": "Public Notice: Payment Canceled", | |||||
| "publicNoticePaymentFPSPay": "Public Notice: FPS Payment", | |||||
| "publicNoticePaymentProofDone": "Public Notice: Proofreading completed", | |||||
| "publicNoticePaymentProofDoneAndPaid": "Public Notice: Proofreading Completed and Payment", | |||||
| "publicNoticePaymentProofComment": "Public Notice: Proofreading Reply", | |||||
| "publicNoticePaymentProofInfo": "Public Notice: Proofreading Information", | |||||
| "proofRecord": "Proof Record", | "proofRecord": "Proof Record", | ||||
| "onlinePaymentHistory": "Online Payment History", | "onlinePaymentHistory": "Online Payment History", | ||||
| "setting": "Setting", | "setting": "Setting", | ||||
| @@ -218,6 +230,15 @@ | |||||
| "requireContactPerson": "Please enter contact person", | "requireContactPerson": "Please enter contact person", | ||||
| "search": "Search", | "search": "Search", | ||||
| "cancel": "Cancel", | "cancel": "Cancel", | ||||
| "extraMark": "Remarks", | |||||
| "totalAmount": "Total Amount", | |||||
| "close": "Close", | |||||
| "confirm": "Confirm", | |||||
| "terms": "Terms", | |||||
| "currencyPrice": "Price", | |||||
| "transactionRefNo": "Transaction Reference Number", | |||||
| "selectedPaymentMethod": "Selected payment method", | |||||
| "paymentMethodNotAvailable":"The payment function is currently not available", | |||||
| "Dashboard": "Dashboard", | "Dashboard": "Dashboard", | ||||
| "event": "Event" | "event": "Event" | ||||
| @@ -6,6 +6,9 @@ | |||||
| "PNSPS": "公共启事提交及缴费系统", | "PNSPS": "公共启事提交及缴费系统", | ||||
| "HKSARGOV": "香港特别行政区政府", | "HKSARGOV": "香港特别行政区政府", | ||||
| "Gazette": "宪报", | "Gazette": "宪报", | ||||
| "gazetteDate": "宪报日期", | |||||
| "gazetteLength": "长度", | |||||
| "gazetteSampleName": "宪报第6号副刊公告", | |||||
| "registerTitle1": "立即成为", | "registerTitle1": "立即成为", | ||||
| "registerTitle2": "宪报刊登公告", | "registerTitle2": "宪报刊登公告", | ||||
| @@ -20,6 +23,15 @@ | |||||
| "mainPage": "主页", | "mainPage": "主页", | ||||
| "myPublicNotice": "我的公共启事", | "myPublicNotice": "我的公共启事", | ||||
| "publicNoticePayment": "公共启事:付款", | |||||
| "publicNoticePaymentFail": "公共启事:付款失败", | |||||
| "publicNoticePaymentSuccess": "公共启事:付款成功", | |||||
| "publicNoticePaymentCancel": "公共启事:付款取消", | |||||
| "publicNoticePaymentFPSPay": "公共启事:FPS付款", | |||||
| "publicNoticePaymentProofDone": "公共启事:校对完成", | |||||
| "publicNoticePaymentProofDoneAndPaid": "公共启事:校对完成及付款", | |||||
| "publicNoticePaymentProofComment": "公共启事:校对回覆", | |||||
| "publicNoticePaymentProofInfo": "公共启事:校对资料", | |||||
| "proofRecord": "校对记录", | "proofRecord": "校对记录", | ||||
| "onlinePaymentHistory": "网上付款记录", | "onlinePaymentHistory": "网上付款记录", | ||||
| "setting": "设置", | "setting": "设置", | ||||
| @@ -218,6 +230,15 @@ | |||||
| "requireContactPerson": "请输入联络人", | "requireContactPerson": "请输入联络人", | ||||
| "search": "搜寻", | "search": "搜寻", | ||||
| "cancel": "取消", | "cancel": "取消", | ||||
| "extraMark": "备注", | |||||
| "totalAmount": "总额", | |||||
| "close": "关闭", | |||||
| "confirm": "确认", | |||||
| "terms": "项目", | |||||
| "currencyPrice": "金额", | |||||
| "transactionRefNo": "交易參考編號", | |||||
| "selectedPaymentMethod": "已選擇付款方法", | |||||
| "paymentMethodNotAvailable":"付款功能現在不可用", | |||||
| "Dashboard": "仪表板", | "Dashboard": "仪表板", | ||||
| "event": "活动" | "event": "活动" | ||||
| @@ -6,6 +6,9 @@ | |||||
| "PNSPS": "公共啟事提交及繳費系統", | "PNSPS": "公共啟事提交及繳費系統", | ||||
| "HKSARGOV": "香港特別行政區政府", | "HKSARGOV": "香港特別行政區政府", | ||||
| "Gazette": "憲報", | "Gazette": "憲報", | ||||
| "gazetteDate": "憲報日期", | |||||
| "gazetteLength": "長度", | |||||
| "gazetteSampleName": "憲報第6號副刊公告", | |||||
| "registerTitle1": "立即成為", | "registerTitle1": "立即成為", | ||||
| "registerTitle2": "憲報刊登公告", | "registerTitle2": "憲報刊登公告", | ||||
| @@ -20,6 +23,15 @@ | |||||
| "mainPage": "主頁", | "mainPage": "主頁", | ||||
| "myPublicNotice": "我的公共啟事", | "myPublicNotice": "我的公共啟事", | ||||
| "publicNoticePayment": "公共啟事:付款", | |||||
| "publicNoticePaymentFail": "公共啟事:付款失敗", | |||||
| "publicNoticePaymentSuccess": "公共啟事:付款成功", | |||||
| "publicNoticePaymentCancel": "公共啟事:付款取消", | |||||
| "publicNoticePaymentFPSPay": "公共啟事:FPS付款", | |||||
| "publicNoticePaymentProofDone": "公共啟事:校對完成", | |||||
| "publicNoticePaymentProofDoneAndPaid": "公共啟事:校對完成及付款", | |||||
| "publicNoticePaymentProofComment": "公共啟事:校對回覆", | |||||
| "publicNoticePaymentProofInfo": "公共啟事:校對資料", | |||||
| "proofRecord": "校對記錄", | "proofRecord": "校對記錄", | ||||
| "onlinePaymentHistory": "網上付款記錄", | "onlinePaymentHistory": "網上付款記錄", | ||||
| "setting": "設定", | "setting": "設定", | ||||
| @@ -218,6 +230,15 @@ | |||||
| "requireContactPerson": "請輸入聯絡人", | "requireContactPerson": "請輸入聯絡人", | ||||
| "search": "搜尋", | "search": "搜尋", | ||||
| "cancel": "取消", | "cancel": "取消", | ||||
| "extraMark": "備註", | |||||
| "totalAmount": "總額", | |||||
| "close": "關閉", | |||||
| "confirm": "確認", | |||||
| "terms": "項目", | |||||
| "currencyPrice": "金額", | |||||
| "transactionRefNo": "交易參考編號", | |||||
| "selectedPaymentMethod": "已選擇付款方法", | |||||
| "paymentMethodNotAvailable":"付款功能現在不可用", | |||||
| "Dashboard": "儀表板", | "Dashboard": "儀表板", | ||||
| "event": "活動" | "event": "活動" | ||||