Selaa lähdekoodia

update i18n

master
jason.lam 1 vuosi sitten
vanhempi
commit
fa20a76cda
11 muutettua tiedostoa jossa 155 lisäystä ja 39 poistoa
  1. +3
    -2
      src/pages/Organization/DetailPage/OrganizationCard.js
  2. +3
    -2
      src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js
  3. +5
    -3
      src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js
  4. +3
    -2
      src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
  5. +1
    -1
      src/pages/authentication/auth-forms/BusCustomFormWizard.js
  6. +24
    -20
      src/pages/authentication/auth-forms/CustomFormWizard.js
  7. +1
    -1
      src/pages/authentication/auth-forms/IAmSmartFormWizard.js
  8. +33
    -0
      src/translations/en.json
  9. +35
    -2
      src/translations/zh-CN.json
  10. +33
    -0
      src/translations/zh-HK.json
  11. +14
    -6
      src/utils/ComboData.js

+ 3
- 2
src/pages/Organization/DetailPage/OrganizationCard.js Näytä tiedosto

@@ -17,12 +17,13 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo
import Loadable from 'components/Loadable';
import { lazy } from 'react';
import { notifySaveSuccess } from 'utils/CommonFunction';
import {useIntl} from "react-intl";

// ==============================|| DASHBOARD - DEFAULT ||============================== //


const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => {
const intl = useIntl();
const [creditorConfirmPopUp, setCreditorConfirmPopUp] = React.useState(false);
const [nonCreditorConfirmPopUp, setNonCreditorConfirmPopUp] = React.useState(false);

@@ -371,7 +372,7 @@ const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => {
label: FieldUtils.notNullFieldLabel("District:"),
valueName: "district",
disabled: (!editMode && !createMode),
dataList: ComboData.district,
dataList: ComboData.district(intl),
form: formik
})}
</Grid>


+ 3
- 2
src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js Näytä tiedosto

@@ -17,12 +17,13 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo
import Loadable from 'components/Loadable';
import { lazy } from 'react';
import { notifyCreateSuccess } from 'utils/CommonFunction';
import {useIntl} from "react-intl";

// ==============================|| DASHBOARD - DEFAULT ||============================== //


