This is an automated email from the ASF dual-hosted git repository. xiangying pushed a commit to branch branch-0.5.0 in repository https://gitbox.apache.org/repos/asf/pulsar-manager.git
commit e0894e09568558b7df5c9e8a9b57407fae8bbd95 Author: linkun <linkun0...@163.com> AuthorDate: Wed Aug 9 17:57:23 2023 +0800 fix: i18n bugs of Breadcrumb (#526) (cherry picked from commit f8304b4d49bcee31e5b47d960ff7b698bd08757e) --- front-end/src/components/Breadcrumb/index.vue | 58 +++++++++++++-------------- front-end/src/utils/i18n.js | 9 ++--- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/front-end/src/components/Breadcrumb/index.vue b/front-end/src/components/Breadcrumb/index.vue index 159ca27..399d3b2 100644 --- a/front-end/src/components/Breadcrumb/index.vue +++ b/front-end/src/components/Breadcrumb/index.vue @@ -17,8 +17,8 @@ <el-breadcrumb class="app-breadcrumb" separator="/"> <transition-group name="breadcrumb"> <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> - <span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{ generateTitle(item.meta.title) }}</span> - <router-link v-else :to="item.path">{{ generateTitle(item.meta.title) }}</router-link> + <span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{ generateTitle(item.meta.title, 'breadcrumb') }}</span> + <router-link v-else :to="item.path">{{ generateTitle(item.meta.title, 'breadcrumb') }}</router-link> </el-breadcrumb-item> </transition-group> </el-breadcrumb> @@ -62,7 +62,7 @@ export default { 'path': matched[i].path, 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.management') + 'title': 'management' } }) } @@ -71,21 +71,21 @@ export default { route.push({ 'path': '/management/clusters', 'meta': { - 'title': this.$i18n.t('breadcrumb.clusters') + 'title': 'clusters' }, 'redirect': matched[i].redirect }) route.push({ 'path': '/management/clusters/' + pathList[3] + '/cluster?tab=brokers', 'meta': { - 'title': this.$i18n.t('breadcrumb.brokers') + 'title': 'brokers' }, 'redirect': matched[i].redirect }) route.push({ 'path': matched[i].path, 'meta': { - 'title': this.$i18n.t('breadcrumb.brokerInfo') + 'title': 'brokerInfo' }, 'redirect': matched[i].redirect }) @@ -93,21 +93,21 @@ export default { route.push({ 'path': '/management/clusters', 'meta': { - 'title': this.$i18n.t('breadcrumb.clusters') + 'title': 'clusters' }, 'redirect': matched[i].redirect }) route.push({ 'path': '/management/clusters/' + pathList[3] + '/cluster?tab=isolationPolicies', 'meta': { - 'title': this.$i18n.t('breadcrumb.isolationPolicies') + 'title': 'isolationPolicies' }, 'redirect': matched[i].redirect }) route.push({ 'path': matched[i].path, 'meta': { - 'title': this.$i18n.t('breadcrumb.isolationPolicyInfo') + 'title': 'isolationPolicyInfo' }, 'redirect': matched[i].redirect }) @@ -115,21 +115,21 @@ export default { route.push({ 'path': '/management/clusters', 'meta': { - 'title': this.$i18n.t('breadcrumb.clusters') + 'title': 'clusters' }, 'redirect': matched[i].redirect }) route.push({ 'path': '/management/clusters/' + pathList[3] + '/cluster?tab=failureDomains', 'meta': { - 'title': this.$i18n.t('breadcrumb.failureDomains') + 'title': 'failureDomains' }, 'redirect': matched[i].redirect }) route.push({ 'path': matched[i].path, 'meta': { - 'title': this.$i18n.t('breadcrumb.failureDomainInfo') + 'title': 'failureDomainInfo' }, 'redirect': matched[i].redirect }) @@ -137,14 +137,14 @@ export default { route.push({ 'path': '/management/clusters', 'meta': { - 'title': this.$i18n.t('breadcrumb.clusters') + 'title': 'clusters' }, 'redirect': matched[i].redirect }) route.push({ 'path': matched[i].path, 'meta': { - 'title': this.$i18n.t('breadcrumb.clusterInfo') + 'title': 'clusterInfo' }, 'redirect': matched[i].redirect }) @@ -152,7 +152,7 @@ export default { route.push({ 'path': '/management/clusters', 'meta': { - 'title': this.$i18n.t('breadcrumb.clusters') + 'title': 'clusters' }, 'redirect': matched[i].redirect }) @@ -160,7 +160,7 @@ export default { route.push({ 'path': '/management/tenants', 'meta': { - 'title': this.$i18n.t('breadcrumb.tenants') + 'title': 'tenants' }, 'redirect': matched[i].redirect }) @@ -168,35 +168,35 @@ export default { 'path': '/management/tenants/tenantInfo/' + pathList[4] + '?tab=namespaces', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.namespaces') + 'title': 'namespaces' } }) route.push({ 'path': '/management/namespaces/' + pathList[4] + '/' + pathList[5] + '/namespace' + '?tab=topics', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.topics') + 'title': 'topics' } }) route.push({ 'path': '/management/topics/' + pathList[3] + '/' + pathList[4] + '/' + pathList[5] + '/' + pathList[6] + '/topic', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.subscriptions') + 'title': 'subscriptions' } }) route.push({ 'path': matched[i].path, 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.subscriptionInfo') + 'title': 'subscriptionInfo' } }) } else if (pathList.indexOf('topics') === 2) { route.push({ 'path': '/management/tenants', 'meta': { - 'title': this.$i18n.t('breadcrumb.tenants') + 'title': 'tenants' }, 'redirect': matched[i].redirect }) @@ -204,21 +204,21 @@ export default { 'path': '/management/tenants/tenantInfo/' + pathList[4] + '?tab=namespaces', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.namespaces') + 'title': 'namespaces' } }) route.push({ 'path': '/management/namespaces/' + pathList[4] + '/' + pathList[5] + '/namespace' + '?tab=topics', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.topics') + 'title': 'topics' } }) route.push({ 'path': matched[i].path, 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.topicInfo') + 'title': 'topicInfo' } }) } else if (pathList.indexOf('namespaces') === 2) { @@ -226,21 +226,21 @@ export default { 'path': '/management/tenants', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.tenants') + 'title': 'tenants' } }) route.push({ 'path': '/management/tenants/tenantInfo/' + pathList[3] + '?tab=namespaces', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.namespaces') + 'title': 'namespaces' } }) route.push({ 'path': matched[i].path, 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.namespaceInfo') + 'title': 'namespaceInfo' } }) } else if (pathList.indexOf('tenantInfo') === 3) { @@ -248,14 +248,14 @@ export default { 'path': '/management/tenants', 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.tenants') + 'title': 'tenants' } }) route.push({ 'path': matched[i].path, 'redirect': matched[i].redirect, 'meta': { - 'title': this.$i18n.t('breadcrumb.tenantInfo') + 'title': 'tenantInfo' } }) } diff --git a/front-end/src/utils/i18n.js b/front-end/src/utils/i18n.js index 5f5f2a1..2fc8f72 100644 --- a/front-end/src/utils/i18n.js +++ b/front-end/src/utils/i18n.js @@ -12,14 +12,13 @@ * limitations under the License. */ // translate router.meta.title, be used in breadcrumb sidebar tagsview -export function generateTitle(title) { - const hasKey = this.$te('route.' + title) +export function generateTitle(title, type = 'route') { + const i18nKey = `${type}.${title}` + const hasKey = this.$te(i18nKey) if (hasKey) { // $t :this method from vue-i18n, inject in @/lang/index.js - const translatedTitle = this.$t('route.' + title) - - return translatedTitle + return this.$t(i18nKey) } return title }