diff --git a/module/common/lang/en.php b/module/common/lang/en.php
index 5ec1b2d464..22abd0e6c9 100644
--- a/module/common/lang/en.php
+++ b/module/common/lang/en.php
@@ -375,6 +375,7 @@ $lang->admin->menu->custom = array('link' => 'Custom|custom|set', 'subModule'
$lang->admin->menu->sso = array('link' => 'Integration|admin|sso');
$lang->admin->menu->dev = array('link' => 'CSD|dev|api', 'alias' => 'db', 'subModule' => 'dev,entry');
+$lang->admin->menu->translate = array('link' => 'Translate|translate|index', 'subModule' => 'translate');
$lang->admin->menu->data = array('link' => 'Data|backup|index', 'subModule' => 'backup,action');
$lang->admin->menu->safe = array('link' => 'Security|admin|safe', 'alias' => 'checkweak');
$lang->admin->menu->system = array('link' => 'System|cron|index', 'subModule' => 'cron');
@@ -414,6 +415,7 @@ $lang->entry = new stdclass();
$lang->webhook = new stdclass();
$lang->message = new stdclass();
$lang->search = new stdclass();
+$lang->translate = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
@@ -427,6 +429,7 @@ $lang->dev->menu = $lang->admin->menu;
$lang->entry->menu = $lang->admin->menu;
$lang->webhook->menu = $lang->admin->menu;
$lang->message->menu = $lang->admin->menu;
+$lang->translate->menu = $lang->admin->menu;
/* Menu group. */
$lang->menugroup = new stdclass();
@@ -463,6 +466,7 @@ $lang->menugroup->dev = 'admin';
$lang->menugroup->entry = 'admin';
$lang->menugroup->webhook = 'admin';
$lang->menugroup->message = 'admin';
+$lang->menugroup->translate = 'admin';
/* Error info. */
$lang->error = new stdclass();
diff --git a/module/translate/css/index.css b/module/translate/css/index.css
index 7b19407fc6..611307337a 100644
--- a/module/translate/css/index.css
+++ b/module/translate/css/index.css
@@ -3,7 +3,9 @@
.panel .panel-heading{border-bottom:1px solid #ddd;}
.panel .panel-body{padding-bottom:5px;}
#translatingLangs .panel .panel-body{padding-right:0px;}
-#translatingLangs .panel .panel-body .actions{padding:0px; width:95px;}
+#translatingLangs .panel .panel-body .actions{padding:0px;}
+.w-95px{width:95px !important;}
+.w-130px{width:130px !important;}
.panel .text-progress{color:#999;}
.panel .panel-actions{top:8px;}
.panel p{padding-bottom:5px;}
diff --git a/module/translate/lang/en.php b/module/translate/lang/en.php
index 17a2810c9c..093a985617 100644
--- a/module/translate/lang/en.php
+++ b/module/translate/lang/en.php
@@ -34,22 +34,22 @@ $lang->translate->reviewTurnonList['0'] = 'Off';
$lang->translate->resultList['pass'] = 'Pass';
$lang->translate->resultList['reject'] = 'Reject';
-$lang->translate->group = 'Group';
-$lang->translate->allTotal = 'Total Items';
-$lang->translate->translatedTotal = 'Translated Items';
-$lang->translate->changedTotal = 'Modified Items';
-$lang->translate->reviewedTotal = 'Reviewed Items';
-$lang->translate->translatedProgress = 'Translation Progress';
-$lang->translate->reviewedProgress = 'Review Porgress';
+$lang->translate->group = 'View';
+$lang->translate->allTotal = 'Total';
+$lang->translate->translatedTotal = 'Translated';
+$lang->translate->changedTotal = 'Modified';
+$lang->translate->reviewedTotal = 'Reviewed';
+$lang->translate->translatedProgress = 'Translation';
+$lang->translate->reviewedProgress = 'Review';
-$lang->translate->builtIn = 'Built-in Languages';
+$lang->translate->builtIn = 'Built-in Language';
$lang->translate->finished = 'Finished Translation';
-$lang->translate->progress = 'Finished %s';
+$lang->translate->progress = '%s Done';
$lang->translate->count = '(%s languages)';
-$lang->translate->finishedLang = 'Finished Translation';
+$lang->translate->finishedLang = 'Translated';
$lang->translate->translatingLang = 'Translating';
-$lang->translate->allItems = 'Items of All Languages:%s';
+$lang->translate->allItems = 'All Items:%s';
$lang->translate->statusList['waiting'] = 'Waiting';
$lang->translate->statusList['translated'] = 'Done';
@@ -62,4 +62,4 @@ $lang->translate->notice->failDirPriv = "You don't have the privilege to write
$lang->translate->notice->failCopyFile = "Failed to copy %s to %s. Please edit your privilege.";
$lang->translate->notice->failUnique = "Item with Code %s exists.";
$lang->translate->notice->failMaxInput = "Edit the value of max_input_vars to % in php.ini to make sure your form is submitted.";
-$lang->translate->notice->failRuleCode = "『Code shoud be letters, numbers and underlines.";
+$lang->translate->notice->failRuleCode = "『Code』 shoud be letters, numbers and underlines.";
diff --git a/module/translate/lang/zh-cn.php b/module/translate/lang/zh-cn.php
index 313aa175a8..ac04041866 100644
--- a/module/translate/lang/zh-cn.php
+++ b/module/translate/lang/zh-cn.php
@@ -34,7 +34,7 @@ $lang->translate->reviewTurnonList['0'] = '关闭';
$lang->translate->resultList['pass'] = '通过';
$lang->translate->resultList['reject'] = '拒绝';
-$lang->translate->group = '分组';
+$lang->translate->group = '视图';
$lang->translate->allTotal = '总条目';
$lang->translate->translatedTotal = '已翻译条目数';
$lang->translate->changedTotal = '已修改条目数';
diff --git a/module/translate/model.php b/module/translate/model.php
index 6fea96d872..6919a2ee90 100644
--- a/module/translate/model.php
+++ b/module/translate/model.php
@@ -502,7 +502,12 @@ class translateModel extends model
if(empty($translations)) return true;
$translateGroups = array();
- foreach($translations as $translation) $translateGroups[$translation->lang][$translation->mode][$translation->module][$translation->key] = $translation;
+ $translateIdList = array();
+ foreach($translations as $translation)
+ {
+ $translateIdList[$translation->id] = $translation->id;
+ $translateGroups[$translation->lang][$translation->mode][$translation->module][$translation->key] = $translation;
+ }
$moduleGroups = $this->getModules();
$allModules = array();
@@ -520,7 +525,7 @@ class translateModel extends model
{
foreach($languages as $langCode)
{
- $langTranslations = zget($translateGroups, $translation->lang, array());
+ $langTranslations = zget($translateGroups, $langCode, array());
foreach($flows as $flow)
{
foreach($allModules as $moduleName)
@@ -547,26 +552,23 @@ class translateModel extends model
}
else
{
- if($langValue == $translation->refer)
+ if(!isset($translateIdList[$translation->id])) continue;
+ $specialedValue = htmlspecialchars($langValue);
+ if($specialedValue == $translation->refer)
{
$this->dao->update(TABLE_TRANSLATION)->set('version')->eq($version)->where('id')->eq($translation->id)->exec();
}
- elseif($langValue != $translation->refer)
+ elseif($specialedValue != $translation->refer)
{
- $this->dao->update(TABLE_TRANSLATION)->set('version')->eq($version)->set('status')->eq('changed')->set('refer')->eq(htmlspecialchars($langValue))->where('id')->eq($translation->id)->exec();
+ $this->dao->update(TABLE_TRANSLATION)->set('version')->eq($version)->set('status')->eq('changed')->set('refer')->eq($specialedValue)->where('id')->eq($translation->id)->exec();
}
- unset($translations[$langKey]);
- }
- if($translations)
- {
- $idList = array();
- foreach($translations as $translation) $idList[$translation->id] = $translation->id;
- $this->dao->delete()->from(TABLE_TRANSLATION)->where('id')->in($idList)->exec();
+ unset($translateIdList[$translation->id]);
}
}
}
}
}
}
+ if($translateIdList) $this->dao->delete()->from(TABLE_TRANSLATION)->where('id')->in($translateIdList)->exec();
}
}
diff --git a/module/translate/view/choosemodule.html.php b/module/translate/view/choosemodule.html.php
index d48dfba46d..8e3c3cf937 100644
--- a/module/translate/view/choosemodule.html.php
+++ b/module/translate/view/choosemodule.html.php
@@ -13,7 +13,10 @@
-
langs[$language]}] " . $lang->dev->moduleList . ' > ' . $lang->translate->chooseModule;?>
+
+createLink('translate', 'index'), $lang->translate->index) . ' > ';?>
+langs[$language]}] " . $lang->dev->moduleList . ' > ' . $lang->translate->chooseModule;?>
+
@@ -30,7 +33,7 @@
translate->needReview):?>
| translate->reviewedProgress;?> |
- actions;?> |
+ '>actions;?> |
diff --git a/module/translate/view/index.html.php b/module/translate/view/index.html.php
index f361977e4e..e6aa696ca8 100644
--- a/module/translate/view/index.html.php
+++ b/module/translate/view/index.html.php
@@ -47,7 +47,7 @@
| name;?> |
translate->progress, ($data->progress * 100) . '%');?> |
-
+ | '>
translate->common, '', "class='btn btn-sm'");
echo html::a(inlink('export', "language=$langKey"), $lang->export, '', "class='btn btn-sm iframe'");
diff --git a/module/translate/view/module.html.php b/module/translate/view/module.html.php
index b5ba38c4b7..4229230956 100644
--- a/module/translate/view/module.html.php
+++ b/module/translate/view/module.html.php
@@ -126,7 +126,7 @@
|
-
+
diff --git a/module/translate/view/review.html.php b/module/translate/view/review.html.php
index adcf8582c6..9d5b6ac845 100644
--- a/module/translate/view/review.html.php
+++ b/module/translate/view/review.html.php
@@ -34,9 +34,10 @@