bugfix: i18n问题

This commit is contained in:
2026-02-04 16:10:10 +08:00
parent 228e3d56b5
commit 3da4a97400
9 changed files with 242 additions and 120 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

View File

@@ -1858,14 +1858,16 @@ export default {
uploadSuccess: '上传成功', uploadSuccess: '上传成功',
uploadFailed: '上传失败', uploadFailed: '上传失败',
pdfFileTip: 'PDF文件不超过20MB', pdfFileTip: 'PDF文件不超过20MB',
videoFileTip: '视频文件(MP4, MOV)1080p不超过100MB' videoFileTip: '视频文件(MP4, MOV)1080p不超过100MB',
wechatTitle: '微信公众号',
wechatDesc: '请使用微信扫描二维码'
}, },
AwardApply: { AwardApply: {
// 页面主标题区域 // 页面主标题区域
applicationForm: '参赛表格', applicationForm: '参赛表格',
emailVerification: '邮箱验证', emailVerification: '邮箱验证',
aidaUsersOnly: '仅限 AiDA 用户', aidaUsersOnly: '仅限 AiDA 用户',
slogan: '绽放你的创意 • AiDA 全球设计奖 2026', slogan: '绽放你的创意 • AiDA 全球设计奖 2026',
// 邮箱验证部分 // 邮箱验证部分
emailAddress: '邮箱', emailAddress: '邮箱',
sendCode: '发送验证码', sendCode: '发送验证码',
@@ -1952,6 +1954,7 @@ export default {
uploadPdfOnly: '请仅上传 PDF 文件。', uploadPdfOnly: '请仅上传 PDF 文件。',
uploadVideoOnly: '请仅上传 MP4 或 MOV 文件。', uploadVideoOnly: '请仅上传 MP4 或 MOV 文件。',
fileSizeExceeds: '文件大小超过 {sizeLimit} 限制。请上传较小的文件。', fileSizeExceeds: '文件大小超过 {sizeLimit} 限制。请上传较小的文件。',
videoDurationExceeds: '视频时长不可超过60秒',
uploadFailed: '上传失败' uploadFailed: '上传失败'
} }
} }

View File

