Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -139,6 +139,7 @@ $lang->action->desc->diff2 = '<strong><i>%s</i></strong> wurde geänder
|
||||
$lang->action->desc->diff3 = 'Dateiname %s wurde geändert zu %s .' . "\n";
|
||||
$lang->action->desc->linked2bug = '$date Verknüpft mit <strong>$extra</strong> von <strong>$actor</strong>';
|
||||
$lang->action->desc->resolved = '$date, resolved by <strong>$actor</strong> ' . "\n";
|
||||
$lang->action->desc->managed = '$date, by <strong>$actor</strong> managed。' . "\n";
|
||||
|
||||
/* 子任务修改父任务的历史操作记录 */
|
||||
$lang->action->desc->createchildren = '$date, <strong>$actor</strong> created a child task <strong>$extra</strong>。' . "\n";
|
||||
@@ -434,19 +435,19 @@ $lang->action->label->design = 'Design|design|view|designID=%s';
|
||||
$lang->action->label->stakeholder = 'Stakeholder|stakeholder|view|userID=%s';
|
||||
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = 'Program';
|
||||
$lang->action->search->objectTypeList['project'] = 'Project';
|
||||
$lang->action->search->objectTypeList['execution'] = 'Sprint/Stage';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = 'Fälle';
|
||||
$lang->action->search->objectTypeList['case'] = 'Fälle';
|
||||
$lang->action->search->objectTypeList['caseresult'] = 'Fallergebnisse';
|
||||
$lang->action->search->objectTypeList['stepresult'] = 'Fallschritte';
|
||||
$lang->action->search->objectTypeList['story'] = 'UR/SR';
|
||||
$lang->action->search->objectTypeList['task'] = 'Aufgaben';
|
||||
$lang->action->search->objectTypeList['testtask'] = 'Testaufgaben';
|
||||
$lang->action->search->objectTypeList['user'] = 'Benutzer';
|
||||
$lang->action->search->objectTypeList['story'] = 'Story';
|
||||
$lang->action->search->objectTypeList['task'] = 'Aufgaben';
|
||||
$lang->action->search->objectTypeList['testtask'] = 'Testaufgaben';
|
||||
$lang->action->search->objectTypeList['user'] = 'Benutzer';
|
||||
$lang->action->search->objectTypeList['doc'] = 'Dok';
|
||||
$lang->action->search->objectTypeList['doclib'] = 'Dok Bibliothek';
|
||||
$lang->action->search->objectTypeList['todo'] = 'Todo';
|
||||
|
||||
@@ -139,6 +139,7 @@ $lang->action->desc->diff2 = '<strong><i>%s</i></strong> is changed. Th
|
||||
$lang->action->desc->diff3 = 'File Name %s was changed to %s .' . "\n";
|
||||
$lang->action->desc->linked2bug = '$date, linked to <strong>$extra</strong> by <strong>$actor</strong>';
|
||||
$lang->action->desc->resolved = '$date, resolved by <strong>$actor</strong> ' . "\n";
|
||||
$lang->action->desc->managed = '$date, by <strong>$actor</strong> managed。' . "\n";
|
||||
|
||||
/* Used to describe the history of operations related to parent-child tasks. */
|
||||
$lang->action->desc->createchildren = '$date, <strong>$actor</strong> created a child task <strong>$extra</strong>。' . "\n";
|
||||
@@ -438,7 +439,7 @@ $lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = 'Program';
|
||||
$lang->action->search->objectTypeList['project'] = 'Project';
|
||||
$lang->action->search->objectTypeList['execution'] = 'Sprint/Stage';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = 'Case';
|
||||
$lang->action->search->objectTypeList['caseresult'] = 'Case Result';
|
||||
|
||||
@@ -139,6 +139,7 @@ $lang->action->desc->diff2 = '<strong><i>%s</i></strong> a changé. La
|
||||
$lang->action->desc->diff3 = 'Le nom du fichier %s a changé pour %s .' . "\n";
|
||||
$lang->action->desc->linked2bug = '$date, affecté à <strong>$extra</strong> par <strong>$actor</strong>';
|
||||
$lang->action->desc->resolved = '$date, resolved by <strong>$actor</strong> ' . "\n";
|
||||
$lang->action->desc->managed = '$date, by <strong>$actor</strong> managed。' . "\n";
|
||||
|
||||
/* 子任务修改父任务的历史操作记录 */
|
||||
$lang->action->desc->createchildren = '$date, <strong>$actor</strong> a créé un sous-tâche <strong>$extra</strong>。' . "\n";
|
||||
@@ -438,7 +439,7 @@ $lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = 'Program';
|
||||
$lang->action->search->objectTypeList['project'] = 'Project';
|
||||
$lang->action->search->objectTypeList['execution'] = 'Sprint/Stage';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = 'CasTest';
|
||||
$lang->action->search->objectTypeList['caseresult'] = 'CasTest Result';
|
||||
|
||||
@@ -139,6 +139,7 @@ $lang->action->desc->diff2 = '<strong><i>%s</i></strong> is changed. Th
|
||||
$lang->action->desc->diff3 = 'File Name %s was changed to %s .' . "\n";
|
||||
$lang->action->desc->linked2bug = '$date, liên kết tới <strong>$extra</strong> bởi <strong>$actor</strong>';
|
||||
$lang->action->desc->resolved = '$date, resolved by <strong>$actor</strong> ' . "\n";
|
||||
$lang->action->desc->managed = '$date, by <strong>$actor</strong> managed。' . "\n";
|
||||
|
||||
/* Used to describe the history of operations related to parent-child tasks. */
|
||||
$lang->action->desc->createchildren = '$date, <strong>$actor</strong> created a child task <strong>$extra</strong>。' . "\n";
|
||||
@@ -438,7 +439,7 @@ $lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = 'Program';
|
||||
$lang->action->search->objectTypeList['project'] = 'Project';
|
||||
$lang->action->search->objectTypeList['execution'] = 'Sprint/Stage';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = 'Tình huống';
|
||||
$lang->action->search->objectTypeList['caseresult'] = 'Kết quả tình huống';
|
||||
|
||||
@@ -68,7 +68,7 @@ $lang->action->objectTypes['product'] = $lang->productCommon;
|
||||
$lang->action->objectTypes['branch'] = '分支';
|
||||
$lang->action->objectTypes['story'] = $lang->productSRCommon;
|
||||
$lang->action->objectTypes['design'] = '设计';
|
||||
$lang->action->objectTypes['productplan'] = $lang->planCommon;
|
||||
$lang->action->objectTypes['productplan'] = '计划';
|
||||
$lang->action->objectTypes['release'] = '发布';
|
||||
$lang->action->objectTypes['program'] = '项目集';
|
||||
$lang->action->objectTypes['project'] = '项目';
|
||||
@@ -191,8 +191,8 @@ $lang->action->label->fromlib = '从用例库导入';
|
||||
$lang->action->label->totask = '转任务';
|
||||
$lang->action->label->svncommited = '提交代码';
|
||||
$lang->action->label->gitcommited = '提交代码';
|
||||
$lang->action->label->linked2plan = "关联{$lang->planCommon}";
|
||||
$lang->action->label->unlinkedfromplan = "移除{$lang->planCommon}";
|
||||
$lang->action->label->linked2plan = "关联计划";
|
||||
$lang->action->label->unlinkedfromplan = "移除计划";
|
||||
$lang->action->label->changestatus = '修改状态';
|
||||
$lang->action->label->marked = '编辑了';
|
||||
$lang->action->label->linked2project = "关联{$lang->projectCommon}";
|
||||
@@ -270,8 +270,8 @@ $lang->action->dynamicAction->product['deleted'] = '删除' . $lang->p
|
||||
$lang->action->dynamicAction->product['closed'] = '关闭' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->product['undeleted'] = '还原' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->product['hidden'] = '隐藏' . $lang->productCommon;
|
||||
$lang->action->dynamicAction->productplan['opened'] = "创建{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->productplan['edited'] = "编辑{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->productplan['opened'] = "创建计划";
|
||||
$lang->action->dynamicAction->productplan['edited'] = "编辑计划";
|
||||
$lang->action->dynamicAction->release['opened'] = '创建发布';
|
||||
$lang->action->dynamicAction->release['edited'] = '编辑发布';
|
||||
$lang->action->dynamicAction->release['changestatus'] = '修改发布状态';
|
||||
@@ -284,8 +284,8 @@ $lang->action->dynamicAction->story['reviewed'] = "评审{$lang->prod
|
||||
$lang->action->dynamicAction->story['closed'] = "关闭{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['assigned'] = "指派{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['changed'] = "变更{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['linked2plan'] = "{$lang->productSRCommon}关联{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->story['unlinkedfromplan'] = "{$lang->planCommon}移除{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['linked2plan'] = "{$lang->productSRCommon}关联计划";
|
||||
$lang->action->dynamicAction->story['unlinkedfromplan'] = "计划移除{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['linked2release'] = "{$lang->productSRCommon}关联发布";
|
||||
$lang->action->dynamicAction->story['unlinkedfromrelease'] = "发布移除{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->story['linked2build'] = "{$lang->productSRCommon}关联版本";
|
||||
@@ -350,8 +350,8 @@ $lang->action->dynamicAction->bug['deleted'] = '删除Bug';
|
||||
$lang->action->dynamicAction->bug['confirmed'] = "确认{$lang->productSRCommon}变更";
|
||||
$lang->action->dynamicAction->bug['tostory'] = "转{$lang->productSRCommon}";
|
||||
$lang->action->dynamicAction->bug['totask'] = '转任务';
|
||||
$lang->action->dynamicAction->bug['linked2plan'] = "Bug关联{$lang->planCommon}";
|
||||
$lang->action->dynamicAction->bug['unlinkedfromplan'] = "{$lang->planCommon}移除Bug";
|
||||
$lang->action->dynamicAction->bug['linked2plan'] = "Bug关联计划";
|
||||
$lang->action->dynamicAction->bug['unlinkedfromplan'] = "计划移除Bug";
|
||||
$lang->action->dynamicAction->bug['linked2release'] = 'Bug关联发布';
|
||||
$lang->action->dynamicAction->bug['unlinkedfromrelease'] = '发布移除Bug';
|
||||
$lang->action->dynamicAction->bug['linked2bug'] = 'Bug关联版本';
|
||||
@@ -408,7 +408,7 @@ $lang->action->dynamicAction->entry['edited'] = '编辑应用';
|
||||
|
||||
/* 用来生成相应对象的链接。*/
|
||||
$lang->action->label->product = $lang->productCommon . '|product|view|productID=%s';
|
||||
$lang->action->label->productplan = "{$lang->planCommon}|productplan|view|productID=%s";
|
||||
$lang->action->label->productplan = "计划|productplan|view|productID=%s";
|
||||
$lang->action->label->release = '发布|release|view|productID=%s';
|
||||
$lang->action->label->story = "{$lang->productSRCommon}|story|view|storyID=%s";
|
||||
$lang->action->label->program = "项目集|program|pgmproduct|programID=%s";
|
||||
@@ -439,7 +439,7 @@ $lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = '项目集';
|
||||
$lang->action->search->objectTypeList['project'] = '项目';
|
||||
$lang->action->search->objectTypeList['execution'] = '迭代/阶段';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = '用例';
|
||||
$lang->action->search->objectTypeList['caseresult'] = '用例结果';
|
||||
@@ -453,7 +453,7 @@ $lang->action->search->objectTypeList['doclib'] = '文档库';
|
||||
$lang->action->search->objectTypeList['todo'] = '待办';
|
||||
$lang->action->search->objectTypeList['build'] = '版本';
|
||||
$lang->action->search->objectTypeList['release'] = '发布';
|
||||
$lang->action->search->objectTypeList['productplan'] = $lang->planCommon;
|
||||
$lang->action->search->objectTypeList['productplan'] = '计划';
|
||||
$lang->action->search->objectTypeList['branch'] = '分支';
|
||||
$lang->action->search->objectTypeList['testsuite'] = '套件';
|
||||
$lang->action->search->objectTypeList['caselib'] = '公共库';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* The action module zh-tw file of ZenTaoPMS.
|
||||
* The action module zh-cn file of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青島易軟天創網絡科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package action
|
||||
* @version $Id: zh-tw.php 4955 2013-07-02 01:47:21Z chencongzhi520@gmail.com $
|
||||
* @version $Id: zh-cn.php 4955 2013-07-02 01:47:21Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->action->common = '系統日誌';
|
||||
@@ -65,7 +65,9 @@ $lang->action->periods['thismonth'] = $lang->action->dynamic->thisMonth;
|
||||
$lang->action->periods['lastmonth'] = $lang->action->dynamic->lastMonth;
|
||||
|
||||
$lang->action->objectTypes['product'] = $lang->productCommon;
|
||||
$lang->action->objectTypes['branch'] = '分支';
|
||||
$lang->action->objectTypes['story'] = $lang->productSRCommon;
|
||||
$lang->action->objectTypes['design'] = '設計';
|
||||
$lang->action->objectTypes['productplan'] = $lang->planCommon;
|
||||
$lang->action->objectTypes['release'] = '發佈';
|
||||
$lang->action->objectTypes['program'] = '項目集';
|
||||
@@ -78,23 +80,21 @@ $lang->action->objectTypes['bug'] = 'Bug';
|
||||
$lang->action->objectTypes['case'] = '用例';
|
||||
$lang->action->objectTypes['caseresult'] = '用例結果';
|
||||
$lang->action->objectTypes['stepresult'] = '用例步驟';
|
||||
$lang->action->objectTypes['caselib'] = '用例庫';
|
||||
$lang->action->objectTypes['testsuite'] = '套件';
|
||||
$lang->action->objectTypes['testtask'] = '測試單';
|
||||
$lang->action->objectTypes['user'] = '用戶';
|
||||
$lang->action->objectTypes['testreport'] = '報告';
|
||||
$lang->action->objectTypes['doc'] = '文檔';
|
||||
$lang->action->objectTypes['doclib'] = '文檔庫';
|
||||
$lang->action->objectTypes['todo'] = '待辦';
|
||||
$lang->action->objectTypes['branch'] = '分支';
|
||||
$lang->action->objectTypes['module'] = '模組';
|
||||
$lang->action->objectTypes['testsuite'] = '套件';
|
||||
$lang->action->objectTypes['caselib'] = '用例庫';
|
||||
$lang->action->objectTypes['testreport'] = '報告';
|
||||
$lang->action->objectTypes['entry'] = '應用';
|
||||
$lang->action->objectTypes['risk'] = '風險';
|
||||
$lang->action->objectTypes['issue'] = '問題';
|
||||
$lang->action->objectTypes['design'] = '設計';
|
||||
$lang->action->objectTypes['module'] = '模組';
|
||||
$lang->action->objectTypes['user'] = '用戶';
|
||||
$lang->action->objectTypes['stakeholder'] = '干係人';
|
||||
$lang->action->objectTypes['budget'] = '費用估算';
|
||||
$lang->action->objectTypes['entry'] = '應用';
|
||||
$lang->action->objectTypes['webhook'] = 'Webhook';
|
||||
$lang->action->objectTypes['budget'] = '费用估算';
|
||||
|
||||
/* 用來描述操作歷史記錄。*/
|
||||
$lang->action->desc = new stdclass();
|
||||
@@ -139,6 +139,7 @@ $lang->action->desc->diff2 = '修改了 <strong><i>%s</i></strong>,
|
||||
$lang->action->desc->diff3 = '將檔案名 %s 改為 %s 。' . "\n";
|
||||
$lang->action->desc->linked2bug = '$date 由 <strong>$actor</strong> 關聯到版本 <strong>$extra</strong>';
|
||||
$lang->action->desc->resolved = '$date, 由 <strong>$actor</strong> 解決。' . "\n";
|
||||
$lang->action->desc->managed = '$date, 由 <strong>$actor</strong> 維護。' . "\n";
|
||||
|
||||
/* 用來描述和父子任務相關的操作歷史記錄。*/
|
||||
$lang->action->desc->createchildren = '$date, 由 <strong>$actor</strong> 創建子任務 <strong>$extra</strong>。' . "\n";
|
||||
@@ -436,13 +437,14 @@ $lang->action->label->stakeholder = '干係人|stakeholder|view|userID=%s';
|
||||
/* Object type. */
|
||||
$lang->action->search->objectTypeList[''] = '';
|
||||
$lang->action->search->objectTypeList['product'] = $lang->productCommon;
|
||||
$lang->action->search->objectTypeList['program'] = '項目';
|
||||
$lang->action->search->objectTypeList['project'] = $lang->projectCommon;
|
||||
$lang->action->search->objectTypeList['program'] = '項目集';
|
||||
$lang->action->search->objectTypeList['project'] = '項目';
|
||||
$lang->action->search->objectTypeList['execution'] = $lang->sprintCommon;
|
||||
$lang->action->search->objectTypeList['bug'] = 'Bug';
|
||||
$lang->action->search->objectTypeList['case'] = '用例';
|
||||
$lang->action->search->objectTypeList['caseresult'] = '用例結果';
|
||||
$lang->action->search->objectTypeList['stepresult'] = '用例步驟';
|
||||
$lang->action->search->objectTypeList['story'] = $lang->productSRCommon;
|
||||
$lang->action->search->objectTypeList['story'] = '用需/軟需';
|
||||
$lang->action->search->objectTypeList['task'] = '任務';
|
||||
$lang->action->search->objectTypeList['testtask'] = '測試單';
|
||||
$lang->action->search->objectTypeList['user'] = '用戶';
|
||||
|
||||
@@ -108,7 +108,7 @@ $lang->block->default['waterfall']['program']['2']['block'] = 'waterfallestimat
|
||||
$lang->block->default['waterfall']['program']['2']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['2']['grid'] = 4;
|
||||
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = "项目{$lang->planCommon}";
|
||||
$lang->block->default['waterfall']['program']['3']['title'] = "项目计划";
|
||||
$lang->block->default['waterfall']['program']['3']['block'] = 'waterfallgantt';
|
||||
$lang->block->default['waterfall']['program']['3']['source'] = 'program';
|
||||
$lang->block->default['waterfall']['program']['3']['grid'] = 8;
|
||||
@@ -328,7 +328,7 @@ $lang->block->availableBlocks->case = '我的用例';
|
||||
$lang->block->availableBlocks->story = "我的{$lang->SRCommon}";
|
||||
$lang->block->availableBlocks->product = $lang->productCommon . '列表';
|
||||
$lang->block->availableBlocks->project = $lang->projectCommon . '列表';
|
||||
$lang->block->availableBlocks->plan = "{$lang->planCommon}列表";
|
||||
$lang->block->availableBlocks->plan = "计划列表";
|
||||
$lang->block->availableBlocks->release = '发布列表';
|
||||
$lang->block->availableBlocks->build = '版本列表';
|
||||
$lang->block->availableBlocks->testtask = '测试版本列表';
|
||||
@@ -360,7 +360,7 @@ $lang->block->modules['waterfall']['index'] = new stdclass();
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks = new stdclass();
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallreport = '项目周报';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallestimate = '估算';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = "项目{$lang->planCommon}";
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallgantt = "项目计划";
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallprogress = '到目前为止项目进展趋势图';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallissue = '项目问题';
|
||||
$lang->block->modules['waterfall']['index']->availableBlocks->waterfallrisk = '项目风险';
|
||||
@@ -372,7 +372,7 @@ $lang->block->modules['product']->availableBlocks->statistic = $lang->productCom
|
||||
$lang->block->modules['product']->availableBlocks->overview = $lang->productCommon . '总览';
|
||||
$lang->block->modules['product']->availableBlocks->list = $lang->productCommon . '列表';
|
||||
$lang->block->modules['product']->availableBlocks->story = "{$lang->SRCommon}列表";
|
||||
$lang->block->modules['product']->availableBlocks->plan = "{$lang->planCommon}列表";
|
||||
$lang->block->modules['product']->availableBlocks->plan = "计划列表";
|
||||
$lang->block->modules['product']->availableBlocks->release = '发布列表';
|
||||
|
||||
$lang->block->modules['project'] = new stdclass();
|
||||
@@ -543,7 +543,7 @@ $lang->block->gridOptions[4] = '右侧';
|
||||
|
||||
$lang->block->flowchart = array();
|
||||
$lang->block->flowchart['admin'] = array('管理员', '维护公司', '添加用户', '维护权限');
|
||||
$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护{$lang->planCommon}", "维护{$lang->SRCommon}", '创建发布');
|
||||
$lang->block->flowchart['product'] = array($lang->productCommon . '经理', '创建' . $lang->productCommon, '维护模块', "维护计划", "维护{$lang->SRCommon}", '创建发布');
|
||||
$lang->block->flowchart['project'] = array($lang->projectCommon . '经理', '创建' . $lang->projectCommon, '维护团队', '关联' . $lang->productCommon, "关联{$lang->SRCommon}", '分解任务');
|
||||
$lang->block->flowchart['dev'] = array('研发人员', '领取任务和Bug', '更新状态', '完成任务和Bug');
|
||||
$lang->block->flowchart['tester'] = array('测试人员', '撰写用例', '执行用例', '提交Bug', '验证Bug', '关闭Bug');
|
||||
|
||||
@@ -14,7 +14,7 @@ $lang->bug->common = 'Bug';
|
||||
$lang->bug->id = 'Bug编号';
|
||||
$lang->bug->product = '所属' . $lang->productCommon;
|
||||
$lang->bug->branch = '分支/平台';
|
||||
$lang->bug->productplan = '所属' . $lang->planCommon;
|
||||
$lang->bug->productplan = '所属' . '计划';
|
||||
$lang->bug->module = '所属模块';
|
||||
$lang->bug->moduleAB = '模块';
|
||||
$lang->bug->project = '所属' . $lang->projectCommon;
|
||||
@@ -58,7 +58,7 @@ $lang->bug->resolvedBuild = '解决版本';
|
||||
$lang->bug->resolvedDate = '解决日期';
|
||||
$lang->bug->resolvedDateAB = '解决日期';
|
||||
$lang->bug->deadline = '截止日期';
|
||||
$lang->bug->plan = '所属' . $lang->planCommon;
|
||||
$lang->bug->plan = '所属' . '计划';
|
||||
$lang->bug->closedBy = '由谁关闭';
|
||||
$lang->bug->closedDate = '关闭日期';
|
||||
$lang->bug->duplicateBug = '重复ID';
|
||||
@@ -373,8 +373,8 @@ $lang->bug->action = new stdclass();
|
||||
$lang->bug->action->resolved = array('main' => '$date, 由 <strong>$actor</strong> 解决,方案为 <strong>$extra</strong> $appendLink。', 'extra' => 'resolutionList');
|
||||
$lang->bug->action->tostory = array('main' => '$date, 由 <strong>$actor</strong> 转为<strong> ' . $lang->projectSRCommon . '</strong>,编号为 <strong>$extra</strong>。');
|
||||
$lang->bug->action->totask = array('main' => '$date, 由 <strong>$actor</strong> 导入为<strong>任务</strong>,编号为 <strong>$extra</strong>。');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->planCommon . ' <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->planCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
|
||||
$lang->bug->action->unlinkedfrombuild = array('main' => '$date, 由 <strong>$actor</strong> 从版本 <strong>$extra</strong> 移除。');
|
||||
$lang->bug->action->linked2release = array('main' => '$date, 由 <strong>$actor</strong> 关联到发布 <strong>$extra</strong>。');
|
||||
|
||||
+18
-21
@@ -32,7 +32,6 @@ $lang->changePassword = 'Passwort';
|
||||
$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 of <a href='http://zpl.pub/page/zplv12.html' target='_blank'> Z PUBLIC LICENSE 1.2 </a>. <span class='text-danger'>Without authorization, I should not remove, hide or cover any logos/links of ZenTao.</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.pm/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>AIUX</strong></a>";
|
||||
$lang->executionCommon = 'Execution';
|
||||
|
||||
$lang->reset = 'Zurücksetzen';
|
||||
$lang->cancel = 'Abbrechen';
|
||||
@@ -111,8 +110,10 @@ $lang->future = 'Warte';
|
||||
$lang->year = 'Jahr';
|
||||
$lang->workingHour = 'Stunde';
|
||||
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->executionCommon = 'Execution';
|
||||
$lang->sprintCommon = 'Iteration/Phase';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -172,6 +173,7 @@ $lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse
|
||||
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
|
||||
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->viewMenu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->viewMenu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->viewMenu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->viewMenu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->viewMenu->whitelist = array('link' => 'Whitelist|product|whitelist|productID=%s', 'alias' => 'addwhitelist');
|
||||
@@ -187,28 +189,23 @@ $lang->productplan->menu = $lang->product->menu;
|
||||
/* System menu. */
|
||||
$lang->system = new stdclass();
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->estimate = array('link' => 'Estimate|custom|estimate|');
|
||||
$lang->system->menu->stage = array('link' => 'Stage|stage|browse|', 'subModule' => 'stage');
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurewaterfall|');
|
||||
$lang->system->dividerMenu = ',auditcl,subject,';
|
||||
$lang->system->menu->company = array('link' => 'Global Settings|subject|browse|', 'subModule' => 'holiday');
|
||||
$lang->system->menu->scrum = array('link' => 'Scrum Model|custom|configurescrum|');
|
||||
$lang->system->menu->waterfall = array('link' => 'Waterfall Model|custom|estimate|', 'subModule' => 'stage');
|
||||
|
||||
if(isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum')
|
||||
{
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurescrum|');
|
||||
$lang->subject = new stdclass();
|
||||
$lang->subject->menu = new stdclass();
|
||||
$lang->subject->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->subject->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->subject->menu->concept = array('link' => 'Story Concept|custom|browsestoryconcept|');
|
||||
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|subject|browse|';
|
||||
unset($lang->system->dividerMenu);
|
||||
}
|
||||
$lang->holiday = new stdclass();
|
||||
$lang->holiday->menu = $lang->subject->menu;
|
||||
|
||||
$lang->stage = new stdclass();
|
||||
$lang->stage->menu = new stdclass();
|
||||
$lang->stage->menu->browse = array('link' => 'Stage List|stage|browse|', 'alias' => 'create,edit,batchcreate');
|
||||
$lang->stage->menu->settype = 'Stage Type|stage|settype|';
|
||||
$lang->stage->menu->estimate = array('link' => 'Estimate|custom|estimate');
|
||||
$lang->stage->menu->stage = array('link' => 'Stage|stage|settype', 'subModule' => 'stage');
|
||||
|
||||
$lang->measurement = new stdclass();
|
||||
$lang->measurement->menu = new stdclass();
|
||||
@@ -955,6 +952,6 @@ $lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|produc
|
||||
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
|
||||
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
+19
-22
@@ -32,7 +32,6 @@ $lang->changePassword = 'Password';
|
||||
$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 of <a href='http://zpl.pub/page/zplv12.html' target='_blank'> Z PUBLIC LICENSE 1.2 </a>. <span class='text-danger'>Without authorization, I should not remove, hide or cover any logos/links of ZenTao.</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.pm/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>AIUX</strong></a>";
|
||||
$lang->executionCommon = 'Execution';
|
||||
|
||||
$lang->reset = 'Reset';
|
||||
$lang->cancel = 'Cancel';
|
||||
@@ -111,8 +110,10 @@ $lang->future = 'Waiting';
|
||||
$lang->year = 'Year';
|
||||
$lang->workingHour = 'Hours';
|
||||
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->executionCommon = 'Execution';
|
||||
$lang->sprintCommon = 'Iteration/Phase';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -172,6 +173,7 @@ $lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse
|
||||
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
|
||||
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->viewMenu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->viewMenu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->viewMenu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->viewMenu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->viewMenu->whitelist = array('link' => 'Whitelist|product|whitelist|productID=%s', 'alias' => 'addwhitelist');
|
||||
@@ -187,28 +189,23 @@ $lang->productplan->menu = $lang->product->menu;
|
||||
/* System menu. */
|
||||
$lang->system = new stdclass();
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->estimate = array('link' => 'Estimate|custom|estimate|');
|
||||
$lang->system->menu->stage = array('link' => 'Stage|stage|browse|', 'subModule' => 'stage');
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurewaterfall|');
|
||||
$lang->system->dividerMenu = ',auditcl,subject,';
|
||||
$lang->system->menu->company = array('link' => 'Global Settings|subject|browse|', 'subModule' => 'holiday');
|
||||
$lang->system->menu->scrum = array('link' => 'Scrum Model|custom|configurescrum|');
|
||||
$lang->system->menu->waterfall = array('link' => 'Waterfall Model|custom|estimate|', 'subModule' => 'stage');
|
||||
|
||||
if(isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum')
|
||||
{
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurescrum|');
|
||||
$lang->subject = new stdclass();
|
||||
$lang->subject->menu = new stdclass();
|
||||
$lang->subject->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->subject->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->subject->menu->concept = array('link' => 'Story Concept|custom|browsestoryconcept|');
|
||||
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|subject|browse|';
|
||||
unset($lang->system->dividerMenu);
|
||||
}
|
||||
$lang->holiday = new stdclass();
|
||||
$lang->holiday->menu = $lang->subject->menu;
|
||||
|
||||
$lang->stage = new stdclass();
|
||||
$lang->stage->menu = new stdclass();
|
||||
$lang->stage->menu->browse = array('link' => 'Stage List|stage|browse|', 'alias' => 'create,edit,batchcreate');
|
||||
$lang->stage->menu->settype = 'Stage Type|stage|settype|';
|
||||
$lang->stage->menu->estimate = array('link' => 'Estimate|custom|estimate');
|
||||
$lang->stage->menu->stage = array('link' => 'Stage|stage|settype', 'subModule' => 'stage');
|
||||
|
||||
$lang->measurement = new stdclass();
|
||||
$lang->measurement->menu = new stdclass();
|
||||
@@ -221,7 +218,7 @@ $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['productplan'] = $lang->productCommon . ' Plan';
|
||||
$lang->searchObjects['testtask'] = 'Request';
|
||||
$lang->searchObjects['doc'] = 'Document';
|
||||
$lang->searchObjects['caselib'] = 'Case Library';
|
||||
@@ -955,6 +952,6 @@ $lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|produc
|
||||
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
|
||||
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
+18
-21
@@ -32,7 +32,6 @@ $lang->changePassword = 'Mot de Passe';
|
||||
$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 = "J'ai lu et j'accepte les termes et conditions de la <a href='http://zpl.pub/page/zplv12.html' target='_blank'> Z PUBLIC LICENSE 1.2 </a>. <span class='text-danger'>Sans autorisation, je ne dois pas supprimer, masquer ou couvrir les logos / liens de ZenTao.</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.pm/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>AIUX</strong></a>";
|
||||
$lang->executionCommon = 'Execution';
|
||||
|
||||
$lang->reset = 'Réinitialiser';
|
||||
$lang->cancel = 'Annuler';
|
||||
@@ -111,8 +110,10 @@ $lang->future = 'En Attente';
|
||||
$lang->year = 'Année';
|
||||
$lang->workingHour = 'Heures';
|
||||
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->executionCommon = 'Execution';
|
||||
$lang->sprintCommon = 'Iteration/Phase';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -172,6 +173,7 @@ $lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse
|
||||
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
|
||||
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->viewMenu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->viewMenu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->viewMenu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->viewMenu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->viewMenu->whitelist = array('link' => 'Whitelist|product|whitelist|productID=%s', 'alias' => 'addwhitelist');
|
||||
@@ -187,28 +189,23 @@ $lang->productplan->menu = $lang->product->menu;
|
||||
/* System menu. */
|
||||
$lang->system = new stdclass();
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->estimate = array('link' => 'Estimate|custom|estimate|');
|
||||
$lang->system->menu->stage = array('link' => 'Stage|stage|browse|', 'subModule' => 'stage');
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurewaterfall|');
|
||||
$lang->system->dividerMenu = ',auditcl,subject,';
|
||||
$lang->system->menu->company = array('link' => 'Global Settings|subject|browse|', 'subModule' => 'holiday');
|
||||
$lang->system->menu->scrum = array('link' => 'Scrum Model|custom|configurescrum|');
|
||||
$lang->system->menu->waterfall = array('link' => 'Waterfall Model|custom|estimate|', 'subModule' => 'stage');
|
||||
|
||||
if(isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum')
|
||||
{
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurescrum|');
|
||||
$lang->subject = new stdclass();
|
||||
$lang->subject->menu = new stdclass();
|
||||
$lang->subject->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->subject->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->subject->menu->concept = array('link' => 'Story Concept|custom|browsestoryconcept|');
|
||||
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|subject|browse|';
|
||||
unset($lang->system->dividerMenu);
|
||||
}
|
||||
$lang->holiday = new stdclass();
|
||||
$lang->holiday->menu = $lang->subject->menu;
|
||||
|
||||
$lang->stage = new stdclass();
|
||||
$lang->stage->menu = new stdclass();
|
||||
$lang->stage->menu->browse = array('link' => 'Stage List|stage|browse|', 'alias' => 'create,edit,batchcreate');
|
||||
$lang->stage->menu->settype = 'Stage Type|stage|settype|';
|
||||
$lang->stage->menu->estimate = array('link' => 'Estimate|custom|estimate');
|
||||
$lang->stage->menu->stage = array('link' => 'Stage|stage|settype', 'subModule' => 'stage');
|
||||
|
||||
$lang->measurement = new stdclass();
|
||||
$lang->measurement->menu = new stdclass();
|
||||
@@ -955,6 +952,6 @@ $lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|produc
|
||||
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
|
||||
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
+18
-21
@@ -32,7 +32,6 @@ $lang->changePassword = 'Mật khẩu';
|
||||
$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 of <a href='http://zpl.pub/page/zplv12.html' target='_blank'> Z PUBLIC LICENSE 1.2 </a>. <span class='text-danger'>Without authorization, I should not remove, hide or cover any logos/links of ZenTao.</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.pm/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>AIUX</strong></a>";
|
||||
$lang->executionCommon = 'Execution';
|
||||
|
||||
$lang->reset = 'Thiết lập lại';
|
||||
$lang->cancel = 'Hủy';
|
||||
@@ -111,8 +110,10 @@ $lang->future = 'Đang đợi';
|
||||
$lang->year = 'Năm';
|
||||
$lang->workingHour = 'giờ';
|
||||
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->generalUR = 'UR/Epic';
|
||||
$lang->generalSR = 'SR/Story';
|
||||
$lang->executionCommon = 'Execution';
|
||||
$lang->sprintCommon = 'Iteration/Phase';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -172,6 +173,7 @@ $lang->product->viewMenu->plan = array('link' => "Plan|productplan|browse
|
||||
$lang->product->viewMenu->release = array('link' => "Release|release|browse|productID=%s", 'subModule' => 'release');
|
||||
$lang->product->viewMenu->roadmap = 'Roadmap|product|roadmap|productID=%s';
|
||||
$lang->product->viewMenu->branch = '@branch@|branch|manage|productID=%s';
|
||||
$lang->product->viewMenu->dynamic = 'Dynamic|product|dynamic|productID=%s';
|
||||
$lang->product->viewMenu->module = 'Module|tree|browse|productID=%s&view=story';
|
||||
$lang->product->viewMenu->view = array('link' => 'Overview|product|view|productID=%s', 'alias' => 'edit');
|
||||
$lang->product->viewMenu->whitelist = array('link' => 'Whitelist|product|whitelist|productID=%s', 'alias' => 'addwhitelist');
|
||||
@@ -187,28 +189,23 @@ $lang->productplan->menu = $lang->product->menu;
|
||||
/* System menu. */
|
||||
$lang->system = new stdclass();
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->estimate = array('link' => 'Estimate|custom|estimate|');
|
||||
$lang->system->menu->stage = array('link' => 'Stage|stage|browse|', 'subModule' => 'stage');
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurewaterfall|');
|
||||
$lang->system->dividerMenu = ',auditcl,subject,';
|
||||
$lang->system->menu->company = array('link' => 'Global Settings|subject|browse|', 'subModule' => 'holiday');
|
||||
$lang->system->menu->scrum = array('link' => 'Scrum Model|custom|configurescrum|');
|
||||
$lang->system->menu->waterfall = array('link' => 'Waterfall Model|custom|estimate|', 'subModule' => 'stage');
|
||||
|
||||
if(isset($_COOKIE['systemModel']) and $_COOKIE['systemModel'] == 'scrum')
|
||||
{
|
||||
$lang->system->menu = new stdclass();
|
||||
$lang->system->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->system->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->system->menu->custom = array('link' => 'Custom|custom|configurescrum|');
|
||||
$lang->subject = new stdclass();
|
||||
$lang->subject->menu = new stdclass();
|
||||
$lang->subject->menu->subject = array('link' => 'Subject|subject|browse|');
|
||||
$lang->subject->menu->holiday = array('link' => 'Holiday|holiday|browse|');
|
||||
$lang->subject->menu->concept = array('link' => 'Story Concept|custom|browsestoryconcept|');
|
||||
|
||||
$lang->mainNav->system = '<i class="icon icon-menu-users"></i> System|subject|browse|';
|
||||
unset($lang->system->dividerMenu);
|
||||
}
|
||||
$lang->holiday = new stdclass();
|
||||
$lang->holiday->menu = $lang->subject->menu;
|
||||
|
||||
$lang->stage = new stdclass();
|
||||
$lang->stage->menu = new stdclass();
|
||||
$lang->stage->menu->browse = array('link' => 'Stage List|stage|browse|', 'alias' => 'create,edit,batchcreate');
|
||||
$lang->stage->menu->settype = 'Stage Type|stage|settype|';
|
||||
$lang->stage->menu->estimate = array('link' => 'Estimate|custom|estimate');
|
||||
$lang->stage->menu->stage = array('link' => 'Stage|stage|settype', 'subModule' => 'stage');
|
||||
|
||||
$lang->measurement = new stdclass();
|
||||
$lang->measurement->menu = new stdclass();
|
||||
@@ -955,6 +952,6 @@ $lang->waterfallproduct->menu->requirement = array('link' => "{$URCommon}|produc
|
||||
$lang->waterfallproduct->menu->story = array('link' => "{$SRCommon}|product|browse|productID={PRODUCT}");
|
||||
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'holiday', 'custom', 'auditcl', 'subject', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
@@ -32,7 +32,6 @@ $lang->changePassword = '更改密码';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>时间: %s 毫秒, 内存: %s KB, 查询: %s. </div></div>";
|
||||
$lang->agreement = "已阅读并同意<a href='http://zpl.pub/page/zplv12.html' target='_blank'>《Z PUBLIC LICENSE授权协议1.2》</a>。<span class='text-danger'>未经许可,不得去除、隐藏或遮掩禅道软件的任何标志及链接。</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.net/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>艾体验</strong></a>";
|
||||
$lang->executionCommon = '执行';
|
||||
|
||||
$lang->reset = '重填';
|
||||
$lang->cancel = '取消';
|
||||
@@ -113,6 +112,8 @@ $lang->workingHour = '工时';
|
||||
|
||||
$lang->generalUR = '用需/史诗';
|
||||
$lang->generalSR = '软需/故事';
|
||||
$lang->executionCommon = '执行';
|
||||
$lang->sprintCommon = '迭代/阶段';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -217,7 +218,7 @@ $lang->searchObjects['testcase'] = '用例';
|
||||
$lang->searchObjects['product'] = $lang->productCommon;
|
||||
$lang->searchObjects['build'] = '版本';
|
||||
$lang->searchObjects['release'] = '发布';
|
||||
$lang->searchObjects['productplan'] = $lang->productCommon . $lang->planCommon;
|
||||
$lang->searchObjects['productplan'] = $lang->productCommon . '计划';
|
||||
$lang->searchObjects['testtask'] = '测试单';
|
||||
$lang->searchObjects['doc'] = '文档';
|
||||
$lang->searchObjects['caselib'] = '用例库';
|
||||
@@ -286,7 +287,7 @@ $lang->scrumproduct = new stdclass();
|
||||
$lang->scrumproduct->menu = new stdclass();
|
||||
|
||||
$lang->scrumproduct->menu->story = array('link' => "{$lang->projectSRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story');
|
||||
$lang->scrumproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan');
|
||||
$lang->scrumproduct->menu->plan = array('link' => "计划|productplan|browse|productID=%s", 'subModule' => 'productplan');
|
||||
//$lang->scrumproduct->menu->release = array('link' => '发布|release|browse|productID=%s', 'subModule' => 'release');
|
||||
$lang->scrumproduct->menu->roadmap = '路线图|product|roadmap|productID=%s';
|
||||
$lang->scrumproduct->menu->project = "{$lang->projectCommon}|product|project|status=all&productID=%s";
|
||||
@@ -943,7 +944,7 @@ $lang->projectstory->menu->requirement = array('link' => "{$lang->projectURCommo
|
||||
$lang->projectstory->menu->story = array('link' => "{$lang->projectSRCommon}|projectstory|story", 'subModule' => '');
|
||||
$lang->projectstory->menu->track = array('link' => '跟踪矩阵|projectstory|track', 'subModule' => '');
|
||||
|
||||
$lang->waterfallproduct->menu->plan = array('link' => "{$lang->planCommon}|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
|
||||
$lang->waterfallproduct->menu->plan = array('link' => "计划|productplan|browse|productID={PRODUCT}", 'subModule' => 'productplan');
|
||||
$lang->waterfallproduct->menu->story = '需求|product|browse|product={PRODUCT}';
|
||||
$lang->waterfallproduct->menu->track = '跟踪矩阵|story|track|product={PRODUCT}';
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ $lang->changePassword = '更改密碼';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>時間: %s 毫秒, 內存: %s KB, 查詢: %s. </div></div>";
|
||||
$lang->agreement = "已閲讀並同意<a href='http://zpl.pub/page/zplv12.html' target='_blank'>《Z PUBLIC LICENSE授權協議1.2》</a>。<span class='text-danger'>未經許可,不得去除、隱藏或遮掩禪道軟件的任何標誌及連結。</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.net/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>艾體驗</strong></a>";
|
||||
$lang->executionCommon = '執行';
|
||||
|
||||
$lang->reset = '重填';
|
||||
$lang->cancel = '取消';
|
||||
@@ -113,6 +112,8 @@ $lang->workingHour = '工時';
|
||||
|
||||
$lang->generalUR = '用需/史詩';
|
||||
$lang->generalSR = '軟需/故事';
|
||||
$lang->executionCommon = '執行';
|
||||
$lang->sprintCommon = '迭代/階段';
|
||||
|
||||
$lang->idAB = 'ID';
|
||||
$lang->priAB = 'P';
|
||||
@@ -125,8 +126,8 @@ $lang->common = new stdclass();
|
||||
$lang->common->common = '公有模組';
|
||||
|
||||
global $config;
|
||||
$URCommon = zget($lang, 'URCommon', "用戶需求");
|
||||
$SRCommon = zget($lang, 'SRCommon', "軟件需求");
|
||||
$URCommon = isset($lang->URCommon) ? $lang->URCommon : '用戶需求';
|
||||
$SRCommon = isset($lang->SRCommon) ? $lang->SRCommon : '軟件需求';
|
||||
|
||||
/* 主導航菜單。*/
|
||||
$lang->mainNav = new stdclass();
|
||||
@@ -196,7 +197,7 @@ $lang->subject = new stdclass();
|
||||
$lang->subject->menu = new stdclass();
|
||||
$lang->subject->menu->subject = array('link' => '科目|subject|browse|');
|
||||
$lang->subject->menu->holiday = array('link' => '節假日|holiday|browse|');
|
||||
$lang->subject->menu->concept = array('link' => '需求概念|custom|setstoryconcept|');
|
||||
$lang->subject->menu->concept = array('link' => '需求概念|custom|browsestoryconcept|');
|
||||
|
||||
$lang->holiday = new stdclass();
|
||||
$lang->holiday->menu = $lang->subject->menu;
|
||||
|
||||
@@ -441,24 +441,74 @@ class custom extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit story concept.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function editStoryConcept($key = 0)
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
$result = $this->custom->updateURAndSR($key);
|
||||
if(!$result) $this->send(array('result' => 'fail', 'message' => $this->lang->custom->notice->URSREmpty));
|
||||
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
|
||||
}
|
||||
|
||||
$lang = $this->app->getClientLang();
|
||||
$URSR = $this->dao->select('`value`')->from(TABLE_LANG)
|
||||
->where('lang')->eq($lang)
|
||||
->andWhere('module')->eq('custom')
|
||||
->andWhere('section')->eq('URSRList')
|
||||
->andWhere('`key`')->eq($key)
|
||||
->fetch('value');
|
||||
|
||||
$this->view->URSR = json_decode($URSR);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete story concept.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function deleteStoryConcept($key = 0)
|
||||
public function setDefaultConcept($key = 0)
|
||||
{
|
||||
$lang = $this->app->getClientLang();
|
||||
$this->dao->delete()->from(TABLE_LANG)
|
||||
->where('lang')->eq($lang)
|
||||
->andWhere('section')->eq('URSRList')
|
||||
->andWhere('`key`')->eq($key)
|
||||
->exec();
|
||||
$this->loadModel('setting')->setItem('system.custom.URSR', $key);
|
||||
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete story concept.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function deleteStoryConcept($key = 0, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
echo js::confirm($this->lang->custom->notice->confirmDelete, $this->createLink('custom', 'deleteStoryConcept', "key=$key&confirm=yes"), '');
|
||||
die;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lang = $this->app->getClientLang();
|
||||
$this->dao->delete()->from(TABLE_LANG)
|
||||
->where('lang')->eq($lang)
|
||||
->andWhere('section')->eq('URSRList')
|
||||
->andWhere('`key`')->eq($key)
|
||||
->exec();
|
||||
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure scrum.
|
||||
*
|
||||
|
||||
+21
-34
@@ -19,7 +19,7 @@ $lang->custom->score = 'Score';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Reset Score';
|
||||
$lang->custom->scoreTitle = 'Point Feature';
|
||||
$lang->custom->project = $lang->projectCommon;
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
@@ -38,11 +38,16 @@ $lang->custom->SRStory = "Software requirements";
|
||||
$lang->custom->epic = "Epic";
|
||||
$lang->custom->scrumStory = "Story";
|
||||
$lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->isDefault = 'Is Default';
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Configure";
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Model Custom";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
$lang->custom->SRConcept = "SR Concept";
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
@@ -65,11 +70,12 @@ $lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->projectCommon;
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = 'Closed ' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = 'Project';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->projectCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = 'Story';
|
||||
$lang->custom->object['task'] = 'Task';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
@@ -79,6 +85,9 @@ $lang->custom->object['todo'] = 'Todo';
|
||||
$lang->custom->object['user'] = 'User';
|
||||
$lang->custom->object['block'] = 'ClosedBlock';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = 'Priority';
|
||||
$lang->custom->story->fields['sourceList'] = 'Source';
|
||||
@@ -153,6 +162,7 @@ $lang->custom->notice->conceptPath = 'Go to Admin -> Custom -> Concept to
|
||||
$lang->custom->notice->readOnlyOfProduct = 'If Change Forbidden, any change on stories, bugs, cases, efforts, releases and plans of the closed product is also forbidden.';
|
||||
$lang->custom->notice->readOnlyOfProject = 'If Change Forbidden, any change on tasks, builds, efforts and stories of the closed project is also forbidden.';
|
||||
$lang->custom->notice->URSREmpty = 'Custom requirement name can not be empty!';
|
||||
$lang->custom->notice->confirmDelete = 'Are you sure you want to delete it?';
|
||||
|
||||
$lang->custom->notice->indexPage['product'] = "ZenTao 8.2+ has Product Homepage. Do you want to go to Product Homepage?";
|
||||
$lang->custom->notice->indexPage['project'] = "ZenTao 8.2+ has Project Homepage. Do you want to go to Project Homepage?";
|
||||
@@ -200,45 +210,22 @@ $lang->custom->CRProject[0] = 'Change Forbidden';
|
||||
|
||||
$lang->custom->moduleName['product'] = $lang->productCommon;
|
||||
$lang->custom->moduleName['productplan'] = 'Plan';
|
||||
$lang->custom->moduleName['project'] = $lang->projectCommon;
|
||||
$lang->custom->moduleName['project'] = $lang->sprintCommon;
|
||||
|
||||
$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?";
|
||||
$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?";
|
||||
$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?";
|
||||
$lang->custom->conceptQuestions['storypoint'] = "3. Do you use hours or story points to make estimations in your company?";
|
||||
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions->story['0'] = 'Requirement';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Story Point';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Function Point';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Code Line';
|
||||
|
||||
$lang->custom->waterfall = new stdclass();
|
||||
$lang->custom->waterfall->URAndSR = 'Are requirements and stories concepts enabled?';
|
||||
$lang->custom->waterfall->URSRName = 'Combination of default requirements concepts';
|
||||
|
||||
$lang->custom->scrum = new stdclass();
|
||||
$lang->custom->scrum->setConcept = 'Set concept';
|
||||
|
||||
$lang->custom->URList[1] = 'User Requirement';
|
||||
$lang->custom->URList[2] = 'UR';
|
||||
$lang->custom->URList[3] = 'Requirement';
|
||||
$lang->custom->URList[4] = 'Epic';
|
||||
|
||||
$lang->custom->SRList[1] = 'Software Requirement';
|
||||
$lang->custom->SRList[2] = 'SR';
|
||||
$lang->custom->SRList[3] = 'Story';
|
||||
$lang->custom->SRList[4] = 'Story';
|
||||
|
||||
$lang->custom->URSRList[1] = 'User Requirement/Software Requirement';
|
||||
$lang->custom->URSRList[2] = 'UR/SR';
|
||||
$lang->custom->URSRList[3] = 'Requirement/Story';
|
||||
$lang->custom->URSRList[4] = 'Epic/Story';
|
||||
|
||||
$lang->custom->URTips = 'Type like:Requirement';
|
||||
$lang->custom->SRTips = 'Type like:Story';
|
||||
|
||||
+22
-35
@@ -19,7 +19,7 @@ $lang->custom->score = 'Point';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Reset Points';
|
||||
$lang->custom->scoreTitle = 'Point Feature';
|
||||
$lang->custom->project = $lang->projectCommon;
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
@@ -38,11 +38,16 @@ $lang->custom->SRStory = "Software requirements";
|
||||
$lang->custom->epic = "Epic";
|
||||
$lang->custom->scrumStory = "Story";
|
||||
$lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->isDefault = 'Is Default';
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Configure";
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Model Custom";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
$lang->custom->SRConcept = "SR Concept";
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
@@ -65,11 +70,12 @@ $lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->projectCommon;
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = 'Closed ' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = 'Project';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->projectCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = 'Story';
|
||||
$lang->custom->object['task'] = 'Task';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
@@ -79,6 +85,9 @@ $lang->custom->object['todo'] = 'Todo';
|
||||
$lang->custom->object['user'] = 'User';
|
||||
$lang->custom->object['block'] = 'Block';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = 'Priority';
|
||||
$lang->custom->story->fields['sourceList'] = 'Source';
|
||||
@@ -151,8 +160,9 @@ $lang->custom->notice->required = 'The selected field is required.';
|
||||
$lang->custom->notice->conceptResult = 'According to your preference, <b> %s-%s </b> is set for you. Use <b>%s</b> + <b> %s</b>.';
|
||||
$lang->custom->notice->conceptPath = 'Go to Admin -> Custom -> Concept to set it.';
|
||||
$lang->custom->notice->readOnlyOfProduct = 'If Change Forbidden, any change on stories, bugs, cases, efforts, releases and plans of the closed product is also forbidden.';
|
||||
$lang->custom->notice->readOnlyOfProject = 'If Change Forbidden, any change on tasks, builds, efforts and stories of the closed project is also forbidden.';
|
||||
$lang->custom->notice->readOnlyOfProject = "If Change Forbidden, any change on tasks, builds, efforts and stories of the closed {$lang->sprintCommon} is also forbidden.";
|
||||
$lang->custom->notice->URSREmpty = 'Custom requirement name can not be empty!';
|
||||
$lang->custom->notice->confirmDelete = 'Are you sure you want to delete it?';
|
||||
|
||||
$lang->custom->notice->indexPage['product'] = "ZenTao 8.2+ has Product Home. Do you want to go to Product Home?";
|
||||
$lang->custom->notice->indexPage['project'] = "ZenTao 8.2+ has Project Home. Do you want to go to Project Home?";
|
||||
@@ -200,45 +210,22 @@ $lang->custom->CRProject[0] = 'Change Forbidden';
|
||||
|
||||
$lang->custom->moduleName['product'] = $lang->productCommon;
|
||||
$lang->custom->moduleName['productplan'] = 'Plan';
|
||||
$lang->custom->moduleName['project'] = $lang->projectCommon;
|
||||
$lang->custom->moduleName['project'] = $lang->sprintCommon;
|
||||
|
||||
$lang->custom->conceptQuestions['overview'] = "1. Which combination of management fits your company?";
|
||||
$lang->custom->conceptQuestions['story'] = "2. Do you use the concept of requirement or user story in your company?";
|
||||
$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?";
|
||||
$lang->custom->conceptQuestions['storypoint'] = "3. Do you use hours or story points to make estimations in your company?";
|
||||
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions->story['0'] = 'Requirement';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Story Point';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Function Ponit';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Code Line';
|
||||
|
||||
$lang->custom->waterfall = new stdclass();
|
||||
$lang->custom->waterfall->URAndSR = 'Are requirements and stories concepts enabled';
|
||||
$lang->custom->waterfall->URSRName = 'Combination of default requirements concepts';
|
||||
|
||||
$lang->custom->scrum = new stdclass();
|
||||
$lang->custom->scrum->setConcept = 'Set concept';
|
||||
|
||||
$lang->custom->URList[1] = 'User Requirement';
|
||||
$lang->custom->URList[2] = 'UR';
|
||||
$lang->custom->URList[3] = 'Requirement';
|
||||
$lang->custom->URList[4] = 'Epic';
|
||||
|
||||
$lang->custom->SRList[1] = 'Software Requirement';
|
||||
$lang->custom->SRList[2] = 'SR';
|
||||
$lang->custom->SRList[3] = 'Story';
|
||||
$lang->custom->SRList[4] = 'Story';
|
||||
|
||||
$lang->custom->URSRList[1] = 'User Requirement/Software Requirement';
|
||||
$lang->custom->URSRList[2] = 'UR/SR';
|
||||
$lang->custom->URSRList[3] = 'Requirement/Story';
|
||||
$lang->custom->URSRList[4] = 'Epic/Story';
|
||||
|
||||
$lang->custom->URTips = 'Type like:Requirement';
|
||||
$lang->custom->SRTips = 'Type like:Story';
|
||||
|
||||
+21
-34
@@ -19,7 +19,7 @@ $lang->custom->score = 'Point';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Réinit Points';
|
||||
$lang->custom->scoreTitle = 'Fonctionnalité des Points';
|
||||
$lang->custom->project = $lang->projectCommon;
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
@@ -38,11 +38,16 @@ $lang->custom->SRStory = "Software requirements";
|
||||
$lang->custom->epic = "Epic";
|
||||
$lang->custom->scrumStory = "Story";
|
||||
$lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->isDefault = 'Is Default';
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Configure";
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Model Custom";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
$lang->custom->SRConcept = "SR Concept";
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
@@ -65,11 +70,12 @@ $lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->projectCommon;
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = 'Closed ' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = 'Project';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->projectCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = 'Story';
|
||||
$lang->custom->object['task'] = 'Tâche';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
@@ -79,6 +85,9 @@ $lang->custom->object['todo'] = 'Agenda';
|
||||
$lang->custom->object['user'] = 'Utilisateur';
|
||||
$lang->custom->object['block'] = 'Bloc';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = 'Priorité';
|
||||
$lang->custom->story->fields['sourceList'] = 'Source';
|
||||
@@ -153,6 +162,7 @@ $lang->custom->notice->conceptPath = 'Allez à Admin -> Custom -> Concept
|
||||
$lang->custom->notice->readOnlyOfProduct = 'If Change Forbidden, any change on stories, bugs, cases, efforts, releases and plans of the closed product is also forbidden.';
|
||||
$lang->custom->notice->readOnlyOfProject = 'If Change Forbidden, any change on tasks, builds, efforts and stories of the closed project is also forbidden.';
|
||||
$lang->custom->notice->URSREmpty = 'Custom requirement name can not be empty!';
|
||||
$lang->custom->notice->confirmDelete = 'Are you sure you want to delete it?';
|
||||
|
||||
$lang->custom->notice->indexPage['product'] = "ZenTao 8.2+ possède une page d'accueil. Voulez-vous consulter la page d'accueil du produit ?";
|
||||
$lang->custom->notice->indexPage['project'] = "ZenTao 8.2+ possède une page d'accueil. Voulez-vous consulter la page d'accueil du produit ?";
|
||||
@@ -200,45 +210,22 @@ $lang->custom->CRProject[0] = 'Change Forbidden';
|
||||
|
||||
$lang->custom->moduleName['product'] = $lang->productCommon;
|
||||
$lang->custom->moduleName['productplan'] = 'Plan';
|
||||
$lang->custom->moduleName['project'] = $lang->projectCommon;
|
||||
$lang->custom->moduleName['project'] = $lang->sprintCommon;
|
||||
|
||||
$lang->custom->conceptQuestions['overview'] = "1. Quelle combinaison de gestion convient le mieux à votre entreprise ?";
|
||||
$lang->custom->conceptQuestions['story'] = "2. Utilisez-vous le concept d'exigence ou de user story dans votre entreprise ?";
|
||||
$lang->custom->conceptQuestions['requirementpoint'] = "3. Utilisez-vous des heures ou des points de fonction pour faire des estimations dans votre entreprise ?";
|
||||
$lang->custom->conceptQuestions['storypoint'] = "3. Utilisez-vous des heures ou des points de Story pour faire des estimations dans votre entreprise ?";
|
||||
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions->story['0'] = 'Exigence';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Story';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Points de Story';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Points de Fonction';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Code Line';
|
||||
|
||||
$lang->custom->waterfall = new stdclass();
|
||||
$lang->custom->waterfall->URAndSR = 'Are requirements and stories concepts enabled?';
|
||||
$lang->custom->waterfall->URSRName = 'A conceptual definition of requirements and stories?';
|
||||
|
||||
$lang->custom->scrum = new stdclass();
|
||||
$lang->custom->scrum->setConcept = 'Set concept';
|
||||
|
||||
$lang->custom->URList[1] = 'User Requirement';
|
||||
$lang->custom->URList[2] = 'UR';
|
||||
$lang->custom->URList[3] = 'Requirement';
|
||||
$lang->custom->URList[4] = 'Epic';
|
||||
|
||||
$lang->custom->SRList[1] = 'Software Requirement';
|
||||
$lang->custom->SRList[2] = 'SR';
|
||||
$lang->custom->SRList[3] = 'Story';
|
||||
$lang->custom->SRList[4] = 'Story';
|
||||
|
||||
$lang->custom->URSRList[1] = 'User Requirement/Software Requirement';
|
||||
$lang->custom->URSRList[2] = 'UR/SR';
|
||||
$lang->custom->URSRList[3] = 'Requirement/Story';
|
||||
$lang->custom->URSRList[4] = 'Epic/Story';
|
||||
|
||||
$lang->custom->URTips = 'Type like:Requirement';
|
||||
$lang->custom->SRTips = 'Type like:Story';
|
||||
|
||||
+21
-34
@@ -19,7 +19,7 @@ $lang->custom->score = 'Điểm';
|
||||
$lang->custom->timezone = 'Timezone';
|
||||
$lang->custom->scoreReset = 'Thiết lập lại điểm';
|
||||
$lang->custom->scoreTitle = 'Tính năng điểm';
|
||||
$lang->custom->project = $lang->projectCommon;
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->estimate = 'Estimated configuration';
|
||||
$lang->custom->estimateConfig = 'Estimated configuration';
|
||||
@@ -38,11 +38,16 @@ $lang->custom->SRStory = "Software requirements";
|
||||
$lang->custom->epic = "Epic";
|
||||
$lang->custom->scrumStory = "Story";
|
||||
$lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->isDefault = 'Is Default';
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Configure";
|
||||
|
||||
$lang->custom->object['program'] = 'Program';
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->configureScrum = "Scrum Model Custom";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
$lang->custom->SRConcept = "SR Concept";
|
||||
|
||||
$lang->custom->unitList['efficiency'] = 'Working Hours/';
|
||||
$lang->custom->unitList['manhour'] = 'Man-hour/';
|
||||
@@ -65,11 +70,12 @@ $lang->custom->tipNotEmpty = 'The prompt can not be empty!';
|
||||
|
||||
$lang->custom->numberError = 'The interval must be greater than zero!';
|
||||
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->projectCommon;
|
||||
$lang->custom->closedProject = 'Closed ' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = 'Closed ' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = 'Project';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->projectCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = 'Câu chuyện';
|
||||
$lang->custom->object['task'] = 'Nhiệm vụ';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
@@ -79,6 +85,9 @@ $lang->custom->object['todo'] = 'Việc làm';
|
||||
$lang->custom->object['user'] = 'Người dùng';
|
||||
$lang->custom->object['block'] = 'Block';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->fields['unitList'] = 'Unit List';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = 'Ưu tiên';
|
||||
$lang->custom->story->fields['sourceList'] = 'Nguồn';
|
||||
@@ -153,6 +162,7 @@ $lang->custom->notice->conceptPath = 'Vào Quản trị -> Tùy biến ->
|
||||
$lang->custom->notice->readOnlyOfProduct = 'If Change Forbidden, any change on stories, bugs, cases, efforts, releases and plans of the closed product is also forbidden.';
|
||||
$lang->custom->notice->readOnlyOfProject = 'If Change Forbidden, any change on tasks, builds, efforts and stories of the closed project is also forbidden.';
|
||||
$lang->custom->notice->URSREmpty = 'Custom requirement name can not be empty!';
|
||||
$lang->custom->notice->confirmDelete = 'Are you sure you want to delete it?';
|
||||
|
||||
$lang->custom->notice->indexPage['product'] = "ZenTao 8.2+ đã có trang Sản phẩm. Bạn có muốn tới trang Sản phẩm?";
|
||||
$lang->custom->notice->indexPage['project'] = "ZenTao 8.2+ has Project Home. Bạn có muốn go to Project Home?";
|
||||
@@ -200,45 +210,22 @@ $lang->custom->CRProject[0] = 'Change Forbidden';
|
||||
|
||||
$lang->custom->moduleName['product'] = $lang->productCommon;
|
||||
$lang->custom->moduleName['productplan'] = 'Kế hoạch';
|
||||
$lang->custom->moduleName['project'] = $lang->projectCommon;
|
||||
$lang->custom->moduleName['project'] = $lang->sprintCommon;
|
||||
|
||||
$lang->custom->conceptQuestions['overview'] = "1. Sự kết hợp quản lý nào phù hợp với công ty của bạn?";
|
||||
$lang->custom->conceptQuestions['story'] = "2. Bạn có sử dụng mô hình điều kiện hay câu chuyện người dùng trong doanh nghiệp của bạn?";
|
||||
$lang->custom->conceptQuestions['requirementpoint'] = "3. Do you use hours or function points to make estimations in your company?";
|
||||
$lang->custom->conceptQuestions['storypoint'] = "3. Bạn có dùng giờ hoặc điểm để tạo dự kiến trong doanh nghiệp của bạn ?";
|
||||
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions->story['0'] = 'Điều kiện';
|
||||
$lang->custom->conceptOptions->story['1'] = 'Câu chuyện';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = 'Điểm';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = 'Function Point';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = 'Code Line';
|
||||
|
||||
$lang->custom->waterfall = new stdclass();
|
||||
$lang->custom->waterfall->URAndSR = 'Are requirements and stories concepts enabled?';
|
||||
$lang->custom->waterfall->URSRName = 'A conceptual definition of requirements and stories?';
|
||||
|
||||
$lang->custom->scrum = new stdclass();
|
||||
$lang->custom->scrum->setConcept = 'Set concept';
|
||||
|
||||
$lang->custom->URList[1] = 'User Requirement';
|
||||
$lang->custom->URList[2] = 'UR';
|
||||
$lang->custom->URList[3] = 'Requirement';
|
||||
$lang->custom->URList[4] = 'Epic';
|
||||
|
||||
$lang->custom->SRList[1] = 'Software Requirement';
|
||||
$lang->custom->SRList[2] = 'SR';
|
||||
$lang->custom->SRList[3] = 'Story';
|
||||
$lang->custom->SRList[4] = 'Story';
|
||||
|
||||
$lang->custom->URSRList[1] = 'User Requirement/Software Requirement';
|
||||
$lang->custom->URSRList[2] = 'UR/SR';
|
||||
$lang->custom->URSRList[3] = 'Requirement/Story';
|
||||
$lang->custom->URSRList[4] = 'Epic/Story';
|
||||
|
||||
$lang->custom->URTips = 'Type like:Requirement';
|
||||
$lang->custom->SRTips = 'Type like:Story';
|
||||
|
||||
@@ -19,7 +19,7 @@ $lang->custom->score = '积分';
|
||||
$lang->custom->timezone = '时区';
|
||||
$lang->custom->scoreReset = '重置积分';
|
||||
$lang->custom->scoreTitle = '积分功能';
|
||||
$lang->custom->project = $lang->projectCommon;
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->estimate = '估算配置';
|
||||
$lang->custom->estimateConfig = '估算配置';
|
||||
@@ -38,16 +38,17 @@ $lang->custom->SRStory = "软件需求";
|
||||
$lang->custom->epic = "史诗";
|
||||
$lang->custom->scrumStory = "故事";
|
||||
$lang->custom->waterfallCommon = "瀑布";
|
||||
$lang->custom->buildin = "系统内置";
|
||||
$lang->custom->isDefault = '是否默认';
|
||||
$lang->custom->editStoryConcept = "编辑需求概念";
|
||||
$lang->custom->setStoryConcept = "设置需求概念";
|
||||
$lang->custom->setDefaultConcept = "设置默认概念";
|
||||
$lang->custom->browseStoryConcept = "需求概念列表";
|
||||
$lang->custom->deleteStoryConcept = "删除需求概念";
|
||||
$lang->custom->configureScrum = "敏捷模型自定义";
|
||||
$lang->custom->URConcept = "用需概念";
|
||||
$lang->custom->SRConcept = "软需概念";
|
||||
|
||||
$lang->custom->object['program'] = '项目';
|
||||
$lang->custom->program->fields['unitList'] = '预算单位';
|
||||
|
||||
$lang->custom->unitList['efficiency'] = '工时/';
|
||||
$lang->custom->unitList['manhour'] = '人时/';
|
||||
$lang->custom->unitList['cost'] = '元/小时';
|
||||
@@ -69,11 +70,12 @@ $lang->custom->tipNotEmpty = '提示语不能为空';
|
||||
|
||||
$lang->custom->numberError = '区间必须大于零';
|
||||
|
||||
$lang->custom->closedProject = '已关闭' . $lang->projectCommon;
|
||||
$lang->custom->closedProject = '已关闭' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = '已关闭' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = '项目';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->projectCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = $lang->productSRCommon;
|
||||
$lang->custom->object['task'] = '任务';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
@@ -83,6 +85,9 @@ $lang->custom->object['todo'] = '待办';
|
||||
$lang->custom->object['user'] = '用户';
|
||||
$lang->custom->object['block'] = '区块';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->fields['unitList'] = '预算单位';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = '优先级';
|
||||
$lang->custom->story->fields['sourceList'] = '来源';
|
||||
@@ -155,8 +160,9 @@ $lang->custom->notice->required = '页面提交时,选中
|
||||
$lang->custom->notice->conceptResult = '我们已经根据您的选择为您设置了<b> %s-%s </b>模式,使用<b>%s</b> + <b> %s</b>。';
|
||||
$lang->custom->notice->conceptPath = '您可以在:后台 -> 自定义 -> 流程页面修改。';
|
||||
$lang->custom->notice->readOnlyOfProduct = '禁止修改后,已关闭' . $lang->productCommon . '下的' . $lang->productSRCommon . '、Bug、用例、日志、发布、计划都禁止修改。';
|
||||
$lang->custom->notice->readOnlyOfProject = '禁止修改后,已关闭' . $lang->projectCommon . '下的任务、版本、日志以及关联需求都禁止修改。';
|
||||
$lang->custom->notice->readOnlyOfProject = '禁止修改后,已关闭' . $lang->sprintCommon . '下的任务、版本、日志以及关联需求都禁止修改。';
|
||||
$lang->custom->notice->URSREmpty = '自定义需求名称不能为空!';
|
||||
$lang->custom->notice->confirmDelete = '您确定要删除吗?';
|
||||
|
||||
$lang->custom->notice->indexPage['product'] = "从8.2版本起增加了产品主页视图,是否默认进入产品主页?";
|
||||
$lang->custom->notice->indexPage['project'] = "从8.2版本起增加了项目主页视图,是否默认进入项目主页?";
|
||||
@@ -204,41 +210,22 @@ $lang->custom->CRProject[0] = '禁止修改';
|
||||
|
||||
$lang->custom->moduleName['product'] = $lang->productCommon;
|
||||
$lang->custom->moduleName['productplan'] = '计划';
|
||||
$lang->custom->moduleName['project'] = $lang->projectCommon;
|
||||
$lang->custom->moduleName['project'] = $lang->sprintCommon;
|
||||
|
||||
$lang->custom->conceptQuestions['overview'] = "1. 下述哪种组合方式更适合您公司的管理现状?";
|
||||
$lang->custom->conceptQuestions['story'] = "2. 您公司是在使用需求概念还是用户故事概念?";
|
||||
$lang->custom->conceptQuestions['requirementpoint'] = "3. 您公司是在使用工时还是功能点来做规模估算?";
|
||||
$lang->custom->conceptQuestions['storypoint'] = "3. 您公司是在使用工时还是故事点来做规模估算?";
|
||||
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions = new stdclass;
|
||||
$lang->custom->conceptOptions->story = array();
|
||||
$lang->custom->conceptOptions->story['0'] = '需求';
|
||||
$lang->custom->conceptOptions->story['1'] = '故事';
|
||||
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint = array();
|
||||
$lang->custom->conceptOptions->hourPoint['0'] = '故事点';
|
||||
$lang->custom->conceptOptions->hourPoint['1'] = '功能点';
|
||||
$lang->custom->conceptOptions->hourPoint['2'] = '代码行';
|
||||
|
||||
$lang->custom->scrum = new stdclass();
|
||||
$lang->custom->scrum->setConcept = '设置项目概念';
|
||||
|
||||
$lang->custom->URList[1] = '用户需求';
|
||||
$lang->custom->URList[2] = '用需';
|
||||
$lang->custom->URList[3] = '需求';
|
||||
$lang->custom->URList[4] = '史诗';
|
||||
|
||||
$lang->custom->SRList[1] = '软件需求';
|
||||
$lang->custom->SRList[2] = '软需';
|
||||
$lang->custom->SRList[3] = '故事';
|
||||
$lang->custom->SRList[4] = '故事';
|
||||
|
||||
$lang->custom->URSRList[1] = '用户需求/软件需求';
|
||||
$lang->custom->URSRList[2] = '用需/软需';
|
||||
$lang->custom->URSRList[3] = '需求/故事';
|
||||
$lang->custom->URSRList[4] = '史诗/故事';
|
||||
|
||||
$lang->custom->URTips = '请输入如:用户需求';
|
||||
$lang->custom->SRTips = '请输入如:软件需求';
|
||||
|
||||
+44
-7
@@ -482,7 +482,7 @@ class customModel extends model
|
||||
foreach($this->lang->custom->URSRList as $key => $content)
|
||||
{
|
||||
$content = json_decode($content);
|
||||
$URSRPairs[$key] = $content->SRName . '/' . $content->URName;
|
||||
$URSRPairs[$key] = $content->URName . '/' . $content->SRName;
|
||||
}
|
||||
|
||||
return $URSRPairs;
|
||||
@@ -497,13 +497,21 @@ class customModel extends model
|
||||
public function getURSRList()
|
||||
{
|
||||
$this->app->loadLang('custom');
|
||||
$lang = $this->app->getClientLang();
|
||||
|
||||
$langData = $this->dao->select('`key`, `value`, system')->from(TABLE_LANG)
|
||||
->where('lang')->eq($lang)
|
||||
->andWhere('module')->eq('custom')
|
||||
->andWhere('section')->eq('URSRList')
|
||||
->fetchAll();
|
||||
|
||||
$URSRList = array();
|
||||
foreach($this->lang->custom->URSRList as $key => $content)
|
||||
foreach($langData as $id => $content)
|
||||
{
|
||||
$content = json_decode($content);
|
||||
$URSRList[$key]['SRName'] = $content->SRName;
|
||||
$URSRList[$key]['URName'] = $content->URName;
|
||||
$value = json_decode($content->value);
|
||||
$URSRList[$content->key]['SRName'] = $value->SRName;
|
||||
$URSRList[$content->key]['URName'] = $value->URName;
|
||||
$URSRList[$content->key]['system'] = $content->system;
|
||||
}
|
||||
|
||||
return $URSRList;
|
||||
@@ -606,7 +614,7 @@ class customModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ur and SR concept.
|
||||
* Set UR and SR concept.
|
||||
*
|
||||
* @access public
|
||||
* @return bool
|
||||
@@ -636,12 +644,41 @@ class customModel extends model
|
||||
$value = json_encode($URSRList);
|
||||
$maxKey += 1;
|
||||
|
||||
$this->setItem("$lang.custom.URSRList.{$maxKey}.1", $value);
|
||||
$this->setItem("$lang.custom.URSRList.{$maxKey}.0", $value);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit UR and SR concept.
|
||||
*
|
||||
* @param int $key
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function updateURAndSR($key = 0)
|
||||
{
|
||||
$lang = $this->app->getClientLang();
|
||||
$data = fixer::input('post')->get();
|
||||
|
||||
if(!$data->SRName || !$data->URName) return false;
|
||||
|
||||
$URSRList = new stdclass();
|
||||
$URSRList->SRName = $data->SRName;
|
||||
$URSRList->URName = $data->URName;
|
||||
|
||||
$value = json_encode($URSRList);
|
||||
$this->dao->update(TABLE_LANG)->set('value')->eq($value)
|
||||
->where('`key`')->eq($key)
|
||||
->andWhere('section')->eq('URSRList')
|
||||
->andWhere('lang')->eq($lang)
|
||||
->andWhere('module')->eq('custom')
|
||||
->exec();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set story or requirement.
|
||||
*
|
||||
|
||||
@@ -10,25 +10,35 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<style>
|
||||
.table-form>tbody>tr>th{text-align: center}
|
||||
</style>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='pull-right'>
|
||||
<?php if(common::hasPriv('custom', 'setstoryconcept')) echo html::a($this->createLink('custom', 'setstoryconcept', '', '', true), $lang->custom->setStoryConcept, '', "class='btn btn-primary iframe' data-toggle='modal'");?>
|
||||
<?php if(common::hasPriv('custom', 'setstoryconcept')) echo html::a($this->createLink('custom', 'setstoryconcept', '', '', true), $lang->custom->setStoryConcept, '', "class='btn btn-primary iframe'");?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-row'>
|
||||
<div class='main-col main-content main-table'>
|
||||
<table class='table table-form mw-800px'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='text-left'><?php echo $lang->custom->URConcept;?> </th>
|
||||
<th class='text-left'><?php echo $lang->custom->SRConcept;?> </th>
|
||||
<th><?php echo $lang->custom->buildin;?> </th>
|
||||
<th><?php echo $lang->custom->isDefault;?> </th>
|
||||
<th class='w-60px text-left'><?php echo $lang->actions;?> </th>
|
||||
</tr>
|
||||
<?php foreach($URSRList as $key => $URSR):?>
|
||||
<tr>
|
||||
<td><?php echo $URSR['URName'];?></td>
|
||||
<td><?php echo $URSR['SRName'];?></td>
|
||||
<td class='text-left'><?php echo $URSR['URName'];?></td>
|
||||
<td class='text-left'><?php echo $URSR['SRName'];?></td>
|
||||
<td class='text-center'><?php echo zget($lang->custom->tipRangeList, $URSR['system'], '');?></td>
|
||||
<td class='text-center'><?php if($key == $config->custom->URSR) echo "<i class='icon icon-check'></i>";?></td>
|
||||
<td class='c-actions'>
|
||||
<?php if(common::hasPriv('custom', 'deleteStoryConcept')) echo html::a($this->createLink('custom', 'deleteStoryConcept', "id=$key"), "<i class='icon icon-trash'></i>", 'hiddenwin', 'class="btn"');?>
|
||||
<?php $disabled = $URSR['system'] ? "disabled=disabled" : '';?>
|
||||
<?php if(common::hasPriv('custom', 'setDefaultConcept')) echo html::a($this->createLink('custom', 'setDefaultConcept', "id=$key"), "<i class='icon icon-hand-right'></i>", 'hiddenwin', "class='btn' title={$lang->custom->setDefaultConcept}");?>
|
||||
<?php if(common::hasPriv('custom', 'editStoryConcept')) echo html::a($this->createLink('custom', 'editStoryConcept', "id=$key", '', true), "<i class='icon icon-edit'></i>", '', "class='btn iframe' title={$lang->edit}");?>
|
||||
<?php if(common::hasPriv('custom', 'deleteStoryConcept')) echo html::a($this->createLink('custom', 'deleteStoryConcept', "id=$key"), "<i class='icon icon-trash'></i>", 'hiddenwin', "class='btn' $disabled title={$lang->delete}");?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* The html template file of setstoryconcept method of user module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Guangming Sun<sunguangming@cnezsoft.com>
|
||||
* @package ZenTaoPMS
|
||||
* @version $Id: setstoryconcept.html.php 4129 2020-09-01 01:58:14Z sgm $
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id='mainContent' class='main-row'>
|
||||
<form class="load-indicator main-form form-ajax" method='post'>
|
||||
<div class='modal-body'>
|
||||
<table class='table table-form'>
|
||||
<tr class='text-center'>
|
||||
<td class='w-200px'><strong><?php echo $lang->custom->URConcept;?></strong></th>
|
||||
<td class='w-200px'><strong><?php echo $lang->custom->SRConcept;?></strong></th>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?php echo html::input('URName', $URSR->URName, "class='form-control'");?></td>
|
||||
<td><?php echo html::input('SRName', $URSR->SRName, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th></th>
|
||||
<td class='text-center' colspan='2'><?php echo html::submitButton();?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -40,8 +40,8 @@
|
||||
<?php
|
||||
$fields = $this->custom->getFormFields($moduleName, $method);
|
||||
|
||||
if($moduleName == 'doc' and $method == 'createlib') $method = 'createLib';
|
||||
if($moduleName == 'doc' and $method == 'editlib') $method = 'editLib';
|
||||
if($moduleName == 'doc' and $method == 'createlib') $method = 'createLib';
|
||||
if($moduleName == 'doc' and $method == 'editlib') $method = 'editLib';
|
||||
if($moduleName == 'caselib' and $method == 'createcase')
|
||||
{
|
||||
$this->app->loadLang('testcase');
|
||||
|
||||
@@ -110,7 +110,7 @@ class design extends control
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noclosed');
|
||||
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($productID);
|
||||
$this->view->productID = $productID;
|
||||
$this->view->program = $this->loadModel('project')->getByID($this->session->PRJ);
|
||||
$this->view->project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -214,9 +214,9 @@ class design extends control
|
||||
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->edit;
|
||||
$this->view->position[] = $this->lang->design->edit;
|
||||
|
||||
$this->view->design = $design;
|
||||
$this->view->program = $this->loadModel('project')->getByID($this->session->PRJ);
|
||||
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($design->product);
|
||||
$this->view->design = $design;
|
||||
$this->view->project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
|
||||
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($design->product);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -236,9 +236,9 @@ class design extends control
|
||||
*/
|
||||
public function linkCommit($designID = 0, $repoID = 0, $begin = '', $end = '', $recTotal = 0, $recPerPage = 50, $pageID = 1)
|
||||
{
|
||||
/* Get program and date. */
|
||||
$program = $this->loadModel('project')->getByID($this->session->PRJ);
|
||||
$begin = $begin ? date('Y-m-d', strtotime($begin)) : $program->begin;
|
||||
/* Get project and date. */
|
||||
$project = $this->loadModel('program')->getPRJByID($this->session->PRJ);
|
||||
$begin = $begin ? date('Y-m-d', strtotime($begin)) : $project->begin;
|
||||
$end = $end ? date('Y-m-d', strtotime($end)) : helper::today();
|
||||
|
||||
/* Get the repository information through the repoID. */
|
||||
|
||||
@@ -292,7 +292,7 @@ class designModel extends model
|
||||
* Get design list.
|
||||
*
|
||||
* @param int $productID
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @param string $type all|bySearch|HLDS|DDS|DBDS|ADS
|
||||
* @param int $param
|
||||
* @param string $orderBy
|
||||
@@ -300,17 +300,17 @@ class designModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($programID = 0, $productID = 0, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
|
||||
public function getList($projectID = 0, $productID = 0, $type = 'all', $param = 0, $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
if($type == 'bySearch')
|
||||
{
|
||||
$designs = $this->getBySearch($programID, $productID, $param, $orderBy, $pager);
|
||||
$designs = $this->getBySearch($projectID, $productID, $param, $orderBy, $pager);
|
||||
}
|
||||
else
|
||||
{
|
||||
$designs = $this->dao->select('*')->from(TABLE_DESIGN)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($programID)->andWhere('PRJ')->eq($programID)->fi()
|
||||
->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
|
||||
->beginIF($type != 'all')->andWhere('type')->in($type)->fi()
|
||||
->andWhere('product')->eq($productID)
|
||||
->orderBy($orderBy)
|
||||
@@ -341,7 +341,7 @@ class designModel extends model
|
||||
/**
|
||||
* Get designs by search.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @param int $productID
|
||||
* @param int $queryID
|
||||
* @param string $orderBy
|
||||
@@ -349,7 +349,7 @@ class designModel extends model
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getBySearch($programID = 0, $productID = 0, $queryID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
public function getBySearch($projectID = 0, $productID = 0, $queryID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
if($queryID)
|
||||
{
|
||||
@@ -374,7 +374,7 @@ class designModel extends model
|
||||
$designs = $this->dao->select('*')->from(TABLE_DESIGN)
|
||||
->where($designQuery)
|
||||
->andWhere('deleted')->eq('0')
|
||||
->andWhere('PRJ')->eq($programID)
|
||||
->andWhere('PRJ')->eq($projectID)
|
||||
->andWhere('product')->eq($productID)
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
<form class="load-indicator main-form form-ajax" method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class="table table-form">
|
||||
<tbody>
|
||||
<?php if($program->product == 'multiple'):?>
|
||||
<?php if($project->product == 'multiple'):?>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->design->product;?></th>
|
||||
<td><?php echo html::select('product', $products, $productID, "class='form-control chosen'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($program->product == 'single') echo html::hidden('product', $productID);?>
|
||||
<?php if($project->product == 'single') echo html::hidden('product', $productID);?>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->design->story;?></th>
|
||||
<td><?php echo html::select('story', empty($stories) ? '' : $stories, '', "class='form-control chosen'");?></td>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<form class="load-indicator main-form form-ajax" method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class="table table-form">
|
||||
<tbody>
|
||||
<?php if($program->product == 'multiple'):?>
|
||||
<?php if($project->product == 'multiple'):?>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->design->product;?></th>
|
||||
<td><?php echo html::select('product', $products, $design->product, "class='form-control chosen'");?></td>
|
||||
|
||||
@@ -1155,6 +1155,7 @@ $lang->resource->custom->setPublic = 'setPublic';
|
||||
$lang->resource->custom->timezone = 'timezone';
|
||||
$lang->resource->custom->estimate = 'estimate';
|
||||
$lang->resource->custom->setStoryConcept = 'setStoryConcept';
|
||||
$lang->resource->custom->editStoryConcept = 'editStoryConcept';
|
||||
$lang->resource->custom->browseStoryConcept = 'browseStoryConcept';
|
||||
$lang->resource->custom->deleteStoryConcept = 'deleteStoryConcept';
|
||||
$lang->resource->custom->configureScrum = 'configureScrum';
|
||||
@@ -1170,9 +1171,10 @@ $lang->custom->methodOrder[40] = 'setPublic';
|
||||
$lang->custom->methodOrder[45] = 'timezone';
|
||||
$lang->custom->methodOrder[50] = 'estimate';
|
||||
$lang->custom->methodOrder[55] = 'setStoryContcept';
|
||||
$lang->custom->methodOrder[60] = 'browseStoryContcept';
|
||||
$lang->custom->methodOrder[65] = 'deleteStoryContcept';
|
||||
$lang->custom->methodOrder[70] = 'configureScrum';
|
||||
$lang->custom->methodOrder[60] = 'editStoryContcept';
|
||||
$lang->custom->methodOrder[65] = 'browseStoryContcept';
|
||||
$lang->custom->methodOrder[70] = 'deleteStoryContcept';
|
||||
$lang->custom->methodOrder[75] = 'configureScrum';
|
||||
|
||||
$lang->resource->datatable = new stdclass();
|
||||
$lang->resource->datatable->setGlobal = 'setGlobal';
|
||||
|
||||
@@ -103,23 +103,25 @@ class groupModel extends model
|
||||
/**
|
||||
* Get group lists.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($programID = 0)
|
||||
public function getList($projectID = 0)
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_GROUP)->where('PRJ')->eq($programID)->orderBy('id')->fetchAll();
|
||||
return $this->dao->select('*')->from(TABLE_GROUP)->where('PRJ')->eq($projectID)->orderBy('id')->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get group pairs.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPairs($programID = 0)
|
||||
public function getPairs($projectID = 0)
|
||||
{
|
||||
return $this->dao->select('id, name')->from(TABLE_GROUP)->where('PRJ')->eq($programID)->orderBy('id')->fetchPairs();
|
||||
return $this->dao->select('id, name')->from(TABLE_GROUP)->where('PRJ')->eq($projectID)->orderBy('id')->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = 'Issue';
|
||||
$lang->issue->browse = 'List';
|
||||
$lang->issue->resolvedBy = 'Resolved By';
|
||||
$lang->issue->program = 'Linked Project';
|
||||
$lang->issue->project = 'Linked Project';
|
||||
$lang->issue->title = 'Title';
|
||||
$lang->issue->desc = 'Description';
|
||||
$lang->issue->pri = 'Priority';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = 'Issue';
|
||||
$lang->issue->browse = 'List';
|
||||
$lang->issue->resolvedBy = 'Resolved By';
|
||||
$lang->issue->program = 'Linked Project';
|
||||
$lang->issue->project = 'Linked Project';
|
||||
$lang->issue->title = 'Title';
|
||||
$lang->issue->desc = 'Description';
|
||||
$lang->issue->pri = 'Priority';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = 'Issue';
|
||||
$lang->issue->browse = 'List';
|
||||
$lang->issue->resolvedBy = 'Resolved By';
|
||||
$lang->issue->program = 'Linked Project';
|
||||
$lang->issue->project = 'Linked Project';
|
||||
$lang->issue->title = 'Title';
|
||||
$lang->issue->desc = 'Description';
|
||||
$lang->issue->pri = 'Priority';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = 'Issue';
|
||||
$lang->issue->browse = 'List';
|
||||
$lang->issue->resolvedBy = 'Resolved By';
|
||||
$lang->issue->program = 'Linked Project';
|
||||
$lang->issue->project = 'Linked Project';
|
||||
$lang->issue->title = 'Title';
|
||||
$lang->issue->desc = 'Description';
|
||||
$lang->issue->pri = 'Priority';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = '问题';
|
||||
$lang->issue->browse = '问题列表';
|
||||
$lang->issue->resolvedBy = '解决者';
|
||||
$lang->issue->program = '所属项目';
|
||||
$lang->issue->project = '所属项目';
|
||||
$lang->issue->title = '标题';
|
||||
$lang->issue->desc = '描述';
|
||||
$lang->issue->pri = '优先级';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
$lang->issue->common = '問題';
|
||||
$lang->issue->browse = '問題列表';
|
||||
$lang->issue->resolvedBy = '解決者';
|
||||
$lang->issue->program = '所屬項目';
|
||||
$lang->issue->project = '所屬項目';
|
||||
$lang->issue->title = '標題';
|
||||
$lang->issue->desc = '描述';
|
||||
$lang->issue->pri = '優先順序';
|
||||
|
||||
@@ -80,7 +80,7 @@ class issueModel extends model
|
||||
/**
|
||||
* Get issue list data.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @param string $browseType bySearch|open|assignTo|closed|suspended|canceled
|
||||
* @param int $queryID
|
||||
* @param string $orderBy
|
||||
@@ -88,7 +88,7 @@ class issueModel extends model
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getList($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
public function getList($projectID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
$issueQuery = '';
|
||||
if($browseType == 'bysearch')
|
||||
@@ -105,7 +105,7 @@ class issueModel extends model
|
||||
|
||||
$issueList = $this->dao->select('*')->from(TABLE_ISSUE)
|
||||
->where('deleted')->eq('0')
|
||||
->beginIF($programID)->andWhere('PRJ')->eq($programID)->fi()
|
||||
->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
|
||||
->beginIF($browseType == 'open')->andWhere('status')->eq('active')->fi()
|
||||
->beginIF($browseType == 'assignto')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
|
||||
->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
|
||||
@@ -122,18 +122,18 @@ class issueModel extends model
|
||||
/**
|
||||
* Get the issue in the block.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @param string $browseType open|assignto|closed|suspended|canceled
|
||||
* @param int $limit
|
||||
* @param string $orderBy
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getBlockIssues($programID = 0, $browseType = 'all', $limit = 15, $orderBy = 'id_desc')
|
||||
public function getBlockIssues($projectID = 0, $browseType = 'all', $limit = 15, $orderBy = 'id_desc')
|
||||
{
|
||||
$issueList = $this->dao->select('*')->from(TABLE_ISSUE)
|
||||
->where('deleted')->eq('0')
|
||||
->beginIF($programID)->andWhere('PRJ')->eq($programID)->fi()
|
||||
->beginIF($projectID)->andWhere('PRJ')->eq($projectID)->fi()
|
||||
->beginIF($browseType == 'open')->andWhere('status')->eq('active')->fi()
|
||||
->beginIF($browseType == 'assignto')->andWhere('assignedTo')->eq($this->app->user->account)->fi()
|
||||
->beginIF($browseType == 'closed')->andWhere('status')->eq('closed')->fi()
|
||||
|
||||
@@ -154,7 +154,7 @@ class my extends control
|
||||
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, 'requirement');
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->type = $type;
|
||||
$this->view->programs = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->projects = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->recTotal = $recTotal;
|
||||
$this->view->recPerPage = $recPerPage;
|
||||
$this->view->pageID = $pageID;
|
||||
@@ -194,7 +194,7 @@ class my extends control
|
||||
$this->view->position[] = $this->lang->my->story;
|
||||
$this->view->stories = $this->loadModel('story')->getUserStories($this->app->user->account, $type, $sort, $pager, $storyType);
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->programs = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->projects = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->type = $type;
|
||||
$this->view->storyType = $storyType;
|
||||
$this->view->recTotal = $recTotal;
|
||||
@@ -246,7 +246,7 @@ class my extends control
|
||||
$this->view->recPerPage = $recPerPage;
|
||||
$this->view->pageID = $pageID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->programs = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->projects = $this->loadModel('program')->getPRJPairs();
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->pager = $pager;
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
<?php printf('%03d', $task->id);?>
|
||||
</td>
|
||||
<td class="c-pri"><span class='label-pri <?php echo 'label-pri-' . $task->pri;?>' title='<?php echo zget($lang->task->priList, $task->pri);?>'><?php echo zget($lang->task->priList, $task->pri);?></span></td>
|
||||
<td class='c-project'><?php echo zget($programs, $task->PRJ, '');?></td>
|
||||
<td class='c-project'><?php echo zget($projects, $task->PRJ, '');?></td>
|
||||
<td class='c-project' title="<?php echo $task->projectName;?>"><?php echo html::a($this->createLink('project', 'task', "projectid=$task->project", '', '', $task->PRJ), $task->projectName);?></td>
|
||||
<td class='c-name' title='<?php echo $task->name?>'>
|
||||
<?php if(!empty($task->team)) echo '<span class="label label-badge label-light">' . $this->lang->task->multipleAB . '</span> ';?>
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = 'Account';
|
||||
$lang->personnel->job = 'Position';
|
||||
$lang->personnel->genders = 'Gender';
|
||||
$lang->personnel->project = 'Project';
|
||||
$lang->personnel->sprint = 'Sprint/Stage';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = 'User';
|
||||
$lang->personnel->role = 'Role';
|
||||
$lang->personnel->search = 'Search';
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = 'Account';
|
||||
$lang->personnel->job = 'Position';
|
||||
$lang->personnel->genders = 'Gender';
|
||||
$lang->personnel->project = 'Project';
|
||||
$lang->personnel->sprint = 'Sprint/Stage';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = 'User';
|
||||
$lang->personnel->role = 'Role';
|
||||
$lang->personnel->search = 'Search';
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = 'Account';
|
||||
$lang->personnel->job = 'Position';
|
||||
$lang->personnel->genders = 'Gender';
|
||||
$lang->personnel->project = 'Project';
|
||||
$lang->personnel->sprint = 'Sprint/Stage';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = 'User';
|
||||
$lang->personnel->role = 'Role';
|
||||
$lang->personnel->search = 'Search';
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = 'Account';
|
||||
$lang->personnel->job = 'Position';
|
||||
$lang->personnel->genders = 'Gender';
|
||||
$lang->personnel->project = 'Project';
|
||||
$lang->personnel->sprint = 'Sprint/Stage';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = 'User';
|
||||
$lang->personnel->role = 'Role';
|
||||
$lang->personnel->search = 'Search';
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = '用户名';
|
||||
$lang->personnel->job = '岗位';
|
||||
$lang->personnel->genders = '性别';
|
||||
$lang->personnel->project = '项目';
|
||||
$lang->personnel->sprint = '迭代/阶段';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = '用户';
|
||||
$lang->personnel->role = '角色';
|
||||
$lang->personnel->search = '搜索';
|
||||
|
||||
@@ -8,7 +8,7 @@ $lang->personnel->userName = '用戶名';
|
||||
$lang->personnel->job = '崗位';
|
||||
$lang->personnel->genders = '性別';
|
||||
$lang->personnel->project = '項目';
|
||||
$lang->personnel->sprint = '迭代/階段';
|
||||
$lang->personnel->sprint = $lang->sprintCommon;
|
||||
$lang->personnel->user = '用戶';
|
||||
$lang->personnel->role = '角色';
|
||||
$lang->personnel->search = '搜索';
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = $lang->projectCommon . 'Liste';
|
||||
$lang->product->build = 'Build';
|
||||
$lang->product->projectInfo = "{$lang->projectCommon}s that are linked to this {$lang->productCommon} are listed below.";
|
||||
|
||||
$lang->product->currentExecution = 'Aktuelle Iteration/Phase';
|
||||
$lang->product->currentExecution = "Aktuelle {$lang->sprintCommon}";
|
||||
$lang->product->activeStories = 'Aktivierte [S]';
|
||||
$lang->product->activeStoriesTitle = 'Active Stories';
|
||||
$lang->product->changedStories = 'Geänderte [S]';
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = $lang->projectCommon . ' List';
|
||||
$lang->product->build = 'Build List';
|
||||
$lang->product->projectInfo = "{$lang->projectCommon}s that are linked to this {$lang->productCommon} are listed below.";
|
||||
|
||||
$lang->product->currentExecution = 'Current iteration/phase';
|
||||
$lang->product->currentExecution = "Current {$lang->sprintCommon}";
|
||||
$lang->product->activeStories = 'Active [S]';
|
||||
$lang->product->activeStoriesTitle = 'Active Stories';
|
||||
$lang->product->changedStories = 'Changed [S]';
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = ' Liste ' . $lang->projectCommon;
|
||||
$lang->product->build = 'Liste Builds';
|
||||
$lang->product->projectInfo = "Les {$lang->projectCommon}s qui sont associés à ce {$lang->productCommon} sont listés ci-dessous.";
|
||||
|
||||
$lang->product->currentExecution = 'Current iteration/phase';
|
||||
$lang->product->currentExecution = "Current {$lang->sprintCommon}";
|
||||
$lang->product->activeStories = 'Actives [S]';
|
||||
$lang->product->activeStoriesTitle = 'Stories Actives';
|
||||
$lang->product->changedStories = 'Changées [S]';
|
||||
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = 'Danh sách '.$lang->projectCommon;
|
||||
$lang->product->build = 'Danh sách bản dựng';
|
||||
$lang->product->projectInfo = "{$lang->projectCommon} đã liên kết tới {$lang->productCommon} này được liệt kê bên dưới.";
|
||||
|
||||
$lang->product->currentExecution = 'Chế độ lặp hiện thời';
|
||||
$lang->product->currentExecution = "Hiện {$lang->sprintCommon}";
|
||||
$lang->product->activeStories = 'Kích hoạt [S]';
|
||||
$lang->product->activeStoriesTitle = 'Kích hoạt câu chuyện';
|
||||
$lang->product->changedStories = 'Đã thay đổi [S]';
|
||||
|
||||
@@ -34,7 +34,7 @@ $lang->product->exportAction = "导出{$lang->productCommon}";
|
||||
$lang->product->basicInfo = '基本信息';
|
||||
$lang->product->otherInfo = '其他信息';
|
||||
|
||||
$lang->product->plans = "{$lang->planCommon}数";
|
||||
$lang->product->plans = "计划数";
|
||||
$lang->product->releases = '发布数';
|
||||
$lang->product->docs = '文档数';
|
||||
$lang->product->bugs = '相关Bug';
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = $lang->projectCommon . '列表';
|
||||
$lang->product->build = '版本列表';
|
||||
$lang->product->projectInfo = "所有与此产品关联的{$lang->projectCommon}";
|
||||
|
||||
$lang->product->currentExecution = '当前迭代/阶段';
|
||||
$lang->product->currentExecution = "当前{$lang->sprintCommon}";
|
||||
$lang->product->activeStories = "激活{$lang->productSRCommon}";
|
||||
$lang->product->activeStoriesTitle = "激活{$lang->productSRCommon}";
|
||||
$lang->product->changedStories = "已变更{$lang->productSRCommon}";
|
||||
@@ -90,7 +90,7 @@ $lang->product->release = '发布';
|
||||
$lang->product->allRelease = '所有发布';
|
||||
$lang->product->maintain = '维护中';
|
||||
$lang->product->latestDynamic = '最新动态';
|
||||
$lang->product->plan = $lang->planCommon;
|
||||
$lang->product->plan = '计划';
|
||||
$lang->product->iteration = '版本迭代';
|
||||
$lang->product->iterationInfo = '迭代 %s 次';
|
||||
$lang->product->iterationView = '查看详情';
|
||||
@@ -109,7 +109,7 @@ $lang->product->changedStory = '已变更';
|
||||
$lang->product->willClose = '待关闭';
|
||||
$lang->product->closedStory = '已关闭';
|
||||
$lang->product->unclosed = '未关闭';
|
||||
$lang->product->unplan = "未{$lang->planCommon}";
|
||||
$lang->product->unplan = "未计划";
|
||||
$lang->product->viewByUser = '按用户查看';
|
||||
|
||||
$lang->product->allStory = '所有';
|
||||
|
||||
@@ -34,7 +34,7 @@ $lang->product->exportAction = "導出{$lang->productCommon}";
|
||||
$lang->product->basicInfo = '基本信息';
|
||||
$lang->product->otherInfo = '其他信息';
|
||||
|
||||
$lang->product->plans = '計劃數';
|
||||
$lang->product->plans = "{$lang->planCommon}數";
|
||||
$lang->product->releases = '發佈數';
|
||||
$lang->product->docs = '文檔數';
|
||||
$lang->product->bugs = '相關Bug';
|
||||
@@ -47,7 +47,7 @@ $lang->product->project = $lang->projectCommon . '列表';
|
||||
$lang->product->build = '版本列表';
|
||||
$lang->product->projectInfo = "所有與此產品關聯的{$lang->projectCommon}";
|
||||
|
||||
$lang->product->currentExecution = '當前迭代/階段';
|
||||
$lang->product->currentExecution = "當前{$lang->sprintCommon}";
|
||||
$lang->product->activeStories = "激活{$lang->productSRCommon}";
|
||||
$lang->product->activeStoriesTitle = "激活{$lang->productSRCommon}";
|
||||
$lang->product->changedStories = "已變更{$lang->productSRCommon}";
|
||||
@@ -66,7 +66,7 @@ $lang->product->errorNoProduct = "還沒有創建{$lang->productCommon}!";
|
||||
$lang->product->accessDenied = "您無權訪問該{$lang->productCommon}";
|
||||
|
||||
$lang->product->id = '編號';
|
||||
$lang->product->program = '所屬項目集';
|
||||
$lang->product->program = "所屬項目集";
|
||||
$lang->product->name = "{$lang->productCommon}名稱";
|
||||
$lang->product->code = "{$lang->productCommon}代號";
|
||||
$lang->product->line = "{$lang->productCommon}綫";
|
||||
@@ -90,12 +90,13 @@ $lang->product->release = '發佈';
|
||||
$lang->product->allRelease = '所有發佈';
|
||||
$lang->product->maintain = '維護中';
|
||||
$lang->product->latestDynamic = '最新動態';
|
||||
$lang->product->plan = '計劃';
|
||||
$lang->product->plan = $lang->planCommon;
|
||||
$lang->product->iteration = '版本迭代';
|
||||
$lang->product->iterationInfo = '迭代 %s 次';
|
||||
$lang->product->iterationView = '查看詳情';
|
||||
$lang->product->createdBy = '由誰創建';
|
||||
$lang->product->createdDate = '創建日期';
|
||||
$lang->product->storyConcept = '需求概念組合';
|
||||
|
||||
$lang->product->searchStory = '搜索';
|
||||
$lang->product->assignedToMe = '指給我';
|
||||
@@ -108,7 +109,7 @@ $lang->product->changedStory = '已變更';
|
||||
$lang->product->willClose = '待關閉';
|
||||
$lang->product->closedStory = '已關閉';
|
||||
$lang->product->unclosed = '未關閉';
|
||||
$lang->product->unplan = '未計劃';
|
||||
$lang->product->unplan = "未{$lang->planCommon}";
|
||||
$lang->product->viewByUser = '按用戶查看';
|
||||
|
||||
$lang->product->allStory = '所有';
|
||||
@@ -132,9 +133,9 @@ $lang->product->statusList[''] = '';
|
||||
$lang->product->statusList['normal'] = '正常';
|
||||
$lang->product->statusList['closed'] = '結束';
|
||||
|
||||
$lang->product->aclList['open'] = "預設設置(有{$lang->productCommon}視圖權限,即可訪問)";
|
||||
$lang->product->aclList['private'] = "私有{$lang->productCommon}(只有{$lang->productCommon}相關負責人和{$lang->projectCommon}團隊成員才能訪問)";
|
||||
$lang->product->aclList['custom'] = '自定義白名單(團隊成員和白名單的成員可以訪問)';
|
||||
$lang->product->aclList['open'] = "公開(有{$lang->productCommon}視圖權限,即可訪問)";
|
||||
$lang->product->aclList['private'] = "私有({$lang->productCommon}相關負責人、所屬項目集的干係人、相關聯項目的團隊成員和干係人可訪問)";
|
||||
//$lang->product->aclList['custom'] = '自定義白名單(團隊成員和白名單的成員可以訪問)';
|
||||
|
||||
$lang->product->storySummary = "本頁共 <strong>%s</strong> 個%s,預計 <strong>%s</strong> 個{$lang->hourCommon},用例覆蓋率 <strong>%s</strong>。";
|
||||
$lang->product->checkedSummary = "選中 <strong>%total%</strong> 個%storyCommon%,預計 <strong>%estimate%</strong> 個{$lang->hourCommon},用例覆蓋率 <strong>%rate%</strong>。";
|
||||
|
||||
@@ -443,13 +443,21 @@ class productModel extends model
|
||||
*/
|
||||
public function getStoryConceptByProduct($productID = 0)
|
||||
{
|
||||
$product = $this->getById($productID);
|
||||
$URList = $this->dao->select('`key`,`value`')->from(TABLE_LANG)->where('module')->eq('custom')->andWhere('section')->eq('URList')->andWhere('lang')->eq($this->app->clientLang)->fetchPairs();
|
||||
$SRList = $this->dao->select('`key`,`value`')->from(TABLE_LANG)->where('module')->eq('custom')->andWhere('section')->eq('SRList')->andWhere('lang')->eq($this->app->clientLang)->fetchPairs();
|
||||
$product = $this->getById($productID);
|
||||
$URSRList = $this->dao->select('`key`,`value`')->from(TABLE_LANG)->where('module')->eq('custom')->andWhere('section')->eq('URSRList')->andWhere('lang')->eq($this->app->clientLang)->fetchPairs();
|
||||
|
||||
$URList = array();
|
||||
$SRList = array();
|
||||
foreach($URSRList as $key => $value)
|
||||
{
|
||||
$URSR = json_decode($value);
|
||||
$URList[$key] = $URSR->URName;
|
||||
$SRList[$key] = $URSR->SRName;
|
||||
}
|
||||
|
||||
$concept = new stdClass();
|
||||
$concept->UR = zget($URList, $product->storyConcept, $this->config->URCommonList[$this->app->clientLang]);
|
||||
$concept->SR = zget($SRList, $product->storyConcept, $this->config->SRCommonList[$this->app->clientLang]);
|
||||
$concept->UR = zget($URList, $product->storyConcept);
|
||||
$concept->SR = zget($SRList, $product->storyConcept);
|
||||
return $concept;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
* @version $Id: zh-cn.php 4659 2013-04-17 06:45:08Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
$lang->productplan->common = $lang->productCommon . $lang->planCommon;
|
||||
$lang->productplan->browse = "浏览{$lang->planCommon}";
|
||||
$lang->productplan->index = "{$lang->planCommon}列表";
|
||||
$lang->productplan->create = "创建{$lang->planCommon}";
|
||||
$lang->productplan->edit = "编辑{$lang->planCommon}";
|
||||
$lang->productplan->delete = "删除{$lang->planCommon}";
|
||||
$lang->productplan->view = "{$lang->planCommon}详情";
|
||||
$lang->productplan->common = $lang->productCommon . '计划';
|
||||
$lang->productplan->browse = "浏览计划";
|
||||
$lang->productplan->index = "计划列表";
|
||||
$lang->productplan->create = "创建计划";
|
||||
$lang->productplan->edit = "编辑计划";
|
||||
$lang->productplan->delete = "删除计划";
|
||||
$lang->productplan->view = "计划详情";
|
||||
$lang->productplan->bugSummary = "本页共 <strong>%s</strong> 个Bug";
|
||||
$lang->productplan->basicInfo = '基本信息';
|
||||
$lang->productplan->batchEdit = '批量编辑';
|
||||
@@ -28,21 +28,21 @@ $lang->productplan->batchUnlinkStory = "批量移除{$lang->productSRCommon}";
|
||||
$lang->productplan->linkedStories = $lang->productSRCommon;
|
||||
$lang->productplan->unlinkedStories = "未关联{$lang->productSRCommon}";
|
||||
$lang->productplan->updateOrder = '排序';
|
||||
$lang->productplan->createChildren = "创建子{$lang->planCommon}";
|
||||
$lang->productplan->createChildren = "创建子计划";
|
||||
|
||||
$lang->productplan->linkBug = "关联Bug";
|
||||
$lang->productplan->unlinkBug = "移除Bug";
|
||||
$lang->productplan->batchUnlinkBug = "批量移除Bug";
|
||||
$lang->productplan->linkedBugs = 'Bug';
|
||||
$lang->productplan->unlinkedBugs = '未关联Bug';
|
||||
$lang->productplan->unexpired = "未过期{$lang->planCommon}";
|
||||
$lang->productplan->all = "所有{$lang->planCommon}";
|
||||
$lang->productplan->unexpired = "未过期计划";
|
||||
$lang->productplan->all = "所有计划";
|
||||
|
||||
$lang->productplan->confirmDelete = "您确认删除该{$lang->planCommon}吗?";
|
||||
$lang->productplan->confirmDelete = "您确认删除该计划吗?";
|
||||
$lang->productplan->confirmUnlinkStory = "您确认移除该{$lang->productSRCommon}吗?";
|
||||
$lang->productplan->confirmUnlinkBug = "您确认移除该Bug吗?";
|
||||
$lang->productplan->noPlan = "暂时没有{$lang->planCommon}。";
|
||||
$lang->productplan->cannotDeleteParent = "不能删除父{$lang->planCommon}";
|
||||
$lang->productplan->noPlan = "暂时没有计划。";
|
||||
$lang->productplan->cannotDeleteParent = "不能删除父计划";
|
||||
|
||||
$lang->productplan->id = '编号';
|
||||
$lang->productplan->product = $lang->productCommon;
|
||||
@@ -51,15 +51,15 @@ $lang->productplan->title = '名称';
|
||||
$lang->productplan->desc = '描述';
|
||||
$lang->productplan->begin = '开始日期';
|
||||
$lang->productplan->end = '结束日期';
|
||||
$lang->productplan->last = "上次{$lang->planCommon}";
|
||||
$lang->productplan->last = "上次计划";
|
||||
$lang->productplan->future = '待定';
|
||||
$lang->productplan->stories = "{$lang->productSRCommon}数";
|
||||
$lang->productplan->bugs = 'Bug数';
|
||||
$lang->productplan->hour = $lang->hourCommon;
|
||||
$lang->productplan->project = $lang->projectCommon;
|
||||
$lang->productplan->parent = "父{$lang->planCommon}";
|
||||
$lang->productplan->parent = "父计划";
|
||||
$lang->productplan->parentAB = "父";
|
||||
$lang->productplan->children = "子{$lang->planCommon}";
|
||||
$lang->productplan->children = "子计划";
|
||||
$lang->productplan->childrenAB = "子";
|
||||
$lang->productplan->order = "排序";
|
||||
$lang->productplan->deleted = "已删除";
|
||||
|
||||
@@ -122,7 +122,7 @@ $lang->project->aclList['private'] = "私有(团队成员和项目负责人、
|
||||
$lang->project->storyPoint = '故事点';
|
||||
|
||||
$lang->project->burnByList['left'] = '按剩余工时查看';
|
||||
$lang->project->burnByList['estimate'] = "按{$lang->planCommon}工时查看";
|
||||
$lang->project->burnByList['estimate'] = "按计划工时查看";
|
||||
$lang->project->burnByList['storyPoint'] = '按故事点查看';
|
||||
|
||||
/* 方法列表。*/
|
||||
@@ -144,8 +144,8 @@ $lang->project->doc = '文档列表';
|
||||
$lang->project->doclib = '文档库列表';
|
||||
$lang->project->manageProducts = '关联' . $lang->productCommon;
|
||||
$lang->project->linkStory = "关联{$lang->projectSRCommon}";
|
||||
$lang->project->linkStoryByPlan = "按照{$lang->planCommon}关联";
|
||||
$lang->project->linkPlan = "关联{$lang->planCommon}";
|
||||
$lang->project->linkStoryByPlan = "按照计划关联";
|
||||
$lang->project->linkPlan = "关联计划";
|
||||
$lang->project->unlinkStoryTasks = "未关联{$lang->projectSRCommon}任务";
|
||||
$lang->project->linkedProducts = '已关联';
|
||||
$lang->project->unlinkedProducts = '未关联';
|
||||
@@ -174,7 +174,7 @@ $lang->project->unlinkStory = "移除{$lang->projectSRCommon}";
|
||||
$lang->project->unlinkStoryAB = "移除{$lang->projectSRCommon}";
|
||||
$lang->project->batchUnlinkStory = "批量移除{$lang->projectSRCommon}";
|
||||
$lang->project->importTask = '转入任务';
|
||||
$lang->project->importPlanStories = "按{$lang->planCommon}关联{$lang->projectSRCommon}";
|
||||
$lang->project->importPlanStories = "按计划关联{$lang->projectSRCommon}";
|
||||
$lang->project->importBug = '导入Bug';
|
||||
$lang->project->updateOrder = "{$lang->projectCommon}排序";
|
||||
$lang->project->tree = '树状图';
|
||||
@@ -184,7 +184,7 @@ $lang->project->treeOnlyTask = '树状图只看任务';
|
||||
$lang->project->treeOnlyStory = "树状图只看{$lang->projectSRCommon}";
|
||||
$lang->project->storyKanban = "{$lang->projectSRCommon}看板";
|
||||
$lang->project->storySort = "{$lang->projectSRCommon}排序";
|
||||
$lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入' . $lang->planCommon . '关联的相关' . $lang->projectSRCommon . '?';
|
||||
$lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入计划关联的相关' . $lang->projectSRCommon . '?';
|
||||
$lang->project->iteration = '版本迭代';
|
||||
$lang->project->iterationInfo = '迭代%s次';
|
||||
$lang->project->viewAll = '查看所有';
|
||||
@@ -227,7 +227,7 @@ $lang->project->aboveAllProduct = "以上所有{$lang->productCommon}";
|
||||
$lang->project->aboveAllProject = "以上所有{$lang->projectCommon}";
|
||||
|
||||
/* 页面提示。*/
|
||||
$lang->project->linkStoryByPlanTips = "此操作会将所选{$lang->planCommon}下面的{$lang->projectSRCommon}全部关联到此{$lang->projectCommon}中";
|
||||
$lang->project->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->projectSRCommon}全部关联到此{$lang->projectCommon}中";
|
||||
$lang->project->selectProject = "请选择{$lang->projectCommon}";
|
||||
$lang->project->selectExecution = "请选择阶段/迭代/冲刺";
|
||||
$lang->project->beginAndEnd = '起止时间';
|
||||
|
||||
@@ -71,7 +71,7 @@ $lang->report->taskTotal = "总任务数";
|
||||
$lang->report->manhourTotal = "总工时";
|
||||
$lang->report->validRate = "有效率";
|
||||
$lang->report->validRateTips = "方案为已解决或延期/状态为已解决或已关闭";
|
||||
$lang->report->unplanned = "未{$lang->planCommon}";
|
||||
$lang->report->unplanned = "未计划";
|
||||
$lang->report->workday = '每天工时';
|
||||
$lang->report->diffDays = '工作日天数';
|
||||
|
||||
@@ -82,7 +82,7 @@ $lang->report->typeList['line'] = '折线图';
|
||||
|
||||
$lang->report->conditions = '筛选条件:';
|
||||
$lang->report->closedProduct = '关闭' . $lang->productCommon;
|
||||
$lang->report->overduePlan = "过期{$lang->planCommon}";
|
||||
$lang->report->overduePlan = "过期计划";
|
||||
|
||||
/* daily reminder. */
|
||||
$lang->report->idAB = 'ID';
|
||||
@@ -112,7 +112,7 @@ $lang->report->annualData->consumed = "累计工时数";
|
||||
$lang->report->annualData->foundBugs = "累计创建Bug数";
|
||||
$lang->report->annualData->createdCases = "累计创建用例数";
|
||||
$lang->report->annualData->involvedProducts = "累计参与{$lang->productCommon}数";
|
||||
$lang->report->annualData->createdPlans = "累计创建{$lang->planCommon}数";
|
||||
$lang->report->annualData->createdPlans = "累计创建计划数";
|
||||
$lang->report->annualData->createdStories = "累计创建{$lang->productSRCommon}数";
|
||||
|
||||
$lang->report->annualData->productOverview = "{$lang->productCommon}创建{$lang->productSRCommon}数及占比";
|
||||
@@ -128,7 +128,7 @@ $lang->report->annualData->finishedTask = '完成任务数';
|
||||
$lang->report->annualData->foundBug = '创建Bug数';
|
||||
$lang->report->annualData->resolvedBug = '解决Bug数';
|
||||
$lang->report->annualData->productName = "{$lang->productCommon}名称";
|
||||
$lang->report->annualData->planCount = "{$lang->planCommon}数";
|
||||
$lang->report->annualData->planCount = "计划数";
|
||||
$lang->report->annualData->storyCount = "{$lang->productSRCommon}数";
|
||||
|
||||
$lang->report->annualData->qaData = "累计创建Bug数和创建用例数";
|
||||
|
||||
@@ -36,7 +36,7 @@ $lang->score->modules['testcase'] = '用例';
|
||||
$lang->score->modules['testtask'] = '测试单';
|
||||
$lang->score->modules['build'] = 'Build';
|
||||
$lang->score->modules['project'] = '项目';
|
||||
$lang->score->modules['productplan'] = $lang->planCommon;
|
||||
$lang->score->modules['productplan'] = '计划';
|
||||
$lang->score->modules['release'] = '发布';
|
||||
$lang->score->modules['block'] = '区块';
|
||||
$lang->score->modules['search'] = '搜索';
|
||||
@@ -74,7 +74,7 @@ $lang->score->methods['testcase']['create'] = '创建用例';
|
||||
$lang->score->methods['build']['create'] = '创建版本';
|
||||
$lang->score->methods['project']['create'] = '创建项目';
|
||||
$lang->score->methods['project']['close'] = '项目完成';
|
||||
$lang->score->methods['productplan']['create'] = "创建{$lang->planCommon}";
|
||||
$lang->score->methods['productplan']['create'] = "创建计划";
|
||||
$lang->score->methods['release']['create'] = '创建发布';
|
||||
$lang->score->methods['block']['set'] = '区块自定义设置';
|
||||
$lang->score->methods['search']['saveQuery'] = '保存搜索条件';
|
||||
|
||||
@@ -66,7 +66,7 @@ $lang->story->zeroTask = "只列零任务{$lang->productSRCommon}";
|
||||
$lang->story->reportChart = "统计报表";
|
||||
$lang->story->reportAction = "统计报表";
|
||||
$lang->story->copyTitle = "同{$lang->productSRCommon}名称";
|
||||
$lang->story->batchChangePlan = "批量修改{$lang->planCommon}";
|
||||
$lang->story->batchChangePlan = "批量修改计划";
|
||||
$lang->story->batchChangeBranch = "批量修改分支";
|
||||
$lang->story->batchChangeStage = "批量修改阶段";
|
||||
$lang->story->batchAssignTo = "批量指派";
|
||||
@@ -122,8 +122,8 @@ $lang->story->rejectedReason = '拒绝原因';
|
||||
$lang->story->reviewedBy = '由谁评审';
|
||||
$lang->story->reviewedDate = '评审时间';
|
||||
$lang->story->version = '版本号';
|
||||
$lang->story->plan = "所属{$lang->planCommon}";
|
||||
$lang->story->planAB = $lang->planCommon;
|
||||
$lang->story->plan = "所属计划";
|
||||
$lang->story->planAB = '计划';
|
||||
$lang->story->comment = '备注';
|
||||
$lang->story->children = "子{$lang->productSRCommon}";
|
||||
$lang->story->childrenAB = "子";
|
||||
@@ -168,7 +168,7 @@ $lang->story->statusList['changed'] = '已变更';
|
||||
|
||||
$lang->story->stageList[''] = '';
|
||||
$lang->story->stageList['wait'] = '未开始';
|
||||
$lang->story->stageList['planned'] = "已{$lang->planCommon}";
|
||||
$lang->story->stageList['planned'] = "已计划";
|
||||
$lang->story->stageList['projected'] = '已立项';
|
||||
$lang->story->stageList['developing'] = '研发中';
|
||||
$lang->story->stageList['developed'] = '研发完毕';
|
||||
@@ -273,8 +273,8 @@ $lang->story->form->file = "附件,如果该{$lang->productSRCommon}有
|
||||
$lang->story->action = new stdclass();
|
||||
$lang->story->action->reviewed = array('main' => '$date, 由 <strong>$actor</strong> 记录评审结果,结果为 <strong>$extra</strong>。', 'extra' => 'reviewResultList');
|
||||
$lang->story->action->closed = array('main' => '$date, 由 <strong>$actor</strong> 关闭,原因为 <strong>$extra</strong> $appendLink。', 'extra' => 'reasonList');
|
||||
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->planCommon . ' <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->planCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2plan = array('main' => '$date, 由 <strong>$actor</strong> 关联到计划 <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 <strong>$actor</strong> 从计划 <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2project = array('main' => '$date, 由 <strong>$actor</strong> 关联到' . $lang->projectCommon . ' <strong>$extra</strong>。');
|
||||
$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 <strong>$actor</strong> 从' . $lang->projectCommon . ' <strong>$extra</strong> 移除。');
|
||||
$lang->story->action->linked2build = array('main' => '$date, 由 <strong>$actor</strong> 关联到版本 <strong>$extra</strong>。');
|
||||
@@ -296,7 +296,7 @@ $lang->story->report->value = "{$lang->productSRCommon}数";
|
||||
$lang->story->report->charts['storysPerProduct'] = $lang->productCommon . "{$lang->productSRCommon}数量";
|
||||
$lang->story->report->charts['storysPerModule'] = "模块{$lang->productSRCommon}数量";
|
||||
$lang->story->report->charts['storysPerSource'] = "按{$lang->productSRCommon}来源统计";
|
||||
$lang->story->report->charts['storysPerPlan'] = "按{$lang->planCommon}进行统计";
|
||||
$lang->story->report->charts['storysPerPlan'] = "按计划进行统计";
|
||||
$lang->story->report->charts['storysPerStatus'] = '按状态进行统计';
|
||||
$lang->story->report->charts['storysPerStage'] = '按所处阶段进行统计';
|
||||
$lang->story->report->charts['storysPerPri'] = '按优先级进行统计';
|
||||
@@ -328,7 +328,7 @@ $lang->story->report->storysPerChange = new stdclass();
|
||||
$lang->story->report->storysPerProduct->item = $lang->productCommon;
|
||||
$lang->story->report->storysPerModule->item = '模块';
|
||||
$lang->story->report->storysPerSource->item = '来源';
|
||||
$lang->story->report->storysPerPlan->item = $lang->planCommon;
|
||||
$lang->story->report->storysPerPlan->item = '计划';
|
||||
$lang->story->report->storysPerStatus->item = '状态';
|
||||
$lang->story->report->storysPerStage->item = '阶段';
|
||||
$lang->story->report->storysPerPri->item = '优先级';
|
||||
@@ -354,7 +354,7 @@ $lang->story->report->storysPerChange->graph = new stdclass();
|
||||
$lang->story->report->storysPerProduct->graph->xAxisName = $lang->productCommon;
|
||||
$lang->story->report->storysPerModule->graph->xAxisName = '模块';
|
||||
$lang->story->report->storysPerSource->graph->xAxisName = '来源';
|
||||
$lang->story->report->storysPerPlan->graph->xAxisName = $lang->planCommon;
|
||||
$lang->story->report->storysPerPlan->graph->xAxisName = '计划';
|
||||
$lang->story->report->storysPerStatus->graph->xAxisName = '状态';
|
||||
$lang->story->report->storysPerStage->graph->xAxisName = '所处阶段';
|
||||
$lang->story->report->storysPerPri->graph->xAxisName = '优先级';
|
||||
|
||||
@@ -631,12 +631,22 @@ class upgradeModel extends model
|
||||
$this->appendExec('12_5_1');
|
||||
case '20_0_alpha':
|
||||
$this->saveLogs('Execute 20_0_alpha');
|
||||
|
||||
/* Ugrade 12.x when from 20.x. */
|
||||
if(strpos($fromVersion, '20_0') === 0)
|
||||
{
|
||||
$this->execSQL($this->getUpgradeFile('12.4.4'));
|
||||
$this->adjustPriv12_5();
|
||||
$this->appendExec('12_4_4');
|
||||
}
|
||||
|
||||
$this->execSQL($this->getUpgradeFile('20.0.alpha'));
|
||||
$this->setWork2Full();
|
||||
$this->initUserView();
|
||||
$this->appendExec('20_0_alpha');
|
||||
case '20_0_alpha1':
|
||||
$this->saveLogs('Execute 20_0_alpha1');
|
||||
|
||||
$this->execSQL($this->getUpgradeFile('20.0.alpha1'));
|
||||
$this->appendExec('20_0_alpha1');
|
||||
case '20_0_beta1':
|
||||
|
||||
Reference in New Issue
Block a user