diff --git a/module/project/lang/de.php b/module/project/lang/de.php
index bd13cedc2e..b7bef1cb44 100644
--- a/module/project/lang/de.php
+++ b/module/project/lang/de.php
@@ -134,7 +134,7 @@ $lang->project->realBeganAB = 'Actual Begin';
$lang->project->realEndAB = 'Actual End';
$lang->project->realBegan = 'Actual Began';
$lang->project->realEnd = 'Actual End';
-$lang->project->division = 'Create Stages by Product';
+$lang->project->division = 'Stage Type';
$lang->project->bygrid = 'Kanban';
$lang->project->bylist = 'List';
$lang->project->bycard = 'Card';
@@ -190,8 +190,8 @@ $lang->project->typeList = array();
$lang->project->typeList['my'] = 'Projects Ownedbyme';
$lang->project->typeList['other'] = 'Other Projects';
-$lang->project->divisionList['1'] = 'Enable';
-$lang->project->divisionList['0'] = 'Disable';
+$lang->project->divisionList['1'] = 'Create by project';
+$lang->project->divisionList['0'] = 'Create by product';
$lang->project->waitProjects = 'Waiting Projects';
$lang->project->doingProjects = 'Ongoing Projects';
@@ -208,7 +208,7 @@ $lang->project->changeProgram = '%s > Change project';
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
-$lang->project->noticeDivsion = "The current project is associated with multiple products, you can click Confirm to open the mode by {$lang->productCommon} creation stage, click Cancel to keep the status quo.";
+$lang->project->noticeDivsion = "The current project is a single stage, click [Create by project] to change to multiple stages, each stage is only associated with one product.";
$lang->project->linkStoryByPlanTips = "This action will associate all {$lang->SRCommon} under the selected plan to this project";
$lang->project->createExecution = "There is no {$lang->executionCommon} under this project, please create {$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.)";
@@ -358,7 +358,7 @@ $lang->project->begigLetterExecution = 'The start date of project should be ≤
$lang->project->endGreateExecution = 'The finish date of the project should be ≥ the maximum finish date of the execution: %s.';
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->project->confirmUnlinkMember = "Do you want to remove this user from project?";
-$lang->project->divisionTips = "The current project is a single set stage, click [Enable] to change to multiple sets of stages, each set of stages is only associated with one product.";
+$lang->project->divisionTips = "Created by project as a single set of stages, and the stage is associated with all products; created by product as multiple sets of stages, each set of stages is associated with a product";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, managed by $actor. $extra' . "\n";
diff --git a/module/project/lang/en.php b/module/project/lang/en.php
index 7024b40b3e..fc890c98cb 100644
--- a/module/project/lang/en.php
+++ b/module/project/lang/en.php
@@ -134,7 +134,7 @@ $lang->project->realBeganAB = 'Actual Begin';
$lang->project->realEndAB = 'Actual End';
$lang->project->realBegan = 'Actual Begin';
$lang->project->realEnd = 'Actual End';
-$lang->project->division = 'Create Stages by Product';
+$lang->project->division = 'Stage Type';
$lang->project->bygrid = 'Kanban';
$lang->project->bylist = 'List';
$lang->project->bycard = 'Card';
@@ -190,8 +190,8 @@ $lang->project->typeList = array();
$lang->project->typeList['my'] = 'Projects Ownedbyme';
$lang->project->typeList['other'] = 'Other Projects';
-$lang->project->divisionList['1'] = 'Enable';
-$lang->project->divisionList['0'] = 'Disable';
+$lang->project->divisionList['1'] = 'Create by project';
+$lang->project->divisionList['0'] = 'Create by product';
$lang->project->waitProjects = 'Waiting Projects';
$lang->project->doingProjects = 'Ongoing Projects';
@@ -208,7 +208,7 @@ $lang->project->changeProgram = '%s > Change project';
$lang->project->changeProgramTip = 'Once the program is edited, the product that is linked to this program will be changed. Do you want to edit it?';
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
-$lang->project->noticeDivsion = "The current project is associated with multiple products, you can click Confirm to open the mode by {$lang->productCommon} creation stage, click Cancel to keep the status quo.";
+$lang->project->noticeDivsion = "The current project is a single stage, click [Create by project] to change to multiple stages, each stage is only associated with one product.";
$lang->project->linkStoryByPlanTips = "This action will associate all {$lang->SRCommon} under the selected plan to this project";
$lang->project->createExecution = "There is no {$lang->executionCommon} under this project, please create {$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.)";
@@ -365,7 +365,7 @@ $lang->project->begigLetterExecution = 'The start date of project should be ≤
$lang->project->endGreateExecution = 'The finish date of the project should be ≥ the maximum finish date of the execution: %s.';
$lang->project->childLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
$lang->project->confirmUnlinkMember = "Do you want to remove this user from project?";
-$lang->project->divisionTips = "The current project is a single set stage, click [Enable] to change to multiple sets of stages, each set of stages is only associated with one product.";
+$lang->project->divisionTips = "Created by project as a single set of stages, and the stage is associated with all products; created by product as multiple sets of stages, each set of stages is associated with a product";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, managed by $actor. $extra' . "\n";
diff --git a/module/project/lang/fr.php b/module/project/lang/fr.php
index 4bd82436cd..2039c47420 100644
--- a/module/project/lang/fr.php
+++ b/module/project/lang/fr.php
@@ -134,7 +134,7 @@ $lang->project->realBeganAB = 'Actual Begin';
$lang->project->realEndAB = 'Actual End';
$lang->project->realBegan = 'Actual Began';
$lang->project->realEnd = 'Actual End';
-$lang->project->division = 'Create Stages by Product';
+$lang->project->division = 'Stage Type';
$lang->project->bygrid = 'Kanban';
$lang->project->bylist = 'List';
$lang->project->bycard = 'Card';
@@ -190,8 +190,8 @@ $lang->project->typeList = array();
$lang->project->typeList['my'] = 'Projects Ownedbyme';
$lang->project->typeList['other'] = 'Other Projects';
-$lang->project->divisionList['1'] = 'Enable';
-$lang->project->divisionList['0'] = 'Disable';
+$lang->project->divisionList['1'] = 'Create by project';
+$lang->project->divisionList['0'] = 'Create by product';
$lang->project->waitProjects = 'Waiting Projects';
$lang->project->doingProjects = 'Ongoing Projects';
@@ -208,7 +208,7 @@ $lang->project->changeProgram = '%s > Change project';
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
-$lang->project->noticeDivsion = "The current project is associated with multiple products, you can click Confirm to open the mode by {$lang->productCommon} creation stage, click Cancel to keep the status quo.";
+$lang->project->noticeDivsion = "The current project is a single stage, click [Create by project] to change to multiple stages, each stage is only associated with one product.";
$lang->project->linkStoryByPlanTips = "This action will associate all {$lang->SRCommon} under the selected plan to this project";
$lang->project->createExecution = "There is no {$lang->executionCommon} under this project, please create {$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.)";
@@ -365,7 +365,7 @@ $lang->project->begigLetterExecution = 'La date de début du projet "%s" doit ê
$lang->project->endGreateExecution = 'La date de fin du projet "%s" doit être ≥ à la date de fin maximale d\'exécution: %s.';
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->project->confirmUnlinkMember = "Do you want to remove this user from project?";
-$lang->project->divisionTips = "The current project is a single set stage, click [Enable] to change to multiple sets of stages, each set of stages is only associated with one product.";
+$lang->project->divisionTips = "Created by project as a single set of stages, and the stage is associated with all products; created by product as multiple sets of stages, each set of stages is associated with a product";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, managed by $actor. $extra' . "\n";
diff --git a/module/project/lang/vi.php b/module/project/lang/vi.php
index 1996af20a1..fc890c98cb 100644
--- a/module/project/lang/vi.php
+++ b/module/project/lang/vi.php
@@ -1,85 +1,140 @@
project->createGuide = 'Select Template';
-$lang->project->index = 'Dashboard';
-$lang->project->home = 'Home';
-$lang->project->create = 'Create Project';
-$lang->project->edit = 'Edit';
-$lang->project->batchEdit = 'Batch Edit Projects';
-$lang->project->view = 'Project View';
-$lang->project->batchEdit = 'Batch Edit';
-$lang->project->browse = 'Projects';
-$lang->project->all = 'All';
-$lang->project->start = 'Start';
-$lang->project->finish = 'Finish';
-$lang->project->suspend = 'Suspend';
-$lang->project->delete = 'Delete';
-$lang->project->close = 'Close';
-$lang->project->activate = 'Activate';
-$lang->project->group = 'Privilege Group';
-$lang->project->createGroup = 'Create Group';
-$lang->project->editGroup = 'Edit Group';
-$lang->project->copyGroup = 'Copy Group';
-$lang->project->manageView = 'Manage View';
-$lang->project->managePriv = 'Manage Privilege';
-$lang->project->manageMembers = 'Manage Team';
-$lang->project->export = 'Export';
-$lang->project->addProduct = 'Add Product';
-$lang->project->manageGroupMember = 'Manage Group';
-$lang->project->moduleSetting = 'List Settings';
-$lang->project->moduleOpen = 'Program Name';
-$lang->project->dynamic = 'Dynamic';
-$lang->project->execution = 'Execution';
-$lang->project->qa = 'QA';
-$lang->project->bug = 'Bug List';
-$lang->project->testcase = 'Case List';
-$lang->project->testtask = 'Test Task';
-$lang->project->build = 'Build';
-$lang->project->updateOrder = 'Order';
-$lang->project->sort = 'Order';
-$lang->project->whitelist = 'Project Whitelist';
-$lang->project->addWhitelist = 'Project Add Whitelist';
-$lang->project->unbindWhitelist = 'Project Remove Whitelist';
-$lang->project->manageProducts = 'Manage Products';
-$lang->project->copyTitle = 'Please select an project to copy';
-$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
-$lang->project->errorNoProducts = 'At least one product is associated';
-$lang->project->copyNoProject = 'There are no items available to copy.';
-$lang->project->searchByName = 'Enter the project name to retrieve';
-$lang->project->linkedProducts = "Linked {$lang->productCommon}s";
-$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s";
-$lang->project->testreport = 'Testreport';
-$lang->project->selectProgram = 'Program filtering';
-$lang->project->teamMember = 'Team Member';
-$lang->project->manageRepo = 'Manage Repo';
-$lang->project->linkedRepo = 'Link Repo';
-$lang->project->unlinkedRepo = 'Unlink Repo';
+$lang->project->createGuide = 'Select Template';
+$lang->project->index = 'Dashboard';
+$lang->project->home = 'Home';
+$lang->project->create = 'Create Project';
+$lang->project->edit = 'Edit';
+$lang->project->batchEdit = 'Batch Edit Projects';
+$lang->project->view = 'Project View';
+$lang->project->batchEdit = 'Batch Edit';
+$lang->project->browse = 'Projects';
+$lang->project->all = 'All';
+$lang->project->start = 'Start';
+$lang->project->finish = 'Finish';
+$lang->project->suspend = 'Suspend';
+$lang->project->delete = 'Delete';
+$lang->project->close = 'Close';
+$lang->project->activate = 'Activate';
+$lang->project->group = 'Privilege Group';
+$lang->project->createGroup = 'Create Group';
+$lang->project->editGroup = 'Edit Group';
+$lang->project->copyGroup = 'Copy Group';
+$lang->project->manageView = 'Manage View';
+$lang->project->managePriv = 'Manage Privilege';
+$lang->project->manageMembers = 'Manage Team';
+$lang->project->export = 'Export';
+$lang->project->addProduct = 'Add Product';
+$lang->project->manageGroupMember = 'Manage Group';
+$lang->project->moduleSetting = 'List Settings';
+$lang->project->moduleOpen = 'Program Name';
+$lang->project->dynamic = 'Dynamic';
+$lang->project->execution = 'Execution';
+$lang->project->qa = 'QA';
+$lang->project->bug = 'Bug List';
+$lang->project->testcase = 'Case List';
+$lang->project->testtask = 'Test Task';
+$lang->project->build = 'Build';
+$lang->project->updateOrder = 'Order';
+$lang->project->sort = 'Order';
+$lang->project->whitelist = 'Project Whitelist';
+$lang->project->addWhitelist = 'Project Add Whitelist';
+$lang->project->unbindWhitelist = 'Project Remove Whitelist';
+$lang->project->manageProducts = 'Manage Products';
+$lang->project->manageOtherProducts = 'Manage Other Products';
+$lang->project->copyTitle = 'Please select an project to copy';
+$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
+$lang->project->errorSameBranches = 'Project cannot be associated with multiple identical branches.';
+$lang->project->errorSamePlans = 'Project cannot be associated with multiple identical plans.';
+$lang->project->errorNoProducts = 'At least one product is associated';
+$lang->project->copyNoProject = 'There are no items available to copy.';
+$lang->project->searchByName = 'Enter the project name to retrieve';
+$lang->project->deleted = 'Deleted';
+$lang->project->linkedProducts = "Linked {$lang->productCommon}s";
+$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s";
+$lang->project->testreport = 'Test Report';
+$lang->project->selectProgram = 'Program filtering';
+$lang->project->teamMember = 'Team Member';
+$lang->project->unlinkMember = 'Remove Member';
+$lang->project->copyTeamTitle = 'Select a project team to copy';
+$lang->project->daysGreaterProject = 'Days cannot be greater than days of project『%s』';
+$lang->project->errorHours = 'Hours/Day cannot be greater than『24』';
+$lang->project->workdaysExceed = 'No more than『%s』working days';
+$lang->project->teamMembersCount = ', there are %s team members.';
+$lang->project->budgetNumber = '『Budget』must be numbers.';
+$lang->project->budgetGe0 = '『Budget』must be greater than or equal to 0.';
+$lang->project->allProjects = 'All Projects';
+$lang->project->ignore = 'Ignore';
+$lang->project->manageRepo = 'Manage Repo';
+$lang->project->linkedRepo = 'Link Repo';
+$lang->project->unlinkedRepo = 'Unlink Repo';
+$lang->project->disableExecution = 'Project of disable iteration';
+$lang->project->selectProduct = 'Select Product';
/* Fields. */
$lang->project->common = 'Project';
+$lang->project->id = 'ID';
+$lang->project->project = 'Project';
$lang->project->stage = 'Stage';
+$lang->project->model = 'Model';
$lang->project->PM = 'Manager';
+$lang->project->PO = 'Project Owner';
+$lang->project->QD = 'Test Leader';
+$lang->project->RD = 'Releaser';
$lang->project->name = 'Name';
$lang->project->category = 'Category';
$lang->project->desc = 'Description';
$lang->project->code = 'Code';
$lang->project->hasProduct = 'Has Product';
$lang->project->copy = 'Copy';
-$lang->project->begin = 'Begin';
-$lang->project->end = 'End';
+$lang->project->begin = 'Planned Begin';
+$lang->project->end = 'Planned End';
$lang->project->status = 'Status';
-$lang->project->PM = 'Manager';
+$lang->project->subStatus = 'Sub Status';
+$lang->project->type = 'Type';
+$lang->project->lifetime = 'Project Cycle';
+$lang->project->attribute = 'Stage Type';
+$lang->project->percent = 'Workload %';
+$lang->project->milestone = 'Milestone';
+$lang->project->output = 'Output';
+$lang->project->path = 'Path';
+$lang->project->grade = 'Grade';
+$lang->project->version = 'Version';
+$lang->project->parentVersion = 'Parent Version';
+$lang->project->planDuration = 'Plan Duration';
+$lang->project->realDuration = 'Real Duration';
+$lang->project->openedVersion = 'Opened Version';
+$lang->project->pri = 'Priority';
+$lang->project->openedBy = 'OpenedBy';
+$lang->project->openedDate = 'OpenedDate';
+$lang->project->lastEditedBy = 'Last EditedBy';
+$lang->project->lastEditedDate = 'Last EditedDate';
+$lang->project->closedBy = 'ClosedBy';
+$lang->project->closedDate = 'ClosedDate';
+$lang->project->canceledBy = 'CanceledBy';
+$lang->project->canceledDate = 'CanceledDate';
+$lang->project->team = 'Team';
+$lang->project->teamAction = 'Team List';
+$lang->project->order = 'Rank';
$lang->project->budget = 'Budget';
+$lang->project->budgetUnit = 'Budget Unit';
+$lang->project->suspendedDate = 'SuspendedDate';
+$lang->project->vision = 'Vision';
+$lang->project->displayCards = 'Max cards per column';
+$lang->project->fluidBoard = 'Column Width';
$lang->project->template = 'Template';
$lang->project->estimate = 'Estimates';
$lang->project->consume = 'Cost';
$lang->project->surplus = 'Left';
$lang->project->progress = 'Progress';
-$lang->project->dateRange = 'Duration';
+$lang->project->weekProgress = 'This Week Progress';
+$lang->project->dateRange = 'Plan Duration';
$lang->project->to = ' to ';
+$lang->project->realBeganAB = 'Actual Begin';
+$lang->project->realEndAB = 'Actual End';
+$lang->project->realBegan = 'Actual Begin';
$lang->project->realEnd = 'Actual End';
-$lang->project->realBegan = 'Actual Began';
-$lang->project->division = 'Create Stages by Product';
+$lang->project->division = 'Stage Type';
$lang->project->bygrid = 'Kanban';
$lang->project->bylist = 'List';
$lang->project->bycard = 'Card';
@@ -90,14 +145,12 @@ $lang->project->acl = 'ACL';
$lang->project->setPlanduration = 'Set Duration';
$lang->project->auth = 'Privileges';
$lang->project->durationEstimation = 'Estimated Workload';
-$lang->project->teamCount = 'Man';
-$lang->project->teamSumCount = '%s people in total';
$lang->project->leftStories = 'Left Stories';
$lang->project->leftTasks = 'Left Tasks';
$lang->project->leftBugs = 'Left Bugs';
$lang->project->leftHours = 'Left Hours';
$lang->project->children = 'Child Project';
-$lang->project->parent = 'Parent Project';
+$lang->project->parent = 'Parent Program';
$lang->project->allStories = 'All Stories';
$lang->project->doneStories = 'Finished Stories';
$lang->project->doneProjects = 'Finished';
@@ -108,48 +161,89 @@ $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 = 'Team';
+$lang->project->teamSumCount = '%s people in total';
$lang->project->longTime = 'Long-Term Program';
$lang->project->future = 'TBD';
$lang->project->moreProject = 'More Project';
-$lang->project->days = 'Available Days';
+$lang->project->days = 'Days';
+$lang->project->mailto = 'Mailto';
+$lang->project->etc = " , etc";
+$lang->project->product = 'Product';
+$lang->project->branch = 'Branch';
+$lang->project->plan = 'Plan';
+$lang->project->createKanban = 'Create Kanban';
+$lang->project->kanban = 'Kanban';
/* Project Kanban. */
$lang->project->projectTypeList = array();
$lang->project->projectTypeList[1] = 'Has Product';
$lang->project->projectTypeList[0] = 'No Product';
+/* Project Kanban. */
+$lang->project->typeList = array();
+$lang->project->typeList['my'] = 'Projects Ownedbyme';
+$lang->project->typeList['other'] = 'Other Projects';
+
+$lang->project->divisionList['1'] = 'Create by project';
+$lang->project->divisionList['0'] = 'Create by product';
+
+$lang->project->waitProjects = 'Waiting Projects';
+$lang->project->doingProjects = 'Ongoing Projects';
+$lang->project->doingExecutions = 'Ongoing Executions';
+$lang->project->closedProjects = 'Closed Projects(The recent two projects)';
+$lang->project->closedProject = 'Closed Projects';
+$lang->project->noProgram = 'Independent Projects';
+
+$lang->project->laneColorList = array('#32C5FF', '#006AF1', '#9D28B2', '#FF8F26', '#FFC20E', '#00A78E', '#7FBB00', '#424BAC', '#C0E9FF', '#EC2761');
+
$lang->project->productNotEmpty = 'Please link products or create products.';
$lang->project->existProductName = 'Product name already exists.';
$lang->project->changeProgram = '%s > Change project';
-$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
+$lang->project->changeProgramTip = 'Once the program is edited, the product that is linked to this program will be changed. Do you want to edit it?';
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
-$lang->project->noticeDivsion = "The current project is associated with multiple products, you can click Confirm to open the mode by {$lang->productCommon} creation stage, click Cancel to keep the status quo.";
+$lang->project->noticeDivsion = "The current project is a single stage, click [Create by project] to change to multiple stages, each stage is only associated with one product.";
$lang->project->linkStoryByPlanTips = "This action will associate all {$lang->SRCommon} under the selected plan to this project";
$lang->project->createExecution = "There is no {$lang->executionCommon} under this project, please create {$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 project. Do you want to remove them from the execution team too?";
+$lang->project->productTip = 'After clicking New Product, the project will not be linked to the selected product.';
$lang->project->noDevStage = 'There is no R&D stage under this project, or you do not have access permissions. The creation of builds is not supported at the moment.';
+$lang->project->budgetOverrun = "The project's budget exceeds the remaining budget of the parent program:";
+$lang->project->disabledInputTip = 'Please cancel %s first';
$lang->project->linkRepoFailed = 'Failed to link projects and code repositories.';
+$lang->project->unLinkProductTip = 'Are you sure you want to unlink %s? (Does not affect linked requirements)';
+$lang->project->summary = 'Total projects: %s.';
+$lang->project->allSummary = 'Total projects: %s, Wait: %s, Doing: %s, Suspended: %s, Closed: %s.';
+$lang->project->checkedSummary = 'Seleted: %total%.';
+$lang->project->checkedAllSummary = 'Seleted: %total%, Wait: %wait%, Doing: %doing%, Suspended: %suspended%, Closed: %closed%.';
-$lang->project->tenThousand = '';
+$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'] = 'New Taiwan';
-$lang->project->unitList['EUR'] = 'Euro';
-$lang->project->unitList['DEM'] = 'Deutsche Mark';
-$lang->project->unitList['CHF'] = 'Swiss Franc';
-$lang->project->unitList['FRF'] = 'French Franc';
-$lang->project->unitList['GBP'] = 'Pound';
-$lang->project->unitList['NLG'] = 'Florin';
-$lang->project->unitList['CAD'] = 'Canadian';
-$lang->project->unitList['RUR'] = 'Russian Ruble';
-$lang->project->unitList['INR'] = 'Indian';
-$lang->project->unitList['AUD'] = 'Australian';
-$lang->project->unitList['NZD'] = 'New Zealand';
-$lang->project->unitList['THB'] = 'Thai Baht';
-$lang->project->unitList['SGD'] = 'Singapore';
+$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'] = 'GPR';
+$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'] = '$';
@@ -169,34 +263,56 @@ $lang->project->currencySymbol['NZD'] = 'NZ$';
$lang->project->currencySymbol['THB'] = '฿';
$lang->project->currencySymbol['SGD'] = 'S$';
+$lang->project->modelList[''] = '';
$lang->project->modelList['scrum'] = "Scrum";
-$lang->project->modelList['waterfall'] = "CMMI";
+if(helper::hasFeature('waterfall')) $lang->project->modelList['waterfall'] = "CMMI";
+$lang->project->modelList['kanban'] = "Kanban";
$lang->project->featureBar['browse']['all'] = 'All';
-$lang->project->featureBar['browse']['doing'] = 'Doing';
+$lang->project->featureBar['browse']['undone'] = 'Unfinished';
$lang->project->featureBar['browse']['wait'] = 'Waiting';
+$lang->project->featureBar['browse']['doing'] = 'Doing';
$lang->project->featureBar['browse']['suspended'] = 'Suspended';
$lang->project->featureBar['browse']['closed'] = 'Closed';
$lang->project->featureBar['build']['all'] = 'Build List';
-$lang->project->aclList['private'] = 'Private (For team members and stakeholders only)';
+$lang->project->aclList['private'] = 'Private (For the project leader, team members and stakeholders only)';
$lang->project->aclList['open'] = "Open (accessible with project view permissions)";
+$lang->project->multipleList['1'] = 'Yes';
+$lang->project->multipleList['0'] = 'No';
+
$lang->project->acls['private'] = 'Private';
-$lang->project->acls['open'] = "Open";
+$lang->project->acls['open'] = 'Open';
$lang->project->subAclList['private'] = "Private (Only the project leader, team members and stakeholders can access)";
$lang->project->subAclList['open'] = "Open (accessible with project view permissions)";
$lang->project->subAclList['program'] = 'Open in the program (all upper-level program team leaders and stakeholders, the project leader, team members and stakeholders can access)';
+$lang->project->kanbanAclList['private'] = 'Private (For the project leader, team members only)';
+$lang->project->kanbanAclList['open'] = "Open (accessible with project view permissions)";
+
+$lang->project->kanbanSubAclList['private'] = "Private (Only the project leader, team members can access)";
+$lang->project->kanbanSubAclList['open'] = "Open (accessible with project view permissions)";
+$lang->project->kanbanSubAclList['program'] = 'Open in the program (all upper-level program team leaders and stakeholders, the project leader, team members can access)';
+
+global $config;
+if($config->systemMode == 'light')
+{
+ unset($lang->project->subAclList['program']);
+ unset($lang->project->kanbanSubAclList['program']);
+}
+
$lang->project->authList['extend'] = 'Inherit (system privilege and project privilege)';
$lang->project->authList['reset'] = 'Reset (project privilege only)';
+$lang->project->statusList[''] = '';
$lang->project->statusList['wait'] = 'Waiting';
$lang->project->statusList['doing'] = 'Doing';
$lang->project->statusList['suspended'] = 'Suspended';
$lang->project->statusList['closed'] = 'Closed';
+$lang->project->statusList['delay'] = 'Delayed';
$lang->project->endList[31] = 'One month';
$lang->project->endList[93] = 'Trimester';
@@ -204,47 +320,54 @@ $lang->project->endList[186] = 'Half year';
$lang->project->endList[365] = 'One year';
$lang->project->endList[999] = 'Longtime';
+$lang->project->scrumTitle = 'Agile Development Management';
+$lang->project->waterfallTitle = 'Waterfall Project Management';
+$lang->project->kanbanTitle = 'Kanban Project Management';
+
$lang->project->empty = 'No project.';
-$lang->project->accessDenied = 'Access denied!';
-$lang->project->chooseProgramType = 'Select the project management model';
$lang->project->nextStep = 'Next step';
$lang->project->hoursUnit = '%s hours';
$lang->project->membersUnit = '%s men';
$lang->project->lastIteration = "Recent {$lang->executionCommon}";
+$lang->project->lastKanban = 'Recent Kanban';
$lang->project->ongoingStage = 'Ongoing stage';
$lang->project->scrum = 'Scrum';
-$lang->project->waterfall = 'CMMI';
-$lang->project->waterfallTitle = 'CMMI';
+$lang->project->waterfall = '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->confirmDelete = "Do you want to delete [%s]?";
$lang->project->emptyPM = 'No manager';
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
$lang->project->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
$lang->project->readjustTime = 'Change the project begin&end date.';
-$lang->project->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
+$lang->project->notAllowRemoveProducts = "Stories of this product are linked to projects or {$lang->execution->common} of this project is linked to this product. Please unlink it and try again.";
+$lang->project->ge = "『%s』should be >= actual begin『%s』.";
-$lang->project->programTitle['0'] = 'Hide';
+$lang->project->programTitle['0'] = 'Hidden';
$lang->project->programTitle['base'] = 'Base-level project only';
$lang->project->programTitle['end'] = 'End-level project only';
-$lang->project->accessDenied = 'Access denied to this project';
-$lang->project->chooseProgramType = 'Select management type';
-$lang->project->scrumTitle = 'Agile Development Management';
-$lang->project->cannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
-$lang->project->hasChildren = 'This project has a child project, so it cannot be deleted.';
-$lang->project->confirmDelete = 'Do you want to delete this project?';
-$lang->project->cannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
-$lang->project->cannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
-$lang->project->parentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
-$lang->project->parentBudget = "The budget of the parent project: ";
-$lang->project->beginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
-$lang->project->endGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
-$lang->project->beginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the project set.";
-$lang->project->endLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the project set.";
-$lang->project->childLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
-$lang->project->divisionTips = "The current project is a single set stage, click [Enable] to change to multiple sets of stages, each set of stages is only associated with one product.";
+$lang->project->accessDenied = 'Access denied to this project';
+$lang->project->chooseProgramType = 'Select management type';
+$lang->project->cannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
+$lang->project->hasChildren = 'This project has a child project, so it cannot be deleted.';
+$lang->project->confirmDelete = 'Do you want to delete \"%s\"?';
+$lang->project->cannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
+$lang->project->cannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
+$lang->project->parentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
+$lang->project->parentBudget = "The budget of the parent program: ";
+$lang->project->beginLetterParent = "The start date of the project is < the start date of the parent program:";
+$lang->project->endGreaterParent = "The finish date of the project is > the finish date of the parent program:";
+$lang->project->dateExceedParent = "The start and finish date of the project was > the start and finish date of the parent program:";
+$lang->project->beginGreateChild = 'The start date of the project should be ≥ the start date of program: %s.';
+$lang->project->endLetterChild = 'The finish date of the project should be ≤ the finish date of program: %s.';
+$lang->project->begigLetterExecution = 'The start date of project should be ≤ the minimum start date of the execution: %s.';
+$lang->project->endGreateExecution = 'The finish date of the project should be ≥ the maximum finish date of the execution: %s.';
+$lang->project->childLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
+$lang->project->confirmUnlinkMember = "Do you want to remove this user from project?";
+$lang->project->divisionTips = "Created by project as a single set of stages, and the stage is associated with all products; created by product as multiple sets of stages, each set of stages is associated with a product";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, managed by $actor. $extra' . "\n";
+
+$lang->project->multiple = "Multi {$lang->executionCommon}";
diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php
index edad53d25b..15b35b67f5 100644
--- a/module/project/lang/zh-cn.php
+++ b/module/project/lang/zh-cn.php
@@ -134,7 +134,7 @@ $lang->project->realBeganAB = '实际开始';
$lang->project->realEndAB = '实际完成';
$lang->project->realBegan = '实际开始日期';
$lang->project->realEnd = '实际完成日期';
-$lang->project->division = '按产品创建阶段';
+$lang->project->division = '阶段类型';
$lang->project->bygrid = '看板';
$lang->project->bylist = '列表';
$lang->project->bycard = '卡片';
@@ -190,8 +190,8 @@ $lang->project->typeList = array();
$lang->project->typeList['my'] = '我负责的项目';
$lang->project->typeList['other'] = '其他项目';
-$lang->project->divisionList['1'] = '开启';
-$lang->project->divisionList['0'] = '关闭';
+$lang->project->divisionList['0'] = '按项目创建';
+$lang->project->divisionList['1'] = "按{$lang->productCommon}创建";
$lang->project->waitProjects = '未开始的项目';
$lang->project->doingProjects = '进行中的项目';
@@ -208,7 +208,7 @@ $lang->project->changeProgram = '%s > 修改项目集';
$lang->project->changeProgramTip = '修改项目集后,该项目关联产品的项目集也会被修改,请确认是否修改。';
$lang->project->linkedProjectsTip = '关联的项目如下';
$lang->project->multiLinkedProductsTip = '该项目关联的如下产品还关联了其他项目,请取消关联后再操作';
-$lang->project->noticeDivsion = '当前项目关联多个产品,可以点击确认开启按产品创建阶段的模式,点击关闭则保持现状。';
+$lang->project->noticeDivsion = "当前项目为单套阶段,点击[按项目创建]可以变为多套阶段,每套阶段只关联一个{$lang->productCommon}。";
$lang->project->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->SRCommon}全部关联到此项目中";
$lang->project->createExecution = "该项目下没有{$lang->executionCommon},请先创建{$lang->executionCommon}";
$lang->project->unlinkExecutionMember = "该用户参与了%s%s%s个{$lang->execution->common},是否同时将其移除?(该用户所产生的数据不会受影响。)";
@@ -365,7 +365,7 @@ $lang->project->begigLetterExecution = '项目的开始日期应小于等于执
$lang->project->endGreateExecution = '项目的完成日期应大于等于执行的最大完成日期:%s';
$lang->project->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
$lang->project->confirmUnlinkMember = "您确定从该项目中移除该用户吗?";
-$lang->project->divisionTips = "当前项目为单套阶段,点击[开启]可以变为多套阶段,每套阶段只关联一个{$lang->productCommon}。";
+$lang->project->divisionTips = "按项目创建为单套阶段,阶段关联所有{$lang->productCommon};按{$lang->productCommon}创建为多套阶段,每套阶段关联一个{$lang->productCommon}。";
$lang->project->action = new stdclass();
$lang->project->action->managed = '$date, 由 $actor 维护。$extra' . "\n";
diff --git a/module/release/view/view.html.php b/module/release/view/view.html.php
index 67054a46e2..3b60363ba9 100644
--- a/module/release/view/view.html.php
+++ b/module/release/view/view.html.php
@@ -357,7 +357,7 @@
foreach($release->builds as $build)
{
$buildDivision = $i == count($release->builds) ? '' : $lang->comma;
- echo (($build->project) ? html::a($this->createLink($build->execution ? 'build' : 'projectbuild', 'view', "buildID=$build->id"), $build->name, '_blank') : $build->name) . $buildDivision;
+ echo (($build->project) ? html::a($this->createLink($build->execution ? 'build' : 'projectbuild', 'view', "buildID=$build->id"), $build->name) : $build->name) . $buildDivision;
$i++;
}
?>