@@ -1926,18 +1926,21 @@ export default {
uploadSuccess: 'Uploaded Successfully', uploadSuccess: 'Uploaded Successfully',
uploadFailed: 'Upload failed', uploadFailed: 'Upload failed',
pdfFileTip: 'PDF file, max 20MB', pdfFileTip: 'PDF file, max 20MB',
videoFileTip: 'Video file (MP4, MOV), 1080p, max 100MB' videoFileTip: 'Video file (MP4, MOV), 1080p, max 100MB',
wechatTitle: 'WeChat Official Account',
wechatDesc: 'Scan the QR code in WeChat'
}, },
AwardApply: { AwardApply: {
// 页面主标题区域 // 页面主标题区域
applicationForm: 'Application Form', applicationForm: 'Application Form',
emailVerification: 'Email Verification', emailVerification: 'Email Verification',
aidaUsersOnly: 'AiDA Users Only', aidaUsersOnly: 'AiDA Users Only',
slogan: 'BLOOM YOUR CREATIVITY • AiDA GLOBAL FASHION AWARD 2026', slogan: 'BLOOM YOUR CREATIVITY • AIDA GLOBAL DESIGN AWARDS 2026',
// 邮箱验证部分 // 邮箱验证部分
emailAddress: 'Email Address', emailAddress: 'Email Address',
sendCode: 'Send Code', sendCode: 'Send Code',
pleaseUseRegisteredEmail: 'Please use the email address you registered with AiDA.', pleaseUseRegisteredEmail:
'Please use the email address you registered with AiDA.',
// 个人信息部分 // 个人信息部分
personalInformation: 'Personal Information', personalInformation: 'Personal Information',
tellUsAboutYourself: 'Tell us about yourself', tellUsAboutYourself: 'Tell us about yourself',
@@ -1958,7 +1961,8 @@ export default {
shareYourCreativeVision: 'Share your creative vision', shareYourCreativeVision: 'Share your creative vision',
designTitle: 'Design Title', designTitle: 'Design Title',
designDescription: 'Design description', designDescription: 'Design description',
designDescriptionPlaceholder: 'Briefly describe your design concept, inspiration, and creative direction...', designDescriptionPlaceholder:
'Briefly describe your design concept, inspiration, and creative direction...',
// 提交文件部分 // 提交文件部分
submissionFiles: 'Submission Files', submissionFiles: 'Submission Files',
uploadYourDesignMaterials: 'Upload your design materials', uploadYourDesignMaterials: 'Upload your design materials',
@@ -1978,13 +1982,18 @@ export default {
videoFileLimit: 'Video file (MP4, MOV), 1080p, max 100MB', videoFileLimit: 'Video file (MP4, MOV), 1080p, max 100MB',
// 条款与条件 // 条款与条件
termsAndConditions: 'Terms & Conditions', termsAndConditions: 'Terms & Conditions',
conditionFirst: 'I confirm that all submitted work is original and created by me.', conditionFirst:
conditionSecond: 'I understand that Code-Create has marketing and promotional rights to all submitted designs and videos.', 'I confirm that all submitted work is original and created by me.',
conditionThird: 'I agree to participate in finalist activities if selected, including AiDA training and award ceremony.', conditionSecond:
conditionFourth: 'I would like to receive updates about AiDA products and future competitions. (Optional)', 'I understand that Code-Create has marketing and promotional rights to all submitted designs and videos.',
conditionThird:
'I agree to participate in finalist activities if selected, including AiDA training and award ceremony.',
conditionFourth:
'I would like to receive updates about AiDA products and future competitions. (Optional)',
// 提交按钮 // 提交按钮
submitYourDesign: 'Submit your Design', submitYourDesign: 'Submit your Design',
unfinishedFormTip: 'The link in the AiDA in-platform message will save your unfinished form.', unfinishedFormTip:
'The link in the AiDA in-platform message will save your unfinished form.',
// 验证码弹窗 // 验证码弹窗
checkYourEmail: 'Check your email', checkYourEmail: 'Check your email',
enterSixDigitCode: 'Enter the 6-digit code sent to', enterSixDigitCode: 'Enter the 6-digit code sent to',
@@ -2018,7 +2027,10 @@ export default {
pleaseUploadVideo: 'Please upload your video', pleaseUploadVideo: 'Please upload your video',
uploadPdfOnly: 'Please upload a PDF file only.', uploadPdfOnly: 'Please upload a PDF file only.',
uploadVideoOnly: 'Please upload a MP4 or MOV file only.', uploadVideoOnly: 'Please upload a MP4 or MOV file only.',
fileSizeExceeds: 'File size exceeds {sizeLimit} limit. Please upload a smaller file.', fileSizeExceeds:
'File size exceeds {sizeLimit} limit. Please upload a smaller file.',
videoDurationExceeds:
'Video duration exceeds 60 seconds limit. Please upload a shorter video.',
uploadFailed: 'Upload failed' uploadFailed: 'Upload failed'
} }
} }

View File

@@ -9,7 +9,9 @@
class="form-header" class="form-header"
v-if="!isCompleted && !isExpired" v-if="!isCompleted && !isExpired"
> >
<div class="form-title poppins-bold">{{ t('AwardApply.emailVerification') }}</div> <div class="form-title poppins-bold">
{{ t('AwardApply.emailVerification') }}
</div>
<div class="desc">{{ t('AwardApply.aidaUsersOnly') }}</div> <div class="desc">{{ t('AwardApply.aidaUsersOnly') }}</div>
</div> </div>
</div> </div>
@@ -63,7 +65,9 @@
</a-form-item> </a-form-item>
</div> </div>
<div class="form-row full-row"> <div class="form-row full-row">
<div class="form-title poppins-bold">{{ t('AwardApply.personalInformation') }}</div> <div class="form-title poppins-bold">
{{ t('AwardApply.personalInformation') }}
</div>
<div class="desc">{{ t('AwardApply.tellUsAboutYourself') }}</div> <div class="desc">{{ t('AwardApply.tellUsAboutYourself') }}</div>
</div> </div>
<div class="user-info flex"> <div class="user-info flex">
@@ -109,8 +113,12 @@
</template> </template>
</div> </div>
<div class="form-row full-row"> <div class="form-row full-row">
<div class="form-title poppins-bold">{{ t('AwardApply.designInformation') }}</div> <div class="form-title poppins-bold">
<div class="desc">{{ t('AwardApply.shareYourCreativeVision') }}</div> {{ t('AwardApply.designInformation') }}
</div>
<div class="desc">
{{ t('AwardApply.shareYourCreativeVision') }}
</div>
</div> </div>
<a-form-item <a-form-item
class="full-row design-title" class="full-row design-title"
@@ -137,28 +145,30 @@
/> />
</a-form-item> </a-form-item>
<div class="form-row full-row"> <div class="form-row full-row">
<div class="form-title poppins-bold">{{ t('AwardApply.submissionFiles') }}</div> <div class="form-title poppins-bold">
<div class="desc">{{ t('AwardApply.uploadYourDesignMaterials') }}</div> {{ t('AwardApply.submissionFiles') }}
</div>
<div class="desc">
{{ t('AwardApply.uploadYourDesignMaterials') }}
</div>
</div> </div>
<div class="information full-row"> <div class="information full-row">
<div class="information-title flex align-center"> <div class="information-title flex align-center">
<div class="point"></div> <div class="point"></div>
<div class="text poppins-bold">{{ t('AwardApply.submissionRequirements') }}</div> <div class="text poppins-bold">
{{ t('AwardApply.submissionRequirements') }}
</div>
</div> </div>
<ul class="information-list flex space-between"> <ul class="information-list flex space-between">
<li class="information-item"> <li class="information-item">
{{ {{ t('AwardApply.pdfRequirement') }}
t('AwardApply.pdfRequirement')
}}
</li> </li>
<div class="right"> <div class="right">
<li class="information-item"> <li class="information-item">
{{ t('AwardApply.rightContent.format') }} {{ t('AwardApply.rightContent.format') }}
</li> </li>
<li class="information-item"> <li class="information-item">
{{ {{ t('AwardApply.rightContent.video') }}
t('AwardApply.rightContent.video')
}}
</li> </li>
</div> </div>
</ul> </ul>
@@ -187,8 +197,12 @@
alt="" alt=""
class="upload-icon" class="upload-icon"
/> />
<p class="desc">{{ t('AwardApply.clickToUploadPdf') }}</p> <p class="desc">
<p class="limit">{{ t('AwardApply.pdfFileLimit') }}</p> {{ t('AwardApply.clickToUploadPdf') }}
</p>
<p class="limit">
{{ t('AwardApply.pdfFileLimit') }}
</p>
<template #itemRender="{ file, actions }"> <template #itemRender="{ file, actions }">
<div <div
class="custom-upload-list flex align-center space-between" class="custom-upload-list flex align-center space-between"
@@ -258,7 +272,9 @@
alt="" alt=""
class="upload-icon" class="upload-icon"
/> />
<p class="desc">{{ t('AwardApply.clickToUploadVideo') }}</p> <p class="desc">
{{ t('AwardApply.clickToUploadVideo') }}
</p>
<p class="limit"> <p class="limit">
{{ t('AwardApply.videoFileLimit') }} {{ t('AwardApply.videoFileLimit') }}
</p> </p>
@@ -308,38 +324,40 @@
</a-form-item> </a-form-item>
</div> </div>
</a-form> </a-form>
<div class="conditions"> <div class="conditions">
<div class="confitions-title poppins-bold">{{ t('AwardApply.termsAndConditions') }}</div> <div class="confitions-title poppins-bold">
<div class="condition-list flex flex-col"> {{ t('AwardApply.termsAndConditions') }}
<div </div>
class="condition-item flex align-center" <div class="condition-list flex flex-col">
v-for="item in conditionsList" <div
:key="item.id" class="condition-item flex align-center"
> v-for="item in conditionsList"
<a-checkbox v-model:checked="item.check" /> :key="item.id"
<span> >
{{ t('AwardApply.' + item.translationKey) }} <a-checkbox v-model:checked="item.check" />
<span <span>
class="required" {{ t('AwardApply.' + item.translationKey) }}
v-if="item.required" <span
> class="required"
* v-if="item.required"
>
*
</span>
</span> </span>
</span> </div>
</div> </div>
</div> </div>
</div> <div class="submit-container">
<div class="submit-container"> <div
<div class="submit-btn poppins-bold"
class="submit-btn poppins-bold" @click="handleSubmitForm"
@click="handleSubmitForm" >
> {{ t('AwardApply.submitYourDesign') }}
{{ t('AwardApply.submitYourDesign') }} </div>
<div class="desc">
{{ t('AwardApply.unfinishedFormTip') }}
</div>
</div> </div>
<div class="desc">
{{ t('AwardApply.unfinishedFormTip') }}
</div>
</div>
</div> </div>
</div> </div>
<a-modal <a-modal
@@ -359,7 +377,11 @@
@click="handleCloseModal" @click="handleCloseModal"
/> />
<div class="title poppins-bold">{{ t('AwardApply.checkYourEmail') }}</div> <div class="title poppins-bold">{{ t('AwardApply.checkYourEmail') }}</div>
<div class="desc">{{ t('AwardApply.enterSixDigitCode') }} {{ form.email }}</div> <div class="desc">
{{ t('AwardApply.enterSixDigitCode') }}
<br />
<span class="email-verify">{{ form.email }}</span>
</div>
<div class="code-box"> <div class="code-box">
<VerifycationCodeInput <VerifycationCodeInput
:ct="emailCode" :ct="emailCode"
@@ -379,7 +401,9 @@
> >
{{ {{
isCountingDown isCountingDown
? `${t('AwardApply.resendCodeIn')} ${formatCountdown(countdown)}` ? `${t('AwardApply.resendCodeIn')} ${formatCountdown(
countdown
)}`
: t('AwardApply.resendCode') : t('AwardApply.resendCode')
}} }}
</div> </div>
@@ -436,6 +460,7 @@
designDescription: '', designDescription: '',
pdfPath: '', pdfPath: '',
videoPath: '', videoPath: '',
videoDuration: 0,
secureToken: '' secureToken: ''
}) })
const hasValidEmail = computed(() => { const hasValidEmail = computed(() => {
@@ -493,18 +518,36 @@
const rulesRef = { const rulesRef = {
email: [{ required: true, validator: validEmail }], email: [{ required: true, validator: validEmail }],
firstName: [ firstName: [
{ required: true, message: t('AwardApply.pleaseInputFirstName'), trigger: 'blur' } {
required: true,
message: t('AwardApply.pleaseInputFirstName'),
trigger: 'blur'
}
], ],
lastName: [ lastName: [
{ required: true, message: t('AwardApply.pleaseInputLastName'), trigger: 'blur' } {
required: true,
message: t('AwardApply.pleaseInputLastName'),
trigger: 'blur'
}
], ],
gender: [ gender: [
{ required: true, message: t('AwardApply.pleaseSelectGender'), trigger: 'blur' } {
required: true,
message: t('AwardApply.pleaseSelectGender'),
trigger: 'blur'
}
], ],
occupation: [ occupation: [
{ required: true, message: t('AwardApply.pleaseInputOccupation'), trigger: 'blur' } {
required: true,
message: t('AwardApply.pleaseInputOccupation'),
trigger: 'blur'
}
],
age: [
{ required: true, message: t('AwardApply.pleaseInputAge'), trigger: 'blur' }
], ],
age: [{ required: true, message: t('AwardApply.pleaseInputAge'), trigger: 'blur' }],
countryRegionCity: [ countryRegionCity: [
{ {
required: true, required: true,
@@ -515,7 +558,11 @@
phoneNumber: [{ required: true, validator: validatePhone, trigger: 'blur' }], phoneNumber: [{ required: true, validator: validatePhone, trigger: 'blur' }],
designTitle: [ designTitle: [
{ required: true, message: t('AwardApply.pleaseInputDesignTitle'), trigger: 'blur' } {
required: true,
message: t('AwardApply.pleaseInputDesignTitle'),
trigger: 'blur'
}
], ],
designDescription: [ designDescription: [
{ {
@@ -524,9 +571,15 @@
trigger: 'blur' trigger: 'blur'
} }
], ],
pdfPath: [{ required: true, message: t('AwardApply.pleaseUploadPdf'), trigger: 'null' }], pdfPath: [
{ required: true, message: t('AwardApply.pleaseUploadPdf'), trigger: 'null' }
],
videoPath: [ videoPath: [
{ required: true, message: t('AwardApply.pleaseUploadVideo'), trigger: 'null' } {
required: true,
message: t('AwardApply.pleaseUploadVideo'),
trigger: 'null'
}
] ]
} }
@@ -760,7 +813,24 @@
} }
// 统一的文件上传前验证 // 统一的文件上传前验证
const beforeUploadFile = (type: FileType, file: File) => { // 获取视频时长
const getVideoDuration = (file: File): Promise<number> => {
return new Promise((resolve, reject) => {
const video = document.createElement('video')
video.preload = 'metadata'
video.onloadedmetadata = () => {
window.URL.revokeObjectURL(video.src)
resolve(video.duration)
}
video.onerror = () => {
window.URL.revokeObjectURL(video.src)
reject(new Error('Failed to load video'))
}
video.src = window.URL.createObjectURL(file)
})
}
const beforeUploadFile = async (type: FileType, file: File) => {
if (!hasValidEmail.value) { if (!hasValidEmail.value) {
message.error(t('AwardApply.pleaseVerifyEmailFirst')) message.error(t('AwardApply.pleaseVerifyEmailFirst'))
return Upload.LIST_IGNORE return Upload.LIST_IGNORE
@@ -792,42 +862,33 @@
if (!isValidType) { if (!isValidType) {
message.error(errorMessage) message.error(errorMessage)
// 从文件列表中移除
// if (type === 'pdf') {
// const index = pdfList.value.findIndex(item => item.uid === file.uid)
// if (index > -1) {
// pdfList.value.splice(index, 1)
// }
// } else {
// const index = videoList.value.findIndex(item => item.uid === file.uid)
// if (index > -1) {
// videoList.value.splice(index, 1)
// }
// }
return Upload.LIST_IGNORE return Upload.LIST_IGNORE
} }
// 验证文件大小 // 验证文件大小
if (file.size > maxSize) { if (file.size > maxSize) {
const sizeLimit = type === 'pdf' ? '20MB' : '100MB' const sizeLimit = type === 'pdf' ? '20MB' : '100MB'
message.error( message.error(t('AwardApply.fileSizeExceeds', { sizeLimit }))
t('AwardApply.fileSizeExceeds', { sizeLimit })
)
// 从文件列表中移除
// if (type === 'pdf') {
// const index = pdfList.value.findIndex(item => item.uid === file.uid)
// if (index > -1) {
// pdfList.value.splice(index, 1)
// }
// } else {
// const index = videoList.value.findIndex(item => item.uid === file.uid)
// if (index > -1) {
// videoList.value.splice(index, 1)
// }
// }
return Upload.LIST_IGNORE return Upload.LIST_IGNORE
} }
// 验证视频时长
let duration = 0
if (type === 'video') {
duration = await getVideoDuration(file)
try {
if (duration > 60) {
message.error(t('AwardApply.videoDurationExceeds'))
return Upload.LIST_IGNORE
}
} catch (error) {
console.error('Failed to get video duration:', error)
}
}
form.value.videoDuration = Math.ceil(duration)
return true return true
} }
@@ -933,7 +994,9 @@
const status = info.file.status const status = info.file.status
if (status === 'done') { if (status === 'done') {
message.success(t('AwardApply.fileUploadedSuccess', { fileName: info.file.name })) message.success(
t('AwardApply.fileUploadedSuccess', { fileName: info.file.name })
)
if (type === 'pdf') { if (type === 'pdf') {
isUploadingPdf.value = false isUploadingPdf.value = false
uploadProgressPdf.value = 0 uploadProgressPdf.value = 0
@@ -957,9 +1020,9 @@
} }
} }
// 统一的上传处理函数
const handleUploadFile = async (option: any, type: FileType) => { const handleUploadFile = async (option: any, type: FileType) => {
const file = option.file as File const file = option.file as File
//
if (!form.value.email) { if (!form.value.email) {
message.error(t('AwardApply.pleaseInputEmail')) message.error(t('AwardApply.pleaseInputEmail'))
@@ -1247,7 +1310,7 @@
} }
} }
// :deep(.ant-select-arrow) { // :deep(.ant-select-arrow) {
// justify-content: center; // justify-content: center;
// display: flex; // display: flex;
// align-items: center; // align-items: center;
@@ -1552,6 +1615,13 @@
font-size: 1.6rem; font-size: 1.6rem;
line-height: 3.4rem; line-height: 3.4rem;
margin-top: 1.4rem; margin-top: 1.4rem;
text-align: center;
.email-verify {
color: #232323;
font-family: 'ArialBold';
font-weight: 700;
font-size: 1.6rem;
}
} }
.email { .email {

View File

@@ -202,6 +202,9 @@ onBeforeUnmount(() => {
column-gap: 23.22rem; column-gap: 23.22rem;
row-gap: 8rem; row-gap: 8rem;
padding: 0 25rem 0 26.6rem; padding: 0 25rem 0 26.6rem;
div{
text-align: center;
}
.judgement-item { .judgement-item {
overflow: hidden; overflow: hidden;
.picture { .picture {

View File

@@ -52,6 +52,13 @@
const { t } = useI18n() const { t } = useI18n()
const props = defineProps({
isZh: {
type: Boolean,
default: false
}
})
const prizes = [ const prizes = [
{ {
money: 'AwardsPage.grandMoney', money: 'AwardsPage.grandMoney',
@@ -83,11 +90,8 @@
{ {
money: 'AwardsPage.awardCertification', money: 'AwardsPage.awardCertification',
name: 'AwardsPage.finalists', name: 'AwardsPage.finalists',
desc: [ desc: ['AwardsPage.TravelAllowance', 'AwardsPage.globalMediaExposure'],
'AwardsPage.TravelAllowance', smaller: !props.isZh
'AwardsPage.globalMediaExposure'
],
smaller: true
} }
] ]

View File

@@ -83,12 +83,12 @@
class="close-icon" class="close-icon"
@click="handleCloseQRcode" @click="handleCloseQRcode"
/> />
<div class="code-title">WeChat Official Account</div> <div class="code-title">{{ $t('AwardsPage.wechatTitle') }}</div>
<img <img
src="@/assets/images/award/qrcode.jpg" src="@/assets/images/award/qrcode.jpg"
class="qrcode" class="qrcode"
/> />
<div class="tips">Scan the QR code in WeChat</div> <div class="tips">{{ $t('AwardsPage.wechatDesc') }}</div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,8 +1,11 @@
<template> <template>
<div class="award-page"> <div
class="award-page"
:class="{ 'is-zh': isZh }"
>
<div class="banner"> <div class="banner">
<video <video
src="@/assets/images/award/banner.mp4" :src="bannerUrl"
autoplay autoplay
muted muted
loop loop
@@ -11,32 +14,33 @@
webkit-playsinline webkit-playsinline
x5-playsinline x5-playsinline
></video> ></video>
<div <div
class="submit-btn flex flex-center" class="submit-btn flex flex-center"
@click="handleSubmitApplication" @click="handleSubmitApplication"
> >
<div>{{ $t('AwardsPage.submitApplication') }}</div> <div>{{ $t('AwardsPage.submitApplication') }}</div>
<img <img
src="@/assets/images/award/arrow_right.png" src="@/assets/images/award/arrow_right.png"
alt="" alt=""
class="arrow" class="arrow"
/> />
<div class="ddl">{{ $t('AwardsPage.applicationDeadline') }}</div> <div class="ddl">{{ $t('AwardsPage.applicationDeadline') }}</div>
</div> </div>
</div> </div>
<Slogan /> <Slogan />
<Bloom /> <Bloom />
<TimeLine /> <TimeLine />
<JudgesSection /> <JudgesSection />
<PrizesSection /> <PrizesSection :is-zh="isZh" />
<ApplySection /> <ApplySection />
<SelectionSection /> <SelectionSection />
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue' import { ref, computed } from 'vue'
import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import JudgesSection from './components/JudgesSection.vue' import JudgesSection from './components/JudgesSection.vue'
import SelectionSection from './components/SelectionSection.vue' import SelectionSection from './components/SelectionSection.vue'
@@ -46,7 +50,19 @@
import Bloom from './components/Bloom.vue' import Bloom from './components/Bloom.vue'
import Slogan from './components/Slogan.vue' import Slogan from './components/Slogan.vue'
import banner from '@/assets/images/award/banner.mp4'
import bannerZh from '@/assets/images/award/banner_chinese.mp4'
const router = useRouter() const router = useRouter()
const { locale } = useI18n()
const isZh = computed(() => {
return locale.value === 'CHINESE_SIMPLIFIED'
})
const bannerUrl = computed(() => {
return isZh.value ? bannerZh : banner
})
const handleSubmitApplication = () => { const handleSubmitApplication = () => {
router.push('/award/contestants') router.push('/award/contestants')
@@ -110,4 +126,18 @@
} }
} }
} }
.is-zh {
.submit-btn {
padding: 0 7.5rem;
height: 7.8rem;
border-radius: 7.74rem;
column-gap: 3.8rem;
// justify-content: space-between;
&,
.ddl {
width: 35.4rem;
}
}
}
</style> </style>