const OrganizationCard_loadFromUser = ({ userData, userId }) => {
const intl = useIntl();
const [currentUserData, setCurrentUserData] = useState(userData);
const navigate = useNavigate();
const [onReady, setOnReady] = useState(false);
@@ -235,7 +236,7 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => {
{FieldUtils.getComboField({
label: FieldUtils.notNullFieldLabel("District:"),
valueName: "district",
dataList: ComboData.district,
dataList: ComboData.district(intl),
form: formik
})}
</Grid>


+ 5
- 3
src/pages/User/DetailsPage_Individual/UserInformationCard_Individual.js Näytä tiedosto

@@ -16,11 +16,13 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo
import Loadable from 'components/Loadable';
import { lazy } from 'react';
import { notifyActiveSuccess, notifyLockSuccess, notifySaveSuccess, notifyVerifySuccess } from 'utils/CommonFunction';
import {useIntl} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== //


const UserInformationCard_Individual = ({ formData, loadDataFun }) => {

const intl = useIntl();
const [currentUserData, setCurrentUserData] = useState(formData);
const [editMode, setEditMode] = useState(false);
const [locked, setLocked] = useState(false);
@@ -46,7 +48,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => {
emailAddress: yup.string().email(intl.formatMessage({id: 'validEmailFormat'})).max(255).required(intl.formatMessage({id: 'requireEmail'})),
identification: yup.string().min(7, "請輸入證件號碼").required('請輸入證件號碼'),
checkDigit: yup.string().max(1).required('請輸入括號內的數字或字母').nullable(),
idDocType: yup.string().max(255).required('請輸入證件類別'),
idDocType: yup.string().max(255).required(intl.formatMessage({id: 'requireIdDocType'})),
tel_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})).required(intl.formatMessage({id: 'requireDialingCode'})),
fax_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})),
phoneNumber: yup.string().min(8, intl.formatMessage({id: 'require8Number'})).required(intl.formatMessage({id: 'requireContactNumber'})),
@@ -351,7 +353,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => {
valueName: "identification",
disabled: (!editMode),
form: formik,
placeholder: "證件號碼",
placeholder: intl.formatMessage({id: 'idDocNumber'}),
inputProps: {
maxLength: 7,
onKeyDown: (e) => {
@@ -496,7 +498,7 @@ const UserInformationCard_Individual = ({ formData, loadDataFun }) => {
{FieldUtils.getComboField({
label: "District:",
valueName: "district",
dataList: ComboData.district,
dataList: ComboData.district(intl),
disabled: (!editMode),
form: formik
})}


+ 3
- 2
src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js Näytä tiedosto

@@ -17,6 +17,7 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo
import Loadable from 'components/Loadable';
import { lazy } from 'react';
import { notifyActiveSuccess, notifyLockSuccess, notifySaveSuccess, notifyVerifySuccess } from 'utils/CommonFunction';
import {useIntl} from "react-intl";
// ==============================|| DASHBOARD - DEFAULT ||============================== //


@@ -30,7 +31,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
const [confirmAction, setConfirmAction] = React.useState();
const [editMode, setEditMode] = React.useState(false);
const [onReady, setOnReady] = React.useState(false);
const intl = useIntl();
React.useEffect(() => {
//if state data are ready and assign to different field
// console.log(currentApplicationDetailData)
@@ -563,7 +564,7 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
{FieldUtils.getComboField({
label: "District:",
valueName: "district",
dataList: ComboData.district,
dataList: ComboData.district(intl),
disabled: true,
form: formik
})}


+ 1
- 1
src/pages/authentication/auth-forms/BusCustomFormWizard.js Näytä tiedosto

@@ -101,7 +101,7 @@ const BusCustomFormWizard = (props) => {
const [checkEmail, setCheckEmail] = useState(false)
const [checkEmailBlur, setCheckEmailBlur] = useState(false)

const address4ComboList = ComboData.district;
const address4ComboList = ComboData.district(intl);
const address5ComboList = ComboData.country(intl);
const termsAndCon = "此網址由香港特別行政區政府物流服務署製作及管理。本署會盡力確保網址上的資料無誤,\n"
+ "但有絕對酌情權隨時刪除、暫停登載或編輯各項資料而無須給予任何理由。\n由於任何與網址"


+ 24
- 20
src/pages/authentication/auth-forms/CustomFormWizard.js Näytä tiedosto

@@ -102,7 +102,7 @@ const CustomFormWizard = (props) => {
const [checkEmailBlur, setCheckEmailBlur] = useState(false)

const idDocTypeComboList = ComboData.idDocType;
const address4ComboList = ComboData.district;
const address4ComboList = ComboData.district(intl);
const address5ComboList = ComboData.country(intl);
const termsAndCon = "此網址由香港特別行政區政府物流服務署製作及管理。本署會盡力確保網址上的資料無誤,\n"
+ "但有絕對酌情權隨時刪除、暫停登載或編輯各項資料而無須給予任何理由。\n由於任何與網址"
@@ -626,7 +626,7 @@ const CustomFormWizard = (props) => {
}
}),
checkDigit: yup.string().max(1).required(displayErrorMsg('請輸入括號內的數字或字母')),
idDocType: yup.string().max(255).required(displayErrorMsg('請輸入證件類別')),
idDocType: yup.string().max(255).required(displayErrorMsg(intl.formatMessage({id: 'requireIdDocType'}))),
phoneCountryCode: yup.string().min(2, displayErrorMsg(intl.formatMessage({id: 'requireAtLeast2Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireDialingCode'}))),
// faxCountryCode: yup.string().min(3,'請輸入3位數字'),
phone: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'requireAtLeast8Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireContactNumber'}))),
@@ -789,7 +789,7 @@ const CustomFormWizard = (props) => {
</Grid>
<Grid item>
<Typography variant="subtitle1">
{level?.label}
<FormattedMessage id={level ? level?.label : "pwWeak" }/>
</Typography>
</Grid>
</Grid>
@@ -846,10 +846,10 @@ const CustomFormWizard = (props) => {
<Grid container spacing={2} alignItems="center">
<Grid item sx={{mt:1}}>
<Typography variant="subtitle1">
至少8個字元,字元越多越好 <br />
字母和數字的混合<br />
英文字母大寫與小寫的混合<br />
至少包含一個特殊符號,例如,@ # ?
<FormattedMessage id="pwRemark1"/> <br />
<FormattedMessage id="pwRemark2"/><br />
<FormattedMessage id="pwRemark3"/><br />
<FormattedMessage id="pwRemark4"/>
</Typography>
</Grid>
</Grid>
@@ -892,13 +892,13 @@ const CustomFormWizard = (props) => {
//value={selectedIdDocType}
size="small"
options={idDocTypeComboList}
// getOptionLabel={(idDocTypeComboList) => idDocTypeComboList.label}
getOptionLabel={(option) => intl.formatMessage({ id: option.label })}
onBlur={formik.handleBlur}
filterOptions={(options) => options}
inputValue={selectedIdDocInputType}
onChange={(event, newValue) => {
if (newValue != null ) {
setSelectedIdDocInputType(newValue.label);
setSelectedIdDocInputType(intl.formatMessage({ id: newValue.label }));
setSelectedIdDocType(newValue);
if (newValue.type !== "HKID") {
formik.setFieldValue("checkDigit", "")
@@ -910,13 +910,13 @@ const CustomFormWizard = (props) => {
sx={{ "#address4-combo": { padding: "0px 0px 0px 0px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField
{...params}
placeholder="證件類別"
placeholder={intl.formatMessage({id: 'idDocType'})}
/>}
/>
{formik.touched.idDocType && (
selectedIdDocType === null ?
<FormHelperText error id="helper-text-idDocType-signup">
請輸入證件類別
<FormattedMessage id="requireIdDocType"/>
</FormHelperText> : ''
)}
</Stack>
@@ -944,7 +944,7 @@ const CustomFormWizard = (props) => {
}
}
}}
placeholder="證件號碼"
placeholder={intl.formatMessage({id: 'idDocNumber'})}
fullWidth
sx={{ mr: 1 }}
error={Boolean(formik.touched.idNo && formik.errors.idNo)}
@@ -1024,7 +1024,7 @@ const CustomFormWizard = (props) => {
}
}
}}
placeholder="證件號碼"
placeholder={intl.formatMessage({id: 'idDocNumber'})}
fullWidth
sx={{ mr: 1 }}
error={Boolean(formik.touched.idNo && formik.errors.idNo)}
@@ -1062,7 +1062,7 @@ const CustomFormWizard = (props) => {
value={formik.values.enName}
name="enName"
onChange={formik.handleChange}
placeholder="與你的身份證明文件相同"
placeholder={intl.formatMessage({id: 'sameAsYourIdDoc'})}
fullWidth
error={Boolean(formik.touched.enName && formik.errors.enName && selectedIdDocType.type !== "CNID")}
onBlur={formik.handleBlur}
@@ -1097,7 +1097,7 @@ const CustomFormWizard = (props) => {
value={formik.values.chName.trim()}
name="chName"
onChange={formik.handleChange}
placeholder="與你的身份證明文件相同"
placeholder={intl.formatMessage({id: 'sameAsYourIdDoc'})}
onBlur={formik.handleBlur}
inputProps={{
maxLength: 6,
@@ -1464,12 +1464,16 @@ const CustomFormWizard = (props) => {
<Typography display="inline" variant="h4" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="userIdDoc"/>
<span style={{ color: '#f10000' }}>*</span></Typography>
<Typography display="inline" variant="subtitle1" sx={{ color: 'primary.primary' }}>請上傳你的 有效身份證明文件 的數碼檔案,以驗證你的身份。</Typography>
<Typography display="inline" variant="subtitle1" sx={{ color: 'primary.primary' }}>如: 香港身份證; 護照; 中國內地身份證; 專業執業証書等</Typography>
<Typography display="inline" variant="subtitle1" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="pleaseUploadIdDoc"/>
</Typography>
<Typography display="inline" variant="subtitle1" sx={{ color: 'primary.primary' }}>
<FormattedMessage id="pleaseUploadIdDocSubTitle"/>
</Typography>
<Stack mt={1} direction="row" justifyContent="flex-start" alignItems="center" spacing={2}>
<ThemeProvider theme={PNSPS_LONG_BUTTON_THEME}>
<Button variant="contained" component="label" sx={{ height: '40px' }}>
上傳身份證明文件
<FormattedMessage id="uploadIdDoc"/>
<input
accept="image/png, .jpg, .bmp, .pdf"
//className={classes.input}
@@ -1646,7 +1650,7 @@ const CustomFormWizard = (props) => {
<Grid item xs={12} md={6} >
<Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
證件類別:
<FormattedMessage id="idDocType"/>:
</Typography>
<Typography variant="pnspsFormHeader" name="preview-idDocType">
{selectedIdDocType.label}
@@ -1656,7 +1660,7 @@ const CustomFormWizard = (props) => {
<Grid item xs={12} md={6}>
<Stack spacing={1} direction="row">
<Typography variant="pnspsFormHeader" color={theme.palette.grey[600]}>
證件號碼:
<FormattedMessage id="idDocNumber"/>:
</Typography>
<Typography variant="pnspsFormHeader" id="idNo-login">
{formik.values.idNo} {selectedIdDocType.type == "HKID" ? '(' + formik.values.checkDigit + ')' : null}


+ 1
- 1
src/pages/authentication/auth-forms/IAmSmartFormWizard.js Näytä tiedosto

@@ -64,7 +64,7 @@ const CustomFormWizard = (props) => {
const [checkEmail, setCheckEmail] = useState(false)
const [checkEmailBlur, setCheckEmailBlur] = useState(false)

const address4ComboList = ComboData.district;
const address4ComboList = ComboData.district(intl);
const address5ComboList = ComboData.country;
const termsAndCon = "此網址由香港特別行政區政府物流服務署製作及管理。本署會盡力確保網址上的資料無誤,\n"
+ "但有絕對酌情權隨時刪除、暫停登載或編輯各項資料而無須給予任何理由。\n由於任何與網址"


+ 33
- 0
src/translations/en.json Näytä tiedosto

@@ -97,6 +97,9 @@
"businessRegCertAndDoc":"Business Registration Certificate and other documents",
"pleaseUploadDoc": "Please upload a digital file of your valid business registration certificate and other documents to verify your identity.",
"uploadFile": "Upload business registration certificate and other documents",
"pleaseUploadIdDoc": "Please upload a digital file of your valid identity document to verify your identity.",
"pleaseUploadIdDocSubTitle": "Such as: Hong Kong ID card; passport; Mainland China ID card; professional practice certificate, etc.",
"uploadIdDoc": "Upload identity document",
"fileName": "File name",
"fileSize": "File size",
"fileSizeWarning": "Upload file size should be <10MB",
@@ -138,6 +141,14 @@
"mainland": "Mainland China",
"macau": "Macau",
"yourContact": "Your Contact Information",
"passport": "Passport",
"HKIDcard": "Hong Kong ID Card",
"mainlandIDCard": "Mainland ID card",
"proCert": "Professional Practice Certificate",
"idDocType": "Document Category",
"requireIdDocType": "Please enter the document type",
"idDocNumber": "ID number",
"sameAsYourIdDoc": "Same as your ID document",

"pwRemark1": "At least 8 characters, the more characters the better",
"pwRemark2": "A mix of letters and numbers",
@@ -148,6 +159,28 @@
"pwGood": "Good",
"pwStrong": "Strong",

"islandCombo": "Island District",
"kwaiTsingCombo": "Kwai Tsing District",
"northCombo": "North District",
"saiKungCombo": "Sai Kung District",
"shaTinCombo": "Sha Tin District",
"taiPoCombo": "Tai Po District",
"tsuenWanCombo": "Tsuen Wan District",
"tuenMunCombo": "Tuen Mun District",
"yuenLongCombo": "Yuen Long District",
"kowloonCityCombo": "Kowloon City District",
"kwunTongCombo": "Kwun Tong District",
"shamShuiPoCombo": "Sham Shui Po District",
"wongTaiSinCombo": "Wong Tai Sin District",
"yauTsimMongCombo": "Yau Tsim Mong District",
"centralAndWesternCombo": "Central and Western District",
"easternCombo": "Eastern District",
"southernCombo": "Southern District",
"wanChaiCombo": "Wan Chai District",
"lantauIslandCombo": "Lantau Island",
"lammaIslandCombo": "Lamma Island District",
"pengChauCombo": "Peng Chau District",

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

+ 35
- 2
src/translations/zh-CN.json Näytä tiedosto

@@ -97,6 +97,9 @@
"businessRegCertAndDoc":"商业登记证及其他文件",
"pleaseUploadDoc": "请上传你的 有效商业登记证及其他文件 的数码档案,以验证你的身份。",
"uploadFile": "上传商业登记证及其他文件",
"pleaseUploadIdDoc": "请上传你的 有效身份证明文件 的数码档案,以验证你的身份。",
"pleaseUploadIdDocSubTitle": "如: 香港身份证; 护照; 中国内地身份证; 专业执业证书等",
"uploadIdDoc": "上传身份证明文件",
"fileName": "档案名称",
"fileSize": "档案大小",
"fileSizeWarning": "上传档案大小应<10MB",
@@ -133,11 +136,19 @@
"requireUsername": "请输入用户名称",
"requirePassword": "请输入密码",
"region": "区域 (只适用于香港)",
"region Or Country": "国家/地区",
"hong Kong": "香港",
"regionOrCountry": "国家/地区",
"hongKong": "香港",
"mainland": "内地",
"macau": "澳门",
"yourContact": "你的联络资料",
"passport": "护照",
"HKIDcard": "香港身份证",
"mainlandIDCard": "内地身份证",
"proCert": "专业执业证书",
"idDocType": "证件类别",
"requireIdDocType": "请输入证件类别",
"idDocNumber": "证件号码",
"sameAsYourIdDoc": "与你的身份证明文件相同",

"pwRemark1": "至少8个字元,字元越多越好",
"pwRemark2": "字母和数字的混合",
@@ -148,6 +159,28 @@
"pwGood": "良好",
"pwStrong": "强",

"islandCombo": "离岛区",
"kwaiTsingCombo": "葵青区",
"northCombo": "北区",
"saiKungCombo": "西贡区",
"shaTinCombo": "沙田区",
"taiPoCombo": "大埔区",
"tsuenWanCombo": "荃湾区",
"tuenMunCombo": "屯门区",
"yuenLongCombo": "元朗区",
"kowloonCityCombo": "九龙城区",
"kwunTongCombo": "观塘区",
"shamShuiPoCombo": "深水埗区",
"wongTaiSinCombo": "黄大仙区",
"yauTsimMongCombo": "油尖旺区",
"centralAndWesternCombo": "中西区",
"easternCombo": "东区",
"southernCombo": "南区",
"wanChaiCombo": "湾仔区",
"lantauIslandCombo": "大屿山区",
"lammaIslandCombo": "南丫岛区",
"pengChauCombo": "坪洲区",

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

+ 33
- 0
src/translations/zh-HK.json Näytä tiedosto

@@ -96,6 +96,9 @@
"businessRegCertNumber": "商業登記證號碼",
"businessRegCertAndDoc":"商業登記證及其他文件",
"pleaseUploadDoc": "請上傳你的 有效商業登記證及其他文件 的數碼檔案,以驗證你的身份。",
"pleaseUploadIdDoc": "請上傳你的 有效身份證明文件 的數碼檔案,以驗證你的身份。",
"pleaseUploadIdDocSubTitle": "如: 香港身份證; 護照; 中國內地身份證; 專業執業証書等",
"uploadIdDoc": "上傳身份證明文件",
"uploadFile": "上傳商業登記證及其他文件",
"fileName": "檔案名稱",
"fileSize": "檔案大小",
@@ -138,6 +141,14 @@
"mainland": "內地",
"macau": "澳門",
"yourContact": "你的聯絡資料",
"passport": "護照",
"HKIDcard": "香港身份證",
"mainlandIDCard": "內地身份證",
"proCert": "專業執業證書",
"idDocType": "證件類別",
"requireIdDocType": "請輸入證件類別",
"idDocNumber": "證件號碼",
"sameAsYourIdDoc": "與你的身份證明文件相同",

"pwRemark1": "至少8個字元,字元越多越好",
"pwRemark2": "字母和數字的混合",
@@ -148,6 +159,28 @@
"pwGood": "良好",
"pwStrong": "強",

"islandCombo": "離島區",
"kwaiTsingCombo": "葵青區",
"northCombo": "北區",
"saiKungCombo": "西貢區",
"shaTinCombo": "沙田區",
"taiPoCombo": "大埔區",
"tsuenWanCombo": "荃灣區",
"tuenMunCombo": "屯門區",
"yuenLongCombo": "元朗區",
"kowloonCityCombo": "九龍城區",
"kwunTongCombo": "觀塘區",
"shamShuiPoCombo": "深水埗區",
"wongTaiSinCombo": "黃大仙區",
"yauTsimMongCombo": "油尖旺區",
"centralAndWesternCombo": "中西區",
"easternCombo": "東區",
"southernCombo": "南區",
"wanChaiCombo": "灣仔區",
"lantauIslandCombo": "大嶼山區",
"lammaIslandCombo": "南丫島區",
"pengChauCombo": "坪洲區",

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

+ 14
- 6
src/utils/ComboData.js Näytä tiedosto

@@ -1,12 +1,20 @@
export const idDocType = [
{ key: 1, label: '護照', type: 'passport' },
{ key: 2, label: '香港身份證', type: 'HKID' },
{ key: 3, label: '內地身份證', type: 'CNID' },
{ key: 4, label: '專業執業證書', type: 'otherCert' }
{ key: 1, label: 'passport', type: 'passport' },
{ key: 2, label: 'HKIDcard', type: 'HKID' },
{ key: 3, label: 'mainlandIDCard', type: 'CNID' },
{ key: 4, label: 'proCert', type: 'otherCert' }
];
export const district = ['北區', '長洲區', '大埔區', '大嶼山區', '東區', '觀塘區', '黃大仙區', '九龍城區', '葵青區', '南區', '南丫島區',
'坪洲區', '荃灣區', '沙田區', '深水埗區', '屯門區', '灣仔區', '西貢區', '油尖旺區', '元朗區', '中西區'];
export const district = (intl) =>{
return [
'islandCombo', 'kwaiTsingCombo', 'northCombo', 'saiKungCombo',
'shaTinCombo', 'taiPoCombo', 'tsuenWanCombo', 'tuenMunCombo',
'yuenLongCombo', 'kowloonCityCombo', 'kwunTongCombo', 'shamShuiPoCombo',
'wongTaiSinCombo', 'yauTsimMongCombo', 'centralAndWesternCombo', 'easternCombo',
'southernCombo', 'wanChaiCombo', 'lantauIslandCombo', 'lammaIslandCombo',
'pengChauCombo'
].map((district) => intl.formatMessage({id: district}));
};

export const country = (intl) => {
return ["hongKong", "mainland", "macau"]


Ladataan…
Peruuta
Tallenna