Skip to content

Commit 1b5cdbc

Browse files
authored
Merge pull request #50 from WeBankFinTech/branch_joy
国际化更新+metric文案修正
2 parents f738f27 + be0729e commit 1b5cdbc

File tree

11 files changed

+155
-45
lines changed

11 files changed

+155
-45
lines changed

docs/.vitepress/components/BMetricTip/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# BTagsPanel
1+
# BMetricTip
22
图标悬浮提示说明
33

44
## 组件注册

packages/traction-widget/components/MetricTip/MetricTip.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</FTooltip>
1111
</span>
1212
</template>
13-
<script setup>
13+
<script setup lang="ts">
1414
import {
1515
defineProps
1616
} from 'vue';

packages/traction-widget/components/PageLoading/pageLoading.vue

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div class="tip">
55
<div class="tip-text">{{ tip }}</div>
66
<div class="tip-button">
7-
<FButton v-if="actionType === 'noPermissions'" type="default" @click="logout">退出登录</FButton>
7+
<FButton v-if="actionType === 'noPermissions'" type="default" @click="logout">{{ pageLoadingLocalObj?.logout }}</FButton>
88
</div>
99
</div>
1010
</div>
@@ -13,7 +13,7 @@
1313
<div class="tip">
1414
<div class="tip-text">{{ tip }}</div>
1515
<div class="tip-button">
16-
<FButton v-if="actionType === 'noPermissions'" type="default" @click="logout">退出登录</FButton>
16+
<FButton v-if="actionType === 'noPermissions'" type="default" @click="logout">{{ pageLoadingLocalObj?.logout }}</FButton>
1717
</div>
1818
</div>
1919

