Добавлены заготовки для русского перевода (ru.php) и активирован русский язык в config

This commit is contained in:
mzhoot 2026-04-28 11:37:05 +03:00
parent 371140ce3d
commit d654af73d4
101 changed files with 22441 additions and 0 deletions

View file

@ -49,6 +49,7 @@ $config->langs['zh-tw'] = '繁體';
$config->langs['en'] = 'English';
$config->langs['de'] = 'Deutsch';
$config->langs['fr'] = 'Français';
$config->langs['ru'] = 'Русский';
//$config->langs['vi'] = 'Tiếng Việt';
//$config->langs['ja'] = '日本語';

1159
module/action/lang/ru.php Executable file

File diff suppressed because it is too large Load diff

317
module/admin/lang/ru.php Executable file
View file

@ -0,0 +1,317 @@
<?php
/**
* The admin module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package admin
* @version $Id: en.php 4460 2013-02-26 02:28:02Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->admin->index = 'Admin Home';
$lang->admin->sso = 'Integrated with Zdoo';
$lang->admin->ssoAction = 'Integrated with Zdoo';
$lang->admin->safeIndex = 'Password Settings';
$lang->admin->checkWeak = 'Weak Password Detection';
$lang->admin->certifyMobile = 'Mobile Verification';
$lang->admin->certifyEmail = 'Email Verification';
$lang->admin->ztCompany = 'Organization Verification';
$lang->admin->captcha = 'Verification Code';
$lang->admin->getCaptcha = 'Send Code';
$lang->admin->register = 'Register';
$lang->admin->resetPWDSetting = 'Reset Password';
$lang->admin->tableEngine = 'Table Engine';
$lang->admin->setModuleIndex = 'System Features';
$lang->admin->mon = 'month';
$lang->admin->day = 'day';
$lang->admin->updateDynamics = 'Update Dynamics';
$lang->admin->updatePatch = 'Patch Update';
$lang->admin->upgradeRecommend = 'Upgrade Recommend';
$lang->admin->zentaoUsed = 'You have been using ZenTao';
$lang->admin->api = 'API';
$lang->admin->log = 'Log';
$lang->admin->setting = 'Settings';
$lang->admin->setFlow = 'Set Flow';
$lang->admin->pluginRecommendation = 'Popular Add-ons';
$lang->admin->zentaoInfo = 'ZenTao News';
$lang->admin->officialAccount = 'Official Social Media';
$lang->admin->publicClass = 'Webinars';
$lang->admin->days = 'Log Retention Days';
$lang->admin->resetPWDByMail = 'Reset Via Email';
$lang->admin->followUs = 'Follow Us';
$lang->admin->followUsContent = 'Stay updated on ZenTao news, events, and access support at any time.';
$lang->admin->changeEngine = "Switch to InnoDB";
$lang->admin->changingTable = 'Converting storage engine for table %s...';
$lang->admin->changeSuccess = 'Table %s engine successfully converted to InnoDB.';
$lang->admin->changeFail = "Failed to convert table %s engine. Reason: <span class='text-red'>%s</span>.";
$lang->admin->errorInnodb = 'Your current database does not support the InnoDB storage engine.';
$lang->admin->changeFinished = "Database engine conversion completed.";
$lang->admin->engineInfo = "The engine for table <strong>%s</strong> is <strong>%s</strong>.";
$lang->admin->engineSummary['hasMyISAM'] = "%s tables are not using the InnoDB engine.";
$lang->admin->engineSummary['allInnoDB'] = "All tables are now using the InnoDB engine.";
$lang->admin->info = new stdclass();
$lang->admin->info->version = 'The current system version is %s, ';
$lang->admin->info->links = 'You can visit the following link: ';
$lang->admin->info->account = 'Your ZenTao Community account is %s.';
$lang->admin->info->log = 'Logs exceeding the retention period will be deleted. Please enable Scheduled Tasks (Cron).';
$lang->admin->notice = new stdclass();
$lang->admin->notice->register = "You can %s the ZenTao Community (www.zentao.net) to get the latest updates.";
$lang->admin->notice->ignore = "Ignore";
$lang->admin->notice->int = "『%s』should be a positive integer.";
$lang->admin->notice->confirmDisableStoryType = "‘{type}’ function closed, the system will remove all stories associated with the project and execution, the operation is irreversible";
$lang->admin->notice->openDependFeature = 'Using "{source}" function requires enabling "{target}" function synchronously.';
$lang->admin->notice->closeDependFeature = 'Closing "{source}" function requires synchronously closing "{target}" function.';
$lang->admin->registerNotice = new stdclass();
$lang->admin->registerNotice->common = 'Register';
$lang->admin->registerNotice->caption = 'ZenTao Community Registration';
$lang->admin->registerNotice->click = 'Register';
$lang->admin->registerNotice->lblAccount = 'Please set your username. It must contain at least 3 alphanumeric characters (letters and numbers).';
$lang->admin->registerNotice->lblPasswd = 'Please set your password. It must contain at least 6 characters (letters and numbers combined).';
$lang->admin->registerNotice->submit = 'Register';
$lang->admin->registerNotice->submitHere = 'Register Here';
$lang->admin->registerNotice->bind = "Link Existing Account";
$lang->admin->registerNotice->success = "Account registered successfully.";
$lang->admin->bind = new stdclass();
$lang->admin->bind->caption = 'Link Community Account';
$lang->admin->bind->success = "Account linked successfully.";
$lang->admin->bind->submit = "Link";
$lang->admin->setModule = new stdclass();
$lang->admin->setModule->module = 'Modules';
$lang->admin->setModule->optional = 'Optional Features';
$lang->admin->setModule->opened = 'Enabled';
$lang->admin->setModule->closed = 'Disabled';
$lang->admin->setModule->my = 'Dashboard';
$lang->admin->setModule->product = $lang->productCommon;
$lang->admin->setModule->project = $lang->projectCommon;
$lang->admin->setModule->qa = 'Test';
$lang->admin->setModule->assetlib = 'Asset';
$lang->admin->setModule->other = 'General Modules';
$lang->admin->setModule->program = 'Program';
$lang->admin->setModule->testsuite = 'Test Suits';
$lang->admin->setModule->automated = 'Automation';
$lang->admin->setModule->AI = 'Agents';
$lang->admin->setModule->BI = 'Reports';
$lang->admin->setModule->workestimation = 'Work Estimation';
$lang->admin->setModule->score = 'Points';
$lang->admin->setModule->repo = 'Code';
$lang->admin->setModule->issue = 'Issue';
$lang->admin->setModule->risk = 'Risk';
$lang->admin->setModule->opportunity = 'Opportunity';
$lang->admin->setModule->process = 'Process';
$lang->admin->setModule->auditplan = 'Test';
$lang->admin->setModule->meeting = 'Meeting';
$lang->admin->setModule->roadmap = 'Roadmap';
$lang->admin->setModule->track = 'Matrix';
$lang->admin->setModule->ER = $lang->ERCommon . 's';
$lang->admin->setModule->UR = $lang->URCommon . 's';
$lang->admin->setModule->deliverable = 'Deliverable';
$lang->admin->setModule->cm = 'Baseline';
$lang->admin->setModule->change = 'Project Change';
$lang->admin->setModule->researchplan = 'Research';
$lang->admin->setModule->gapanalysis = 'Training';
$lang->admin->setModule->storylib = 'Story Lib';
$lang->admin->setModule->caselib = 'Test Case Lib';
$lang->admin->setModule->issuelib = 'Issue Lib';
$lang->admin->setModule->risklib = 'Risk Lib';
$lang->admin->setModule->opportunitylib = 'Opportunity Lib';
$lang->admin->setModule->practicelib = ' Best Practice Lib';
$lang->admin->setModule->componentlib = 'Component Lib';
$lang->admin->setModule->devops = 'CI&CD';
$lang->admin->setModule->deliverable = 'Deliverable';
$lang->admin->setModule->kanban = 'Kanban';
$lang->admin->setModule->OA = 'OA';
$lang->admin->setModule->deploy = 'OPS';
$lang->admin->setModule->traincourse = 'Academy';
$lang->admin->setModule->setCode = 'Code';
$lang->admin->setModule->measrecord = 'Metric';
$lang->admin->safe = new stdclass();
$lang->admin->safe->common = 'Security Policy';
$lang->admin->safe->set = 'Password Settings';
$lang->admin->safe->password = 'Password Strength';
$lang->admin->safe->weak = 'Common Weak Passwords';
$lang->admin->safe->reason = 'Type';
$lang->admin->safe->checkWeak = 'Weak Password Audit';
$lang->admin->safe->changeWeak = 'Change Weak Passwords';
$lang->admin->safe->loginCaptcha = 'Enable CAPTCHA on Login';
$lang->admin->safe->modifyPasswordFirstLogin = 'Force Password Change on First Login';
$lang->admin->safe->passwordStrengthWeak = 'Password strength is below system requirements.';
$lang->admin->safe->modeList[0] = 'Ignore';
$lang->admin->safe->modeList[1] = 'Medium';
$lang->admin->safe->modeList[2] = 'Strong';
$lang->admin->safe->modeRuleList[1] = '≥6 characters: A-Z, a-z, and 0-9.';
$lang->admin->safe->modeRuleList[2] = '≥10 characters: A-Z, a-z, 0-9, and symbols.';
$lang->admin->safe->reasonList['weak'] = 'Common Weak Passwords';
$lang->admin->safe->reasonList['account'] = 'Same as user name.';
$lang->admin->safe->reasonList['mobile'] = 'Same as mobile number.';
$lang->admin->safe->reasonList['phone'] = 'Same as phone number.';
$lang->admin->safe->reasonList['birthday'] = 'Same as date of birth.';
$lang->admin->safe->modifyPasswordList[1] = 'Mandatory';
$lang->admin->safe->modifyPasswordList[0] = 'Optional';
$lang->admin->safe->loginCaptchaList[1] = 'Yes';
$lang->admin->safe->loginCaptchaList[0] = 'No';
$lang->admin->safe->resetPWDList[1] = 'Enable';
$lang->admin->safe->resetPWDList[0] = 'Disable';
$lang->admin->safe->noticeMode = 'The system checks password strength when creating users, editing users, or changing passwords.';
$lang->admin->safe->noticeWeakMode = 'The system checks password strength during login, user creation, user editing, and password changes.';
$lang->admin->safe->noticeStrong = 'Security increases with password length, the use of uppercase letters, numbers, and special symbols, and fewer repeated characters.';
$lang->admin->safe->noticeGd = 'The system detected that the GD module is not installed or FreeType support is not enabled on your server. CAPTCHA functionality is currently unavailable. Please install the necessary dependencies.';
$lang->admin->menuSetting['system']['name'] = 'System';
$lang->admin->menuSetting['system']['desc'] = 'Configure system components such as backups, chat, and security settings.';
$lang->admin->menuSetting['user']['name'] = 'Users';
$lang->admin->menuSetting['user']['desc'] = 'Manage departments, users, and permissions.';
$lang->admin->menuSetting['switch']['name'] = 'Feature Options';
$lang->admin->menuSetting['switch']['desc'] = 'Enable or disable specific system features.';
$lang->admin->menuSetting['feature']['name'] = 'Features';
$lang->admin->menuSetting['feature']['desc'] = 'Configure system elements organized by the feature menu.';
$lang->admin->menuSetting['template']['name'] = 'Doc Template';
$lang->admin->menuSetting['template']['desc'] = 'Configure document template types and content.';
$lang->admin->menuSetting['message']['name'] = 'Notifications';
$lang->admin->menuSetting['message']['desc'] = 'Configure notification channels and customize trigger actions.';
$lang->admin->menuSetting['extension']['name'] = 'Add-ons';
$lang->admin->menuSetting['extension']['desc'] = 'Browse and install plugins.';
$lang->admin->menuSetting['dev']['name'] = 'Custom Development';
$lang->admin->menuSetting['dev']['desc'] = 'Extend system functionality with custom code.';
$lang->admin->menuSetting['convert']['name'] = 'Data import';
$lang->admin->menuSetting['convert']['desc'] = 'Data migration from third-party systems.';
$lang->admin->menuSetting['adminregister']['name'] = 'ZenTao Community';
$lang->admin->menuSetting['adminregister']['desc'] = 'Access project management resources, technical support, and try demos of various versions.';
$lang->admin->updateDynamics = 'Recents';
$lang->admin->updatePatch = 'Patch';
$lang->admin->upgradeRecommend = 'Available Upgrade';
$lang->admin->zentaoUsed = 'ZenTao has been with you for ';
$lang->admin->noPriv = 'You have no permission to visit this block.';
$lang->admin->openTag = 'ZenTao Community Edition';
$lang->admin->bizTag = 'ZenTao Biz ';
$lang->admin->maxTag = 'ZenTao Max ';
$lang->admin->ipdTag = 'ZenTao IPD';
$lang->admin->bizInfoURL = 'https://www.zentao.net/page/enterprise.html';
$lang->admin->maxInfoURL = 'https://www.zentao.net/page/max.html';
$lang->admin->productDetail = 'Details';
$lang->admin->productFeature['biz'][] = 'Feedback Management';
$lang->admin->productFeature['biz'][] = 'Task Gantt Charts/Calendar/Effort';
$lang->admin->productFeature['biz'][] = 'MS Word/Excel Import & Export';
$lang->admin->productFeature['biz'][] = 'Competitive pricing with dedicated technical support.';
$lang->admin->productFeature['max'][] = 'Project Metrics';
$lang->admin->productFeature['max'][] = 'Asset Library';
$lang->admin->productFeature['max'][] = 'QA Plan';
$lang->admin->productFeature['max'][] = 'Strict permission controls with flexible and secure access.';
$lang->admin->productFeature['ipd'][] = 'Built-in requirement pool management for requirement collection and distribution';
$lang->admin->productFeature['ipd'][] = 'Complete support for product roadmap planning and project initiation process';
$lang->admin->productFeature['ipd'][] = 'Provides comprehensive market management, research management and report management';
$lang->admin->productFeature['ipd'][] = 'Provides a complete IPD R&D workflow with built-in TR and DCP reviews.';
$lang->admin->community = new stdclass();
$lang->admin->community->registerTitle = 'Join ZenTao Community';
$lang->admin->community->skip = 'Skip';
$lang->admin->community->uxPlanTitle = 'ZenTao User Experience Improvement Program';
$lang->admin->community->loginFailed = 'Login failed.';
$lang->admin->community->loginFailedMobile = 'Please enter your mobile number.';
$lang->admin->community->loginFailedCode = 'Please enter the verification code.';
$lang->admin->community->officialWebsite = 'ZenTao Website';
$lang->admin->community->uxPlanWithBookTitle = 'ZenTao User Experience Improvement Program';
$lang->admin->community->uxPlanStatusTitle = 'Help us understand how we can make improvement.';
$lang->admin->community->mobile = 'Mobile Number';
$lang->admin->community->smsCode = 'Verification code';
$lang->admin->community->sendCode = 'Send Code';
$lang->admin->community->join = 'Join';
$lang->admin->community->joinDesc = 'Help us understand how the product is used.';
$lang->admin->community->captchaTip = 'Please enter the verification code.';
$lang->admin->community->sure = '<span style="font-size: 15px;">&nbsp;&nbsp;Confirm</span>';
$lang->admin->community->unBindText = 'Unlink';
$lang->admin->community->welcome = 'Join ZenTao Community';
$lang->admin->community->welcomeForBound = "You have joined ZenTao Community. Your account is: ";
$lang->admin->community->advantage1 = 'PM resources';
$lang->admin->community->advantage2 = 'Technical support';
$lang->admin->community->advantage3 = 'Demos';
$lang->admin->community->advantage4 = 'ZenTao Software Manual';
$lang->admin->community->goCommunity = 'Visit Community';
$lang->admin->community->giftPackage = 'Fill in your info to claim your resource kit.';
$lang->admin->community->enterMobile = 'Please enter your mobile number.';
$lang->admin->community->enterCode = 'Please enter the verification code.';
$lang->admin->community->goBack = 'back';
$lang->admin->community->reSend = 'resend';
$lang->admin->community->unbindTitle = 'Are you sure you want to unlink your ZenTao website account?';
$lang->admin->community->unbindContent = 'Once unlinked, you will no longer be able to access the ZenTao website directly from the software.';
$lang->admin->community->cancelButton = 'Cancel';
$lang->admin->community->unbindButton = 'Unlink';
$lang->admin->community->joinSuccess = 'You hava joined the ZenTao Community.';
$lang->admin->community->receiveGiftPackage = 'Claim your resource kit';
$lang->admin->community->giftPackageSuccess = 'Submitted successfully.';
$lang->admin->community->positionList['Project Manager'] = 'Project Manager';
$lang->admin->community->positionList['R&D Supervisor'] = 'Technical Manager';
$lang->admin->community->positionList['Operation'] = 'Operations';
$lang->admin->community->positionList['Procurement'] = 'Procurement';
$lang->admin->community->positionList['Product Manager'] = 'Product Owner';
$lang->admin->community->positionList['UI/UX Design'] = 'UI/UX Designer';
$lang->admin->community->positionList['Front Development'] = 'Front-end Developer';
$lang->admin->community->positionList['Backend Development'] = 'Back-end Developer';
$lang->admin->community->positionList['Full Stack Development'] = 'Full Stack Developer';
$lang->admin->community->positionList['Testing/QA'] = 'QA Engineer';
$lang->admin->community->positionList['Architect'] = 'Software Architect';
$lang->admin->community->solvedProblems['Product Management'] = 'Product Management';
$lang->admin->community->solvedProblems['Project Management'] = 'Project Management';
$lang->admin->community->solvedProblems['BUG Management'] = 'BUG Management';
$lang->admin->community->solvedProblems['Workflow Management'] = 'Workflow Management';
$lang->admin->community->solvedProblems['Efficiency Management'] = 'Efficiency Management';
$lang->admin->community->solvedProblems['Document Management'] = 'Document Management';
$lang->admin->community->solvedProblems['Feedback Management'] = 'Feedback Management';
$lang->admin->community->solvedProblems['Other'] = 'Others';
$lang->admin->community->giftPackageFormNickname = 'How should I address you?';
$lang->admin->community->giftPackageFormPosition = 'Your Job Ttitle';
$lang->admin->community->giftPackageFormCompany = 'Company name';
$lang->admin->community->giftPackageFormQuestion = 'What project management challenges do you want to solve with ZenTao?';
$lang->admin->community->giftPackageFailed = 'Submission failed.';
$lang->admin->community->giftPackageFailedNickname = 'Please enter your name.';
$lang->admin->community->giftPackageFailedPosition = 'Please enter your job title.';
$lang->admin->community->giftPackageFailedCompany = 'Please enter your company name.';
$lang->admin->community->uxPlan = new stdclass();
$lang->admin->community->uxPlan->agree = 'Agreed';
$lang->admin->community->uxPlan->cancel = 'Canceled';
$lang->admin->community->unBind = new stdclass();
$lang->admin->community->unBind->success = 'Unlinked';
$lang->admin->nickname = 'Name';
$lang->admin->position = 'Job Title';
$lang->admin->company = 'Company Name';
$lang->admin->solvedProblems = 'Project Management Challenges';
$lang->admin->mobile = 'Mobile Number';
$lang->admin->code = 'SMS Verification Code';
$lang->admin->agreeUX = 'User Experience Program';
$lang->admin->metricLib = new stdclass();
$lang->admin->metricLib->startUpdate = 'Start Update';
$lang->admin->metricLib->updating = 'Updating';
$lang->admin->metricLib->updated = 'Update Completed';
$lang->admin->metricLib->tips = "Due to the large volume of data in the metrics tables, updating the index may take a significant amount of time. Please perform this operation during off-peak hours. You may continue with other tasks, but please do not close this page or your browser.";
include dirname(__FILE__) . '/menu.php';

1220
module/ai/lang/ru.php Normal file

File diff suppressed because it is too large Load diff

82
module/aiapp/lang/ru.php Normal file
View file

@ -0,0 +1,82 @@
<?php
/**
* The ai module en lang file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Wenrui LI <liwenrui@easycorp.ltd>
* @package ai
* @link https://www.zentao.net
*/
$lang->aiapp->common = 'AI';
$lang->aiapp->squareCategories = array('collection' => 'My collection', 'discovery' => 'Discovery', 'latest' => 'Latest');
$lang->aiapp->newVersionTip = 'The mini-program has been updated on %s. The above is the past record.';
$lang->aiapp->noMiniProgram = 'The mini program you visited does not exist.';
$lang->aiapp->title = 'Mini Programs';
$lang->aiapp->unpublishedTip = 'The mini program you are using is not published.';
$lang->aiapp->noModelError = 'No language model is configured, please contact the administrator.';
$lang->aiapp->chatNoResponse = 'Something went wrong.';
$lang->aiapp->more = 'More';
$lang->aiapp->collect = 'Collect';
$lang->aiapp->deleted = 'Deleted';
$lang->aiapp->clear = 'Reset';
$lang->aiapp->modelCurrent = 'Current Model';
$lang->aiapp->categoryList = array('work' => 'Work', 'personal' => 'Personal', 'life' => 'Life', 'creative' => 'Creative', 'others' => 'Others');
$lang->aiapp->generate = 'Generate';
$lang->aiapp->regenerate = 'Regenerate';
$lang->aiapp->emptyNameWarning = '「%s」 cannot be empty';
$lang->aiapp->chatTip = 'Please enter the field content on the left and try generating the results.';
$lang->aiapp->noModel = array('The language model has not been configured yet. Please contact the administrator or go to the backend to configure <a id="to-language-model"> the language model.</a>。', 'If the relevant configuration has been completed, please try <a id="reload-current">reloading</a> the page.');
$lang->aiapp->clearContext = 'The context content has been cleared.';
$lang->aiapp->newChatTip = 'Please enter the fields on the left to start a new conversation.';
$lang->aiapp->disabledTip = 'The current mini program is disabled.';
$lang->aiapp->continueasking = 'Continue asking';
$lang->aiapp->miniProgramSquare = 'Browse General Agent List';
$lang->aiapp->collectMiniProgram = 'Collect General Agent';
$lang->aiapp->miniProgramChat = 'Execute General Agent';
$lang->aiapp->view = 'View General Agent Details';
$lang->aiapp->browseConversation = 'Browse Conversation';
$lang->aiapp->manageGeneralAgent = 'Manage General Agent';
$lang->aiapp->models = 'Browse Model List';
$lang->aiapp->id = 'ID';
$lang->aiapp->model = 'Model Name';
$lang->aiapp->converse = 'Converse';
$lang->aiapp->pageSummary = 'Total %s items.';
$lang->aiapp->tips = new stdClass();
$lang->aiapp->tips->noData = 'No data';
$lang->aiapp->langData = new stdClass();
$lang->aiapp->langData->name = 'ZenTao';
$lang->aiapp->langData->storyReview = 'Story Review';
$lang->aiapp->langData->storyReviewHint = 'Review the story on the current page';
$lang->aiapp->langData->storyReviewMessage = "Here is the story to be reviewed:\n\n### Story Title\n\n{title}\n\n### Story Description\n\n{spec}\n\n### Acceptance Criteria\n\n{verify}";
$lang->aiapp->langData->aiReview = 'AI Review';
$lang->aiapp->langData->currentPage = 'Current Page';
$lang->aiapp->langData->story = 'Story';
$lang->aiapp->langData->demand = 'Demand Pool Story';
$lang->aiapp->langData->bug = 'Bug';
$lang->aiapp->langData->doc = 'Document';
$lang->aiapp->langData->design = 'Design';
$lang->aiapp->langData->feedback = 'Feedback';
$lang->aiapp->langData->currentDocContent = 'Current Document';
$lang->aiapp->langData->globalMemoryTitle = 'ZenTao';
$lang->aiapp->langData->zaiConfigNotValid = 'ZAI configuration has not been set up yet. Please contact the administrator to <a href="{zaiConfigUrl}">configure ZAI</a>.<br>If the configuration has been completed, please try reloading the page.';
$lang->aiapp->langData->unauthorizedError = 'Authorization failed, invalid API key. Please contact the administrator to <a href="{zaiConfigUrl}">configure ZAI</a>.<br>If the configuration has been completed, please try reloading the page.';
$lang->aiapp->langData->processDataPrefix = "The data to be processed is as follows:\n{data}";
$lang->aiapp->langData->processedDataResult= "The processed data is as follows:\n```json\n{data}\n```";
$lang->aiapp->langData->agentResultSummary = 'Explain the changes of the data in the solution, try to explain each changed attribute.';
$lang->aiapp->langData->promptResultTitle = 'Solution title, if no suitable title can be omitted';
$lang->aiapp->langData->promptExtraLimit = 'Usually tool `{toolName}` only needs to be called once, unless the user requires multiple solutions.';
$lang->aiapp->langData->promptResultReturn = 'The processed data has been displayed on the interface. No need to repeat the display, nor further describe or explain it. Remind me that I can use this data by clicking the "Apply to {formName} form" button.';
$lang->aiapp->langData->goTesting = 'Go Testing';
$lang->aiapp->langData->notSupportPreview = 'Not support preview this content';
$lang->aiapp->langData->dataListSizeInfo = 'Total %s items';
$lang->aiapp->langData->promptTestDataIntro= 'Here is the example {type} of {name}:';
$lang->aiapp->langData->searchingKLibs = 'Searching knowledge libraries...';
$lang->aiapp->langData->recentChats = 'Recent Chats';
$lang->aiapp->langData->aiTeammateTasks = 'Digital Teammate Tasks';
$lang->aiapp->langData->searchTasks = 'Search Digital Teammate Tasks';

251
module/api/lang/ru.php Normal file
View file

@ -0,0 +1,251 @@
<?php
/**
* The api module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package api
* @version $Id: English.php 824 2010-05-02 15:32:06Z wwccss $
* @link https://www.zentao.net
*/
$lang->api->common = 'API';
$lang->api->getModel = 'Super Model API';
$lang->api->sql = 'SQL Query API';
$lang->api->manage = 'API management';
$lang->api->index = 'API Space';
$lang->api->view = 'API Details';
$lang->api->editLib = 'Edit Library';
$lang->api->releases = 'Version Management';
$lang->api->deleteRelease = 'Delete Version';
$lang->api->deleteLib = 'Delete API Library';
$lang->api->createRelease = 'Publish API';
$lang->api->createLib = 'Create API Library';
$lang->api->createApi = 'Create API Document';
$lang->api->createAB = 'Create';
$lang->api->createDemo = 'Import ZenTao API Library';
$lang->api->edit = 'Edit API';
$lang->api->delete = 'Delete API';
$lang->api->position = 'Location';
$lang->api->startLine = "%s, Line %s";
$lang->api->desc = 'Description';
$lang->api->debug = 'Debug';
$lang->api->submit = 'Submit';
$lang->api->url = 'Request URL';
$lang->api->result = 'Response';
$lang->api->status = 'Status';
$lang->api->data = 'Content';
$lang->api->noParam = 'No input parameters required for GET debugging.';
$lang->api->noModule = 'No directories found in this library. Please create a directory first.';
$lang->api->post = 'Please refer to the form for POST debugging.';
$lang->api->noUniqueName = 'Library name already exists.';
$lang->api->noUniqueVersion = 'ersion already exists.';
$lang->api->createStruct = 'Create Data Structure';
$lang->api->editStruct = 'Edit Data Structure';
$lang->api->deleteStruct = 'Delete Data Structure';
$lang->api->create = 'Create API';
$lang->api->title = 'API Name';
$lang->api->pageTitle = 'API Library';
$lang->api->module = 'Directory';
$lang->api->apiDoc = 'API';
$lang->api->manageType = 'Manage Directory';
$lang->api->managePublish = 'Manage Version';
$lang->api->doing = 'In Development';
$lang->api->done = 'Completed';
$lang->api->basicInfo = 'Basic Info';
$lang->api->apiDesc = 'Description';
$lang->api->confirmDelete = "Are you sure you want to delete this API?";
$lang->api->confirmDeleteLib = "Are you sure you want to delete this library?";
$lang->api->confirmDeleteStruct = "Are you sure you want to delete this data structure?";
$lang->api->filterStruct = "Populate from Data Structure";
$lang->api->defaultVersion = "Current Version";
$lang->api->latestVersion = 'Latest Version';
$lang->api->zentaoAPI = "Zentao API Doc V1";
$lang->api->search = "Search";
$lang->api->allLibs = "All Libs";
$lang->api->noLinked = "Standalone API";
$lang->api->apiCatalog = 'API Directory';
$lang->api->addCatalog = 'Add Directory';
$lang->api->editCatalog = 'Edit Directory';
$lang->api->sortCatalog = 'Sort Directories';
$lang->api->deleteCatalog = 'Delete Directory';
/* Common access control lang. */
$lang->api->whiteList = 'Whitelist';
$lang->api->aclList['open'] = "Public (Accessible to users with document view permissions.)";
$lang->api->aclList['default'] = "Default (Accessible to users with %s access permissions.)";
$lang->api->aclList['private'] = "Private (Accessible only to the creator and whitelist users.)";
$lang->api->group = 'Group';
$lang->api->user = 'User';
$lang->api->noticeAcl = array(
'open' => 'Accessible to all users',
'custom' => 'Accessible to whitelist users',
'private' => 'Accessible to creator only',
);
/* fields of struct */
$lang->struct = new stdClass();
$lang->struct->add = 'Add';
$lang->struct->field = 'Field';
$lang->struct->paramsType = 'Type';
$lang->struct->required = 'Required';
$lang->struct->desc = 'Description';
$lang->struct->descPlaceholder = 'Parameter Description';
$lang->struct->action = 'Actions';
$lang->struct->addSubField = 'Add Child Field';
$lang->struct->list = 'Data Structure List';
$lang->struct->type = 'Body Type';
$lang->struct->typeOptions = array(
'formData' => 'FormData',
'json' => 'JSON',
'array' => 'Array',
'object' => 'Object',
);
/* fields of form */
$lang->api->struct = 'Data Structure';
$lang->api->structName = 'Name';
$lang->api->structType = 'Type';
$lang->api->structAttr = 'Property';
$lang->api->structAddedBy = 'Creator';
$lang->api->structAddedDate = 'Created on';
$lang->api->name = 'Library Name';
$lang->api->baseUrl = 'Base URL';
$lang->api->baseUrlDesc = 'URL or path, e.g., http://api.zentao.com or /v1.';
$lang->api->desc = 'Description';
$lang->api->control = 'Access Control';
$lang->api->noLib = 'No API libraries yet.';
$lang->api->noApi = 'No APIs yet.';
$lang->api->noStruct = 'No data structures yet.';
$lang->api->noRelease = 'No versions yet.';
$lang->api->lib = 'API Library';
$lang->api->apiList = 'API List';
$lang->api->formTitle = 'API Name';
$lang->api->path = 'Request Path';
$lang->api->protocol = 'Protocol';
$lang->api->method = 'Method';
$lang->api->requestType = 'Request Format';
$lang->api->status = 'Development Status';
$lang->api->owner = 'Manager';
$lang->api->paramsExample = 'Request Example';
$lang->api->header = 'Request Header';
$lang->api->query = 'Request Parameters';
$lang->api->params = 'Request Body';
$lang->api->response = 'Response';
$lang->api->responseExample = 'Response Example';
$lang->api->id = 'ID';
$lang->api->addedBy = 'Creator';
$lang->api->addedDate = 'Created on';
$lang->api->editedBy = 'Edited by';
$lang->api->editedDate = 'Eidted on';
$lang->api->version = 'Version';
$lang->api->res = new stdClass();
$lang->api->res->name = 'Name';
$lang->api->res->desc = 'Description';
$lang->api->res->type = 'Type';
$lang->api->req = new stdClass();
$lang->api->req->name = 'Name';
$lang->api->req->desc = 'Description';
$lang->api->req->type = 'Type';
$lang->api->req->required = 'Required';
$lang->api->field = 'Field';
$lang->api->scope = 'Location';
$lang->api->paramsType = 'Type';
$lang->api->required = 'Required';
$lang->api->default = 'Default';
$lang->api->desc = 'Description';
$lang->api->customType = 'Custom Structure';
$lang->api->format = 'Format';
$lang->api->libType = 'Api Library Type';
$lang->api->product = $lang->productCommon;
$lang->api->project = $lang->projectCommon;
$lang->api->apiTotalInfo = 'Total %d APIs';
$lang->api->showNotEmpty = 'Only show with APIs';
$lang->api->showClosed = 'Include Closed';
$lang->api->methodOptions = array(
'GET' => 'GET',
'POST' => 'POST',
'PUT' => 'PUT',
'DELETE' => 'DELETE',
'PATCH' => 'PATCH',
'OPTIONS' => 'OPTIONS',
'HEAD' => 'HEAD'
);
$lang->api->protocalOptions = array();
$lang->api->protocalOptions['HTTP'] = 'HTTP';
$lang->api->protocalOptions['HTTPS'] = 'HTTPS';
$lang->api->protocalOptions['WS'] = 'WS';
$lang->api->protocalOptions['WSS'] = 'WSS';
$lang->api->requestTypeOptions = array();
$lang->api->requestTypeOptions['application/json'] = 'application/json';
$lang->api->requestTypeOptions['application/x-www-form-urlencoded'] = 'application/x-www-form-urlencoded';
$lang->api->requestTypeOptions['multipart/form-data'] = 'multipart/form-data';
$lang->api->libTypeList = array();
$lang->api->libTypeList['product'] = $lang->productCommon . ' API';
$lang->api->libTypeList['project'] = $lang->projectCommon . ' API';
$lang->api->libTypeList['nolink'] = 'Standalone API';
$lang->api->statusOptions = array(
'done' => 'Completed',
'doing' => 'In Development',
'hidden' => 'Hidden'
);
$lang->api->paramsScopeOptions = array(
'formData' => 'formData',
'path' => 'path',
'query' => 'query',
'body' => 'body',
'header' => 'header',
'cookie' => 'cookie',
);
/* Api global common params */
$lang->api->paramsTypeOptions = array(
'object' => 'object',
'array' => 'array',
'string' => 'string',
'date' => 'date',
'datetime' => 'datetime',
'boolean' => 'boolean',
'int' => 'int',
'long' => 'long',
'float' => 'float',
'double' => 'double',
'decimal' => 'decimal'
);
$lang->api->boolList = array(false => 'No', true => 'Yes', '' => 'No');
/* Api params */
$lang->api->paramsTypeCustomOptions = array('file' => 'file', 'ref' => 'ref');
$lang->api->structParamsOptons = array_merge($lang->api->paramsTypeOptions, array('file' => 'file', 'ref' => 'ref'));
$lang->api->allParamsTypeOptions = array_merge($lang->api->paramsTypeOptions, $lang->api->paramsTypeCustomOptions);
$lang->api->requiredOptions = array(0 => 'No', 1 => 'Yes');
$lang->apistruct = new stdClass();
$lang->apistruct->name = 'Structure Name';
$lang->api_lib_release = new stdClass();
$lang->api_lib_release->version = 'Version';
$lang->api_lib_release->desc = 'Description';
$lang->api->error = new stdclass();
$lang->api->error->onlySelect = 'Only SELECT queries are allowed in SQL API.';
$lang->api->error->disabled = 'This feature is disabled for security reasons. To enable it, please modify the configuration item %s in the config directory.';
$lang->api->error->notInput = 'Debugging is currently not supported due to field parameter type limitations.';
$lang->api->filterTypes[] = array('all', 'All');
$lang->api->filterTypes[] = array('createdByMe', 'Created by me');
$lang->api->filterTypes[] = array('editedByMe', 'Edited by me');
$lang->api->homeFilterTypes['nolink'] = $lang->api->libTypeList['nolink'];
$lang->api->homeFilterTypes['product'] = $lang->api->libTypeList['product'];
$lang->api->homeFilterTypes['project'] = $lang->api->libTypeList['project'];

69
module/backup/lang/ru.php Normal file
View file

@ -0,0 +1,69 @@
<?php
$lang->backup->common = 'Backup';
$lang->backup->name = 'Backup Name';
$lang->backup->index = 'Backup List';
$lang->backup->history = 'History';
$lang->backup->delete = 'Delete Backup';
$lang->backup->backup = 'Start Backup';
$lang->backup->restore = 'Restore';
$lang->backup->change = 'Retention days';
$lang->backup->changeAB = 'Edit';
$lang->backup->rmPHPHeader = 'Remove Security Settings';
$lang->backup->setting = 'Settings';
$lang->backup->restoreAction = 'Restore Backup';
$lang->backup->settingAction = 'Backup Settings';
$lang->backup->time = 'Backup Time';
$lang->backup->files = 'Backup Files';
$lang->backup->allCount = 'Total Files';
$lang->backup->count = 'Backup Files';
$lang->backup->size = 'Size';
$lang->backup->status = 'Status';
$lang->backup->statusList['success'] = 'Success';
$lang->backup->statusList['fail'] = 'Failed';
$lang->backup->settingDir = 'Backup Directory';
$lang->backup->settingList['nofile'] = 'Do not back up files or codes.';
$lang->backup->settingList['nosafe'] = 'Do not prevent downloading PHP file header.';
global $config;
if($config->inContainer) $lang->backup->settingList['nofile'] = 'Do not back up files.';
$lang->backup->waiting = '<span id="backupType"></span>in progress. Please wait...';
$lang->backup->progressSQL = '<p>SQL backup in progress — %s completed.</p>';
$lang->backup->progressAttach = '<p>SQL backup completed.</p><p>Backing up attachments — total: %s files, backed up: %s files.</p>';
$lang->backup->progressCode = '<p>SQL backup completed.</p><p>Attachment backup completed.</p><p>Backing up source code — total: %s files, backed up: %s files.';
$lang->backup->confirmDelete = 'Are you sure you want to delete the backup?';
$lang->backup->confirmRestore = 'Are you sure you want to restore the backup?';
$lang->backup->holdDays = 'Keep backups for the last %s days.';
$lang->backup->copiedFail = 'Files failed to copy:';
$lang->backup->restoreTip = 'The restore process only restores attachments and the database. To restore source code, please do so manually.';
$lang->backup->insufficientDisk = 'Available disk space is less than NEED_SPACEG. This may cause insufficient space for the backup or affect system performance. Please resolve the issue and try again.';
$lang->backup->ongoBackup = 'Continue Backup';
$lang->backup->cancelBackup = 'cancel backup';
$lang->backup->getSpaceLoading = 'Calculating required backup space...';
$lang->backup->success = new stdclass();
$lang->backup->success->backup = 'Backup completed successfully!';
$lang->backup->success->restore = 'Restore completed successfully!';
$lang->backup->error = new stdclass();
$lang->backup->error->noCreateDir = 'The backup directory does not exist and could not be created.';
$lang->backup->error->noWritable = "<code>%s</code> is not writable! Please check directory permissions, or the backup cannot proceed.";
$lang->backup->error->plainNoWritable = "%s is not writable! Please check directory permissions, or the backup cannot proceed.";
$lang->backup->error->noDelete = "File %s cannot be deleted. Please adjust file permissions or delete it manually.";
$lang->backup->error->restoreSQL = "Database restore failed — error: %s";
$lang->backup->error->restoreFile = "Attachment restore failed — error: %s";
$lang->backup->error->backupFile = "Attachment backup failed — error: %s";
$lang->backup->error->backupCode = "Source code backup failed — error: %s";
$lang->backup->error->timeout = "Backup timed out.";
$lang->backup->error->int = '『%s』should be a positive integer.';
$lang->backup->notice = new stdclass();
$lang->backup->notice->higherVersion = 'The backup version is higher than the current running version. Please update your system image to version %s before restoring.';
$lang->backup->notice->lowerVersion = 'The backup version is lower than the current running version. The system will perform an upgrade after restoration.';
$lang->backup->notice->unknownVersion = 'Version information could not be detected from the selected backup. Do you still want to proceed with restoration?';
$lang->backup->notice->settingsInQuickon = 'You are currently using the ZenTao DevOps Platform Edition — no additional configuration is required.';
$lang->backup->notice->gotoUpgrade = 'Restore completed successfully. Redirecting to the upgrade page — if the page does not refresh automatically, please reload manually.';

133
module/bi/lang/ru.php Normal file
View file

@ -0,0 +1,133 @@
<?php
$lang->bi->binNotExists = 'The DuckDB binary does not exist.';
$lang->bi->tmpPermissionDenied = 'The DuckDB tmp directory has no permissions, you need to change the permissions for the directory "%s". The <br /> command is: <br />chmod 777 -R %s.';
$lang->bi->acl = 'Access Control';
$lang->bi->driver = 'Driver';
$lang->bi->driverList = array();
$lang->bi->driverList['mysql'] = 'MySQL';
$lang->bi->query = 'Query';
$lang->bi->sqlQuery = 'SQL statements query';
$lang->bi->sqlBuilder = 'SQL builder';
$lang->bi->dictionary = 'Data Dictionary';
$lang->bi->toggleSqlText = 'Write SQL statements by hand';
$lang->bi->toggleSqlBuilder = 'SQL builder';
$lang->bi->builderStepList = array();
$lang->bi->builderStepList['table'] = 'Select tables';
$lang->bi->builderStepList['field'] = 'Select fields';
$lang->bi->builderStepList['func'] = 'add function field';
$lang->bi->builderStepList['where'] = 'Add where';
$lang->bi->builderStepList['query'] = 'Add query filter';
$lang->bi->builderStepList['group'] = 'set group by';
$lang->bi->stepTableTitle = 'Select the data table to query';
$lang->bi->stepTableTip = 'Select the data table to query, which specifies which table or tables you want to retrieve data from.';
$lang->bi->changeModeTip = "This switch will clear the current builder configuration and echo the built SQL statement into the handwritten SQL statement. You can't switch back to SQL Builder mode. Do you want to continue?";
$lang->bi->modeDisableTip = 'Hand-written SQL statements are more flexible, and there is no support for switching back to SQL builder mode';
$lang->bi->fromTable = 'Main table';
$lang->bi->leftTable = 'Left join';
$lang->bi->joinCondition = 'Condition';
$lang->bi->joinTable = '%s';
$lang->bi->of = 'Of';
$lang->bi->do = 'Do';
$lang->bi->set = 'Set';
$lang->bi->funcAs = 'calculate,rename result as';
$lang->bi->enable = 'Enable';
$lang->bi->previewSql = 'Preview SQL statement';
$lang->bi->addFunc = 'Add function';
$lang->bi->emptyFuncs = 'Empty function。';
$lang->bi->addWhere = 'Add group';
$lang->bi->emptyWheres = 'Empty where。';
$lang->bi->checkAll = 'Check All';
$lang->bi->cancelAll = 'Cancel All';
$lang->bi->groupField = 'Group field';
$lang->bi->aggField = 'Aggregate field';
$lang->bi->allFields = 'Selected/Function field';
$lang->bi->addQuery = 'Add a dynamic query filter';
$lang->bi->emptyQuerys = 'Empty dynamic query filter.';
$lang->bi->emptySelect = 'Select at least one field.';
$lang->bi->length = 'Length';
$lang->bi->allFieldsTip = 'Selected and function field is already checked.';
$lang->bi->groupFieldTip = 'Group by the result with group field.';
$lang->bi->aggFieldTip = 'The aggregation function operation is configured for the aggregation field, so as to obtain the summary data under different groups.';
$lang->bi->aggTipA = 'For %s';
$lang->bi->aggTipB = 'calculate, Rename to %s';
$lang->bi->fieldTypeList = array();
$lang->bi->fieldTypeList['string'] = 'String';
$lang->bi->fieldTypeList['number'] = 'Number';
$lang->bi->fieldTypeList['date'] = 'Date';
$lang->bi->fieldTypeList['option'] = 'Option';
$lang->bi->fieldTypeList['object'] = 'Object';
$lang->bi->aggList = array();
$lang->bi->aggList['count'] = 'Count';
$lang->bi->aggList['countdistinct'] = 'Count Distinct';
$lang->bi->aggList['avg'] = 'Average';
$lang->bi->aggList['sum'] = 'Sum';
$lang->bi->aggList['max'] = 'Max';
$lang->bi->aggList['min'] = 'Min';
$lang->bi->whereGroupTitle = 'The %s group';
$lang->bi->addWhereGroup = 'Add group';
$lang->bi->removeWhereGroup = 'Delete group';
$lang->bi->selectTableTip = 'Select table';
$lang->bi->selectFieldTip = 'Select field';
$lang->bi->selectFuncTip = 'Select function';
$lang->bi->selectInputTip = 'Input something';
$lang->bi->funcList = array();
$lang->bi->funcList['date'] = 'Date';
$lang->bi->funcList['month'] = 'Month';
$lang->bi->funcList['year'] = 'Year';
$lang->bi->whereOperatorList = array();
$lang->bi->whereOperatorList['and'] = 'AND';
$lang->bi->whereOperatorList['or'] = 'OR';
$lang->bi->whereItemOperatorList = array();
$lang->bi->whereItemOperatorList['='] = '=';
$lang->bi->whereItemOperatorList['!='] = '!=';
$lang->bi->whereItemOperatorList['>'] = '>';
$lang->bi->whereItemOperatorList['>='] = '>=';
$lang->bi->whereItemOperatorList['<'] = '<';
$lang->bi->whereItemOperatorList['<='] = '<=';
$lang->bi->whereItemOperatorList['in'] = 'IN';
$lang->bi->whereItemOperatorList['notIn'] = 'NOT IN';
$lang->bi->whereItemOperatorList['like'] = 'LIKE';
$lang->bi->queryFilterFormHeader = array();
$lang->bi->queryFilterFormHeader['table'] = 'Select table';
$lang->bi->queryFilterFormHeader['field'] = 'Select field';
$lang->bi->queryFilterFormHeader['name'] = 'Filter name';
$lang->bi->queryFilterFormHeader['type'] = 'Filter type';
$lang->bi->queryFilterFormHeader['default'] = 'Default value';
$lang->bi->emptyError = 'Can not be empty';
$lang->bi->duplicateError = 'Duplicate';
$lang->bi->noSql = 'No SQL.';
$lang->bi->stepFieldTitle = 'Select a field in the lookup table';
$lang->bi->stepFieldTip = 'The fields in the select query table are used to get the required data from the selected query table.';
$lang->bi->leftTableTip = 'In SQL, a Left join is a table-to-table join that returns all the rows in the left table and the matching rows in the right table. The left join combines data from two tables based on the specified criteria, where the left table is the main table of the query and the right table is the table to be joined. See the specific table query common way: left join.';
$lang->bi->stepFuncTitle = 'New function fields';
$lang->bi->stepFuncTip = 'You can set functions on the fields in the query table to add a new column of the data you want to the query result.';
$lang->bi->stepWhereTitle = 'Add deterministic query conditions';
$lang->bi->stepWhereTip = '(1) Query criteria are used to filter the data that does not meet the requirements. You can add query criteria as needed to get the corresponding query results.<br/>(2)Use =,! For =, >, >=, <, <=, and fuzzy matching (like) condition symbols, enter the corresponding condition value in the input box to the right of the symbol.<br/>(3) When using the include (in) condition symbol, please enter one or more condition values in the input box to the right of the symbol, separated by English commas, for example: task type include (in) development, test.';
$lang->bi->stepQueryTitle = 'Add a dynamic query filter';
$lang->bi->stepQueryTip = 'Adding a dynamic query filterThe dynamic query filter is a filtering method that implements dynamic queries by inserting variables in the SQL. The result filter configured in the third step is to further filter the SQL query results.';
$lang->bi->stepGroupTitle = 'Set up groups and aggregate';
$lang->bi->stepGroupTip = 'Setting grouping is used to group query results according to specified column values, and apply aggregate functions to other grouped data to obtain summary information.';
$lang->bi->emptyGroups = 'After enabling "Set group and aggregation", the system will automatically display your selected query field and the newly added function field here; <br />You can set the grouping field in turn, as well as any other fields that need to be aggregated.';

753
module/block/lang/ru.php Normal file
View file

@ -0,0 +1,753 @@
<?php
/**
* The en file of block module of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package block
* @version $Id$
* @link https://www.zentao.net
*/
global $config;
$lang->block->id = 'ID';
$lang->block->params = 'Parameters';
$lang->block->name = 'Block Name';
$lang->block->style = 'Appearance';
$lang->block->grid = 'Position';
$lang->block->color = 'Color';
$lang->block->reset = 'Restore Defaults';
$lang->block->story = 'Story';
$lang->block->investment = 'Investment';
$lang->block->estimate = 'Estimate';
$lang->block->last = 'Recent';
$lang->block->width = 'Width';
$lang->block->account = 'Account';
$lang->block->title = 'Block Name';
$lang->block->module = 'Module';
$lang->block->code = 'Block';
$lang->block->order = 'Order';
$lang->block->height = 'Height';
$lang->block->role = 'Role';
$lang->block->lblModule = 'Module';
$lang->block->lblBlock = 'Block';
$lang->block->lblNum = 'Item Count';
$lang->block->lblHtml = 'HTML Content';
$lang->block->html = 'HTML';
$lang->block->dynamic = 'Recents';
$lang->block->zentaoDynamic = 'ZenTao News';
$lang->block->assignToMe = 'Pending Items';
$lang->block->wait = 'Waiting';
$lang->block->doing = 'Doing';
$lang->block->done = 'Completed';
$lang->block->lblFlowchart = 'Essential Flow';
$lang->block->lblTesttask = 'View Test Details';
$lang->block->contribute = 'My Contributions';
$lang->block->finish = 'Completed';
$lang->block->guide = 'Guide';
$lang->block->teamAchievement = 'Team Achievements';
$lang->block->learnMore = 'Learn More';
$lang->block->prevPage = 'Back';
$lang->block->nextPage = 'Next';
$lang->block->experience = 'Go';
$lang->block->leftToday = 'Total Work Remaining Today';
$lang->block->myTask = 'My Tasks';
$lang->block->myStory = "My {$lang->SRCommon}";
$lang->block->myBug = 'My Bugs';
$lang->block->myExecution = 'Open' . $lang->executionCommon;
$lang->block->myProduct = 'Open' . $lang->productCommon;
$lang->block->delay = 'delay';
$lang->block->delayed = 'Delayed';
$lang->block->noData = 'No data for this report type';
$lang->block->emptyTip = 'No data';
$lang->block->createdTodos = 'To-dos Created';
$lang->block->createdRequirements = 'Created' . $lang->URCommon . 'Count';
$lang->block->createdStories = 'Created' . $lang->SRCommon . 'Count';
$lang->block->finishedTasks = 'Tasks Completed';
$lang->block->createdBugs = 'Bugs Reported';
$lang->block->resolvedBugs = 'Bugs Resolved';
$lang->block->createdCases = 'Cases Created';
$lang->block->createdRisks = 'Risks Created';
$lang->block->resolvedRisks = 'Risks Resolved';
$lang->block->createdIssues = 'Issues Created';
$lang->block->resolvedIssues = 'Issues Resolved';
$lang->block->createdDocs = 'Docs Created';
$lang->block->allExecutions = 'All ' . $lang->executionCommon;
$lang->block->doingExecution = 'Doning ' . $lang->executionCommon;
$lang->block->finishExecution = 'Total ' . $lang->executionCommon;
$lang->block->estimatedHours = 'Estimated';
$lang->block->consumedHours = 'Cost';
$lang->block->time = 'No.';
$lang->block->week = 'Week';
$lang->block->month = 'Month';
$lang->block->selectProduct = "{$lang->productCommon} selection";
$lang->block->blockTitle = '%1$s %2$s';
$lang->block->remain = 'Left';
$lang->block->allStories = 'Total Stories';
$lang->block->createBlock = 'Add Block';
$lang->block->editBlock = 'Edit Block';
$lang->block->ordersSaved = 'The order is saved.';
$lang->block->confirmRemoveBlock = 'Are you sure you want to hide this block?';
$lang->block->noticeNewBlock = 'New layouts are available for all view homepages starting from version 10.0. Would you like to switch to the new one?';
$lang->block->confirmReset = 'Reset to default layout?';
$lang->block->closeForever = 'Remove Permanently';
$lang->block->confirmClose = 'Are you sure you want to disable this block? Once disabled, it will be unavailable to all users. You can re-enable it in [Admin > Feature>Dashboard > Blocks].';
$lang->block->remove = 'Remove';
$lang->block->refresh = 'Refresh';
$lang->block->nbsp = ' ';
$lang->block->hidden = 'Hide';
$lang->block->dynamicInfo = "<span class='timeline-tag'>%s</span> <span class='timeline-text'>%s<span class='label-action'>%s</span>%s<a href='%s' title='%s'>%s</a></span>";
$lang->block->noLinkDynamic = "<span class='timeline-tag'>%s</span> <span class='timeline-text' title='%s'>%s<span class='label-action'>%s</span>%s<span class='label-name'>%s</span></span>";
$lang->block->cannotPlaceInLeft = 'This block cannot be placed on the left.';
$lang->block->cannotPlaceInRight = 'This block cannot be placed on the right.';
$lang->block->tutorial = 'Enter the tutorial';
$lang->block->filterProject = "Filter {$lang->projectCommon}";
$lang->block->productName = $lang->productCommon . ' Name';
$lang->block->totalStory = 'Total ' . $lang->SRCommon;
$lang->block->totalBug = 'Total Bugs';
$lang->block->totalRelease = 'Total Releases';
$lang->block->totalTask = 'Total ' . $lang->task->common;
$lang->block->projectMember = 'Team Members';
$lang->block->totalMember = '%s member(s)';
$lang->block->totalInvestment = 'Invested';
$lang->block->totalPeople = 'Headcount';
$lang->block->spent = 'Cost';
$lang->block->budget = 'Budget';
$lang->block->left = 'left';
$lang->block->summary = new stdclass();
$lang->block->summary->welcome = '%s with Zentao! %s and your tasks and bugs are waiting for your great work today!';
$lang->block->summary->yesterday = '<strong>yesterday</strong>,';
$lang->block->summary->noWork = 'A quiet day ';
$lang->block->summary->finishTask = 'You completed <a href="' . helper::createLink('my', 'contribute', 'mode=task&type=finishedBy') . '" class="text-success">%s</a> task(s)';
$lang->block->summary->fixBug = 'You resolved <a href="' . helper::createLink('my', 'contribute', 'mode=bug&type=resolvedBy') . '" class="text-success">%s</a> bug(s)';
$lang->block->summary->fixBugEn = 'resolved <a href="' . helper::createLink('my', 'contribute', 'mode=bug&type=resolvedBy') . '" class="text-success">%s</a> bug(s)';
$lang->block->dashboard['default'] = 'My Overview';
$lang->block->dashboard['my'] = 'Dashboard';
$lang->block->titleList['flowchart'] = 'Essential Flow';
$lang->block->titleList['guide'] = 'User Guide';
$lang->block->titleList['statistic'] = 'Statistics';
$lang->block->titleList['recentproject'] = "My Recent {$lang->projectCommon}s";
$lang->block->titleList['assigntome'] = 'Pending Items';
$lang->block->titleList['project'] = "{$lang->projectCommon}s";
$lang->block->titleList['dynamic'] = 'Recents';
$lang->block->titleList['list'] = 'My To-dos';
$lang->block->titleList['scrumoverview'] = "{$lang->projectCommon} Overview";
$lang->block->titleList['scrumtest'] = 'Test Requests';
$lang->block->titleList['scrumlist'] = 'Iterations';
$lang->block->titleList['sprint'] = 'Iteration Overview';
$lang->block->titleList['projectdynamic'] = "Recents";
$lang->block->titleList['bug'] = 'Bugs Assigned to Me';
$lang->block->titleList['case'] = 'Cases Assigned to Me';
$lang->block->titleList['testtask'] = 'Test Requests';
$lang->block->titleList['statistic'] = "{$lang->projectCommon}s Statistics";
$lang->block->default['scrumproject'][] = array('title' => "{$lang->projectCommon} Overview", 'module' => 'scrumproject', 'code' => 'scrumoverview', 'width' => '2');
$lang->block->default['scrumproject'][] = array('title' => "{$lang->executionCommon} List", 'module' => 'scrumproject', 'code' => 'scrumlist', 'width' => '2', 'params' => array('type' => 'undone', 'count' => '20', 'orderBy' => 'id_desc'));
$lang->block->default['scrumproject'][] = array('title' => 'Pending Test Requests', 'module' => 'scrumproject', 'code' => 'scrumtest', 'width' => '2', 'params' => array('type' => 'wait', 'count' => '15', 'orderBy' => 'id_desc'));
$lang->block->default['scrumproject'][] = array('title' => "{$lang->executionCommon} Overview", 'module' => 'scrumproject', 'code' => 'sprint', 'width' => '1');
$lang->block->default['scrumproject'][] = array('title' => 'Recents', 'module' => 'scrumproject', 'code' => 'projectdynamic', 'width' => '1');
$lang->block->default['kanbanproject'] = $lang->block->default['scrumproject'];
unset($lang->block->default['kanbanproject'][2]);
$lang->block->default['agileplusproject'] = $lang->block->default['scrumproject'];
$lang->block->default['waterfallproject'][] = array('title' => "{$lang->projectCommon} Plan", 'module' => 'waterfallproject', 'code' => 'waterfallgantt', 'width' => '2');
$lang->block->default['waterfallproject'][] = array('title' => 'Recents', 'module' => 'waterfallproject', 'code' => 'projectdynamic', 'width' => '1');
$lang->block->default['waterfallplusproject'] = $lang->block->default['waterfallproject'];
$lang->block->default['ipdproject'] = $lang->block->default['waterfallproject'];
$lang->block->default['product'][] = array('title' => "{$lang->productCommon} Overview", 'module' => 'product', 'code' => 'overview', 'width' => '3');
$lang->block->default['product'][] = array('title' => "Unclosed {$lang->productCommon} Statistics", 'module' => 'product', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['product'][] = array('title' => "Open {$lang->productCommon}'s Test Statistics", 'module' => 'product', 'code' => 'bugstatistic', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['product'][] = array('title' => "{$lang->productCommon} Monthly Advancing Analysis", 'module' => 'product', 'code' => 'monthlyprogress', 'width' => '2');
$lang->block->default['product'][] = array('title' => "{$lang->productCommon} Annual Workload Statistisc", 'module' => 'product', 'code' => 'annualworkload', 'width' => '2');
$lang->block->default['product'][] = array('title' => "Unclosed {$lang->productCommon} List", 'module' => 'product', 'code' => 'list', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20', 'orderBy' => 'id_desc'));
$lang->block->default['product'][] = array('title' => "Unclosed {$lang->productCommon} Releases", 'module' => 'product', 'code' => 'release', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['product'][] = array('title' => "Unclosed {$lang->productCommon} Plans", 'module' => 'product', 'code' => 'plan', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['product'][] = array('title' => "{$lang->productCommon} Release Statistics", 'module' => 'product', 'code' => 'releasestatistic', 'width' => '1');
$lang->block->default['product'][] = array('title' => "{$lang->SRCommon} Assigned to Me", 'module' => 'product', 'code' => 'story', 'width' => '1', 'params' => array('type' => 'assignedTo', 'count' => '20', 'orderBy' => 'id_desc'));
$lang->block->default['singleproduct'][] = array('title' => "{$lang->productCommon} Statistics", 'module' => 'singleproduct', 'code' => 'singlestatistic', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['singleproduct'][] = array('title' => "{$lang->productCommon} Bug Statistics", 'module' => 'singleproduct', 'code' => 'singlebugstatistic', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['singleproduct'][] = array('title' => "{$lang->productCommon} Roadmap", 'module' => 'singleproduct', 'code' => 'roadmap', 'width' => '2');
$lang->block->default['singleproduct'][] = array('title' => "{$lang->SRCommon} Assigned to Me", 'module' => 'singleproduct', 'code' => 'singlestory', 'width' => '2', 'params' => array('type' => 'assignedTo', 'count' => '20', 'orderBy' => 'id_desc'));
$lang->block->default['singleproduct'][] = array('title' => "{$lang->productCommon} Plans", 'module' => 'singleproduct', 'code' => 'singleplan', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['singleproduct'][] = array('title' => "{$lang->productCommon} Releases", 'module' => 'singleproduct', 'code' => 'singlerelease', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['singleproduct'][] = array('title' => "Recents", 'module' => 'singleproduct', 'code' => 'singledynamic', 'width' => '1');
$lang->block->default['singleproduct'][] = array('title' => "Monthly{$lang->productCommon}Progress Analysis", 'module' => 'singleproduct', 'code' => 'singlemonthlyprogress', 'width' => '1');
$lang->block->default['qa'][] = array('title' => 'Test Report', 'module' => 'qa', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['qa'][] = array('title' => 'Pending Test Requests', 'module' => 'qa', 'code' => 'testtask', 'width' => '2', 'params' => array('type' => 'wait', 'count' => '15', 'orderBy' => 'id_desc'));
$lang->block->default['qa'][] = array('title' => 'My Bugs', 'module' => 'qa', 'code' => 'bug', 'width' => '1', 'params' => array('type' => 'assignedTo', 'count' => '15', 'orderBy' => 'id_desc'));
$lang->block->default['qa'][] = array('title' => 'Cases Assigned to Me', 'module' => 'qa', 'code' => 'case', 'width' => '1', 'params' => array('type' => 'assigntome', 'count' => '15', 'orderBy' => 'id_desc'));
$lang->block->default['full']['my'][] = array('title' => 'welcome', 'module' => 'welcome', 'code' => 'welcome', 'width' => '2');
$lang->block->default['full']['my'][] = array('title' => 'Guides', 'module' => 'guide', 'code' => 'guide', 'width' => '2');
$lang->block->default['full']['my'][] = array('title' => 'My Work', 'module' => 'assigntome', 'code' => 'assigntome', 'width' => '2', 'params' => array('todoCount' => '20', 'taskCount' => '20', 'bugCount' => '20', 'riskCount' => '20', 'issueCount' => '20', 'storyCount' => '20', 'reviewCount' => '20', 'meetingCount' => '20', 'feedbackCount' => '20'));
$lang->block->default['full']['my'][] = array('title' => "My Recent {$lang->projectCommon}s", 'module' => 'project', 'code' => 'recentproject', 'width' => '2');
$lang->block->default['full']['my'][] = array('title' => "Uncompleted {$lang->projectCommon}s", 'module' => 'project', 'code' => 'project', 'width' => '2', 'params' => array('type' => 'undone', 'count' => '20', 'orderBy' => 'id_desc'));
$lang->block->default['full']['my'][] = array('title' => "Uncompleted {$lang->projectCommon}s Statistics", 'module' => 'project', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'undone', 'count' => '20'));
$lang->block->default['full']['my'][] = array('title' => "Uncompleted {$lang->execution->common}s Statistics", 'module' => 'execution', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'undone', 'count' => '20'));
if($config->vision != 'lite') $lang->block->default['full']['my'][] = array('title' => "Open {$lang->productCommon}s Statistics", 'module' => 'product', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
if($config->vision != 'lite') $lang->block->default['full']['my'][] = array('title' => "Open {$lang->productCommon}'s Test Statistics", 'module' => 'qa', 'code' => 'statistic', 'width' => '2', 'params' => array('type' => 'noclosed', 'count' => '20'));
$lang->block->default['full']['my'][] = array('title' => "Zentao Dynamic", 'module' => 'zentaodynamic', 'code' => 'zentaodynamic', 'width' => '1');
$lang->block->default['full']['my'][] = array('title' => 'Recents', 'module' => 'dynamic', 'code' => 'dynamic', 'width' => '1');
$lang->block->default['full']['my'][] = array('title' => "Team Achievements", 'module' => 'teamachievement', 'code' => 'teamachievement', 'width' => '1');
if($config->vision != 'lite') $lang->block->default['full']['my'][] = array('title' => "{$lang->productCommon} Overview", 'module' => 'product', 'code' => 'overview', 'width' => '1');
$lang->block->default['full']['my'][] = array('title' => "{$lang->projectCommon} Overview", 'module' => 'project', 'code' => 'overview', 'width' => '1');
$lang->block->default['full']['my'][] = array('title' => "{$lang->execution->common} Overview", 'module' => 'execution', 'code' => 'overview', 'width' => '1');
$lang->block->default['doc'][] = array('title' => 'Statistics', 'module' => 'doc', 'code' => 'docstatistic', 'width' => '2');
$lang->block->default['doc'][] = array('title' => 'My Collection', 'module' => 'doc', 'code' => 'docmycollection', 'width' => '2');
$lang->block->default['doc'][] = array('title' => 'Created by Me', 'module' => 'doc', 'code' => 'docmycreated', 'width' => '2');
$lang->block->default['doc'][] = array('title' => 'Recently Updated', 'module' => 'doc', 'code' => 'docrecentupdate', 'width' => '2');
if($config->vision == 'rnd') $lang->block->default['doc'][] = array('title' => "{$lang->productCommon} Document", 'module' => 'doc', 'code' => 'productdoc', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['doc'][] = array('title' => "{$lang->projectCommon} Document", 'module' => 'doc', 'code' => 'projectdoc', 'width' => '2', 'params' => array('count' => '20'));
$lang->block->default['doc'][] = array('title' => 'Recents', 'module' => 'doc', 'code' => 'docdynamic', 'width' => '1');
$lang->block->default['doc'][] = array('title' => 'Most Viewed', 'module' => 'doc', 'code' => 'docviewlist', 'width' => '1');
$lang->block->default['doc'][] = array('title' => 'Top Collection', 'module' => 'doc', 'code' => 'doccollectlist', 'width' => '1');
$lang->block->count = 'Count';
$lang->block->type = 'Type';
$lang->block->orderBy = 'Order';
$lang->block->availableBlocks['todo'] = 'To-dos';
$lang->block->availableBlocks['task'] = 'Tasks';
$lang->block->availableBlocks['bug'] = 'Bugs';
$lang->block->availableBlocks['case'] = 'Cases';
$lang->block->availableBlocks['story'] = "Stories";
$lang->block->availableBlocks['requirement'] = "{$lang->URCommon}";
$lang->block->availableBlocks['product'] = $lang->productCommon . 'List';
$lang->block->availableBlocks['execution'] = $lang->execution->common . 'List';
$lang->block->availableBlocks['plan'] = 'Plans';
$lang->block->availableBlocks['release'] = 'Releases';
$lang->block->availableBlocks['build'] = 'Builds';
$lang->block->availableBlocks['testcase'] = 'Test Cases';
$lang->block->availableBlocks['testtask'] = 'Test Requests';
$lang->block->availableBlocks['risk'] = 'Risks';
$lang->block->availableBlocks['reviewissue'] = 'Review Issue';
$lang->block->availableBlocks['issue'] = 'Issues';
$lang->block->availableBlocks['meeting'] = 'Meetings';
$lang->block->availableBlocks['feedback'] = 'Feedbacks';
$lang->block->availableBlocks['ticket'] = 'Tickets';
$lang->block->availableBlocks['demand'] = 'Stories';
$lang->block->modules['project'] = new stdclass();
$lang->block->modules['project']->availableBlocks['overview'] = "{$lang->projectCommon} Overview";
$lang->block->modules['project']->availableBlocks['recentproject'] = "My Recent {$lang->projectCommon}s";
$lang->block->modules['project']->availableBlocks['statistic'] = "{$lang->projectCommon}s Statistics";
$lang->block->modules['project']->availableBlocks['project'] = "{$lang->projectCommon}s";
$lang->block->modules['scrumproject'] = new stdclass();
$lang->block->modules['scrumproject']->availableBlocks['scrumoverview'] = "{$lang->projectCommon} Overview";
$lang->block->modules['scrumproject']->availableBlocks['scrumlist'] = $lang->executionCommon . ' List';
$lang->block->modules['scrumproject']->availableBlocks['sprint'] = $lang->executionCommon . ' Overview';
$lang->block->modules['scrumproject']->availableBlocks['scrumtest'] = 'Test Requests';
$lang->block->modules['scrumproject']->availableBlocks['projectdynamic'] = 'Recents';
$lang->block->modules['waterfallproject'] = new stdclass();
$lang->block->modules['waterfallproject']->availableBlocks['waterfallgantt'] = "{$lang->projectCommon} Plan";
$lang->block->modules['waterfallproject']->availableBlocks['projectdynamic'] = 'Recents';
$lang->block->modules['agileplusproject'] = $lang->block->modules['scrumproject'];
$lang->block->modules['waterfallplusproject'] = $lang->block->modules['waterfallproject'];
$lang->block->modules['ipdproject'] = $lang->block->modules['waterfallproject'];
$lang->block->modules['product'] = new stdclass();
$lang->block->modules['product']->availableBlocks['overview'] = "{$lang->productCommon} Overview";
$lang->block->modules['product']->availableBlocks['statistic'] = "{$lang->productCommon}s Statistics";
$lang->block->modules['product']->availableBlocks['releasestatistic'] = "{$lang->productCommon} Release Statistics";
$lang->block->modules['product']->availableBlocks['bugstatistic'] = "{$lang->productCommon}'s Test Statistics";
$lang->block->modules['product']->availableBlocks['annualworkload'] = "{$lang->productCommon} Annual Workload Statistics";
$lang->block->modules['product']->availableBlocks['monthlyprogress'] = "Monthly {$lang->productCommon} Progress Analysis";
$lang->block->modules['product']->availableBlocks['list'] = "{$lang->productCommon} List";
$lang->block->modules['product']->availableBlocks['plan'] = "{$lang->productCommon} Plans";
$lang->block->modules['product']->availableBlocks['release'] = "{$lang->productCommon} Releases";
$lang->block->modules['product']->availableBlocks['story'] = "{$lang->SRCommon} List";
$lang->block->modules['singleproduct'] = new stdclass();
$lang->block->modules['singleproduct']->availableBlocks['singlestatistic'] = "{$lang->productCommon} Statistics";
$lang->block->modules['singleproduct']->availableBlocks['singlebugstatistic'] = "{$lang->productCommon} Bug Statistics";
$lang->block->modules['singleproduct']->availableBlocks['roadmap'] = "{$lang->productCommon} RoadMap";
$lang->block->modules['singleproduct']->availableBlocks['singlestory'] = "{$lang->SRCommon} List";
$lang->block->modules['singleproduct']->availableBlocks['singleplan'] = "{$lang->productCommon} Plans";
$lang->block->modules['singleproduct']->availableBlocks['singlerelease'] = "{$lang->productCommon} Releases";
$lang->block->modules['singleproduct']->availableBlocks['singledynamic'] = 'Recents';
$lang->block->modules['singleproduct']->availableBlocks['singlemonthlyprogress'] = "Monthly {$lang->productCommon} Progress Analysis";
$lang->block->modules['execution'] = new stdclass();
$lang->block->modules['execution']->availableBlocks['statistic'] = $lang->execution->common . 's Statistics';
$lang->block->modules['execution']->availableBlocks['overview'] = $lang->execution->common . ' Overview';
$lang->block->modules['execution']->availableBlocks['list'] = $lang->execution->common . ' List';
$lang->block->modules['execution']->availableBlocks['task'] = 'Tasks';
$lang->block->modules['execution']->availableBlocks['build'] = 'Builds';
$lang->block->modules['qa'] = new stdclass();
$lang->block->modules['qa']->availableBlocks['statistic'] = "{$lang->productCommon} Test Statistics";
$lang->block->modules['qa']->availableBlocks['bug'] = 'Bugs';
$lang->block->modules['qa']->availableBlocks['case'] = 'Cases';
$lang->block->modules['qa']->availableBlocks['testtask'] = 'Test Requests';
$lang->block->modules['todo'] = new stdclass();
$lang->block->modules['todo']->availableBlocks['list'] = 'To-dos';
$lang->block->modules['doc'] = new stdclass();
$lang->block->modules['doc']->availableBlocks['docstatistic'] = 'Statistics';
$lang->block->modules['doc']->availableBlocks['docdynamic'] = 'Recents';
$lang->block->modules['doc']->availableBlocks['docmycollection'] = 'My Collection';
$lang->block->modules['doc']->availableBlocks['docmycreated'] = 'Created by Me';
$lang->block->modules['doc']->availableBlocks['docrecentupdate'] = 'Recently Updated';
$lang->block->modules['doc']->availableBlocks['docviewlist'] = 'Most Viewed';
if($config->vision == 'rnd') $lang->block->modules['doc']->availaableBlocks['productdoc'] = $lang->productCommon . ' Document';
$lang->block->modules['doc']->availableBlocks['doccollectlist'] = 'Top Collection';
$lang->block->modules['doc']->availableBlocks['projectdoc'] = $lang->projectCommon . ' Document';
$lang->block->orderByList = new stdclass();
$lang->block->orderByList->product = array();
$lang->block->orderByList->product['id_asc'] = 'ID Ascending';
$lang->block->orderByList->product['id_desc'] = 'ID Descending';
$lang->block->orderByList->product['status_asc'] = 'Status Ascending';
$lang->block->orderByList->product['status_desc'] = 'Status Descending';
$lang->block->orderByList->project = array();
$lang->block->orderByList->project['id_asc'] = "ID Ascending";
$lang->block->orderByList->project['id_desc'] = "ID Descending";
$lang->block->orderByList->project['status_asc'] = "Status Ascending";
$lang->block->orderByList->project['status_desc'] = "Status Descending";
$lang->block->orderByList->execution = array();
$lang->block->orderByList->execution['id_asc'] = 'ID Ascending';
$lang->block->orderByList->execution['id_desc'] = 'ID Descending';
$lang->block->orderByList->execution['status_asc'] = 'Status Ascending';
$lang->block->orderByList->execution['status_desc'] = 'Status Descending';
$lang->block->orderByList->task = array();
$lang->block->orderByList->task['id_asc'] = 'ID Ascending';
$lang->block->orderByList->task['id_desc'] = 'ID Descending';
$lang->block->orderByList->task['pri_asc'] = 'Priority (Low to High)';
$lang->block->orderByList->task['pri_desc'] = 'Priority (High to Low)';
$lang->block->orderByList->task['estimate_asc'] = 'Task Estimates Ascending';
$lang->block->orderByList->task['estimate_desc'] = 'Task Estimates Descending';
$lang->block->orderByList->task['status_asc'] = 'Status Ascending';
$lang->block->orderByList->task['status_desc'] = 'Status Descending';
$lang->block->orderByList->task['deadline_asc'] = 'Deadline Ascending';
$lang->block->orderByList->task['deadline_desc'] = 'Deadline Descending';
$lang->block->orderByList->bug = array();
$lang->block->orderByList->bug['id_asc'] = 'ID Ascending';
$lang->block->orderByList->bug['id_desc'] = 'ID Descending';
$lang->block->orderByList->bug['pri_asc'] = 'Priority (Low to High)';
$lang->block->orderByList->bug['pri_desc'] = 'Priority (High to Low)';
$lang->block->orderByList->bug['severity_asc'] = 'Severity Ascending';
$lang->block->orderByList->bug['severity_desc'] = 'Severity Descending';
$lang->block->orderByList->case = array();
$lang->block->orderByList->case['id_asc'] = 'ID Ascending';
$lang->block->orderByList->case['id_desc'] = 'ID Descending';
$lang->block->orderByList->case['pri_asc'] = 'Priority (Low to High)';
$lang->block->orderByList->case['pri_desc'] = 'Priority (High to Low)';
$lang->block->orderByList->story = array();
$lang->block->orderByList->story['id_asc'] = 'ID Ascending';
$lang->block->orderByList->story['id_desc'] = 'ID Descending';
$lang->block->orderByList->story['pri_asc'] = 'Priority (Low to High)';
$lang->block->orderByList->story['pri_desc'] = 'Priority (High to Low)';
$lang->block->orderByList->story['status_asc'] = 'Status Ascending';
$lang->block->orderByList->story['status_desc'] = 'Status Descending';
$lang->block->orderByList->story['stage_asc'] = 'Phase Ascending';
$lang->block->orderByList->story['stage_desc'] = 'Phase Descending';
$lang->block->todoCount = 'To-dos';
$lang->block->taskCount = 'Tasks';
$lang->block->bugCount = 'Bugs';
$lang->block->riskCount = 'Risks';
$lang->block->issueCount = 'Issues';
$lang->block->storyCount = $lang->SRCommon . 'count';
$lang->block->reviewCount = 'Reviews';
$lang->block->meetingCount = 'Meetings';
$lang->block->feedbackCount = 'Feedbacks';
$lang->block->ticketCount = 'Tickets';
$lang->block->typeList = new stdclass();
$lang->block->typeList->task['assignedTo'] = 'Assigned to Me';
$lang->block->typeList->task['openedBy'] = 'Created by Me';
$lang->block->typeList->task['finishedBy'] = 'Completed by Me';
$lang->block->typeList->task['closedBy'] = 'Closed by Me';
$lang->block->typeList->task['canceledBy'] = 'Canceled by Me';
$lang->block->typeList->bug['assignedTo'] = 'Assigned to Me';
$lang->block->typeList->bug['openedBy'] = 'Created by Me';
$lang->block->typeList->bug['resolvedBy'] = 'Resolved by Me';
$lang->block->typeList->bug['closedBy'] = 'Closed by Me';
$lang->block->typeList->case['assigntome'] = 'Assigned to Me';
$lang->block->typeList->case['openedbyme'] = 'Created by Me';
$lang->block->typeList->story['assignedTo'] = 'Assigned to Me';
$lang->block->typeList->story['reviewBy'] = 'My Pending Review';
$lang->block->typeList->story['openedBy'] = 'Created by Me';
$lang->block->typeList->story['reviewedBy'] = 'Reviewed by Me';
$lang->block->typeList->story['closedBy'] = 'Closed by Me' ;
$lang->block->typeList->product['noclosed'] = 'Open';
$lang->block->typeList->product['closed'] = 'Closed';
$lang->block->typeList->product['all'] = 'All';
$lang->block->typeList->product['involved'] = 'My Involvement';
$lang->block->typeList->project['undone'] = 'Uncompleted';
$lang->block->typeList->project['doing'] = 'Doing';
$lang->block->typeList->project['all'] = 'All';
$lang->block->typeList->project['involved'] = 'My Involvement';
$lang->block->typeList->projectAll['all'] = 'All';
$lang->block->typeList->projectAll['undone'] = 'Uncompleted';
$lang->block->typeList->projectAll['wait'] = 'Waiting';
$lang->block->typeList->projectAll['doing'] = 'Doing';
$lang->block->typeList->projectAll['suspended'] = 'On Hold';
$lang->block->typeList->projectAll['closed'] = 'Closed';
$lang->block->typeList->execution['undone'] = 'Uncompleted';
$lang->block->typeList->execution['doing'] = 'Doing';
$lang->block->typeList->execution['all'] = 'All';
$lang->block->typeList->execution['involved'] = 'My Involvement';
$lang->block->typeList->scrum['undone'] = 'Uncompleted';
$lang->block->typeList->scrum['doing'] = 'Doing';
$lang->block->typeList->scrum['all'] = 'All';
$lang->block->typeList->scrum['involved'] = 'My Involvement';
$lang->block->typeList->testtask['wait'] = 'Waiting';
$lang->block->typeList->testtask['doing'] = 'Doing';
$lang->block->typeList->testtask['blocked'] = 'Blocked';
$lang->block->typeList->testtask['done'] = 'Completed';
$lang->block->typeList->testtask['all'] = 'All';
$lang->block->typeList->risk['all'] = 'All';
$lang->block->typeList->risk['active'] = 'Open';
$lang->block->typeList->risk['assignTo'] = 'Assigned to Me';
$lang->block->typeList->risk['assignBy'] = 'Assigned by Me';
$lang->block->typeList->risk['closed'] = 'Closed';
$lang->block->typeList->risk['hangup'] = 'On Hold';
$lang->block->typeList->risk['canceled'] = 'Canceled';
$lang->block->typeList->issue['all'] = 'All';
$lang->block->typeList->issue['open'] = 'Public';
$lang->block->typeList->issue['assignto'] = 'Assigned to Me';
$lang->block->typeList->issue['assignby'] = 'Assigned by Me';
$lang->block->typeList->issue['closed'] = 'Closed';
$lang->block->typeList->issue['resolved'] = 'Resolved';
$lang->block->typeList->issue['canceled'] = 'Canceled';
$lang->block->welcomeList['06:00'] = 'Good morning, %s';
$lang->block->welcomeList['11:30'] = 'Good afternoon, %s';
$lang->block->welcomeList['13:30'] = 'Good afternoon, %s';
$lang->block->welcomeList['19:00'] = 'Good evening, %s';
$lang->block->gridOptions[8] = 'Left';
$lang->block->gridOptions[4] = 'Right';
$lang->block->widthOptions['1'] = 'Short Block';
$lang->block->widthOptions['2'] = 'Long Block';
$lang->block->widthOptions['3'] = 'Max Block';
$lang->block->flowchart = array();
$lang->block->flowchart['admin'] = array('Admins', 'Manage Departments', 'Add User', 'Manage Permissions');
if($config->systemMode == 'ALM') $lang->block->flowchart['program'] = array('Program Owner', 'Create Program', "Link {$lang->productCommon}", "Create {$lang->projectCommon}", "Budgeting and planning", 'Add Stakeholder');
$lang->block->flowchart['product'] = array($lang->productCommon . ' Manager', 'Create ' . $lang->productCommon, 'Manage Modules', 'Manage Plans', 'Manage Stories', 'Create Release');
$lang->block->flowchart['project'] = array('Project Manager', "Create {$lang->projectCommon} & " . $lang->execution->common, 'Manage Team', 'Link Stories', 'Decompose Tasks', 'Track Progress');
$lang->block->flowchart['dev'] = array('Developers', 'Claim Tasks & Bugs', 'Design Solution', 'Commit Code', 'Update Status', 'Complete Tasks & Bugs');
$lang->block->flowchart['tester'] = array('Test Team', 'Write Cases', 'Execute Cases', 'Report Bugs', 'Verify Bugs', 'Close Bugs');
$lang->block->zentaoapp = new stdclass();
$lang->block->zentaoapp->common = 'ZenTao App';
$lang->block->zentaoapp->thisYearInvestment = 'Investment This Year';
$lang->block->zentaoapp->sinceTotalInvestment = 'Total Investment';
$lang->block->zentaoapp->myStory = 'My Stories';
$lang->block->zentaoapp->allStorySum = 'Total Stories';
$lang->block->zentaoapp->storyCompleteRate = 'Story Completion Rate';
$lang->block->zentaoapp->latestExecution = 'Recent Executions';
$lang->block->zentaoapp->involvedExecution = 'My Executions';
$lang->block->zentaoapp->mangedProduct = "Manged {$lang->productCommon}";
$lang->block->zentaoapp->involvedProject = "Involved {$lang->projectCommon}";
$lang->block->zentaoapp->customIndexCard = 'Customize Dashboard';
$lang->block->zentaoapp->createStory = 'Create Story';
$lang->block->zentaoapp->createEffort = 'Log Effort';
$lang->block->zentaoapp->createDoc = 'Create Doc';
$lang->block->zentaoapp->createTodo = 'Create To-do';
$lang->block->zentaoapp->workbench = 'Workspace';
$lang->block->zentaoapp->notSupportKanban = 'R&D Kanban Mode is not supported on mobile.';
$lang->block->zentaoapp->notSupportVersion = 'This version of ZenTao is not currently supported on the mobile terminal';
$lang->block->zentaoapp->incompatibleVersion = 'Your ZenTao version is outdated. Please upgrade to the latest version and try again.';
$lang->block->zentaoapp->canNotGetVersion = 'Failed to retrieve ZenTao version. Please check if the URL is correct.';
$lang->block->zentaoapp->desc = "ZenTao Mobile APP provides you with a mobile work environment to manage personal To-dos and track {$lang->projectCommon} progress anytime, enhancing the flexibility and agility of {$lang->projectCommon} management.";
$lang->block->zentaoapp->downloadTip = 'Scan QR code to download';
$lang->block->zentaoclient = new stdClass();
$lang->block->zentaoclient->common = 'ZenTao Client';
$lang->block->zentaoclient->desc = 'Use ZenTao Desktop for direct access without switching browsers. It also features Chat, Notifications, Bots, and embedded Mini-Programs, making team collaboration more efficient.';
$lang->block->zentaoclient->edition = new stdclass();
$lang->block->zentaoclient->edition->win64 = 'Windows';
$lang->block->zentaoclient->edition->linux64 = 'Linux';
$lang->block->zentaoclient->edition->mac64 = 'Mac OS';
$lang->block->guideTabs['flowchart'] = 'Essential Flow';
if($config->systemMode != 'PLM') $lang->block->guideTabs['systemMode'] = 'Operating Modes';
$lang->block->guideTabs['visionSwitch'] = 'Switch Interface';
$lang->block->guideTabs['themeSwitch'] = 'Switch Theme ';
$lang->block->guideTabs['preference'] = 'Personalization';
$lang->block->guideTabs['downloadClient'] = 'Download Desktop';
$lang->block->guideTabs['downloadMobile'] = 'Download Mobile APP';
$lang->block->themes['default'] = 'Default';
$lang->block->themes['blue'] = 'Sky Blue';
$lang->block->themes['green'] = 'Green';
$lang->block->themes['red'] = 'Red';
$lang->block->themes['purple'] = 'Purple';
$lang->block->themes['blackberry'] = 'Blackberry';
$lang->block->visionTitle = 'ZenTao offers two interfaces:';
$lang->block->visions['rnd'] = new stdclass();
$lang->block->visions['rnd']->key = 'rnd';
$lang->block->visions['rnd']->title = 'R&D interface';
$lang->block->visions['rnd']->text = "An all-in-one lifecycle project management solution.";
$lang->block->visions['lite'] = new stdclass();
$lang->block->visions['lite']->key = 'lite';
$lang->block->visions['lite']->title = 'Operations Management Interface';
$lang->block->visions['lite']->text = "A visual, intuitive experience tailored for non-R&D teams.";
$lang->block->customModes['light'] = 'Lightweight Management Mode';
$lang->block->customModes['ALM'] = 'ALM Mode';
$lang->block->honorary = array();
$lang->block->honorary['bug'] = 'Bug King';
$lang->block->honorary['task'] = 'Task King';
$lang->block->honorary['review'] = 'Review King';
$lang->block->welcome = new stdclass();
$lang->block->welcome->common = 'Welcome Overview';
$lang->block->welcome->reviewByMe = 'My Pending Reviews';
$lang->block->welcome->assignToMe = 'Assigned to Me';
$lang->block->welcome->reviewList = array();
$lang->block->welcome->reviewList['story'] = 'Stories';
$lang->block->welcome->reviewList['reviewByMe'] = 'My Pending Reviews';
$lang->block->welcome->assignList = array();
$lang->block->welcome->assignList['task'] = 'Tasks';
if($config->vision != 'or') $lang->block->welcome->assignList['bug'] = 'Bugs';
if($config->vision != 'or') $lang->block->welcome->assignList['story'] = 'SRStroy';
$lang->block->welcome->assignList['testcase'] = 'Cases';
if($config->URAndSR && $config->vision != 'or') $lang->block->welcome->assignList['requirement'] = "Features";
if($config->enableER && $config->vision != 'or') $lang->block->welcome->assignList['epic'] = "{$lang->ERCommon}";
$lang->block->customModeTip = new stdClass();
$lang->block->customModeTip->common = 'ZenTao offers two operating modes:';
$lang->block->customModeTip->ALM = '';
$lang->block->customModeTip->light = "";
$lang->block->productstatistic = new stdclass();
$lang->block->productstatistic->effectiveStory = 'Effective Stories';
$lang->block->productstatistic->delivered = 'Delivered';
$lang->block->productstatistic->unclosed = 'Open';
$lang->block->productstatistic->storyStatistics = 'Story Statistics';
$lang->block->productstatistic->monthDone = 'Completed this month <span class="text-success font-bold">%s</span>';
$lang->block->productstatistic->monthOpened = 'Added this month <span class="text-primary font-bold">%s</span>';
$lang->block->productstatistic->opened = 'Added';
$lang->block->productstatistic->done = 'Completed';
$lang->block->productstatistic->news = 'Latest Product Progress';
$lang->block->productstatistic->newPlan = 'Latest Plan';
$lang->block->productstatistic->newExecution = 'Latest Execution';
$lang->block->productstatistic->newRelease = 'Latest Release';
$lang->block->productstatistic->deliveryRate = 'Story Delivery Rate';
$lang->block->projectoverview = new stdclass();
$lang->block->projectoverview->totalProject = 'Total Projects';
$lang->block->projectoverview->thisYear = 'Completed This Year';
$lang->block->projectoverview->lastThreeYear = 'Project Completion Trend (Last 3 Years)';
$lang->block->projectstatistic = new stdclass();
$lang->block->projectstatistic->story = 'Story';
$lang->block->projectstatistic->cost = 'Cost';
$lang->block->projectstatistic->task = 'Task';
$lang->block->projectstatistic->bug = 'Bug';
$lang->block->projectstatistic->storyPoints = 'Total';
$lang->block->projectstatistic->done = 'Completed';
$lang->block->projectstatistic->undone = 'Open';
$lang->block->projectstatistic->costs = 'Invested';
$lang->block->projectstatistic->consumed = 'Cost';
$lang->block->projectstatistic->remainder = 'Left';
$lang->block->projectstatistic->tasks = 'tasks';
$lang->block->projectstatistic->wait = 'Waiting';
$lang->block->projectstatistic->doing = 'Doing';
$lang->block->projectstatistic->bugs = 'bugs';
$lang->block->projectstatistic->stories = 'stories';
$lang->block->projectstatistic->closed = 'Closed';
$lang->block->projectstatistic->activated = 'Activated';
$lang->block->projectstatistic->unit = 'unit';
$lang->block->projectstatistic->total = 'Total';
$lang->block->projectstatistic->SP = $config->hourUnit;
$lang->block->projectstatistic->personDay = 'PD';
$lang->block->projectstatistic->day = 'day(s)';
$lang->block->projectstatistic->hour = 'Hours';
$lang->block->projectstatistic->leftDaysPre = 'Time Remaining';
$lang->block->projectstatistic->delayDaysPre = 'Overdue by';
$lang->block->projectstatistic->existRisks = 'Risks';
$lang->block->projectstatistic->existIssues = 'Issues';
$lang->block->projectstatistic->lastestExecution = 'Latest Execution';
$lang->block->projectstatistic->projectClosed = "{$lang->projectCommon} has been closed.";
$lang->block->projectstatistic->longTimeProject = "Long Term {$lang->projectCommon}";
$lang->block->projectstatistic->totalProgress = 'Total Progress';
$lang->block->projectstatistic->totalProgressTip = "<strong>Total Project Progress</strong> = Total Consumed Task Hours / (Total Consumed Task Hours + Total Remaining Task Hours)<br/>
<strong>Total Consumed Task Hours </strong>: Sum of consumed hours for all tasks in the project, excluding deleted tasks, parent tasks, and tasks in deleted executions.<br/>
<strong>Total Remaining Task Hours </strong>: Sum of remaining hours for all tasks in the project, excluding deleted tasks, parent tasks, and tasks in deleted executions.";
$lang->block->projectstatistic->currentCost = 'Current Costs';
$lang->block->projectstatistic->sv = 'Schedule Variance(SV)';
$lang->block->projectstatistic->pv = 'Planned Value(PV)';
$lang->block->projectstatistic->ev = 'Earned Value(EV)';
$lang->block->projectstatistic->cv = 'Cost Variance(CV)';
$lang->block->projectstatistic->ac = 'Actual Cost(AC)';
$lang->block->qastatistic = new stdclass();
$lang->block->qastatistic->fixBugRate = 'Bug Fix Rate';
$lang->block->qastatistic->closedBugRate = 'Bug Closed Rate';
$lang->block->qastatistic->totalBug = 'Total Bugs';
$lang->block->qastatistic->bugStatistics = 'Bug Statistics';
$lang->block->qastatistic->addYesterday = 'Added Yesterday';
$lang->block->qastatistic->addToday = 'Added Today';
$lang->block->qastatistic->resolvedYesterday = 'Resolved Yesterday';
$lang->block->qastatistic->resolvedToday = 'Resolved Today';
$lang->block->qastatistic->closedYesterday = 'Closed Yesterday';
$lang->block->qastatistic->closedToday = 'Closed Today';
$lang->block->qastatistic->unclosedTesttasks = 'Unclosed Test tasks';
$lang->block->qastatistic->bugStatusStat = 'Monthly Bug Trend';
$lang->block->bugstatistic = new stdclass();
$lang->block->bugstatistic->effective = 'Valid Bugs';
$lang->block->bugstatistic->fixed = 'Fixed';
$lang->block->bugstatistic->activated = 'Activated';
$lang->block->executionstatistic = new stdclass();
$lang->block->executionstatistic->allProject = 'All Projects';
$lang->block->executionstatistic->progress = 'Progress';
$lang->block->executionstatistic->totalEstimate = 'Estimate';
$lang->block->executionstatistic->totalConsumed = 'Cost';
$lang->block->executionstatistic->totalLeft = 'Left';
$lang->block->executionstatistic->burn = $lang->execution->common . ' Burndown Chart';
$lang->block->executionstatistic->cfd = $lang->execution->common . ' Cumulative Flow Diagram';
$lang->block->executionstatistic->story = 'Story';
$lang->block->executionstatistic->doneStory = 'Completed';
$lang->block->executionstatistic->totalStory = 'Total';
$lang->block->executionstatistic->task = 'Task';
$lang->block->executionstatistic->totalTask = 'Total';
$lang->block->executionstatistic->undoneTask = 'Uncompleted';
$lang->block->executionstatistic->yesterdayDoneTask = 'Complated Yesterday';
$lang->block->executionoverview = new stdclass();
$lang->block->executionoverview->totalExecution = "Total {$lang->execution->common}s";
$lang->block->executionoverview->thisYear = 'Completed This Year';
$lang->block->executionoverview->statusCount = "Status Distribution of Open {$lang->execution->common}s";
$lang->block->productoverview = new stdclass();
$lang->block->productoverview->overview = 'Overview Data';
$lang->block->productoverview->yearFinished = 'Annual Product Progress Statistics';
$lang->block->productoverview->productLineCount = 'Total Product Lines';
$lang->block->productoverview->productCount = 'Total Products';
$lang->block->productoverview->releaseCount = 'Released This Year';
$lang->block->productoverview->milestoneCount = 'Released Milestones';
$lang->block->productoverview->unfinishedPlanCount = 'Uncompleted Plans';
$lang->block->productoverview->unclosedStoryCount = 'Uncompleted Stories';
$lang->block->productoverview->activeBugCount = 'Active Bugs';
$lang->block->productoverview->finishedReleaseCount = 'Completed Releases';
$lang->block->productoverview->finishedStoryCount = 'Completed Stories';
$lang->block->productoverview->finishedStoryPoint = 'Completed Story Points';
$lang->block->productoverview->thisWeek = 'This Week';
$lang->block->productlist = new stdclass();
$lang->block->productlist->unclosedFeedback = 'Unclosed Feedback';
$lang->block->productlist->activatedStory = 'Active Stories';
$lang->block->productlist->storyCompleteRate = 'Story Completion Rate';
$lang->block->productlist->activatedBug = 'Active Bugs';
$lang->block->sprint = new stdclass();
$lang->block->sprint->totalExecution = "Total{$lang->executionCommon}";
$lang->block->sprint->thisYear = 'Completed This Year';
$lang->block->sprint->statusCount = "{$lang->executionCommon} Status Distribution";
$lang->block->zentaodynamic = new stdclass();
$lang->block->zentaodynamic->zentaosalon = 'ZenTao · China Travel';
$lang->block->zentaodynamic->publicclass = 'ZenTao Webinar';
$lang->block->zentaodynamic->release = 'Latest Release';
$lang->block->zentaodynamic->registration = 'Register Now';
$lang->block->zentaodynamic->reservation = 'Book Now';
$lang->block->monthlyprogress = new stdclass();
$lang->block->monthlyprogress->doneStoryEstimateTrendChart = "The Completed Story Scope Trend Chart";
$lang->block->monthlyprogress->storyTrendChart = "The Created and Completed Stories Trend Chart";
$lang->block->monthlyprogress->bugTrendChart = 'The New and Resolved Bugs Trend Chart';
$lang->block->annualworkload = new stdclass();
$lang->block->annualworkload->doneStoryEstimate = "Completed Story Scope";
$lang->block->annualworkload->doneStoryCount = "Completed Stories";
$lang->block->annualworkload->resolvedBugCount = 'Resolved Bugs';
$lang->block->releasestatistic = new stdclass();
$lang->block->releasestatistic->monthly = 'Monthly releases trend chart';
$lang->block->releasestatistic->annual = "Annual Release Leaderboard (%s)";
$lang->block->teamachievement = new stdclass();
$lang->block->teamachievement->finishedTasks = 'Completed Tasks';
$lang->block->teamachievement->createdStories = 'Created Stories';
$lang->block->teamachievement->closedBugs = 'Closed Bugs';
$lang->block->teamachievement->runCases = 'Executed Cases';
$lang->block->teamachievement->consumedHours = 'Cost';
$lang->block->teamachievement->totalWorkload = 'Total Workload';
$lang->block->teamachievement->vs = 'VS Yesterday';
$lang->block->teamachievement->accrued = 'Total';
$lang->block->estimate = new stdclass();
$lang->block->estimate->costs = 'Labor';
$lang->block->estimate->workhour = 'Workhour';
$lang->block->estimate->people = 'People';
$lang->block->estimate->expect = 'Estimate';
$lang->block->estimate->consumed = 'Cost';
$lang->block->estimate->surplus = 'Left';
$lang->block->estimate->hour = 'H';
$lang->block->moduleList['product'] = $lang->productCommon;
$lang->block->moduleList['project'] = $lang->projectCommon;
$lang->block->moduleList['execution'] = $lang->execution->common;
$lang->block->moduleList['qa'] = $lang->qa->common;
$lang->block->moduleList['welcome'] = $lang->block->welcome->common;
$lang->block->moduleList['guide'] = $lang->block->guide;
$lang->block->moduleList['zentaodynamic'] = $lang->block->zentaoDynamic;
$lang->block->moduleList['teamachievement'] = $lang->block->teamAchievement;
$lang->block->moduleList['assigntome'] = $lang->block->assignToMe;
$lang->block->moduleList['dynamic'] = $lang->block->dynamic;
$lang->block->moduleList['html'] = $lang->block->html;
$lang->block->tooltips = array();
$lang->block->tooltips['deliveryRate'] = "{$lang->SRCommon} Completion Rate by {$lang->productCommon} = Number of {$lang->SRCommon} delivered by {$lang->productCommon} / Number of effective {$lang->SRCommon} by {$lang->productCommon} * 100%";
$lang->block->tooltips['resolvedRate'] = "Bug Fix Rate by {$lang->productCommon} = Fixed Bugs by {$lang->productCommon} / Valid Bugs by {$lang->productCommon}";
$lang->block->tooltips['effectiveStory'] = "Total {$lang->SRCommon}s by {$lang->productCommon}: The sum of {$lang->SRCommon}s within {$lang->productCommon}. (Excludes deleted {$lang->SRCommon}s and {$lang->productCommon}s)";
$lang->block->tooltips['deliveredStory'] = "Delivered {$lang->SRCommon}s by {$lang->productCommon}: Sum of {$lang->SRCommon}s in {$lang->productCommon} where Stage is \"Released\" or Closed Reason is \"Completed\". (Excludes deleted {$lang->SRCommon}s and {$lang->productCommon}s)";
$lang->block->tooltips['costs'] = "Total Effort (FTE) =Hours Cost / Daily Capacity Configured in Admin";
$lang->block->tooltips['sv'] = "Schedule Variance = (EV - PV) / PV * 100% ";
$lang->block->tooltips['ev'] = 'If Task Status is "Completed", sum Estimated Effort. <br/>If Task Status is "Closed" and Closed Reason is "Completed", sum Estimated Effort. <br/>If Task Status is "Doing" or "Paused", sum (Estimated Effort * Task Progress). <br/>';
$lang->block->tooltips['pv'] = "If Task Deadline ≤ End Date of this week, sum Estimated Effort. <br/>If Task Estimated Start Date ≤ End Date of this week AND Estimated Deadline > End Date of this week, sum Estimated Effort = (Estimated Effort / Task Duration in Days) x Days from Estimated Start to End Date of this week. <br/>";
$lang->block->tooltips['cv'] = 'Cost Variance = (EV - AC) / AC * 100%';
$lang->block->tooltips['ac'] = "Sum of all logged hours before the end of this week in Waterfall {$lang->projectCommon}, excluding deleted {$lang->projectCommon}.";
$lang->block->tooltips['executionProgress'] = "<strong>{$lang->execution->common} Progress</strong> = Sum of Task Cost Hours by {$lang->execution->common} / (Sum of Task Cost Hours by {$lang->execution->common} + Sum of Task Left Hours by {$lang->execution->common}) <br/>
<strong>Sum of Task Cost Hours by {$lang->execution->common}</strong>: Sum of Cost Hours on tasks within the {$lang->execution->common}, excluding deleted tasks, parent tasks, deleted {$lang->execution->common}s, and deleted {$lang->projectCommon}s. <br/>
<strong>Sum of Task Left Hours by {$lang->execution->common}</strong>: Sum of left hours of tasks within the {$lang->execution->common}, excluding deleted tasks, parent tasks, deleted {$lang->execution->common}s, and deleted {$lang->projectCommon}s.";
$lang->block->tooltips['metricTime'] = 'Statistics will be updated hourly. The latest update time is %s.';

62
module/branch/lang/ru.php Normal file
View file

@ -0,0 +1,62 @@
<?php
$lang->branch->common = 'Branch';
$lang->branch->manage = 'Manage Branch';
$lang->branch->sort = 'Sort Branch';
$lang->branch->delete = 'Delete Branch';
$lang->branch->add = 'Add';
$lang->branch->manageTitle = '%s Management';
$lang->branch->all = 'All ';
$lang->branch->main = 'Main';
$lang->branch->edit = 'Edit %s';
$lang->branch->editAction = 'Edit Branch';
$lang->branch->activate = 'Activate';
$lang->branch->activateAction = 'Activate Branch';
$lang->branch->close = 'Close';
$lang->branch->closeAction = 'Close Branch';
$lang->branch->create = 'Create %s';
$lang->branch->createAction = 'Create Branch';
$lang->branch->merge = 'Merge';
$lang->branch->batchEdit = 'Batch Edit';
$lang->branch->defaultBranch = 'Default Branch';
$lang->branch->setDefault = 'Set as Default';
$lang->branch->setDefaultAction = 'Set Default Branch';
$lang->branch->mergeTo = 'Merge to';
$lang->branch->mergeBranch = 'Merge branch';
$lang->branch->mergeBranchAction = 'Merge branch';
$lang->branch->id = 'ID';
$lang->branch->product = $lang->productCommon;
$lang->branch->name = 'Name';
$lang->branch->status = 'Status';
$lang->branch->createdDate = 'Created on';
$lang->branch->closedDate = 'Closed on';
$lang->branch->desc = 'Description';
$lang->branch->order = 'Sort';
$lang->branch->deleted = 'Deleted';
$lang->branch->closed = 'Closed';
$lang->branch->default = 'Default';
$lang->branch->confirmDelete = 'Are you sure you want to delete this @branch@?';
$lang->branch->confirmSetDefault = 'Are you sure you want to set this @branch@ as the default? Once set, plans and releases will default to this @branch@.';
$lang->branch->canNotDelete = 'This @branch@ contains data and cannot be deleted.';
$lang->branch->nameNotEmpty = 'Name is required.';
$lang->branch->confirmClose = 'Are you sure you want to close this @branch@?';
$lang->branch->confirmActivate = 'Are you sure you want to activate this @branch@?';
$lang->branch->existName = '@branch@ name already exists.';
$lang->branch->mergedMain = 'Trunk cannot be merged.';
$lang->branch->mergeTips = 'After merging, all releases, plans, builds, modules, stories, bugs, and test cases under this @branch@ will be moved to the target @branch@.';
$lang->branch->targetBranchTips = 'You can merge it into an existing @branch@, into trunk, or create a new @branch@.';
$lang->branch->confirmMerge = 'Data from mergedBranch will be merged into targetBranch. Are you sure you want to proceed? This action cannot be undone.';
$lang->branch->noData = 'No branches yet.';
$lang->branch->mainBranch = "{$lang->productCommon} default trunk: %s.";
$lang->branch->statusList = array();
$lang->branch->statusList['active'] = 'Activate';
$lang->branch->statusList['closed'] = 'Closed';
$lang->branch->featureBar['manage']['all'] = 'All';
$lang->branch->featureBar['manage']['active'] = 'Activate';
$lang->branch->featureBar['manage']['closed'] = 'Closed';

448
module/bug/lang/ru.php Normal file
View file

@ -0,0 +1,448 @@
<?php
/**
* The bug module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package bug
* @version $Id: en.php 4536 2013-03-02 13:39:37Z wwccss $
* @link https://www.zentao.net
*/
/* Fieldlist. */
$lang->bug->common = 'Bug';
$lang->bug->plural = 'Bugs';
$lang->bug->id = 'ID';
$lang->bug->product = $lang->productCommon;
$lang->bug->branch = 'Branch/Platform';
$lang->bug->module = 'Module';
$lang->bug->project = $lang->projectCommon;
$lang->bug->execution = $lang->execution->common;
$lang->bug->kanban = 'Kanban';
$lang->bug->storyVersion = "{$lang->SRCommon} Version";
$lang->bug->color = 'Color';
$lang->bug->title = 'Name';
$lang->bug->severity = 'Severity';
$lang->bug->pri = 'Priority';
$lang->bug->type = 'Type';
$lang->bug->os = 'Operating System';
$lang->bug->browser = 'Web Browser';
$lang->bug->hardware = 'Hardware';
$lang->bug->result = 'Result';
$lang->bug->repo = 'Linked Repository';
$lang->bug->mr = 'Merge Request';
$lang->bug->entry = 'Code Path';
$lang->bug->lines = 'Code Line';
$lang->bug->v1 = 'Version 1';
$lang->bug->v2 = 'Version 2';
$lang->bug->issueKey = 'Sonarqube Issue Key';
$lang->bug->repoType = 'Repository Type';
$lang->bug->steps = 'Repro Steps';
$lang->bug->status = 'Status';
$lang->bug->subStatus = 'Sub-status';
$lang->bug->activatedCount = 'Activation Count';
$lang->bug->activatedDate = 'Activated on';
$lang->bug->confirmed = 'Confirmed';
$lang->bug->toTask = 'To Task';
$lang->bug->toStory = "To {$lang->SRCommon}";
$lang->bug->feedbackBy = 'Discovered by';
$lang->bug->notifyEmail = 'Discoverer Email';
$lang->bug->mailto = 'Mail to';
$lang->bug->openedBy = 'Reporter';
$lang->bug->openedDate = 'Reported on';
$lang->bug->openedBuild = 'Affected Version';
$lang->bug->assignedTo = 'Assigned to';
$lang->bug->assignedToMe = 'Assigned to Me';
$lang->bug->assignedDate = 'Assigned on';
$lang->bug->resolvedBy = 'Resolved by';
$lang->bug->resolution = 'Resolution';
$lang->bug->resolvedBuild = 'Fixed Build';
$lang->bug->resolvedDate = 'Resolved on';
$lang->bug->deadline = 'Due Date';
$lang->bug->plan = 'Linked Plan';
$lang->bug->closedBy = 'Closed by';
$lang->bug->closedDate = 'Closed on';
$lang->bug->duplicateBug = 'Duplicated Bug';
$lang->bug->lastEditedBy = 'Last Edited by';
$lang->bug->caseVersion = 'Test Case Version';
$lang->bug->testtask = 'Test Request';
$lang->bug->files = 'File';
$lang->bug->keywords = 'Keywords';
$lang->bug->lastEditedDate = 'Edited on';
$lang->bug->fromCase = 'Source Test Case';
$lang->bug->toCase = 'Generate Test Case';
$lang->bug->colorTag = 'Color Tag';
$lang->bug->fixedRate = 'Fix Rate';
$lang->bug->noticefeedbackBy = 'Notify Reporter';
$lang->bug->selectProjects = "Select {$lang->projectCommon}s";
$lang->bug->nextStep = 'Next';
$lang->bug->noProject = "No {$lang->projectCommon}s selected.";
$lang->bug->noExecution = "No {$lang->execution->common}s selected.";
$lang->bug->story = 'Story';
$lang->bug->task = 'Task';
$lang->bug->relatedBug = 'Related Bugs';
$lang->bug->case = 'Test Case';
$lang->bug->linkMR = 'Related MRs';
$lang->bug->linkPR = 'Related PRs';
$lang->bug->linkCommit = 'Related PRs';
$lang->bug->productplan = $lang->bug->plan;
$lang->bug->codeBranch = 'Code branch';
$lang->bug->unlinkBranch = 'Unlink code branch';
$lang->bug->branchName = 'Branch Name';
$lang->bug->branchFrom = 'Create from';
$lang->bug->codeRepo = 'Code Repository';
$lang->bug->abbr = new stdclass();
$lang->bug->abbr->module = 'Module';
$lang->bug->abbr->severity = 'Severity';
$lang->bug->abbr->status = 'Status';
$lang->bug->abbr->activatedCount = 'Activation Count';
$lang->bug->abbr->confirmed = 'Confirm';
$lang->bug->abbr->openedBy = 'Reporter';
$lang->bug->abbr->openedDate = 'Reported on';
$lang->bug->abbr->assignedTo = 'Assigned to';
$lang->bug->abbr->resolvedBy = 'Resolve';
$lang->bug->abbr->resolution = 'Resolution';
$lang->bug->abbr->resolvedDate = 'Resolved on';
$lang->bug->abbr->deadline = 'Due Date';
$lang->bug->abbr->lastEditedBy = 'Edited by';
$lang->bug->abbr->lastEditedDate = 'Edited on';
$lang->bug->abbr->assignToMe = 'Assigned to Me';
$lang->bug->abbr->openedByMe = 'Reported by Me';
$lang->bug->abbr->resolvedByMe = 'Resolved by Me';
/* Method list. */
$lang->bug->index = 'Bug Home';
$lang->bug->browse = 'Bug List';
$lang->bug->create = 'Report Bug';
$lang->bug->batchCreate = 'Batch Report';
$lang->bug->createCase = 'Create Test Case';
$lang->bug->copy = 'Copy Bug';
$lang->bug->edit = 'Edit Bug';
$lang->bug->batchEdit = 'Batch Edit';
$lang->bug->view = 'Bug Details';
$lang->bug->delete = 'Delete';
$lang->bug->deleteAction = 'Delete Bug';
$lang->bug->confirm = 'Confirm';
$lang->bug->confirmAction = 'Confirm Bug';
$lang->bug->batchConfirm = 'Batch Confirm';
$lang->bug->assignTo = 'Assign';
$lang->bug->assignAction = 'Assigned to';
$lang->bug->batchAssignTo = 'Batch Assign';
$lang->bug->resolve = 'Resolve';
$lang->bug->resolveAction = 'Resolve Bug';
$lang->bug->batchResolve = 'Batch Resolve';
$lang->bug->createAB = 'Add';
$lang->bug->close = 'Close';
$lang->bug->closeAction = 'Close Bug';
$lang->bug->batchClose = 'Batch Close';
$lang->bug->activate = 'Activate';
$lang->bug->activateAction = 'Activate Bug';
$lang->bug->batchActivate = 'Batch Activate';
$lang->bug->reportChart = 'Report';
$lang->bug->reportAction = 'Bug Report';
$lang->bug->export = 'Export Data';
$lang->bug->exportAction = 'Export Bugs';
$lang->bug->confirmStoryChange = "Confirm {$lang->SRCommon} Change";
$lang->bug->search = 'Search';
$lang->bug->batchChangeModule = 'Batch Edit Modules';
$lang->bug->batchChangeBranch = 'Batch Edit Branches';
$lang->bug->batchChangePlan = 'Batch Edit Plans';
$lang->bug->linkBugs = 'Link Bug';
$lang->bug->unlinkBug = 'Unlink Bug';
/* Query condition list. */
$lang->bug->assignToMe = 'Assigned to Me';
$lang->bug->openedByMe = 'Reported by Me';
$lang->bug->resolvedByMe = 'Resolved by Me';
$lang->bug->closedByMe = 'Closed by Me';
$lang->bug->assignedByMe = 'Assigned by Me';
$lang->bug->assignToNull = 'Unassigned';
$lang->bug->unResolved = 'Unresolved';
$lang->bug->toClosed = 'To Be Closed';
$lang->bug->unclosed = 'Open';
$lang->bug->unconfirmed = 'Unconfirmed';
$lang->bug->longLifeBugs = 'Stale';
$lang->bug->postponedBugs = 'Delayed';
$lang->bug->overdueBugs = 'Overdue Bug';
$lang->bug->allBugs = 'All';
$lang->bug->byQuery = 'Search';
$lang->bug->needConfirm = 'Story Changed';
$lang->bug->allProject = 'All Projects';
$lang->bug->allProduct = 'All ' . $lang->productCommon . 's';
$lang->bug->my = 'My';
$lang->bug->yesterdayResolved = 'Bugs Resolved Yesterday ';
$lang->bug->yesterdayConfirmed = 'Bugs Confirmed Yesterday ';
$lang->bug->yesterdayClosed = 'Bugs Closed Yesterday ';
$lang->bug->deleted = 'Deleted';
$lang->bug->labelConfirmed = 'Confirmed';
$lang->bug->labelPostponed = 'Delayed';
$lang->bug->changed = 'Changed';
$lang->bug->storyChanged = 'Story Changed';
$lang->bug->ditto = 'Ditto';
/* Page tags. */
$lang->bug->lblAssignedTo = 'AssignTo';
$lang->bug->lblMailto = 'Mail to';
$lang->bug->lblLastEdited = 'Last Edited by';
$lang->bug->lblResolved = 'Resolved by';
$lang->bug->loadAll = 'Load All';
$lang->bug->createBuild = 'New';
global $config;
/* Legend list. */
$lang->bug->legendBasicInfo = 'Basic Info';
$lang->bug->legendAttach = 'File';
$lang->bug->legendPRJExecStoryTask = "{$lang->SRCommon}/{$lang->executionCommon}/Story/Task";
$lang->bug->legendExecStoryTask = "{$lang->SRCommon}/Story/Task";
$lang->bug->lblTypeAndSeverity = 'Type/Severity';
$lang->bug->lblSystemBrowserAndHardware = 'System/Browser';
$lang->bug->legendSteps = 'Repro Steps';
$lang->bug->legendComment = 'Comment';
$lang->bug->legendLife = 'Bug Life';
$lang->bug->legendMisc = 'Misc';
$lang->bug->legendRelated = 'Related Info';
$lang->bug->legendThisWeekCreated = 'New This Week';
/* Template. */
$lang->bug->tplStep = "<p>[Steps]</p><p></p>";
$lang->bug->tplResult = "<p>[Results]</p><p></p>";
$lang->bug->tplExpect = "<p>[Expectations]</p><p></p>";
/* Value list for each field. */
$lang->bug->severityList[0] = '';
$lang->bug->severityList[1] = '1';
$lang->bug->severityList[2] = '2';
$lang->bug->severityList[3] = '3';
$lang->bug->severityList[4] = '4';
$lang->bug->priList[0] = '';
$lang->bug->priList[1] = '1';
$lang->bug->priList[2] = '2';
$lang->bug->priList[3] = '3';
$lang->bug->priList[4] = '4';
$lang->bug->osList[''] = '';
$lang->bug->osList['all'] = 'All';
$lang->bug->osList['windows'] = 'Windows';
$lang->bug->osList['win11'] = 'Windows 11';
$lang->bug->osList['win10'] = 'Windows 10';
$lang->bug->osList['win8'] = 'Windows 8';
$lang->bug->osList['win7'] = 'Windows 7';
$lang->bug->osList['winxp'] = 'Windows XP';
$lang->bug->osList['osx'] = 'Mac OS';
$lang->bug->osList['android'] = 'Android';
$lang->bug->osList['ios'] = 'IOS';
$lang->bug->osList['linux'] = 'Linux';
$lang->bug->osList['ubuntu'] = 'Ubuntu';
$lang->bug->osList['chromeos'] = 'Chrome OS';
$lang->bug->osList['fedora'] = 'Fedora';
$lang->bug->osList['unix'] = 'Unix';
$lang->bug->osList['others'] = 'Others';
$lang->bug->browserList[''] = '';
$lang->bug->browserList['all'] = 'All';
$lang->bug->browserList['chrome'] = 'Chrome';
$lang->bug->browserList['edge'] = 'Edge';
$lang->bug->browserList['ie'] = 'IE series';
$lang->bug->browserList['ie11'] = 'IE11';
$lang->bug->browserList['ie10'] = 'IE10';
$lang->bug->browserList['ie9'] = 'IE9';
$lang->bug->browserList['ie8'] = 'IE8';
$lang->bug->browserList['firefox'] = 'Firefox series';
$lang->bug->browserList['opera'] = 'Opera series';
$lang->bug->browserList['safari'] = 'Safari';
$lang->bug->browserList['360'] = '360 series';
$lang->bug->browserList['qq'] = 'QQ series';
$lang->bug->browserList['other'] = 'Others';
$lang->bug->typeList[''] = '';
$lang->bug->typeList['codeerror'] = 'Code Error';
$lang->bug->typeList['config'] = 'Configuration';
$lang->bug->typeList['install'] = 'Installation';
$lang->bug->typeList['security'] = 'Security';
$lang->bug->typeList['performance'] = 'Performance';
$lang->bug->typeList['standard'] = 'Standard Specification';
$lang->bug->typeList['automation'] = 'Test Script';
$lang->bug->typeList['designdefect'] = 'Design Defect';
$lang->bug->typeList['others'] = 'Others';
$lang->bug->statusList[''] = '';
$lang->bug->statusList['active'] = 'Activated';
$lang->bug->statusList['resolved'] = 'Resolved';
$lang->bug->statusList['closed'] = 'Closed';
$lang->bug->confirmedList[''] = '';
$lang->bug->confirmedList[1] = 'Yes';
$lang->bug->confirmedList[0] = 'No';
$lang->bug->resolutionList[''] = '';
$lang->bug->resolutionList['bydesign'] = 'As Designed';
$lang->bug->resolutionList['duplicate'] = 'Duplicate';
$lang->bug->resolutionList['external'] = ' External Caus';
$lang->bug->resolutionList['fixed'] = 'Resolved';
$lang->bug->resolutionList['notrepro'] = 'Cannot Reproduce';
$lang->bug->resolutionList['postponed'] = 'Postponed';
$lang->bug->resolutionList['willnotfix'] = 'Won’t Fix';
$lang->bug->resolutionList['tostory'] = 'Convert to Story';
/* Statistical statement. */
$lang->bug->report = new stdclass();
$lang->bug->report->common = 'Report';
$lang->bug->report->select = 'Select Report Type';
$lang->bug->report->create = 'Create Report';
$lang->bug->report->charts['bugsPerExecution'] = $lang->executionCommon . ' Bug Count';
$lang->bug->report->charts['bugsPerBuild'] = 'Bugs by Build';
$lang->bug->report->charts['bugsPerModule'] = 'Bugs by Module';
$lang->bug->report->charts['openedBugsPerDay'] = 'New Bugs per Day';
$lang->bug->report->charts['resolvedBugsPerDay'] = 'Resolved Bugs Per Day';
$lang->bug->report->charts['closedBugsPerDay'] = 'Closed Bugs Per Day';
$lang->bug->report->charts['openedBugsPerUser'] = 'Bugs Reported per User';
$lang->bug->report->charts['resolvedBugsPerUser'] = 'Bugs Resolved per User';
$lang->bug->report->charts['closedBugsPerUser'] = 'Bugs Closed per User';
$lang->bug->report->charts['bugsPerSeverity'] = 'Bugs by Severity';
$lang->bug->report->charts['bugsPerResolution'] = 'Bugs by Resolution';
$lang->bug->report->charts['bugsPerStatus'] = 'Bugs by Status';
$lang->bug->report->charts['bugsPerActivatedCount'] = 'Bugs by Ativation Count';
$lang->bug->report->charts['bugsPerPri'] = 'Bugs by Priority';
$lang->bug->report->charts['bugsPerType'] = 'Bugs by Type';
$lang->bug->report->charts['bugsPerAssignedTo'] = 'Bugs by Assignee';
//$lang->bug->report->charts['bugLiveDays'] = 'Bug Handling Time Report';
//$lang->bug->report->charts['bugHistories'] = 'Bug Handling Steps Report';
$lang->bug->report->options = new stdclass();
$lang->bug->report->options->graph = new stdclass();
$lang->bug->report->options->type = 'pie';
$lang->bug->report->options->width = 500;
$lang->bug->report->options->height = 140;
$lang->bug->report->bugsPerExecution = new stdclass();
$lang->bug->report->bugsPerBuild = new stdclass();
$lang->bug->report->bugsPerModule = new stdclass();
$lang->bug->report->openedBugsPerDay = new stdclass();
$lang->bug->report->resolvedBugsPerDay = new stdclass();
$lang->bug->report->closedBugsPerDay = new stdclass();
$lang->bug->report->openedBugsPerUser = new stdclass();
$lang->bug->report->resolvedBugsPerUser = new stdclass();
$lang->bug->report->closedBugsPerUser = new stdclass();
$lang->bug->report->bugsPerSeverity = new stdclass();
$lang->bug->report->bugsPerResolution = new stdclass();
$lang->bug->report->bugsPerStatus = new stdclass();
$lang->bug->report->bugsPerActivatedCount = new stdclass();
$lang->bug->report->bugsPerType = new stdclass();
$lang->bug->report->bugsPerPri = new stdclass();
$lang->bug->report->bugsPerAssignedTo = new stdclass();
$lang->bug->report->bugLiveDays = new stdclass();
$lang->bug->report->bugHistories = new stdclass();
$lang->bug->report->bugsPerExecution->graph = new stdclass();
$lang->bug->report->bugsPerBuild->graph = new stdclass();
$lang->bug->report->bugsPerModule->graph = new stdclass();
$lang->bug->report->openedBugsPerDay->graph = new stdclass();
$lang->bug->report->resolvedBugsPerDay->graph = new stdclass();
$lang->bug->report->closedBugsPerDay->graph = new stdclass();
$lang->bug->report->openedBugsPerUser->graph = new stdclass();
$lang->bug->report->resolvedBugsPerUser->graph = new stdclass();
$lang->bug->report->closedBugsPerUser->graph = new stdclass();
$lang->bug->report->bugsPerSeverity->graph = new stdclass();
$lang->bug->report->bugsPerResolution->graph = new stdclass();
$lang->bug->report->bugsPerStatus->graph = new stdclass();
$lang->bug->report->bugsPerActivatedCount->graph = new stdclass();
$lang->bug->report->bugsPerType->graph = new stdclass();
$lang->bug->report->bugsPerPri->graph = new stdclass();
$lang->bug->report->bugsPerAssignedTo->graph = new stdclass();
$lang->bug->report->bugLiveDays->graph = new stdclass();
$lang->bug->report->bugHistories->graph = new stdclass();
$lang->bug->report->bugsPerExecution->graph->xAxisName = $lang->executionCommon;
$lang->bug->report->bugsPerBuild->graph->xAxisName = 'Build';
$lang->bug->report->bugsPerModule->graph->xAxisName = 'Module';
$lang->bug->report->openedBugsPerDay->type = 'bar';
$lang->bug->report->openedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->resolvedBugsPerDay->type = 'bar';
$lang->bug->report->resolvedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->closedBugsPerDay->type = 'bar';
$lang->bug->report->closedBugsPerDay->graph->xAxisName = 'Date';
$lang->bug->report->openedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->resolvedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->closedBugsPerUser->graph->xAxisName = 'User';
$lang->bug->report->bugsPerSeverity->graph->xAxisName = 'Severity';
$lang->bug->report->bugsPerResolution->graph->xAxisName = 'Resolution';
$lang->bug->report->bugsPerStatus->graph->xAxisName = 'Status';
$lang->bug->report->bugsPerActivatedCount->graph->xAxisName = 'Activation Count';
$lang->bug->report->bugsPerPri->graph->xAxisName = 'Priority';
$lang->bug->report->bugsPerType->graph->xAxisName = 'Type';
$lang->bug->report->bugsPerAssignedTo->graph->xAxisName = 'Assignee';
$lang->bug->report->bugLiveDays->graph->xAxisName = 'Resolution Time';
$lang->bug->report->bugHistories->graph->xAxisName = 'Resolution Steps';
/* Operating record. */
$lang->bug->action = new stdclass();
$lang->bug->action->resolved = array('main' => '$date, resolved by <strong>$actor</strong> and the resolution is <strong>$extra</strong> $appendLink.', 'extra' => 'resolutionList');
$lang->bug->action->tostory = array('main' => '$date, converted to <strong>Story</strong> with ID <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->totask = array('main' => '$date, imported as <strong>Task</strong> with ID <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->converttotask = array('main' => '$date, converted to <strong>Task</strong> with ID <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->linked2plan = array('main' => '$date, linked to Plan <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->unlinkedfromplan = array('main' => '$date, unlinked from Plan <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->linked2build = array('main' => '$date, linked to Build <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->unlinkedfrombuild = array('main' => '$date, unlinked from Build <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->unlinkedfromrelease = array('main' => '$date, unlinked from Release <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->linked2release = array('main' => '$date, linked to Release <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->linked2revision = array('main' => '$date, linked to Commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->unlinkedfromrevision = array('main' => '$date, unlinked from Commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->linkrelatedbug = array('main' => '$date, linked to Bug <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->action->unlinkrelatedbug = array('main' => '$date, unlinked from Bug <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->bug->featureBar['browse']['all'] = 'All';
$lang->bug->featureBar['browse']['unclosed'] = $lang->bug->unclosed;
$lang->bug->featureBar['browse']['openedbyme'] = $lang->bug->openedByMe;
$lang->bug->featureBar['browse']['assigntome'] = $lang->bug->assignToMe;
$lang->bug->featureBar['browse']['resolvedbyme'] = $lang->bug->resolvedByMe;
$lang->bug->featureBar['browse']['assignedbyme'] = $lang->bug->assignedByMe;
$lang->bug->featureBar['browse']['more'] = $lang->more;
$lang->bug->moreSelects['browse']['more']['unresolved'] = $lang->bug->unResolved;
$lang->bug->moreSelects['browse']['more']['unconfirmed'] = $lang->bug->unconfirmed;
$lang->bug->moreSelects['browse']['more']['assigntonull'] = $lang->bug->assignToNull;
$lang->bug->moreSelects['browse']['more']['longlifebugs'] = $lang->bug->longLifeBugs;
$lang->bug->moreSelects['browse']['more']['toclosed'] = $lang->bug->toClosed;
$lang->bug->moreSelects['browse']['more']['postponedbugs'] = $lang->bug->postponedBugs;
$lang->bug->moreSelects['browse']['more']['overduebugs'] = $lang->bug->overdueBugs;
$lang->bug->moreSelects['browse']['more']['needconfirm'] = $lang->bug->needConfirm;
$lang->bug->placeholder = new stdclass();
$lang->bug->placeholder->chooseBuilds = 'Select Build';
$lang->bug->placeholder->newBuildName = 'New Build Name';
$lang->bug->placeholder->duplicate = 'Please enter the keywords.';
/* Interactive prompt. */
$lang->bug->notice = new stdclass();
$lang->bug->notice->summary = "<strong>%s</strong> Bug(s) on this page, <strong>%s</strong> Unresolved.";
$lang->bug->notice->unClosedSummary = "Total %s Bug(s) on this page, %s Open.";
$lang->bug->notice->checkedSummary = "{checked} item(s) selected. Total {total} items.";
$lang->bug->notice->confirmChangeProduct = "Changing the {$lang->productCommon} will result in changes to the linked {$lang->executionCommon}, {$lang->SRCommon}, and tasks. Are you sure to continue?";
$lang->bug->notice->confirmDelete = 'Are you sure you want to delete this Bug?';
$lang->bug->notice->remindTask = 'This Bug has been converted to a task. Do you want to update the status of the task (ID: %s)?';
$lang->bug->notice->skipClose = 'Bug %s is not in "Resolved" status and cannot be closed. It will be automatically skipped.';
$lang->bug->notice->executionAccessDenied = "You do not have permission to access the {$lang->executionCommon} to which this Bug belongs.";
$lang->bug->notice->confirmUnlinkBuild = "Changing the Fixed Build will remove the link to the previous build. Are you sure you want to unlink this Bug from %s?";
$lang->bug->notice->noSwitchBranch = 'The module for Bug %s is not in the current branch. It will be automatically skipped.';
$lang->bug->notice->confirmToStory = 'The Bug will be automatically closed after being converted to a story. Closure reason: Converted to Story.';
$lang->bug->notice->productDitto = "This Bug and the previous Bug do not belong to the same {$lang->productCommon}!";
$lang->bug->notice->noBug = 'No bugs yet.';
$lang->bug->notice->noModule = '<div>No module information available.</div><div>Please set up test modules.</div>';
$lang->bug->notice->delayWarning = "<strong class='text-danger'>Pospone by %s day(s)</strong>";
$lang->bug->notice->skipNotActive = "Bug %s is already Resolved or Closed and will not be modified.";
$lang->bug->error = new stdclass();
$lang->bug->error->notExist = "Bug not found.";
$lang->bug->error->cannotActivate = 'Bugs that are not in "Resolved" or "Closed" status cannot be activated.';
$lang->bug->error->stepsNotEmpty = "Reproduction steps cannot be empty.";
$lang->bug->error->duplicateBugNotExist = 'Duplicate Bug does not exist.';

103
module/build/lang/ru.php Normal file
View file

@ -0,0 +1,103 @@
<?php
/**
* The build module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package build
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->build->common = "Build";
$lang->build->browse = "Build List";
$lang->build->create = "Create Build";
$lang->build->edit = "Edit Build";
$lang->build->linkStory = "Link {$lang->SRCommon}";
$lang->build->linkBug = "Link Bug";
$lang->build->delete = "Delete Build";
$lang->build->deleted = "Deleted";
$lang->build->view = "Build Details";
$lang->build->batchUnlink = 'Batch Unlink';
$lang->build->batchUnlinkStory = "Batch Unlink {$lang->SRCommon}";
$lang->build->batchUnlinkBug = 'Batch Unlink Bugs';
$lang->build->viewBug = 'Bugs';
$lang->build->bugList = 'Bug List';
$lang->build->system = $lang->product->system;
$lang->build->addSystem = 'Add ' . $lang->product->system;
$lang->build->consumed = 'Cost';
$lang->build->confirmDelete = "Are you sure you want to delete the build?";
$lang->build->confirmUnlinkStory = "Are you sure you want to unlink the {$lang->SRCommon}?";
$lang->build->confirmUnlinkBug = "Are you sure you want to unlink the bug?";
$lang->build->basicInfo = 'Basic Info';
$lang->build->id = 'ID';
$lang->build->product = $lang->productCommon;
$lang->build->project = $lang->projectCommon;
$lang->build->branch = 'Platform/Branch';
$lang->build->branchAll = 'All Linked %s';
$lang->build->branchName = '%s';
$lang->build->execution = $lang->executionCommon;
$lang->build->executionAB = 'execution';
$lang->build->integrated = 'Integrated Build';
$lang->build->singled = 'Single Build';
$lang->build->builds = 'Inclusive Build';
$lang->build->released = 'Release';
$lang->build->name = 'Name';
$lang->build->nameAB = 'Name';
$lang->build->date = 'Build Date';
$lang->build->builder = 'Build Author';
$lang->build->url = 'URL';
$lang->build->scmPath = 'SCM Path';
$lang->build->filePath = 'Download Address';
$lang->build->desc = 'Description';
$lang->build->mailto = 'Mail to';
$lang->build->files = 'Upload Files';
$lang->build->last = 'Last Build';
$lang->build->createdBy = 'Creator';
$lang->build->createdDate = 'Created on';
$lang->build->packageType = 'Type';
$lang->build->unlinkStory = "Unlink {$lang->SRCommon}";
$lang->build->unlinkBug = 'Unlink Bug';
$lang->build->stories = "Completed {$lang->SRCommon}";
$lang->build->bugs = 'Resolved Bugs';
$lang->build->generatedBugs = 'Reported Bugs';
$lang->build->noProduct = " <span id='noProduct' style='color:red'> Build cannot be created since the {$lang->executionCommon} has no linked {$lang->productCommon}. Please <a data-url='%s' data-app='%s' data-toggle='modal' class='cursor-pointer'> link a {$lang->productCommon} first. </a></span>";
$lang->build->noBuild = 'No builds yet.';
$lang->build->emptyExecution = $lang->executionCommon . 'should be not empty.';
$lang->build->linkedBuild = 'Link Build';
$lang->build->createTest = 'Submit Test Request';
$lang->build->integratedLabel = 'Integration';
$lang->build->notice = new stdclass();
$lang->build->notice->changeProduct = "A build that has already been linked to a {$lang->SRCommon}, a bug, or a submitted test request cannot have its associated {$lang->productCommon} changed.";
$lang->build->notice->changeExecution = "A build with a submitted test request cannot have its associated {$lang->executionCommon} changed.";
$lang->build->notice->changeBuilds = "A build with a submitted test request cannot have its linked builds changed.";
$lang->build->notice->autoRelation = "The completed {$lang->SRCommon}s, resolved bugs, and newly generated bugs under the related builds will be automatically linked to the {$lang->projectCommon} build.";
$lang->build->notice->createTest = "The execution linked to this build has been deleted. Test requests cannot be submitted.";
$lang->build->confirmChangeBuild = "After unlinking %s [%s], %s {$lang->SRCommon}(s) and %s bug(s) under %s will be removed from the build. Do you want to continue?";
$lang->build->confirmRemoveStory = "After unlinking %s [%s], %s {$lang->SRCommon}(s) under %s will be removed from the plan. Do you want to continue?";
$lang->build->confirmRemoveBug = "After unlinking %s [%s], %s bug(s) under %s will be removed from the plan. Do you want to continue?";
$lang->build->confirmRemoveTips = "Are you sure you want to delete %s『%s』?";
$lang->build->finishStories = "%s {$lang->SRCommon} completed this time.";
$lang->build->resolvedBugs = '%s Bugs resolved this time.';
$lang->build->createdBugs = '%s Bugs reported this time.';
$lang->build->placeholder = new stdclass();
$lang->build->placeholder->scmPath = 'The software source code repository, such as a Subversion or Git repository address.';
$lang->build->placeholder->filePath = 'The storage location for downloading the software package of this build.';
$lang->build->placeholder->multipleSelect = "Multiple build selections are supported.";
$lang->build->action = new stdclass();
$lang->build->action->buildopened = '$date, the build <strong>$extra</strong> was created by <strong>$actor</strong>. ' . "\n";
$lang->backhome = 'back';
$lang->build->isIntegrated = array();
$lang->build->isIntegrated['no'] = 'No';
$lang->build->isIntegrated['yes'] = 'Yes';

48
module/cache/lang/ru.php vendored Normal file
View file

@ -0,0 +1,48 @@
<?php
$lang->cache->setting = 'Cache Setting';
$lang->cache->clear = 'Clear Cache';
$lang->cache->clearSuccess = 'Cache cleared successfully.';
$lang->cache->status = 'Status';
$lang->cache->driver = 'Cache Type';
$lang->cache->namespace = 'Namespace';
$lang->cache->scope = 'Scope';
$lang->cache->memory = 'Memory';
$lang->cache->usedMemory = 'Total %s, used %s';
$lang->cache->statusList[1] = 'On';
$lang->cache->statusList[0] = 'Off';
$lang->cache->driverList['apcu'] = 'APCu';
$lang->cache->driverList['redis'] = 'Redis';
$lang->cache->scopeList['private'] = 'Exclusively for this application';
$lang->cache->scopeList['shared'] = 'Shared by multiple applications';
$lang->cache->apcu = new stdClass();
$lang->cache->apcu->notice = 'To use APCu cache, you need to load the APCu extension first.';
$lang->cache->apcu->notLoaded = 'Please load the APCu extension before enabling cache.';
$lang->cache->apcu->notEnabled = 'Please enable the apc.enabled option before enabling cach.';
$lang->cache->redis = new stdClass();
$lang->cache->redis->host = 'Redis Host';
$lang->cache->redis->port = 'Redis Port';
$lang->cache->redis->username = 'Redis User';
$lang->cache->redis->password = 'Redis Password';
$lang->cache->redis->database = 'Redis Database';
$lang->cache->redis->serializer = 'Redis Serializer';
$lang->cache->redis->notice = 'To use Redis cache, you need to load the Redis extension first.';
$lang->cache->redis->notLoaded = 'Please load the Redis extension before enabling cach.';
$lang->cache->redis->igbinaryNotLoaded = 'Please load the igbinary extension before enabling cach.';
$lang->cache->redis->igbinaryNotSupported = 'Redis does not support igbinary. Please change the serializer.';
$lang->cache->redis->serializerList['php'] = 'PHP Serialize';
$lang->cache->redis->serializerList['igbinary'] = 'igbinary';
$lang->cache->redis->tips = new stdClass();
$lang->cache->redis->tips->host = 'Fill in the domain name or IP address, and do not need to fill in the protocol and port number.';
$lang->cache->redis->tips->database = 'Fill in the number of the Redis database, the default is 0.';
$lang->cache->redis->tips->serializer = 'Data needs to be serialized and cached. Changing the serializer will clear the cached data.';
$lang->cache->tips = new stdClass();
$lang->cache->tips->namespace = 'Namespaces are used to prevent cache data conflicts between different applications. Changing the namespace after caching is enabled will clear the cache data.';
$lang->cache->tips->scope = 'If the cache service is only used by this application, please select "Exclusively for this application", otherwise select "Shared by multiple applications".';

View file

@ -0,0 +1,57 @@
<?php
/**
* The caselib module en file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package caselib
* @version $Id: zh-cn.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->caselib->common = 'Case Library';
$lang->caselib->all = 'All Case Libraries';
$lang->caselib->create = "Create Test Case Library";
$lang->caselib->edit = 'Edit Case Library';
$lang->caselib->browse = 'View Case Library';
$lang->caselib->view = 'Library Overview';
$lang->caselib->viewCase = 'View Test Cases';
$lang->caselib->createCase = 'Create Test Case';
$lang->caselib->editCase = 'Edit Test Case';
$lang->caselib->delete = "Delete";
$lang->caselib->linkVersion = "Version";
$lang->caselib->deleted = 'Deleted';
$lang->caselib->exportTemplate = 'Export Template';
$lang->caselib->exportCase = 'Export Test Cases';
$lang->caselib->batchCreateCase = 'Batch Create Cases';
$lang->caselib->batchEditCase = 'Batch Edit Cases';
$lang->caselib->import = 'Import';
$lang->caselib->showImport = 'Show Imported Data';
$lang->caselib->type = 'Type';
$lang->caselib->product = $lang->productCommon;
$lang->caselib->browseAction = 'Case Library List';
$lang->caselib->deleteAction = "Delete Case Library";
$lang->caselib->importAction = 'Import Test Cases';
$lang->caselib->linkVersion = "Version";
$lang->caselib->id = 'ID';
$lang->caselib->name = 'Name';
$lang->caselib->title = 'Title';
$lang->caselib->desc = 'Description';
$lang->caselib->addedBy = 'Creator';
$lang->caselib->addedDate = 'Created on';
$lang->caselib->lastEditedBy = 'Last Edited by';
$lang->caselib->lastEditedDate = 'Last Edited on';
$lang->caselib->templateType = 'Template Type';
$lang->caselib->recordNum = 'Record Count';
$lang->caselib->selectFile = 'Select File';
$lang->caselib->encode = 'Encoding';
$lang->caselib->legendDesc = 'Description';
$lang->caselib->libraryDelete = 'Are you sure you want to delete this test case library?';
$lang->caselib->noModule = '<div>No module information available.</div><div>Please set up test case library modules.</div>';
$lang->caselib->featureBar['browse']['all'] = 'All';
$lang->caselib->featureBar['browse']['wait'] = 'Waiting Review';

57
module/chart/lang/ru.php Normal file
View file

@ -0,0 +1,57 @@
<?php
$lang->chart->preview = 'View Chart';
$lang->chart->query = 'Query';
$lang->chart->toDesign = 'To Design';
$lang->chart->accessDenied = 'You do not have access to this chart';
$lang->chart->acl = 'Access Control';
$lang->chart->aclList['open'] = 'Public (with chart view permissions and dimension permissions can access it)';
$lang->chart->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)';
$lang->chart->group = 'Group';
$lang->chart->field = 'Related Field';
$lang->chart->agg = 'Aggregate';
$lang->chart->chooseField = 'Choose field';
$lang->chart->aggType = 'Aggregate type';
$lang->chart->other = 'Other';
$lang->chart->unlimited = 'Unlimited';
$lang->chart->colon = 'To';
$lang->chart->updateCharts = 'Update the chart';
$lang->chart->updateCurrentChart = 'Update data in charts';
$lang->chart->fieldTypeList = array();
$lang->chart->fieldTypeList['input'] = 'Text';
$lang->chart->fieldTypeList['date'] = 'Date';
$lang->chart->fieldTypeList['datetime'] = 'Time';
$lang->chart->fieldTypeList['select'] = 'Dropdown';
//$lang->chart->fieldTypeList['condition'] = 'Condition';
$lang->chart->groupWeek = 'Week %s,%s';
$lang->chart->noChart = 'No Chart';
$lang->chart->noData = 'No Data';
$lang->chart->noChartSelected = 'Please select one chart.';
$lang->chart->chartMaxChecked = 'You can only select up to %s charts.';
$lang->chart->featureBar = array();
$lang->chart->featureBar['preview'] = array();
$lang->chart->aggList = array();
$lang->chart->aggList['count'] = 'Count';
$lang->chart->aggList['distinct'] = 'Count after distinct';
$lang->chart->aggList['avg'] = 'AVG';
$lang->chart->aggList['sum'] = 'SUM';
$lang->chart->aggList['max'] = 'MAX';
$lang->chart->aggList['min'] = 'MIN';
$lang->chart->typeList = array();
$lang->chart->typeList['pie'] = 'Pie';
$lang->chart->typeList['line'] = 'Line';
$lang->chart->typeList['waterpolo'] = 'Liquid Fill';
$lang->chart->typeList['radar'] = 'Radar';
$lang->chart->typeList['cluBarY'] = 'Clustered Bar Y';
$lang->chart->typeList['stackedBarY'] = 'Stacked Bar Y';
$lang->chart->typeList['cluBarX'] = 'Clustered Bar X';
$lang->chart->typeList['stackedBar'] = 'Stacked Bar X';
$lang->chart->conditionList['eq'] = '=';

14
module/ci/lang/ru.php Normal file
View file

@ -0,0 +1,14 @@
<?php
$lang->ci->common = 'TA';
$lang->ci->commitResult = 'Interface: Commit Test Result.';
$lang->ci->checkCompileStatus = 'Interface: Fetch Test Result.';
$lang->ci->job = 'Job';
$lang->ci->task = 'Task';
$lang->ci->history = 'History';
$lang->ci->list = 'List';
$lang->ci->errors = new stdclass();
$lang->ci->errors->noProduct = 'ProductID is not correct.';
$lang->ci->errors->noProject = 'Product#%s has no related project.';
$lang->ci->errors->noExecution = 'Product#%s has no related execution.';

28
module/cne/lang/ru.php Normal file
View file

@ -0,0 +1,28 @@
<?php
$lang->CNE->InstallSuccess = 'Install succeeded';
$lang->CNE->InstallFailure = 'Install failed';
$lang->CNE->serverError = 'CNE Server Error';
$lang->CNE->statusList = array();
$lang->CNE->statusList['normal'] = 'Normal';
$lang->CNE->statusList['abnormal'] = 'Abnormal';
$lang->CNE->statusList['stopped'] = 'Stopped';
$lang->CNE->statusList['unknown'] = 'UnKnown';
$lang->CNE->statusIcons = array();
$lang->CNE->statusIcons['normal'] = "check";
$lang->CNE->statusIcons['abnormal'] = "exclamation-pure";
$lang->CNE->statusIcons['stopped'] = "pause-pure";
$lang->CNE->statusIcons['unknown'] = "exclamation-pure";
$lang->CNE->errorList = array();
//$lang->CNE->errorList[400] = '不能包含特殊字符';
$lang->CNE->errorList[400] = 'Failed to request Cluster API';
$lang->CNE->errorList[404] = 'Service not found';
$lang->CNE->errorList[40004] = 'Certificate does not match the domain';
$lang->CNE->errorList[41001] = 'Certificate has expired';
$lang->CNE->errorList[41002] = 'Certificate mismatch';
$lang->CNE->errorList[41003] = 'Incomplete certificate chain';
$lang->CNE->errorList[41004] = 'Private key does not match the certificate';
$lang->CNE->errorList[41005] = 'Failed to parse certificate';
$lang->CNE->errorList[41006] = 'Failed to parse key';

695
module/common/lang/ru.php Normal file
View file

@ -0,0 +1,695 @@
<?php
/**
* The common simplified chinese file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package ZenTaoPMS
* @version $Id: en.php 5116 2013-07-12 06:37:48Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
include (dirname(__FILE__) . '/common.php');
global $config;
$lang->arrow = '&nbsp;<i class="icon-angle-right"></i>&nbsp;';
$lang->colon = ': ';
$lang->hyphen = '-';
$lang->comma = ',';
$lang->dot = '.';
$lang->at = ' on ';
$lang->downArrow = '↓';
$lang->null = 'Null';
$lang->ellipsis = '…';
$lang->percent = '%';
$lang->dash = '-';
$lang->slash = '/';
$lang->and = 'and';
$lang->to = 'To';
$lang->zentaoPMS = 'ZenTao';
$lang->pmsName = 'ALM';
$lang->proName = 'Pro';
$lang->bizName = 'Biz';
$lang->maxName = 'Max';
$lang->liteName = 'Lite';
$lang->devopsPrefix = 'ZenTao DevOps Platform';
$lang->logoImg = 'zt-logo-en.png';
$lang->welcome = "%s Project Management System";
$lang->logout = 'Log out';
$lang->login = 'Log in';
$lang->help = 'Help';
$lang->aboutZenTao = 'About ZenTao';
$lang->ztWebsite = 'ZenTao Website';
$lang->profile = 'My Profile';
$lang->changePassword = 'Change Password';
$lang->unfoldMenu = 'Expand Sidebar';
$lang->collapseMenu = 'Collapse Sidebar';
$lang->preference = 'Preferences';
$lang->tutorialAB = 'Tutorial';
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>Time %s MS, Memory %s KB, Query %s. </div></div>";
$lang->agreement = "I have read and agreed to the terms and conditions. <strong class='ml-3'>Without authorization, I should not remove, hide or cover any logos/links of ZenTao.</strong>";
$lang->designedByAIUX = "<a href='https://api.zentao.net/goto.php?item=aiux' class='link-aiux listitem item-inner menu-item-inner state' target='_blank'><i class='icon icon-aiux item-icon'></i><div class='item-content text'>AIUX</div></a>";
$lang->bizVersion = '<a href="https://www.zentao.net/page/enterprise.html" target="_blank">Upgrade to Standard</a>';
$lang->bizVersionINT = '<a href="https://www.zentao.pm/page/vs.html" target="_blank">Upgrade to Standard</a>';
$lang->reset = 'Reset';
$lang->cancel = 'Cancel';
$lang->refresh = 'Refresh';
$lang->refreshIcon = "<i title='$lang->refresh' class='icon icon-refresh'></i>";
$lang->create = 'Create';
$lang->edit = 'Edit';
$lang->delete = 'Delete';
$lang->activate = 'Activate';
$lang->close = 'Close';
$lang->unlink = 'Remove';
$lang->import = 'Import';
$lang->export = 'Export';
$lang->setFileName = 'File name:';
$lang->submitting = 'Saving...';
$lang->save = 'Save';
$lang->confirm = 'Confirm';
$lang->preview = 'View';
$lang->goback = 'Back';
$lang->goPC = 'Desktop';
$lang->more = 'More';
$lang->moreLink = 'MORE';
$lang->day = 'days';
$lang->today = 'Today';
$lang->yesterday = 'Yesterday';
$lang->number = 'Items';
$lang->customConfig = 'Custom';
$lang->public = 'Public';
$lang->trunk = 'Trunk';
$lang->sort = 'Sort';
$lang->required = 'Required';
$lang->noData = 'No data';
$lang->noDesc = 'No description';
$lang->fullscreen = 'Full screen';
$lang->retrack = 'Collapse';
$lang->whitelist = 'Access whitelist';
$lang->whitelistNotNeed = 'Public objects don\'t need a whitelist.';
$lang->globalSetting = 'General';
$lang->waterfallModel = 'Waterfall';
$lang->scrumModel = 'Scrum';
$lang->agilePlusModel = 'Agile Plus';
$lang->waterfallPlusModel = 'Waterfall Plus';
$lang->all = 'All';
$lang->viewDetails = 'View Details';
$lang->childrenAB = 'Child';
$lang->branchName = 'Branch/Platform';
$lang->recommend = 'Recommend';
$lang->schedule = 'Calendar';
$lang->actions = 'Actions';
$lang->restore = 'Restore defaults';
$lang->confirmDraft = 'Restore unsaved %name%?';
$lang->resume = 'Restore';
$lang->comment = 'Note';
$lang->history = 'History';
$lang->attach = 'Attachments';
$lang->reverse = 'Reverse';
$lang->switchDisplay = 'Toggle view';
$lang->switchTo = 'Switch workspace';
$lang->expand = 'Expand all';
$lang->collapse = 'Collapse';
$lang->liteMode = 'Lite Mode';
$lang->fullMode = 'Full Mode';
$lang->showMoreInfo = 'Show more';
$lang->hideMoreInfo = 'Show less';
$lang->saveSuccess = 'Saved';
$lang->importSuccess = 'Imported';
$lang->fail = 'Failed';
$lang->addFiles = 'Uploaded';
$lang->delFiles = 'Deleted Files ';
$lang->deleteSuccess = 'Deleted';
$lang->deleted = 'Deleted';
$lang->files = 'Attachments';
$lang->pasteText = 'Bulk entry';
$lang->uploadImages = 'Bulk upload images';
$lang->uploadImagesTip = 'File names will be used as titles and images as content.';
$lang->timeout = 'Connection timed out. Check your network or try again.';
$lang->repairTable = 'Database table may be corrupted. Repair using phpMyAdmin or myisamchk.';
$lang->duplicate = 'A %s with this title already exists.';
$lang->ipLimited = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head><body>Your IP address is restricted. Contact your administrator for access.</body></html>";
$lang->unfold = '+';
$lang->fold = '-';
$lang->homepage = 'Set as homepage';
$lang->noviceTutorial = 'ZenTao Tutorial';
$lang->changeLog = 'Changelog';
$lang->manual = 'User Manual';
$lang->site = 'Site Manage';
$lang->customMenu = 'Custom Menu';
$lang->customField = 'Custom Fields';
$lang->lineNumber = 'Line Number';
$lang->tutorialConfirm = 'You are still in tutorial mode. Would you like to exit now?';
$lang->levelExceeded = 'The display limit has been exceeded. Please view on the desktop version or use the search function for more details.';
$lang->noticeOkFile = '<p class="font-bold mb-2">For security reasons, your admin identity must be confirmed.</p>
<p class="mb-2">Please log in to the server and create the <strong>%s</strong> file.</p>
<p class="mb-2">You can run this command: <code>echo "" > %s</code></p>
<p class="mb-2">Note:</p>
<ul class="mb-2 pl-4" style="list-style: decimal">
<li>Please keep the file empty.</li>
<li>If the file already exists, please delete it and recreate it.</li>
</ul>';
$lang->noticeDrag = 'Click or drag files here to upload. Maximum size: %s.';
$lang->allProgress = 'Progress';
$lang->hasReviewed = 'This content has already been reviewed. No further action is required.';
$lang->appNotFound = 'You do not have permission to access this application. Please check your permission settings.';
$lang->uploadFiles = 'Upload Files';
$lang->fieldDisplaySetting = 'Field display settings';
$lang->fieldSettingTip = 'The following fields are collapsed by default. Please click "Show more fields" to expand them, or use the pin icon to keep specific fields visible.';
$lang->serviceAgreement = "Terms of Service";
$lang->privacyPolicy = "Privacy Policy";
$lang->needAgreePrivacy = "Please read the Terms of Service and Privacy Policy first.";
$lang->iAgreedPrivacy = "I have read and agree";
$lang->inMaintenance = "The system is currently under maintenance.";
$lang->maintainReason = "Reason: %s";
$lang->systemMaintainer = "If you have any questions, please contact the administrator.";
$lang->unknown = "Unknown";
$lang->preShortcutKey = '[Shortcut: ←]';
$lang->nextShortcutKey = '[Shortcut: →]';
$lang->backShortcutKey = '[Shortcut: Alt+↑]';
$lang->shortcutOperation = 'Quick Actions';
$lang->select = 'Select';
$lang->selectAll = 'Select All';
$lang->cancelSelect = 'Deselect';
$lang->selectReverse = 'Invert selection';
$lang->loading = 'Loading...';
$lang->notFound = 'The item you are trying to access does not exist or has been removed.';
$lang->notPage = 'This feature is currently under development and will be available in a future update.';
$lang->showAll = '[[Show All]]';
$lang->selectedItems = '<strong>{0}</strong> item(s) selected';
$lang->noAssigned = 'Unassigned';
$lang->future = 'Pending';
$lang->year = 'year(s)';
$lang->month = 'month(s)';
$lang->hour = 'Hour';
$lang->minute = 'Minute';
$lang->second = 'Second';
$lang->workingHour = 'Working Hours';
$lang->idAB = 'ID';
$lang->priAB = 'Priority';
$lang->statusAB = 'Status';
$lang->openedByAB = 'Creator';
$lang->assignedToAB = 'Assignee';
$lang->typeAB = 'Type';
$lang->nameAB = 'Name';
$lang->code = 'Code';
$lang->pri = 'Priority';
$lang->delayed = 'Delayed';
$lang->contactUs = new stdClass();
$lang->contactUs->common = 'Please contact us if you need help.';
$lang->contactUs->phone = 'Phone';
$lang->contactUs->email = 'Email';
$lang->contactUs->qq = 'QQ';
$lang->contactUs->wechat = 'Wechat';
$lang->common->common = 'Common Module';
$lang->common->story = 'Story';
$lang->common->stories = 'Stories';
$lang->cache->common = 'Cache';
$lang->my->common = 'Dashboard';
$lang->todo->common = 'To-do';
$lang->block->common = 'Block';
$lang->program->common = 'Program';
$lang->product->common = $lang->productCommon;
$lang->project->common = $lang->projectCommon;
$lang->execution->common = 'Execution';
$lang->kanban->common = 'Kanban';
$lang->qa->common = 'Test';
$lang->devops->common = 'CI&CD';
$lang->devops->configure = 'Configuration';
$lang->devops->monitor = 'Monitoring';
$lang->doc->common = 'Document';
$lang->repo->common = 'Code';
$lang->repo->commit = 'Commit';
$lang->repo->tag = 'Tag';
$lang->repo->branch = 'Branch';
$lang->repo->codeRepo = 'Code Repository';
$lang->bi->common = 'Report';
$lang->screen->common = 'Screen';
$lang->pivot->common = 'Pivot Table';
$lang->chart->common = 'Chart';
$lang->metric->common = 'Metric';
$lang->report->common = 'Report';
$lang->system->common = 'Company';
$lang->admin->common = 'Admin';
$lang->epic->common = $lang->ERCommon;
$lang->story->common = $lang->SRCommon;
$lang->task->common = 'Task';
$lang->bug->common = 'Bug';
$lang->testcase->common = 'Test Case';
$lang->testtask->common = 'Test Request';
$lang->score->common = 'My Points';
$lang->build->common = 'Build';
$lang->testreport->common = 'Test Report';
$lang->automation->common = 'Automation';
$lang->autotest->common = 'Automation';
$lang->team->common = 'Team';
$lang->user->common = 'User';
$lang->custom->common = 'Custom';
$lang->custom->mode = 'Mode';
$lang->custom->flow = 'Workflow';
$lang->extension->common = 'Extension';
$lang->company->common = 'Company';
$lang->dept->common = 'Department';
$lang->upgrade->common = 'Upgrade';
$lang->editor->common = 'Editor';
$lang->program->list = 'Program List';
$lang->program->kanban = 'Program Kanban';
$lang->program->projectView = 'Project View';
$lang->program->productView = 'Product View';
$lang->design->common = 'Design';
$lang->design->HLDS = 'High-level Design';
$lang->design->DDS = 'Detailed Design';
$lang->design->DBDS = 'Database Design';
$lang->design->ADS = 'API Design';
$lang->stage->common = 'Phase';
$lang->stage->type = 'Phase Type';
$lang->stage->list = 'Phase List';
$lang->stage->percent = 'Workload Ratio';
$lang->execution->list = "{$lang->executionCommon} List";
$lang->execution->CFD = "Cumulative Flow Diagram";
$lang->kanban->common = 'Kanban';
$lang->backup->common = 'Backup';
$lang->action->trash = 'Trash';
$lang->app->common = 'Service';
$lang->app->store = 'App Store';
$lang->app->serverLink = 'Server Link';
$lang->review->common = 'Approval';
$lang->zahost->common = 'ZAhost';
$lang->zanode->common = 'ZAnode';
$lang->zanode->instruction = 'Instructions';
$lang->dimension->common = 'Dimension';
$lang->contact->common = 'Contacts';
$lang->space->common = 'Service Management';
$lang->store->common = 'App Store';
$lang->instance->common = 'Instance';
$lang->ai->common = 'AI';
$lang->aiapp->common = 'Agent';
$lang->product->system = 'Application';
$lang->configure->common = 'Configuration';
$lang->programstakeholder->common = 'Stakeholders';
$lang->featureswitch->common = 'Feature toggles';
$lang->importdata->common = 'Data import';
$lang->systemsetting->common = 'System settings';
$lang->staffmanage->common = 'User management';
$lang->featureconfig->common = 'Feature settings';
$lang->doctemplate->common = 'Document templates';
$lang->notifysetting->common = 'Notification settings';
$lang->bidesign->common = 'BI design';
$lang->personalsettings->common = 'Personal settings';
$lang->projectsettings->common = 'Settings';
$lang->dataaccess->common = 'Data Permissions';
$lang->executiongantt->common = 'Gantt chart';
$lang->executionkanban->common = 'Kanban';
$lang->executionburn->common = 'Burndown chart';
$lang->executioncfd->common = 'Cumulative Flow Diagram';
$lang->executionstory->common = 'Story';
$lang->executionqa->common = 'Test';
$lang->executionbuild->common = 'Build';
$lang->executionsettings->common = 'Settings';
$lang->generalcomment->common = 'Comments';
$lang->generalping->common = 'Keep-alive';
$lang->generaltemplate->common = 'Templates';
$lang->generaleffort->common = 'General logs';
$lang->productsettings->common = 'Product settings';
$lang->projectreview->common = 'Reviews';
$lang->projecttrack->common = 'Matrix';
$lang->projectqa->common = 'Test';
$lang->holidayseason->common = 'Holidays';
$lang->codereview->common = 'Issues';
$lang->repocode->common = 'Code';
$lang->deliverable->common = 'Deliverable';
$lang->projectDeliverable->common = 'Project deliverables';
$lang->executionDeliverable->common = 'Execution deliverables';
$lang->projectTemplate->common = 'Project templates';
$lang->personnel->common = 'Members';
$lang->personnel->invest = 'Allocated members';
$lang->personnel->accessible = 'Accessible members';
$lang->stakeholder->common = 'Stakeholders';
$lang->release->common = 'Release';
$lang->message->common = 'System Notification';
$lang->mail->common = 'Email';
$lang->my->shortCommon = 'Dashboard';
$lang->testcase->shortCommon = 'Test Case';
$lang->productplan->shortCommon = 'Plan';
$lang->score->shortCommon = 'Points';
$lang->testreport->shortCommon = 'Report';
$lang->qa->shortCommon = 'QA';
$lang->researchplan->common = 'Research';
$lang->workestimation->common = 'Estimation';
$lang->gapanalysis->common = 'Training';
$lang->executionview->common = 'View';
$lang->managespace->common = 'Space management';
$lang->systemteam->common = 'System team';
$lang->systemschedule->common = 'System calendar';
$lang->systemeffort->common = 'System effort';
$lang->systemdynamic->common = 'System activities';
$lang->systemcompany->common = 'Company';
$lang->pipeline->common = 'Pipelines';
$lang->devopssetting->common = 'Settings';
$lang->deployment->common = 'Host';
$lang->dashboard = 'Overview';
$lang->contribute = 'Contribution';
$lang->dynamic = 'Recents';
$lang->whitelist = 'Whitelist';
$lang->roadmap = 'Roadmap';
$lang->track = 'Matrix';
$lang->settings = 'Settings';
$lang->overview = 'Overview';
$lang->module = 'Modules';
$lang->priv = 'Permission';
$lang->other = 'Others';
$lang->estimation = 'Estimation';
$lang->measure = 'Metrics';
$lang->treeView = 'Tree View';
$lang->groupView = 'Group View';
$lang->executionKanban = 'Kanban';
$lang->burn = 'Burndown';
$lang->view = 'View';
$lang->intro = 'Introduction';
$lang->indexPage = 'Homepage';
$lang->model = 'Model';
$lang->redev = 'Custom Development';
$lang->browser = 'Browser';
$lang->db = 'Database';
$lang->langItem = 'Language Items';
$lang->api->doc = 'API Documentation';
$lang->database = 'Data Dictionary';
$lang->timezone = 'Time Zone';
$lang->security = 'Security';
$lang->calendar = 'Calendar';
$lang->my->work = 'My Work';
$lang->project->list = $lang->projectCommon . ' List';
$lang->project->kanban = $lang->projectCommon . ' Kanban';
$lang->execution->executionKanban = "{$lang->execution->common} Kanban";
$lang->execution->all = "{$lang->execution->common} List";
$lang->doc->recent = 'Recent documents';
$lang->doc->my = 'My documents';
$lang->doc->favorite = 'Favorites';
$lang->doc->product = $lang->productCommon;
$lang->doc->project = $lang->projectCommon;
$lang->doc->api = 'API Library';
$lang->doc->execution = $lang->execution->common;
$lang->doc->custom = 'Custom Library';
$lang->doc->wiki = 'Wiki';
$lang->doc->apiDoc = 'API Documentation';
$lang->doc->apiStruct = 'Data Structures';
$lang->doc->quick = 'Quick Access';
$lang->doc->mySpace = 'My Space';
$lang->doc->productSpace = "{$lang->productCommon} Space";
$lang->doc->projectSpace = "{$lang->projectCommon} Space";
$lang->doc->apiSpace = 'API Space';
$lang->doc->teamSpace = 'Team Space';
$lang->doc->template = 'Document Templates';
$lang->product->list = $lang->productCommon . ' List';
$lang->product->kanban = $lang->productCommon . ' Kanban';
$lang->project->report = 'Report';
$lang->report->weekly = 'Weekly Report';
$lang->report->notice = new stdclass();
$lang->report->notice->help = '<i class="icon icon-help text-warning text-xl mr-2"></i>Report data originates from your list page search results. Please conduct a search on the list page prior to report generation. Example: If you search for open stories, the report will perform statistics specifically on the resulting dataset.';
$lang->testcase->case = 'Test Case';
$lang->testcase->testsuite = 'Test Suite';
$lang->testcase->caselib = 'Case Library';
$lang->devops->compile = 'Pipelines';
$lang->devops->mr = 'Merge Requests';
$lang->devops->repo = 'Repositories';
$lang->devops->rules = 'Rules';
$lang->devops->settings = 'Merge Request Settings';
$lang->devops->platform = 'Platforms';
$lang->devops->set = 'Settings';
$lang->devops->environment = 'Environments';
$lang->devops->resource = 'Resources';
$lang->devops->dblist = 'Databases';
$lang->devops->domain = 'Domains';
$lang->devops->oss = 'Object Storage Service';
$lang->devops->host = 'Hosts';
$lang->devops->serverroom = 'Data Center';
$lang->devops->deploy = 'Deployments';
$lang->devops->provider = 'Service Provider';
$lang->devops->city = 'Location';
$lang->devops->os = 'OS Version';
$lang->devops->service = 'Services';
$lang->devops->platform = 'Platforms';
$lang->devops->components = 'Components';
$lang->admin->module = 'Feature Settings';
$lang->admin->system = 'System';
$lang->admin->entry = 'Integrations';
$lang->admin->data = 'Data';
$lang->admin->cron = 'Cron Job';
$lang->admin->buildIndex = 'Rebuild Index';
$lang->admin->tableEngine = 'Table Engine';
$lang->convert->importJira = 'Import Jira Data';
$lang->storyConcept = 'Story Concept';
$lang->defaultERName = 'Epic';
$lang->searchTips = '';
$lang->searchAB = 'Search';
/* Object list in search form. */
$lang->searchObjects['all'] = 'All';
$lang->searchObjects['bug'] = 'Bug';
$lang->searchObjects['story'] = $lang->SRCommon;
if($config->enableER) $lang->searchObjects['epic'] = $lang->ERCommon;
if($config->URAndSR) $lang->searchObjects['requirement'] = $lang->URCommon;
$lang->searchObjects['task'] = 'Task';
$lang->searchObjects['testcase'] = 'Case';
$lang->searchObjects['product'] = $lang->productCommon;
$lang->searchObjects['build'] = 'Build';
$lang->searchObjects['release'] = 'Release';
$lang->searchObjects['productplan'] = $lang->productCommon . ' Plan';
$lang->searchObjects['testtask'] = 'Test Request';
$lang->searchObjects['doc'] = 'Document';
$lang->searchObjects['caselib'] = 'Case Library';
$lang->searchObjects['testreport'] = 'Test Report';
$lang->searchObjects['program'] = 'Program';
$lang->searchObjects['project'] = $lang->projectCommon;
$lang->searchObjects['execution'] = $lang->execution->common;
$lang->searchObjects['user'] = 'User';
$lang->searchObjects['aiapp'] = 'AI';
$lang->searchTips = 'ID (ctrl+g)';
/* Code formats for import. */
$lang->importEncodeList['gbk'] = 'GBK';
$lang->importEncodeList['big5'] = 'BIG5';
$lang->importEncodeList['utf-8'] = 'UTF-8';
/* File type list for export. */
$lang->exportFileTypeList['csv'] = 'csv';
$lang->exportFileTypeList['xml'] = 'xml';
$lang->exportFileTypeList['html'] = 'html';
$lang->exportTypeList['all'] = 'All Data';
$lang->exportTypeList['selected'] = 'Selected Data';
$lang->visionList = array();
$lang->visionList['rnd'] = 'Full Feature Interface';
$lang->visionList['lite'] = 'Operations Interface';
$lang->createObjects['todo'] = 'To-Do';
$lang->createObjects['effort'] = 'Effort';
$lang->createObjects['bug'] = 'Bug';
$lang->createObjects['story'] = $lang->SRCommon;
$lang->createObjects['task'] = 'Task';
$lang->createObjects['testcase'] = 'Case';
$lang->createObjects['execution'] = $lang->execution->common;
$lang->createObjects['project'] = $lang->projectCommon;
$lang->createObjects['product'] = $lang->productCommon;
$lang->createObjects['program'] = 'Program';
$lang->createObjects['doc'] = 'Document';
$lang->createObjects['board'] = 'Whiteboard';
$lang->createObjects['kanbanspace'] = 'Space';
$lang->createObjects['kanban'] = 'Kanban';
/* Language. */
$lang->lang = 'Language';
$lang->setLang = 'Language Settings';
/* Theme style. */
$lang->theme = 'Theme';
$lang->themes['default'] = 'Classic Blue';
$lang->themes['blue'] = 'Blue';
$lang->themes['green'] = 'Green';
$lang->themes['red'] = 'Red';
$lang->themes['purple'] = 'Purple';
$lang->themes['blackberry'] = 'Blackberry';
/* Error info. */
$lang->error = new stdclass();
$lang->error->companyNotFound = "Company for domain %s not found.";
$lang->error->length = array("Length of 『%s』 should be 『%s』.", "Length of 『%s』 must be between 『%s』 and 『%s』.");
$lang->error->reg = "Format of 『%s』 is invalid. It should be: 『%s』.";
$lang->error->unique = "『%s』 already has a record for 『%s』. If deleted, restore it from Admin > System > Trash.";
$lang->error->repeat = "『%s』 already has a record for 『%s』.";
$lang->error->gt = "『%s』 must be greater than 『%s』.";
$lang->error->ge = "『%s』 must be greater than or equal to 『%s』.";
$lang->error->lt = "『%s』 must be less than 『%s』.";
$lang->error->le = "『%s』 must be less than or equal to 『%s』.";
$lang->error->in = "『%s』 must be one of 『%s』.";
$lang->error->notempty = "『%s』 cannot be empty.";
$lang->error->empty = "『%s』 must be empty.";
$lang->error->equal = "『%s』 must be 『%s』.";
$lang->error->int = array("『%s』 must be a number.", "『%s』 must be between 『%s』 and 『%s』.");
$lang->error->float = "『%s』 must be a number or decimal.";
$lang->error->email = "『%s』 must be a valid email.";
$lang->error->phone = "『%s』 must be a valid phone number.";
$lang->error->mobile = "『%s』 must be a valid mobile number.";
$lang->error->URL = "『%s』 must be a valid URL.";
$lang->error->date = "『%s』 must be a valid date.";
$lang->error->datetime = "『%s』 must be a valid date and time.";
$lang->error->code = "『%s』 must be alphanumeric.";
$lang->error->account = "『%s』 must be at least 3 characters and contain only letters, numbers, or underscores.";
$lang->error->passwordsame = "Passwords must match.";
$lang->error->passwordrule = "Password must be at least 6 characters long and meet the requirements.";
$lang->error->accessDenied = 'Access denied.';
$lang->error->unsupportedReq = 'Unsupported request type.';
$lang->error->pasteImg = 'Your browser does not support pasting images.';
$lang->error->noData = 'No data available.';
$lang->error->editedByOther = 'This record may have been modified by someone else. Please refresh the page and try again.';
$lang->error->tutorialData = 'Data cannot be inserted in tutorial mode. Please exit tutorial mode first.';
$lang->error->noCurlExt = 'The server does not have the Curl module installed.';
$lang->error->loginTimeout = 'Session timed out. Please log in again.';
$lang->error->httpServerError = 'Server error.';
/* Page info. */
$lang->pager = new stdclass();
$lang->pager->noRecord = "No records found.";
$lang->pager->digest = "Total: <strong>%s</strong> item(s), %s <strong>%s/%s</strong> &nbsp;";
$lang->pager->recPerPage = "<strong>%s</strong> per page";
$lang->pager->first = "<i class='icon-step-backward' title='First Page'></i>";
$lang->pager->pre = "<i class='icon-play icon-flip-horizontal' title='Previous Page'></i>";
$lang->pager->next = "<i class='icon-play' title='Next Page'></i>";
$lang->pager->last = "<i class='icon-step-forward' title='Last Page'></i>";
$lang->pager->locate = "Go";
$lang->pager->previousPage = "Previous";
$lang->pager->nextPage = "Next";
$lang->pager->summery = "<strong>%s-%s</strong> of <strong>%s</strong> items";
$lang->pager->pageOfText = "Page {0}";
$lang->pager->firstPage = "First";
$lang->pager->lastPage = "Last";
$lang->pager->goto = "Go to";
$lang->pager->pageOf = "Page <strong>{page}</strong>";
$lang->pager->totalPage = "<strong>{totalPage}</strong> pages";
$lang->pager->totalCount = "Total: <strong>{recTotal}</strong> item(s)";
$lang->pager->pageSize = "<strong>{recPerPage}</strong> per page";
$lang->pager->itemsRange = "Items <strong>{start}</strong> - <strong>{end}</strong>";
$lang->pager->pageOfTotal = "Page <strong>{page}</strong> of <strong>{totalPage}</strong>";
$lang->pager->totalCountAB = "{recTotal} item(s)";
$lang->pager->pageSizeAB = "{recPerPage} per page";
$lang->pager->shortPageSize = '<strong>{recPerPage}</strong> / Page';
$lang->colorPicker = new stdclass();
$lang->colorPicker->errorTip = 'Invalid color value.';
$lang->downNotify = "Download Desktop Notifier";
$lang->clientName = "ZenTao IM";
$lang->downloadClient = "Download ZenTao IM";
$lang->downloadMobile = "Download mobile app";
$lang->clientHelp = "ZenTao IM User Guide";
$lang->clientHelpLink = "https://www.zentao.pm/book/zentaomanual/scrum-tool-im-integration-206.html";
$lang->website = "https://www.zentao.pm";
$lang->suhosinInfo = "Warning: Data limit exceeded. Please modify <font color=red>suhosin.post.max_vars</font> and <font color=red>suhosin.request.max_vars</font> (to a value > %s) in php.ini. Save and restart Apache or php-fpm, or some data may not be saved.";
$lang->maxVarsInfo = "Warning: Data limit exceeded. Please modify <font color=red>max_input_vars</font> (to a value > %s) in php.ini. Save and restart Apache or php-fpm, or some data may not be saved.";
$lang->pasteTextInfo = "Paste text here. Each line will become a separate title.";
$lang->noticeImport = "The imported file contains existing data. Please choose whether to overwrite it or insert it as new records.";
$lang->importConfirm = "Confirm Import";
$lang->importAndCover = "Overwrite";
$lang->importAndInsert = "Insert as new";
$lang->noResultsMatch = "No results found.";
$lang->searchMore = "More results for this keyword:";
$lang->chooseUsersToMail = "Select users to notify. ";
$lang->noticePasteImg = "You can paste images directly into the editor.";
$lang->pasteImgFail = "Failed to paste image. Please try again later.";
$lang->pasteImgUploading = "Uploading image, please wait...";
/* Work visions. */
$lang->visionTips = "You can switch vision here";
$lang->IKnow = "Got it";
$lang->switchVision = 'Switch to vision';
$lang->workspaceAbbr = 'Space';
$lang->switchWorkspace = 'Switch to workspace';
$lang->enterWorkspace = 'Enter space';
$lang->exitWorkspace = 'Exit space';
/* Workspace list. */
$lang->workspaceList = [];
$lang->workspaceList['product'] = "{$lang->product->common} space";
$lang->workspaceList['project'] = "{$lang->project->common} space";
$lang->workspaceList['execution'] = "{$lang->execution->common} space";
/* Time formats settings. */
if(!defined('DT_DATETIME1')) define('DT_DATETIME1', 'Y-m-d H:i:s');
if(!defined('DT_DATETIME2')) define('DT_DATETIME2', 'y-m-d H:i');
if(!defined('DT_MONTHTIME1')) define('DT_MONTHTIME1', 'n/d H:i');
if(!defined('DT_MONTHTIME2')) define('DT_MONTHTIME2', 'n/d H:i');
if(!defined('DT_DATE1')) define('DT_DATE1', 'Y-m-d');
if(!defined('DT_DATE2')) define('DT_DATE2', 'Ymd');
if(!defined('DT_DATE3')) define('DT_DATE3', 'Y/m/d');
if(!defined('DT_DATE4')) define('DT_DATE4', 'M d');
if(!defined('DT_DATE5')) define('DT_DATE5', 'j/n');
if(!defined('DT_TIME1')) define('DT_TIME1', 'H:i:s');
if(!defined('DT_TIME2')) define('DT_TIME2', 'H:i');
/* Datepicker. */
$lang->datepicker = new stdclass();
$lang->datepicker->dpText = new stdclass();
$lang->datepicker->dpText->TEXT_OR = 'or ';
$lang->datepicker->dpText->TEXT_PREV_YEAR = 'Last Year';
$lang->datepicker->dpText->TEXT_PREV_MONTH = 'Last Month';
$lang->datepicker->dpText->TEXT_PREV_WEEK = 'Last Week';
$lang->datepicker->dpText->TEXT_YESTERDAY = 'Yesterday';
$lang->datepicker->dpText->TEXT_THIS_MONTH = 'This Month';
$lang->datepicker->dpText->TEXT_THIS_WEEK = 'This Week';
$lang->datepicker->dpText->TEXT_TODAY = 'Today';
$lang->datepicker->dpText->TEXT_NEXT_YEAR = 'Next Year';
$lang->datepicker->dpText->TEXT_NEXT_MONTH = 'Next Month';
$lang->datepicker->dpText->TEXT_NEXT_WEEK = 'Next Week';
$lang->datepicker->dpText->TEXT_CLOSE = 'Close';
$lang->datepicker->dpText->TEXT_DATE = 'Date';
$lang->datepicker->dpText->TEXT_CHOOSE_DATE = 'Select date';
$lang->datepicker->dayNames = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
$lang->datepicker->abbrDayNames = array('Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat');
$lang->datepicker->monthNames = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
/* AI */
$lang->aiapp->conversation = 'Conversation';
$lang->aiapp->zentaoAgent = 'ZenTao Agent';
$lang->aiapp->generalAgent = 'General Agent';
$lang->aiapp->models = 'Models';
$lang->aiapp->config = 'ZAI Settings';
include (dirname(__FILE__) . '/menu.php');

View file

@ -0,0 +1,56 @@
<?php
/**
* The company module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 4714 2013-05-02 08:10:58Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->company->common = 'Company';
$lang->company->index = "Company Homepage";
$lang->company->create = "Add Company";
$lang->company->edit = "Edit Company";
$lang->company->view = "Company Info";
$lang->company->browse = "User List";
$lang->company->dynamic = "Recents";
$lang->company->orgView = 'View';
$lang->company->id = 'ID';
$lang->company->name = 'Company Name';
$lang->company->phone = 'Phone';
$lang->company->fax = 'Fax';
$lang->company->address = 'Mailing Address';
$lang->company->zipcode = 'Zip Code';
$lang->company->website = 'Website';
$lang->company->backyard = 'Intranet';
$lang->company->guest = 'Login as Guest';
$lang->company->admins = 'Administrator';
$lang->company->deleted = 'Deleted';
$lang->company->manageRole = 'Role Settings';
$lang->company->product = $lang->productCommon;
$lang->company->project = $lang->projectCommon;
$lang->company->execution = $lang->executionCommon;
$lang->company->user = 'User';
$lang->company->empty = 'No recent activity.';
$lang->company->guestOptions[0] = 'Enable';
$lang->company->guestOptions[1] = 'Disable';
$lang->company->order['date_desc'] = 'Descending';
$lang->company->order['date_asc'] = 'Ascending';
$lang->company->featureBar['dynamic']['all'] = 'All';
$lang->company->featureBar['dynamic']['today'] = 'Today';
$lang->company->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->company->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->company->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->company->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->company->featureBar['dynamic']['lastMonth'] = 'Last Month';
$lang->company->featureBar['browse']['inside'] = 'Internal Users';
$lang->company->featureBar['browse']['outside'] = 'External Users';

View file

@ -0,0 +1,40 @@
<?php
$lang->compile->common = 'Compile';
$lang->compile->browse = 'History';
$lang->compile->logs = 'Log';
$lang->compile->syncCompile = 'Interface: Sync Compiles.';
$lang->compile->id = 'ID';
$lang->compile->name = 'Name';
$lang->compile->buildType = 'Engine';
$lang->compile->status = 'Status';
$lang->compile->time = 'Time';
$lang->compile->result = 'Result';
$lang->compile->refresh = 'Refresh';
$lang->compile->job = 'Job';
$lang->compile->queue = 'Queue';
$lang->compile->atTime = 'Execution Time';
$lang->compile->testtask = 'Testtask';
$lang->compile->tag = 'Tag';
$lang->compile->times = 'Times';
$lang->compile->repo = 'Repo';
$lang->compile->createdBy = 'Creator';
$lang->compile->createdDate = 'Created Date';
$lang->compile->updateDate = 'Update Date';
$lang->compile->deleted = 'Deleted';
$lang->compile->statusList['success'] = 'Done';
$lang->compile->statusList['failure'] = 'Failed';
$lang->compile->statusList['created'] = 'Waiting';
$lang->compile->statusList['pending'] = 'Pending';
$lang->compile->statusList['running'] = 'Running';
$lang->compile->statusList['building'] = 'Building';
$lang->compile->statusList['create_fail'] = 'Failed to create';
$lang->compile->statusList['timeout'] = 'Timeout';
$lang->compile->statusList['canceled'] = 'Canceled';
$lang->compile->statusList['failed'] = 'Build failed';
$lang->compile->statusList['error'] = 'Failed';
$lang->compile->statusList['skipped'] = 'Skipped';
$lang->compile->featureBar['browse']['job'] = 'List';
$lang->compile->featureBar['browse']['compile'] = 'History';

261
module/convert/lang/ru.php Normal file
View file

@ -0,0 +1,261 @@
<?php
/**
* The convert module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package convert
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->convert->common = 'Imported';
$lang->convert->index = 'Homepage';
$lang->convert->start = 'Start';
$lang->convert->desc = <<<EOT
<p>Welcome to the System Migration Wizard. This tool will assist you in migrating data from external systems into the ZenTao.</p>
<strong>Data migration involves potential risks. Before proceeding, we strongly recommend backing up your database and associated data files. Please also ensure that no other users are performing operations on the system during the migration process</strong>
EOT;
$lang->convert->setConfig = 'Source System Config';
$lang->convert->setBugfree = 'Bugfree Config';
$lang->convert->setRedmine = 'Redmine Config';
$lang->convert->checkBugFree = 'Check Bugfree';
$lang->convert->checkRedmine = 'Check Redmine';
$lang->convert->convertRedmine = 'Migrate from Redmine';
$lang->convert->convertBugFree = 'Migrate from BugFree';
$lang->convert->selectSource = 'Select source system and its version.';
$lang->convert->mustSelectSource = "A source system is required.";
$lang->convert->direction = "Migrate {$lang->executionCommon} Issue";
$lang->convert->questionTypeOfRedmine = 'Issue Type in Redmine';
$lang->convert->aimTypeOfZentao = 'Issue Type in ZenTao';
$lang->convert->jiraUserMode = array();
$lang->convert->jiraUserMode['account'] = 'Use Jira Account';
$lang->convert->jiraUserMode['email'] = 'Use Jira Email';
$lang->convert->confluenceUserMode = array();
$lang->convert->confluenceUserMode['account'] = 'Use Confluence Account';
$lang->convert->confluenceUserMode['email'] = 'Use Confluence Email';
$lang->convert->directionList['bug'] = 'Bug';
$lang->convert->directionList['task'] = 'Task';
$lang->convert->directionList['story'] = $lang->SRCommon;
$lang->convert->sourceList['BugFree'] = array('bugfree_1' => '1.x', 'bugfree_2' => '2.x');
$lang->convert->sourceList['Redmine'] = array('Redmine_1.1' => '1.1');
$lang->convert->setting = 'Settings';
$lang->convert->checkConfig = 'Check Configs';
$lang->convert->add = 'Add';
$lang->convert->title = 'Title';
$lang->convert->ok = '<span class="text-success"><i class="icon-check-sign"></i> Pass </span>';
$lang->convert->fail = '<span class="text-danger"><i class="icon-remove-sign"></i> Failed</span>';
$lang->convert->dbHost = 'Database Server';
$lang->convert->dbPort = 'Server Port';
$lang->convert->dbUser = 'Database User Name';
$lang->convert->dbPassword = 'Database Password';
$lang->convert->dbName = '%s Database';
$lang->convert->dbCharset = '%s Database Coding';
$lang->convert->dbPrefix = '%s Table Prefix';
$lang->convert->installPath = '%s Installation Root Directory';
$lang->convert->checkDB = 'Database';
$lang->convert->checkTable = 'Table';
$lang->convert->checkPath = 'Installation Path';
$lang->convert->execute = 'Start Migration';
$lang->convert->item = 'Items';
$lang->convert->count = 'Count';
$lang->convert->info = 'Details';
$lang->convert->bugfree = new stdclass();
$lang->convert->bugfree->users = 'User';
$lang->convert->bugfree->executions = $lang->executionCommon;
$lang->convert->bugfree->modules = 'Module';
$lang->convert->bugfree->bugs = 'Bug';
$lang->convert->bugfree->cases = 'Test Case';
$lang->convert->bugfree->results = 'Test Result';
$lang->convert->bugfree->actions = 'History';
$lang->convert->bugfree->files = 'Attachments';
$lang->convert->redmine = new stdclass();
$lang->convert->redmine->users = 'User';
$lang->convert->redmine->groups = 'User Group';
$lang->convert->redmine->products = $lang->productCommon;
$lang->convert->redmine->executions = $lang->executionCommon;
$lang->convert->redmine->stories = 'Story';
$lang->convert->redmine->tasks = 'Task';
$lang->convert->redmine->bugs = 'Bug';
$lang->convert->redmine->productPlans = $lang->productCommon . 'Plan';
$lang->convert->redmine->teams = 'Team';
$lang->convert->redmine->releases = 'Release';
$lang->convert->redmine->builds = 'Build';
$lang->convert->redmine->docLibs = 'Doc Lib';
$lang->convert->redmine->docs = 'Docs';
$lang->convert->redmine->files = 'Attachments';
$lang->convert->errorFileNotExits = 'File %s is not found.';
$lang->convert->errorUserExists = 'User %s already exists.';
$lang->convert->errorGroupExists = 'Group %s already exists.';
$lang->convert->errorBuildExists = 'Build %s already exists.';
$lang->convert->errorReleaseExists = 'Release %s already exists.';
$lang->convert->errorCopyFailed = 'Failed to copy file %s.';
$lang->convert->importFailed = 'Migration failed.';
$lang->convert->setParam = 'Please set the migration match items.';
$lang->convert->statusType = new stdclass();
$lang->convert->priType = new stdclass();
$lang->convert->aimType = 'Issue Types';
$lang->convert->statusType->bug = 'Status Type (Bug Status)';
$lang->convert->statusType->story = 'Status Type (Story Status)';
$lang->convert->statusType->task = 'Status Type (Task Status)';
$lang->convert->priType->bug = 'Priority Type (Bug Status)';
$lang->convert->priType->story = 'Priority Type (Story Status)';
$lang->convert->priType->task = 'Priority Type (Task Status)';
$lang->convert->issue = new stdclass();
$lang->convert->issue->redmine = 'Redmine';
$lang->convert->issue->zentao = 'ZenTao';
$lang->convert->issue->goto = 'Map To';
$lang->convert->jira = new stdclass();
$lang->convert->jira->method = 'Select Migration Method';
$lang->convert->jira->back = 'Back';
$lang->convert->jira->next = 'Next';
$lang->convert->jira->importFromDB = 'Database Import';
$lang->convert->jira->importFromFile = 'File Import';
$lang->convert->jira->importFromAPI = 'API Import';
$lang->convert->jira->mapJira2Zentao = 'Map Jira To Zentao';
$lang->convert->jira->database = 'Jira Database';
$lang->convert->jira->domain = 'Jira Domain';
$lang->convert->jira->admin = 'Jira Admin Account';
$lang->convert->jira->token = 'Jira Password/Token';
$lang->convert->jira->apiToken = 'Jira Token';
$lang->convert->jira->dbNameNotice = "Please enter the Jira database name.";
$lang->convert->jira->importNotice = 'Warning: Data import carries risks. Please ensure the following steps are completed in sequence before merging.';
$lang->convert->jira->accountNotice = 'For email accounts, the text before the "@" symbol will be used as the username. Characters exceeding the 30-character limit will be truncated.';
$lang->convert->jira->userExceeds = 'The current system license limit is %s users. Please verify that the total user count after import does not exceed this limit, as the import process will be aborted if it does.';
$lang->convert->jira->apiError = 'Unable to connect to the Jira API. Please verify your Jira domain, username, and API Token.';
$lang->convert->jira->dbDesc = 'Best for self-hosted Jira instances (Server or Data Center) with database access.';
$lang->convert->jira->fileDesc = 'Best for Jira Cloud or when database access is restricted.';
$lang->convert->jira->apiDesc = 'Best for Jira Cloud or when you cannot access the database and server files.';
$lang->convert->jira->jiraObject = 'Jira Issues';
$lang->convert->jira->zentaoObject = 'ZenTao Objects';
$lang->convert->jira->jiraLinkType = 'Jira Relations';
$lang->convert->jira->zentaoLinkType = 'ZenTao Relations';
$lang->convert->jira->jiraResolution = 'Jira Resolution';
$lang->convert->jira->zentaoResolution = 'Zentao Resolution';
$lang->convert->jira->zentaoReason = 'Zentao Story Closed Reason';
$lang->convert->jira->jiraStatus = 'Jira Issues Status';
$lang->convert->jira->storyStatus = 'Zentao Story Status';
$lang->convert->jira->storyStage = 'Zentao Story Phase';
$lang->convert->jira->bugStatus = 'Zentao Bug Status';
$lang->convert->jira->taskStatus = 'Zentao Task Status';
$lang->convert->jira->objectField = 'Field mapping';
$lang->convert->jira->objectStatus = 'Status mapping';
$lang->convert->jira->objectAction = 'Action mapping';
$lang->convert->jira->objectResolution = 'Resolution mapping';
$lang->convert->jira->jiraField = 'Jira %s Field';
$lang->convert->jira->jiraStatus = 'Jira %s Status';
$lang->convert->jira->jiraAction = 'Jira %s Action';
$lang->convert->jira->jiraResolution = 'Jira %s Resolution';
$lang->convert->jira->zentaoField = 'Zentao %s Field';
$lang->convert->jira->zentaoStatus = 'Zentao %s Status';
$lang->convert->jira->zentaoStage = 'Zentao %s Phase';
$lang->convert->jira->zentaoAction = 'Zentao %s Action';
$lang->convert->jira->zentaoReason = 'Zentao %s Closure Reason';
$lang->convert->jira->zentaoResolution = 'Zentao %s Resolution';
$lang->convert->jira->initJiraUser = 'Set Jira Users';
$lang->convert->jira->importJira = 'Select Import Method';
$lang->convert->jira->start = 'Start Migration';
$lang->convert->jira->dbNameEmpty = 'Jira database name is required.';
$lang->convert->jira->invalidDB = 'Invalid database name.';
$lang->convert->jira->invalidTable = 'This database is not a Jira database.';
$lang->convert->jira->notReadAndWrite = 'Directory not found or access denied. Please create %s with read/write access.';
$lang->convert->jira->notExistEntities = 'The %s file does not exist.';
$lang->convert->jira->passwordNotice = 'Set the default password for users migrated to ZenTao. Users can later update their passwords within ZenTao.';
$lang->convert->jira->groupNotice = 'Set the default permission group for users migrated to ZenTao.';
$lang->convert->jira->mapObjectNotice = 'When defining field mappings, if “Create as a new workflow” is selected, a new workflow object will be automatically created upon import.';
$lang->convert->jira->mapFieldNotice = 'Built-in Jira fields have been matched automatically. Please define mappings for custom fields. If “Create new” is selected, new fields will be created upon import; any unmapped fields will not be imported.';
$lang->convert->jira->mapStatusNotice = 'When defining status mappings, any unmapped statuses will be automatically mapped to %s after migration.';
$lang->convert->jira->mapReasonNotice = 'When defining resolution mappings, selecting “Create new” will generate new resolution entries upon migration. Any unmapped resolutions will default to “Done.”';
$lang->convert->jira->mapRelationNotice = 'When defining relationship mappings, selecting “Create new” will automatically create new link types upon import. Any unmapped relationships will not be imported.';
$lang->convert->jira->changeItems = "Updated %s — previous value: “%s”, new value: “%s.”";
$lang->convert->jira->passwordDifferent = 'Passwords do not match.';
$lang->convert->jira->passwordEmpty = 'Password cannot be empty.';
$lang->convert->jira->passwordLess = 'Password must be at least six characters long.';
$lang->convert->jira->importSuccessfully = 'Jira migration completed.';
$lang->convert->jira->importResult = "Imported <strong class='text-danger'>%s</strong> data entries, processed <strong class='%s count'>%s</strong> records.";
$lang->convert->jira->importing = 'Data import in progress — please do not navigate away from this page.';
$lang->convert->jira->importingAB = 'Migrating data...';
$lang->convert->jira->imported = 'Data migration completed.';
$lang->convert->jira->restore = 'The previous migration was not completed. Would you like to continue from where you left off?';
$lang->convert->jira->zentaoObjectList[''] = '';
$lang->convert->jira->zentaoObjectList['epic'] = 'Epic';
$lang->convert->jira->zentaoObjectList['requirement'] = 'Feature';
$lang->convert->jira->zentaoObjectList['story'] = 'Story';
$lang->convert->jira->zentaoObjectList['task'] = 'Task';
$lang->convert->jira->zentaoObjectList['testcase'] = 'Test Case';
$lang->convert->jira->zentaoObjectList['bug'] = 'Bug';
$lang->convert->jira->zentaoLinkTypeList['subTaskLink'] = 'Parent-Child Task';
$lang->convert->jira->zentaoLinkTypeList['subStoryLink'] = 'Parent-Child Story';
$lang->convert->jira->zentaoLinkTypeList['duplicate'] = 'Duplicate';
$lang->convert->jira->zentaoLinkTypeList['relates'] = 'Mutual Relationship';
$lang->convert->jira->steps['object'] = 'Object Mapping';
$lang->convert->jira->steps['objectData'] = 'Object Data Mapping';
$lang->convert->jira->steps['relation'] = 'Global Relationship Mapping';
$lang->convert->jira->steps['user'] = 'Migrate Jira User';
$lang->convert->jira->steps['confirme'] = 'Migration Data Confirmation';
$lang->convert->jira->importSteps['db'][1] = 'Back up both ZenTao and Jira databases.';
$lang->convert->jira->importSteps['db'][2] = 'Avoid using ZenTao during the import to prevent server performance issues. Ensure no other users are active on the system during the process.';
$lang->convert->jira->importSteps['db'][3] = 'Import the Jira database into the MySQL instance used by ZenTao, and assign it a different name from the ZenTao database.';
$lang->convert->jira->importSteps['db'][4] = "Place the Jira attachment directory <strong class='text-danger'>attachments</strong> under <strong class='text-danger'>%s</strong>, and ensure that the ZenTao server has sufficient disk space.";
$lang->convert->jira->importSteps['db'][5] = "After completing the above steps, please enter the name of the Jira database to proceed.";
$lang->convert->jira->importSteps['file'][1] = 'Back up the ZenTao database and Jira files.';
$lang->convert->jira->importSteps['file'][2] = 'Avoid using ZenTao during the import to prevent server performance issues. Ensure no other users are active on the system during the process.';
$lang->convert->jira->importSteps['file'][3] = "Place the Jira backup file <strong class='text-danger'>entities.xml</strong> in <strong class='text-danger'>%s</strong> and grant read/write permissions to that directory.";
$lang->convert->jira->importSteps['file'][4] = "Place the Jira attachment directory <strong class='text-danger'>attachments</strong> under <strong class='text-danger'>%s</strong>, and ensure that the ZenTao server has sufficient disk space.";
$lang->convert->jira->importSteps['file'][5] = "Please enter your current Jira domain, admin account, and password/token to ensure data integrity.";
$lang->convert->jira->importSteps['file'][6] = "Click Next after completing the steps above.";
$lang->convert->jira->importSteps['api'][1] = 'Backup ZenTao database.';
$lang->convert->jira->importSteps['api'][2] = 'Avoid using ZenTao during the import to prevent server performance issues. Ensure no other users are active on the system during the process.';
$lang->convert->jira->importSteps['api'][3] = 'Enter the domain name, administrator account, password/Token of the current Jira environment.';
$lang->convert->jira->importSteps['api'][4] = "After the above steps are completed, click Next.";
$lang->convert->jira->objectList['user'] = 'User';
$lang->convert->jira->objectList['project'] = 'Project';
$lang->convert->jira->objectList['issue'] = 'Issue';
$lang->convert->jira->objectList['build'] = 'Build';
$lang->convert->jira->objectList['issuelink'] = 'Relationship';
$lang->convert->jira->objectList['worklog'] = 'Working Log';
$lang->convert->jira->objectList['action'] = 'Comment';
$lang->convert->jira->objectList['changeitem'] = 'Change History';
$lang->convert->jira->objectList['file'] = 'File';
$lang->convert->jira->buildinFields = array();
$lang->convert->jira->buildinFields['summary'] = array('name'=> 'Title', 'jiraField' => 'summary', 'control' => 'input', 'optionType' => 'custom', 'type' => 'varchar', 'length' => '255', 'buildin' => false);
$lang->convert->jira->buildinFields['pri'] = array('name'=> 'Priority', 'jiraField' => 'priority', 'control' => 'select', 'optionType' => 'custom', 'type' => 'int', 'length' => '3', 'buildin' => false);
$lang->convert->jira->buildinFields['resolution'] = array('name'=> 'Resolution', 'jiraField' => 'resolution', 'control' => 'select', 'optionType' => 'custom', 'type' => 'varchar', 'length' => '255', 'buildin' => false);
$lang->convert->jira->buildinFields['reporter'] = array('name'=> 'Reporter', 'jiraField' => 'reporter', 'control' => 'select', 'optionType' => 'user', 'type' => 'varchar', 'length' => '255');
$lang->convert->jira->buildinFields['duedate'] = array('name'=> 'Due Date', 'jiraField' => 'duedate', 'control' => 'date', 'optionType' => 'custom', 'type' => 'date', 'length' => '0', 'buildin' => false);
$lang->convert->jira->buildinFields['resolutiondate'] = array('name'=> 'Resolution Date', 'jiraField' => 'resolutiondate', 'control' => 'datetime', 'optionType' => 'custom', 'type' => 'datetime', 'length' => '0', 'buildin' => false);
$lang->convert->jira->buildinFields['votes'] = array('name'=> 'Votes', 'jiraField' => 'votes', 'control' => 'integer', 'optionType' => 'custom', 'type' => 'int', 'length' => '6');
$lang->convert->jira->buildinFields['environment'] = array('name'=> 'Environment', 'jiraField' => 'environment', 'control' => 'textarea', 'optionType' => 'custom', 'type' => 'text', 'length' => '0');
$lang->convert->jira->buildinFields['timeoriginalestimate'] = array('name'=> 'Estimated', 'jiraField' => 'timeoriginalestimate', 'control' => 'decimal', 'optionType' => 'custom', 'type' => 'decimal', 'length' => '0');
$lang->convert->jira->buildinFields['timespent'] = array('name'=> 'Cost', 'jiraField' => 'timespent', 'control' => 'decimal', 'optionType' => 'custom', 'type' => 'decimal', 'length' => '0');
$lang->convert->jira->buildinFields['desc'] = array('name'=> 'Description', 'jiraField' => 'description', 'control' => 'richtext', 'optionType' => 'custom', 'type' => 'mediumtext', 'length' => '0', 'buildin' => false);

58
module/cron/lang/ru.php Normal file
View file

@ -0,0 +1,58 @@
<?php
$lang->cron->common = 'Scheduled Task';
$lang->cron->id = 'ID';
$lang->cron->buildin = 'Built-in';
$lang->cron->index = 'Scheduled Task List';
$lang->cron->list = ' Task List';
$lang->cron->create = 'Create';
$lang->cron->createAction = 'Create Task';
$lang->cron->edit = 'Edit Task';
$lang->cron->delete = 'Delete Task';
$lang->cron->toggle = 'Activate/Deactivate';
$lang->cron->turnon = 'On/Off';
$lang->cron->openProcess = 'Restart';
$lang->cron->restart = 'Restart Scheduled Task';
$lang->cron->m = 'Minute';
$lang->cron->h = 'Hour';
$lang->cron->dom = 'Day';
$lang->cron->mon = 'Month';
$lang->cron->dow = 'Week';
$lang->cron->command = 'Command';
$lang->cron->status = 'Status';
$lang->cron->type = 'Task Type';
$lang->cron->remark = 'Comment';
$lang->cron->lastTime = 'Last Run';
$lang->cron->turnonList['1'] = 'On';
$lang->cron->turnonList['0'] = 'Off';
$lang->cron->statusList['normal'] = 'Active';
$lang->cron->statusList['running'] = 'Running';
$lang->cron->statusList['stop'] = 'Stopped';
$lang->cron->typeList['zentao'] = 'ZenTao Self Call';
global $config;
if($config->features->cronSystemCall) $lang->cron->typeList['system'] = 'System Command';
$lang->cron->toggleList['start'] = 'Enable';
$lang->cron->toggleList['stop'] = 'Disable';
$lang->cron->confirmDelete = 'Are you sure you want to delete the scheduled task?';
$lang->cron->confirmTurnon = 'Are you sure you want to turn off the scheduled task?';
$lang->cron->introduction = <<<EOD
<p>Scheduled Task is set to do scheduled actions such as update burndown chart, backup, etc.</p>
EOD;
$lang->cron->confirmOpen = <<<EOD
<p>Do you want to turn it on?<a href="%s"><strong>Turn On Scheduled Task<strong></a></p>
EOD;
$lang->cron->notice = new stdclass();
$lang->cron->notice->m = 'Range:0-59,"*" means the numbers within the range, "/" means "per", "-" means the range.';
$lang->cron->notice->h = 'Range:0-23';
$lang->cron->notice->dom = 'Range:1-31';
$lang->cron->notice->mon = 'Range:1-12';
$lang->cron->notice->dow = 'Range:0-6';
$lang->cron->notice->help = 'Note: If the server is restarted or you notice that scheduled tasks are not running properly, it means the scheduler has stopped. You need to manually click the Restart button, or refresh the page after one minute, to resume the scheduled tasks. If the “Last Run” of the first record in the task list changes, it indicates that the scheduler has started successfully.';
$lang->cron->notice->errorRule = '"%s" is not a valid value.';
$lang->cron->notice->errorType = 'Cannot create a scheduled task of the “Operating System Command” type.';

376
module/custom/lang/ru.php Normal file
View file

@ -0,0 +1,376 @@
<?php
global $config;
$lang->custom->common = 'Custom';
$lang->custom->id = 'ID';
$lang->custom->set = 'Custom Settings';
$lang->custom->restore = 'Reset';
$lang->custom->key = 'Key';
$lang->custom->value = 'Value';
$lang->custom->working = 'Mode';
$lang->custom->hours = 'Working Hours';
$lang->custom->select = 'Please select a process: ';
$lang->custom->branch = 'Multi-Branch';
$lang->custom->owner = 'Owner';
$lang->custom->module = 'Module';
$lang->custom->section = 'Additional Section';
$lang->custom->lang = 'Language';
$lang->custom->setPublic = 'Set asa Public';
$lang->custom->required = 'Required Field';
$lang->custom->score = 'Points';
$lang->custom->timezone = 'Timezone';
$lang->custom->scoreReset = 'Reset Points';
$lang->custom->scoreTitle = 'Points Feature';
$lang->custom->productName = $lang->productCommon;
$lang->custom->convertFactor = 'Conversion Factor';
$lang->custom->region = 'Range';
$lang->custom->tips = 'Prompt: ';
$lang->custom->setTips = 'Set Prompt Text';
$lang->custom->isRange = 'Within Target Range';
$lang->custom->concept = "{$lang->projectCommon} Concept";
$lang->custom->URStory = "Feature";
$lang->custom->SRStory = "Story";
$lang->custom->default = "Default";
$lang->custom->scrumStory = "Story";
$lang->custom->waterfallCommon = "Waterfall";
$lang->custom->buildin = "Built-in";
$lang->custom->editStoryConcept = "Edit Story Concept";
$lang->custom->setStoryConcept = "Set Story Concept";
$lang->custom->setDefaultConcept = "Set Default Concept";
$lang->custom->browseStoryConcept = "Story Concept List";
$lang->custom->deleteStoryConcept = "Delete story Concept";
$lang->custom->ERConcept = "Epic Concept";
$lang->custom->URConcept = "Feature Concept";
$lang->custom->SRConcept = "Story Concept";
$lang->custom->reviewRule = 'Review Rules';
$lang->custom->switch = "Switch";
$lang->custom->oneUnit = "One {$lang->hourCommon}";
$lang->custom->convertRelationTitle = "Please set the conversion factor for converting {$lang->hourCommon} to %s.";
$lang->custom->superReviewers = "Super Reviewer";
$lang->custom->kanban = "Kanban";
$lang->custom->allUsers = 'All Users';
$lang->custom->account = 'Users';
$lang->custom->role = 'Role';
$lang->custom->dept = 'Dept';
$lang->custom->code = $lang->code;
$lang->custom->setCode = 'Enable Code';
$lang->custom->projectCommon = $lang->projectCommon . ' Settings';
$lang->custom->executionCommon = 'Execution';
$lang->custom->selectDefaultProgram = 'Please select a default program.';
$lang->custom->defaultProgram = 'Default program';
$lang->custom->modeManagement = 'Mode Management';
$lang->custom->percent = $lang->stage->percent;
$lang->custom->setPercent = "Enable {$lang->stage->percent}";
$lang->custom->beginAndEndDate = 'Duration';
$lang->custom->beginAndEndDateRange = 'Duration Range';
$lang->custom->limitTaskDateAction = 'Set Duration Required';
$lang->custom->closeSetting = 'Close Settings';
$lang->custom->gradeRule = 'Allow Cross-Level Subdivision';
$lang->custom->setExecutionClose = 'Execution Close Setting';
$lang->custom->kanbanExpireReminder = 'Kanban Expire Reminder';
$lang->custom->kanbanExpireDays = 'Kanban Expire Days';
$lang->custom->feature = 'Feature';
$lang->custom->gradeRuleList['cross'] = 'Yes';
$lang->custom->gradeRuleList['stepwise'] = 'No';
$lang->custom->unitList['efficiency'] = 'Working Hours/';
$lang->custom->unitList['manhour'] = 'Man Hours/';
$lang->custom->unitList['cost'] = 'USD/Hour';
$lang->custom->unitList['hours'] = 'Hours';
$lang->custom->unitList['days'] = 'Days';
$lang->custom->unitList['loc'] = 'KLOC';
$lang->custom->tipProgressList['SPI'] = 'Schedule Performance Index(SPI)';
$lang->custom->tipProgressList['SV'] = 'Schedule Variance(SV%)';
$lang->custom->tipCostList['CPI'] = 'Cost Performed Index(CPI)';
$lang->custom->tipCostList['CV'] = 'Cost Variance(CV%)';
$lang->custom->tipRangeList[0] = 'No';
$lang->custom->tipRangeList[1] = 'Yes';
$lang->custom->regionMustNumber = 'The range must be a number.';
$lang->custom->tipNotEmpty = 'The prompt text cannot be empty.';
$lang->custom->currencyNotEmpty = 'Select at least one currency.';
$lang->custom->defaultNotEmpty = 'The default currency cannot be empty.';
$lang->custom->convertRelationTips = "After converting {Slang->hourCommon} to %s, all historical data will be converted to %s.";
$lang->custom->saveTips = 'After clicking Save, the current %s will become the default estimation unit.';
$lang->custom->numberError = 'The range must be greater than zero.';
$lang->custom->hoursError = 'Available working hours must be between 0 and 24.';
$lang->custom->closedProject = 'Closed ' . $lang->projectCommon;
$lang->custom->closedExecution = 'Closed ' . $lang->executionCommon;
$lang->custom->closedKanban = 'Closed ' . $lang->custom->kanban;
$lang->custom->closedProduct = 'Closed ' . $lang->productCommon;
$lang->custom->gradeStatusList['enable'] = 'Normal';
$lang->custom->gradeStatusList['disable'] = 'Disabled';
$lang->custom->block = new stdclass();
$lang->custom->block->fields['closed'] = 'Closed Blocks';
$lang->custom->project = new stdClass();
$lang->custom->project->currencySetting = 'Currency Settings';
$lang->custom->project->defaultCurrency = 'Default Currency';
$lang->custom->project->fields['required'] = $lang->custom->required;
$lang->custom->project->fields['project'] = 'Close Settings';
$lang->custom->project->fields['unitList'] = 'Budget Unit';
$lang->custom->execution = new stdClass();
$lang->custom->execution->fields['required'] = $lang->custom->required;
$lang->custom->execution->fields['execution'] = 'Close Settings';
$lang->custom->product = new stdClass();
$lang->custom->product->fields['required'] = $lang->custom->required;
$lang->custom->product->fields['browsestoryconcept'] = 'Story Concept';
$lang->custom->product->fields['product'] = 'Close Settings';
$lang->custom->story = new stdClass();
$lang->custom->story->fields['required'] = $lang->custom->required;
$lang->custom->story->fields['categoryList'] = 'Type';
$lang->custom->story->fields['priList'] = 'Priority';
$lang->custom->story->fields['sourceList'] = 'Source';
$lang->custom->story->fields['reasonList'] = 'Closure Reason';
$lang->custom->story->fields['stageList'] = 'Development Phase';
$lang->custom->story->fields['statusList'] = 'Status';
$lang->custom->story->fields['reviewRules'] = 'Review Rules';
$lang->custom->story->fields['reviewResultList'] = 'Review Result';
$lang->custom->story->fields['review'] = 'Review Process';
$lang->custom->epic = clone $lang->custom->story;
$lang->custom->requirement = clone $lang->custom->story;
$lang->custom->task = new stdClass();
$lang->custom->task->fields['required'] = $lang->custom->required;
$lang->custom->task->fields['priList'] = 'Priority';
$lang->custom->task->fields['typeList'] = 'Type';
$lang->custom->task->fields['reasonList'] = 'Closure Reason';
$lang->custom->task->fields['statusList'] = 'Status';
$lang->custom->task->fields['limitTaskDate'] = 'Duration';
$lang->custom->bug = new stdClass();
$lang->custom->bug->fields['required'] = $lang->custom->required;
$lang->custom->bug->fields['priList'] = 'Priority';
$lang->custom->bug->fields['severityList'] = 'Severity';
$lang->custom->bug->fields['osList'] = 'OS';
$lang->custom->bug->fields['browserList'] = 'Browser';
$lang->custom->bug->fields['typeList'] = 'Type';
$lang->custom->bug->fields['resolutionList'] = 'Resolution';
$lang->custom->bug->fields['statusList'] = 'Status';
$lang->custom->bug->fields['longlife'] = 'Stalled Days';
$lang->custom->testcase = new stdClass();
$lang->custom->testcase->fields['required'] = $lang->custom->required;
$lang->custom->testcase->fields['priList'] = 'Priority';
$lang->custom->testcase->fields['typeList'] = 'Type';
$lang->custom->testcase->fields['stageList'] = 'Phase';
$lang->custom->testcase->fields['resultList'] = 'Result';
$lang->custom->testcase->fields['statusList'] = 'Status';
$lang->custom->testcase->fields['review'] = 'Review Process';
$lang->custom->testtask = new stdClass();
$lang->custom->testtask->fields['required'] = $lang->custom->required;
$lang->custom->testtask->fields['statusList'] = 'Status';
$lang->custom->testtask->fields['typeList'] = 'Test Type';
$lang->custom->testtask->fields['priList'] = 'Priority';
$lang->custom->testreport = new stdClass();
$lang->custom->testreport->fields['required'] = $lang->custom->required;
$lang->custom->caselib = new stdClass();
$lang->custom->caselib->fields['required'] = $lang->custom->required;
$lang->custom->todo = new stdClass();
$lang->custom->todo->fields['priList'] = 'Priority';
$lang->custom->todo->fields['typeList'] = 'Type';
$lang->custom->todo->fields['statusList'] = 'Status';
$lang->custom->user = new stdClass();
$lang->custom->user->fields['required'] = $lang->custom->required;
$lang->custom->user->fields['roleList'] = 'Role';
$lang->custom->user->fields['statusList'] = 'Status';
$lang->custom->user->fields['contactField'] = 'Available Contact Methods';
$lang->custom->user->fields['deleted'] = 'Show Deleted Users';
$lang->custom->currentLang = 'Apply to Current Language';
$lang->custom->allLang = 'Apply to All Languages';
$lang->custom->confirmRestore = 'Are you sure you want to restore default settings?';
$lang->custom->notice = new stdclass();
$lang->custom->notice->userFieldNotice = 'Controls the visibility of the above fields on user-related pages. Leave blank to show all.';
$lang->custom->notice->canNotAdd = 'This item is used in calculations; custom additions are not available.';
$lang->custom->notice->forceReview = '%s submitted by specified users require review.';
$lang->custom->notice->forceNotReview = "%s submitted by specified users do not require review.";
$lang->custom->notice->longlife = 'The Stalled tab on the Bug List page displays bugs that have been unresolved for longer than the configured number of days.';
$lang->custom->notice->invalidNumberKey = 'The key value must be a number no greater than 255.';
$lang->custom->notice->invalidStringKey = 'The key value must be a combination of uppercase/lowercase letters, numbers, or underscores.';
$lang->custom->notice->cannotSetTimezone = 'The function \'date_default_timezone_set\' is missing or disabled; the timezone cannot be set.';
$lang->custom->notice->noClosedBlock = 'No permanently closed blocks.';
$lang->custom->notice->required = 'Selected fields are mandatory upon form submission.';
$lang->custom->notice->conceptResult = 'Based on your selection, we have configured the <b>%s-%s</b> mode using <b>%s</b> + <b>%s</b>.';
$lang->custom->notice->conceptPath = 'Go to Admin -> Custom -> Concept to set it.';
$lang->custom->notice->readOnlyOfProduct = "Once set Changes Prohibited, {$lang->SRCommon}, Bug, Test Case, Effort, Release, Plan, and Build under a closed product cannot be modified.";
$lang->custom->notice->readOnlyOfProject = "Once set Changes Prohibited, any change on closed {$lang->projectCommon}s is not allowed:<br/>
1. For {$lang->productCommon}-based {$lang->projectCommon}s with {$lang->custom->executionCommon} enabled: The following will not be editable under closed {$lang->projectCommon}s: {$lang->custom->executionCommon}, stories, design, reviews, review issues, baselines, documents, builds, releases, efforts, test requests, test reports, process tailoring, research, estimation, issues, risks, opportunities, meetings, QA plans, non-conformities, etc.<br/>
2. For {$lang->productCommon}-based {$lang->projectCommon}s with{$lang->custom->executionCommon} disabled: The following will not be editable under closed {$lang->projectCommon}s: tasks, stories, builds, releases, efforts, test request, test reports, documents, etc.<br/>
3. For non-{$lang->productCommon}-based {$lang->projectCommon}s with {$lang->custom->executionCommon} enabled: The following will not be editable under closed {$lang->projectCommon}s: {$lang->custom->executionCommon}, stories, design, reviews, review issues, baselines, bugs, test cases, test requestd, test reports, documents, builds, releases, efforts, process tailoring, research, estimation, issues, risks, opportunities, meetings, QA plans, non-conformities, etc.<br/>
4. For non-{$lang->productCommon}-based {$lang->projectCommon}s with {$lang->custom->executionCommon} disabled: The following will not be editable under closed {$lang->projectCommon}s: tasks, stories, bugs, test cases, test requestd, test reports, documents, builds, releases, efforts, etc.";
$lang->custom->notice->kanbanReminder = 'When the card deadline is less than the set number of days, the expiration reminder is triggered.';
if(in_array($config->edition, array('open', 'biz')))
{
$lang->custom->notice->readOnlyOfExecution = "If Change Forbidden, any change on tasks, builds, efforts, test tasks, test reports, documents and stories of the closed {$lang->executionCommon} is also forbidden.";
}
else
{
$lang->custom->notice->readOnlyOfExecution = "If Change Forbidden, any change on tasks, builds, efforts, test tasks, test reports, documents, issues, risks, QAs, meettings and stories of the closed {$lang->executionCommon} is also forbidden.";
}
$lang->custom->notice->readOnlyOfKanban = "If Change Forbidden, any change on kanban card and related operations of {$lang->custom->kanban} is also forbidden.";
$lang->custom->notice->URSREmpty = 'The custom story name cannot be empty.';
$lang->custom->notice->valueEmpty = 'The value cannot be empty.';
$lang->custom->notice->confirmDelete = 'Are you sure you want to delete it?';
$lang->custom->notice->confirmReviewCase = 'Do you want to change the status of test cases Waiting Review to Normal?';
$lang->custom->notice->storyReviewTip = 'When users, roles, or departments are selected, the system takes the union of all included members.';
$lang->custom->notice->selectAllTip = 'When all users are selected, the reviewers will be cleared and disabled, and both the role and department filters will be hidden.';
$lang->custom->notice->repeatKey = 'Duplicate Key: %s';
$lang->custom->notice->readOnlyOfCode = "Code serve as management aliases for confidentiality. Once enabled, codes will be displayed for products, projects, and executions across create, edit, detail, and list views.";
$lang->custom->notice->readOnlyOfPercent = "Workload Ratio is used to allocate workloads across multiple phases within a {$lang->projectCommon}. The total percentage among phases of the same level cannot exceed 100%. Once Workload Ratio is enabled, phase workload allocation must be maintained in both Waterfall {$lang->projectCommon} and Waterfall+ {$lang->projectCommon} models.";
$lang->custom->notice->gradeRule = 'Cross-level breakdown: You can create stories from any hierarchy level and establish parent-child links across layers. For example, you may create a Level 3 story directly under a Level 1 story.';
$lang->custom->notice->indexPage['product'] = "Starting from version 8.2, a Product Home view has been added. Would you like to set it as the default landing page?";
$lang->custom->notice->indexPage['project'] = "Starting from version 8.2, a {$lang->projectCommon} Home view has been added. Would you like to set it as the default landing page?";
$lang->custom->notice->indexPage['qa'] = "Starting from version 8.2, a Test Home view has been added. Would you like to set it as the default landing page?";
$lang->custom->notice->invalidStrlen['ten'] = 'The key should be <= 10 characters.';
$lang->custom->notice->invalidStrlen['fifteen'] = 'The key should be <= 15 characters.';
$lang->custom->notice->invalidStrlen['twenty'] = 'The key should be <= 20 characters.';
$lang->custom->notice->invalidStrlen['thirty'] = 'The key should be <= 30 characters.';
$lang->custom->notice->invalidStrlen['twoHundred'] = 'The key should be <= 225 characters.';
$lang->custom->storyReview = 'Review Process';
$lang->custom->forceReview = 'Mandatory Review';
$lang->custom->forceNotReview = 'No Review Required';
$lang->custom->reviewList[1] = 'Enable';
$lang->custom->reviewList[0] = 'Disable';
$lang->custom->deletedList[1] = 'Show';
$lang->custom->deletedList[0] = 'Hide';
$lang->custom->setHours = 'Work Hour Settings';
$lang->custom->setWeekend = 'Rest Day Settings';
$lang->custom->setHoliday = 'Holiday Settings';
$lang->custom->workingHours = 'Available Work Hours per Day';
$lang->custom->weekendRole = 'Rule Settings';
$lang->custom->weekendList[1] = '1-Day Off';
$lang->custom->weekendList[2] = '2-Days Off';
$lang->custom->restDayList[6] = 'Saturday Off';
$lang->custom->restDayList[0] = 'Sunday Off';
global $config;
$lang->custom->sprintConceptList[0] = 'Project Product Iteration';
$lang->custom->sprintConceptList[1] = 'Project Product Sprint';
$lang->custom->workingList['full'] = 'A Complete R&D Management Tool';
$lang->custom->menuTip = 'Click to show or hide navigation items, and drag to change their display order.';
$lang->custom->saveFail = 'Failed to save.';
$lang->custom->page = ' Page';
$lang->custom->usage = 'Usage scenarios';
$lang->custom->selectUsage = 'Select a scenario';
$lang->custom->useLight = 'Light Mode';
$lang->custom->useALM = 'ALM Mode';
$lang->custom->currentModeTips = 'You are currently using %s mode. You can switch to %s mode.';
$lang->custom->changeModeTips = 'Are you sure you want to switch to %s mode?';
$lang->custom->selectProgramTips = "After switching to the Light Mode, you need to select a program as the default one to maintain data consistency. All newly created {$lang->productCommon} and {$lang->projectCommon} entries will be linked with this default program.";
$lang->custom->modeList['light'] = 'Light Mode';
$lang->custom->modeList['ALM'] = 'ALM Mode';
$lang->custom->modeList['PLM'] = 'IPD Mode';
$lang->custom->modeIntroductionList['light'] = "Provides the core function of {$lang->projectCommon} management. Suitable for small R&D teams.";
$lang->custom->modeIntroductionList['ALM'] = 'The concept is more complete and rigorous, and the function is more abundant. It is suitable for medium and large R&D teams.';
$lang->custom->features['program'] = 'Program';
$lang->custom->features['productRR'] = $lang->productCommon . ' - Story';
$lang->custom->features['productUR'] = $lang->productCommon . ' - Feature';
$lang->custom->features['productER'] = $lang->productCommon . ' - Epic';
$lang->custom->features['productLine'] = $lang->productCommon . ' - Product Line';
$lang->custom->features['projectScrum'] = $lang->projectCommon . ' - Scrum Model';
$lang->custom->features['projectWaterfall'] = $lang->projectCommon . ' - Waterfall Model';
$lang->custom->features['projectKanban'] = $lang->projectCommon . ' - Kanban Model';
$lang->custom->features['projectAgileplus'] = $lang->projectCommon . ' - Agile + Model';
$lang->custom->features['projectWaterfallplus'] = $lang->projectCommon . ' - Waterfall + Model';
$lang->custom->features['execution'] = 'Execution';
$lang->custom->features['qa'] = 'Test';
$lang->custom->features['devops'] = 'CI&CD';
$lang->custom->features['kanban'] = 'Kanban';
$lang->custom->features['doc'] = 'Document';
$lang->custom->features['report'] = 'BI';
$lang->custom->features['system'] = 'Company';
$lang->custom->features['assetlib'] = 'Asset';
$lang->custom->features['oa'] = 'OA';
$lang->custom->features['ops'] = 'OPS';
$lang->custom->features['feedback'] = 'Feedback';
$lang->custom->features['traincourse'] = 'Academy';
$lang->custom->features['workflow'] = 'Workflow';
$lang->custom->features['admin'] = 'Admin';
$lang->custom->features['vision'] = 'Full Feature Interface, Operation Management Interface';
$lang->custom->features['ai'] = 'AI';
$lang->custom->needClosedFunctions['waterfall'] = 'Waterfall';
$lang->custom->needClosedFunctions['waterfallplus'] = 'Waterfall +';
$lang->custom->needClosedFunctions['URStory'] = 'Feature';
if($config->edition == 'max') $lang->custom->needClosedFunctions['assetLib'] = 'Assetlib';
$lang->custom->scoreStatus[1] = 'On';
$lang->custom->scoreStatus[0] = 'Off';
$lang->custom->CRProduct[1] = 'Changes Allowed';
$lang->custom->CRProduct[0] = 'Changes Prohibited';
$lang->custom->CRProject[1] = 'Changes Allowed';
$lang->custom->CRProject[0] = 'Changes Prohibited';
$lang->custom->CRExecution[1] = 'Changes Allowed';
$lang->custom->CRExecution[0] = 'Changes Prohibited';
$lang->custom->CRKanban[1] = 'Changes Allowed';
$lang->custom->CRKanban[0] = 'Changes Prohibited';
$lang->custom->moduleName['product'] = $lang->productCommon;
$lang->custom->moduleName['productplan'] = 'Plan';
$lang->custom->moduleName['execution'] = $lang->custom->executionCommon;
$lang->custom->conceptQuestions['overview'] = "Which of the following management models best fits your company’s current workflow?";
$lang->custom->conceptQuestions['URAndSR'] = "Would you like to enable the {$lang->URCommon} and {$lang->SRCommon} concepts?";
$lang->custom->conceptQuestions['storypoint'] = "Which unit does your company use for estimation?";
$lang->custom->conceptOptions = new stdclass;
$lang->custom->conceptOptions->story = array();
$lang->custom->conceptOptions->story['0'] = 'Feature';
$lang->custom->conceptOptions->story['1'] = 'Story';
$lang->custom->conceptOptions->URAndSR = array();
$lang->custom->conceptOptions->URAndSR['1'] = 'Yes';
$lang->custom->conceptOptions->URAndSR['0'] = 'No';
$lang->custom->conceptOptions->hourPoint = array();
$lang->custom->conceptOptions->hourPoint['0'] = 'Work Hours';
$lang->custom->conceptOptions->hourPoint['1'] = 'Story Points';
$lang->custom->conceptOptions->hourPoint['2'] = 'Function Points';
$lang->custom->scrum = new stdclass();
$lang->custom->scrum->setConcept = "Set {$lang->projectCommon} Concept";
$lang->custom->reviewRules['allpass'] = 'Approved by All';
$lang->custom->reviewRules['halfpass'] = 'Approved by Majority';
$lang->custom->limitTaskDate['0'] = 'No Restriction';
$lang->custom->limitTaskDate['1'] = 'Restricted to the execution duration.';
$lang->custom->setDate = new stdClass();
$lang->custom->setDate->fields['hours'] = $lang->custom->setHours;
$lang->custom->setDate->fields['weekend'] = $lang->custom->setWeekend;
$lang->custom->setDate->fields['holiday'] = $lang->custom->setHoliday;

View file

@ -0,0 +1,34 @@
<?php
$lang->datatable = new stdclass();
$lang->datatable->common = 'Data Table';
$lang->datatable->width = 'Width';
$lang->datatable->show = 'Show';
$lang->datatable->hide = 'Hide';
$lang->datatable->reset = 'Reset';
$lang->datatable->custom = 'Customize Columns';
$lang->datatable->customTip = 'Check columns to display and drag columns to order.';
$lang->datatable->switchToTable = 'Common Table';
$lang->datatable->switchToDatatable = 'Advanced Table';
$lang->datatable->required = 'Required';
$lang->datatable->confirmReset = 'Restoring to default will clear the relevant settings of the list. Are you sure you want to restore to default?';
$lang->datatable->setGlobal = 'Set Global';
$lang->datatable->resetGlobal = 'Global Reset';
$lang->datatable->confirmSetGlobal = 'After applying it globally, the list of all individuals in the system will default to this rule for display. Are you sure you want to apply it globally?';
$lang->datatable->confirmGlobalReset = 'After restoring to default globally, all individual list settings in the system will be cleared. Are you sure you want to restore to default?';
$lang->datatable->branch = 'Branch';
$lang->datatable->platform = 'Platform';
$lang->datatable->moduleSetting = 'Set Module';
$lang->datatable->displaySetting = 'Set List';
$lang->datatable->showModule = 'Show modules in the list';
$lang->datatable->showBranch = 'Show branches in the list';
$lang->datatable->showAllModule = "Show {$lang->productCommon} modules";
$lang->datatable->showModuleList['0'] = 'N/A';
$lang->datatable->showModuleList['base'] = 'Base Node';
$lang->datatable->showModuleList['end'] = 'End Node';
$lang->datatable->showAllModuleList[0] = 'Hide';
$lang->datatable->showAllModuleList[1] = 'Show';
$lang->datatable->showBranchList[0] = 'Hide';
$lang->datatable->showBranchList[1] = 'Show';

186
module/dataview/lang/ru.php Normal file
View file

@ -0,0 +1,186 @@
<?php
$lang->dataview->id = 'ID';
$lang->dataview->name = 'Name';
$lang->dataview->export = 'Export';
$lang->dataview->common = 'Data Table';
$lang->dataview->id = 'ID';
$lang->dataview->type = 'Type';
$lang->dataview->name = 'Name';
$lang->dataview->code = 'Code';
$lang->dataview->group = 'Group';
$lang->dataview->view = 'View Name';
$lang->dataview->desc = 'Description';
$lang->dataview->length = 'length';
$lang->dataview->data = 'Data';
$lang->dataview->schema = 'Schema';
$lang->dataview->details = 'Details';
$lang->dataview->fieldName = 'Field Name';
$lang->dataview->fieldType = 'Field Type';
$lang->dataview->create = 'Create custom table';
$lang->dataview->browse = 'Browse';
$lang->dataview->edit = 'Edit';
$lang->dataview->design = 'Design';
$lang->dataview->delete = 'Delete';
$lang->dataview->createPriv = 'Create Custom Table';
$lang->dataview->browsePriv = 'Browse Data Table';
$lang->dataview->editPriv = 'Edit Custom Table';
$lang->dataview->designPriv = 'Design Custom Table';
$lang->dataview->deletePriv = 'Delete Custom Table';
$lang->dataview->viewAction = 'View Custom Table';
$lang->dataview->sql = 'SQL Query';
$lang->dataview->sqlPlaceholder = 'Please enter a query statement. Only select query is supported.';
$lang->dataview->query = 'Query';
$lang->dataview->add = 'Add ';
$lang->dataview->sqlQuery = 'SQL Query';
$lang->dataview->onlyOne = 'Only allow one query';
$lang->dataview->empty = 'Please enter a query statement';
$lang->dataview->emptyBuilder = 'Please configure the builder correctly';
$lang->dataview->allowSelect = 'Only SELECT is allowed';
$lang->dataview->noStar = "For performance, 'SELECT *' is not allowed";
$lang->dataview->fieldSettings = "Field Settings";
$lang->dataview->queryFilters = "Query Filters";
$lang->dataview->varSettings = "Var Settings";
$lang->dataview->result = "Query Result";
$lang->dataview->chart = "Chart";
$lang->dataview->table = "Table";
$lang->dataview->save = "Save";
$lang->dataview->field = "Field";
$lang->dataview->varError = "Format of var is error";
$lang->dataview->time = "Time";
$lang->dataview->confirmDelete = 'Do you want to delete this custom table?';
$lang->dataview->manageGroup = 'Manage group';
$lang->dataview->noModule = '<div>You have no groups. </div><div>Manage Now</div>';
$lang->dataview->notSelect = 'Please select a data table to dislay.';
$lang->dataview->existView = "View exist.";
$lang->dataview->noQueryData = "No Query Data";
$lang->dataview->builtIn = 'Built-in Data Group';
$lang->dataview->default = 'Default Group';
$lang->dataview->relatedTable = 'Table';
$lang->dataview->relatedField = 'Field';
$lang->dataview->multilingual = 'After switching the system language, the corresponding name will be displayed';
$lang->dataview->duplicateField = 'Duplicate field names exist: %s. You are advised to: (1) Modify the * query to a specific field. (2) Use as to alias the field.';
$lang->dataview->errorField = 'There is an illegal character in the current field <strong>%s</strong>. The [as] alias only supports a combination of Chinese, English, numbers, and underscores.';
$lang->dataview->queryFilterTip = 'Query filter is a way to implement dynamic query filtering by inserting variables into SQL. The result filter configured in the third step is to further filter the SQL query results.';
$lang->dataview->consumed = 'Consumed hour';
$lang->dataview->varFilter = new stdclass();
$lang->dataview->varFilter->varCode = 'Code';
$lang->dataview->varFilter->varLabel = 'Filter Name';
$lang->dataview->varFilter->default = 'Default';
$lang->dataview->varFilter->relatedField = 'Related Field';
$lang->dataview->varFilter->requestType = 'Request Type';
$lang->dataview->varFilter->noticeVarName = 'Filter name cannot be empty';
$lang->dataview->varFilter->noticeRequestType = 'Request type cannot be empty';
$lang->dataview->varFilter->noticeShowName = 'Show name cannot be empty';
$lang->dataview->varFilter->requestTypeList['input'] = 'Input';
$lang->dataview->varFilter->requestTypeList['date'] = 'Date';
$lang->dataview->varFilter->requestTypeList['datetime'] = 'Datetime';
$lang->dataview->varFilter->requestTypeList['select'] = 'Select';
$lang->dataview->varFilter->requestTypeList['multipleselect'] = 'Multiple Select';
$lang->dataview->varFilter->selectList['product'] = $lang->productCommon . 'List';
$lang->dataview->varFilter->selectList['product.status'] = $lang->productCommon . 'Status';
$lang->dataview->varFilter->selectList['product.type'] = $lang->productCommon . 'Type';
$lang->dataview->varFilter->selectList['productplan.status'] = 'Product Plan Status';
$lang->dataview->varFilter->selectList['project'] = 'Project List';
$lang->dataview->varFilter->selectList['project.status'] = 'Project Status';
$lang->dataview->varFilter->selectList['project.projectType'] = 'Project Type';
$lang->dataview->varFilter->selectList['project.model'] = 'Project Model';
$lang->dataview->varFilter->selectList['execution'] = $lang->executionCommon . 'List';
$lang->dataview->varFilter->selectList['execution.status'] = $lang->executionCommon . 'Status';
$lang->dataview->varFilter->selectList['execution.type'] = $lang->executionCommon . 'Type';
$lang->dataview->varFilter->selectList['user'] = 'User List';
$lang->dataview->varFilter->selectList['dept'] = 'Department List';
$lang->dataview->objects = array();
$lang->dataview->objects['product'] = $lang->product->common;
$lang->dataview->objects['story'] = $lang->story->common;
$lang->dataview->objects['build'] = $lang->build->common;
$lang->dataview->objects['productplan'] = 'plan';
$lang->dataview->objects['release'] = $lang->release->common;
$lang->dataview->objects['bug'] = $lang->bug->common;
$lang->dataview->objects['project'] = $lang->project->common;
$lang->dataview->objects['task'] = $lang->task->common;
$lang->dataview->objects['team'] = 'team';
$lang->dataview->objects['user'] = 'user';
$lang->dataview->objects['execution'] = $lang->execution->common;
$lang->dataview->objects['testtask'] = 'testtask';
$lang->dataview->objects['testrun'] = 'testrun';
$lang->dataview->objects['testcase'] = 'testcase';
$lang->dataview->objects['testresult'] = 'result';
$lang->dataview->objects['casemodule'] = 'case module';
$lang->dataview->objects['action'] = 'Action';
$lang->dataview->objects['effort'] = 'Effort';
if($this->config->edition != 'open') $lang->dataview->objects['feedback'] = 'Feedback';
$lang->dataview->tables = array();
$lang->dataview->tables['build'] = array('name' => 'Build', 'desc' => '');
$lang->dataview->tables['product'] = array('name' => 'Product', 'desc' => '');
$lang->dataview->tables['productplan'] = array('name' => 'Product Plan', 'desc' => '');
$lang->dataview->tables['release'] = array('name' => 'Release', 'desc' => '');
$lang->dataview->tables['project'] = array('name' => 'Project', 'desc' => '');
$lang->dataview->tables['execution'] = array('name' => 'Execution', 'desc' => '');
$lang->dataview->tables['task'] = array('name' => 'Task', 'desc' => '');
//$lang->dataview->tables['team'] = array('name' => 'Team', 'desc' => '');
$lang->dataview->tables['bug'] = array('name' => 'Bug', 'desc' => 'pri, severity, project, product...');
$lang->dataview->tables['bugbuild'] = array('name' => 'Build Bug', 'desc' => 'pri, severity, project, build...');
$lang->dataview->tables['story'] = array('name' => 'Story', 'desc' => '');
$lang->dataview->tables['testcase'] = array('name' => 'Test Case', 'desc' => '');
$lang->dataview->tables['casestep'] = array('name' => 'Test Case step', 'desc' => '');
$lang->dataview->tables['testtask'] = array('name' => 'Test Task', 'desc' => '');
$lang->dataview->tables['testrun'] = array('name' => 'Test Run', 'desc' => '');
$lang->dataview->tables['testresult'] = array('name' => 'Test Result', 'desc' => '');
$lang->dataview->typeList = array();
$lang->dataview->typeList['view'] = 'Custom Table';
$lang->dataview->typeList['table'] = 'Origin Table';
$lang->dataview->fieldTypeList = array();
$lang->dataview->fieldTypeList['string'] = 'String';
$lang->dataview->fieldTypeList['option'] = 'Option';
$lang->dataview->fieldTypeList['date'] = 'Date';
$lang->dataview->groupList['my'] = 'Dashboard';
$lang->dataview->groupList['program'] = 'Program';
$lang->dataview->groupList['product'] = $lang->productCommon;
$lang->dataview->groupList['project'] = 'project';
$lang->dataview->groupList['execution'] = $lang->execution->common;
$lang->dataview->groupList['kanban'] = 'Kanban';
$lang->dataview->groupList['qa'] = 'Test';
$lang->dataview->groupList['feedback'] = 'Feedback';
$lang->dataview->groupList['doc'] = 'Doc';
$lang->dataview->groupList['assetlib'] = 'Assetlib';
$lang->dataview->groupList['report'] = 'Report';
$lang->dataview->groupList['company'] = 'Company';
$lang->dataview->groupList['repo'] = 'CI';
$lang->dataview->groupList['api'] = 'API';
$lang->dataview->groupList['message'] = 'Message';
$lang->dataview->groupList['search'] = 'Search';
$lang->dataview->groupList['admin'] = 'Admin';
$lang->dataview->groupList['system'] = 'System';
$lang->dataview->groupList['other'] = 'Others';
$lang->dataview->secondGroup['story'] = 'Story';
$lang->dataview->secondGroup['review'] = 'Review';
$lang->dataview->secondGroup['projectContent'] = 'Project content';
$lang->dataview->secondGroup['measure'] = 'Measure';
$lang->dataview->secondGroup['user'] = 'User';
$lang->dataview->error = new stdclass();
$lang->dataview->error->canNotDesign = 'This table is already in use and cannot be redesigned.';
$lang->dataview->error->canNotDelete = 'This table is already in use and cannot be deleted.';
$lang->dataview->error->warningDesign = 'The custom table has been referenced. Design will cause the chart, pivot, and screen to fail to be displayed. Do you want to continue?';
$lang->dataview->error->warningDelete = 'The custom table has been referenced. Delete will cause the chart, pivot, and screen to fail to be displayed. Do you want to continue?';
$lang->dataview->querying = 'Querying, please wait...';
$lang->dataview->queryResult = 'Query data in row %s x %s column';
$lang->dataview->viewResult = '%s x %s rows of data';
$lang->dataview->recTotalTip = '<strong> %s </strong> items in total';
$lang->dataview->recPerPageTip = "<strong> %s </strong> items per page <span class='caret'></span>";
$lang->dataview->projectStatusList['done'] = 'Done';
$lang->dataview->projectStatusList['cancel'] = 'Cancel';
$lang->dataview->projectStatusList['pause'] = 'Pause';

38
module/dept/lang/ru.php Normal file
View file

@ -0,0 +1,38 @@
<?php
/**
* The dept module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package dept
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->dept->id = 'ID';
$lang->dept->path = 'Path';
$lang->dept->position = 'Position';
$lang->dept->manageChild = "Department";
$lang->dept->edit = "Edit Department";
$lang->dept->delete = "Delete Department";
$lang->dept->parent = "Parent Dept";
$lang->dept->manager = "Manager";
$lang->dept->name = "Department Name";
$lang->dept->browse = "Dept Settings";
$lang->dept->manage = "Dept Settings";
$lang->dept->updateOrder = "Sort Depts";
$lang->dept->add = "Add Department";
$lang->dept->grade = "Depts Level";
$lang->dept->order = "Sort";
$lang->dept->dragAndSort = "Drag to Reorder";
$lang->dept->noDepartment = "No department.";
$lang->dept->manageChildAction = "Manage Sub-departments";
$lang->dept->confirmDelete = "Are you sure you want to delete this department?";
$lang->dept->successSave = "Updated successfully.";
$lang->dept->repeatDepart = "A department with this name already exists. Are you sure you want to add it?";
$lang->dept->error = new stdclass();
$lang->dept->error->hasSons = 'This department has sub-departments and cannot be deleted.';
$lang->dept->error->hasUsers = 'This department has employees and cannot be deleted.';

85
module/design/lang/ru.php Normal file
View file

@ -0,0 +1,85 @@
<?php
/**
* The English file of design module.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Shujie Tian <tianshujie@easycorp.ltd>
* @package design
* @version $Id: en.php 4729 2020-09-01 07:53:55Z tianshujie@easycorp.ltd $
* @link https://www.zentao.net
*/
/* 字段列表. */
$lang->design->id = 'ID';
$lang->design->name = 'Name';
$lang->design->story = 'Story';
$lang->design->type = 'Type';
$lang->design->ditto = 'Ditto';
$lang->design->submission = 'Commit';
$lang->design->version = 'Version';
$lang->design->assignedTo = 'Assigned to';
$lang->design->actions = 'Actions';
$lang->design->byQuery = 'Search';
$lang->design->products = "Linked {$lang->productCommon}";
$lang->design->story = 'Linked Story';
$lang->design->file = 'Attachment';
$lang->design->desc = 'Description';
$lang->design->range = 'Impact';
$lang->design->product = "Linked {$lang->productCommon}";
$lang->design->basicInfo = 'Basic Info';
$lang->design->commitBy = 'Committed by';
$lang->design->commitDate = 'Committed on';
$lang->design->affectedStory = "Impacted $lang->SRCommon}";
$lang->design->affectedTasks = 'Impacted Task';
$lang->design->reviewObject = 'Review Item';
$lang->design->createdBy = 'Creator';
$lang->design->createdByAB = 'Creator';
$lang->design->createdDate = 'Created on';
$lang->design->basicInfo = 'Basic Info';
$lang->design->noAssigned = 'Unassigned';
$lang->design->comment = 'Comment';
$lang->design->more = 'More';
$lang->design->project = 'Project';
/* 动作列表. */
$lang->design->common = 'Design';
$lang->design->create = 'Create Design';
$lang->design->batchCreate = 'Batch Create';
$lang->design->edit = 'Change';
$lang->design->delete = 'Delete';
$lang->design->view = 'View Details';
$lang->design->browse = 'Design List';
$lang->design->viewCommit = 'View Commit';
$lang->design->linkCommit = 'Link Commit';
$lang->design->unlinkCommit = 'Unlink Commit';
$lang->design->submit = 'Submit Review';
$lang->design->assignTo = 'Assign';
$lang->design->assignAction = 'Assign';
$lang->design->revision = 'Related Code';
$lang->design->confirmStoryChange = 'Confirm';
$lang->design->browseAction = 'Design List';
/* 字段取值. */
$lang->design->typeList = array();
$lang->design->typeList[''] = '';
$lang->design->typeList['HLDS'] = 'High-Level Design';
$lang->design->typeList['DDS'] = 'Low-Level Design';
$lang->design->typeList['DBDS'] = 'Database Design';
$lang->design->typeList['ADS'] = 'API Design';
$lang->design->plusTypeList = $lang->design->typeList;
$lang->design->rangeList = array();
$lang->design->rangeList['all'] = 'All';
$lang->design->rangeList['assign'] = 'Selected';
/* 提示信息. */
$lang->design->errorSelection = 'No record selected!';
$lang->design->noDesign = 'No records yet.';
$lang->design->noCommit = 'No submission records.';
$lang->design->confirmDelete = 'Are you sure you want to delete this design?';
$lang->design->confirmUnlink = 'Are you sure you want to remove this submission?';
$lang->design->errorDate = 'Start date cannot be later than end date.';
$lang->design->deleted = 'Deleted';
$lang->design->frozenTip = 'After the design are baselined, %s is not allowed.';

224
module/dev/lang/ru.php Normal file
View file

@ -0,0 +1,224 @@
<?php
$lang->dev->common = 'Custom Develpment';
$lang->dev->api = 'API Document';
$lang->dev->db = 'Data Dictionary';
$lang->dev->editor = 'Editor';
$lang->dev->dbList = 'Database';
$lang->dev->moduleList = 'Module List';
$lang->dev->params = 'Parameter List';
$lang->dev->type = 'Type';
$lang->dev->desc = 'Description';
$lang->dev->noParams = 'No Parameters';
$lang->dev->post = 'POST Parameter';
$lang->dev->modifyValue = 'Modify Value';
$lang->dev->defaultValue = 'Default Value';
$lang->dev->paramRange = 'Parameter Range: %s';
$lang->dev->paramDate = 'Date format: YY-mm-dd, e.g 2019-01-01';
$lang->dev->paramColor = 'Color format: #RGB, e.g. #3da7f5';
$lang->dev->paramMailto = "User account. Separate accounts by ','.";
$lang->dev->noteEditor = "The editor feature may pose certain security risks. You can enable it here if you wish to use it.";
$lang->dev->confirmRestore = 'Do you want to restore the default settings?';
$lang->dev->apiTips = 'Each accessible page can be retrieved via a JSON API endpoint.';
$lang->dev->language = 'Language: %s';
$lang->dev->default = 'Default Value';
$lang->dev->currentLang = 'Current Language';
$lang->dev->change = 'Modify Value';
$lang->dev->ER = 'Epic';
$lang->dev->UR = 'Feature';
$lang->dev->SR = 'Story';
$lang->dev->branch = 'Platform/Branch';
$lang->dev->apiBaseUrl = 'Base URL';
$lang->dev->fields = array();
$lang->dev->fields['id'] = 'No.';
$lang->dev->fields['name'] = 'Feild';
$lang->dev->fields['desc'] = 'Description';
$lang->dev->fields['type'] = 'Type';
$lang->dev->fields['length'] = 'Length';
$lang->dev->fields['null'] = 'Nullable';
$lang->dev->switchList['1'] = 'On';
$lang->dev->switchList['0'] = 'Off';
$lang->dev->tableList = array();
$lang->dev->tableList['action'] = 'System Log';
$lang->dev->tableList['bug'] = 'Bug';
$lang->dev->tableList['build'] = 'Build';
$lang->dev->tableList['burn'] = 'Burndown';
$lang->dev->tableList['case'] = 'Test Case';
$lang->dev->tableList['casestep'] = 'Test Case Steps';
$lang->dev->tableList['company'] = 'Company';
$lang->dev->tableList['config'] = 'Configuration';
$lang->dev->tableList['custom'] = 'Custom';
$lang->dev->tableList['dept'] = 'Department';
$lang->dev->tableList['doc'] = 'Document';
$lang->dev->tableList['doclib'] = 'Document Library';
$lang->dev->tableList['effort'] = 'Effort';
$lang->dev->tableList['extension'] = 'Add-on';
$lang->dev->tableList['file'] = 'File';
$lang->dev->tableList['group'] = 'Permission Group';
$lang->dev->tableList['grouppriv'] = 'Permission';
$lang->dev->tableList['history'] = 'History';
$lang->dev->tableList['lang'] = 'Language';
$lang->dev->tableList['module'] = 'Module';
$lang->dev->tableList['program'] = 'Program';
$lang->dev->tableList['product'] = $lang->productCommon;
$lang->dev->tableList['productplan'] = $lang->productCommon . 'Plan';
$lang->dev->tableList['project'] = $lang->projectCommon;
$lang->dev->tableList['programplan'] = "{$lang->projectCommon} Phase";
$lang->dev->tableList['weekly'] = 'Weekly Report';
$lang->dev->tableList['sonarqube'] = 'Sonarqube';
$lang->dev->tableList['projectproduct'] = $lang->projectCommon . $lang->productCommon;
$lang->dev->tableList['projectstory'] = "{$lang->projectCommon} Story";
$lang->dev->tableList['execution'] = $lang->executionCommon;
$lang->dev->tableList['release'] = 'Release';
$lang->dev->tableList['story'] = 'Story';
$lang->dev->tableList['storyspec'] = 'Story Description';
$lang->dev->tableList['task'] = 'Task';
$lang->dev->tableList['taskestimate'] = 'Estimated';
$lang->dev->tableList['team'] = 'Team';
$lang->dev->tableList['testresult'] = 'Test Result';
$lang->dev->tableList['testrun'] = 'Test Run';
$lang->dev->tableList['testtask'] = 'Test Request';
$lang->dev->tableList['todo'] = 'To-do';
$lang->dev->tableList['user'] = 'User';
$lang->dev->tableList['usercontact'] = 'User Contacts';
$lang->dev->tableList['usergroup'] = 'Permission Group';
$lang->dev->tableList['userquery'] = 'User Query';
$lang->dev->tableList['usertpl'] = 'User Template';
$lang->dev->tableList['admin'] = 'Admin';
$lang->dev->tableList['api'] = 'API';
$lang->dev->tableList['backup'] = 'Backup';
$lang->dev->tableList['common'] = 'Common Modules';
$lang->dev->tableList['convert'] = 'Import';
$lang->dev->tableList['dev'] = 'Custom Development';
$lang->dev->tableList['editor'] = 'Editor';
$lang->dev->tableList['git'] = 'GIT';
$lang->dev->tableList['index'] = 'Home';
$lang->dev->tableList['install'] = 'Install';
$lang->dev->tableList['mail'] = 'Email';
$lang->dev->tableList['misc'] = 'Misc.';
$lang->dev->tableList['my'] = 'Dashboard';
$lang->dev->tableList['qa'] = 'Test';
$lang->dev->tableList['report'] = 'Report';
$lang->dev->tableList['search'] = 'Search';
$lang->dev->tableList['sso'] = 'SSO';
$lang->dev->tableList['svn'] = 'SVN';
$lang->dev->tableList['testcase'] = 'Test Case';
$lang->dev->tableList['automation'] = 'Automated Testing';
$lang->dev->tableList['testreport'] = 'Test Report';
$lang->dev->tableList['testsuite'] = 'Test Suite';
$lang->dev->tableList['caselib'] = 'Test Case Library';
$lang->dev->tableList['tree'] = 'Module Relationship';
$lang->dev->tableList['upgrade'] = 'Update';
$lang->dev->tableList['cron'] = 'Scheduled Task';
$lang->dev->tableList['datatable'] = 'Data Table';
$lang->dev->tableList['block'] = 'Block';
$lang->dev->tableList['branch'] = 'Platform/Branch';
$lang->dev->tableList['doccontent'] = 'Doc Content';
$lang->dev->tableList['storystage'] = 'Story Phase';
$lang->dev->tableList['tutorial'] = 'Tutorial';
$lang->dev->tableList['suitecase'] = 'Cases in Test Suite';
$lang->dev->tableList['score'] = 'Points';
$lang->dev->tableList['entry'] = 'Application';
$lang->dev->tableList['webhook'] = 'WebHook';
$lang->dev->tableList['log'] = 'API Log';
$lang->dev->tableList['message'] = 'Message';
$lang->dev->tableList['notify'] = 'Notification';
$lang->dev->tableList['userview'] = 'User Permission';
$lang->dev->tableList['repo'] = 'Code';
$lang->dev->tableList['repohistory'] = 'Repo History';
$lang->dev->tableList['repofiles'] = 'Repo Files';
$lang->dev->tableList['repobranch'] = 'Repo Branch';
$lang->dev->tableList['ci'] = 'CI';
$lang->dev->tableList['compile'] = 'Build';
$lang->dev->tableList['jenkins'] = 'Jenkins';
$lang->dev->tableList['job'] = 'Job';
$lang->dev->tableList['searchdict'] = 'Search Dictionary';
$lang->dev->tableList['searchindex'] = 'Search index';
$lang->dev->tableList['kanbanlane'] = 'Kanban Lane';
$lang->dev->tableList['kanbancolumn'] = 'Kanban Column';
$lang->dev->tableList['stakeholder'] = 'Stakeholder';
$lang->dev->tableList['im_chat_message_index'] = 'Zentao Client Message';
$lang->dev->tableList['im_message_backup'] = 'Zentao Client Backup';
$lang->dev->tableList['im_message_index'] = 'Zentao Client Message Index';
$lang->dev->tableList['im_userdevice'] = 'Zentao Client User Device';
$lang->dev->tableList['baseimage'] = 'Image';
$lang->dev->tableList['baseimagebrowser'] = 'Browser Images';
$lang->dev->tableList['browser'] = 'Browser';
$lang->dev->tableList['kanban'] = 'Kanban';
$lang->dev->tableList['kanbancard'] = 'Kanban Card';
$lang->dev->tableList['kanbancell'] = 'Kanban Cell';
$lang->dev->tableList['kanbangroup'] = 'Kanban Group';
$lang->dev->tableList['kanbanregion'] = 'Kanban Zone';
$lang->dev->tableList['kanbanspace'] = 'Kanban Space';
$lang->dev->tableList['personnel'] = 'Accessible User';
$lang->dev->tableList['projectbuild'] = "{$lang->projectCommon} Build";
$lang->dev->tableList['projectrelease'] = "{$lang->projectCommon} Release";
$lang->dev->tableList['design'] = 'Design';
$lang->dev->tableList['stage'] = 'Phase';
$lang->dev->tableList['gitlab'] = 'Gitlab';
$lang->dev->tableList['gitea'] = 'Gitea';
$lang->dev->tableList['gogs'] = 'Gogs';
$lang->dev->tableList['holiday'] = 'Holiday';
$lang->dev->tableList['projectplan'] = 'Product Plan';
$lang->dev->tableList['im'] = 'IM';
$lang->dev->tableList['transfer'] = 'Convert';
$lang->dev->tableList['client'] = 'Update ZenTao Client';
$lang->dev->tableList['conference'] = 'Vedio&Audio';
$lang->dev->tableList['integration'] = 'Integration';
$lang->dev->tableList['license'] = 'License';
$lang->dev->tableList['zanode'] = 'ZAnode';
$lang->dev->tableList['dashboard'] = 'Dashboard';
$lang->dev->tableList['screen'] = 'Dashboard';
$lang->dev->tableList['zahost'] = 'ZAhost';
$lang->dev->tableList['approval'] = 'Approval';
$lang->dev->tableList['approvalflow'] = 'Approval Flow';
$lang->dev->tableList['chart'] = 'Chart';
$lang->dev->tableList['dataset'] = 'Dataset';
$lang->dev->tableList['dataview'] = 'Dataset';
$lang->dev->tableList['dimension'] = 'Dimension';
$lang->dev->tableList['metric'] = 'Metric';
$lang->dev->tableList['pivot'] = 'Pivot Table';
$lang->dev->groupList['my'] = 'Dashboard';
$lang->dev->groupList['program'] = 'Program';
$lang->dev->groupList['product'] = $lang->productCommon;
$lang->dev->groupList['project'] = $lang->projectCommon;
$lang->dev->groupList['execution'] = $lang->executionCommon;
$lang->dev->groupList['kanban'] = 'Kanban';
$lang->dev->groupList['qa'] = 'Test';
$lang->dev->groupList['doc'] = 'Doc';
$lang->dev->groupList['assetlib'] = 'Asset';
$lang->dev->groupList['report'] = 'Report';
$lang->dev->groupList['company'] = 'Company';
$lang->dev->groupList['repo'] = 'CI';
$lang->dev->groupList['api'] = 'API';
$lang->dev->groupList['message'] = 'Message';
$lang->dev->groupList['search'] = 'Search';
global $config;
if($config->systemMode != 'ALM') unset($lang->dev->groupList['program']);
$lang->dev->endGroupList['admin'] = 'Admin';
$lang->dev->endGroupList['system'] = 'System';
$lang->dev->endGroupList['other'] = 'Others';
$lang->dev->featureBar['api']['restapi'] = 'RESTful';
$lang->dev->featureBar['api']['index'] = 'Buit-in API';
$lang->dev->featureBar['langItem']['common'] = 'Common';
$lang->dev->featureBar['langItem']['first'] = 'Primary Menu';
$lang->dev->featureBar['langItem']['second'] = 'Secondary Menu';
$lang->dev->featureBar['langItem']['third'] = 'Tertiary Menu';
$lang->dev->featureBar['langItem']['tag'] = 'Search Tag';
$lang->dev->projectMenu['project'] = "{$lang->projectCommon} Common";
$lang->dev->projectMenu['scrum'] = "Scrum / Agile + {$lang->projectCommon}";
$lang->dev->projectMenu['waterfall'] = "Waterfall / Waterfall + {$lang->projectCommon}";
$lang->dev->projectMenu['kanbanProject'] = "Kanban {$lang->projectCommon}";
if($config->vision == 'lite') $lang->dev->projectMenu['kanbanProject'] = $lang->projectCommon;
if($config->vision == 'rnd') $this->lang->dev->replaceLable['project-execution'] = "{$lang->executionCommon} / Stage";

View file

@ -0,0 +1,36 @@
<?php
$lang->dimension->common = 'Dimension';
$lang->dimension->macro = 'Macro management';
$lang->dimension->efficiency = 'Efficiency management';
$lang->dimension->quality = 'Quality management';
$lang->dimension->acl = 'Access Control';
$lang->dimension->aclList['open'] = 'Open (All users with dimension view permissions can access it)';
$lang->dimension->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)';
$lang->dimension->moduleList[''] = '';
$lang->dimension->moduleList['product'] = $lang->productCommon;
$lang->dimension->moduleList['project'] = $lang->projectCommon;
$lang->dimension->moduleList['test'] = 'QA';
$lang->dimension->moduleList['staff'] = 'Company';
$lang->dimension->moduleList['devops'] = $lang->devops->common;
$lang->dimension->modules = array();
$lang->dimension->modules['program'] = $lang->program->common;
$lang->dimension->modules['project'] = $lang->projectCommon;
$lang->dimension->modules['product'] = $lang->productCommon;
$lang->dimension->modules['plan'] = 'Plan';
$lang->dimension->modules['execution'] = $lang->executionCommon;
$lang->dimension->modules['release'] = $lang->release->common;
$lang->dimension->modules['story'] = 'Story';
$lang->dimension->modules['task'] = $lang->task->common;
$lang->dimension->modules['bug'] = $lang->bug->common;
$lang->dimension->modules['doc'] = $lang->doc->common;
$lang->dimension->modules['cost'] = 'Cost';
$lang->dimension->modules['personnel'] = 'Personnel';
$lang->dimension->modules['effort'] = 'Effort';
$lang->dimension->modules['timelimit'] = 'Time limit';
$lang->dimension->modules['progress'] = 'Progress';
$lang->dimension->modules['testcase'] = $lang->testcase->common;
$lang->dimension->modules['behavior'] = 'Behavior';
$lang->dimension->modules['devops'] = $lang->devops->common;

822
module/doc/lang/ru.php Normal file
View file

@ -0,0 +1,822 @@
<?php
/**
* The doc module english file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package doc
* @version $Id: en.php 824 2010-05-02 15:32:06Z wwccss $
* @link https://www.zentao.net
*/
$lang->doclib = new stdclass();
$lang->doclib->name = 'Library Name';
$lang->doclib->control = 'Access Control';
$lang->doclib->group = 'Group';
$lang->doclib->user = 'User';
$lang->doclib->files = 'Attachments';
$lang->doclib->all = 'All Doc Libraries';
$lang->doclib->select = 'Select Library';
$lang->doclib->execution = $lang->executionCommon . ' Library';
$lang->doclib->product = $lang->productCommon . ' Library';
$lang->doclib->apiLibName = 'Library Name';
$lang->doclib->defaultSpace = 'Default Space';
$lang->doclib->defaultMyLib = 'My Library';
$lang->doclib->spaceName = 'Space Name';
$lang->doclib->createSpace = 'Add New';
$lang->doclib->editSpace = 'Edit Space';
$lang->doclib->privateACL = "Private (Accessible for creator and while list user with %s permission.)";
$lang->doclib->defaultOrder = 'Default Docs Order';
$lang->doclib->migratedWiki = 'Migrated Wiki';
$lang->doclib->tip = new stdclass();
$lang->doclib->tip->selectExecution = "If Execution is empty, the created library will be a {$lang->projectCommon} library.";
$lang->doclib->type['wiki'] = 'Doc Lib';
$lang->doclib->type['api'] = 'API Lib';
$lang->doclib->aclListA = array();
$lang->doclib->aclListA['default'] = 'Default';
$lang->doclib->aclListA['custom'] = 'Custom';
$lang->doclib->aclListB['open'] = 'Public';
$lang->doclib->aclListB['custom'] = 'Custom';
$lang->doclib->aclListB['private'] = 'Private';
$lang->doclib->mySpaceAclList['private'] = "Private (Accessible for creator only.)";
$lang->doclib->aclList = array();
$lang->doclib->aclList['open'] = "Public (Accessible for all users with the document module view permission.)";
$lang->doclib->aclList['default'] = "Default (Accessible for users with %s permission.)";
$lang->doclib->aclList['private'] = "Private (Accessible for creator and while list users only.)";
$lang->doclib->idOrder = array();
$lang->doclib->idOrder['id_asc'] = 'ID Ascending';
$lang->doclib->idOrder['id_desc'] = 'ID Descending' ;
$lang->doclib->create['product'] = 'Create ' . $lang->productCommon . ' Library';
$lang->doclib->create['execution'] = 'Create ' . $lang->executionCommon . ' Library';
$lang->doclib->create['custom'] = 'Create Custom Library';
$lang->doclib->main['product'] = $lang->productCommon . ' Primary Library';
$lang->doclib->main['project'] = "{$lang->projectCommon} Primary Library";
$lang->doclib->main['execution'] = $lang->executionCommon . ' Primary Library';
$lang->doclib->tabList['product'] = $lang->productCommon;
$lang->doclib->tabList['execution'] = $lang->executionCommon;
$lang->doclib->tabList['custom'] = 'Custom';
$lang->doclib->nameList['custom'] = 'Custom Lib Name';
$lang->doclib->apiNameUnique = array();
$lang->doclib->apiNameUnique['product'] = 'In API library under the same ' . $lang->productCommon . '.';
$lang->doclib->apiNameUnique['project'] = 'In API library under the same ' . $lang->projectCommon . '.';
$lang->doclib->apiNameUnique['nolink'] = 'In independent API library';
$lang->docTemplate = new stdclass();
$lang->docTemplate->id = 'ID';
$lang->docTemplate->title = 'Template Title';
$lang->docTemplate->frequency = 'Frequency';
$lang->docTemplate->type = 'Type';
$lang->docTemplate->addedBy = 'Creator';
$lang->docTemplate->addedDate = 'Created on';
$lang->docTemplate->editedBy = 'Edited by';
$lang->docTemplate->editedDate = 'Edited on';
$lang->docTemplate->views = 'Views';
$lang->docTemplate->confirmDelete = 'Are you sure you want to delete this document template?';
$lang->docTemplate->scope = 'Scope';
$lang->docTemplate->lib = $lang->docTemplate->scope;
$lang->docTemplate->module = 'Template Category';
$lang->docTemplate->desc = 'Description';
$lang->docTemplate->deliverable = 'Is Deliverable';
$lang->docTemplate->parentModule = 'Parent Category';
$lang->docTemplate->typeName = 'Category Name';
$lang->docTemplate->parent = 'Hierarchy';
$lang->docTemplate->addTemplateType = 'Add template category';
$lang->docTemplate->editTemplateType = 'Edit template category';
$lang->docTemplate->docTitlePlaceholder = 'Please enter a document template title.';
$lang->docTemplate->docTitleRequired = 'Document template title cannot be empty.';
$lang->docTemplate->errorDeleteType = 'Cannot delete: This category contains document templates.';
$lang->docTemplate->convertToNewDocConfirm = 'The new document format uses a modern block-based editor for an enhanced experience. Are you sure you want to convert this template to the new format? Once saved as a draft or published, you cannot revert to the legacy editor.';
$lang->docTemplate->oldDocEditingTip = 'This template was created with the legacy editor and is now being edited with the new editor. Saving will convert it to the new format.';
$lang->docTemplate->leaveEditingConfirm = 'You are currently editing a document template. Are you sure you want to leave?';
$lang->docTemplate->searchScopePlaceholder = 'Search Scope';
$lang->docTemplate->searchTypePlaceholder = 'Search Categories';
$lang->docTemplate->moveDocTemplate = 'Move Document Template';
$lang->docTemplate->moveSubTemplate = 'Move Sub Template';
$lang->docTemplate->createTypeFirst = 'Please create a document template category first.';
$lang->docTemplate->editedList = 'Template editor';
$lang->docTemplate->content = 'Template Content';
$lang->docTemplate->templateDesc = 'Template Description';
$lang->docTemplate->status = 'Template Status';
$lang->docTemplate->emptyTip = 'No system data matches the current parameters and filters.';
$lang->docTemplate->emptyDataTip = 'No system data matches the current filter criteria.';
$lang->docTemplate->previewTip = 'Once parameters are configured, this block will display data based on the filter settings.';
$lang->docTemplate->confirmDeleteChapterWithSub = "Are you sure you want to delete this chapter? All content nested under it will be hidden.";
$lang->docTemplate->confirmDeleteTemplateWithSub = "Are you sure you want to delete this document template? All content nested under it will be hidden.";
$lang->docTemplate->scopeHasTemplateTips = 'This scope contains document templates. Please remove them before deleting the scope.';
$lang->docTemplate->scopeHasModuleTips = 'This scope contains template categories. Please remove them before deleting the scope.';
$lang->docTemplate->needEditable = 'You do not have permission to edit this document template.';
$lang->docTemplate->create = 'More';
$lang->docTemplate->edit = 'Scope';
$lang->docTemplate->delete = 'Delete Document Template';
$lang->docTemplate->more = 'No description.';
$lang->docTemplate->scopeLabel = 'of';
$lang->docTemplate->noTemplate = 'Expired';
$lang->docTemplate->noDesc = 'Create Template';
$lang->docTemplate->of = 'Edit Document Template';
$lang->docTemplate->overdue = 'Delete Document Template';
$lang->docTemplate->addModule = 'Add Category';
$lang->docTemplate->addSameModule = 'Add Sibling category';
$lang->docTemplate->addSubModule = 'Add Sub-category';
$lang->docTemplate->editModule = 'Edit Category';
$lang->docTemplate->deleteModule = 'Delete Category';
$lang->docTemplate->noModules = 'No document template categories.';
$lang->docTemplate->addSubDocTemplate = 'Add Sub-template';
$lang->docTemplate->filterTypes = array();
$lang->docTemplate->filterTypes[] = array('all', 'All');
$lang->docTemplate->filterTypes[] = array('draft', 'Draft');
$lang->docTemplate->filterTypes[] = array('released', 'Released');
$lang->docTemplate->filterTypes[] = array('createdByMe', 'Creator Me');
$lang->docTemplate->deliverableList['1'] = 'Yes';
$lang->docTemplate->deliverableList['0'] = 'No';
/* Fields. */
$lang->doc->common = 'Document';
$lang->doc->id = 'ID';
$lang->doc->product = $lang->productCommon;
$lang->doc->project = $lang->projectCommon;
$lang->doc->execution = $lang->execution->common;
$lang->doc->plan = $lang->productplan->shortCommon;
$lang->doc->lib = 'Library';
$lang->doc->module = 'Parent';
$lang->doc->libAndModule = 'Library&Catalog';
$lang->doc->object = 'Object';
$lang->doc->title = 'Title';
$lang->doc->digest = 'Summary';
$lang->doc->comment = 'Comment';
$lang->doc->type = 'Type';
$lang->doc->content = 'Text';
$lang->doc->keywords = 'Keywords';
$lang->doc->status = 'Status';
$lang->doc->url = 'URL';
$lang->doc->files = 'File';
$lang->doc->addedBy = 'Creator';
$lang->doc->addedDate = 'Created Date';
$lang->doc->editedBy = 'Edited by';
$lang->doc->editedDate = 'Last Updated';
$lang->doc->editingDate = 'Current Editor & Time';
$lang->doc->lastEditedBy = 'Last Editor';
$lang->doc->updateInfo = 'Update info';
$lang->doc->version = 'Version Number5';
$lang->doc->basicInfo = 'Basic Info';
$lang->doc->deleted = 'Deleted';
$lang->doc->fileObject = 'Belongs to';
$lang->doc->whiteList = 'Whitelist';
$lang->doc->readonly = 'Read Only';
$lang->doc->editable = 'Editable';
$lang->doc->contentType = 'Document Format';
$lang->doc->separator = "<i class='icon-angle-right'></i>";
$lang->doc->fileTitle = 'File Name';
$lang->doc->filePath = 'File Path';
$lang->doc->extension = 'Type';
$lang->doc->size = 'Files Size';
$lang->doc->source = 'Source';
$lang->doc->download = 'Download';
$lang->doc->acl = 'Permission';
$lang->doc->fileName = 'File';
$lang->doc->groups = 'Group';
$lang->doc->users = 'User';
$lang->doc->item = ' Item';
$lang->doc->num = 'Document Count';
$lang->doc->searchResult = 'Search Result';
$lang->doc->mailto = 'Mail to';
$lang->doc->noModule = 'No directories or documents found in this library. Please manage directories or create a document.';
$lang->doc->noChapter = 'No chapters or articles found in this manual. Please manage the manual.';
$lang->doc->views = 'Views';
$lang->doc->draft = 'Draft';
$lang->doc->collector = 'Favorited by';
$lang->doc->main = 'Main Document Library';
$lang->doc->order = 'Sort';
$lang->doc->doc = 'Document';
$lang->doc->updateOrder = 'Update Order';
$lang->doc->update = 'Update';
$lang->doc->nextStep = 'Next';
$lang->doc->closed = 'Closed';
$lang->doc->saveDraft = 'Save as Draft';
$lang->doc->template = 'Template';
$lang->doc->position = 'Location';
$lang->doc->person = 'Personal';
$lang->doc->team = 'Team';
$lang->doc->manage = 'Document Management';
$lang->doc->release = 'Release';
$lang->doc->story = 'Story';
$lang->doc->convertdoc = 'Convert to Doc';
$lang->doc->needEditable = 'You don\'t have permission to edit this document.';
$lang->doc->needReadable = 'You don\'t have permission to view this document.';
$lang->doc->groupLabel = 'Group';
$lang->doc->userLabel = 'User';
$lang->doc->parent = 'Parent';
$lang->doc->rawContent = 'Raw Content';
$lang->doc->moduleDoc = 'View by Module';
$lang->doc->searchDoc = 'Search';
$lang->doc->fast = 'Quick Access';
$lang->doc->allDoc = 'All Documents';
$lang->doc->allVersion = 'All Versions';
$lang->doc->openedByMe = 'Creator Me';
$lang->doc->editedByMe = 'Edited by Me';
$lang->doc->orderByOpen = 'Recently Added';
$lang->doc->orderByEdit = 'Recently Updated';
$lang->doc->orderByVisit = 'Recently Viewed';
$lang->doc->todayEdited = 'Updated Today';
$lang->doc->pastEdited = 'Older Updates';
$lang->doc->myDoc = 'My Documents';
$lang->doc->myView = 'Recently Viewed';
$lang->doc->myCollection = 'Favorited by Me';
$lang->doc->myCreation = 'Creator Me';
$lang->doc->myEdited = 'Edited by Me';
$lang->doc->myLib = 'My Library';
$lang->doc->tableContents = 'Catalog';
$lang->doc->addCatalog = 'Add Catalog';
$lang->doc->editCatalog = 'Edit Catalog';
$lang->doc->deleteCatalog = 'Delete Catalog';
$lang->doc->sortCatalog = 'Sort Catalogs';
$lang->doc->sortDoclib = 'Sort Libraries';
$lang->doc->sortDoc = 'Sort Docs';
$lang->doc->docStatistic = 'Docs Summary';
$lang->doc->docCreated = 'Created';
$lang->doc->docEdited = 'Edited';
$lang->doc->docViews = 'Views';
$lang->doc->docCollects = 'Collection';
$lang->doc->todayUpdated = "Updated Today";
$lang->doc->daysUpdated = 'Updated %s day(s) ago';
$lang->doc->monthsUpdated = 'Updated %s month(s) ago';
$lang->doc->yearsUpdated = 'Updated %s year(s) ago';
$lang->doc->viewCount = '%s View(s)';
$lang->doc->collectCount = '%s Favorite(s)';
/* Methods list */
$lang->doc->index = 'Dashboard';
$lang->doc->createAB = 'Create';
$lang->doc->create = 'Create Document';
$lang->doc->createOrUpload = 'Create/Import Document';
$lang->doc->edit = 'Edit Document';
$lang->doc->effort = 'Effort';
$lang->doc->delete = 'Delete Document';
$lang->doc->createBook = 'Create Manual';
$lang->doc->browse = 'Document List';
$lang->doc->view = 'Document Details';
$lang->doc->diff = 'Diff';
$lang->doc->confirm = 'Confirm';
$lang->doc->cancelDiff = 'Cancel diff';
$lang->doc->diffAction = 'Diff Docs';
$lang->doc->sort = 'Sort Docs';
$lang->doc->manageType = 'Manage Directories';
$lang->doc->editType = 'Edit Directory';
$lang->doc->editChildType = 'Manage Sub-directories';
$lang->doc->deleteType = 'Delete Directory';
$lang->doc->addType = 'Add Directory';
$lang->doc->childType = 'Sub-directory';
$lang->doc->catalogName = 'Directory Name';
$lang->doc->collect = 'Favorite';
$lang->doc->collectSuccess = 'Added to favorites!';
$lang->doc->cancelCollection = 'Unfavorite';
$lang->doc->deleteFile = 'Delete File';
$lang->doc->menuTitle = 'Directory';
$lang->doc->api = 'API';
$lang->doc->displaySetting = 'Display Settings';
$lang->doc->collectAction = 'Favorite Document';
$lang->doc->libName = 'Library Name';
$lang->doc->libType = 'Library Type';
$lang->doc->custom = 'Custom Document Library';
$lang->doc->customAB = 'Custom Library';
$lang->doc->createLib = 'Create Library';
$lang->doc->createLibAction = 'Create Library';
$lang->doc->createSpace = 'Create Space';
$lang->doc->allLibs = 'Library List';
$lang->doc->objectLibs = "Docs Details";
$lang->doc->showFiles = 'Attachments';
$lang->doc->editLib = 'Edit Library';
$lang->doc->editSpaceAction = 'Edit Space';
$lang->doc->editLibAction = 'Edit Library';
$lang->doc->deleteSpaceAction = 'Delete Space';
$lang->doc->deleteLibAction = 'Delete Library';
$lang->doc->moveLibAction = 'Move Library';
$lang->doc->moveDocAction = 'Move Document';
$lang->doc->batchMove = 'Batch Move';
$lang->doc->batchMoveDocAction = 'Batch Move Docs';
$lang->doc->fixedMenu = 'Pin to Menu';
$lang->doc->removeMenu = 'Unpin from Menu';
$lang->doc->search = 'Search';
$lang->doc->allCollections = 'View All Collection';
$lang->doc->keywordsTips = 'Separate multiple keywords with commas.';
$lang->doc->sortLibs = 'Sort Libs';
$lang->doc->titlePlaceholder = 'Enter title here.';
$lang->doc->confirm = 'Confirm';
$lang->doc->docSummary = '<strong>%s</strong> docs on this page.';
$lang->doc->docCheckedSummary = '<strong>%s</strong> docs selected.';
$lang->doc->showDoc = 'Show Documents';
$lang->doc->uploadFile = 'Upload File';
$lang->doc->uploadDoc = 'Import';
$lang->doc->uploadFormat = 'Upload Format';
$lang->doc->editedList = 'Document Editor';
$lang->doc->moveTo = 'Move to';
$lang->doc->notSupportExport = 'This document cannot be exported.';
$lang->doc->downloadTemplate = 'Download Template';
$lang->doc->addFile = 'Submit File';
$lang->doc->frozenTips = 'After the doc are baselined, %s is not allowed.';
$lang->doc->preview = 'Preview';
$lang->doc->insertTitle = 'Insert %s list';
$lang->doc->previewTip = 'Displayed data can be modified via filter settings. Inserted data is a static snapshot.';
$lang->doc->insertTip = 'Please select at least one item after previewing.';
$lang->doc->insertText = 'Insert';
$lang->doc->searchCondition = 'Search Filters';
$lang->doc->list = ' List';
$lang->doc->detail = 'Details';
$lang->doc->zentaoData = 'Zentao Data';
$lang->doc->emptyError = 'Cannot be empty.';
$lang->doc->caselib = 'Test Case Library';
$lang->doc->customSearch = 'Custom Search';
$lang->doc->addChapter = 'Add chapter';
$lang->doc->editChapter = 'Edit chapter';
$lang->doc->sortChapter = 'Sort Chapters';
$lang->doc->deleteChapter = 'Delete chapter';
$lang->doc->addSubChapter = 'Add Sub-chapter';
$lang->doc->addSameChapter = 'Add Sibling Chapter';
$lang->doc->addSubDoc = 'Add Child Document';
$lang->doc->chapterName = 'Chapter Name';
$lang->doc->tips = new stdclass();
$lang->doc->tips->noProduct = 'No products found. Please create one first.';
$lang->doc->tips->noProject = 'No projects found. Please create one first.';
$lang->doc->tips->noExecution = 'No executions found. Please create one first.';
$lang->doc->tips->noCaselib = 'No test case libraries found. Please create one first.';
$lang->doc->zentaoList = array();
$lang->doc->zentaoList['story'] = $lang->SRCommon;
$lang->doc->zentaoList['productStory'] = $lang->productCommon . ' ' . $lang->SRCommon;
$lang->doc->zentaoList['projectStory'] = $lang->projectCommon . ' ' . $lang->SRCommon;
$lang->doc->zentaoList['executionStory'] = $lang->execution->common . ' ' . $lang->SRCommon;
$lang->doc->zentaoList['planStory'] = $lang->productplan->shortCommon . ' ' . $lang->SRCommon;
$lang->doc->zentaoList['case'] = $lang->testcase->common;
$lang->doc->zentaoList['productCase'] = $lang->productCommon . ' ' . $lang->testcase->common;
$lang->doc->zentaoList['projectCase'] = $lang->projectCommon . ' ' . $lang->testcase->common;
$lang->doc->zentaoList['caselib'] = 'Test Case Library';
$lang->doc->zentaoList['task'] = $lang->task->common;
$lang->doc->zentaoList['bug'] = $lang->bug->common;
$lang->doc->zentaoList['projectBug'] = $lang->projectCommon . ' ' . $lang->bug->common;
$lang->doc->zentaoList['productBug'] = 'Product Bug';
$lang->doc->zentaoList['planBug'] = 'Plan Bug';
$lang->doc->zentaoList['more'] = 'More';
$lang->doc->zentaoList['productPlan'] = $lang->productCommon . ' Plan';
$lang->doc->zentaoList['productPlanContent'] = $lang->productCommon . ' Plan Details';
$lang->doc->zentaoList['productRelease'] = $lang->productCommon . ' ' . $lang->release->common;
$lang->doc->zentaoList['projectRelease'] = $lang->projectCommon . ' ' . $lang->release->common;
$lang->doc->zentaoList['ER'] = $lang->defaultERName;
$lang->doc->zentaoList['UR'] = $lang->URCommon;
$lang->doc->zentaoList['feedback'] = 'Feedback';
$lang->doc->zentaoList['ticket'] = 'Ticket';
$lang->doc->zentaoList['gantt'] = 'Gantt Chart';
$lang->doc->zentaoList['HLDS'] = 'High-Level Design';
$lang->doc->zentaoList['DDS'] = 'Detailed Design';
$lang->doc->zentaoList['DBDS'] = 'Database Design';
$lang->doc->zentaoList['ADS'] = 'API Design';
$lang->doc->zentaoAction = array();
$lang->doc->zentaoAction['set'] = 'Settings';
$lang->doc->zentaoAction['delete'] = 'Delete';
$lang->doc->zentaoAction['setParams'] = 'Set Parameters';
$lang->doc->uploadFormatList = array();
$lang->doc->uploadFormatList['separateDocs'] = 'Save each file as a separate document.';
$lang->doc->uploadFormatList['combinedDocs'] = 'Save all files as one document.';
$lang->doc->fileType = new stdclass();
$lang->doc->fileType->stepResult = 'Test Result';
global $config;
/* Query condition list. */
$lang->doc->allProduct = 'All' . $lang->productCommon . 's';
$lang->doc->allExecutions = 'All' . $lang->execution->common . 's';
$lang->doc->allProjects = 'All' . $lang->projectCommon . 's';
$lang->doc->libTypeList['product'] = $lang->productCommon . ' Docs Library';
$lang->doc->libTypeList['project'] = "{$lang->projectCommon} Docs Library";
$lang->doc->libTypeList['execution'] = $lang->execution->common . ' Docs Library';
$lang->doc->libTypeList['api'] = 'API Library';
$lang->doc->libTypeList['custom'] = 'Custom Library';
$lang->doc->libGlobalList['api'] = 'API Library';
$lang->doc->libIconList['product'] = 'icon-product';
$lang->doc->libIconList['execution'] = 'icon-stack';
$lang->doc->libIconList['custom'] = 'icon-folder-o';
$lang->doc->systemLibs['product'] = $lang->productCommon;
$lang->doc->systemLibs['execution'] = $lang->executionCommon;
$lang->doc->statusList[''] = "";
$lang->doc->statusList['normal'] = "Published";
$lang->doc->statusList['draft'] = "Draft";
$lang->doc->aclList['open'] = "Public (Visible and editable by all users.)";
$lang->doc->aclList['private'] = "Private (Visible and editable by specific users only.)";
$lang->doc->aclListA['open'] = "Public (Accessible to all users. Users with document template editing permissions can access and edit it.)";
$lang->doc->aclListA['private'] = "Private (Editable and usable by the creator only.)";
$lang->doc->selectSpace = 'Select Space';
$lang->doc->space = 'Space';
$lang->doc->spaceList['mine'] = 'My Space';
$lang->doc->spaceList['custom'] = 'Team Space';
$lang->doc->spaceList['product'] = $lang->productCommon . ' Space';
$lang->doc->spaceList['project'] = $lang->projectCommon . ' Space';
$lang->doc->spaceList['api'] = 'API Space';
$lang->doc->apiType = 'API Type';
$lang->doc->apiTypeList['product'] = $lang->productCommon . ' API';
$lang->doc->apiTypeList['project'] = $lang->projectCommon . ' API';
$lang->doc->apiTypeList['nolink'] = 'Independent API';
$lang->doc->typeList['html'] = 'Html';
$lang->doc->typeList['markdown'] = 'Markdown';
$lang->doc->typeList['url'] = 'URL';
$lang->doc->typeList['word'] = 'Word';
$lang->doc->typeList['ppt'] = 'PPT';
$lang->doc->typeList['excel'] = 'Excel';
$lang->doc->createList['template'] = 'Wiki';
$lang->doc->createList['word'] = 'Word';
$lang->doc->createList['ppt'] = 'PPT';
$lang->doc->createList['excel'] = 'Excel';
$lang->doc->createList['attachment'] = $lang->doc->uploadDoc;
$lang->doc->types['doc'] = 'Doc';
$lang->doc->types['api'] = 'API Doc';
$lang->doc->contentTypeList['html'] = 'HTML';
$lang->doc->contentTypeList['markdown'] = 'MarkDown';
$lang->doc->browseType = 'View Mode';
$lang->doc->browseTypeList['list'] = 'List';
$lang->doc->browseTypeList['grid'] = 'Directory';
$lang->doc->fastMenuList['byediteddate'] = 'Recent Updates';
//$lang->doc->fastMenuList['visiteddate'] = 'Recently Visited';
$lang->doc->fastMenuList['openedbyme'] = 'My Documents';
$lang->doc->fastMenuList['collectedbyme'] = 'My Collection';
$lang->doc->fastMenuIconList['byediteddate'] = 'icon-folder-upload';
//$lang->doc->fastMenuIconList['visiteddate'] = 'icon-folder-move';
$lang->doc->fastMenuIconList['openedbyme'] = 'icon-folder-account';
$lang->doc->fastMenuIconList['collectedbyme'] = 'icon-folder-star';
$lang->doc->customObjectLibs['files'] = 'Show Attachments';
$lang->doc->customObjectLibs['customFiles'] = 'Show Custom Library';
$lang->doc->orderLib = 'Sort Libraries';
$lang->doc->customShowLibs = 'Display Settings';
$lang->doc->customShowLibsList['zero'] = 'Show Empty Libraries';
$lang->doc->customShowLibsList['children'] = 'Show Subcategory Documents';
$lang->doc->customShowLibsList['unclosed'] = "Show Open Executions Only ";
$lang->doc->mail = new stdclass();
$lang->doc->mail->releasedDoc = new stdclass();
$lang->doc->mail->edit = new stdclass();
$lang->doc->mail->releasedDoc->title = "%s published document #%s: %s.";
$lang->doc->mail->edit->title = "%s edited document #%6s: %s.";
$lang->doc->confirmDelete = "Are you sure you want to delete this document?";
$lang->doc->confirmDeleteWithSub = "Deleting this document will also remove all its associated content. Are you sure you want to proceed?";
$lang->doc->confirmDeleteLib = "Are you sure you want to delete this document library?";
$lang->doc->confirmDeleteSpace = "Deleting this space will remove all associated libraries, directories, and documents. Are you sure you want to proceed?";
$lang->doc->confirmDeleteBook = "Are you sure you want to delete this manual?";
$lang->doc->confirmDeleteChapter = "Are you sure you want to delete this chapter?";
$lang->doc->confirmDeleteChapterWithSub = "Deleting this chapter will also remove all its sub-chapters and documents. Are you sure you want to proceed?";
$lang->doc->confirmDeleteModule = "Are you sure you want to delete this directory?";
$lang->doc->confirmDeleteModuleWithSub = "Deleting this directory will also remove all its sub-directories, chapters, and documents. Are you sure you want to proceed?";
$lang->doc->confirmOtherEditing = "This document is currently being edited. Continuing to edit will overwrite changes made by others. Do you want to continue?";
$lang->doc->errorEditSystemDoc = "System document libraries cannot be modified. ";
$lang->doc->errorEmptyProduct = "No {$lang->productCommon} found. The document cannot be created.";
$lang->doc->errorEmptyProject = "No {$lang->executionCommon} found. The document cannot be created.";
$lang->doc->errorEmptySpaceLib = "No document library exists in this space. The document cannot be created. Please create a document library first.";
$lang->doc->errorMainSysLib = "System document libraries cannot be deleted.";
$lang->doc->accessDenied = "You do not have permission to access this.";
$lang->doc->cannotView = "You do not have permission to view this document. Please contact the creator %s.";
$lang->doc->versionNotFount = 'This document version does not exist.';
$lang->doc->noDoc = 'No documents yet.';
$lang->doc->noArticle = 'No articles yet.';
$lang->doc->noLib = 'No libraries yet.';
$lang->doc->noBook = 'No manuals have been created in the Wiki library. Please create one.';
$lang->doc->cannotCreateOffice = '<p>Sorry, only ZenTao Biz and ZenTao Max versions supports creating %s documents.</p><p>To try these advanced versions, please contact us at support@zentao.pm.</p>';
$lang->doc->notSetOffice = "Configuring <ahref='%s'>Collabora Online</a> is required to create %s documents.";
$lang->doc->requestTypeError = "Collabora Online editing is unavailable because the current ZenTao requestType is not set to PATH_INFO. Please contact your administrator to modify the requestType configuration.";
$lang->doc->notSetCollabora = "Collabora Online is not configured. %s documents cannot be created. Please configure <ahref='%s'>Collabora Online</a>.";
$lang->doc->noSearchedDoc = 'No documents found.';
$lang->doc->noEditedDoc = 'You have not edited any documents yet.';
$lang->doc->noOpenedDoc = 'You have not created any documents yet.';
$lang->doc->noCollectedDoc = 'You have not added any documents to your favorites.';
$lang->doc->errorEmptyLib = 'No data available in the document library.';
$lang->doc->confirmUpdateContent = 'Unsaved content detected. Do you want to continue editing?';
$lang->doc->selectLibType = 'Please select a document library type.';
$lang->doc->selectDoc = 'Please select a document.';
$lang->doc->noLibreOffice = 'You do not have permission to access the Office conversion settings.';
$lang->doc->errorParentChapter = 'The parent chapter cannot be the chapter itself or one of its sub-chapters.';
$lang->doc->errorOthersCreated = 'Moving documents Creator others in this library is currently not supported. Do you want to proceed?';
$lang->doc->confirmLeaveOnEdit = 'Unsaved content detected. Do you want to navigate away?';
$lang->doc->errorOccurred = 'Operation failed. Please try again later.';
$lang->doc->selectLibFirst = 'Please select a document library first.';
$lang->doc->createLibFirst = 'Please create a document library first.';
$lang->doc->nopriv = 'You do not have permission to access %s and cannot view this document. Please contact the administrator to adjust permissions.';
$lang->doc->docConvertComment = "The document has been converted to the new editor format. Switch to version %s to view the original document.";
$lang->doc->previewNotAvailable = 'Preview is currently unavailable. Please visit ZenTao to view document %s.';
$lang->doc->hocuspocusConnect = 'Collaborative editing service connected.';
$lang->doc->hocuspocusDisconnect = 'Collaborative editing service disconnected. Content will be synced upon reconnection.';
$lang->doc->docTemplateConvertComment = 'The document template has been converted to the new editor format. Switch to version %s to view the original template.';
$lang->doc->noSupportList = "This {$lang->projectCommon} does not support %s.";
$lang->doc->noticeAcl['lib']['product']['default'] = "Accessible for users who with permission to access to the selected {Slang-productCommon}.";
$lang->doc->noticeAcl['lib']['product']['custom'] = "Accessible for users who with permission to access to the selected {Slang-productCommon} and users on the whitelist.";
$lang->doc->noticeAcl['lib']['project']['default'] = "Accessible for users who with permission to access to the selected {$lang->projectCommon}.";
$lang->doc->noticeAcl['lib']['project']['open'] = "Accessible for users who with permission to access to the selected {$lang->projectCommon}.";
$lang->doc->noticeAcl['lib']['project']['private'] = "Accessible for users who with permission to access to the selected {$lang->projectCommon} and users on the whitelist.";
$lang->doc->noticeAcl['lib']['project']['custom'] = "Accessible for users on the whitelist.";
$lang->doc->noticeAcl['lib']['execution']['default'] = "Accessible for users who with permission to access to the selected {$lang->execution->common}.";
$lang->doc->noticeAcl['lib']['execution']['custom'] = "Accessible for users who with permission to access to the selected {$lang->execution->common} and users on the whitelist..";
$lang->doc->noticeAcl['lib']['api']['open'] = 'Accessible for all users.';
$lang->doc->noticeAcl['lib']['api']['custom'] = 'Accessible for users on the whitelist..';
$lang->doc->noticeAcl['lib']['api']['private'] = 'Accessible only for the creator.';
$lang->doc->noticeAcl['lib']['custom']['open'] = 'Accessible for all users.';
$lang->doc->noticeAcl['lib']['custom']['custom'] = 'Accessible for users on the whitelist..';
$lang->doc->noticeAcl['lib']['custom']['private'] = 'Accessible only for the creator.';
$lang->doc->noticeAcl['doc']['open'] = 'Anyone with access to the associated document library can access this.';
$lang->doc->noticeAcl['doc']['custom'] = 'Accessible for users on the whitelist..';
$lang->doc->noticeAcl['doc']['private'] = 'Accessible only for the creator.';
$lang->doc->placeholder = new stdclass();
$lang->doc->placeholder->url = 'URL';
$lang->doc->placeholder->execution = 'In project library if no execution.';
$lang->doc->summary = "<strong>%s</strong> files on this page with the total size <strong>%s</strong>. <strong>%s</strong>: ";
$lang->doc->ge = ':';
$lang->doc->point = '.';
$lang->doc->libDropdown['editLib'] = 'Edit Library';
$lang->doc->libDropdown['deleteLib'] = 'Delete Library';
$lang->doc->libDropdown['editSpace'] = 'Edit Space';
$lang->doc->libDropdown['deleteSpace'] = 'Delete Space';
$lang->doc->libDropdown['addModule'] = 'Add Directory';
$lang->doc->libDropdown['addSameModule'] = 'Add Sibling Directory';
$lang->doc->libDropdown['addSubModule'] = 'Add Sub-directory';
$lang->doc->libDropdown['editModule'] = 'Edit Directory';
$lang->doc->libDropdown['delModule'] = 'Delete Directory';
$lang->doc->featureBar['tableContents']['all'] = 'All';
$lang->doc->featureBar['tableContents']['draft'] = 'Draft';
$lang->doc->featureBar['myspace']['all'] = 'All';
$lang->doc->featureBar['myspace']['draft'] = 'Draft';
$lang->doc->showDocList[1] = 'Yes';
$lang->doc->showDocList[0] = 'No';
$lang->doc->whitelistDeny['product'] = "<i class='icon pr-1 text-important icon-exclamation'></i>User<span class='px-1 text-important'>%s</span> lacks access permissions for the product and cannot view the document. Please configure the product access permissions to resolve this.";
$lang->doc->whitelistDeny['project'] = "<i class='icon pr-1 text-important icon-exclamation'></i>User<span class='px-1 text-important'>%s</span> lacks access permissions for the project and cannot view the document. Please configure the project access permissions to resolve this.";
$lang->doc->whitelistDeny['execution'] = "<i class='icon pr-1 text-important icon-exclamation'></i>User<span class='px-1 text-important'>%s</span> lacks access permissions for the execution and cannot view the document. Please configure the execution access permissions to resolve this.";
$lang->doc->whitelistDeny['doc'] = "<i class='icon pr-1 text-important icon-exclamation'></i>User<span class='px-1 text-important'>%s</span> lacks access permissions for the library and cannot view the document. Please configure the library access permissions to resolve this.";
$lang->doc->filterTypes[] = array('all', 'All');
$lang->doc->filterTypes[] = array('draft', 'Draft');
$lang->doc->filterTypes[] = array('collect', 'My Collection');
$lang->doc->filterTypes[] = array('createdByMe', 'Created by Me');
$lang->doc->filterTypes[] = array('editedByMe', 'Edited by Me');
$lang->doc->fileFilterTypes[] = array('all', 'All');
$lang->doc->fileFilterTypes[] = array('addedByMe', 'Added by Me');
$lang->doc->productFilterTypes[] = array('all', 'All');
$lang->doc->productFilterTypes[] = array('mine', 'Managed by Me');
$lang->doc->projectFilterTypes[] = array('all', 'All');
$lang->doc->projectFilterTypes[] = array('mine', 'Involved');
$lang->doc->spaceFilterTypes[] = array('all', 'All');
$lang->doc->manageScope = 'Manage Scope';
$lang->doc->browseTemplate = 'Template Gallery';
$lang->doc->createTemplate = 'Create Document Template';
$lang->doc->editTemplate = 'Edit Document Template';
$lang->doc->moveTemplate = 'Move Document Template';
$lang->doc->deleteTemplate = 'Delete Document Template';
$lang->doc->viewTemplate = 'Document Template Details';
$lang->doc->addTemplateType = 'Create Template Category';
$lang->doc->editTemplateType = 'Edit Template Category';
$lang->doc->deleteTemplateType = 'Delete Template Category';
$lang->doc->sortTemplate = 'Sort';
$lang->doc->docLang = new stdClass();
$lang->doc->docLang->cancel = $lang->cancel;
$lang->doc->docLang->export = $lang->export;
$lang->doc->docLang->exportWord = "Export Word";
$lang->doc->docLang->exportPdf = "Export PDF";
$lang->doc->docLang->exportImage = "Export Image";
$lang->doc->docLang->exportHtml = "Export HTML";
$lang->doc->docLang->exportMarkdown = "Export Markdown";
$lang->doc->docLang->exportJSON = "Export Backup(.json)";
$lang->doc->docLang->importMarkdown = "Import Markdown";
$lang->doc->docLang->importConfluence = "Import Confluence Storage";
$lang->doc->docLang->importJSON = "Import Backup(.json)";
$lang->doc->docLang->importConfirm = "Importing will overwrite the existing content. Are you sure you want to proceed?";
$lang->doc->docLang->settings = $lang->settings;
$lang->doc->docLang->save = $lang->save;
$lang->doc->docLang->createSpace = $lang->doc->createSpace;
$lang->doc->docLang->createLib = $lang->doc->createLib;
$lang->doc->docLang->actions = $lang->doc->libDropdown;
$lang->doc->docLang->moveTo = $lang->doc->moveTo;
$lang->doc->docLang->create = $lang->doc->createAB;
$lang->doc->docLang->createDoc = $lang->doc->create;
$lang->doc->docLang->editDoc = $lang->doc->edit;
$lang->doc->docLang->effort = $lang->doc->effort;
$lang->doc->docLang->deleteDoc = $lang->doc->delete;
$lang->doc->docLang->uploadDoc = $lang->doc->uploadDoc;
$lang->doc->docLang->createList = $lang->doc->createList;
$lang->doc->docLang->confirmDelete = $lang->doc->confirmDelete;
$lang->doc->docLang->confirmDeleteWithSub = $lang->doc->confirmDeleteWithSub;
$lang->doc->docLang->confirmDeleteLib = $lang->doc->confirmDeleteLib;
$lang->doc->docLang->confirmDeleteSpace = $lang->doc->confirmDeleteSpace;
$lang->doc->docLang->confirmDeleteModule = $lang->doc->confirmDeleteModule;
$lang->doc->docLang->confirmDeleteModuleWithSub = $lang->doc->confirmDeleteModuleWithSub;
$lang->doc->docLang->confirmDeleteChapter = $lang->doc->confirmDeleteChapter;
$lang->doc->docLang->confirmDeleteChapterWithSub = $lang->doc->confirmDeleteChapterWithSub;
$lang->doc->docLang->collect = $lang->doc->collect;
$lang->doc->docLang->edit = $lang->doc->edit;
$lang->doc->docLang->delete = $lang->doc->delete;
$lang->doc->docLang->cancelCollection = $lang->doc->cancelCollection;
$lang->doc->docLang->moveDoc = $lang->doc->moveDocAction;
$lang->doc->docLang->moveTo = $lang->doc->moveTo;
$lang->doc->docLang->moveLib = $lang->doc->moveLibAction;
$lang->doc->docLang->moduleName = $lang->doc->catalogName;
$lang->doc->docLang->saveDraft = $lang->doc->saveDraft;
$lang->doc->docLang->template = $lang->doc->template;
$lang->doc->docLang->release = $lang->doc->release;
$lang->doc->docLang->batchMove = $lang->doc->batchMove;
$lang->doc->docLang->filterTypes = $lang->doc->filterTypes;
$lang->doc->docLang->fileFilterTypes = $lang->doc->fileFilterTypes;
$lang->doc->docLang->productFilterTypes = $lang->doc->productFilterTypes;
$lang->doc->docLang->projectFilterTypes = $lang->doc->projectFilterTypes;
$lang->doc->docLang->spaceFilterTypes = $lang->doc->spaceFilterTypes;
$lang->doc->docLang->sortCatalog = $lang->doc->sortCatalog;
$lang->doc->docLang->sortDoclib = $lang->doc->sortDoclib;
$lang->doc->docLang->sortDoc = $lang->doc->sortDoc;
$lang->doc->docLang->errorOccurred = $lang->doc->errorOccurred;
$lang->doc->docLang->selectLibFirst = $lang->doc->selectLibFirst;
$lang->doc->docLang->createLibFirst = $lang->doc->createLibFirst;
$lang->doc->docLang->space = 'Space';
$lang->doc->docLang->spaceTypeNames = array();
$lang->doc->docLang->spaceTypeNames['mine'] = $lang->doc->docLang->space;
$lang->doc->docLang->spaceTypeNames['product'] = $lang->productCommon . $lang->doc->docLang->space;
$lang->doc->docLang->spaceTypeNames['project'] = $lang->projectCommon . $lang->doc->docLang->space;
$lang->doc->docLang->spaceTypeNames['execution'] = $lang->executionCommon . $lang->doc->docLang->space;
$lang->doc->docLang->spaceTypeNames['api'] = $lang->doc->docLang->space;
$lang->doc->docLang->spaceTypeNames['custom'] = $lang->doc->docLang->space;
$lang->doc->docLang->enterSpace = 'Enter Space';
$lang->doc->docLang->noDocs = 'No documents.';
$lang->doc->docLang->noFiles = 'No files.';
$lang->doc->docLang->noLibs = 'No document libraries.';
$lang->doc->docLang->noModules = 'No directories.';
$lang->doc->docLang->docsTotalInfo = 'Total: {0} document(s).';
$lang->doc->docLang->createSpace = $lang->doc->createSpace;
$lang->doc->docLang->createModule = $lang->doc->addCatalog;
$lang->doc->docLang->leaveEditingConfirm = 'You have unsaved changes. Are you sure you want to leave?';
$lang->doc->docLang->saveDocFailed = 'Failed to save document. Please try again later.';
$lang->doc->docLang->loadingDocsData = 'Loading document data...';
$lang->doc->docLang->loadDataFailed = 'Failed to load data.';
$lang->doc->docLang->noSpaceTip = 'It looks empty here. Create a space to get started. ';
$lang->doc->docLang->searchModulePlaceholder = 'Search Directories';
$lang->doc->docLang->searchDocPlaceholder = 'Search Documents';
$lang->doc->docLang->searchChapterPlaceholder = 'Search Chapters';
$lang->doc->docLang->searchSpacePlaceholder = 'Search Spaces';
$lang->doc->docLang->searchLibPlaceholder = 'Search Libraries';
$lang->doc->docLang->searchPlaceholder = 'Search';
$lang->doc->docLang->newDocLabel = 'New';
$lang->doc->docLang->editingDocLabel = 'Editing';
$lang->doc->docLang->filesLib = $lang->doclib->files;
$lang->doc->docLang->currentDocVersionHint = 'Current version (Click to switch)';
$lang->doc->docLang->viewsCount = $lang->doc->views;
$lang->doc->docLang->keywords = $lang->doc->keywords;
$lang->doc->docLang->keywordsPlaceholder = $lang->doc->keywordsTips;
$lang->doc->docLang->loadingDocTip = 'Loading document...';
$lang->doc->docLang->loadingEditorTip = 'Loading editor...';
$lang->doc->docLang->pasteImageTip = $lang->noticePasteImg;
$lang->doc->docLang->downloadFile = 'Download';
$lang->doc->docLang->loadingFilesTip = 'Loading file...';
$lang->doc->docLang->recTotalFormat = $lang->pager->totalCountAB;
$lang->doc->docLang->recPerPageFormat = $lang->pager->pageSizeAB;
$lang->doc->docLang->firstPage = $lang->pager->firstPage;
$lang->doc->docLang->prevPage = $lang->pager->previousPage;
$lang->doc->docLang->nextPage = $lang->pager->nextPage;
$lang->doc->docLang->lastPage = $lang->pager->lastPage;
$lang->doc->docLang->docOutline = 'Outline';
$lang->doc->docLang->noOutline = 'No outline.';
$lang->doc->docLang->loading = $lang->loading;
$lang->doc->docLang->libNamePrefix = 'Library';
$lang->doc->docLang->colon = $lang->colon;
$lang->doc->docLang->createdByUserAt = 'Creator {name} at {time}';
$lang->doc->docLang->editedByUserAt = 'Edited by {name} at {time}';
$lang->doc->docLang->docInfo = 'Document Info';
$lang->doc->docLang->docStatus = $lang->doc->status;
$lang->doc->docLang->creator = $lang->doc->addedBy;
$lang->doc->docLang->createDate = $lang->doc->addedDate;
$lang->doc->docLang->modifier = $lang->doc->editedBy;
$lang->doc->docLang->editDate = $lang->doc->editedDate;
$lang->doc->docLang->collectCount = $lang->doc->docCollects;
$lang->doc->docLang->collected = 'Added to Favorited';
$lang->doc->docLang->history = $lang->history;
$lang->doc->docLang->updateHistory = $lang->doc->updateInfo;
$lang->doc->docLang->updateInfoFormat = 'Updated by {name} at {time}';
$lang->doc->docLang->noUpdateInfo = 'No update history.';
$lang->doc->docLang->enterFullscreen = 'Full Screen';
$lang->doc->docLang->exitFullscreen = 'Exit Full Screen';
$lang->doc->docLang->collapse = 'Collapse';
$lang->doc->docLang->draft = $lang->doc->statusList['draft'];
$lang->doc->docLang->released = $lang->doc->statusList['normal'];
$lang->doc->docLang->attachment = $lang->doc->files;
$lang->doc->docLang->docTitleRequired = 'Document title is required. ';
$lang->doc->docLang->docTitlePlaceholder = 'Enter document title.';
$lang->doc->docLang->noDataYet = 'No data.';
$lang->doc->docLang->position = $lang->doc->position;
$lang->doc->docLang->relateObject = 'Related Items';
$lang->doc->docLang->showHasDocsOnlyProduct = 'Show only products with docs';
$lang->doc->docLang->showHasDocsOnlyProject = 'Show only projects with docs';
$lang->doc->docLang->showClosedProduct = 'Show closed products';
$lang->doc->docLang->showClosedProject = 'Show closed projects';
$lang->doc->docLang->noProducts = 'No products.';
$lang->doc->docLang->noProjects = 'No projects.';
$lang->doc->docLang->productMine = 'Managed by Me';
$lang->doc->docLang->projectMine = 'My Involvement';
$lang->doc->docLang->productOther = 'Others';
$lang->doc->docLang->projectOther = 'Others';
$lang->doc->docLang->accessDenied = $lang->doc->accessDenied;
$lang->doc->docLang->convertToNewDoc = 'Convert document';
$lang->doc->docLang->convertToNewDocConfirm = 'The new document format uses a modern block-based editor for an enhanced experience. Are you sure you want to convert this template to the new format? Once saved as a draft or published, you cannot revert to the legacy editor.';
$lang->doc->docLang->created = 'created';
$lang->doc->docLang->edited = 'edited';
$lang->doc->docLang->notSaved = 'Unsaved';
$lang->doc->docLang->oldDocEditingTip = 'This document was created with the legacy editor and is now being edited with the new editor. Saving will convert it to the new format.';
$lang->doc->docLang->switchToOldEditor = 'Switch to legacy editor';
$lang->doc->docLang->zentaoList = $lang->doc->zentaoList;
$lang->doc->docLang->list = $lang->doc->list;
$lang->doc->docLang->loadingFile = 'Downloading images...';
$lang->doc->docLang->needEditable = $lang->doc->needEditable;
$lang->doc->docLang->addChapter = $lang->doc->addChapter;
$lang->doc->docLang->editChapter = $lang->doc->editChapter;
$lang->doc->docLang->sortChapter = $lang->doc->sortChapter;
$lang->doc->docLang->deleteChapter = $lang->doc->deleteChapter;
$lang->doc->docLang->addSubChapter = $lang->doc->addSubChapter;
$lang->doc->docLang->addSameChapter = $lang->doc->addSameChapter;
$lang->doc->docLang->addSubDoc = $lang->doc->addSubDoc;
$lang->doc->docLang->chapterName = $lang->doc->chapterName;
$lang->doc->docLang->autoSaveHint = 'Auto-saved.';
$lang->doc->docLang->editing = 'Editing';
$lang->doc->docLang->restoreVersionHint = 'Restore to version';
$lang->doc->docLang->restoreVersion = 'Restore';
$lang->doc->docLang->restoreVersionConfirm = 'This will create a new version using the content from version {version}. Do you want to continue?';
$lang->doc->docLang->frozenTips = $lang->doc->frozenTips;
$lang->doc->docLang->aiTask = 'AI Teammate Task';
$lang->docTemplate->types = array();
$lang->docTemplate->types['plan'] = 'Plan';
$lang->docTemplate->types['story'] = 'Story';
$lang->docTemplate->types['design'] = 'Design';
$lang->docTemplate->types['dev'] = 'Development';
$lang->docTemplate->types['test'] = 'Test';
$lang->docTemplate->types['desc'] = 'Description';
$lang->docTemplate->types['other'] = 'Others';
$lang->docTemplate->builtInScopes = array();
$lang->docTemplate->builtInScopes['rnd'] = array();
$lang->docTemplate->builtInScopes['or'] = array();
$lang->docTemplate->builtInScopes['lite'] = array();
$lang->docTemplate->builtInScopes['rnd']['product'] = 'Product';
$lang->docTemplate->builtInScopes['rnd']['project'] = 'Project';
$lang->docTemplate->builtInScopes['rnd']['execution'] = 'Execution';
$lang->docTemplate->builtInScopes['rnd']['personal'] = 'Personal';
$lang->docTemplate->builtInScopes['or']['market'] = 'Marketing';
$lang->docTemplate->builtInScopes['or']['product'] = 'Product';
$lang->docTemplate->builtInScopes['or']['personal'] = 'Personal';
$lang->docTemplate->builtInScopes['lite']['project'] = 'Project';
$lang->docTemplate->builtInScopes['lite']['personal'] = 'Personal';

79
module/editor/lang/ru.php Normal file
View file

@ -0,0 +1,79 @@
<?php
$lang->editor->common = 'Editor';
$lang->editor->api = 'API';
$lang->editor->index = 'Home Page';
$lang->editor->newMethod = 'New Method';
$lang->editor->extend = 'Extension';
$lang->editor->api = 'API';
$lang->editor->newLang = 'New Language';
$lang->editor->newConfig = 'New Config';
$lang->editor->newHook = 'New Hook';
$lang->editor->newExtend = 'New Extension';
$lang->editor->newPage = 'New Page';
$lang->editor->override = 'Overwrite';
$lang->editor->edit = 'Edit Extension';
$lang->editor->save = 'Save Page';
$lang->editor->delete = 'Delete Page';
$lang->editor->moduleList = 'Module List';
$lang->editor->filePath = "Extension:";
$lang->editor->sourceFile = 'Source File:';
$lang->editor->fileName = "File Name:";
$lang->editor->isOverride = "Overwrite Duplicated Files";
$lang->editor->exampleHook = "(e.g. ***.html.hook.php)";
$lang->editor->exampleJs = "(e.g. ***.js)";
$lang->editor->exampleCss = "(e.g. ***.css)";
$lang->editor->examplePHP = "(e.g. ***.php)";
$lang->editor->pageName = "Page Name:";
$lang->editor->deleteConfirm = 'Are you sure you want to delete it?';
$lang->editor->extendConfirm = 'Are you sure you want to reuse the existing code?';
$lang->editor->repeatFile = 'Duplicate file name.';
$lang->editor->repeatPage = 'This page already exists. Do you want to overwrite it?';
$lang->editor->noticeOkFile = "For security reasons, the system needs to verify your administrator identity. n Please log in to the server where ZenTao is installed and create the file %s. n Notes: \n 1. The file content should be empty.n 2. If the file already exists, delete it and create it again.";
$lang->editor->editFileError = 'Only ZenTao files can be modified!';
$lang->editor->turnOff = "If you do not need the editor feature, you can disable it here.";
$lang->editor->notExists = "The directory does not exist. Please create it first by running『mkdir -p %s』.";
$lang->editor->notWritable = "Unable to write — permission may be denied. Please try running『chmod 777 -R %s』";
$lang->editor->notDelete = 'Unable to delete. Please check your permissions.';
$lang->editor->emptyFileName = 'Please enter a file name.';
$lang->editor->onlyLocalVisit = "This feature can only be accessed from IP: 127.0.0.1. <a href='https://api.zentao.pm/goto.php?item=howtodevelop&from=en' target='_blank'>Help</a>";
$lang->editor->translate['config.php'] = 'config';
$lang->editor->translate['control.php'] = 'control';
$lang->editor->translate['model.php'] = 'model';
$lang->editor->modules['action'] = 'System Log';
$lang->editor->modules['admin'] = 'Admin';
$lang->editor->modules['api'] = 'API';
$lang->editor->modules['bug'] = 'Bug';
$lang->editor->modules['build'] = 'Build';
$lang->editor->modules['common'] = 'Common Module';
$lang->editor->modules['company'] = 'Organization';
$lang->editor->modules['convert'] = 'Import From Other Systems';
$lang->editor->modules['dept'] = 'Department';
$lang->editor->modules['doc'] = 'Doc';
$lang->editor->modules['extension'] = 'Add-on';
$lang->editor->modules['file'] = 'File';
$lang->editor->modules['group'] = 'Permission Group';
$lang->editor->modules['index'] = 'Home Page';
$lang->editor->modules['install'] = 'Installation';
$lang->editor->modules['misc'] = 'Misc';
$lang->editor->modules['my'] = 'Dashboard';
$lang->editor->modules['product'] = $lang->productCommon;
$lang->editor->modules['productplan'] = 'Plan';
$lang->editor->modules['project'] = $lang->projectCommon;
$lang->editor->modules['execution'] = $lang->executionCommon;
$lang->editor->modules['qa'] = 'Test';
$lang->editor->modules['release'] = 'Release';
$lang->editor->modules['report'] = 'Report';
$lang->editor->modules['search'] = 'Search';
$lang->editor->modules['story'] = $lang->URCommon;
$lang->editor->modules['task'] = 'Task';
$lang->editor->modules['testcase'] = 'Test Case';
$lang->editor->modules['testtask'] = 'Test Request';
$lang->editor->modules['todo'] = 'To-do';
$lang->editor->modules['tree'] = 'Module Management';
$lang->editor->modules['upgrade'] = 'Upgrade';
$lang->editor->modules['user'] = 'User';

62
module/entry/lang/ru.php Normal file
View file

@ -0,0 +1,62 @@
<?php
$lang->entry->common = 'Application';
$lang->entry->list = 'Application List';
$lang->entry->api = 'API';
$lang->entry->webhook = 'Webhook';
$lang->entry->log = 'Effort';
$lang->entry->setting = 'Settings';
$lang->entry->browse = 'View Application';
$lang->entry->create = 'Add Application';
$lang->entry->edit = 'Edit Application';
$lang->entry->delete = 'Delete Application';
$lang->entry->createKey = 'Regenerate Key';
$lang->entry->id = 'ID';
$lang->entry->name = 'Name';
$lang->entry->account = 'Account';
$lang->entry->code = 'Code';
$lang->entry->freePasswd = 'Passwordless Login';
$lang->entry->key = 'Key';
$lang->entry->ip = 'IP';
$lang->entry->desc = 'Description';
$lang->entry->createdBy = 'Creator';
$lang->entry->createdDate = 'Created on';
$lang->entry->editedby = 'Last Edited by';
$lang->entry->editedDate = 'Edited on';
$lang->entry->date = 'Requested on';
$lang->entry->url = 'Request URL';
$lang->entry->calledTime = 'Call Time';
$lang->entry->deleted = 'Deleted';
$lang->entry->confirmDelete = 'Are you sure you want to delete this application?';
$lang->entry->help = 'Help';
$lang->entry->notify = 'Notification';
$lang->entry->helpLink = 'https://www.zentao.net/book/zentaopmshelp/integration-287.html';
$lang->entry->notifyLink = 'https://www.zentao.net/book/zentaopmshelp/301.html';
$lang->entry->summaryTip = '%s applications on this page.';
$lang->entry->note = new stdClass();
$lang->entry->note->name = 'Authorized App Name';
$lang->entry->note->code = 'Authorized App code must be alphanumeric.';
$lang->entry->note->ip = "Allowed IPs (Separate with commas. Wildcards like 192.168.1. are supported).";
$lang->entry->note->allIP = 'No Restrictions';
$lang->entry->note->account = 'Authorized App Account';
$lang->entry->freePasswdList[1] = 'Enable';
$lang->entry->freePasswdList[0] = 'Disable';
$lang->entry->errmsg['PARAM_CODE_MISSING'] = 'Missing code parameter.';
$lang->entry->errmsg['PARAM_TOKEN_MISSING'] = 'Missing token parameter.';
$lang->entry->errmsg['SESSION_CODE_MISSING'] = 'Missing session code.';
$lang->entry->errmsg['EMPTY_KEY'] = 'App key not set.';
$lang->entry->errmsg['INVALID_TOKEN'] = 'Invalid token.';
$lang->entry->errmsg['SESSION_VERIFY_FAILED'] = 'Session verification failed.';
$lang->entry->errmsg['IP_DENIED'] = 'Access denied for this IP.';
$lang->entry->errmsg['ACCOUNT_UNBOUND'] = 'No user linked.';
$lang->entry->errmsg['INVALID_ACCOUNT'] = 'User does not exist.';
$lang->entry->errmsg['EMPTY_ENTRY'] = 'App does not exist.';
$lang->entry->errmsg['CALLED_TIME'] = 'Token has expired.';
$lang->entry->errmsg['ERROR_TIMESTAMP'] = 'Invalid timestamp.';

27
module/epic/lang/ru.php Normal file
View file

@ -0,0 +1,27 @@
<?php
global $app, $config;
$app->loadLang('story');
$lang->epic = clone $lang->story;
foreach($lang->epic as $key => $value)
{
if(!is_string($value)) continue;
if(strpos($value, $lang->SRCommon) !== false) $lang->epic->$key = str_replace($lang->SRCommon, $lang->ERCommon, $value);
}
$lang->epic->common = $lang->ERCommon;
$lang->epic->stageList = array();
$lang->epic->stageList[''] = '';
$lang->epic->stageList['wait'] = 'Not started';
if($config->edition == 'ipd')
{
$lang->epic->stageList['inroadmap'] = 'In Roadmap';
$lang->epic->stageList['incharter'] = 'In Charter';
}
$lang->epic->stageList['planned'] = 'Planned';
$lang->epic->stageList['projected'] = 'Projected';
$lang->epic->stageList['developing'] = 'In development';
$lang->epic->stageList['delivering'] = 'Delivering';
$lang->epic->stageList['delivered'] = 'Delivered';
$lang->epic->stageList['closed'] = 'Closed';

View file

@ -0,0 +1,699 @@
<?php
/**
* The execution module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package execution
* @version $Id: en.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
/* Fields. */
$lang->execution->allExecutions = 'All ' . $lang->execution->common . 's';
$lang->execution->allExecutionAB = 'Execution List';
$lang->execution->id = $lang->executionCommon . ' ID';
$lang->execution->type = $lang->executionCommon . ' Type';
$lang->execution->name = "{$lang->executionCommon} Name";
$lang->execution->code = "{$lang->executionCommon} Code";
$lang->execution->projectName = $lang->projectCommon;
$lang->execution->project = $lang->projectCommon;
$lang->execution->execId = "{$lang->execution->common} ID";
$lang->execution->execName = "{$lang->execution->common} Name";
$lang->execution->execCode = "{$lang->execution->common} Code";
$lang->execution->execType = 'Execution Type';
$lang->execution->lifetime = $lang->projectCommon . ' Duration';
$lang->execution->attribute = 'Phase Type';
$lang->execution->percent = 'Workload %';
$lang->execution->milestone = 'Milestone';
$lang->execution->parent = $lang->projectCommon;
$lang->execution->path = 'Path';
$lang->execution->grade = 'Grade';
$lang->execution->output = 'Output';
$lang->execution->version = 'Version';
$lang->execution->parentVersion = 'Parent Version';
$lang->execution->planDuration = 'Plan Duration';
$lang->execution->realDuration = 'Real Duration';
$lang->execution->openedVersion = 'Opened Version';
$lang->execution->lastEditedBy = 'Last EditedBy';
$lang->execution->lastEditedDate = 'Last EditedDate';
$lang->execution->suspendedDate = 'Suspended Date';
$lang->execution->vision = 'Vision';
$lang->execution->displayCards = 'Max cards per column';
$lang->execution->fluidBoard = 'Column Width';
$lang->execution->stage = 'Phase';
$lang->execution->pri = 'Priority';
$lang->execution->openedBy = 'Opened by';
$lang->execution->openedDate = 'Opened Date';
$lang->execution->closedBy = 'Closed by';
$lang->execution->closedDate = 'Closed Date';
$lang->execution->canceledBy = 'Canceled by';
$lang->execution->canceledDate = 'Canceled Date';
$lang->execution->begin = 'Planned Start';
$lang->execution->end = 'Planned End';
$lang->execution->dateRange = 'Plan Duration';
$lang->execution->realBeganAB = 'Actual Start';
$lang->execution->realEndAB = 'Actual End';
$lang->execution->teamCount = 'number of people';
$lang->execution->realBegan = 'Actual Begin';
$lang->execution->realEnd = 'Actual End';
$lang->execution->to = 'To';
$lang->execution->days = ' Days';
$lang->execution->day = ' Days';
$lang->execution->workHour = ' Hours';
$lang->execution->workHourUnit = 'h';
$lang->execution->totalHours = ' Available Hours';
$lang->execution->totalDays = ' Available Days';
$lang->execution->status = $lang->executionCommon . ' Status';
$lang->execution->execStatus = 'Status';
$lang->execution->subStatus = 'Sub Status';
$lang->execution->desc = "{$lang->executionCommon} Description";
$lang->execution->execDesc = 'Description';
$lang->execution->owner = 'Owner';
$lang->execution->PO = "{$lang->executionCommon} Owner";
$lang->execution->PM = "{$lang->executionCommon} Manager";
$lang->execution->execPM = "Execution Manager";
$lang->execution->QD = 'Test Manager';
$lang->execution->RD = 'Release Manager';
$lang->execution->release = 'Release';
$lang->execution->acl = 'Access Control';
$lang->execution->auth = 'Privileges';
$lang->execution->teamName = 'Team Name';
$lang->execution->teamSetting = 'Team Setting';
$lang->execution->updateOrder = 'Rank';
$lang->execution->order = "Rank {$lang->executionCommon}";
$lang->execution->orderAB = "Rank";
$lang->execution->products = "Link {$lang->productCommon}";
$lang->execution->whitelist = 'Whitelist';
$lang->execution->addWhitelist = 'Add Whitelist';
$lang->execution->unbindWhitelist = 'Remove Whitelist';
$lang->execution->totalEstimate = 'Estimates';
$lang->execution->totalConsumed = 'Cost';
$lang->execution->totalLeft = 'Left';
$lang->execution->progress = ' Progress';
$lang->execution->hours = 'Estimates: %s, Cost: %s, Left: %s.';
$lang->execution->viewBug = 'Bugs';
$lang->execution->noProduct = "No {$lang->productCommon} yet.";
$lang->execution->noStory = "No Stories yet.";
$lang->execution->createStory = "Create Story";
$lang->execution->storyTitle = "Story Name";
$lang->execution->storyView = "Story Detail";
$lang->execution->all = "All {$lang->executionCommon}s";
$lang->execution->undone = 'Unfinished ';
$lang->execution->unclosed = 'Unclosed';
$lang->execution->closedExecution = 'Closed Execution';
$lang->execution->typeDesc = "OPS {$lang->executionCommon} has no {$lang->SRCommon}, Bug, Build, or Test features.";
$lang->execution->mine = 'Mine: ';
$lang->execution->involved = 'Mine';
$lang->execution->other = 'Others';
$lang->execution->deleted = 'Deleted';
$lang->execution->delayed = 'Delayed';
$lang->execution->product = $lang->execution->products;
$lang->execution->readjustTime = "Adjust {$lang->executionCommon} Begin and End";
$lang->execution->readjustTask = 'Adjust Task Begin and End';
$lang->execution->effort = 'Effort';
$lang->execution->storyEstimate = 'Story Estimate';
$lang->execution->newEstimate = 'New Estimate';
$lang->execution->reestimate = 'Reestimate';
$lang->execution->selectRound = 'Select Round';
$lang->execution->average = 'Average';
$lang->execution->relatedMember = 'Team';
$lang->execution->member = 'Member';
$lang->execution->watermark = 'Exported by ZenTao';
$lang->execution->burnXUnit = '(Date)';
$lang->execution->burnYUnit = '(Hours)';
$lang->execution->count = '(Count)';
$lang->execution->waitTasks = 'Waiting Tasks';
$lang->execution->viewByUser = 'By User';
$lang->execution->oneProduct = "Only one stage can be linked {$lang->productCommon}";
$lang->execution->noLinkProduct = "Not linked {$lang->productCommon}!";
$lang->execution->recent = 'Recent visits: ';
$lang->execution->noTeam = 'No team members at the moment';
$lang->execution->or = ' or ';
$lang->execution->selectProject = 'Please select ' . $lang->projectCommon;
$lang->execution->unfoldClosed = 'Unfold Closed';
$lang->execution->editName = 'Edit Name';
$lang->execution->setWIP = 'WIP Settings';
$lang->execution->sortColumn = 'Kanban Card Sorting';
$lang->execution->batchCreateStory = "Batch create {$lang->SRCommon}";
$lang->execution->batchCreateTask = 'Batch create task';
$lang->execution->kanbanNoLinkProduct = "Kanban not linked {$lang->productCommon}";
$lang->execution->myTask = "My Task";
$lang->execution->list = 'List';
$lang->execution->allProject = 'All';
$lang->execution->method = 'Method';
$lang->execution->sameAsParent = "Same as parent";
$lang->execution->selectStoryPlan = 'Select Plan';
$lang->execution->parentStage = 'Parent Stage';
/* Fields of zt_team. */
$lang->execution->root = 'Root';
$lang->execution->estimate = 'Estimate';
$lang->execution->estimateHours = 'Estimate';
$lang->execution->consumed = 'Consumed';
$lang->execution->consumedHours = 'Cost';
$lang->execution->left = 'Left';
$lang->execution->leftHours = 'Left';
$lang->execution->copyTeamTip = "copy {$lang->projectCommon}/{$lang->execution->common} team members";
$lang->execution->daysGreaterProject = 'Days cannot be greater than days of execution 『%s』';
$lang->execution->errorHours = 'Hours/Day cannot be greater than『24』';
$lang->execution->agileplusMethodTip = "When creating executions in an Agile Plus {$lang->projectCommon}, both {$lang->executionCommon} and Kanban management methods are supported.";
$lang->execution->typeTip = "The sub-stages of other types can be created under the parent stage of the 'mix' type, while the type of other parent-child levels is consistent.";
$lang->execution->waterfallTip = "In the Waterfall {$lang->projectCommon} or in the Waterfall + {$lang->projectCommon},";
$lang->execution->progressTip = 'All Progress = Consumed / (Consumed + Left)';
$lang->execution->limitedTip = "Limited users can only edit tasks that are relevant to them and cannot create new tasks. Relevant tasks include those assigned to them, completed tasks, canceled tasks, closed tasks, and the last edited tasks, but exclude those copied to them. \nIf a user was not a limited user before but is now classified as one, they will still have permissions for tasks they created in the past.";
$lang->execution->stageFrozenTip = 'After the stage are baselined, %s is not allowed.';
$lang->execution->createChildStage = 'create child stage';
$lang->execution->ganttDrag = 'Drag';
$lang->execution->frozenTip = 'Stage %s has been frozen and will not be editable.';
$lang->execution->start = 'Start';
$lang->execution->activate = 'Activate';
$lang->execution->putoff = 'Delay';
$lang->execution->suspend = 'Suspend';
$lang->execution->close = 'Close';
$lang->execution->export = 'Export';
$lang->execution->next = "Next";
$lang->execution->endList[7] = '1 Week';
$lang->execution->endList[14] = '2 Weeks';
$lang->execution->endList[31] = '1 Month';
$lang->execution->endList[62] = '2 Months';
$lang->execution->endList[93] = '3 Months';
$lang->execution->endList[186] = '6 Months';
$lang->execution->endList[365] = '1 Year';
$lang->execution->lifeTimeList['short'] = "Short-Term";
$lang->execution->lifeTimeList['long'] = "Long-Term";
$lang->execution->lifeTimeList['ops'] = "CI&CD";
$lang->execution->cfdTypeList['story'] = "View by {$lang->SRCommon}";
$lang->execution->cfdTypeList['task'] = "View by task";
$lang->execution->cfdTypeList['bug'] = "View by bug";
$lang->team->account = 'User';
$lang->team->realname = 'Name';
$lang->team->role = 'Role';
$lang->team->roleAB = 'My Role';
$lang->team->join = 'Joined';
$lang->team->hours = 'Hours/day';
$lang->team->days = 'Day';
$lang->team->totalHours = 'Total Hours';
$lang->team->limited = 'Limited User';
$lang->team->limitedList['yes'] = 'Yes';
$lang->team->limitedList['no'] = 'No';
$lang->execution->basicInfo = 'Basic Information';
$lang->execution->otherInfo = 'Other Information';
/* Field value list. */
$lang->execution->statusList['wait'] = 'Waiting';
$lang->execution->statusList['doing'] = 'Doing';
$lang->execution->statusList['suspended'] = 'Suspended';
$lang->execution->statusList['closed'] = 'Closed';
$lang->execution->aclList['open'] = "Inherited {$lang->projectCommon} ACL (for who can access the current {$lang->projectCommon})";
$lang->execution->aclList['private'] = "Private (for team members and {$lang->projectCommon} stakeholders)";
$lang->execution->kanbanAclList['open'] = "Inherited {$lang->projectCommon}";
$lang->execution->kanbanAclList['private'] = 'Private';
$lang->execution->storyPoint = 'Story Point';
$lang->execution->burnByList['left'] = 'View by left hours';
$lang->execution->burnByList['estimate'] = "View by plan hours";
$lang->execution->burnByList['storyPoint'] = 'View by story point';
/* Method list. */
$lang->execution->index = "{$lang->executionCommon} Home";
$lang->execution->task = 'Task List';
$lang->execution->groupTask = 'Group View';
$lang->execution->story = 'Story List';
$lang->execution->qa = 'QA';
$lang->execution->bug = 'Bug List';
$lang->execution->testcase = 'Test Case List';
$lang->execution->dynamic = 'Recents';
$lang->execution->latestDynamic = 'Recents';
$lang->execution->build = 'Build List';
$lang->execution->testtask = 'Request';
$lang->execution->burn = 'Burndown';
$lang->execution->computeBurn = 'Update';
$lang->execution->computeCFD = 'Compute Cumulative Flow diagrams';
$lang->execution->fixFirst = 'Edit 1st-Day Estimates';
$lang->execution->team = 'Members';
$lang->execution->doc = 'Document';
$lang->execution->doclib = 'Document Library';
$lang->execution->manageProducts = 'Linked ' . $lang->productCommon . 's';
$lang->execution->linkStory = 'Link Stories';
$lang->execution->linkStoryByPlan = 'Link Stories by Plan';
$lang->execution->linkPlan = 'Linked Plans';
$lang->execution->unlinkStoryTasks = 'Unlink';
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
$lang->execution->view = "Execution Detail";
$lang->execution->startAction = "Start Execution";
$lang->execution->activateAction = "Activate Execution";
$lang->execution->delayAction = "Delay Execution";
$lang->execution->suspendAction = "Suspend Execution";
$lang->execution->closeAction = "Close Execution";
$lang->execution->testtaskAction = "Execution Request";
$lang->execution->teamAction = "Execution Members";
$lang->execution->kanbanAction = "Execution Kanban";
$lang->execution->printKanbanAction = "Print Kanban";
$lang->execution->treeAction = "Execution Tree View";
$lang->execution->exportAction = "Export Execution";
$lang->execution->computeBurnAction = "Update Burndown";
$lang->execution->create = "Create {$lang->executionCommon}";
$lang->execution->createExec = "Create {$lang->execution->common}";
$lang->execution->createAction = "Create {$lang->execution->common}";
$lang->execution->copyExec = "Copy {$lang->execution->common}";
$lang->execution->copy = "Copy {$lang->executionCommon}";
$lang->execution->delete = "Delete {$lang->executionCommon}";
$lang->execution->deleteAB = "Delete Execution";
$lang->execution->browse = "{$lang->executionCommon} List";
$lang->execution->edit = "Edit {$lang->executionCommon}";
$lang->execution->editAction = "Edit Execution";
$lang->execution->batchEdit = "Edit";
$lang->execution->batchEditAction = "Batch Edit";
$lang->execution->batchChangeStatus = "Batch Change Status";
$lang->execution->manageMembers = 'Manage Team';
$lang->execution->manageTeamMember = 'Members';
$lang->execution->unlinkMember = 'Remove Member';
$lang->execution->unlinkStory = 'Unlink Story';
$lang->execution->unlinkStoryAB = 'Unlink';
$lang->execution->batchUnlinkStory = 'Batch Unlink Stories';
$lang->execution->importTask = 'Transfer Task';
$lang->execution->importPlanStories = 'Link Stories by Plan';
$lang->execution->importBug = 'Import Bug';
$lang->execution->tree = 'Tree';
$lang->execution->treeTask = 'Show Task Only';
$lang->execution->treeStory = 'Show Story Only';
$lang->execution->treeViewTask = 'Tree View Task';
$lang->execution->treeViewStory = 'Tree View Story';
$lang->execution->storyKanban = 'Story Kanban';
$lang->execution->storySort = 'Rank Story';
$lang->execution->importPlanStory = "{$lang->executionCommon} is created!\nDo you want to import {$lang->common->story} that have been linked to the plan? Only active %s can be imported.";
$lang->execution->importEditPlanStory = "{$lang->executionCommon} is edited!\nDo you want to import {$lang->common->story} that have been linked to the plan? The %s in the draft will be automatically filtered out when imported.";
$lang->execution->importBranchPlanStory = "{$lang->executionCommon} is created!\nDo you want to import {$lang->common->story} that have been linked to the plan? Only the activation %s of the branch associated with this " . $lang->executionCommon. ' will be associated with the import';
$lang->execution->importBranchEditPlanStory = "{$lang->executionCommon} is edited!\nDo you want to import {$lang->common->story} that have been linked to the plan? Only the activation %s of the branch associated with this " . $lang->executionCommon. ' will be associated with the import';
$lang->execution->needLinkProducts = "The execution has not been linked with any {$lang->productCommon}, and the related functions cannot be used. Please link the {$lang->productCommon} first and try again.";
$lang->execution->iteration = 'Iterations';
$lang->execution->iterationInfo = '%s Iterations';
$lang->execution->viewAll = 'View All';
$lang->execution->testreport = 'Test Report';
$lang->execution->taskKanban = 'Task Kanban';
$lang->execution->RDKanban = 'Research & Development Kanban';
/* Group browsing. */
$lang->execution->allTasks = 'All';
$lang->execution->assignedToMe = 'Assigned to Me';
$lang->execution->myInvolved = 'My Involvement';
$lang->execution->assignedByMe = 'Assigned by Me';
$lang->execution->statusSelects[''] = 'More';
$lang->execution->statusSelects['wait'] = 'Waiting';
$lang->execution->statusSelects['doing'] = 'Doing';
$lang->execution->statusSelects['undone'] = 'Uncompleted';
$lang->execution->statusSelects['finishedbyme'] = 'Completed by Me';
$lang->execution->statusSelects['done'] = 'Done';
$lang->execution->statusSelects['closed'] = 'Closed';
$lang->execution->statusSelects['cancel'] = 'Cancelled';
$lang->execution->statusSelects['delayed'] = 'Delayed';
$lang->execution->groups[''] = 'View by Groups';
$lang->execution->groups['story'] = 'Group by Story';
$lang->execution->groups['status'] = 'Group by Status';
$lang->execution->groups['pri'] = 'Group by Priority';
$lang->execution->groups['assignedTo'] = 'Group by Assigned to';
$lang->execution->groups['finishedBy'] = 'Group by Finished by';
$lang->execution->groups['closedBy'] = 'Group by Closed by';
$lang->execution->groups['type'] = 'Group by Type';
$lang->execution->groupFilter['story']['all'] = 'All';
$lang->execution->groupFilter['story']['linked'] = 'Tasks linked to stories';
$lang->execution->groupFilter['pri']['all'] = 'All';
$lang->execution->groupFilter['pri']['noset'] = 'Not Set';
$lang->execution->groupFilter['assignedTo']['undone'] = 'Unfinished';
$lang->execution->groupFilter['assignedTo']['all'] = 'All';
$lang->execution->byQuery = 'Search';
/* Query condition list. */
$lang->execution->allExecution = "All {$lang->executionCommon}s";
$lang->execution->aboveAllProduct = "All the above {$lang->productCommon}s";
$lang->execution->aboveAllExecution = "All the above {$lang->executionCommon}s";
/* Page prompt. */
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
$lang->execution->batchCreateStoryTips = "Please select the {$lang->productCommon} that needs to be created in batches";
$lang->execution->selectExecution = "Select {$lang->executionCommon}";
$lang->execution->beginAndEnd = 'Duration';
$lang->execution->lblStats = 'Effort';
$lang->execution->DurationStats = 'Duration Information';
$lang->execution->stats = 'Available: <strong>%s</strong>h. Estimate: <strong>%s</strong>h. Cost: <strong>%s</strong>h. Left: <strong>%s</strong>h.';
$lang->execution->taskSummary = "Total: <strong>%s</strong> task(s). Waiting: <strong>%s</strong>. Doing: <strong>%s</strong>. Estimate: <strong>%s</strong>h. Cost: <strong>%s</strong>h. Left: <strong>%s</strong>h.";
$lang->execution->pageSummary = "Total tasks: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimate: <strong>%estimate%</strong>h. Cost: <strong>%consumed%</strong>h. Left: <strong>%left%</strong>h.";
$lang->execution->checkedSummary = "Selected: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimate: <strong>%estimate%</strong>h. Cost: <strong>%consumed%</strong>h. Left: <strong>%left%</strong>h.";
$lang->execution->executionSummary = "Total {$lang->executionCommon}: <strong>%s</strong>.";
$lang->execution->pageExecSummary = "Total {$lang->executionCommon}: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>.";
$lang->execution->checkedExecSummary = "Selected: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>.";
$lang->execution->memberHoursAB = "%s has <strong>%s</ strong> hours.";
$lang->execution->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s Available Hours</div><div class="segment-value">%s</div></div></div></div>';
$lang->execution->countSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Tasks</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Doing</div><div class="segment-value"><span class="label label-dot primary"></span> %s</div></div><div class="segment"><div class="segment-title">Waiting</div><div class="segment-value"><span class="label label-dot secondary"></span> %s</div></div></div></div>';
$lang->execution->timeSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Estimate</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Cost</div><div class="segment-value text-red">%s</div></div><div class="segment"><div class="segment-title">Left</div><div class="segment-value">%s</div></div></div></div>';
$lang->execution->groupSummaryAB = "<div>Tasks <strong>%s :</strong><span class='text-muted'>Waiting</span> %s &nbsp; <span class='text-muted'>Doing</span> %s</div><div>Estimate <strong>%s :</strong><span class='text-muted'>Cost</span> %s &nbsp; <span class='text-muted'>Left</span> %s</div>";
$lang->execution->wbs = "Create Task";
$lang->execution->batchWBS = "Batch Create Tasks";
$lang->execution->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php?item=burndown' target='_blank' title='How to update the Burndown Chart?'>Help <i class='icon icon-help text-gray'></i></a>";
$lang->execution->whyNoStories = "No story can be linked. Please check whether there is any story in {$lang->executionCommon} which is linked to {$lang->productCommon} and make sure it has been reviewed.";
$lang->execution->projectNoStories = "No story can be linked. Please check whether there is any story in {$lang->projectCommon} and make sure it has been reviewed.";
$lang->execution->productStories = "Stories linked to {$lang->executionCommon} are the subeset of stories linked to {$lang->productCommon}. Stories can only be linked after they pass the review. <a href='%s'> Link Stories</a> now.";
$lang->execution->haveBranchDraft = "There are %s draft stories or not associated with this {$lang->executionCommon} can't be linked.";
$lang->execution->haveDraft = "There are %s draft stories with this {$lang->executionCommon} can't be linked.";
$lang->execution->doneExecutions = 'Finished';
$lang->execution->selectDept = 'Select Department';
$lang->execution->selectDeptTitle = 'Select User';
$lang->execution->copyTeam = 'Copy Team';
$lang->execution->copyFromTeam = "Copy from {$lang->execution->common} Team: <strong>%s</strong>";
$lang->execution->noMatched = "No {$lang->execution->common} including '%s'can be found.";
$lang->execution->copyTitle = "Choose a {$lang->execution->common} to copy.";
$lang->execution->copyNoExecution = "No {$lang->execution->common} can be copied.";
$lang->execution->copyFromExecution = "Copy from {$lang->execution->common} <strong>%s</strong>";
$lang->execution->cancelCopy = 'Cancel Copy';
$lang->execution->byPeriod = 'By Time';
$lang->execution->byUser = 'By User';
$lang->execution->noExecution = "No {$lang->executionCommon}. ";
$lang->execution->noExecutions = "No {$lang->execution->common}.";
$lang->execution->noPrintData = "No data can be printed.";
$lang->execution->noMembers = 'No team members yet. ';
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100%s, and the total workload under the current {$lang->productCommon} is: %s";
$lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the {$lang->projectCommon}, and can be directly linked with {$lang->SRCommon} of the {$lang->productCommon} linked with the sprint/stage)";
$lang->execution->copyTeamTitle = "Choose a {$lang->project->common} or {$lang->execution->common} Team to copy.";
/* Interactive prompts. */
$lang->execution->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
$lang->execution->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
$lang->execution->confirmUnlinkStory = "After Story is removed, cased linked to Story will be reomoved and tasks linked to Story will be cancelled. Do you want to continue?";
$lang->execution->confirmBatchUnlinkStory = "After Story is removed, cased linked to Story will be reomoved and tasks linked to Story will be cancelled.";
$lang->execution->confirmSync = "After modifying the {$lang->projectCommon}, in order to maintain the consistency of data, the data of {$lang->productCommon}s, {$lang->SRCommon}s, teams and whitelist associated with the implementation will be synchronized to the new {$lang->projectCommon}. Please know.";
$lang->execution->confirmUnlinkExecutionStory = "Do you want to unlink this Story from the {$lang->projectCommon}?";
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the {$lang->projectCommon}. Remove it from the {$lang->executionCommon}, then try again.";
$lang->execution->notAllowRemoveProducts = "The story %s of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
$lang->execution->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
$lang->execution->errorSameProducts = "{$lang->executionCommon} cannot be linked to the same {$lang->productCommon} twice.";
$lang->execution->errorSameBranches = "{$lang->executionCommon} cannot be linked to the same branch twice";
$lang->execution->errorBegin = "The start time of {$lang->executionCommon} cannot be less than the start time of the {$lang->projectCommon} %s.";
$lang->execution->errorEnd = "The end time of {$lang->executionCommon} cannot be greater than the end time %s of the {$lang->projectCommon}.";
$lang->execution->errorLesserProject = "The start time of {$lang->executionCommon} cannot be less than the start time of the {$lang->projectCommon} %s.";
$lang->execution->errorGreaterProject = "The end time of {$lang->executionCommon} cannot be greater than the end time %s of the {$lang->projectCommon}.";
$lang->execution->errorCommonBegin = "The start date of {$lang->executionCommon} should be ≥ the start date of {$lang->projectCommon} : %s.";
$lang->execution->errorCommonEnd = "The deadline of {$lang->executionCommon} should be ≤ the deadline of {$lang->projectCommon} : %s.";
$lang->execution->errorLesserParent = 'The begin cannot be less than the begin of the parent stage to which it belongs: %s.';
$lang->execution->errorGreaterParent = 'The end cannot be greater than the end of the parent stage to which it belongs:%s.';
$lang->execution->errorNameRepeat = "Child %s of the same parent stage cannot have the same name.";
$lang->execution->errorAttrMatch = "Parent stage's attribute is [%s], the attribute needs to be consistent with the parent stage.";
$lang->execution->errorLesserPlan = "『%s』cannot be less than the plan start time『%s』。";
$lang->execution->errorParentExecution = "The current stage is the parent stage, and it's unaccessible.";
$lang->execution->errorFloat = '『%s』should be a number no less than 0 and can be a decimal.';
$lang->execution->accessDenied = "Your access to {$lang->executionCommon} is denied!";
$lang->execution->tips = 'Note';
$lang->execution->afterInfo = "%s is created. Next you can ";
$lang->execution->setTeam = 'Set Team';
$lang->execution->createTask = 'Create Task';
$lang->execution->goback = "Go Back Task List";
$lang->execution->gobackExecution = "Go Back {$lang->execution->common} List";
$lang->execution->noweekend = 'Exclude Weekend';
$lang->execution->nodelay = 'Exclude Delay Date';
$lang->execution->withweekend = 'Include Weekend';
$lang->execution->withdelay = 'Include Delay Date';
$lang->execution->unitTemplate = ' (Unit:%s)';
$lang->execution->interval = 'Intervals ';
$lang->execution->fixFirstWithLeft = 'Update hours left too';
$lang->execution->unfinishedExecution = "This {$lang->executionCommon} has ";
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
$lang->execution->projectNotEmpty = "{$lang->projectCommon} cannot be empty.";
$lang->execution->confirmStoryToTask = $lang->SRCommon . '%s are converted to tasks in the current. Do you want to convert them anyways?';
$lang->execution->ge = "『%s』should be >= actual begin『%s』.";
$lang->execution->storyDragError = "The {$lang->SRCommon} is not active. Please activate and drag again.";
$lang->execution->countTip = ' (%s member)';
$lang->execution->pleaseInput = "Enter";
$lang->execution->week = 'week';
$lang->execution->checkedExecutions = "Seleted %s {$lang->executionCommon}.";
$lang->execution->hasStartedTaskOrSubStage = "Tasks or subphases under %s %s have already started, cannot be modified, and have been filtered.";
$lang->execution->hasSuspendedOrClosedChildren = "The sub-stages under stage %s are not all suspended or closed, cannot be modified, and have been filtered.";
$lang->execution->hasNotClosedChildren = "The sub-stages under stage %s are not all closed, cannot be modified, and have been filtered.";
$lang->execution->hasStartedTask = "The task under %s %s has already started, cannot be modified, and has been filtered.";
$lang->execution->cannotManageProducts = 'The ' . strtolower($lang->project->common). ' model of this ' . strtolower($lang->execution->common) . " is %s and this " . strtolower($lang->execution->common) . " cannot be associated with {$lang->productCommon}.";
$lang->execution->confirmCloseExecution = "There are unclosed tasks under this {$lang->executionCommon}: %s, are you sure you want to close the {$lang->executionCommon}?";
$lang->execution->confirmBatchCloseExecution = "There are unclosed tasks in %s, are you sure you want to close the {$lang->executionCommon}s";
/* Statistics. */
$lang->execution->charts = new stdclass();
$lang->execution->charts->burn = new stdclass();
$lang->execution->charts->burn->graph = new stdclass();
$lang->execution->charts->burn->graph->caption = " Burndown Chart";
$lang->execution->charts->burn->graph->xAxisName = "Date";
$lang->execution->charts->burn->graph->yAxisName = "Hour";
$lang->execution->charts->burn->graph->baseFontSize = 12;
$lang->execution->charts->burn->graph->formatNumber = 0;
$lang->execution->charts->burn->graph->animation = 0;
$lang->execution->charts->burn->graph->rotateNames = 1;
$lang->execution->charts->burn->graph->showValues = 0;
$lang->execution->charts->burn->graph->reference = 'Ideal';
$lang->execution->charts->burn->graph->actuality = 'Actual';
$lang->execution->charts->burn->graph->delay = 'Delay';
$lang->execution->charts->cfd = new stdclass();
$lang->execution->charts->cfd->cfdTip = "<p>
1. The CFD(Cumulative Flow Diagram)reflects the trend of accumulated workload at each stage over time.<br>
2. The horizontal axis represents the date, and the vertical axis represents the number of work items.<br>
3. To learn about the team's delivery, you can calculate the WIP quantity, delivery rate and average lead time through the CFD. <p>";
$lang->execution->charts->cfd->cycleTime = 'Average cycle time';
$lang->execution->charts->cfd->cycleTimeTip = 'Average cycle time of each card from development start to completion';
$lang->execution->charts->cfd->throughput = 'Throughput Rate';
$lang->execution->charts->cfd->throughputTip = 'Throughput Rate = WIP / Average cycle time';
$lang->execution->charts->cfd->begin = 'Begin';
$lang->execution->charts->cfd->end = 'End';
$lang->execution->charts->cfd->errorBegin = 'The start time cannot be greater than the end time.';
$lang->execution->charts->cfd->errorDateRange = 'The Cumulative Flow Diagram(CFD) only provides data display within 3 months.';
$lang->execution->charts->cfd->dateRangeTip = 'CFD only shows the data within 3 months';
$lang->execution->placeholder = new stdclass();
$lang->execution->placeholder->code = "Abbreviation of {$lang->executionCommon} name";
$lang->execution->placeholder->totalLeft = "Hours estimated on the first day of the {$lang->executionCommon}.";
$lang->execution->selectGroup = new stdclass();
$lang->execution->selectGroup->done = '(Done)';
$lang->execution->orderList['order_asc'] = "Story Rank Ascending";
$lang->execution->orderList['order_desc'] = "Story Rank Descending";
$lang->execution->orderList['pri_asc'] = "Story Priority Ascending";
$lang->execution->orderList['pri_desc'] = "Story Priority Descending";
$lang->execution->orderList['stage_asc'] = "Story Phase Ascending";
$lang->execution->orderList['stage_desc'] = "Story Phase Descending";
$lang->execution->kanban = "Kanban";
$lang->execution->kanbanSetting = "Settings";
$lang->execution->setKanban = "Set Kanban";
$lang->execution->resetKanban = "Reset";
$lang->execution->printKanban = "Print Kanban";
$lang->execution->fullScreen = "Full Screen";
$lang->execution->bugList = "Bugs";
$lang->execution->kanbanHideCols = 'Closed & Cancelled Columns';
$lang->execution->kanbanShowOption = 'Unfold';
$lang->execution->kanbanColsColor = 'Customize Column Color';
$lang->execution->kanbanCardsUnit = 'X';
$lang->execution->kanbanViewList['all'] = 'All';
$lang->execution->kanbanViewList['story'] = "{$lang->SRCommon}";
$lang->execution->kanbanViewList['bug'] = 'Bug';
$lang->execution->kanbanViewList['task'] = 'Task';
$lang->execution->teamWords = 'Team';
$lang->kanbanSetting = new stdclass();
$lang->kanbanSetting->noticeReset = 'Do you want to reset Kanban?';
$lang->kanbanSetting->optionList['0'] = 'Hide';
$lang->kanbanSetting->optionList['1'] = 'Show';
$lang->printKanban = new stdclass();
$lang->printKanban->common = 'Print Kanban';
$lang->printKanban->content = 'Content';
$lang->printKanban->print = 'Print';
$lang->printKanban->taskStatus = 'Status';
$lang->printKanban->typeList['all'] = 'All';
$lang->printKanban->typeList['increment'] = 'Increment';
$lang->execution->typeList[''] = '';
$lang->execution->typeList['stage'] = 'Phase';
$lang->execution->typeList['sprint'] = $lang->executionCommon;
$lang->execution->typeList['kanban'] = 'Kanban';
$lang->execution->featureBar['tree']['all'] = 'All';
$lang->execution->featureBar['task']['all'] = $lang->execution->allTasks;
$lang->execution->featureBar['task']['unclosed'] = $lang->execution->unclosed;
$lang->execution->featureBar['task']['assignedtome'] = $lang->execution->assignedToMe;
$lang->execution->featureBar['task']['myinvolved'] = $lang->execution->myInvolved;
$lang->execution->featureBar['task']['assignedbyme'] = $lang->execution->assignedByMe;
$lang->execution->featureBar['task']['needconfirm'] = 'Changed';
$lang->execution->featureBar['task']['status'] = $lang->more;
$lang->execution->moreSelects['task']['status']['wait'] = 'Waiting';
$lang->execution->moreSelects['task']['status']['doing'] = 'Doing';
$lang->execution->moreSelects['task']['status']['undone'] = 'Uncompleted';
$lang->execution->moreSelects['task']['status']['finishedbyme'] = 'Completed by Me';
$lang->execution->moreSelects['task']['status']['done'] = 'Done';
$lang->execution->moreSelects['task']['status']['closed'] = 'Closed';
$lang->execution->moreSelects['task']['status']['cancel'] = 'Cancelled';
$lang->execution->moreSelects['task']['status']['delayed'] = 'Delayed';
$lang->execution->featureBar['all']['all'] = $lang->execution->all;
$lang->execution->featureBar['all']['undone'] = $lang->execution->undone;
$lang->execution->featureBar['all']['wait'] = $lang->execution->statusList['wait'];
$lang->execution->featureBar['all']['doing'] = $lang->execution->statusList['doing'];
$lang->execution->featureBar['all']['suspended'] = $lang->execution->statusList['suspended'];
$lang->execution->featureBar['all']['delayed'] = $lang->execution->delayed;
$lang->execution->featureBar['all']['closed'] = $lang->execution->statusList['closed'];
$lang->execution->featureBar['bug']['all'] = 'All';
$lang->execution->featureBar['bug']['unresolved'] = 'Active';
$lang->execution->featureBar['build']['all'] = 'Build List';
$lang->execution->featureBar['story']['all'] = 'All';
$lang->execution->featureBar['story']['unclosed'] = 'Open';
$lang->execution->featureBar['story']['draft'] = 'Draft';
$lang->execution->featureBar['story']['reviewing'] = 'Reviewing';
$lang->execution->featureBar['testcase']['all'] = 'All';
$lang->execution->featureBar['testcase']['wait'] = 'Waiting Review';
$lang->execution->featureBar['testcase'][] = '-';
$lang->execution->featureBar['testcase']['needconfirm'] = "{$lang->common->story} Changed";
$lang->execution->featureBar['importtask']['all'] = $lang->execution->importTask;
$lang->execution->featureBar['importbug']['all'] = $lang->execution->importBug;
$lang->execution->myExecutions = 'Mine';
$lang->execution->doingProject = "Ongoing {$lang->projectCommon}s";
$lang->execution->kanbanColType['wait'] = $lang->execution->statusList['wait'] . ' ' . $lang->execution->common;
$lang->execution->kanbanColType['doing'] = $lang->execution->statusList['doing'] . ' ' . $lang->execution->common;
$lang->execution->kanbanColType['suspended'] = $lang->execution->statusList['suspended'] . ' ' . $lang->execution->common;
$lang->execution->kanbanColType['closed'] = $lang->execution->statusList['closed'] . ' ' . $lang->execution->common . '(The recent two executions)';
$lang->execution->treeLevel = array();
$lang->execution->treeLevel['all'] = 'Expand All';
$lang->execution->treeLevel['root'] = 'Collapse All';
$lang->execution->treeLevel['task'] = 'Stories&Tasks';
$lang->execution->treeLevel['story'] = 'Only Stories';
$lang->execution->action = new stdclass();
$lang->execution->action->opened = '$date, created by <strong>$actor</strong>. $extra' . "\n";
$lang->execution->action->managed = '$date, managed by <strong>$actor</strong>. $extra' . "\n";
$lang->execution->action->edited = '$date, edited by <strong>$actor</strong>. $extra' . "\n";
$lang->execution->action->extra = "Linked {$lang->productCommon}s is %s.";
$lang->execution->action->startbychildactivate = '$date, activating the sub stage sets the execution status as Ongoing.' . "\n";
$lang->execution->action->waitbychilddelete = '$date, deleting the sub stage sets the execution status as waiting.' . "\n";
$lang->execution->action->closebychilddelete = '$date, deleting the sub stage sets the execution status as closing.' . "\n";
$lang->execution->action->closebychildclose = '$date, closing the sub stage sets the execution status as closing.' . "\n";
$lang->execution->action->waitbychild = '$date, the stage status is <strong>Wait</strong> as the system judges that all its sub-stages statuses are <strong>Wait</strong>.';
$lang->execution->action->suspendedbychild = '$date, the stage status is <strong>Suspended</strong> as the system judges that all its sub-stages statuses are <strong>Suspended</strong>.';
$lang->execution->action->closedbychild = '$date, the stage status is <strong>Closed</strong> as the system judges that all its sub-stages are <strong>Closed</strong>.';
$lang->execution->action->startbychildstart = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Started</strong>.';
$lang->execution->action->startbychildactivate = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Activated</strong>.';
$lang->execution->action->startbychildsuspend = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Suspended</strong>.';
$lang->execution->action->startbychildclose = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Closed</strong>.';
$lang->execution->action->startbychildcreate = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Created</strong>. ';
$lang->execution->action->startbychildedit = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Edited</strong>';
$lang->execution->action->startbychild = '$date, the stage status is <strong>Doing</strong> as the system judges that its sub-stages are <strong>Activated</strong>.';
$lang->execution->action->waitbychild = '$date, the stage status is <strong>Wait</strong> as the system judges that its sub-stages are <strong>Edited</strong>';
$lang->execution->action->suspendbychild = '$date, the stage status is <strong>Suspended</strong> as the system judges that its sub-stages are <strong>Edited</strong>';
$lang->execution->action->closebychild = '$date, the stage status is <strong>Closed</strong> as the system judges that its sub-stages are <strong>Edited</strong>';
$lang->execution->startbychildactivate = 'activated';
$lang->execution->waitbychilddelete = 'stop';
$lang->execution->closebychilddelete = 'closed';
$lang->execution->closebychildclose = 'closed';
$lang->execution->waitbychild = 'activated';
$lang->execution->suspendedbychild = 'suspended';
$lang->execution->closedbychild = 'closed';
$lang->execution->startbychildstart = 'started';
$lang->execution->startbychildactivate = 'activated';
$lang->execution->startbychildsuspend = 'activated';
$lang->execution->startbychildclose = 'activated';
$lang->execution->startbychildcreate = 'activated';
$lang->execution->startbychildedit = 'activated';
$lang->execution->startbychild = 'activated';
$lang->execution->waitbychild = 'stop';
$lang->execution->suspendbychild = 'suspended';
$lang->execution->closebychild = 'closed';
$lang->execution->statusColorList = array();
$lang->execution->statusColorList['wait'] = '#0991FF';
$lang->execution->statusColorList['doing'] = '#0BD986';
$lang->execution->statusColorList['suspended'] = '#fdc137';
$lang->execution->statusColorList['closed'] = '#838A9D';
if(!isset($lang->execution->gantt)) $lang->execution->gantt = new stdclass();
$lang->execution->gantt->progressColor[0] = '#B7B7B7';
$lang->execution->gantt->progressColor[1] = '#FF8287';
$lang->execution->gantt->progressColor[2] = '#FFC73A';
$lang->execution->gantt->progressColor[3] = '#6BD5F5';
$lang->execution->gantt->progressColor[4] = '#9DE88A';
$lang->execution->gantt->progressColor[5] = '#9BA8FF';
$lang->execution->gantt->color[0] = '#E7E7E7';
$lang->execution->gantt->color[1] = '#FFDADB';
$lang->execution->gantt->color[2] = '#FCECC1';
$lang->execution->gantt->color[3] = '#D3F3FD';
$lang->execution->gantt->color[4] = '#DFF5D9';
$lang->execution->gantt->color[5] = '#EBDCF9';
$lang->execution->gantt->textColor[0] = '#2D2D2D';
$lang->execution->gantt->textColor[1] = '#8D0308';
$lang->execution->gantt->textColor[2] = '#9D4200';
$lang->execution->gantt->textColor[3] = '#006D8E';
$lang->execution->gantt->textColor[4] = '#1A8100';
$lang->execution->gantt->textColor[5] = '#660ABC';
$lang->execution->gantt->stage = new stdclass();
$lang->execution->gantt->stage->progressColor = '#70B8FE';
$lang->execution->gantt->stage->color = '#D2E7FC';
$lang->execution->gantt->stage->textColor = '#0050A7';
$lang->execution->gantt->defaultColor = '#EBDCF9';
$lang->execution->gantt->defaultProgressColor = '#9BA8FF';
$lang->execution->gantt->defaultTextColor = '#660ABC';
$lang->execution->gantt->bar_height = '24';
$lang->execution->gantt->exportImg = 'Export as Image';
$lang->execution->gantt->exportPDF = 'Export as PDF';
$lang->execution->gantt->exporting = 'Exporting...';
$lang->execution->gantt->exportFail = 'Failed to export.';
$lang->execution->boardColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#7FBB00', '#424BAC', '#66c5f8', '#EC2761');
$lang->execution->linkBranchStoryByPlanTips = "When a scheduled association requirement is executed, only the active requirements associated with the %s of this execution are imported.";
$lang->execution->linkNormalStoryByPlanTips = "Only the active requirements are imported when the scheduled requirements are associated.";
$lang->execution->featureBar['dynamic']['all'] = 'All';
$lang->execution->featureBar['dynamic']['today'] = 'Today';
$lang->execution->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->execution->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->execution->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->execution->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->execution->featureBar['dynamic']['lastMonth'] = 'Last Month';
$lang->execution->featureBar['team']['all'] = 'Members';
$lang->execution->featureBar['managemembers']['all'] = 'Manage Team';

View file

@ -0,0 +1,126 @@
<?php
/**
* The extension module en file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package extension
* @version $Id$
* @link https://www.zentao.net
*/
$lang->extension->common = 'Extension';
$lang->extension->id = 'ID';
$lang->extension->browse = 'View Add-ons';
$lang->extension->install = 'Install Add-on';
$lang->extension->installAuto = 'Auto Install';
$lang->extension->installForce = 'Force Install';
$lang->extension->uninstall = 'Uninstall';
$lang->extension->uninstallAction = 'Uninstall Add-on';
$lang->extension->activate = 'Activate';
$lang->extension->activateAction = 'Activate Add-on';
$lang->extension->deactivate = 'Deactivate';
$lang->extension->deactivateAction = 'Deactivate Add-on';
$lang->extension->obtain = 'Get Add-ons';
$lang->extension->view = 'Details';
$lang->extension->downloadAB = 'Download';
$lang->extension->upload = 'Local Installation';
$lang->extension->erase = 'Remove';
$lang->extension->eraseAction = 'Remove Add-on';
$lang->extension->upgrade = 'Upgrade Add-on';
$lang->extension->agreeLicense = 'I agree.';
$lang->extension->browseAction = 'Add-on List';
$lang->extension->structure = 'Directory Structure';
$lang->extension->structureAction = 'Directory Structure';
$lang->extension->installed = 'Installed';
$lang->extension->deactivated = 'Deactivated';
$lang->extension->available = 'Downloaded';
$lang->extension->name = 'Add-on Name';
$lang->extension->code = 'Code';
$lang->extension->desc = 'Description';
$lang->extension->type = 'Type';
$lang->extension->dirs = 'Installation Directory';
$lang->extension->files = 'Installation Files';
$lang->extension->status = 'Status';
$lang->extension->version = 'Version';
$lang->extension->latest = '<small>Latest version<strong><a href="%s" target="_blank" class="extension">%s</a></strong>, compatible with ZenTao <a href="https://api.zentao.net/goto.php?item=latest" target="_blank" class="alert-link"><strong>%s</strong></a></small>';
$lang->extension->author = 'Author';
$lang->extension->license = 'License';
$lang->extension->site = 'Website';
$lang->extension->downloads = 'Downloads';
$lang->extension->compatible = 'Compatibility';
$lang->extension->grade = 'Score';
$lang->extension->depends = 'Dependency';
$lang->extension->expiredDate = 'Expiration Date';
$lang->extension->zentaoCompatible = 'Compatible Versions';
$lang->extension->installedTime = 'Installed Time';
$lang->extension->life = 'lifetime';
$lang->extension->publicList[0] = 'Manual Download';
$lang->extension->publicList[1] = 'Auto Download';
$lang->extension->compatibleList[0] = 'Unknown';
$lang->extension->compatibleList[1] = 'Compatible with';
$lang->extension->obtainOfficial[0] = 'Third-party';
$lang->extension->obtainOfficial[1] = 'Official';
$lang->extension->obtainOfficial[2] = 'Official Certification';
$lang->extension->byDownloads = 'Most Popular';
$lang->extension->byAddedTime = 'Latest Release';
$lang->extension->byUpdatedTime = 'Latest Update';
$lang->extension->bySearch = 'Search';
$lang->extension->byCategory = 'Category';
$lang->extension->featureBar['browse']['installed'] = $lang->extension->installed;
$lang->extension->featureBar['browse']['deactivated'] = $lang->extension->deactivated;
$lang->extension->featureBar['browse']['available'] = $lang->extension->available;
$lang->extension->installFailed = '%s failed. Error:';
$lang->extension->uninstallFailed = 'Uninstall failed. Error: ';
$lang->extension->confirmUninstall = 'Uninstalling this add-on will remove or modify related database tables. Do you want to proceed?';
$lang->extension->installFinished = 'Congratulations! The add-on was successfully %s.';
$lang->extension->refreshPage = 'Refresh';
$lang->extension->uninstallFinished = 'This add-on is uninstalled.';
$lang->extension->deactivateFinished = 'This add-on is deactivated.';
$lang->extension->activateFinished = 'This add-on is activated.';
$lang->extension->eraseFinished = 'This add-on is removed.';
$lang->extension->unremovedFiles = 'Some files or directories could not be deleted. Please remove them manually.';
$lang->extension->executeCommands = '<h3>Execute the following commands to fix these issues:</h3>';
$lang->extension->successDownloadedPackage = 'Add-on downloaded successfully.';
$lang->extension->successCopiedFiles = 'Files copied successfully.';
$lang->extension->successInstallDB = 'Database installed successfully.';
$lang->extension->viewInstalled = 'View Installed Add-ons';
$lang->extension->viewAvailable = 'View Available Add-ons';
$lang->extension->viewDeactivated = 'View Deactivated Extensions';
$lang->extension->backDBFile = 'Add-on data has been backed up to %s.';
$lang->extension->upgradeExt = 'Upgrade';
$lang->extension->installExt = 'Install';
$lang->extension->upgradeVersion = '(Upgrade from %s to %s)';
$lang->extension->waring = 'Warning';
$lang->extension->errorOccurs = 'Error:';
$lang->extension->errorGetModules = 'Failed to fetch add-on categories from www.sanplex.com. This may be due to network issues. Please check your connection and refresh the page.';
$lang->extension->errorGetExtensions = 'Failed to get the add-on from www.sanplex.com. This may be due to network issues.';
$lang->extension->errorDownloadPathNotFound = 'The download directory <strong>%s</strong> does not exist.<br />For Linux, please execute the command: <strong>mkdir -p %s</strong> to fix it.';
$lang->extension->errorDownloadPathNotWritable = 'The download directory <strong>%s</strong> is not writable.<br />For Linux, please execute the command: <strong>sudo chmod 777 %s</strong> to fix it.';
$lang->extension->errorPackageFileExists = 'A file named <strong>%s</strong> already exists in the download directory. <strong>To %s again, <a href="%s" class="alert-link">please click here</a>.</strong>';
$lang->extension->errorDownloadFailed = 'Download failed. Please try again. If the problem persists, please download the file manually and install it via the upload function.';
$lang->extension->errorMd5Checking = 'The downloaded file is incomplete. Please try again. If the problem persists, please download the file manually and install it via the upload function.';
$lang->extension->errorCheckIncompatible = 'This add-on is incompatible with your version of ZenTao and may not function correctly after %s. <strong>You can <a href="#" load-url="%s" onclick="loadUrl(this)" class="btn size-sm">Force %s</a> or <a href="#" load-url="%s" onclick="loadParentUrl(this)" class="btn size-sm">Cancel</a>.</strong>';
$lang->extension->errorFileConflicted = 'The following file conflicts were detected:<br/>%s<strong>You can <a href="#" load-url="%s" onclick="loadUrl(this)" class="btn size-sm">Overwrite</a> or <a href="#" load-url="%s" onclick="loadParentUrl(this)" class="btn size-sm">Cancel</a>.</strong>';
$lang->extension->errorPackageNotFound = 'File <strong>%s</strong> not found. The automatic download may have failed. Please try downloading again.';
$lang->extension->errorTargetPathNotWritable = 'The target directory <strong>%s</strong> is not writable.';
$lang->extension->errorTargetPathNotExists = 'The target directory <strong>%s</strong> does not exist.';
$lang->extension->errorInstallDB = 'Failed to execute database query. Error: %s';
$lang->extension->errorConflicts = 'Conflicted with “%s”!';
$lang->extension->errorDepends = 'The following add-on dependencies are missing or have incorrect versions:<br/><br/>%s';
$lang->extension->errorIncompatible = 'This add-on is incompatible with your version of ZenTao.';
$lang->extension->errorUninstallDepends = 'Cannot uninstall. Add-on "%s" depends on this add-on.';
$lang->extension->errorExtracted = 'Failed to extract package file %s. It may not be a valid ZIP file. Error:<br/>%s';
$lang->extension->errorFileNotEmpty = 'Uploaded file cannot be empty.';

91
module/file/lang/ru.php Executable file
View file

@ -0,0 +1,91 @@
<?php
/**
* The file module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package file
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->file = new stdclass();
$lang->file->common = 'Attachments';
$lang->file->id = 'ID';
$lang->file->objectType = 'Item Type';
$lang->file->objectID = 'Item ID';
$lang->file->deleted = 'Deleted';
$lang->file->uploadImages = 'Upload Images';
$lang->file->download = 'Download Attachments';
$lang->file->uploadDate = 'Uploaded on';
$lang->file->edit = 'Rename';
$lang->file->inputFileName = 'Attachment Name';
$lang->file->delete = 'Delete Attachment';
$lang->file->label = 'Label';
$lang->file->maxUploadSize = "(%s max)";
$lang->file->applyTemplate = "Apply Template";
$lang->file->tplTitle = "Template Name";
$lang->file->tplTitleAB = "Templates";
$lang->file->setPublic = "Set Public Template";
$lang->file->exportFields = "Export";
$lang->file->exportRange = "Export Range";
$lang->file->defaultTPL = "Default Template";
$lang->file->setExportTPL = "Settings";
$lang->file->preview = "Preview";
$lang->file->previewFile = "Preview Attachments";
$lang->file->addFile = 'Add';
$lang->file->beginUpload = 'upload';
$lang->file->uploadSuccess = 'Uploaded';
$lang->file->batchExport = 'Export in batches';
$lang->file->downloadFile = 'Download';
$lang->file->playFailed = 'Video preview failed. Please contact your admin.';
$lang->file->exportData = "Export Data";
$lang->file->pathname = 'Path';
$lang->file->title = 'Title';
$lang->file->fileName = 'File Name';
$lang->file->untitled = 'Untitled';
$lang->file->extension = 'File type';
$lang->file->size = 'Size';
$lang->file->encoding = 'Encoding';
$lang->file->addedBy = 'Added by';
$lang->file->addedDate = 'Added on';
$lang->file->downloads = 'Downloads';
$lang->file->extra = 'Notes';
$lang->file->attachmentName = "Attachment Name";
$lang->file->sourceObject = "Source Object";
$lang->file->sourceID = "Source ID";
$lang->file->dragFile = 'Drag files here';
$lang->file->childTaskTips = 'It\'s a sub-task if there is a \'>\' before the name.';
$lang->file->uploadImagesExplain = 'Note: Please upload images in .jpg, .jpeg, .gif, or .png format. The image name will be the name of the story and the image will be the description.';
$lang->file->uploadingImages = '<strong>%s</strong> files being uploaded.';
$lang->file->saveAndNext = 'Save and Next';
$lang->file->importPager = 'Total: <strong>%s</strong>. Page <strong>%s</strong> of <strong>%s</strong>';
$lang->file->importSummary = "Total: <strong id='totalAmount'>%s</strong> records. %s per page, <strong id='times'>%s</strong> batches in total.";
$lang->file->accessDenied = 'Access denied to this file!';
$lang->file->uploadImagesTip = 'Click or drag to upload. Supported formats: jpg, jpeg, gif, and png.';
$lang->file->waitDownloadTip = 'Exporting files. Please wait...';
$lang->file->errorNotExists = "<span class='text-red'>'%s' is not found.</span>";
$lang->file->errorCanNotWrite = "<span class='text-red'>'%s' is not writable. Please change its permissions. Enter <span class='code'>sudo chmod -R 777 '%s'</span></span> in Linux.";
$lang->file->confirmDelete = "Delete this attachment?";
$lang->file->errorFileSize = "File exceeds %s and may not upload successfully.";
$lang->file->errorFileUpload = "Upload failed: File size may exceed the limit.";
$lang->file->errorFileFormat = "Upload failed: Unsupported file format.";
$lang->file->errorFileMove = "Upload failed: Error moving file.";
$lang->file->errorFileCount = "Limit: %s files. Excess files will be ignored.";
$lang->file->dangerFile = "Upload blocked: Security risk detected in selected file.";
$lang->file->errorSuffix = 'Invalid format, .zip files ONLY!';
$lang->file->errorExtract = 'Extraction failed. The file may be corrupted or contains restricted content.';
$lang->file->errorUploadEmpty = 'No files pending upload';
$lang->file->fileNotFound = 'File not found. It may have been deleted from the storage.';
$lang->file->fileContentEmpty = 'Empty file detected. Please check and try again.';
$lang->file->bizGuide = 'Upgrade to ZenTao %s edition to use Excel import/export.';
$lang->file->uploadError[1] = 'File size exceeds limit. Please increase upload_max_filesize and post_max_size in php.ini.';
$lang->file->uploadError[2] = 'The uploaded file exceeds the MAX_FILE_SIZE value specified in the HTML form.';
$lang->file->uploadError[3] = 'The file was only partially uploaded. Please try again.';
$lang->file->uploadError[4] = 'No file was uploaded';
$lang->file->uploadError[5] = 'Empty file detected. Please try again.';

16
module/git/lang/ru.php Normal file
View file

@ -0,0 +1,16 @@
<?php
/**
* The git module zh-cn file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package git
* @version $Id$
* @link https://www.zentao.net
*/
/* Methods. */
$lang->git->common = 'Git';
$lang->git->cat = 'View Source Code';
$lang->git->diff = 'Compare Source Code';
$lang->git->apiSync = 'API: Synchronize Git Logs';

43
module/gitea/lang/ru.php Normal file
View file

@ -0,0 +1,43 @@
<?php
$lang->gitea->common = 'Gitea';
$lang->gitea->browse = 'Gitea Browse';
$lang->gitea->search = 'Search';
$lang->gitea->create = 'Create Gitea';
$lang->gitea->edit = 'Edit Gitea';
$lang->gitea->view = 'Gitea Details';
$lang->gitea->delete = 'Delete Gitea';
$lang->gitea->confirmDelete = 'Do you want to delete this Gitea server?';
$lang->gitea->bindUser = 'Bind User';
$lang->gitea->giteaAvatar = 'Avatar';
$lang->gitea->giteaAccount = 'Gitea Account';
$lang->gitea->giteaEmail = 'Email';
$lang->gitea->zentaoAccount = 'Zentao Account';
$lang->gitea->bindingStatus = 'Binding Status';
$lang->gitea->all = 'All';
$lang->gitea->notBind = 'Not bind';
$lang->gitea->binded = 'Binded';
$lang->gitea->bindDynamic = '%s and Zentao user %s';
$lang->gitea->bindedError = 'The bound user has been deleted or modified. Please bind again.';
$lang->gitea->zentaoEmail = 'Zentao User\'s Email';
$lang->gitea->accountDesc = '(Automatically match users with the same email)';
$lang->gitea->bindStatus['binded'] = $lang->gitea->binded;
$lang->gitea->bindStatus['notBind'] = "<span class='text-danger'>{$lang->gitea->notBind}</span>";
$lang->gitea->bindStatus['bindedError'] = "<span class='text-danger'>{$lang->gitea->bindedError}</span>";
$lang->gitea->browseAction = 'Gitea List';
$lang->gitea->deleteAction = 'Delete Gitea';
$lang->gitea->id = 'ID';
$lang->gitea->name = "Application Name";
$lang->gitea->url = 'Server URL';
$lang->gitea->token = 'Token';
$lang->gitea->tokenLimit = "The current token has no admin privilege. Please regenerate one with root user in Gitea.";
$lang->gitea->hostError = "So the current Gitea server address is invalid, please confirm that the current server can be accessed and try again.";
$lang->gitea->bindUserError = "Can not bind users repeatedly %s";
$lang->gitea->server = "Server List";
$lang->gitea->lblCreate = 'Create Gitea Server';
$lang->gitea->emptyError = " cannot be empty";
$lang->gitea->createSuccess = "Create success";

272
module/gitlab/lang/ru.php Normal file
View file

@ -0,0 +1,272 @@
<?php
$lang->gitlab->common = 'GitLab';
$lang->gitlab->browse = 'GitLab Browse';
$lang->gitlab->search = 'Search';
$lang->gitlab->create = 'Create GitLab';
$lang->gitlab->edit = 'Edit GitLab';
$lang->gitlab->view = 'GitLab Details';
$lang->gitlab->bindUser = 'Permission Setting';
$lang->gitlab->webhook = 'Interface: Allow Webhook Call';
$lang->gitlab->importIssue = 'Import Issue';
$lang->gitlab->delete = 'Delete GitLab';
$lang->gitlab->confirmDelete = 'Do you want to delete this GitLab server?';
$lang->gitlab->gitlabAvatar = 'Avatar';
$lang->gitlab->gitlabAccount = 'GitLab Account';
$lang->gitlab->gitlabEmail = 'GitLab User\'s Email';
$lang->gitlab->zentaoEmail = 'Zentao User\'s Email';
$lang->gitlab->zentaoAccount = 'Zentao Account';
$lang->gitlab->accountDesc = '(Automatically match users with the same email)';
$lang->gitlab->bindingStatus = 'Binding Status';
$lang->gitlab->all = 'All';
$lang->gitlab->notBind = 'Not bind';
$lang->gitlab->binded = 'Binded';
$lang->gitlab->bindedError = 'The bound user has been deleted or modified. Please bind again.';
$lang->gitlab->bindDynamic = '%s and Zentao user %s';
$lang->gitlab->serverFail = 'Connect to GitLab server failed, please check the GitLab server.';
$lang->gitlab->lastUpdate = 'Last Update';
$lang->gitlab->confirmAddWebhook = 'Are you sure about creating Webhook?';
$lang->gitlab->addWebhookSuccess = 'Webhook created successfully';
$lang->gitlab->failCreateWebhook = 'Failed to create Webhook, please view the log in tmp/log/saas.' . date('Ymd') . '.log.php';
$lang->gitlab->placeholderSearch = 'Enter name';
$lang->gitlab->bindStatus['binded'] = $lang->gitlab->binded;
$lang->gitlab->bindStatus['notBind'] = "<span class='text-danger'>{$lang->gitlab->notBind}</span>";
$lang->gitlab->bindStatus['bindedError'] = "<span class='text-danger'>{$lang->gitlab->bindedError}</span>";
$lang->gitlab->browseAction = 'GitLab List';
$lang->gitlab->deleteAction = 'Delete GitLab';
$lang->gitlab->gitlabProject = "GitLab Project";
$lang->gitlab->browseProject = "GitLab Project List";
$lang->gitlab->browseUser = "User";
$lang->gitlab->browseGroup = "GitLab Group List";
$lang->gitlab->browseBranch = "GitLab Branch List";
$lang->gitlab->browseTag = "GitLab Tag List";
$lang->gitlab->browseTagPriv = "Protected tag";
$lang->gitlab->gitlabIssue = "GitLab Issue";
$lang->gitlab->zentaoProduct = 'Zentao Product';
$lang->gitlab->objectType = 'Type'; // task, bug, story
$lang->gitlab->manageProjectMembers = 'Manage project member';
$lang->gitlab->createProject = 'Create GitLab project';
$lang->gitlab->editProject = 'Edit GitLab project';
$lang->gitlab->deleteProject = 'Delete GitLab project';
$lang->gitlab->createGroup = 'Create group';
$lang->gitlab->editGroup = 'Edit group';
$lang->gitlab->deleteGroup = 'Delete group';
$lang->gitlab->createUser = 'Create user';
$lang->gitlab->editUser = 'Edit user';
$lang->gitlab->deleteUser = 'Delete user';
$lang->gitlab->createBranch = 'Add branch';
$lang->gitlab->manageGroupMembers = 'Manage group member';
$lang->gitlab->createWebhook = 'Create Webhook';
$lang->gitlab->browseBranchPriv = 'Protect branch';
$lang->gitlab->createTag = 'Create Tag';
$lang->gitlab->deleteTag = 'Delete tag';
$lang->gitlab->saveFailed = '『%s』save failed';
$lang->gitlab->id = 'ID';
$lang->gitlab->name = "Server Name";
$lang->gitlab->url = 'Server URL';
$lang->gitlab->token = 'Token';
$lang->gitlab->defaultProject = 'Default Project';
$lang->gitlab->private = 'MD5 Verify';
$lang->gitlab->server = "Server List";
$lang->gitlab->lblCreate = 'Create GitLab Server';
$lang->gitlab->desc = 'Description';
$lang->gitlab->tokenFirst = 'When the Token is not empty, the Token will be used first';
$lang->gitlab->tips = 'When using a password, please disable the "Prevent cross-site request forgery" option in the GitLab global security settings.';
$lang->gitlab->emptyError = " cannot be empty";
$lang->gitlab->createSuccess = "Create success";
$lang->gitlab->mustBindUser = 'You have not registered the GitLab account, please contact the administrator to register.';
$lang->gitlab->noAccess = 'Permission denied';
$lang->gitlab->notCompatible = 'The current GitLab version is not compatible with ZenTao, please upgrade the GitLab version and try again';
$lang->gitlab->deleted = 'Deleted';
$lang->gitlab->placeholder = new stdclass;
$lang->gitlab->placeholder->name = '';
$lang->gitlab->placeholder->url = "Please fill in the access address of the GitLab Server homepage, as: https://gitlab.zentao.net.";
$lang->gitlab->placeholder->token = "Please fill in the access token of an account with root privileges.";
$lang->gitlab->placeholder->projectPath = "It should contain only letters, digits, underscore, hyphen and period. It should not start with hypen, or end with .git or .atom.";
$lang->gitlab->noImportableIssues = "There are currently no issues available for import.";
$lang->gitlab->tokenError = "The current token is not root rights.";
$lang->gitlab->tokenLimit = "The current token has no admin privilege. Please regenerate one with root user in GitLab.";
$lang->gitlab->hostError = "So the current GitLab server address is invalid or the current GitLab version is not compatible with ZenTao, please confirm that the current server can be accessed or contact the administrator to upgrade the GitLab version to %s or above and try again.";
$lang->gitlab->bindUserError = "Can not bind users repeatedly %s";
$lang->gitlab->importIssueError = "The execution to which this issue belongs is not selected.";
$lang->gitlab->importIssueWarn = "There is a problem of import failure, you can try to import again.";
$lang->gitlab->accessLevels[10] = 'Guest';
$lang->gitlab->accessLevels[20] = 'Reporter';
$lang->gitlab->accessLevels[30] = 'Developer';
$lang->gitlab->accessLevels[40] = 'Maintainer';
$lang->gitlab->accessLevels[50] = 'Owner';
$lang->gitlab->apiError[] = 'internal is not allowed in a private group.';
$lang->gitlab->apiError[] = 'public is not allowed in a private group.';
$lang->gitlab->apiError[] = 'is too short (minimum is 8 characters)';
$lang->gitlab->apiError[] = "can contain only letters, digits, '_', '-' and '.'. Cannot start with '-', end in '.git' or end in '.atom'";
$lang->gitlab->apiError[] = 'Branch already exists';
$lang->gitlab->apiError[] = 'Failed to save group {:path=>["has already been taken"]}';
$lang->gitlab->apiError[] = 'Failed to save group {:path=>["已经被使用"]}';
$lang->gitlab->apiError[] = '403 Forbidden';
$lang->gitlab->apiError[] = 'is invalid';
$lang->gitlab->apiError[] = 'admin is a reserved name';
$lang->gitlab->apiError[] = 'has already been taken';
$lang->gitlab->apiError[] = 'Missing CI config file';
$lang->gitlab->apiError[] = 'is too big (should be at most 200.0 KB)';
$lang->gitlab->apiError[] = 'Reference not found';
$lang->gitlab->apiError[] = 'avatar is invalid';
$lang->gitlab->apiError[] = 'file format is not supported. Please try one of the following supported formats: image/png, image/jpeg, image/gif, image/bmp, image/tiff, image/vnd.microsoft.icon';
$lang->gitlab->apiError[] = 'must not contain commonly used combinations of words and letters';
$lang->gitlab->apiError[] = 'must be greater than or equal to 0';
$lang->gitlab->apiError[] = '500 Internal Server Error';
$lang->gitlab->errorLang[] = 'You cannot set Internal as its Visibility Level, if it is private in GitLab.';
$lang->gitlab->errorLang[] = 'You cannot set Public as its Visibility Level, if it is private in GitLab.';
$lang->gitlab->errorLang[] = 'Password is too short (minimum is 8 characters)';
$lang->gitlab->errorLang[] = 'It should contain only letters, digits, underscore, hyphen and period. It should not start with hypen, or end with .git or .atom.';
$lang->gitlab->errorLang[] = 'Branch already exists.';
$lang->gitlab->errorLang[] = 'Failed to save group, path has already been taken.';
$lang->gitlab->errorLang[] = 'Failed to save group, path has already been taken.';
$lang->gitlab->errorLang[] = $lang->gitlab->noAccess;
$lang->gitlab->errorLang[] = "Is invalid";
$lang->gitlab->errorLang[] = 'Admin is a reserved name';
$lang->gitlab->errorLang[] = 'Has already been taken';
$lang->gitlab->errorLang[] = 'GitLab CI config file is missing';
$lang->gitlab->errorLang[] = 'is too big (should be at most 200.0 KB)';
$lang->gitlab->errorLang[] = 'Reference not found';
$lang->gitlab->errorLang[] = 'Avatar is invalid';
$lang->gitlab->errorLang[] = 'File format is not supported. Please try one of the following supported formats: image/png, image/jpeg, image/gif, image/bmp, image/tiff, image/vnd.microsoft.icon';
$lang->gitlab->errorLang[] = 'must not contain commonly used combinations of words and letters';
$lang->gitlab->errorLang[] = 'must be greater than or equal to 0';
$lang->gitlab->errorLang[] = '500 Internal Server Error';
$lang->gitlab->errorResonse['Email has already been taken'] = 'Email has already been taken';
$lang->gitlab->errorResonse['Username has already been taken'] = 'Username has already been taken';
$lang->gitlab->project = new stdclass;
$lang->gitlab->project->id = "Project ID";
$lang->gitlab->project->name = "Project name";
$lang->gitlab->project->create = "Create GitLab project";
$lang->gitlab->project->edit = "Edit GitLab project";
$lang->gitlab->project->url = "Project URL";
$lang->gitlab->project->path = "Project slug";
$lang->gitlab->project->description = "Project description";
$lang->gitlab->project->visibility = "Visibility Level";
$lang->gitlab->project->visibilityList['private'] = "Private(Project access must be granted explicitly to each user. If this project is part of a group, access will be granted to members of the group)";
$lang->gitlab->project->visibilityList['internal'] = "Internal(The project can be accessed by any logged in user except external users)";
$lang->gitlab->project->visibilityList['public'] = "Public(The project can be accessed without any authentication)";
$lang->gitlab->project->star = "Stars";
$lang->gitlab->project->fork = "Forks";
$lang->gitlab->project->mergeRequests = "Merge Requests";
$lang->gitlab->project->issues = "Issues";
$lang->gitlab->project->tagList = "Topics";
$lang->gitlab->project->tagListTips = "Separate topics with commas.";
$lang->gitlab->project->emptyNameError = "Project name cannot be empty.";
$lang->gitlab->project->emptyPathError = "Project slug cannot be empty.";
$lang->gitlab->project->confirmDelete = 'Do you want to delete this GitLab project?';
$lang->gitlab->project->notbindedError = 'GitLab user has not been bound, unable to modify permissions!';
$lang->gitlab->project->publicTip = 'The visible status of the current project will be modified to public, and the project can be accessed without any authentication in GitLab. ';
$lang->gitlab->user = new stdclass;
$lang->gitlab->user->id = "User ID";
$lang->gitlab->user->name = "Name";
$lang->gitlab->user->username = "Username";
$lang->gitlab->user->email = "Email";
$lang->gitlab->user->password = "Password";
$lang->gitlab->user->passwordRepeat = "Repeat Password";
$lang->gitlab->user->projectsLimit = "Projects limit";
$lang->gitlab->user->canCreateGroup = "Can create group";
$lang->gitlab->user->external = "External";
$lang->gitlab->user->externalTip = "External users cannot see internal or private projects unless access is explicitly granted. Also, external users cannot create projects, groups, or personal snippets.";
$lang->gitlab->user->bind = "Zentao user";
$lang->gitlab->user->avatar = "Avatar";
$lang->gitlab->user->skype = "Skype";
$lang->gitlab->user->linkedin = "Linkedin";
$lang->gitlab->user->twitter = "Twitter";
$lang->gitlab->user->websiteUrl = "Website url";
$lang->gitlab->user->note = "Note";
$lang->gitlab->user->createOn = "Created on";
$lang->gitlab->user->lastActivity = "Last activity";
$lang->gitlab->user->create = "Create GitLab user";
$lang->gitlab->user->edit = "Edit GitLab user";
$lang->gitlab->user->emptyError = "cannot be empty";
$lang->gitlab->user->passwordError = "The second password is inconsistent!";
$lang->gitlab->user->bindError = "The user has been bound!";
$lang->gitlab->user->confirmDelete = 'Do you want to delete this GitLab user?';
$lang->gitlab->group = new stdclass;
$lang->gitlab->group->id = "Group ID";
$lang->gitlab->group->name = "Group name";
$lang->gitlab->group->path = "Group URL";
$lang->gitlab->group->pathTip = "Changing group URL can have unintended side effects.";
$lang->gitlab->group->description = "Group description";
$lang->gitlab->group->avatar = "Group avatar";
$lang->gitlab->group->avatarTip = 'Max file size is 200 KB.';
$lang->gitlab->group->visibility = "Visibility level";
$lang->gitlab->group->visibilityList['private'] = "Private(The group and its projects can only be viewed by members)";
$lang->gitlab->group->visibilityList['internal'] = "Internal(The group and any internal projects can be viewed by any logged in user except external users)";
$lang->gitlab->group->visibilityList['public'] = "Public(The group and any public projects can be viewed without any authentication.)";
$lang->gitlab->group->permission = 'Permission';
$lang->gitlab->group->requestAccessEnabledTip = "Allow users to request access (if visibility is public or internal)";
$lang->gitlab->group->lfsEnabled = 'Large File Storage';
$lang->gitlab->group->lfsEnabledTip = "Allow projects within this group to use Git LFS(This setting can be overridden in each project)";
$lang->gitlab->group->projectCreationLevel = "Allowed to create projects";
$lang->gitlab->group->projectCreationLevelList['noone'] = "No one";
$lang->gitlab->group->projectCreationLevelList['maintainer'] = "Maintainers";
$lang->gitlab->group->projectCreationLevelList['developer'] = "Developers + Maintainers";
$lang->gitlab->group->subgroupCreationLevel = "Allowed to create projects";
$lang->gitlab->group->subgroupCreationLevelList['owner'] = "Owners";
$lang->gitlab->group->subgroupCreationLevelList['maintainer'] = "Maintainers";
$lang->gitlab->group->create = "Create Group";
$lang->gitlab->group->edit = "Edit Group";
$lang->gitlab->group->createOn = "Created on";
$lang->gitlab->group->members = "Group Members";
$lang->gitlab->group->confirmDelete = 'Do you want to delete this GitLab group?';
$lang->gitlab->group->emptyError = "cannot be empty";
$lang->gitlab->group->manageMembers = 'Manage Group Members';
$lang->gitlab->group->memberName = 'Account';
$lang->gitlab->group->memberAccessLevel = 'Access Level';
$lang->gitlab->group->memberExpiresAt = 'Expiration time';
$lang->gitlab->group->repeatError = "Group members cannot be added repeatedly";
$lang->gitlab->group->publicTip = 'The visible status of the current group will be modified to public, and the group can be accessed without any authentication in GitLab. ';
$lang->gitlab->branch = new stdclass();
$lang->gitlab->branch->name = 'Branch name';
$lang->gitlab->branch->from = 'Create from';
$lang->gitlab->branch->create = 'Create';
$lang->gitlab->branch->lastCommitter = 'Last Committer';
$lang->gitlab->branch->lastCommittedDate = 'Last Committed Date';
$lang->gitlab->branch->accessLevel = "Branch protection list";
$lang->gitlab->branch->mergeAllowed = "Allowed to merge";
$lang->gitlab->branch->pushAllowed = "Allowed to push";
$lang->gitlab->branch->placeholderSearch = "Branch name";
$lang->gitlab->branch->placeholderSelect = "Branch name";
$lang->gitlab->branch->confirmDelete = 'Branch will be writable for developers. Are you sure?';
$lang->gitlab->branch->branchCreationLevelList[40] = "Maintainers";
$lang->gitlab->branch->branchCreationLevelList[30] = "Developers + Maintainers";
$lang->gitlab->branch->branchCreationLevelList[0] = "No one";
$lang->gitlab->branch->emptyPrivNameError = "Branch cannot be empty.";
$lang->gitlab->branch->issetPrivNameError = "The protection branch already exists";
$lang->gitlab->tag = new stdclass();
$lang->gitlab->tag->name = 'Tag name';
$lang->gitlab->tag->ref = 'Create from';
$lang->gitlab->tag->lastCommitter = 'Last Committer';
$lang->gitlab->tag->lastCommittedDate = 'Last Committed Date';
$lang->gitlab->tag->placeholderSearch = "Enter branch tag";
$lang->gitlab->tag->message = 'Message';
$lang->gitlab->tag->emptyNameError = "Name cannot be empty.";
$lang->gitlab->tag->emptyRefError = "Create from cannot be empty.";
$lang->gitlab->tag->issetNameError = "The tag already exists";
$lang->gitlab->tag->confirmDelete = 'Do you want to delete this GitLab tag?';
$lang->gitlab->tag->protected = 'Protected';
$lang->gitlab->tag->accessLevel = 'Allow creation';
$lang->gitlab->tag->protectConfirmDel = 'Do you want to delete this GitLab tag protected?';
$lang->gitlab->tag->emptyPrivNameError = 'Tag cannot be empty.';
$lang->gitlab->tag->issetPrivNameError = 'The protection tag already exists.';
$lang->gitlab->featureBar['binduser']['all'] = $lang->gitlab->all;
$lang->gitlab->featureBar['binduser']['notBind'] = $lang->gitlab->notBind;
$lang->gitlab->featureBar['binduser']['binded'] = $lang->gitlab->binded;

43
module/gogs/lang/ru.php Normal file
View file

@ -0,0 +1,43 @@
<?php
$lang->gogs->common = 'Gogs';
$lang->gogs->browse = 'Gogs Browse';
$lang->gogs->search = 'Search';
$lang->gogs->create = 'Create Gogs';
$lang->gogs->edit = 'Edit Gogs';
$lang->gogs->view = 'Gogs Details';
$lang->gogs->delete = 'Delete Gogs';
$lang->gogs->confirmDelete = 'Do you want to delete this Gogs server?';
$lang->gogs->bindUser = 'Bind User';
$lang->gogs->gogsAvatar = 'Avatar';
$lang->gogs->gogsAccount = 'Gogs Account';
$lang->gogs->gogsEmail = 'Email';
$lang->gogs->zentaoAccount = 'Zentao Account';
$lang->gogs->bindingStatus = 'Binding Status';
$lang->gogs->all = 'All';
$lang->gogs->notBind = 'Not bind';
$lang->gogs->binded = 'Binded';
$lang->gogs->bindDynamic = '%s and Zentao user %s';
$lang->gogs->bindedError = 'The bound user has been deleted or modified. Please bind again.';
$lang->gogs->zentaoEmail = 'Zentao User\'s Email';
$lang->gogs->accountDesc = '(Automatically match users with the same email)';
$lang->gogs->bindStatus['binded'] = $lang->gogs->binded;
$lang->gogs->bindStatus['notBind'] = "<span class='text-danger'>{$lang->gogs->notBind}</span>";
$lang->gogs->bindStatus['bindedError'] = "<span class='text-danger'>{$lang->gogs->bindedError}</span>";
$lang->gogs->browseAction = 'Gogs List';
$lang->gogs->deleteAction = 'Delete Gogs';
$lang->gogs->id = 'ID';
$lang->gogs->name = "Application Name";
$lang->gogs->url = 'Server URL';
$lang->gogs->token = 'Token';
$lang->gogs->tokenLimit = "The current token has no admin privilege. Please regenerate one with root user in Gogs.";
$lang->gogs->hostError = "So the current Gogs server address is invalid, please confirm that the current server can be accessed and try again.";
$lang->gogs->bindUserError = "Can not bind users repeatedly %s";
$lang->gogs->server = "Server List";
$lang->gogs->lblCreate = 'Create Gogs Server';
$lang->gogs->emptyError = " cannot be empty";
$lang->gogs->createSuccess = "Create success";

665
module/group/lang/ru.php Normal file
View file

@ -0,0 +1,665 @@
<?php
/**
* The group module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package group
* @version $Id: en.php 4719 2013-05-03 02:20:28Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->group->common = 'Privilege';
$lang->group->browse = 'View Groups';
$lang->group->browseAction = 'Group List';
$lang->group->create = 'Create Group';
$lang->group->edit = 'Edit Group';
$lang->group->copy = 'Copy Group';
$lang->group->delete = 'Delete Group';
$lang->group->manageView = 'View Permissions';
$lang->group->managePriv = 'Action Permissions';
$lang->group->managePrivByGroup = 'Assign Permissions';
$lang->group->managePrivByModule = 'Assign Permissions by Modules';
$lang->group->byModuleTips = '(Hold Shift or Ctrl to select multiple)';
$lang->group->allTips = 'Checking this option allows the administrator to manage all system objects, including those created in the future.';
$lang->group->manageMember = 'Manage Members';
$lang->group->manageProjectAdmin = "Manage [Slang-~projectCommon} Administrators";
$lang->group->editManagePriv = 'Manage Permissions';
$lang->group->confirmDelete = 'Are you sure you want to delete the group "%s"?';
$lang->group->confirmDeleteAB = 'Are you sure you want to delete this?';
$lang->group->successSaved = 'Saved successfully.';
$lang->group->errorNotSaved = 'Not saved. Please ensure you have selected permission data.';
$lang->group->viewList = 'Accessible Views';
$lang->group->object = 'Manageable Objects';
$lang->group->manageProgram = 'Manageable Program';
$lang->group->manageProject = 'Manageable' . $lang->projectCommon;
$lang->group->manageExecution = 'Manageable' . $lang->execution->common;
$lang->group->manageProduct = 'Manageable' . $lang->productCommon;
$lang->group->programList = 'Accessible Programs';
$lang->group->productList = 'Accessible Products';
$lang->group->projectList = 'Accessible Projects';
$lang->group->executionList = "Accessible Executions";
$lang->group->dynamic = 'Accessible Activities';
$lang->group->noticeVisit = 'Empty means no access restrictions.';
$lang->group->noticeNoChecked = 'Please select permissions first.';
$lang->group->noneProgram = "No programs available yet.";
$lang->group->noneProduct = "No products available yet.";
$lang->group->noneExecution = "No executions available yet.";
$lang->group->project = $lang->projectCommon;
$lang->group->group = 'Group';
$lang->group->more = 'More';
$lang->group->allCheck = 'All';
$lang->group->noGroup = 'No groups available yet.';
$lang->group->repeat = "『%s』 already contains the record [%s]. Please make adjustments and try again.";
$lang->group->noneProject = 'No projects available yet.';
$lang->group->createPriv = 'Add Permission';
$lang->group->editPriv = 'Edit Permission';
$lang->group->deletePriv = 'Delete Permission';
$lang->group->privName = 'Permission Name';
$lang->group->privDesc = 'Permission Description';
$lang->group->add = 'Add';
$lang->group->privModuleName = 'Module Name';
$lang->group->privMethodName = 'Method Name';
$lang->group->privView = 'View';
$lang->group->privModule = 'Module';
$lang->group->repeatPriv = 'Method names within the same module must be unique. Please rename and try again.';
$lang->group->dependPrivTips = 'Listed below are the dependent permissions for the item selected on the left. These are mandatory.';
$lang->group->recommendPrivTips = 'Listed below are the recommended permissions for the item selected on the left. These are suggested assignments.';
$lang->group->dependPrivsSaveTip = 'Permissions and dependencies saved successfully.';
$lang->group->batchActions = 'Batch Actions';
$lang->group->batchSetDependency = 'Batch Set Dependencies';
$lang->group->batchSetRecommendation = 'Batch Set Recommendations';
$lang->group->batchDeleteDependency = 'Batch Delete Dependencies';
$lang->group->batchDeleteRecommendation = 'Batch Delete Recommendations';
$lang->group->managePrivPackage = 'Manage Permission Sets';
$lang->group->createPrivPackage = 'Create Permission Sets';
$lang->group->editPrivPackage = 'Edit Permission Sets';
$lang->group->deletePrivPackage = 'Delete Permission Sets';
$lang->group->sortPrivPackages = 'Sort Permission Sets';
$lang->group->addRecommendation = 'Add Recommendation';
$lang->group->addDependent = 'Add Dependency';
$lang->group->deleteRecommendation = 'Delete Recommendation';
$lang->group->deleteDependent = 'Delete Dependency';
$lang->group->selectedPrivs = 'Selected Permissions: %s';
$lang->group->selectModule = 'Select Module';
$lang->group->recommendPrivs = 'Recommended Permissions';
$lang->group->dependentPrivs = 'Dependent Permissions';
$lang->group->addRelation = 'Link Permissions';
$lang->group->deleteRelation = 'Unlink Permissions';
$lang->group->batchDeleteRelation = 'Batch Unlink Permissions';
$lang->group->batchChangePackage = 'Batch Edit Permission Sets';
$lang->group->id = 'ID';
$lang->group->name = 'Group Name';
$lang->group->desc = 'Description';
$lang->group->role = 'Role';
$lang->group->acl = 'Permission';
$lang->group->users = 'Group Members';
$lang->group->module = 'Module';
$lang->group->method = 'Method';
$lang->group->priv = 'Permission';
$lang->group->option = 'Option';
$lang->group->inside = 'Group Users';
$lang->group->outside = 'Non-Group Users';
$lang->group->limited = 'Restricted Users';
$lang->group->general = 'General';
$lang->group->all = 'All Permissions';
$lang->group->config = 'Config';
$lang->group->unassigned = 'Unassigned';
$lang->group->view = 'View';
$lang->group->other = 'Views';
if(!isset($lang->privpackage)) $lang->privpackage = new stdclass();
$lang->privpackage->common = 'Permission Sets';
$lang->privpackage->id = 'ID';
$lang->privpackage->name = 'Permission Sets Name';
$lang->privpackage->module = 'Module';
$lang->privpackage->desc = 'Permission Sets Description';
$lang->privpackage->belong = 'Permission Sets';
$lang->group->copyOptions['copyPriv'] = 'Copy Permissions';
$lang->group->copyOptions['copyUser'] = 'Copy Users';
$lang->group->versions[''] = 'History';
$lang->group->versions['21.4'] = 'ZenTao21.4';
$lang->group->versions['21.2'] = 'ZenTao21.2';
$lang->group->versions['21.0'] = 'ZenTao21.0';
$lang->group->versions['20.8'] = 'ZenTao20.8';
$lang->group->versions['20.7'] = 'ZenTao20.7';
$lang->group->versions['20.5'] = 'ZenTao20.5';
$lang->group->versions['20.4'] = 'ZenTao20.4';
$lang->group->versions['20.2'] = 'ZenTao20.2';
$lang->group->versions['20.0.1'] = 'ZenTao20.0.1';
$lang->group->versions['20.0'] = 'ZenTao20.0';
$lang->group->versions['20.0.beta1'] = 'ZenTao20.0.beta1';
$lang->group->versions['18_11'] = 'ZenTao18.11';
$lang->group->versions['18_9'] = 'ZenTao18.9';
$lang->group->versions['18_8'] = 'ZenTao18.8';
$lang->group->versions['18_7'] = 'ZenTao18.7';
$lang->group->versions['18_6'] = 'ZenTao18.6';
$lang->group->versions['18_4_alpha1'] = 'ZenTao18.4.alpha1';
$lang->group->versions['18_3'] = 'ZenTao18.3';
$lang->group->versions['18_2'] = 'ZenTao18.2';
$lang->group->versions['18_1'] = 'ZenTao18.1';
$lang->group->versions['18_0'] = 'ZenTao18.0';
$lang->group->versions['18_0_beta3'] = 'ZenTao18.0.beta3';
$lang->group->versions['18_0_beta2'] = 'ZenTao18.0.beta2';
$lang->group->versions['18_0_beta1'] = 'ZenTao18.0.beta1';
$lang->group->versions['17_6_2'] = 'ZenTao17.6.2';
$lang->group->versions['17_6'] = 'ZenTao17.6';
$lang->group->versions['17_5'] = 'ZenTao17.5';
$lang->group->versions['17_4'] = 'ZenTao17.4';
$lang->group->versions['17_3'] = 'ZenTao17.3';
$lang->group->versions['17_2'] = 'ZenTao17.2';
$lang->group->versions['17_1'] = 'ZenTao17.1';
$lang->group->versions['17_0_beta2'] = 'ZenTao17.0.beta2';
$lang->group->versions['17_0_beta1'] = 'ZenTao17.0.beta1';
$lang->group->versions['16_5_beta1'] = 'ZenTao16.5.beta1';
$lang->group->versions['16_4'] = 'ZenTao16.4';
$lang->group->versions['16_3'] = 'ZenTao16.3';
$lang->group->versions['16_2'] = 'ZenTao16.2';
$lang->group->versions['16_1'] = 'ZenTao16.1';
$lang->group->versions['16_0'] = 'ZenTao16.0';
$lang->group->versions['16_0_beta1'] = 'ZenTao16.0.beta1';
$lang->group->versions['15_8'] = 'ZenTao15.8';
$lang->group->versions['15_7'] = 'ZenTao15.7';
$lang->group->versions['15_0_rc1'] = 'ZenTao15.0.rc1';
$lang->group->versions['12_5'] = 'ZenTao12.5';
$lang->group->versions['12_3'] = 'ZenTao12.3';
$lang->group->versions['11_6_2'] = 'ZenTao11.6.2';
$lang->group->versions['10_6'] = 'ZenTao10.6';
$lang->group->versions['10_1'] = 'ZenTao10.1';
$lang->group->versions['10_0_alpha'] = 'ZenTao10.0.alpha';
$lang->group->versions['9_8'] = 'ZenTao9.8';
$lang->group->versions['9_6'] = 'ZenTao9.6';
$lang->group->versions['9_5'] = 'ZenTao9.5';
$lang->group->versions['9_2'] = 'ZenTao9.2';
$lang->group->versions['9_1'] = 'ZenTao9.1';
$lang->group->versions['9_0'] = 'ZenTao9.0';
$lang->group->versions['8_4'] = 'ZenTao8.4';
$lang->group->versions['8_3'] = 'ZenTao8.3';
$lang->group->versions['8_2_beta'] = 'ZenTao8.2.beta';
$lang->group->versions['8_0_1'] = 'ZenTao8.0.1';
$lang->group->versions['8_0'] = 'ZenTao8.0';
$lang->group->versions['7_4_beta'] = 'ZenTao7.4.beta';
$lang->group->versions['7_3'] = 'ZenTao7.3';
$lang->group->versions['7_2'] = 'ZenTao7.2';
$lang->group->versions['7_1'] = 'ZenTao7.1';
$lang->group->versions['6_4'] = 'ZenTao6.4';
$lang->group->versions['6_3'] = 'ZenTao6.3';
$lang->group->versions['6_2'] = 'ZenTao6.2';
$lang->group->versions['6_1'] = 'ZenTao6.1';
$lang->group->versions['5_3'] = 'ZenTao5.3';
$lang->group->versions['5_1'] = 'ZenTao5.1';
$lang->group->versions['5_0_beta2'] = 'ZenTao5.0.beta2';
$lang->group->versions['5_0_beta1'] = 'ZenTao5.0.beta1';
$lang->group->versions['4_3_beta'] = 'ZenTao4.3.beta';
$lang->group->versions['4_2_beta'] = 'ZenTao4.2.beta';
$lang->group->versions['4_1'] = 'ZenTao4.1';
$lang->group->versions['4_0_1'] = 'ZenTao4.0.1';
$lang->group->versions['4_0'] = 'ZenTao4.0';
$lang->group->versions['4_0_beta2'] = 'ZenTao4.0.beta2';
$lang->group->versions['4_0_beta1'] = 'ZenTao4.0.beta1';
$lang->group->versions['3_3'] = 'ZenTao3.3';
$lang->group->versions['3_2_1'] = 'ZenTao3.2.1';
$lang->group->versions['3_2'] = 'ZenTao3.2';
$lang->group->versions['3_1'] = 'ZenTao3.1';
$lang->group->versions['3_0_beta2'] = 'ZenTao3.0.beta2';
$lang->group->versions['3_0_beta1'] = 'ZenTao3.0.beta1';
$lang->group->versions['2_4'] = 'ZenTao2.4';
$lang->group->versions['2_3'] = 'ZenTao2.3';
$lang->group->versions['2_2'] = 'ZenTao2.2';
$lang->group->versions['2_1'] = 'ZenTao2.1';
$lang->group->versions['2_0'] = 'ZenTao2.0';
$lang->group->versions['1_5'] = 'ZenTao1.5';
$lang->group->versions['1_4'] = 'ZenTao1.4';
$lang->group->versions['1_3'] = 'ZenTao1.3';
$lang->group->versions['1_2'] = 'ZenTao1.2';
$lang->group->versions['1_1'] = 'ZenTao1.1';
$lang->group->versions['1_0_1'] = 'ZenTao1.0.1';
$lang->group->package = new stdclass();
$lang->group->package->browse = 'View';
$lang->group->package->manage = 'Manage';
$lang->group->package->delete = 'Delete';
$lang->group->package->other = 'Others';
$lang->group->package->browseTodo = 'View To-do';
$lang->group->package->manageTodo = 'Manage To-do';
$lang->group->package->deleteTodo = 'Delete To-do';
$lang->group->package->importTodo = 'Import/Export To-dos';
$lang->group->package->manageContact = 'Manage Contacts';
$lang->group->package->profile = 'Profile';
$lang->group->package->preference = 'Preference';
$lang->group->package->browseProgram = 'View Program';
$lang->group->package->manageProgram = 'Manage Program';
$lang->group->package->deleteProgram = 'Delete Program';
$lang->group->package->invest = 'Team Members';
$lang->group->package->accessible = 'Users with Access';
$lang->group->package->whitelist = 'Manage Whitelist';
$lang->group->package->stakeholder = 'Manage Stakeholder';
$lang->group->package->my = 'View Dashboard';
$lang->group->package->browseProduct = 'View Product';
$lang->group->package->manageProductLine = 'Manage Product Line';
$lang->group->package->createProduct = 'Manage Product';
$lang->group->package->importProduct = 'Import/Export Product';
$lang->group->package->productWhitelist = 'Product Whitelist';
$lang->group->package->branch = 'Manage Branch';
$lang->group->package->browseStory = 'View ' . $lang->SRCommon;
$lang->group->package->manageStory = 'Manage ' . $lang->SRCommon;
$lang->group->package->importStory = 'Import/Export ' . $lang->SRCommon;
$lang->group->package->deleteStory = 'Delete ' . $lang->SRCommon;
$lang->group->package->reviewStory = 'Review ' . $lang->SRCommon;
$lang->group->package->deleteProduct = 'Delete Product';
$lang->group->package->browseEpic = 'View Epic';
$lang->group->package->manageEpic = 'Manage Epic';
$lang->group->package->importEpic = 'Import/Export Epic';
$lang->group->package->deleteEpic = 'Delete Epic';
$lang->group->package->reviewEpic = 'Review Epic';
$lang->group->package->browseRequirement = 'View Feature';
$lang->group->package->manageRequirement = 'Manage Feature';
$lang->group->package->importRequirement = 'Import/Export Feature';
$lang->group->package->deleteRequirement = 'Delete Feature';
$lang->group->package->reviewRequirement = 'Review Feature';
$lang->group->package->browseProductPlan = 'View Product Plan';
$lang->group->package->manageProductPlan = 'Manage Product Plan';
$lang->group->package->deleteProductPlan = 'Delete Product Plan';
$lang->group->package->browseRelease = 'View Release';
$lang->group->package->manageRelease = 'Manage Release';
$lang->group->package->importRelease = 'Import/Export Release';
$lang->group->package->deleteRelease = 'Delete Release';
$lang->group->package->releaseNotify = 'Release Notification';
$lang->group->package->projectPlan = 'Project Plan';
$lang->group->package->manageProjectStory = 'Manage Project ' . $lang->SRCommon;
$lang->group->package->importProjectStory = 'Import/Export Project ' . $lang->SRCommon;
$lang->group->package->browseProject = 'View Project';
$lang->group->package->manageProject = 'Manage Project';
$lang->group->package->importProject = 'Import/Export Project';
$lang->group->package->projectDoc = 'Project Doc';
$lang->group->package->projectTeam = 'Team Permission';
$lang->group->package->deleteProject = 'Delete Project';
$lang->group->package->projectWhitelist = 'Project Whitelist';
$lang->group->package->browseExecution = 'View Execution';
$lang->group->package->manageExecution = 'Manage Execution';
$lang->group->package->deleteExecution = 'Delete Execution';
$lang->group->package->importExecution = 'Import/Export Execution';
$lang->group->package->executionWhitelist = 'Execution Whitelist';
$lang->group->package->executionGantt = 'Execution Gantt Chart';
$lang->group->package->browseTask = 'View Task';
$lang->group->package->manageTask = 'Manage Task';
$lang->group->package->deleteTask = 'Delete Task';
$lang->group->package->importTask = 'Import/Export Task';
$lang->group->package->executionTeam = 'Execution Team';
$lang->group->package->kanban = 'Kanban';
$lang->group->package->groupView = 'Group View';
$lang->group->package->burndown = 'Burndown';
$lang->group->package->cfd = 'Cfd';
$lang->group->package->manageExecutionStory = 'Manage Execution ' . $lang->SRCommon;
$lang->group->package->manageExecutionEffort = 'Manage Execution Effort';
$lang->group->package->manageBuild = 'Manage Build';
$lang->group->package->deleteBuild = 'Delete Build';
$lang->group->package->browseStoryLib = 'View Story Lib';
$lang->group->package->manageStoryLib = 'Manage Story Lib';
$lang->group->package->deleteStoryLib = 'Delete Story Lib';
$lang->group->package->reviewStoryLib = 'Review Story Lib';
$lang->group->package->browseIssueLib = 'View Issue Lib';
$lang->group->package->manageIssueLib = 'Manage Issue Lib';
$lang->group->package->deleteIssueLib = 'Delete Issue Lib';
$lang->group->package->reviewIssue = 'Review Issue';
$lang->group->package->browseRiskLib = 'View Risk Lib';
$lang->group->package->manageRiskLib = 'Manage Risk Lib';
$lang->group->package->deleteRiskLib = 'Delete Risk Lib';
$lang->group->package->reivewRisk = 'Reivew Risk';
$lang->group->package->browseOpportunityLib = 'View Opportunity Lib';
$lang->group->package->manageOpportunityLib = 'Manage Opportunity Lib';
$lang->group->package->deleteOpportunityLib = 'Delete Opportunity Lib';
$lang->group->package->reviewOpportunity = 'Review Opportunity';
$lang->group->package->browsePracticeLib = 'View Best Practice Lib';
$lang->group->package->managePracticeLib = 'Manage Best Practice Lib';
$lang->group->package->deletePracticeLib = 'Delete Best Practice Lib';
$lang->group->package->reviewPractice = 'Review Best Practice Lib';
$lang->group->package->browseComponentLib = 'View Component Lib';
$lang->group->package->manageComponentLib = 'Manage Component Lib';
$lang->group->package->deleteComponentLib = 'Delete Component Lib';
$lang->group->package->reviewComponent = 'Review Component';
$lang->group->package->browseCaseLib = 'View Test Case Lib';
$lang->group->package->manageCaseLib = 'Manage Test Case Lib';
$lang->group->package->deleteCaseLib = 'Delete Test Case Lib';
$lang->group->package->importCaseLib = 'Import Test Case Lib';
$lang->group->package->importToCaseLib = 'Import to Test Case Lib';
$lang->group->package->officeApproval = 'Office Approvals';
$lang->group->package->attend = 'Attendance';
$lang->group->package->officeSetting = 'Office Settings';
$lang->group->package->dataPermission = 'Data Permissions';
$lang->group->package->leave = 'Leave Requests';
$lang->group->package->makeup = 'Makeup Shifts';
$lang->group->package->overtime = 'Overtime';
$lang->group->package->lieu = 'Compensatory Leave';
$lang->group->package->holiday = 'Holidays';
$lang->group->package->exportOffice = 'Export Office Data';
$lang->group->package->browseFeedback = 'View Feedback';
$lang->group->package->browseLiteFeedback = $lang->group->package->browseFeedback;
$lang->group->package->manageFeedback = 'Manage Feedback';
$lang->group->package->importFeedback = 'Import/Export Feedback';
$lang->group->package->handleFeedback = 'Process Feedback';
$lang->group->package->faq = 'Faq';
$lang->group->package->browseTicket = 'View Ticket';
$lang->group->package->manageTicket = 'Manage Ticket';
$lang->group->package->importTicket = 'Import/Export Ticket';
$lang->group->package->deleteFeedback = 'Delete Feedback';
$lang->group->package->deleteTIcket = 'Delete Ticket';
$lang->group->package->feedbackPriv = 'Feedback Permissions';
$lang->group->package->browseCourse = 'Courses';
$lang->group->package->manageTrainCourse = 'Manage Courses';
$lang->group->package->system = 'Platform';
$lang->group->package->host = 'Host';
$lang->group->package->serverRoom = 'Data Center';
$lang->group->package->account = 'Account';
$lang->group->package->domain = 'Domain';
$lang->group->package->service = 'Service';
$lang->group->package->deployPlan = 'Deployment Request';
$lang->group->package->deployScope = 'Deployment Scope';
$lang->group->package->deployStep = 'Deployment Steps';
$lang->group->package->deployCase = 'Deployment Test Cases';
$lang->group->package->qaIndex = 'Test Overview';
$lang->group->package->browseBug = 'View Bug';
$lang->group->package->manageBug = 'Manage Bug';
$lang->group->package->deleteBug = 'Delete Bug';
$lang->group->package->importBug = 'Import/Export Bug';
$lang->group->package->browseCase = 'View Test Case';
$lang->group->package->manageCase = 'Manage Test Case';
$lang->group->package->importCase = 'Import/Export Test Case';
$lang->group->package->deleteCase = 'Delete Test Case';
$lang->group->package->reviewCase = 'Review Test Case';
$lang->group->package->browseTesttask = 'View Test Request';
$lang->group->package->manageTesttask = 'Manage Test Request';
$lang->group->package->deleteTesttask = 'Delete Test Request';
$lang->group->package->unitTest = 'Unit Test';
$lang->group->package->testsuite = 'View Test Suite';
$lang->group->package->manageTestsuite = 'Manage Test Suite';
$lang->group->package->deleteTestsuite = 'Delete Test Suite';
$lang->group->package->browseTestreport = 'View Test Report';
$lang->group->package->manageTestreport = 'Manage Test Report';
$lang->group->package->deleteTestreport = 'Delete Test Report';
$lang->group->package->importTestreport = 'Import/Export Test Report';
$lang->group->package->autotestInstruction = 'Description';
$lang->group->package->browseZAHost = 'View Host';
$lang->group->package->manageZAHost = 'Manage Host';
$lang->group->package->deleteZAHost = 'Delete Host';
$lang->group->package->image = 'Image';
$lang->group->package->browseZANode = 'View Execution Node';
$lang->group->package->manageZANode = 'Manage Execution Node';
$lang->group->package->importZANode = 'Import/Export Execution Node';
$lang->group->package->snapshot = 'Snapshot';
$lang->group->package->companyTeam = 'View Company Team';
$lang->group->package->companyCalendar = 'View Company Calendar';
$lang->group->package->companyEffort = 'View Company Effort';
$lang->group->package->companyDynamic = 'View Company Recents';
$lang->group->package->companySetting = 'Company Info';
$lang->group->package->companyDataPermission = 'Depts Data Permission';
$lang->group->package->programPlan = 'Project Phases';
$lang->group->package->browseDesign = 'View Design';
$lang->group->package->manageDesign = 'Manage Design';
$lang->group->package->deleteDesign = 'Delete Design';
$lang->group->package->browseReview = 'Browse Review';
$lang->group->package->manageReview = 'Manage Baseline Review';
$lang->group->package->deleteReview = 'Delete Review';
$lang->group->package->manageReviewIssue = 'Manage ReviewIssue';
$lang->group->package->browseBaseline = 'Browse Baseline';
$lang->group->package->manageBaseline = 'Manage Baseline';
$lang->group->package->deleteBaseline = 'Delete Baseline';
$lang->group->package->browseProjectchange = 'Browse Projectchange';
$lang->group->package->manageProjectchange = 'Manage Projectchange';
$lang->group->package->deleteProjectchange = 'Delete Projectchange';
$lang->group->package->browseProjectRelease = 'View Project Release';
$lang->group->package->browseProjectReport = 'View Report';
$lang->group->package->exportProjectReport = 'Export Report';
$lang->group->package->manageProjectReport = 'Manage Report';
$lang->group->package->deleteProjectReport = 'Delete Report';
$lang->group->package->projectMilestone = 'Milestone Report';
$lang->group->package->researchPlan = 'Research Plan';
$lang->group->package->researchReport = 'Research Report';
$lang->group->package->budget = 'Budget Estimation';
$lang->group->package->workEstimation = 'Workload Estimation';
$lang->group->package->durationEstimation = 'Project Duration Estimation';
$lang->group->package->browseIssue = 'View Issue';
$lang->group->package->manageIssue = 'Manage Issue';
$lang->group->package->importIssue = 'Import/Export Issues';
$lang->group->package->deleteIssue = 'Delete Issue';
$lang->group->package->importIssueLib = 'Import to Issue Lib';
$lang->group->package->browseRisk = 'View Risk';
$lang->group->package->manageRisk = 'Manage Risk';
$lang->group->package->importRisk = 'Import/Export Risks';
$lang->group->package->deleteRisk = 'Delete Risk';
$lang->group->package->importRiskLib = 'Import to Risk Lib';
$lang->group->package->browseOpportunity = 'View Opportunity';
$lang->group->package->manageOpportunity = 'Manage Opportunity';
$lang->group->package->deleteOpportunity = 'Delete Opportunity';
$lang->group->package->importOpportunityLib = 'Import to Opportunity Lib';
$lang->group->package->importOpportunity = 'Import/Export Opportunities';
$lang->group->package->pssp = 'Project Process';
$lang->group->package->manageAuditPlan = 'Manage QA Plans';
$lang->group->package->nc = 'Non-conformances';
$lang->group->package->meeting = 'Meeting';
$lang->group->package->trainPlan = 'Training Plan';
$lang->group->package->gapAnalysis = 'Capability Gap Analysis';
$lang->group->package->workflowField = 'Workflow Fields';
$lang->group->package->workflowAction = 'Workflow Actions';
$lang->group->package->workflowLayout = 'Workflow Layout';
$lang->group->package->workflowCondition = 'Workflow Triggers';
$lang->group->package->workflowLinkage = 'Workflow Dependencies';
$lang->group->package->workflowHook = 'Workflow Extended Actions';
$lang->group->package->workflowLabel = 'Workflow Tags';
$lang->group->package->workflowReport = 'Workflow Reports';
$lang->group->package->workflowDatasource = 'Workflow Data Sources';
$lang->group->package->workflowRule = 'Workflow Validation Rules';
$lang->group->package->workflowGroup = 'Workflow Process Management';
$lang->group->package->workflow = 'Workflow';
$lang->group->package->productFlow = 'Product Flow';
$lang->group->package->projectFlow = 'Project Flow';
$lang->group->package->flowReport = 'Flow Report';
$lang->group->package->rule = 'Rule Engine';
$lang->group->package->downloadCode = 'Download Code';
$lang->group->package->dev = 'Custom Development';
$lang->group->package->browseCodeIssue = 'View Code Issues';
$lang->group->package->editor = 'Editor';
$lang->group->package->serverLink = 'Link ZenTao';
$lang->group->package->browseMR = 'View Merge Requests';
$lang->group->package->managePriv = 'Manage Permissions';
$lang->group->package->dept = 'Dept';
$lang->group->package->group = 'Permission Group';
$lang->group->package->user = 'Manage Users';
$lang->group->package->extension = 'Add-ons';
$lang->group->package->message = 'Notification';
$lang->group->package->mail = 'Email';
$lang->group->package->webhook = 'Webhook';
$lang->group->package->gitlab = 'Gitlab';
$lang->group->package->sms = 'Sms';
$lang->group->package->gogs = 'Gogs';
$lang->group->package->gitea = 'Gitea';
$lang->group->package->sonarqube = 'Sonarqube';
$lang->group->package->repoRules = 'Commands';
$lang->group->package->browseJob = 'View Pipelines';
$lang->group->package->manageJob = 'Manage PipeLine';
$lang->group->package->manageMR = 'Manage Merge Requests';
$lang->group->package->backup = 'System Backup';
$lang->group->package->trash = 'Trash';
$lang->group->package->security = 'Security';
$lang->group->package->cron = 'Cron Job';
$lang->group->package->ldap = 'Ldap';
$lang->group->package->chat = 'Chat';
$lang->group->package->jenkins = 'Jenkins';
$lang->group->package->systemSetting = 'System Settings';
$lang->group->package->search = 'Search';
$lang->group->package->comment = 'Comment';
$lang->group->package->module = 'Manage Modules';
$lang->group->package->file = 'File';
$lang->group->package->commonEffort = 'General Effort';
$lang->group->package->docTemplate = 'View Doc Template';
$lang->group->package->importStoryLib = 'Import to Story Lib';
$lang->group->package->projectStakeholder = 'Project Stakeholder';
$lang->group->package->projectBuild = 'Project Build';
$lang->group->package->importCaseLib = 'Import Test Case Lib';
$lang->group->package->commonSetting = 'General Settings';
$lang->group->package->stageSetting = 'Phase Settings';
$lang->group->package->stageType = 'Phase Setting';
$lang->group->package->reviewFlow = 'Review';
$lang->group->package->reviewCheck = 'Review Checklist';
$lang->group->package->reviewCategory = 'Review Category';
$lang->group->package->setWorkflow = 'Flow';
$lang->group->package->deliverable = 'Deliverable Settings';
$lang->group->package->classify = 'Category Settings';
$lang->group->package->auditcl = 'QA Checklist Settings';
$lang->group->package->reviewcl = 'Review Settings';
$lang->group->package->process = 'Process Settings';
$lang->group->package->activity = 'Activity Settings';
$lang->group->package->zoutput = 'Document Settings';
$lang->group->package->custom = 'Custom Settings';
$lang->group->package->approvalflow = 'Approval Settings';
$lang->group->package->usercl = 'User Settings';
$lang->group->package->meetingroom = 'Meeting Room Settings';
$lang->group->package->sqlBuilder = 'Sql Builder';
$lang->group->package->designSetting = 'Design Settings';
$lang->group->package->kanbanSpace = 'Kanban Space';
$lang->group->package->deleteKanbanSpace = 'Delete Kanban Space';
$lang->group->package->browseKanban = 'View Kanban';
$lang->group->package->manageKanban = 'Manage Kanban';
$lang->group->package->deleteKanban = 'Delete Kanban';
$lang->group->package->deleteZANode = 'Delete Execution Node';
$lang->group->package->autotesting = 'Test Automation';
$lang->group->package->executionTesting = 'Execute Test';
$lang->group->package->manageEffort = 'Manage Effort';
$lang->group->package->projectTesting = 'Project Testing';
$lang->group->package->track = 'Traceability Matrix';
$lang->group->package->workflowRelation = 'Cross-Workflow Settings';
$lang->group->package->template = 'Template';
$lang->group->package->table = 'Table';
$lang->group->package->automation = 'Automation';
$lang->group->package->git = 'Git';
$lang->group->package->subversion = 'Subversion';
$lang->group->package->ping = 'Session Keep-Alive';
$lang->group->package->review = 'Review';
$lang->group->package->manageProjectRelease = 'Manage Project Release';
$lang->group->package->deleteProjectRelease = 'Delete Project Release';
$lang->group->package->importProjectRelease = 'Import/Export Project Release';
$lang->group->package->projectReleaseNotify = 'Project Release Notification';
$lang->group->package->gantt = 'Phase Gantt Chart';
$lang->group->package->projectRelation = 'Manage Tasks Dependencies';
$lang->group->package->executionRelation = 'Manage Tasks Dependencies';
$lang->group->package->browseBuild = 'View Builds';
$lang->group->package->browseExecutionStory = 'View Executions' . $lang->SRCommon;
$lang->group->package->manageCard = 'Manage Card';
$lang->group->package->browseProjectStory = 'View Projects ' . $lang->SRCommon;
$lang->group->package->deliverableChecklist = 'Deliverable Check';
$lang->group->package->reviewAssess = 'Review Baseline';
$lang->group->package->reviewAudit = 'Audit Baseline Reviews';
$lang->group->package->dimension = 'Manage Dimensions';
$lang->group->package->browseScreen = 'View Dashboards';
$lang->group->package->manageScreen = 'Manage Dashboards';
$lang->group->package->deleteScreen = 'Delete Dashboard';
$lang->group->package->screenDataPermission = 'Dashboard Data Permissions';
$lang->group->package->browsePivot = 'View Pivot Tables';
$lang->group->package->designPivot = 'Design Pivot Tables';
$lang->group->package->exportPivot = 'Export Pivot Tables';
$lang->group->package->pivotDataPermission = 'Pivot Table Data Permissions';
$lang->group->package->browseChart = 'View Charts';
$lang->group->package->designChart = 'Design Charts';
$lang->group->package->exportChart = 'Export Charts';
$lang->group->package->browseDataview = 'View Data Tables';
$lang->group->package->manageDataview = 'Manage Data Tables';
$lang->group->package->deleteDataview = 'Delete Data Tables';
$lang->group->package->browseMetric = 'View Metrics';
$lang->group->package->manageMetric = 'Manage Metrics';
$lang->group->package->browseDoc = 'View Docs';
$lang->group->package->manageDoc = 'Manage Docs';
$lang->group->package->deleteDoc = 'Delete Doc';
$lang->group->package->browseDoctemplate = 'Export Doc Templates';
$lang->group->package->manageDoctemplate = 'View Doc Templates';
$lang->group->package->deleteDoctemplate = 'Manage Doc Templates';
$lang->group->package->exportDoc = 'Delete Doc Template';
$lang->group->package->browseAPI = 'View API Space';
$lang->group->package->manageAPI = 'Manage API';
$lang->group->package->exportAPI = 'Export API';
$lang->group->package->deleteAPI = 'Delete API';
$lang->group->package->callAPI = 'Call API';
$lang->group->package->scene = 'Manage Scenarios';
$lang->group->package->executionTree = 'Tree View';
$lang->group->package->taskEffort = 'Task Effort';
$lang->group->package->taskCalendar = 'Task Calendar';
$lang->group->package->code = 'Code';
$lang->group->package->repo = 'Code Repository';
$lang->group->package->browseDemandPool = 'View Story Pool';
$lang->group->package->browseCharter = 'View Charter';
$lang->group->package->manageDemandPool = 'Manage Story Pool';
$lang->group->package->manageCharter = 'Manage Charter';
$lang->group->package->reviewCharter = 'Review Charter';
$lang->group->package->browseDemand = 'View Stories';
$lang->group->package->manageDemand = 'Manage Stories';
$lang->group->package->reviewDemand = 'Review Story';
$lang->group->package->importDemand = 'Import/Export Stories';
$lang->group->package->deleteDemand = 'Delete Story';
$lang->group->package->admin = 'Admin';
$lang->group->package->browseRoadmap = 'View Product Roadmaps';
$lang->group->package->manageRoadmap = 'Manage Product Roadmaps';
$lang->group->package->deleteRoadmap = 'Delete Product Roadmap';
$lang->group->package->deleteDemandPool = 'Delete Story Pool';
$lang->group->package->exportDatatable = 'Export Datatable';
$lang->group->package->ai = 'AI';
$lang->group->package->aiChatting = 'AI Chat';
$lang->group->package->executePrompt = 'Run ZenTao Agent';
$lang->group->package->manageLLM = 'Manage LLM';
$lang->group->package->browsePrompt = 'View ZenTao Agent';
$lang->group->package->managePrompt = 'Manage and Design ZenTao Agent';
$lang->group->package->publishPrompt = 'Publish and Unpublish ZenTao Agent';
$lang->group->package->deletePrompt = 'Delete ZenTao Agent';
$lang->group->package->manageMiniProgram = 'Manage and Design Mini Programs';
$lang->group->package->browseMiniProgram = 'View Mini Programs';
$lang->group->package->miniProgramSquare = 'AI Mini-program Hub';
$lang->group->package->publishMiniProgram = 'Publish and Unpublish AI Mini Programs';
$lang->group->package->deleteMiniProgram = 'Delete AI Mini Programs';
$lang->group->package->impAndExpMiniProgram = 'Import/Export Mini Programs';
$lang->group->package->aiAssistant = 'AI Assistant';
$lang->group->package->aiConversation = 'Smart Chat';
$lang->group->package->applyZentaoAgent = 'Apply ZenTao Agent';
$lang->group->package->manageZentaoAgent = 'Manage ZenTao Agent';
$lang->group->package->applyGeneralAgent = 'Apply General Agent';
$lang->group->package->manageGeneralAgent = 'Manage General Agent';
$lang->group->package->aiKnowledgeLib = 'Knowledge Library';
$lang->group->package->browseAiModels = 'LLM List';
$lang->group->package->zai = 'ZAI Settings';
$lang->group->package->dashboard = 'Monitor';
$lang->group->package->resource = 'Resource';
$lang->group->package->manageServiceProvider = 'Service Provider';
$lang->group->package->manageCity = 'City';
$lang->group->package->manageCPU = 'CPU';
$lang->group->package->manageOS = 'OS Version';
$lang->group->package->browseRepo = 'Repositories';
$lang->group->package->manageRepo = 'Manage Repository';
$lang->group->package->deleteRepo = 'Delete Repository';
$lang->group->package->browseCode = 'View Source Code';
$lang->group->package->manageCode = 'Manage Source Code';
$lang->group->package->CodeIssule = 'Code Issues';
$lang->group->package->manageCodeIssue = 'Manage Code Issues';
$lang->group->package->deleteCodeIssue = 'Delete Code Issue';
$lang->group->package->deleteMR = 'Delete Merge Request';
$lang->group->package->deleteJob = 'Delete PipeLine';
$lang->group->package->browseApplication = 'View Services';
$lang->group->package->mangeApplication = 'Manage Service';
$lang->group->package->trainPracticeLib = 'Practice Library';
$lang->group->package->application = 'Manage Applications';
$lang->group->package->component = 'Component';
$lang->group->package->browseRule = 'View Rules';
$lang->group->package->manageRule = 'Manage Rules';
$lang->group->package->executionDeliverable = 'Deliverable';
$lang->group->package->browseDeliverable = 'Browse Deliverable';
$lang->group->package->manageDeliverable = 'Manage Deliverable';
$lang->group->package->deleteDeliverable = 'Delete Deliverable';
$lang->group->package->projectTemplate = 'Project Template';
$lang->group->package->browseReportTemplate = 'View Report Templates';
$lang->group->package->manageReportTemplate = 'Manage Report Templates';
$lang->group->package->deleteReportTemplate = 'Delete Report Template';
$lang->group->package->productSetting = 'Product Setting';
$lang->group->package->executionSetting = 'Execution Setting';
$lang->group->package->featureSwitch = 'Feature Switch';
include (dirname(__FILE__) . '/resource.php');

View file

@ -0,0 +1,30 @@
<?php
if(!isset($lang->holiday)) $lang->holiday = new stdclass();
$lang->holiday->common = 'Holiday';
$lang->holiday->browse = 'Browse';
$lang->holiday->create = 'Create';
$lang->holiday->edit = 'Edit';
$lang->holiday->delete = 'Delete';
$lang->holiday->createAction = 'Create Holiday';
$lang->holiday->editAction = 'Edit Holiday';
$lang->holiday->deleteAction = 'Delete Holiday';
$lang->holiday->importAction = 'Import Holiday';
$lang->holiday->id = 'ID';
$lang->holiday->name = 'Name';
$lang->holiday->desc = 'Description';
$lang->holiday->type = 'Type';
$lang->holiday->begin = 'Begin';
$lang->holiday->end = 'End';
$lang->holiday->all = 'All';
$lang->holiday->holiday = 'Holiday';
$lang->holiday->checkYear = 'Year selection';
$lang->holiday->typeList['holiday'] = 'Holiday';
$lang->holiday->typeList['working'] = 'Working Day';
$lang->holiday->emptyTip = 'No Holiday';
$lang->holiday->confirmDelete = 'Confirm removal of holidays?';
$lang->holiday->importTip = '';

180
module/host/lang/ru.php Normal file
View file

@ -0,0 +1,180 @@
<?php
$lang->host->common = 'Host';
$lang->host->browse = 'Host List';
$lang->host->create = 'Add Host';
$lang->host->view = 'Host Details';
$lang->host->edit = 'Edit Host';
$lang->host->editAction = 'Edit Host';
$lang->host->delete = 'Delete';
$lang->host->deleteAction = 'Delete Host';
$lang->host->treemap = 'Host Topology';
$lang->host->changeStatus = 'Online/Offline';
$lang->host->byQuery = 'Search';
$lang->host->reason = 'Reason';
$lang->host->manageRoom = 'Manage IDC';
$lang->host->name = 'Name';
$lang->host->type = 'Type';
$lang->host->hardwareType = 'Hardware Type';
$lang->host->group = 'Host Group';
$lang->host->admin = 'Admin';
$lang->host->cabinet = 'Cabinet';
$lang->host->intranet = 'Internal IP';
$lang->host->extranet = 'External IP';
$lang->host->mac = 'MAC';
$lang->host->cpuBrand = 'CPU Brand';
$lang->host->cpuModel = 'CPU Model';
$lang->host->cpuNumber = 'CPU Count';
$lang->host->cpuCores = 'Cores per CPU';
$lang->host->cpuRate = 'CPU Frequency';
$lang->host->memory = 'Memory Size';
$lang->host->serverRoom = 'IDC';
$lang->host->desc = 'Description';
$lang->host->createdBy = 'Creator';
$lang->host->createdDate = 'Created on';
$lang->host->editedBy = 'Edited by';
$lang->host->editedDate = 'Edited on';
$lang->host->all = 'All Hosts';
$lang->host->empty = 'No host available yet.';
$lang->host->groupMaintenance = 'Manage Groups';
$lang->host->status = 'Status';
$lang->host->statusList['online'] = 'Online';
$lang->host->statusList['busy'] = 'Overloaded';
$lang->host->statusList['offline'] = 'Offline';
$lang->host->online = 'Set Online';
$lang->host->busy = 'Overload';
$lang->host->offline = 'Set Offline';
$lang->host->onlineReason = 'Online Reason';
$lang->host->offlineReason = 'Offline Reason';
$lang->host->unitList['GB'] = 'GB';
$lang->host->unitList['TB'] = 'TB';
$lang->host->database = 'Database';
$lang->host->databaseList[''] = '';
$lang->host->databaseList['mysql55'] = 'MySQL 5.5';
$lang->host->databaseList['mysql56'] = 'MySQL 5.6';
$lang->host->databaseList['mysql57'] = 'MySQL 5.7';
$lang->host->databaseList['mysql80'] = 'MySQL 8.0';
$lang->host->databaseList['oracle10g'] = 'Oracle 10g';
$lang->host->databaseList['oracle11g'] = 'Oracle 11g';
$lang->host->databaseList['mongodb30'] = 'MongoDB 3.0';
$lang->host->databaseList['mongodb34'] = 'MongoDB 3.4';
$lang->host->databaseList['postgresql95'] = 'PostgreSQL 9.5';
$lang->host->databaseList['postgresql96'] = 'PostgreSQL 9.6';
$lang->host->webserver = 'Web Server';
$lang->host->webserverList[''] = '';
$lang->host->webserverList['apache2425'] = 'Apache 2.4.25';
$lang->host->webserverList['apache2426'] = 'Apache 2.4.26';
$lang->host->webserverList['apache2427'] = 'Apache 2.4.27';
$lang->host->webserverList['nginx181'] = 'Nginx 1.8.1';
$lang->host->webserverList['nginx1102'] = 'Nginx 1.10.2';
$lang->host->webserverList['nginx1115'] = 'Nginx 1.11.5';
$lang->host->webserverList['iis6'] = 'IIS 6';
$lang->host->webserverList['iis7'] = 'IIS 7';
$lang->host->webserverList['iis8'] = 'IIS 8';
$lang->host->webserverList['iis10'] = 'IIS 10';
$lang->host->language = 'Language';
$lang->host->languageList[''] = '';
$lang->host->languageList['php56'] = 'PHP 5.6';
$lang->host->languageList['php70'] = 'PHP 7.0';
$lang->host->languageList['java7'] = 'JAVA 7';
$lang->host->languageList['java8'] = 'JAVA 8';
$lang->host->languageList['c#3'] = 'C# 3.0';
$lang->host->languageList['c#4'] = 'C# 4.0';
$lang->host->featureBar['browse']['all'] = $lang->host->all;
$lang->host->featureBar['browse']['serverroom'] = 'Physical Topology';
$lang->host->featureBar['browse']['group'] = 'Group Topology';
$lang->host->serverModel = 'Server Model';
$lang->host->hostType = 'Host Type';
$lang->host->hostTypeList['physical'] = 'Physical Host';
$lang->host->hostTypeList['virtual'] = 'Virtual Host';
$lang->host->osVersion = 'OS Version';
$lang->host->osName = 'OS Name';
$lang->host->zap = 'Agent Port';
$lang->host->instanceNum = 'Max instances';
$lang->host->pri = 'Priority';
$lang->host->tags = 'Platform Tag';
$lang->host->provider = 'Vendor';
$lang->host->bridgeID = 'Virtual Bridge';
$lang->host->osNameList['linux'] = 'Linux';
$lang->host->osNameList['windows'] = 'Microsoft Windows';
$lang->host->osNameList['solaris'] = 'Solaris';
$lang->host->osNameList['netware'] = 'Novell NetWare';
$lang->host->osNameList['esx'] = 'VMware ESX';
$lang->host->osNameList['other'] = 'Others';
$lang->host->tagsList['vm'] = 'VM';
$lang->host->tagsList['native'] = 'Native';
$lang->host->providerList['native'] = 'Native';
$lang->host->linux = 'Linux';
$lang->host->windows = 'Microsoft Windows';
$lang->host->solaris = 'Solaris';
$lang->host->netware = 'Novell NetWare';
$lang->host->esx = 'VMware ESX';
$lang->host->other = 'Others';
$lang->host->linuxList[''] = '';
$lang->host->linuxList['centos65'] = 'CentOS 6.5';
$lang->host->linuxList['centos66'] = 'CentOS 6.6';
$lang->host->linuxList['centos67'] = 'CentOS 6.7';
$lang->host->linuxList['centos70'] = 'CentOS 7.0';
$lang->host->linuxList['centos71'] = 'CentOS 7.1';
$lang->host->windowsList[''] = '';
$lang->host->windowsList['win10-pro'] = 'Windows 10 pro';
$lang->host->windowsList['winserver08x64'] = 'Windows Server2008 x64';
$lang->host->windowsList['winserver12'] = 'Windows Server2012';
$lang->host->windowsList['winserver16'] = 'Windows Server2016';
$lang->host->solarisList[''] = '';
$lang->host->solarisList['solaris10'] = 'Solaris 10';
$lang->host->solarisList['solaris10x64'] = 'Solaris 10 x64';
$lang->host->solarisList['solaris11'] = 'Solaris 11';
$lang->host->netwareList[''] = '';
$lang->host->netwareList['netware5'] = 'NetWare 5';
$lang->host->netwareList['netware6'] = 'NetWare 6';
$lang->host->esxList[''] = '';
$lang->host->esxList['esx'] = 'VMware ESX/ESXi 4';
$lang->host->esxList['esx5'] = 'VMware ESXi 5';
$lang->host->esxList['esx6'] = 'VMware ESXi 6';
$lang->host->otherList[''] = '';
$lang->host->otherList['freebsd'] = 'FreeBSD';
$lang->host->otherList['freebsdx64'] = 'FreeBSD X64';
$lang->host->diskSize = 'Disk Capacity';
$lang->host->diskType = 'Disk Type';
$lang->host->diskTypeList['hdd'] = 'HDD';
$lang->host->diskTypeList['ssd'] = 'SSD';
$lang->host->confirmDelete = 'Are you sure you want to delete this host?';
$lang->host->deletedSuccess = 'Deleted successfully!';
$lang->host->notice = new stdclass();
$lang->host->notice->memory = 'Memory size must be a number.';
$lang->host->notice->diskSize = 'Disk capacity must be a number.';
$lang->host->notice->cpuNumber = 'CPU count must be a number.';
$lang->host->notice->cpuCores = 'CPU core count must be a number.';
$lang->host->notice->int = '『%s』must be a positive integer.';
$lang->host->notice->ip = '『%s』format is invalid.';
$lang->host->notice->nameLength = 'Host name cannot exceed 100 characters.';
$lang->host->notice->descLength = 'Host description cannot exceed 255 characters.';
$lang->host->CDlist = array();
$lang->host->CDlist['manual'] = 'Manually Deploy';

34
module/index/lang/ru.php Normal file
View file

@ -0,0 +1,34 @@
<?php
$lang->index->common = 'Home';
$lang->index->index = 'Home';
$lang->index->app = 'Home';
$lang->index->pleaseInput = 'Type to enter.';
$lang->index->search = 'Search';
$lang->index->dock = new stdClass();
$lang->index->dock->open = 'Open';
$lang->index->dock->reload = 'Reload';
$lang->index->dock->close = 'Close';
$lang->index->dock->sort = 'Sort';
$lang->index->dock->save = 'Exit Sorting';
$lang->index->dock->hide = 'Hide';
$lang->index->dock->add = 'Add';
$lang->index->dock->divider = 'Divider';
$lang->index->dock->restore = 'Reset to Default';
$lang->index->upgradeVersion = 'Available Update';
$lang->index->upgradeNow = 'Upgrade now';
$lang->index->upgrade = 'Upgrade';
$lang->index->log = 'View Release Notes';
$lang->index->detailed = 'Details';
$lang->index->website = 'Please visit our official website.';
$lang->index->tutorialTip = 'You are currently in tutorial mode. Would you like to continue?';
$lang->index->chat = new stdclass();
$lang->index->chat->chat = 'Chat';
$lang->index->chat->ai = 'AI';
$lang->index->chat->unconfiguredFormat = 'The %s feature has not been configured yet, %s.';
$lang->index->chat->goConfigureFormat = 'Click to navigate to <a class="text-primary configure-chat-button" href="%s">%s to set it up.</a>';
$lang->index->chat->contactAdminForHelp = 'Please contact an administrator for assistance.';
$lang->index->chat->unauthorized = 'You don’t have permission to access the AI chat feature. Please contact your administrator to request access.';
$lang->index->chat->reloadTip = 'You may <a class="text-primary" id="reload-ai-chat">reload this page</a> if you believe that the configuration has been completed.';

390
module/install/lang/ru.php Normal file
View file

@ -0,0 +1,390 @@
<?php
/**
* The install module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package install
* @version $Id: en.php 4972 2013-07-02 06:50:10Z zhujinyonging@gmail.com $
* @link https://www.zentao.net
*/
$lang->install = new stdclass();
$lang->install->common = 'Install';
$lang->install->next = 'Next';
$lang->install->pre = 'Back';
$lang->install->reload = 'Refresh';
$lang->install->error = 'Error ';
$lang->install->officeDomain = 'https://www.zentao.pm';
$lang->install->start = 'Install Now';
$lang->install->keepInstalling = 'Continue installing Current Version';
$lang->install->seeLatestRelease = 'Check for Updates';
$lang->install->welcome = 'Thanks for choosing ZenTao!';
$lang->install->license = 'License Agreement';
$lang->install->desc = <<<EOT
ZenTao Project Management Software (ZenTao PMS) is an open-source software released under <a href='http://zpl.pub/page/zplv12.html' target='_blank'>ZPL</a> or <a href='https://www.gnu.org/licenses/agpl-3.0.en.html' target='_blank'>AGPL</a> License. It is an all-in-one platform that integrates Product, Project, and Test Management, along with office automation and organizational management—making it the top choice for small and medium-sized enterprises.
Built with PHP and MySQL on the proprietary ZenTao PHP framework, it offers high extensibility, allowing third-party developers and organizations to easily develop extensions or customize ZenTao accordingly.
EOT;
$lang->install->links = <<<EOT
ZenTao PMS is developed by <strong><a href='https://easycorp.cn' target='_blank' class='text-danger'>ZenTao Software (Qingdao) Co., Ltd. </a></strong>.
Official Website: <a href='https://www.zentao.net' target='_blank'>https://www.zentao.net</a>
Technical Support: <a href='https://www.zentao.net/ask/' target='_blank'>https://www.zentao.net/ask/</a>
Follow us on LinkedIn: <a href='https://www.linkedin.com/company/1156596/' target='_blank'>ZenTao Software</a>
Facebook: <a href='https://www.facebook.com/natureeasysoft' target='_blank'>ZenTao Software</a>
Twitter: <a href='https://twitter.com/ZentaoA' target='_blank'>ZenTao ALM</a>
You are currently installing version: <strong class='text-danger'>%s</strong>.
EOT;
$lang->install->selectMode = "Select mode";
$lang->install->introduction = "15.0+ Feature Introduction of ZenTao ";
$lang->install->howToUse = "How do you plan to use the new version of ZenTao?";
$lang->install->guideVideo = 'https://dl.zentao.net/vedio/program0716.mp4';
$lang->install->introductionContent = <<<EOT
<div>
<h4>Dear users, welcome to ZenTao PMS.</h4>
<p>ZenTao has two managment modes in version 15.0 and up. One is the classic management mode, providing two core features, Product and Project; the other is a new project management mode, with Program and Execution added. The following is an introduction to the new mode:</p>
<div class='block-content'>
<div class='block-details'><p class='block-title'><i class='icon icon-program'></i> <strong>Program</strong></p>
<p>Program is used to manage a group of products and projects, and the company executives or PMO can use it for strategic planning.</p></div>
<div class='block-details block-right'>
<p class='block-title'><i class='icon icon-product'></i> <strong>Product</strong></p>
<p>Products break down corporate strategy into actionable requirements, allowing Product Managers to create release plans.<p>
</div>
<div class='block-details'>
<p class='block-title'><i class='icon icon-project'></i> <strong>Project</strong></p>
<p>Projects organize resources for R&D and track the entire management process to ensure efficient, high-quality delivery.</p>
</div>
<div class='block-details block-right'>
<p class='block-title'><i class='icon icon-run'></i> <strong>Execution</strong></p>
<p>Execution is used to break down, assign, and track tasks, ensuring that project goals are implemented at the individual level.<p>
</div>
</div>
<div class='text-center introduction-link'>
<a href='https://dl.zentao.net/zentao/zentaoconcept.pdf' target='_blank' class='btn btn-wide btn-info'><i class='icon icon-p-square'></i> Document Introduction</a>
<a href='j a v a s c r i p t :showVideo()' class='btn btn-wide btn-info'><i class='icon icon-video-play'></i> Video Introduction</a>
</div>
</div>
EOT
;
$lang->install->newReleased = "<strong class='text-danger'>Notice</strong>: The latest version <strong class='text-danger'>%s</strong> is available on the official website, released on %s.";
$lang->install->or = 'Or';
$lang->install->checking = 'System check';
$lang->install->ok = 'Passed(√)';
$lang->install->fail = 'Failed(×)';
$lang->install->loaded = 'Loaded';
$lang->install->unloaded = 'Not loaded';
$lang->install->exists = 'Found ';
$lang->install->notExists = 'Not found ';
$lang->install->writable = 'Writable ';
$lang->install->notWritable = 'Not writable ';
$lang->install->phpINI = 'PHP Configuration File';
$lang->install->checkItem = 'Item';
$lang->install->current = 'Current Configuration';
$lang->install->result = 'Result';
$lang->install->action = 'Suggestions';
$lang->install->phpVersion = 'PHP Version';
$lang->install->phpFail = 'PHP Version should be 5.2.0+';
$lang->install->pdo = 'PDO Extension';
$lang->install->pdoFail = 'Modify the PHP configuration file to load the PDO extension.';
$lang->install->pdoMySQL = 'PDO_MySQL Extension';
$lang->install->pdoMySQLFail = 'Modify the PHP configuration file to load the pdo_mysql extension.';
$lang->install->json = 'JSON Extension';
$lang->install->jsonFail = 'Modify the PHP configuration file to load the JSON extension.';
$lang->install->openssl = 'OpenSSL Extension';
$lang->install->opensslFail = 'Modify the PHP configuration file to load the OPENSSL extension.';
$lang->install->mbstring = 'Mbstring Extension';
$lang->install->mbstringFail = 'Modify the PHP configuration file to load the MBSTRING extension.';
$lang->install->zlib = 'Zlib Extension';
$lang->install->zlibFail = 'Modify the PHP configuration file to load the ZLIB extension.';
$lang->install->curl = 'Curl Extension';
$lang->install->curlFail = 'Modify the PHP configuration file to load the CURL extension.';
$lang->install->filter = 'Filter Extension';
$lang->install->filterFail = 'Modify the PHP configuration file to load the FILTER extension.';
$lang->install->gd = 'GD Extension';
$lang->install->gdFail = 'Modify the PHP configuration file to load the GD extension.';
$lang->install->iconv = 'Iconv Extension';
$lang->install->iconvFail = 'Modify the PHP configuration file to load the ICONV extension.';
$lang->install->tmpRoot = 'Temporary File Directory';
$lang->install->dataRoot = 'Upload File Directory';
$lang->install->session = 'Session Storage Directory';
$lang->install->sessionFail = 'Modify the PHP configuration file to set session.save_path. <br />If using the BT Panel, go to "App Store" in the BT Web Panel, open PHP settings, go to the "Session Configuration" item, select files, and click Save. For older versions, the PHP configuration file needs to be modified manually.';
$lang->install->mkdirWin = '<p>Need to create directory %s. The command is:<br /> mkdir %s</p>';
$lang->install->chmodWin = 'Need to modify the permissions of directory "%s".';
$lang->install->mkdirLinux = '<p>Need to create directory %s.<br /> The command is:<br /> mkdir -p %s</p>';
$lang->install->chmodLinux = 'Need to modify the permissions of directory "%s".<br />The command is:<br />chmod 777 -R %s';
$lang->install->timezone = 'Set Timezone';
$lang->install->defaultLang = 'Default Language';
$lang->install->dbDriver = 'Database Driver';
$lang->install->dbHost = 'Database Host';
$lang->install->dbHostNote = 'If 127.0.0.1 is not accessible, try localhost.';
$lang->install->dbPort = 'Host Port';
$lang->install->dbEncoding = 'Database Charset';
$lang->install->dbUser = 'Database Username';
$lang->install->dbPassword = 'Database Password';
$lang->install->dbName = 'Database Name';
$lang->install->dbPrefix = 'Table Prefix';
$lang->install->clearDB = 'Clean up existing data';
$lang->install->importDemoData = 'Import Demo Data';
$lang->install->working = 'Operation Mode';
$lang->install->dbDriverList = array();
$lang->install->dbDriverList['mysql'] = 'MySQL';
$lang->install->requestTypes['GET'] = 'GET';
$lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO';
$lang->install->workingList['full'] = 'Application Lifecycle Management';
$lang->install->errorConnectDB = 'Database connection failed.';
$lang->install->errorDBName = ' “.” are not allowed in the database name';
$lang->install->errorCreateDB = 'Database creation failed.';
$lang->install->errorTableExists = 'The data table has existed. If ZenTao has been installed before, please return to the previous step and clear data, then continue the installation.';
$lang->install->errorCreateTable = 'Table creation failed.';
$lang->install->errorEngineInnodb = 'Your MySQL does not support InnoDB data table engine. Please modify it to MyISAM and try again.';
$lang->install->errorImportDemoData = 'Importing demo data failed.';
$lang->install->errorDBUserPriv = 'The current database user does not have sufficient permissions! \nPlease switch to the root user or use the following SQL statement to grant the current user permissions:\n';
$lang->install->setConfig = 'Create config file';
$lang->install->key = 'Item';
$lang->install->value = 'Value';
$lang->install->saveConfig = 'Save config file';
$lang->install->save2File = '<div class="text-warning">Copy the content in the text box above and save it to "<strong> %s </strong>". You can change this configuration file later.</div>';
$lang->install->saved2File = 'The configuration file has been saved to " <strong>%s</strong> ". You can change this file later.';
$lang->install->errorNotSaveConfig = 'The configuration file is not saved.';
$lang->install->errorNotInitConfig = 'The configuration file has not been created.';
global $app;
$lang->install->CSRFNotice = "CSRF defense has been enabled in the system. If you don't need it, contact the administrator to disable it manually in the {$app->basePath}config/config.php file.";
$lang->install->getPriv = 'Set Admin';
$lang->install->company = 'Company Name';
$lang->install->account = 'Admin Account';
$lang->install->password = 'Admin Password';
$lang->install->placeholder = new stdclass();
$lang->install->placeholder->password = 'The Password should be ≥ 6 characters, combination of uppercase, lowercase letters and numbers.';
$lang->install->errorEmpty['company'] = "{$lang->install->company} should not be blank.";
$lang->install->errorEmpty['account'] = "{$lang->install->account} should not be blank.";
$lang->install->errorEmpty['password'] = "{$lang->install->password} should not be blank.";
$lang->install->langList['1'] = array('module' => 'process', 'key' => 'support', 'value' => 'Support Process');
$lang->install->langList['2'] = array('module' => 'process', 'key' => 'engineering', 'value' => 'Engineering Process');
$lang->install->langList['3'] = array('module' => 'process', 'key' => 'project', 'value' => 'Project Management');
$lang->install->processList['11'] = 'Project management';
$lang->install->processList['12'] = 'Project planning';
$lang->install->processList['13'] = 'Project monitoring';
$lang->install->processList['14'] = 'Risk management';
$lang->install->processList['15'] = 'Closing management';
$lang->install->processList['16'] = 'Quantitative Project management';
$lang->install->processList['17'] = 'Stories development';
$lang->install->processList['18'] = 'Design and development';
$lang->install->processList['19'] = 'Implementation and testing';
$lang->install->processList['20'] = 'System test';
$lang->install->processList['21'] = 'Customer acceptance';
$lang->install->processList['22'] = 'Quality assurance';
$lang->install->processList['23'] = 'Configuration management';
$lang->install->processList['24'] = 'Metric analysis';
$lang->install->processList['25'] = 'Cause analysis and resolution';
$lang->install->processList['26'] = 'Decision analysis';
$lang->install->basicmeasList['2'] = array('name' => 'Initial size of project user requirements', 'unit' => 'Story points or function points', 'definition' => 'Sum of the size of the baseline version of the first CUSTOMER requirements specification for each product of the project');
$lang->install->basicmeasList['3'] = array('name' => 'Initial scale of project software requirements', 'unit' => 'Story points or function points', 'definition' => 'Sum of the size of the first software requirements specification baseline release for each product of the project');
$lang->install->basicmeasList['4'] = array('name' => 'Real-time scale of project user requirements', 'unit' => 'Story points or function points', 'definition' => 'The actual size of the project user requirements');
$lang->install->basicmeasList['5'] = array('name' => 'Real-time scale of project software requirements', 'unit' => 'Story points or function points', 'definition' => 'The actual scale of the project software requirements');
$lang->install->basicmeasList['6'] = array('name' => 'Estimated project size', 'unit' => 'Story points or function points', 'definition' => 'The estimated size of the project when it was originally estimated');
$lang->install->basicmeasList['8'] = array('name' => 'Project requirements phase planning days', 'unit' => 'Day', 'definition' => 'The sum of planned days for all requirements phases under the project');
$lang->install->basicmeasList['9'] = array('name' => 'Number of days planned during project design phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all design phases under the project');
$lang->install->basicmeasList['10'] = array('name' => 'Planned number of days during project development phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all development phases under the project');
$lang->install->basicmeasList['11'] = array('name' => 'Number of days planned for project test phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all test phases under the project');
$lang->install->basicmeasList['12'] = array('name' => 'Actual days of project requirements phase', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all requirements phases under the project');
$lang->install->basicmeasList['13'] = array('name' => 'Actual days of project design phase', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all design phases under the project');
$lang->install->basicmeasList['14'] = array('name' => 'Actual number of days during the project development phase', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all r&d phases under the project');
$lang->install->basicmeasList['15'] = array('name' => 'Actual number of days during the project test phase', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all test phases under the project');
$lang->install->basicmeasList['26'] = array('name' => 'Plan days by product requirements phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all requirements phases under the product');
$lang->install->basicmeasList['27'] = array('name' => 'Plan days by product design stage', 'unit' => 'Day', 'definition' => 'The sum of planned days for all design phases under the product');
$lang->install->basicmeasList['28'] = array('name' => 'Planned days by product development phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all development phases under the product');
$lang->install->basicmeasList['29'] = array('name' => 'Plan days by product test phase', 'unit' => 'Day', 'definition' => 'The sum of planned days for all test phases under the product');
$lang->install->basicmeasList['30'] = array('name' => 'Actual days of product requirements stage', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all requirement phases under the product');
$lang->install->basicmeasList['31'] = array('name' => 'Actual days of product design stage', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all design phases under the product');
$lang->install->basicmeasList['32'] = array('name' => 'By actual days of product development stage', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all development phases under the product');
$lang->install->basicmeasList['33'] = array('name' => 'By actual days of product test phase', 'unit' => 'Day', 'definition' => 'The sum of the actual days of all testing phases under the product');
$lang->install->basicmeasList['34'] = array('name' => 'Real-time estimated working hours of project tasks', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all tasks under the project');
$lang->install->basicmeasList['35'] = array('name' => 'Total estimated real-time working hours of project requirements', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all requirements related tasks of the project');
$lang->install->basicmeasList['36'] = array('name' => 'Total estimated time of project design work in real time', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all design-related tasks of the project');
$lang->install->basicmeasList['37'] = array('name' => 'Total estimated time of project development in real time', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all development related tasks of the project');
$lang->install->basicmeasList['38'] = array('name' => 'Total estimated time of project test work in real time', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all test related tasks of the project');
$lang->install->basicmeasList['39'] = array('name' => 'Actual man-hours cost by project tasks', 'unit' => 'Hour','definition' => 'The sum of the actual man-hours cost for all tasks under the project');
$lang->install->basicmeasList['40'] = array('name' => 'The actual number of man-hours cost by project requirements work', 'unit' => 'Hour','definition' => 'The sum of the actual man-hours cost by all demand-related tasks of the project');
$lang->install->basicmeasList['41'] = array('name' => 'The actual number of man-hours cost by project design work', 'unit' => 'Hour','definition' => 'The sum of the actual man-hours cost by all design-related tasks of the project');
$lang->install->basicmeasList['42'] = array('name' => 'The actual number of man-hours cost by project development work', 'unit' => 'Hour','definition' => 'The sum of the actual man-hours cost by all development related tasks of the project');
$lang->install->basicmeasList['43'] = array('name' => 'The actual number of man-hours cost by the project testing work', 'unit' => 'Hour','definition' => 'The sum of the actual man-hours cost by all test related tasks of the project');
$lang->install->basicmeasList['44'] = array('name' => 'Total estimated initial hours of project development work', 'unit' => 'Hour','definition' => 'The sum of the initial estimated work hours of all development related work in the first baseline release of the project plan');
$lang->install->basicmeasList['45'] = array('name' => 'Total estimated initial hours of project design work', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours of all design-related work in the first baseline version of the project plan');
$lang->install->basicmeasList['46'] = array('name' => 'Total estimated initial work hours for project testing', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours of all test-related work in the first baseline release of the project plan');
$lang->install->basicmeasList['47'] = array('name' => 'Total estimated initial hours of work required for the project', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours of all requirements related work in the first baseline version of the project plan');
$lang->install->basicmeasList['48'] = array('name' => 'Total estimated initial work hours for project tasks', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours for all tasks in the first baseline version of the project plan');
$lang->install->basicmeasList['49'] = array('name' => 'The final estimated number of project development hours', 'unit' => 'Hour','definition' => 'The sum of the initial estimated work hours of all development-related tasks in the last baseline release of the project plan');
$lang->install->basicmeasList['50'] = array('name' => 'Total estimated final work hours of project requirements', 'unit' => 'Hour','definition' => 'The sum of the initial estimated work hours of all requirements related tasks in the last baseline release of the project plan');
$lang->install->basicmeasList['51'] = array('name' => 'The final estimated number of project testing hours', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours of all test related tasks in the last baseline release of the project plan');
$lang->install->basicmeasList['52'] = array('name' => 'The final estimated total working hours of project design work', 'unit' => 'Hour','definition' => 'The sum of the initial estimated man-hours of all design-related tasks in the last baseline release of the project plan');
$lang->install->basicmeasList['53'] = array('name' => 'Total estimated final work hours of project tasks', 'unit' => 'Hour', 'definition' => 'The sum of the initial estimated man-hours for all tasks in the last baseline release of the project plan');
$lang->install->selectedMode = 'Selection mode';
$lang->install->selectedModeTips = 'You can go to the Admin - Custom - Mode to set it later.';
$lang->install->groupList['ADMIN']['name'] = 'Admin';
$lang->install->groupList['ADMIN']['desc'] = 'System Admin';
$lang->install->groupList['DEV']['name'] = 'Dev';
$lang->install->groupList['DEV']['desc'] = 'Developer';
$lang->install->groupList['QA']['name'] = 'Test';
$lang->install->groupList['QA']['desc'] = 'Tester';
$lang->install->groupList['PM']['name'] = 'PM';
$lang->install->groupList['PM']['desc'] = 'Project Manager';
$lang->install->groupList['PO']['name'] = 'PO';
$lang->install->groupList['PO']['desc'] = 'Product Owner';
$lang->install->groupList['TD']['name'] = 'Dev Manager';
$lang->install->groupList['TD']['desc'] = 'Development Manager';
$lang->install->groupList['PD']['name'] = 'PD';
$lang->install->groupList['PD']['desc'] = 'Product Director';
$lang->install->groupList['QD']['name'] = 'QD';
$lang->install->groupList['QD']['desc'] = 'Test Director';
$lang->install->groupList['TOP']['name'] = 'Senior Manager';
$lang->install->groupList['TOP']['desc'] = 'Senior Manager';
$lang->install->groupList['OTHERS']['name'] = 'Others';
$lang->install->groupList['OTHERS']['desc'] = 'other users';
$lang->install->groupList['LIMITED']['name'] = 'Restricted User';
$lang->install->groupList['LIMITED']['desc'] = 'Restricted User Group (Related Content Editing Only)';
$lang->install->groupList['PROJECTADMIN']['name'] = 'Project Admin';
$lang->install->groupList['PROJECTADMIN']['desc'] = 'Project Admins can manage project permissions.';
$lang->install->groupList['LITEADMIN']['name'] = 'Admin';
$lang->install->groupList['LITEADMIN']['desc'] = 'Operations Management User Groups';
$lang->install->groupList['LITEPROJECT']['name'] = 'Project Management';
$lang->install->groupList['LITEPROJECT']['desc'] = 'Operations Management User Groups';
$lang->install->groupList['LITETEAM']['name'] = 'Team Members';
$lang->install->groupList['LITETEAM']['desc'] = 'Operations Management User Groups';
$lang->install->groupList['IPDPRODUCTPLAN']['name'] = 'Product Planner';
$lang->install->groupList['IPDDEMAND']['name'] = 'Story Analyst';
$lang->install->groupList['IPDPMT']['name'] = 'PMT Members';
$lang->install->groupList['IPDADMIN']['name'] = 'Admins';
$lang->install->cronList[''] = 'Monitor Cron';
$lang->install->cronList['moduleName=execution&methodName=computeBurn'] = 'Update Burndown Chart';
$lang->install->cronList['moduleName=report&methodName=remind'] = 'Daily Task Reminder';
$lang->install->cronList['moduleName=svn&methodName=run'] = 'Synchronize SVN';
$lang->install->cronList['moduleName=git&methodName=run'] = 'Synchronize GIT';
$lang->install->cronList['moduleName=backup&methodName=backup'] = 'Backup data&file';
$lang->install->cronList['moduleName=mail&methodName=asyncSend'] = 'Asynchronize sending emails';
$lang->install->cronList['moduleName=webhook&methodName=asyncSend'] = 'Asynchronize sending webhook';
$lang->install->cronList['moduleName=admin&methodName=deleteLog'] = 'Delete overdue logs';
$lang->install->cronList['moduleName=todo&methodName=createCycle'] = 'Create recurring todos';
$lang->install->cronList['moduleName=ci&methodName=initQueue'] = 'Create recurring tasks';
$lang->install->cronList['moduleName=ci&methodName=checkCompileStatus'] = 'Synchronize Jenkins Status';
$lang->install->cronList['moduleName=ci&methodName=exec'] = 'Execute Jenkins';
$lang->install->cronList['moduleName=mr&methodName=syncMR'] = 'Synchronize GitLab merge request';
$lang->install->dbProgress = "Installing Database Table";
$lang->install->dbFinish = "Database tables installed successfully";
$lang->install->success = "Installed!";
$lang->install->login = 'ZenTao Login';
$lang->install->register = 'ZenTao Community Signup';
$lang->install->successLabel = "<p>You have installed ZenTao successfully %s.</p>";
$lang->install->successNoticeLabel = "<p>You have installed ZenTao %s.<strong class='text-danger'> Please delete install.php</strong>.</p>";
$lang->install->congratulations = "Congratulations! ZenTao has been installed successfully.";
$lang->install->joinZentao = <<<EOT
<p>Note: To stay updated with the latest ZenTao news, please register on the ZenTao Community (<a href='https://www.zentao.net' class='alert-link' target='_blank'>www.zentao.net</a>).</p>
EOT;
$lang->install->product = array('chanzhi', 'zdoo', 'xuanxuan', 'ydisk', 'meshiot');
$lang->install->promotion = "Recommended products from the ZenTao family:";
$lang->install->chanzhi = new stdclass();
$lang->install->chanzhi->name = 'ZSITE';
$lang->install->chanzhi->logo = 'images/main/chanzhi.ico';
$lang->install->chanzhi->url = 'https://www.zsite.com';
$lang->install->chanzhi->desc = <<<EOD
<ul>
<li>Professional enterprise marketing portal system</li>
<li>Feature-rich with an intuitive and user-friendly interface</li>
<li>Highly optimized for SEO with attention to every detail</li>
<li>Open source and free for unlimited commercial use!</li>
</ul>
EOD;
$lang->install->zdoo = new stdclass();
$lang->install->zdoo->name = 'ZDOO Collaboration';
$lang->install->zdoo->logo = 'images/main/zdoo.ico';
$lang->install->zdoo->url = 'https://www.zdoo.com';
$lang->install->zdoo->desc = <<<EOD
<ul>
<li>CRM & Order Tracking</li>
<li>Project Tasks, Announcements & Docs</li>
<li>Cash Management: Income & Expenses</li>
<li>Forums, Blogs & Activity Feeds</li>
</ul>
EOD;
$lang->install->ydisk = new stdclass();
$lang->install->ydisk->name = 'YDisk';
$lang->install->ydisk->logo = 'images/main/ydisk.ico';
$lang->install->ydisk->url = 'http://www.ydisk.cn';
$lang->install->ydisk->desc = <<<EOD
<ul>
<li>Self-Hosted: deploy on your own machine</li>
<li>Unlimited Storage: depend on your hard drive size</li>
<li>Fast Transmission: as fast as your bandwidth allows</li>
<li>Secure: 12 permissions for any strict settings</li>
</ul>
EOD;
$lang->install->meshiot = new stdclass();
$lang->install->meshiot->name = 'MeshIoT';
$lang->install->meshiot->logo = 'images/main/meshiot.ico';
$lang->install->meshiot->url = 'https://www.meshiot.com';
$lang->install->meshiot->desc = <<<EOD
<ul>
<li>Performance: one gateway can monitor 65,536 equipments</li>
<li>Accessibility: unique radio communication protocol covers 2,500m radius</li>
<li>Dimming System: 200+ sensors and monitors</li>
<li>Battery Available: no changes required to any equipment on your site</li>
</ul>
EOD;
$lang->install->solution = new stdclass();
$lang->install->solution->skip = 'Skip';
$lang->install->solution->skipInstall = 'Skip';
$lang->install->solution->log = 'Install Log';
$lang->install->solution->title = 'CI&CD platform application settings';
$lang->install->solution->progress = 'CI&CD platform Installation';
$lang->install->solution->desc = 'Welcome to the CI&CD platform. We will install the following applications simultaneously when you install the platform to help you get started quickly!';
$lang->install->solution->overMemory = 'Insufficient memory prevents simultaneous installation. It is recommended to install applications manually after the platform is started.';

399
module/instance/lang/ru.php Normal file
View file

@ -0,0 +1,399 @@
<?PHP
$lang->instance = new stdclass;
$lang->instance->common = 'Services';
$lang->instance->manage = 'Manage Services';
$lang->instance->view = 'Service details';
$lang->instance->ajaxStatus = 'Get Service Status';
$lang->instance->ajaxStart = 'Start Service';
$lang->instance->ajaxStop = 'Stop Service';
$lang->instance->ajaxUninstall = 'Uninstall Service';
$lang->instance->name = 'Service Name';
$lang->instance->customName = 'Name';
$lang->instance->appName = 'Service type';
$lang->instance->version = 'version';
$lang->instance->status = 'Status';
$lang->instance->cpu = 'CPU';
$lang->instance->mem = 'Memory';
$lang->instance->space = 'Storage';
$lang->instance->domain = 'Domain';
$lang->instance->visitIP = 'Access Method';
$lang->instance->dbType = 'Database';
$lang->instance->advanceOption = 'Advanced Options';
$lang->instance->baseInfo = 'Basic info';
$lang->instance->backupAndRestore = 'Backup';
$lang->instance->advance = 'Advanced';
$lang->instance->enableLDAP = 'Enable LDAP';
$lang->instance->linkLDAP = 'Integrate LDAP';
$lang->instance->enableSMTP = 'Enable SMTP';
$lang->instance->customSetting = 'Custom settings';
$lang->instance->updateDomain = 'Update domain';
$lang->instance->updateLog = 'Update logs';
$lang->instance->start = 'Start';
$lang->instance->restart = 'Restart';
$lang->instance->stop = 'Stop';
$lang->instance->install = 'Install';
$lang->instance->update = 'Update';
$lang->instance->upgrade = 'Upgrade';
$lang->instance->customInstall = 'Custom Install';
$lang->instance->uninstall = 'delete';
$lang->instance->visit = 'Visit';
$lang->instance->editName = 'Edit name';
$lang->instance->cpuCore = 'Cores';
$lang->instance->scalable = 'Scale service';
$lang->instance->change = 'Edit';
$lang->instance->browseProject = "Projects";
$lang->instance->url = "Server URL";
$lang->instance->systemLDAPInactive = 'System LDAP not enabled';
$lang->instance->toSystemLDAP = 'Enable now';
$lang->instance->enableSMTP = 'Enable SMTP';
$lang->instance->systemSMTPInactive = 'System SMTP not enabled';
$lang->instance->toSystemSMTP = 'Enable now';
$lang->instance->serviceInfo = 'Service info';
$lang->instance->appTemplate = 'App template';
$lang->instance->source = 'Source';
$lang->instance->installBy = 'Creator';
$lang->instance->installAt = 'Created at';
$lang->instance->runDuration = 'Uptime';
$lang->instance->defaultAccount = 'Default User';
$lang->instance->defaultPassword = 'Default Password';
$lang->instance->account = 'Username';
$lang->instance->password = 'Password';
$lang->instance->token = 'Token';
$lang->instance->copied = 'Copied';
$lang->instance->operationLog = 'Operation logs';
$lang->instance->installedService = 'Installed services';
$lang->instance->runningService = 'Running services';
$lang->instance->installApp = 'Install App';
$lang->instance->cpuUsage = 'CPU usage';
$lang->instance->memUsage = 'Memory usage';
$lang->instance->memTotal = '(Total %s)';
$lang->instance->volUsage = 'Disk usage';
$lang->instance->volTotal = '(Total %s)';
$lang->instance->currentMemory = 'Current Memory';
$lang->instance->adjustMem = 'Memory';
$lang->instance->adjustCPU = 'CPU';
$lang->instance->adjustVol = 'Disk Space';
$lang->instance->setting = 'Settings';
$lang->instance->saveSetting = 'Save Settings';
$lang->instance->leftTime = 'Remaining';
$lang->instance->switchTo = 'Upgrade to';
$lang->instance->or = 'or';
$lang->instance->hasRead = 'Read';
$lang->instance->stopInstanceTips = 'You must stop the service before upgrading to the advanced version.';
$lang->instance->dbTypes = array();
$lang->instance->dbTypes['sharedDB'] = 'Shared Database';
$lang->instance->dbTypes['unsharedDB'] = 'Dedicated Database';
$lang->instance->backup = new stdclass;
$lang->instance->backup->common = 'backup';
$lang->instance->backup->date = 'Backup date';
$lang->instance->backup->operator = 'Backed up by';
$lang->instance->backup->type = 'Backup type';
$lang->instance->backup->backupStatus = 'Backup Status';
$lang->instance->backup->restoreStatus = 'Restore Status';
$lang->instance->backup->restoreOperator = 'Restored by';
$lang->instance->backup->restoreTime = 'Restore date';
$lang->instance->backup->action = 'Actions';
$lang->instance->backup->restore = 'rollback';
$lang->instance->backup->restoreInfo = 'Rollback info';
$lang->instance->backup->delete = 'Delete';
$lang->instance->backup->rebackup = 'Retry backup';
$lang->instance->backup->create = 'Create backup';
$lang->instance->backup->database = 'Database';
$lang->instance->backup->dbType = 'Type';
$lang->instance->backup->dbName = 'name';
$lang->instance->backup->dbStatus = 'Status';
$lang->instance->backup->dbSpentSeconds = 'Duration (s)';
$lang->instance->backup->dbSize = 'Size';
$lang->instance->backup->volumne = 'Volume';
$lang->instance->backup->volName = 'name';
$lang->instance->backup->volMountName = 'Mount path';
$lang->instance->backup->volStatus = 'Status';
$lang->instance->backup->volSpentSeconds = 'Duration (s)';
$lang->instance->backup->volSize = 'Size';
$lang->instance->backup->lastRestore = 'Last rollback';
$lang->instance->backup->restoreDate = 'Restore date';
$lang->instance->backup->latestBackupAt = 'Last backup date';
$lang->instance->backup->backupBeforeRestore = 'We recommend backing up before rolling back.';
$lang->instance->backup->enableAutoBackup = 'Enable auto-backup';
$lang->instance->backup->autoBackup = 'Auto-backup';
$lang->instance->backup->cycleDays = 'backup cycle';
$lang->instance->backup->backupTime = 'backup time';
$lang->instance->backup->keepDays = 'retention days';
$lang->instance->backup->keepDayRange = 'Enter an integer between 1 and 30.';
$lang->instance->backup->firstStartTime = '%s The first backup will run at %s.';
$lang->instance->backup->invalidTime = 'Invalid time';
$lang->instance->backup->disableAutoBackup = 'Auto-backup disabled.';
$lang->instance->backup->keepBackupBySystem = 'Expired auto-backups are deleted only when more than one backup exists.';
$lang->instance->backup->backupSize = 'Size';
$lang->instance->backup->confirmTip = 'Are you sure you want to back up?';
$lang->instance->backup->cronRemark = 'CI&CD service auto-backup task';
$lang->instance->backup->backupSettingsTip = 'Backups exceeding the retention period will be deleted, but at least one valid backup is kept.';
$lang->instance->backup->confirmDeleteTip = 'Are you sure you want to delete this backup?';
$lang->instance->backup->cycleList[1] = 'Daily';
$lang->instance->backup->operators = array();
$lang->instance->backup->operators['auto'] = 'Auto-backup';
$lang->instance->backup->operators['manual'] = 'Manual backup';
$lang->instance->backup->operators['settings'] = 'Backup Settings';
$lang->instance->backup->statusList = array();
$lang->instance->backup->statusList['success'] = 'Success';
$lang->instance->backup->statusList['failed'] = 'failed';
$lang->instance->backup->statusList['pending'] = 'Pending';
$lang->instance->backup->statusList['processing'] = 'Backing up';
$lang->instance->backup->statusList['inprogress'] = 'Backing up';
$lang->instance->backup->statusList['completed'] = 'completed';
$lang->instance->backup->statusList['executedFailed'] = 'Failed';
$lang->instance->backup->statusList['uploading'] = 'Uploading';
$lang->instance->backup->statusList['deleting'] = 'Deleting';
$lang->instance->backup->statusList['uploadFailed'] = 'Upload failed';
$lang->instance->backup->statusList['downloading'] = 'Downloading';
$lang->instance->backup->statusList['downloadFailed'] = 'Download failed';
$lang->instance->backup->autoRestoreOptions[0] = 'Disabled';
$lang->instance->backup->autoRestoreOptions[1] = 'Enabled';
$lang->instance->restore = new stdclass;
$lang->instance->restore->common = 'Restore';
$lang->instance->restore->autoRestore = 'Auto-restore';
$lang->instance->restore->enableAutoRestore = 'Enable auto-restore';
$lang->instance->restore->cycleDays = 'Restore cycle';
$lang->instance->restore->restoreTime = 'Restore time';
$lang->instance->restore->invalidTime = 'Invalid time';
$lang->instance->restore->disableAutoRestore = 'Auto-restore disabled.';
$lang->instance->restore->firstStartTime = '%s The first auto-restore will run at %s.';
$lang->instance->restore->cycleList[1] = 'Daily';
$lang->instance->restore->statusList = array();
$lang->instance->restore->statusList['pending'] = 'Pending';
$lang->instance->restore->statusList['inprogress'] = 'In progress';
$lang->instance->restore->statusList['completed'] = 'completed';
$lang->instance->restore->statusList['failed'] = 'failed';
$lang->instance->dbList = 'Databases';
$lang->instance->dbName = 'Name';
$lang->instance->dbStatus = 'Status';
$lang->instance->dbType = 'Type';
$lang->instance->action = 'Actions';
$lang->instance->management = 'Manage';
$lang->instance->dbReady = 'Ready';
$lang->instance->dbWaiting = 'Pending readiness';
$lang->instance->log = new stdclass;
$lang->instance->log->date = 'date';
$lang->instance->log->message = 'Message';
$lang->instance->log->viewButton = 'Logs';
$lang->instance->log->title = 'View logs';
$lang->instance->log->button = 'View Now';
$lang->instance->log->autoRefresh = 'Auto-refresh';
$lang->instance->log->tips = 'Logs auto-refresh by default. Click to toggle.';
$lang->instance->log->noLog = 'No logs available.';
$lang->instance->component = 'Component';
$lang->instance->pod = 'Pod';
$lang->instance->previous = 'View exited containers';
$lang->instance->isPreviousList[0] = 'Current container';
$lang->instance->isPreviousList[1] = 'Previous container';
$lang->instance->event = new stdClass;
$lang->instance->event->viewButton = 'Events';
$lang->instance->event->title = 'View events';
$lang->instance->event->button = 'View Now';
$lang->instance->event->noEvents = 'No events found.';
$lang->instance->actionList = array();
$lang->instance->actionList['install'] = 'Installed %s';
$lang->instance->actionList['uninstall'] = 'Deleted %s';
$lang->instance->actionList['start'] = 'Started %s';
$lang->instance->actionList['stop'] = 'Stopped %s';
$lang->instance->actionList['editname'] = 'Modified name';
$lang->instance->actionList['upgrade'] = 'upgraded %s';
$lang->instance->actionList['backup'] = 'Backed up %s';
$lang->instance->actionList['restore'] = 'Rolled back %s';
$lang->instance->actionList['adjustmemory'] = 'Adjusted memory of %s to %s';
$lang->instance->actionList['adjustreplicas'] = 'Adjusted replicas of %s to %s';
$lang->instance->actionList['enableldap'] = 'Enabled LDAP';
$lang->instance->actionList['disableldap'] = 'Disabled LDAP';
$lang->instance->actionList['enablesmtp'] = 'enabled SMTP';
$lang->instance->actionList['disablesmtp'] = 'Disabled SMTP';
$lang->instance->actionList['updatecustom'] = 'Modified custom settings';
$lang->instance->actionList['saveautobackupsettings'] = 'Modified auto-backup settings';
$lang->instance->actionList['saveautorestoresettings'] = 'Modified auto-restore settings';
$lang->instance->actionList['autobackup'] = 'System performed auto-backup';
$lang->instance->actionList['autorestore'] = 'System performed auto-restore';
$lang->instance->actionList['deleteexpiredbackup'] = 'System delete expired auto-backups';
$lang->instance->sourceList = array();
$lang->instance->sourceList['cloud'] = 'Marketplace';
$lang->instance->sourceList['local'] = 'Local Market';
$lang->instance->sourceList['user'] = 'Manual config';
$lang->instance->channelList = array();
$lang->instance->channelList['test'] = 'Beta';
$lang->instance->channelList['stable'] = 'Stable';
$lang->instance->statusList = array();
$lang->instance->statusList['installationFail'] = 'Installation failed';
$lang->instance->statusList['creating'] = 'Creating';
$lang->instance->statusList['initializing'] = 'initializing';
$lang->instance->statusList['pulling'] = 'Pulling';
$lang->instance->statusList['startup'] = 'Starting';
$lang->instance->statusList['starting'] = 'Starting';
$lang->instance->statusList['running'] = 'Running';
$lang->instance->statusList['suspending'] = 'Suspending';
$lang->instance->statusList['suspended'] = 'Suspended';
$lang->instance->statusList['installing'] = 'Installing';
$lang->instance->statusList['uninstalling'] = 'Deleting';
$lang->instance->statusList['stopping'] = 'Stopping';
$lang->instance->statusList['stopped'] = 'Stopped';
$lang->instance->statusList['destroying'] = 'Destroying';
$lang->instance->statusList['destroyed'] = 'Destroyed';
$lang->instance->statusList['abnormal'] = 'Abnormal';
$lang->instance->statusList['upgrading'] = 'Upgrading';
$lang->instance->statusList['unknown'] = 'unknown';
$lang->instance->statusList['scheduling'] = 'Scheduling';
$lang->instance->htmlStatusesClass = array();
$lang->instance->htmlStatusesClass['running'] = 'success';
$lang->instance->htmlStatusesClass['stopped'] = 'default';
$lang->instance->htmlStatusesClass['abnormal'] = 'danger';
$lang->instance->htmlStatusesClass['installationFail'] = 'danger';
$lang->instance->htmlStatusesClass['busy'] = "warning";
$lang->instance->memOptions = array();
$lang->instance->memOptions[128 * 1024] = '128 MB';
$lang->instance->memOptions[256 * 1024] = '256 MB';
$lang->instance->memOptions[512 * 1024] = '512 MB';
$lang->instance->memOptions[1024 * 1024] = '1 GB';
$lang->instance->memOptions[2048 * 1024] = '2 GB';
$lang->instance->memOptions[4096 * 1024] = '4 GB';
$lang->instance->memOptions[8192 * 1024] = '8 GB';
$lang->instance->memOptions[16384 * 1024] = '16 GB';
$lang->instance->memOptions[32768 * 1024] = '32 GB';
$lang->instance->cpuOptions = array();
$lang->instance->cpuOptions[1] = '1 core';
$lang->instance->cpuOptions[2] = '2 cores';
$lang->instance->cpuOptions[4] = '4 cores';
$lang->instance->cpuOptions[8] = '8 cores';
$lang->instance->cpuOptions[16] = '16 cores';
$lang->instance->cpuOptions[64] = 'No limit';
$lang->instance->componentFields = array();
$lang->instance->componentFields['replicas'] = 'Replicas';
$lang->instance->componentFields['cpu_limit'] = 'CPU';
$lang->instance->componentFields['mem_limit'] = 'Memory';
$lang->instance->notices = array();
$lang->instance->notices['success'] = 'Success';
$lang->instance->notices['fail'] = 'failed';
$lang->instance->notices['error'] = 'error';
$lang->instance->notices['confirmStart'] = 'Are you sure you want to start this app?';
$lang->instance->notices['confirmStop'] = 'Are you sure you want to stop this app?';
$lang->instance->notices['confirmUninstall'] = 'Are you sure you want to delete this app?';
$lang->instance->notices['confirmUninstallStoreApp'] = 'Are you sure you want to delete? App and data cannot be recovered.';
$lang->instance->notices['startSuccess'] = 'Started successfully';
$lang->instance->notices['startFail'] = 'Start failed';
$lang->instance->notices['stopSuccess'] = 'Stopped successfully';
$lang->instance->notices['stopFail'] = 'Stop failed';
$lang->instance->notices['uninstallSuccess'] = 'Deleted successfully';
$lang->instance->notices['uninstallFail'] = 'Delete failed';
$lang->instance->notices['installSuccess'] = 'Installed successfully';
$lang->instance->notices['installFail'] = 'Installation failed';
$lang->instance->notices['upgradeSuccess'] = 'Upgraded successfully';
$lang->instance->notices['upgradeFail'] = 'Upgrade failed';
$lang->instance->notices['backupSuccess'] = 'Backup task submitted';
$lang->instance->notices['backupFail'] = 'Backup failed';
$lang->instance->notices['cleanBackupsSuccess'] = 'Backup cleanup successful';
$lang->instance->notices['restoreSuccess'] = 'Restore task submitted';
$lang->instance->notices['restoreFail'] = 'Restore failed';
$lang->instance->notices['deleteSuccess'] = 'Deletion task submitted';
$lang->instance->notices['deleteFail'] = 'Delete failed';
$lang->instance->notices['starting'] = 'Starting, please wait...';
$lang->instance->notices['stopping'] = 'Stopping, please wait...';
$lang->instance->notices['installing'] = 'Installing, please wait...';
$lang->instance->notices['uninstalling'] = 'Deleting, please wait...';
$lang->instance->notices['upgrading'] = 'Upgrading, please wait...';
$lang->instance->notices['backuping'] = 'Backing up, please wait...';
$lang->instance->notices['restoring'] = 'Restoring, please wait...';
$lang->instance->notices['deleting'] = 'Deleting, please wait...';
$lang->instance->notices['adjusting'] = 'Adjusting, please wait...';
$lang->instance->notices['switching'] = 'Submitting, please wait...';
$lang->instance->notices['setting'] = 'Submitting, please wait...';
$lang->instance->notices['confirmInstall'] = 'Are you sure you want to install %s?';
$lang->instance->notices['confirmUpgrade'] = 'Are you sure you want to upgrade?';
$lang->instance->notices['confirmBackup'] = 'Are you sure you want to back up?';
$lang->instance->notices['confirmRestore'] = 'This action will overwrite current data with the backup. Are you sure you want to roll back?';
$lang->instance->notices['confirmDelete'] = 'Are you sure you want to delete this backup?';
$lang->instance->notices['adjustMemory'] = 'Are you sure you want to adjust memory?';
$lang->instance->notices['switchLDAP'] = 'Modifying LDAP will restart the service. Are you sure you want to continue?';
$lang->instance->notices['enableLDAPFailed'] = 'Failed to enable LDAP';
$lang->instance->notices['disableLDAPFailed'] = 'Failed to disable LDAP';
$lang->instance->notices['enableLDAPSuccess'] = 'LDAP enabled successfully';
$lang->instance->notices['disableLDAPSuccess'] = 'LDAP disabled successfully';
$lang->instance->notices['switchSMTP'] = 'Modifying SMTP will restart the service. Are you sure you want to continue?';
$lang->instance->notices['enableSMTPFailed'] = 'Failed to enable SMTP';
$lang->instance->notices['disableSMTPFailed'] = 'Failed to disable SMTP';
$lang->instance->notices['enableSMTPSuccess'] = 'SMTP enabled successfully';
$lang->instance->notices['disableSMTPSuccess'] = 'SMTP disabled successfully';
$lang->instance->notices['confirmCustom'] = 'The service will restart automatically to apply your custom settings.';
$lang->instance->notices['required'] = 'cannot be empty';
$lang->instance->notices['notEnoughResource'] = 'Insufficient platform resources. Are you sure you want to continue the installation?';
$lang->instance->notices['NoCleanBackupFiles'] = 'There are currently no backup files available to clean up.';
$lang->instance->notices['cleanBackupSuccess'] = 'Backup cleanup successful';
$lang->instance->nameChangeTo = 'Changed %s to %s.';
$lang->instance->versionChangeTo = 'Upgraded %s to %s.';
$lang->instance->adjustMemorySize = 'We recommend adjusting memory to %s.';
$lang->instance->enableAutoBackup = 'Enable auto-backup';
$lang->instance->disableAutoBackup = 'Disable auto-backup';
$lang->instance->instanceNotExists = 'Service does not exist.';
$lang->instance->caplicasTooSmall = 'Replicas cannot be < 1.';
$lang->instance->empty = 'No services available.';
$lang->instance->noComponent = 'No components. Click to add.';
$lang->instance->noHigherVersion = 'No higher version found.';
$lang->instance->backupOnlyRunning = 'Only running services can be backed up.';
$lang->instance->restoreOnlyRunning = 'Only running services can be rolled back.';
$lang->instance->howToSelectDB = 'Help me choose';
$lang->instance->appLifeTip = 'Apps installed using a demo account have a 30 minute limit and will be automatically deleted afterward.';
$lang->instance->serialDiff = 'View version differences';
$lang->instance->descOfSwitchSerial = 'You are currently using <strong>%s</strong>. Upgrade to %s to unlock advanced features.';
$lang->instance->errors = new stdclass;
$lang->instance->errors->domainLength = 'The domain name must be between 2 and 20 characters long. Please adjust your entry.';
$lang->instance->errors->domainExists = 'This domain name is already in use. Please enter a different one.';
$lang->instance->errors->wrongDomainCharacter = 'Please use only lowercase letters and numbers for the domain name.';
$lang->instance->errors->noAppInfo = 'Failed to fetch app data. Please refresh the page or try again later.';
$lang->instance->errors->notEnoughResource = 'Insufficient cluster resources. ';
$lang->instance->errors->notEnoughMemory = "The '%s' app requires %s of memory, but only %s is available (shortfall: %s). To proceed, please upgrade your memory or remove unused services.";
$lang->instance->errors->restoreRunning = 'A rollback is currently in progress. Please wait for it to complete.';
$lang->instance->errors->noBackup = 'No backup data available.';
$lang->instance->errors->wrongRequestData = 'Invalid data submitted. Please refresh the page and try again.';
$lang->instance->errors->noDBList = 'Database not found or inaccessible.';
$lang->instance->errors->notFoundDB = 'Database not found.';
$lang->instance->errors->dbNameIsEmpty = 'Database name cannot be empty.';
$lang->instance->errors->failToAdjustMemory = 'Failed to adjust memory.';
$lang->instance->errors->failToAdjustCPU = 'Failed to adjust CPU.';
$lang->instance->errors->failToAdjustVol = 'Failed to adjust disk space.';
$lang->instance->errors->switchLDAPFailed = 'Failed to modify LDAP settings.';
$lang->instance->errors->switchSMTPFailed = 'Failed to modify SMTP settings.';
$lang->instance->errors->updateCustomFailed = 'Failed to modify custom settings.';
$lang->instance->errors->failedToUpdateDomain = 'Failed to update domain.';
$lang->instance->errors->invalidDiskSize = 'Disk space must be an integer between %s and %s.';
$lang->instance->tips = new stdclass;
$lang->instance->tips->resizeDisk = 'Enter an integer between %s and %s (in GB).';
$lang->instance->tips->resizeDiskDisabled = 'Disk space for this app cannot be adjusted.';
$lang->instance->tips->fSettingsAttention = 'Modifying CPU, memory, or disk settings will restart the app. Note: Disk space can only be increased. Please proceed with caution.';
$lang->instance->tips->pSettingsAttention = 'Modifying CPU, memory, or other settings will restart the app. Please proceed with caution.';
$lang->instance->tips->diskAdjusting = 'Disk expansion in progress. Further adjustments are temporarily disabled.';

View file

@ -0,0 +1,27 @@
<?php
$lang->jenkins->common = 'Jenkins';
$lang->jenkins->browse = 'Jenkins';
$lang->jenkins->create = 'Create Jenkins';
$lang->jenkins->edit = 'Edit Jenkins';
$lang->jenkins->delete = 'Delete';
$lang->jenkins->confirmDelete = 'Do you want to delete this Jenkins server?';
$lang->jenkins->browseAction = 'Jenkins List';
$lang->jenkins->deleteAction = 'Delete Jenkins';
$lang->jenkins->id = 'ID';
$lang->jenkins->name = 'Application Name';
$lang->jenkins->url = 'Server URL';
$lang->jenkins->token = 'Token';
$lang->jenkins->account = 'Username';
$lang->jenkins->password = 'Password';
$lang->jenkins->lblCreate = 'Create Jenkins Server';
$lang->jenkins->desc = 'Description';
$lang->jenkins->tokenFirst = 'Use token if not empty.';
$lang->jenkins->tips = 'Cancel "Prevent Cross Site Request Forgery exploits" when using password.';
$lang->jenkins->serverList = 'Server List';
$lang->jenkins->error = new stdclass();
$lang->jenkins->error->linkedJob = 'Failed. This jenkins has associated with the compile.';
$lang->jenkins->error->unauthorized = 'Permission verification failed, please check account information';

114
module/job/lang/ru.php Normal file
View file

@ -0,0 +1,114 @@
<?php
$lang->job->common = 'Job';
$lang->job->browse = 'Browse Pipeline';
$lang->job->create = 'Import Pipeline';
$lang->job->edit = 'Edit Pipeline';
$lang->job->exec = 'Execute Pipeline';
$lang->job->runPipeline = 'Run pipeline';
$lang->job->view = 'Pipeline Details';
$lang->job->delete = 'Delete Pipeline';
$lang->job->confirmDelete = 'Do you want to delete this pipeline?';
$lang->job->dirChange = 'Directory Changed';
$lang->job->buildTag = 'Build Tag';
$lang->job->execSuccess = 'Build success';
$lang->job->trigger = 'Trigger';
$lang->job->autoRun = 'Is it triggered';
$lang->job->addTrigger = 'Add Trigger';
$lang->job->browseAction = 'Pipeline List';
$lang->job->id = 'ID';
$lang->job->name = 'Name';
$lang->job->repo = 'Repo';
$lang->job->branch = 'Branch';
$lang->job->product = $lang->productCommon;
$lang->job->svnDir = 'SVN Tag Watch Path';
$lang->job->jenkins = 'Jenkins';
$lang->job->jkHost = 'Jenkins Server';
$lang->job->jkJob = 'Jenkins Task';
$lang->job->buildSpec = 'Build Target'; // 'pipeline@server'
$lang->job->engine = 'Engine';
$lang->job->server = 'Server';
$lang->job->pipeline = 'Pipeline';
$lang->job->buildType = 'Build Type';
$lang->job->frame = 'Frame';
$lang->job->useZentao = 'Trigger by ZenTao';
$lang->job->triggerType = 'Trigger';
$lang->job->atDay = 'Custom Days';
$lang->job->atTime = 'At Time';
$lang->job->lastStatus = 'Last Status';
$lang->job->lastExec = 'Last Executed';
$lang->job->comment = 'Match Keywords';
$lang->job->customParam = 'Custom build parameters';
$lang->job->paramName = 'Name';
$lang->job->paramValue = 'Value';
$lang->job->custom = 'Custom';
$lang->job->createdBy = 'Creator';
$lang->job->createdDate = 'Created Date';
$lang->job->editedBy = 'Edited by';
$lang->job->editedDate = 'Edited Date';
$lang->job->lastTag = 'Last Tag';
$lang->job->deleted = 'Deleted';
$lang->job->repoServer = 'Repo Server';
$lang->job->sonarqubeServer = 'SonarQube Server';
$lang->job->projectKey = 'SonarQube Project';
$lang->job->lblBasic = 'Basic Info';
$lang->job->auto = 'Auto';
$lang->job->example = 'e.g.';
$lang->job->commitEx = "Used to match the keywords used to create a compile. Multiple keywords are separated by ','";
$lang->job->cronSample = 'e.g. 0 0 2 * * 2-6/1 means 2:00 a.m. every weekday.';
$lang->job->sendExec = 'Send execute request success.';
$lang->job->inputName = 'Please enter parameter name.';
$lang->job->invalidName = 'The parameter name should be letters, numbers or underlines.';
$lang->job->repoExists = 'This repository has a build task associated with it『%s』';
$lang->job->projectExists = 'This SonarQube Project has a build task associated with it『%s』';
$lang->job->mustUseJenkins = 'SonarQube frame is only used if the build engine is JenKins.';
$lang->job->jobIsDeleted = 'This repository is associated with a build task, please view the data from the recycle bin';
$lang->job->selectPipeline = 'Please select a pipeline';
$lang->job->triggerRepeat = 'Trigger cannot be repeat';
$lang->job->buildTypeList['build'] = 'Only Build';
$lang->job->buildTypeList['buildAndDeploy'] = 'Build And Deploy';
$lang->job->buildTypeList['buildAndTest'] = 'Build And Test';
$lang->job->triggerTypeList['tag'] = 'Tag';
$lang->job->triggerTypeList['commit'] = 'Code Commit';
$lang->job->triggerTypeList['schedule'] = 'Schedule';
$lang->job->frameList[''] = '';
$lang->job->frameList['junit'] = 'JUnit';
$lang->job->frameList['testng'] = 'TestNG';
$lang->job->frameList['phpunit'] = 'PHPUnit';
$lang->job->frameList['pytest'] = 'Pytest';
$lang->job->frameList['jtest'] = 'JTest';
$lang->job->frameList['cppunit'] = 'CppUnit';
$lang->job->frameList['gtest'] = 'GTest';
$lang->job->frameList['qtest'] = 'QTest';
$lang->job->frameList['sonarqube'] = 'SonarQube';
$lang->job->paramValueList[''] = '';
$lang->job->paramValueList['$zentao_version'] = 'Current version';
$lang->job->paramValueList['$zentao_account'] = 'Current user';
$lang->job->paramValueList['$zentao_product'] = "Current {$lang->productCommon} ID";
$lang->job->paramValueList['$zentao_repopath'] = 'Current version library path';
$lang->job->engineList = array();
$lang->job->engineList[''] = '';
$lang->job->engineList['gitlab'] = 'GitLab';
$lang->job->engineList['jenkins'] = 'Jenkins';
$lang->job->engineTips = new stdclass;
$lang->job->engineTips->success = 'Build engine will use the built pipeline in GitLab.';
$lang->job->engineTips->error = 'No pipeline is currently available in the GitLab project, please go to GitLab configuration first. ';
$lang->job->pipelineTips = "Run for branch name or tag";
$lang->job->pipelineVariables = "Variables";
$lang->job->pipelineVariablesKeyPlaceHolder = "Input variable key";
$lang->job->pipelineVariablesValuePlaceHolder = "Input variable value";
$lang->job->pipelineVariablesTips = "Specify variable values to be used in this run. The values specified in CI/CD settings will be used by default.";
$lang->job->setReferenceTips = "Before performing a build, please set up the branch information of the code base.";
$lang->job->featureBar['browse']['job'] = 'List';
$lang->job->featureBar['browse']['compile'] = 'History';

460
module/kanban/lang/ru.php Normal file
View file

@ -0,0 +1,460 @@
<?php
/* Actions. */
$lang->kanban->noCard = 'No cards yet.';
$lang->kanban->create = 'Create Kanban';
$lang->kanban->createSpace = 'Create Space';
$lang->kanban->editSpace = 'Space Settings';
$lang->kanban->closeSpace = 'Close Space';
$lang->kanban->deleteSpace = 'Delete Space';
$lang->kanban->activateSpace = 'Activate Space';
$lang->kanban->edit = 'Edit Kanban';
$lang->kanban->view = 'View Kanban';
$lang->kanban->activate = 'Activate Kanban';
$lang->kanban->close = 'Close Kanban';
$lang->kanban->delete = 'Delete Kanban';
$lang->kanban->createRegion = 'Create Area';
$lang->kanban->editRegion = 'Edit Area';
$lang->kanban->sortRegion = 'Sort Areas';
$lang->kanban->sortGroup = 'Sort Lane Groups';
$lang->kanban->deleteRegion = 'Delete Area';
$lang->kanban->createLane = 'Create Lane';
$lang->kanban->editLane = 'Lane Settings';
$lang->kanban->sortLane = 'Sort Lanes';
$lang->kanban->laneHeight = 'Lane Height';
$lang->kanban->setLaneHeight = 'Set Lane Height';
$lang->kanban->columnWidth = 'Column Width';
$lang->kanban->setColumnWidth = 'Set Column Width';
$lang->kanban->deleteLane = 'Delete Lane';
$lang->kanban->createColumn = 'Create Column';
$lang->kanban->emptyDesc = 'No description yet.';
$lang->kanban->editColumn = 'Edit Column';
$lang->kanban->sortColumn = 'Sort Columns';
$lang->kanban->deleteColumn = 'Delete Column';
$lang->kanban->createCard = 'Create Card';
$lang->kanban->editCard = 'Edit Card';
$lang->kanban->finished = 'Completed';
$lang->kanban->finishCard = 'Complete Card';
$lang->kanban->activateCard = 'Activate Card';
$lang->kanban->viewCard = 'View Card';
$lang->kanban->archiveCard = 'Archive Card';
$lang->kanban->sortCard = 'Sort Cards';
$lang->kanban->copyCard = 'Copy Card';
$lang->kanban->moveCard = 'Move Card';
$lang->kanban->cardColor = 'Card Color';
$lang->kanban->setCardColor = 'Set Card Color';
$lang->kanban->deleteCard = 'Delete Card';
$lang->kanban->removeCard = 'Remove Card';
$lang->kanban->assigntoCard = 'Assign';
$lang->kanban->setting = 'Settings';
$lang->kanban->settingSpace = 'Space Settings';
$lang->kanban->settingKanban = 'Kanban Settings';
$lang->kanban->activateSpace = 'Activate Space';
$lang->kanban->closeSpace = 'Close Space';
$lang->kanban->deleteSpace = 'Delete Space';
$lang->kanban->enableArchived = 'Archive Settings';
$lang->kanban->archive = 'Archive';
$lang->kanban->performable = 'Progress Management Settings';
$lang->kanban->manageProgress = 'Progress Management';
$lang->kanban->splitColumn = 'Add Sub-column';
$lang->kanban->createColumnOnLeft = 'Insert Column Left';
$lang->kanban->createColumnOnRight = 'Insert Column Right';
$lang->kanban->copyColumn = 'Copy Column';
$lang->kanban->archiveColumn = 'Archive Column';
$lang->kanban->spaceCommon = 'Kanban Space';
$lang->kanban->styleCommon = 'Structure And Style';
$lang->kanban->copy = 'Copy';
$lang->kanban->custom = 'Customize';
$lang->kanban->archived = 'Archived';
$lang->kanban->viewArchivedCard = 'View Archived Cards';
$lang->kanban->viewArchivedColumn = 'View Archived Columns';
$lang->kanban->archivedColumn = 'Archived Columns';
$lang->kanban->archivedCard = 'Archived Cards';
$lang->kanban->restoreColumn = 'Restore Column';
$lang->kanban->restoreCard = 'Restore Card';
$lang->kanban->restore = 'Restore';
$lang->kanban->child = 'Sub';
$lang->kanban->batchCreateCard = 'Batch Create Cards';
$lang->kanban->import = 'Import';
$lang->kanban->importAB = 'Import ';
$lang->kanban->showClosed = 'Show Closed';
$lang->kanban->importCard = 'Shift Cards';
$lang->kanban->importPlan = 'Plan';
$lang->kanban->importRelease = 'Release';
$lang->kanban->importExecution = $lang->execution->common;
$lang->kanban->importBuild = 'Build';
$lang->kanban->importTicket = 'Ticket';
$lang->kanban->allKanban = 'All Boards';
$lang->kanban->allProjects = "All {$lang->projectCommon}s";
$lang->kanban->allProducts = "All {$lang->productCommon}s";
$lang->kanban->mine = 'Managed by Me';
$lang->kanban->alignment = 'Alignment';
$lang->kanban->allUsers = 'Load All Users';
$lang->kanban->colWidth = 'Column Width';
$lang->kanban->minColWidth = 'Min Column Width';
$lang->kanban->maxColWidth = 'Max Column Width';
$lang->kanban->nearing = 'The card is due soon.';
$lang->kanban->due = 'The card is due.';
/* Fields. */
$lang->kanban->space = 'Space';
$lang->kanban->name = 'Name';
$lang->kanban->archived = 'Archive';
$lang->kanban->owner = 'Owner';
$lang->kanban->team = 'Team';
$lang->kanban->desc = 'Description';
$lang->kanban->acl = 'ACL';
$lang->kanban->whitelist = 'White List';
$lang->kanban->status = 'Status';
$lang->kanban->createdBy = 'Creator';
$lang->kanban->createdDate = 'Created on';
$lang->kanban->lastEditedBy = 'Last Edit';
$lang->kanban->lastEditedDate = 'Last Edited on';
$lang->kanban->closed = 'Closed';
$lang->kanban->closedBy = 'Closed by';
$lang->kanban->closedDate = 'Closed on';
$lang->kanban->empty = 'No Kanban yet.';
$lang->kanban->teamSumCount = '%s member(s) total';
$lang->kanban->cardsCount = '%s card(s) total';
$lang->kanban->cardCount = 'Card Counts';
$lang->kanban->activatedBy = 'Activated by';
$lang->kanban->activatedDate = 'Activated on';
$lang->kanban->createColumnOnLeft = 'Insert Column Left';
$lang->kanban->createColumnOnRight = 'Insert Column Right';
$lang->kanban->accessDenied = "You have no permission to access to this Kanban.";
$lang->kanban->confirmDeleteSpace = 'Are you sure you want to delete the Space?';
$lang->kanban->confirmDeleteKanban = 'Are you sure you want to delete the Kanban?';
$lang->kanban->cardCountTip = 'Please enter the number of cards.';
$lang->kanban->selectedKanban = 'Please select Kanban.';
$lang->kanban->selectedProduct = "Please select {$lang->productCommon}";
$lang->kanban->selectedProject = 'Please select ' . $lang->projectCommon;
$lang->kanban->selectedLane = 'Target Lane';
$lang->kanban->aclGroup['open'] = 'Public';
$lang->kanban->aclGroup['private'] = 'Private';
$lang->kanban->aclGroup['extend'] = 'Inherit Space';
$lang->kanban->aclList['extend'] = 'Inherit Space Permission (Accessible for users who can access the current Space.)';
$lang->kanban->aclList['private'] = 'Private (Accessible for Kanban team members, white lists, and space owner only)';
$lang->kanban->archiveList['1'] = 'Enable';
$lang->kanban->archiveList['0'] = 'Disable';
$lang->kanban->enableList['1'] = 'Enable';
$lang->kanban->enableList['0'] = 'Disable';
$lang->kanban->alignmentList['center'] = 'Center';
$lang->kanban->alignmentList['left'] = 'Left';
$lang->kanban->type = array();
$lang->kanban->type['all'] = "All KanBan Boards";
$lang->kanban->type['epic'] = "{$lang->ERCommon} KanBan Board";
$lang->kanban->type['requirement'] = "{$lang->URCommon} KanBan Board";
$lang->kanban->type['parentStory'] = "Parent {$lang->SRCommon} KanBan";
$lang->kanban->type['story'] = "{$lang->SRCommon} KanBan";
$lang->kanban->type['task'] = "Task KanBan";
$lang->kanban->type['bug'] = "Bug KanBan";
$lang->kanban->group = new stdclass();
$lang->kanban->group->all = array();
$lang->kanban->group->story = array();
$lang->kanban->group->story['default'] = "Default Group";
$lang->kanban->group->story['pri'] = "Story Priority";
$lang->kanban->group->story['category'] = "Story Category";
$lang->kanban->group->story['module'] = "Story Module";
$lang->kanban->group->story['source'] = "Story Source";
$lang->kanban->group->story['assignedTo'] = "Assignee";
$lang->kanban->group->epic = $lang->kanban->group->story;
$lang->kanban->group->requirement = $lang->kanban->group->story;
$lang->kanban->group->parentStory = $lang->kanban->group->story;
$lang->kanban->group->task = array();
$lang->kanban->group->task['default'] = "Default Group";
$lang->kanban->group->task['pri'] = "Task Priority";
$lang->kanban->group->task['type'] = "Task Type";
$lang->kanban->group->task['module'] = "Task Module";
$lang->kanban->group->task['assignedTo'] = "Assignee";
$lang->kanban->group->task['story'] = "{$lang->SRCommon}";
$lang->kanban->group->bug = array();
$lang->kanban->group->bug['default'] = "Default Group";
$lang->kanban->group->bug['pri'] = "Bug Priority";
$lang->kanban->group->bug['severity'] = "Bug Severity";
$lang->kanban->group->bug['module'] = "Bug Module";
$lang->kanban->group->bug['type'] = "Bug Type";
$lang->kanban->group->bug['assignedTo'] = "Assignee";
$lang->kanban->WIP = 'WIP';
$lang->kanban->setWIP = 'WIP Settings';
$lang->kanban->WIPStatus = 'WIP Status';
$lang->kanban->WIPStage = 'WIP Phase';
$lang->kanban->WIPType = 'WIP Type';
$lang->kanban->WIPCount = 'WIP Counts';
$lang->kanban->noLimit = 'No Limit ∞';
$lang->kanban->setLane = 'Lane Settings';
$lang->kanban->editLaneName = 'Edit Lane Name';
$lang->kanban->laneName = 'Lane Name';
$lang->kanban->editLaneColor = 'Edit Lane Color';
$lang->kanban->laneColor = 'Lane Color';
$lang->kanban->setColumn = 'Column Settings';
$lang->kanban->columnName = 'Column Name';
$lang->kanban->columnColor = 'Column Color';
$lang->kanban->moveUp = 'Move Lane Up';
$lang->kanban->moveDown = 'Move Lane Down';
$lang->kanban->laneGroup = 'Group Lanes';
$lang->kanban->cardsSort = 'Sort Cards';
$lang->kanban->more = 'More';
$lang->kanban->moreAction = 'More Actions';
$lang->kanban->noGroup = 'None';
$lang->kanban->limitExceeded = 'WIP Limit Exceeded';
$lang->kanban->fullScreen = 'Full Screen';
$lang->kanban->my = 'My Kanban';
$lang->kanban->other = 'Others';
$lang->kanban->showWIP = 'Show WIP Limit';
$lang->kanban->copyTitle = 'Select a Kanban board to copy.';
$lang->kanban->copyNoKanban = 'No Kanban boards available to copy.';
$lang->kanban->cancelCopy = 'Cancel Copy';
$lang->kanban->copyContent = 'Copy Content';
$lang->kanban->error = new stdclass();
$lang->kanban->error->mustBeInt = 'The WIP limit must be a positive integer.';
$lang->kanban->error->parentLimitNote = 'The parent column WIP limit cannot be less than the total WIP limit of its sub-columns.';
$lang->kanban->error->childLimitNote = 'The total WIP limit of sub-columns cannot exceed the parent column WIP limit.';
$lang->kanban->error->importObjNotEmpty = 'Please select at least one item to import.';
$lang->kanban->error->childLimitEmpty = 'Please set the sub-column WIP limits before proceeding.';
$lang->kanban->orderList['id_asc'] = 'Story ID Ascending';
$lang->kanban->orderList['id_desc'] = 'Story ID Descending';
$lang->kanban->orderList['pri_asc'] = 'Story Priority Ascending';
$lang->kanban->orderList['pri_desc'] = 'Story Priority Descending';
$lang->kanban->orderList['stage_asc'] = 'Story Phase Ascending';
$lang->kanban->orderList['stage_desc'] = 'Story Phase Descending';
$lang->kanban->orderList['assignedTo_desc'] = 'Assigned to';
$lang->kanban->importList = array();
$lang->kanban->importList['on'] = 'Enable Import (Import items you have access to as cards)';
$lang->kanban->importList['off'] = 'Disable Import';
$lang->kanban->importObjectList = array();
$lang->kanban->importObjectList['plans'] = 'Plan';
$lang->kanban->importObjectList['releases'] = 'Release';
$lang->kanban->importObjectList['builds'] = 'Build';
$lang->kanban->importObjectList['executions'] = 'Execution';
if($this->config->edition != 'open') $lang->kanban->importObjectList['tickets'] = 'Ticket';
$lang->kanban->importObjectList['cards'] = 'Cards from other Kanban';
$lang->kanban->showWIPList[1] = 'Show';
$lang->kanban->showWIPList[0] = 'Hide';
$lang->kanban->defaultColumn = array();
$lang->kanban->defaultColumn['wait'] = 'Waiting';
$lang->kanban->defaultColumn['doing'] = 'Doing';
$lang->kanban->defaultColumn['done'] = 'Completed';
$lang->kanban->defaultColumn['closed'] = 'Closed';
$lang->kanban->laneTypeList = array();
$lang->kanban->laneTypeList['parentStory'] = "Parent " . $lang->SRCommon;
$lang->kanban->laneTypeList['story'] = $lang->SRCommon;
$lang->kanban->laneTypeList['bug'] = 'Bug';
$lang->kanban->laneTypeList['task'] = 'Task';
$lang->kanban->ERURColumn = array();
$lang->kanban->ERURColumn['wait'] = 'Waiting';
$lang->kanban->ERURColumn['planned'] = 'Planned';
$lang->kanban->ERURColumn['projected'] = 'Initiated ';
$lang->kanban->ERURColumn['developing'] = 'In Development';
$lang->kanban->ERURColumn['delivering'] = 'In Delivery';
$lang->kanban->ERURColumn['delivered'] = 'Delivered';
$lang->kanban->ERURColumn['closed'] = 'Closed';
$lang->kanban->storyColumn = array();
$lang->kanban->storyColumn['backlog'] = 'Backlog';
$lang->kanban->storyColumn['ready'] = 'Ready';
$lang->kanban->storyColumn['design'] = 'Design';
$lang->kanban->storyColumn['designing'] = 'In Design';
$lang->kanban->storyColumn['designed'] = 'Design Completed';
$lang->kanban->storyColumn['develop'] = 'Development';
$lang->kanban->storyColumn['developing'] = 'Doing';
$lang->kanban->storyColumn['developed'] = 'Done';
$lang->kanban->storyColumn['test'] = 'Test';
$lang->kanban->storyColumn['testing'] = 'Doing';
$lang->kanban->storyColumn['tested'] = 'Done';
$lang->kanban->storyColumn['verified'] = 'Accepted';
$lang->kanban->storyColumn['rejected'] = 'Rejected';
$lang->kanban->storyColumn['released'] = 'Released';
$lang->kanban->storyColumn['closed'] = 'Closed';
$lang->kanban->bugColumn = array();
$lang->kanban->bugColumn['unconfirmed'] = 'Waiting Confirmation';
$lang->kanban->bugColumn['confirmed'] = 'Confirmed';
$lang->kanban->bugColumn['resolving'] = 'Resolving';
$lang->kanban->bugColumn['fixing'] = 'Doing';
$lang->kanban->bugColumn['fixed'] = 'Done';
$lang->kanban->bugColumn['test'] = 'Test';
$lang->kanban->bugColumn['testing'] = 'In Testing';
$lang->kanban->bugColumn['tested'] = 'Test Completed';
$lang->kanban->bugColumn['closed'] = 'Closed';
$lang->kanban->taskColumn = array();
$lang->kanban->taskColumn['wait'] = 'Waiting';
$lang->kanban->taskColumn['develop'] = 'Development';
$lang->kanban->taskColumn['developing'] = 'In Development';
$lang->kanban->taskColumn['developed'] = 'Development Completed';
$lang->kanban->taskColumn['pause'] = 'Paused';
$lang->kanban->taskColumn['canceled'] = 'Canceled';
$lang->kanban->taskColumn['closed'] = 'Closed';
$lang->kanban->copyContentList = array();
$lang->kanban->copyContentList['basicInfo'] = 'Basic Info';
$lang->kanban->copyContentList['region'] = 'Columns and Lanes';
$lang->kanbanspace = new stdclass();
$lang->kanbanspace->common = 'Kanban Space';
$lang->kanbanspace->name = 'Name';
$lang->kanbanspace->owner = 'Owner';
$lang->kanbanspace->team = 'Team';
$lang->kanbanspace->desc = 'Description';
$lang->kanbanspace->acl = 'ACL';
$lang->kanbanspace->whitelist = 'White List';
$lang->kanbanspace->status = 'Status';
$lang->kanbanspace->createdBy = 'Creator';
$lang->kanbanspace->createdDate = 'Created on';
$lang->kanbanspace->lastEditedBy = 'Last Edit';
$lang->kanbanspace->lastEditedDate = 'Last Edited on';
$lang->kanbanspace->closedBy = 'Closed by';
$lang->kanbanspace->closedDate = 'Closed on';
$lang->kanbanspace->type = 'Type';
$lang->kanbanspace->activatedBy = 'Activated by';
$lang->kanbanspace->activatedDate = 'Activated on';
$lang->kanbanspace->empty = 'No space yet.';
$lang->kanbanspace->aclList['open'] = 'Public (Accessible for users who has the Kanban space view permission.)';
$lang->kanbanspace->aclList['private'] = 'Private (Accessible for Kanban space owner, team members and whilte lists.)';
$lang->kanban->featureBar['space']['involved'] = 'My Involvement';
$lang->kanban->featureBar['space']['cooperation'] = 'Collaboration Space';
$lang->kanban->featureBar['space']['public'] = 'Public Space';
$lang->kanban->featureBar['space']['private'] = 'Private Space';
$lang->kanbanspace->typeList['cooperation'] = 'Collaboration Space';
$lang->kanbanspace->typeList['public'] = 'Public Space';
$lang->kanbanspace->typeList['private'] = 'Private Space';
$lang->kanbancolumn = new stdclass();
$lang->kanbancolumn->name = $lang->kanban->columnName;
$lang->kanbancolumn->limit = $lang->kanban->WIPCount;
$lang->kanbancolumn->color = 'Column Color';
$lang->kanbancolumn->childName = 'Sub-column Name';
$lang->kanbancolumn->childColor = 'Sub-column Color';
$lang->kanbancolumn->empty = 'No columns yet.';
$lang->kanbancolumn->common = 'Column';
$lang->kanbancolumn->confirmArchive = 'Are you sure you want to archive this column? Once archived, the column and its cards will be hidden. You can view archived columns in Area - Archived.';
$lang->kanbancolumn->confirmDelete = 'Are you sure you want to delete this column? This action cannot be undone, and all cards in this column will be lost.';
$lang->kanbancolumn->confirmDeleteChild = 'Are you sure you want to delete this column? Upon deletion, all cards in this column will be moved to a sibling or parent column.';
$lang->kanbancolumn->confirmRestore = 'Are you sure you want to restore this column? Once restored, it will return to its previous position.';
$lang->kanbancolumn->fixedTip = 'Fixed column width cannot be less than 264px.';
$lang->kanbancolumn->autoTip = 'Minimum column width cannot be less than 264px.';
$lang->kanbanlane = new stdclass();
$lang->kanbanlane->name = $lang->kanban->laneName;
$lang->kanbanlane->common = 'Lane';
$lang->kanbanlane->default = 'Default Lane';
$lang->kanbanlane->column = 'Columns in Lane';
$lang->kanbanlane->otherlane = 'Select lanes that share columns';
$lang->kanbanlane->color = 'Lane Color';
$lang->kanbanlane->WIPType = 'Lane WIP Type';
$lang->kanbanlane->heightByCard = 'Adaptive (Adjusts based on card height.)';
$lang->kanbanlane->confirmDelete = 'Are you sure you want to delete this swimlane? All data (columns and cards) within this swimlane will also be deleted.';
$lang->kanbanlane->confirmDeleteTip = 'Are you sure you want to delete this swimlane? All %s in this swimlane will be hidden.';
$lang->kanbanlane->modeList['sameAsOther'] = 'Use the same columns as other lanes.';
$lang->kanbanlane->modeList['independent'] = 'Use independent columns.';
$lang->kanbanlane->heightTypeList['auto'] = "Adaptive <span class='tip'>(Adjusts based on card height and lane name height.)</span>";
$lang->kanbanlane->heightTypeList['custom'] = "Custom <span class='tip'>(Set lane height based on card count.)</span>";
$lang->kanbancolumn->fluidBoardList['0'] = "Fixed Column wWdth";
$lang->kanbancolumn->fluidBoardList['1'] = "Adaptive Column Width";
$lang->kanbanlane->error = new stdclass();
$lang->kanbanlane->error->mustBeInt = 'Card count must be an integer between 3 and 100.';
$lang->kanbanlane->error->hasExist = 'This lane already exists.';
$lang->kanbanlane->error->emptyOtherLane = 'Lanes sharing columns cannot be empty.';
$lang->kanbanregion = new stdclass();
$lang->kanbanregion->name = 'Area Name';
$lang->kanbanregion->default = 'Default Area';
$lang->kanbanregion->style = 'Area Style';
$lang->kanbanregion->all = 'All Area';
$lang->kanbanregion->confirmDelete = 'Are you sure you want to delete this Area? All data within it will be deleted.';
$lang->kanbancard = new stdclass();
$lang->kanbancard->create = 'Create Card';
$lang->kanbancard->edit = 'Edit Card';
$lang->kanbancard->view = 'View Card';
$lang->kanbancard->archive = 'Archive';
$lang->kanbancard->assign = 'Assign';
$lang->kanbancard->copy = 'Copy';
$lang->kanbancard->delete = 'Delete';
$lang->kanbancard->name = 'Card Name';
$lang->kanbancard->legendBasicInfo = 'Basic Info';
$lang->kanbancard->legendLifeTime = 'Card Life';
$lang->kanbancard->legendDesc = 'Card Description';
$lang->kanbancard->space = 'Space';
$lang->kanbancard->region = 'Area';
$lang->kanbancard->kanban = 'Kanban';
$lang->kanbancard->lane = 'Lane';
$lang->kanbancard->column = 'Column';
$lang->kanbancard->assignedTo = 'Assigned to';
$lang->kanbancard->beginAndEnd = 'Duration';
$lang->kanbancard->begin = 'Planned Start';
$lang->kanbancard->end = 'Due Date';
$lang->kanbancard->pri = 'Priority';
$lang->kanbancard->status = 'Status';
$lang->kanbancard->progress = 'Progress';
$lang->kanbancard->desc = 'Description';
$lang->kanbancard->estimate = 'Estimated';
$lang->kanbancard->createdBy = 'Creator';
$lang->kanbancard->createdDate = 'Created on';
$lang->kanbancard->lastEditedBy = 'Edited by';
$lang->kanbancard->lastEditedDate = 'Lase Edited on';
$lang->kanbancard->archivedBy = 'Archived by';
$lang->kanbancard->archivedDate = 'Archived on';
$lang->kanbancard->lblHour = 'h';
$lang->kanbancard->noAssigned = 'No Assigned';
$lang->kanbancard->deadlineAB = 'Due';
$lang->kanbancard->beginAB = 'Start';
$lang->kanbancard->to = '~';
$lang->kanbancard->archived = 'Archived';
$lang->kanbancard->empty = 'No cards yet.';
$lang->kanbancard->ditto = 'Ditto';
$lang->kanbancard->confirmArchive = 'Are you sure you want to archive this card? Once archived, it will be hidden from the column. You can view it in Area - Archived.';
$lang->kanbancard->confirmDelete = 'Are you sure you want to delete this card? It will be removed from the Kanban board and can only be accessed via the system Recycle Bin.';
$lang->kanbancard->confirmRestore = "Are you sure you want to restore this card?";
$lang->kanbancard->confirmRestoreTip = 'The column this card belongs to has been archived or deleted. Please restore the "%s" column first.';
$lang->kanbancard->confirmRemove = 'Are you sure you want to remove this card? The source data will not be affected, but the card will be permanently removed from the Kanban board.';
$lang->kanbancard->priList[1] = 1;
$lang->kanbancard->priList[2] = 2;
$lang->kanbancard->priList[3] = 3;
$lang->kanbancard->priList[4] = 4;
$lang->kanbancard->colorList['#fff'] = 'Default';
$lang->kanbancard->colorList['#937c5a'] = 'Block';
$lang->kanbancard->colorList['#fc5959'] = 'Warning';
$lang->kanbancard->colorList['#ff9f46'] = 'Urgent';
$lang->kanbancard->error = new stdclass();
$lang->kanbancard->error->recordMinus = 'Estimated cannot be negative.';
$lang->kanbancard->error->endSmall = '"Due Date" cannot be earlier than "Planned Start".';
$lang->kanbancard->error->progressIllegal = 'Please enter a valid progress value.';

124
module/mail/lang/ru.php Executable file
View file

@ -0,0 +1,124 @@
<?php
$lang->mail->index = 'Email Homepage';
$lang->mail->detect = 'Detect';
$lang->mail->detectAction = 'Detect via Email Address';
$lang->mail->edit = 'Edit Settings';
$lang->mail->save = 'Save';
$lang->mail->saveAction = 'Save Settings';
$lang->mail->test = 'Send Test Email';
$lang->mail->reset = 'Reset';
$lang->mail->resetAction = 'Reset Settings';
$lang->mail->resend = 'Resend';
$lang->mail->resendAction = 'Resend Email';
$lang->mail->browse = 'Email List';
$lang->mail->delete = 'Delete Email';
$lang->mail->ztCloud = 'ZenTao Cloud Mail';
$lang->mail->gmail = 'Gmail';
$lang->mail->sendCloud = 'Notice SendCloud';
$lang->mail->batchDelete = 'Batch Delete';
$lang->mail->sendcloudUser = 'Sync Contacts';
$lang->mail->agreeLicense = 'Yes';
$lang->mail->disagree = 'No';
$lang->mail->turnon = 'Email Notification';
$lang->mail->async = 'Async Sending';
$lang->mail->fromAddress = 'Sender Email';
$lang->mail->fromName = 'Sender Name';
$lang->mail->domain = 'ZenTao Domain';
$lang->mail->host = 'SMTP Server';
$lang->mail->port = 'SMTP Port';
$lang->mail->auth = 'Authentication';
$lang->mail->username = 'SMTP Account';
$lang->mail->password = 'SMTP Password';
$lang->mail->secure = 'Encryption';
$lang->mail->debug = 'Debug Level';
$lang->mail->charset = 'Encoding';
$lang->mail->accessKey = 'Access Key';
$lang->mail->secretKey = 'Secret Key';
$lang->mail->license = 'Important Notes for ZenTao Cloud Mail';
$lang->mail->selectMTA = 'Select outgoing mail method: ';
$lang->mail->smtp = 'SMTP';
$lang->mail->syncedUser = 'Synced';
$lang->mail->unsyncUser = 'Not Synced';
$lang->mail->sync = 'Sync';
$lang->mail->remove = 'Remove';
$lang->mail->toList = 'Recipient';
$lang->mail->ccList = 'CC';
$lang->mail->subject = 'Subject';
$lang->mail->createdBy = 'Sender';
$lang->mail->createdDate = 'Created at';
$lang->mail->sendTime = 'Sent at';
$lang->mail->status = 'Status';
$lang->mail->failReason = 'Failure reason';
$lang->mail->statusList['wait'] = 'Pending';
$lang->mail->statusList['sending'] = 'Sending';
$lang->mail->statusList['sended'] = 'Sent';
$lang->mail->statusList['fail'] = 'Failed';
$lang->mail->turnonList[1] = 'On';
$lang->mail->turnonList[0] = 'Off';
$lang->mail->asyncList[1] = 'Yes';
$lang->mail->asyncList[0] = 'No';
$lang->mail->debugList[0] = 'Off';
$lang->mail->debugList[1] = 'Medium';
$lang->mail->debugList[2] = 'High';
$lang->mail->authList[1] = 'Yes';
$lang->mail->authList[0] = 'No';
$lang->mail->secureList['0'] = 'Off';
$lang->mail->secureList['ssl'] = 'ssl';
$lang->mail->secureList['tls'] = 'tls';
$lang->mail->more = 'More';
$lang->mail->noticeResend = 'Email sent successfully.';
$lang->mail->inputFromEmail = 'Enter sender email: ';
$lang->mail->nextStep = 'Next';
$lang->mail->successSaved = 'Email settings saved successfully.';
$lang->mail->setForUser = 'No valid user email addresses found. Cannot send test email. Please configure user email addresses first.';
$lang->mail->testSubject = 'Test email';
$lang->mail->testContent = 'Email settings saved.';
$lang->mail->successSended = 'Sent successfully!';
$lang->mail->confirmDelete = 'Are you sure you want to delete the email?';
$lang->mail->sendmailTips = 'Email sender will not receive this email.';
$lang->mail->needConfigure = 'Email settings not found. Please configure outgoing mail settings first.';
$lang->mail->connectFail = 'Cannot connect to the ZenTao website.';
$lang->mail->centifyFail = 'Verification failed. The key may have changed. Please reconnect.';
$lang->mail->nofsocket = 'fsocket functions are disabled; email cannot be sent. Please set allow_url_fopen to On in php.ini, enable the OpenSSL extension, and restart Apache.';
$lang->mail->noOpenssl = 'To use SSL or TLS encryption, please enable the OpenSSL extension. Save changes and restart Apache.';
$lang->mail->disableSecure = 'OpenSSL extension missing. SSL/TLS encryption disabled.';
$lang->mail->sendCloudFail = 'Failed. Reason:';
$lang->mail->sendCloudHelp = <<<EOD
<p>. Notice SendCloud is a team notification service provided by SendCloud. For details, please visit <a href="http://notice.sendcloud.net/" target="_blank">notice.sendcloud.net</a></p>
<p>2. You can view your accessKey and secretKey on the "Settings" page after logging in. The sender address and name are also configured in "Settings".</p>
<p>3. To send emails successfully, the nickname in Notice SendCloud contacts must match the email address. Please visit the [<a href='%s'>Sync contacts</a>] page to sync ZenTao users to SendCloud.</p>
EOD;
$lang->mail->sendCloudSuccess = 'Done!';
$lang->mail->closeSendCloud = 'Close SendCloud';
$lang->mail->addressWhiteList = 'To prevent emails from being blocked, please whitelist the sender address on your mail server.';
$lang->mail->ztCloudNotice = <<<EOD
<p>ZenTao Cloud Mail is a free email service launched jointly by the ZenTao team and <a href='http://sendcloud.sohu.com/' target='_blank'>SendCloud</a>.</p>
<p>To access this free service, simply register an account on the official ZenTao website and verify your mobile number and email address.</p>
<p style='color:red'>We will submit your verification details to the SendCloud team for approval, granting you a free daily quota of 200 emails.</p>
<ul>
<li>Upon submitting verification on the ZenTao website, you will receive a daily quota of <strong style='color:red'>50</strong> emails for <strong style='color:red'>3</strong> days.</li>
<li>nce your information is reviewed by ZenTao, you will receive a daily quota of <strong style='color:red'>200</strong> emails for <strong style='color:red'>7</strong>days.</li>
<li>After final approval by SendCloud, you will receive a permanent daily quota of <strong style='color:red'>200</strong>emails.</li>
</ul>
<p>You cannot use this service if you do not agree to the terms above.</p>
EOD;
$lang->mail->forgetPassword = <<<EOT
<p>Hi there,</p>
<p>You requested a password reset for ZenTao. This link is valid for 3 minutes. If it expires, please request a new one.</p>
<p><a href="%s" target="_blank">Click here to reset</a></p>
EOT;
$lang->mail->placeholder = new stdclass();
$lang->mail->placeholder->password = 'App Password may be required. Please check your email settings.';

View file

@ -0,0 +1,75 @@
<?php
$lang->message->common = 'System Notification';
$lang->message->index = 'Homepage';
$lang->message->setting = 'Settings';
$lang->message->browser = 'System Notification';
$lang->message->blockUser = 'Blocked Users';
$lang->message->markUnread = 'Mark as Unread';
$lang->message->typeList['mail'] = 'Email';
$lang->message->typeList['message'] = 'System Notification';
$lang->message->typeList['webhook'] = 'Webhook';
$lang->message->browserSetting = new stdclass();
$lang->message->browserSetting->turnon = 'Notification';
$lang->message->browserSetting->pollTime = 'Polling Interval';
$lang->message->browserSetting->pollTimeTip = 'Polling interval cannot be less than 30 seconds.';
$lang->message->browserSetting->pollTimePlaceholder = 'Set the interval for checking notifications (in seconds).';
$lang->message->browserSetting->turnonList[1] = 'On';
$lang->message->browserSetting->turnonList[0] = 'Off';
$lang->message->browserSetting->more = 'More Settings';
$lang->message->browserSetting->show = 'Browser Notification';
$lang->message->browserSetting->count = 'Notification Count';
$lang->message->browserSetting->maxDays = 'Retention Days';
$lang->message->unread = 'Unread Messages(%s)';
$lang->message->all = 'All Messages';
$lang->message->timeLabel['minute'] = '%s minutes ago';
$lang->message->timeLabel['hour'] = '1 hour ago';
$lang->message->notice = new stdclass();
$lang->message->notice->allMarkRead = 'Mark All as Read';
$lang->message->notice->clearRead = 'Clear read';
$lang->message->error = new stdclass();
$lang->message->error->maxDaysFormat = 'Retention days must be a positive integer.';
$lang->message->error->maxDaysValue = 'Retention Days cannot be less than 0.';
$lang->message->label = new stdclass();
$lang->message->label->created = 'Create';
$lang->message->label->opened = 'Create';
$lang->message->label->changed = 'Change';
$lang->message->label->releaseddoc = 'Release';
$lang->message->label->edited = 'Edit';
$lang->message->label->assigned = 'Assign';
$lang->message->label->closed = 'Close';
$lang->message->label->deleted = 'Delete';
$lang->message->label->undeleted = 'Restore';
$lang->message->label->commented = 'Comment';
$lang->message->label->activated = 'Activate';
$lang->message->label->resolved = 'Resolve';
$lang->message->label->submitreview = 'Submit Review';
$lang->message->label->reviewed = 'Review';
$lang->message->label->confirmed = "Confirm {$lang->SRCommon}";
$lang->message->label->frombug = "Convert to {$lang->SRCommon}";
$lang->message->label->started = 'Start';
$lang->message->label->delayed = 'Delay';
$lang->message->label->suspended = 'On Hold';
$lang->message->label->finished = 'Complete';
$lang->message->label->paused = 'Pause';
$lang->message->label->canceled = 'Cancle';
$lang->message->label->restarted = 'Continue';
$lang->message->label->blocked = 'Block';
$lang->message->label->bugconfirmed = 'Confirm';
$lang->message->label->compilepass = 'Build Passed';
$lang->message->label->compilefail = 'Build Failed';
$lang->message->label->archived = 'Archive';
$lang->message->label->restore = 'Restore';
$lang->message->label->moved = 'Move';
$lang->message->label->nearing = 'Due Reminder';
$lang->message->label->published = 'Release';
$lang->message->label->changestatus = 'Change Release Status';

435
module/metric/lang/ru.php Executable file
View file

@ -0,0 +1,435 @@
<?php
$lang->metric->common = "Metric";
$lang->metric->metric = "Metric";
$lang->metric->name = "Metric name";
$lang->metric->stage = "Stage";
$lang->metric->scope = "Metric scope";
$lang->metric->object = "Metric object";
$lang->metric->purpose = "Metric purpose";
$lang->metric->dateType = "Date Type";
$lang->metric->unit = "Metric unit";
$lang->metric->alias = "Metric alias";
$lang->metric->code = "Metric code";
$lang->metric->desc = "Metric desc";
$lang->metric->formula = "Formula";
$lang->metric->when = "Collection Method";
$lang->metric->createdBy = "Creator";
$lang->metric->implement = "Implement";
$lang->metric->delist = "delist";
$lang->metric->implementedBy = "Implemented by";
$lang->metric->offlineBy = "Offline by";
$lang->metric->lastEdited = "Last Edited";
$lang->metric->value = "Value";
$lang->metric->date = "Date";
$lang->metric->metricData = "Metric Data";
$lang->metric->system = "System";
$lang->metric->weekCell = "%s,Week %s";
$lang->metric->weekS = "Week %s";
$lang->metric->create = "Create " . $this->lang->metric->common;
$lang->metric->edit = "Edit " . $this->lang->metric->common;
$lang->metric->view = 'View' . $this->lang->metric->common;
$lang->metric->afterCreate = "After Saving";
$lang->metric->definition = "Definition";
$lang->metric->declaration = "Definition";
$lang->metric->customUnit = "Custom Unit";
$lang->metric->delist = "Delist";
$lang->metric->preview = "Preview";
$lang->metric->metricList = "Metric List";
$lang->metric->manage = "Manage";
$lang->metric->exitManage = "Exit manage";
$lang->metric->filters = 'Filter Settings';
$lang->metric->details = 'Details';
$lang->metric->remove = 'Remove';
$lang->metric->zAnalysis = 'Z Analysis';
$lang->metric->sqlStatement = "SQL Statement";
$lang->metric->other = "Other";
$lang->metric->collectType = 'Collect Type';
$lang->metric->oldMetricInfo = 'Measurement Info';
$lang->metric->collectConf = 'Collect Configure';
$lang->metric->verifyFile = 'Verify File';
$lang->metric->verifyResult = 'Verify Result';
$lang->metric->publish = 'Publish';
$lang->metric->moveFailTip = 'Failed to move the metric file.';
$lang->metric->checkFile = 'Check whether the metric file exists in the directory';
$lang->metric->deleteFile = 'Please contact the administrator to delete';
$lang->metric->selectCount = '%s metrics';
$lang->metric->testMetric = 'Test Metric';
$lang->metric->calcTime = 'Calculate Time';
$lang->metric->to = 'to';
$lang->metric->year = 'Year';
$lang->metric->month = 'Month';
$lang->metric->week = 'Week';
$lang->metric->day = 'Date';
$lang->metric->nodate = 'Collection date';
$lang->metric->implementType = 'Implement Type';
$lang->metric->recalculate = 'Recalculate all metrics';
$lang->metric->setting = 'Settings';
$lang->metric->recalculateAll = 'Recalculate all metrics';
$lang->metric->recalculateHistory = 'Recalculate history metrics';
$lang->metric->startRecalculate = 'Start Recalculate';
$lang->metric->recalculateAction = 'Recalculate';
$lang->metric->recalculateBtnText = 'Recalculate';
$lang->metric->exit = 'Exit';
$lang->metric->zentaoPath = '【ZenTao Path】';
$lang->metric->yearFormat = 'Year %s';
$lang->metric->weekFormat = 'Week %s';
$lang->metric->monthDayFormat = '%s-%s';
$lang->metric->yearMonthFormat = '%s-%s';
$lang->metric->tableHeader = array();
$lang->metric->tableHeader['project'] = 'Project';
$lang->metric->tableHeader['product'] = 'Product';
$lang->metric->tableHeader['execution'] = 'Execution';
$lang->metric->tableHeader['dept'] = 'Dept';
$lang->metric->tableHeader['user'] = 'Name';
$lang->metric->tableHeader['program'] = 'Program';
$lang->metric->placeholder = new stdclass();
$lang->metric->placeholder->select = "Please select";
$lang->metric->placeholder->project = "All Projects";
$lang->metric->placeholder->product = "All Products";
$lang->metric->placeholder->execution = "All Executions";
$lang->metric->placeholder->dept = "All Departments";
$lang->metric->placeholder->user = "All Users";
$lang->metric->placeholder->program = "All Program";
$lang->metric->query = new stdclass();
$lang->metric->query->action = 'Query';
$lang->metric->calcTypeList = array();
$lang->metric->calcTypeList['cron'] = 'Snapshot';
$lang->metric->calcTypeList['inference'] = 'Recalculate';
$lang->metric->calcTitleList = array();
$lang->metric->calcTitleList['cron'] = '%user% create snapshots at %date%';
$lang->metric->calcTitleList['inference'] = '%user% recalculate at %date%';
$lang->metric->query->scope = array();
$lang->metric->query->scope['project'] = 'Project';
$lang->metric->query->scope['product'] = 'Product';
$lang->metric->query->scope['execution'] = 'Execution';
$lang->metric->query->scope['dept'] = 'Dept';
$lang->metric->query->scope['user'] = 'User';
$lang->metric->query->scope['program'] = 'Program';
$lang->metric->query->yearLabels = array();
$lang->metric->query->yearLabels['3'] = '3 years';
$lang->metric->query->yearLabels['5'] = '5 years';
$lang->metric->query->yearLabels['10'] = '10 years';
$lang->metric->query->yearLabels['all'] = 'All';
$lang->metric->query->monthLabels = array();
$lang->metric->query->monthLabels['6'] = '6 months';
$lang->metric->query->monthLabels['12'] = '12 months';
$lang->metric->query->monthLabels['24'] = '24 months';
$lang->metric->query->monthLabels['36'] = '36 months';
$lang->metric->query->weekLabels = array();
$lang->metric->query->weekLabels['4'] = '4 weeks';
$lang->metric->query->weekLabels['8'] = '8 weeks';
$lang->metric->query->weekLabels['12'] = '12 weeks';
$lang->metric->query->weekLabels['16'] = '16 weeks';
$lang->metric->query->dayLabels = array();
$lang->metric->query->dayLabels['7'] = '7 days';
$lang->metric->query->dayLabels['14'] = '14 days';
$lang->metric->query->dayLabels['21'] = '21 days';
$lang->metric->query->dayLabels['28'] = '28 days';
$lang->metric->viewType = new stdclass();
$lang->metric->viewType->single = 'Single view';
$lang->metric->viewType->multiple = 'Multiple view';
$lang->metric->descTip = 'Enter the meaning, purpose, and impact of the metric';
$lang->metric->definitionTip = 'Enter the calculation rules and filtering conditions of the metric';
$lang->metric->aliasTip = 'Displayed in the metrics library as alias';
$lang->metric->collectConfText = "%s %s %s";
$lang->metric->dirNotExist = "Failed to create a directory. Please create a directory: <strong>%s</strong>.";
$lang->metric->fileMoveFail = "File copy failed, please copy <strong>%s</strong> to <strong>%s</strong>.";
$lang->metric->emptyCollect = 'There are no collect metrics at this time.';
$lang->metric->maxSelect = 'A maximum of %s metrics can be selected';
$lang->metric->maxSelectTip = 'Multiple metrics can be selected across a range, up to a maximum of %s.';
$lang->metric->upgradeTip = 'This measure is supported by an earlier version. If you want to edit it, reconfigure it according to the rules for configuring the measure of the latest version. Also note that the new version of the measure no longer supports the SQL editor and cannot be referenced by the report template for the time being. Check whether you need to edit it.';
$lang->metric->saveSqlMeasSuccess = "Query success,result is:%s";
$lang->metric->monthText = "%s day";
$lang->metric->errorDateRange = "The start date cannot be longer than the end date";
$lang->metric->errorCalcTimeRange = "The start time of collection cannot be later than the end time of collection";
$lang->metric->updateTimeTip = "Update snapshot time:%s";
$lang->metric->builtinMetric = "Built-in Metric, can not delist";
$lang->metric->noDesc = "No description available";
$lang->metric->noFormula = "No calculation rules available";
$lang->metric->noCalc = "The PHP algorithm for this metric has not been implemented yet";
$lang->metric->noSQL = "No SQL";
$lang->metric->noData = "No data available.";
$lang->metric->noDataBeforeCollect = "No data is available until the time for data collection.";
$lang->metric->noDataAfterCollect = "No data is available after the time for data collection.";
$lang->metric->legendBasicInfo = 'Basic Information';
$lang->metric->legendCreateInfo = 'Creation and Editing Information';
$lang->metric->confirmDelete = "Are you sure you want to delete?";
$lang->metric->confirmDelist = "Are you sure you want to delist?";
$lang->metric->confirmDelistInUsed = "This metric has been referenced by the large screen. Are you sure you want to take it down?";
$lang->metric->confirmRecalculate = "Recalculation results may overwrite existing metric records. Do you want to continue?";
$lang->metric->notExist = "The measure does not exist";
$lang->metric->browse = 'Browse Metrics';
$lang->metric->browseAction = 'Metric List';
$lang->metric->viewAction = 'View Metric';
$lang->metric->editAction = 'Edit Metric';
$lang->metric->implementAction = 'Implement Metric';
$lang->metric->deleteAction = 'Delete Metric';
$lang->metric->delistAction = 'Delist Metric';
$lang->metric->detailsAction = 'Metric Detail';
$lang->metric->stageList = array();
$lang->metric->stageList['wait'] = "Not Released";
$lang->metric->stageList['released'] = "Released";
$lang->metric->featureBar['browse']['all'] = 'All';
$lang->metric->featureBar['browse']['wait'] = 'Not Released';
$lang->metric->featureBar['browse']['released'] = 'Released';
$lang->metric->featureBar['preview']['project'] = 'Project';
$lang->metric->featureBar['preview']['product'] = 'Product';
$lang->metric->featureBar['preview']['execution'] = 'Execution';
$lang->metric->featureBar['preview']['user'] = 'Individual';
$lang->metric->featureBar['preview']['program'] = 'Program';
$lang->metric->featureBar['preview']['system'] = 'System';
$lang->metric->more = 'More';
$lang->metric->collect = 'My Collect';
$lang->metric->collectStar = 'Collect';
$lang->metric->oldMetric = new stdclass();
$lang->metric->oldMetric->sql = 'SQL';
$lang->metric->oldMetric->tip = 'This is the implementation of the old metric';
$lang->metric->oldMetric->dayNames = array(1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 0 => 'Sunday');
$lang->metric->moreSelects = array();
$lang->metric->unitList = array();
$lang->metric->unitList['count'] = 'Count';
$lang->metric->unitList['measure'] = 'Man-hour';
$lang->metric->unitList['hour'] = 'Hour';
$lang->metric->unitList['day'] = 'Day';
$lang->metric->unitList['manday'] = 'Man-day';
$lang->metric->unitList['percentage'] = 'Percentage';
$lang->metric->unitList['times'] = 'Times';
$lang->metric->unitList['people'] = 'People';
$lang->metric->unitList['row'] = 'Row';
$lang->metric->afterCreateList = array();
$lang->metric->afterCreateList['back'] = 'Back to List Page';
$lang->metric->afterCreateList['implement'] = 'Implement Metric';
$lang->metric->dateList = array();
$lang->metric->dateList['year'] = 'Year';
$lang->metric->dateList['month'] = 'Month';
$lang->metric->dateList['week'] = 'Week';
$lang->metric->dateList['day'] = 'Day';
$lang->metric->purposeList = array();
$lang->metric->purposeList['scale'] = "Scale Estimation";
$lang->metric->purposeList['time'] = "Time Control";
$lang->metric->purposeList['cost'] = "Cost Calculation";
$lang->metric->purposeList['hour'] = "Hourly Statistics";
$lang->metric->purposeList['qc'] = "Quality Control";
$lang->metric->purposeList['rate'] = "Enhanced Efficiency";
$lang->metric->purposeList['other'] = "Other";
$lang->metric->scopeList = array();
$lang->metric->scopeList['project'] = "Project";
$lang->metric->scopeList['product'] = "Product";
$lang->metric->scopeList['execution'] = "Execution";
$lang->metric->scopeList['user'] = "Individual";
$lang->metric->scopeList['system'] = "System";
$lang->metric->scopeList['other'] = "Other";
$lang->metric->scopeList['program'] = "Program";
global $config;
$lang->metric->objectList = array();
if(helper::hasFeature('program')) $lang->metric->objectList['program'] = "Program Set";
$lang->metric->objectList['line'] = "Product Line";
$lang->metric->objectList['product'] = "Product";
$lang->metric->objectList['project'] = "Project";
$lang->metric->objectList['productplan'] = "Plan";
$lang->metric->objectList['execution'] = "Execution";
$lang->metric->objectList['release'] = "Release";
$lang->metric->objectList['epic'] = $lang->ERCommon;
$lang->metric->objectList['story'] = $lang->SRCommon;
$lang->metric->objectList['requirement'] = $lang->URCommon;
$lang->metric->objectList['task'] = "Task";
$lang->metric->objectList['bug'] = "Bug";
$lang->metric->objectList['case'] = "Test Case";
$lang->metric->objectList['user'] = "User";
$lang->metric->objectList['effort'] = "Effort";
$lang->metric->objectList['doc'] = "Document";
if(in_array($config->edition, array('biz', 'max', 'ipd'))) $lang->metric->objectList['feedback'] = "Feedback";
$lang->metric->objectList['review'] = "Review";
if($config->edition == 'ipd' && $config->vision == 'or') $lang->metric->objectList['demand'] = "Demand";
$lang->metric->objectList['codebase'] = "Repository";
$lang->metric->objectList['pipeline'] = "Pipeline";
$lang->metric->objectList['artifact'] = "Artufact";
$lang->metric->objectList['deployment'] = "Deployment";
$lang->metric->objectList['node'] = "Node";
$lang->metric->objectList['application'] = "Application";
$lang->metric->objectList['cpu'] = "CPU";
$lang->metric->objectList['memory'] = "Memory";
$lang->metric->objectList['commit'] = "Commit";
$lang->metric->objectList['mergeRequest'] = 'Merge Requests';
$lang->metric->objectList['code'] = "Code";
$lang->metric->objectList['vulnerability'] = "Vulnerability";
$lang->metric->objectList['codeAnalysis'] = "Code Analysis";
if(in_array($config->edition, array('biz', 'max', 'ipd'))) $lang->metric->objectList['ticket'] = "Ticket";
if(in_array($config->edition, array('max', 'ipd')))
{
$lang->metric->objectList['risk'] = "Risk";
$lang->metric->objectList['issue'] = "Issue";
$lang->metric->objectList['qa'] = "QA";
}
if(helper::hasFeature('devops')) $lang->metric->objectList['host'] = "Host";
$lang->metric->objectList['other'] = "Other";
$lang->metric->chartTypeList = array();
$lang->metric->chartTypeList['line'] = 'Line';
$lang->metric->chartTypeList['barX'] = 'Bar X';
$lang->metric->chartTypeList['barY'] = 'Bar Y';
$lang->metric->chartTypeList['pie'] = 'Pie';
$lang->metric->dateTypeList['nodate'] = 'No Date';
$lang->metric->dateTypeList['year'] = 'Year';
$lang->metric->dateTypeList['month'] = 'Month';
$lang->metric->dateTypeList['week'] = 'Week';
$lang->metric->dateTypeList['day'] = 'Day';
$lang->metric->filter = new stdclass();
$lang->metric->filter->common = 'Filter';
$lang->metric->filter->scope = 'Scope';
$lang->metric->filter->object = 'Object';
$lang->metric->filter->purpose = 'Purpose';
$lang->metric->filter->clear = 'Clear All';
$lang->metric->filter->clearAction = 'Clear selected %s';
$lang->metric->filter->checkedInfo = 'Selected:Scope(%s)、Object(%s)、Purpose(%s)';
$lang->metric->filter->filterTotal = 'Filter Result(%s)';
$lang->metric->implement = new stdclass();
$lang->metric->implement->common = "Implement";
$lang->metric->implement->tip = "Please implement the calculation logic of this metric through PHP.";
$lang->metric->implement->instruction = "Instruction";
$lang->metric->implement->downloadPHP = "Download Metric Template";
$lang->metric->implement->instructionTips = array();
$lang->metric->implement->instructionTips[] = '1.Download the measurement template file and perform coding and development operations on the file. For details, see the operation manual.<a class="btn text-primary ghost" target="_blank" href="https://www.zentao.net/book/zentaopms/1103.html">Manual>></a>';
$lang->metric->implement->instructionTips[] = '2.Please put the developed file in the following directory,<strong>Keep the file name consistent with the measurement code</strong>。<br/> <span class="label code-slate">{tmpRoot}metric</span>';
$lang->metric->verifyCustom = new stdclass();
$lang->metric->verifyCustom->checkCustomCalcExists = array();
$lang->metric->verifyCustom->checkCustomCalcExists['text'] = 'Check if the metric file exists';
$lang->metric->verifyCustom->checkCustomCalcExists['error'] = 'The metric file does not exist';
$lang->metric->verifyCustom->checkCustomCalcSyntax = array();
$lang->metric->verifyCustom->checkCustomCalcSyntax['text'] = 'Check if the metric file syntax is correct';
$lang->metric->verifyCustom->checkCustomCalcSyntax['error'] = 'The metric file syntax is incorrect';
$lang->metric->verifyCustom->checkCustomCalcClassName = array();
$lang->metric->verifyCustom->checkCustomCalcClassName['text'] = 'Check if the metric file class name is correct';
$lang->metric->verifyCustom->checkCustomCalcClassName['error'] = 'The metric file class name is incorrect';
$lang->metric->verifyCustom->checkCustomCalcClassMethod = array();
$lang->metric->verifyCustom->checkCustomCalcClassMethod['text'] = 'Check if the metric file class method is correct';
$lang->metric->verifyCustom->checkCustomCalcClassMethod['error'] = 'The metric file class method is incorrect';
$lang->metric->verifyCustom->checkCustomCalcRuntime = array();
$lang->metric->verifyCustom->checkCustomCalcRuntime['text'] = 'Check if the metric file can be executed';
$lang->metric->verifyCustom->checkCustomCalcRuntime['error'] = '';
$lang->metric->weekList = array();
$lang->metric->weekList['1'] = 'Monday';
$lang->metric->weekList['2'] = 'Tuesday';
$lang->metric->weekList['3'] = 'Wednesday';
$lang->metric->weekList['4'] = 'Thursday';
$lang->metric->weekList['5'] = 'Friday';
$lang->metric->weekList['6'] = 'Saturday';
$lang->metric->weekList['0'] = 'Sunday';
$lang->metric->old = new stdclass();
$lang->metric->old->scopeList = array();
$lang->metric->old->scopeList['project'] = 'project';
$lang->metric->old->scopeList['product'] = $lang->productCommon;
$lang->metric->old->scopeList['sprint'] = 'stage';
$lang->metric->old->purposeList = array();
$lang->metric->old->purposeList['scale'] = 'Scale';
$lang->metric->old->purposeList['duration'] = 'Duration';
$lang->metric->old->purposeList['workload'] = 'Workload';
$lang->metric->old->purposeList['cost'] = 'Cost';
$lang->metric->old->purposeList['quality'] = 'Quality';
$lang->metric->old->objectList = array();
$lang->metric->old->objectList['staff'] = 'Staff';
$lang->metric->old->objectList['finance'] = 'Finance';
$lang->metric->old->objectList['case'] = 'case';
$lang->metric->old->objectList['bug'] = 'Bug';
$lang->metric->old->objectList['review'] = 'Review';
$lang->metric->old->objectList['stage'] = 'Stage';
$lang->metric->old->objectList['program'] = 'Program';
$lang->metric->old->objectList['softRequest'] = 'SoftRequest';
$lang->metric->old->objectList['userRequest'] = 'UserRequest';
$lang->metric->old->collectTypeList = array();
$lang->metric->old->collectTypeList['crontab'] = 'Crontab';
$lang->metric->old->collectTypeList['action'] = 'Action';
$lang->metric->tips = new stdclass();
$lang->metric->tips->nameError = 'Error in MySQL function name, please check function name.';
$lang->metric->tips->createError = 'Failed to create a custom function for MySQL. Error message:<br/> %s';
$lang->metric->tips->noticeSelect = 'SQL statements can only be query statements';
$lang->metric->tips->noticeBlack = 'SQL contains the disable SQL keyword %s';
$lang->metric->tips->noticeVarName = 'The variable name is not set';
$lang->metric->tips->noticeVarType = 'The type of the variable %s is not set';
$lang->metric->tips->noticeShowName = 'The show name of the variable %s is not set';
$lang->metric->tips->noticeQueryValue = 'The query value of the variable %s is not set';
$lang->metric->tips->showNameMissed = 'The show name of the variable %s is not set';
$lang->metric->tips->errorSql = 'SQL statement error! Error:';
$lang->metric->tips->click2SetParams = 'Please click on the red variable block to set parameters, and then';
$lang->metric->tips->view = 'View';
$lang->metric->tips->click2InsertData = "Click <span class='ke-icon-holder'></span> to insert a metric or report";
$lang->metric->tips->noticeUnchangeable = "[Scope], [Object], [Purpose], [Date Type], and [Code] will affect the acquisition of measurement values, cannot be changed after creation.";
$lang->metric->tips->noticeCode = "The code must be a combination of English letters, numbers or underscores.";
$lang->metric->tips->noticeRecalculate = "Updating data..., please do not manipulate metric data.";
$lang->metric->tips->noticeRepublish = "If there are multiple releases, recalculate from before the last release time.";
$lang->metric->tips->banRecalculate = "The metric has not been published or has no date type";
$lang->metric->tips->noticeDeduplication = "Deduplication...";
$lang->metric->tips->noticeDoneDeduplication = "Deduplication done";
$lang->metric->tips->noticeRecalculateConfig = array();
$lang->metric->tips->noticeRecalculateConfig['all'] = "The system will recalculate the historical data collected by non-scheduled tasks in published metrics by default.";
$lang->metric->tips->noticeRecalculateConfig['single'] = "The system will recalculate the historical data collected by non-scheduled tasks in this metric by default.";
$lang->metric->tips->noticeRewriteHistoryLib = array();
$lang->metric->tips->noticeRewriteHistoryLib['all'] = "(When checked, the system will recalculate published metric with date type based on historical data and overwrite all existing metric records)";
$lang->metric->tips->noticeRewriteHistoryLib['single'] = "(When checked, the system will recalculate this metric based on historical data and overwrite all existing metric values)";
$lang->metric->recalculateLog = "%s计算完成";
$lang->metric->param = new stdclass();
$lang->metric->param->varName = 'Variable Name';
$lang->metric->param->showName = 'Show Name';
$lang->metric->param->varType = 'Type';
$lang->metric->param->defaultValue = 'Default Value';
$lang->metric->param->queryValue = 'Query Value';
$lang->metric->param->typeList['input'] = 'Input';
$lang->metric->param->typeList['date'] = 'Date';
$lang->metric->param->typeList['select'] = 'Select';
$lang->metric->param->options['project'] = $lang->projectCommon . 'List';
$lang->metric->param->options['product'] = $lang->productCommon . 'List';
$lang->metric->param->options['sprint'] = $lang->projectCommon . 'List';

457
module/misc/lang/ru.php Normal file
View file

@ -0,0 +1,457 @@
<?php
/**
* The misc module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package misc
* @version $Id: English.php 824 2010-05-02 15:32:06Z wwccss $
* @link https://www.zentao.net
*/
$lang->misc = new stdclass();
$lang->misc->common = 'Misc';
$lang->misc->ping = 'Keep alive';
$lang->misc->view = 'View';
$lang->misc->cancel = 'Cancel';
$lang->misc->zentao = new stdclass();
$lang->misc->zentao->version = 'Free %s';
$lang->misc->zentao->labels['about'] = 'About ZenTao';
$lang->misc->zentao->labels['support'] = 'Technical support';
$lang->misc->zentao->labels['cowin'] = 'Help Us';
$lang->misc->zentao->labels['service'] = 'Services';
$lang->misc->zentao->labels['others'] = 'Other products';
$lang->misc->zentao->icons['about'] = 'group';
$lang->misc->zentao->icons['support'] = 'question-sign';
$lang->misc->zentao->icons['cowin'] = 'hand-right';
$lang->misc->zentao->icons['service'] = 'heart';
$lang->misc->zentao->about['bizversion'] = 'Upgrade to Standard';
$lang->misc->zentao->about['official'] = "Official Website";
$lang->misc->zentao->about['changelog'] = "Release notes";
$lang->misc->zentao->about['license'] = "License";
$lang->misc->zentao->about['extension'] = "Plugin marketplace";
$lang->misc->zentao->about['follow'] = "Follow Us";
$lang->misc->zentao->support['vip'] = "Premium support";
$lang->misc->zentao->support['manual'] = "User Manual";
$lang->misc->zentao->support['faq'] = "FAQ";
$lang->misc->zentao->support['ask'] = "Q&A";
$lang->misc->zentao->support['video'] = "Video tutorials";
$lang->misc->zentao->support['qqgroup'] = "Official QQ Group";
$lang->misc->zentao->cowin['reportbug'] = "Report a bug";
$lang->misc->zentao->cowin['feedback'] = "Suggest a feature";
$lang->misc->zentao->cowin['recommend'] = "Refer a friend";
$lang->misc->zentao->service['zentaotrain'] = 'ZenTao Training';
$lang->misc->zentao->service['idc'] = 'ZenTao Cloud';
$lang->misc->zentao->service['custom'] = 'Custom Development';
global $config;
$lang->misc->zentao->others['chanzhi'] = "<img src='{$config->webRoot}theme/default/images/main/chanzhi.ico' /> Zsite";
$lang->misc->zentao->others['zdoo'] = "<img src='{$config->webRoot}theme/default/images/main/zdoo.ico' /> ZDOO";
$lang->misc->zentao->others['ydisk'] = "<img src='{$config->webRoot}theme/default/images/main/ydisk.ico' /> Y Disk";
$lang->misc->zentao->others['meshiot' ] = "<img src='{$config->webRoot}theme/default/images/main/meshiot.ico' /> MeshioT";
$lang->misc->mobile = "Mobile Access";
$lang->misc->noGDLib = "Access via mobile browser: <strong>%s</strong>";
$lang->misc->copyright = '© 2009 - ' . date("Y") . ' <a href="https://www.zentao.pm">EasyCorp</a> Email: support@zentao.pm';
$lang->misc->checkTable = "Check and repair tables";
$lang->misc->needRepair = "Repair tables";
$lang->misc->repairTable = "Database tables might be corrupted due to power loss. Please check and repair.";
$lang->misc->repairFail = "Repair failed. Run <code>myisamchk -r -f %s.MYI</code> in the database directory to fix it.";
$lang->misc->withoutCmd = 'Repair failed';
$lang->misc->connectFail = "Database connection failed. Error: %s.<br/>Check the MySQL error log.";
$lang->misc->tableName = "Table Name";
$lang->misc->tableStatus = "Status";
$lang->misc->novice = "New to ZenTao? Would you like to start the tutorial?";
$lang->misc->showAnnual = 'Annual Summary';
$lang->misc->annualDesc = 'The Annual Summary feature is now available (Report -> Annual Summary). <a href="%s" class="btn btn-mini btn-primary">View now</a>';
$lang->misc->remind = 'New feature alert';
$lang->misc->expiredTipsTitle = 'Dear Admin,';
$lang->misc->expiredCountTips = 'You have <span class="text-blue" title="%s">%s plugins</span> expiring soon. Please contact your admin to renew or uninstall them.';
$lang->misc->expiredPluginTips = 'Expired plugins: %s.';
$lang->misc->expiringPluginTips = 'Plugins that will expire soon: %s.';
$lang->misc->expiredTipsForAdmin = '%s plugins are expiring soon. To avoid service disruption, please go to the plugin manager to renew or uninstall them.';
$lang->misc->metriclibTips = 'A new metric library index is available. Updating it improves query speeds. Go to Admin -> Settings -> Metric Library to update.';
$lang->misc->noticeRepair = "<h5>Contact your admin to repair.</h5>
<h5>If you are an admin, log in to the server and create a file named <span>%s</span>.</h5>
<p>Note:</p>
<ol>
<li>Leave the file empty.</li>
<li>If it exists, delete and recreate it.</li></ol>";
$lang->misc->feature = new stdclass();
$lang->misc->feature->lastest = 'Latest Version';
$lang->misc->feature->detailed = 'Details';
$lang->misc->feature->introduction = 'New features';
$lang->misc->feature->tutorial = 'Tutorial';
$lang->misc->feature->tutorialImage = 'theme/default/images/main/tutorial_en.png';
$lang->misc->feature->youngBlueTheme = 'Youth Blue theme';
$lang->misc->feature->youngBlueImage = 'theme/default/images/main/new_theme_en.png';
$lang->misc->feature->visions = "Switch views";
$lang->misc->feature->nextStep = 'Next';
$lang->misc->feature->prevStep = 'Previous';
$lang->misc->feature->close = 'Get started';
$lang->misc->feature->learnMore = 'Learn More';
$lang->misc->feature->downloadFile = 'Download release notes';
$lang->misc->feature->tutorialDesc = '<p>ZenTao 15 introduces several new features. Check out the <strong>Tutorial</strong> to get started.</p><p>Hover over your avatar and click <span style="color: #0c60e1">[Tutorial]</span> to open it..</p>';
$lang->misc->feature->themeDesc = '<p>Experience the new "Youth Blue" theme in ZenTao 15 for a modern and user-friendly interface.</p><p>Hover over your avatar, go to <span style="color: #0c60e1">[Theme]</span>, and select Youth Blue to apply it.</p>';
$lang->misc->feature->visionsDesc = '<p>Views are introduced in version 16.5. Manage R&D tasks in the <span style="color: #0c60e1">[Full Feature View]</span>, and daily office tasks in the <span style="color: #0c60e1">[Operation Management View]</span>.</p><p>Your current view is displayed next to your avatar. Click it to switch views.</p>';
$lang->misc->feature->visionsImage = 'theme/default/images/main/visions_en.png';
$lang->misc->feature->aiPrompts = 'AI prompts';
$lang->misc->feature->aiPromptsImage = 'theme/default/images/main/ai_prompts_en.svg';
$lang->misc->feature->promptDesign = 'Prompt design';
$lang->misc->feature->promptDesignImage = 'theme/default/images/main/prompt_design_en.svg';
$lang->misc->feature->promptExec = 'Prompt Execution';
$lang->misc->feature->promptExecImage = 'theme/default/images/main/prompt_exec_en.svg';
$lang->misc->feature->promptLearnMore = 'https://www.zentao.pm/book/zentaopms/1097.html';
/* Release Date. */
$lang->misc->releaseDate['22.1'] = '2026-04-13';
$lang->misc->releaseDate['22.0'] = '2026-03-05';
$lang->misc->releaseDate['22.0.beta'] = '2026-01-27';
$lang->misc->releaseDate['21.7.9'] = '2026-03-02';
$lang->misc->releaseDate['21.7.8'] = '2025-12-15';
$lang->misc->releaseDate['21.7.7'] = '2025-10-29';
$lang->misc->releaseDate['21.7.6'] = '2025-09-29';
$lang->misc->releaseDate['21.7.5'] = '2025-09-11';
$lang->misc->releaseDate['21.7.4'] = '2025-07-29';
$lang->misc->releaseDate['21.7.3'] = '2025-07-03';
$lang->misc->releaseDate['21.7.2'] = '2025-06-27';
$lang->misc->releaseDate['21.7.1'] = '2025-05-30';
$lang->misc->releaseDate['21.7'] = '2025-05-16';
$lang->misc->releaseDate['21.6.1'] = '2025-04-30';
$lang->misc->releaseDate['21.6'] = '2025-04-11';
$lang->misc->releaseDate['21.6.beta'] = '2025-03-21';
$lang->misc->releaseDate['21.5'] = '2025-03-06';
$lang->misc->releaseDate['21.4'] = '2025-01-15';
$lang->misc->releaseDate['21.3'] = '2024-12-27';
$lang->misc->releaseDate['21.2'] = '2024-12-03';
$lang->misc->releaseDate['21.1'] = '2024-11-15';
$lang->misc->releaseDate['21.0'] = '2024-11-01';
$lang->misc->releaseDate['20.8'] = '2024-10-21';
$lang->misc->releaseDate['20.7.1'] = '2024-09-30';
$lang->misc->releaseDate['20.7'] = '2024-09-14';
$lang->misc->releaseDate['20.6'] = '2024-08-30';
$lang->misc->releaseDate['20.5'] = '2024-08-16';
$lang->misc->releaseDate['18.13'] = '2024-08-09';
$lang->misc->releaseDate['20.4'] = '2024-08-02';
$lang->misc->releaseDate['20.3.0'] = '2024-07-22';
$lang->misc->releaseDate['20.2.0'] = '2024-07-10';
$lang->misc->releaseDate['20.1.1'] = '2024-06-21';
$lang->misc->releaseDate['20.1.0'] = '2024-06-03';
$lang->misc->releaseDate['20.0'] = '2024-04-30';
$lang->misc->releaseDate['18.12'] = '2024-04-12';
$lang->misc->releaseDate['20.0.beta2'] = '2024-03-15';
$lang->misc->releaseDate['18.11'] = '2024-02-28';
$lang->misc->releaseDate['18.10.1'] = '2024-01-17';
$lang->misc->releaseDate['20.0.beta1'] = '2024-01-26';
$lang->misc->releaseDate['20.0.alpha1'] = '2024-01-08';
$lang->misc->releaseDate['18.10'] = '2023-12-18';
$lang->misc->releaseDate['18.9'] = '2023-11-09';
$lang->misc->releaseDate['18.8'] = '2023-09-28';
$lang->misc->releaseDate['18.7'] = '2023-08-29';
$lang->misc->releaseDate['18.6'] = '2023-08-15';
$lang->misc->releaseDate['18.5'] = '2023-07-05';
$lang->misc->releaseDate['18.4'] = '2023-06-14';
$lang->misc->releaseDate['18.4.beta1'] = '2023-05-31';
$lang->misc->releaseDate['18.4.alpha1'] = '2023-04-21';
$lang->misc->releaseDate['18.3'] = '2023-03-15';
$lang->misc->releaseDate['18.2'] = '2023-02-27';
$lang->misc->releaseDate['18.1'] = '2023-02-08';
$lang->misc->releaseDate['18.0'] = '2023-01-03';
$lang->misc->releaseDate['18.0.beta3'] = '2022-12-26';
$lang->misc->releaseDate['18.0.beta2'] = '2022-12-14';
$lang->misc->releaseDate['18.0.beta1'] = '2022-11-16';
$lang->misc->releaseDate['17.8'] = '2022-11-02';
$lang->misc->releaseDate['17.7'] = '2022-10-19';
$lang->misc->releaseDate['17.6.2'] = '2022-09-23';
$lang->misc->releaseDate['17.6.1'] = '2022-09-08';
$lang->misc->releaseDate['17.6'] = '2022-08-26';
$lang->misc->releaseDate['17.5'] = '2022-08-11';
$lang->misc->releaseDate['17.4'] = '2022-07-27';
$lang->misc->releaseDate['17.3'] = '2022-07-13';
$lang->misc->releaseDate['17.2'] = '2022-06-29';
$lang->misc->releaseDate['17.1'] = '2022-06-16';
$lang->misc->releaseDate['17.0'] = '2022-06-02';
$lang->misc->releaseDate['17.0.beta2'] = '2022-05-26';
$lang->misc->releaseDate['17.0.beta1'] = '2022-05-06';
$lang->misc->releaseDate['16.5'] = '2022-03-24';
$lang->misc->releaseDate['16.5.beta1'] = '2022-03-16';
$lang->misc->releaseDate['16.4'] = '2022-02-15';
$lang->misc->releaseDate['16.3'] = '2022-01-26';
$lang->misc->releaseDate['16.2'] = '2022-01-17';
$lang->misc->releaseDate['16.1'] = '2022-01-11';
$lang->misc->releaseDate['16.0'] = '2021-12-24';
$lang->misc->releaseDate['16.0.beta1'] = '2021-12-06';
$lang->misc->releaseDate['15.7.1'] = '2021-11-02';
$lang->misc->releaseDate['15.7'] = '2021-10-18';
$lang->misc->releaseDate['15.6'] = '2021-10-12';
$lang->misc->releaseDate['15.5'] = '2021-09-14';
$lang->misc->releaseDate['15.4'] = '2021-08-23';
$lang->misc->releaseDate['15.3'] = '2021-08-04';
$lang->misc->releaseDate['15.2'] = '2021-07-20';
$lang->misc->releaseDate['15.0.3'] = '2021-06-24';
$lang->misc->releaseDate['15.0.2'] = '2021-06-12';
$lang->misc->releaseDate['15.0.1'] = '2021-06-06';
$lang->misc->releaseDate['15.0'] = '2021-04-30';
$lang->misc->releaseDate['15.0.rc3'] = '2021-04-16';
$lang->misc->releaseDate['15.0.rc2'] = '2021-04-09';
$lang->misc->releaseDate['15.0.rc1'] = '2021-04-05';
$lang->misc->releaseDate['12.5.3'] = '2021-01-06';
$lang->misc->releaseDate['12.5.2'] = '2020-12-18';
$lang->misc->releaseDate['12.5.1'] = '2020-11-30';
$lang->misc->releaseDate['12.5.stable'] = '2020-11-19';
// $lang->misc->releaseDate['20.0.alpha1'] = '2020-10-30';
$lang->misc->releaseDate['12.4.4'] = '2020-10-30';
$lang->misc->releaseDate['12.4.3'] = '2020-10-13';
$lang->misc->releaseDate['12.4.2'] = '2020-09-18';
$lang->misc->releaseDate['12.4.1'] = '2020-08-10';
$lang->misc->releaseDate['12.4.stable'] = '2020-07-28';
$lang->misc->releaseDate['12.3.3'] = '2020-07-02';
$lang->misc->releaseDate['12.3.2'] = '2020-06-01';
$lang->misc->releaseDate['12.3.1'] = '2020-05-15';
$lang->misc->releaseDate['12.3'] = '2020-04-08';
$lang->misc->releaseDate['12.2'] = '2020-03-25';
$lang->misc->releaseDate['12.1'] = '2020-03-10';
$lang->misc->releaseDate['12.0.1'] = '2020-02-12';
$lang->misc->releaseDate['12.0'] = '2020-01-03';
$lang->misc->releaseDate['11.7'] = '2019-11-28';
$lang->misc->releaseDate['11.6.5'] = '2019-11-08';
$lang->misc->releaseDate['11.6.4'] = '2019-10-17';
$lang->misc->releaseDate['11.6.3'] = '2019-09-24';
$lang->misc->releaseDate['11.6.2'] = '2019-09-06';
$lang->misc->releaseDate['11.6.1'] = '2019-08-23';
$lang->misc->releaseDate['11.6.stable'] = '2019-07-12';
$lang->misc->releaseDate['11.5.2'] = '2019-06-26';
$lang->misc->releaseDate['11.5.1'] = '2019-06-24';
$lang->misc->releaseDate['11.5.stable'] = '2019-05-08';
$lang->misc->releaseDate['11.4.1'] = '2019-04-08';
$lang->misc->releaseDate['11.4.stable'] = '2019-03-25';
$lang->misc->releaseDate['11.3.stable'] = '2019-02-27';
$lang->misc->releaseDate['11.2.stable'] = '2019-01-30';
$lang->misc->releaseDate['11.1.stable'] = '2019-01-04';
$lang->misc->releaseDate['11.0.stable'] = '2018-12-21';
$lang->misc->releaseDate['10.6.stable'] = '2018-11-20';
$lang->misc->releaseDate['10.5.stable'] = '2018-10-25';
$lang->misc->releaseDate['10.4.stable'] = '2018-09-28';
$lang->misc->releaseDate['10.3.stable'] = '2018-08-10';
$lang->misc->releaseDate['10.2.stable'] = '2018-08-02';
$lang->misc->releaseDate['10.0.stable'] = '2018-06-26';
$lang->misc->releaseDate['9.8.stable'] = '2018-01-17';
$lang->misc->releaseDate['9.7.stable'] = '2017-12-22';
$lang->misc->releaseDate['9.6.stable'] = '2017-11-06';
$lang->misc->releaseDate['9.5.1'] = '2017-09-27';
$lang->misc->releaseDate['9.3.beta'] = '2017-06-21';
$lang->misc->releaseDate['9.1.stable'] = '2017-03-23';
$lang->misc->releaseDate['9.0.beta'] = '2017-01-03';
$lang->misc->releaseDate['8.3.stable'] = '2016-11-09';
$lang->misc->releaseDate['8.2.stable'] = '2016-05-17';
$lang->misc->releaseDate['7.4.beta'] = '2015-11-13';
$lang->misc->releaseDate['7.2.stable'] = '2015-05-22';
$lang->misc->releaseDate['7.1.stable'] = '2015-03-07';
$lang->misc->releaseDate['6.3.stable'] = '2014-11-07';
/* Release Detail. */
$lang->misc->feature->all['21.7.2'][] = array('title' => 'Optimized the document functionality. Project template functionality is available.', 'desc' => '');
$lang->misc->feature->all['21.7.1'][] = array('title' => 'Added top toolbar to document editor; supported single-project workflow config; optimized requirements; added deliverable management.', 'desc' => '');
$lang->misc->feature->all['21.7'][] = array('title' => 'Supported bulk editing of parent-child stages in Waterfall, Waterfall Plus, and IPD projects; enabled cross-execution task dependencies; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['21.6.1'][] = array('title' => 'Fixed document-related bugs.', 'desc' => '');
$lang->misc->feature->all['21.6'][] = array('title' => 'Optimized Jira import; added multi-user document collaboration.', 'desc' => '');
$lang->misc->feature->all['21.6.beta'][] = array('title' => 'Added Jira 2.0 and Confluence imports.', 'desc' => '');
$lang->misc->feature->all['21.5'][] = array('title' => 'Optimized system and document performance; improved attachment upload speed in comments.', 'desc' => '');
$lang->misc->feature->all['21.4'][] = array('title' => 'Refactored the opportunity module; optimized testing and workflow details.', 'desc' => '');
$lang->misc->feature->all['21.3'][] = array('title' => 'Added "Delayed" filter to program, project, and execution lists; added onboarding guide after project creation; allowed splitting phases with existing data into sub-phases in Waterfall projects; supported tooltips for new workflow fields; refactored the ticket creation page; added the opportunity feature to Agile projects; enabled issues, risks, opportunities, processes, QA, and meetings for projects without iterations.', 'desc' => '');
$lang->misc->feature->all['21.2'][] = array('title' => 'Added applications under releases; grouped programs and added permission hints in document dropdowns; included attachments when copying tasks, requirements, bugs, and test cases; allowed admins to delete public contacts; added task search and "Delayed" filter to execution lists; supported workflow extensions for project initiation; added version management for BI; optimized document editor compatibility; added copy feature for feedback; enabled module management on empty feedback creation pages; added notifications for issues, risks, opportunities, and audits; added audit and baseline lists to My Dashboard; optimized review and audit detail pages; supported task search in Gantt charts; added requirement change confirmation for designs; supported exporting review and baseline status reports.', 'desc' => '');
$lang->misc->feature->all['21.1'][] = array('title' => 'Optimized API documentation space and core feature access; improved host management; refined object relationships; added zero-padding for metrics; optimized DuckDB and release features.', 'desc' => '');
$lang->misc->feature->all['21.0'][] = array('title' => 'Optimized document features; improved product and project process templates in BI Designer.', 'desc' => '');
$lang->misc->feature->all['20.8'][] = array('title' => 'Optimized document features and task dependencies; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['20.7.1'][] = array('title' => 'Fixed known bugs.', 'desc' => '');
$lang->misc->feature->all['20.7'][] = array('title' => 'Optimized onboarding guide, custom menus, and workflows; added Contribution module to the OR view.', 'desc' => '');
$lang->misc->feature->all['20.6'][] = array('title' => 'Supported multi-view configuration in workflows; allowed using workflow fields as conditions in approval flows; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['20.5'][] = array('title' => 'Optimized document features; added 23 built-in metrics.', 'desc' => '');
$lang->misc->feature->all['18.13'][] = array('title' => 'Optimized performance for My To-Do, Requirement, Task, and Bug lists, and Product/Project detail pages; supported Dameng database; supported copying custom workflow fields and values when duplicating requirements, tasks, bugs, and test cases; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['20.4'][] = array('title' => 'Added Message Center; improved release management; added branch and tag management; supported adding signers in approval flows.', 'desc' => '');
$lang->misc->feature->all['20.3.0'][] = array('title' => 'Supported custom drill-down in pivot tables; enabled viewing multi-level pool, business, user, and R&D requirements in the requirement pool matrix; added confirmation for downstream requirements when upstream requirements change; allowed associating business and user requirements at any product roadmap level; optimized action buttons and search tags for pool, business, and user requirements; automatically recalculated upstream requirement stages when restoring deleted requirements.', 'desc' => '');
$lang->misc->feature->all['20.2.0'][] = array('title' => 'Optimized product matrix; added platform app configuration; improved approval flows; added Business Requirements to the OR view; added "Roadmap Set" and "Charter Initiated" stages for User Requirements; supported infinite levels and R&D stage calculation for Business/User Requirements; supported delivery stage calculation when distributing or splitting OR requirements; allowed distributing OR requirements as Business Requirements; calculated OR and User requirements during legacy upgrades; added TR4A review point to the development stage.', 'desc' => '');
$lang->misc->feature->all['20.1.1'][] = array('title' => 'Refactored core PHP and UI frameworks, core forms, and dashboards for a revamped user experience; supported APCu caching for major performance boosts; added search to baseline review lists; added "To Do" feature to the OR view; supported custom stages and review points in IPD projects.', 'desc' => '');
$lang->misc->feature->all['20.1.0'][] = array('title' => 'Supported APCu caching for significant performance boosts; optimized interaction designs and DevOps details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['20.0'][] = array('title' => 'Refactored core PHP and UI frameworks, core forms, and dashboards for an upgraded user experience.', 'desc' => '');
$lang->misc->feature->all['18.12'][] = array('title' => 'Removed information and logic for non-R&D users; added expiration reminders for technical services; supported itemized metric management, custom metrics, base metric library, and one-click recalculation of historical metrics; added requirement pool matrix; allowed removing initiated requirements from roadmaps; added feedback settings to the Operation Management view; added the "Associated Demand Pool" search filter for demand pool requirements.', 'desc' => '');
$lang->misc->feature->all['20.0.beta2'][] = array('title' => 'Optimized details; fixed known bugs.', 'desc' => '');
$lang->misc->feature->all['18.11'][] = array('title' => 'Added AI mini-programs; supported metric references and global filters on large screens; added feedback feature to the OR view; added keywords to pool requirements; allowed redistributing pool requirements after withdrawing user requirements.', 'desc' => '');
$lang->misc->feature->all['18.10.1'][] = array('title' => 'Added notifications and supported product lines in the requirement pool; allowed distributing a single requirement to multiple products.', 'desc' => '');
$lang->misc->feature->all['20.0.beta1'][] = array('title' => 'Refactored core code and upgraded the UI for better performance, stronger security, and enhanced user experience.', 'desc' => '');
$lang->misc->feature->all['20.0.alpha1'][] = array('title' => 'Internal release for large-scale code refactoring and comprehensive UI upgrades.', 'desc' => '');
$lang->misc->feature->all['18.10'][] = array('title' => 'Supported importing test cases from other libraries; allowed exporting documents with adaptive image scaling for Word; saved history sorting preferences in cookies; optimized log editing logic; carried over attachments when converting feedback or tickets; added keyword and CC fields to feedback; added liquid fill gauge charts; optimized metric collection and display.', 'desc' => '');
$lang->misc->feature->all['18.9'][] = array('title' => 'Integrated AI Large Language Models (LLMs); introducedan upgraded client version for meetings; added participants to test requests; supported online preview for video attachments; allowed customizing review inspection categories.', 'desc' => '');
$lang->misc->feature->all['18.8'][] = array('title' => 'Added metrics and application inspection dashboards to BI; added a configuration wizard to the DevOps Platform; added market management to the Requirement and Market Management view; revamped client navigation and personal center.', 'desc' => '');
$lang->misc->feature->all['18.7'][] = array('title' => 'Added cloud-native platform, artifact repository, and application management to DevOps; optimized navigation and UI interactions;
added AI prompt designer with LLM integration and custom AI apps.', 'desc' => '');
$lang->misc->feature->all['18.6'][] = array('title' => 'Optimized performance of frequently used lists; improved feature details for BI and Waterfall projects; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.5'][] = array('title' => 'Supported importing Academy courses from the cloud and previewing PDFs within courses; optimized loading speeds for frequently used lists; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.4'][] = array('title' => 'Optimized core list performance; supported Dameng database; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.4.beta1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.4.alpha1'][] = array('title' => 'Optimized permissions and document interactions; introduced test scenarios; supported importing test cases from XMind; comprehensively upgraded dashboards, pivot tables, charts, and data tables in BI.', 'desc' => '');
$lang->misc->feature->all['18.3'][] = array('title' => 'Supported customizing language items, menus, and search tags in secondary development; added toggleable editor features in secondary development; supported auto-saving form drafts and restoring unsaved data upon return.', 'desc' => '');
$lang->misc->feature->all['18.2'][] = array('title' => 'Added Agile Plus and Waterfall Plus management models; supported infinite sub-phases for Waterfall projects; revamped Admin UI; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.1'][] = array('title' => 'Optimized interactions for automation testing solutions; added snapshot management; supported online PPT collaboration in the ZenTao client; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['18.0'][] = array('title' => 'Launched automation testing solutions; added tickets to the Operation Management view; supported all notification types in approval flows; improved earned value calculation rules.', 'desc' => '');
$lang->misc->feature->all['18.0.beta3'][] = array('title' => 'Upgraded the Statistics module to BI, including 5 built-in macro-management dashboards.', 'desc' => '');
$lang->misc->feature->all['18.0.beta2'][] = array('title' => 'Optimized multi-branch/multi-platform products; supported creating twin requirements; allowed plans, builds, and releases to link cross-branch requirements and bugs; added bot chat mechanism to the ZenTao client.', 'desc' => '');
$lang->misc->feature->all['18.0.beta1'][] = array('title' => 'Improved core workflows; added standalone projects and iterationless projects; allowed projects to link products across programs; supported switching between ZenTao Lite and Full Lifecycle Management modes.', 'desc' => '');
$lang->misc->feature->all['17.8'][] = array('title' => 'Revamped status colors in lists and dashboards; optimized the task effort page.', 'desc' => '');
$lang->misc->feature->all['17.7'][] = array('title' => 'Optimized tables in the transition version; added ticket feature; optimized feedback; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.6.2'][] = array('title' => 'Updated Green, ZenTao Blue, and Youth Blue themes; supported bulk uploading of attachments; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.6.1'][] = array('title' => 'Optimized the processing logic for multi-user tasks; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.6'][] = array('title' => 'Optimized requirement processing logic; separated permissions for user and software requirements; supported drag-and-drop to manage task dependencies in Gantt charts; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.5'][] = array('title' => 'Provided efficient visual statistical tools; migrated database engine from MyISAM to InnoDB for better performance; upgraded Gantt charts; allowed copying more data like tasks when duplicating projects in Premium; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.4'][] = array('title' => 'Optimized visuals on detail pages and page redirection logic; improved Kanban features; optimized document creation and editing pages; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.3'][] = array('title' => 'Optimized UI for Statistics, Admin, and other modules; improved data synchronization in the test case library; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.2'][] = array('title' => 'Adjusted the display of Agile project blocks; optimized UI for programs, projects, and tests; improved UX details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.1'][] = array('title' => 'Fixed interaction issues in Execution and Project modules; fulfilled high-priority customer requests; improved UX details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.0'][] = array('title' => 'Optimized UX details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.0.beta2'][] = array('title' => 'Optimized UX details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['17.0.beta1'][] = array('title' => 'Fulfilled high-priority customer requests; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['16.5'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['16.5.beta1'][] = array('title' => 'Merged all code into a single package; optimized the upgrade process.', 'desc' => '');
$lang->misc->feature->all['16.4'][] = array('title' => 'Supported Jira import; improved the plugin extension mechanism.', 'desc' => '');
$lang->misc->feature->all['16.3'][] = array('title' => 'Allowed Kanbans to link plans, releases, builds, and iterations; improved UX details.', 'desc' => '');
$lang->misc->feature->all['16.2'][] = array('title' => 'Added professional R&D Kanban; supported creating Kanban model projects; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['16.1'][] = array('title' => 'Added status management and Kanban views to plans; optimized the upgrade process; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['16.0'][] = array('title' => 'Added general Kanban; improved branch management; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['16.0.beta1'][] = array('title' => 'Added Waterfall model projects and task Kanban; improved branch management and details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.7.1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.7'][] = array('title' => 'Added API library; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.6'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.5'][] = array('title' => 'Added Kanban views for programs, products, and projects; added global "Add" feature and onboarding guide; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.4'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.3'][] = array('title' => 'Updated UI styles; optimized documents; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.2'][] = array('title' => 'Optimized the new version upgrade process; added Execution Kanban.', 'desc' => '');
$lang->misc->feature->all['15.0.3'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.0.2'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.0.1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.0'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.0.rc3'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['15.0.rc2'][] = array('title' => 'Fixed bugs; optimized UI interactions.', 'desc' => '');
$lang->misc->feature->all['15.0.rc1'][] = array('title' => 'Upgraded to ZenTao 15; refactored navigation and document library; added program management.', 'desc' => '');
$lang->misc->feature->all['12.5.3'][] = array('title' => 'Optimized the Annual Summary.', 'desc' => '');
$lang->misc->feature->all['12.5.2'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.5.1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.5.stable'][] = array('title' => 'Fixed bugs; fulfilled high-priority requirements.', 'desc' => '');
$lang->misc->feature->all['12.4.4'][] = array('title' => 'Supported compatibility with Professional and Standard versions.', 'desc' => '');
$lang->misc->feature->all['12.4.3'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.4.2'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.4.1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.4.stable'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.3.3'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.3.2'][] = array('title' => 'Fixed workflows.', 'desc' => '');
$lang->misc->feature->all['12.3.1'][] = array('title' => 'Fixed high-severity bugs.', 'desc' => '');
$lang->misc->feature->all['12.3'][] = array('title' => 'Integrated unit testing; completed the continuous integration loop.', 'desc' => '');
$lang->misc->feature->all['12.2'][] = array('title' => 'Added parent-child requirements; supported compatibility with the latest Xuanxuan IM.', 'desc' => '');
$lang->misc->feature->all['12.1'][] = array('title' => 'Added integration.', 'desc' => '<p>Added integration, and build in Jenkins.</p>');
$lang->misc->feature->all['12.0.1'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['12.0'][] = array('title'=>'Move repo function to zentao', 'desc' => '');
$lang->misc->feature->all['12.0'][] = array('title'=>'Add annual summary', 'desc' => 'Show annual summary by role.');
$lang->misc->feature->all['12.0'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.7'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '<p>Added option to enable Agile concepts.</p><p>Added WeCom to webhook types.</p><p>Supported sending personal notifications to DingTalk.</p>');
$lang->misc->feature->all['11.6.5'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.6.4'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.6.3'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.6.2'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.6.1'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.6.stable'][] = array('title'=>'Improving the International Edition Interface', 'desc' => '');
$lang->misc->feature->all['11.6.stable'][] = array('title' => 'Added translation feature.', 'desc' => '');
$lang->misc->feature->all['11.5.2'][] = array('title' => 'Enhanced ZenTao security; added weak password checks for login.', 'desc' => '');
$lang->misc->feature->all['11.5.1'][] = array('title' => 'Supported passwordless login via third-party apps; fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.5.stable'][] = array('title'=>'Optimize details and fix bug.', 'desc' => '');
$lang->misc->feature->all['11.5.stable'][] = array('title'=>'Added filters to Dynamics', 'desc' => '');
$lang->misc->feature->all['11.5.stable'][] = array('title' => 'Integrated the latest ZenTao Client.', 'desc' => '');
$lang->misc->feature->all['11.4.1'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '');
$lang->misc->feature->all["11.4.stable"][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '<p>Enhanced test task management.</p><p>Optimized interactions when linking {$lang->SRCommon} and bugs to plans, releases, and builds.</p><p>Added an option to show or hide documents in child categories within the document library.</p><p>Optimized details and fixed bugs.</p>');
$lang->misc->feature->all['11.3.stable'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '<p>Added child plans to plans.</p><p>Optimized dropdown (Chosen) interactions.</p><p>Added timezone settings.</p><p>Optimized document library and document modules.</p>');
$lang->misc->feature->all['11.2.stable'][] = array('title' => 'Optimized details; fixed bugs.', 'desc' => '<p>Added upgrade logs and post-upgrade database checks.</p><p>Fixed ZenTao Client integration bugs and optimized other details.</p>');
$lang->misc->feature->all['11.1.stable'][] = array('title' => 'Mainly fixed bugs.', 'desc' => '');
$lang->misc->feature->all['11.0.stable'][] = array('title' => 'Integrated Xuanxuan IM.', 'desc' => '');
$lang->misc->feature->all['10.6.stable'][] = array('title'=>'Adjust backup mechanism', 'desc' => '<p>Increase backup settings and make backup more flexible</p><p>Show backup progress</p><p>Change the backup directory</p>');
$lang->misc->feature->all['10.6.stable'][] = array('title' => 'Optimized and adjusted menus.', 'desc' => '<p>Adjusted Admin menus.</p><p>Adjusted secondary menus for My Dashboard and Project.</p>');
$lang->misc->feature->all['10.5.stable'][] = array('title'=>'Adjust document layout', 'desc' => "<p>Adjust the layout method on the left side of the document library.</p><p>Add filter conditions at the bottom of the document library menu.</p>");
$lang->misc->feature->all['10.5.stable'][] = array('title' => 'Adjusted child task logic and optimized the display of parent-child tasks.', 'desc' => '');
$lang->misc->feature->all['10.4.stable'][] = array('title'=>'Optimize and adjust new interface', 'desc' => '<p>Detail page restore to the previous layout.</p><p>Refactore forms to add user pages</p><p>When use cases are executed, do not update the use case stause if the user manually chooses to pass and write the results.</p>');
$lang->misc->feature->all['10.4.stable'][] = array('title'=>'After the user machine hibernates and the login fails, the session will be refreshed again.', 'desc' => '');
$lang->misc->feature->all['10.4.stable'][] = array('title' => 'Upgraded existing API mechanisms.', 'desc' => '');
$lang->misc->feature->all['10.3.stable'][] = array('title' => 'Fixed bugs.', 'desc' => '');
$lang->misc->feature->all['10.2.stable'][] = array('title' => 'Integrated Xuanxuan IM.', 'desc' => '');
$lang->misc->feature->all['10.0.stable'][] = array('title' => 'Revamped UI and interaction experience.', 'desc' => '<ol><li>Revamped My Dashboard.</li><li>Revamped Dynamics page.</li><li>Revamped Product Home.</li><li>Revamped Product Overview.</li><li>Revamped Roadmap.</li><li>Revamped Project Home.</li><li>Revamped Project Overview.</li><li>Revamped QA Home.</li><li>Revamped Document Home.</li><li>Added work statistics block to My Dashboard.</li><li>Allowed adding, editing, and finishing to-dos directly in the To-Do block on My Dashboard.</li><li>Added product statistics block to Product Home.</li><li>Added product overview block to Product Home.</li><li>Added project statistics block to Project Home.</li><li>Added project overview block to Project Home.</li><li>Added QA statistics block to QA Home.</li><li>Moved "All Products", "Product Home", "All Projects", "Project Home", and "QA Home" buttons from the right to the left of the secondary navigation.</li><li>Moved Kanban, Burndown, Tree View, and Group View buttons in the project task list from the tertiary to the secondary navigation; integrated Tree View, Group View, and Task List into a dropdown menu.</li><li>Grouped QA-related navigation items (Bugs, Builds, and Test Requests) under a single dropdown in the project secondary navigation.</li><li>Grouped Build and Test Request lists by product for a more logical layout.</li><li>Added a tree view to the left side of Documents.</li><li>Added quick access features to Documents, including "Recently Updated", "My Documents", and "My Collection".</li><li>Added a "Favorite" feature to Documents.</li></ol>');
$lang->misc->feature->all['9.8.stable'][] = array('title'=>'Message centralized management', 'desc' => '<p>Gather Mail,SMS,webhook into Message</p>');
$lang->misc->feature->all['9.8.stable'][] = array('title'=>'Add recurred To-do', 'desc' => '');
$lang->misc->feature->all['9.8.stable'][] = array('title'=>"Add Block of 'AssignedToMe'", 'desc' => '');
$lang->misc->feature->all['9.8.stable'][] = array('title' => 'Supported selecting multiple test requests in a project to generate reports.', 'desc' => '');
$lang->misc->feature->all['9.7.stable'][] = array('title' => 'Optimized the International package; added English demo data.', 'desc' => '');
$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added Webhook Interface feature', 'desc' => 'Support communication with BearyChat, Dingding');
$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added Point', 'desc' => 'More skilled application, more score');
$lang->misc->feature->all['9.6.stable'][] = array('title'=>'Added multiple user task and child tasks to Project', 'desc' => '');
$lang->misc->feature->all['9.6.stable'][] = array('title' => 'Added product line feature to the Product view.', 'desc' => '');
$lang->misc->feature->all['9.5.1'][] = array('title' => 'Added restricted actions.', 'desc' => '');
$lang->misc->feature->all['9.3.beta'][] = array('title' => 'Upgraded the framework; enhanced application security.', 'desc' => '');
$lang->misc->feature->all['9.1.stable'][] = array('title'=>'optimize Test View', 'desc' => '<p>Added TestSuite, CaseLibrary and QA Report</p>');
$lang->misc->feature->all['9.1.stable'][] = array('title' => 'Supported grouping test steps in test cases.', 'desc' => '');
$lang->misc->feature->all['9.0.beta'][] = array('title'=>'ZenTao CloudMail has been added.', 'desc' => '<p>ZenTao CloudMail is a free Email service launched jointly with SendCloud. Once binded with ZenTao and passed verification, users can use this service.</p>');
$lang->misc->feature->all['9.0.beta'][] = array('title' => 'Optimized the rich text and Markdown editors.', 'desc' => '');
$lang->misc->feature->all['8.3.stable'][] = array('title' => 'Optimized document features.', 'desc' => '<p>Added Document Home, reorganized the document library structure, and added permissions.</p><p>Added multiple file browsing modes, supported Markdown for documents, and added document permission and file version management.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Home', 'desc' => '<p>You can add blocks to Dashboard and arrange the layout.</p><p> My Zone, Product, Project, and QA all support home custom mentioned before. </p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Navigation', 'desc' => '<p>You can decide which project show in navigation bar and the order of projects shown in the bar.</p><p> Hover on the navigation bar and a sign will show to its right. Click the sign and a dialog box "Custom Navigation" will show. Drag the block name to switch its order on navigation bar.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Batch Add/Edit Custom', 'desc' => '<p>You can batch add and edit fields on custom pages.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Story/Task/Bug/Case', 'desc' => '<p>You can custom fileds when add a Story/Task/Bug/Case.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Custom Export', 'desc' => '<p>You can custom fileds when export a Story/Task/Bug/Case pages. You can also save it as template for next export.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title'=>'Story/Task/Bug/Case Search ', 'desc' => '<p>On Story/Task/Bug/Case List page, you can do a combined search on Modules and Tabs.</p>');
$lang->misc->feature->all['8.2.stable'][] = array('title' => 'Added onboarding tutorial.', 'desc' => '<p>Added an onboarding tutorial to help new users quickly learn how to use ZenTao.</p>');
$lang->misc->feature->all['7.4.beta'][] = array('title'=>'Product branch feature is added.', 'desc' => '<p>Product branch/platform is added, and its related Story/Plan/Bug/Case/Module has Branch added too.</p>');
$lang->misc->feature->all['7.4.beta'][] = array('title'=>'Release Module is improved.', 'desc' => '<p>Stop action has been added. If Stop to manage it, the Release will not show when Report Bug.</p><p>Bugs that have been omitted in the Release will be related manually.</p>');
$lang->misc->feature->all['7.4.beta'][] = array('title' => 'Optimized the creation pages for {$lang->SRCommon} and bugs.', 'desc' => '');
$lang->misc->feature->all['7.2.stable'][] = array('title'=>'Security Enhanced', 'desc' => '<p>Admin weak passwork check is enhanced.</p><p>ok file is required when code/upload an extension.</p><p>Sensitive action requires Admin password.</p><p>Do striptags, specialchars to content entered in ZenTao.</p>');
$lang->misc->feature->all['7.2.stable'][] = array('title' => 'Optimized details.', 'desc' => '');
$lang->misc->feature->all['7.1.stable'][] = array('title'=>'Framework of Cron is added.', 'desc' => 'Framework of Cron is added. Daily notification, Burndown Update, Backup, Send Email and so on have been added.');
$lang->misc->feature->all['7.1.stable'][] = array('title' => 'Provided RPM and DEB packages.', 'desc' => '');
$lang->misc->feature->all['6.3.stable'][] = array('title'=>'Data table is added.', 'desc' => '<p>Fields can be customized in data table and data will be displayed according to customized fields.</p>');
$lang->misc->feature->all['6.3.stable'][] = array('title' => 'Continued optimizing details.', 'desc' => '');

249
module/mr/lang/ru.php Normal file
View file

@ -0,0 +1,249 @@
<?php
$lang->mr = new stdclass;
$lang->mr->common = 'Merge Requests';
$lang->mr->server = "Server";
$lang->mr->hostID = "Server";
$lang->mr->view = "Survey";
$lang->mr->viewAction = "{$lang->mr->common} Details";
$lang->mr->create = "Submit {$lang->mr->common}";
$lang->mr->apiCreate = "Interface: Create";
$lang->mr->browse = "Browse";
$lang->mr->browseAction = "{$lang->mr->common} List";
$lang->mr->list = "List";
$lang->mr->edit = "Edit";
$lang->mr->delete = "Delete";
$lang->mr->accept = "Accept";
$lang->mr->source = 'source';
$lang->mr->target = 'target';
$lang->mr->viewDiff = 'View diff';
$lang->mr->diff = 'View diff';
$lang->mr->viewInGit = 'View in APP';
$lang->mr->link = 'Link of stories,Bugs,tasks';
$lang->mr->createAction = '%s, <strong>%s</strong> submitted a <a href="%s">Merge Request</a>.';
$lang->mr->editAction = '%s, <strong>%s</strong> edited <a href="%s">Merge Request</a>.';
$lang->mr->removeAction = '%s, <strong>%s</strong> deleted <a href="%s">Merge Request</a>.';
$lang->mr->submitType = 'Submit type';
$lang->mr->action = new stdclass();
$lang->mr->action->synced = '$date, <strong>$actor</strong> synced this Merge Request.';
$lang->mr->action->imported = '$date, <strong>$actor</strong> imported this Merge Request.';
$lang->mr->linkList = 'Link List of stories,Bugs,tasks';
$lang->mr->linkStory = 'Link Stories';
$lang->mr->linkBug = 'Link Bugs';
$lang->mr->linkTask = 'Link Tasks';
$lang->mr->unlinkTask = 'Remove Tasks';
$lang->mr->unlink = 'UnLink of stories,Bugs,tasks';
$lang->mr->addReview = 'Add Review';
$lang->mr->id = 'ID';
$lang->mr->mriid = "raw MR ID";
$lang->mr->title = 'Name';
$lang->mr->status = 'Status';
$lang->mr->author = 'Author';
$lang->mr->createdDate = 'Created date';
$lang->mr->assignee = 'Assignee';
$lang->mr->reviewer = 'Reviewer';
$lang->mr->mergeStatus = 'Merge status';
$lang->mr->commits = 'commits';
$lang->mr->changes = 'changes';
$lang->mr->gitlabID = 'GitLab';
$lang->mr->repoID = 'Repo';
$lang->mr->jobID = 'Pipeline job';
$lang->mr->commitLogs = 'Commit Logs';
$lang->mr->execJob = 'Execute';
$lang->mr->execJobTip = 'Execute the pipeline job manually';
$lang->mr->canMerge = "Can be merged";
$lang->mr->cantMerge = "Can not be merged";
$lang->mr->approval = 'Approval';
$lang->mr->approve = 'Approve';
$lang->mr->reject = 'Reject';
$lang->mr->close = 'Close';
$lang->mr->reopen = 'Reopen';
$lang->mr->reviewType = 'Review Type';
$lang->mr->reviewTypeList = array();
$lang->mr->reviewTypeList['bug'] = 'Bug';
$lang->mr->reviewTypeList['task'] = 'Task';
$lang->mr->approvalResult = 'Approval result';
$lang->mr->approvalResultList = array();
$lang->mr->approvalResultList['approve'] = 'Approve';
$lang->mr->approvalResultList['reject'] = 'Reject';
$lang->mr->needApproved = 'This MR should be approved before merge';
$lang->mr->needCI = 'Merge only after passing pipeline';
$lang->mr->removeSourceBranch = 'Delete source branch after merge';
$lang->mr->squash = 'Squash commits';
$lang->mr->triggeredCI = 'The pipeline job is triggered due to the target branch or pipeline job changed.';
$lang->mr->acceptTip = 'Please approve this MR before merge';
$lang->mr->conflictsTip = 'This merge request has conflicts, cannot be merged';
$lang->mr->noChangesTip = 'Source branch and target branch have no changes, cannot be merged';
$lang->mr->compileTip = 'This merge request pipeline build is not successful, cannot be merged';
$lang->mr->notifyTip = 'This merge request has conflicts or no changes, cannot be merged';
$lang->mr->branchUpdateTip = 'Branch has been updated, execute pipeline';
$lang->mr->draftTips = 'Merge request is in draft status, cannot be merged.';
$lang->mr->repeatedOperation = 'Do not repeat operations';
$lang->mr->approvalStatus = 'Approve status';
$lang->mr->approvalStatusList = array();
$lang->mr->approvalStatusList['notReviewed'] = 'notReviewed';
$lang->mr->approvalStatusList['approved'] = 'Approved';
$lang->mr->approvalStatusList['rejected'] = 'Rejected';
$lang->mr->notApproved = 'Rejected';
$lang->mr->assignedToMe = 'AssignedToMe';
$lang->mr->createdByMe = 'CreatedByMe';
$lang->mr->statusList = array();
$lang->mr->statusList['all'] = 'all';
$lang->mr->statusList['opened'] = 'opened';
$lang->mr->statusList['merged'] = 'merged';
$lang->mr->statusList['closed'] = 'closed';
$lang->mr->mergeStatusList = array();
$lang->mr->mergeStatusList['unchecked'] = 'unchecked';
$lang->mr->mergeStatusList['checking'] = 'checking';
$lang->mr->mergeStatusList['can_be_merged'] = 'can be merged';
$lang->mr->mergeStatusList['cannot_be_merged'] = 'cannot be merged';
$lang->mr->mergeStatusList['cannot_merge_by_fail'] = 'Cannot be merged, check failed';
$lang->mr->description = 'Description';
$lang->mr->confirmDelete = 'Are you sure to delete this merge request?';
$lang->mr->sourceProject = 'Source repository';
$lang->mr->sourceBranch = 'Source branch';
$lang->mr->targetProject = 'Target repository';
$lang->mr->targetBranch = 'Target branch';
$lang->mr->noCompileJob = 'No Pipeline Job';
$lang->mr->compileUnexecuted = 'Compile Unexecuted';
$lang->mr->compileID = 'Compile ID';
$lang->mr->compileStatus = 'Compile Status';
$lang->mr->notFound = "Merge Request does not exist!";
$lang->mr->toCreatedMessage = "The merge request you submitted: <a href='%s'>%s</a>, the pipeline task succeeded.";
$lang->mr->toReviewerMessage = "You have one merge request <a href='%s'>%s</a> waiting.";
$lang->mr->failMessage = "Your merge request <a href='%s'>%s</a> failed. Please check its execution result. ";
$lang->mr->storySummary = "Total <strong>%s</strong> {$lang->SRCommon} on this page.";
$lang->mr->apiError = new stdclass;
$lang->mr->apiError->createMR = "Failed to create a merge request through API. Reason: %s";
$lang->mr->apiError->sudo = "Unable to operate with the GitLab account bound to the current user. Reason: %s";
$lang->mr->apiError->emptyResponse = "The object requested by the API does not exist or failed.";
$lang->mr->apiError->notFound = "The object requested by the API does not exist, it may be deleted in API Server.";
$lang->mr->createFailedFromAPI = "Failed to create Merge Request.";
$lang->mr->hasSameOpenedMR = "There are duplicate and unclosed merge requests: ID%u";
$lang->mr->accessGitlabFailed = "Unable to connect to the GitLab server.";
$lang->mr->reopenSuccess = "The merge request was reopened.";
$lang->mr->closeSuccess = "Merge request closed.";
$lang->mr->unsupportedFeature = "Unsupported feature.";
$lang->mr->apiErrorMap[1] = "You can't use same project/branch for source and target";
$lang->mr->apiErrorMap[2] = "/Another open merge request already exists for this source branch: !([0-9]+)/";
$lang->mr->apiErrorMap[3] = "401 Unauthorized";
$lang->mr->apiErrorMap[4] = "403 Forbidden";
$lang->mr->apiErrorMap[5] = "/(pull request already exists for these targets).*/";
$lang->mr->apiErrorMap[6] = "Invalid PullRequest: There are no changes between the head and the base";
$lang->mr->apiErrorMap[7] = "/(user doesn't have access to repo).*/";
$lang->mr->apiErrorMap[8] = "/(git apply).*/";
$lang->mr->errorLang[1] = 'The source project branch cannot be the same as the target project branch';
$lang->mr->errorLang[2] = 'Another open merge request already exists for this source branch: ID%u';
$lang->mr->errorLang[3] = "Unauthorized";
$lang->mr->errorLang[4] = 'Permission denied';
$lang->mr->errorLang[5] = 'Another open merge request already exists for this source branch';
$lang->mr->errorLang[6] = 'The source project branch cannot be the same as the target project branch';
$lang->mr->errorLang[7] = "user doesn't have access to repo";
$lang->mr->errorLang[8] = 'The source branch and target branch cannot be merged';
$lang->mr->from = "from";
$lang->mr->to = "to";
$lang->mr->at = "at";
$lang->mr->pipeline = "Pipeline";
$lang->mr->pipelineSuccess = "Success";
$lang->mr->pipelineFailed = "Failed";
$lang->mr->pipelineCanceled = "Canceled";
$lang->mr->pipelineUnknown = "Unknown";
$lang->mr->pipelineStatus = array();
$lang->mr->pipelineStatus['success'] = "success";
$lang->mr->pipelineStatus['failed'] = "failed";
$lang->mr->pipelineStatus['canceled'] = "canceled";
$lang->mr->MRHasConflicts = "Merge Request has a conflict";
$lang->mr->hasConflicts = "There are merge conflicts";
$lang->mr->hasNoChanges = "Branch have no changes";
$lang->mr->hasNoConflict = "Can merge";
$lang->mr->acceptMR = "Accept Merge request ";
$lang->mr->mergeFailed = "Unable to merge request, please check the merge request status";
$lang->mr->mergeSuccess = "Merge Request Successfully";
$lang->mr->refreshSuccess = 'Refresh successfully';
$lang->mr->todomessage = "project was assigned to you";
$lang->mr->squashHelp = 'Corresponding git parameters: --squash';
/**
* Merge Command Document.
*
* %s source_project::http_url_to_repo
* %s mr::source_branch
* %s source_project::path_with_namespace . '-' . mr::source_branch
* %s mr::target_branch
* %s source_project::path_with_namespace . '-' . mr::source_branch
* %s mr::target_branch
*/
$lang->mr->commandDocument = <<< EOD
<div class='detail-title'>Check out, review and merge locally</div>
<div class='detail-content'>
<p><blockquote>Note: This merge request status will be changed automatically after you merged locally.</blockquote></p>
<p>
step 1. Change directory to target project. Fetch and check out the branch for this merge request
<pre>
git fetch "%s" %s
git checkout -b "%s" FETCH_HEAD</pre>
</p>
<p>
step 2. Review the changes locally. You can use <code>git log</code> to view the changes
</p>
<p>
step 3. Merge the branch and fix any conflicts that come up
<pre>
git fetch origin
git checkout "%s"
git merge --no-ff "%s"</pre>
</p>
<p>
step 4. Push the result of the merge to Git
<pre>
git push origin "%s" </pre>
</p>
</div>
EOD;
$lang->mr->noChanges = "Currently there are no changes in this merge request's source branch. Please push new commits or use a different branch.";
$lang->mr->linkTask = "Link task";
$lang->mr->unlinkTask = "Remove task";
$lang->mr->linkedTasks = 'Task';
$lang->mr->unlinkedTasks = 'Task not linked';
$lang->mr->confirmUnlinkTask = "Are you sure to remove this task?";
$lang->mr->taskSummary = "There are <strong>%s</strong> tasks on this page";
$lang->mr->notDelbranch = "The source branch cannot be deleted when it is a protected branch";
$lang->mr->addForApp = "There are no projects under this server, do you want to go to add?";
$lang->mr->featureBar['browse']['all'] = $lang->mr->statusList['all'];
$lang->mr->featureBar['browse']['opened'] = $lang->mr->statusList['opened'];
$lang->mr->featureBar['browse']['merged'] = $lang->mr->statusList['merged'];
$lang->mr->featureBar['browse']['closed'] = $lang->mr->statusList['closed'];
$lang->mr->featureBar['browse']['assignee'] = $lang->mr->assignedToMe;
$lang->mr->featureBar['browse']['creator'] = $lang->mr->createdByMe;

243
module/my/lang/ru.php Normal file
View file

@ -0,0 +1,243 @@
<?php
global $config;
/* Method List。*/
$lang->my->index = 'Home';
$lang->my->data = 'My Data';
$lang->my->todo = 'My To-do';
$lang->my->todoAction = 'Schedule List';
$lang->my->calendar = 'Schedule';
$lang->my->work = 'Work';
$lang->my->contribute = 'Contribution';
$lang->my->task = 'My Tasks';
$lang->my->bug = 'My Bugs';
$lang->my->myTestTask = 'My Test Requests';
$lang->my->myTestCase = 'My Test Cases';
$lang->my->story = 'My Stories';
$lang->my->doc = "My Docs";
$lang->my->createProgram = 'Create Program';
$lang->my->project = "My {$lang->projectCommon}s";
$lang->my->execution = "My {$lang->execution->common}s";
$lang->my->audit = 'Reviews';
$lang->my->issue = 'My Issues';
$lang->my->risk = 'My Risks';
$lang->my->reviewissue = 'My Review Issue';
$lang->my->profile = 'My Profile';
$lang->my->dynamic = 'My Recents';
$lang->my->team = 'Team';
$lang->my->editProfile = 'Edit Profile';
$lang->my->changePassword = 'Change Oassword';
$lang->my->preference = 'Preference';
$lang->my->unbind = 'Unbind ZDOO';
$lang->my->manageContacts = 'Manage Contacts';
$lang->my->createContacts = 'Create Contact';
$lang->my->deleteContacts = 'Delete Contact';
$lang->my->viewContacts = 'View Contact';
$lang->my->shareContacts = 'Public Contacts';
$lang->my->limited = 'Permission restricted. You can only edit your own data.';
$lang->my->score = 'My Points';
$lang->my->scoreRule = 'Point Rules';
$lang->my->noTodo = 'No To-do yet.';
$lang->my->noData = 'No %s yet.';
$lang->my->storyChanged = "Story Changed";
$lang->my->hours = "Hours/day";
$lang->my->uploadAvatar = 'Update Avatar';
$lang->my->epic = "My {$lang->ERCommon}";
$lang->my->requirement = "My {$lang->URCommon}";
$lang->my->testtask = 'Mt Test Request';
$lang->my->testcase = 'My Test Case';
$lang->my->storyConcept = 'Story Concept';
$lang->my->pri = 'Priority';
$lang->my->alert = 'You can click your avatar in the upper-right corner and select Preference to update your information.';
$lang->my->assignedToMe = 'Assigned to Me';
$lang->my->byQuery = 'Search';
$lang->my->contactHolder = 'Contacts';
$lang->my->contactList = 'Contact List';
$lang->my->myContact = 'My';
$lang->my->publicContact = 'Public';
$lang->my->manageSelf = 'You can only edit contacts you created.';
$lang->my->adminView = 'System administrators have permission to delete public contacts.';
$lang->my->indexAction = 'Dashboard Overview';
$lang->my->calendarAction = 'My Calendar';
$lang->my->workAction = 'My Work';
$lang->my->contributeAction = 'My Contribution';
$lang->my->profileAction = 'Profile';
$lang->my->dynamicAction = 'Recents';
$lang->my->myExecutions = "My Executions";
$lang->my->name = 'Name';
$lang->my->code = 'Code';
$lang->my->projects = "{$lang->projectCommon}s";
$lang->my->executions = 'Executions';
$lang->my->taskMenu = new stdclass();
$lang->my->taskMenu->assignedToMe = 'Assigned to Me';
$lang->my->taskMenu->openedByMe = 'Created by Me';
$lang->my->taskMenu->finishedByMe = 'Completed by Me';
$lang->my->taskMenu->closedByMe = 'Closed by Me';
$lang->my->taskMenu->canceledByMe = 'Cancelled by Me';
$lang->my->taskMenu->assignedByMe = 'Assigned by Me';
$lang->my->storyMenu = new stdclass();
$lang->my->storyMenu->assignedToMe = 'Assigned to Me';
$lang->my->storyMenu->reviewByMe = 'My Pending Review';
$lang->my->storyMenu->openedByMe = 'Created by Me';
$lang->my->storyMenu->reviewedByMe = 'Reviewed by Me';
$lang->my->storyMenu->closedByMe = 'Closed by Me';
$lang->my->storyMenu->assignedByMe = 'Assigned by Me';
$lang->my->auditField = new stdclass();
$lang->my->auditField->title = 'Title';
$lang->my->auditField->time = 'Submission Time';
$lang->my->auditField->type = 'Type';
$lang->my->auditField->result = 'Result';
$lang->my->auditField->status = 'Status';
$lang->my->auditField->oaTitle['attend'] = '%ss Attendance Request: %s';
$lang->my->auditField->oaTitle['leave'] = '%ss Leave Request: %s';
$lang->my->auditField->oaTitle['makeup'] = '%ss Make-up Work Request: %s';
$lang->my->auditField->oaTitle['overtime'] = '%ss Overtime Request: %s';
$lang->my->auditField->oaTitle['lieu'] = '%ss Compensatory Leave Request: %s';
$lang->my->form = new stdclass();
$lang->my->form->lblBasic = 'Basic Info';
$lang->my->form->lblContact = 'Contact Info';
$lang->my->form->lblAccount = 'Account Info';
$lang->my->programLink = 'Program Default Page';
$lang->my->productLink = $lang->productCommon . ' Default Page';
$lang->my->projectLink = $lang->projectCommon . ' Default Page';
$lang->my->executionLink = 'Execution Default Page';
$lang->my->docLink = 'Document Default Page';
$lang->my->programLinkList = array();
$lang->my->programLinkList['program-browse'] = 'Program List / View all programs.';
$lang->my->programLinkList['program-kanban'] = 'Program Kanban / Visualize the progress of all programs.';
$lang->my->programLinkList['program-project'] = "Recent Programs {$lang->projectCommon} List / View all {$lang->projectCommon} under the current program.";
$lang->my->productLinkList = array();
$lang->my->productLinkList['product-all'] = "{$lang->productCommon} List / View all {$lang->productCommon}.";
$lang->my->productLinkList['product-kanban'] = "{$lang->productCommon} Kanban / Visualize the progress of all {$lang->productCommon}.";
$lang->my->productLinkList['product-index'] = "All {$lang->productCommon} Dashboard / View statistics, summaries, and overviews of all {$lang->productCommon}.";
$lang->my->productLinkList['product-dashboard'] = "Recent {$lang->productCommon} Dashboard / View the most recently accessed {$lang->productCommon} dashboard.";
$lang->my->productLinkList['product-browse'] = "Recent {$lang->productCommon}s Story List / Access the story list under the most recently viewed {$lang->productCommon}.";
$lang->my->projectLinkList = array();
$lang->my->projectLinkList['project-browse'] = "{$lang->projectCommon} List / View all {$lang->projectCommon}.";
$lang->my->projectLinkList['project-kanban'] = "{$lang->projectCommon} Kanban / Visualize the progress of all {$lang->projectCommon}.";
$lang->my->projectLinkList['project-execution'] = "Recent {$lang->projectCommon} Execution List / View all execution lists under the {$lang->projectCommon}.";
$lang->my->projectLinkList['project-index'] = "Recent {$lang->projectCommon} Dashboard / Access the dashboard of the most recently viewed {$lang->projectCommon}.";
$lang->my->executionLinkList = array();
$lang->my->executionLinkList['execution-all'] = 'Execution List / View all executions.';
$lang->my->executionLinkList['execution-executionkanban'] = 'Execution Kanban / Visualize the progress of all executions.';
$lang->my->executionLinkList['execution-task'] = 'Recent Execution Task List / View the tasks under the most recently created execution.';
$lang->my->docLinkList = array();
$lang->my->docLinkList['doc-lastViewedSpaceHome'] = 'The most recently viewed space homepage';
$lang->my->docLinkList['doc-lastViewedSpace'] = 'The most recently viewed space';
$lang->my->docLinkList['doc-lastViewedLib'] = 'The most recently viewed library';
$lang->my->confirmReview['pass'] = 'Are you sure you want to pass it?';
$lang->my->guideChangeTheme = <<<EOT
<p class='theme-title'><span style='color: #0c60e1'>Young Blue</span>theme is available now!</p>
<div>
<p>With just one step, you can experience the brand new theme! Go ahead and set it up now!</p>
<p>Simply hover over<span style='color: #0c60e1'>【Avatar - Theme - Young Blue】</span>, click on Young Blue, and you're all set!</p>
</div>
EOT;
$lang->my->featureBar['todo']['all'] = 'Assigned to Me';
$lang->my->featureBar['todo']['undone'] = 'Uncompleted';
$lang->my->featureBar['todo']['future'] = 'TBD';
$lang->my->featureBar['todo']['today'] = 'Today';
$lang->my->featureBar['todo']['thisWeek'] = 'This Week';
$lang->my->featureBar['todo']['thisMonth'] = 'This Month';
$lang->my->featureBar['todo']['more'] = 'More';
$lang->my->moreSelects['todo']['more']['thisYear'] = 'This Year';
$lang->my->moreSelects['todo']['more']['assignedToOther'] = 'Assigned to Others';
$lang->my->moreSelects['todo']['more']['cycle'] = 'Duration';
$lang->my->featureBar['audit']['all'] = 'All';
$lang->my->featureBar['audit']['demand'] = 'Stories from Story Pool';
$lang->my->featureBar['audit']['story'] = $lang->SRCommon;
$lang->my->featureBar['audit']['requirement'] = $lang->URCommon;
$lang->my->featureBar['audit']['epic'] = $lang->ERCommon;
$lang->my->featureBar['audit']['testcase'] = 'Test case';
$lang->my->featureBar['audit']['mr'] = 'Merge request';
if(in_array($config->edition, array('max', 'ipd')) and (helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus'))) $lang->my->featureBar['audit']['project'] = $lang->projectCommon;
if($config->edition != 'open') $lang->my->featureBar['audit']['feedback'] = 'Feedback';
if($config->edition != 'open' and helper::hasFeature('OA')) $lang->my->featureBar['audit']['oa'] = 'OA';
$lang->my->featureBar['project']['doing'] = 'Doing';
$lang->my->featureBar['project']['wait'] = 'Waiting';
$lang->my->featureBar['project']['suspended'] = 'On Hold';
$lang->my->featureBar['project']['delayed'] = 'Delayed';
$lang->my->featureBar['project']['closed'] = 'Closed';
$lang->my->featureBar['project']['openedbyme'] = 'Created by Me';
$lang->my->featureBar['execution']['undone'] = 'Uncompleted';
$lang->my->featureBar['execution']['done'] = 'Done';
$lang->my->featureBar['execution']['delayed'] = 'Delayed';
$lang->my->featureBar['dynamic']['all'] = 'All';
$lang->my->featureBar['dynamic']['today'] = 'Today';
$lang->my->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->my->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->my->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->my->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->my->featureBar['dynamic']['lastMonth'] = 'Last Month';
$lang->my->featureBar['work']['task']['assignedTo'] = $lang->my->assignedToMe;
$lang->my->featureBar['work']['testcase']['assigntome'] = $lang->my->assignedToMe;
$lang->my->featureBar['work']['testtask']['assignedTo'] = 'Managed by Me';
$lang->my->featureBar['work']['epic'] = $lang->my->featureBar['work']['task'];
$lang->my->featureBar['work']['epic']['reviewBy'] = 'My Pending Review';
$lang->my->featureBar['work']['requirement'] = $lang->my->featureBar['work']['task'];
$lang->my->featureBar['work']['requirement']['reviewBy'] = 'My Pending Review';
$lang->my->featureBar['work']['story'] = $lang->my->featureBar['work']['requirement'];
$lang->my->featureBar['work']['bug'] = $lang->my->featureBar['work']['task'];
$lang->my->featureBar['contribute']['task']['openedBy'] = 'Created by Me';
$lang->my->featureBar['contribute']['task']['finishedBy'] = 'Completed by Me';
$lang->my->featureBar['contribute']['task']['myInvolved'] = 'My Involvement';
$lang->my->featureBar['contribute']['task']['closedBy'] = 'Closed by Me';
$lang->my->featureBar['contribute']['task']['canceledBy'] = 'Cancelled by Me';
$lang->my->featureBar['contribute']['task']['assignedBy'] = 'Assigned by Me';
$lang->my->featureBar['contribute']['epic']['openedBy'] = 'Created by Me';
$lang->my->featureBar['contribute']['epic']['reviewedBy'] = 'Reviewed by Me';
$lang->my->featureBar['contribute']['epic']['closedBy'] = 'Closed by Me';
$lang->my->featureBar['contribute']['epic']['assignedBy'] = 'Assigned by Me';
$lang->my->featureBar['contribute']['requirement']['openedBy'] = 'Created by Me';
$lang->my->featureBar['contribute']['requirement']['reviewedBy'] = 'Reviewed by Me';
$lang->my->featureBar['contribute']['requirement']['closedBy'] = 'Closed by Me';
$lang->my->featureBar['contribute']['requirement']['assignedBy'] = 'Assigned by Me';
$lang->my->featureBar['contribute']['bug']['openedBy'] = 'Created by Me';
$lang->my->featureBar['contribute']['bug']['resolvedBy'] = 'Fixed by Me';
$lang->my->featureBar['contribute']['bug']['closedBy'] = 'Closed by Me';
$lang->my->featureBar['contribute']['bug']['assignedBy'] = 'Assigned by Me';
$lang->my->featureBar['contribute']['story'] = $lang->my->featureBar['contribute']['requirement'];
$lang->my->featureBar['contribute']['testcase']['openedbyme'] = 'Created by Me';
$lang->my->featureBar['contribute']['testtask']['done'] = 'Tested Test Requests';
$lang->my->featureBar['contribute']['audit']['reviewedbyme'] = 'Reviewed by Me';
$lang->my->featureBar['contribute']['audit']['createdbyme'] = 'Created by Me';
$lang->my->featureBar['contribute']['doc']['openedbyme'] = 'Created by Me';
$lang->my->featureBar['contribute']['doc']['editedbyme'] = 'Edited by Me';
$lang->my->featureBar['score']['all'] = 'My Points';
$lang->my->reviewResultList['pass'] = 'Pass';
$lang->my->reviewResultList['fail'] = 'Reject';

View file

@ -0,0 +1,43 @@
<?php
$lang->personnel->common = 'Program Personnel';
$lang->personnel->accessible = 'Acess List';
$lang->personnel->invest = 'Input Resource';
$lang->personnel->department = 'Department';
$lang->personnel->realName = 'Name';
$lang->personnel->userName = 'Account';
$lang->personnel->job = 'Position';
$lang->personnel->genders = 'Gender';
$lang->personnel->project = $lang->projectCommon;
$lang->personnel->search = 'Search';
$lang->personnel->delete = 'Remove';
$lang->personnel->role = 'Role';
$lang->personnel->name = 'User';
$lang->personnel->projects = $lang->projectCommon . 's';
$lang->personnel->executions = 'Executions';
$lang->personnel->workingHours = 'Hours';
$lang->personnel->task = 'Task';
$lang->personnel->bug = 'Bug';
$lang->personnel->createStories = 'Story';
$lang->personnel->risk = 'Risk';
$lang->personnel->issue = 'Issue';
$lang->personnel->invest = 'Input';
$lang->personnel->left = 'Remained';
$lang->personnel->created = 'Created';
$lang->personnel->finished = 'Finished';
$lang->personnel->wait = 'Pending';
$lang->personnel->resolved = 'Resolved';
$lang->personnel->UR = $lang->URCommon;
$lang->personnel->SR = $lang->SRCommon;
$lang->personnel->whitelist = 'Whitelist';
$lang->personnel->addWhitelist = 'Add Whitelist';
$lang->personnel->unbindWhitelist = 'Remove Whitelist';
$lang->personnel->confirmDelete = 'Confirm removal of the user from the whitelist?';
$lang->personnel->copy = 'Copy Whitelist';
$lang->personnel->openedPGMTip = 'The program is public and can be accessed by users with Program privileges.';
$lang->personnel->selectObjectTips = 'Select %s to copy its whitelist';
$lang->personnel->countTip = ' (%s member)';
$lang->personnel->featureBar['whitelist']['all'] = $lang->personnel->whitelist;

8
module/pipeline/lang/ru.php Executable file
View file

@ -0,0 +1,8 @@
<?php
$lang->pipeline->id = 'ID';
$lang->pipeline->name = 'Application Name';
$lang->pipeline->url = 'Server URL';
$lang->pipeline->token = 'Token';
$lang->pipeline->account = 'Username';
$lang->pipeline->password = 'Password';
$lang->pipeline->delError = 'The server has some repos, please delete them and operate';

506
module/pivot/lang/ru.php Normal file
View file

@ -0,0 +1,506 @@
<?php
/**
* The pivot module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package pivot
* @version $Id: de.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->pivot->index = 'Home';
$lang->pivot->list = 'Liste';
$lang->pivot->preview = 'View pivot table';
$lang->pivot->create = 'Create pivot table';
$lang->pivot->edit = 'Edit pivot table';
$lang->pivot->browse = 'Browse pivot table';
$lang->pivot->delete = 'Delete pivot table';
$lang->pivot->design = 'Design pivot table';
$lang->pivot->export = 'Export pivot table';
$lang->pivot->query = 'Query';
$lang->pivot->browseAction = 'Design in Pivot Table';
$lang->pivot->designAB = 'Design';
$lang->pivot->exportType = 'Export Type';
$lang->pivot->exportRange = 'Export Range';
$lang->pivot->story = 'Story';
$lang->pivot->clear = 'Clear';
$lang->pivot->keep = 'Keep';
$lang->pivot->new = 'New';
$lang->pivot->newVersion = 'New version';
$lang->pivot->version = 'Version';
$lang->pivot->viewVersion = 'View version';
$lang->pivot->accessDenied = 'You do not have access to this pivot';
$lang->pivot->acl = 'Access Control';
$lang->pivot->aclList['open'] = 'Public (with pivot view permissions and dimension permissions can access it)';
$lang->pivot->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)';
$lang->pivot->otherLang = new stdclass();
$lang->pivot->otherLang->product = 'Product';
$lang->pivot->otherLang->productStatus = 'Product Status';
$lang->pivot->otherLang->productType = 'Product type';
$lang->pivot->cancelAndBack = 'Cancel save and back';
$lang->pivot->deleteTip = 'Are you sure you want to delete it ?';
$lang->pivot->disableVersionTip = 'The pivot table in draft mode does not support the version list popup at the moment.';
$lang->pivot->rangeList['current'] = 'Current Page';
$lang->pivot->rangeList['all'] = 'All Data';
$lang->pivot->id = 'ID';
$lang->pivot->name = 'Name';
$lang->pivot->dataset = 'Dataset';
$lang->pivot->dataview = 'Data';
$lang->pivot->type = 'Type';
$lang->pivot->config = 'Config parameter';
$lang->pivot->desc = 'Description';
$lang->pivot->xaxis = 'Xaxis';
$lang->pivot->yaxis = 'Yaxis';
$lang->pivot->group = 'Group';
$lang->pivot->metric = 'Metric';
$lang->pivot->column = 'Column';
$lang->pivot->field = 'Related Field';
$lang->pivot->operator = 'Operator';
$lang->pivot->orderby = 'Order by';
$lang->pivot->order = 'Order';
$lang->pivot->add = 'Add';
$lang->pivot->valOrAgg = 'Value/Aggregate';
$lang->pivot->value = 'Value';
$lang->pivot->agg = 'Aggregate';
$lang->pivot->display = 'Display Name';
$lang->pivot->filterValue = 'Filter value';
$lang->pivot->save = 'Save';
$lang->pivot->cancel = 'Cancel';
$lang->pivot->run = 'RUN QUERY';
$lang->pivot->must = 'Please select';
$lang->pivot->split = 'Split';
$lang->pivot->chooseField = 'Choose field';
$lang->pivot->aggType = 'Aggregate type';
$lang->pivot->other = 'Other';
$lang->pivot->publish = 'Release';
$lang->pivot->draft = 'Save as draft';
$lang->pivot->draftIcon = 'draft';
$lang->pivot->nextStep = 'Next step';
$lang->pivot->saveSetting = 'Save setting';
$lang->pivot->add = 'Add';
$lang->pivot->baseSetting = 'Base setting';
$lang->pivot->setLang = 'Set Langs';
$lang->pivot->toDesign = 'To Design';
$lang->pivot->toPreview = 'Exit Design';
$lang->pivot->variable = 'Variable';
$lang->pivot->varCode = 'Code';
$lang->pivot->varLabel = 'Var Label';
$lang->pivot->monopolize = 'Self';
$lang->pivot->varNameTip = 'Input letters';
$lang->pivot->item = 'Eintrag';
$lang->pivot->percent = '%';
$lang->pivot->undefined = 'Undefiniert';
$lang->pivot->project = $lang->projectCommon;
$lang->pivot->PO = 'PO';
$lang->pivot->showPivot = 'Show Pivot table';
$lang->pivot->showOrigin = 'Show Origin Data';
$lang->pivot->empty = 'Empty';
$lang->pivot->showOriginItem = 'Show origin item';
$lang->pivot->recTotalTip = '<strong> %s </strong> items in total';
$lang->pivot->recPerPageTip = " <strong>%s</strong> per page";
$lang->pivot->showOriginPlaceholder = new stdclass();
$lang->pivot->showOriginPlaceholder->slice = 'No need to configure';
$lang->pivot->showOriginPlaceholder->stat = 'No need to configure';
$lang->pivot->showOriginPlaceholder->showMode = 'No need to configure';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->colors[] = 'AFD8F8';
$lang->pivot->assign['noassign'] = 'Unassigned';
$lang->pivot->assign['assign'] = 'Assigned';
$lang->pivot->singleColor[] = 'F6BD0F';
$lang->pivot->projectDeviation = "{$lang->execution->common} Deviation";
$lang->pivot->productSummary = $lang->productCommon . ' Summary';
$lang->pivot->bugCreate = 'Bug Reported Summary';
$lang->pivot->bugAssign = 'Bug Assigned Summary';
$lang->pivot->workload = 'Team Workload Summary';
$lang->pivot->workloadAB = 'Workload';
$lang->pivot->bugOpenedDate = 'Bug reported from';
$lang->pivot->beginAndEnd = ' From';
$lang->pivot->begin = ' Begin';
$lang->pivot->end = ' End';
$lang->pivot->dept = 'Department';
$lang->pivot->deviationChart = "{$lang->projectCommon} Deviation Chart";
$lang->pivotList = new stdclass();
$lang->pivotList->product = new stdclass();
$lang->pivotList->project = new stdclass();
$lang->pivotList->test = new stdclass();
$lang->pivotList->staff = new stdclass();
$lang->pivotList->product->lists[10] = $lang->productCommon . ' Summary|pivot|productsummary';
$lang->pivotList->project->lists[10] = "{$lang->execution->common} Deviation|pivot|projectdeviation";
$lang->pivotList->test->lists[10] = 'Bug Reported Summary|pivot|bugcreate';
$lang->pivotList->test->lists[13] = 'Bug Assigned Summary|pivot|bugassign';
$lang->pivotList->staff->lists[10] = 'Team Workload Summary|pivot|workload';
$lang->pivot->id = 'ID';
$lang->pivot->execution = $lang->executionCommon;
$lang->pivot->product = $lang->productCommon;
$lang->pivot->user = 'User';
$lang->pivot->bugTotal = 'Bug';
$lang->pivot->task = 'Task';
$lang->pivot->estimate = 'Estimates';
$lang->pivot->consumed = 'Cost';
$lang->pivot->remain = 'Left';
$lang->pivot->deviation = 'Deviation';
$lang->pivot->deviationRate = 'Deviation Rate';
$lang->pivot->total = 'Total';
$lang->pivot->to = 'to';
$lang->pivot->taskTotal = "Total Tasks";
$lang->pivot->manhourTotal = "Total Hours";
$lang->pivot->validRate = "Valid Rate";
$lang->pivot->validRateTips = "Resolution is Resolved/Postponed or status is Resolved/Closed.";
$lang->pivot->unplanned = 'Unplanned';
$lang->pivot->workday = 'Hours/Day';
$lang->pivot->diffDays = 'days';
$lang->pivot->typeList['default'] = 'Default';
$lang->pivot->typeList['pie'] = 'Pie';
$lang->pivot->typeList['bar'] = 'Bar';
$lang->pivot->typeList['line'] = 'Line';
$lang->pivot->conditions = 'Filter by:';
$lang->pivot->closedProduct = 'Closed ' . $lang->productCommon . 's';
$lang->pivot->overduePlan = 'Expired Plans';
$lang->pivot->idAB = 'ID';
$lang->pivot->bugTitle = 'Bug Name';
$lang->pivot->taskName = 'Task Name';
$lang->pivot->todoName = 'To-do Name';
$lang->pivot->testTaskName = 'Request Name';
$lang->pivot->deadline = 'Deadline';
$lang->pivot->deviationDesc = 'According to the Closed Execution Deviation Rate = ((Total Cost - Total Estimate) / Total Estimate), the Deviation Rate is n/a when the Total Estimate is 0.';
$lang->pivot->workloadDesc = 'Workload = the total left hours of all tasks of the user / selected days * hours per day. For example: the begin and end date is January 1st to January 7th, and the total work days is 5 days, 8 hours per day. The Work load is all unfinished tasks assigned to this user to be finished in 5 days, 8 hours per day.';
$lang->pivot->featureBar = array();
$lang->pivot->featureBar['preview'] = array();
$lang->pivot->moreSelects['preview'] = array();
$lang->pivot->moreSelects['preview']['more'] = array();
$lang->pivot->showProduct = 'All' . $lang->productCommon . 'Statistics';
$lang->pivot->showProject = 'All' . $lang->projectCommon . 'Statistics';
$lang->pivot->columnIndex = 'col.%s';
$lang->pivot->deleteColumn = 'Are you sure to delete this column?';
$lang->pivot->addColumn = 'Add column';
$lang->pivot->slice = 'Select slice field';
$lang->pivot->stat = 'Calculate value';
$lang->pivot->showMode = 'Display value';
$lang->pivot->showTotal = 'Display row sum';
$lang->pivot->colLabel = '{$stat} of {$field}';
$lang->pivot->colShowMode = ' (%s)';
$lang->pivot->errorList = new stdclass();
$lang->pivot->errorList->cantequal = '%s can not be equal to the %s, please redesign';
$lang->pivot->pie = new stdclass();
$lang->pivot->pie->group = 'Section group';
$lang->pivot->pie->metric = 'Section numeric';
$lang->pivot->pie->stat = 'Aggregate type';
$lang->pivot->cluBarX = new stdclass();
$lang->pivot->cluBarX->xaxis = 'Xaxis';
$lang->pivot->cluBarX->yaxis = 'Yaxis';
$lang->pivot->cluBarX->stat = 'Aggregate type';
$lang->pivot->cluBarY = new stdclass();
$lang->pivot->cluBarY->yaxis = 'Xaxis';
$lang->pivot->cluBarY->xaxis = 'Yaxis';
$lang->pivot->cluBarY->stat = 'Aggregate type';
$lang->pivot->radar = new stdclass();
$lang->pivot->radar->xaxis = 'Dimension';
$lang->pivot->radar->yaxis = 'Polar axis';
$lang->pivot->line = $lang->pivot->cluBarX;
$lang->pivot->stackedBar = $lang->pivot->cluBarX;
$lang->pivot->stackedBarY = $lang->pivot->cluBarY;
$lang->pivot->browseGroup = 'Manage Group';
$lang->pivot->allGroup = 'All Group';
$lang->pivot->noGroup = 'No Group';
$lang->pivot->groupName = 'GroupName';
$lang->pivot->manageGroup = 'Manage Group';
$lang->pivot->dragAndSort = 'Drag to order';
$lang->pivot->editGroup = 'Edit Group';
$lang->pivot->deleteGroup = 'Delete Group';
$lang->pivot->childTitle = 'Child Group';
$lang->pivot->filter = 'Filter';
$lang->pivot->resultFilter = 'Result Filter';
$lang->pivot->queryFilter = 'Query Filter';
$lang->pivot->noName = 'Unnamed';
$lang->pivot->filterName = 'Name';
$lang->pivot->showAs = 'Show as';
$lang->pivot->default = 'Default';
$lang->pivot->unlimited = 'Unlimited';
$lang->pivot->colon = 'To';
$lang->pivot->legendBasicInfo = 'Basic info';
$lang->pivot->legendConfig = 'Global Setting';
$lang->pivot->fieldTypeList = array();
$lang->pivot->fieldTypeList['input'] = 'Text';
$lang->pivot->fieldTypeList['date'] = 'Date';
$lang->pivot->fieldTypeList['datetime'] = 'Time';
$lang->pivot->fieldTypeList['select'] = 'Dropdown';
$lang->pivot->count = 'Count';
$lang->pivot->project = 'Project';
$lang->pivot->customer = 'Customer';
$lang->pivot->cusBuild = 'Customer Build';
$lang->pivot->period = 'Period';
$lang->pivot->purpose = 'Purpose';
$lang->pivot->stage = 'Stage';
$lang->pivot->users = 'Users';
$lang->pivot->testtasks = 'Testtasks';
$lang->pivot->comment = 'Comment';
$lang->pivot->major = 'Major';
$lang->pivot->conclusion = 'Conclusion';
$lang->pivot->result = 'Result';
$lang->pivot->caseCount = 'Cases';
$lang->pivot->runCount = 'Run';
$lang->pivot->runRate = 'Run Rate';
$lang->pivot->manpower = 'Manpower';
$lang->pivot->bugs = 'Bugs';
$lang->pivot->day = 'Day';
$lang->pivot->reportDate = 'Report Date';
$lang->pivot->hours = 'Hours';
$lang->pivot->pastDays = 'Past Days';
$lang->pivot->saveAsDataview = 'Save as Custom Table';
$lang->pivot->confirmDelete = 'Do you want to delete this pivot table?';
$lang->pivot->confirmLeave = 'The current step is not saved. Are you sure you want to leave?';
$lang->pivot->nameEmpty = '『Name』should not be blank';
$lang->pivot->notEmpty = 'Can\'t be empty.';
$lang->pivot->noPivotTip = 'After you save the Settings, you can display the pivot table';
$lang->pivot->filterEmptyVal = 'Use filters to view data';
$lang->pivot->noQueryTip = 'No filter.';
$lang->pivot->noPivot = 'No Pivot table';
$lang->pivot->noDrillTip = 'No Data Drill.';
$lang->pivot->dataError = '"%s" is not valid';
$lang->pivot->noChartSelected = 'Please select one pivot table.';
$lang->pivot->beginGtEnd = 'Begin time should not be >= end time.';
$lang->pivot->resetSettings = 'The configuration of the query data has been modified, requiring redesign of the pivot table, whether to continue.';
$lang->pivot->clearSettings = 'The configuration of the query data has been modified, whether to clear the pivot table and save.';
$lang->pivot->draftSave = 'The pivot table has been published and will be in draft state. Do you want to continue?';
$lang->pivot->cannotAddQuery = 'Result filter has been added, query filter cannot be added.';
$lang->pivot->cannotAddResult = 'Query filter has been added, result filter cannot be added.';
$lang->pivot->cannotNextStep = 'Please click Query Update data before proceeding to the next step.';
//$lang->pivot->cannotAddDrill = 'GROUP BY exists in the query statement or filters are configured. Therefore, data cannot be configured to drill down';
$lang->pivot->permissionDenied = 'The %s directory does not have enough permissions. Run chmod 777 %s to change the permissions.';
$lang->pivot->drillModalTip = <<<EOT
1. Select the columns to be drilled and the target objects to be drilled. The system automatically generates SQL statements based on your selection.
2. Adjust the automatically generated SQL statement according to the query statement displayed in the gray panel below (the SQL query statement in the first step [Query data]), and configure the corresponding query conditions.
3. Click Preview to view the drill-down data for your configuration.
4. Click Save to complete the drill down configuration.
EOT;
$lang->pivot->drillConditionTip = <<<EOT
1.Configure search conditions based on the row group field and slice column field configured in Step 2 and the filter field configured in Step 3.
2.The query result field drop-down list displays the result set field in Query Data in the first step.
EOT;
$lang->pivot->step1QueryTip = 'For subsequent configuration data, ensure that the id field of the query object is included in the query result set.';
$lang->pivot->drillingTip = 'The system will automatically configure some drilling columns for you and display them here. You can check and adjust them, or add data drilling configuration for other columns.';
$lang->pivot->queryConditionTip = 'According to the SQL in Step 1, adjust the query conditions in drill down; Ensure that the id field of the query object is included in the query result set to display the drill down content correctly.';
$lang->pivot->drillSQLTip = 'You can copy the query from step 1 on the right here and modify it';
$lang->pivot->drillResultEmptyTip = 'Click the "preview" button, you can view the drill down results here.';
$lang->pivot->previewResultTip = 'The drill results will display the object-related fields, and only 10 rows of data are displayed by default.';
$lang->pivot->emptyDrillTip = 'Empty drill data';
$lang->pivot->emptyGroupError = 'The group cannot be empty.';
$lang->pivot->emptyColumnFieldError = 'Column fields cannot be null.';
$lang->pivot->emptyColumnStatError = 'The calculation mode cannot be null.';
$lang->pivot->confirm = new stdclass();
$lang->pivot->confirm->design = 'This pivot table is referenced by a published screen. Do you want to continue?';
$lang->pivot->confirm->publish = 'This pivot table is referenced by a published screen and will be displayed as a modified pivot table after publication. Do you want to continue?';
$lang->pivot->confirm->draft = 'This pivot table is referenced by a published screen and will be displayed as prompts on the large screen after being saved as a draft. Do you want to continue?';
$lang->pivot->confirm->delete = 'This pivot table is referenced by a published screen and will be displayed as prompts on the large screen after deletion. Do you want to continue?';
$lang->pivot->orderList = array();
$lang->pivot->orderList['asc'] = 'ASC';
$lang->pivot->orderList['desc'] = 'DESC';
$lang->pivot->typeList = array();
$lang->pivot->typeList['pie'] = 'Pie';
$lang->pivot->typeList['line'] = 'Line';
$lang->pivot->typeList['radar'] = 'Radar';
$lang->pivot->typeList['cluBarY'] = 'clustered Bar Y';
$lang->pivot->typeList['stackedBarY'] = 'stacked Bar Y';
$lang->pivot->typeList['cluBarX'] = 'clustered Bar X';
$lang->pivot->typeList['stackedBar'] = 'stacked Bar';
$lang->pivot->aggList = array();
$lang->pivot->aggList['count'] = 'COUNT';
$lang->pivot->aggList['avg'] = 'AVG';
$lang->pivot->aggList['sum'] = 'SUM';
$lang->pivot->operatorList = array();
$lang->pivot->operatorList['='] = '=';
$lang->pivot->operatorList['!='] = '!=';
$lang->pivot->operatorList['<'] = '<';
$lang->pivot->operatorList['>'] = '>';
$lang->pivot->operatorList['<='] = '<=';
$lang->pivot->operatorList['>='] = '>=';
$lang->pivot->operatorList['in'] = 'IN';
$lang->pivot->operatorList['notin'] = 'NOT IN';
$lang->pivot->operatorList['notnull'] = 'IS NOT NULL';
$lang->pivot->operatorList['null'] = 'IS NULL';
$lang->pivot->dateList = array();
$lang->pivot->dateList['day'] = 'DAY';
$lang->pivot->dateList['week'] = 'WEEK';
$lang->pivot->dateList['month'] = 'MONTH';
$lang->pivot->dateList['year'] = 'YEAR';
$lang->pivot->designStepNav = array();
$lang->pivot->designStepNav['query'] = 'Query Data';
$lang->pivot->designStepNav['design'] = 'Design table';
$lang->pivot->designStepNav['drill'] = 'Data Drilling';
$lang->pivot->designStepNav['filter'] = 'Set Filter';
$lang->pivot->designStepNav['publish'] = 'Release';
$lang->pivot->nextButton = array();
$lang->pivot->nextButton['query'] = 'To Design';
$lang->pivot->nextButton['design'] = 'To Drilling';
$lang->pivot->nextButton['drill'] = 'To Configurate';
$lang->pivot->nextButton['filter'] = 'To Release';
$lang->pivot->nextButton['publish'] = 'Release';
$lang->pivot->displayList = array();
$lang->pivot->displayList['value'] = 'Display value';
$lang->pivot->displayList['percent'] = 'Percentage';
$lang->pivot->typeOptions = array();
$lang->pivot->typeOptions['user'] = 'User';
$lang->pivot->typeOptions['product'] = 'Product';
$lang->pivot->typeOptions['project'] = 'Project';
$lang->pivot->typeOptions['execution'] = 'Execution';
$lang->pivot->typeOptions['dept'] = 'Dept';
$lang->pivot->stepDesign = new stdclass();
$lang->pivot->stepDesign->group = 'Row Grouping';
$lang->pivot->stepDesign->summary = 'Summary Setting';
$lang->pivot->stepDesign->column = 'Column Settings';
$lang->pivot->stepDesign->groupTip = 'Select Field';
$lang->pivot->stepDesign->groupNum = array('One', 'Two', 'Three');
$lang->pivot->stepDesign->selectField = 'Select field';
$lang->pivot->stepDesign->selectStat = 'Selective statistical method';
$lang->pivot->stepDesign->add = 'Add';
$lang->pivot->stepDesign->delete = 'Delete';
$lang->pivot->stepDesign->groupField = 'Grouping field';
$lang->pivot->stepDesign->columnField = 'Field';
$lang->pivot->stepDesign->stat = 'Calc Mode';
$lang->pivot->stepDesign->moreThanOne = 'Select at least one group field.';
$lang->pivot->stepDesign->summaryTip = 'After this parameter is selected, you can configure Row Grouping, Column Settings, and Show column totals';
$lang->pivot->stepDesign->groupsTip = 'By selecting a grouping field, the data of the SQL query is grouped and displayed hierarchically in the pivot table.';
$lang->pivot->stepDesign->columnsTip = 'Add 1 column to the pivot table and set it.';
$lang->pivot->stepDesign->columnTotal = 'Show column totals';
$lang->pivot->stepDesign->columnCalc = 'Summary calculation';
$lang->pivot->stepDesign->columnPosition = 'Summary position';
$lang->pivot->stepDesign->columnTotalTip = 'Add a row to display the summary data for each column.';
$lang->pivot->stepDesign->total = 'Total';
$lang->pivot->stepDesign->columnPositionList = array();
$lang->pivot->stepDesign->columnPositionList['bottom'] = 'Display on table bottom';
$lang->pivot->stepDesign->columnPositionList['row'] = 'Display on row group';
$lang->pivot->stepDesign->columnPositionList['all'] = 'Display on row group and table bottom';
$lang->pivot->stepDesign->columnTotalList = array();
$lang->pivot->stepDesign->columnTotalList['noShow'] = 'No Show';
$lang->pivot->stepDesign->columnTotalList['sum'] = 'Sum';
$lang->pivot->stepDesign->sliceFieldList = array();
$lang->pivot->stepDesign->sliceFieldList['noSlice'] = 'No slicing';
$lang->pivot->stepDesign->showModeList = array();
$lang->pivot->stepDesign->showModeList['default'] = 'Default (numeric value)';
$lang->pivot->stepDesign->showModeList['total'] = 'Percentage of Total';
$lang->pivot->stepDesign->showModeList['row'] = 'Percentage of row totals';
$lang->pivot->stepDesign->showModeList['column'] = 'Column Total Percentage';
$lang->pivot->stepDesign->showTotalList = array();
$lang->pivot->stepDesign->showTotalList['noShow'] = 'Do not display';
$lang->pivot->stepDesign->showTotalList['sum'] = 'Sum';
$lang->pivot->stepDesign->statList = array();
$lang->pivot->stepDesign->statList[''] = '';
$lang->pivot->stepDesign->statList['count'] = 'Count';
$lang->pivot->stepDesign->statList['distinct'] = 'Count After Distinct';
$lang->pivot->stepDesign->statList['avg'] = 'Average';
$lang->pivot->stepDesign->statList['sum'] = 'Sum';
$lang->pivot->stepDesign->statList['max'] = 'Max';
$lang->pivot->stepDesign->statList['min'] = 'Min';
$lang->pivot->stepDrill = new stdclass();
$lang->pivot->stepDrill->drill = 'Data Drill';
$lang->pivot->stepDrill->addDrill = 'Data Drill';
$lang->pivot->stepDrill->drillView = 'Drill View';
$lang->pivot->stepDrill->fieldEmpty = 'Field can not be empty';
$lang->pivot->stepDrill->objectEmpty = 'Object can not be empty';
$lang->pivot->stepDrill->drillEmpty = 'Drill Field can not be empty';
$lang->pivot->stepDrill->queryEmpty = 'Query Field can not be empty';
$lang->datepicker->dpText->TEXT_WEEK_MONDAY = 'Monday';
$lang->datepicker->dpText->TEXT_WEEK_SUNDAY = 'Sunday';
$lang->datepicker->dpText->TEXT_MONTH_BEGIN = 'Begin Month';
$lang->datepicker->dpText->TEXT_MONTH_END = 'End Month';
$lang->pivot->drill = new stdclass();
$lang->pivot->drill->common = 'Data Drill';
$lang->pivot->drill->drillCondition = 'Drill Condition';
$lang->pivot->drill->drillResult = 'Drill Result';
$lang->pivot->drill->selectField = 'Drill Field';
$lang->pivot->drill->selectObject = 'Link Object';
$lang->pivot->drill->setCondition = 'Set Drill Condition';
$lang->pivot->drill->equal = '=';
$lang->pivot->drill->inDrillField = 'Drill table field';
$lang->pivot->drill->inQueryField = 'Query field';
$lang->pivot->drill->preview = 'Preview';
$lang->pivot->drill->save = 'Save';
$lang->pivot->drill->drillFieldText = "%s(%s).%s";
$lang->pivot->drill->storyName = 'Story Name';
$lang->pivot->drill->releaseStories = "Finished Stories";
$lang->pivot->drill->productName = "Product Name";
$lang->pivot->drill->activatedBug = "Activated Bug Count";
$lang->pivot->drill->auto = "Auto";
$lang->pivot->drill->designChangedTip = 'Setting columns field change, please check';
$lang->pivot->versionNumber = 'Version';
$lang->pivot->versionDesc = 'Desc';
$lang->pivot->tipNewVersion = 'Has New Version!';
$lang->pivot->checkNewVersion = 'Click to check';
$lang->pivot->tipVersions = 'This is the pivot of this version. You can click the button to switch version. the pivot and designer config will be changed after switch version.';
$lang->pivot->tipNoVersions = 'There are no other versions of this pivot';
$lang->pivot->switchTo = 'Switch To This Version';
$lang->pivot->noDesc = 'No Description';

304
module/product/lang/ru.php Normal file
View file

@ -0,0 +1,304 @@
<?php
/**
* The product module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package product
* @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->product->index = $lang->productCommon . ' Home';
$lang->product->browse = 'Story List';
$lang->product->requirement = 'Feature List';
$lang->product->epic = "Epic List";
$lang->product->dynamic = 'Recents';
$lang->product->view = "{$lang->productCommon} Overview";
$lang->product->edit = "Edit {$lang->productCommon}";
$lang->product->batchEdit = 'Batch Edit';
$lang->product->create = "Create {$lang->productCommon}";
$lang->product->delete = "Delete {$lang->productCommon}";
$lang->product->deleted = 'Deleted';
$lang->product->close = "Close";
$lang->product->activate = 'Activate';
$lang->product->select = "Select {$lang->productCommon}";
$lang->product->mine = 'Managed by Me';
$lang->product->other = 'Others';
$lang->product->closed = 'Closed';
$lang->product->closedProducts = "Closed {$lang->productCommon}s";
$lang->product->updateOrder = 'Sort';
$lang->product->all = "{$lang->productCommon} List";
$lang->product->involved = "My Involvement";
$lang->product->manageLine = "Manage Product Line";
$lang->product->newLine = "Create Product Line";
$lang->product->export = 'Export';
$lang->product->dashboard = "Overview";
$lang->product->changeProgram = "Please confirm the impact of changing the {$lang->productCommon}s associated program.";
$lang->product->changeProgramTip = "%s > Change Program";
$lang->product->selectProgram = 'Filter Programs';
$lang->product->addWhitelist = 'Add Whitelist';
$lang->product->unbindWhitelist = 'Remove Whitelist';
$lang->product->track = 'RTM';
$lang->product->checkedProducts = "%s {$lang->productCommon}s selected";
$lang->product->pageSummary = "%s {$lang->productCommon}s on this page.";
$lang->product->lineSummary = "%s product lines and %s {$lang->productCommon}s on this page.";
$lang->product->noData = 'No data available.';
$lang->product->indexAction = "All {$lang->productCommon}";
$lang->product->closeAction = "Close {$lang->productCommon}";
$lang->product->activateAction = "Activate {$lang->productCommon}";
$lang->product->orderAction = "Sort {$lang->productCommon}s";
$lang->product->exportAction = "Export {$lang->productCommon}";
$lang->product->link2Project = "Link {$lang->projectCommon}";
$lang->product->basicInfo = 'Basic Info';
$lang->product->otherInfo = 'Other Info';
$lang->product->plans = 'Plans';
$lang->product->releases = 'Releases';
$lang->product->docs = 'Docs';
$lang->product->bugs = 'Linked Bugs';
$lang->product->projects = "Linked {$lang->projectCommon}s";
$lang->product->executions = "Linked {$lang->execution->common}s";
$lang->product->cases = 'Test Cases';
$lang->product->builds = 'Builds';
$lang->product->roadmap = "{$lang->productCommon} Roadmap";
$lang->product->doc = "{$lang->productCommon} Documents";
$lang->product->project = $lang->projectCommon . ' List';
$lang->product->moreProduct = "More {$lang->productCommon}";
$lang->product->projectInfo = "All {$lang->projectCommon}s I am involved in that are linked to this {$lang->productCommon}.";
$lang->product->progress = "Progress";
$lang->product->currentExecution = "Current Execution";
$lang->product->activeStories = "Activate {$lang->SRCommon}";
$lang->product->activeStoriesTitle = "Activate {$lang->SRCommon}";
$lang->product->changingStories = "Changing {$lang->SRCommon}";
$lang->product->changingStoriesTitle = "Changing {$lang->SRCommon}";
$lang->product->changedStories = "Changed {$lang->SRCommon}";
$lang->product->changedStoriesTitle = "Changed {$lang->SRCommon}";
$lang->product->draftStories = "Draft {$lang->SRCommon}";
$lang->product->draftStoriesTitle = 'Draft Stories';
$lang->product->reviewingStories = "Reviewing {$lang->SRCommon}";
$lang->product->reviewingStoriesTitle = "Reviewing Stories";
$lang->product->finishedStories = "Completed {$lang->SRCommon}";
$lang->product->finishedStoriesTitle = "Completed {$lang->SRCommon}";
$lang->product->closedStories = "Closed {$lang->SRCommon}";
$lang->product->closedStoriesTitle = 'Closed Stories';
$lang->product->storyCompleteRate = "{$lang->SRCommon} Completion %";
$lang->product->totalStories = "Total Stories";
$lang->product->activeRequirements = "Active {$lang->URCommon}";
$lang->product->changingRequirements = "Changing {$lang->URCommon}";
$lang->product->changedRequirements = "Changed {$lang->URCommon}";
$lang->product->draftRequirements = "Draft {$lang->URCommon}";
$lang->product->reviewingRequirements = "Reviewing {$lang->URCommon}";
$lang->product->finishedRequirements = "Completed {$lang->URCommon}";
$lang->product->closedRequirements = "Closed {$lang->URCommon}";
$lang->product->requirementCompleteRate = "{$lang->URCommon} Completion %";
$lang->product->totalRequirements = "Total {$lang->URCommon}s";
$lang->product->activeEpics = "Active {$lang->ERCommon}";
$lang->product->changingEpics = "Changing {$lang->ERCommon}";
$lang->product->changedEpics = "Changed {$lang->ERCommon}";
$lang->product->draftEpics = "Draft {$lang->ERCommon}";
$lang->product->reviewingEpics = "Reviewing {$lang->ERCommon}";
$lang->product->finishedEpics = "Completed {$lang->ERCommon}";
$lang->product->closedEpics = "Closed {$lang->ERCommon}";
$lang->product->epicCompleteRate = "{$lang->ERCommon} Completion %";
$lang->product->totalEpics = "Total {$lang->ERCommon}s";
$lang->product->unresolvedBugs = 'Unfixed Bugs';
$lang->product->unresolvedBugsTitle = 'Unfixed Bugs';
$lang->product->assignToNullBugs = 'Unassigned Bugs';
$lang->product->assignToNullBugsTitle = 'Unassigned Bugs';
$lang->product->fixedBugs = 'Fixed Bugs';
$lang->product->closedBugs = 'Closed Bugs';
$lang->product->bugFixedRate = 'Fix Rate';
$lang->product->unfoldClosed = 'Show Closed';
$lang->product->totalBugs = 'Total Bugs';
$lang->product->storyDeliveryRate = "Story Delivery %";
$lang->product->storyDeliveryRateTip = "Story Delivery % = (Stories in Released phase or Closed as Done) / (Total Stories - Stories Closed for other reasons) * 100%";
$lang->product->confirmDelete = "Are you sure you want to delete this {$lang->productCommon}?";
$lang->product->errorNoProduct = "No {$lang->productCommon} created yet.";
$lang->product->accessDenied = "You do not have permission to access this {$lang->productCommon}.";
$lang->product->notExists = "This {$lang->productCommon} does not exist.";
$lang->product->programChangeTip = "The following {lang->projectCommon} is only linked to this { lang->productCommon} and will be moved directly to the new program.";
$lang->product->notChangeProgramTip = "The {lang->SRCommon} of this { lang->productCommon} are linked to the following {lang->projectCommon}. Please click the { lang->projectCommon} name to access the {$lang->SRCommon} list and unlink them before proceeding.";
$lang->product->confirmChangeProgram = "The following {lang->projectCommon} are linked to both this { lang->productCommon} and other {lang->productCommon}. If you choose to continue linking to this { lang->productCommon}, links to other {$lang->productCommon} will be removed and they will be moved to the new program.";
$lang->product->changeProgramError = "The {lang->SRCommon} of this { lang->productCommon} are linked to {$lang->projectCommon}. Please unlink them before proceeding.";
$lang->product->changeLineError = "The product line [%s] already contains {$lang->productCommon}. The program cannot be changed.";
$lang->product->programEmpty = 'Program should not be empty!';
$lang->product->nameIsDuplicate = "The product line [%s] already exists. Please set a new one.";
$lang->product->nameIsDuplicated = "The product line already contains a record named [%s]. If you are sure it has been deleted, please restore it from Admin>System>Trash.";
$lang->product->reviewStory = 'You are not a reviewer for %s, so you cannot perform the review. This operation has been ignored.';
$lang->product->confirmDeleteLine = "Are you sure you want to delete this product line?";
$lang->product->lineChangeProgram = "This product line is already linked to {$lang->productCommon}. After changing the associated program, all {$lang->productCommon} under it will be updated to the new program as well.";
$lang->product->id = 'ID';
$lang->product->program = "Program";
$lang->product->name = "{$lang->productCommon} Name";
$lang->product->code = 'Code';
$lang->product->shadow = "Shadow {$lang->productCommon}";
$lang->product->line = "Product Line";
$lang->product->lineName = "Product Line Name";
$lang->product->order = 'Sort';
$lang->product->bind = "Independent {$lang->productCommon}";
$lang->product->type = "{$lang->productCommon} Type";
$lang->product->typeAB = 'Type';
$lang->product->status = 'Status';
$lang->product->subStatus = 'Substatus';
$lang->product->desc = 'Description';
$lang->product->manager = 'Managers';
$lang->product->PO = "{$lang->productCommon} Owner";
$lang->product->QD = 'Test Manager';
$lang->product->RD = 'Release Manager';
$lang->product->feedback = 'Feedback Manger';
$lang->product->ticket = 'Ticket Manager';
$lang->product->acl = 'Access Control';
$lang->product->reviewer = 'Reviewer';
$lang->product->groups = 'Permission Group';
$lang->product->users = 'Users';
$lang->product->whitelist = 'Whitelist';
$lang->product->branch = '%s';
$lang->product->qa = 'Test';
$lang->product->release = 'Release';
$lang->product->allRelease = 'All Releases';
$lang->product->maintain = 'Under Maintenance';
$lang->product->latestDynamic = 'Recents';
$lang->product->plan = 'Plan';
$lang->product->iteration = 'Sprints';
$lang->product->iterationInfo = '%s Sprints';
$lang->product->iterationView = 'More';
$lang->product->createdBy = 'Creator';
$lang->product->createdDate = 'Created on';
$lang->product->createdVersion = 'Create Version';
$lang->product->closedDate = 'Closed on';
$lang->product->mailto = 'Mail to';
$lang->product->vision = 'Interface';
$lang->product->searchStory = 'Search';
$lang->product->assignedToMe = 'Assigned to Me';
$lang->product->openedByMe = 'Created by Me';
$lang->product->reviewedByMe = 'Reviewed by Me';
$lang->product->reviewByMe = 'My Pending Review';
$lang->product->closedByMe = 'Closed by Me';
$lang->product->draftStory = 'Draft';
$lang->product->activeStory = 'Activate';
$lang->product->changingStory = 'Changing';
$lang->product->reviewingStory = 'Reviewing';
$lang->product->willClose = 'To Be Closed';
$lang->product->closedStory = 'Closed';
$lang->product->unclosed = 'Open';
$lang->product->unplan = 'Unplanned';
$lang->product->viewByUser = 'By User';
$lang->product->assignedByMe = 'Assigned by Me';
/* Product Kanban. */
$lang->product->myProduct = "{$lang->productCommon}s Owned by Me";
$lang->product->otherProduct = "Other {$lang->productCommon}s";
$lang->product->unclosedProduct = "Open {$lang->productCommon}s";
$lang->product->unexpiredPlan = 'Unexpired Plans';
$lang->product->doing = 'Doing';
$lang->product->doingProject = "Ongoing {$lang->projectCommon}s";
$lang->product->doingExecution = 'Ongoing Executions';
$lang->product->doingClassicExecution = 'Ongoing ' . $lang->executionCommon;
$lang->product->normalRelease = 'Standard Releases';
$lang->product->emptyProgram = "Independent {$lang->productCommon}s";
$lang->product->allStory = 'All ';
$lang->product->allProduct = 'All';
$lang->product->allProductsOfProject = 'All Linked ' . $lang->productCommon;
$lang->product->typeList[''] = '';
$lang->product->typeList['normal'] = 'Standard';
$lang->product->typeList['branch'] = 'Multi-Branch';
$lang->product->typeList['platform'] = 'Multi-Platform';
$lang->product->typeTips = array();
$lang->product->typeTips['branch'] = '(Suitable for customer customization scenarios. e.g. Outsorcing teams.)';
$lang->product->typeTips['platform'] = '(Suitable for cross-platform application development. e.g. iOS, Android, PC, etc.)';
$lang->product->branchName['normal'] = '';
$lang->product->branchName['branch'] = 'Branch';
$lang->product->branchName['platform'] = 'Platform';
$lang->product->statusList['normal'] = 'Standard';
$lang->product->statusList['closed'] = 'Closed';
global $config;
$lang->product->aclList['open'] = "Public (Accessible to anyone with \"{$lang->productCommon}\" view permissions.)";
if($config->systemMode == 'ALM' && helper::hasFeature('program'))
{
$lang->product->aclList['private'] = "Private {$lang->productCommon} (Manager and Stakeholders of the respective program, team members and stakeholders of the associated {$lang->projectCommon} can access)";
}
else
{
$lang->product->aclList['private'] = "Private (Accessible to the product leads, linked project teams, and stakeholders)";
}
$lang->product->abbr = new stdclass();
$lang->product->abbr->aclList['private'] = "Private";
$lang->product->abbr->aclList['open'] = 'Public';
$lang->product->aclTips['open'] = "Accessible to anyone with \"{$lang->productCommon}\" view permissions.";
$lang->product->aclTips['private'] = "Accessible only to relevant managers under {$lang->productCommon}, as well as team members and stakeholders under the linked {$lang->projectCommon}.";
$lang->product->allSummary = "Stories on this page: <strong>%s</strong>, estimated <strong>%s</strong>h, with <strong>%s</strong> test case coverage.";
$lang->product->checkedAllSummary = "Stories selected: <strong>%total%</strong>, estimated <strong>%estimate%</strong>h, with <strong>%rate%</strong> test case coverage.";
$lang->product->storySummary = "Stories on this page: <strong>%s</strong>, estimated <strong>%s</strong>h, with <strong>%s</strong> test case coverage.";
$lang->product->checkedSRSummary = "Stories selected: <strong>%total%</strong>, estimated <strong>%estimate%</strong>h, with <strong>%rate%</strong> test case coverage.";
$lang->product->requirementSummary = "<strong>%s</strong> <span style=\"text-transform: lowercase\">{$lang->URCommon}</span>(s) on this page, estimated <strong>%s</strong>h.";
$lang->product->checkedURSummary = "<strong>%total%</strong> <span style=\"text-transform: lowercase\">{$lang->URCommon}</span>(s) selected, estimated <strong>%estimate%</strong>h.";
$lang->product->epicSummary = "<strong>%s</strong> <span style=\"text-transform: lowercase\">{$lang->ERCommon}</span>(s) on this page, estimated <strong>%s</strong>h.";
$lang->product->checkedERSummary = "<strong>%total%</strong> <span style=\"text-transform: lowercase\">{$lang->ERCommon}</span>(s) selected, estimated <strong>%estimate%</strong> ({$lang->hourCommon}).";
$lang->product->noModule = '<div>You have no module data. </div><div>Please set up modules before proceeding.</div>';
$lang->product->noProduct = "No {$lang->productCommon} found.";
$lang->product->noMatched = '"%s" cannot be found in' . $lang->productCommon;
$lang->product->testCaseCoverageInfo = "Test Case Coverage = Stories linked to test cases / Non-parent Stories * 100%";
$lang->product->featureBar['browse']['allstory'] = $lang->product->allStory;
$lang->product->featureBar['browse']['unclosed'] = $lang->product->unclosed;
$lang->product->featureBar['browse']['assignedtome'] = $lang->product->assignedToMe;
$lang->product->featureBar['browse']['reviewbyme'] = $lang->product->reviewByMe;
$lang->product->featureBar['browse']['draftstory'] = $lang->product->draftStory;
$lang->product->featureBar['browse']['more'] = $lang->more;
$lang->product->featureBar['all']['all'] = $lang->product->allProduct;
$lang->product->featureBar['all']['noclosed'] = $lang->product->unclosed;
$lang->product->featureBar['all']['closed'] = $lang->product->statusList['closed'];
$lang->product->featureBar['project']['all'] = 'All';
$lang->product->featureBar['project']['undone'] = 'Uncompleted';
$lang->product->featureBar['project']['wait'] = 'Waiting';
$lang->product->featureBar['project']['doing'] = 'Doing';
$lang->product->featureBar['project']['suspended'] = 'On Hold';
$lang->product->featureBar['project']['closed'] = 'Closed';
$lang->product->moreSelects['browse']['more']['openedbyme'] = $lang->product->openedByMe;
$lang->product->moreSelects['browse']['more']['reviewedbyme'] = $lang->product->reviewedByMe;
$lang->product->moreSelects['browse']['more']['assignedbyme'] = $lang->product->assignedByMe;
$lang->product->moreSelects['browse']['more']['closedbyme'] = $lang->product->closedByMe;
$lang->product->moreSelects['browse']['more']['activestory'] = $lang->product->activeStory;
$lang->product->moreSelects['browse']['more']['changingstory'] = $lang->product->changingStory;
$lang->product->moreSelects['browse']['more']['reviewingstory'] = $lang->product->reviewingStory;
$lang->product->moreSelects['browse']['more']['willclose'] = $lang->product->willClose;
$lang->product->moreSelects['browse']['more']['closedstory'] = $lang->product->closedStory;
$lang->product->featureBar['dynamic']['all'] = 'All';
$lang->product->featureBar['dynamic']['today'] = 'Today';
$lang->product->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->product->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->product->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->product->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->product->featureBar['dynamic']['lastMonth'] = 'Last Month';
$lang->product->action = new stdclass();
$lang->product->action->activate = array('main' => '$date, activated by <strong>$actor</strong>.');
$lang->product->belongingLine = 'Product Line';
$lang->product->testCaseCoverage = 'Test Case Coverage';
$lang->product->activatedBug = 'Activated Bugs';
$lang->product->completeRate = 'Completion Rate';
$lang->product->editLine = 'Edit Product Line';
$lang->product->latestReleaseDate = 'Latest Release on';
$lang->product->latestRelease = 'Latest Release';

View file

@ -0,0 +1,166 @@
<?php
/**
* The productplan module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package productplan
* @version $Id: en.php 4659 2013-04-17 06:45:08Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->productplan->common = $lang->productCommon . ' Plan';
$lang->productplan->browse = "Plan List";
$lang->productplan->index = "Plan List";
$lang->productplan->create = "Create Plan";
$lang->productplan->edit = "Edit Plan";
$lang->productplan->delete = "Delete Plan";
$lang->productplan->start = "Start Plan";
$lang->productplan->finish = "Complete Plan";
$lang->productplan->close = "Close Plan";
$lang->productplan->activate = "Activate Plan";
$lang->productplan->startAB = "Start";
$lang->productplan->finishAB = "Complete";
$lang->productplan->closeAB = "Close";
$lang->productplan->activateAB = "Activate";
$lang->productplan->view = "Details";
$lang->productplan->bugSummary = "<strong>%s</strong> Bugs on this page.";
$lang->productplan->basicInfo = 'Basic Info';
$lang->productplan->batchEdit = 'Batch Edit';
$lang->productplan->project = $lang->projectCommon;
$lang->productplan->plan = 'Plan';
$lang->productplan->allAB = 'All';
$lang->productplan->to = 'To';
$lang->productplan->more = 'More';
$lang->productplan->comment = 'Comment';
$lang->productplan->storyPoint = 'Story Point';
$lang->productplan->batchEditAction = 'Batch Edit Plans';
$lang->productplan->batchUnlink = "Batch Unlink";
$lang->productplan->batchClose = "Batch Close";
$lang->productplan->batchChangeStatus = "Batch Change Status";
$lang->productplan->unlinkAB = "Unlink";
$lang->productplan->linkStory = "Link Story";
$lang->productplan->unlinkStory = "Unlink Story";
$lang->productplan->unlinkStoryAB = "Unlink";
$lang->productplan->batchUnlinkStory = "Batch Unlink";
$lang->productplan->linkedStories = 'Linked Stories';
$lang->productplan->unlinkedStories = 'Linked Stories';
$lang->productplan->updateOrder = 'Sort';
$lang->productplan->createChildren = "Create Subplans";
$lang->productplan->createExecution = "Create {$lang->execution->common}";
$lang->productplan->list = 'List';
$lang->productplan->kanban = 'Kanban';
$lang->productplan->linkBug = "Link Bug";
$lang->productplan->unlinkBug = "Unlink Bug";
$lang->productplan->batchUnlinkBug = "Batch Unlink Bugs";
$lang->productplan->linkedBugs = 'Linked Bugs';
$lang->productplan->unlinkedBugs = 'Unlinked Bugs';
$lang->productplan->unexpired = 'Unexpired';
$lang->productplan->noAssigned = 'Unassigned';
$lang->productplan->all = 'All Plans';
$lang->productplan->setDate = "Plan Duration";
$lang->productplan->expired = "Expired";
$lang->productplan->closedReason = "Closed Reason";
$lang->productplan->confirmDelete = "Are you sure you want to delete this plan?";
$lang->productplan->confirmUnlinkStory = "Are you sure you want to unlink this story?";
$lang->productplan->confirmUnlinkBug = "Are you sure you want to unlink this bug?";
$lang->productplan->confirmStart = "Are you sure you want to start this plan?";
$lang->productplan->confirmFinish = "Are you sure you want to complete this plan?";
$lang->productplan->confirmClose = "Are you sure you want to close this plan?";
$lang->productplan->confirmActivate = "Are you sure you want to activate this plan?";
$lang->productplan->noPlan = 'No plans yet.';
$lang->productplan->cannotDeleteParent = 'Parent plans can not be deleted.';
$lang->productplan->selectProjects = 'Please select the ' . $lang->projectCommon;
$lang->productplan->projectNotEmpty = $lang->projectCommon . ' should not be empty.';
$lang->productplan->nextStep = "Next";
$lang->productplan->summary = "<strong>%s</strong> plans on this page: <strong>%s</strong> parent, <strong>%s</strong> sub, <strong>%s</strong> independent.";
$lang->productplan->checkedSummary = "Selected <strong>%total%</strong> plans: <strong>%parent%</strong> parent, <strong>%child%</strong> sub, <strong>%independent%</strong> independent.";
$lang->productplan->storySummary = "This page contains <strong>%s</strong> {$lang->ERCommon}, <strong>%s</strong> {$lang->URCommon}, and <strong>%s</strong> {$lang->SRCommon}, with an estimated <strong>%s</strong> {$lang->hourCommon} and a test coverage rate of <strong>%s</strong>.";
$lang->productplan->confirmChangePlan = "After unlinking branch『%s』, its %s stories and %s bugs will be removed from the plan as well. Do you want to proceed?";
$lang->productplan->confirmRemoveStory = "After unlinking branch『%s』, its %s stories will be removed from the plan as well. Do you want to proceed?";
$lang->productplan->confirmRemoveBug = "After unlinking branch『%s』, its %s bugs will be removed from the plan as well. Do you want to proceed?";
$lang->productplan->id = 'ID';
$lang->productplan->product = $lang->productCommon;
$lang->productplan->branch = 'Platform / Branch';
$lang->productplan->title = 'Title';
$lang->productplan->desc = 'Description';
$lang->productplan->begin = 'Start';
$lang->productplan->end = 'End';
$lang->productplan->status = 'Status';
$lang->productplan->last = 'Last Plan';
$lang->productplan->future = 'TBD';
$lang->productplan->stories = 'Stories';
$lang->productplan->bugs = 'Bugs';
$lang->productplan->hour = $lang->hourCommon;
$lang->productplan->execution = $lang->execution->common;
$lang->productplan->parent = "Parent Plan";
$lang->productplan->parentAB = "Parent";
$lang->productplan->children = "Subplan";
$lang->productplan->childrenAB = "Sub";
$lang->productplan->order = "Sort";
$lang->productplan->deleted = "Deleted";
$lang->productplan->mailto = "Mail to";
$lang->productplan->planStatus = "Status";
$lang->productplan->storyTitle = "Title";
$lang->productplan->createdBy = 'Creator';
$lang->productplan->createdDate = 'Created on';
$lang->productplan->finishedDate = 'Completed on';
$lang->productplan->closedDate = 'Cloased on';
$lang->productplan->statusList['wait'] = 'Waiting';
$lang->productplan->statusList['doing'] = 'Doing';
$lang->productplan->statusList['done'] = 'Completed';
$lang->productplan->statusList['closed'] = 'Closed';
$lang->productplan->closedReasonList['done'] = 'Completed';
$lang->productplan->closedReasonList['cancel'] = 'Cancel';
$lang->productplan->parentActionList['startedbychild'] = 'Plan status automatically set to <strong>Doing</strong> as a subplan has <strong>started</strong>.';
$lang->productplan->parentActionList['finishedbychild'] = 'Plan status automatically set to <strong>Completed</strong> as all subplans has been <strong>completed</strong>.';
$lang->productplan->parentActionList['closedbychild'] = 'Plan status automatically set to <strong>Closed</strong> as all subplans has been <strong>closed</strong>.';
$lang->productplan->parentActionList['activatedbychild'] = 'Plan status automatically set to <strong>Doing</strong> as a subplan has <strong>activated</strong>.';
$lang->productplan->parentActionList['createchild'] = 'Plan status automatically set to <strong>Doing</strong> as a subplan has been <strong>created</strong>.';
$lang->productplan->endList[7] = '1 Week';
$lang->productplan->endList[14] = '2 Weeks';
$lang->productplan->endList[31] = '1 Month';
$lang->productplan->endList[62] = '2 Months';
$lang->productplan->endList[93] = '3 Months';
$lang->productplan->endList[186] = '6 Months';
$lang->productplan->endList[365] = '1 Year';
$lang->productplan->errorNoTitle = 'ID %s title should not be empty.';
$lang->productplan->errorNoBegin = 'ID %s start time should not be empty';
$lang->productplan->errorNoEnd = 'ID %s end time should not be empty.';
$lang->productplan->beginGeEnd = 'The start time of ID %s cannot be later than the end time.';
$lang->productplan->beginLessThanParent = "Parent plan start date: %s. The start date cannot be earlier than the parent plans start date.";
$lang->productplan->endGreatThanParent = "Parent plan end date: %s. The end date cannot be later than the parent plans end date.";
$lang->productplan->beginGreaterChild = "Subplan start date: %s. The start date cannot be later than the subplans start date.";
$lang->productplan->endLessThanChild = "Subplan end date: %s. The end date cannot be earlier than the subplans end date.";
$lang->productplan->noLinkedProject = "The current {$lang->productCommon} is not yet linked to any {$lang->projectCommon}. Please go to the {$lang->productCommon} and {$lang->projectCommon} list to link or create a new {$lang->projectCommon}.";
$lang->productplan->enterProjectList = "Go to the {$lang->projectCommon} list under {$lang->productCommon}.";
$lang->productplan->beginGreaterChildTip = "Parent plan [%s] start date: %s. It cannot be later than the subplan start date: %s.";
$lang->productplan->endLessThanChildTip = "Parent plan [%s] end date: %s. It cannot be earlier than the subplan end date: %s.";
$lang->productplan->beginLessThanParentTip = "Subplan [%s] start date: %s. It cannot be earlier than the parent plan start date: %s.";
$lang->productplan->endGreatThanParentTip = "Subplan [%s] end date: %s. It cannot be later than the parent plan end date: %s.";
$lang->productplan->diffBranchesTip = "The @branch@ [%s] of the parent plan is not linked to any subplan. Related stories and bugs under this @branch@ will be removed from the plan automatically. Do you want to save?";
$lang->productplan->deleteBranchTip = "The @branch@ [%s] is linked to a subplan and cannot be changed.";
$lang->productplan->featureBar['browse']['all'] = 'All';
$lang->productplan->featureBar['browse']['undone'] = 'Uncompleted';
$lang->productplan->featureBar['browse']['wait'] = 'Waiting';
$lang->productplan->featureBar['browse']['doing'] = 'Doing';
$lang->productplan->featureBar['browse']['done'] = 'Completed';
$lang->productplan->featureBar['browse']['closed'] = 'Closed';
$lang->productplan->orderList['begin_desc'] = 'Start Date Descending';
$lang->productplan->orderList['begin_asc'] = 'Start Date Ascending';
$lang->productplan->orderList['title_desc'] = 'Title Descending';
$lang->productplan->orderList['title_asc'] = 'Title Ascending';
$lang->productplan->action = new stdclass();
$lang->productplan->action->changebychild = array('main' => '$date, $extra', 'extra' => 'parentActionList');

231
module/program/lang/ru.php Normal file
View file

@ -0,0 +1,231 @@
<?php
/* Fields. */
$lang->program->id = 'ID';
$lang->program->name = 'Name';
$lang->program->template = 'Template';
$lang->program->category = 'Type';
$lang->program->desc = 'Description';
$lang->program->status = 'Status';
$lang->program->PM = 'Manager';
$lang->program->budget = 'Budget';
$lang->program->budgetUnit = 'Budget Unit';
$lang->program->invested = 'Invested';
$lang->program->begin = 'Begin';
$lang->program->end = 'End';
$lang->program->realBeganAB = 'Actual Begin';
$lang->program->realEndAB = 'Actual End';
$lang->program->stage = 'Stage';
$lang->program->type = 'Type';
$lang->program->pri = 'Priority';
$lang->program->parent = 'Parent Program';
$lang->program->exchangeRate = 'Exchange Rate';
$lang->program->openedBy = 'Opened by';
$lang->program->openedDate = 'Opened Date';
$lang->program->closedBy = 'Closed by';
$lang->program->closedDate = 'Closed Date';
$lang->program->canceledBy = 'Canceled by';
$lang->program->canceledDate = 'Canceled Date';
$lang->program->lastEditedDate = 'Last Edited Date';
$lang->program->suspendedDate = 'Suspended Date';
$lang->program->vision = 'Vision';
$lang->program->team = 'Team';
$lang->program->order = 'Rank';
$lang->program->days = 'Days';
$lang->program->acl = 'Access Control';
$lang->program->groups = 'Groups';
$lang->program->users = 'Users';
$lang->program->whitelist = 'WhiteList';
$lang->program->deleted = 'Deleted';
$lang->program->lifetime = 'Lifetime';
$lang->program->output = 'Output';
$lang->program->auth = 'Auth';
$lang->program->path = 'Path';
$lang->program->grade = 'Grade';
$lang->program->realBegan = 'Real Began';
$lang->program->realEnd = 'Real End';
$lang->program->version = 'Version';
$lang->program->parentVersion = 'Parent Version';
$lang->program->planDuration = 'Plan Duration';
$lang->program->realDuration = 'Real Duration';
$lang->program->openedVersion = 'Opened Version';
$lang->program->lastEditedBy = 'Last Edited by';
$lang->program->lastEditedDate = 'Last Edited Date';
$lang->program->childProgram = 'Child Program';
$lang->program->ignore = 'Ignore';
$lang->program->other = 'Other';
/* Actions. */
$lang->program->common = 'Program';
$lang->program->index = 'Home';
$lang->program->create = 'Create Program';
$lang->program->createGuide = 'Select Template';
$lang->program->edit = 'Edit Program';
$lang->program->browse = 'Programs';
$lang->program->kanbanAction = 'Kanban';
$lang->program->view = 'Program Detail';
$lang->program->copy = 'Copy Program';
$lang->program->product = "{$lang->productCommon}s";
$lang->program->project = "Program {$lang->projectCommon} List";
$lang->program->all = 'All Programs';
$lang->program->start = 'Start';
$lang->program->finish = 'Finish';
$lang->program->suspend = 'Suspend';
$lang->program->delete = 'Delete';
$lang->program->close = 'Close';
$lang->program->activate = 'Activate';
$lang->program->export = 'Export';
$lang->program->stakeholder = 'Stakeholder';
$lang->program->createStakeholder = 'Create Stakeholder';
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
$lang->program->unlink = 'Unlink';
$lang->program->updateOrder = 'Rank';
$lang->program->unbindWhitelist = 'Unbind Whitelist';
$lang->program->importStakeholder = 'Import from program';
$lang->program->manageMembers = 'Program Team';
$lang->program->confirmChangePRJUint = "Synchronize the budget unit of the subprograms and the {$lang->projectCommon}s of the program? If yes, please the current exchange rate.";
$lang->program->exRateNotNegative = 'The『exchange rate』should not be negative.';
$lang->program->changePRJUnit = 'Update the budget unit of the ' . $lang->projectCommon;
$lang->program->showNotCurrentProjects = "Display {$lang->projectCommon} information of non current program";
$lang->program->progress = "{$lang->projectCommon}Progress";
$lang->program->progressAB = 'Progress';
$lang->program->children = 'Add a Program';
$lang->program->allInvest = 'Input';
$lang->program->teamCount = 'Team';
$lang->program->longTime = 'Long-Term';
$lang->program->moreProgram = 'More program';
$lang->program->stakeholderType = 'Stakeholder type';
$lang->program->parentBudget = 'Parent program surplus budget:';
$lang->program->isStakeholderKey = 'Key stakeholder';
$lang->program->summary = "This page contains %d top programs and %d independent " . strtolower($lang->projectCommon) . "s.";
$lang->program->stakeholderTypeList['inside'] = 'Inside';
$lang->program->stakeholderTypeList['outside'] = 'Outside';
$lang->program->noProgram = 'No program.';
$lang->program->showClosed = 'Closed';
$lang->program->tips = "If a parent program is selected, the {$lang->productCommon}s under the parent program can be associated. If no program is selected for the {$lang->projectCommon}, a {$lang->productCommon} with the same name as the {$lang->projectCommon} is created and associated with the {$lang->projectCommon} by default.";
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
$lang->program->beginLessThanParent = 'The start date of the program is less than the start date of the parent program:';
$lang->program->endGreatThanParent = 'The finish date of the program is greater than the finish date of the parent program:';
$lang->program->dateExceedParent = 'The start and finish date of the program was greater than the start and finish date of the parent program:';
$lang->program->beginGreatEqualChild = "The start date of the program is greater than the minimum start date of the subprogram or {$lang->projectCommon}:";
$lang->program->endLessThanChild = "The finish date of the program is less than the maximum finish date of the subprogram or {$lang->projectCommon}:";
$lang->program->dateExceedChild = "The start and finish date of the program no longer include the date scope of the subprogram or {$lang->projectCommon}:";
$lang->program->closeErrorMessage = "There are subprograms or {$lang->projectCommon}s that are not closed";
$lang->program->hasChildren = "The program has a child program or the {$lang->projectCommon} exists and can not be deleted.";
$lang->program->hasProduct = "The program has {$lang->productCommon}s exist and can not be deleted.";
$lang->program->confirmDelete = 'Do you want to delete the \"%s\" Program?';
$lang->program->confirmUnlink = 'Do you want to remove the Stakeholder?';
$lang->program->readjustTime = 'Change the program begin&end date.';
$lang->program->accessDenied = 'You have no access to the program.';
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
$lang->program->checkedProjects = 'Seleted %s items';
$lang->program->budgetOverrun = "The program's budget exceeds the remaining budget of the parent program:";
/* ToolBar. */
$lang->program->createProduct = 'Create Product';
$lang->program->createProject = 'Create Project';
/* DTable columns of product view page. */
$lang->program->totalUnclosedStories = 'Unclosed';
$lang->program->closedStoryRate = 'Closed Rate';
$lang->program->testCaseCoverage = 'Coverage';
$lang->program->totalActivatedBugs = 'Activated';
$lang->program->fixedRate = 'Fixed';
$lang->program->feedback = 'Feedback';
$lang->program->tip = new stdclass();
$lang->program->tip->closed = 'The program has been closed. Re-close is not available.';
$lang->program->tip->notSuspend = 'The program has been closed. Suspend is not available.';
$lang->program->tip->suspended = 'The program has been suspended. Re-suspended is not available.';
$lang->program->tip->actived = 'The program has been activated. Re-activated is not available.';
$lang->program->tip->notCreate = 'The program has been closed. Adding sub-programs is not available.';
$lang->program->endList[31] = 'One month';
$lang->program->endList[93] = 'Trimester';
$lang->program->endList[186] = 'Half year';
$lang->program->endList[365] = 'One year';
$lang->program->endList[999] = 'Longtime';
$lang->program->aclList['open'] = "Public (Accessible to anyone with “Program” view permissions.)";
$lang->program->aclList['private'] = "Private (Accessible to this program's leader and stakeholders.)";
$lang->program->subAclList['open'] = "Public (Accessible to anyone with “Program” view permissions.)";
$lang->program->subAclList['program'] = "Internal (Accessible to all leaders and stakeholders of this program and its parent programs.)";
$lang->program->subAclList['private'] = "Private (Accessible to this program's leader and stakeholders.)";
$lang->program->subAcls['open'] = 'Default';
$lang->program->subAcls['program'] = 'Open within the program';
$lang->program->subAcls['private'] = 'Private';
$lang->program->authList['extend'] = 'Inherit (program privileges and company privileges)';
$lang->program->authList['reset'] = 'Reset (program privileges only)';
$lang->program->statusList['wait'] = 'Waiting';
$lang->program->statusList['doing'] = 'Doing';
$lang->program->statusList['suspended'] = 'Suspended';
$lang->program->statusList['closed'] = 'Closed';
$lang->program->featureBar['browse']['all'] = 'All';
$lang->program->featureBar['browse']['unclosed'] = 'Unclosed';
$lang->program->featureBar['browse']['wait'] = 'Waiting';
$lang->program->featureBar['browse']['doing'] = 'Doing';
$lang->program->featureBar['browse']['suspended'] = 'Suspended';
$lang->program->featureBar['browse']['delayed'] = 'Delayed';
$lang->program->featureBar['browse']['closed'] = 'Closed';
$lang->program->featureBar['product']['all'] = 'All ' . $lang->productCommon;
$lang->program->featureBar['product']['noclosed'] = 'Open';
$lang->program->featureBar['product']['closed'] = 'Closed';
$lang->program->featureBar['project']['all'] = 'All';
$lang->program->featureBar['project']['unclosed'] = 'Unclosed';
$lang->program->featureBar['project']['wait'] = 'Waiting';
$lang->program->featureBar['project']['doing'] = 'Doing';
$lang->program->featureBar['project']['suspended'] = 'Suspended';
$lang->program->featureBar['project']['delayed'] = 'Delayed';
$lang->program->featureBar['project']['closed'] = 'Closed';
$lang->program->featureBar['productview']['all'] = 'All';
$lang->program->featureBar['productview']['unclosed'] = 'Unclosed';
$lang->program->featureBar['productview']['wait'] = 'Waiting';
$lang->program->featureBar['productview']['doing'] = 'Doing';
$lang->program->featureBar['productview']['more'] = $lang->more;
$lang->program->moreSelects['suspended'] = 'Suspended';
$lang->program->moreSelects['closed'] = 'Closed';
$lang->program->kanban = new stdclass();
$lang->program->kanban->common = 'Program Kanban';
$lang->program->kanban->typeList['my'] = 'My Programs';
$lang->program->kanban->typeList['others'] = 'Others';
$lang->program->kanban->openProducts = "Open {$lang->productCommon}s";
$lang->program->kanban->unexpiredPlans = 'Unexpired Plans';
$lang->program->kanban->waitingProjects = "Waiting {$lang->projectCommon}s";
$lang->program->kanban->doingProjects = "Ongoing {$lang->projectCommon}s";
$lang->program->kanban->doingExecutions = 'Ongoing Executions';
$lang->program->kanban->normalReleases = 'Normal Releases';
$lang->program->kanban->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
$lang->program->defaultProgram = 'Default Program';
$lang->program->manDay = 'Man-Days';
$lang->program->createdDate = 'Created Date';
$lang->program->totalStories = 'Total Stories';
$lang->program->project = 'Projects';
$lang->program->totalBugs = 'Total Bugs';
$lang->program->latestReleaseDate = 'Latest Release Date';
$lang->program->latestRelease = 'Latest Release';
$lang->program->manageLine = 'Manage Product Line';
$lang->program->checkedProducts = '<strong>%total%</strong>&nbsp; products selected.';
$lang->program->programBudget = 'Program Budget';
$lang->program->projectBudget = 'Project Budget';
$lang->program->sumSubBudget = 'Sum For Sub Program';
$lang->program->exceededBudget = 'Exceeded Budget';
$lang->program->remainingBudget = 'Remaining For Program';

View file

@ -0,0 +1,161 @@
<?php
/**
* The programplan module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package programplan
* @version $Id: en.php 4729 2013-05-03 07:53:55Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
$lang->programplan->common = 'Program Plan';
$lang->programplan->browse = 'Gantt Chart';
$lang->programplan->gantt = 'Gantt Chart';
$lang->programplan->ganttEdit = 'Edit Gantt Chart';
$lang->programplan->list = 'Phase List';
$lang->programplan->create = 'Create Phase';
$lang->programplan->edit = 'Edit Phase';
$lang->programplan->delete = 'Delete Phase';
$lang->programplan->close = 'Close Phase';
$lang->programplan->activate = 'Activate Phase';
$lang->programplan->createSubPlan = 'Create Sub-phase';
$lang->programplan->subPlanManage = 'Sub-phase Management Type';
$lang->programplan->submit = 'Submit Review';
$lang->programplan->idAB = 'ID';
$lang->programplan->parent = 'Parent Phase';
$lang->programplan->emptyParent = 'N/A';
$lang->programplan->name = 'Phase Name';
$lang->programplan->code = 'Code';
$lang->programplan->status = 'Phase Progress';
$lang->programplan->PM = 'Phase Manager';
$lang->programplan->PMAB = 'Manager';
$lang->programplan->acl = 'Access Control';
$lang->programplan->subStageName = 'Sub-phase Name';
$lang->programplan->percent = 'Workload Ratio';
$lang->programplan->percentAB = 'Workload Ratio';
$lang->programplan->planPercent = 'Workload';
$lang->programplan->attribute = 'Type';
$lang->programplan->milestone = 'Milestone';
$lang->programplan->taskProgress = 'Task Progress';
$lang->programplan->task = 'Task';
$lang->programplan->begin = 'Planned Start';
$lang->programplan->end = 'Planned End';
$lang->programplan->realBegan = 'Actual Start';
$lang->programplan->realEnd = 'Actual End';
$lang->programplan->ac = 'Actual Cost';
$lang->programplan->sv = 'Schedule Variance';
$lang->programplan->cv = 'Cost Variance';
$lang->programplan->planDateRange = 'Planned Duration';
$lang->programplan->realDateRange = 'Actual Duration';
$lang->programplan->output = 'Output';
$lang->programplan->openedBy = 'Creator';
$lang->programplan->openedDate = 'Created on';
$lang->programplan->editedBy = 'Edited by';
$lang->programplan->editedDate = 'Edited on';
$lang->programplan->duration = 'Available Workdays';
$lang->programplan->estimate = 'Man Hours';
$lang->programplan->consumed = 'Cost';
$lang->programplan->version = 'Version';
$lang->programplan->full = 'Full Screen';
$lang->programplan->today = 'Today';
$lang->programplan->exporting = 'Export';
$lang->programplan->exportFail = 'Failed';
$lang->programplan->hideCriticalPath = 'Hide Critical Path';
$lang->programplan->showCriticalPath = 'Show Critical Path';
$lang->programplan->delay = 'Postponed';
$lang->programplan->delayDays = 'Days Delayed';
$lang->programplan->settingGantt = 'Set Gantt Chart';
$lang->programplan->viewSetting = 'Settings';
$lang->programplan->desc = 'Description';
$lang->programplan->wait = 'Awaiting Submit';
$lang->programplan->enabled = 'Enable Phase';
$lang->programplan->point = 'Review Point';
$lang->programplan->progress = 'Progress';
$lang->programplan->relation = 'Manage Task Dependencies';
$lang->programplan->setTaskRelation = 'Manage Task Dependencies';
$lang->programplan->viewTaskRelation = 'View Task Dependencies';
$lang->programplan->createRelation = 'Add Task Dependencies';
$lang->programplan->editRelation = 'Manage Task Dependencies';
$lang->programplan->batchEditRelation = 'Batch Manage Task Dependencies';
$lang->programplan->deleteRelation = 'Delete Task Dependencies';
$lang->programplan->batchDeleteRelation = 'Batch Delete Task Dependencies';
$lang->programplan->errorBegin = "The phase start date cannot be earlier than the start date of its {$lang->projectCommon} %s.";
$lang->programplan->errorEnd = "The phase end date cannot be later than the end date of its {$lang->projectCommon} %s.";
$lang->programplan->emptyBegin = 'Planned Start date is required.';
$lang->programplan->emptyEnd = 'Planned Complete date is required.';
$lang->programplan->checkBegin = 'Planned Start must be a valid date.';
$lang->programplan->checkEnd = 'Planned Complete must be a valid date.';
$lang->programplan->methodTip = "You can create another phase or add a {lang->executionCommon} / Kanban board under this phase to organize work. {$lang->executionCommon}s and Kanban boards cannot be further subdivided.";
$lang->programplan->cropStageTip = "You cannot trim a phase that has already started.";
$lang->programplan->childEnabledTip = "Sub-phases inherit the status of their parent phase.";
$lang->programplan->reviewedPointTip = "This review point has already been submitted for review and cannot be modified.";
$lang->programplan->typeTip = "At the top level, you can only create phases. Within a phase, you may create sub-phases or {$lang->executionCommon} / Kanban boards. {$lang->executionCommon}s and Kanban boards cannot be further subdivided.";
$lang->programplan->milestoneList[1] = 'Yes';
$lang->programplan->milestoneList[0] = 'No';
$lang->programplan->delayList = array();
$lang->programplan->delayList[1] = 'Yes';
$lang->programplan->delayList[0] = 'No';
$lang->programplan->enabledList = array();
$lang->programplan->enabledList['on'] = 'Enable';
$lang->programplan->enabledList['off'] = 'Disable';
$lang->programplan->typeList = array();
$lang->programplan->typeList['stage'] = 'Phase';
$lang->programplan->typeList['agileplus'] = $lang->executionCommon . '/Kanban';
$lang->programplan->noData = 'No data available yet.';
$lang->programplan->children = 'Sub-plan';
$lang->programplan->childrenAB = 'Sub';
$lang->programplan->confirmDelete = 'Are you sure you want to delete the plan?';
$lang->programplan->confirmChangeAttr = 'The sub‑phase type will be automatically updated to match the parent phase type %s. Do you want to save the changes?';
$lang->programplan->noticeChangeAttr = 'The sub‑phase type will be automatically updated to match the parent phase type %s. ';
$lang->programplan->workloadTips = 'The sub‑phase workload will be split proportionally to total 100%.';
$lang->programplan->emptyStageTip = 'Please contact the administrator to set up the IPD stage list in the "Project Process Configuration" in the backend.';
$lang->programplan->stageCustom['date'] = 'Show Date';
$lang->programplan->stageCustom['task'] = 'Show Task';
$lang->programplan->ganttCustom['owner_id'] = 'Manager';
$lang->programplan->ganttCustom['deadline'] = 'Planned Complete';
$lang->programplan->ganttCustom['status'] = 'Status';
$lang->programplan->ganttCustom['realBegan'] = 'Actual Start';
$lang->programplan->ganttCustom['realEnd'] = 'Actual End';
$lang->programplan->ganttCustom['percent'] = 'Workload Ratio';
$lang->programplan->ganttCustom['taskProgress'] = 'Task Progress';
$lang->programplan->ganttCustom['estimate'] = 'Estimated Effort';
$lang->programplan->ganttCustom['consumed'] = 'Cost';
$lang->programplan->ganttCustom['delay'] = 'Postponed';
$lang->programplan->ganttCustom['delayDays'] = 'Days Delayed';
$lang->programplan->error = new stdclass();
$lang->programplan->error->percentNumber = 'The workload ratio must be a numeric value.';
$lang->programplan->error->planFinishSmall = 'The planned end time must be later than the planned start time.';
$lang->programplan->error->percentOver = 'The total workload ratio of all sub‑phases under the same parent phase must not exceed 100%.';
$lang->programplan->error->createdTask = 'This phase has decomposed tasks. Sub‑phases cannot be added.';
$lang->programplan->error->parentWorkload = 'The total workload of all sub‑phases cannot exceed the parent phase’s workload: %s.';
$lang->programplan->error->letterParent = "A sub‑phase’s planned start time cannot be earlier than the parent phase’s planned start time %s.";
$lang->programplan->error->greaterParent = "A sub‑phase’s planned end time cannot exceed the parent phase’s planned end time %s.";
$lang->programplan->error->sameName = 'Phase names must be unique.';
$lang->programplan->error->sameCode = 'Phase codes must be unique.';
$lang->programplan->error->taskDrag = 'Tasks under %s cannot be moved.';
$lang->programplan->error->planDrag = 'Phases under %s cannot be moved.';
$lang->programplan->error->notStage = 'Sub‑phases cannot be created on the '. $lang->executionCommon . '/ Kanban board.';
$lang->programplan->error->sameType = 'The parent phase type is %s. The current phase type must match the parent phase.';
$lang->programplan->error->emptyParentName = "The phase contains sub‑phases, and the sub-stage name cannot be empty.";
$lang->programplan->error->noProject = "A Gantt chart cannot be added because no Waterfall or Waterfal + {$lang->projectCommon} exists in the system.";
$lang->programplan->error->noProject4IPD = "A Gantt chart cannot be added because no Waterfall, Waterfal +, or IPD {$lang->projectCommon} exists in the system.";
$lang->programplan->ganttBrowseType['gantt'] = 'Group by Phase';
$lang->programplan->ganttBrowseType['assignedTo'] = 'Group by Assignee';
$lang->programplan->reviewColorList['draft'] = '#FC913F';
$lang->programplan->reviewColorList['reviewing'] = '#CD6F27';
$lang->programplan->reviewColorList['pass'] = '#0DBB7D';
$lang->programplan->reviewColorList['fail'] = '#FB2B2B';

539
module/project/lang/ru.php Normal file
View file

@ -0,0 +1,539 @@
<?php
global $app;
global $config;
/* Actions. */
$lang->project->createGuide = 'Select Template';
$lang->project->index = 'Dashboard';
$lang->project->home = 'Home';
$lang->project->create = "Create {$lang->projectCommon}";
$lang->project->edit = 'Edit';
$lang->project->batchEdit = "Batch Edit {$lang->projectCommon}s";
$lang->project->view = "{$lang->projectCommon} Overview";
$lang->project->batchEdit = "Batch Edit {$lang->projectCommon}s";
$lang->project->browse = $lang->projectCommon;
$lang->project->all = 'All';
$lang->project->involved = "Involved Projects";
$lang->project->start = 'Start';
$lang->project->finish = 'Complete';
$lang->project->suspend = 'On Hold';
$lang->project->delete = 'Delete';
$lang->project->close = 'Close';
$lang->project->activate = 'Activate';
$lang->project->group = 'Permission List';
$lang->project->createGroup = 'Create Group';
$lang->project->editGroup = 'Edit Group';
$lang->project->copyGroup = 'Copy Group';
$lang->project->manageView = 'Manage View Permission';
$lang->project->managePriv = 'Manage Permission';
$lang->project->manageMembers = 'Manage Team';
$lang->project->export = 'Export';
$lang->project->addProduct = "Add {$lang->productCommon}";
$lang->project->manageGroupMember = 'Manage Group';
$lang->project->moduleSetting = 'List Settings';
$lang->project->moduleOpen = 'Program Name';
$lang->project->moduleOpenAction = 'Program Name Settings';
$lang->project->dynamic = 'Recents';
$lang->project->execution = 'Execution';
$lang->project->bug = 'Bug List';
$lang->project->testcase = 'Test Case List';
$lang->project->testtask = 'Test Request List';
$lang->project->build = 'Build';
$lang->project->updateOrder = 'Sort';
$lang->project->sort = 'Sort';
$lang->project->whitelist = "{$lang->projectCommon} Whitelist";
$lang->project->addWhitelist = "Add Whitelist";
$lang->project->unbindWhitelist = "Remove Whitelist";
$lang->project->manageProducts = "Link {$lang->productCommon}s";
$lang->project->manageOtherProducts = "Link Other {$lang->productCommon}s";
$lang->project->manageProductPlan = "Link {$lang->productCommon}s and Plans";
$lang->project->managePlans = 'Link Plans';
$lang->project->copyTitle = "Please select a {$lang->projectCommon} to copy.";
$lang->project->errorSameProducts = "{$lang->projectCommon} cannot be linked to multiple identical {$lang->productCommon}s.";
$lang->project->errorSameBranches = "{$lang->projectCommon} cannot be linked to multiple identical branches.";
$lang->project->errorSamePlans = "{$lang->projectCommon} cannot be linked to multiple identical plans.";
$lang->project->errorNoProducts = "At least one {$lang->productCommon} must be linked.";
$lang->project->copyNoProject = "No available {$lang->projectCommon}s to copy.";
$lang->project->searchByName = "Enter the {$lang->projectCommon} name to search.";
$lang->project->emptyProgram = "Independent Projects";
$lang->project->deleted = 'Deleted';
$lang->project->linkedProducts = "Linked {$lang->productCommon}s";
$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s";
$lang->project->testreport = 'Test Report List';
$lang->project->selectProgram = 'Program Filter';
$lang->project->teamMember = 'Team Member';
$lang->project->unlinkMember = 'Remove Member';
$lang->project->unlinkMemberAction = 'Remove Team Member';
$lang->project->copyTeamTitle = "Select a {$lang->projectCommon} team to copy.";
$lang->project->daysGreaterProject = "Available workdays cannot exceed {$lang->projectCommon} maximum 『%s』";
$lang->project->errorHours = 'Available working hours per day cannot exceed 24.';
$lang->project->workdaysExceed = 'Work Dyas cannot exceed『%s』.';
$lang->project->teamMembersCount = ', the team has a total of %s members.';
$lang->project->allProjects = "All {$lang->projectCommon}s";
$lang->project->ignore = 'Ignore';
$lang->project->disableExecution = "{$lang->projectCommon} with {$lang->executionCommon} disabled";
$lang->project->selectProduct = "Select {$lang->productCommon}";
$lang->project->manageRepo = 'Link Repository';
$lang->project->linkedRepo = 'Linked Repository';
$lang->project->unlinkedRepo = 'Unlink Repository';
$lang->project->executionCount = 'Execution Count';
$lang->project->storyType = 'Story Concept';
$lang->project->storyCount = 'Story Count';
$lang->project->storyPoints = 'Story Points';
$lang->project->invested = 'Invested';
$lang->project->member = 'Members';
$lang->project->manage = 'Manage';
$lang->project->market = 'Target Market';
$lang->project->tips = 'Note';
$lang->project->afterInfo = "{$lang->projectCommon} created successfully. Next you can";
$lang->project->setTeam = 'Manage Team';
$lang->project->linkStory = 'Link Stories';
$lang->project->createStory = "Create {$lang->SRCommon}";
$lang->project->createTask = "Create Task";
$lang->project->createExecutionTip = 'Create %s';
$lang->project->setDoc = 'Add Docs';
$lang->project->backToTaskList = 'Return to Task List';
$lang->project->backToKanban = 'Return to Kanban';
$lang->project->backToExecutionList = 'Return to Project %s List';
$lang->project->backToProjectList = 'Return to Project List';
$lang->project->deletedTip = "Sorry, the {$lang->projectCommon} you are trying to access has been deleted.";
$lang->project->coverExecutionPriv = "Execution Priv Control";
$lang->project->manDay = 'Man-Days';
$lang->project->day = 'Day';
$lang->project->newProduct = 'New Product';
$lang->project->associatePlan = 'Link Plan';
$lang->project->tenThousandYuan = '10k';
$lang->project->planDate = 'Planned Duration';
$lang->project->delayInfo = '%s days delayed';
/* Fields. */
$lang->project->common = $lang->projectCommon;
$lang->project->id = 'ID';
$lang->project->project = $lang->projectCommon;
$lang->project->stage = 'Phase';
$lang->project->model = 'Management Type';
$lang->project->PM = 'Manager';
$lang->project->PO = "{$lang->projectCommon} Manager";
$lang->project->QD = 'Test Manager';
$lang->project->RD = 'Release Manager';
$lang->project->name = 'Name';
$lang->project->category = 'Type';
$lang->project->desc = 'Description';
$lang->project->code = 'Code';
$lang->project->hasProduct = "Link to {$lang->productCommon}";
$lang->project->copy = 'Copy';
$lang->project->begin = 'Planned Start';
$lang->project->end = 'Planned End';
$lang->project->status = 'Status';
$lang->project->subStatus = 'Sub Status';
$lang->project->type = 'Type';
$lang->project->lifetime = "{$lang->projectCommon} Duration";
$lang->project->attribute = 'Phase Type';
$lang->project->percent = 'Workload %';
$lang->project->milestone = 'Milestone';
$lang->project->milestoneReport = 'Milestone Report';
$lang->project->output = 'Output';
$lang->project->path = 'Path';
$lang->project->grade = 'Hierarchy';
$lang->project->version = 'Version';
$lang->project->program = 'Program';
$lang->project->parentVersion = 'Parent Version';
$lang->project->planDuration = 'Planned Duration';
$lang->project->realDuration = 'Actual Duration';
$lang->project->openedVersion = 'Create Version';
$lang->project->pri = 'Priority';
$lang->project->openedBy = 'Creator';
$lang->project->openedDate = 'Created on';
$lang->project->lastEditedBy = 'Last Edited by';
$lang->project->lastEditedDate = 'Last Edited on';
$lang->project->closedBy = 'Closed by';
$lang->project->closedDate = 'Closed on';
$lang->project->closedReason = 'Closure Reason';
$lang->project->canceledBy = 'Canceled by';
$lang->project->canceledDate = 'Canceled on';
$lang->project->team = 'Team';
$lang->project->teamAction = 'Team List';
$lang->project->order = 'Sort';
$lang->project->budget = 'Budget';
$lang->project->budgetUnit = "(Unit: {$lang->project->tenThousandYuan})";
$lang->project->suspendedDate = 'Paused on';
$lang->project->vision = 'Interface';
$lang->project->displayCards = 'Max cards per column';
$lang->project->fluidBoard = 'Column Width';
$lang->project->template = 'Template';
$lang->project->estimate = 'Estimated Effort';
$lang->project->consume = 'Cost';
$lang->project->surplus = 'Remaining';
$lang->project->progress = ' Progress';
$lang->project->allProgress = 'Totoal Progress';
$lang->project->weekProgress = 'This Week Progress';
$lang->project->dateRange = 'Planned Duration';
$lang->project->to = ' to ';
$lang->project->realBeganAB = 'Actual Start';
$lang->project->realEndAB = 'Actual End';
$lang->project->realBegan = 'Actual Start';
$lang->project->realEnd = 'Actual End';
$lang->project->stageBy = 'Phase Type';
$lang->project->bygrid = 'Kanban';
$lang->project->bylist = 'List';
$lang->project->bycard = 'Card';
$lang->project->mine = 'My Involvement';
$lang->project->myProject = 'My Managed';
$lang->project->other = 'Others';
$lang->project->acl = 'Access Control';
$lang->project->setPlanduration = 'Set Duration';
$lang->project->auth = 'Permission';
$lang->project->durationEstimation = 'Estimated Workload';
$lang->project->left = 'Hours Left';
$lang->project->consumed = 'Hours Cost';
$lang->project->leftStories = 'Remaining Stories';
$lang->project->leftTasks = 'Remaining Tasks';
$lang->project->leftBugs = 'Remaining Bugs';
$lang->project->leftHours = 'Hours Left';
$lang->project->children = "Sub-{$lang->projectCommon}";
$lang->project->parent = 'Parent Program';
$lang->project->allStories = 'All Stories';
$lang->project->doneStories = 'Completed Stories';
$lang->project->doneProjects = 'Completed';
$lang->project->allInput = 'Total Invested';
$lang->project->weekly = 'Weekly Report';
$lang->project->pv = 'PV';
$lang->project->ev = 'EV';
$lang->project->sv = 'SV%';
$lang->project->ac = 'AC';
$lang->project->cv = 'CV%';
$lang->project->pvTitle = 'Planed Value';
$lang->project->evTitle = 'Earn Value';
$lang->project->svTitle = 'Schedule Variance';
$lang->project->acTitle = 'Actual Cost';
$lang->project->cvTitle = 'Cost Variance';
$lang->project->teamCount = 'Headcounts';
$lang->project->teamSumCount = '%s member(s) in total';
$lang->project->longTime = 'Long-Term';
$lang->project->future = 'TBD';
$lang->project->moreProject = "More {$lang->projectCommon}s";
$lang->project->days = 'Work Days';
$lang->project->daysUnit = ' (Unit: Days)';
$lang->project->mailto = 'Mail to';
$lang->project->etc = " , etc";
$lang->project->product = $lang->productCommon;
$lang->project->branch = 'Platform/Branch';
$lang->project->plan = 'Plan';
$lang->project->createKanban = 'Create Kanban';
$lang->project->kanban = 'Kanban';
$lang->project->moreActions = 'More Actions';
$lang->project->taskDateLimit = 'Scheduling Constraints';
$lang->project->isTpl = 'Set as template';
$lang->project->tplWhiteList = 'Template White List';
$lang->project->firstEnd = 'Planned Completion Date at Start';
$lang->project->parallel = 'Allow parallel';
$lang->project->enabled = 'Enable phases';
$lang->project->linkType = 'Link Type';
$lang->project->colWidth = 'Column Width';
$lang->project->minColWidth = 'Minimum Column Width';
$lang->project->maxColWidth = 'Maximum Column Width';
/* Project Category. */
$lang->project->projectTypeList = array();
$lang->project->projectTypeList[1] = "{$lang->productCommon}-based";
$lang->project->projectTypeList[0] = "Non-{$lang->productCommon}-based";
/* Project Kanban. */
$lang->project->typeList = array();
$lang->project->typeList['my'] = "My Managed {$lang->projectCommon}s";
$lang->project->typeList['other'] = "Other {$lang->projectCommon}s";
$lang->project->stageByList['project'] = "Create by {$lang->projectCommon}";
$lang->project->stageByList['product'] = "Create by {$lang->productCommon}";
$lang->project->stageBySwitchList['0'] = 'Disable';
$lang->project->stageBySwitchList['1'] = "Enable";
$lang->project->waitProjects = "Waiting {$lang->projectCommon}s";
$lang->project->doingProjects = "Ongoing {$lang->projectCommon}s";
$lang->project->doingExecutions = 'Ongoing Execution (Latest)';
$lang->project->closedProjects = "Closed {$lang->projectCommon}s (Last 2)";
$lang->project->closedProject = "Closed {$lang->projectCommon}s";
$lang->project->noProgram = "Independent {$lang->projectCommon}s";
$lang->project->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
$lang->project->changeProgram = "%s > Change Program";
$lang->project->changeProgramTip = "After editing the program, the program linked to the {$lang->productCommon} of this {$lang->projectCommon} will also be updated. Please confirm to proceed.";
$lang->project->linkedProjectsTip = "Linked {$lang->projectCommon}s are as follows";
$lang->project->multiLinkedProductsTip = "The following {$lang->productCommon} linked to this {$lang->projectCommon} are also associated with other {$lang->projectCommon}. Please unlink them before proceeding.";
$lang->project->noticeDivsion = "The current {$lang->projectCommon} uses a single-phase set. Click [Enable] to switch to multiple phase sets, where each set is linked to one {$lang->productCommon}.";
$lang->project->linkStoryByPlanTips = "This action will link all {$lang->SRCommon} under the selected plan to this {$lang->projectCommon}.";
$lang->project->createExecution = "No {$lang->executionCommon} found under this {$lang->projectCommon}. Please create a {$lang->executionCommon} first.";
$lang->project->unlinkExecutionMember = "The user participated in %s executions such as %s%s. Do you want to remove the user from those executions as well? (The data related to this user will not be deleted.)";
$lang->project->unlinkExecutionMembers = "The team members you are removing are also in the execution team of this {$lang->projectCommon}. Do you want to remove them from the execution team as well?";
$lang->project->productTip = "After clicking Create {$lang->productCommon}, the current {$lang->projectCommon} will no longer be linked to the selected {$lang->productCommon}.";
$lang->project->noDevStage = "No R&D-type phase found under this {$lang->projectCommon}, or you don’t have access permission. Build creation is temporarily not supported.";
$lang->project->budgetOverrun = "The {$lang->projectCommon}'s budget exceeds the remaining budget of the program: <strong id='currency'></strong><strong id='parentBudget'></strong><strong id='budgetUnit'></strong>.";
$lang->project->disabledInputTip = 'Please cancel %s first.';
$lang->project->linkRepoFailed = "Failed to link the repository.";
$lang->project->unLinkProductTip = 'Are you sure you want to unlink from %s? (It will not affect already linked stories.)';
$lang->project->summary = "%s {$lang->projectCommon}s on this page.";
$lang->project->allSummary = "%s {$lang->projectCommon}s on this page: %s Waiting, %s Doing, %s On Hold, %s Closed.";
$lang->project->checkedSummary = "%total% {$lang->projectCommon} selected.";
$lang->project->checkedAllSummary = "%total% {$lang->projectCommon} selected: %wait% Waiting, %doing% Doing, %suspended% On Hold, %closed% Closed.";
$lang->project->selectProductTip = "If no {$lang->productCommon} is selected, the system will automatically create a {$lang->productCommon} with the same name as the {$lang->projectCommon}.";
$lang->project->error = new stdclass();
$lang->project->error->existProductName = "{$lang->productCommon} name already exists.";
$lang->project->error->budgetGe0 = '『Budget』must be greater than or equal to 0.';
$lang->project->error->budgetNumber = '『Budget』must be numbers.';
$lang->project->error->productNotEmpty = "Please link {$lang->productCommon}s or create {$lang->productCommon}s.";
$lang->project->error->emptyBranch = 'Branch can not be empty!';
$lang->project->error->endLessBegin = 'The planned end date cannot be earlier than the planned start date.';
$lang->project->tip = new stdclass();
$lang->project->tip->closed = 'The project is already closed and does not need to be closed again.';
$lang->project->tip->notSuspend = 'The project has been closed and cannot be set on hold.';
$lang->project->tip->suspended = 'The project is already on hold and cannot be set on hold again.';
$lang->project->tip->actived = 'The project is already active and does not need to be reactivated.';
$lang->project->tip->group = "It is a Kanban project. Editing permission group is not available.";
$lang->project->tip->whitelist = "It is a public project with open permissions. No need to edit whitelists.";
$lang->project->tenThousand = 'Ten Thousand';
$lang->project->hundredMillion = 'Hundred Million';
$lang->project->unitList['CNY'] = 'RMB';
$lang->project->unitList['USD'] = 'USD';
$lang->project->unitList['HKD'] = 'HKD';
$lang->project->unitList['NTD'] = 'NTD';
$lang->project->unitList['EUR'] = 'EUR';
$lang->project->unitList['DEM'] = 'DEM';
$lang->project->unitList['CHF'] = 'CHF';
$lang->project->unitList['FRF'] = 'FRF';
$lang->project->unitList['GBP'] = 'GBP';
$lang->project->unitList['NLG'] = 'NLG';
$lang->project->unitList['CAD'] = 'CAD';
$lang->project->unitList['RUR'] = 'RUB';
$lang->project->unitList['INR'] = 'IDR';
$lang->project->unitList['AUD'] = 'AUD';
$lang->project->unitList['NZD'] = 'NZD';
$lang->project->unitList['THB'] = 'THB';
$lang->project->unitList['SGD'] = 'SGD';
$lang->project->currencySymbol['CNY'] = '¥';
$lang->project->currencySymbol['USD'] = '$';
$lang->project->currencySymbol['HKD'] = 'HK$';
$lang->project->currencySymbol['NTD'] = 'NT$';
$lang->project->currencySymbol['EUR'] = '€';
$lang->project->currencySymbol['DEM'] = 'DEM';
$lang->project->currencySymbol['CHF'] = '₣';
$lang->project->currencySymbol['FRF'] = '₣';
$lang->project->currencySymbol['GBP'] = '£';
$lang->project->currencySymbol['NLG'] = 'ƒ';
$lang->project->currencySymbol['CAD'] = '$';
$lang->project->currencySymbol['RUR'] = '$';
$lang->project->currencySymbol['INR'] = '₹';
$lang->project->currencySymbol['AUD'] = 'A$';
$lang->project->currencySymbol['NZD'] = 'A$';
$lang->project->currencySymbol['THB'] = '฿';
$lang->project->currencySymbol['SGD'] = 'S$';
$lang->project->modelList[''] = '';
if($config->edition == 'ipd') $lang->project->modelList['ipd'] = "IPD";
$lang->project->modelList['scrum'] = "Scrum";
if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "CMMI";
$lang->project->modelList['kanban'] = "Kanban";
$lang->project->modelList['agileplus'] = "Agile +";
if(helper::hasFeature('waterfallplus')) $lang->project->modelList['waterfallplus'] = "Waterfall +";
$lang->project->featureBar['browse']['all'] = 'All';
$lang->project->featureBar['browse']['undone'] = 'Uncompleted';
$lang->project->featureBar['browse']['wait'] = 'Waiting';
$lang->project->featureBar['browse']['doing'] = 'Doing';
$lang->project->featureBar['browse']['more'] = 'More';
$lang->project->featureBar['index']['all'] = 'All';
$lang->project->featureBar['index']['undone'] = 'Uncompleted';
$lang->project->featureBar['index']['wait'] = 'Waiting';
$lang->project->featureBar['index']['doing'] = 'Doing';
$lang->project->featureBar['index']['suspended'] = 'On Hold';
$lang->project->featureBar['index']['closed'] = 'Closed';
$lang->project->featureBar['execution']['all'] = 'All';
$lang->project->featureBar['execution']['undone'] = 'Uncompleted';
$lang->project->featureBar['execution']['wait'] = 'Waiting';
$lang->project->featureBar['execution']['doing'] = 'Doing';
$lang->project->featureBar['execution']['suspended'] = 'On Hold';
$lang->project->featureBar['execution']['delayed'] = 'Delayed';
$lang->project->featureBar['execution']['closed'] = 'Closed';
$lang->project->featureBar['bug']['all'] = 'All';
$lang->project->featureBar['bug']['unresolved'] = 'Unresolved';
$app->loadLang('testcase');
$lang->project->featureBar['testcase'] = $lang->testcase->featureBar['browse'];
$lang->project->featureBar['build']['all'] = 'All Builds';
$lang->project->featureBar['group']['all'] = 'All Groups';
$lang->project->aclList['open'] = "Public (Accessible to anyone with \"{$lang->projectCommon}\" view permissions.)";
$lang->project->aclList['private'] = "Private (For the {$lang->projectCommon} manager, team members and stakeholders only.)";
$lang->project->taskDateLimitList['limit'] = "Restrict Subtask Dates (Must stay within parent task period)";
$lang->project->taskDateLimitList['auto'] = "Auto-extend Parent Task (Adjusts based on subtask dates)";
$lang->project->multipleList['1'] = 'Yes';
$lang->project->multipleList['0'] = 'No';
$lang->project->acls['private'] = 'Private';
$lang->project->acls['open'] = 'Public';
$lang->project->shortAclList['open'] = 'Public';
$lang->project->shortAclList['private'] = 'Private';
$lang->project->shortAclList['program'] = 'Public in the Program';
$lang->project->subAclList['open'] = "Public (Accessible to anyone with \"{$lang->projectCommon}\" view permissions.)";
$lang->project->subAclList['private'] = "Private (Accessible only to {$lang->projectCommon} manager, team members and stakeholders.)";
$lang->project->subAclList['program'] = "Public within Program (Accessible to all upper-level program managers and stakeholders, the {$lang->projectCommon} manager, team members and stakeholders.)";
$lang->project->kanbanAclList['open'] = "Public (Accessible to anyone with \"{$lang->projectCommon}\" view permissions.)";
$lang->project->kanbanAclList['private'] = "Private (For the {$lang->projectCommon} manager, team members only)";
$lang->project->kanbanSubAclList['open'] = "Public (Accessible to anyone with \"{$lang->projectCommon}\" view permissions.)";
$lang->project->kanbanSubAclList['private'] = "Private (Accessible only to {$lang->projectCommon} manager, team members)";
$lang->project->kanbanSubAclList['program'] = "Public within Program (Accessible to all upper-level program managers and stakeholders, the {$lang->projectCommon} manager, team members.)";
if($config->systemMode == 'light')
{
unset($lang->project->subAclList['program']);
unset($lang->project->kanbanSubAclList['program']);
}
$lang->project->authList['extend'] = "Inherit (Union of System and {$lang->projectCommon} permissions)";
$lang->project->authList['reset'] = "Override ({$lang->projectCommon} permissions only)";
$lang->project->sortAuthList['extend'] = 'Inherit';
$lang->project->sortAuthList['reset'] = 'Reset';
$lang->project->statusList[''] = '';
$lang->project->statusList['wait'] = 'Waiting';
$lang->project->statusList['doing'] = 'Doing';
$lang->project->statusList['suspended'] = 'On Hold';
$lang->project->statusList['closed'] = 'Closed';
$lang->project->statusList['delay'] = 'Delayed';
$lang->project->endList[31] = 'One month';
$lang->project->endList[93] = '3 months';
$lang->project->endList[186] = 'Half year';
$lang->project->endList[365] = 'One year';
$lang->project->endList[999] = 'Long-term';
$lang->project->ipdTitle = "Integrated Product Development";
$lang->project->scrumTitle = 'Agile Development Management';
$lang->project->waterfallTitle = "Waterfall {$lang->projectCommon} Management";
$lang->project->kanbanTitle = "Kanban {$lang->projectCommon} Management";
$lang->project->agileplusTitle = "Scrum + Kanban {$lang->projectCommon} Management";
$lang->project->waterfallplusTitle = "Waterfall + Scrum + Kanban {$lang->projectCommon} Management";
$lang->project->moreModelTitle = 'More models will coming soon.';
$lang->project->empty = "No {$lang->projectCommon}s available yet.";
$lang->project->nextStep = 'Next';
$lang->project->hoursUnit = '%s hours';
$lang->project->workHourUnit = 'H';
$lang->project->membersUnit = '%s men';
$lang->project->lastIteration = "Recent {$lang->executionCommon}";
$lang->project->lastKanban = 'Recent Kanban';
$lang->project->ongoingStage = 'Ongoing Phases';
$lang->project->ipd = 'IPD';
$lang->project->scrum = 'Scrum';
$lang->project->waterfall = 'Waterfall';
$lang->project->agileplus = 'Agile +';
$lang->project->waterfallplus = 'Waterfall +';
$lang->project->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
$lang->project->emptyPM = 'No data available.';
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
$lang->project->cannotCancelCat = "It has child {$lang->projectCommon}s, so you cannot unmark the parent.";
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->project->childLongTime = "If a child as long-term {$lang->projectCommon}s, the parent should be long-term too.";
$lang->project->readjustTime = "Change the {$lang->projectCommon} start and end dates.";
$lang->project->notAllowRemoveProducts = "The stories in this {$lang->productCommon} are linked to the {$lang->projectCommon}, or an {$lang->execution->common} under the {$lang->projectCommon}is linked to this {$lang->productCommon}. Please remove the associations and try again.";
$lang->project->ge = "『%s』should not be earlier than the actual start date『%s』.";
$lang->project->programTitle['0'] = 'Hidden';
$lang->project->programTitle['base'] = "Show top-level {$lang->projectCommon} only";
$lang->project->programTitle['end'] = "Show lowest-level {$lang->projectCommon} only";
$lang->project->accessDenied = "Access denied to this {$lang->projectCommon}.";
$lang->project->chooseProgramType = 'Select management type';
$lang->project->cannotCreateChild = "It already contains actual data, so you cannot add a child. You can add a parent for it, and then create a child.";
$lang->project->hasChildren = "This {$lang->projectCommon} has a child {$lang->projectCommon}, so it cannot be deleted.";
$lang->project->confirmDelete = "Are you sure you want to delete {$lang->projectCommon}“%s”?";
$lang->project->confirmDisableStoryType = "After cancellation, all corresponding conceptual stories that linked to the project and its executions will be removed. This action is irreversible.";
$lang->project->cannotChangeToCat = "It already contains actual data, so you cannot convert it into a parent.";
$lang->project->cannotCancelCat = "It has child {$lang->projectCommon}s, so you cannot unmark the parent.";
$lang->project->parentBeginEnd = "Parent {$lang->projectCommon} duration: %s ~ %s";
$lang->project->parentBudget = "The budget of the parent program: ";
$lang->project->confirmCreateStage = "Data already exists under this phase. Are you sure you want to split it? If you proceed with the split, to maintain data consistency, existing data will be recorded in the first {$lang->execution->common} created from the split.";
$lang->project->beginLessThanParent = "The start date of the {$lang->projectCommon} is earlier than the start date of the parent program: %s.";
$lang->project->endGreatThanParent = "The end date of the {$lang->projectCommon} is later than the end date of the parent program: %s. ";
$lang->project->dateExceedParent = "The start and end date of the {$lang->projectCommon} exceeds the data range of the parent program:";
$lang->project->beginGreatEqualChild = "The start date of the {$lang->projectCommon} should be on or after the start date of program: %s.";
$lang->project->endLessThanChild = "The end date of the {$lang->projectCommon} should be on or before the end date of program: %s.";
$lang->project->beginLessEqualExecution = "The start date of {$lang->projectCommon} should be on or before the start date of the earliest execution: %s.";
$lang->project->endGreatEqualExecution = "The end date of the {$lang->projectCommon} should be on or after the end date of the execution: %s.";
$lang->project->childLongTime = "Since there are long-term {$lang->projectCommon}s under this parent, the parent {$lang->projectCommon} should also be marked as long-term.";
$lang->project->confirmUnlinkMember = "Are you sure you want to remove the user from {$lang->projectCommon}?";
$lang->project->stageByTips = "Create a single phase set for the {$lang->projectCommon} where each phase is linked to all {$lang->productCommon}s; or create multiple phase sets by {$lang->productCommon}, with each set linked to one {$lang->productCommon} only.";
$lang->project->confirmCloseProject = "There are unclosed {$lang->executionCommon}s under this {$lang->projectCommon}: %s. Are you sure you want to close the {$lang->projectCommon}?";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, managed by <strong>$actor</strong>. $extra' . "\n";
$lang->project->multiple = "Enable {$lang->executionCommon}";
$lang->project->copyProject = new stdClass();
$lang->project->copyProject->nameTips = "『{$lang->projectCommon} Name』Cannot be repeated.";
$lang->project->copyProject->codeTips = "『{$lang->projectCommon} Code』Cannot be repeated.";
$lang->project->copyProject->endTips = '『Planned End』Cannot be empty.';
$lang->project->copyProject->daysTips = '『Work Days』Should be a numeric value.';
$lang->project->linkBranchStoryByPlanTips = "When linking stories by plan, only the active stories associated with the {$lang->projectCommon} %s will be imported.";
$lang->project->linkNormalStoryByPlanTips = "When linking stories by plan, only the active stories will be imported.";
$lang->project->cannotManageProducts = "This project is a {$lang->projectCommon}-based {$lang->projectCommon} and cannot be associated with {$lang->productCommon}s.";
$lang->project->featureBar['dynamic']['all'] = 'All';
$lang->project->featureBar['dynamic']['today'] = 'Today';
$lang->project->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->project->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->project->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->project->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->project->featureBar['dynamic']['lastMonth'] = 'Last Month';
$lang->project->moreSelects = array();
$lang->project->moreSelects['browse']['more']['suspended'] = 'On Hold';
$lang->project->moreSelects['browse']['more']['delayed'] = 'Delayed';
$lang->project->moreSelects['browse']['more']['closed'] = 'Closed';
$lang->project->executionList['scrum'] = $lang->projectCommon . ' Sprint';
$lang->project->executionList['waterfall'] = $lang->projectCommon . ' Phase';
$lang->project->executionList['kanban'] = $lang->projectCommon . ' Kanban';
$lang->project->executionList['agileplus'] = $lang->projectCommon . ' Sprint';
$lang->project->executionList['waterfallplus'] = $lang->projectCommon . ' Phase';
$lang->project->featureBar['team']['all'] = 'Members';
$lang->project->featureBar['managemembers']['all'] = 'Manage Team';
$lang->project->coverExecutionPrivList = array();
$lang->project->coverExecutionPrivList[1] = 'Open (After enabling, you can control permissions for executing functions (such as tasks, burn-down charts, tests, etc.) in the "Project Custom Permissions" section. This action is irreversible.)';
$lang->project->coverExecutionPrivList[0] = 'Close';
$lang->project->api = new stdclass();
$lang->project->api->error = new stdclass();
$lang->project->api->error->productNotFound = 'The product is not exist.';
$lang->project->disabledHint = new stdclass();
$lang->project->disabledHint->linkedStory = "{$lang->projectCommon} has {$lang->SRCommon} linked from {$lang->productCommon} and cannot be unlinked. Please unlink {$lang->SRCommon} first before proceeding.";
$lang->project->disabledHint->createdStage = "{$lang->productCommon} has existing phases. To unlink it from {$lang->projectCommon}, please delete the existing phases first.";
$lang->project->disabledHint->linkedStoryAndStage = "{$lang->productCommon} has existing phases and linked {$lang->SRCommon}. To unlink it from {$lang->projectCommon}, please remove the {$lang->SRCommon} associations first and then delete the existing phased.";
$lang->project->disabledHint->linkedStoryAndExecution = "{$lang->SRCommon} under {$lang->productCommon} is currently linked to {$lang->projectCommon} and {$lang->execution->common}. Please remove the {$lang->SRCommon} associations from {$lang->projectCommon} and {$lang->execution->common} first before proceeding.";

View file

@ -0,0 +1,32 @@
<?php
/**
* The project build module en file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yuchun Li <liyuchun@cnezsoft.com>
* @package projectrelease
* @version $Id: zh-cn.php 4129 2020-11-27 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->projectbuild->common = $lang->projectCommon . ' Build';
$lang->projectbuild->browse = 'Build List';
$lang->projectbuild->create = "Create Build";
$lang->projectbuild->edit = "Edit Build";
$lang->projectbuild->delete = "Delete Build";
$lang->projectbuild->view = "Build Details";
$lang->projectbuild->linkStory = "Link {$lang->SRCommon}";
$lang->projectbuild->linkBug = "Link {$lang->SRCommon}";
$lang->projectbuild->unlinkStory = "Unlink {$lang->SRCommon}";
$lang->projectbuild->unlinkBug = "Unlink Bug";
$lang->projectbuild->batchUnlink = 'Batch Unlink';
$lang->projectbuild->batchUnlinkStory = "Batch Unlink {$lang->SRCommon}";
$lang->projectbuild->batchUnlinkBug = 'Batch Unlink Bugs';
$lang->projectbuild->name = 'Name';
$lang->projectbuild->execution = $lang->executionCommon;
$lang->projectbuild->product = $lang->productCommon;
$lang->projectbuild->scmPath = 'SCM Path';
$lang->projectbuild->filePath = 'Download Path';
$lang->projectbuild->desc = 'Description';
$lang->projectbuild->systemName = $lang->product->system;
$lang->projectbuild->system = $lang->product->system;

View file

@ -0,0 +1,7 @@
<?php
$lang->projectplan = new stdclass();
$lang->projectplan->common = "{$lang->projectCommon} Plan";
$lang->projectplan->browse = "{$lang->projectCommon} Plan List";
$lang->projectplan->create = "Create {$lang->projectCommon} Plan";
$lang->projectplan->edit = "Edit {$lang->projectCommon} Plan";
$lang->projectplan->view = "View {$lang->projectCommon} Plan";

View file

@ -0,0 +1,37 @@
<?php
/**
* The release module zh-cn file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yuchun Li <liyuchun@cnezsoft.com>
* @package release
* @version $Id: zh-cn.php 4129 2020-11-27 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->projectrelease->common = 'Release';
$lang->projectrelease->create = "Create Release";
$lang->projectrelease->edit = "Edit Release";
$lang->projectrelease->linkStory = "Link Story";
$lang->projectrelease->linkBug = "Link Bug";
$lang->projectrelease->delete = "Delete Release";
$lang->projectrelease->deleted = 'Deleted';
$lang->projectrelease->view = "Release Details";
$lang->projectrelease->browse = "Release List";
$lang->projectrelease->changeStatus = "Change Status";
$lang->projectrelease->batchUnlink = "Batch Unlink";
$lang->projectrelease->batchUnlinkStory = "Batch Unlink Stories";
$lang->projectrelease->batchUnlinkBug = "Batch Unlink Bugs";
$lang->projectrelease->unlinkStory = "Unlink {$lang->SRCommon}";
$lang->projectrelease->unlinkBug = 'Unlink Bug';
$lang->projectrelease->export = 'Export HTML';
$lang->projectrelease->browseAction = "Release List";
$lang->projectrelease->notify = 'Notification';
$lang->projectrelease->publish = "Publish";
$lang->projectrelease->product = $lang->productCommon;
$lang->projectrelease->name = $lang->product->system . ' Version';
$lang->projectrelease->featureBar['browse']['all'] = 'All';
$lang->projectrelease->featureBar['browse']['wait'] = 'Waiting';
$lang->projectrelease->featureBar['browse']['normal'] = 'Release Completed';
$lang->projectrelease->featureBar['browse']['terminate'] = 'Terminated';

View file

@ -0,0 +1,49 @@
<?php
/* Field. */
$lang->projectstory->project = "{$lang->projectCommon}ID";
$lang->projectstory->product = "{$lang->productCommon} ID";
$lang->projectstory->story = "Story ID";
$lang->projectstory->version = "Version";
$lang->projectstory->order = "Sort";
$lang->projectstory->storyCommon = $lang->projectCommon . ' Story';
$lang->projectstory->storyList = $lang->projectCommon . ' Story List';
$lang->projectstory->storyView = $lang->projectCommon . ' Story Details';
$lang->projectstory->common = "{$lang->projectCommon} Story";
$lang->projectstory->index = "Story Homepage";
$lang->projectstory->view = "Story Details";
$lang->projectstory->story = "Story List";
$lang->projectstory->track = 'Traceability Matrix';
$lang->projectstory->linkStory = 'Link Story';
$lang->projectstory->unlinkStory = 'Unlink Story';
$lang->projectstory->report = 'Story Report';
$lang->projectstory->export = 'Export Stories';
$lang->projectstory->batchReview = 'Batch Review Stories';
$lang->projectstory->batchClose = 'Batch Close Stories';
$lang->projectstory->batchChangePlan = 'Batch Change Plans';
$lang->projectstory->batchAssignTo = 'Batch Assign Stories';
$lang->projectstory->batchEdit = 'Batch Edit Stories';
$lang->projectstory->importToLib = 'Import To Story Library';
$lang->projectstory->batchImportToLib = 'Batch Import To Story Library';
$lang->projectstory->importCase = 'Import Stories';
$lang->projectstory->exportTemplate = 'Export Template';
$lang->projectstory->batchUnlinkStory = 'Batch Unlink Stories';
$lang->projectstory->importplanstories = 'Link Stories by Plan';
$lang->projectstory->trackAction = 'Traceability Matrix';
$lang->projectstory->confirm = 'Confirm';
/* Notice. */
$lang->projectstory->whyNoStories = "No story can be linked. Please check whether there is any story in {$lang->projectCommon} which is linked to {$lang->productCommon} and make sure it has been reviewed.";
$lang->projectstory->batchUnlinkTip = "All other stories have been removed. The following ones are linked to executions under this {$lang->projectCommon}. Remove them before proceeding.";
$lang->projectstory->featureBar['story']['allstory'] = 'All';
$lang->projectstory->featureBar['story']['unclosed'] = 'Open';
$lang->projectstory->featureBar['story']['draft'] = 'Draft';
$lang->projectstory->featureBar['story']['reviewing'] = 'Reviewing';
$lang->projectstory->featureBar['story']['changing'] = 'Changing';
$lang->projectstory->featureBar['story']['more'] = $lang->more;
$lang->projectstory->moreSelects['story']['more']['closed'] = 'Closed';
$lang->projectstory->moreSelects['story']['more']['linkedexecution'] = 'Linked ' . $lang->execution->common;
$lang->projectstory->moreSelects['story']['more']['unlinkedexecution'] = 'Unlinked ' . $lang->execution->common;

13
module/qa/lang/ru.php Normal file
View file

@ -0,0 +1,13 @@
<?php
/**
* The qa module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package company
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->qa->index = 'QA Home';
$lang->qa->indexAction = 'Test Overview';

139
module/release/lang/ru.php Executable file
View file

@ -0,0 +1,139 @@
<?php
/**
* The release module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package release
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->release->create = 'Create Release';
$lang->release->edit = 'Edit Release';
$lang->release->linkStory = 'Link Story';
$lang->release->linkBug = 'Link Bug';
$lang->release->delete = 'Delete Release';
$lang->release->deleted = 'Deleted';
$lang->release->view = 'Release Details';
$lang->release->browse = 'Release List';
$lang->release->publish = 'Publish';
$lang->release->changeStatus = 'Change Status';
$lang->release->batchUnlink = 'Batch Unlink';
$lang->release->batchUnlinkStory = 'Batch Unlink Stories';
$lang->release->batchUnlinkBug = 'Batch Unlink Bugs';
$lang->release->manageSystem = 'Manage ' . $lang->product->system;
$lang->release->addSystem = 'Add ' . $lang->product->system;
$lang->release->consumed = 'Cost';
$lang->release->confirmDelete = 'Are you sure you want to delete this release?';
$lang->release->syncFromBuilds = "Link completed stories and fixed bugs from the build to the release.";
$lang->release->confirmUnlinkStory = 'Are you sure you want to unlink this story?';
$lang->release->confirmUnlinkBug = 'Are you sure you want to unlink this bug?';
$lang->release->existBuild = 'The 『build』 already contains the record 『%s』. You can change the 『release name』 or select a different 『build』.';
$lang->release->noRelease = 'No releases yet.';
$lang->release->errorDate = 'Release date should not be later than today.';
$lang->release->confirmActivate = 'Are you sure you want to activate this release?';
$lang->release->confirmTerminate = 'Are you sure you want to terminate this release?';
$lang->release->confirmPublish = 'Are you sure you want to publish this release?';
$lang->release->basicInfo = 'Basic Info';
$lang->release->id = 'ID';
$lang->release->product = $lang->productCommon;
$lang->release->branch = 'Platform / Branch';
$lang->release->project = $lang->projectCommon;
$lang->release->build = 'Build';
$lang->release->includedBuild = 'Include Build';
$lang->release->includedSystem = 'Include ' . $lang->product->system;
$lang->release->releases = $lang->release->includedSystem;
$lang->release->includedApp = 'Included ' . $lang->product->system;
$lang->release->relatedProject = 'Related ' . $lang->projectCommon;
$lang->release->system = $lang->product->system;
$lang->release->selectSystem = 'Select ' . $lang->product->system;
$lang->release->name = $lang->product->system . ' Version';
$lang->release->marker = 'Milestone';
$lang->release->date = 'Planned Release Date';
$lang->release->releasedDate = 'Actual Release Date';
$lang->release->desc = 'Description';
$lang->release->files = 'Files';
$lang->release->status = 'Release Status';
$lang->release->subStatus = 'Substatus';
$lang->release->last = 'Latest Version';
$lang->release->unlinkStory = 'Unlink Story';
$lang->release->unlinkBug = 'Unlink Bug';
$lang->release->stories = 'Completed Story';
$lang->release->bugs = 'Fixed Bug';
$lang->release->leftBugs = 'Active Bug';
$lang->release->generatedBugs = 'Active Bug';
$lang->release->createdBy = 'Creator';
$lang->release->createdDate = 'Created on';
$lang->release->finishStories = '%s stories completed';
$lang->release->resolvedBugs = '%s bugs fixed';
$lang->release->createdBugs = '%s bugs remaining active';
$lang->release->export = 'Export HTML';
$lang->release->yesterday = 'Released Yesterday';
$lang->release->all = 'All';
$lang->release->allProject = 'All Projects';
$lang->release->notify = 'Notify';
$lang->release->notifyUsers = 'Notify Users';
$lang->release->mailto = 'Mail to';
$lang->release->mailContent = '<p>Dear user,</p><p style="margin-left:30px;">The following requirements and bugs you reported have been released in version %s. Please contact your account manager to check the latest version.</p>';
$lang->release->storyList = '<p style="margin-left:30px;">Story List:%s。</p>';
$lang->release->bugList = '<p style="margin-left:30px;">Bug List:%s。</p>';
$lang->release->pageAllSummary = ' <strong>%s</strong> releases onthis page: <strong>%s</strong> released, <strong>%s</strong> terminated.';
$lang->release->pageSummary = " <strong>%s</strong> releases onthis page: ";
$lang->release->fileName = 'File name';
$lang->release->exportRange = 'Data to export';
$lang->release->storyTitle = 'Story Name';
$lang->release->bugTitle = 'Bug Name';
$lang->release->filePath = 'Download: ';
$lang->release->scmPath = 'SCM Path: ';
$lang->release->exportTypeList['all'] = 'All';
$lang->release->exportTypeList['story'] = $lang->release->stories;
$lang->release->exportTypeList['bug'] = $lang->release->bugs;
$lang->release->exportTypeList['leftbug'] = $lang->release->leftBugs;
$lang->release->resultList['normal'] = 'Released';
$lang->release->resultList['fail'] = 'Release Failed';
$lang->release->statusList['wait'] = 'Waiting';
$lang->release->statusList['normal'] = 'Released';
$lang->release->statusList['fail'] = 'Release Failed';
$lang->release->statusList['terminate'] = 'Terminate';
$lang->release->changeStatusList['wait'] = 'Publish';
$lang->release->changeStatusList['normal'] = 'Activate';
$lang->release->changeStatusList['terminate'] = 'Terminate';
$lang->release->changeStatusList['publish'] = 'Publish';
$lang->release->changeStatusList['active'] = 'Activate';
$lang->release->changeStatusList['pause'] = 'Terminate';
$lang->release->action = new stdclass();
$lang->release->action->changestatus = array('main' => '$date, $extra by <strong>$actor</strong>.', 'extra' => 'changeStatusList');
$lang->release->action->notified = array('main' => '$date, notification sended by <strong>$actor</strong> .');
$lang->release->action->published = array('main' => '$date, published by <strong>$actor</strong> and the result is <strong>$extra</strong>.', 'extra' => 'resultList');
$lang->release->notifyList['FB'] = "Feedback Provider";
$lang->release->notifyList['PO'] = "{$lang->productCommon} Owner";
$lang->release->notifyList['QD'] = 'Test Manager';
$lang->release->notifyList['SC'] = 'Story Creator';
$lang->release->notifyList['ET'] = "{$lang->execution->common} Team Members";
$lang->release->notifyList['PT'] = "{$lang->projectCommon} Team Members";
$lang->release->notifyList['CT'] = "Mail to";
$lang->release->featureBar['browse']['all'] = $lang->release->all;
$lang->release->featureBar['browse']['wait'] = $lang->release->statusList['wait'];
$lang->release->featureBar['browse']['normal'] = $lang->release->statusList['normal'];
$lang->release->featureBar['browse']['fail'] = $lang->release->statusList['fail'];
$lang->release->featureBar['browse']['terminate'] = $lang->release->statusList['terminate'];
$lang->release->markerList[1] = 'Yes';
$lang->release->markerList[0] = 'No';
$lang->release->failTips = 'Deployment/Release failed';
$lang->release->versionErrorTip = 'Version number can only contain letters, digits, hyphens (-), dots (.), and underscores (_).';
$lang->release->integratedLabel = 'Intergration';

313
module/repo/lang/ru.php Normal file
View file

@ -0,0 +1,313 @@
<?php
global $config;
$lang->repo->common = 'Repo';
$lang->repo->codeRepo = 'Code Library';
$lang->repo->browse = 'View';
$lang->repo->viewRevision = 'View Revision';
$lang->repo->product = $lang->productCommon;
$lang->repo->projects = $lang->projectCommon;
$lang->repo->execution = $lang->execution->common;
$lang->repo->create = 'Create';
$lang->repo->maintain = 'Repo List';
$lang->repo->edit = 'Edit';
$lang->repo->delete = 'Unlink Repo';
$lang->repo->showSyncCommit = 'Display Sync';
$lang->repo->ajaxSyncCommit = 'Interface: Ajax Sync Note';
$lang->repo->setRules = 'Set Rules';
$lang->repo->download = 'Download File';
$lang->repo->downloadDiff = 'Download Diff';
$lang->repo->addBug = 'Add Review';
$lang->repo->editBug = 'Edit Bug';
$lang->repo->deleteBug = 'Delete Bug';
$lang->repo->addComment = 'Add Comment';
$lang->repo->editComment = 'Edit Comment';
$lang->repo->deleteComment = 'Delete Comment';
$lang->repo->encrypt = 'Encrypt';
$lang->repo->repo = 'Repository';
$lang->repo->parent = 'Parent File';
$lang->repo->branch = 'Branch';
$lang->repo->tag = 'Tag';
$lang->repo->addWebHook = 'Add Webhook';
$lang->repo->apiGetRepoByUrl = 'API: Get repo by URL';
$lang->repo->blameTmpl = 'Code for line <strong>%line</strong>: %name commited at %time, %version %comment';
$lang->repo->notRelated = 'There is currently no related ZenTao object';
$lang->repo->source = 'Criterion';
$lang->repo->target = 'Contrast';
$lang->repo->descPlaceholder = 'One sentence description';
$lang->repo->namespace = 'Namespace';
$lang->repo->branchName = 'Branch Name';
$lang->repo->branchFrom = 'Create From';
$lang->repo->codeBranch = 'Code branch';
$lang->repo->createdBranch = 'Created branch';
$lang->repo->unlink = 'Unlink';
$lang->repo->visit = 'Visit';
$lang->repo->createBranchAction = 'Create Branch';
$lang->repo->createTagAction = 'Create Tag';
$lang->repo->browseAction = 'Browse Repo';
$lang->repo->createAction = 'Import Repo';
$lang->repo->editAction = 'Edit Repo';
$lang->repo->diffAction = 'Compare Code';
$lang->repo->downloadAction = 'Download File';
$lang->repo->revisionAction = 'Revision Detail';
$lang->repo->blameAction = 'Blame';
$lang->repo->reviewAction = 'Review List';
$lang->repo->downloadCode = 'Download Code';
$lang->repo->downloadZip = 'Download compressed package';
$lang->repo->sshClone = 'Clone with SSH';
$lang->repo->httpClone = 'Clone with HTTP';
$lang->repo->cloneUrl = 'Clone URL';
$lang->repo->linkTask = 'Link Task';
$lang->repo->unlinkedTasks = 'Unlinked Tasks';
$lang->repo->importAction = 'Import Repo';
$lang->repo->import = 'Import';
$lang->repo->importName = 'Name after import';
$lang->repo->importServer = 'Please select a server';
$lang->repo->hide = 'hide';
$lang->repo->show = 'show';
$lang->repo->showHidden = 'Show hidden repositories';
$lang->repo->gitlabList = 'Gitlab Repo';
$lang->repo->batchCreate = 'Batch import repo';
$lang->repo->browseTag = 'Browse Tag';
$lang->repo->browseBranch = 'Browse Branch';
$lang->repo->createRepoAction = 'Create origin repository';
$lang->repo->submit = 'Submit';
$lang->repo->cancel = 'Cancel';
$lang->repo->addComment = 'Add Comment';
$lang->repo->addIssue = 'Add Issue';
$lang->repo->compare = 'Compare';
$lang->repo->copy = 'Click to copy';
$lang->repo->copied = 'Copy successful';
$lang->repo->module = 'Module';
$lang->repo->type = 'Type';
$lang->repo->assign = 'AssignTo';
$lang->repo->title = 'Title';
$lang->repo->detile = 'Detail';
$lang->repo->lines = 'Lines';
$lang->repo->line = 'Line';
$lang->repo->expand = 'Unfold';
$lang->repo->collapse = 'Fold';
$lang->repo->id = 'ID';
$lang->repo->SCM = 'Type';
$lang->repo->name = 'Name';
$lang->repo->path = 'Path';
$lang->repo->prefix = 'Prefix';
$lang->repo->config = 'Config';
$lang->repo->desc = 'Description';
$lang->repo->account = 'Username';
$lang->repo->password = 'Password';
$lang->repo->encoding = 'Encoding';
$lang->repo->client = 'Client Path';
$lang->repo->size = 'Size';
$lang->repo->revision = 'Revision';
$lang->repo->revisionA = 'Revision';
$lang->repo->revisions = 'Revision';
$lang->repo->time = 'Date';
$lang->repo->committer = 'Committer';
$lang->repo->commits = 'Commits';
$lang->repo->synced = 'Initialize Sync';
$lang->repo->lastSync = 'Last Sync';
$lang->repo->deleted = 'Deleted';
$lang->repo->commit = 'Commit';
$lang->repo->comment = 'Comment';
$lang->repo->view = 'View File';
$lang->repo->viewA = 'View';
$lang->repo->log = 'Revision Log';
$lang->repo->blame = 'Blame';
$lang->repo->date = 'Date';
$lang->repo->diff = 'Diff';
$lang->repo->diffAB = 'Diff';
$lang->repo->diffAll = 'Diff All';
$lang->repo->viewDiff = 'View diff';
$lang->repo->allLog = 'Commits';
$lang->repo->codeLocation = 'Code Location';
$lang->repo->action = 'Action';
$lang->repo->code = 'Code';
$lang->repo->review = 'Repo Review';
$lang->repo->acl = 'ACL';
$lang->repo->group = 'Group';
$lang->repo->user = 'User';
$lang->repo->info = 'Version Info';
$lang->repo->job = 'Job';
$lang->repo->fileServerUrl = 'File Server Url';
$lang->repo->fileServerAccount = 'File Server Account';
$lang->repo->fileServerPassword = 'File Server Password';
$lang->repo->linkStory = 'Link ' . $lang->SRCommon;
$lang->repo->linkBug = 'Link Bug';
$lang->repo->linkTask = 'Link Task';
$lang->repo->unlink = 'Unlink';
$lang->repo->viewBugs = 'View Bugs';
$lang->repo->lastSubmitTime = 'Final submission time';
$lang->repo->lastCommitter = 'Committer';
$lang->repo->lastUpdateTime = 'Last update time';
$lang->repo->createdBy = 'Creator';
$lang->repo->sourceCommit = 'Commit';
$lang->repo->relations = 'Relations';
$lang->repo->story = 'story';
$lang->repo->searchTips = 'Search by %s';
$lang->repo->design = 'Design';
$lang->repo->bug = 'Bug';
$lang->repo->task = 'Task';
$lang->repo->title = 'Title';
$lang->repo->status = 'Status';
$lang->repo->openedBy = 'Created by';
$lang->repo->assignedTo = 'Assigned to';
$lang->repo->openedDate = 'Created Date';
$lang->repo->actionInfo = "Add by %s in %s";
$lang->repo->changes = "Change Log";
$lang->repo->reviewLocation = "File: %s@%s, Line: %s - %s";
$lang->repo->commentEdit = '<i class="icon-pencil"></i>';
$lang->repo->commentDelete = '<i class="icon-remove"></i>';
$lang->repo->allChanges = "Other Changes";
$lang->repo->commitTitle = "The %sth Commit";
$lang->repo->mark = "Mark Tag";
$lang->repo->split = "Split Mark";
$lang->repo->objectRule = 'Object Rule';
$lang->repo->objectIdRule = 'Object ID Rule';
$lang->repo->actionRule = 'Action Rule';
$lang->repo->manHourRule = 'Man-hour Rule';
$lang->repo->ruleUnit = "Unit";
$lang->repo->ruleSplit = "Multiple keywords are divided by ';', e.g. task multiple keywords: Task;task";
$lang->repo->viewDiffList['inline'] = 'Inline';
$lang->repo->viewDiffList['appose'] = 'Parallel';
$lang->repo->encryptList['plain'] = 'No encryption';
$lang->repo->encryptList['base64'] = 'BASE64';
$lang->repo->logStyles['A'] = 'Add';
$lang->repo->logStyles['M'] = 'Modification';
$lang->repo->logStyles['D'] = 'Delete';
$lang->repo->encodingList['utf_8'] = 'UTF-8';
$lang->repo->encodingList['gbk'] = 'GBK';
$lang->repo->scmList['Gitlab'] = 'GitLab';
if(!$config->inQuickon && !$config->inCompose)
{
$lang->repo->scmList['Gitea'] = 'Gitea';
$lang->repo->scmList['Gogs'] = 'Gogs';
$lang->repo->scmList['Git'] = 'Git';
$lang->repo->scmList['Subversion'] = 'SVN';
}
$lang->repo->aclList['private'] = 'Private(The product personnel can access it)';
$lang->repo->aclList['open'] = 'Open(Users with privileges to CI&CD can access it)';
$lang->repo->aclList['custom'] = 'Custom';
$lang->repo->gitlabHost = 'GitLab Host';
$lang->repo->gitlabToken = 'GitLab Token';
$lang->repo->gitlabProject = 'Project';
$lang->repo->serviceHost = 'Host';
$lang->repo->serviceProject = 'Project';
$lang->repo->placeholder = new stdclass;
$lang->repo->placeholder->gitlabHost = 'Input url of gitlab';
$lang->repo->notice = new stdclass();
$lang->repo->notice->syncing = 'Synchronizing. Please wait ...';
$lang->repo->notice->syncComplete = 'Synchronized. Now redirecting ...';
$lang->repo->notice->syncFailed = 'Synchronized failed.';
$lang->repo->notice->syncedCount = 'The number of records synchronized is ';
$lang->repo->notice->delete = 'Do you want to unlink the code library?';
$lang->repo->notice->deleteConfirm = 'Do you want to delete the library? This operation will permanently remove the library and all content and history records, and cannot be recovered.';
$lang->repo->notice->successDelete = 'Successfully disassociated code repository.';
$lang->repo->notice->commentContent = 'Comment';
$lang->repo->notice->deleteReview = 'Do you want to delete this review?';
$lang->repo->notice->deleteBug = 'Do you want to delete this bug?';
$lang->repo->notice->deleteComment = 'Do you want to delete this comment?';
$lang->repo->notice->lastSyncTime = 'Last Sync:';
$lang->repo->notice->unlinkBranch = 'Are you sure to disassociate the branch from %s?';
$lang->repo->notice->noRepoLeft = 'All repositories has been associated to ZenTaoPMS, please choose another server.';
$lang->repo->notice->noChanges = 'No Changes';
$lang->repo->notice->storyNotActive = 'Story is not active, cannot create branch.';
$lang->repo->notice->taskNotActive = 'Task is not waiting or doing, cannot create branch.';
$lang->repo->notice->bugNotActive = 'Bug is not active, cannot create branch.';
$lang->repo->rules = new stdclass();
$lang->repo->rules->exampleLabel = "Comment Example";
$lang->repo->rules->example['task']['start'] = "%start% %task% %id%1%split%2 %cost%%consumedmark%1%cunit% %left%%leftmark%3%lunit%";
$lang->repo->rules->example['task']['finish'] = "%finish% %task% %id%1%split%2 %cost%%consumedmark%10%cunit%";
$lang->repo->rules->example['task']['effort'] = "%effort% %task% %id%1%split%2 %cost%%consumedmark%1%cunit% %left%%leftmark%3%lunit%";
$lang->repo->rules->example['bug']['resolve'] = "%resolve% %bug% %id%1%split%2";
$lang->repo->error = new stdclass();
$lang->repo->error->useless = 'Your server disabled exec and shell_exec, so it cannot be applied.';
$lang->repo->error->connect = 'Connection to the repo failed. Please enter username, password and repo address correctly!';
$lang->repo->error->version = 'Version 1.8+ of https and svn protocol is required. Please update to latest version! Go to http://subversion.apache.org/';
$lang->repo->error->path = 'Repo address is the file path, e.g. /home/test.';
$lang->repo->error->cmd = 'Client Error!';
$lang->repo->error->diff = 'Two versions must be selected.';
$lang->repo->error->safe = "For security reasons, the client version needs to be detected. Please write the version to the file %s. \n Execute command: %s";
$lang->repo->error->product = "Please select {$lang->productCommon}!";
$lang->repo->error->commentText = 'Please enter content for review!';
$lang->repo->error->comment = 'Please enter content!';
$lang->repo->error->title = 'Please enter title!';
$lang->repo->error->accessDenied = 'You do not have the privilege to access the repository.';
$lang->repo->error->noFound = 'The repo is not found.';
$lang->repo->error->empty = 'Repo is empty, cannot sync logs.';
$lang->repo->error->noFile = '%s does not exist or has no permission.';
$lang->repo->error->noPriv = 'The program does not have the privilege to switch to %s';
$lang->repo->error->output = "The command is: %s\nThe error is(%s): %s\n";
$lang->repo->error->clientVersion = "Client version is too low, please upgrade or change SVN client";
$lang->repo->error->encoding = "The encoding might be wrong. Please change the encoding and try again.";
$lang->repo->error->deleted = "Release failed, submission record associated with design, design numbers ( %s ).<br/>";
$lang->repo->error->linkedBranch = "Release failed, code repository associated with branch, branch types are ( %s ) branches are ( %s ).<br/>";
$lang->repo->error->linkedJob = "Release failed, code library is associated with build, build numbers are ( %s ).<br/>";
$lang->repo->error->clientPath = "The client installation directory cannot have spaces!";
$lang->repo->error->notFound = "The repository %s’s URL %s does not exist. Please confirm if this repository has been deleted from the local server.";
$lang->repo->error->noWritable = '%s is not writable! Please check the privilege, or download will not be done.';
$lang->repo->error->noCloneAddr = 'The repository clone address was not found';
$lang->repo->error->differentVersions = 'The criterion and contrast cannot be the same';
$lang->repo->error->needTwoVersion = 'Two branches or tags must be selected.';
$lang->repo->error->projectUnique = $lang->repo->serviceProject . " exists. Go to Admin->System->Data->Recycle Bin to restore it, if you are sure it is deleted.";
$lang->repo->error->repoNameInvalid = 'The name should contain only alphanumeric numbers, dashes, underscores, and dots.';
$lang->repo->error->createdFail = 'Create failed';
$lang->repo->error->noProduct = 'Please associate the product before starting to export the code repository.';
$lang->repo->syncTips = '<strong>You may find the reference about how to set Git sync from <a target="_blank" href="https://www.zentao.pm/book/zentaomanual/free-open-source-project-management-software-git-105.html">here</a>.</strong>';
$lang->repo->encodingsTips = "The encodings of comments can be comma separated values, e.g. utf-8.";
$lang->repo->pathTipsForGitlab = "GitLab Project URL";
$lang->repo->example = new stdclass();
$lang->repo->example->client = new stdclass();
$lang->repo->example->path = new stdclass();
$lang->repo->example->client->git = "e.g. /usr/bin/git";
$lang->repo->example->client->svn = "e.g. /usr/bin/svn";
$lang->repo->example->path->git = "e.g. /home/user/myproject";
$lang->repo->example->path->svn = "e.g. http://example.googlecode.com/svn/trunk/myproject";
$lang->repo->example->config = "Config directory is required in https. Use '--config-dir' to generate config dir.";
$lang->repo->example->encoding = "input encoding of files";
$lang->repo->typeList['standard'] = 'Standard';
$lang->repo->typeList['performance'] = 'Performance';
$lang->repo->typeList['security'] = 'Security';
$lang->repo->typeList['redundancy'] = 'Redundancy';
$lang->repo->typeList['logicError'] = 'Logic Error';
$lang->repo->featureBar['maintain']['all'] = 'All';
$lang->repo->errorLang[0] = "Can contain only letters, digits, '_', '-' and '.'. Cannot start with '-', end in '.git' or end in '.atom'";
$lang->repo->errorLang[1] = 'Branch is exists';
$lang->repo->errorLang[2] = 'Branch already exists';
$lang->repo->errorLang[3] = 'Forbidden';
$lang->repo->errorLang[4] = 'Cannot have ASCII control characters';
$lang->repo->errorLang[5] = 'Created fail';
$lang->repo->errorLang[6] = 'Forbidden';
$lang->repo->apiError[0] = "can contain only letters, digits, '_', '-' and '.'. Cannot start with '-', end in '.git' or end in '.atom'";
$lang->repo->apiError[1] = 'Branch is exists';
$lang->repo->apiError[2] = 'branch.* already exists';
$lang->repo->apiError[3] = 'Forbidden';
$lang->repo->apiError[4] = 'cannot have ASCII control characters';
$lang->repo->apiError[5] = 'Created fail';
$lang->repo->apiError[6] = 'Project Not Found';

344
module/report/lang/ru.php Normal file
View file

@ -0,0 +1,344 @@
<?php
/**
* The report module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package report
* @version $Id: en.php 5080 2013-07-10 00:46:59Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->report->index = 'Report Home';
$lang->report->list = 'Pivot Table';
$lang->report->item = 'Item';
$lang->report->value = 'Value';
$lang->report->percent = '%';
$lang->report->undefined = 'Undefined';
$lang->report->project = $lang->projectCommon;
$lang->report->PO = 'PO';
$lang->report->colors[] = 'AFD8F8';
$lang->report->colors[] = 'F6BD0F';
$lang->report->colors[] = '8BBA00';
$lang->report->colors[] = 'FF8E46';
$lang->report->colors[] = '008E8E';
$lang->report->colors[] = 'D64646';
$lang->report->colors[] = '8E468E';
$lang->report->colors[] = '588526';
$lang->report->colors[] = 'B3AA00';
$lang->report->colors[] = '008ED6';
$lang->report->colors[] = '9D080D';
$lang->report->colors[] = 'A186BE';
$lang->report->assign['noassign'] = 'Unassigned';
$lang->report->assign['assign'] = 'Assigned';
$lang->report->singleColor[] = 'F6BD0F';
$lang->report->projectDeviation = "{$lang->execution->common} Deviation";
$lang->report->productSummary = $lang->productCommon . ' Summary';
$lang->report->bugCreate = 'Bug Reported Summary';
$lang->report->bugAssign = 'Bug Assigned Summary';
$lang->report->workload = 'Team Workload Summary';
$lang->report->workloadAB = 'Workload';
$lang->report->bugOpenedDate = 'Bug reported from';
$lang->report->beginAndEnd = ' From';
$lang->report->begin = ' Begin';
$lang->report->end = ' End';
$lang->report->dept = 'Department';
$lang->report->deviationChart = "{$lang->projectCommon} Deviation Chart";
$lang->report->id = 'ID';
$lang->report->execution = $lang->execution->common;
$lang->report->product = $lang->productCommon;
$lang->report->user = 'User';
$lang->report->bugTotal = 'Bug';
$lang->report->task = 'Task';
$lang->report->estimate = 'Estimates';
$lang->report->consumed = 'Cost';
$lang->report->remain = 'Left';
$lang->report->deviation = 'Deviation';
$lang->report->deviationRate = 'Deviation Rate';
$lang->report->total = 'Total';
$lang->report->to = 'to';
$lang->report->taskTotal = "Total Tasks";
$lang->report->manhourTotal = "Total Hours";
$lang->report->validRate = "Valid Rate";
$lang->report->validRateTips = "Resolution is Resolved/Postponed or status is Resolved/Closed.";
$lang->report->unplanned = 'Unplanned';
$lang->report->workday = 'Hours/Day';
$lang->report->diffDays = 'days';
$lang->report->typeList['default'] = 'Default';
$lang->report->typeList['pie'] = 'Pie';
$lang->report->typeList['bar'] = 'Bar';
$lang->report->typeList['line'] = 'Line';
$lang->report->conditions = 'Filter by:';
$lang->report->closedProduct = 'Closed ' . $lang->productCommon . 's';
$lang->report->overduePlan = 'Expired Plans';
/* daily reminder. */
$lang->report->idAB = 'ID';
$lang->report->bugTitle = 'Bug Name';
$lang->report->taskName = 'Task Name';
$lang->report->todoName = 'To-do Name';
$lang->report->testTaskName = 'Request Name';
$lang->report->cardName = 'Kanban Card Name';
$lang->report->deadline = 'Deadline';
$lang->report->mailTitle = new stdclass();
$lang->report->mailTitle->begin = 'Notice: You have';
$lang->report->mailTitle->bug = " Bug (%s),";
$lang->report->mailTitle->task = " Task (%s),";
$lang->report->mailTitle->todo = " To-do (%s),";
$lang->report->mailTitle->testTask = " Request (%s),";
$lang->report->mailTitle->card = " Kanban Card (%s),";
$lang->report->annualData = new stdclass();
$lang->report->annualData->title = "%s work summary in %s";
$lang->report->annualData->exportByZentao = "Export by ZenTao";
$lang->report->annualData->scope = "Scope";
$lang->report->annualData->allUser = "All Users";
$lang->report->annualData->allDept = "Whole Company";
$lang->report->annualData->soFar = " (%s)";
$lang->report->annualData->baseInfo = "Basic Data";
$lang->report->annualData->actionData = "Operation Data";
$lang->report->annualData->contributionData = "Contribution Data";
$lang->report->annualData->radar = "Capability Radar Chart";
$lang->report->annualData->executions = "{$lang->executionCommon} Data";
$lang->report->annualData->products = "{$lang->productCommon} Data";
$lang->report->annualData->stories = "Story Data";
$lang->report->annualData->tasks = "Task Data";
$lang->report->annualData->bugs = "Bug Data";
$lang->report->annualData->cases = "Case Data";
$lang->report->annualData->statusStat = "{$lang->SRCommon}/task/bug status distribution (as of today)";
$lang->report->annualData->companyUsers = "Number of company";
$lang->report->annualData->deptUsers = "Number of departments";
$lang->report->annualData->logins = "Login times";
$lang->report->annualData->actions = "Number of operations";
$lang->report->annualData->contributions = "Number of contributions";
$lang->report->annualData->consumed = "Consumed";
$lang->report->annualData->todos = "Number of To-dos";
$lang->report->annualData->storyStatusStat = "Story status distribution";
$lang->report->annualData->taskStatusStat = "Task status distribution";
$lang->report->annualData->bugStatusStat = "Bug status distribution";
$lang->report->annualData->caseResultStat = "Case result distribution";
$lang->report->annualData->allStory = "Total";
$lang->report->annualData->allTask = "Total";
$lang->report->annualData->allBug = "Total";
$lang->report->annualData->undone = "Undone";
$lang->report->annualData->unresolve = "Unresolve";
$lang->report->annualData->storyMonthActions = "Monthly story operation";
$lang->report->annualData->taskMonthActions = "Monthly task operation";
$lang->report->annualData->bugMonthActions = "Monthly bug operation";
$lang->report->annualData->caseMonthActions = "Monthly case operation";
$lang->report->annualData->executionFields['name'] = "{$lang->executionCommon} name";
$lang->report->annualData->executionFields['story'] = "Accepted stories";
$lang->report->annualData->executionFields['task'] = "Finished tasks";
$lang->report->annualData->executionFields['bug'] = "Repaired bugs";
$lang->report->annualData->productFields['name'] = "{$lang->productCommon} name";
$lang->report->annualData->productFields['plan'] = "Plans";
$lang->report->annualData->productFields['epic'] = "Created {$lang->ERCommon}";
global $config;
if(!empty($config->URAndSR))
{
$lang->report->annualData->productFields['requirement'] = "Created {$lang->URCommon}";
}
$lang->report->annualData->productFields['story'] = "Created {$lang->SRCommon}";
$lang->report->annualData->productFields['closed'] = "Closed {$lang->SRCommon}";
$lang->report->annualData->objectTypeList['product'] = $lang->productCommon;
$lang->report->annualData->objectTypeList['story'] = $lang->SRCommon;
$lang->report->annualData->objectTypeList['productplan'] = "Plan";
$lang->report->annualData->objectTypeList['release'] = "Release";
$lang->report->annualData->objectTypeList['project'] = $lang->projectCommon;
$lang->report->annualData->objectTypeList['execution'] = $lang->executionCommon;
$lang->report->annualData->objectTypeList['task'] = 'Task';
$lang->report->annualData->objectTypeList['repo'] = 'Code';
$lang->report->annualData->objectTypeList['bug'] = 'Bug';
$lang->report->annualData->objectTypeList['build'] = 'Build';
$lang->report->annualData->objectTypeList['testtask'] = 'TestTask';
$lang->report->annualData->objectTypeList['case'] = 'Case';
$lang->report->annualData->objectTypeList['doc'] = 'Document';
$lang->report->annualData->actionList['create'] = 'Created';
$lang->report->annualData->actionList['edit'] = 'Edited';
$lang->report->annualData->actionList['close'] = 'Closed';
$lang->report->annualData->actionList['review'] = 'Reviewed';
$lang->report->annualData->actionList['gitCommit'] = 'GIT Commited';
$lang->report->annualData->actionList['svnCommit'] = 'SVN Commited';
$lang->report->annualData->actionList['start'] = 'Started';
$lang->report->annualData->actionList['finish'] = 'Finished';
$lang->report->annualData->actionList['assign'] = 'Assigned';
$lang->report->annualData->actionList['activate'] = 'Activated';
$lang->report->annualData->actionList['resolve'] = 'Resolved';
$lang->report->annualData->actionList['run'] = 'Execute';
$lang->report->annualData->actionList['stop'] = 'Stop Maintenance';
$lang->report->annualData->actionList['putoff'] = 'Postponed ';
$lang->report->annualData->actionList['suspend'] = 'Suspended';
$lang->report->annualData->actionList['change'] = 'Changed';
$lang->report->annualData->actionList['pause'] = 'Paused';
$lang->report->annualData->actionList['cancel'] = 'Canceled';
$lang->report->annualData->actionList['confirm'] = 'Confirmed';
$lang->report->annualData->actionList['createBug'] = 'Turn to bug';
$lang->report->annualData->actionList['delete'] = 'Delete';
$lang->report->annualData->actionList['toAudit'] = 'To Audit';
$lang->report->annualData->actionList['audit'] = 'Audit';
$lang->report->annualData->todoStatus['all'] = 'All';
$lang->report->annualData->todoStatus['undone'] = 'Undone';
$lang->report->annualData->todoStatus['done'] = 'Done';
$lang->report->annualData->radarItems['product'] = $lang->productCommon;
$lang->report->annualData->radarItems['execution'] = $lang->projectCommon;
$lang->report->annualData->radarItems['devel'] = "Development";
$lang->report->annualData->radarItems['qa'] = "QA";
$lang->report->annualData->radarItems['other'] = "Other";
$lang->report->companyRadar = "公司能力雷达图";
$lang->report->outputData = "产出数据";
$lang->report->outputTotal = "产出总数";
$lang->report->storyOutput = "需求产出";
$lang->report->planOutput = "计划产出";
$lang->report->releaseOutput = "发布产出";
$lang->report->executionOutput = "执行产出";
$lang->report->taskOutput = "任务产出";
$lang->report->bugOutput = "Bug产出";
$lang->report->caseOutput = "用例产出";
$lang->report->bugProgress = "Bug进展";
$lang->report->productProgress = "{$lang->productCommon}进展";
$lang->report->executionProgress = "执行进展";
$lang->report->projectProgress = "{$lang->projectCommon}进展";
$lang->report->yearProjectOverview = "年度{$lang->projectCommon}总览";
$lang->report->projectOverview = "截止目前{$lang->projectCommon}总览";
$lang->report->contributionCountObject = array();
$lang->report->contributionCountObject['task'] = "Tasks: Create, Complete, Close, Cancel, Assign";
$lang->report->contributionCountObject['story'] = "Stories: Create, Review, Close, Assign";
$lang->report->contributionCountObject['requirement'] = "Features: Create, Review, Close, Assign";
$lang->report->contributionCountObject['epic'] = "Epics: Create, Review, Close, Assign";
$lang->report->contributionCountObject['bug'] = "Bugs: Create, Solve, Close, Assign";
$lang->report->contributionCountObject['testcase'] = "Testcases: Create";
$lang->report->contributionCountObject['testtask'] = "Testtasks: Closed";
$lang->report->contributionCountObject['audit'] = "Audit: Initiate, Audit";
$lang->report->contributionCountObject['doc'] = "Document: Create, Edit";
$lang->report->contributionCountObject['issue'] = "Issue: Create, Close, Assign";
$lang->report->contributionCountObject['risk'] = "Risk: Create, Close, Assign";
$lang->report->contributionCountObject['qa'] = "QA: Create, Solve, Close, Assign";
$lang->report->contributionCountObject['feedback'] = "Feedback: Create, Review, Assign, Close";
$lang->report->contributionCountObject['ticket'] = "Tickets: Create, Solve, Assign, Close";
$lang->report->tips = new stdclass();
$lang->report->tips->basic = array();
$lang->report->tips->basic['company'] = '
1.Number of company: Sum the number of all users in the system and filter the deleted users. <br>
2.Number of operations: Sum the number of operations performed by the system in a given year. <br>
3.Consumed: Sum the time consumed by the system in a given year. <br>
4.Number of To-dos: Sum the todo for all users of the system. <br>
5.Number of contributions: Sum the contributions of all users of the system.';
$lang->report->tips->basic['dept'] = '
1.Number of departments: Sum the number of all users in a department and filter the deleted users. <br>
2.Number of operations: Sum the number of operations performed by users in a department in a given year. <br>
3.Consumed: Sum the working hours consumed by a department user in a given year. <br>
4.Number of To-dos: Sum the todo for users in a department. <br>
5.Number of contributions: Sum the contribution data of users in a department.';
$lang->report->tips->basic['user'] = '
1.Login times: Sum the login times of a user in a given year. <br>
2.Number of operations: Sum the number of operations performed by a user in a given year. <br>
3.Consumed: Sum the hours consumed by a user in a given year. <br>
4.Number of To-dos: Sum the todo for a user. <br>
5.Number of contributions: Sum the contribution data for a user.';
$lang->report->tips->contributionCount['company'] = "Contribution data of all user in the selected year, including:";
$lang->report->tips->contributionCount['dept'] = "Contribution data of the selected department in the selected year, including:";
$lang->report->tips->contributionCount['user'] = "Contribution data of the selected user in the selected year, including:";
$lang->report->tips->contribute['company'] = 'Sum the number of operations on different system objects in a given year.';
$lang->report->tips->contribute['dept'] = 'Sum the number of operations performed on different system objects in a particular year. The operation user must belong to the selected department.';
$lang->report->tips->contribute['user'] = 'Sum the number of operations performed on different system objects in a particular year. Ensure that the operation user belongs to the selected user.';
$lang->report->tips->radar = '
1.Product management includes: product, plan, requirements, release related operational data.<br>
2.Project management includes: project, iteration, version, task related operational data.<br>
3.Development includes: tasks, code, Bug resolution related operational data.<br>
4.Tests include: Bug creation, Bug activation, Bug closure, use cases, and test single related operational data.<br>
5.Other includes: other scattered dynamic data.';
$lang->report->tips->execution['company'] = '
Accepted stories: Sum the number of stories created in a given year that meet the following conditions, requiring that the phase is accepted, published, or closed because the reason is completed stories, and filter the deleted stories.<br>
Finished tasks: Sum the number of ongoing tasks created in a given year. The status is completed. Filters the deleted tasks.<br>
Resolved bugs: The number of bugs created in a given year whose execution status is closed and the solution is resolved.';
$lang->report->tips->execution['dept'] = '
Accepted stories: Sum the number of stories created in a given year that meet the following conditions, requiring that the phase is accepted, published, or closed because the reason is completed stories, and filter the deleted stories, creator is a selected department user.<br>
Finished tasks: Sum the number of tasks created in a given year that are in the process of execution. The status is completed, the deleted tasks are filtered out, and the created tasks are selected department users.Number of Completed tasks: Sum the number of tasks created in a given year that are in the process of execution. The status is completed, the deleted tasks are filtered out, and the created tasks are selected department users.<br>
Resolved bugs: Number of bugs created in a given year whose execution status is closed and the solution is resolved. The creator is a selected department user.';
$lang->report->tips->execution['user'] = '
Accepted stories: Sum the number of stories created in a given year that meet the following conditions, requiring that the phase is accepted, published, or closed because the reason is completed stories, and filter the deleted stories, creator is a selected user.<br>
Finished tasks: Sum the number of ongoing tasks created in a given year. The status is completed. The deleted tasks are filtered and the creator is a selected user.<br>
Resolved bugs: The number of bugs created in a given year whose execution status is closed and the solution is resolved, and the creator is a selected user.';
$lang->report->tips->product['company'] = '
Plans: The number of plans created in a product in a given year.<br>
Created epics: Specifies the number of epics created in a particular year.<br>
Created requirements: Specifies the number of user requirements created in a particular year.<br>
Created stories: The number of stories in a product created in a given year.<br>
Closed stories: The number of stories in a product with a shutdown time in a given year.';
$lang->report->tips->product['dept'] = '
Plans:The number of plans created in a product in a given year. The creator is a user in the selected department.<br>
Created epics: Specifies the number of epics created in a particular year. The creator is a user in the selected department.<br>
Created requirements: Specifies the number of user requirements created in a particular year. The creator is a user in the selected department.<br>
Created stories: The number of stories in a product created in a given year. The creator is a user in the selected department.<br>
Closed stories: The number of stories needs in a product with a shutdown time in a given year, and the shutdown is for users in the selected department.';
$lang->report->tips->product['user'] = '
Plans: Number of plans created in the product in a certain year. The creator is the selected user.<br>
Create epics:Specifies the number of epics created in a particular year. The creator is the selected user.<br>
Create requirment:Specifies the number of user requirements created in a particular year. The creator is the selected user.<br>
Created stories: The number of stories created in a product in a given year. The creator is the selected user.<br>
Closed stories: The number of stories in the product that were closed in a given year, and the shutdown is the selected user.';
$lang->report->tips->story['company'] = '
Story status distribution: Story data distribution in different states. The creation time must be a certain year.<br>
Monthly story operations: Sum the number of story operations. The required operation time is a certain year.';
$lang->report->tips->story['dept'] = '
Story status distribution: Indicates the story data distribution in different states. The creation time must be a year, and the created user must be a user in the selected department.<br>
Monthly story operations: Sum the number of story operations. The operation time is a year and the operation user is a user in the selected department.';
$lang->report->tips->story['user'] = '
Story status distribution: Indicates the story data distribution in different states. The creation time is a year, and the created user is the selected user.<br>
Monthly story operations: Sum the number of story operations. The operation time is a year and the operation user is the selected user.';
$lang->report->tips->bug['company'] = '
Bug status distribution: Distribution of Bug data in different states. The creation time must be a certain year.<br>
Monthly Bug operations: Sum the number of Bug operations. The operation time must be a year.';
$lang->report->tips->bug['dept'] = '
Bug status distribution: Distribution of Bug data in different states. The creation time must be a year, and the created user must be a user in the selected department.<br>
Monthly Bug operations: Sum the number of Bug operations. The operation time is a year and the operation user is a user in the selected department.';
$lang->report->tips->bug['user'] = '
Bug status distribution: Distribution of Bug data in different states. The creation time must be a year, and the user to be created is the selected user.<br>
Monthly Bug operations: Sum the number of Bug operations. The operation time is a year and the operation user is the selected user.';
$lang->report->tips->case['company'] = '
Case result distribution: The distribution of use case data for different execution results is required to be created in a certain year.<br>
Monthly case operations: Sum the number of operations of the use case. The operation time must be a certain year.';
$lang->report->tips->case['dept'] = '
Case status distribution: Use case data distribution with different execution results. The creation time must be a year and the run user must be a user in the selected department.<br>
Monthly case operations: Sum the operation times of the use case. The operation time must be a year and the operation user must be a user in the selected department.';
$lang->report->tips->case['user'] = '
Case status distribution: Use case data distribution with different execution results. The creation time must be a certain year, and the run user is the selected user.<br>
Monthly case operations: Sum the number of operations of a use case. The operation time must be a year and the operation user is the selected user.';
$lang->report->tips->task['company'] = '
Task status distribution: Task data in different states must be created in a certain year.<br>
Monthly task operations: Sum the number of tasks performed in a year.';
$lang->report->tips->task['dept'] = '
Task status distribution: Task data in different states is distributed. The creation time must be a year and the created user must be a user in the selected department.<br>
Monthly operation information: Sum the operation times of a task. The operation time must be a year and the operation user must be a user in the selected department.';
$lang->report->tips->task['user'] = '
Task status distribution: Task data in different states is distributed. The creation time must be a year and the created user is the selected user.<br>
Monthly task operations: Sum the number of operations performed on a task. The operation time is a year and the operation user is the selected user.';

View file

@ -0,0 +1,27 @@
<?php
global $app, $config;
$app->loadLang('story');
$lang->requirement = clone $lang->story;
foreach($lang->requirement as $key => $value)
{
if(!is_string($value)) continue;
if(strpos($value, $lang->SRCommon) !== false) $lang->requirement->$key = str_replace($lang->SRCommon, $lang->URCommon, $value);
}
$lang->requirement->common = $lang->URCommon;
$lang->requirement->stageList = array();
$lang->requirement->stageList[''] = '';
$lang->requirement->stageList['wait'] = 'Not Started';
if($config->edition == 'ipd')
{
$lang->requirement->stageList['inroadmap'] = 'In Roadmap';
$lang->requirement->stageList['incharter'] = 'In Charter';
}
$lang->requirement->stageList['planned'] = 'Planned';
$lang->requirement->stageList['projected'] = 'Initiated';
$lang->requirement->stageList['developing'] = 'In Development';
$lang->requirement->stageList['delivering'] = 'In Delivery';
$lang->requirement->stageList['delivered'] = 'Delivered';
$lang->requirement->stageList['closed'] = 'Closed';

90
module/score/lang/ru.php Normal file
View file

@ -0,0 +1,90 @@
<?php
$lang->score->common = 'My Points';
$lang->score->record = 'Points History';
$lang->score->current = 'Current Balance';
$lang->score->level = 'Level Points';
$lang->score->reset = 'Reset';
$lang->score->tips = 'Points earned yesterday: <strong>%d</strong><br/> Total points: <strong>%d</strong>';
$lang->score->resetTips = 'Resetting points may take some time.<br/><strong>Please do not close this window.</strong>';
$lang->score->resetStart = 'Start Reset';
$lang->score->resetLoading = 'Resetting... Processed: ';
$lang->score->resetFinish = 'Reset Completed';
$lang->score->id = 'ID';
$lang->score->userID = 'User ID';
$lang->score->account = 'User';
$lang->score->module = 'Module';
$lang->score->method = 'Actions';
$lang->score->before = 'Before';
$lang->score->score = '+/-';
$lang->score->after = 'After';
$lang->score->time = 'Time';
$lang->score->desc = 'Description';
$lang->score->noLimit = 'Unlimited';
$lang->score->times = 'Count';
$lang->score->hour = 'Interval';
$lang->score->modules['task'] = 'Task';
$lang->score->modules['tutorial'] = 'Tutorial';
$lang->score->modules['user'] = 'User';
$lang->score->modules['ajax'] = 'Others';
$lang->score->modules['doc'] = 'Document';
$lang->score->modules['todo'] = 'To-do';
$lang->score->modules['story'] = "$lang->SRCommon";
$lang->score->modules['bug'] = 'Bug';
$lang->score->modules['testcase'] = 'Test Case';
$lang->score->modules['testtask'] = 'Test Request';
$lang->score->modules['build'] = 'Build';
$lang->score->modules['execution'] = $lang->executionCommon;
$lang->score->modules['productplan'] = 'Plan';
$lang->score->modules['release'] = 'Release';
$lang->score->modules['block'] = 'Block';
$lang->score->modules['search'] = 'Search';
$lang->score->methods['task']['create'] = 'Create Task';
$lang->score->methods['task']['close'] = 'Close Task';
$lang->score->methods['task']['finish'] = 'Complete Task';
$lang->score->methods['tutorial']['finish'] = 'Complete Tutorial';
$lang->score->methods['user']['login'] = 'Login';
$lang->score->methods['user']['changePassword'] = 'Change Password';
$lang->score->methods['user']['editProfile'] = 'Edit Profile';
$lang->score->methods['ajax']['selectTheme'] = 'Switch Theme';
$lang->score->methods['ajax']['selectLang'] = 'Switch Language';
$lang->score->methods['ajax']['showSearchMenu'] = 'Advanced Search';
$lang->score->methods['ajax']['customMenu'] = 'Customize Menu';
$lang->score->methods['ajax']['dragSelected'] = 'Drag-to-Select in Lists';
$lang->score->methods['ajax']['lastNext'] = 'Pagination Shortcuts';
$lang->score->methods['ajax']['switchToDataTable'] = 'Use Advanced Tables';
$lang->score->methods['ajax']['submitPage'] = 'Change Page Size';
$lang->score->methods['ajax']['quickJump'] = 'Use Quick Jump';
$lang->score->methods['ajax']['batchCreate'] = 'First Batch Create';
$lang->score->methods['ajax']['batchEdit'] = 'First Batch Edit';
$lang->score->methods['ajax']['batchOther'] = 'Other Batch Actions';
$lang->score->methods['doc']['create'] = 'Create Document';
$lang->score->methods['todo']['create'] = 'Create To-do';
$lang->score->methods['story']['create'] = "Create {$lang->SRCommon}";
$lang->score->methods['story']['close'] = "Close {$lang->SRCommon}";
$lang->score->methods['bug']['create'] = 'Report Bug';
$lang->score->methods['bug']['confirm'] = 'Confirm Bug';
$lang->score->methods['bug']['createFormCase'] = 'Report Bug form Test Case';
$lang->score->methods['bug']['resolve'] = 'Resolve Bug';
$lang->score->methods['bug']['saveTplModal'] = 'Save as Template';
$lang->score->methods['testtask']['runCase'] = 'Run Test Case';
$lang->score->methods['testcase']['create'] = 'Create Test Case';
$lang->score->methods['build']['create'] = 'Create Build';
$lang->score->methods['execution']['create'] = "Create {$lang->executionCommon}";
$lang->score->methods['execution']['close'] = "Complete {$lang->executionCommon}";
$lang->score->methods['productplan']['create'] = 'Create Plan';
$lang->score->methods['release']['create'] = 'Create Release';
$lang->score->methods['block']['set'] = 'Customize Block';
$lang->score->methods['search']['saveQuery'] = 'Save Search';
$lang->score->methods['search']['saveQueryAdvanced'] = 'Advanced Search';
$lang->score->extended['user']['changePassword'] = 'Earn ##strength,1## extra points for Medium password strength, and ##strength,2## extra points for Strong password strength.';
$lang->score->extended['execution']['close'] = "Project Manager earns ##manager,close## points; {$lang->executionCommon} Team Member earns an additional ##member,onTime## points.";
$lang->score->extended['bug']['resolve'] = 'Upon resolving a Bug, earn extra points based on severity: S1 +##severity,1##, S2 +##severity,2##, S3 +##severity,3##.';
$lang->score->extended['bug']['confirm'] = 'Upon confirming a Bug, earn extra points based on severity: S1 +##severity,1##, S2 +##severity,2##, S3 +##severity,3##.';
$lang->score->extended['task']['finish'] = 'Extra points for hours: round(Hours / 10 * Estimated / Cost) + Priority points (P1 ##pri,1##, P2 ##pri,2##).';
$lang->score->extended['story']['close'] = "{$lang->SRCommon} creator earns an extra ##createID## points.";
$lang->score->featureBar['rule']['all'] = 'Point Rules';

28
module/screen/lang/ru.php Normal file
View file

@ -0,0 +1,28 @@
<?php
$lang->screen->create = 'Create Screen';
$lang->screen->edit = 'Edit';
$lang->screen->design = 'Design';
$lang->screen->delete = 'Delete';
$lang->screen->browse = 'Browse screen';
$lang->screen->view = 'View screen';
$lang->screen->annualData = 'Annual Summary';
$lang->screen->allAnnualData = 'View everyone annual summary';
$lang->screen->noscreens = 'No screen yet';
$lang->screen->allDepts = 'All depts';
$lang->screen->allUsers = 'All users';
$lang->screen->noData = 'No Data';
$lang->screen->noDesc = 'No Desc';
$lang->screen->bizGuide = 'For more Organization-wide Overview Reports please contact us';
$lang->screen->globalFilter = 'Global Filter';
$lang->screen->draft = 'Draft';
$lang->screen->accessDenied = 'You do not have access to this screen';
$lang->screen->acl = 'Access Control';
$lang->screen->aclList['open'] = 'Public (with screen view permissions and dimension permissions can access it)';
$lang->screen->aclList['private'] = 'Private (Only creators and whitelisted users with dimension permissions can access it)';
$lang->screen->belong = '';
$lang->screen->dateRange = 'Date';
$lang->screen->confirmDelete = "Are you sure you want to delete this screen?";
$lang->screen->noMetricData = 'The metric item has been taken down or deleted';

116
module/search/lang/ru.php Normal file
View file

@ -0,0 +1,116 @@
<?php
/**
* The search module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package search
* @version $Id: en.php 4129 2013-01-18 01:58:14Z wwccss $
* @link https://www.zentao.net
*/
$lang->search->common = 'Search';
$lang->search->id = 'ID';
$lang->search->editedDate = 'Edited on';
$lang->search->key = 'Key';
$lang->search->value = 'Value';
$lang->search->reset = 'Reset';
$lang->search->saveQuery = 'Save Query';
$lang->search->myQuery = 'My Queries';
$lang->search->group1 = 'Group 1';
$lang->search->group2 = 'Group 2';
$lang->search->buildForm = 'Search Form';
$lang->search->buildQuery = 'Search';
$lang->search->savedQuery = 'Saved Queries';
$lang->search->deleteQuery = 'Delete Query';
$lang->search->setQueryTitle = 'Please enter a query title (Search before saving):';
$lang->search->select = "{$lang->SRCommon}/Task Filter";
$lang->search->me = 'Me';
$lang->search->noQuery = 'No saved queries yet';
$lang->search->onMenuBar = 'Show in Menu Bar';
$lang->search->custom = 'Custom';
$lang->search->setCommon = 'Set as Public Query';
$lang->search->saveCondition = 'Save Search Criteria';
$lang->search->setCondName = 'Enter a name for this search';
$lang->search->account = 'Account';
$lang->search->module = 'Module';
$lang->search->title = 'Title';
$lang->search->form = 'Form Fields';
$lang->search->sql = 'SQL Conditions';
$lang->search->shortcut = $lang->search->onMenuBar;
$lang->search->operators['='] = '=';
$lang->search->operators['!='] = '!=';
$lang->search->operators['>'] = '>';
$lang->search->operators['>='] = '>=';
$lang->search->operators['<'] = '<';
$lang->search->operators['<='] = '<=';
$lang->search->operators['include'] = 'Include';
$lang->search->operators['between'] = 'Between';
$lang->search->operators['notinclude'] = 'Exclude';
$lang->search->operators['belong'] = 'Belongs to ';
$lang->search->andor['and'] = 'And';
$lang->search->andor['or'] = 'Or';
$lang->search->null = 'Null';
$lang->userquery = new stdclass();
$lang->userquery->title = 'Title';
$lang->searchObjects['todo'] = 'To-do';
$lang->searchObjects['effort'] = 'Effort';
$lang->searchObjects['testsuite'] = 'Test Suite';
$lang->search->objectType = 'Item Type';
$lang->search->objectID = 'Item ID';
$lang->search->content = 'Content';
$lang->search->addedDate = 'Added on';
$lang->search->index = 'Full-Text Search';
$lang->search->buildIndex = 'Rebuild Index';
$lang->search->preview = 'Preview';
$lang->search->inputWords = 'Search keywords...';
$lang->search->result = 'Search Results';
$lang->search->resultCount = '<strong>%s</strong> items';
$lang->search->buildSuccessfully = 'Search index initialized';
$lang->search->executeInfo = '%s results found in %s seconds';
$lang->search->buildResult = "Creating %s index: <strong class='%scount'>%s</strong> records created;";
$lang->search->queryTips = "Separate ids with comma";
$lang->search->confirmDelete = 'Are you sure you want to delete this record?';
$lang->search->modules['all'] = 'All';
$lang->search->modules['task'] = 'Task';
$lang->search->modules['bug'] = 'Bug';
$lang->search->modules['case'] = 'Case';
$lang->search->modules['doc'] = 'Document';
$lang->search->modules['todo'] = 'To-Do';
$lang->search->modules['build'] = 'Builds';
$lang->search->modules['effort'] = 'Effort';
$lang->search->modules['caselib'] = 'Test Library';
$lang->search->modules['product'] = $lang->productCommon;
$lang->search->modules['release'] = 'Releases';
$lang->search->modules['testtask'] = 'Test Requests';
$lang->search->modules['testsuite'] = 'Test Suites';
$lang->search->modules['testreport'] = 'Test Reports';
$lang->search->modules['productplan'] = 'Plans';
$lang->search->modules['program'] = 'Programs';
$lang->search->modules['project'] = $lang->projectCommon;
$lang->search->modules['execution'] = $lang->execution->common;
$lang->search->modules['story'] = $lang->SRCommon;
$lang->search->modules['requirement'] = $lang->URCommon;
$lang->search->modules['epic'] = $lang->ERCommon;
$lang->search->modules['aiapp'] = 'AI';
$lang->search->objectTypeList['story'] = $lang->SRCommon;
$lang->search->objectTypeList['requirement'] = $lang->URCommon;
$lang->search->objectTypeList['epic'] = $lang->ERCommon;
$lang->search->objectTypeList['stage'] = 'Phases';
$lang->search->objectTypeList['sprint'] = $lang->execution->common;
$lang->search->objectTypeList['kanban'] = 'kanban';
$lang->search->objectTypeList['commonIssue'] = 'Issues';
$lang->search->objectTypeList['stakeholderIssue'] = 'Stakeholder Issues';
if(!helper::hasFeature('testsuite') ) unset($lang->searchObjects['testsuite']);

View file

@ -0,0 +1,44 @@
<?php
$lang->serverroom->common = 'IDC';
$lang->serverroom->browse = 'IDC List';
$lang->serverroom->create = 'Add IDC';
$lang->serverroom->edit = 'Edit';
$lang->serverroom->editAction = 'Edit IDC';
$lang->serverroom->delete = 'Delete IDC';
$lang->serverroom->view = 'IDC Details';
$lang->serverroom->all = 'All';
$lang->serverroom->byQuery = 'Search';
$lang->serverroom->name = 'Name';
$lang->serverroom->city = 'City';
$lang->serverroom->line = 'Line Type';
$lang->serverroom->bandwidth = 'Bandwidth';
$lang->serverroom->provider = 'Vendor';
$lang->serverroom->owner = 'Manager';
$lang->serverroom->region = 'Region';
$lang->serverroom->createdBy = 'Creator';
$lang->serverroom->createdDate = 'Created on';
$lang->serverroom->editedBy = 'Edited by';
$lang->serverroom->editedDate = 'Edited on';
$lang->serverroom->noneCity = 'No cities available yet.';
$lang->serverroom->empty = 'No IDCs available yet.';
$lang->serverroom->lineList[''] = '';
$lang->serverroom->lineList['telecom'] = 'China Telecom';
$lang->serverroom->lineList['unicom'] = 'China Unicom';
$lang->serverroom->lineList['mobile'] = 'China Mobile';
$lang->serverroom->lineList['double'] = 'Dual-line';
$lang->serverroom->lineList['bgp'] = 'BGP';
$lang->serverroom->confirmDelete = 'Are you sure you want to delete this IDC?';
$lang->serverroom->providerList[''] = '';
$lang->serverroom->providerList['aliyun'] = 'Alibaba Cloud';
$lang->serverroom->providerList['qingyun'] = 'QingCloud';
$lang->serverroom->cityList[''] = '';
$lang->serverroom->cityList['beijing'] = 'Beijing';
$lang->serverroom->cityList['hangzhou'] = 'Hangzhou';
$lang->serverroom->cityList['guangdong'] = 'Guangdong';
$lang->serverroom->featureBar['browse']['all'] = $lang->serverroom->all;

View file

@ -0,0 +1,85 @@
<?php
$lang->sonarqube = new stdclass;
$lang->sonarqube->common = 'SonarQube';
$lang->sonarqube->browse = 'SonarQube List';
$lang->sonarqube->search = 'Search';
$lang->sonarqube->create = 'Create SonarQube';
$lang->sonarqube->edit = 'Edit SonarQube';
$lang->sonarqube->delete = 'Delete SonarQube';
$lang->sonarqube->serverFail = 'Connect to SonarQube server failed, please check the SonarQube server.';
$lang->sonarqube->browseProject = "SonarQube Project List";
$lang->sonarqube->createProject = "Create SonarQube Project";
$lang->sonarqube->deleteProject = "Delete SonarQube Project";
$lang->sonarqube->placeholderSearch = 'Project name';
$lang->sonarqube->execJob = "Exec SonarQube Job";
$lang->sonarqube->desc = 'Description';
$lang->sonarqube->reportView = "SonarQube Report";
$lang->sonarqube->browseIssue = "SonarQube Issue List";
$lang->sonarqube->createBug = "Create Bug";
$lang->sonarqube->delError = "There are bound jobs under this server, please delete the association and then operate";
$lang->sonarqube->id = 'ID';
$lang->sonarqube->name = "Application Name";
$lang->sonarqube->url = 'Server Address';
$lang->sonarqube->account = 'Username';
$lang->sonarqube->password = 'Password';
$lang->sonarqube->token = 'Token';
$lang->sonarqube->defaultProject = 'Default Project';
$lang->sonarqube->private = 'MD5 Verify';
$lang->sonarqube->createServer = 'Create SonarQube Server';
$lang->sonarqube->editServer = 'Edit SonarQube Server';
$lang->sonarqube->createSuccess = 'Create success';
$lang->sonarqube->placeholder = new stdclass;
$lang->sonarqube->placeholder->name = '';
$lang->sonarqube->placeholder->url = "Please fill in the access address of the SonarQube Server homepage, as: https://sonarqube.zentao.net.";
$lang->sonarqube->placeholder->account = "Please fill in the SonarQube user information with Administrator privileges";
$lang->sonarqube->placeholder->projectName = 'Up to 255 characters.';
$lang->sonarqube->placeholder->projectKey = "It may contain up to 400 characters. Allowed characters are alphanumeric, '-' (dash), '_' (underscore), '.' (period) and ':' (colon), with at least one non-digit.";
$lang->sonarqube->placeholder->searchIssue = "Please enter the problem name or file";
$lang->sonarqube->nameRepeatError = "Server name already exists!";
$lang->sonarqube->urlRepeatError = 'Server address already exists!';
$lang->sonarqube->validError = 'SonarQube user authority authentication failed!';
$lang->sonarqube->hostError = "Invalid SonarQube service address.";
$lang->sonarqube->lengthError = "『%s』length should be <=『%d』";
$lang->sonarqube->confirmDelete = 'Do you want to delete this SonarQube server?';
$lang->sonarqube->confirmDeleteProject = 'Do you want to delete this SonarQube project?';
$lang->sonarqube->noReport = "No Reprot";
$lang->sonarqube->notAdminer = "Please fill in the SonarQube user information with Administrator privileges";
$lang->sonarqube->projectKey = 'Project Key';
$lang->sonarqube->projectName = 'Project Name';
$lang->sonarqube->projectlastAnalysis = 'Last analysis time';
$lang->sonarqube->serverList = 'Server List';
$lang->sonarqube->report = new stdclass();
$lang->sonarqube->report->bugs = 'Bugs';
$lang->sonarqube->report->vulnerabilities = 'Vulnerabilities';
$lang->sonarqube->report->security_hotspots_reviewed = 'Hotspots Reviewed';
$lang->sonarqube->report->code_smells = 'Code Smells';
$lang->sonarqube->report->coverage = 'Coverage';
$lang->sonarqube->report->duplicated_lines_density = 'Duplications';
$lang->sonarqube->report->ncloc = 'Lines';
$lang->sonarqube->qualitygateList = array();
$lang->sonarqube->qualitygateList['OK'] = 'Passed';
$lang->sonarqube->qualitygateList['WARN'] = 'Warning';
$lang->sonarqube->qualitygateList['ERROR'] = 'Failed';
$lang->sonarqube->apiErrorMap[1] = "/Malformed key for Project: '([\s\S]+)'. Allowed characters are alphanumeric, '-', '_', '\.' and ':', with at least one non-digit\./";
$lang->sonarqube->apiErrorMap[2] = "/Could not create Project, key already exists: ([\s\S]+)/";
$lang->sonarqube->errorLang[1] = "Malformed key for Project Key,Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit.";
$lang->sonarqube->errorLang[2] = "Could not create Project, key already exists: %s";
$lang->sonarqube->issue = new stdclass();
$lang->sonarqube->issue->message = 'Issue Name';
$lang->sonarqube->issue->severity = 'Severity';
$lang->sonarqube->issue->type = 'Type';
$lang->sonarqube->issue->status = 'Status';
$lang->sonarqube->issue->file = 'File';
$lang->sonarqube->issue->line = 'Line';
$lang->sonarqube->issue->effort = 'Estimated repair time';
$lang->sonarqube->issue->creationDate = 'Creation date';

38
module/space/lang/ru.php Normal file
View file

@ -0,0 +1,38 @@
<?php
global $config;
$lang->space->common = 'Services';
$lang->space->browse = 'Service List';
$lang->space->getStoreAppInfo = 'Fetch Service Details';
$lang->space->status = 'Status';
$lang->space->noApps = 'No Services Found';
$lang->space->defaultSpace = 'Default space';
$lang->space->systemSpace = 'System space';
$lang->space->searchInstance = 'Search Services';
$lang->space->upgrade = 'Upgrade';
$lang->space->install = 'Add service';
$lang->space->createdBy = 'Creator';
$lang->space->createdAt = 'Created At';
$lang->space->handConfig = 'Manual Config';
$lang->space->addType = 'Addition Method';
$lang->space->instanceType = 'Instance type';
$lang->space->notice = new stdClass();
$lang->space->notice->toInstall = 'Install via App Marketplace';
$lang->space->byList = 'List View';
$lang->space->byCard = 'Card View';
$lang->space->featureBar['browse']['all'] = 'All';
if($config->inQuickon) $lang->space->featureBar['browse']['running'] = 'Running';
if($config->inQuickon) $lang->space->featureBar['browse']['stopped'] = 'Stopped';
if($config->inQuickon) $lang->space->featureBar['browse']['abnormal'] = 'Abnormal';
$lang->space->appType['gitlab'] = 'GitLab';
$lang->space->appType['jenkins'] = 'Jenkins';
$lang->space->appType['sonarqube'] = 'SonarQube';
if(!$config->inQuickon && !$config->inCompose)
{
$lang->space->appType['gitea'] = 'Gitea';
$lang->space->appType['gogs'] = 'Gogs';
}

49
module/sso/lang/ru.php Normal file
View file

@ -0,0 +1,49 @@
<?php
/**
* The sso module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package sso
* @version $Id$
* @link https://www.zentao.net
*/
$lang->sso = new stdclass();
$lang->sso->settings = 'Configuration';
$lang->sso->turnon = 'Access ZDOO';
$lang->sso->redirect = 'Redirect to ZDOO';
$lang->sso->code = 'Code';
$lang->sso->key = 'Secret Key';
$lang->sso->addr = 'Endpoint URL';
$lang->sso->bind = 'User Linking';
$lang->sso->addrNotice = 'Example: http://www.ranzhi.com/sys/sso-check.html';
$lang->sso->turnonList = array();
$lang->sso->turnonList[1] = 'On';
$lang->sso->turnonList[0] = 'Off';
$lang->sso->bindType = 'Connection Methods';
$lang->sso->bindUser = 'Connect User';
$lang->sso->bindTypeList['bind'] = 'Connect Existing User';
$lang->sso->bindTypeList['add'] = 'Add User';
$lang->sso->help = new stdclass();
$lang->sso->help->addr = 'Endpoint URL format:
For PATH_INFO: http://your zdoo url/sys/sso-check.html
For GET: http://your zdoo url/sys/index.php?m=sso&f=check';
$lang->sso->help->code = 'Ensure the code is identical to the one in ZDOO.';
$lang->sso->help->key = 'Ensure the Secret Key is identical to the one in ZDOO.';
$lang->sso->deny = 'Access Restricted';
$lang->sso->bindNotice = 'No permissions. Please ask ZenTao Admin for access.';
$lang->sso->bindNoPassword = 'Password is required';
$lang->sso->bindNoUser = 'Invalid username or password';
$lang->sso->bindHasAccount = 'Username already exists. Please choose another one or link to the existing account.';
$lang->sso->homeURL = 'Feishu Homepage URL:';
$lang->sso->redirectURL = 'Feishu Redirect URL:';
$lang->sso->feishuConfigEmpty = 'Configure (Feishu Messenger Notifications) in [Admin]-[Notifications]-[Webhook].';
$lang->sso->feishuResponseEmpty = 'Empty response received';
$lang->sso->unbound = 'User linking missing for Feishu in ZenTao Webhook settings.';

59
module/stage/lang/ru.php Normal file
View file

@ -0,0 +1,59 @@
<?php
/**
* The stage module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package stage
* @version $Id: en.php 4729 2013-05-03 07:53:55Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
/* Actions. */
$lang->stage->browse = 'Stage List';
$lang->stage->browseAB = 'Stage List';
$lang->stage->create = 'Create Phase';
$lang->stage->batchCreate = 'Batch Create Stage';
$lang->stage->edit = 'Edit Stage';
$lang->stage->delete = 'Delete Stage';
$lang->stage->view = 'Details';
$lang->stage->plusBrowse = 'Waterfall + Phase List';
$lang->stage->setTRpoint = 'Set TR Point';
$lang->stage->setDCPpoint = 'Set DCP Point';
/* Fields. */
$lang->stage->id = 'ID';
$lang->stage->name = 'Name';
$lang->stage->type = 'Type';
$lang->stage->percent = 'Workload %';
$lang->stage->setType = 'Stage Type';
$lang->stage->TRpoint = 'TR Point';
$lang->stage->DCPpoint = 'DCP Point';
$lang->stage->TRname = 'TR Point Name';
$lang->stage->DCPname = 'DCP Point Name';
$lang->stage->pointFlow = 'Approval Flow';
$lang->stage->order = 'Order';
$lang->stage->typeList['mix'] = 'Mix';
$lang->stage->typeList['request'] = 'Story';
$lang->stage->typeList['design'] = 'Design';
$lang->stage->typeList['dev'] = 'Development';
$lang->stage->typeList['qa'] = 'Test';
$lang->stage->typeList['release'] = 'Release';
$lang->stage->typeList['review'] = 'Summary and Review';
$lang->stage->typeList['other'] = 'Others';
$lang->stage->ipdTypeList['concept'] = 'Concept';
$lang->stage->ipdTypeList['plan'] = 'Plan';
$lang->stage->ipdTypeList['develop'] = 'Development';
$lang->stage->ipdTypeList['qualify'] = 'Verify';
$lang->stage->ipdTypeList['launch'] = 'Release';
$lang->stage->ipdTypeList['lifecycle'] = 'Lifecycel';
$lang->stage->viewList = 'Phase List';
$lang->stage->noStage = 'No phases available yet.';
$lang->stage->confirmDelete = 'Are you are you want to delete it?';
$lang->stage->error = new stdclass();
$lang->stage->error->percentOver = 'The sum of "Workload %" cannot exceed 100%.';
$lang->stage->error->notNum = 'The workload % must be a numeric value.';

View file

@ -0,0 +1,65 @@
<?php
/* Action. */
$lang->stakeholder->common = 'Stakeholder';
$lang->stakeholder->browse = 'Stakeholder List';
$lang->stakeholder->batchCreate = 'Batch Add';
$lang->stakeholder->create = 'Add Stakeholder';
$lang->stakeholder->edit = 'Edit Stakeholder';
$lang->stakeholder->view = 'Stakeholder Details';
$lang->stakeholder->delete = 'Remove Stakeholder';
$lang->stakeholder->createdBy = 'CreatedBy';
$lang->stakeholder->createdDate = 'CreatedDate';
$lang->stakeholder->search = 'Search';
$lang->stakeholder->browse = 'List';
$lang->stakeholder->view = 'User Info';
$lang->stakeholder->basicInfo = 'Basic Info';
$lang->stakeholder->add = 'Create';
$lang->stakeholder->communicate = 'Communications';
$lang->stakeholder->expect = 'Expectation';
$lang->stakeholder->progress = 'Progress';
$lang->stakeholder->userIssue = 'Stakeholder Issues';
$lang->stakeholder->deleted = 'Deleted';
$lang->stakeholder->viewAction = 'View Stakeholder';
/* Fields. */
$lang->stakeholder->id = 'ID';
$lang->stakeholder->user = 'User';
$lang->stakeholder->type = 'User Type';
$lang->stakeholder->name = 'Name';
$lang->stakeholder->role = 'Role';
$lang->stakeholder->phone = 'Mobile';
$lang->stakeholder->qq = 'QQ';
$lang->stakeholder->weixin = 'WeChat';
$lang->stakeholder->email = 'Email';
$lang->stakeholder->isKey = 'Key Stakeholder';
$lang->stakeholder->inside = 'Internal Stakeholder';
$lang->stakeholder->outside = 'External Stakeholder';
$lang->stakeholder->from = 'Stakeholder Type';
$lang->stakeholder->company = 'Company';
$lang->stakeholder->companyName = 'Company';
$lang->stakeholder->nature = 'Personality';
$lang->stakeholder->analysis = 'Impact Analysis';
$lang->stakeholder->strategy = 'Response';
$lang->stakeholder->expect = 'Expectation';
$lang->stakeholder->progress = 'Progress';
$lang->stakeholder->createdBy = 'CreatedBy';
$lang->stakeholder->createdDate = 'CreatedDate';
$lang->stakeholder->emptyTip = 'No issue for now.';
$lang->stakeholder->keyList[0] = 'No';
$lang->stakeholder->keyList[1] = 'Yes';
$lang->stakeholder->typeList['inside'] = 'Internal';
$lang->stakeholder->typeList['outside'] = 'External';
$lang->stakeholder->fromList['team'] = $lang->projectCommon . ' Team';
$lang->stakeholder->fromList['company'] = 'Internal';
$lang->stakeholder->fromList['outside'] = 'External';
$lang->stakeholder->confirmDelete = "Do you want to delete the stakeholder?";
$lang->stakeholder->confirmDeleteExpect = "Do you want to remove the expectation?";
$lang->stakeholder->createCommunicate = '<i class="icon icon-chat-line"></i>added Communication History.';
$lang->stakeholder->action = new stdclass();
$lang->stakeholder->action->communicate = array('main' => '$date, communicatedby <strong>$actor</strong>.');

29
module/store/lang/ru.php Normal file
View file

@ -0,0 +1,29 @@
<?php
$lang->store->appType = 'Category';
$lang->store->appVersion = 'Version';
$lang->store->releaseDate = 'Release Date';
$lang->store->author = 'Publisher';
$lang->store->empty = 'No components found.';
$lang->store->install = 'Install';
$lang->store->customInstall = 'Custom Install';
$lang->store->searchApp = 'Search components...';
$lang->store->testChannel = 'Beta Version';
$lang->store->stableChannel = 'Stable Version';
$lang->store->appBasicInfo = 'Basic Info';
$lang->store->screenshots = 'Screenshots';
$lang->store->appDynamic = 'Updates';
$lang->store->noDynamicArticle = 'No updates yet.';
$lang->store->noScreenshot = 'No screenshots available.';
$lang->store->cloudStore = 'Marketplace';
$lang->store->browse = 'Marketplace';
$lang->store->appView = 'Component Details';
$lang->store->support = 'Support';
$lang->store->gitUrl = 'Git Repository';
$lang->store->dockerfileUrl = 'Dockerfile';
$lang->store->forumUrl = 'Forum';
$lang->store->alreadyInstalled = 'This component is already installed. Continue with installation?';
$lang->store->featureBar['browse']['id'] = 'Default';
$lang->store->featureBar['browse']['create_time'] = 'Recently Added';
$lang->store->featureBar['browse']['update_time'] = 'Recently updated';

609
module/story/lang/ru.php Normal file
View file

@ -0,0 +1,609 @@
<?php
/**
* The story module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package story
* @version $Id: en.php 5141 2013-07-15 05:57:15Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
global $config;
$lang->story->create = "Create {$lang->SRCommon}";
$lang->story->requirement = zget($lang, 'URCommon', "Feature");
$lang->story->story = zget($lang, 'SRCommon', "Story");
$lang->story->createStory = 'Create ' . $lang->story->story;
$lang->story->createRequirement = 'Create ' . $lang->story->requirement;
$lang->story->affectedStories = "Affected {$lang->story->story}";
$lang->story->browse = "{$lang->SRCommon} List";
$lang->story->batchCreate = "Batch Create";
$lang->story->change = "Change";
$lang->story->changed = 'Change';
$lang->story->assignTo = 'Assign';
$lang->story->review = 'Review';
$lang->story->submitReview = "Submit Review";
$lang->story->recall = 'Undo Review';
$lang->story->recallChange = 'Undo Change';
$lang->story->recallAction = 'Undo';
$lang->story->relation = 'Linked Stories';
$lang->story->needReview = 'Review Required';
$lang->story->batchReview = 'Batch Review';
$lang->story->edit = "Edit Story";
$lang->story->editDraft = "Edit Draft";
$lang->story->batchEdit = "Batch Edit";
$lang->story->subdivide = 'Split';
$lang->story->subdivideSR = $lang->SRCommon . 'Split';
$lang->story->link = 'Link';
$lang->story->unlink = 'Unlink';
$lang->story->track = 'Traceability Matrix';
$lang->story->trackAB = 'RTM';
$lang->story->processStoryChange = 'Confirm Story Changes';
$lang->story->storyChange = 'Story Change';
$lang->story->upstreamDemand = 'Upstream Story';
$lang->story->split = 'Split';
$lang->story->close = 'Close';
$lang->story->batchClose = 'Batch Close';
$lang->story->activate = 'Activate';
$lang->story->delete = "Delete";
$lang->story->view = "Story Details";
$lang->story->setting = "Settings";
$lang->story->tasks = "Linked Tasks";
$lang->story->bugs = "Linked Bugs";
$lang->story->cases = "Linked Test Cases";
$lang->story->taskCount = 'Tasks';
$lang->story->bugCount = 'Bugs';
$lang->story->caseCount = 'Test Cases';
$lang->story->taskCountAB = 'Tasks';
$lang->story->bugCountAB = 'Bugs';
$lang->story->caseCountAB = 'Test Cases';
$lang->story->linkStory = "Link Story";
$lang->story->unlinkStory = "Are you sure you want to unlink the story?";
$lang->story->linkStoriesAB = "Link {$lang->SRCommon}";
$lang->story->linkRequirementsAB = "Link {$lang->URCommon}";
$lang->story->export = "Export Data";
$lang->story->zeroCase = "Stories without test cases";
$lang->story->zeroTask = "Only show stories without tasks";
$lang->story->reportChart = "Report";
$lang->story->copyTitle = "Same as Story Title";
$lang->story->batchChangePlan = "Batch Change Plans";
$lang->story->batchChangeBranch = "Batch Change Branches";
$lang->story->batchChangeStage = "Batch Change Phases";
$lang->story->batchAssignTo = "Batch Assign";
$lang->story->batchChangeModule = "Batch Change Modules";
$lang->story->batchChangeParent = "Batch Change Parent";
$lang->story->batchChangeGrade = "Batch Change Hierarchy";
$lang->story->changeParent = "Change Parent";
$lang->story->viewAll = "Show All";
$lang->story->toTask = 'Convert to Task';
$lang->story->batchToTask = 'Batch Convert to Task';
$lang->story->convertRelations = 'Conversion Relations';
$lang->story->undetermined = 'TBD';
$lang->story->order = 'Sort';
$lang->story->saveDraft = 'Save as draft';
$lang->story->doNotSubmit = 'Save without Submitting';
$lang->story->currentBranch = 'Current Branch';
$lang->story->twins = 'Twin Stories';
$lang->story->relieved = 'Unlink';
$lang->story->relievedTwins = 'Unlink Twin Stories';
$lang->story->loadAllStories = 'All';
$lang->story->hasDividedTask = 'Task Breakdown Completed';
$lang->story->hasDividedCase = 'Test Cases Created';
$lang->story->viewAllGrades = 'Show All Hierarchies';
$lang->story->codeBranch = 'Code branch';
$lang->story->unlinkBranch = 'Unlink code branch';
$lang->story->branchName = 'Branch Name';
$lang->story->branchFrom = 'Create from';
$lang->story->codeRepo = 'Code Repository';
$lang->story->viewByType = "View by %s";
$lang->story->editAction = "Edit {$lang->SRCommon}";
$lang->story->changeAction = "Change {$lang->SRCommon}";
$lang->story->assignAction = "Assign {$lang->SRCommon}";
$lang->story->reviewAction = "Review {$lang->SRCommon}";
$lang->story->subdivideAction = "Split {$lang->SRCommon}";
$lang->story->closeAction = "Close {$lang->SRCommon}";
$lang->story->activateAction = "Activate {$lang->SRCommon}";
$lang->story->deleteAction = "Delete {$lang->SRCommon}";
$lang->story->exportAction = "Export {$lang->SRCommon}";
$lang->story->reportAction = "Report";
$lang->story->closedStory = "{$lang->SRCommon} %s is closed, and this operation will be ignored.";
$lang->story->batchToTaskTips = "Only active {$lang->SRCommon} can be converted into tasks.";
$lang->story->successToTask = "Batch conversion to tasks completed.";
$lang->story->storyRound = 'Round %s estimation';
$lang->story->float = "[%s] should be a positive number and may include decimals.";
$lang->story->saveDraftSuccess = 'Saved as draft successfully.';
$lang->story->changeSyncTip = "Changes to this story will be synchronized with the following twin stories.";
$lang->story->syncTip = "All fields between twin stories are synchronized except for {Slang->productCommon}, branch, module, plan, and phase. Synchronization will stop once the twin relationship is removed.";
$lang->story->relievedTip = "Once the twin relationship is removed, it cannot be restored and the stories will no longer be synchronized. Do you want to proceed with the removal?";
$lang->story->assignSyncTip = "Assignees have been updated synchronously across all twin stories,";
$lang->story->closeSyncTip = "All twin stories have been closed synchronously.";
$lang->story->activateSyncTip = "All twin stories have been activated synchronously.";
$lang->story->relievedTwinsTip = "After {$lang->productCommon} is changed, this story will automatically be unlinked from its twin. The synchronization will stop. Do you want to save the changes?";
$lang->story->batchEditTip = "{$lang->SRCommon} %s is a twin story. This operation will be ignored.";
$lang->story->planTip = "{$lang->SRCommon} can be assigned to only one plan, while other stories can be assigned to multiple plans.";
$lang->story->batchEditError = "All selected stories are non-editable. This operation will be ignored.";
$lang->story->id = 'ID';
$lang->story->parent = 'Parent Story';
$lang->story->isParent = 'is Parent Story';
$lang->story->grade = 'Hierarchy';
$lang->story->gradeName = 'Hierarchy Name';
$lang->story->path = 'Path';
$lang->story->product = $lang->productCommon;
$lang->story->project = $lang->projectCommon;
$lang->story->execution = "Execution";
$lang->story->branch = "Branch / Platform";
$lang->story->module = 'Module';
$lang->story->moduleAB = 'Module';
$lang->story->roadmap = 'Roadmap';
$lang->story->source = 'Source';
$lang->story->sourceNote = 'Note';
$lang->story->fromBug = 'Source Bug';
$lang->story->title = "{$lang->SRCommon} Name";
$lang->story->name = "Name";
$lang->story->type = "Type";
$lang->story->category = 'Category';
$lang->story->color = 'Color';
$lang->story->toBug = 'Convert to Bug';
$lang->story->spec = 'Description';
$lang->story->assign = 'Assigned to';
$lang->story->verify = 'Acceptance Criteria';
$lang->story->pri = 'Priority';
$lang->story->estimate = "Estimation";
$lang->story->estimateAB = 'Estimate';
$lang->story->hour = $lang->hourCommon;
$lang->story->consumed = 'Cost';
$lang->story->status = 'Status';
$lang->story->statusAB = 'Status';
$lang->story->subStatus = 'Substatus';
$lang->story->stage = 'Phase';
$lang->story->stageAB = 'Phase';
$lang->story->stagedBy = 'Phase Creator';
$lang->story->mailto = 'Mail to';
$lang->story->openedBy = 'Creator';
$lang->story->openedByAB = 'Creator';
$lang->story->openedDate = 'Created Date';
$lang->story->assignedTo = 'Assigned to';
$lang->story->assignedToAB = 'Assign';
$lang->story->assignedDate = 'Assigned on';
$lang->story->lastEditedBy = 'Last Edit';
$lang->story->lastEditedByAB = 'Last Edited by';
$lang->story->lastEditedDate = 'Last Edited on';
$lang->story->closedBy = 'Closed by';
$lang->story->closedDate = 'Closed on';
$lang->story->closedReason = 'Close Reason';
$lang->story->rejectedReason = 'Reject Reason';
$lang->story->changedBy = 'Changed by';
$lang->story->changedDate = 'Changed on';
$lang->story->reviewedBy = 'Reviewed by';
$lang->story->reviewer = 'Reviewer';
$lang->story->reviewers = 'Reviewer';
$lang->story->reviewedDate = 'Reviewed on';
$lang->story->activatedDate = 'Activated on';
$lang->story->version = 'Version';
$lang->story->feedbackBy = 'Feedback Provider';
$lang->story->notifyEmail = 'Email';
$lang->story->plan = 'Linked Plan';
$lang->story->planAB = 'Plan';
$lang->story->comment = 'Comment';
$lang->story->children = "Sub{$lang->SRCommon}";
$lang->story->childItem = "Subitems";
$lang->story->childrenAB = "Sub";
$lang->story->linkStories = 'Linked Story';
$lang->story->linkRequirements = "Linked {$lang->URCommon}";
$lang->story->childStories = 'Split Story';
$lang->story->duplicateStory = 'Duplicated Story';
$lang->story->reviewResult = 'Review Result';
$lang->story->reviewResultAB = 'Review Result';
$lang->story->preVersion = 'Previous Version';
$lang->story->keywords = 'Keywords';
$lang->story->newStory = 'Create Story';
$lang->story->colorTag = 'Color';
$lang->story->files = 'Files';
$lang->story->copy = "Copy Story";
$lang->story->total = "Total Stories";
$lang->story->draft = 'Draft';
$lang->story->unclosed = 'Open';
$lang->story->deleted = 'Deleted';
$lang->story->released = 'Released Stories';
$lang->story->URChanged = 'Change Feature';
$lang->story->design = 'Design';
$lang->story->case = 'Test Cases';
$lang->story->bug = 'Bugs';
$lang->story->repoCommit = 'Commits';
$lang->story->one = 'One';
$lang->story->field = 'Sync Fields';
$lang->story->completeRate = 'Completion Rate';
$lang->story->reviewed = 'Reviewed';
$lang->story->toBeReviewed = 'Awaiting Review';
$lang->story->isReviewed = 'Is Reviewed';
$lang->story->linkMR = 'Related MRs';
$lang->story->linkPR = 'Related PRs';
$lang->story->linkCommit = 'Related Commits';
$lang->story->URS = 'Feature';
$lang->story->estimateUnit = "(Unit: {$lang->story->hour})";
$lang->story->verifiedDate = 'Accepted on';
$lang->story->root = 'Root Story ID';
$lang->story->vision = 'Interface';
$lang->story->fromStory = 'Source Story';
$lang->story->fromVersion = 'Source Version';
$lang->story->approvedDate = 'Reviewed on';
$lang->story->releasedDate = 'Released on';
$lang->story->parentVersion = 'Parent Version';
$lang->story->demandVersion = 'Story from Story Pool';
$lang->story->storyChanged = 'Story Changed';
$lang->story->demand = 'Stories from Story Pool';
$lang->story->unlinkReason = 'Unlink Reason';
$lang->story->retractedReason = 'Revoke Reason';
$lang->story->ditto = 'Ditto';
$lang->story->dittoNotice = "This story is not linked to the same {$lang->productCommon} as the last one is.";
$lang->story->viewTypeList['tiled'] = 'List View';
$lang->story->viewTypeList['tree'] = 'Tree View';
if($config->enableER) $lang->story->typeList['epic'] = $lang->ERCommon;
if($config->URAndSR) $lang->story->typeList['requirement'] = $lang->URCommon;
$lang->story->typeList['story'] = $lang->SRCommon;
$lang->story->needNotReviewList[0] = 'Review Required';
$lang->story->needNotReviewList[1] = 'No Review Required';
$lang->story->useList[0] = 'Enable';
$lang->story->useList[1] = 'Disable';
$lang->story->statusList[''] = '';
$lang->story->statusList['draft'] = 'Draft';
$lang->story->statusList['reviewing'] = 'Reviewing';
$lang->story->statusList['active'] = 'Activated';
$lang->story->statusList['changing'] = 'Changing';
$lang->story->statusList['closed'] = 'Closed';
$lang->story->stageList[''] = '';
$lang->story->stageList['wait'] = 'Waiting';
$lang->story->stageList['planned'] = 'Planned';
$lang->story->stageList['projected'] = 'Initiated ';
$lang->story->stageList['designing'] = 'Designing';
$lang->story->stageList['designed'] = 'Design Completed';
$lang->story->stageList['developing'] = 'Developing';
$lang->story->stageList['developed'] = 'Dev Completed';
$lang->story->stageList['testing'] = 'Testing';
$lang->story->stageList['tested'] = 'Test Completed';
$lang->story->stageList['verified'] = 'Accepted';
$lang->story->stageList['rejected'] = 'Rejected';
$lang->story->stageList['delivering'] = 'Delivering';
$lang->story->stageList['delivered'] = 'Deliver Completed';
$lang->story->stageList['released'] = 'Released';
$lang->story->stageList['closed'] = 'Closed';
$lang->story->reasonList[''] = '';
$lang->story->reasonList['done'] = 'Completed';
$lang->story->reasonList['subdivided'] = 'Decomposed';
$lang->story->reasonList['duplicate'] = 'Duplicate';
$lang->story->reasonList['postponed'] = 'Postponed';
$lang->story->reasonList['willnotdo'] = "Won't Do";
$lang->story->reasonList['cancel'] = 'Cancelled';
$lang->story->reasonList['bydesign'] = 'As Designed';
//$lang->story->reasonList['isbug'] = 'Bug!';
$lang->story->reviewResultList[''] = '';
$lang->story->reviewResultList['pass'] = 'Pass';
$lang->story->reviewResultList['revert'] = 'Revoke';
$lang->story->reviewResultList['clarify'] = 'To Be Clarified';
$lang->story->reviewResultList['reject'] = 'Reject';
$lang->story->reviewList[0] = 'No';
$lang->story->reviewList[1] = 'Yes';
$lang->story->sourceList[''] = '';
$lang->story->sourceList['customer'] = 'Customer';
$lang->story->sourceList['user'] = 'User';
$lang->story->sourceList['po'] = $lang->productCommon . ' Owner';
$lang->story->sourceList['market'] = 'Marketing';
$lang->story->sourceList['service'] = 'Customer Service';
$lang->story->sourceList['operation'] = 'Operations';
$lang->story->sourceList['support'] = 'Technical Support';
$lang->story->sourceList['competitor'] = 'Competitor';
$lang->story->sourceList['partner'] = 'Partner';
$lang->story->sourceList['dev'] = 'Dev Team';
$lang->story->sourceList['tester'] = 'Test Team';
$lang->story->sourceList['bug'] = 'Bug';
$lang->story->sourceList['forum'] = 'Forum';
$lang->story->sourceList['other'] = 'Others';
$lang->story->priList[0] = '';
$lang->story->priList[1] = '1';
$lang->story->priList[2] = '2';
$lang->story->priList[3] = '3';
$lang->story->priList[4] = '4';
$lang->story->changeList = array();
$lang->story->changeList['no'] = 'Cancel';
$lang->story->changeList['yes'] = 'Confirm';
$lang->story->legendBasicInfo = 'Basic Info';
$lang->story->legendLifeTime = 'Story Life ';
$lang->story->legendRelated = 'Related Info';
$lang->story->legendMailto = 'Mail to';
$lang->story->legendAttach = 'Files';
$lang->story->legendProjectAndTask = $lang->executionCommon . 'and Task';
$lang->story->legendBugs = 'Linked Bugs';
$lang->story->legendFromBug = 'Source Bug';
$lang->story->legendCases = 'Linked Test Cases';
$lang->story->legendBuilds = 'Linked Builds';
$lang->story->legendReleases = 'Linked Releases';
$lang->story->legendLinkStories = 'Linked Stories';
$lang->story->legendChildStories = 'Substories';
$lang->story->legendSpec = 'Description';
$lang->story->legendVerify = 'Acceptance Criteria';
$lang->story->legendMisc = 'Misc.';
$lang->story->legendInformation = 'Story Info';
$lang->story->lblChange = 'Change';
$lang->story->lblReview = 'Review';
$lang->story->lblActivate = 'Activate';
$lang->story->lblClose = 'Close';
$lang->story->lblTBC = 'Task/Bug/Test Case';
$lang->story->checkAffection = 'Impact';
$lang->story->affectedProjects = "Impacted {$lang->project->common}/{$lang->execution->common}";
$lang->story->affectedBugs = 'Impacted Bugs';
$lang->story->affectedCases = 'Impacted Test Cases';
$lang->story->affectedTwins = 'Impacted Twin Stories';
$lang->story->specTemplate = "As a <role>, I would like to <do something> in order to <goal>.";
$lang->story->needNotReview = 'No Review Required';
$lang->story->childStoryTitle = 'Contains %s substories, of which %s are completed.';
$lang->story->childTaskTitle = 'Contains %s subtasks, of which %s are completed.';
$lang->story->successSaved = "Story is saved!";
$lang->story->confirmDelete = "Are you sure you want to delete this {$lang->SRCommon}?";
$lang->story->confirmRecall = "Are you sure you want to revoke this {$lang->SRCommon}?";
$lang->story->errorEmptyChildStory = "The field Split {$lang->SRCommon} cannot be empty.";
$lang->story->errorNotSubdivide = "{$lang->SRCommon} in review, closed, or a substory cannot be split.";
$lang->story->errorMaxGradeSubdivide = "The hierarchy level of this story has reached the maximum level set in the system; stories of the same type cannot be split further.";
$lang->story->errorStepwiseSubdivide = "This story type does not allow cross-system splitting. This setting can be changed in the Admin.";
$lang->story->errorCannotSplit = "This story has been split into substories of this type and cannot be split into stories of other types.";
$lang->story->errorParentSplitTask = "Parent stories cannot be converted to tasks. This operation has been ignored.";
$lang->story->errorERURSplitTask = "Parent storie, {$lang->ERCommon}, and {$lang->URCommon} cannot be converted to tasks. This operation has been ignored.";
$lang->story->errorEmptyReviewedBy = "The field {$lang->story->reviewers} cannot be empty.";
$lang->story->errorEmptyStory = "A story with the same title already exists, or the title is empty. Please check your input.";
$lang->story->mustChooseResult = 'You must select a review result.';
$lang->story->mustChoosePreVersion = 'You must select a version to revert.';
$lang->story->noEpic = "No {$lang->ERCommon} available yet.";
$lang->story->noStory = "No {$lang->SRCommon} available yet.";
$lang->story->noRequirement = "No {$lang->URCommon} available yet.";
$lang->story->ignoreChangeStage = "{$lang->SRCommon} %s is in draft or closed status. This operation has been ignored.";
$lang->story->cannotDeleteParent = "Parent {$lang->SRCommon} cannot be deleted.";
$lang->story->moveChildrenTips = "Are you sure you want to change the linked product? After the change, all sub-stories will be updated accordingly.";
$lang->story->changeTips = 'The Feature linked to this Story has changed. Click “Cance” to ignore, or “Change” to update the Story accordingly.';
$lang->story->estimateMustBeNumber = 'The estimated value must be a number.';
$lang->story->estimateMustBePlus = 'The estimated value cannot be negative.';
$lang->story->confirmChangeBranch = $lang->SRCommon . '%s is linked to a plan in a previous branch. After changing the branch, the ' . $lang->SRCommon . ' will be removed from that branch plan. Do you want to continue edit ' . $lang->SRCommon . '?';
$lang->story->confirmChangePlan = $lang->SRCommon . '%s is linked to a branch in the previous plans. After changing the branch, the ' . $lang->SRCommon . ' will be removed from that plan. Do you want to continue edit ' . $lang->SRCommon . '?';
$lang->story->errorDuplicateStory = $lang->SRCommon . '%s does not exist.';
$lang->story->confirmRecallChange = "After revoking the change, the story will revert to the version before the change. Are you sure you want to revoke it?";
$lang->story->confirmRecallReview = "Are you sure you want to withdraw the review?";
$lang->story->noStoryToTask = "{lang->SRCommon} not in activated status and the parent {$lang->SRCommon} cannot be converted into a task!";
$lang->story->ignoreClosedStory = "{$lang->SRCommon} %s is in closed status. This operation has been ignored.";
$lang->story->changeProductTips = "Are you sure you want to change the linked product? After change, all substories will be updated accordingly.";
$lang->story->gradeOverflow = "The deepest sub-story has a hierarchy depth of %s. Syncing would change it to %s, exceeding the allowed hierarchy limit. Change not allowed.";
$lang->story->batchGradeOverflow = "Changing the parent of %s would cause its children to exceed the allowed hierarchy depth. This change was ignored.";
$lang->story->batchGradeSameRoot = '%s has a parent-child relationship and won’t be reassigned in the hierarchy.';
$lang->story->batchGradeGtParent = 'The parent story of %s cannot be itself or a child story. This change was ignored.';
$lang->story->batchParentError = "%s cannot have itself or any of its descendants as its parent. This change was ignored.";
$lang->story->errorNoGradeSplit = "No story levels are available to split.";
$lang->story->errorRecordMinus = '[%s] must not be negative.';
$lang->story->form = new stdclass();
$lang->story->form->area = 'Scope';
$lang->story->form->desc = 'What story is it? How about the acceptance criteria?';
$lang->story->form->resource = 'Who will allocate resources? How long does it take?';
$lang->story->form->file = 'Click here to upload any files related to the story.';
$lang->story->action = new stdclass();
$lang->story->action->reviewed = array('main' => '$date, recorded by <strong>$actor</strong>. The review result is <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->story->action->rejectreviewed = array('main' => '$date, recorded by <strong>$actor</strong>. The review result is <strong>$extra</strong>. The reason is <strong>$reason</strong>.', 'extra' => 'reviewResultList', 'reason' => 'reasonList');
$lang->story->action->recalled = array('main' => '$date, the review revoked by <strong>$actor</strong>.');
$lang->story->action->closed = array('main' => '$date, closed by <strong>$actor</strong>. The reason is <strong>$extra</strong> $appendLink.', 'extra' => 'reasonList');
$lang->story->action->closedbysystem = array('main' => '$date, the system automatically closed the parent story because all of its child stories were closed.');
$lang->story->action->closedbyparent = array('main' => '$date, the system automatically closed the child story because its parent story were closed.');
$lang->story->action->reviewpassed = array('main' => '$date, reviewed by the <strong>system</strong> and marked as <strong>Pass</strong>.');
$lang->story->action->reviewrejected = array('main' => '$date, closed by the <strong>system</strong> with reason: <strong>Reject</strong>.');
$lang->story->action->reviewclarified = array('main' => '$date, reviewed by the <strong>system</strong> and marked as<strong>To Be Clarified</strong.');
$lang->story->action->reviewreverted = array('main' => '$date, reviewed by the <strong>system</strong> and marked as<strong>Revoke Change</strong.');
$lang->story->action->linked2plan = array('main' => '$date, linked to Plan <strong>$extra</strong> by <strong>$actor</strong.');
$lang->story->action->unlinkedfromplan = array('main' => '$date, unlinked from plan <strong>$extra</strong> by <strong>$actor</strong.');
$lang->story->action->linked2execution = array('main' => '$date, linked to ' . $lang->executionCommon . ' <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfromexecution = array('main' => '$date, unlinked from ' . $lang->executionCommon . ' <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linked2kanban = array('main' => '$date, linked to Kanban <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linked2project = array('main' => '$date, linked to ' . $lang->projectCommon . ' <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfromproject = array('main' => '$date, unlinked from ' .$lang->projectCommon . '<strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linked2build = array('main' => '$date, linked to Build <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfrombuild = array('main' => '$date, unlinked from Build <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linked2release = array('main' => '$date, linked to Release <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfromrelease = array('main' => '$date, unlinked from Release <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linked2revision = array('main' => '$date, linked to Commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfromrevision = array('main' => '$date, unlinked from Commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->linkrelatedstory = array('main' => '$date, linked to Story <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->subdividestory = array('main' => '$date, splited to {$lang->SRCommon} <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked from Story <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked from the splited {$lang->SRCommon} <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->recalledchange = array('main' => '$date, changes revoked by <strong>$actor</strong>.');
$lang->story->action->synctwins = array('main' => '$ddate, the system automatically updated this story because its twin story <strong>$extra</strong> was $operate.', 'operate' => 'operateList'
);
$lang->story->action->syncgrade = array('main' => '$date, the system updated this story hierarchy level to <strong>$extra</strong> due to a change in its parent story.');
$lang->story->action->linked2roadmap = array('main' => '$date, linked to Roadmap <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->unlinkedfromroadmap = array('main' => '$date, unlinked from Roadmap <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->story->action->changedbycharter = array('main' => '$date, charter proposal <strong>$extra</strong> was approved by <strong>$actor</strong>. The story phase was automatically updated to Charter.');
/* Statistical statement. */
$lang->story->report = new stdclass();
$lang->story->report->common = 'Reports';
$lang->story->report->select = 'Select Report Type';
$lang->story->report->create = 'Create Report';
$lang->story->report->value = 'Stories';
$lang->story->report->charts['storiesPerProduct'] = $lang->productCommon . ' ' . $lang->SRCommon;
$lang->story->report->charts['storiesPerModule'] = "$lang->SRCommon in Module";
$lang->story->report->charts['storiesPerSource'] = 'By Story Source';
$lang->story->report->charts['storiesPerPlan'] = 'By Plan';
$lang->story->report->charts['storiesPerStatus'] = 'By Status';
$lang->story->report->charts['storiesPerStage'] = 'By Phase';
$lang->story->report->charts['storiesPerPri'] = 'By Priority';
$lang->story->report->charts['storiesPerEstimate'] = 'By Estimated Efforts';
$lang->story->report->charts['storiesPerOpenedBy'] = 'By Creator';
$lang->story->report->charts['storiesPerAssignedTo'] = 'By Assignee';
$lang->story->report->charts['storiesPerClosedReason'] = 'By Closure Reason';
$lang->story->report->charts['storiesPerChange'] = 'By Change Count';
$lang->story->report->charts['storiesPerGrade'] = 'By Hierarchy';
$lang->story->report->options = new stdclass();
$lang->story->report->options->graph = new stdclass();
$lang->story->report->options->type = 'pie';
$lang->story->report->options->width = 500;
$lang->story->report->options->height = 140;
$lang->story->report->storiesPerProduct = new stdclass();
$lang->story->report->storiesPerModule = new stdclass();
$lang->story->report->storiesPerSource = new stdclass();
$lang->story->report->storiesPerPlan = new stdclass();
$lang->story->report->storiesPerStatus = new stdclass();
$lang->story->report->storiesPerStage = new stdclass();
$lang->story->report->storiesPerPri = new stdclass();
$lang->story->report->storiesPerOpenedBy = new stdclass();
$lang->story->report->storiesPerAssignedTo = new stdclass();
$lang->story->report->storiesPerClosedReason = new stdclass();
$lang->story->report->storiesPerEstimate = new stdclass();
$lang->story->report->storiesPerChange = new stdclass();
$lang->story->report->storiesPerGrade = new stdclass();
$lang->story->report->storiesPerProduct->item = $lang->productCommon;
$lang->story->report->storiesPerModule->item = 'Module';
$lang->story->report->storiesPerSource->item = 'Source';
$lang->story->report->storiesPerPlan->item = 'Plan';
$lang->story->report->storiesPerStatus->item = 'Status';
$lang->story->report->storiesPerStage->item = 'Phase';
$lang->story->report->storiesPerPri->item = 'Priority';
$lang->story->report->storiesPerOpenedBy->item = 'Creator';
$lang->story->report->storiesPerAssignedTo->item = 'Assigned to';
$lang->story->report->storiesPerClosedReason->item = 'Reason';
$lang->story->report->storiesPerEstimate->item = 'Estimated Efforts';
$lang->story->report->storiesPerChange->item = 'Change Count';
$lang->story->report->storiesPerGrade->item = 'Hierarchy';
$lang->story->report->storiesPerProduct->graph = new stdclass();
$lang->story->report->storiesPerModule->graph = new stdclass();
$lang->story->report->storiesPerSource->graph = new stdclass();
$lang->story->report->storiesPerPlan->graph = new stdclass();
$lang->story->report->storiesPerStatus->graph = new stdclass();
$lang->story->report->storiesPerStage->graph = new stdclass();
$lang->story->report->storiesPerPri->graph = new stdclass();
$lang->story->report->storiesPerOpenedBy->graph = new stdclass();
$lang->story->report->storiesPerAssignedTo->graph = new stdclass();
$lang->story->report->storiesPerClosedReason->graph = new stdclass();
$lang->story->report->storiesPerEstimate->graph = new stdclass();
$lang->story->report->storiesPerChange->graph = new stdclass();
$lang->story->report->storiesPerGrade->graph = new stdclass();
$lang->story->report->storiesPerProduct->graph->xAxisName = $lang->productCommon;
$lang->story->report->storiesPerModule->graph->xAxisName = 'Module';
$lang->story->report->storiesPerSource->graph->xAxisName = 'Source';
$lang->story->report->storiesPerPlan->graph->xAxisName = 'Plan';
$lang->story->report->storiesPerStatus->graph->xAxisName = 'Status';
$lang->story->report->storiesPerStage->graph->xAxisName = 'Phase';
$lang->story->report->storiesPerPri->graph->xAxisName = 'Priority';
$lang->story->report->storiesPerOpenedBy->graph->xAxisName = 'Creator';
$lang->story->report->storiesPerAssignedTo->graph->xAxisName = 'Assignee';
$lang->story->report->storiesPerClosedReason->graph->xAxisName = 'Close Reason';
$lang->story->report->storiesPerEstimate->graph->xAxisName = 'Estimated Effort';
$lang->story->report->storiesPerChange->graph->xAxisName = 'Change Count';
$lang->story->report->storiesPerGrade->graph->xAxisName = 'Hierarchy';
$lang->story->placeholder = new stdclass();
$lang->story->placeholder->estimate = $lang->story->hour;
$lang->story->chosen = new stdClass();
$lang->story->chosen->reviewedBy = 'Select reviewers';
$lang->story->notice = new stdClass();
$lang->story->notice->closed = "{$lang->SRCommon} you selected has already been closed!";
$lang->story->notice->reviewerNotEmpty = "This {$lang->SRCommon} requires a review. Reviewers cannot be empty.";
$lang->story->notice->changePlan = 'You can link the story to only one plan. Please update it before saving.';
$lang->story->notice->notDeleted = 'You cannot remove reviewers who have already submitted their review results.';
$lang->story->convertToTask = new stdClass();
$lang->story->convertToTask->fieldList = array();
$lang->story->convertToTask->fieldList['module'] = 'Module';
$lang->story->convertToTask->fieldList['spec'] = "Description";
$lang->story->convertToTask->fieldList['pri'] = 'Priority';
$lang->story->convertToTask->fieldList['mailto'] = 'Mail to';
$lang->story->convertToTask->fieldList['assignedTo'] = 'Assigned to';
$lang->story->categoryList['feature'] = 'Feature';
$lang->story->categoryList['interface'] = 'API';
$lang->story->categoryList['performance'] = 'Performance';
$lang->story->categoryList['safe'] = 'Safety';
$lang->story->categoryList['experience'] = 'User Experience';
$lang->story->categoryList['improve'] = 'Improvement';
$lang->story->categoryList['other'] = 'Others';
$lang->story->frozenTip = "After the stories are baselined, %s is not allowed.";
$lang->story->frozenTips = "Story %s has been frozen and will not be %s.";
$lang->story->changeTip = 'You can only request changes to active stories.';
$lang->story->reviewTip = array();
$lang->story->reviewTip['active'] = 'This story is already active. No review needed.';
$lang->story->reviewTip['notReviewer'] = 'You’re not a reviewer for this story and can’t perform a review.';
$lang->story->reviewTip['reviewed'] = 'You’ve already reviewed this story.';
$lang->story->reviewTip['noPriv'] = 'You don’t have permission to submit a review.';
$lang->story->recallTip = array();
$lang->story->recallTip['actived'] = 'No review was started for this story, so there’s nothing to revoke.';
$lang->story->subDivideTip = array();
$lang->story->subDivideTip['notWait'] = 'The story has been %s and cannot be split.';
$lang->story->subDivideTip['notActive'] = "You cannot split stories that are under review or closed.";
$lang->story->subDivideTip['twinsSplit'] = 'Twin stories cannot be split.';
$lang->story->featureBar['browse']['all'] = $lang->all;
$lang->story->featureBar['browse']['unclosed'] = $lang->story->unclosed;
$lang->story->featureBar['browse']['draft'] = $lang->story->statusList['draft'];
$lang->story->featureBar['browse']['reviewing'] = $lang->story->statusList['reviewing'];
$lang->story->operateList = array();
$lang->story->operateList['assigned'] = 'Assign';
$lang->story->operateList['closed'] = 'Close';
$lang->story->operateList['activated'] = 'Activate';
$lang->story->operateList['changed'] = 'Change';
$lang->story->operateList['reviewed'] = 'Review';
$lang->story->operateList['edited'] = 'Edit';
$lang->story->operateList['submitreview'] = 'submit review';
$lang->story->operateList['recalledchange'] = 'Revoke Change';
$lang->story->operateList['recalled'] = 'Revoke Review';
$lang->story->addBranch = 'Add %s';
$lang->story->deleteBranch = 'Delete %s';
$lang->story->notice->branch = "A separate story is created for each branch, and these stories are linked as twins. All fields are synchronized between twin stories, except for {$lang->productCommon}, Branch, Module, Plan, and Phase. You can manually unlink the twin relationship at any time.";
$lang->story->relievedTwinsRelation = 'Unlink Twin Relationship';
$lang->story->relievedTwinsRelationTips = 'Once unlinked, the twin relationship cannot be restored, and closing one story will no longer affect synchronously.';
$lang->story->changeRelievedTwinsTips = 'Once unlinked, the twin relationship cannot be restored, and changes to one story will no longer affect synchronously.';
$lang->story->cannotRejectTips = '“%s” has been modified and cannot be rejected in review. this action has been ignored.';
$lang->story->trackOrderByList['id'] = 'Sort by ID';
$lang->story->trackOrderByList['pri'] = 'Sort by Priority';
$lang->story->trackOrderByList['status'] = 'Sort by Status';
$lang->story->trackOrderByList['stage'] = 'Sort by Phase';
$lang->story->trackOrderByList['category'] = 'Sort by Type';
$lang->story->trackSortList['asc'] = 'Ascending';
$lang->story->trackSortList['desc'] = 'Descending';
$lang->story->error = new stdclass();
$lang->story->error->length = "The input exceeds %d characters and cannot be saved. Please shorten it and try again.";

16
module/svn/lang/ru.php Normal file
View file

@ -0,0 +1,16 @@
<?php
/**
* The svn module zh-cn file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package svn
* @version $Id$
* @link https://www.zentao.net
*/
/* Methods. */
$lang->svn->common = 'Subversion';
$lang->svn->cat = 'View Source Code';
$lang->svn->diff = 'Compare Source Code';
$lang->svn->apiSync = 'API: Syncrhonize SVN Logs';

315
module/system/lang/ru.php Normal file
View file

@ -0,0 +1,315 @@
<?php
$lang->system->dashboard = 'Monitoring';
$lang->system->systemInfo = 'System information';
$lang->system->dbManagement = 'Database management';
$lang->system->ldapManagement = 'LDAP';
$lang->system->dbList = 'Databases';
$lang->system->configDomain = 'Domain Management';
$lang->system->ossView = 'Object Storage';
$lang->system->dbName = 'Name';
$lang->system->dbStatus = 'Status';
$lang->system->dbType = 'Type';
$lang->system->action = 'Actions';
$lang->system->management = 'Manage';
$lang->system->visit = 'Access';
$lang->system->close = 'Close';
$lang->system->installLDAP = 'Install LDAP';
$lang->system->editLDAP = 'Edit';
$lang->system->LDAPInfo = 'LDAP information';
$lang->system->accountInfo = 'Account information';
$lang->system->advance = 'Advanced';
$lang->system->verify = 'Verify';
$lang->system->copy = 'Copy';
$lang->system->copySuccess = 'Copied to clipboard';
$lang->system->cneStatus = 'Platform status';
$lang->system->cneStatistic = 'Resource statistics';
$lang->system->latestDynamic = 'Latest Updates';
$lang->system->nodeQuantity = 'Nodes';
$lang->system->serviceQuantity = 'Services';
$lang->system->cpuUsage = 'CPU (Cores)';
$lang->system->memUsage = 'Memory (GB)';
$lang->system->name = ucfirst($lang->product->system) . ' name';
$lang->system->integrated = 'Integrated ' . $lang->product->system;
$lang->system->latestRelease = 'Latest version';
$lang->system->children = 'Included ' . $lang->product->system . 's';
$lang->system->latestRelease = 'Latest version';
$lang->system->status = 'Status';
$lang->system->desc = 'Description';
$lang->system->browse = ucfirst($lang->product->system) . ' list';
$lang->system->create = 'Create ' . ucfirst($lang->product->system);
$lang->system->edit = 'Edit ' . ucfirst($lang->product->system);
$lang->system->delete = 'Delete ' . ucfirst($lang->product->system);
$lang->system->active = 'Publish ' . $lang->product->system;
$lang->system->inactive = 'Unpublish ' . $lang->product->system;
$lang->system->integratedLabel = 'Integration';
$lang->system->backupView = 'Backup details';
$lang->system->integratedList = array();
$lang->system->integratedList[0] = 'No';
$lang->system->integratedList[1] = 'Yes';
$lang->system->statusList = array();
$lang->system->statusList['active'] = 'Published';
$lang->system->statusList['inactive'] = 'Unpublished';
$lang->system->confirmDelete = 'Are you sure you want to delete this ' . $lang->product->system . '?';
$lang->system->confirmActive = 'Are you sure you want to publish this ' . $lang->product->system . '?';
$lang->system->confirmInactive = 'Are you sure you want to unpublish this ' . $lang->product->system . '?';
$lang->system->releaseExist = 'The ' . $lang->product->system . ' associated with a release cannot be deleted.';
$lang->system->buildExist = 'The ' . $lang->product->system . ' associated with a build cannot be deleted.';
/* LDAP */
$lang->system->LDAP = new stdclass;
$lang->system->LDAP->info = 'LDAP information';
$lang->system->LDAP->ldapEnabled = 'Enable LDAP';
$lang->system->LDAP->ldapQucheng = 'Built-in Qucheng';
$lang->system->LDAP->ldapSource = 'Source';
$lang->system->LDAP->ldapInstall = 'Install and Enable';
$lang->system->LDAP->ldapUpdate = 'Update';
$lang->system->LDAP->accountInfo = 'Account Information';
$lang->system->LDAP->account = 'Account';
$lang->system->LDAP->password = 'Password';
$lang->system->LDAP->ldapUsername = 'Username';
$lang->system->LDAP->ldapName = 'Name';
$lang->system->LDAP->host = 'Host';
$lang->system->LDAP->port = 'Port';
$lang->system->LDAP->account = 'Account';
$lang->system->LDAP->password = 'Password';
$lang->system->LDAP->ldapRoot = 'Root node';
$lang->system->LDAP->filterUser = 'User Filter';
$lang->system->LDAP->email = 'Email Field';
$lang->system->LDAP->extraAccount = 'Username Field';
$lang->system->LDAP->ldapAdvance = 'Advanced Settings';
$lang->system->LDAP->updateLDAP = 'Update LDAP';
$lang->system->LDAP->updateInstance = 'Update services associated with LDAP';
$lang->system->LDAP->updatingProgress = 'Updating... %s services remaining.';
$lang->system->ldapTypeList = array();
$lang->system->ldapTypeList['qucheng'] = 'Built-in Qucheng';
$lang->system->ldapTypeList['extra'] = 'External mapping';
/* OSS */
$lang->system->oss = new stdclass;
$lang->system->oss->common = 'Object Storage';
$lang->system->oss->appURL = 'App URL';
$lang->system->oss->user = 'Username';
$lang->system->oss->password = 'Password';
$lang->system->oss->manage = 'Manage';
$lang->system->oss->apiURL = 'API URL';
$lang->system->oss->accessKey = 'Access Key';
$lang->system->oss->secretKey = 'Secret Key';
/* SMTP */
$lang->system->SMTP = new stdclass;
$lang->system->SMTP->common = 'Email Configuration';
$lang->system->SMTP->enabled = 'Enable SMTP';
$lang->system->SMTP->install = 'Install';
$lang->system->SMTP->update = 'Update';
$lang->system->SMTP->edit = 'Edit';
$lang->system->SMTP->editSMTP = 'Edit SMTP';
$lang->system->SMTP->account = 'Sender Email';
$lang->system->SMTP->password = 'Password';
$lang->system->SMTP->host = 'SMTP Server';
$lang->system->SMTP->port = 'SMTP Port';
$lang->system->SMTP->save = 'Save';
/* Domain */
$lang->system->customDomain = 'New domain name';
$lang->system->certPem = 'Public Key Certificate';
$lang->system->certKey = 'Private Key';
$lang->system->domain = new stdclass;
$lang->system->domain->common = 'Domain management';
$lang->system->domain->editDomain = 'Edit Domain Settings';
$lang->system->domain->config = 'Configure Domain and Certificate';
$lang->system->domain->currentDomain = 'Current Domain';
$lang->system->domain->oldDomain = 'Previous Domain';
$lang->system->domain->newDomain = 'New Domain';
$lang->system->domain->expiredDate = 'Certificate Expiration Date';
$lang->system->domain->uploadCert = 'Upload Certificate (Wildcard certificates only)';
$lang->system->domain->notReuseOldDomain = 'Cannot revert to the default domain after using a custom domain.';
$lang->system->domain->setDNS = 'Please configure DNS resolution before modifying the domain.';
$lang->system->domain->dnsHelperLink = 'View Help Documentation';
$lang->system->domain->updateInstancesDomain = 'Update Domain for Installed Services';
$lang->system->domain->totalOldDomain = 'Total: %s.';
$lang->system->domain->updatingProgress = 'Updating... %s remaining.';
$lang->system->domain->updating = 'Updating...';
$lang->system->SLB = new stdclass;
$lang->system->SLB->common = 'Load Balancing';
$lang->system->SLB->config = 'Configure load balancing';
$lang->system->SLB->edit = 'Edit Load Balancing';
$lang->system->SLB->ipPool = 'IP Range';
$lang->system->SLB->ipPoolExample = 'Example: 192.168.10.0/24 or 192.168.10.0-192.168.10.100';
$lang->system->SLB->installing = 'Configuring Load Balancing...';
$lang->system->SLB->leftSeconds = 'Estimated Time Remaining';
$lang->system->SLB->second = 'Seconds';
$lang->system->notices = new stdclass;
$lang->system->notices->success = 'Success';
$lang->system->notices->fail = 'Failed';
$lang->system->notices->attention = 'Note';
$lang->system->notices->noLDAP = 'LDAP configuration data not found.';
$lang->system->notices->ldapUsed = '%s services are associated with LDAP.';
$lang->system->notices->ldapInstallSuccess = 'LDAP installed successfully.';
$lang->system->notices->ldapUpdateSuccess = 'LDAP updated successfully.';
$lang->system->notices->confirmUpdateLDAP = 'Modifying LDAP will automatically update and restart associated services. Are you sure you want to proceed?';
$lang->system->notices->verifyLDAPSuccess = 'LDAP verification successful!';
$lang->system->notices->fillAllRequiredFields = 'Please fill in all required fields.';
$lang->system->notices->smtpInstallSuccess = 'SMTP installed successfully.';
$lang->system->notices->smtpUpdateSuccess = 'SMTP updated successfully.';
$lang->system->notices->smtpWhiteList = "To prevent emails from being blocked, please add the sender's email to your server's whitelist.";
$lang->system->notices->smtpAuthCode = 'Some email providers require an app-specific password. Please check your provider\'s settings.';
$lang->system->notices->smtpUsed = '%s services are associated with SMTP.';
$lang->system->notices->verifySMTPSuccess = 'Verification successful!';
$lang->system->notices->pleaseCheckSMTPInfo = 'Verification failed! Please check your username and password.';
$lang->system->notices->confirmUpdateDomain = 'Modifying the domain will automatically update it for all installed services. Are you sure you want to proceed?';
$lang->system->notices->updateDomainSuccess = 'Domain updated successfully.';
$lang->system->notices->configSLBSuccess = 'Load balancing configured successfully.';
$lang->system->notices->validCert = 'Verification successful.';
$lang->system->errors = new stdclass;
$lang->system->errors->notFoundDB = 'Database not found.';
$lang->system->errors->notFoundLDAP = 'LDAP data not found.';
$lang->system->errors->dbNameIsEmpty = 'Database name cannot be empty.';
$lang->system->errors->notSupportedLDAP = 'This LDAP type is currently not supported.';
$lang->system->errors->failToInstallLDAP = 'Failed to install built-in LDAP.';
$lang->system->errors->failToInstallExtraLDAP = 'Failed to connect to external LDAP.';
$lang->system->errors->failToUpdateExtraLDAP = 'Failed to update external LDAP.';
$lang->system->errors->failToUninstallQuChengLDAP = 'Failed to uninstall built-in Qucheng LDAP.';
$lang->system->errors->failToUninstallExtraLDAP = 'Failed to uninstall external LDAP.';
$lang->system->errors->failToDeleteLDAPSnippet = 'Failed to delete LDAP snippet.';
$lang->system->errors->verifyLDAPFailed = 'LDAP verification failed.';
$lang->system->errors->LDAPLinked = 'A service is already associated with LDAP.';
$lang->system->errors->SMTPLinked = 'A service is already associated with SMTP.';
$lang->system->errors->failGetOssAccount = 'Failed to retrieve Object Storage account.';
$lang->system->errors->failToInstallSMTP = 'Failed to install SMTP.';
$lang->system->errors->failToUninstallSMTP = 'Failed to uninstall SMTP.';
$lang->system->errors->failToUpdateSMTP = 'Failed to update SMTP.';
$lang->system->errors->verifySMTPFailed = 'SMTP verification failed.';
$lang->system->errors->notFoundSMTPApp = 'SMTP proxy application not found.';
$lang->system->errors->notFoundSMTPService = 'SMTP proxy service not found.';
$lang->system->errors->domainIsRequired = 'Domain is required.';
$lang->system->errors->invalidDomain = 'Invalid domain format. Only lowercase letters, numbers, dots (.), and hyphens (-) are allowed.';
$lang->system->errors->failToUpdateDomain = 'Failed to update domain.';
$lang->system->errors->forbiddenOriginalDomain = 'Cannot be changed to the platform\'s default domain.';
$lang->system->errors->newDomainIsSameWithOld = 'The new domain cannot be the same as the current one.';
$lang->system->errors->failedToConfigSLB = 'Failed to configure load balancing.';
$lang->system->errors->wrongIPRange = 'Invalid IP range format. Please refer to the example: ' . $lang->system->SLB->ipPoolExample;
$lang->system->errors->ippoolRequired = 'IP range is required.';
$lang->system->errors->failedToInstallSLBComponent = 'Failed to install the load balancing component.';
$lang->system->errors->tryReinstallSLB = 'Load balancing component installation timed out. Please try again.';
$lang->system->backup = new stdclass();
$lang->system->backup->common = 'System backup';
$lang->system->backup->shortCommon = 'Backup';
$lang->system->backup->systemInfo = 'System Information';
$lang->system->backup->index = 'Backup Overview';
$lang->system->backup->history = 'Backup History';
$lang->system->backup->delete = 'Delete backup';
$lang->system->backup->backup = 'Backup';
$lang->system->backup->change = 'Retention Period';
$lang->system->backup->changeAB = 'Edit';
$lang->system->backup->rmPHPHeader = 'Remove security settings';
$lang->system->backup->setting = 'Settings';
$lang->system->backup->creator = 'Creator';
$lang->system->backup->type = 'Backup type';
$lang->system->backup->settingAction = 'Backup Settings';
$lang->system->backup->name = 'Name';
$lang->system->backup->currentVersion = 'Current version';
$lang->system->backup->latestVersion = 'Latest Version';
$lang->system->backup->files = 'Backup files';
$lang->system->backup->allCount = 'Total Files';
$lang->system->backup->count = 'Backup File Count';
$lang->system->backup->size = 'size';
$lang->system->backup->status = 'Status';
$lang->system->backup->running = 'Running';
$lang->system->backup->done = 'Completed';
$lang->system->backup->backupName = 'Backup name:';
$lang->system->backup->backupSql = 'Backup database:';
$lang->system->backup->backupFile = 'Backup Attachments:';
$lang->system->backup->restoreImage = 'Rollback platform image:';
$lang->system->backup->restoreSQL = 'Rollback database:';
$lang->system->backup->restoreFile = 'Rollback Attachments:';
$lang->system->backup->checkService = 'Check Services:';
$lang->system->backup->upgrade = 'Upgrade';
$lang->system->backup->rollback = 'Rollback';
$lang->system->backup->restart = 'Restart';
$lang->system->backup->delete = 'Delete';
$lang->system->backup->statusList['pending'] = 'Pending';
$lang->system->backup->statusList['inprogress'] = 'In progress';
$lang->system->backup->statusList['completed'] = 'Completed';
$lang->system->backup->statusList['failed'] = 'Failed';
$lang->system->backup->statusList['deleting'] = 'Deleting';
$lang->system->backup->statusList['executeFailed'] = 'Execution Failed';
$lang->system->backup->restoreProgress['doing'] = 'In Progress';
$lang->system->backup->restoreProgress['done'] = 'Completed';
$lang->system->backup->typeList['manual'] = 'Manual backup';
$lang->system->backup->typeList['upgrade'] = 'Automatic backup before upgrade';
$lang->system->backup->typeList['restore'] = 'Automatic Backup Before Restore';
$lang->system->backup->waiting = 'Backup is in progress. Please wait...';
$lang->system->backup->waitingStore = 'Restoring app data. Please wait...';
$lang->system->backup->progress = 'Backing up... Progress: %d/%d';
$lang->system->backup->progressStore = 'Restoring... Progress: %d/%d';
$lang->system->backup->progressSQL = 'Backing up... %s backed up.';
$lang->system->backup->progressAttach = 'Backing up... %s of %s files backed up.';
$lang->system->backup->progressCode = 'Backing up code... %s of %s files backed up.';
$lang->system->backup->confirmDelete = 'Are you sure you want to delete this backup?';
$lang->system->backup->confirmRestore = 'The platform will restart during the restore process, interrupting all current operations. Are you sure you want to proceed?';
$lang->system->backup->holdDays = 'Backups are retained for the last %s days.';
$lang->system->backup->copiedFail = 'Files that failed to copy:';
$lang->system->backup->restoreTip = 'Note: The restore function only applies to the database.';
$lang->system->backup->versionInfo = 'View New Version Details';
$lang->system->backup->confirmUpgrade = 'ZenTao will be unavailable during the upgrade. Are you sure you want to proceed?';
$lang->system->backup->confirmBackup = 'ZenTao will be unavailable to regular users during the backup. Are you sure you want to start the backup?';
$lang->system->backup->upgrading = 'Upgrading...';
$lang->system->backup->backupTitle = 'Backing up Qucheng Platform...';
$lang->system->backup->restoreTitle = 'Rolling back Qucheng Platform...';
$lang->system->backup->backingUp = 'In progress';
$lang->system->backup->restoring = 'In progress';
$lang->system->backup->backupSucceed = 'Backup completed successfully.';
$lang->system->backup->restoreSucceed = 'Restore completed successfully.';
$lang->system->backup->success = new stdclass();
$lang->system->backup->success->upgrade = 'Upgrade completed successfully!';
$lang->system->backup->success->degrade = 'Downgrade completed successfully!';
$lang->system->backup->error = new stdclass();
$lang->system->backup->error->backupFail = "Backup failed.";
$lang->system->backup->error->restoreFail = "Restore failed.";
$lang->system->backup->error->upgradeFail = "Upgrade failed.";
$lang->system->backup->error->upgradeOvertime = "Upgrade timed out.";
$lang->system->backup->error->degradeFail = "Downgrade failed.";
$lang->system->backup->error->beenLatestVersion = "You are already on the latest version. No upgrade is needed.";
$lang->system->backup->error->requireVersion = "Version number is required.";
$lang->system->backup->error->backupFailNotice = "Backup failed. Reason: %s";
$lang->system->backup->backupTypeList = array();
$lang->system->backup->backupTypeList['db'] = 'Database';
$lang->system->backup->backupTypeList['volume'] = 'Data Volume';
$lang->system->maintenance = new stdclass();
$lang->system->maintenance->reason['backup'] = 'The platform is currently backing up. Please check back later.';
$lang->system->maintenance->reason['restore'] = 'The platform is currently being restored. Please check back later.';
$lang->system->maintenance->reason['upgrade'] = 'The platform is currently upgrading. Please check back later.';
$lang->system->platform = new stdclass();
$lang->system->platform->navs['dblist'] = 'Databases';
$lang->system->platform->navs['domainView'] = 'Domains';
$lang->system->platform->navs['ossview'] = 'Object Storage';
$lang->system->runningStatus['normal'] = 'Normal';
$lang->system->runningStatus['error'] = 'Error';
$lang->system->serviceNotice = 'Only services installed from the Marketplace are included in the statistics. Manually configured services are excluded.';
$lang->system->nodeNotice = 'Node (%s) Error Reason: %s';

452
module/task/lang/ru.php Executable file
View file

@ -0,0 +1,452 @@
<?php
/**
* The task module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package task
* @version $Id: en.php 5040 2013-07-06 06:22:18Z zhujinyonging@gmail.com $
* @link https://www.zentao.net
*/
$lang->task->index = "Home";
$lang->task->browse = "Task List";
$lang->task->create = "Create Task";
$lang->task->batchCreate = "Batch Create";
$lang->task->batchCreateChildren = "Batch Create Child Tasks";
$lang->task->batchEdit = "Batch Edit";
$lang->task->batchChangeModule = "Batch Change Modules";
$lang->task->batchClose = "Batch Close";
$lang->task->batchCancel = "Batch Cancel";
$lang->task->edit = "Edit Task";
$lang->task->delete = "Delete";
$lang->task->deleteAction = "Delete Task";
$lang->task->deleted = "Deleted";
$lang->task->delayed = 'Delayed';
$lang->task->view = "Task Details";
$lang->task->logEfforts = "Log Effort";
$lang->task->record = "Effort";
$lang->task->recordedBy = "Logged by";
$lang->task->teamConsumed = "Team Effort";
$lang->task->start = "Start";
$lang->task->startAction = "Start Task";
$lang->task->restart = "Continue";
$lang->task->restartAction = "Continue Task";
$lang->task->finishAction = "Complete Task";
$lang->task->finish = "Complete";
$lang->task->pause = "Pause";
$lang->task->pauseAction = "Pause Task";
$lang->task->close = "Close";
$lang->task->closeAction = "Close Task";
$lang->task->cancel = "Cancel";
$lang->task->cancelAction = "Cancel Task";
$lang->task->activateAction = "Activate Task";
$lang->task->activate = "Activate";
$lang->task->activatedDate = "Activated on";
$lang->task->export = "Export Data";
$lang->task->exportAction = "Export Task";
$lang->task->reportChart = "Report";
$lang->task->fromBug = 'Source Bug';
$lang->task->fromBugID = 'Source Bug ID';
$lang->task->case = 'Linked Test Cases';
$lang->task->process = 'Process Task';
$lang->task->confirmStoryChange = "Confirm {$lang->SRCommon} Change";
$lang->task->confirmDeleteParent = 'Deleting s parent task will also remove all its child tasks. Are you sure you want to continue?';
$lang->task->storyChange = "Story Change";
$lang->task->progress = 'Progress';
$lang->task->progressAB = 'Progress';
$lang->task->progressTips = 'Cost Hours / (Cost Hours + Hours Left)';
$lang->task->copy = 'Copy Task';
$lang->task->waitTask = 'Waiting Tasks';
$lang->task->allModule = 'All Modules';
$lang->task->replace = 'Replace';
$lang->task->committed = 'Committed';
$lang->task->myEffort = 'My Effort';
$lang->task->allEffort = 'Team Effort';
$lang->task->teamOrder = 'Sort';
$lang->task->manageTeam = 'Manage Team';
$lang->task->unfoldEffort = 'Unfold Effort';
$lang->task->foldEffort = 'Fold Effort';
$lang->task->addEffort = 'Add Effort';
$lang->task->codeBranch = 'Code Branch';
$lang->task->unlinkBranch = 'Unlink code branch';
$lang->task->branchName = 'Branch Name';
$lang->task->branchFrom = 'Create from';
$lang->task->codeRepo = 'Code Repository';
$lang->task->relatedBranch = 'Related Branch';
$lang->task->keywords = 'Keywords';
$lang->task->syncStory = 'Sync to task';
$lang->task->addSibling = 'Add Sibling';
$lang->task->addSub = 'Add Subtasks';
$lang->task->otherExecution = 'Cross Execution';
$lang->task->common = 'Task';
$lang->task->plural = 'Tasks';
$lang->task->id = 'ID';
$lang->task->project = $lang->projectCommon;
$lang->task->execution = 'Execution';
$lang->task->stage = $lang->executionCommon;
$lang->task->module = 'Module';
$lang->task->moduleAB = 'Module';
$lang->task->design = 'Related Design';
$lang->task->story = "Related {$lang->SRCommon}";
$lang->task->storyAB = "{$lang->SRCommon}";
$lang->task->storySpec = "{$lang->SRCommon} Description";
$lang->task->storyVerify = 'Acceptance Criteria';
$lang->task->storyVersion = "{$lang->SRCommon} Version";
$lang->task->storyFiles = "{$lang->SRCommon} Attachments";
$lang->task->designVersion = "Design Version";
$lang->task->color = 'Color';
$lang->task->name = 'Task Name';
$lang->task->type = 'Task Type';
$lang->task->typeAB = 'Type';
$lang->task->mode = 'Task Mode';
$lang->task->sync2Gitlab = 'Sync to GitLab';
$lang->task->pri = 'Priority';
$lang->task->mailto = 'Mail to';
$lang->task->estimate = 'Estimated';
$lang->task->estimateAB = 'Estimate';
$lang->task->estimateLabel = 'Est. (Unit: H)';
$lang->task->left = 'Left';
$lang->task->leftAB = 'Left';
$lang->task->consumed = 'Total Cost';
$lang->task->currentConsumed = 'Current Cost';
$lang->task->myConsumed = 'My Total Cost';
$lang->task->consumedAB = 'Cost';
$lang->task->consumedHours = 'Cost';
$lang->task->hour = 'Hours';
$lang->task->consumedThisTime = 'Cost';
$lang->task->leftThisTime = 'Left';
$lang->task->datePlan = 'Duration';
$lang->task->estStarted = 'Planned Start';
$lang->task->realStarted = 'Actual Start';
$lang->task->date = 'Date';
$lang->task->deadline = 'Due Date';
$lang->task->deadlineAB = 'Due Date';
$lang->task->status = 'Task Status';
$lang->task->statusAB = 'Status';
$lang->task->subStatus = 'Sub Status';
$lang->task->desc = 'Description';
$lang->task->version = 'Version';
$lang->task->estimateStartDate = 'Planned Start Date';
$lang->task->actualStartDate = 'Actual Start Date';
$lang->task->planDuration = 'Plan Duration';
$lang->task->realDuration = 'Actual Duration';
$lang->task->version = 'Version';
$lang->task->assign = 'Assign';
$lang->task->assignAction = 'Assign Task';
$lang->task->assignTo = $lang->task->assign;
$lang->task->batchAssignTo = 'Batch Assign';
$lang->task->assignedTo = 'Assigned to';
$lang->task->assignedToAB = 'Assigned to';
$lang->task->assignedDate = 'Assigned on';
$lang->task->openedBy = 'Creator';
$lang->task->openedByAB = 'Creator';
$lang->task->openedDate = 'Created on';
$lang->task->openedDateAB = 'Create';
$lang->task->finishedBy = 'Completed by';
$lang->task->finishedByAB = 'Completed by';
$lang->task->finishedDate = 'Actual Complete';
$lang->task->finishedDateAB = 'Actual Complete';
$lang->task->finishedList = 'Completer List';
$lang->task->canceledBy = 'Cancelled by';
$lang->task->canceledDate = 'Cancelled on';
$lang->task->closedBy = 'Closed by';
$lang->task->closedDate = 'Closed on';
$lang->task->closedReason = 'Closure Reason';
$lang->task->lastEditedBy = 'Last Edited by';
$lang->task->lastEditedDate = 'Last Edited on';
$lang->task->lastEdited = 'Last Edited by';
$lang->task->recordWorkhour = 'Effort';
$lang->task->editEffort = 'Edit Effort';
$lang->task->deleteWorkhour = 'Delete Effort';
$lang->task->repo = 'Code Repository';
$lang->task->mr = 'Merge Request';
$lang->task->entry = 'Code Path';
$lang->task->lines = 'Code Lines';
$lang->task->v1 = 'Version 1';
$lang->task->v2 = 'Version 2';
$lang->task->vision = 'Interface';
$lang->task->colorTag = 'Color';
$lang->task->files = 'File';
$lang->task->my = 'My ';
$lang->task->hasConsumed = 'Previous Effort';
$lang->task->multiple = 'Multi-user Task';
$lang->task->multipleAB = 'M';
$lang->task->teamSetting = 'Team Settings';
$lang->task->team = 'Team';
$lang->task->transfer = 'Transfer';
$lang->task->transferTo = 'Transfer To';
$lang->task->children = 'Add Subtasks';
$lang->task->childrenAB = 'C';
$lang->task->parent = 'Parent Task';
$lang->task->parentAB = 'Parent';
$lang->task->showParent = 'Show Parent Task';
$lang->task->lblPri = 'P';
$lang->task->lblHour = '(h)';
$lang->task->lblTestStory = "Test {$lang->SRCommon}";
$lang->task->teamMember = 'Team Member';
$lang->task->addMember = 'Add Member';
$lang->task->to = 'To';
$lang->task->suffixHour = 'h';
$lang->task->labelSuffixHour = '(h)';
$lang->task->update = 'Update';
$lang->task->isParent = 'Parent Task';
$lang->task->path = 'Update';
$lang->task->isTpl = 'Template';
$lang->task->fromIssue = 'Source Issue';
$lang->task->order = 'Sort';
/* Fields of zt_taskestimate. */
$lang->task->task = 'Task';
$lang->task->account = 'Account';
$lang->task->work = 'Work';
$lang->task->recordWorkhourAction = 'Log Effort';
$lang->task->ditto = 'Ditto';
$lang->task->dittoNotice = "This task does not link to the same %s as the previous one.";
$lang->task->selectTestStory = "Select {$lang->SRCommon}";
$lang->task->selectAllUser = 'All';
$lang->task->noStory = 'No Story Linked';
$lang->task->noAssigned = 'Unassigned';
$lang->task->noFinished = 'Uncompleted';
$lang->task->noClosed = 'Open';
$lang->task->yesterdayFinished = 'Tasks Completed Yesterday';
$lang->task->allTasks = 'All Tasks';
$lang->task->linkMR = 'Related MRs';
$lang->task->linkPR = 'Related PRs';
$lang->task->linkCommit = 'Related Commits';
$lang->task->statusList[''] = '';
$lang->task->statusList['wait'] = 'Waiting';
$lang->task->statusList['doing'] = 'Doing';
$lang->task->statusList['done'] = 'Done';
$lang->task->statusList['pause'] = 'Paused';
$lang->task->statusList['cancel'] = 'Cancelled';
$lang->task->statusList['closed'] = 'Closed';
$lang->task->typeList[''] = '';
$lang->task->typeList['design'] = 'Design';
$lang->task->typeList['devel'] = 'Development';
$lang->task->typeList['request'] = 'Feature Request';
$lang->task->typeList['test'] = 'Test';
$lang->task->typeList['study'] = 'Research';
$lang->task->typeList['discuss'] = 'Discussion';
$lang->task->typeList['ui'] = 'UI';
$lang->task->typeList['affair'] = 'Transaction';
$lang->task->typeList['misc'] = 'Misc';
$lang->task->priList[0] = '';
$lang->task->priList[1] = '1';
$lang->task->priList[2] = '2';
$lang->task->priList[3] = '3';
$lang->task->priList[4] = '4';
$lang->task->reasonList[''] = '';
$lang->task->reasonList['done'] = 'Completed';
$lang->task->reasonList['cancel'] = 'Cancelled';
$lang->task->modeList['linear'] = 'Sequential Task (Multiple Assignees)';
$lang->task->modeList['multi'] = 'Parallel Task (Multiple Assignees)';
$lang->task->editModeList['single'] = 'Individual Task';
$lang->task->editModeList['linear'] = 'Sequential';
$lang->task->editModeList['multi'] = 'Parallel';
$lang->task->viewTypeList['tiled'] = 'List View';
$lang->task->viewTypeList['tree'] = 'Tree View';
$lang->task->afterChoices['continueAdding'] = ' Continue Adding Tasks';
$lang->task->afterChoices['toTaskList'] = 'Go to Task List';
$lang->task->afterChoices['toStoryList'] = 'Go to Story List';
$lang->task->legendBasic = 'Basic Info';
$lang->task->legendEffort = 'Effort';
$lang->task->legendLife = 'Task Life';
$lang->task->legendDesc = 'Task Description';
$lang->task->legendDetail = 'Task Details';
$lang->task->legendMisc = 'Misc';
$lang->task->action = new stdclass();
$lang->task->action->linked2revision = array('main' => '$date, linked to the commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->task->action->unlinkedfromrevision = array('main' => '$date, unlinked to the commit <strong>$extra</strong> by <strong>$actor</strong>.');
$lang->task->action->autobyparentrestarted = array('main' => '$date, <strong>$actor</strong> continued the parent task, and this task resumed automatically.');
$lang->task->action->autobychildrestarted = array('main' => '$date, <strong>$actor</strong> continued the child task, and this task resumed automatically.');
$lang->task->action->autobyparentpaused = array('main' => '$date, <strong>$actor</strong> paused the parent task, and this task paused automatically.');
$lang->task->action->autobyparentcanceled = array('main' => '$date, <strong>$actor</strong> cancelled the parent task, and this task cancelled automatically.');
$lang->task->action->autobyparentclosed = array('main' => '$date, <strong>$actor</strong> closed the parent task, and this task closed automatically.');
$lang->task->action->autobychildstarted = array('main' => '$date, <strong>$actor</strong> started the child task, and this task started automatically.');
$lang->task->action->autobychildfinished = array('main' => '$date, <strong>$actor</strong> completed the child task, and this task completed automatically.');
$lang->task->action->autobychildactivated = array('main' => '$date, <strong>$actor</strong> activated the child task, and this task activated automatically.');
$lang->task->confirmDelete = "Are you sure you want to delete the task?";
$lang->task->confirmDeleteEffort = "Are you sure you want to delete the record?";
$lang->task->confirmDeleteLastEffort = "Are you sure you want to delete this effort log? If you delete the last one, the task status will change to Waiting.";
$lang->task->copyStoryTitle = "Copy Story";
$lang->task->afterSubmit = "Next ";
$lang->task->successSaved = "Created successfully!";
$lang->task->delayWarning = "Delayed by %s day(s)";
$lang->task->remindBug = "This task was converted from a Bug. Do you want to update the Bug %s?";
$lang->task->remindIssue = "This task was converted from an Issue. Do you want to update the Issue %s?";
$lang->task->confirmChangeExecution = "Changing {Slang->executionCommon} will cause changes to the related module, associated {$lang->SRCommon}, and assignee. Are you sure you want to continue?";
$lang->task->confirmFinish = 'The Hours Left are 0. Do you want to change the task status to Done?';
$lang->task->confirmTeamFinish = '"Left Hour" is 0. Do you want to change the team member status to "Finished"?';
$lang->task->confirmRecord = 'The Hours Left are 0. The task will be marked as Done. Are you sure you want to continue?';
$lang->task->confirmTransfer = 'The Hours Left are 0. The current member has completed the task, and it will be assigned to: <strong>%s</strong>.';
$lang->task->noticeTaskStart = 'Total Cost and Hours Left cannot both be 0.';
$lang->task->noticeLinkStory = "No {$lang->SRCommon} available to link. Create one for this %s.";
$lang->task->noticeLinkStoryNoProduct = "No {$lang->SRCommon} available to link. ";
$lang->task->noticeSaveRecord = 'You have unsaved effort logs. Please save them first.';
$lang->task->noticeManageTeam = 'Team management is not allowed when the task status is %s.';
$lang->task->teamNotEmpty = 'The team for a multi-user task cannot be empty.';
$lang->task->commentActions = '%s.%s, comment added by <strong>%s</strong>.';
$lang->task->deniedNotice = 'Only %s can %s for the current task.';
$lang->task->deniedStatusNotice = 'The current task status is %s. Log effort is not allowed.';
$lang->task->transferNotice = 'Sequential multi-user tasks cannot be transferred.';
$lang->task->noTask = 'No tasks available. ';
$lang->task->noModule = '<div>You have no modules available.</div><div>Please create one first.</div>';
$lang->task->createDenied = "You cannot add a task under this %s.";
$lang->task->cannotDeleteParent = 'Parent tasks cannot be deleted.';
$lang->task->addChildTask = 'Since this task already has logged effort, to ensure data consistency, a child task with the same name will be created automatically to record the effort.';
$lang->task->selectTestStoryTip = "The following {$lang->SRCommon} will be created as child tasks of this task.";
$lang->task->effortOperateTips = 'Only the project manager, execution mannager, or department manager can %s others effort logs.';
$lang->task->syncStoryToChildrenTip = "The child task %s is not linked to any {$lang->SRCommon}. Do you want to synchronize it with the {$lang->SRCommon} of the parent task?";
$lang->task->error = new stdclass();
$lang->task->error->totalNumber = 'Cost must be a number.';
$lang->task->error->consumedNumber = 'Current Cost must be a number.';
$lang->task->error->estimateNumber = 'Initial Estimation must be a positive number.';
$lang->task->error->leftNumber = 'Remaining must be a number.';
$lang->task->error->recordMinus = '%s cannot be a negative number.';
$lang->task->error->consumedSmall = 'Total Cost must be greater than the previous spent hours.';
$lang->task->error->dateEmpty = 'Please enter the Date.';
$lang->task->error->consumedThisTime = 'Please enter the Cost.';
$lang->task->error->left = 'Please enter the Remaining.';
$lang->task->error->work = 'Comment must be fewer than %d characters.';
$lang->task->error->teamMember = 'The team must have more than one member.';
$lang->task->error->teamCantOperate = 'Tasks that are closed, paused, or canceled must be reactivated before setting the team.';
$lang->task->error->skipClose = 'Task %s is not in “Done” or “Canceled” status. Are you sure you want to close it?';
$lang->task->error->closeParent = '%s is a parent task. Parent tasks close automatically after all child tasks are closed and cannot be closed manually.';
$lang->task->error->consumed = 'Task %s has invalid effort log (cannot be less than 0). The change to its effort will be ignored.';
$lang->task->error->assignedTo = 'A multi-user task in the current status cannot be assigned to members outside the task team.';
$lang->task->error->consumedEmpty = 'The task cannot be completed when the total spent is 0. Please enter the effort for this update.';
$lang->task->error->consumedEmptyAB = ' Current Cost is 0. Are you sure you want to submit?';
$lang->task->error->deadlineSmall = 'Due Date must be later than the Planned Start.';
$lang->task->error->alreadyStarted = 'This task has already been started and cannot be started again!';
$lang->task->error->realStartedEmpty = 'Actual Start cannot be empty.';
$lang->task->error->finishedDateEmpty = 'Actual End cannot be empty.';
$lang->task->error->finishedDateSmall = 'Actual End cannot be earlier than Actual Start.';
$lang->task->error->date = 'The date cannot be later than today.';
$lang->task->error->leftEmptyAB = 'The remaining hours cannot be 0 when the task status is %s.';
$lang->task->error->leftEmpty = 'The remaining hours for Task#%s cannot be 0 when its status is %s.';
$lang->task->error->notempty = '%s must be greater than 0.';
$lang->task->error->teamLeftEmpty = 'Please set up team work hours.';
$lang->task->error->beginLtExecution = "The planned start date of the task must be on or after the estimated start date of %s: %s.";
$lang->task->error->beginGtExecution = "The planned start date of the task must be on or before the due date of %s: %s.";
$lang->task->error->endGtExecution = "The task due date must be on or before the due date of %s: %s.";
$lang->task->error->endLtExecution = "The task due date must be on or after the planned start date of %s: %s.";
$lang->task->error->dateExceed = "The planned duration of task %s exceeds the {$lang->execution->common}s planned duration and will be automatically adjusted to match it.";
$lang->task->error->length = "The length exceeds %d characters and cannot be saved. Please modify it and try again.";
$lang->task->error->emptyParentName = "The task contains subtasks and the task name cannot be empty.";
$lang->task->error->noTestTask = "Please select at least one {$lang->SRCommon}.";
/* Report. */
$lang->task->report = new stdclass();
$lang->task->report->common = 'Report';
$lang->task->report->select = 'Please select the report type.';
$lang->task->report->create = 'Create Report';
$lang->task->report->value = 'Task Counts';
$lang->task->report->charts['tasksPerExecution'] = 'Group by ' . $lang->executionCommon . 'Task Counts';
$lang->task->report->charts['tasksPerModule'] = 'Group by Module';
$lang->task->report->charts['tasksPerAssignedTo'] = 'Group by Assignee';
$lang->task->report->charts['tasksPerType'] = 'Group by Task Type';
$lang->task->report->charts['tasksPerPri'] = 'Group by Task Priority';
$lang->task->report->charts['tasksPerStatus'] = 'Group by Task Status';
$lang->task->report->charts['tasksPerDeadline'] = 'Group by Task Due Date';
$lang->task->report->charts['tasksPerEstimate'] = 'Group by Estimation';
$lang->task->report->charts['tasksPerLeft'] = 'Group by Hours Left';
$lang->task->report->charts['tasksPerConsumed'] = 'Group by Cost Hours';
$lang->task->report->charts['tasksPerFinishedBy'] = 'Group by Completer';
$lang->task->report->charts['tasksPerClosedReason'] = 'Group by Closure Reason';
$lang->task->report->charts['finishedTasksPerDay'] = 'Group by Tasks Completed per Day';
$lang->task->report->options = new stdclass();
$lang->task->report->options->graph = new stdclass();
$lang->task->report->options->type = 'pie';
$lang->task->report->options->width = 500;
$lang->task->report->options->height = 140;
$lang->task->report->tasksPerExecution = new stdclass();
$lang->task->report->tasksPerModule = new stdclass();
$lang->task->report->tasksPerAssignedTo = new stdclass();
$lang->task->report->tasksPerType = new stdclass();
$lang->task->report->tasksPerPri = new stdclass();
$lang->task->report->tasksPerStatus = new stdclass();
$lang->task->report->tasksPerDeadline = new stdclass();
$lang->task->report->tasksPerEstimate = new stdclass();
$lang->task->report->tasksPerLeft = new stdclass();
$lang->task->report->tasksPerConsumed = new stdclass();
$lang->task->report->tasksPerFinishedBy = new stdclass();
$lang->task->report->tasksPerClosedReason = new stdclass();
$lang->task->report->finishedTasksPerDay = new stdclass();
$lang->task->report->tasksPerExecution->item = $lang->executionCommon;
$lang->task->report->tasksPerModule->item = 'Module';
$lang->task->report->tasksPerAssignedTo->item = 'Assignee';
$lang->task->report->tasksPerType->item = 'Type';
$lang->task->report->tasksPerPri->item = 'Priority';
$lang->task->report->tasksPerStatus->item = 'Status';
$lang->task->report->tasksPerDeadline->item = 'Date';
$lang->task->report->tasksPerEstimate->item = 'Estimation';
$lang->task->report->tasksPerLeft->item = 'Hours Left';
$lang->task->report->tasksPerConsumed->item = 'Cost Hours';
$lang->task->report->tasksPerFinishedBy->item = 'Completer';
$lang->task->report->tasksPerClosedReason->item = 'Reason';
$lang->task->report->finishedTasksPerDay->item = 'Date';
$lang->task->report->tasksPerExecution->graph = new stdclass();
$lang->task->report->tasksPerModule->graph = new stdclass();
$lang->task->report->tasksPerAssignedTo->graph = new stdclass();
$lang->task->report->tasksPerType->graph = new stdclass();
$lang->task->report->tasksPerPri->graph = new stdclass();
$lang->task->report->tasksPerStatus->graph = new stdclass();
$lang->task->report->tasksPerDeadline->graph = new stdclass();
$lang->task->report->tasksPerEstimate->graph = new stdclass();
$lang->task->report->tasksPerLeft->graph = new stdclass();
$lang->task->report->tasksPerConsumed->graph = new stdclass();
$lang->task->report->tasksPerFinishedBy->graph = new stdclass();
$lang->task->report->tasksPerClosedReason->graph = new stdclass();
$lang->task->report->finishedTasksPerDay->graph = new stdclass();
$lang->task->report->tasksPerExecution->graph->xAxisName = $lang->executionCommon;
$lang->task->report->tasksPerModule->graph->xAxisName = 'Module';
$lang->task->report->tasksPerAssignedTo->graph->xAxisName = 'Assignee';
$lang->task->report->tasksPerType->graph->xAxisName = 'Type';
$lang->task->report->tasksPerPri->graph->xAxisName = 'Priority';
$lang->task->report->tasksPerStatus->graph->xAxisName = 'Status';
$lang->task->report->tasksPerDeadline->graph->xAxisName = 'Date';
$lang->task->report->tasksPerEstimate->graph->xAxisName = 'Estimation';
$lang->task->report->tasksPerLeft->graph->xAxisName = 'Hours Left';
$lang->task->report->tasksPerConsumed->graph->xAxisName = 'Cost Hours';
$lang->task->report->tasksPerFinishedBy->graph->xAxisName = 'Completer';
$lang->task->report->tasksPerClosedReason->graph->xAxisName = 'Closure Reason';
$lang->task->report->finishedTasksPerDay->type = 'bar';
$lang->task->report->finishedTasksPerDay->graph->xAxisName = 'Date';
$lang->taskestimate = new stdclass();
$lang->taskestimate->consumed = 'Estimated';
$lang->task->overEsStartDate = 'Exceeds the palnned start date for %s. Please update the %s palnned start date first.';
$lang->task->overEsEndDate = 'Exceeds the palnned end date for %s. Please update the %s palnned end date first.';
$lang->task->overParentEsStarted = 'Task planned start date is earlier than parent task planned start date %s.';
$lang->task->overParentDeadline = 'Task due date exceeds parent task due date %s.';
$lang->task->overChildEstStarted = "A child task spalnned start date is earlier than the task spalnned start date %s.";
$lang->task->overChildDeadline = "A child task due date exceeds the task due date %s.";
$lang->task->disabledHint = new stdclass();
$lang->task->disabledHint->assignedConfirmStoryChange = 'Only the Assignee is authorized to confirm changes.';
$lang->task->disabledHint->memberConfirmStoryChange = 'Only task team members are authorized to confirm changes.';

382
module/testcase/lang/ru.php Normal file
View file

@ -0,0 +1,382 @@
<?php
/**
* The testcase module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package testcase
* @version $Id: en.php 4966 2013-07-02 02:59:25Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->testcase->id = 'ID';
$lang->testcase->product = $lang->productCommon;
$lang->testcase->project = $lang->projectCommon;
$lang->testcase->execution = $lang->executionCommon;
$lang->testcase->linkStory = 'linkStory';
$lang->testcase->module = 'Module';
$lang->testcase->auto = 'Test Automation Cases';
$lang->testcase->frame = 'Test Automation Cramework';
$lang->testcase->howRun = 'Testing Method';
$lang->testcase->frequency = 'Frequency';
$lang->testcase->path = 'Path';
$lang->testcase->lib = "Case Library";
$lang->testcase->branch = "Branch/Platform";
$lang->testcase->moduleAB = 'Module';
$lang->testcase->story = 'Story';
$lang->testcase->storyVersion = 'Story Version';
$lang->testcase->color = 'Color';
$lang->testcase->order = 'Order';
$lang->testcase->title = 'Title';
$lang->testcase->precondition = 'Prerequisite';
$lang->testcase->pri = 'Priority';
$lang->testcase->type = 'Type';
$lang->testcase->status = 'Status';
$lang->testcase->statusAB = 'Status';
$lang->testcase->subStatus = 'Sub Status';
$lang->testcase->steps = 'Steps';
$lang->testcase->openedBy = 'Created by';
$lang->testcase->openedByAB = 'Creator';
$lang->testcase->openedDate = 'Created Date';
$lang->testcase->lastEditedBy = 'Edited by';
$lang->testcase->result = 'Result';
$lang->testcase->resultAB = 'Result';
$lang->testcase->real = 'Details';
$lang->testcase->keywords = 'Tags';
$lang->testcase->files = 'Files';
$lang->testcase->linkCase = 'Linked Cases';
$lang->testcase->linkCases = 'Link Case';
$lang->testcase->unlinkCase = 'Unlink Cases';
$lang->testcase->linkBug = 'Linked Bugs';
$lang->testcase->linkBugs = 'Link Bug';
$lang->testcase->unlinkBug = 'Unlink Bugs';
$lang->testcase->stage = 'Phase';
$lang->testcase->script = 'Automation Script';
$lang->testcase->scriptedBy = 'Scripted by';
$lang->testcase->scriptedDate = 'Scripted Date';
$lang->testcase->scriptStatus = 'Script Status';
$lang->testcase->scriptLocation = 'Script Location';
$lang->testcase->reviewedBy = 'Reviewed by';
$lang->testcase->reviewedDate = 'Reviewed Date';
$lang->testcase->reviewResult = 'Review Result';
$lang->testcase->reviewedByAB = 'Reviewed by';
$lang->testcase->reviewedDateAB = 'Reviewed Date';
$lang->testcase->forceReview = 'Review Required';
$lang->testcase->isReviewed = 'is it reviewed';
$lang->testcase->lastEditedByAB = 'Edited by';
$lang->testcase->lastEditedDateAB = 'Edited';
$lang->testcase->lastEditedDate = 'Edited Date';
$lang->testcase->version = 'Case Version';
$lang->testcase->lastRunner = 'Run by';
$lang->testcase->lastRunDate = 'Last Run';
$lang->testcase->assignedTo = 'AssingedTo';
$lang->testcase->colorTag = 'Color';
$lang->testcase->lastRunResult = 'Result';
$lang->testcase->desc = 'Steps';
$lang->testcase->parent = 'Parent';
$lang->testcase->xml = 'XML';
$lang->testcase->expect = 'Expectations';
$lang->testcase->allProduct = "All {$lang->productCommon}s";
$lang->testcase->fromBug = 'From Bug';
$lang->testcase->toBug = 'To Bug';
$lang->testcase->changed = 'Changed';
$lang->testcase->bugs = 'Reported Bug';
$lang->testcase->bugsAB = 'B';
$lang->testcase->results = 'Result';
$lang->testcase->resultsAB = 'R';
$lang->testcase->stepNumber = 'Steps';
$lang->testcase->stepNumberAB = 'S';
$lang->testcase->createBug = 'Report Bug';
$lang->testcase->fromModule = 'Source Module';
$lang->testcase->fromCase = 'Source Case';
$lang->testcase->sync = 'Synchronize Case';
$lang->testcase->ignore = 'Ignore';
$lang->testcase->fromTesttask = 'From Test Request';
$lang->testcase->fromCaselib = 'From Case Library';
$lang->testcase->fromTestsuite = 'From Test Suite';
$lang->testcase->fromCaseID = 'From Case ID';
$lang->testcase->fromCaseVersion = 'From Case Version';
$lang->testcase->mailto = 'Mail to';
$lang->testcase->deleted = 'Deleted';
$lang->testcase->browseUnits = 'Unit Test';
$lang->testcase->suite = 'Test Suite';
$lang->testcase->executionStatus = 'executionStatus';
$lang->testcase->caseType = 'Case Type';
$lang->testcase->allType = 'All Types';
$lang->testcase->automated = 'Automated';
$lang->testcase->automation = 'Automation Test';
$lang->case = $lang->testcase;
$lang->testcase->stepDesc = 'Step';
$lang->testcase->stepExpect = 'Expectation';
$lang->testcase->stepVersion = 'Version';
$lang->testcase->stepSameLevel = 'Sib';
$lang->testcase->stepSubLevel = 'Sub';
$lang->testcase->expectDisabledTip = 'Expect disabled when has sub steps.';
$lang->testcase->deleteStepTip = 'This step contains levels and cannot be deleted';
$lang->testcase->dragNestedTip = 'Supports up to three levels of nesting, cannot be dragged here';
$lang->testcase->stepsPlaceholder = "Supports up to 3 nested levels. Any deeper structure will be ignored.
Number each test step with + ‘.’ on a new line.
Expected results should use matching '+ ‘.’ numbers.";
$lang->testcase->index = "Case Home";
$lang->testcase->create = "Add Case";
$lang->testcase->batchCreate = "Batch Add";
$lang->testcase->delete = "Delete";
$lang->testcase->deleteAction = "Delete Case";
$lang->testcase->view = "Case Detail";
$lang->testcase->review = "Need Review";
$lang->testcase->reviewAB = "Review";
$lang->testcase->reviewAction = "Review Case";
$lang->testcase->batchReview = "Batch Review";
$lang->testcase->edit = "Edit Case";
$lang->testcase->batchEdit = "Batch Edit ";
$lang->testcase->batchChangeModule = "Batch Change Modules";
$lang->testcase->confirmLibcaseChange = "Confirm CaseLib Change";
$lang->testcase->ignoreLibcaseChange = "Ignore CaseLib Change";
$lang->testcase->batchChangeBranch = "Batch Change Branches";
$lang->testcase->groupByStories = 'Group by Story';
$lang->testcase->batchDelete = "Batch Delete ";
$lang->testcase->batchConfirmStoryChange = "Batch Confirm";
$lang->testcase->batchChangeType = "Batch Change Types";
$lang->testcase->browse = "Case List";
$lang->testcase->listView = "View by List";
$lang->testcase->groupCase = "View by Group";
$lang->testcase->groupView = "Group View";
$lang->testcase->zeroCase = "Stories without Cases";
$lang->testcase->import = "Import";
$lang->testcase->importAction = "Import Case";
$lang->testcase->importCaseAction = "Import Case";
$lang->testcase->fileImport = "Import CSV";
$lang->testcase->importFile = "Import File";
$lang->testcase->importFromLib = "Import From Library";
$lang->testcase->showImport = "Show Import";
$lang->testcase->exportTemplate = "Export Template";
$lang->testcase->export = "Export Data";
$lang->testcase->exportAction = "Export Case";
$lang->testcase->reportChart = 'Report Chart';
$lang->testcase->reportAction = 'Case Report';
$lang->testcase->confirmChange = 'Confirm Case Change';
$lang->testcase->confirmStoryChange = 'Confirm Story Change';
$lang->testcase->copy = 'Copy Case';
$lang->testcase->group = 'Group';
$lang->testcase->groupName = 'Group Name';
$lang->testcase->step = 'Steps';
$lang->testcase->stepChild = 'Child Steps';
$lang->testcase->viewAll = 'All Cases';
$lang->testcase->importToLib = "Import To Library";
$lang->testcase->showScript = 'Show Script';
$lang->testcase->autoScript = 'Script';
$lang->testcase->autoCase = 'Automation';
$lang->testcase->new = 'New';
$lang->testcase->num = 'Case Rows';
$lang->testcase->encoding = 'Encoding';
$lang->testcase->deleteStep = 'Delete';
$lang->testcase->insertBefore = 'Inserted Before';
$lang->testcase->insertAfter = 'Inserted After';
$lang->testcase->assignToMe = 'Assigned to Me';
$lang->testcase->openedByMe = 'CreatedByMe';
$lang->testcase->allCases = 'All';
$lang->testcase->allTestcases = 'All Cases';
$lang->testcase->needConfirm = 'Story Changed';
$lang->testcase->bySearch = 'Search';
$lang->testcase->unexecuted = 'Pending';
$lang->testcase->lblStory = 'Linked Story';
$lang->testcase->lblLastEdited = 'Edited by';
$lang->testcase->lblTypeValue = 'Type Value';
$lang->testcase->lblStageValue = 'Phase Value';
$lang->testcase->lblStatusValue = 'Status Value';
$lang->testcase->legendBasicInfo = 'Basic Information';
$lang->testcase->legendAttach = 'Files';
$lang->testcase->legendLinkBugs = 'Bugs';
$lang->testcase->legendOpenAndEdit = 'Create/Edit';
$lang->testcase->legendComment = 'Comment';
$lang->testcase->legendOther = 'Other Related';
$lang->testcase->confirmDelete = 'Do you want to delete this case?';
$lang->testcase->confirmBatchDelete = 'Do you want to batch delete cases?';
$lang->testcase->ditto = 'Ditto';
$lang->testcase->dittoNotice = "This Case is not linked to the {$lang->productCommon} as the last one is!";
$lang->testcase->confirmUnlinkTesttask = 'The case [%s] is already associated in the testtask order of the previous branch/platform, after adjusting the branch/platform, it will be removed from the test list of the previous branch/platform, please confirm whether to continue to modify.';
$lang->testcase->autoList[''] = '';
$lang->testcase->autoList['auto'] = 'Yes';
$lang->testcase->autoList['no'] = 'No';
$lang->testcase->reviewList[0] = '否';
$lang->testcase->reviewList[1] = '是';
$lang->testcase->priList[3] = 3;
$lang->testcase->priList[1] = 1;
$lang->testcase->priList[2] = 2;
$lang->testcase->priList[4] = 4;
/* Define the types. */
$lang->testcase->typeList[''] = '';
$lang->testcase->typeList['unit'] = 'Unit';
$lang->testcase->typeList['interface'] = 'Interface';
$lang->testcase->typeList['feature'] = 'Feature';
$lang->testcase->typeList['install'] = 'Installation';
$lang->testcase->typeList['config'] = 'Configuration';
$lang->testcase->typeList['performance'] = 'Performance';
$lang->testcase->typeList['security'] = 'Security';
$lang->testcase->typeList['other'] = 'Others';
$lang->testcase->stageList[''] = '';
$lang->testcase->stageList['unittest'] = 'Unit Testing';
$lang->testcase->stageList['feature'] = 'Function Testing';
$lang->testcase->stageList['intergrate'] = 'Integration Testing';
$lang->testcase->stageList['system'] = 'System Testing';
$lang->testcase->stageList['smoke'] = 'Smoking Testing';
$lang->testcase->stageList['bvt'] = 'BVT Testing';
$lang->testcase->reviewResultList[''] = '';
$lang->testcase->reviewResultList['pass'] = 'Pass';
$lang->testcase->reviewResultList['clarify'] = 'To Be Clarified';
$lang->testcase->statusList[''] = '';
$lang->testcase->statusList['wait'] = 'Waiting';
$lang->testcase->statusList['normal'] = 'Normal';
$lang->testcase->statusList['blocked'] = 'Blocked';
$lang->testcase->statusList['investigate'] = 'Studying';
$lang->testcase->resultList['n/a'] = 'Ignore';
$lang->testcase->resultList['pass'] = 'Pass';
$lang->testcase->resultList['fail'] = 'Fail';
$lang->testcase->resultList['blocked'] = 'Blocked';
$lang->testcase->buttonToList = 'Back';
$lang->testcase->whichLine = 'Line No.%s : ';
$lang->testcase->stepsEmpty = 'Step %s cannot be empty.';
$lang->testcase->errorEncode = 'No data. Please select right encoding and upload again!';
$lang->testcase->noFunction = 'Iconv and mb_convert_encoding are not found. You cannot convert the data to the encoding you want!';
$lang->testcase->noRequire = "Row %s has“%s ”which is a required field and it should not be blank.";
$lang->testcase->noRequireTip = "“%s”is a required field and it should not be blank.";
$lang->testcase->noLibrary = "No library exists. Please create one first.";
$lang->testcase->mustChooseResult = 'Review result is required.';
$lang->testcase->noModule = '<div>You have no modules.</div><div>Manage it now.</div>';
$lang->testcase->noCase = 'No cases yet. ';
$lang->testcase->importedCases = 'The case with ID%s has been imported in the same module and has been ignored.';
$lang->testcase->importedFromLib = '%s items imported successfully: %s.';
$lang->testcase->noStep = 'No steps yet.';
$lang->testcase->searchStories = 'Enter to search for stories';
$lang->testcase->selectLib = 'Select Library';
$lang->testcase->selectLibAB = 'Select Library';
$lang->testcase->action = new stdclass();
$lang->testcase->action->fromlib = array('main' => '$date, imported by <strong>$actor</strong> from <strong>$extra</strong>.');
$lang->testcase->action->reviewed = array('main' => '$date, recorded by <strong>$actor</strong> and the review result is <strong>$extra</strong>.', 'extra' => 'reviewResultList');
$lang->testcase->action->linked2project = array('main' => '$date, linked ' . $lang->projectCommon . ' by <strong>$actor</strong> to <strong>$extra</strong>.');
$lang->testcase->action->unlinkedfromproject = array('main' => '$date, removed by <strong>$actor</strong> from <strong>$extra</strong>.');
$lang->testcase->action->linked2execution = array('main' => '$date, linked ' . $lang->executionCommon . ' by <strong>$actor</strong> to <strong>$extra</strong>.');
$lang->testcase->action->unlinkedfromexecution = array('main' => '$date, removed by <strong>$actor</strong> from <strong>$extra</strong>.');
$lang->testcase->featureBar['browse']['all'] = $lang->testcase->allCases;
$lang->testcase->featureBar['browse']['wait'] = 'Waiting Review';
$lang->testcase->featureBar['browse'][] = '-';
$lang->testcase->featureBar['browse']['needconfirm'] = $lang->testcase->needConfirm;
$lang->testcase->importXmind = "Import Xmind";
$lang->testcase->exportXmind = "Export Xmind";
$lang->testcase->exportFreeMind = "Export FreeMind";
$lang->testcase->getXmindImport = "Get Mindmap";
$lang->testcase->showXMindImport = "Display Mindmap";
$lang->testcase->saveXmindImport = "Save Mindmap";
$lang->testcase->xmindImport = "Imort Xmind";
$lang->testcase->xmindExport = "Export Xmind";
$lang->testcase->xmindImportEdit = "Xmind Edit";
$lang->testcase->errorFileNotEmpty = 'The uploaded file cannot be empty';
$lang->testcase->errorXmindUpload = 'Upload failed';
$lang->testcase->errorFileFormat = 'File format error';
$lang->testcase->moduleSelector = 'Module Selection';
$lang->testcase->errorImportBadProduct = 'Product does not exist, import error';
$lang->testcase->errorSceneNotExist = 'Scene [%d] not exists';
$lang->testcase->errorMindConfig = "%s characteristic character can only be 1-10 letters.";
$lang->testcase->save = 'Save';
$lang->testcase->close = 'Close';
$lang->testcase->xmindImportSetting = 'Import Characteristic Character Settings';
$lang->testcase->xmindExportSetting = 'Export Characteristic Character Settings';
$lang->testcase->xmindSettingTip = 'After the feature characters are set, the Xmind theme can correspond to the ZenTao test case structure.';
$lang->testcase->settingModule = 'Module';
$lang->testcase->settingScene = 'Scene';
$lang->testcase->settingCase = 'Test Case';
$lang->testcase->settingPre = 'Precondition';
$lang->testcase->settingPri = 'Priority';
$lang->testcase->settingGroup = 'Step Group';
$lang->testcase->jsLng = new stdclass();
$lang->testcase->jsLng->caseNotExist = 'The test case in the imported file was not recognized and the import failed';
$lang->testcase->jsLng->saveFail = 'Save failed';
$lang->testcase->jsLng->set2Scene = 'Set as Scene';
$lang->testcase->jsLng->set2Testcase = 'Set as Test Case';
$lang->testcase->jsLng->clearSetting = 'Clear Settings';
$lang->testcase->jsLng->setModule = 'Set scene module';
$lang->testcase->jsLng->pickModule = 'Please select a module';
$lang->testcase->jsLng->clearBefore = 'Clear previous scenes';
$lang->testcase->jsLng->clearAfter = 'Clear the following scenes';
$lang->testcase->jsLng->clearCurrent = 'Clear the current scene';
$lang->testcase->jsLng->removeGroup = 'Remove Group';
$lang->testcase->jsLng->set2Group = 'Set as Group';
$lang->testcase->exportTemplet = 'Export Template';
$lang->testcase->browseScene = "Scene List";
$lang->testcase->createScene = "Add Scene";
$lang->testcase->changeScene = "Drag to change the scene which it belongs";
$lang->testcase->batchChangeScene = "Batch change scene";
$lang->testcase->updateOrder = "Drag Sort";
$lang->testcase->differentProduct = "Different product";
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Name';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->failSummary = 'Total %d Cases, which did not pass %d.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->failCheckedSummary = '%total% checked test cases,%fail% run fail。';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = 'Scene';
$lang->testcase->onlyAutomated = 'Only Automated';
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
/* Translation for drag modal message box. */
$lang->testcase->dragModalTitle = 'Drag and drop operation selection';
$lang->testcase->dragModalDesc = 'There are two possible scenarios for the current operation:';
$lang->testcase->dragModalOrder = '1) Adjust sorting';
$lang->testcase->dragModalScene = '2) Change the scene to which the module belongs and also change it to the module of the target scene';
$lang->testcase->dragModalAction = 'Please select the action you want to perform';
$lang->testcase->dragModalChangeScene = 'Change its scene';
$lang->testcase->dragModalChangeOrder = 'Reorder';
$lang->testcase->confirmBatchDeleteSceneCase = 'Are you sure you want to delete these scene or test cases in batch?';
$lang->scene = new stdclass();
$lang->scene->product = 'Product';
$lang->scene->branch = 'Branch';
$lang->scene->module = 'Module';
$lang->scene->parent = 'Parent Scene';
$lang->scene->title = 'Scene Name';
$lang->scene->noCase = 'No case';

View file

@ -0,0 +1,101 @@
<?php
$lang->testreport->common = 'Test Report';
$lang->testreport->id = 'ID';
$lang->testreport->browse = 'Testing Reports';
$lang->testreport->create = 'Create Report';
$lang->testreport->edit = 'Edit Report';
$lang->testreport->delete = 'Delete Report';
$lang->testreport->export = 'Export';
$lang->testreport->exportAction = 'Export Report';
$lang->testreport->view = 'Report Detail';
$lang->testreport->recreate = 'Recreate';
$lang->testreport->title = 'Report Title';
$lang->testreport->product = $lang->productCommon;
$lang->testreport->bugTitle = 'Bug';
$lang->testreport->storyTitle = 'Story';
$lang->testreport->project = $lang->projectCommon;
$lang->testreport->execution = 'Execution';
$lang->testreport->object = "{$lang->projectCommon}/Execution";
$lang->testreport->testtask = 'Test Request';
$lang->testreport->tasks = $lang->testreport->testtask;
$lang->testreport->startEnd = 'Begin&End';
$lang->testreport->owner = 'Owner';
$lang->testreport->members = 'Users';
$lang->testreport->begin = 'Begin';
$lang->testreport->end = 'End';
$lang->testreport->stories = 'Story Tested';
$lang->testreport->bugs = 'Bug Tested';
$lang->testreport->builds = 'Build Info';
$lang->testreport->goal = $lang->projectCommon . ' Goal';
$lang->testreport->cases = 'Case';
$lang->testreport->bugInfo = 'Bug Distribution';
$lang->testreport->report = 'Summary';
$lang->testreport->legacyBugs = 'Left Bugs';
$lang->testreport->createdBy = 'Created by';
$lang->testreport->createdDate = 'Created Date';
$lang->testreport->objectID = 'Object';
$lang->testreport->objectType = 'Object Type';
$lang->testreport->profile = 'Profile';
$lang->testreport->value = 'Value';
$lang->testreport->none = 'None';
$lang->testreport->all = 'All Reports';
$lang->testreport->deleted = 'Deleted';
$lang->testreport->selectTask = 'Create report by request';
$lang->testreport->legendBasic = 'Basic Info';
$lang->testreport->legendStoryAndBug = 'Test Scope';
$lang->testreport->legendBuild = 'Test Rounds';
$lang->testreport->legendCase = 'Linked Cases';
$lang->testreport->legendLegacyBugs = 'Left Bugs';
$lang->testreport->legendReport = 'Report';
$lang->testreport->legendComment = 'Summary';
$lang->testreport->legendMore = 'More';
$lang->testreport->date = 'Date';
$lang->testreport->bugSeverityGroups = 'Bug Severity Distribution';
$lang->testreport->bugTypeGroups = 'Bug Type Distribution';
$lang->testreport->bugStatusGroups = 'Bug Status Distribution';
$lang->testreport->bugOpenedByGroups = 'Bug ReportedBy Distribution';
$lang->testreport->bugResolvedByGroups = 'Bug ResolvedBy Distribution';
$lang->testreport->bugResolutionGroups = 'Bug Resolution Distribution';
$lang->testreport->bugModuleGroups = 'Bug Module Distribution';
$lang->testreport->bugStageGroups = 'Bug Priority Distribution';
$lang->testreport->bugHandleGroups = 'Distribution of daily bug processing';
$lang->testreport->legacyBugs = 'Left Bugs';
$lang->testreport->bugConfirmedRate = 'Confirmed-Bug Rate (Resolution is fixed or postponed / status is resolved or closed)';
$lang->testreport->bugCreateByCaseRate = 'Bug-Reported-in-Case Rate (Bugs reported in cases / New added bugs)';
$lang->testreport->bugStageList = array();
$lang->testreport->bugStageList['generated'] = 'Generated Bugs';
$lang->testreport->bugStageList['legacy'] = 'Legacy Bugs';
$lang->testreport->bugStageList['resolved'] = 'Resolved Bugs';
$lang->testreport->featureBar['browse']['all'] = 'All';
$lang->testreport->caseSummary = 'Total <strong>%s</strong> cases. <strong>%s</strong> cases run. <strong>%s</strong> results generated. <strong>%s</strong> cases failed.';
$lang->testreport->buildSummary = 'Tested <strong>%s</strong> builds.';
$lang->testreport->confirmDelete = 'Do you want to delete this report?';
$lang->testreport->moreNotice = "More features can be extended with reference to <a href='https://www.zentao.net/page/extension.html' target='_blank'>the ZenTao extension manual</a>, or you can contact us at support@zentaoalm.com for customization.";
$lang->testreport->exportNotice = "Exported By <a href='https://www.zentao.net' target='_blank' style='color:grey'>ZenTao</a>";
$lang->testreport->noReport = "No report has been generated.Please select one request to generate one test report.";
$lang->testreport->foundBugTip = "Bugs found in this build period and the affected build is in this test period.";
$lang->testreport->legacyBugTip = "Active bugs, or bugs that are not resolved in the test period.";
$lang->testreport->activatedBugTip = "Reactived bugs during the testtask.";
$lang->testreport->fromCaseBugTip = "Bugs found from the running of cases in the test period.";
$lang->testreport->errorTrunk = "You cannot create a Testing report for the trunk. Please modify the linked build!";
$lang->testreport->noTestTask = "No test requests for this {$lang->productCommon}, so no reports can be generated. Please go to {$lang->productCommon} which has test requests and then generate the report.";
$lang->testreport->noObjectID = "No test request or {$lang->executionCommon} is selected, so no report can be generated.";
$lang->testreport->moreProduct = "Testing reports can only be generated for the same {$lang->productCommon}.";
$lang->testreport->hiddenCase = "Hide %s use cases";
$lang->testreport->goalTip = "Descriptive information about the {$lang->execution->common} of this build";
$lang->testreport->runDateTips = "Some case execution records exceed the time range (latest time: %s), not included in the test report";
$lang->testreport->ignore = "Ignore";
$lang->testreport->bugSummary = <<<EOD
Total <strong>%s</strong> Bugs reported <i class='icon icon-help text-light' data-placement='top' data-title="{$lang->testreport->foundBugTip}" data-type='black' data-toggle='tooltip'></i>,
<strong>%s</strong> Bugs remained unresolved <i class='icon icon-help text-light' data-placement='top' data-title="{$lang->testreport->legacyBugTip}" data-type='black' data-toggle='tooltip'></i>.
<strong>%s</strong> Bugs reactivated <i class='icon icon-help text-light' data-placement='top' data-title="{$lang->testreport->activatedBugTip}" data-type='black' data-toggle='tooltip'></i>.
<strong>%s</strong> Bugs found from the running of cases <i class='icon icon-help text-light' data-placement='top' data-title="{$lang->testreport->fromCaseBugTip}" data-type='black' data-toggle='tooltip'></i>.
Bug Effective Rate: <strong>%s</strong>,Bugs reported from cases: <strong>%s</strong>.
EOD;

View file

@ -0,0 +1,60 @@
<?php
/**
* The testsuite module en file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Yidong Wang <yidong@cnezsoft.com>
* @package testsuite
* @version $Id: zh-cn.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->testsuite->create = "Create Suite";
$lang->testsuite->delete = "Delete Suite";
$lang->testsuite->view = "Suite Detail";
$lang->testsuite->edit = "Edit Suite";
$lang->testsuite->browse = "Suite List";
$lang->testsuite->linkCase = "Link Case";
$lang->testsuite->linkVersion = "Version";
$lang->testsuite->unlinkCase = "Unlink";
$lang->testsuite->unlinkCaseAction = "Unlink Case";
$lang->testsuite->batchUnlinkCases = "Batch Unlink Cases";
$lang->testsuite->deleted = 'Deleted';
$lang->testsuite->successSaved = 'Saved';
$lang->testsuite->confirmCaseChange = 'Confirm Case Change';
$lang->testsuite->id = 'ID';
$lang->testsuite->pri = 'Priority';
$lang->testsuite->common = 'Test Suite';
$lang->testsuite->project = $lang->projectCommon;
$lang->testsuite->product = $lang->productCommon;
$lang->testsuite->name = 'Suite Name';
$lang->testsuite->type = 'Type';
$lang->testsuite->desc = 'Description';
$lang->testsuite->mailto = 'Mail to';
$lang->testsuite->author = 'Access Control';
$lang->testsuite->addedBy = 'Created by';
$lang->testsuite->addedDate = 'Created Date';
$lang->testsuite->addedTime = 'Create Time';
$lang->testsuite->lastEditedBy = 'Last Edited by';
$lang->testsuite->lastEditedDate = 'Last Edited Date';
$lang->testsuite->legendDesc = 'Description';
$lang->testsuite->legendBasicInfo = 'Basic Info';
$lang->testsuite->unlinkedCases = 'Unlinked Cases';
$lang->testsuite->confirmDelete = 'Do you want to delete this test suite?';
$lang->testsuite->confirmUnlinkCase = 'Do you want to unlink this Case?';
$lang->testsuite->noticeNone = 'You have not created any suite yet.';
$lang->testsuite->noModule = '<div>You have no modules.</div><div>Manage it now.</div>';
$lang->testsuite->noTestsuite = 'No suites yet.';
$lang->testsuite->summary = "Total suites: <strong>%d</strong>, public: <strong>%d</strong>, private: <strong>%d</strong>.";
$lang->testsuite->lblCases = 'Cases';
$lang->testsuite->lblUnlinkCase = 'Unlink Case';
$lang->testsuite->authorList['private'] = 'Private';
$lang->testsuite->authorList['public'] = 'Public';
$lang->testsuite->featureBar['browse']['all'] = 'All';

241
module/testtask/lang/ru.php Normal file
View file

@ -0,0 +1,241 @@
<?php
/**
* The testtask module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package testtask
* @version $Id: en.php 4490 2013-02-27 03:27:05Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->testtask->index = "Request Home";
$lang->testtask->create = "Submit Request";
$lang->testtask->reportChart = 'Report';
$lang->testtask->delete = "Delete Request";
$lang->testtask->importUnitResult = "Import Unit Result";
$lang->testtask->importUnit = "Import Unit Result"; //Fix bug custom required testtask.
$lang->testtask->browseUnits = "Unit Test List";
$lang->testtask->unitCases = "Browse Unit Cases List";
$lang->testtask->view = "Request Detail";
$lang->testtask->edit = "Edit Request";
$lang->testtask->browse = "Test Request";
$lang->testtask->linkCase = "Link Case";
$lang->testtask->selectVersion = "Select Version";
$lang->testtask->unlinkCase = "Unlink";
$lang->testtask->batchUnlinkCases = "Batch Unlink Cases";
$lang->testtask->batchAssign = "Batch Assign";
$lang->testtask->runCase = "Run";
$lang->testtask->running = ", running.";
$lang->testtask->runningLog = "Execution Log";
$lang->testtask->runNode = "Executed by %s,Execute on node %s %s";
$lang->testtask->batchRun = "Batch Run";
$lang->testtask->results = "Results";
$lang->testtask->createBug = "Bug(+)";
$lang->testtask->assign = 'Assign';
$lang->testtask->cases = 'Case List';
$lang->testtask->groupCase = "View by Group";
$lang->testtask->pre = 'Prev.';
$lang->testtask->next = 'Next';
$lang->testtask->start = "Start";
$lang->testtask->close = "Close";
$lang->testtask->wait = "Waiting";
$lang->testtask->block = "Block";
$lang->testtask->activate = "Activate";
$lang->testtask->testing = "Testing";
$lang->testtask->blocked = "Blocked";
$lang->testtask->done = "Tested";
$lang->testtask->totalStatus = "All";
$lang->testtask->all = 'All';
$lang->testtask->allTasks = 'All Requests';
$lang->testtask->collapseAll = 'Collapse';
$lang->testtask->expandAll = 'Expand';
$lang->testtask->auto = 'Test Automation Tasks';
$lang->testtask->task = 'Test Task';
$lang->testtask->run = 'Test Run ID';
$lang->testtask->job = 'Job';
$lang->testtask->compile = 'Compile';
$lang->testtask->duration = 'Duration';
$lang->testtask->myInvolved = 'My Involvement';
$lang->testtask->viewAction = "View Request";
$lang->testtask->casesAction = 'Browse Cases List';
$lang->testtask->activateAction = "Activate Request";
$lang->testtask->blockAction = "Block Request";
$lang->testtask->closeAction = "Close Request";
$lang->testtask->startAction = "Start Request";
$lang->testtask->resultsAction = "Case Result";
$lang->testtask->reportAction = 'Report';
$lang->testtask->id = 'ID';
$lang->testtask->common = 'Request';
$lang->testtask->product = $lang->productCommon;
$lang->testtask->project = $lang->projectCommon;
$lang->testtask->execution = $lang->execution->common;
$lang->testtask->type = 'Type';
$lang->testtask->build = 'Build';
$lang->testtask->owner = 'Owner';
$lang->testtask->members = 'Participant';
$lang->testtask->executor = 'Executor';
$lang->testtask->execTime = 'Exec Time';
$lang->testtask->pri = 'Priority';
$lang->testtask->name = 'Request Name';
$lang->testtask->unitName = 'Name Of Unit Test';
$lang->testtask->begin = 'Start';
$lang->testtask->end = 'End';
$lang->testtask->realBegan = 'Actual Started Date';
$lang->testtask->realFinishedDate = 'Actual Finished Date';
$lang->testtask->desc = 'Description';
$lang->testtask->mailto = 'Mail to';
$lang->testtask->status = 'Status';
$lang->testtask->statusAB = 'Status';
$lang->testtask->subStatus = 'Sub Status';
$lang->testtask->testreport = 'Test Report';
$lang->testtask->assignCase = 'Assign Test Case';
$lang->testtask->assignedTo = 'Assigned';
$lang->testtask->linkVersion = 'Build';
$lang->testtask->lastRunAccount = 'RunBy';
$lang->testtask->lastRunTime = 'Last Run';
$lang->testtask->lastRunResult = 'Result';
$lang->testtask->reportField = 'Report';
$lang->testtask->files = 'Upload';
$lang->testtask->case = 'Case List';
$lang->testtask->version = 'Version';
$lang->testtask->caseResult = 'Test Result';
$lang->testtask->stepResults = 'Step Result';
$lang->testtask->lastRunner = 'RunBy';
$lang->testtask->lastRunDate = 'Last Run';
$lang->testtask->createdBy = 'Creator';
$lang->testtask->createdDate = 'Created Date';
$lang->testtask->date = 'Tested on';
$lang->testtask->deleted = "Deleted";
$lang->testtask->resultFile = "Result File";
$lang->testtask->caseCount = 'Case Count';
$lang->testtask->passCount = 'Pass';
$lang->testtask->failCount = 'Fail';
$lang->testtask->skipChangedCases = 'The testcases that are not to be confirmed are ignored.';
$lang->testtask->summary = '%s cases, %s failures, %s time.';
$lang->testtask->stepSummary = 'Total %s steps, %s passes, %s failures.';
$lang->testtask->unitSummary = 'Total %s unit test results.';
$lang->testtask->pageSummary = 'Total Test Requests: <strong>%s</strong>.';
$lang->testtask->mySummary = 'Total Test Requests: <strong>%s</strong>, Waiting: <strong>%s</strong>, Testing: <strong>%s</strong>, Blocked: <strong>%s</strong>.';
$lang->testtask->allSummary = 'Total Test Requests: <strong>%s</strong>, Waiting: <strong>%s</strong>, Testing: <strong>%s</strong>, Blocked: <strong>%s</strong>, Done: <strong>%s</strong>.';
$lang->testtask->checkedAllSummary = 'Seleted: <strong>%total%</strong>, Waiting: <strong>%wait%</strong>, Testing: <strong>%testing%</strong>, Blocked: <strong>%blocked%</strong>.';
$lang->testtask->emptyCases = 'Cases %s have no steps, filter to show.';
$lang->testtask->caseEmpty = 'Selected cases have no steps or do not meet the execution conditions, and have been ignored.';
$lang->testtask->beginAndEnd = 'Duration';
$lang->testtask->to = 'To';
$lang->testtask->legendDesc = 'Description';
$lang->testtask->legendReport = 'Report';
$lang->testtask->legendBasicInfo = 'Basic Info';
$lang->testtask->statusList['wait'] = 'Waiting';
$lang->testtask->statusList['doing'] = 'Doing';
$lang->testtask->statusList['done'] = 'Closed';
$lang->testtask->statusList['blocked'] = 'Blocked';
$lang->testtask->priList[1] = '1';
$lang->testtask->priList[2] = '2';
$lang->testtask->priList[3] = '3';
$lang->testtask->priList[4] = '4';
$lang->testtask->unlinkedCases = 'Unlinked Case';
$lang->testtask->linkByBuild = 'Copy from build';
$lang->testtask->linkByStory = 'Link by Story';
$lang->testtask->linkByBug = 'Link by Bug';
$lang->testtask->linkBySuite = 'Link by Suite';
$lang->testtask->browseBySuite = 'Browse by Suite';
$lang->testtask->passAll = 'Pass All';
$lang->testtask->pass = 'Pass';
$lang->testtask->fail = 'Failed';
$lang->testtask->showResult = 'Run <label class="label primary-pale rounded-full h-3 px-1.5 mx-1">%s</label> times';
$lang->testtask->showFail = 'Failed <label class="label danger-pale rounded-full h-3 px-1.5 mx-1">%s</label> times';
$lang->testtask->runInTask = ' <strong>%s</strong> by <strong>%s</strong>, the build is <strong>%s</strong> ';
$lang->testtask->runCaseResult = ', executed %s, the results is <span class="text-%s font-bold">%s</span>.';
$lang->testtask->confirmDelete = 'Do you want to delete this build?';
$lang->testtask->confirmUnlinkCase = 'Do you want to unlink this case?';
$lang->testtask->noticeNoOther = "No test builds for this {$lang->productCommon}.";
$lang->testtask->noTesttask = 'No requests. ';
$lang->testtask->checkLinked = "Please check whether the {$lang->productCommon} that the test request is linked to has been linked to a {$lang->executionCommon}.";
$lang->testtask->noImportData = 'The imported XML does not parse the data.';
$lang->testtask->unitXMLFormat = 'Please select a file in JUnit XML format.';
$lang->testtask->titleOfAuto = "%s automated testing";
$lang->testtask->cannotBeParsed = 'The content of the imported XML file is in the wrong format and cannot be parsed.';
$lang->testtask->finishedDateLess = 'Actual Finished Date cannot be <= Begin Date %s';
$lang->testtask->finishedDateMore = 'Actual Finished Date cannot be > Today';
$lang->testtask->emptyUnitTip = 'No unit test results.';
$lang->testtask->assignedToMe = 'Assigned to Me';
$lang->testtask->allCases = 'All Cases';
$lang->testtask->lblCases = 'Case';
$lang->testtask->lblUnlinkCase = 'Unlink Case';
$lang->testtask->lblRunCase = 'Run Case';
$lang->testtask->lblResults = 'Result';
$lang->testtask->placeholder = new stdclass();
$lang->testtask->placeholder->begin = 'Start';
$lang->testtask->placeholder->end = 'End';
$lang->testtask->mail = new stdclass();
$lang->testtask->mail->create = new stdclass();
$lang->testtask->mail->edit = new stdclass();
$lang->testtask->mail->close = new stdclass();
$lang->testtask->mail->create->title = "%s created test request #%s:%s";
$lang->testtask->mail->edit->title = "%s finished test request #%s:%s";
$lang->testtask->mail->close->title = "%s closed test request #%s:%s";
$lang->testtask->action = new stdclass();
$lang->testtask->action->testtaskopened = '$date, <strong>$actor</strong> submitted Test Request<strong>$extra</strong>.' . "\n";
$lang->testtask->action->testtaskstarted = '$date, <strong>$actor</strong> started Test Request<strong>$extra</strong>.' . "\n";
$lang->testtask->action->testtaskclosed = '$date, <strong>$actor</strong> completed Test Request<strong>$extra</strong>.' . "\n";
$lang->testtask->unexecuted = 'Pending';
/* Statistical statement. */
$lang->testtask->report = new stdclass();
$lang->testtask->report->common = 'Report';
$lang->testtask->report->select = 'Select Report Type';
$lang->testtask->report->create = 'Create Report';
$lang->testtask->report->testTaskPerRunResultTip = 'There are %s usecase, including %s passed,%s not executed, and %s failed';
$lang->testtask->report->charts['testTaskPerRunResult'] = 'Test Case Result';
$lang->testtask->report->charts['testTaskPerType'] = 'Test Case Type';
$lang->testtask->report->charts['testTaskPerModule'] = 'Test Case Module';
$lang->testtask->report->charts['testTaskPerRunner'] = 'Test Case RunBy';
$lang->testtask->featureBar['browse']['totalStatus'] = $lang->testtask->totalStatus;
$lang->testtask->featureBar['browse']['myinvolved'] = $lang->testtask->myInvolved;
$lang->testtask->featureBar['browse']['wait'] = $lang->testtask->wait;
$lang->testtask->featureBar['browse']['doing'] = $lang->testtask->testing;
$lang->testtask->featureBar['browse']['blocked'] = $lang->testtask->blocked;
$lang->testtask->featureBar['browse']['done'] = $lang->testtask->done;
$lang->testtask->featureBar['cases']['all'] = $lang->testtask->allCases;
$lang->testtask->featureBar['cases']['assignedtome'] = $lang->testtask->assignedToMe;
$lang->testtask->featureBar['groupcase']['all'] = $lang->testtask->allCases;
$lang->testtask->featureBar['groupcase']['assignedtome'] = $lang->testtask->assignedToMe;
$lang->testtask->featureBar['linkcase']['all'] = $lang->all;
$lang->testtask->featureBar['linkcase']['bystory'] = $lang->testtask->linkByStory;
$lang->testtask->featureBar['linkcase']['bysuite'] = $lang->testtask->linkBySuite;
$lang->testtask->featureBar['linkcase']['bybuild'] = $lang->testtask->linkByBuild;
$lang->testtask->featureBar['linkcase']['bybug'] = $lang->testtask->linkByBug;
$lang->testtask->featureBar['browseunits']['all'] = 'All';
$lang->testtask->featureBar['browseunits']['newest'] = 'Recently';
$lang->testtask->featureBar['browseunits']['thisWeek'] = 'This week';
$lang->testtask->featureBar['browseunits']['lastWeek'] = 'Last week';
$lang->testtask->featureBar['browseunits']['thisMonth'] = 'This month';
$lang->testtask->featureBar['browseunits']['lastMonth'] = 'Last month';
$lang->testtask->typeList['integrate'] = 'Integration';
$lang->testtask->typeList['system'] = 'System';
$lang->testtask->typeList['acceptance'] = 'Acceptance';
$lang->testtask->typeList['performance'] = 'Performance';
$lang->testtask->typeList['safety'] = 'Safety';

158
module/todo/lang/ru.php Normal file
View file

@ -0,0 +1,158 @@
<?php
/**
* The todo module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package todo
* @version $Id: en.php 4676 2013-04-26 06:08:23Z chencongzhi520@gmail.com $
* @link https://www.zentao.net
*/
global $config;
$lang->todo->index = 'Home';
$lang->todo->create = 'Add To-do';
$lang->todo->createCycle = 'Add Recurring To-do';
$lang->todo->assignTo = 'Assigned to';
$lang->todo->assignedDate = 'Assigned Date';
$lang->todo->assignAction = 'Assign To-do';
$lang->todo->start = 'Start To-do';
$lang->todo->activate = 'Activate To-do';
$lang->todo->batchCreate = 'Batch Add ';
$lang->todo->edit = 'Edit To-do';
$lang->todo->close = 'Close To-do';
$lang->todo->batchClose = 'Batch Close';
$lang->todo->batchEdit = 'Batch Edit To-dos';
$lang->todo->view = 'To-do Details';
$lang->todo->finish = 'Complete To-do';
$lang->todo->batchFinish = 'Batch Complete';
$lang->todo->export = 'Export To-dos';
$lang->todo->delete = 'Delete To-do';
$lang->todo->import2Today = 'Change Date';
$lang->todo->import = 'Import';
$lang->todo->legendBasic = 'Basic Info';
$lang->todo->cycle = 'Recur';
$lang->todo->cycleConfig = 'Recurrence';
$lang->todo->project = $lang->projectCommon;
$lang->todo->product = $lang->productCommon;
$lang->todo->execution = $lang->executionCommon;
$lang->todo->changeDate = 'Change Date';
$lang->todo->future = 'TBD';
$lang->todo->timespanTo = 'To';
$lang->todo->transform = 'Convert to';
$lang->todo->reasonList['story'] = 'Convert to Story';
$lang->todo->reasonList['task'] = 'Convert to Task';
$lang->todo->reasonList['bug'] = 'Convert to Bug';
$lang->todo->reasonList['done'] = 'Done';
$lang->todo->id = 'ID';
$lang->todo->idAB = 'ID';
$lang->todo->account = 'Creator';
$lang->todo->date = 'Date';
$lang->todo->begin = 'Start';
$lang->todo->end = 'End';
$lang->todo->beginAB = 'Start';
$lang->todo->endAB = 'End';
$lang->todo->beginAndEnd = 'Duration';
$lang->todo->objectID = 'Linked ID';
$lang->todo->type = 'Type';
$lang->todo->pri = 'Priority';
$lang->todo->name = 'Title';
$lang->todo->status = 'Status';
$lang->todo->desc = 'Description';
$lang->todo->config = 'Config';
$lang->todo->private = 'Private';
$lang->todo->cycleDay = 'days';
$lang->todo->cycleWeek = 'Week';
$lang->todo->cycleMonth = 'Month';
$lang->todo->cycleYear = 'Year';
$lang->todo->day = 'Day';
$lang->todo->assignedTo = 'Assigned to';
$lang->todo->assignedBy = 'Assigned by';
$lang->todo->finishedBy = 'Completed by';
$lang->todo->finishedDate = 'Completion Time';
$lang->todo->closedBy = 'Closed by';
$lang->todo->closedDate = 'Close Date';
$lang->todo->deadline = 'Due Date';
$lang->todo->deleted = 'Deleted';
$lang->todo->ditto = 'Ditto';
$lang->todo->from = 'From';
$lang->todo->generate = 'Create To-do';
$lang->todo->advance = 'In advance';
$lang->todo->cycleType = 'Recurring per';
$lang->todo->monthly = 'Per Month';
$lang->todo->weekly = 'Per Week';
$lang->todo->cycleDaysLabel = 'Interval days';
$lang->todo->beforeDaysLabel = 'Days in advance';
$lang->todo->every = 'Every';
$lang->todo->specify = 'specified';
$lang->todo->everyYear = 'Per Year';
$lang->todo->beforeDays = "<span class='input-group-addon'>Auto create the To-do</span>%s<span class='input-group-addon'>days in advance.</span>";
$lang->todo->dayNames = array(1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 0 => 'Sunday');
$lang->todo->specifiedDay = array(1 => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31);
$lang->todo->confirmBug = 'This To-do is linked to Bug #%s. Do you want to update it?';
$lang->todo->confirmTask = 'This To-do is linked to Task #%s,Do you want to update it?';
$lang->todo->confirmStory = 'This To-do is linked to Story #%s,Do you want to update it?';
$lang->todo->confirmEpic = $lang->todo->confirmStory;
$lang->todo->confirmRequirement = $lang->todo->confirmStory;
$lang->todo->noOptions = 'You have no %s To-do at the moment. Please reselect another To-do type.';
$lang->todo->summary = 'Total To-dos: <strong>%s</strong>, Waiting: <strong>%s</strong>, Doing: <strong>%s</strong>.';
$lang->todo->checkedSummary = 'Seleted To-dos: <strong>%total%</strong>, Waiting: <strong>%wait%</strong>, Doing: <strong>%doing%</strong>';
$lang->todo->abbr = new stdclass();
$lang->todo->abbr->start = 'Start';
$lang->todo->abbr->finish = 'Complete';
$lang->todo->statusList['wait'] = 'Waiting';
$lang->todo->statusList['doing'] = 'Doing';
$lang->todo->statusList['done'] = 'Done';
$lang->todo->statusList['closed'] = 'Closed';
//$lang->todo->statusList['cancel'] = 'Cancelled';
//$lang->todo->statusList['postpone'] = 'Delayed';
$lang->todo->priList[1] = 'Urgent';
$lang->todo->priList[2] = 'High';
$lang->todo->priList[3] = 'Normal';
$lang->todo->priList[4] = 'Low';
$lang->todo->typeList['custom'] = 'Customize';
$lang->todo->typeList['cycle'] = 'Recurring';
$lang->todo->typeList['bug'] = 'Bug';
$lang->todo->typeList['task'] = 'Task';
$lang->todo->typeList['story'] = 'Story';
if($config->enableER) $lang->todo->typeList['epic'] = $lang->ERCommon;
if($config->URAndSR) $lang->todo->typeList['requirement'] = $lang->URCommon;
$lang->todo->typeList['testtask'] = 'Test Request';
$lang->todo->fromList['bug'] = 'Related Bug';
$lang->todo->fromList['task'] = 'Related Bug';
$lang->todo->fromList['story'] = 'Related' . $lang->SRCommon;
$lang->todo->confirmDelete = 'Are you sure you want to delete this To-do?';
$lang->todo->thisIsPrivate = 'This is a private To-do.';
$lang->todo->lblDisableDate = 'TBD';
$lang->todo->lblBeforeDays = 'Create the To-do %s day(s) in advance.';
$lang->todo->lblClickCreate = 'Click to Add To-do';
$lang->todo->noTodo = 'No To-dos available for this type.';
$lang->todo->noAssignedTo = 'Assignee cannot be empty.';
$lang->todo->unfinishedTodo = 'To-do D%s is not completed and cannot be closed.';
$lang->todo->today = 'To-do for Today';
$lang->todo->selectProduct = "Please select a {$lang->productCommon}.";
$lang->todo->privateTip = 'Only To-dos that I created and assigned to myself can be set as private. Once private, they are visible only to me.';
$lang->todo->periods['all'] = 'Assigned to Me';
$lang->todo->periods['before'] = 'Uncompleted';
$lang->todo->periods['future'] = 'TBD';
$lang->todo->periods['thisWeek'] = 'This Week';
$lang->todo->periods['thisMonth'] = 'This Month';
$lang->todo->periods['thisYear'] = 'This Year';
$lang->todo->periods['assignedToOther'] = 'Assigned to Others';
$lang->todo->periods['cycle'] = 'Recurrence';
$lang->todo->action = new stdclass();
$lang->todo->action->finished = array('main' => '$date, is $extra by <strong>$actor</strong>.', 'extra' => 'reasonList');
$lang->todo->action->marked = array('main' => '$date, is marked by <strong>$actor</strong> as <strong>$extra</strong>.', 'extra' => 'statusList');

View file

@ -0,0 +1,14 @@
<?php
$lang->transfer = new stdclass();
$lang->transfer->importCase = 'Import Excel';
$lang->transfer->importNotice = 'Please export the template first, fill in your data according to the format, and then import.';
$lang->transfer->noRequire = 'Row %s: "%s" is a required field and cannot be empty.';
$lang->transfer->exportTemplate = 'Export Template';
$lang->transfer->import = 'Import';
$lang->transfer->id = 'ID';
$lang->transfer->new = 'New';
$lang->transfer->num = 'Records:';
$lang->transfer->numAB = 'Records';
$lang->transfer->children = 'Subtasks';

106
module/tree/lang/ru.php Executable file
View file

@ -0,0 +1,106 @@
<?php
/**
* The tree module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package tree
* @version $Id: en.php 5045 2013-07-06 07:04:40Z zhujinyonging@gmail.com $
* @link https://www.zentao.net
*/
$lang->tree = new stdclass();
$lang->tree->common = 'Module Management';
$lang->tree->create = 'Create Module';
$lang->tree->edit = 'Edit Modules';
$lang->tree->delete = 'Delete Modules';
$lang->tree->browse = 'General Modules Management';
$lang->tree->browseTask = 'Task Modules Management';
$lang->tree->manage = 'Manage Modules';
$lang->tree->fix = 'Fix Modules';
$lang->tree->manageProduct = "Manage {$lang->productCommon} Modules";
$lang->tree->manageProject = "Manage {$lang->projectCommon} Modules";
$lang->tree->manageExecution = "Manage {$lang->execution->common} Modules";
$lang->tree->manageLine = "Manage Product Lines";
$lang->tree->manageBug = 'Manage Test Views';
$lang->tree->manageCase = 'Manage Case Views';
$lang->tree->manageCaselib = 'Manage Case Libraries';
$lang->tree->manageCustomDoc = 'Manage Document Categories';
$lang->tree->manageApiChild = 'Manage API Directory';
$lang->tree->manageGroup = 'Manage groups';
$lang->tree->updateOrder = 'Update Order';
$lang->tree->manageChild = 'Manage Sub-modules';
$lang->tree->manageStoryChild = 'Manage Sub-modules';
$lang->tree->manageLineChild = "Manage Product Lines";
$lang->tree->manageBugChild = 'Manage Bug Sub-modules';
$lang->tree->manageCaseChild = 'Manage Case Sub-modules';
$lang->tree->manageCaselibChild = 'Manage Case Libraries Sub-modules';
$lang->tree->manageDashboard = 'Manage Dashboard Modules';
$lang->tree->manageDashboardChild = 'Manage Dashboard Sub-modules';
$lang->tree->manageProjectChild = "Manage {$lang->projectCommon} Sub-modules";
$lang->tree->manageTaskChild = "Manage {$lang->execution->common} Sub-modules";
$lang->tree->manageDeliverableChild = "Manage Deliverable Category";
$lang->tree->syncFromProduct = "Duplicate Modules";
$lang->tree->dragAndSort = "Drag to order";
$lang->tree->sort = "Order";
$lang->tree->addChild = "Add Sub-modules";
$lang->tree->confirmDelete = 'This module and its sub-modules will be deleted. Are you sure you want to delete them?';
$lang->tree->confirmDeleteMenu = 'This directory and its sub-directories will be deleted. Are you sure you want to delete them?';
$lang->tree->confirmDelCategory = 'This category and its sub-categories will be deleted. Are you sure you want to delete them?';
$lang->tree->confirmDeleteLine = "Are you sure you want to delete this product line?";
$lang->tree->confirmDeleteGroup = 'This group and its sub-groups will be deleted. Are you sure you want to delete them?';
$lang->tree->confirmRoot = "Any changes to the {$lang->productCommon} will change the {$lang->SRCommon}, stories, bugs, cases of {$lang->productCommon} it belongs to, as well as the linkage of {$lang->executionCommon} and {$lang->productCommon}. This is a high-risk action. Please proceed with caution. Are you sure you want to make this change?";
$lang->tree->confirmRoot4Doc = "Any changes to the Doc Library will update the associations of all documents under this category. This is a high-risk action. Please proceed with caution. Are you sure you want to make this change?";
$lang->tree->noSubmodule = "No sub-modules available to duplicate";
$lang->tree->successSave = 'Saved ';
$lang->tree->successFixed = 'Fixed';
$lang->tree->repeatName = 'Module name "%s" already exists';
$lang->tree->repeatDirName = 'Directory name "%s" already exists';
$lang->tree->shouldNotBlank = 'Module name cannot be empty';
$lang->tree->syncProductModule = "Sync {$lang->productCommon} Modules";
$lang->tree->host = 'Host';
$lang->tree->editHost = 'Edit host group';
$lang->tree->deleteHost = 'Delete host group';
$lang->tree->manageHostChild = 'Manage Host Sub-groups';
$lang->tree->groupMaintenance = 'Manage Host Groups';
$lang->tree->groupName = 'Group Name';
$lang->tree->parentGroup = 'Parent grpup';
$lang->tree->childGroup = 'Child';
$lang->tree->confirmDeleteHost = 'This group and its sub-groups will be deleted. Are you sure?';
$lang->tree->designModule = 'Design';
$lang->tree->otherModule = 'Other';
$lang->tree->module = 'Module';
$lang->tree->name = 'Module Name';
$lang->tree->wordName = 'Name';
$lang->tree->line = "Product Line Name";
$lang->tree->cate = 'Category Name';
$lang->tree->dir = 'Directory Name';
$lang->tree->root = "{$lang->productCommon}";
$lang->tree->branch = 'Platform/Branch';
$lang->tree->path = 'Path';
$lang->tree->type = 'Type';
$lang->tree->parent = 'Parent Module';
$lang->tree->parentCate = 'Parent Directory';
$lang->tree->child = 'Sub-modules';
$lang->tree->parentGroup = 'Parent group';
$lang->tree->childGroup = 'Sub-groups';
$lang->tree->subCategory = 'Sub-categories';
$lang->tree->editCategory = 'Edit Category';
$lang->tree->delCategory = 'Delete Category';
$lang->tree->lineChild = "Sub-product Lines";
$lang->tree->owner = 'Assigned to';
$lang->tree->order = 'Order';
$lang->tree->short = 'Abbr';
$lang->tree->all = 'All Modules';
$lang->tree->executionDoc = "{$lang->executionCommon} Document";
$lang->tree->product = $lang->productCommon;
$lang->tree->editDir = "Edit Directory";
$lang->tree->emptyHistory = "No history yet";
$lang->module = new stdclass();
$lang->module->action = new stdclass();
$lang->module->action->created = array('main' => "\$date, created <strong>\$extra</strong> by <strong>\$actor</strong>.");
$lang->module->action->moved = array('main' => "\$date, moved <strong>\$extra</strong> by <strong>\$actor</strong>.");
$lang->module->action->deleted = array('main' => "\$date, deleted <strong>\$extra</strong> by <strong>\$actor</strong>.");

2061
module/tutorial/lang/ru.php Normal file

File diff suppressed because it is too large Load diff

279
module/upgrade/lang/ru.php Normal file
View file

@ -0,0 +1,279 @@
<?php
/**
* The upgrade module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package upgrade
* @version $Id: en.php 5119 2013-07-12 08:06:42Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
global $config;
$lang->upgrade->common = 'Upgrade';
$lang->upgrade->welcome = 'Welcome to ZenTao Upgrade';
$lang->upgrade->execute = 'Version Upgrade';
$lang->upgrade->versionTips = 'Upgrading to';
$lang->upgrade->changeTips = '%s data changes';
$lang->upgrade->progress = 'Progress';
$lang->upgrade->executedChanges = "Executed: <span id='executedCount'>0</span> / %s";
$lang->upgrade->start = 'Start';
$lang->upgrade->result = 'Update Status';
$lang->upgrade->fail = 'Upgrade failed. The current version of ZenTao is ';
$lang->upgrade->successTip = 'Successed';
$lang->upgrade->success = "<p>Congratulations! Your ZenTao has been successfully upgraded.</p>";
$lang->upgrade->tohome = 'Go to ZenTao';
$lang->upgrade->notice = 'Notice';
$lang->upgrade->checkExtension = 'Check Extensions';
$lang->upgrade->consistency = 'Consistency Check';
$lang->upgrade->backupNotice = <<<EOT
<p>Elevated database privileges are required. Please use an administrator account.</p>
<p>Warning: Back up your database before proceeding to prevent potential data loss.</p>
<pre class='leading-6 mt-1 p-3'>
1. Backups can be performed via GUI management tools.
2. Use the DIsql tool for backup.
$> BACKUP DATABASE BACKUPSET <span class='font-bold text-danger'>'filename'</span>;
The backup set directory "filename" will be generated in the default backup path upon completion.
The default path is defined by BAK_PATH in dm.ini. If BAK_PATH is not configured, the bak directory under SYSTEM_PATH is used by default.
This is the simplest backup command. For advanced options, please refer to the online backup syntax documentation.
</pre>
EOT;
if($config->db->driver == 'dm')
{
$lang->upgrade->backupNotice = <<<EOT
<p>The upgrade requires high database privileges, please use the root user.</p>
<p>Please backup your database before updating ZenTao!</p>
<pre class='leading-6 mt-1 p-3'>
1. It can be backed up by graphical client tools.
2. Use DIsql tool to back up data.
$> BACKUP DATABASE BACKUPSET <span class='font-bold text-danger'>'filename'</span>;
After the statement is executed, a backup set directory named "filename" is generated in the default backup path.
The default backup path is the path configured with BAK_PATH in dm.ini. If BAK_PATH is not configured, bak in SYSTEM_PATH is used by default.
This is the simplest database backup statement,To set additional backup options, you need to understand the syntax of the online backup database.
</pre>
EOT;
}
$lang->upgrade->confirmBackup = 'I have backed up the database';
$lang->upgrade->setStatusFileTitle = 'Please complete the following before upgrading';
$lang->upgrade->createWinFile = 'Open the terminal and run: <span id="command" class="font-bold text-danger">echo > %s</span>';
$lang->upgrade->createLinuxFile = 'Run <span id="command" class="font-bold text-danger">touch %s</span> in the terminal.';
$lang->upgrade->deleteStatusFile = 'Alternatively, delete <span class="font-bold text-danger">%s</span> and create a new <span class="font-bold text-danger">ok.txt</span> file (leave it empty).';
$lang->upgrade->confirmStatusFile = 'I have read and followed the instructions above.';
$lang->upgrade->safeDeleteFile = 'For system security, the files need to be deleted.';
$lang->upgrade->selectVersion = 'Select Version';
$lang->upgrade->copyCommand = 'Copy Command';
$lang->upgrade->copySuccess = 'Copied';
$lang->upgrade->copyFail = 'Copying not supported by your browser. Please copy manually.';
$lang->upgrade->continue = 'Continue Upgrade';
$lang->upgrade->noteVersion = "Make sure to select the correct version, otherwise data loss may occur.";
$lang->upgrade->fromVersion = 'Current Version';
$lang->upgrade->toVersion = 'Upgrade to';
$lang->upgrade->confirm = 'Confirm SQL';
$lang->upgrade->sureExecute = 'Execute';
$lang->upgrade->upgradingTips = 'Upgrading in progress. Please wait. Do not refresh, power off, or shut down!';
$lang->upgrade->forbiddenExt = 'The following extensions are incompatible with the new version and have been automatically disabled:';
$lang->upgrade->updateFile = 'Attachment information update required.';
$lang->upgrade->showSQLLog = 'Database inconsistencies detected. Attempting to fix. Below are the SQL statements for repair:';
$lang->upgrade->noticeErrSQL = 'Database inconsistencies detected, and automatic repair failed. Please run the following SQL statements manually, then refresh the page to re-check.';
$lang->upgrade->execCommand = 'Please run the above command on the server, then refresh the page.';
$lang->upgrade->afterExec = 'Please modify the database manually based on the error messages above, then refresh the page.';
$lang->upgrade->mergeProgram = 'Data import';
$lang->upgrade->mergeTips = 'Data Migration Tips';
$lang->upgrade->toPMS15Guide = 'ZenTao Open Source v15 Upgrade';
$lang->upgrade->toPRO10Guide = 'ZenTao profession v10 Upgrade ';
$lang->upgrade->toBIZ5Guide = 'ZenTao enterprise v5 Upgrade ';
$lang->upgrade->toMAXGuide = 'ZenTao ultimate version upgrade';
$lang->upgrade->line = 'Product Line';
$lang->upgrade->allLines = "All Product Lines";
$lang->upgrade->program = 'Target Program & Project';
$lang->upgrade->existProgram = 'Existing programs';
$lang->upgrade->existProject = 'Existing projects';
$lang->upgrade->existLine = 'Existing product lines';
$lang->upgrade->product = $lang->productCommon;
$lang->upgrade->project = 'Iteration';
$lang->upgrade->repo = 'Repo';
$lang->upgrade->mergeRepo = 'Merge Repo';
$lang->upgrade->setProgram = 'Assign Project to Program';
$lang->upgrade->setProject = "Assign {$lang->executionCommon} to Project";
$lang->upgrade->dataMethod = 'Data migration method';
$lang->upgrade->selectMergeMode = 'Please select a data merging method';
$lang->upgrade->mergeMode = 'Data Merging Method:';
$lang->upgrade->begin = 'Start on';
$lang->upgrade->end = 'End on';
$lang->upgrade->unknownDate = 'Unscheduled Projects';
$lang->upgrade->selectProject = 'The target project';
$lang->upgrade->programName = 'Program Name';
$lang->upgrade->projectName = 'Project Name';
$lang->upgrade->projectManage = 'Project Manage';
$lang->upgrade->compatibleEXT = 'Extension Compatibility';
$lang->upgrade->fileName = 'File Name';
$lang->upgrade->list = ' List';
$lang->upgrade->next = 'Next';
$lang->upgrade->back = 'Back';
$lang->upgrade->upgradeDocs = 'Upgrade Document Data';
$lang->upgrade->upgradingDocs = 'Upgrading documents, please wait...';
$lang->upgrade->upgradeDocsTip = 'Found %s document-related items to upgrade';
$lang->upgrade->upgradeDocTemplates = 'Upgrade Doc Template Data';
$lang->upgrade->upgradingDocTemplates = 'Upgrading document templates, please wait...';
$lang->upgrade->upgradeDocTemplatesTip = 'Upgrading historical template data. You can view and manage them in the Template Plaza afterward.';
$lang->upgrade->weeklyReportTitle = 'Week % s (% s ~% s)';
$lang->upgrade->milestoneTitle = 'Milestone Report';
$lang->upgrade->upgradeProjectReports = "Upgrade {$lang->projectCommon} Report Data";
$lang->upgrade->upgradingProjectReports = "Upgrading {$lang->projectCommon} report data, please wait...";
$lang->upgrade->upgradeProjectReportsTip = "Found %s {$lang->projectCommon} report-related items to upgrade";
$lang->upgrade->newProgram = 'Create';
$lang->upgrade->editedName = 'Renamed To';
$lang->upgrade->projectEmpty = 'The project cannot be empty.';
$lang->upgrade->mergeSummary = "Dear user, there are %s items in your system waiting to be migrated.";
$lang->upgrade->productCount = "%s {$lang->productCommon}";
$lang->upgrade->projectCount = "%s {$lang->projectCommon}";
$lang->upgrade->mergeByProject = "There are 2 data migration methods available. If your historical {$lang->projectCommon} are long-term, we recommend upgrading them as Projects.</br>If they are short-term, we recommend upgrading them as {$lang->executionCommon}.";
$lang->upgrade->mergeRepoTips = "Merge selected repositories into the selected product.";
$lang->upgrade->needBuild4Add = 'This upgrade requires new indexes. Please go to [Admin -> System -> Rebuild Index] to re-create them.';
$lang->upgrade->needChangeEngine = 'Database engine updates are required for this upgrade. Please change it at [Admin -> System -> Table Engine].';
$lang->upgrade->errorEngineInnodb = 'The current database does not support the InnoDB engine. Please switch to MyISAM and try again.';
$lang->upgrade->duplicateProject = "Project names must be unique within a program. Please rename any duplicate projects.";
$lang->upgrade->upgradeTips = "Deleted historical data will not be migrated and cannot be restored after the upgrade.";
$lang->upgrade->moveEXTFileFail = 'File migration failed. Please run the command above and refresh.';
$lang->upgrade->deleteDirTip = 'The following folders will interfere with system functions after the upgrade. Please delete them.';
$lang->upgrade->errorNoProduct = "Please select the {$lang->productCommon} to be merged.";
$lang->upgrade->errorNoExecution = "Please select the {$lang->projectCommon} to be merged.";
$lang->upgrade->moveExtFileTip = <<<EOT
<p>The new version will apply extension compatibility to historical customizations and plugins. To ensure these functions remain active, the related files must be migrated to extension/custom; otherwise, they will no longer work.</p>
<p>Please confirm if your system has any customizations or plugins. If not, you can uncheck the files below. If you are unsure, we recommend keeping them checked to avoid any issues.</p>
EOT;
$lang->upgrade->projectType['project'] = "Upgrade historical {$lang->projectCommon} as Projects";
$lang->upgrade->projectType['execution'] = "Upgrade historical {$lang->projectCommon} as {$lang->executionCommon}";
$lang->upgrade->createProjectTip = <<<EOT
<p>After the upgrade, each historical {$lang->projectCommon} will map directly to a new Project.</p>
<p>The system will create an {$lang->executionCommon} with the same name for each historical {$lang->projectCommon}. Tasks, stories, bugs, and other data will then be migrated into these corresponding {$lang->executionCommon}.</p>
EOT;
$lang->upgrade->createExecutionTip = <<<EOT
<p>The system will upgrade historical {$lang->projectCommon} as {$lang->executionCommon}.</p>
<p>After the upgrade, the data from historical {$lang->projectCommon} will be mapped to {$lang->executionCommon} under the new Projects.</p>
EOT;
$lang->upgrade->mergeModes = array();
$lang->upgrade->mergeModes['project'] = "Auto-merge data: Upgrade historical {$lang->projectCommon} as Projects";
$lang->upgrade->mergeModes['execution'] = "Auto-merge data: Upgrade historical {$lang->projectCommon} as {$lang->executionCommon}";
$lang->upgrade->mergeModes['manually'] = 'Manually merge data';
$lang->upgrade->mergeProjectTip = "Historical {$lang->projectCommon} will be synchronized directly to the new Projects. Meanwhile, the system will create an {$lang->executionCommon} with the same name for each, and migrate all tasks, stories, bugs, and other data into the corresponding {$lang->executionCommon}.";
$lang->upgrade->mergeExecutionTip = "The system will automatically create Projects by year and merge historical {$lang->projectCommon} data into the corresponding Projects.";
$lang->upgrade->createProgramTip = "Meanwhile, a default Program will be created to contain all {$lang->projectCommon}.";
$lang->upgrade->mergeManuallyTip = 'You can manually select the data merging method.';
$lang->upgrade->defaultGroup = 'Default Group';
include dirname(__FILE__) . '/version.php';
$lang->upgrade->recoveryActions = new stdclass();
$lang->upgrade->recoveryActions->cancel = 'Cancel';
$lang->upgrade->recoveryActions->review = 'Review';
$lang->upgrade->remark = 'Notes';
$lang->upgrade->remarkDesc = 'You can also switch the mode in Admin -> System ->Mode.';
$lang->upgrade->upgradingTip = 'System upgrading, please wait...';
$lang->upgrade->addTraincoursePrivTips = "To help users better learn project management, we have granted all privilege groups access to Academy courses and practice libraries by default. If you do not need this feature, you can disable it in Admin -> System -> Feature Toggle.";
$lang->upgrade->storyStageList[''] = '';
$lang->upgrade->storyStageList['wait'] = 'Waiting';
$lang->upgrade->storyStageList['planned'] = 'Planned';
$lang->upgrade->storyStageList['projected'] = 'Projected';
$lang->upgrade->storyStageList['designing'] = 'Designing';
$lang->upgrade->storyStageList['designed'] = 'Designed';
$lang->upgrade->storyStageList['developing'] = 'Developing';
$lang->upgrade->storyStageList['developed'] = 'Developed';
$lang->upgrade->storyStageList['testing'] = 'Testing';
$lang->upgrade->storyStageList['tested'] = 'Tested';
$lang->upgrade->storyStageList['verified'] = 'Accepted';
$lang->upgrade->storyStageList['rejected'] = 'Acceptance Failed';
$lang->upgrade->storyStageList['delivering'] = 'Delivering';
$lang->upgrade->storyStageList['delivered'] = 'Delivered';
$lang->upgrade->storyStageList['released'] = 'Released';
$lang->upgrade->storyStageList['closed'] = 'Closed';
$lang->upgrade->flowFields['program'] = 'Program';
$lang->upgrade->flowFields['product'] = 'Product';
$lang->upgrade->flowFields['project'] = 'Project';
$lang->upgrade->flowFields['execution'] = 'Execution';
$lang->upgrade->defaultCharterApprovalFlow = new stdclass();
$lang->upgrade->defaultCharterApprovalFlow->projectApproval = new stdclass();
$lang->upgrade->defaultCharterApprovalFlow->projectApproval->title = 'Project Initiation Workflow';
$lang->upgrade->defaultCharterApprovalFlow->projectApproval->desc = 'Design the approval process for project initiation requests.';
$lang->upgrade->defaultCharterApprovalFlow->completionApproval = new stdclass();
$lang->upgrade->defaultCharterApprovalFlow->completionApproval->title = 'Project Closure Workflow';
$lang->upgrade->defaultCharterApprovalFlow->completionApproval->desc = 'Design the approval process for project closure requests.';
$lang->upgrade->defaultCharterApprovalFlow->cancelProjectApproval = new stdclass();
$lang->upgrade->defaultCharterApprovalFlow->cancelProjectApproval->title = 'Project Cancellation Workflow';
$lang->upgrade->defaultCharterApprovalFlow->cancelProjectApproval->desc = 'Design the approval process for canceling project initiations.';
$lang->upgrade->defaultCharterApprovalFlow->activateProjectApproval = new stdclass();
$lang->upgrade->defaultCharterApprovalFlow->activateProjectApproval->title = 'Project Reactivation Workflow';
$lang->upgrade->defaultCharterApprovalFlow->activateProjectApproval->desc = 'Design the approval process for reactivating project initiations.';
$lang->upgrade->deliverableModule['plan'] = 'Plan';
$lang->upgrade->deliverableModule['story'] = 'Story';
$lang->upgrade->deliverableModule['design'] = 'Design';
$lang->upgrade->deliverableModule['test'] = 'Test';
$lang->upgrade->deliverableModule['other'] = 'Other';
$lang->upgrade->reviewObjectList['PP'] = 'Project Plan';
$lang->upgrade->reviewObjectList['QAP'] = 'Quality Assurance Plan';
$lang->upgrade->reviewObjectList['CMP'] = 'Configuration Management Plan';
$lang->upgrade->reviewObjectList['ITP'] = 'Integration Test Plan';
$lang->upgrade->reviewObjectList['ERS'] = 'Epic Statement';
$lang->upgrade->reviewObjectList['URS'] = 'Feature Statement';
$lang->upgrade->reviewObjectList['SRS'] = 'Project Requirements Specification';
$lang->upgrade->reviewObjectList['HLDS'] = 'High Level Design Statement';
$lang->upgrade->reviewObjectList['DDS'] = 'Detailed Design Statement';
$lang->upgrade->reviewObjectList['DBDS'] = 'Database Design Statement';
$lang->upgrade->reviewObjectList['ADS'] = 'Interface Design Statement';
$lang->upgrade->reviewObjectList['Code'] = 'Code';
$lang->upgrade->reviewObjectList['intergrate'] = 'Integrate Test Cases';
$lang->upgrade->reviewObjectList['STP'] = 'System Test Plan';
$lang->upgrade->reviewObjectList['system'] = 'System Test Cases';
$lang->upgrade->reviewObjectList['UM'] = 'User Manual';
$lang->upgrade->baselineReview = array();
$lang->upgrade->baselineReview['baseline'] = 'Baseline Review';
$lang->upgrade->baselineReview['change'] = 'Project Change Review';
$lang->upgrade->changeModes = [];
$lang->upgrade->changeModes['create'] = 'Add';
$lang->upgrade->changeModes['update'] = 'Update';
$lang->upgrade->changeModes['delete'] = 'Delete';
$lang->upgrade->changeActions = [];
$lang->upgrade->changeActions['createView'] = 'Create database view %VIEW%';
$lang->upgrade->changeActions['dropView'] = 'Drop database view %VIEW%';
$lang->upgrade->changeActions['createTable'] = 'Create database table %TABLE%';
$lang->upgrade->changeActions['dropTable'] = 'Drop database table %TABLE%';
$lang->upgrade->changeActions['renameTable'] = 'Rename database table %OLD% to %NEW%';
$lang->upgrade->changeActions['addField'] = 'Add field %FIELD% to database table %TABLE%';
$lang->upgrade->changeActions['modifyField'] = 'Modify field %FIELD% in database table %TABLE%';
$lang->upgrade->changeActions['dropField'] = 'Drop field %FIELD% from database table %TABLE%';
$lang->upgrade->changeActions['renameField'] = 'Rename field %OLD% in table %TABLE% to %NEW%';
$lang->upgrade->changeActions['createIndex'] = 'Add index %INDEX% to database table %TABLE%';
$lang->upgrade->changeActions['dropIndex'] = 'Drop index %INDEX% from database table %TABLE%';
$lang->upgrade->changeActions['insertValue'] = 'Insert data into database table %TABLE%';
$lang->upgrade->changeActions['updateValue'] = 'Update data in database table %TABLE%';
$lang->upgrade->changeActions['deleteValue'] = 'Delete data from database table %TABLE%';
$lang->upgrade->changeActions['method'] = 'Execute method %METHOD% of module %MODULE%';
$lang->upgrade->changeActions['other'] = 'Other operations';

356
module/user/lang/ru.php Normal file
View file

@ -0,0 +1,356 @@
<?php
/**
* The user module English file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package user
* @version $Id: en.php 5053 2013-07-06 08:17:37Z wyd621@gmail.com $
* @link https://www.zentao.net
*/
$lang->user->common = 'User';
$lang->user->id = 'ID';
$lang->user->inside = 'Internal Users';
$lang->user->outside = 'External Users';
$lang->user->company = 'Company';
$lang->user->dept = 'Department';
$lang->user->account = 'Account';
$lang->user->password = 'Password';
$lang->user->passwordfield = 'Password';
$lang->user->password1 = 'Password';
$lang->user->password2 = 'Confirm Password';
$lang->user->role = 'Role';
$lang->user->group = 'Permission Group';
$lang->user->realname = 'Name';
$lang->user->nickname = 'Nickname';
$lang->user->commiter = 'SVN / GIT Account';
$lang->user->birthyear = 'DOB';
$lang->user->gender = 'Gender';
$lang->user->email = 'Email';
$lang->user->basicInfo = 'Basic Info';
$lang->user->accountInfo = 'Account Info';
$lang->user->verify = 'Verification';
$lang->user->contactInfo = 'Contact Info';
$lang->user->skype = 'Skype';
$lang->user->qq = 'QQ';
$lang->user->mobile = 'Mobile';
$lang->user->phone = 'Phone';
$lang->user->weixin = 'WeChat';
$lang->user->dingding = 'DingTalk';
$lang->user->slack = 'Slack';
$lang->user->whatsapp = 'WhatsApp';
$lang->user->address = 'Mailing Address';
$lang->user->zipcode = 'Zip Code';
$lang->user->join = 'Join Date';
$lang->user->priv = 'Permission';
$lang->user->visits = 'Visit Count';
$lang->user->visions = 'Interface Type';
$lang->user->ip = 'Last IP';
$lang->user->last = 'Last Login';
$lang->user->ranzhi = 'Zdoo Account';
$lang->user->ditto = 'Ditto';
$lang->user->originalPassword = 'Current Password';
$lang->user->newPassword = 'New Password';
$lang->user->verifyPassword = 'Password';
$lang->user->forgetPassword = 'Forgot Password';
$lang->user->score = 'Points';
$lang->user->name = 'Name';
$lang->user->type = 'User Type';
$lang->user->cropAvatar = 'Crop Avatar';
$lang->user->cropAvatarTip = 'Drag the frame to select the cropping area.';
$lang->user->cropImageTip = 'The selected image is too small. The recommended minimum size is 48x48. Current size: %s.';
$lang->user->captcha = 'Captcha';
$lang->user->avatar = 'Avatar';
$lang->user->birthday = 'DOB';
$lang->user->nature = 'Personality Traits';
$lang->user->analysis = 'Impact Analysis';
$lang->user->strategy = 'Response Strategy';
$lang->user->fails = 'Failed Attempts';
$lang->user->locked = 'Lock Date';
$lang->user->scoreLevel = 'Points Level';
$lang->user->clientStatus = 'Login Status';
$lang->user->clientLang = 'Client Language';
$lang->user->programs = 'Program';
$lang->user->products = $lang->productCommon;
$lang->user->projects = $lang->projectCommon;
$lang->user->sprints = $lang->execution->common;
$lang->user->identity = 'Identity';
$lang->user->switchVision = 'Switch to %s';
$lang->user->submit = 'Submit';
$lang->user->resetPWD = 'Reset Password';
$lang->user->resetPwdByAdmin = 'Reset Password by Admin';
$lang->user->resetPwdByMail = 'Reset password via email';
$lang->user->abbr = new stdclass();
$lang->user->abbr->id = 'No.';
$lang->user->abbr->password2 = 'Confirm Password';
$lang->user->abbr->address = 'Address';
$lang->user->abbr->join = 'Join Date';
$lang->user->legendBasic = 'Basic Info';
$lang->user->legendContribution = 'Contribution';
$lang->user->index = "User Dashboard";
$lang->user->view = "User Details";
$lang->user->create = "Add User";
$lang->user->batchCreate = "Batch Add Users";
$lang->user->edit = "Edit User";
$lang->user->batchEdit = "Batch Edit Users";
$lang->user->unlock = "Unlock User";
$lang->user->delete = "Delete User";
$lang->user->unbind = "Unlink ZDO0";
$lang->user->login = "Login";
$lang->user->bind = "Link Existing Account";
$lang->user->oauthRegister = "Register New Account";
$lang->user->mobileLogin = "Mobile Access";
$lang->user->editProfile = "Edit Profile";
$lang->user->deny = "Your access is denied.";
$lang->user->confirmDelete = "Are you sure you want to delete this user?";
$lang->user->confirmUnlock = "Are you sure you want to unlock this user?";
$lang->user->confirmUnbind = "Are you sure you want to unlink this user from Zdoo?";
$lang->user->relogin = "Login Again";
$lang->user->asGuest = "Guest Access";
$lang->user->goback = "Return to previous page";
$lang->user->deleted = '(Deleted)';
$lang->user->search = 'Search';
$lang->user->else = 'Others';
$lang->user->saveTemplate = 'Save as Template';
$lang->user->setPublic = 'Set as Public Template';
$lang->user->deleteTemplate = 'Delete Template';
$lang->user->setTemplateTitle = 'Enter template title.';
$lang->user->applyTemplate = 'Apply Template';
$lang->user->confirmDeleteTemplate = 'Are you sure you want to delete this template?';
$lang->user->setPublicTemplate = 'Set as Public Template';
$lang->user->tplContentNotEmpty = 'Template content cannot be empty.';
$lang->user->sendEmailSuccess = 'An email has been sent to your inbox. Please check it.';
$lang->user->linkExpired = 'The link has expired. Please request a new one.';
$lang->user->profile = 'Profile';
$lang->user->project = $lang->executionCommon . 's';
$lang->user->execution = $lang->execution->common;
$lang->user->task = 'Tasks';
$lang->user->bug = 'Bugs';
$lang->user->test = 'Test';
$lang->user->testTask = 'Test Requests';
$lang->user->testCase = 'Test Cases';
$lang->user->issue = 'Issue';
$lang->user->risk = 'Risk';
$lang->user->schedule = 'Schedule';
$lang->user->todo = 'To-do';
$lang->user->story = 'Stories';
$lang->user->dynamic = 'Recents';
$lang->user->openedBy = 'Created by %s';
$lang->user->assignedTo = 'Assigned to %s';
$lang->user->finishedBy = 'Completed by %s';
$lang->user->involved = '%s Involved';
$lang->user->resolvedBy = 'Fixed by %s';
$lang->user->closedBy = 'Closed by %s';
$lang->user->reviewedBy = 'Reviewed by %s';
$lang->user->canceledBy = 'Cancelled by %s';
$lang->user->testTask2Him = 'Managed by %s';
$lang->user->case2Him = 'Assigned to %s';
$lang->user->caseByHim = 'Created by %s';
$lang->user->errorDeny = "Sorry, you do not have permission to access the [<b>%s</b>] feature in the 『<b>%s</b>」 module. Please contact your administrator for assistance. You can return to the Dashboard or log in again.";
$lang->user->errorView = "Sorry, you do not have permission to access the [<b>%s</b>] view. Please contact your administrator for assistance. You can return to the Dashboard or log in again.";
$lang->user->loginFailed = "Login failed. Please check if your account and password are correct.";
$lang->user->lockWarning = "You have %s attempts remaining.";
$lang->user->loginLocked = "Too many failed login attempts. Please contact your administrator to unlock your account, or try again in %s minutes.";
$lang->user->weakPassword = "Your password strength does not meet the system requirements.";
$lang->user->errorWeak = "Common weak passwords such as [%s] cannot be used.";
$lang->user->errorCaptcha = "Incorrect Captcha.";
$lang->user->loginExpired = 'Your session has expired. Please log in again.';
$lang->user->roleList[''] = '';
$lang->user->roleList['dev'] = 'Dev Engineer';
$lang->user->roleList['qa'] = 'Test Engineer';
$lang->user->roleList['pm'] = 'Project Manager';
$lang->user->roleList['po'] = 'Product Owner';
$lang->user->roleList['td'] = 'Technical Manager';
$lang->user->roleList['pd'] = 'Product Manager';
$lang->user->roleList['qd'] = 'Test Manager';
$lang->user->roleList['top'] = 'Senior Manager';
$lang->user->roleList['others'] = 'Others';
$lang->user->genderList['m'] = 'Male';
$lang->user->genderList['f'] = 'Female';
$lang->user->thirdPerson['m'] = 'Him';
$lang->user->thirdPerson['f'] = 'Her';
$lang->user->typeList['inside'] = $lang->user->inside;
$lang->user->typeList['outside'] = $lang->user->outside;
$lang->user->passwordStrengthList[0] = "<span style='color:red'>Weak</span>";
$lang->user->passwordStrengthList[1] = "<span style='color:#000'>Medium</span>";
$lang->user->passwordStrengthList[2] = "<span style='color:green'>Strong</span>";
$lang->user->statusList['active'] = 'Normal';
$lang->user->statusList['delete'] = 'Deleted';
$lang->user->personalData['createdTodos'] = 'Created To-dos';
$lang->user->personalData['createdRequirements'] = "Created Features";
$lang->user->personalData['createdStories'] = "Created Stories";
$lang->user->personalData['finishedTasks'] = 'Completed Tasks';
$lang->user->personalData['createdBugs'] = 'Reported Bugs';
$lang->user->personalData['resolvedBugs'] = 'Fixed Bugs';
$lang->user->personalData['createdCases'] = 'Created Test Cases';
$lang->user->personalData['createdRisks'] = 'Created Risks';
$lang->user->personalData['resolvedRisks'] = 'Resolved Risks';
$lang->user->personalData['createdIssues'] = 'Created Issues';
$lang->user->personalData['resolvedIssues'] = 'Resolved Issues';
$lang->user->personalData['createdDocs'] = 'Created Docs';
$lang->user->keepLogin['on'] = 'Keep me logged in';
$lang->user->loginWithDemoUser = 'Log in with Demo Account:';
$lang->user->scanToLogin = 'Scan QR Code to Log In';
$lang->user->tpl = new stdclass();
$lang->user->tpl->type = 'Type';
$lang->user->tpl->title = 'Template Name';
$lang->user->tpl->content = 'Content';
$lang->user->tpl->public = 'Public';
$lang->usertpl = new stdclass();
$lang->usertpl->account = 'Creator';
$lang->usertpl->type = 'Template Type';
$lang->usertpl->title = 'Template Name';
$lang->usertpl->content = 'Template Content';
$lang->usertpl->public = 'Public Template';
$lang->user->placeholder = new stdclass();
$lang->user->placeholder->account = 'A combination of letters, numbers, and underscores; at least 3 characters.';
$lang->user->placeholder->password1 = 'At least 6 characters.';
$lang->user->placeholder->role = "Job title affects the sorting order of content and user lists.";
$lang->user->placeholder->group = "The group determines the user's permissions.";
$lang->user->placeholder->commiter = 'SVN / Git account.';
$lang->user->placeholder->verify = 'Enter your system login password.';
$lang->user->placeholder->loginPassword = 'Enter your password.';
$lang->user->placeholder->loginAccount = 'Enter your account.';
$lang->user->placeholder->loginUrl = 'Enter your ZenTao site URL.';
$lang->user->placeholder->email = 'Enter your email.';
$lang->user->placeholder->passwordStrength[0] = 'Password must be at least 6 characters.';
$lang->user->placeholder->passwordStrength[1] = '≥6 characters: A-Z, a-z, and 0-9.';
$lang->user->placeholder->passwordStrength[2] = '≥10 characters: A-Z, a-z, 0-9, and symbols.';
$lang->user->placeholder->passwordStrengthCheck[0] = 'Password must be at least 6 characters.';
$lang->user->placeholder->passwordStrengthCheck[1] = 'Password must be at least 6 characters, containing uppercase letters, lowercase letters, and numbers.';
$lang->user->placeholder->passwordStrengthCheck[2] = 'Password must be at least 10 characters, containing uppercase letters, lowercase letters, numbers, and special symbols.';
$lang->user->error = new stdclass();
$lang->user->error->account = 'Account name must be a combination of letters, numbers, or underscores (at least 3 characters).';
$lang->user->error->accountDupl = 'Account name already exists.';
$lang->user->error->realname = 'Real Name is required.';
$lang->user->error->visions = 'Interface Type is required.';
$lang->user->error->password = 'Password must be at least 6 characters.';
$lang->user->error->mail = 'Invalid Email.';
$lang->user->error->reserved = 'The account name is reserved by the system.';
$lang->user->error->weakPassword = 'The password strength does not meet the system requirements.';
$lang->user->error->dangerPassword = "Common weak passwords such as [%s] cannot be used.";
$lang->user->error->url = "Invalid URL. Please contact the administrator.";
$lang->user->error->verify = "Incorrect account or password.";
$lang->user->error->verifyPassword = "Verification failed. Please check if your system login password is correct.";
$lang->user->error->originalPassword = "Incorrect current password.";
$lang->user->error->companyEmpty = "Company name cannot be empty.";
$lang->user->error->noAccess = "This user is not in the same department as you. You do not have permission to access their work information.";
$lang->user->error->accountEmpty = 'Account cannot be empty.';
$lang->user->error->emailEmpty = 'Email cannot be empty.';
$lang->user->error->noUser = 'User does not exist.';
$lang->user->error->noEmail = 'This user has no linked email address. Please contact the administrator to reset the password.';
$lang->user->error->errorEmail = 'The account and email do not match. Please try again.';
$lang->user->error->emailSetting = 'The system email is not configured. Please contact the administrator for a reset.';
$lang->user->error->sendMailFail = 'Failed to send email. Please try again.';
$lang->user->error->loginTimeoutTip = 'System login failed. Please check if the proxy service is working properly.';
$lang->user->error->uploadAvatar = 'Failed to upload avatar. Please upload an image in %s format.';
$lang->user->contactFieldList['phone'] = $lang->user->phone;
$lang->user->contactFieldList['mobile'] = $lang->user->mobile;
$lang->user->contactFieldList['qq'] = $lang->user->qq;
$lang->user->contactFieldList['dingding'] = $lang->user->dingding;
$lang->user->contactFieldList['weixin'] = $lang->user->weixin;
$lang->user->contactFieldList['skype'] = $lang->user->skype;
$lang->user->contactFieldList['slack'] = $lang->user->slack;
$lang->user->contactFieldList['whatsapp'] = $lang->user->whatsapp;
$lang->user->executionTypeList['stage'] = 'Phase';
$lang->user->executionTypeList['sprint'] = $lang->iterationCommon;
$lang->user->contacts = new stdclass();
$lang->user->contacts->common = 'Contacts';
$lang->user->contacts->listName = 'List Name';
$lang->user->contacts->userList = 'User List';
$lang->usercontact = new stdclass;
$lang->usercontact->account = 'Creator';
$lang->usercontact->listName = 'List Name';
$lang->usercontact->userList = 'User List';
$lang->usercontact->public = 'Public Contacts';
$lang->user->contacts->manage = 'Manage Lists';
$lang->user->contacts->contactsList = 'Existing Lists';
$lang->user->contacts->selectedUsers = 'Select Users';
$lang->user->contacts->selectList = 'Select Lists';
$lang->user->contacts->createList = 'Create Contacts';
$lang->user->contacts->noListYet = 'No lists have been created yet. Please create a contact list first.';
$lang->user->contacts->confirmDelete = 'Are you sure you want to delete this list?';
$lang->user->contacts->or = ' or ';
$lang->user->resetFail = "Failed to reset password. Please check if the account exists.";
$lang->user->resetSuccess = "Password reset successfully. Please log in with your new password.";
$lang->user->noticeDelete = 'Are you sure you want to delete "%s" from the system?';
$lang->user->noticeHasDeleted = "This user has been deleted. To view their details, please restore them from the Recycle Bin first.";
$lang->user->noticeResetFile = "<h5>Standard users: Please contact your administrator to reset your password.</h5>
<h5>Administrators: Please log in to the server where ZenTao is hosted and create the <span>%s </span> file. </h5>
<p>Note:</p>
<ol>
<li>The file content should be empty.</li>
<li>If the file already exists, delete it and create a new one.</li>
</ol>";
$lang->user->notice4Safe = "Warning: Weak password detected in the one-click installation package.";
$lang->user->process4DIR = "It appears you are using a one-click installation environment where other sites are still using weak passwords. For security purposes, if you are not using these other sites, please address this immediately by deleting or renaming the %s directory.";
$lang->user->process4DB = "It appears you are using a one-click installation environment where other sites are still using weak passwords. For security purposes, if you are not using these other sites, please address this immediately. Please log in to the database and modify the 'password' field in the 'zt_user' table of the %s database.";
$lang->user->mkdirWin = <<<EOT
<html><head><meta charset="utf-8"></head>
<body><table align="center" style="width:700px; margin-top:100px; border:1px solid gray; font-size:14px;"><tr><td style="padding:8px">
<div style="margin-bottom:8px;"> Failed to create a temporary directory. Please verify that the directory <strong style="color:#ed980f">%s</strong> exists and has the necessary permissions.</div>
<div>Can"t create tmp directory, make sure the directory <strong style="color:#ed980f">%s</strong> exists and has permission to operate.</div>
</td></tr></table></body></html>
EOT;
$lang->user->mkdirLinux = <<<EOT
<html><head><meta charset="utf-8"></head>
<body><table align="center" style="width:700px; margin-top:100px; border:1px solid gray; font-size:14px;"><tr><td style="padding:8px">
<div style="margin-bottom:8px;"> Failed to create a temporary directory. Please verify that the directory <strong style="color:#ed980f">%s</strong>exists and has the necessary permissions.</div>
<div style="margin-bottom:8px;">Command: <strong style="color:#ed980f">chmod 777 -R %s</strong>。</div>
<div>Can"t create tmp directory, make sure the directory <strong style="color:#ed980f">%s</strong> exists and has permission to operate.</div>
<div style="margin-bottom:8px;">Command: <strong style="color:#ed980f">chmod 777 -R %s</strong>.</div>
</td></tr></table></body></html>
EOT;
$lang->user->jumping = "You will be automatically redirected to the login page in <span id='time'>10</span> seconds. <a href='%s' id='redirect' class='btn primary'>Redirect Now</a>";
$lang->user->zentaoapp = new stdclass();
$lang->user->zentaoapp->logout = 'Log Out';
$lang->user->featureBar['todo']['all'] = 'Assigned to Me';
$lang->user->featureBar['todo']['before'] = 'Unfinished';
$lang->user->featureBar['todo']['future'] = 'TBD';
$lang->user->featureBar['todo']['thisWeek'] = 'This Week';
$lang->user->featureBar['todo']['thisMonth'] = 'This Month';
$lang->user->featureBar['todo']['thisYear'] = 'This Year';
$lang->user->featureBar['todo']['assignedToOther'] = 'Assigned to Others';
$lang->user->featureBar['todo']['cycle'] = 'Recurring';
$lang->user->featureBar['dynamic']['all'] = 'All';
$lang->user->featureBar['dynamic']['today'] = 'Today';
$lang->user->featureBar['dynamic']['yesterday'] = 'Yesterday';
$lang->user->featureBar['dynamic']['thisWeek'] = 'This Week';
$lang->user->featureBar['dynamic']['lastWeek'] = 'Last Week';
$lang->user->featureBar['dynamic']['thisMonth'] = 'This Month';
$lang->user->featureBar['dynamic']['lastMonth'] = 'Last Month';

114
module/webhook/lang/ru.php Normal file
View file

@ -0,0 +1,114 @@
<?php
$lang->webhook->common = 'Webhook';
$lang->webhook->list = 'Webhook List';
$lang->webhook->api = 'API';
$lang->webhook->entry = 'Apply';
$lang->webhook->log = 'Log';
$lang->webhook->bind = 'Link User';
$lang->webhook->chooseDept = 'Select Dept to Sync';
$lang->webhook->assigned = 'Assigned to';
$lang->webhook->setting = 'Settings';
$lang->webhook->logAction = 'Webhook Log';
$lang->webhook->browse = 'View Webhook ';
$lang->webhook->create = 'Create Webhook ';
$lang->webhook->edit = 'Edit Webhook ';
$lang->webhook->delete = 'Delete Webhook ';
$lang->webhook->id = 'ID';
$lang->webhook->type = 'Type';
$lang->webhook->name = 'Name';
$lang->webhook->url = 'Webhook URL';
$lang->webhook->domain = 'ZenTao Domain';
$lang->webhook->contentType = 'Content Type';
$lang->webhook->sendType = 'Sending Type';
$lang->webhook->secret = 'Secret';
$lang->webhook->product = "Link {$lang->productCommon}";
$lang->webhook->execution = "Link {$lang->execution->common}";
$lang->webhook->params = 'Parameters';
$lang->webhook->action = 'Trigger Action';
$lang->webhook->desc = 'Description';
$lang->webhook->createdBy = 'Creator';
$lang->webhook->createdDate = 'Created on';
$lang->webhook->editedby = 'Last Edited by';
$lang->webhook->editedDate = 'Edited on';
$lang->webhook->date = 'Sent at';
$lang->webhook->data = 'Data';
$lang->webhook->result = 'Result';
$lang->webhook->products = $lang->productCommon;
$lang->webhook->executions = $lang->execution->common;
$lang->webhook->actions = 'System Log';
$lang->webhook->deleted = 'Deleted';
$lang->webhook->approval = 'Approval Workflow Notifications';
$lang->webhook->typeList[''] = '';
$lang->webhook->typeList['dinggroup'] = 'DingTalk Group Bot';
$lang->webhook->typeList['dinguser'] = 'DingTalk notifications';
$lang->webhook->typeList['wechatgroup'] = 'WeCom Group Bot';
$lang->webhook->typeList['wechatuser'] = 'WeCom App Messages';
$lang->webhook->typeList['feishugroup'] = 'Feishu Group Bot';
$lang->webhook->typeList['feishuuser'] = 'Feishu Messages';
$lang->webhook->typeList['default'] = 'Others';
$lang->webhook->sendTypeList['sync'] = 'Synchronous';
$lang->webhook->sendTypeList['async'] = 'Asynchronous';
$lang->webhook->dingAgentId = 'DingTalk AgentID';
$lang->webhook->dingAppKey = 'DingTalk AppKey';
$lang->webhook->dingAppSecret = 'DingTalk AppSecret';
$lang->webhook->dingUserid = 'DingTalk User ID';
$lang->webhook->dingBindStatus = 'DingTalk Binding';
$lang->webhook->chooseDeptAgain = 'Reselect Dept';
$lang->webhook->wechatCorpId = 'Corp ID';
$lang->webhook->wechatCorpSecret = 'App Secret';
$lang->webhook->wechatAgentId = 'Agent ID';
$lang->webhook->wechatUserid = 'WeCome User';
$lang->webhook->wechatBindStatus = 'WeCome Binding';
$lang->webhook->feishuAppId = 'Feishu App ID';
$lang->webhook->feishuAppSecret = 'Feishu App Secret';
$lang->webhook->feishuUserid = 'Feishu User';
$lang->webhook->feishuBindStatus = 'Feishu Binding';
$lang->webhook->zentaoUser = 'Zentao User';
$lang->webhook->dingBindStatusList['0'] = 'No';
$lang->webhook->dingBindStatusList['1'] = 'Yes';
$lang->webhook->paramsList['objectType'] = 'Object Type';
$lang->webhook->paramsList['objectID'] = 'Object ID';
$lang->webhook->paramsList['product'] = "{$lang->productCommon}";
$lang->webhook->paramsList['execution'] = "{$lang->execution->common}";
$lang->webhook->paramsList['action'] = 'Action';
$lang->webhook->paramsList['actor'] = 'Acted by';
$lang->webhook->paramsList['date'] = 'Acted on';
$lang->webhook->paramsList['comment'] = 'Comment';
$lang->webhook->paramsList['text'] = 'Action Details';
$lang->webhook->confirmDelete = 'Are you sure you want to delete this webhook?';
$lang->webhook->friendlyTips = 'Tip: Click a department to expand its sub-departments.';
$lang->webhook->loadPrompt = 'Loading large dataset, please wait...';
$lang->webhook->trimWords = '';
$lang->webhook->note = new stdClass();
$lang->webhook->note->async = 'Asynchronous mode requires enabled scheduled tasks (Cron) in Admin-System.';
$lang->webhook->note->bind = 'User linking is only required for [DingTalk/WeCom] notification types.';
$lang->webhook->note->product = "If left empty, actions from all products will trigger the webhook. Otherwise, only actions from linked product will trigger it.";
$lang->webhook->note->execution = "If left empty, actions from all executions will trigger the webhook. Otherwise, only actions from linked execution will trigger it.";
$lang->webhook->note->dingHelp = " <a href='http://www.zentao.net/book/zentaopmshelp/358.html' target='_blank'><i class='icon-help'></i></a>";
$lang->webhook->note->wechatHelp = " <a href='http://www.zentao.net/book/zentaopmshelp/367.html' target='_blank'><i class='icon-help'></i></a>";
$lang->webhook->note->typeList['bearychat'] = 'Please add a ZenTao Bot in BearyChat and enter its Webhook URL here.';
$lang->webhook->note->typeList['dingding'] = 'Please add a Custom Bot in DingTalk and enter its Webhook URL here.';
$lang->webhook->note->typeList['weixin'] = 'Please add a Custom Bot in WeCom and enter its Webhook URL here.';
$lang->webhook->note->typeList['default'] = 'Get the Webhook URL from the third-party system and enter it here.';
$lang->webhook->error = new stdclass();
$lang->webhook->error->curl = 'The php-curl extension is required.';
$lang->webhook->error->noDept = 'No department selected. Please select the departments to sync first.';
$lang->webhook->error->url = 'Webhook url must start with http:// or https://!';
$lang->webhook->error->requestError = 'Request error.';

173
module/weekly/lang/ru.php Normal file
View file

@ -0,0 +1,173 @@
<?php
/**
* The weekly module lang file of ZenTaoPMS.
*
* @copyright Copyright 2009-2023 青島易軟天創網絡科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package weekly
* @version $Id
* @link https://www.zentao.net
*/
$lang->weekly->common = 'Report';
$lang->weekly->index = 'Weekly Report Overview';
$lang->weekly->progress = 'Progress';
$lang->weekly->workload = 'Workload';
$lang->weekly->total = 'Total';
$lang->weekly->reportTtitle = $lang->projectCommon . ': % s Weekly Report (Week % s)';
$lang->weekly->summary = $lang->projectCommon . ' Progress';
$lang->weekly->finished = 'Work Completed This Week (100% Finished Tasks)';
$lang->weekly->postponed = 'Incomplete Work This Week';
$lang->weekly->nextWeek = 'Work Plan for Next Week';
$lang->weekly->workloadByType = 'Workload Summary';
$lang->weekly->term = 'Reporting Period';
$lang->weekly->project = $lang->projectCommon . ' Name';
$lang->weekly->master = 'Project Manager ';
$lang->weekly->staff = 'Participants This Week';
$lang->weekly->projectTemplate = "{$lang->projectCommon} Weekly Report Template";
$lang->weekly->weekDesc = 'Week %s (%s – %s)';
$lang->weekly->progress = $lang->projectCommon . 'Progress';
$lang->weekly->analysisResult = 'Analysis';
$lang->weekly->cost = $lang->projectCommon . ' Cost';
$lang->weekly->pv = 'Planned Value(PV)';
$lang->weekly->ev = 'Earned Value(EV)';
$lang->weekly->ac = 'Actual Cost(AC)';
$lang->weekly->sv = 'Schedule Variance(SV%)';
$lang->weekly->cv = 'Cost Variance(CV%)';
$lang->weekly->totalCount = 'Total of %u tasks.';
$lang->weekly->builtinDesc = "A built‑in {$lang->projectCommon} weekly report template automatically creates this week’s report every Monday under the corresponding {$lang->projectCommon}。";
$lang->weekly->exportWeeklyReport = 'Export Weekly Report';
$lang->weekly->builtInScopes = array();
$lang->weekly->builtInScopes['rnd'] = array();
$lang->weekly->builtInScopes['rnd']['project'] = 'Project';
$lang->weekly->builtInCategoryList['month'] = 'Monthly Report';
$lang->weekly->builtInCategoryList['week'] = 'Weekly Report';
$lang->weekly->builtInCategoryList['day'] = 'Daily Report';
$lang->weekly->builtInCategoryList['milestone'] = 'Milestone Report';
$lang->weekly->reportHelpNotice = <<<EOD
<h2>PV — Planned Value </h2>
Calculation logic:
<br />1) Sum the estimated hours of tasks whose planned start and end dates both fall within this week’s start and end dates.
<br />2) Sum the estimated hours of tasks whose planned start and end dates are both before this week’s start date.
<br />3) Sum the estimated hours of tasks whose planned start date is earlier than this week’s start date, and the planned end date is between this week’s start and end dates.
<br />4) For tasks whose planned start date is after this week’s start date but before this week’s end date, and planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from planned start to this week’s end date).
<br />5) For tasks whose planned start date equals this week’s start date and planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from planned start to this week’s end date).
<br />6) For tasks whose planned start date is earlier than this week’s start date and planned end date equals this week’s end date, sum the estimated hours.
<br />7) For tasks whose planned start date is earlier than this week’s start date and planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from this week’s start to this week’s end date).
<p><strong>Scope of Calculation:</strong></p>
1) This week’s start date: Monday 00:00:00; the end date is determined based on working days and holidays.
<br />2) To avoid double counting, only sub‑tasks are included; parent tasks are excluded.
<br />3) Deleted tasks are excluded.
<br />4) Canceled tasks are excluded.
<br />5) Deleted executions are excluded.
<br />6) If the task has no planned start date, use the planned start date of its parent phase.
<br />7) If the task has no planned end date, use the planned finish date of its parent phase.
<br />8) The calculation considers only working days.
<h2>EV — Earned Value</h2>
Calculation logic:
<br />1) For tasks marked as “Completed,” sum the estimated hours.
<br />2) For tasks marked as “Closed” with the close reason “Completed,” sum the estimated hours.
<br />3) For tasks “Doing” or “On Hold,” sum (Estimated Hours × Completion Percentage).
<p><strong>Scope of Calculation:</strong></p>
1) Tasks that have non‑zero spent hours before this week’s end date.
<br />2) To avoid double counting, only sub‑tasks are included; parent tasks are excluded.
<br />3) Deleted tasks are excluded.
<br />4) Canceled tasks are excluded.
<br />5) Deleted executions are excluded.
<br />6) Completion Percentage = Cost Hours ÷ (Cost Hours + Hours Left).
<h2>AC — Actual Cost</h2>
Calculation logic:
<br />1) Sum all spent hours before this week’s end date.
<p><strong>Scope of Calculation:</strong></p>
1) Include spent hours from all work items: tasks, stories, bugs, test cases, builds, test requests, issues, risks, documents, and reviews.
<br />2) To avoid double counting, only sub‑tasks are included; parent tasks are excluded.
<br />3) Include spent hours from deleted tasks, stories, bugs, test cases, builds, test requests, issues, risks, documents, and reviews.
<br />4) Include spent hours from deleted executions of tasks, stories, bugs, test cases, builds, and documents.
<br />5) Include spent hours of canceled tasks, issues, and risks.
<h2>SV(%) — Schedule Variance </h2>
Formula: SV(%) = −1 × (1 − (EV / PV))%
<h2>CV(%) — Cost Variance </h2>
Formula: CV(%) = −1 × (1 − (EV / AC))%;
EOD;
$lang->weekly->blockHelpNotice = '<h2>Progress This Week</h2>
Calculation logic:
<br />1) Project Progress = (Cost Hours on Tasks ÷ (Cost Hours on Tasks + Remaining Task Hours)) × 100%
<p><strong>Scope of Calculation:</strong></p>
1) Only task work‑hour data is included.
<br />2) To avoid double counting, only sub‑tasks are included; parent tasks are excluded.
<br />3) Include spent hours of canceled tasks.
<br />4) Exclude spent hours of deleted tasks.
<br />5) Exclude spent hours of deleted executions.
<br />6) Exclude remaining hours of canceled tasks.
<br />7) Exclude remaining hours of deleted executions.
<h2>PV — Planned Value</h2>
Calculation logic:
<br />1) Sum the estimated hours of tasks whose planned start and end dates both fall within this week’s start and end dates.
<br />2) Sum the estimated hours of tasks whose planned start and end dates are both before this week’s start date.
<br />3) Sum the estimated hours of tasks whose planned start date is earlier than this week’s start date, and planned end date is between this week’s start and end dates.
<br />4) For tasks whose planned start date is after this week’s start date but before this week’s end date, and whose planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from planned start to this week’s end date).
<br />5) For tasks whose planned start date equals this week’s start date and whose planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from planned start to this week’s end date).
<br />6) For tasks whose planned start date is earlier than this week’s start date and whose planned end date equals this week’s end date, sum the estimated hours.
<br />7) For tasks whose planned start date is earlier than this week’s start date and whose planned end date is after this week’s end date, sum (Estimated Hours ÷ Task Duration in days) × (Days from this week’s start to this week’s end date).
<p><strong>Scope of Calculation:</strong></p>
1) Weekly start date: Monday 00:00:00. The end date is determined based on working days and public holidays.
<br />2) To avoid double counting, include only sub‑tasks and exclude parent tasks.
<br />3) Exclude deleted tasks.
<br />4) Exclude canceled tasks.
<br />5) Exclude deleted executions.
<br />6) If a task has no planned start date, use the planned start date of its parent phase.
<br />7) If a task has no planned end date, use the planned finish date of its parent phase.
<br />8) The calculation considers only working days.
<h2>EV — Earned Value </h2>
Calculation logic:
<br />1) For tasks marked as “Completed,” sum the estimated hours.
<br />2) For tasks marked as “Closed” with the close reason “Completed,” sum the estimated hours.
<br />3) For tasks in “Doing” or “On Hold” status, sum (Estimated Hours × Completion Percentage).
<p><strong>Scope of Calculation:</strong></p>
1) Include tasks with non‑zero spent hours before this week’s end date.
<br />2) To avoid double counting, include only sub‑tasks and exclude parent tasks.
<br />3) Exclude deleted tasks.
<br />4) Exclude canceled tasks.
<br />5) Exclude deleted executions.
<br />6) Completion Percentage = Cost Hours ÷ (Cost Hours + Hours Left).
<h2>AC — Actual Cost </h2>
Calculation logic:
<br />1) Sum all spent hours before this week’s end date.
<p><strong>Scope of Calculation:</strong></p>
1) Include spent hours from tasks, stories, bugs, test cases, builds, test requests, issues, risks, documents, and reviews.
<br />2) To avoid double counting, include only sub‑tasks and exclude parent tasks.
<br />3) Include spent hours from deleted tasks, stories, bugs, test cases, builds, test requests, issues, risks, documents, and reviews.
<br />4) Include spent hours from deleted executions of tasks, stories, bugs, test cases, builds, and documents.
<br />5) Include spent hours of canceled tasks, issues, and risks.
<h2>SV(%) — Schedule Variance</h2>
Formula: SV(%) = −1 × (1 − (EV ÷ PV))%
<h2>CV(%) — Cost Variance</h2>
Formula: CV(%) = −1 × (1 − (EV ÷ AC))%';
$lang->weekly->builtinRawContent = '{"type":"page","meta":{"id":"mKJhETwxpP","title":"Project Weekly Report Template","createDate":1758524215597,"tags":[]},"blocks":{"type":"block","id":"leP1pQM_0N","flavour":"affine:page","version":2,"props":{"title":{"$blocksuite:internal:text$":true,"delta":[{"insert":"Project Weekly Report Template"}]}},"children":[{"type":"block","id":"cDel0u6OKK","flavour":"affine:note","version":1,"props":{"xywh":"[0,0,498,92]","background":"--affine-note-background-white","index":"a0","lockedBySelf":false,"hidden":false,"displayMode":"both","edgeless":{"style":{"borderRadius":8,"borderSize":4,"borderStyle":"none","shadowType":"--affine-note-shadow-box"}}},"children":[{"type":"block","id":"57JpxtRtgl","flavour":"affine:paragraph","version":1,"props":{"align":"left","type":"text","text":{"$blocksuite:internal:text$":true,"delta":[{"insert":" ","attributes":{"holder":{"id":"-bGoKXonda","name":"weekly_term","text":"Report Duration","hint":"Filter: Date Range is within this week.","data":{"type":"weekly_term","blockID":1538,"hint":"Filter: Date Range is within this week.","text":"Report Duration"}}}},{"insert":"Weekly Report"},{"insert":" ","attributes":{"holder":{"id":"ZZ2iJ1NbSm","name":"property_name","text":"Project Name","hint":"Project Name"}}},{"insert":"by project manager"},{"insert":" ","attributes":{"holder":{"id":"No8p_noVvo","name":"property_PM","text":"Manager","hint":"Manager"}}},{"insert":"Managed, participants"},{"insert":" ","attributes":{"holder":{"id":"yMx6IXU_PN","name":"weekly_staff","text":"Participants","hint":"Filter: Data Range is within this week","data":{"type":"weekly_staff","blockID":1539,"hint":"Filter: Data Range is within this week","text":"Participants"}}}}]},"collapsed":false},"children":[]},{"type":"block","id":"u_7TkQplvX","flavour":"affine:embed-zui-custom","version":1,"props":{"index":"a0","xywh":"[0,0,0,0]","lockedBySelf":false,"rotate":0,"content":{"exportUrl":"exportZentaoChart___TML_ZENTAOCHART__{project_progress_summary}","fetcher":[{"module":"reporttemplate","method":"ajaxZentaoChart","params":"type=project_progress_summary&blockID=__TML_ZENTAOCHART__{project_progress_summary}"}],"clearBeforeLoad":false,"isTemplate":true,"title":"Project Progress"}},"children":[]},{"type":"block","id":"JF8LjhZ00l","flavour":"affine:embed-zui-custom","version":1,"props":{"index":"a0","xywh":"[0,0,0,0]","lockedBySelf":false,"rotate":0,"content":{"exportUrl":"exportZentaoChart___TML_ZENTAOCHART__{task_basicStatistic_finished}","fetcher":[{"module":"reporttemplate","method":"ajaxZentaoChart","params":"type=task_basicStatistic_finished&blockID=__TML_ZENTAOCHART__{task_basicStatistic_finished}"}],"clearBeforeLoad":false,"isTemplate":true,"title":"Completed Tasks Overview"}},"children":[]},{"type":"block","id":"vLxMdWbsaL","flavour":"affine:embed-zui-custom","version":1,"props":{"index":"a0","xywh":"[0,0,0,0]","lockedBySelf":false,"rotate":0,"content":{"exportUrl":"exportZentaoChart___TML_ZENTAOCHART__{task_basicStatistic_unfinished}","fetcher":[{"module":"reporttemplate","method":"ajaxZentaoChart","params":"type=task_basicStatistic_unfinished&blockID=__TML_ZENTAOCHART__{task_basicStatistic_unfinished}"}],"clearBeforeLoad":false,"isTemplate":true,"title":"Uncompleted Tasks Overview"}},"children":[]},{"type":"block","id":"2kIWtGbWIc","flavour":"affine:embed-zui-custom","version":1,"props":{"index":"a0","xywh":"[0,0,0,0]","lockedBySelf":false,"rotate":0,"content":{"exportUrl":"exportZentaoChart___TML_ZENTAOCHART__{task_basicStatistic_workplan}","fetcher":[{"module":"reporttemplate","method":"ajaxZentaoChart","params":"type=task_basicStatistic_workplan&blockID=__TML_ZENTAOCHART__{task_basicStatistic_workplan}"}],"clearBeforeLoad":false,"isTemplate":true,"title":"Work Plan"}},"children":[]},{"type":"block","id":"YQQsS51bpa","flavour":"affine:embed-zui-custom","version":1,"props":{"index":"a0","xywh":"[0,0,0,0]","lockedBySelf":false,"rotate":0,"content":{"exportUrl":"exportZentaoChart___TML_ZENTAOCHART__{project_basicStatistic_workload}","fetcher":[{"module":"reporttemplate","method":"ajaxZentaoChart","params":"type=project_basicStatistic_workload&blockID=__TML_ZENTAOCHART__{project_basicStatistic_workload}"}],"clearBeforeLoad":false,"isTemplate":true,"title":"Planned Value Summary"}},"children":[]},{"type":"block","id":"woAbzWK8vw","flavour":"affine:paragraph","version":1,"props":{"align":"left","type":"text","text":{"$blocksuite:internal:text$":true,"delta":[]},"collapsed":false},"children":[]}]}]}}';

155
module/zahost/lang/ru.php Normal file
View file

@ -0,0 +1,155 @@
<?php
$lang->zahost->id = 'ID';
$lang->zahost->common = 'Host';
$lang->zahost->browse = 'Host List';
$lang->zahost->create = 'Add Host';
$lang->zahost->view = 'Host Details';
$lang->zahost->initTitle = 'Initialize Host';
$lang->zahost->edit = 'Edit';
$lang->zahost->editAction = 'Edit Host';
$lang->zahost->delete = 'Delete';
$lang->zahost->cancel = "Cancel Download";
$lang->zahost->deleteAction = 'Delete Host';
$lang->zahost->byQuery = 'Search';
$lang->zahost->all = 'All Hosts';
$lang->zahost->browseNode = 'Execution Nodes';
$lang->zahost->deleted = "Deleted";
$lang->zahost->copy = 'Copy';
$lang->zahost->copied = 'Copied';
$lang->zahost->baseInfo = 'Basic information';
$lang->zahost->hostType = 'Host Type';
$lang->zahost->name = 'Name';
$lang->zahost->IP = 'IP/Domain';
$lang->zahost->extranet = 'External IP/Domain';
$lang->zahost->memory = 'Memory';
$lang->zahost->cpuCores = 'CPU';
$lang->zahost->diskSize = 'Disk Capacity';
$lang->zahost->desc = 'Description';
$lang->zahost->type = 'Type';
$lang->zahost->status = 'Status';
$lang->zahost->createdBy = 'Creator';
$lang->zahost->createdDate = 'Created At';
$lang->zahost->editedBy = 'Last Modified by';
$lang->zahost->editedDate = 'Last Modified At';
$lang->zahost->registerDate = 'Registration Date';
$lang->zahost->memorySize = $lang->zahost->memory;
$lang->zahost->cpuCoreNum = $lang->zahost->cpuCores;
$lang->zahost->os = 'Operating System';
$lang->zahost->imageName = 'Image File';
$lang->zahost->browseImage = 'Image List';
$lang->zahost->downloadImage = 'Download Image';
$lang->zahost->createZanode = 'Create Execution Node';
$lang->zahost->initNotice = 'Host saved successfully. Please initialize it or return to the host list.';
$lang->zahost->createZanodeNotice = 'Initialization successful. You can now create an execution node.';
$lang->zahost->downloadImageNotice = 'Initialization successful. Please download the image to create an execution node.';
$lang->zahost->undeletedNotice = "Cannot delete this host because it has associated execution nodes.";
$lang->zahost->uninitNotice = 'Please initialize the host first.';
$lang->zahost->netError = 'Unable to connect to the host. Please check your network and try again.';
$lang->zahost->init = new stdclass;
$lang->zahost->init->statusTitle = "Status";
$lang->zahost->init->checkStatus = "Check Service Status";
$lang->zahost->init->not_install = "Not installed";
$lang->zahost->init->not_available = "Installed, but Not Started";
$lang->zahost->init->ready = "Ready";
$lang->zahost->init->next = "Next";
$lang->zahost->init->initFailNotice = "Service is not ready. Please execute the installation command on the host, or <a href='...' target='_blank'>View Help</a>.";
$lang->zahost->init->initSuccessNotice = "Service is ready. You can %s after %s.";
$lang->zahost->init->serviceStatus = array();
$lang->zahost->init->serviceStatus['kvm'] = 'Not Installed';
$lang->zahost->init->serviceStatus['nginx'] = 'Not Installed';
$lang->zahost->init->serviceStatus['novnc'] = 'Not Installed';
$lang->zahost->init->serviceStatus['websockify'] = 'Not Installed';
$lang->zahost->init->title = "Initialize Host";
$lang->zahost->init->descTitle = "Please follow these steps to initialize the host:";
$lang->zahost->init->initDesc = "Execute the command on the host: %s %s. Then click the Check Service Status button.";
$lang->zahost->init->statusTitle = "Service Status";
$lang->zahost->image = new stdclass;
$lang->zahost->image->browseImage = 'Image List';
$lang->zahost->image->createImage = 'Create Image';
$lang->zahost->image->choseImage = 'Select Image';
$lang->zahost->image->downloadImage = $lang->zahost->downloadImage;
$lang->zahost->image->startDowload = 'Start Download';
$lang->zahost->image->common = 'Image';
$lang->zahost->image->name = 'Name';
$lang->zahost->image->desc = 'Description';
$lang->zahost->image->path = 'File Path';
$lang->zahost->image->memory = $lang->zahost->memory;
$lang->zahost->image->disk = $lang->zahost->diskSize;
$lang->zahost->image->os = $lang->zahost->os;
$lang->zahost->image->imageName = $lang->zahost->imageName;
$lang->zahost->image->progress = 'Download Progress';
$lang->zahost->image->statusList['notDownloaded'] = 'Available for Download';
$lang->zahost->image->statusList['created'] = 'Downloading';
$lang->zahost->image->statusList['canceled'] = 'Available for Download';
$lang->zahost->image->statusList['inprogress'] = 'Downloading';
$lang->zahost->image->statusList['pending'] = 'Waiting for download';
$lang->zahost->image->statusList['completed'] = 'Ready';
$lang->zahost->image->statusList['failed'] = 'Failed';
$lang->zahost->image->imageEmpty = 'No images found.';
$lang->zahost->image->downloadImageFail = 'Failed to create the image download task.';
$lang->zahost->image->downloadImageSuccess = 'Image download task created successfully.';
$lang->zahost->image->cancelDownloadFail = 'Failed to cancel the image download task.';
$lang->zahost->image->cancelDownloadSuccess = 'Image download task canceled successfully.';
$lang->zahost->empty = 'No hosts found.';
$lang->zahost->statusList['wait'] = 'Pending Initialization';
$lang->zahost->statusList['ready'] = 'Ready';
$lang->zahost->statusList['online'] = 'Online';
$lang->zahost->statusList['offline'] = 'Offline';
$lang->zahost->statusList['busy'] = 'Busy';
$lang->zahost->vsoft = 'Virtualization Software';
$lang->zahost->softwareList['kvm'] = 'KVM';
$lang->zahost->unitList['GB'] = 'GB';
$lang->zahost->unitList['TB'] = 'TB';
$lang->zahost->cpuUnit = 'Cores';
$lang->zahost->zaHostType = 'Host Type';
$lang->zahost->zaHostTypeList['physical'] = 'Physical Host';
$lang->zahost->confirmDelete = 'Are you sure you want to delete this host?';
$lang->zahost->cancelDelete = 'Are you sure you want to cancel this download task?';
$lang->zahost->notice = new stdclass();
$lang->zahost->notice->ip = 'Invalid format for "%s".';
$lang->zahost->notice->registerCommand = 'Host Registration Command: ./zagent-host -t host -s http://%s:%s -i %s -p 8086 -secret %s';
$lang->zahost->notice->loading = 'loading...';
$lang->zahost->notice->noImage = 'No image files available.';
$lang->zahost->tips = 'Hosts include physical hosts, Kubernetes (K8s) clusters, cloud servers, and cloud container instances. They are primarily used to create virtual machines or container instances. The recommended operating system for the host is Ubuntu or a CentOS LTS release.';
$lang->zahost->automation = new stdclass();
$lang->zahost->automation->title = 'Test Automation Solution';
$lang->zahost->automation->abstract = 'Introduction';
$lang->zahost->automation->abstractSpec = 'The ZenTao test automation solution provides centralized management of test cases, test scripts, script execution, test results, and test environments. It reduces test management costs and improves execution efficiency. This solution helps you easily establish an automated testing system tailored to your current project management and development workflows, minimizing manual testing effort.';
$lang->zahost->automation->framework = 'Architecture';
$lang->zahost->automation->frameworkSpec = 'Solution architecture based on KVM virtualization:';
$lang->zahost->automation->feature1 = '1. Core Concepts';
$lang->zahost->automation->feature1Spec = "Hosts include physical hosts, Kubernetes (K8s) clusters, cloud servers, and cloud container instances, which are mainly used to create virtual machines or container instances. The recommended operating system for the host is Ubuntu or a CentOS LTS release.<br/> An execution node is a virtual machine or container instance created by the host, serving as the test environment where tasks are executed.
";
$lang->zahost->automation->feature2 = '2. Application Overview';
$lang->zahost->automation->feature2ZenAgent = 'ZAgent is ZenTao\'s open-source automated testing and scheduling platform. By leveraging virtualization technology, it provides users with a distributed and centrally managed test environment.';
$lang->zahost->automation->feature2ZTF = 'ZTF is ZenTao\'s open-source automated testing framework, helping users uniformly manage test scripts. ZTF is deeply integrated with ZenTao; each script can be linked to a test case in the system, allowing step and case information to sync seamlessly.';
$lang->zahost->automation->feature2KVM = 'KVM (Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).';
$lang->zahost->automation->feature2Nginx = 'Nginx is a high-performance HTTP and reverse proxy web server that also provides IMAP/POP3/SMTP services.';
$lang->zahost->automation->feature2noVNC = 'noVNC is an HTML VNC client JavaScript library and application. It works smoothly on any major web browser, including mobile browsers (iOS and Android).';
$lang->zahost->automation->feature2Websockify = 'Websockify acts as a bridge, converting WebSockets traffic to normal socket traffic. It accepts the WebSockets handshake, parses it, and then forwards traffic in both directions between the client and the target server.';
$lang->zahost->automation->support = 'Support';
$lang->zahost->automation->supportSpec = 'You can visit the ZenTao official website for the user manual:';
$lang->zahost->automation->groupTitle = "Scan the QR code to get help";

76
module/zai/lang/ru.php Normal file
View file

@ -0,0 +1,76 @@
<?php
$lang->zai->setting = 'ZAI Setting';
$lang->zai->appID = 'App ID';
$lang->zai->host = 'Host';
$lang->zai->port = 'Port';
$lang->zai->token = 'App Secret';
$lang->zai->adminToken = 'Admin Secret';
$lang->zai->addSetting = 'Add ZAI Setting';
$lang->zai->configurationUnavailable = 'ZAI configuration unavailable.';
$lang->zai->illegalZentaoUser = 'Illegal Zentao user!';
$lang->zai->onlyPostRequest = 'This operation only supports POST requests.';
$lang->zai->vectorizedAlreadyEnabled = 'Data vectorization is already enabled.';
$lang->zai->vectorizedEnabled = 'Data vectorization enabled.';
$lang->zai->authenticationFailed = 'Authentication failed!';
$lang->zai->syncRequestFailed = 'Sync request failed, please try again later';
$lang->zai->syncingHint = 'Closing this page during sync will pause the sync process.';
$lang->zai->syncedWithFailedHint = 'Some data sync failed, please try again later';
$lang->zai->cannotFindMemoryInZai = 'Cannot find knowledge base with specified key in ZAI, please reset sync target.';
$lang->zai->confirmResetSync = 'Do you want to reset sync status? This will create a new knowledge base in ZAI.';
$lang->zai->settingTips = 'Please install <a class="btn btn-link text-primary px-1" style="text-decoration: none;" href="%s" target="_blank">ZAI service</a> to get the key.';
$lang->zai->zentaoVectorization = 'Zentao Data Vectorization';
$lang->zai->vectorized = 'Data Vectorization';
$lang->zai->vectorizedIntro = 'Data vectorization will convert data generated in the Zentao system into vectors for reference in AI conversations, allowing AI to answer questions more accurately.';
$lang->zai->vectorizedUnavailableHint = 'Please configure ZAI application first and ensure ZAI service is available.';
$lang->zai->callZaiAPIFailed = 'Failed to call ZAI API (%s): %s';
$lang->zai->vectorizedStatus = 'Status';
$lang->zai->syncProgress = 'Sync Progress';
$lang->zai->syncingType = 'Sync Type';
$lang->zai->finished = 'Finished';
$lang->zai->failed = 'Failed';
$lang->zai->totalSync = 'Total';
$lang->zai->lastSyncTime = 'Last Sync Time';
$lang->zai->syncActions = new stdClass();
$lang->zai->syncActions->enable = 'Enable Data Vectorization';
$lang->zai->syncActions->startSync = 'Start Sync';
$lang->zai->syncActions->resync = 'Resync';
$lang->zai->syncActions->pauseSync = 'Pause Sync';
$lang->zai->syncActions->resumeSync = 'Resume Sync';
$lang->zai->syncActions->resetSync = 'Reset Sync';
$lang->zai->syncingTypeList = array();
$lang->zai->syncingTypeList['story'] = 'Story';
$lang->zai->syncingTypeList['demand'] = 'Demand';
$lang->zai->syncingTypeList['bug'] = 'Bug';
$lang->zai->syncingTypeList['doc'] = 'Document';
$lang->zai->syncingTypeList['design'] = 'Design';
$lang->zai->syncingTypeList['feedback'] = 'Feedback';
$lang->zai->vectorizedStatusList = array();
$lang->zai->vectorizedStatusList['unavailable'] = 'Unavailable'; // <== Persistent state
$lang->zai->vectorizedStatusList['disabled'] = 'Disabled'; // <== Persistent state
$lang->zai->vectorizedStatusList['wait'] = 'Waiting Sync'; // <== Persistent state
$lang->zai->vectorizedStatusList['syncing'] = 'Syncing'; // <== Persistent state
$lang->zai->vectorizedStatusList['paused'] = 'Paused';
$lang->zai->vectorizedStatusList['synced'] = 'Synced'; // <== Persistent state
$lang->zai->vectorizedStatusList['failed'] = 'Sync Failed';
$vectorizedPanelLang = new \stdClass();
$vectorizedPanelLang->vectorized = $lang->zai->vectorized;
$vectorizedPanelLang->vectorizedIntro = $lang->zai->vectorizedIntro;
$vectorizedPanelLang->vectorizedStatus = $lang->zai->vectorizedStatus;
$vectorizedPanelLang->syncProgress = $lang->zai->syncProgress;
$vectorizedPanelLang->syncingType = $lang->zai->syncingType;
$vectorizedPanelLang->finished = $lang->zai->finished;
$vectorizedPanelLang->failed = $lang->zai->failed;
$vectorizedPanelLang->syncActions = $lang->zai->syncActions;
$vectorizedPanelLang->syncingTypeList = $lang->zai->syncingTypeList;
$vectorizedPanelLang->vectorizedStatusList = $lang->zai->vectorizedStatusList;
$vectorizedPanelLang->syncRequestFailed = $lang->zai->syncRequestFailed;
$vectorizedPanelLang->confirmResetSync = $lang->zai->confirmResetSync;
$lang->zai->vectorizedPanelLang = $vectorizedPanelLang;

Some files were not shown because too many files have changed in this diff Show more