Files
tougao_web/src/components/common/langs/en.js
2026-05-19 14:17:28 +08:00

1514 lines
57 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.
const en = {
system: {
title: 'Publishing Group Submission System',
title_1: 'Publishing Group',
title_2: 'Submission System',
repassword: 'Forgot your password?',
register: 'Register',
orcidlogin: 'Login with your ORCID iD',
login: 'Log in',
forgetpwd: 'Find Your Password',
screen: 'full screen',
noscreen: 'Cancel full screen',
loyout: 'Log out',
langbtn: 'language',
label: 'Label options',
labelother: 'close other',
labelall: 'close all'
},
info: {
realname: 'English names can only contain uppercase and lowercase letters, "-", and spaces'
},
articleAdd: {
qqEmailAlertLine1: 'The publisher does not currently accept submissions from QQ Mail.',
qqEmailAlertLine2Before: 'Please go to',
qqEmailDashboardLink: 'Personal Center (Dashboard)',
qqEmailAlertLine2After: ' to change your registered email.',
qqEmailSubmitBlockedMsg: 'QQ Mail is not supported for submission. Please go to Personal Center (Dashboard) and change your email.'
},
total: {
author: 'author',
editor: 'editor',
reviewers: 'reviewer',
admin: 'admin'
},
articleListEditor: {
Continuouspublication: 'Continuous publication',
publishInfo: 'Are you sure you want to publish this article?',
type: 'Type',
edit: 'Edit',
add: 'Add',
journalType0: 'Continuous publication',
journalType1: 'Monthly',
journalType3: 'Quarterly',
coverImage: 'Cover Image',
JournalInstallment: 'Journal Installment',
status: 'Status',
delete: 'Delete',
deleteInfo: 'Are you sure you want to delete this journal installment?',
plagiarismNotChecked: 'Not checked',
plagiarismChecking: 'Checking…',
plagiarismRecheck: 'Re-check',
plagiarismDuplicateCheck: 'Re-check',
plagiarismCheckFailed: 'Failed to start plagiarism check.',
plagiarismStatusFailed: 'Failed to load plagiarism status.',
plagiarismNoReportUrl: 'Report link is not available yet.',
plagiarismReportDetailFailed: 'Could not load manuscript details. Please try again.',
plagiarismListTitle: 'Plagiarism check history',
plagiarismAutoCheck: 'Auto plagiarism check',
plagiarismRefresh: 'Refresh',
plagiarismEmptyList: 'No plagiarism checks yet',
plagiarismSimilarity: 'Similarity',
plagiarismFile: 'File',
plagiarismPreviewPdf: 'Preview report',
plagiarismReportLink: 'Report',
plagiarismNoPdfLink: 'No link',
plagiarismPreviewClose: 'Close',
plagiarismPreviewOpenTab: 'Open in new tab',
},
menu: {
main: 'Personal Center',
PublicationSystem: 'Publication System',
PaperEditingSystem: 'Paper Editing System',
PaperPublicationSupervise: 'Paper Publication Supervise',
PaperSubmitanalysis: 'Paper Submit Analysis',
ArticlePublicationanalysis: 'Article Publication Analysis',
journalArticleCount: 'Article Count',
Promotionsystem: 'Promotion System',
Userdatabase: 'User Database',
analysis: 'Article Analysis',
evaluationsis: 'Article Distribution',
userManSys1: 'Total User',
userManSys13: 'Untapped Users',
userManSys14: 'All Users',
userManSys15: 'Author Database',
userManSys7: 'Blacklist',
userManSys6: 'Promotion Record',
JournalCitationAnalysis: 'Journal Citation Analysis',
Academicresourcesupervise: 'Academic Resource Supervise',
Classificationmanagement: 'Classification Management',
ClassificationmanagementInfo: 'Classification',
publicationsupervise: 'Publication Supervise',
papersubmit: 'Paper Submit',
ArticlePublication: 'Article Publication',
JournalCitationAnalysis: 'Journal Citation Analysis',
},
GroupClassification: {
add: 'Add',
cancel: 'Cancel',
submit: 'Submit',
edit: 'Edit',
delete: 'Delete',
major_title: 'Major Title',
major_current: 'Current Major',
nickname: 'Nick Name',
enter: 'Please Enter...',
sort: 'Sort',
deleteInfo: 'Are you sure you want to delete this category',
Unbind: 'Unbind',
bind: 'Bind',
ExpandAll: 'Expand All',
Journal: 'Journal',
JournalBindInfo: 'The Journal',
BindInfo: 'will be bound to this category, Do you want to continue?',
UnBindInfo: 'will unbind this category, Do you want to continue?',
Tips: 'Tips',
AssociatedJournal: 'Associated Journal',
},
JournalCitationAnalysis: {
journal: 'Journal',
editor: 'Editor',
cite: 'Cited in',
citeNum: 'Cited',
article: 'Articles for',
articleNum: 'Articles',
info: 'The following data is',
Fee: 'Fee',
wos: 'Wos',
all: 'All references',
factor: 'Factor',
Sameperiod: 'Same period',
ArticleInfo: 'Article Information',
website: 'Website',
email: 'Email',
abbr: 'abbr',
edit: 'Edit',
level: 'Level',
editorinchief: 'Editor In Chief',
journal_topic: 'Research areas',
// 1. 录入弹窗 (image_e6d8fa.png)
feeDialogTitle: 'Adjustment of Article Processing Charge (APC)',
feeWarningTitle: 'Financial Configuration Alert',
feeWarningDesc: 'Modifying the APC is a critical update. The new rate will be applied prospectively to all new submissions upon confirmation.',
feeLabel: 'New APC Amount (USD)',
placeholder: 'Enter amount',
confirmUpdate: 'Update Standard',
cancel: 'Cancel',
// 2. 二次确认弹窗 (image_e6d449.png)
doubleConfirmTitle: 'Final Regulatory Confirmation',
doubleConfirmContent: 'Are you sure you want to authorize this rate change? This adjustment will immediately synchronize with the billing system and impact all future financial settlements.',
// 3. 反馈
updateSuccess: 'The journal APC standard has been successfully updated.',
executiveEditor:'Executive Editor',
databases:'Database inclusion',
},
partyRole: {
identity: 'Identity',
InvestorProducer: 'Investor Producer',
author: 'Author',
status: 'Status',
Published: 'Published', journal: 'Journal',
},
paperArticleCount: {
Periodroll: 'Period Roll',
article: 'Articles',
articleTitle: 'Article Tiltle',
articleLen: 'Number Of Articles',
articleLen1: 'Articles',
cite: 'Cited',
relation: 'Relation',
},
partyListCorr: {
Realname: 'Realname',
Email: 'Email',
unregistered: 'unregistered',
OtherInformation: 'Other Information',
articlelist: 'Article List',
journal: 'Journal',
Authors: 'Authors',
},
sidebar: {
main: 'Personal Center',
author: 'Author',
author1: 'My manuscripts',
author2: 'Submit manuscript',
author4: 'Order List',
author3: 'Manuscripts in Draft',
editor: 'Editor',
editor1: 'Paper Editing System',
// editor1: 'Manuscript list',
editormanage: 'Editor Management',
editormanage1: 'Editor list',
editormanage2: 'Add editor',
journal: 'Journal Management',
journal1: 'Journal list',
journal2: 'Add journal',
reviewer: 'Reviewer Management',
reviewer1: 'Reviewer application list',
reviewer2: 'Reviewer list',
reviewer3: 'Reviewer import',
reviewer4: 'Reviewer error',
reviewer5: 'Reviewer Add',
reviewer6: 'Author transferred to reviewer',
reviewerArticle: 'Reviewer',
reviewerArticle1: 'Manuscript list',
authorApplyReviewer: 'Become reviewer',
reviewerimport: 'Reviewer import',
reviewerimporterror: 'import error',
monitor: 'Monitor',
monitor1: 'Manuscript situation',
document: 'Manuscript List',
chief: 'Chief editor',
chief1: 'Chief editor list',
chief2: 'Journal list',
editmber: 'Editorial management',
editmber1: 'Editorial board list',
editmber2: 'Editorial board list',
editmber3: 'Matching pattern',
userTalSys: 'User Management System',
userTalSys1: 'Total User',
userTalSys2: 'User Blacklist',
userTalSys3: 'Editorial board',
userTalSys4: 'Reviewer application list',
userTalSys5: 'Author transferred to reviewer',
userTalSys6: 'Reviewer list',
userTalSys7: 'Editorial board apply list',
userTalSys8: 'Young Scientist apply list',
userManSys: 'User Management System',
journalManagement: 'Journal Management',
journalList: 'Journal List',
userManSys1: 'Total User',
userManSys11: 'Active Users',
userManSys12: 'Inactive Users',
userManSys13: 'Untapped Users',
userManSys14: 'All Users',
userManSys15: 'Author Database',
userManSys2: 'Author',
userManSys3: 'Reviewer',
userManSys31: 'List',
userManSys32: 'Apply',
userManSys33: 'Author transferred to reviewer',
userManSys4: 'Editorial board',
userManSys41: 'List',
userManSys42: 'Apply',
userManSys5: 'Young Scientist',
userManSys51: 'List',
userManSys52: 'Apply',
userManSys6: 'Promotion Record',
userManSys7: 'Blacklist',
userManSys8: 'Academic Integrity Committee',
userManSys9: 'Editors & Staff',
userManSys11: 'Journal Agreement',
analyp: 'Manager',
datasis: 'Journal Data Statistics',
analysis: 'Journal Evaluation System',
evaluationsis: 'Journal Evaluation Statistics',
rev_ewer: 'Reviewer',
rev_ewer1: 'Peer Review',
rev_ewer2: 'Review History',
man_ing: 'Editor-in-Chief',
man_ing1: 'Journal information',
man_ing2: 'Article List',
edit_oria: 'Editorial board member',
edit_oria1: 'Final Decision',
edit_oria2: 'Accepted manuscript',
edit_ewer: 'Reviewer',
edit_ewer1: 'Final Decision',
edit_ewer2: 'Final Decision History',
you_thed: 'Young scholar',
you_thed1: 'Pending review',
guest: 'Guest editor',
guest1: 'Manuscript list',
guest2: 'Reviewer list',
email: 'Mail management',
email1: 'Mail template',
suggest: 'Suggestion management',
suggest1: 'Suggestion list',
suggest2: 'Suggested title management',
party: 'User Management',
party1: 'Editor List',
party2: 'User List',
party3: 'User Blacklist',
mailbox: 'Mailbox system',
mailbox1: 'Mailbox send',
mailbox2: 'Mailbox list',
mailbox3: 'Mailbox template',
emailTemplates: 'Email Templates',
emailStyles: 'Email Styles',
tools: 'Assistant tools',
mailboxManagement: 'Mailbox Management',
mailboxConfig: 'Mailbox Management',
scholarCrawlers: 'Scholar Crawlers',
crawlerKeywords: 'Crawl Keywords',
expertDatabase: 'Expert Database',
keywordManagement: 'Keyword Management',
crawlTasks: 'Crawl Tasks',
expertList: 'Expert List',
countryManagement: 'Country Management',
autoPromotion: 'Auto Promotion',
ReArticles: 'Rejected Manuscripts', // 被拒稿件
editorialBoard: 'Boss System',
editorialBoard1: 'Board Management',
editorialBoard2: 'Young Scientist Management',
editorialBoard3: 'Journal Management',
chiefInspector: 'Chief Inspector',
journalArticleCount: 'Journal Article Count',
managingDirector: 'Managing Director',
GroupClassification: 'Group List',
JournalInstallment: 'Journal Installment',
mailboxCollect: 'Email List',
promotionManagement: 'Promotion Management',
},
expertDatabase: {
fieldSelectPlaceholder: 'Please select field',
keywordPlaceholder: 'Name / Email / Affiliation',
fieldPlaceholder: 'Please enter field',
searchBtn: 'Search',
resetBtn: 'Reset',
downloadExcelBtn: 'Download Excel',
table: {
no: 'No.'
},
columns: {
baseInfo: 'Base Information',
country: 'Country',
affiliation: 'Affiliation',
researchAreas: 'Research areas',
unsubscribeStatus: 'Subscription status'
},
emptyMark: '-',
fields: {
nameLabel: 'Name:',
emailLabel: 'Email:',
acquisitionTimeLabel: 'Acquisition Time:'
},
viewAllInfo: 'View all details',
detailDialogTitle: 'Research areas & Article',
detailColField: 'Research areas',
detailColPaper: 'Article title',
detailColJournal: 'Journal',
detailClose: 'Close',
detailCellEmpty: 'N/A',
noFieldDetail: 'No publication details for these fields',
exportWarn: 'Please select a research area, enter a keyword, or enter a field before exporting.',
exportFailed: 'Export failed',
unsubscribeNormal: 'Subscribed',
unsubscribeUnsubscribed: 'Unsubscribed',
unsubscribeSwitchOn: 'Unsub',
unsubscribeSwitchOff: 'Subscribed',
unsubscribeMissingId: 'Missing expert ID, unable to switch unsubscribe status',
unsubscribeUpdateSuccess: 'Unsubscribe status updated',
unsubscribeUpdateFailed: 'Failed to update unsubscribe status'
},
countryManagement: {
title: 'Country Management',
keywordPlaceholder: 'Chinese / English / Code',
partitionLabel: 'Partition',
partitionAll: 'All partitions',
partition1: 'Partition 1',
partition2: 'Partition 2',
partition3: 'Partition 3',
searchBtn: 'Search',
resetBtn: 'Reset',
table: {
no: 'No.',
zhName: 'Chinese name',
enName: 'English name',
code: 'Code',
partition: 'Partition',
actions: 'Actions'
},
edit: 'Edit',
delete: 'Delete',
editTitle: 'Edit country',
form: {
zhName: 'Chinese name',
enName: 'English name',
code: 'Code',
partition: 'Partition'
},
cancel: 'Cancel',
save: 'Save',
confirm: 'OK',
deleteTitle: 'Confirm delete',
deleteConfirm: 'Delete this country record? This cannot be undone.',
saveSuccess: 'Saved',
deleteSuccess: 'Deleted',
opFailed: 'Operation failed',
loadFailed: 'Failed to load list',
missingId: 'Missing country id',
ruleZhName: 'Enter Chinese name',
ruleEnName: 'Enter English name',
ruleCode: 'Enter code',
rulePartition: 'Select a partition',
batchPartitionBtn: 'Batch update partition',
batchPartitionTitle: 'Batch update partition',
batchPartitionTargetLabel: 'Target partition',
batchPartitionTargetRequired: 'Please select target partition first',
batchPartitionHelp:
'One record per line: ISO code (3 letters) OR English OR Chinese name. Lines starting with # are comments. Example:\nDNK\nDenmark',
batchPartitionPlaceholder: 'Paste data, e.g.:\nDNK\nISR',
batchPartitionPreview: 'Preview match',
batchPartitionApply: 'Apply partition updates',
batchPartitionEmpty: 'Enter valid data (one country key per line)',
batchPartitionLoadListFailed: 'Failed to load full country list',
batchPartitionPreviewEmpty: 'Nothing to match',
batchPartitionColKey: 'Key from input',
batchPartitionColCurrentPartition: 'Current partition',
batchPartitionColPartition: 'Target partition',
batchPartitionColMatch: 'Match',
batchPartitionColId: 'country_id',
batchPartitionColName: 'English name',
batchPartitionMatched: 'Matched',
batchPartitionMismatch: 'Partition mismatch',
batchPartitionMissing: 'Not found',
batchPartitionSkipSame: 'Same partition',
batchPartitionApplyConfirm: 'Update partition only for {n} row(s). Continue?',
batchPartitionFilterPlaceholder: 'Filter by key / English / code / Chinese (use ; or , for multiple)',
batchPartitionSelectAllFiltered: 'Select all (filtered)',
batchPartitionClearSelection: 'Clear selection',
batchPartitionFilterCount: 'Showing {show} of {total}',
batchPartitionSelectionHint:
'Filter the table below, then tick rows to update. "Select all" only selects filtered rows that need a partition change. If nothing is ticked, all rows that need an update are submitted.',
batchPartitionNoSelection: 'Selection mode is on but no rows are ticked. Tick at least one row, or click Clear selection to submit all.',
batchPartitionDone: 'Done: {input} line(s) in batch; {ok} updated, {fail} failed, {miss} not found.',
batchPartitionSummaryLine:
'Summary: {input} line(s) parsed; {matched} matched; {miss} not found; {same} unchanged (same partition); {will} will be updated.'
},
mailboxConfig: {
mailSystem: 'Mailbox system',
title: 'Mailbox config',
journal: 'Journal',
allJournal: 'All journals',
query: 'Search',
refresh: 'Refresh',
addAccount: 'Add email account',
noData: 'No data',
no: 'No.',
loading: 'Loading...',
smtpFromName: 'Name',
smtpFromNamePlaceholder: 'Display name when sending',
smtpHost: 'SMTP host',
smtpPort: 'SMTP port',
smtpPortPlaceholder: 'eg: 465',
smtpEncryption: 'SMTP encryption',
smtpEncryptionPlaceholder: 'eg: ssl',
imapHost: 'IMAP host',
imapPort: 'IMAP port',
imapPortPlaceholder: 'eg: 993',
todaySent: 'Today sent',
remainingToday: 'Remaining today',
state: 'State',
primary: 'Primary',
primaryTag: 'Primary',
operation: 'Operation',
edit: 'Edit',
delete: 'Delete',
mailManage: 'Email List',
dialogAdd: 'Add email account',
dialogEdit: 'Edit email account',
selectJournal: 'Select journal',
account: 'Email account',
accountPlaceholder: 'Sender / login email',
password: 'Password',
passwordPlaceholder: 'Password',
passwordTip: 'Leave blank to keep unchanged when editing',
smtpPlaceholder: 'eg: mail.tmrjournals.co.nz',
imapPlaceholder: 'eg: mail.tmrjournals.co.nz',
isPrimary: 'Set as primary',
yes: 'Yes',
no: 'No',
primaryTip: 'Each journal has exactly one primary mailbox for sending and receiving.',
cancel: 'Cancel',
save: 'Save',
deleteConfirm: 'Delete this email config?',
deleteTitle: 'Delete email account',
confirm: 'Confirm',
addSuccess: 'Added successfully',
editSuccess: 'Updated successfully',
deleteSuccess: 'Deleted successfully',
addFail: 'Add failed',
editFail: 'Update failed',
deleteFail: 'Delete failed',
addSuccessMock: 'Added (mock)',
editSuccessMock: 'Updated (mock)',
deleteSuccessMock: 'Deleted (mock)',
rulesJournal: 'Please select journal',
rulesAccount: 'Please enter email account',
rulesAccountFormat: 'Please enter a valid email',
rulesPassword: 'Please enter password',
rulesSmtpFromName: 'Please enter sender name',
rulesSmtpHost: 'Please enter SMTP host',
rulesSmtpPort: 'Please enter SMTP port',
rulesSmtpEncryption: 'Please enter SMTP encryption',
rulesImapHost: 'Please enter IMAP host',
rulesImapPort: 'Please enter IMAP port',
rulesIsPrimary: 'Please set primary or not',
},
mailboxMould: {
title: 'Email Templates',
subtitle: 'Manage and customize your journal email templates.',
no: 'No.',
searchPlaceholder: 'Search by title or scene...',
journalPlaceholder: 'Journal',
scenePlaceholder: 'Scene',
all: 'All',
inviteSubmission: 'Invite Submission',
promoteCitation: 'Promote Citation',
generalThanks: 'General Thanks',
languagePlaceholder: 'Language',
searchBtn: 'Search',
createTemplate: 'Create Template',
colTitle: 'Template title',
colSubject: 'Email subject',
colScene: 'Scene',
colLanguage: 'Language',
colVersion: 'Version',
colStatus: 'Status',
colActions: 'Actions',
active: 'Active',
inactive: 'Inactive',
confirm: 'Confirm',
cancel: 'Cancel',
deleteConfirm: 'Delete this template?',
deleteSuccess: 'Deleted successfully',
deleteFail: 'Delete failed',
previewTitle: 'Template preview',
previewClose: 'Close',
batchImportBtn: 'Batch import',
batchImportTitle: 'Batch import templates (JSON)',
batchImportHint:
'Paste a JSON array. Each item is saved via the same API as the editor (omit template_id to create; include template_id to update). Fields: title, subject, scene, language (or lang), version, body_html (or body), variables_json (or variables), is_active.',
batchImportCommonTip: 'Journal ID is set in the field below; when non-empty it overrides journal_id / journalId on every row.',
batchImportJournalId: 'Journal ID',
batchImportJournalPlaceholder: 'Match list filter or type manually',
batchImportRun: 'Run import',
batchImportBadJson: 'Invalid JSON',
batchImportEmpty: 'Array must contain at least one object',
batchImportMissingJournal: 'Row {index}: missing journal_id (use the input above or put journal_id in JSON)',
batchImportMissingField: 'Row {index}: missing {field}',
batchImportRowFail: 'Row {index} failed: {msg}',
batchImportRowNetwork: 'Row {index}: request error',
batchImportDone: 'Done: {ok} succeeded, {fail} failed',
batchImportErrorsTitle: 'Errors (first 8)',
batchImportSaveFail: 'Save failed',
},
mailboxStyle: {
title: 'Email Styles',
subtitle: 'Manage email header and footer styles.',
no: 'No.',
searchPlaceholder: 'Search by name or description...',
journalPlaceholder: 'Journal',
scenePlaceholder: 'Scene',
languagePlaceholder: 'Language',
searchBtn: 'Refresh',
createStyle: 'Create Style',
colName: 'Style name',
colDescription: 'Style description',
},
mailboxStyleDetail: {
back: 'Back',
createStyle: 'Create style',
editStyle: 'Edit style',
cancel: 'Cancel',
save: 'Save',
loading: 'Loading',
name: 'Style name',
namePlaceholder: 'Enter style name',
description: 'Style description',
descriptionPlaceholder: 'Enter style description',
headerHtml: 'Header HTML',
footerHtml: 'Footer HTML',
rulesName: 'Please enter style name',
rulesDescription: 'Please enter style description',
rulesHeaderHtml: 'Please enter header HTML',
rulesFooterHtml: 'Please enter footer HTML',
saveSuccess: 'Saved successfully',
saveFail: 'Save failed',
},
mailboxMouldDetail: {
back: 'Back',
createTemplate: 'Create template',
editTemplate: 'Edit template',
cancel: 'Cancel',
save: 'Save',
loading: 'Loading',
rulesJournal: 'Please select journal',
rulesScene: 'Please select template type',
rulesLanguage: 'Please select language',
rulesTitle: 'Please enter template title',
rulesSubject: 'Please enter email subject',
rulesBody: 'Please enter email body',
rulesVersion: 'Please enter version',
basicInfo: 'Basic info',
templateTitle: 'Template title',
templateTitlePlaceholder: 'Enter title',
emailSubject: 'Email subject',
emailSubjectPlaceholder: 'Email subject',
emailBody: 'Email body',
journal: 'Journal',
templateType: 'Template type',
sceneInviteSubmission: 'Invite submission',
scenePromoteCitation: 'Promote citation',
sceneGeneralThanks: 'General thanks',
languageConfig: 'Language',
version: 'Version',
versionControl: 'Version',
versionPlaceholder: '1.0.0',
bodyEdit: 'Body editor',
activeStatus: 'Active',
variablesJson: 'Variables (JSON)',
variablesPlaceholder: '{"name": "string"}',
previewTab: 'Preview',
subjectLabel: 'Subject:',
receiverLabel: 'Receiver:',
previewRendering: 'Live preview',
saveSuccess: 'Saved successfully',
saveFail: 'Save failed',
saveSuccessMock: 'Template saved (mock)',
},
mailboxCollect: {
inboxTab: 'Mail received',
outboxTab: 'Mail sent',
draftsTab: 'Drafts',
deletedTab: 'Deleted',
spamTab: 'Spam',
searchPlaceholder: 'Please enter name or email',
searchBtn: 'Search',
syncBtn: 'Sync remote mail',
writeBtn: 'Write letter',
receiveBtn: 'Sync inbox',
email: 'Email',
account: 'Account',
time: 'Time',
look: 'Look',
emptyText: 'New messages (0)',
loading: 'Loading...',
detailTitle: 'Mail detail',
from: 'From',
to: 'To',
subject: 'Subject',
close: 'Close',
noSubject: '(No subject)',
reply: 'Reply',
forward: 'Forward',
delete: 'Delete',
featureDev: 'This feature is under development',
selectMailTip: 'Select an email to read',
selectAccountTitle: 'Select email account',
journal: 'Journal',
accountColumn: 'Email account',
nameColumn: 'Name',
switchColumn: 'Switch',
useBtn: 'Switch',
currentAccountText: 'Current account',
changeAccountBtn: 'Change account',
syncSuccess: 'Sync succeeded',
syncFail: 'Sync failed',
operation: 'Operation',
loadingMore: 'Loading more...',
noMore: 'No more',
yesterday: 'Yesterday',
selectAccountTip: 'Please select an email account first.',
attachmentCount: ' attachment(s)',
downloadFail: 'Download failed',
accountNotBelong: 'This account does not belong to you. Please select another one.',
totalAttachments: '{count} attachment(s) in total',
etcSuffix: '... etc.',
viewAttachments: 'View attachments',
newMailArrived: '{count} new mail(s) received, click to view',
downloadAllZip: 'Download all',
packingAttachments: 'Packing attachments, please wait...',
downloadBtn: 'Download',
printBtn: 'Print',
previewNotSupported: 'This file format cannot be previewed online',
downloadToView: 'Download to view locally',
registerAuthorBtn: 'Auto submit',
registerAuthorConfirm:
'Create an account via the same admin API as User Management: login name "{account}", display name "{realname}", email "{email}", initial password 123456qwe (no captcha). Continue?',
registerAuthorSuccess: 'Author account created.',
registerAuthorSuccessWithEmail: 'Created: {email}, password: 123456qwe',
registerAuthorFail: 'Creation failed. Try again later or add the user manually in User Management.',
registerAuthorExistsEmail: 'This email is already registered.',
registerAuthorExistsAccount: 'This login name is already taken. Edit the sender display name or add the user manually.',
registerAuthorNeedEmail: 'Sender email is missing; cannot create an account.',
registerAuthorNoQq: 'QQ Mail is not supported for author accounts. Please add the user manually.',
registerAuthorConfirmShort: 'Email: {email}\nPassword: {password}',
registerAuthorPickEmailFail: 'Could not allocate an available email after several attempts. Try again later or add the user manually.',
autoSubmitBtn: 'Submit first .docx as manuscript',
autoSubmitTitle: 'Log in as author and upload the first .docx attachment',
autoSubmitSessionTip:
'Author checkLogin does not change your U_* local account. The server cookie is the author during upload. After finishing, enter your editor password below and log in again to restore the editor server session.',
autoSubmitUsername: 'Username',
autoSubmitPassword: 'Password',
autoSubmitSenderEmailLabel: 'Sender email',
autoSubmitSenderEmailPlaceholder: '(No sender email)',
autoSubmitCode: 'Captcha',
autoSubmitCodePh: 'Fill only if the server requires captcha; often leave empty',
autoSubmitCancel: 'Cancel',
autoSubmitDialogTitle: 'Auto submit',
autoSubmitConfirm: 'Auto submit',
autoSubmitExistingAccountTip:
'This sender email may already have an account. Enter your password. Re-selecting a local file replaces the previous one.',
autoSubmitNotifyMailSubject: '[{journal}] Please complete your submission',
autoSubmitNotifyMailFail: 'Could not send the notification email. You can resend from the compose page.',
autoSubmitNotifyMailSkipped: 'No sender mailbox (j_email_id) found; skipped automatic email.',
autoSubmitNoDocx: 'No .docx attachment in this message (only .docx is supported, same as new submission).',
autoSubmitDownloadFail: 'Could not download the attachment. Try again later.',
autoSubmitSuccessTitle: 'Manuscript created',
autoSubmitDialogClose: 'Close',
autoSubmitSuccessLineAccount: 'Account: {account}',
autoSubmitSuccessLinePassword: 'Password: {password}',
autoSubmitSuccessLineDraft: 'Manuscript ID: {id}. Draft created in staging.',
autoSubmitSuccessLineLinkPrefix: 'Submission link: ',
autoSubmitSuccessMailSent: 'Notification email sent',
autoSubmitSuccessMailSkipped: 'No notification email (journal sender mailbox not configured).',
autoSubmitSuccessMailSkippedRecipient: 'No notification email (no valid From address on this message).',
autoSubmitSuccessMailFailed: 'Notification email was not sent; try again from the compose page.',
autoSubmitSuccessBodyLocalOnly:
'Article ID: {id}. The UI still shows your editor account; the server session may still be the author after author login. Refresh or log in again as editor.',
autoSubmitSuccessBodyServerRestored:
'Article ID: {id}. Logged in again as editor; both local storage and server session should match your editor account.',
autoSubmitSuccessNotify:
'Article ID: {id}<br/><a href="{link}" target="_blank" rel="noopener noreferrer">Open articleAdd</a>',
autoSubmitEditorRestorePwd: 'Editor password (restore session)',
autoSubmitEditorRestorePwdPh:
'Optional: password for the current editor account shown in the header, used after success to restore the server session',
autoSubmitEditorReloginFail:
'Could not restore the editor server session; local values were restored where possible. Refresh the page or log in again as editor.',
autoSubmitFail: 'Submission failed. Check credentials or network and try again.',
autoSubmitUsernameRequired: 'Username is required',
autoSubmitPasswordRequired: 'Password is required',
autoSubmitJournalLabel: 'Journal',
autoSubmitJournalUnknown: 'No journal (switch to a mailbox account that is bound to a journal)',
autoSubmitNeedJournal:
'This mailbox has no journal ID; staging backfill cannot match the submission page. Switch mailbox account first.',
autoSubmitFailPartial: '(If contribute succeeded, article ID may be {id}; please verify in admin.)',
autoSubmitManuscriptSource: 'Manuscript file',
autoSubmitPickLocalDocx: 'Upload .docx from disk',
autoSubmitSourceHint: 'Optional: upload a file; otherwise the first .docx in the email is used. Choosing again replaces the current local file.',
autoSubmitLocalPicked: 'Local file: {name}',
autoSubmitNeedDocxSource: 'Upload a .docx file, or ensure the email has a .docx attachment.',
},
crawlerKeywords: {
pageTitle: 'Keyword Configuration',
pageDesc: 'Manage core search terms for discovering experts.',
exportData: 'Export Data',
startCrawl: 'Start Crawl',
inputPlaceholder: 'Enter new keyword, e.g. deep learning, semiconductor expert...',
addKeyword: 'Add Keyword',
searchPlaceholder: 'Search keywords...',
searchBtn: 'Search',
totalCount: '{count} keyword(s) in total',
colKeyword: 'Keyword',
colCategory: 'Category',
colStatus: 'Status',
colExpertCount: 'Expert Count',
colLastCrawl: 'Last Crawl',
colAction: 'Action',
save: 'Save',
cancel: 'Cancel',
stateRunning: 'Running',
statePaused: 'Paused',
stateError: 'Error',
stateDone: 'Done',
emptyKeywordWarn: 'Please enter a keyword',
addSuccess: 'Added successfully',
addFail: 'Failed to add',
updateSuccess: 'Updated successfully',
updateFail: 'Failed to update',
deleteConfirm: 'Are you sure to delete this keyword? This action cannot be undone.',
confirmTitle: 'Confirm',
deleteSuccess: 'Deleted successfully',
deleteFail: 'Failed to delete',
refreshSuccess: 'Refreshed successfully',
refreshFail: 'Failed to refresh',
crawlStarted: 'Crawl task started',
crawlFail: 'Failed to start crawl',
exportFail: 'Failed to export',
},
crawlTask: {
pageTitle: 'Crawl Monitor',
pageDesc: 'Review crawl jobs and indexing progress for expert discovery.',
exportData: 'Export Data',
startCrawl: 'Start Crawl',
searchPlaceholder: 'Search by keyword or phrase…',
searchBtn: 'Search',
allKeywords: 'All keywords',
enabled: 'Active',
disabled: 'Paused',
allStatus: 'All Status',
statusCrawling: 'Crawling',
statusDone: 'Done',
statusPaused: 'Paused',
statusError: 'Error',
source: 'Source',
startTime: 'Start Time',
endTime: 'End Time',
progress: 'Progress',
totalPages: 'Total Pages',
crawledPages: 'Crawled Pages',
expertCountLabel: 'Experts Stored',
expertCount: 'Expert Count',
created: 'Created',
completed: 'Completed',
updated: 'Updated',
viewDetail: 'View Detail',
viewLogs: 'View Logs',
pause: 'Pause',
resume: 'Resume',
restart: 'Restart',
delete: 'Delete',
deleteConfirm: 'Are you sure to delete this task? This cannot be undone.',
confirmTitle: 'Confirm',
confirmOk: 'OK',
confirmCancel: 'Cancel',
operationSuccess: 'Operation succeeded',
operationFail: 'Operation failed',
operationRetry: 'Operation failed, please try again later',
crawlStarted: 'Crawl task started',
crawlFail: 'Failed to start crawl',
exportFail: 'Failed to export',
detailTitle: 'Task Detail',
basicInfo: 'Basic Information',
taskName: 'Task Name',
status: 'Status',
resultSummary: 'Result Summary',
totalFound: 'Total Found',
newAdded: 'New Added',
duplicates: 'Duplicates',
failed: 'Failed',
logsTitle: 'Run Logs',
noLogs: 'No logs yet',
noData: 'No tasks',
emptyResult: 'No tasks match your filters. Try adjusting keywords or status.',
addKeyword: 'Add keyword',
keyword: 'Keyword',
keywordPlaceholder: 'Enter a search term (e.g. infectious diseases)',
runOnce: 'Run once',
runOnceBtn: 'Run once',
runOnceLoading: 'Crawling...',
yes: 'Yes',
no: 'No',
cancel: 'Cancel',
confirm: 'Save',
enterKeyword: 'Please enter a keyword.',
addKeywordSuccess: 'Keyword added.',
addKeywordFailed: 'Could not add keyword.',
runOnceSuccess: 'One-off crawl requested.',
runOnceFailed: 'Could not start a one-off crawl.',
disabledMsg: 'Disabled',
enabledMsg: 'Enabled',
pauseFailed: 'Failed to pause',
resumeFailed: 'Failed to resume',
missingKeyword: 'Enter a keyword before running a one-off crawl.',
restartSuccess: 'Sync restarted (local mock)',
metricExperts: 'Experts indexed',
metricPages: 'Pages crawled',
stateRunning: 'Running',
stateStopped: 'Stopped',
taskRunningMsg: 'Crawl is now enabled.',
taskStoppedMsg: 'Crawl has been paused.',
runOnceQueued: 'A one-off crawl has been queued.',
},
mailboxSend: {
title: 'Write mail',
to: 'To:',
selectFromLibrary: 'Select from address book',
subject: 'Subject:',
cc: 'Cc:',
attachments: 'Attachments:',
upload: 'Upload',
templateSelection: 'Template selection',
sender: 'Sender:',
send: 'Send',
sending: 'Sending...',
selectUser: 'Select User',
batchSelection: 'Batch selection',
email: 'Email',
account: 'Account',
operation: 'Operation',
selectBtn: 'Select',
emptyText: 'No data',
selectTemplate: 'Select template',
chooseTemplate: 'Choose Template:',
chooseTemplatePlaceholder: 'Please select template',
none: 'None',
previewTemplate: 'Preview Formatted Document:',
cancel: 'Cancel',
save: 'Save',
saveDraft: 'Save draft',
sourceMode: 'Source code',
richTextMode: 'Rich text',
exitSourceMode: 'Exit source mode',
sourcePlaceholder: 'Paste or edit full HTML here (DOCTYPE, html, head, body supported)',
editorPlaceholder: 'Please enter...',
validateTo: 'Please add at least one addressee',
validateSubject: 'Please enter mail subject',
sendSuccess: 'Send success',
sendFail: 'Send failed',
sendMock: 'Send (mock): will really send when api/Mail/sendMail is ready',
needAccount: 'Please select a sender account from the mailbox list first',
selectTemplateStyleFirst: 'Please select template and style first',
recipientLimit: 'You can add up to {count} recipient(s)',
recipientLimitPlaceholder: 'Limit reached (max {count})',
backToInbox: 'Back to email list',
},
home: {
authortop: 'Author guide',
usermsg: 'New messages',
},
artstate: {
state0: 'Received',
state1: 'With editor',
state2: 'Under review',
state3: 'Reject',
stateDraft: 'Awaiting Submission',
state4: 'Revision',
state5: 'Accept',
state6: 'Pre-accept',
state8: 'Final Decision',
act1: 'Dealing',
act2: 'Finished',
},
evaluationsis: {
EmploymentRate: 'Employment Rate',
contry: 'Contry',
zr: 'To Change Into',
zc: 'Transfer Out',
articles: 'Total Number Of Articles',
boardMembers: 'Number Of Editorial Board Members',
InternationalDistributionNumber: 'International Distribution Of Editorial Board Members',
InternationalDistributionTotal: 'total',
InternationalDistributionArticles: 'International Distribution Of Articles',
},
charact: {
role: 'Role',
role1: 'Role editor',
role2: 'Editorial board',
role3: 'Reviewer',
role4: 'Youth editorial board',
},
journalArticleCount: {
yearTitle: 'Total annual submission volume',
monthTitle: 'Monthly submission volume',
dataTitle: 'Submission volume',
transferQuantity: 'Transfer quantity',
info: 'The following data is',
loading: 'LOADING',
},
journalArticleTable: {
title: 'journal',
time: 'time',
}, protocol: {
PublishingAgreementInfo: 'Please enter the publishing agreement'
}, journalStatus: {
changeStatusInfo: '此稿件的评分没有达到初始评分标准,是否继续?',
changeStatusInfo: 'The rating of this manuscript did not meet the initial rating criteria. Do you want to continue?',
Continue: '继续',
Continue: 'Continue',
Cancel: '取消',
Cancel: 'Cancel',
Prompt: '提示',
Prompt: 'Prompt',
}, citeList: {
refresh: 'Check',
search: 'Search',
yes: 'Yes',
save: 'Save',
cancel: 'Cancel',
no: 'No',
add: 'Add',
edit: 'Edit',
delete: 'Delete',
deleteInfo: 'Are you sure you want to delete?',
tip: 'Tip',
factor: 'Factor',
date: 'Date',
is_wos: 'Is Wos',
is_china: 'Is China',
is_china0: '-',
is_china0Info: '-',
is_china1: 'Yes',
is_china2: 'No',
articleInfo: 'Article Information',
articleTitle: 'Article Tiltle',
journalTitle: 'Journal Tiltle',
addInfo: 'Paste the DOI into the input box, confirm that the information is correct, and then click the "Save" button.',
dialogQueryButton: 'Search',
dialogQueryButtonInfo: 'You can click the "Search" on the right to automatically identify and quickly fill in all the current fields',
dialogQueryButtonErrInfo: 'You can click the "Search" on the right to automatically identify and quickly fill in all the current fields',
rulesDoiInfo: 'Please enter Doi',
rulesJournalInfo: 'Please enter the journal title',
rulesAuthorInfo: 'Please enter the author',
rulesVolInfo: 'Please enter the publication time',
rulesArticleInfo: 'Please enter the article title',
authorInfo: 'Six or less authors are required to list all authors while more than six authors are required to list three of them with “et al.”.',
author: 'Author(s)',
publicationTime: 'Year',
publicationTimeInfo: 'Year;Volume(issue):Inclusive page numbers',
},
commonTable: {
add: 'Add',
delete: 'Delete',
reply: 'Reply',
execute: 'Execute',
revoke: 'Revoke',
solve: 'Solve',
cancelsolve: 'Cancel resolved',
Resolved: 'Resolved',
preview: 'Preview',
link: 'Positioning',
Typed: 'Typed',
edit: 'Edit',
rows: 'rows',
columns: 'columns',
table: 'Table',
headerPlaceholder: 'Fill in the header',
typesettingType2: 'Horizontal A4',
typesettingType1: 'Vertical A4',
AnnotationList: 'Annotation List',
Annotations: 'Comments',
exportWord: 'Export Word',
exportImg: 'Export PNG',
PaperRotation: 'Paper Rotation',
removeAnnotations: 'Are you sure you want to delete this Annotation?',
removeProofread: 'Are you sure to delete this suggestion?',
removeContent: 'Are you sure you want to delete this content?',
removeimg: 'Are you sure you want to delete this figure?',
removetable: 'Are you sure you want to delete this table?',
reContent: 'Are you sure you want to restore this content?',
uploadImageInfo: 'Figures can only upload files in JPG, JPEG, and PNG formats!',
selectComment: 'Please select the text to add annotations to!',
selectLinkText: 'Please select the target text content before associating it with a figure or table.',
selectWord: 'Please select only a single word',
selectOne: 'Please select only a single paragraph',
alreadyCommented: 'There are already annotations in the text, please select again!',
Multicolumn: 'Multicolumn',
singleRow: "single-row",
Row: "Row",
addRow: "Add Row",
Uncheck: 'Uncheck the paragraph',
ManuscirptAIProofreading: 'Manuscript AI Proofreading',
AIProofreading: 'AI Proofreading',
Association: 'Association',
BatchAddcontent: 'Batch Add content',
MoveUp: 'Move Up',
MoveDown: 'Move Down',
jump: 'Locate',
editAssociation: 'Edit Association',
UnbindAssociation: 'Unbind Association',
selectContent: 'Please select the content to operate first',
},
pendingPayment: {
title: 'Title',
journal: 'Journal',
Paymentamount: 'Payment amount',
subtotal: 'Subtotal',
payment: 'Online Payment',
payDetail: 'Payment Details',
total: 'Original price',
youhui: 'Final price',
discountprice: 'Final price after discount',
youhuiremark: 'Discount description',
submitOrder: 'Make a payment',
state0: 'Pending payment',
state1: 'Payment successfully',
state2: 'Cancelled',
paymentmethod: 'Payment method',
Disbursements: 'Payment amount',
Confirmorderinformation: 'Confirm order information',
orderDetail: 'Order information',
pendingpayment: 'Pending payment',
Paymentsuccessfully: 'Payment successfully',
Paymentstatus: 'Payment status',
time: 'Payment time',
},
PreAccept: {
successInfo: 'Congratulations! Your manuscript has entered into <b>Pre-accept</b> status. Now please check and complete the necessary information of your manuscript for final publication.',
step1: 'Article Processing Charge',
step2: 'Article Proofreading',
step3: 'References',
step: 'step',
Information: 'Fill in information',
startPreAccept: 'Start the pre-acceptance process',
startPreAcceptWithPayment: 'Start the pre-acceptance process and complete your payment',
},
Formula: {
FormulaTemplate: 'Formula Template'
},
AI: {
AISummaryAnalysis: 'AI analysis',
AIKeywords: 'Keywords',
AIAbstract: 'Abstract',
AIAbstractInfo: 'Analysis Result',
},
AIhtmlWeChatPreview: {
"title_english": "Title (English)",
"title_chinese": "Title (Chinese)",
"author": "Author",
"content": "Article Content",
"covered": "Research Fields",
"digest": "Summary",
"research_background": "Research Background",
"research_methods": "Research Method",
"research_result": "Results",
"summarize": "Summarize",
"overview": "Overview",
"highlights": "Highlights",
"discussion": "Discussion",
"prospect": "Future Prospects",
"cite": "Cite",
"journal_content": "Journal Introduction",
"journal_topic": "Journal Topic",
"authors": "Author Information",
"author": "Author",
"author_name": "Author Name",
"author_name_placeholder": "Please enter the author's name",
"company": "Affiliation",
"company_placeholder": "Please enter the author's affiliation",
"email": "Email",
"email_placeholder": "Please enter the author's email",
"icon": "Picture",
"introduction": "Introduction",
"technical": "Technical",
"icon_placeholder": "Please enter the author's avatar URL",
"remove_author": "Remove Author",
"add_author": "Add Author"
},
AIArticleStatus: {
1: 'WeChat AI content generated',
2: 'WeChat AI content not generated',
3: 'The article has been generated, but the draft box has not been pushed yet',
4: 'Draft created but not published',
10: 'WeChat article published successfully',
11: 'WeChat article publishing in progress...',
fail: 'WeChat article publishing failed',
unknown: 'Unknown status'
},
aiReview: {
Explain: 'Explain',
state0: 'Journal Scope Assessment',
state1: 'Journal Scope Explanation',
state2: 'Scientific and Innovative Assessment',
state3: 'Scientific and Innovative Explanation',
state4: 'Contradiction Assessment',
state5: 'Contradiction Explanation',
state6: 'Unreasonable Assessment',
state7: 'Unreasonable Explanation',
state8: 'Ethics Assessment',
state9: 'Ethics Explanation',
state10: 'Academic Misconduct Assessment',
state11: 'Academic Misconduct Explanation',
state12: 'Conclusion Assessment',
state13: 'Conclusion Explanation',
state14: 'Fund Number',
state15: 'Article Hotspot',
state16: 'Review Direction',
state17: 'AI Publishing Suggestion',
state18: 'Review Time',
state19: 'Reference Evaluation',
state20: 'Clinical registration number and informed consent assessment',
state22: 'Other Journal Scope Assessment',
state191: 'Proportion of references from the past three years',
state192: 'Proportion of references from the past five years',
state193: 'Proportion of references from JCR Q1',
state194: 'Proportion of references from JCR Q2',
state21: 'Probability of article being cited',
},
imageTask: {
"title": "Image Task Center",
"completed": "All Tasks Completed",
"preparing": "Preparing {total} images...",
"progress": "Progress: {current} / {total}",
"allDone": "Successfully processed {total} images",
"manualClose": "Tasks completed. Please close manually.",
"parsing": "Parsing...",
"uploading": "Uploading...",
"success": "Success",
"tooLarge": "Too Large (>1MB)",
"error": "Error: {msg}",
"imgLabel": "Img"
},
mailTemplate: {
noTemplateTip: 'No templates are available for the current journal. Please select another journal or go add templates first.',
addTemplateBtn: 'Go add templates',
templateTab: 'Template',
styleTab: 'Style',
loading: 'Loading...',
refresh: 'Refresh'
},
autoPromotion: {
title: 'Auto Promotion',
journal: 'Journal',
logs: 'Promotion History',
saved: 'Saved',
loading: 'Loading...',
refresh: 'Refresh',
autoSolicit: 'Auto Solicitation',
editConfig: 'Edit Configuration',
running: 'Running',
stopped: 'Stopped',
configure: 'Configure',
emailTemplate: 'Email Template',
emailStyle: 'Email Style',
notStarted: 'Auto solicitation plan is not enabled',
notInitializedTip: 'Auto solicitation is not enabled. Please configure template and style first, then enable the plan.',
journalManage: 'Journal Management',
loadListFailed: 'Failed to load journal list',
goConfig: 'Configure',
goManagePlan: 'Manage Plan',
startPlan: 'Start Plan',
startedPlan: 'plan enabled',
updateRetryFailed: 'Update failed, please try again later',
selectTemplateStyleFirst: 'Please select template and style before confirming',
configSaved: 'Configuration saved',
saveFailed: 'Save failed',
notInitializedSwitchTip: 'Auto solicitation is not initialized. Please configure templates first',
planEnabled: 'Plan enabled',
planDisabled: 'Plan disabled',
updateFailed: 'Update failed',
cancel: 'Cancel',
saveAndApply: 'Save and apply configuration',
selectTemplateStyleTitle: 'Choose journal template and style',
clickToChooseTemplate: 'Click to choose journal email template',
noPreview: 'No Preview',
templateName: 'Template Name',
styleName: 'Style Name',
defaultStyle: 'Default',
changeTemplate: 'Change Template',
selectPromotionFields: 'Select Promotion Fields',
choosePromotionFields: 'Choose Fields',
selectPromotionCountry: 'Select Country',
choosePromotionCountry: 'Choose Countries',
selectedCount: 'Selected {count}',
selectAll: 'Select All',
clearAll: 'Clear All',
selectPromotionFieldsTip: 'Multiple selection supported; leave empty for no field restriction.',
selectPromotionCountryTip: 'Multiple selection supported; leave empty for no country restriction. Uses the same API as fields until a dedicated country list is available.',
fieldSearchPlaceholder: 'Search promotion fields',
countrySearchPlaceholder: 'Search countries',
countryQuickZone1: 'Partition 1',
countryQuickZone2: 'Partition 2',
countryQuickZone3: 'Partition 3',
countryQuickChina: 'China',
countryQuickIndia: 'India',
noFieldMatch: 'No matching fields',
noCountryMatch: 'No matching countries',
confirm: 'Confirm',
fieldsSaved: 'Promotion fields saved',
countriesSaved: 'Promotion countries saved',
confirmAndEnable: 'Confirm and Enable',
onlySaveConfig: 'Save configuration only',
enableNowNextDay: 'Enable auto promotion now (starts next day)',
factoryCreateBtn: 'Create automated promotion task',
factoryBatchImportBtn: 'Batch import (JSON)',
factoryBatchImportTitle: 'Batch create tasks (JSON)',
factoryBatchImportHintShort: 'Submit a JSON array; non-empty fields merge into each row. You can still edit JSON.',
factoryBatchImportHint:
'Paste a JSON array… Pick journal (getAllJournal) or type ID; template/style/fetch_ids below override JSON when non-empty. Load promotion fields to tick IDs or type comma-separated fetch_ids; load accounts for j_email_id. expert_type "5" needs partitions/countries. Shorthand: zones, countries, email_id_list.',
factoryBatchImportCommonTip: 'Journal from cover or ID field; non-empty template ID, style ID, or fetch_ids override JSON on every row.',
factoryBatchImportJournalId: 'Journal ID',
factoryBatchImportJournalPick: 'Journal',
factoryBatchImportJournalEmpty: 'No journals returned. Check api/Journal/getAllJournal.',
factoryBatchImportJournalManualPlaceholder: 'Filled when you pick a cover, or type manually',
factoryBatchImportTemplateId: 'Template ID',
factoryBatchImportStyleId: 'Style ID',
factoryBatchImportJournalPlaceholder: 'Merged into payload',
factoryBatchImportTemplatePlaceholder: 'Merged into payload',
factoryBatchImportStylePlaceholder: 'Merged into payload',
factoryBatchImportFetchIdsLabel: 'Promotion fields (fetch_ids)',
factoryBatchImportLoadFields: 'Load available fields',
factoryBatchImportFetchTip: 'Uses current journal: pick journal, then load. Search by name or ID (multiple tokens: space or comma). “Select all” selects the filtered list when search is set, otherwise all fields. Checkboxes sync with the comma text; when non-empty, overrides fetch_ids on every row.',
factoryBatchImportFetchIdsManual: 'Merged IDs (comma-separated, editable)',
factoryBatchImportFetchIdsPlaceholder: 'e.g. 1,2,3 or use checkboxes',
factoryBatchImportNeedJournalForFields: 'Select or enter journal ID first',
factoryBatchImportLoadAccounts: 'Load accounts for journal',
factoryBatchImportAccountsApiTip: 'POST api/email_client/getAccounts with journal_id',
factoryBatchImportColEmailId: 'j_email_id',
factoryBatchImportColAddress: 'Sender address',
factoryBatchImportColQuota: 'Remaining / daily limit',
factoryBatchImportCopyEmailIds: 'Copy email_ids (comma)',
factoryBatchImportNeedJournalForAccounts: 'Enter journal ID first',
factoryBatchImportNoAccounts: 'No mailbox accounts for this journal',
factoryBatchImportAccountsFail: 'Failed to load accounts',
factoryBatchImportCopyEmailIdsEmpty: 'Load the account list first',
factoryBatchImportIdsCopied: 'Copied j_email_id list to clipboard',
factoryBatchImportCopyFail: 'Copy failed; select and copy manually',
factoryBatchImportSyncToJson: 'Apply top form to JSON',
factoryBatchImportSyncFromJson: 'Load first row into form',
factoryBatchImportSyncIncludeEmails: 'When applying, set each row email_ids from loaded accounts',
factoryBatchImportSyncTip: 'You can still edit JSON manually; non-empty top fields are merged again on submit.',
factoryBatchImportJsonFromUiOk: 'JSON updated from the form',
factoryBatchImportUiFromJsonOk: 'Form updated from the first JSON row',
factoryBatchImportRun: 'Run batch create',
factoryBatchImportBadJson: 'Invalid JSON; check brackets and quotes',
factoryBatchImportEmpty: 'Array must contain at least one object',
factoryBatchImportMissing: 'Row {index}: missing field {field}',
factoryBatchImportNeedFetch: 'Row {index}: expert database requires fetch_ids',
factoryBatchImportNeedZone: 'Row {index}: expert database requires target_partitions or target_country_ids',
factoryBatchImportRowFail: 'Row {index} failed: {msg}',
factoryBatchImportRowNetwork: 'Row {index}: request error',
factoryBatchImportDone: 'Done: {ok} succeeded, {fail} failed',
factoryBatchImportErrorsTitle: 'Errors (first 8)',
factoryDialogTitle: 'Create task',
factoryJournal: 'Journal',
factoryJournalPlaceholder: 'Select a journal',
factorySendSettings: 'Sending & scenario',
factoryEmails: 'Sender accounts',
factoryEmailsPlaceholder: 'Select one or more sender accounts',
factorySendCount: 'Send count',
factoryType: 'Scenario',
factoryTypeEditor: 'Editor',
factoryTypeArticle: 'Promote article',
factoryExpertType: 'Expert type',
factoryExpertTypePlaceholder: 'Optional; follow backend rules',
factorySubmit: 'Submit task',
factorySubmitSuccess: 'Factory task created',
factorySubmitFailed: 'Create failed, please try again later',
factoryNeedJournal: 'Please select a journal first',
factoryNeedTemplate: 'Please select email template and style',
factoryNeedEmails: 'Please select at least one sender account',
factoryNeedExpertType: 'Please select target person type',
factoryEmailsPickJournal: 'Select a journal to load sender accounts',
factoryNoAccounts: 'No mailbox accounts for this journal',
factoryAccountRemaining: 'Remaining today',
factorySendMaxFromApi: 'limit: up to {max} per day',
factorySendMaxFallback: 'using mailbox quota sum ~{max} (or default cap)',
factoryStepNav1Title: 'Journal',
factoryStepNav1Desc: 'Select a journal first.',
factoryStepNav2Title: 'Email template and style',
factoryStepNav2Desc: 'Choose template and style.',
factoryStepNav3Title: 'Sending and scenario',
factoryStepNav3Desc: 'Choose accounts, send count, and target type.',
factoryStepNav4Title: 'Promotion fields',
factoryStepNav4Desc: 'Select at least one promotion field.',
factoryStepNav5Title: 'Country',
factoryStepNav5Desc: 'Select at least one country or partition.',
factoryStepNav6Title: 'Confirm and enable',
factoryStepNav6Desc: 'Choose save only or enable next day.',
factoryPromotionFieldsBlockTip: 'Open “Choose fields” and tick at least one item; do not submit with none selected.',
factoryPromotionCountryBlockTip: 'Tick at least one partition or country; do not submit with none selected.',
factoryNeedPromotionFields: 'Select at least one promotion field before submitting.',
factoryNeedPromotionCountry: 'Select at least one partition or country before submitting.',
factoryQuotaLabel: 'Quota',
factoryClickSelectTemplate: 'Click to select email template',
factoryClickConfigureFields: 'Click to configure subject fields',
factoryBtnModify: 'Edit',
factoryBtnReset: 'Reset',
factoryBtnCancel: 'Cancel',
factoryBtnSubmit: 'Submit task',
factoryFillRequired: 'Please complete journal, template, and at least one sender account',
factoryExpertChief: 'Editor-in-Chief',
factoryExpertBoard: 'Editorial board',
factoryExpertYoungBoard: 'Young editorial board',
factoryExpertAuthor: 'Author',
factoryExpertDb: 'Expert database',
factoryExpertReviewer: 'Reviewer',
factoryExpertJump: 'View',
factoryOfficialEmailTip: 'For this type, the system uses the official sender email by default. No account selection is required.',
factoryScenario: 'Scenario',
factoryScenarioPlaceholder: 'Select scenario',
factoryScenarioSolicit: 'Invite Submission',
factoryScenarioPromoteCitation: 'Promote Citation',
factoryScenarioGeneralThanks: 'General Thanks',
createdAt: 'Created at',
noFactoryTask: 'No tasks',
factoryCreateNow: 'Create now',
emailClientCreateTaskBtn: 'Create task',
emailClientCreateTaskNeedFactory: 'Please select a promotion factory task in the dropdown first',
emailClientCreateTaskSuccess: 'Task created',
emailClientCreateTaskFailed: 'Failed to create task',
emailClientCreateTaskPreparingHint: 'Task created. Generating the mailing list may take a few minutes, please wait...'
}
,
autoPromotionLogs: {
detail: 'Auto Promotion Details',
pipelineHistory: 'PIPELINE HISTORY',
factoryTaskSelectPlaceholder: 'Select promotion task',
configured: 'Configured',
editConfig: 'Edit auto promotion configuration',
startConfig: 'Start auto promotion configuration',
notConfigured: 'Not configured',
searchPlaceholder: 'Name / Email',
statusAll: 'All status',
searchBtn: 'Search',
index: 'No.',
taskName: 'Task Name',
taskParams: 'Parameters',
templateIdLabel: 'Template ID',
styleIdLabel: 'Style ID',
deliveryStats: 'Delivery Stats',
totalCount: 'Total',
sentCount: 'Sent',
failCount: 'Failed',
bounceCount: 'Bounce',
noDeliveryIssue: 'No delivery issues',
deliveryIssue: 'Delivery issues',
completedText: 'Completed',
expertInfo: 'Expert Info',
templateStyle: 'Template / Style',
stylePrefix: 'Style',
runAt: 'Execution time',
status: 'Status',
state0: 'Draft',
state1: 'Running',
state2: 'Paused',
state3: 'Completed',
state4: 'Cancelled',
state5: 'Preparing',
paused: 'Paused',
toRun: 'To run',
operation: 'Operation',
preview: 'Preview',
previewAction: 'Preview',
editAction: 'Edit',
enable: 'Enable',
pause: 'Pause',
previewEditTitle: 'Preview and edit promotion email',
logDetailEditTitle: 'Edit promotion send log',
logDetailPreviewTitle: 'Preview promotion send log',
receiver: 'Receiver:',
receiverImmutablePlaceholder: 'Receiver email cannot be changed',
subject: 'Subject:',
subjectPlaceholder: 'Please enter mail subject',
runAtPlaceholder: 'Please select execution time',
cancel: 'Cancel',
confirmEdit: 'Confirm Edit',
mailContentSaved: 'Mail content has been saved. It will be sent with this content.',
templateNotSelected: 'No template selected',
selectTemplateWarning: 'Please select a template before confirming',
configUpdated: 'Configuration updated',
pauseSuccess: 'Paused',
enableSuccess: 'Enabled',
operationFailed: 'Operation failed',
selectTaskForLogs: 'Please select a task first (click the view icon in the list)',
pushLogTitle: 'Task list',
logRefresh: 'Refresh',
taskLogStateFilter: 'Status',
taskLogStateAll: 'All',
taskLogState0: 'Pending',
taskLogState1: 'Sent',
taskLogState2: 'Failed',
taskLogState3: 'Bounced',
taskLogState4: 'Cancelled',
logColIndex: 'No.',
logColExpert: 'Expert',
logColSendTime: 'Sent at',
logColPreparedAt: 'Prepared at',
logColStatus: 'Status',
logColAction: 'Action',
emptyLogs: 'No logs',
viewFailureReason: 'Reason',
editLogTip: 'Edit',
deleteLogTip: 'Delete',
previewLogTip: 'Preview',
logFieldAffiliation: 'Affiliation',
logFieldSubject: 'Subject',
logFieldSendTime: 'Sent at',
logFieldExecutionTime: 'Executed at',
saveDetail: 'Save',
failureReasonTitle: 'Failure reason',
saveDetailSuccess: 'Saved',
saveDetailFailed: 'Save failed',
logDetailLoadFailed: 'Failed to load detail',
logIdMissing: 'Missing log id',
logAlreadySent: 'This record is no longer pending; switched to preview',
deleteLogConfirm: 'Delete this log entry?',
tipTitle: 'Tip',
deleteLogSuccess: 'Deleted',
deleteLogFailed: 'Delete failed',
noFailureReason: 'No failure reason',
deletedSuccess: 'Deleted',
mockPromotionSubject: 'Promotion for {journal}',
mockPromotionContent: '<p>Dear {name},</p><p>Check out our latest journal updates...</p>'
},
tmrEmailEditor: {
preview: 'Preview',
previewWithVariables: 'Preview (showing variables)',
previewWithVariablesTitle: 'Preview (showing variables)',
previewWithVariablesHint: 'The expert data is an example, used for variable spelling check only.',
close: 'Close',
placeholder: 'Please enter email content'
}
}
export default en;