You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
9.9 KiB
223 lines
9.9 KiB
export default {
|
|
login: {
|
|
mobilePlaceholder: 'Mobile Number',
|
|
captchaPlaceholder: 'Verification Code',
|
|
getCode: 'Get Code',
|
|
sending: 'Sending...',
|
|
resend: 'Resend ({n}s)',
|
|
submit: 'Log In',
|
|
submitting: 'Logging in…',
|
|
loggingIn: 'Logging in...',
|
|
cardWelcome: 'Welcome',
|
|
participantEntry: 'Competition Registration',
|
|
audienceEntry: 'Audience Registration',
|
|
checkinEntry: 'Check-in',
|
|
reviewerEntry: 'Reviewer',
|
|
adminEntry: 'Admin',
|
|
debugCode: 'Verification code (temporary): ',
|
|
consultAria: 'Contact',
|
|
systemAria: 'Competition registration system',
|
|
quickAria: 'Registration portals',
|
|
invalidMobile: 'Please enter a valid mobile number',
|
|
invalidCaptcha: 'Please enter the 6-digit code',
|
|
missingSlug: 'Missing competition address. Please use the official entry link.',
|
|
competitionMissing: 'This competition is unavailable or unpublished.',
|
|
competitionLoadFailed: 'Unable to load competition information',
|
|
networkError: 'Network error. Unable to verify the competition link.',
|
|
networkLogin: 'Network error. Please confirm the server is running.',
|
|
requestFailed: 'Request failed',
|
|
tooFrequent: 'Please wait {n}s before requesting another code.',
|
|
sendNetwork: 'Network error. Please confirm the backend is running.',
|
|
},
|
|
layout: {
|
|
signupOpen: 'Registration Open',
|
|
signupClosed: 'Registration Closed',
|
|
signupSoon: 'Coming Soon',
|
|
deadlinePrefix: 'Closes',
|
|
deadlineAria: 'Registration deadline',
|
|
logout: 'Log Out',
|
|
userMenu: 'Open user menu',
|
|
userFallback: 'User',
|
|
impersonation: 'Admin impersonation · {name}',
|
|
impersonationAnon: 'Admin impersonation',
|
|
impersonationBanner:
|
|
'You are viewing the participant portal as an administrator. Use Log Out when finished.',
|
|
myRegistrations: 'My Registrations',
|
|
mineSubtitle: 'View your submitted registrations',
|
|
audienceFallback: 'Audience',
|
|
loading: 'Loading…',
|
|
none: 'None',
|
|
noRecords: 'No registrations yet',
|
|
close: 'Close',
|
|
viewTicket: 'View e-ticket',
|
|
saveQrHint: 'Please screenshot and save this QR code for on-site check-in.',
|
|
emptyHint: 'Select a session, submit your registration, and it will appear here.',
|
|
registeredCount: 'Registered sessions',
|
|
sessionUnit: 'sessions',
|
|
sessionFallback: 'Session',
|
|
registeredOk: 'Registered',
|
|
eventTime: 'Event time',
|
|
eventPlace: 'Venue',
|
|
registeredAt: 'Registered at',
|
|
showTicket: 'Show e-ticket',
|
|
},
|
|
apply: {
|
|
title: 'Competition Registration',
|
|
submittedEditable: 'Submitted. You can still edit.',
|
|
submittedFilesOnly: 'Submitted. Only attachments can be updated.',
|
|
submittedLocked: 'Submitted and locked',
|
|
draftFilesOnly: 'Not submitted. Only attachments can be updated.',
|
|
draftLocked: 'Not submitted and currently locked',
|
|
draftOpen: 'Draft not submitted',
|
|
windowClosed:
|
|
'Registration is closed or locked. You cannot create, save, or submit an application. Contact the organizers if this looks wrong.',
|
|
fillHint:
|
|
'Complete the form, upload the business plan, and sign the declaration. “Save Draft” keeps a draft; “Submit Application” finalizes it.',
|
|
pleaseSelect: 'Please select',
|
|
invalidEmail: 'Please enter a valid email address',
|
|
invalidMobile: 'Please enter a valid 11-digit Chinese mobile number',
|
|
maxChars: '{label} must be at most {n} characters',
|
|
fieldInvalid: '{label} is invalid',
|
|
opFailed: 'Operation failed',
|
|
notice: 'Notice',
|
|
pledgeTitle: 'Competition Declaration',
|
|
pledgeTitleNamed: '{name} Declaration',
|
|
pledgeSubtitle: 'Please read all four sections carefully and sign below to confirm.',
|
|
signFirst: 'Please sign by hand in the box before confirming.',
|
|
confirm: 'Please confirm',
|
|
signTooLarge: 'The signature is too large. Please clear it and try again.',
|
|
uploadPlan: 'Please upload a business plan',
|
|
fileInvalid: 'The file type or size is not supported',
|
|
needPledge: 'Please read and sign the competition declaration first.',
|
|
uploaded: 'File uploaded.',
|
|
uploadOk: 'Uploaded',
|
|
attachment: 'Attachment',
|
|
open: 'Open',
|
|
fileMissing: 'The attachment is missing',
|
|
fileOpenFailed: 'Network error. Unable to open the attachment.',
|
|
deleteFailed: 'Unable to delete',
|
|
deleteTimeout: 'Delete timed out. Close any preview window and try again.',
|
|
missingSlug: 'Missing competition address',
|
|
competitionMissing: 'Competition not found or unpublished',
|
|
competitionLoadFailed: 'Unable to load competition settings',
|
|
networkLoad: 'Network error. Unable to load the competition.',
|
|
draftFailed: 'The draft could not be saved. Check your network and try again.',
|
|
saveInvalid: 'Unable to save. Please check the form fields.',
|
|
saveFailed: 'Save failed',
|
|
saveTimeout: 'Save timed out. Please try again.',
|
|
submitNotFound: 'Competition not found or unpublished. Please re-enter the form.',
|
|
submitForbidden: 'You do not have permission to submit. Check your login or contact an admin.',
|
|
submitConflict: 'The application changed. Refresh the page and try again.',
|
|
submitBusy: 'Too many requests. Please wait and try again.',
|
|
submitServer: 'The service is temporarily unavailable. Please try again later.',
|
|
submitIncomplete: 'Submission failed. Please complete the required fields.',
|
|
submitFailed: 'The application could not be submitted. Check your network and try again.',
|
|
submitTimeout: 'Submission timed out. Please try again.',
|
|
draftSaved: 'Draft saved with the information entered so far.',
|
|
saveOk: 'Saved',
|
|
submitted: 'Application submitted',
|
|
submitOk: 'Submitted',
|
|
wechatJumpFailed: 'WeChat mini program return is unavailable. Re-enter from the mini program.',
|
|
jumpFailed: 'Return failed',
|
|
consultAria: 'Contact',
|
|
deleting: 'Removing…',
|
|
remove: 'Remove',
|
|
pickProvinceFirst: 'Select a province first',
|
|
pledgeDefault: 'Competition Declaration',
|
|
pledgeHelp:
|
|
'Open and read the full declaration, sign by hand at the end, and select “Confirm Signature.”',
|
|
reviewPledge: 'Review the Declaration',
|
|
openPledge: 'View and Sign the Declaration',
|
|
saving: 'Saving…',
|
|
saveEdits: 'Save changes',
|
|
saveDraft: 'Save Draft',
|
|
updateSubmit: 'Update Application',
|
|
submit: 'Submit Application',
|
|
close: 'Close',
|
|
pledgeBodyAria: 'Declaration body',
|
|
signPadAria: 'Handwritten signature area',
|
|
china: 'China',
|
|
overseas: 'Outside China',
|
|
lastSubmittedAt: 'Last submitted: {time}.',
|
|
submittedAt: 'Submitted: {time}.',
|
|
submittedEditableBody:
|
|
'You can still edit details and attachments and click “Update Application” until registration closes or a reviewer submits a score. After review starts, the form is locked.',
|
|
filesOnlyBody:
|
|
'Registration is closed. You may upload or remove attachments only; changes take effect immediately. Other fields cannot be edited. If a reviewer has already scored, attachments stay locked.',
|
|
submittedLockedBody:
|
|
'This application is locked because registration closed or a review record exists. Please wait for organizer updates.',
|
|
pleaseFill: 'Please fill in {label}',
|
|
pleaseSelectField: 'Please select {label}',
|
|
checkboxRequired: 'Please check this box to continue',
|
|
trackMissing: 'No tracks are configured for this competition. Contact the organizers if you cannot submit.',
|
|
maxFiles: 'You can upload at most {n} files. Please remove extras and try again.',
|
|
fileExtInvalid: '“{name}” is not supported. Please upload {allowed} files.',
|
|
fileTooLarge: '“{name}” must be 20 MB or smaller',
|
|
extraFilesIgnored: 'This field allows at most {max} files. {n} extra selection(s) were ignored.',
|
|
viewDownload: 'View / Download',
|
|
signed: 'Signed',
|
|
signHint: 'Sign by hand in the box',
|
|
signerLabel: 'Participant signature:',
|
|
datePrefix: 'Date:',
|
|
clearSign: 'Clear signature',
|
|
confirmSign: 'Confirm Signature',
|
|
cancel: 'Cancel',
|
|
ok: 'OK',
|
|
charCount: '{n} characters',
|
|
openingFile: 'Opening “{name}”…',
|
|
fileTooMany: 'Too many files',
|
|
trackOther: 'Other',
|
|
trackOtherPlaceholder: 'Describe the other track (optional)',
|
|
chooseFile: 'Choose File',
|
|
noFileChosen: 'No file chosen',
|
|
filesSelected: '{n} files selected',
|
|
},
|
|
audience: {
|
|
title: 'Audience Registration',
|
|
sessionsAria: 'Competition Sessions',
|
|
loading: 'Loading sessions…',
|
|
remainingUnit: 'spots',
|
|
remaining: 'remaining',
|
|
selected: 'Selected',
|
|
name: 'Full Name',
|
|
phone: 'Phone Number',
|
|
company: 'Organization',
|
|
job: 'Job Title',
|
|
purpose: 'Purpose of Attendance',
|
|
nameRequired: 'Please enter your full name',
|
|
phoneRequired: 'Please enter a valid 11-digit mobile number',
|
|
purposeRequired: 'Please select a purpose',
|
|
phoneReadonly: 'This number matches your login mobile number and cannot be changed',
|
|
submitting: 'Submitting…',
|
|
submit: 'Submit Registration',
|
|
selectSessionFirst: 'Select a Session First',
|
|
namePh: 'Enter your full name',
|
|
phonePh: 'Login mobile number',
|
|
companyPh: 'Enter your organization',
|
|
jobPh: 'Enter your job title',
|
|
purposePh: 'Select a purpose',
|
|
failed: 'Registration failed',
|
|
success: 'Registration successful! Details for “{name}” will be sent to your mobile number.',
|
|
statusRegistered: 'Registered',
|
|
statusOpen: 'Open',
|
|
statusFull: 'Full',
|
|
statusNotStarted: 'Not started',
|
|
statusExpired: 'Closed',
|
|
pleaseFill: 'Please fill in {label}',
|
|
},
|
|
ticket: {
|
|
successTitle: 'Registered',
|
|
lead: 'Your e-ticket has been created',
|
|
showCode: 'Show this code at the entrance. Each ticket can be checked in once.',
|
|
saveQr: 'Please screenshot and save this QR code for on-site check-in.',
|
|
done: 'Done',
|
|
myTicket: 'E-ticket',
|
|
showAtGate: 'Show this code at the entrance',
|
|
checkedIn: 'Checked in',
|
|
pending: 'Pending entry',
|
|
sessionFallback: 'Session',
|
|
close: 'Close',
|
|
qrAria: 'E-ticket QR code',
|
|
},
|
|
} as const
|