@@ -23,6 +23,9 @@
2323
<script setup lang="ts">
2424
import { computed, PropType, defineEmits } from 'vue';
2525
import { FButton } from '@fesjs/fes-design';
26+
import { useLocale } from '../hooks/useLocale';
27+
const locale = useLocale();
28+
const pageLoadingLocalObj = locale.pageLoading || {};
2629
const props = defineProps({
2730
type: {
2831
type: String,
@@ -38,21 +41,16 @@ const props = defineProps({
3841
emptyInitResult?: string,
3942
emptyQueryResult?: string
4043
}>,
41-
default: () => ({
42-
loading: 'Loading. . .',
43-
emptyInitResult: '这里还没有数据. . .',
44-
emptyQueryResult: '没有符合条件的结果. . .',
45-
noPermissions: '暂无权限'
46-
})
44+
default: () => ({})
4745
}
4846
});
4947
const emits = defineEmits(['logout']);
5048
const type = computed(() => props.type);
5149
const loadingText = computed(() => ({
5250
loading: 'Loading. . .',
53-
emptyInitResult: '这里还没有数据. . .',
54-
emptyQueryResult: '没有符合条件的结果. . .',
55-
noPermissions: '暂无权限',
51+
emptyInitResult: pageLoadingLocalObj?.noData,
52+
emptyQueryResult: pageLoadingLocalObj?.noResult,
53+
noPermissions: pageLoadingLocalObj?.noPermissions,
5654
...props.loadingText
5755
}));
5856
const tip = computed(() => {

packages/traction-widget/components/Search/Search.vue

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,31 @@
1616
'gap-16': props.isLetgo
1717
}">
1818
<FSpace :size="16" v-if="!props.isLetgo">
19-
<FButton type="primary" @click="handleSearch">查询</FButton>
19+
<FButton type="primary" @click="handleSearch">{{searchLocalObj?.search}}</FButton>
2020
<template v-if="props.isAdvance">
2121
<FButton v-if="isAdvanceCount" @click="handleAdvance"
2222
:class="querySelectedCount > 0 ? 'selected-count' : ''">
23-
高级筛选{{querySelectedCount > 0 ? `(已选${querySelectedCount}项)` : ''}}
23+
{{searchLocalObj?.advance}}{{querySelectedCount > 0 ? `(${searchLocalObj?.selected}${querySelectedCount}${searchLocalObj?.item})` : ''}}
2424
</FButton>
2525
<FButton v-else @click="handleAdvance">
26-
高级筛选
26+
{{searchLocalObj?.advance}}
2727
</FButton>
2828
</template>
29-
<FButton v-if="props.isReset" @click="handleReset">重置</FButton>
29+
<FButton v-if="props.isReset" @click="handleReset">{{searchLocalObj?.reset}}</FButton>
3030
<slot name="exButton"></slot>
3131
</FSpace>
3232
<template v-else>
33-
<FButton type="primary" @click="handleSearch">查询</FButton>
33+
<FButton type="primary" @click="handleSearch">{{searchLocalObj?.search}}</FButton>
3434
<template v-if="props.isAdvance">
3535
<FButton v-if="isAdvanceCount" @click="handleAdvance"
3636
:class="querySelectedCount > 0 ? 'selected-count' : ''">
37-
高级筛选{{querySelectedCount > 0 ? `(已选${querySelectedCount}项)` : ''}}
37+
{{searchLocalObj?.advance}}{{querySelectedCount > 0 ? `(${searchLocalObj?.selected} ${querySelectedCount} ${searchLocalObj?.item})` : ''}}
3838
</FButton>
3939
<FButton v-else @click="handleAdvance">
40-
高级筛选
40+
{{searchLocalObj?.advance}}
4141
</FButton>
4242
</template>
43-
<FButton v-if="props.isReset" @click="handleReset">重置</FButton>
43+
<FButton v-if="props.isReset" @click="handleReset">{{searchLocalObj?.reset}}</FButton>
4444
<slot name="exButton"></slot>
4545
</template>
4646
</div>
@@ -52,6 +52,9 @@ import getPrefixCls from '../_util/getPrefixCls';
5252
import { defineProps, defineEmits, computed } from 'vue';
5353
import { useFormModel } from '../hooks/useModel';
5454
import { isBoolean, isArray, isObject } from 'lodash-es';
55+
import { useLocale } from '../hooks/useLocale';
56+
const locale = useLocale();
57+
const searchLocalObj = locale.SearchData || {};
5558
5659
const props = defineProps({
5760
// 查询表单

packages/traction-widget/components/TableHeaderConfig/TableHeaderConfig.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
@update:show="$emit('update:show', $event)"
1212
>
1313
<template #title>
14-
<span>设置表格</span>
15-
<span class="title-desc">(设置表格需要显示的字段信息)</span>
14+
<span>{{ tableHeaderConfigLocalObj?.title }}</span>
15+
<span class="title-desc">({{ tableHeaderConfigLocalObj?.titleDesc }})</span>
1616
</template>
1717
<div class="table-header-config">
1818
<div class="content">
1919
<ul class="section-list">
2020
<li v-if="activatedHeadersLocal && activatedHeadersLocal.length > 0" class="section-item">
21-
<h3 class="sub-title">已选字段</h3>
21+
<h3 class="sub-title">{{ tableHeaderConfigLocalObj?.selectedFields }}</h3>
2222
<ul class="header-list">
2323
<li
2424
v-for="header in activatedHeadersLocal"
@@ -29,7 +29,7 @@
2929
</ul>
3030
</li>
3131
<li v-if="inactivatedHeadersLocal && inactivatedHeadersLocal.length > 0" class="section-item">
32-
<h3 class="sub-title">可选字段</h3>
32+
<h3 class="sub-title">{{tableHeaderConfigLocalObj?.optionalFields}}</h3>
3333
<ul class="header-list">
3434
<li
3535
v-for="header in inactivatedHeadersLocal"
@@ -40,8 +40,8 @@
4040
</ul>
4141
</li>
4242
<li v-if="inactivatedHeadersLocal && inactivatedHeadersLocal.length === 0" class="section-item">
43-
<h3 class="sub-title">可选字段</h3>
44-
<div class="hint">暂无可选字段</div>
43+
<h3 class="sub-title">{{tableHeaderConfigLocalObj?.optionalFields}}</h3>
44+
<div class="hint">{{tableHeaderConfigLocalObj?.noOptionalFields}}</div>
4545
</li>
4646
</ul>
4747
</div>
@@ -57,6 +57,9 @@ import {
5757
} from 'vue';
5858
import getPrefixCls from '../_util/getPrefixCls';
5959
import { cloneDeep } from 'lodash-es';
60+
import { useLocale } from '../hooks/useLocale';
61+
const locale = useLocale();
62+
const tableHeaderConfigLocalObj = locale.TableHeaderConfig || {};
6063
6164
export interface ColItem {
6265
prop: string,

packages/traction-widget/components/TagSelector/TagSelector.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<FSelect v-model="selectedList" class="hidden-select" filterable multiple :options="props.options" @change="handleChange" :getContainer="getContainer"></FSelect>
1010
</div>
1111
<div class="tag-label">
12-
<span>已选:</span>
13-
<span v-if="clearable" class="clearable" @click="handleClear">全部删除</span>
12+
<span>{{ tagSelectorLocalObj?.selected }}</span>
13+
<span v-if="clearable" class="clearable" @click="handleClear">{{ tagSelectorLocalObj?.clearAll }}</span>
1414
</div>
1515
<div class="tag-container">
1616
<FTag
@@ -30,6 +30,10 @@
3030
<script setup lang="ts">
3131
import { defineProps, defineEmits, computed, useSlots, ref } from 'vue';
3232
import { FTag, FSelect } from '@fesjs/fes-design';
33+
import { useLocale } from '../hooks/useLocale';
34+
35+
const locale = useLocale();
36+
const tagSelectorLocalObj = locale.TagSelector || {};
3337
3438
const props = defineProps({
3539
// 已选的数据列表

packages/traction-widget/components/TagsPanel/TagsPanel.vue

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
:maxlength="maxlength" :showWordLimit="showWordLimit" @keyup.enter="addNewTag" @blur="addNewTag">
99
</FInput>
1010
<FButton v-else v-show="numberLimit === 0 || tags.length < numberLimit" :disabled="disabled" class="button-nef-tag" @click="toggleTagInput">
11-
<PlusOutlined />添加标签
11+
<PlusOutlined />{{ tagsPanelLocalObj?.addTag }}
1212
</FButton>
1313
</div>
1414
</template>
@@ -20,24 +20,27 @@ import {
2020
import getPrefixCls from '../_util/getPrefixCls';
2121
import { useFormModel } from '../hooks/useModel';
2222
import { PlusOutlined } from '@fesjs/fes-design/icon';
23+
import { useLocale } from '../hooks/useLocale';
24+
const locale = useLocale();
25+
const tagsPanelLocalObj = locale.tagsPanel || {};
2326
2427
const prefixCls = getPrefixCls('TagsPanel');
2528
2629
const props = defineProps({
2730
// 标签数量限制, 默认为0表示不限制,非0则限制
2831
numberLimit: {
2932
type: Number,
30-
default: 0,
33+
default: 0
3134
},
3235
// 标签是否不可重复
3336
isUnique: {
3437
type: Boolean,
35-
defalut: false,
38+
defalut: false
3639
},
3740
// 输入校验
3841
regex: {
3942
type: RegExp,
40-
default: null,
43+
default: null
4144
},
4245
// 校验错误提示
4346
regexTip: {
@@ -47,32 +50,32 @@ const props = defineProps({
4750
// 标签最大长度
4851
maxlength: {
4952
type: Number,
50-
default: 25,
53+
default: 25
5154
},
5255
// 是否展示输入长度
5356
showWordLimit: {
5457
type: Boolean,
55-
default : false,
58+
default: false
5659
},
5760
// 是否可编辑
5861
disabled: {
5962
type: Boolean,
60-
default: false,
63+
default: false
6164
},
6265
// 尺寸,可选值:small、middle、large
6366
size: {
6467
type: String,
65-
default: 'middle',
68+
default: 'middle'
6669
},
6770
// 主题,可选值:dark、light、plain
6871
effect: {
6972
type: String,
70-
default: 'light',
73+
default: 'light'
7174
},
7275
// 类型,可选值:default、success、info、warning、danger
7376
type: {
7477
type: String,
75-
default: 'default',
78+
default: 'default'
7679
},
7780
// 双向绑定的标签数据
7881
tags: {
@@ -112,16 +115,16 @@ const addNewTag = () => {
112115
if (notNull(tempTagInput.value)) {
113116
let flag = true;
114117
if (props.regex) {
115-
flag = props.regex.test(tempTagInput.value)
118+
flag = props.regex.test(tempTagInput.value);
116119
}
117-
if( flag) {
118-
if ( props.isUnique && datasource.tags.find((item: any) => item === tempTagInput.value)) {
119-
FMessage.warn('不能添加重复标签!');
120+
if (flag) {
121+
if (props.isUnique && datasource.tags.find((item: any) => item === tempTagInput.value)) {
122+
FMessage.warn(tagsPanelLocalObj.repeatTip);
120123
closeInput();
121124
return;
122125
}
123-
if (props.numberLimit!== 0 && datasource.tags.length >= props.numberLimit) {
124-
FMessage.warn(`不能添加超过${props.numberLimit}标签!`);
126+
if (props.numberLimit !== 0 && datasource.tags.length >= props.numberLimit) {
127+
FMessage.warn(`${tagsPanelLocalObj.numberLimitTip}${props.numberLimit}${tagsPanelLocalObj.tag}!`);
125128
closeInput();
126129
return;
127130
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { ref } from 'vue';
2+
import zhCN from '../locales/lang/zhCN.ts';
3+
import enUS from '../locales/lang/enUS.ts';
4+
5+
// 定义 locale 类型
6+
type Locale = Record<string, any>;
7+
8+
export function useLocale (): Locale {
9+
const locale = ref<Locale>({});
10+
const storedLocale = localStorage.getItem('fes_locale');
11+
if (storedLocale === 'en-US') {
12+
locale.value = enUS;
13+
} else {
14+
locale.value = zhCN;
15+
}
16+
return locale.value;
17+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export { default as zhCN } from './lang/zhCN';
2+
export { default as enUS } from './lang/enUS';
3+
4+
export interface TypeTranslatePair {
5+
[key: string]: string | string[] | TypeTranslatePair
6+
}
7+
8+
export interface TypeLanguage {
9+
name: string
10+
[key: string]: string | string[] | TypeTranslatePair
11+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
export default {
2+
name: 'en',
3+
desc: '英文',
4+
pageLoading: {
5+
logout: 'Logout',
6+
noData: 'No data here. . .',
7+
noResult: 'No results match the conditions. . .',
8+
noPermissions: 'No permissions'
9+
},
10+
SearchData: {
11+
search: 'Search',
12+
advance: 'Advanced Filter',
13+
advanceCount: 'Advanced Filter (selected {count} items)',
14+
selected: 'selected',
15+
item: 'items',
16+
reset: 'Reset'
17+
},
18+
TableHeaderConfig: {
19+
title: 'Set Table',
20+
titleDesc: 'Set the fields to be displayed in the table',
21+
selectedFields: 'Selected Fields',
22+
optionalFields: 'Optional Fields',
23+
noOptionalFields: 'No optional fields available'
24+
},
25+
TagSelector: {
26+
clearAll: 'Clear All',
27+
selected: 'Selected: '
28+
},
29+
tagsPanel: {
30+
addTag: 'Add Tag',
31+
regTip: 'Tag input does not match the validation rules',
32+
repeatTip: 'Cannot add duplicate tags!',
33+
numberLimitTip: 'Cannot add more than ',
34+
tag: 'tags'
35+
}
36+
};

0 commit comments

Comments
 (0)