Files
ylst-pc/src/views/Answer/components/js/language.js
du.meimei cd2b75cfd0 refactor(i18n): 更新国际化文案以准确反映 AI 辅助生成问卷的功能
- 修改 PoweredByDigitalTechnologyCenterYIPAndSmart 和 PoweredByDigitalTechnologyCenterYIPSmartOnly 的英文文案
-强调问卷的 AI 辅助生成以及数字科技中心 YIP 的支持
2025-05-23 16:14:45 +08:00

594 lines
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const language = {
PoweredByDigitalTechnologyCenterYIP: {
en: 'Powered by Yili Data Technology Center',
zh: '由数字科技中心YIP提供大力支持'
},
PoweredByDigitalTechnologyCenterYIPAndSmart: {
en: 'This questionnaire is generated with AI assistance and powered by Yili Data Technology Center',
zh: '本问卷由AI辅助生成由数字科技中心YIP提供大力支持'
},
PoweredByDigitalTechnologyCenterYIPSmartOnly: {
en: 'This questionnaire is generated with AI assistance',
zh: '本问卷由AI辅助生成'
},
PleaseSelectAtLeastOneOptionsPerLine: {
en: (count) => `Please select at least ${count} answer option${count > 1 ? 's' : ''} per row.`,
zh: (count) => `每行最少选${count}个。`
},
PleaseSelectAtLeastOneOptionsPerColumn: {
en: (count) => `Please select at least ${count} answer option${count > 1 ? 's' : ''} per column.`,
zh: (count) => `每列最少选${count}个。`
},
PleaseCategorizeAllOptions: {
en: 'Please categorize all answer options.',
zh: '部分选项未归类。'
},
ThisIsARequiredQuestion: {
en: 'This is compulsory.',
zh: '这是一道必答题。'
},
PleaseInputAValue: {
en: 'Please input a value.',
zh: '请输入。'
},
PleaseSelectAtLeastOneOptions: {
en: (count) => `Please select at least ${count} answer option${count > 1 ? 's' : ''}.`,
zh: (count) => `最少选择${count}个。`
},
PleaseSelectAtLeastOneOptionsInTitleGroup: {
en: (count, title) => `Please select at least ${count} answer option${count > 1 ? 's' : ''} in ${title} group.`,
zh: (count, title) => `${title}最少选择${count}个。`
},
PleaseSelectAtMostOneOptionsInTitleGroup: {
en: (count, title) => `Please select at most ${count} answer option${count > 1 ? 's' : ''} in ${title} group.`,
zh: (count, title) => `${title}最多选择${count}个。`
},
PleaseSelectAtLeastOnePictures: {
en: (count) => `Please select at least ${count} picture${count > 1 ? 's' : ''}.`,
zh: (count) => `最少选择${count}个。`
},
PleaseLetTheSumEqualToTotal: {
en: (count) => `Please let the sum equal to ${count}.`,
zh: (count) => `请让总和等于${count}`
},
PleaseUploadAtLeastOneFiles: {
en: (count) => `Please upload at least ${count} file${count > 1 ? 's' : ''}.`,
zh: (count) => `最少上传${count}个文件。`
},
PleaseEnterEnglishLetters: {
en: 'Please enter English letters.',
zh: '请输入字母。'
},
PleaseEnterChineseWords: {
en: 'Please enter Chinese characters.',
zh: '请输入中文。'
},
PleaseEnterACorrectEmail: {
en: 'Please enter a valid email.',
zh: '请输入正确的email。'
},
PleaseEnterACorrectPhone: {
en: 'Please enter a valid phone number.',
zh: '请输入正确的手机号。'
},
PleaseEnterACorrectID: {
en: 'Please enter a valid ID card number.',
zh: '请输入正确的身份证号。'
},
PleaseEnterMoreThanOneCharacters: {
en: (count) => `Please enter more than ${count} character${count > 1 ? 's' : ''}.`,
zh: (count) => `请输入大于${count}个字符。`
},
// 质量控制
PleaseAnswerCarefully: {
en: 'Please answer carefully.',
zh: '请认真作答。'
},
ContinueAnswer: {
en: 'Continue',
zh: '继续作答'
},
ReviseAnswer: {
en: 'Revise',
zh: '去修改'
},
TheAnswerIsRepeatedMoreThanOneTimesPleaseRevise: {
en: (count, type) => `The answer is continuously repeated more than ${count} times, please revise.`,
zh: (count, type) => `答案连续重复超过${count}个,${type ? '建议' : '请'}修改。`
},
// 预览
QuestionRemark: {
en: (title) => `${title} remark`,
zh: (title) => `${title}问题评论`
},
// 问卷结束的各种提示
SurveyEndNotice: {
en: 'This survey has ended. We look forward to your participation next time.',
zh: '本次调研活动已经结束,感谢您的参与,请您持续关注'
},
SurveyNotStartNotice: {
en: 'This survey has not yet started.',
zh: '答题时间还没有开始'
},
SurveyTemporarilySuspendedNotice: {
en: 'This survey is temporarily suspended for collection',
zh: '此问卷暂停收集'
},
LinkDisabledNotice: {
en: 'The provider has not enabled this link. Please try again later',
zh: '投放者未启用该链接,请稍后重试'
},
FeedbackNotice: {
en: 'Thank you for participating in this survey. We look forward to your participation next time',
zh: '感谢您的反馈,期待您下次参与'
},
SubmittedNotice: {
en: 'You have submitted the questionnaire. We look forward to your participation next time.',
zh: '您已提交答卷,期待您下次反馈'
},
SurveyFilledNotice: {
en: 'You have already filled out this questionnaire',
zh: '您已填过此问卷'
},
FillOutNewSurvey: {
en: 'Fill out new one',
zh: '填份新的'
},
ReviseSurvey: {
en: 'Revise',
zh: '修改内容'
},
// 问题的提示文字
UploadSuccessful: {
en: 'Upload successful.',
zh: '上传成功'
},
UploadFailed: {
en: 'Upload failed.',
zh: '上传失败'
},
Loading: {
en: 'Loading',
zh: '加载中'
},
Start: {
en: 'Start',
zh: '开始'
},
PleaseAnswerCarefullyOtherwiseRestart: {
en:
'Please be sure to read the questions carefully. Consecutive answers may invalidate the entire questionnaire. Your answer to each question is of great significance to us.',
zh:
'您在每一题的态度与观点均对我们有非常重要的意义,请您务必仔细阅读题目后回答,连续一致的答案可能会导致整个问卷的作废,请您重新作答。'
},
IGotIt: {
en: 'Got it',
zh: '我知道啦'
},
// BPTO
Product: {
en: 'Product',
zh: '产品'
},
Character: {
en: 'Character',
zh: '特性'
},
Price: {
en: 'Price',
zh: '价格'
},
PleaseSelect: {
en: 'Please select',
zh: '请选择'
},
// CBC
YouHaveNotAnsweredThisQuestionAnswerToContinue: {
en: 'You have not answered this question. You can continue after answering!',
zh: '您没有对该问题进行回答,回答后可继续做答!'
},
ProductNumber: {
en: 'Product Number',
zh: '商品编号'
},
ProductName: {
en: 'Product Name',
zh: '商品名称'
},
ProductDescription: {
en: 'Product Description',
zh: '商品介绍'
},
ProductDetail: {
en: 'Product detail',
zh: '商品详情'
},
Above: {
en: 'Above',
zh: '以上'
},
ChooseNeither: {
en: 'Choose neither',
zh: '都不选'
},
// KANO
HaveSomeFeature: {
en: (feature) => `Have the feature ${feature}`,
zh: (feature) => `具备${feature}`
},
DoNotHaveSomeFeature: {
en: (feature) => `Do not have the feature ${feature}`,
zh: (feature) => `不具备${feature}`
},
Dislike: {
en: 'Dislike',
zh: '不喜欢'
},
Tolerable: {
en: 'Tolerable',
zh: '能忍受'
},
DoesNotMatter: {
en: 'Does not matter',
zh: '无所谓'
},
ShouldBe: {
en: 'Should be',
zh: '理应如此'
},
Like: {
en: 'Like',
zh: '喜欢'
},
// MaxDiff
PleaseSelectSome: {
en: (option) => `Please select ${option}`,
zh: (option) => `请选择${option}`
},
// PSM
PleaseSelectAValueThatIsNoLessThanOneAndNoMoreThanOne: {
en: (min, max) => `Please select a value that is no less than ${min} and no more than ${max}`,
zh: (min, max) => `请选择不小于${min}不大于${max}的值`
},
PleaseSelectAValueThatIsNoMoreThanOne: {
en: (min, max) => `Please select a value that is no more than ${max}`,
zh: (min, max) => `请选择不大于${max}的值`
},
// 密码
PleaseEnterPassword: {
en: 'Please enter password',
zh: '请输入密码'
},
// 填空题
PleaseInputANumber: {
en: 'Please input a number',
zh: '请输入数字'
},
PleaseEnterANumberGreaterThanOrEqualToOne: {
en: (count) => `Please enter a number greater than or equal to ${count}`,
zh: (count) => `请输入大于等于${count}的数字`
},
PleaseEnterANumberLessThanOrEqualToOne: {
en: (count) => `Please enter a number less than or equal to ${count}`,
zh: (count) => `请输入小于等于${count}的数字`
},
// 级联题
PleaseSelectAProvince: {
en: 'Please select a province',
zh: '请选择省份'
},
PleaseSelectACity: {
en: 'Please select a city',
zh: '请选择城市'
},
PleaseSelectADistrict: {
en: 'Please select a district',
zh: '请选择区县'
},
// 分类题
Option: {
en: 'Answer Option',
zh: '选项'
},
Category: {
en: 'Category',
zh: '分类'
},
BracketDragAndDropOptionsHere: {
en: '(Drag and drop options here)',
zh: '(选项拖入此处)'
},
// 知情同意书题
OneSecondsLeftToRead: {
en: (count) => `${count} seconds left to read`,
zh: (count) => `还需阅读${count}`
},
// 热区题
PleaseSelectOneAreas: {
en: (count) => `Please select ${count} areas`,
zh: (count) => `请选择${count}个选区`
},
PleaseSelectOneFavoriteAreas: {
en: (count) => `Please select ${count} areas you like`,
zh: (count) => `请选择${count}个喜欢选区`
},
PleaseSelectOneDislikeAreas: {
en: (count) => `Please select ${count} areas you dislike`,
zh: (count) => `请选择${count}个不喜欢选区`
},
// 图片题
PleaseClickToViewAllPictures: {
en: 'Please click to view all pictures',
zh: '请点击查看所有图片'
},
ClickToViewPicture: {
en: 'Click to view picture',
zh: '点击查看图片'
},
AutoDestructionAfterViewingTimeout: {
en: 'Auto destruction after viewing timeout',
zh: '查看超时后自动焚毁'
},
ImageHasExpired: {
en: 'Image has expired',
zh: '图片已失效'
},
PleaseClickToViewPicture: {
en: 'Click to view picture',
zh: '请点击查看图片'
},
NoteCantViewAfterTimeLimit: {
en: 'Note: Can\'t view after time limit',
zh: '注意:超过显示时间限制后将无法再次查看'
},
DisplayTimeLimitExceeded: {
en: 'Display time limit exceeded',
zh: '已超过显示时间限制'
},
AutomaticallyCloseAfterOneSecond: {
en: (count) => `Automatically close after ${count} seconds`,
zh: (count) => `${count}秒后自动关闭`
},
// 多项填空
ContentIsRequired: {
en: 'is required',
zh: '必答'
},
ContentShouldNotBeTheSameAsOtherBlanks: {
en: 'should not be the same as other blanks',
zh: '的内容请勿与其他空相同'
},
TheBlankIs: {
en: (message) => `The blank ${message}`,
zh: (message) => `填空${message}`
},
// 地图题
ObtainGeographicalLocation: {
en: 'Obtain geographical location',
zh: '获取地理位置'
},
LongitudeAndLatitude: {
en: (lng, lat) => `Longitude: ${lng}, Latitude: ${lat}`,
zh: (lng, lat) => `经度:${lng}, 纬度:${lat}`
},
PleaseEnterTheLocationOrStreetYouWantToSearchFor: {
en: 'Please enter the location or street you want to search for',
zh: '请输入要搜索的地点、街道'
},
// 密码题
PleaseEnterAtLeastOneCharacters: {
en: (count) => `Please enter at least ${count} characters.`,
zh: (count) => `请至少输入${count}`
},
ThePasswordNeedsToIncludeLettersNumbersOrBoth: {
en: 'The password needs to include letters, numbers, or both letters and numbers.',
zh: '密码需要包含字母/数字/字母和数字'
},
ThePasswordNeedsToIncludeLettersNumbersSymbolsOrCombination: {
en: 'The password needs to include letters, numbers, symbols, or a combination of letters, numbers, and symbols.',
zh: '密码需要包含字母/数字/符号/字母和数字/字母和符号/符号和数字/字母、数字和符号'
},
ThePasswordNeedsToIncludeUpperLowerLettersNumbersSymbolsOrCombination: {
en:
'The password needs to include uppercase letters, lowercase letters, numbers, symbols, or a combination of uppercase and lowercase letters, numbers and symbols.',
zh: '密码需要包含大/小写字母/数字/符号/大/小写字母和数字/大/小写字母和符号/符号和数字/大/小写字母、数字和符号'
},
ThePasswordMustBeACombinationOfLettersAndNumbers: {
en: 'The password must be a combination of letters and numbers.',
zh: '密码必须为字母和数字'
},
ThePasswordsEnteredDoNotMatch: {
en: 'The passwords entered do not match.',
zh: '两次密码输入不一致'
},
// 手机号题
GetCaptcha: {
en: 'Get Captcha',
zh: '获取验证码'
},
SentSuccessfully: {
en: 'Sent successfully.',
zh: '发送成功'
},
PleaseEnterAValidPhoneNumber: {
en: 'Please enter a valid phone number.',
zh: '请输入正确的手机号'
},
// 签名题
Clear: {
en: 'Clear',
zh: '清空'
},
Undo: {
en: 'Undo',
zh: '撤销'
},
Eraser: {
en: 'Eraser',
zh: '橡皮'
},
Brush: {
en: 'Brush',
zh: '画笔'
},
CompleteAndUpload: {
en: 'Upload',
zh: '完成并上传'
},
// 恒定总和题
Sum: {
en: 'Sum',
zh: '总和'
},
// 上传文件题的提示
ClickOrDragTheFileHereToUpload: {
en: 'Click or drag the file here to upload.',
zh: '点击或将文件拖拽到这里上传'
},
UploadFileDesc: {
en: (min, max, minSize, maxSize, type) => {
let result = `Upload at least ${min} files, up to a maximum of ${max} files, with each file size between ${minSize}MB and ${maxSize}MB`;
if (type) {
result += `, and the file format limited to ${type}`;
}
result += '.';
return result;
},
zh: (min, max, minSize, maxSize, type) => {
let result = `最少上传${min}个文件,最多上传${max}个文件,每个文件不小于${minSize}M不大于${maxSize}M`;
if (type) {
result += `,文件格式限制为${type}`;
}
result += '。';
return result;
}
},
FileSizeIsLessThanOneMB: {
en: (size) => `File size is less than ${size}MB.`,
zh: (size) => `文件小于${size}M`
},
FileSizeIsGreaterThanOneMB: {
en: (size) => `File size is greater than ${size}MB.`,
zh: (size) => `文件大于${size}M`
},
FileFormatIsIncorrect: {
en: 'The file format is incorrect.',
zh: '文件格式不正确'
},
UploadFileSuccessful: {
en: (title) => `Upload ${title} successful.`,
zh: (title) => `${title} 上传成功`
},
UploadFileFailed: {
en: (title) => `Upload ${title} failed.`,
zh: (title) => `${title} 上传失败`
},
EquipmentNotice: {
en: (title) =>
`Sorry, the number of submissions you have made under the current IP address has reached the limit. Thank you for participating.`,
zh: (title) => `很抱歉,您使用当前设备填写问卷已达到限制次数,感谢参与`
},
SubmitIpNotice: {
en: (title) =>
`Sorry, the number of submissions you have made under the current IP address has reached the limit. Thank you for participating.`,
zh: (title) => `很抱歉您在当前IP地址下填写问卷已达到限制次数感谢参与`
},
PrivatizationWxWorkIdentityNotice: {
en: (title) =>
`Sorry, the current environment does not allow you to answer this questionnaire.\nPlease click on the link or scan the code to answer through the privatized enterprise WeChat.`,
zh: (title) => `很抱歉,当前环境无法作答该问卷\n请通过私有化企业微信点击链接或扫码作答`
},
// QLast 提示
QLast_Stay: {
en: 'Cancel',
zh: '停止跳转'
},
QLast_Redirect: {
en: 'Continue',
zh: '立即跳转'
},
QLast_RedirectingIn5Seconds: {
en: (countdown) => `You will be redirecting to another page in ${countdown} seconds.`,
zh: (countdown) => `发布者设置了作答后跳转,页面将于【${countdown}】秒后跳转`
},
QLast_IosRedirectingPrompt: {
en: 'If you are using an Apple (iOS) deviceplease click the button below to jump now.',
zh: '页面跳转中如您使用苹果iOS设备或页面长时间未跳转请手动点击下方按钮进行跳转'
}
};
export const allLanguageTypes = Object.keys(language[Object.keys(language)[0]]);
export const languageTypes = ['zh'];
export function setLanguageTypes(types) {
languageTypes.push(...types);
}
export function getLanguage(langArr = languageTypes) {
const l = [];
if (!langArr) {
l.push('zh');
} else if (Array.isArray(langArr)) {
if (langArr.length) {
l.push(...langArr);
} else {
l.push('zh');
}
} else {
l.push(langArr);
}
const result = {};
Object.keys(language).forEach((key) => {
result[key] = '';
let tempStr = [];
let tempFunc = [];
l.forEach((lang) => {
const res = language[key][lang];
if (typeof res === 'string') {
tempStr.push(language[key][lang]);
} else {
tempFunc.push(language[key][lang]);
}
});
if (tempStr.length) {
result[key] = tempStr.join('\n');
}
if (tempFunc.length) {
result[key] = (...rest) => tempFunc.map((func) => func(...rest)).join('\n');
}
});
return result;
}