{
const schema = {
imageUrl: {
- title: '版权图片',
+ title: $i18n.get({ id: 'basic.components.Copyright.registerMeta.CopyrightImage', dm: '版权图片' }),
type: 'string',
'x-component': 'Input',
'x-decorator': 'FormItem',
default: '',
},
width: {
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.Copyright.registerMeta.Width', dm: '宽度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 100,
},
height: {
- title: '高度',
+ title: $i18n.get({ id: 'basic.components.Copyright.registerMeta.Height', dm: '高度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 100,
},
placement: {
- title: '组件位置',
+ title: $i18n.get({ id: 'basic.components.Copyright.registerMeta.ComponentLocation', dm: '组件位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -31,7 +32,7 @@ const registerMeta = () => {
default: 'RB',
},
offset: {
- title: '偏移量',
+ title: $i18n.get({ id: 'basic.components.Copyright.registerMeta.Offset', dm: '偏移量' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Offset',
diff --git a/packages/gi-assets-basic/src/components/CreateCombo/info.ts b/packages/gi-assets-basic/src/components/CreateCombo/info.ts
index 9de925dee..8a1a8f124 100644
--- a/packages/gi-assets-basic/src/components/CreateCombo/info.ts
+++ b/packages/gi-assets-basic/src/components/CreateCombo/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'CreateCombo',
- name: '创建Combo',
- desc: '通过创建Combo元素,作为画布上的融合元素使用',
+ name: $i18n.get({ id: 'basic.components.CreateCombo.info.CreateCombo', dm: '创建Combo' }),
+ desc: $i18n.get({
+ id: 'basic.components.CreateCombo.info.ByCreatingAComboElement',
+ dm: '通过创建Combo元素,作为画布上的融合元素使用',
+ }),
icon: 'icon-lasso',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/CreateCombo/registerMeta.ts b/packages/gi-assets-basic/src/components/CreateCombo/registerMeta.ts
index 1b011b65b..432ed7ea4 100644
--- a/packages/gi-assets-basic/src/components/CreateCombo/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/CreateCombo/registerMeta.ts
@@ -1,11 +1,15 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_METAS } = extra;
const metas = deepClone(GIAC_METAS);
metas.GIAC.properties.GIAC.properties.title.default = info.name;
metas.GIAC.properties.GIAC.properties.icon.default = info.icon;
-metas.GIAC.properties.GIAC.properties.tooltip.default = '创建Combo';
+metas.GIAC.properties.GIAC.properties.tooltip.default = $i18n.get({
+ id: 'basic.components.CreateCombo.registerMeta.CreateCombo',
+ dm: '创建Combo',
+});
metas.GIAC.properties.GIAC.properties.isShowTitle.default = false;
export default () => {
return metas;
diff --git a/packages/gi-assets-basic/src/components/DownLoad/info.ts b/packages/gi-assets-basic/src/components/DownLoad/info.ts
index 164154e67..c2736b9ef 100644
--- a/packages/gi-assets-basic/src/components/DownLoad/info.ts
+++ b/packages/gi-assets-basic/src/components/DownLoad/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'DownLoad',
- name: '下载',
- desc: '点击下载画布图片',
+ name: $i18n.get({ id: 'basic.components.DownLoad.info.Download', dm: '下载' }),
+ desc: $i18n.get({ id: 'basic.components.DownLoad.info.ClickToDownloadTheCanvas', dm: '点击下载画布图片' }),
icon: 'icon-download',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/Export/info.ts b/packages/gi-assets-basic/src/components/Export/info.ts
index fe539e0a1..9d1ef1b85 100644
--- a/packages/gi-assets-basic/src/components/Export/info.ts
+++ b/packages/gi-assets-basic/src/components/Export/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'Export',
- name: '导出',
- desc: '导出CSV,PNG,JSON数据',
+ name: $i18n.get({ id: 'basic.components.Export.info.Export', dm: '导出' }),
+ desc: $i18n.get({ id: 'basic.components.Export.info.ExportCsvPngJsonData', dm: '导出CSV,PNG,JSON数据' }),
icon: 'icon-export',
cover: 'http://xxxx.jpg',
category: 'workbook',
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/Charts/HistogramOptions.tsx b/packages/gi-assets-basic/src/components/FilterPanel/Charts/HistogramOptions.tsx
index 2d1230f94..1e152871e 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/Charts/HistogramOptions.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/Charts/HistogramOptions.tsx
@@ -2,6 +2,7 @@ import { SlidersOutlined } from '@ant-design/icons';
import { Button, Form, InputNumber, Popover } from 'antd';
import * as React from 'react';
import { IFilterCriteria } from '../type';
+import $i18n from '../../../i18n';
interface HistogramOptionsProps {
filterCriteria: IFilterCriteria;
updateFilterCriteria: (id: string, filterCriteria: IFilterCriteria) => void;
@@ -37,20 +38,32 @@ const Content = (props: HistogramOptionsProps & { onClose: () => void }) => {
autoComplete="off"
style={{ width: '250px' }}
>
-
+
-
+
-
+
@@ -73,7 +86,7 @@ const HistogramOptions: React.FunctionComponent = props =
open={open}
onOpenChange={handleOpenChange}
placement="topLeft"
- title={'设置分箱规则'}
+ title={$i18n.get({ id: 'basic.FilterPanel.Charts.HistogramOptions.SetTheRuleOfGrouping', dm: '设置分箱规则' })}
content={}
trigger="click"
>
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/Charts/LineChart.tsx b/packages/gi-assets-basic/src/components/FilterPanel/Charts/LineChart.tsx
index f4be4b980..80552f7f2 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/Charts/LineChart.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/Charts/LineChart.tsx
@@ -2,6 +2,7 @@ import { Column } from '@antv/g2plot';
import { Select } from 'antd';
import * as React from 'react';
import { iconMap } from '../FilterSelection';
+import $i18n from '../../../i18n';
interface LineChartProps {
source: any;
filterCriteria: any;
@@ -63,7 +64,13 @@ const LineChart: React.FunctionComponent = props => {
style={{ width: '80%' }}
onChange={onSelectChange}
className="gi-filter-panel-prop-select"
- placeholder={`选择${elementType}属性`}
+ placeholder={$i18n.get(
+ {
+ id: 'basic.FilterPanel.Charts.LineChart.SelectElementtypeAttribute',
+ dm: '选择{elementType}属性',
+ },
+ { elementType: elementType },
+ )}
>
{Object.entries(elementProps).map(e => {
const [key, value] = e;
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/Component.tsx b/packages/gi-assets-basic/src/components/FilterPanel/Component.tsx
index 8be7ac324..1fbc2c799 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/Component.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/Component.tsx
@@ -8,6 +8,7 @@ import RecommendFilter from './RecommendFilter';
import './index.less';
import { HistogramOpt, IFilterCriteria } from './type';
import { filterGraphData, getChartData, highlightSubGraph } from './utils';
+import $i18n from '../../i18n';
const { isStyles } = utils;
@@ -285,8 +286,8 @@ const FilterPanel: React.FunctionComponent = props => {
updateHistory({
componentId: 'FilterPanel',
type: 'analyse',
- subType: '筛选',
- statement: '筛选',
+ subType: $i18n.get({ id: 'basic.components.FilterPanel.Component.Filter', dm: '筛选' }),
+ statement: $i18n.get({ id: 'basic.components.FilterPanel.Component.Filter', dm: '筛选' }),
success,
errorMsg,
params: {
@@ -339,16 +340,17 @@ const FilterPanel: React.FunctionComponent = props => {
onClick={() => addFilter()}
icon={}
>
- {formatMessage({ id: 'FilterPanel.addfilter' })}
+ {$i18n.get({ id: 'basic.components.FilterPanel.Component.AddFilter', dm: '增加筛选器' })}
{enableInfoDetect ? (
) : (
''
)}
+
{Object.values(filterOptions).map(filterCriteria => {
const { isRecommend } = filterCriteria;
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/FilterSelection.tsx b/packages/gi-assets-basic/src/components/FilterPanel/FilterSelection.tsx
index 94ec8b54d..f264b46ec 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/FilterSelection.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/FilterSelection.tsx
@@ -17,6 +17,7 @@ import LineChart from './Charts/LineChart';
import './index.less';
import { IFilterCriteria } from './type';
import { getChartData, getHistogramData } from './utils';
+import $i18n from '../../i18n';
export const iconMap = {
boolean: ,
@@ -261,7 +262,10 @@ const FilterSelection: React.FC = props => {
style={{ width: '80%' }}
onChange={onSelectChange}
className="gi-filter-panel-prop-select"
- placeholder={formatMessage({ id: 'FilterPanel.selectElementAttr' })}
+ placeholder={$i18n.get({
+ id: 'basic.components.FilterPanel.FilterSelection.SelectElementAttributes',
+ dm: '选择元素属性',
+ })}
showSearch
filterOption={(input, option) => {
return (option?.value as string)?.toLowerCase().includes(input.toLowerCase());
@@ -272,10 +276,16 @@ const FilterSelection: React.FC = props => {
: undefined
}
>
-
+
{getPropertyOptions('node')}
-
+
{getPropertyOptions('edge')}
@@ -284,6 +294,7 @@ const FilterSelection: React.FC = props => {
)}
+
);
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/RecommendFilter.tsx b/packages/gi-assets-basic/src/components/FilterPanel/RecommendFilter.tsx
index 704e38b76..6c828350c 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/RecommendFilter.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/RecommendFilter.tsx
@@ -5,6 +5,7 @@ import { ColumnChart } from './Charts';
import { IFilterCriteria } from './type';
import './index.less';
+import $i18n from '../../i18n';
interface RecommendFilterProps {
filterCriteria: IFilterCriteria;
@@ -21,7 +22,12 @@ const RecommendFilter: React.FC = props => {
- {filterCriteria.elementType === 'node' ? '节点' : '边'}属性:
+
+ {filterCriteria.elementType === 'node'
+ ? $i18n.get({ id: 'basic.components.FilterPanel.RecommendFilter.Node', dm: '节点' })
+ : $i18n.get({ id: 'basic.components.FilterPanel.RecommendFilter.Edge', dm: '边' })}
+ {$i18n.get({ id: 'basic.components.FilterPanel.RecommendFilter.Properties', dm: '属性:' })}
+
{filterCriteria.prop}
{hasOutlier
- ? '该属性大多值具有相同的出现次数,但有些值有出现次数大于平均出现次数(红色),值得关注'
- : '该属性的某些值出现概率极低(红色),很可能含有更大信息量,值得关注'}
+ ? $i18n.get({
+ id: 'basic.components.FilterPanel.RecommendFilter.ManyValuesOfThisAttribute',
+ dm: '该属性大多值具有相同的出现次数,但有些值有出现次数大于平均出现次数(红色),值得关注',
+ })
+ : $i18n.get({
+ id: 'basic.components.FilterPanel.RecommendFilter.SomeValuesOfThisAttribute',
+ dm: '该属性的某些值出现概率极低(红色),很可能含有更大信息量,值得关注',
+ })}
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/index.tsx b/packages/gi-assets-basic/src/components/FilterPanel/index.tsx
index a4e31f2ed..390cc7dca 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/index.tsx
+++ b/packages/gi-assets-basic/src/components/FilterPanel/index.tsx
@@ -1,11 +1,9 @@
import Component from './Component';
import info from './info';
import registerMeta from './registerMeta';
-import locales from './locales';
export default {
info,
component: Component,
registerMeta,
- locales
};
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/info.ts b/packages/gi-assets-basic/src/components/FilterPanel/info.ts
index e9bce5c22..000ae09e4 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/info.ts
+++ b/packages/gi-assets-basic/src/components/FilterPanel/info.ts
@@ -1,10 +1,12 @@
-import { formatMessage } from '@antv/gi-sdk';
-import locales from './locales'
+import $i18n from '../../i18n';
const info = {
id: 'FilterPanel',
- name: formatMessage({ id: 'FilterPanel.info.name' }, locales),
- desc: '通过属性筛选画布信息,可自定义',
+ name: $i18n.get({ id: 'basic.components.FilterPanel.info.FilterPanel', dm: '筛选面板' }),
+ desc: $i18n.get({
+ id: 'basic.components.FilterPanel.info.FilterCanvasInformationThroughAttributes',
+ dm: '通过属性筛选画布信息,可自定义',
+ }),
icon: 'icon-filter',
cover: 'http://xxxx.jpg',
category: 'data-analysis',
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/locales/index.ts b/packages/gi-assets-basic/src/components/FilterPanel/locales/index.ts
deleted file mode 100644
index 1e9192ed8..000000000
--- a/packages/gi-assets-basic/src/components/FilterPanel/locales/index.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { LANGUAGE_KEY_NAME } from '@antv/gi-sdk';
-
-const enUS = {
- 'FilterPanel.addfilter': 'Add filter',
- 'FilterPanel.selectElementAttr': 'Select element attributes',
- 'FilterPanel.selectFilterValue': 'Select filter value',
- 'FilterPanel.selectValidField': 'Please select a valid field',
- 'FilterPanel.node': 'node',
- 'FilterPanel.edge': 'edge',
- 'FilterPanel.recommend': 'Recommend',
- 'FilterPanel.info.name': 'Filter Panel',
- 'FilterPanel.meta.filterKeys': 'Default filter keys',
-};
-
-const zhCN = {
- 'FilterPanel.addfilter': '增加筛选器',
- 'FilterPanel.selectElementAttr': '选择元素属性',
- 'FilterPanel.selectFilterValue': '选择筛选值',
- 'FilterPanel.selectValidField': '请选择合法字段',
- 'FilterPanel.node': '节点',
- 'FilterPanel.edge': '边',
- 'FilterPanel.recommend': '智能推荐',
- 'FilterPanel.info.name': '筛选面板',
- 'FilterPanel.meta.filterKeys': '默认筛选字段',
-};
-
-export default {
- [LANGUAGE_KEY_NAME.EnUs]: enUS,
- [LANGUAGE_KEY_NAME.ZhCN]: zhCN,
-} as Record
;
diff --git a/packages/gi-assets-basic/src/components/FilterPanel/registerMeta.ts b/packages/gi-assets-basic/src/components/FilterPanel/registerMeta.ts
index 4c75e4bc6..f5192aaa7 100644
--- a/packages/gi-assets-basic/src/components/FilterPanel/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/FilterPanel/registerMeta.ts
@@ -1,6 +1,6 @@
import { extra, formatMessage } from '@antv/gi-sdk';
import info from './info';
-import locales from './locales';
+import $i18n from '../../i18n';
const { deepClone, GIAC_CONTENT_METAS } = extra;
const metas = deepClone(GIAC_CONTENT_METAS);
// @ts-ignore
@@ -36,7 +36,7 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
const schema = {
filterKeys: {
- title: formatMessage({ id: 'FilterPanel.meta.filterKeys' }, locales),
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.DefaultFilterField', dm: '默认筛选字段' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -48,7 +48,7 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
},
enableInfoDetect: hasPropertyGraph
? {
- title: '智能推荐',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.SmartRecommendation', dm: '智能推荐' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -56,21 +56,21 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
}
: undefined,
isFilterIsolatedNodes: {
- title: '过滤孤立节点',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.FilterIsolatedNodes', dm: '过滤孤立节点' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
highlightMode: {
- title: '高亮模式',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.HighlightMode', dm: '高亮模式' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
filterLogic: {
- title: '筛选逻辑',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.FilteringLogic', dm: '筛选逻辑' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -78,6 +78,7 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
{ value: 'and', label: 'and' },
{ value: 'or', label: 'or' },
],
+
default: 'and',
},
histogramOptions: {
@@ -85,11 +86,11 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
'x-decorator': 'FormItem',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '分箱设置',
+ header: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.SubBoxSetting', dm: '分箱设置' }),
},
properties: {
isCustom: {
- title: '自定义分箱',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.CustomSubBox', dm: '自定义分箱' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -122,21 +123,21 @@ const registerMeta = ({ schemaData, hasPropertyGraph }) => {
],
},
min: {
- title: '区间最小值',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.IntervalMinimum', dm: '区间最小值' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: null,
},
max: {
- title: '区间最大值',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.IntervalMaximum', dm: '区间最大值' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: null,
},
binWidth: {
- title: '分箱值',
+ title: $i18n.get({ id: 'basic.components.FilterPanel.registerMeta.BinValue', dm: '分箱值' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
diff --git a/packages/gi-assets-basic/src/components/FitCenter/info.ts b/packages/gi-assets-basic/src/components/FitCenter/info.ts
index c8f50d96d..7a3c00865 100644
--- a/packages/gi-assets-basic/src/components/FitCenter/info.ts
+++ b/packages/gi-assets-basic/src/components/FitCenter/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'FitCenter',
- name: '视图居中',
- desc: '调整画布,使其居中对齐',
+ name: $i18n.get({ id: 'basic.components.FitCenter.info.ViewCenter', dm: '视图居中' }),
+ desc: $i18n.get({ id: 'basic.components.FitCenter.info.AdjustTheCanvasToCenter', dm: '调整画布,使其居中对齐' }),
icon: 'icon-fit-center',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/FitCenterView/info.ts b/packages/gi-assets-basic/src/components/FitCenterView/info.ts
index 01dfe1586..f3b32aa1f 100644
--- a/packages/gi-assets-basic/src/components/FitCenterView/info.ts
+++ b/packages/gi-assets-basic/src/components/FitCenterView/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'FitCenterView',
- name: '自适应居中',
- desc: '调整画布,使其自适应居中展示',
+ name: $i18n.get({ id: 'basic.components.FitCenterView.info.AdaptiveCentering', dm: '自适应居中' }),
+ desc: $i18n.get({
+ id: 'basic.components.FitCenterView.info.AdjustTheCanvasToDisplay',
+ dm: '调整画布,使其自适应居中展示',
+ }),
icon: 'icon-fit-center',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/FitView/info.ts b/packages/gi-assets-basic/src/components/FitView/info.ts
index f6a303568..2880a1f24 100644
--- a/packages/gi-assets-basic/src/components/FitView/info.ts
+++ b/packages/gi-assets-basic/src/components/FitView/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'FitView',
- name: '自适应',
- desc: '调整画布,使其自适应 1:1 展示',
+ name: $i18n.get({ id: 'basic.components.FitView.info.Adaptive', dm: '自适应' }),
+ desc: $i18n.get({ id: 'basic.components.FitView.info.AdjustTheCanvasToAdapt', dm: '调整画布,使其自适应 1:1 展示' }),
icon: 'icon-fit-view',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/ForceSimulation/Component.tsx b/packages/gi-assets-basic/src/components/ForceSimulation/Component.tsx
index 213538574..4ba9d472b 100644
--- a/packages/gi-assets-basic/src/components/ForceSimulation/Component.tsx
+++ b/packages/gi-assets-basic/src/components/ForceSimulation/Component.tsx
@@ -3,6 +3,7 @@ import { handlePinNode } from '../common/handlePinNode';
import type { IGIAC } from '@antv/gi-sdk';
import { extra, useContext } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const { GIAComponent, deepClone } = extra;
@@ -59,10 +60,16 @@ const ForceSimulation: React.FunctionComponent = props => {
GIAC.icon = 'icon-play-circle';
GIAC.disabled = true;
- GIAC.tooltip = '该功能仅在力导布局下才可使用';
+ GIAC.tooltip = $i18n.get({
+ id: 'basic.components.ForceSimulation.Component.ThisFunctionCanOnlyBe',
+ dm: '该功能仅在力导布局下才可使用',
+ });
if (isForce) {
GIAC.disabled = false;
- GIAC.tooltip = '重启力导布局,点击画布可以暂停力导';
+ GIAC.tooltip = $i18n.get({
+ id: 'basic.components.ForceSimulation.Component.RestartTheForceGuideLayout',
+ dm: '重启力导布局,点击画布可以暂停力导',
+ });
}
return ;
diff --git a/packages/gi-assets-basic/src/components/ForceSimulation/info.ts b/packages/gi-assets-basic/src/components/ForceSimulation/info.ts
index a69284334..766266066 100644
--- a/packages/gi-assets-basic/src/components/ForceSimulation/info.ts
+++ b/packages/gi-assets-basic/src/components/ForceSimulation/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'ForceSimulation',
- name: '力导控制器',
- desc: '可以停止/重启力导布局',
+ name: $i18n.get({ id: 'basic.components.ForceSimulation.info.ForceGuideController', dm: '力导控制器' }),
+ desc: $i18n.get({ id: 'basic.components.ForceSimulation.info.YouCanStopOrRestart', dm: '可以停止/重启力导布局' }),
icon: 'icon-play-circle',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/ForceSimulation/registerMeta.ts b/packages/gi-assets-basic/src/components/ForceSimulation/registerMeta.ts
index db8eff068..db613b50b 100644
--- a/packages/gi-assets-basic/src/components/ForceSimulation/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/ForceSimulation/registerMeta.ts
@@ -1,5 +1,6 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_METAS } = extra;
const metas = deepClone(GIAC_METAS);
metas.GIAC.properties.GIAC.properties.title.default = info.name;
@@ -10,14 +11,17 @@ metas.GIAC.properties.GIAC.properties.tooltipPlacement.default = 'right';
export default () => {
return {
autoPin: {
- title: '固定拖拽后的节点',
+ title: $i18n.get({
+ id: 'basic.components.ForceSimulation.registerMeta.FixedDraggedNode',
+ dm: '固定拖拽后的节点',
+ }),
type: 'boolean',
'x-component': 'Switch',
'x-decorator': 'FormItem',
default: true,
},
dragNodeMass: {
- title: '固定的质量',
+ title: $i18n.get({ id: 'basic.components.ForceSimulation.registerMeta.FixedMass', dm: '固定的质量' }),
'x-component': 'NumberPicker',
'x-decorator': 'FormItem',
type: 'number',
diff --git a/packages/gi-assets-basic/src/components/GrailLayout/Component.tsx b/packages/gi-assets-basic/src/components/GrailLayout/Component.tsx
index 4c02cb053..9e34e0d17 100644
--- a/packages/gi-assets-basic/src/components/GrailLayout/Component.tsx
+++ b/packages/gi-assets-basic/src/components/GrailLayout/Component.tsx
@@ -22,7 +22,6 @@ interface IContainersVisible {
const GrailLayout: React.FC = props => {
const { graph } = useContext();
-
const { ComponentCfgMap, assets, GISDK_ID, containers = [], children } = props;
const {
diff --git a/packages/gi-assets-basic/src/components/GrailLayout/index.tsx b/packages/gi-assets-basic/src/components/GrailLayout/index.tsx
index bff21b624..b4b281ff8 100644
--- a/packages/gi-assets-basic/src/components/GrailLayout/index.tsx
+++ b/packages/gi-assets-basic/src/components/GrailLayout/index.tsx
@@ -2,11 +2,14 @@ import Component from './Component';
import './index.less';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'GrailLayout',
- name: '圣杯布局',
- desc: '支持左、右、下三个方向资产布局',
+ name: $i18n.get({ id: 'basic.components.GrailLayout.HolyGrailLayout', dm: '圣杯布局' }),
+ desc: $i18n.get({
+ id: 'basic.components.GrailLayout.SupportsAssetLayoutInThe',
+ dm: '支持左、右、下三个方向资产布局',
+ }),
icon: 'icon-layout',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/GrailLayout/registerMeta.ts b/packages/gi-assets-basic/src/components/GrailLayout/registerMeta.ts
index d4304f7e3..597f52f0f 100644
--- a/packages/gi-assets-basic/src/components/GrailLayout/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/GrailLayout/registerMeta.ts
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { GIAC_CONTENT_ITEMS = [] } = context;
@@ -5,9 +6,9 @@ const registerMeta = context => {
containers: [
{
id: 'GI_CONTAINER_LEFT',
- name: '左侧容器',
+ name: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.LeftContainer', dm: '左侧容器' }),
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -18,14 +19,17 @@ const registerMeta = context => {
default: [],
},
visible: {
- title: '默认展开左侧容器',
+ title: $i18n.get({
+ id: 'basic.components.GrailLayout.registerMeta.ByDefaultTheLeftContainer',
+ dm: '默认展开左侧容器',
+ }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
width: {
- title: '左侧宽度',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.LeftWidth', dm: '左侧宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
@@ -35,9 +39,9 @@ const registerMeta = context => {
},
{
id: 'GI_CONTAINER_RIGHT',
- name: '右侧容器',
+ name: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.RightContainer', dm: '右侧容器' }),
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -48,14 +52,17 @@ const registerMeta = context => {
default: [],
},
visible: {
- title: '默认展开右侧容器',
+ title: $i18n.get({
+ id: 'basic.components.GrailLayout.registerMeta.ByDefaultTheContainerOn',
+ dm: '默认展开右侧容器',
+ }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
width: {
- title: '右侧宽度',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.RightWidth', dm: '右侧宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
@@ -65,9 +72,9 @@ const registerMeta = context => {
},
{
id: 'GI_CONTAINER_BOTTOM',
- name: '底部容器',
+ name: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.BottomContainer', dm: '底部容器' }),
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -78,14 +85,17 @@ const registerMeta = context => {
default: [],
},
visible: {
- title: '默认展开底部容器',
+ title: $i18n.get({
+ id: 'basic.components.GrailLayout.registerMeta.ByDefaultTheBottomContainer',
+ dm: '默认展开底部容器',
+ }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
height: {
- title: '底部高度',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.BottomHeight', dm: '底部高度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
@@ -95,9 +105,9 @@ const registerMeta = context => {
},
{
id: 'GI_CONTAINER_TOP',
- name: '顶部容器',
+ name: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.TopContainer', dm: '顶部容器' }),
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -108,14 +118,17 @@ const registerMeta = context => {
default: [],
},
visible: {
- title: '默认展开顶部容器',
+ title: $i18n.get({
+ id: 'basic.components.GrailLayout.registerMeta.ByDefaultTheTopContainer',
+ dm: '默认展开顶部容器',
+ }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: false,
},
height: {
- title: '顶部高度',
+ title: $i18n.get({ id: 'basic.components.GrailLayout.registerMeta.TopHeight', dm: '顶部高度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
diff --git a/packages/gi-assets-basic/src/components/GrailLayout/useComponents.tsx b/packages/gi-assets-basic/src/components/GrailLayout/useComponents.tsx
index fa2153de6..f87574f1f 100644
--- a/packages/gi-assets-basic/src/components/GrailLayout/useComponents.tsx
+++ b/packages/gi-assets-basic/src/components/GrailLayout/useComponents.tsx
@@ -1,6 +1,7 @@
import { Icon, useContext } from '@antv/gi-sdk';
import { Empty } from 'antd';
import React from 'react';
+import $i18n from '../../i18n';
const useComponents = (GI_CONTAINER, ComponentCfgMap, assets, visible) => {
return React.useMemo(() => {
@@ -28,7 +29,10 @@ const useComponents = (GI_CONTAINER, ComponentCfgMap, assets, visible) => {
transform: 'translate(-50%, -50%)',
left: '50%',
}}
- description="当前容器中无可用资产,请在配置面板中集成"
+ description={$i18n.get({
+ id: 'basic.components.GrailLayout.useComponents.NoAssetsAreAvailableIn',
+ dm: '当前容器中无可用资产,请在配置面板中集成',
+ })}
>
);
}
diff --git a/packages/gi-assets-basic/src/components/GroupBar/info.ts b/packages/gi-assets-basic/src/components/GroupBar/info.ts
index d76424653..becc49448 100644
--- a/packages/gi-assets-basic/src/components/GroupBar/info.ts
+++ b/packages/gi-assets-basic/src/components/GroupBar/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'GroupBar',
- name: '分组操作栏',
- desc: '分组操作栏,分组形式集成资产',
+ name: $i18n.get({ id: 'basic.components.GroupBar.info.GroupOperationColumn', dm: '分组操作栏' }),
+ desc: $i18n.get({
+ id: 'basic.components.GroupBar.info.GroupOperationsColumnGroupAssets',
+ dm: '分组操作栏,分组形式集成资产',
+ }),
icon: 'icon-tabs',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/GroupBar/registerMeta.ts b/packages/gi-assets-basic/src/components/GroupBar/registerMeta.ts
index 413a7d072..633b293e7 100644
--- a/packages/gi-assets-basic/src/components/GroupBar/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/GroupBar/registerMeta.ts
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const driverItem = {
type: 'void',
'x-decorator': 'FormItem',
@@ -11,7 +12,7 @@ const driverItem = {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '分割线配置'
+ header: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.SplitLineConfiguration', dm: '分割线配置' }),
},
properties: {
remove: {
@@ -20,12 +21,12 @@ const driverItem = {
style: {
position: 'absolute',
right: 14,
- top: 15
- }
- }
+ top: 15,
+ },
+ },
},
position: {
- title: '位置',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Location', dm: '位置' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -34,42 +35,42 @@ const driverItem = {
default: 'End',
enum: [
{
- label: '开始',
- value: 'Start'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Start', dm: '开始' }),
+ value: 'Start',
},
{
- label: '结尾',
- value: 'End'
- }
- ]
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.End', dm: '结尾' }),
+ value: 'End',
+ },
+ ],
},
start: {
- title: '起始边距',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.StartMargin', dm: '起始边距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
- default: 0
+ default: 0,
},
end: {
- title: '结束边距',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.EndMargin', dm: '结束边距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
- default: 0
+ default: 0,
},
color: {
- title: '颜色',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Color', dm: '颜色' }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
- default: '#eee'
+ default: '#eee',
},
size: {
- title: '线宽',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.LineWidth', dm: '线宽' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
- default: 1
- }
- }
- }
- }
+ default: 1,
+ },
+ },
+ },
+ },
};
const drivers = {
type: 'array',
@@ -80,36 +81,37 @@ const drivers = {
addGroup: {
type: 'void',
'x-component': 'ArrayItems.Addition',
- title: '添加分割线'
- }
- }
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.AddSplitLine', dm: '添加分割线' }),
+ },
+ },
};
export const createGroupsMeta = ({ GIAC_ITEMS = [], GIAC_CONTENT_ITEMS = [] }) => {
return {
- title: '分组',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Grouping', dm: '分组' }),
type: 'array',
'x-component': 'ArrayCollapse',
'x-component-props': {},
enum: [...GIAC_ITEMS, ...GIAC_CONTENT_ITEMS],
default: [
{
- components: []
- }
+ components: [],
+ },
],
+
properties: {
addGroup: {
type: 'void',
'x-component': 'ArrayCollapse.Addition',
- title: '添加分组'
- }
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.AddGroup', dm: '添加分组' }),
+ },
},
items: {
type: 'object',
- title: '分组配置',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.ClusterSetting', dm: '分组配置' }),
'x-component-props': {
style: {
- margin: '1px !important'
- }
+ margin: '1px !important',
+ },
},
properties: {
remove: {
@@ -117,7 +119,7 @@ export const createGroupsMeta = ({ GIAC_ITEMS = [], GIAC_CONTENT_ITEMS = [] }) =
},
components: {
type: 'array',
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.IntegratedComponents', dm: '集成组件' }),
enum: [...GIAC_ITEMS, ...GIAC_CONTENT_ITEMS],
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -127,39 +129,45 @@ export const createGroupsMeta = ({ GIAC_ITEMS = [], GIAC_CONTENT_ITEMS = [] }) =
default: [],
},
width: {
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Width', dm: '宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
'x-component-props': {
- placeholder: '字符串或数字类型'
+ placeholder: $i18n.get({
+ id: 'basic.components.GroupBar.registerMeta.StringOrNumericType',
+ dm: '字符串或数字类型',
+ }),
},
- default: 'auto'
+ default: 'auto',
},
height: {
- title: '高度',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Height', dm: '高度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
'x-component-props': {
- placeholder: '字符串或数字类型'
+ placeholder: $i18n.get({
+ id: 'basic.components.GroupBar.registerMeta.StringOrNumericType',
+ dm: '字符串或数字类型',
+ }),
},
},
background: {
- title: '背景色',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.BackgroundColor', dm: '背景色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
},
color: {
- title: '文字颜色',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.TextColor', dm: '文字颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
- default: '#000'
+ default: '#000',
},
align: {
- title: '对齐方式',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Alignment', dm: '对齐方式' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -168,31 +176,31 @@ export const createGroupsMeta = ({ GIAC_ITEMS = [], GIAC_CONTENT_ITEMS = [] }) =
default: 'Left',
enum: [
{
- label: '左对齐',
- value: 'Left'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.LeftAlignment', dm: '左对齐' }),
+ value: 'Left',
},
{
- label: '居中对齐',
- value: 'Center'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.CenterAlignment', dm: '居中对齐' }),
+ value: 'Center',
},
{
- label: '右对齐',
- value: 'Right'
- }
- ]
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.RightAlignment', dm: '右对齐' }),
+ value: 'Right',
+ },
+ ],
},
- drivers
- }
- }
- }
-}
-export default (context) => {
- const { GIAC_ITEMS = [],GIAC_CONTENT_ITEMS = [] } = context;
+ drivers,
+ },
+ },
+ };
+};
+export default context => {
+ const { GIAC_ITEMS = [], GIAC_CONTENT_ITEMS = [] } = context;
return {
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'array',
- enum: [...GIAC_ITEMS,...GIAC_CONTENT_ITEMS],
+ enum: [...GIAC_ITEMS, ...GIAC_CONTENT_ITEMS],
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -201,49 +209,49 @@ export default (context) => {
default: [],
},
background: {
- title: '背景色',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.BackgroundColor', dm: '背景色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
},
suspend: {
- title: '悬浮',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Suspension', dm: '悬浮' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
- default: false
+ default: false,
},
position: {
- title: '位置',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Location', dm: '位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
default: 'Top',
enum: [
{
- label: '顶部',
- value: 'Top'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Top', dm: '顶部' }),
+ value: 'Top',
},
{
- label: '底部',
- value: 'Bottom'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Bottom', dm: '底部' }),
+ value: 'Bottom',
},
{
- label: '左侧',
- value: 'Left'
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.LeftSide', dm: '左侧' }),
+ value: 'Left',
},
{
- label: '右侧',
- value: 'Right'
- }
- ]
+ label: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.RightSide', dm: '右侧' }),
+ value: 'Right',
+ },
+ ],
},
size: {
- title: '大小',
+ title: $i18n.get({ id: 'basic.components.GroupBar.registerMeta.Size', dm: '大小' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
- default: 60
+ default: 60,
},
left: {
title: 'Left',
@@ -254,10 +262,10 @@ export default (context) => {
dependencies: ['.position'],
fulfill: {
schema: {
- "x-visible": "{{$deps[0] === 'Top' || $deps[0] === 'Bottom'}}"
- }
- }
- }
+ 'x-visible': "{{$deps[0] === 'Top' || $deps[0] === 'Bottom'}}",
+ },
+ },
+ },
},
right: {
title: 'Right',
@@ -268,10 +276,10 @@ export default (context) => {
dependencies: ['.position'],
fulfill: {
schema: {
- "x-visible": "{{$deps[0] === 'Top' || $deps[0] === 'Bottom'}}"
- }
- }
- }
+ 'x-visible': "{{$deps[0] === 'Top' || $deps[0] === 'Bottom'}}",
+ },
+ },
+ },
},
top: {
title: 'Top',
@@ -282,10 +290,10 @@ export default (context) => {
dependencies: ['.position'],
fulfill: {
schema: {
- "x-visible": "{{$deps[0] === 'Left' || $deps[0] === 'Right'}}"
- }
- }
- }
+ 'x-visible': "{{$deps[0] === 'Left' || $deps[0] === 'Right'}}",
+ },
+ },
+ },
},
bottom: {
title: 'Bottom',
@@ -296,11 +304,11 @@ export default (context) => {
dependencies: ['.position'],
fulfill: {
schema: {
- "x-visible": "{{$deps[0] === 'Left' || $deps[0] === 'Right'}}"
- }
- }
- }
+ 'x-visible': "{{$deps[0] === 'Left' || $deps[0] === 'Right'}}",
+ },
+ },
+ },
},
- groups: createGroupsMeta(context)
+ groups: createGroupsMeta(context),
};
};
diff --git a/packages/gi-assets-basic/src/components/Initializer/Component.tsx b/packages/gi-assets-basic/src/components/Initializer/Component.tsx
index 590d9f87a..172c80629 100644
--- a/packages/gi-assets-basic/src/components/Initializer/Component.tsx
+++ b/packages/gi-assets-basic/src/components/Initializer/Component.tsx
@@ -1,6 +1,7 @@
import { GIConfig, useContext, utils } from '@antv/gi-sdk';
import { notification } from 'antd';
import * as React from 'react';
+import $i18n from '../../i18n';
const { isPosition, isStyles } = utils;
export type GIService = any;
@@ -27,8 +28,14 @@ const Initializer: React.FunctionComponent = props => {
if (!initialService) {
notification.error({
- message: '画布渲染失败',
- description: `缺少 ${serviceId} 服务,请检查相关资产是否加载成功`,
+ message: $i18n.get({ id: 'basic.components.Initializer.Component.CanvasRenderingFailed', dm: '画布渲染失败' }),
+ description: $i18n.get(
+ {
+ id: 'basic.components.Initializer.Component.TheServiceidServiceIsMissing',
+ dm: '缺少 {serviceId} 服务,请检查相关资产是否加载成功',
+ },
+ { serviceId: serviceId },
+ ),
});
initialService = {
service: () => {
@@ -43,8 +50,17 @@ const Initializer: React.FunctionComponent = props => {
}
if (!schemaService) {
notification.error({
- message: '图模型获取失败',
- description: `缺少 ${serviceId} 服务,请检查相关资产是否加载成功`,
+ message: $i18n.get({
+ id: 'basic.components.Initializer.Component.FailedToObtainGraphModel',
+ dm: '图模型获取失败',
+ }),
+ description: $i18n.get(
+ {
+ id: 'basic.components.Initializer.Component.TheServiceidServiceIsMissing',
+ dm: '缺少 {serviceId} 服务,请检查相关资产是否加载成功',
+ },
+ { serviceId: serviceId },
+ ),
});
schemaService = {
service: () => {
@@ -73,8 +89,14 @@ const Initializer: React.FunctionComponent = props => {
if (nodes.length > largeGraphLimit) {
notification.warn({
- message: '加载的数据量过大',
- description: `建议聚合数据,默认切换到网格布局。您也可以在「资产中心」中加载「大图组件」启用 3D 渲染`,
+ message: $i18n.get({
+ id: 'basic.components.Initializer.Component.TheAmountOfDataLoaded',
+ dm: '加载的数据量过大',
+ }),
+ description: $i18n.get({
+ id: 'basic.components.Initializer.Component.WeRecommendThatYouAggregate',
+ dm: '建议聚合数据,默认切换到网格布局。您也可以在「资产中心」中加载「大图组件」启用 3D 渲染',
+ }),
});
}
updateContext(draft => {
diff --git a/packages/gi-assets-basic/src/components/Initializer/info.ts b/packages/gi-assets-basic/src/components/Initializer/info.ts
index fc2ede5e1..fb3d565b9 100644
--- a/packages/gi-assets-basic/src/components/Initializer/info.ts
+++ b/packages/gi-assets-basic/src/components/Initializer/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'Initializer',
- name: '初始化器',
- desc: '必选!初始化查询图数据与图模型',
+ name: $i18n.get({ id: 'basic.components.Initializer.info.Initializer', dm: '初始化器' }),
+ desc: $i18n.get({
+ id: 'basic.components.Initializer.info.RequiredInitializeQueryGraphData',
+ dm: '必选!初始化查询图数据与图模型',
+ }),
// icon: 'icon-export',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/Initializer/registerMeta.ts b/packages/gi-assets-basic/src/components/Initializer/registerMeta.ts
index 6fa47e956..fb5a6660b 100644
--- a/packages/gi-assets-basic/src/components/Initializer/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Initializer/registerMeta.ts
@@ -1,5 +1,6 @@
import { utils } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
export default context => {
const { services, engineId } = context;
@@ -12,7 +13,7 @@ export default context => {
);
return {
serviceId: {
- title: '初始化查询',
+ title: $i18n.get({ id: 'basic.components.Initializer.registerMeta.InitializeAQuery', dm: '初始化查询' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -22,7 +23,7 @@ export default context => {
default: defaultInitializerService,
},
schemaServiceId: {
- title: '查询图模型',
+ title: $i18n.get({ id: 'basic.components.Initializer.registerMeta.QueryGraphModel', dm: '查询图模型' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -34,7 +35,7 @@ export default context => {
// 注意⚠️:GI_INITIALIZER 是必须的属性字段,千万不要漏掉
GI_INITIALIZER: {
- title: '默认启动',
+ title: $i18n.get({ id: 'basic.components.Initializer.registerMeta.DefaultStartup', dm: '默认启动' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -44,14 +45,14 @@ export default context => {
default: true,
},
aggregate: {
- title: '汇总边',
+ title: $i18n.get({ id: 'basic.components.Initializer.registerMeta.SummaryEdge', dm: '汇总边' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: false,
},
transByFieldMapping: {
- title: '开启字段映射',
+ title: $i18n.get({ id: 'basic.components.Initializer.registerMeta.EnableFieldMapping', dm: '开启字段映射' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
diff --git a/packages/gi-assets-basic/src/components/LassoSelect/info.ts b/packages/gi-assets-basic/src/components/LassoSelect/info.ts
index 7e1d98406..500e93f52 100644
--- a/packages/gi-assets-basic/src/components/LassoSelect/info.ts
+++ b/packages/gi-assets-basic/src/components/LassoSelect/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'LassoSelect',
- name: '自由圈选',
- desc: '可通过拉索工具,自由圈选画布元素',
+ name: $i18n.get({ id: 'basic.components.LassoSelect.info.FreeSelection', dm: '自由圈选' }),
+ desc: $i18n.get({
+ id: 'basic.components.LassoSelect.info.YouCanUseTheCable',
+ dm: '可通过拉索工具,自由圈选画布元素',
+ }),
icon: 'icon-lasso',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/LassoSelect/registerMeta.ts b/packages/gi-assets-basic/src/components/LassoSelect/registerMeta.ts
index 7112b4608..62f7cd8cf 100644
--- a/packages/gi-assets-basic/src/components/LassoSelect/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/LassoSelect/registerMeta.ts
@@ -1,11 +1,15 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_METAS } = extra;
const metas = deepClone(GIAC_METAS);
metas.GIAC.properties.GIAC.properties.title.default = info.name;
metas.GIAC.properties.GIAC.properties.icon.default = info.icon;
-metas.GIAC.properties.GIAC.properties.tooltip.default = '按住Shift,点击画布即可自由圈选';
+metas.GIAC.properties.GIAC.properties.tooltip.default = $i18n.get({
+ id: 'basic.components.LassoSelect.registerMeta.HoldDownShiftAndClick',
+ dm: '按住Shift,点击画布即可自由圈选',
+});
metas.GIAC.properties.GIAC.properties.isShowTitle.default = false;
export default () => {
return metas;
diff --git a/packages/gi-assets-basic/src/components/LayoutSwitch/Component.tsx b/packages/gi-assets-basic/src/components/LayoutSwitch/Component.tsx
index 58bd107a7..70887b35f 100644
--- a/packages/gi-assets-basic/src/components/LayoutSwitch/Component.tsx
+++ b/packages/gi-assets-basic/src/components/LayoutSwitch/Component.tsx
@@ -3,6 +3,7 @@ import { Icon, extra, useContext, utils } from '@antv/gi-sdk';
import { LayoutConfig } from '@antv/gi-sdk/lib/typing';
import { Card, Popover, Radio, Space } from 'antd';
import React, { useEffect, useMemo } from 'react';
+import $i18n from '../../i18n';
const { GIAComponent } = extra;
@@ -41,8 +42,14 @@ const LayoutSwitch: React.FunctionComponent = props => {
updateHistory({
componentId: 'LayoutSwitch',
type: 'configure',
- subType: '布局切换',
- statement: `布局 ${layoutProps.type}`,
+ subType: $i18n.get({ id: 'basic.components.LayoutSwitch.Component.LayoutSwitching', dm: '布局切换' }),
+ statement: $i18n.get(
+ {
+ id: 'basic.components.LayoutSwitch.Component.LayoutLayoutpropstype',
+ dm: '布局 {layoutPropsType}',
+ },
+ { layoutPropsType: layoutProps.type },
+ ),
success,
errorMsg,
params: layoutProps,
@@ -100,7 +107,10 @@ const LayoutSwitch: React.FunctionComponent = props => {
}, [layouts]);
const content = (
-
+
{Radios}
);
diff --git a/packages/gi-assets-basic/src/components/LayoutSwitch/info.ts b/packages/gi-assets-basic/src/components/LayoutSwitch/info.ts
index 33d838c06..92a4fede6 100644
--- a/packages/gi-assets-basic/src/components/LayoutSwitch/info.ts
+++ b/packages/gi-assets-basic/src/components/LayoutSwitch/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'LayoutSwitch',
- name: '布局切换',
- desc: '一键切换布局',
+ name: $i18n.get({ id: 'basic.components.LayoutSwitch.info.LayoutSwitching', dm: '布局切换' }),
+ desc: $i18n.get({ id: 'basic.components.LayoutSwitch.info.SwitchLayoutWithOneClick', dm: '一键切换布局' }),
icon: 'icon-layout',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/LayoutSwitch/registerMeta.ts b/packages/gi-assets-basic/src/components/LayoutSwitch/registerMeta.ts
index 4f39e4fae..ce4f03101 100644
--- a/packages/gi-assets-basic/src/components/LayoutSwitch/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/LayoutSwitch/registerMeta.ts
@@ -1,12 +1,16 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_METAS } = extra;
const metas = deepClone(GIAC_METAS);
metas.GIAC.properties.GIAC.properties.title.default = info.name;
metas.GIAC.properties.GIAC.properties.icon.default = info.icon;
metas.GIAC.properties.GIAC.properties.isShowTooltip.default = false;
-metas.GIAC.properties.GIAC.properties.tooltip.default = '一键切换画布布局';
+metas.GIAC.properties.GIAC.properties.tooltip.default = $i18n.get({
+ id: 'basic.components.LayoutSwitch.registerMeta.SwitchCanvasLayoutWithOne',
+ dm: '一键切换画布布局',
+});
metas.GIAC.properties.GIAC.properties.isShowTitle.default = false;
export default () => {
return metas;
diff --git a/packages/gi-assets-basic/src/components/Loading/info.ts b/packages/gi-assets-basic/src/components/Loading/info.ts
index fef5d2301..0733316ce 100644
--- a/packages/gi-assets-basic/src/components/Loading/info.ts
+++ b/packages/gi-assets-basic/src/components/Loading/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'Loading',
- name: '加载动画',
- desc: '异步加载数据时,可展示加载动画',
+ name: $i18n.get({ id: 'basic.components.Loading.info.LoadAnimation', dm: '加载动画' }),
+ desc: $i18n.get({
+ id: 'basic.components.Loading.info.WhenLoadingDataAsynchronouslyThe',
+ dm: '异步加载数据时,可展示加载动画',
+ }),
icon: 'icon-loading',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/MiniMap/index.tsx b/packages/gi-assets-basic/src/components/MiniMap/index.tsx
index bf6aa3cce..20e9475a2 100755
--- a/packages/gi-assets-basic/src/components/MiniMap/index.tsx
+++ b/packages/gi-assets-basic/src/components/MiniMap/index.tsx
@@ -1,12 +1,13 @@
import { Components } from '@antv/graphin';
import registerMeta from './registerMeta';
+import $i18n from '../../i18n';
const { MiniMap } = Components;
/** index.md 中解析得到默认值,也可用户手动修改 */
const info = {
id: 'MiniMap',
- name: '小地图',
- desc: '启用后,可在小地图上展示信息',
+ name: $i18n.get({ id: 'basic.components.MiniMap.SmallMap', dm: '小地图' }),
+ desc: $i18n.get({ id: 'basic.components.MiniMap.WhenEnabledInformationCanBe', dm: '启用后,可在小地图上展示信息' }),
icon: 'icon-minimap',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/NeighborsQuery/Component.tsx b/packages/gi-assets-basic/src/components/NeighborsQuery/Component.tsx
index 667a25ff5..ac723336f 100644
--- a/packages/gi-assets-basic/src/components/NeighborsQuery/Component.tsx
+++ b/packages/gi-assets-basic/src/components/NeighborsQuery/Component.tsx
@@ -2,6 +2,7 @@ import { useContext, utils } from '@antv/gi-sdk';
import { Menu } from 'antd';
import React, { useEffect, useRef } from 'react';
+import $i18n from '../../i18n';
const { SubMenu } = Menu;
type ControlledValues = {
@@ -72,7 +73,15 @@ const QueryNeighbors: React.FunctionComponent = props => {
};
if (!propNodes) {
nodes = ids.map(id => graph.findById(id)?.getModel()).filter(Boolean);
- if (!nodes?.length) handleUpateHistory(historyProps, false, '当前画布中未找到指定的扩散起始节点');
+ if (!nodes?.length)
+ handleUpateHistory(
+ historyProps,
+ false,
+ $i18n.get({
+ id: 'basic.components.NeighborsQuery.Component.TheSpecifiedDiffusionStartNode',
+ dm: '当前画布中未找到指定的扩散起始节点',
+ }),
+ );
}
try {
const result = await service({
@@ -114,8 +123,9 @@ const QueryNeighbors: React.FunctionComponent = props => {
updateHistory({
componentId: 'NeighborsQuery',
type: 'analyse',
- subType: '邻居查询',
- statement: `查询 ${params.startIds.join(', ')} 的邻居`,
+ subType: $i18n.get({ id: 'basic.components.NeighborsQuery.Component.NeighborQuery', dm: '邻居查询' }),
+ statement1: `查询 ${params.startIds.join(', ')} 的邻居`,
+ statement: $i18n.get({ id: 'basic.components.NeighborsQuery.Component.NeighborQueryOfStarts', dm: `查询 ${params.startIds.join(', ')} 的邻居` }, { startIds: params.startIds.join(', ') },),
success,
errorMsg,
params,
@@ -158,9 +168,14 @@ const QueryNeighbors: React.FunctionComponent = props => {
};
}, [isFocus]);
- const ChineseIndex = ['一', '二', '三'];
+ const ChineseIndex = [
+ $i18n.get({ id: 'basic.components.NeighborsQuery.Component.One', dm: '一' }),
+ $i18n.get({ id: 'basic.components.NeighborsQuery.Component.Ii', dm: '二' }),
+ $i18n.get({ id: 'basic.components.NeighborsQuery.Component.Three', dm: '三' }),
+ ];
const menuItem = Array.from({ length: Number(degree) }).map((_item, idx) => {
- const name = ChineseIndex[idx] + '度扩展';
+ const name =
+ ChineseIndex[idx] + $i18n.get({ id: 'basic.components.NeighborsQuery.Component.DegreeExtension', dm: '度扩展' });
const sep = idx + 1;
return (
@@ -171,7 +186,12 @@ const QueryNeighbors: React.FunctionComponent = props => {
return (
// @ts-ignore
-
+
{menuItem}
);
diff --git a/packages/gi-assets-basic/src/components/NeighborsQuery/info.ts b/packages/gi-assets-basic/src/components/NeighborsQuery/info.ts
index 5c9553c21..47e0196ae 100644
--- a/packages/gi-assets-basic/src/components/NeighborsQuery/info.ts
+++ b/packages/gi-assets-basic/src/components/NeighborsQuery/info.ts
@@ -1,11 +1,15 @@
+import $i18n from '../../i18n';
const ASSET_ID = 'NeighborsQuery';
const info = {
id: ASSET_ID,
category: 'data-query',
type: 'GIAC_MENU',
- name: '邻居查询',
- desc: '集成在右键菜单中,可查询邻居节点',
+ name: $i18n.get({ id: 'basic.components.NeighborsQuery.info.NeighborQuery', dm: '邻居查询' }),
+ desc: $i18n.get({
+ id: 'basic.components.NeighborsQuery.info.IntegratedInTheRightClick',
+ dm: '集成在右键菜单中,可查询邻居节点',
+ }),
icon: 'icon-kinship',
cover: 'http://xxxx.jpg',
services: [ASSET_ID],
diff --git a/packages/gi-assets-basic/src/components/NeighborsQuery/registerMeta.ts b/packages/gi-assets-basic/src/components/NeighborsQuery/registerMeta.ts
index c9e1edc2b..fd61c4120 100644
--- a/packages/gi-assets-basic/src/components/NeighborsQuery/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/NeighborsQuery/registerMeta.ts
@@ -1,5 +1,6 @@
import { utils } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
interface Service {
id: string;
@@ -11,7 +12,7 @@ export default context => {
return {
serviceId: {
- title: '数据服务',
+ title: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.DataService', dm: '数据服务' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -21,7 +22,7 @@ export default context => {
},
},
degree: {
- title: '可查询度数',
+ title: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.QueryableDegrees', dm: '可查询度数' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -29,29 +30,32 @@ export default context => {
options: [
{
value: 1,
- label: '一度查询',
+ label: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.OnceQuery', dm: '一度查询' }),
},
{
value: 2,
- label: '二度查询',
+ label: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.SecondDegreeQuery', dm: '二度查询' }),
},
{
value: 3,
- label: '三度查询',
+ label: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.ThreeDegreeQuery', dm: '三度查询' }),
},
],
},
default: 3,
},
isFocus: {
- title: '是否聚焦到扩散点',
+ title: $i18n.get({
+ id: 'basic.components.NeighborsQuery.registerMeta.WhetherToFocusOnThe',
+ dm: '是否聚焦到扩散点',
+ }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
limit: {
- title: '限制数量',
+ title: $i18n.get({ id: 'basic.components.NeighborsQuery.registerMeta.LimitedQuantity', dm: '限制数量' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
diff --git a/packages/gi-assets-basic/src/components/NodeLegend/info.ts b/packages/gi-assets-basic/src/components/NodeLegend/info.ts
index fe1a1bf6d..81c04c2ac 100644
--- a/packages/gi-assets-basic/src/components/NodeLegend/info.ts
+++ b/packages/gi-assets-basic/src/components/NodeLegend/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'NodeLegend',
- name: '节点图例',
- desc: '启用后可展示节点的图例信息',
+ name: $i18n.get({ id: 'basic.components.NodeLegend.info.NodeLegend', dm: '节点图例' }),
+ desc: $i18n.get({
+ id: 'basic.components.NodeLegend.info.WhenEnabledTheLegendInformation',
+ dm: '启用后可展示节点的图例信息',
+ }),
icon: 'icon-legend',
cover: 'http://xxxx.jpg',
category: 'data-analysis',
diff --git a/packages/gi-assets-basic/src/components/NodeLegend/registerMeta.tsx b/packages/gi-assets-basic/src/components/NodeLegend/registerMeta.tsx
index c802a7c7e..12a81b5c5 100644
--- a/packages/gi-assets-basic/src/components/NodeLegend/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/components/NodeLegend/registerMeta.tsx
@@ -1,4 +1,5 @@
import { PLACEMENT_OPTIONS } from '../const';
+import $i18n from '../../i18n';
const registerMeta = context => {
const { data, schemaData } = context;
let keys = ['id'];
@@ -17,7 +18,7 @@ const registerMeta = context => {
const schema = {
sortKey: {
- title: '映射字段',
+ title: $i18n.get({ id: 'basic.components.NodeLegend.registerMeta.MappingField', dm: '映射字段' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -25,14 +26,14 @@ const registerMeta = context => {
enum: options,
},
textColor: {
- title: '字体颜色',
+ title: $i18n.get({ id: 'basic.components.NodeLegend.registerMeta.FontColor', dm: '字体颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: '#ddd',
},
placement: {
- title: '组件位置',
+ title: $i18n.get({ id: 'basic.components.NodeLegend.registerMeta.ComponentLocation', dm: '组件位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -40,7 +41,7 @@ const registerMeta = context => {
default: 'LB',
},
offset: {
- title: '偏移量',
+ title: $i18n.get({ id: 'basic.components.NodeLegend.registerMeta.Offset', dm: '偏移量' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Offset',
diff --git a/packages/gi-assets-basic/src/components/OperatorBar/index.tsx b/packages/gi-assets-basic/src/components/OperatorBar/index.tsx
index af1fc4503..b6e857524 100644
--- a/packages/gi-assets-basic/src/components/OperatorBar/index.tsx
+++ b/packages/gi-assets-basic/src/components/OperatorBar/index.tsx
@@ -1,11 +1,14 @@
import Component from './Component';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'OperatorBar',
- name: '操作栏',
- desc: '业务操作栏,可集成众多分析组件',
+ name: $i18n.get({ id: 'basic.components.OperatorBar.ActionBar', dm: '操作栏' }),
+ desc: $i18n.get({
+ id: 'basic.components.OperatorBar.BusinessActionBarWhichCan',
+ dm: '业务操作栏,可集成众多分析组件',
+ }),
icon: 'icon-tabs',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/OperatorBar/registerMeta.ts b/packages/gi-assets-basic/src/components/OperatorBar/registerMeta.ts
index 91dbc913b..83a8f4be0 100644
--- a/packages/gi-assets-basic/src/components/OperatorBar/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/OperatorBar/registerMeta.ts
@@ -1,4 +1,5 @@
import { extra } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const { deepClone, GI_CONTAINER_METAS } = extra;
const metas = deepClone(GI_CONTAINER_METAS);
@@ -12,14 +13,19 @@ const registerMeta = context => {
const GIAC_TRANS = GIAC_ITEMS.map(c => {
return {
...c,
- label: c.label + ' (建议集成在工具栏) ',
+ label:
+ c.label +
+ $i18n.get({
+ id: 'basic.components.OperatorBar.registerMeta.WeRecommendThatYouIntegrate',
+ dm: '(建议集成在工具栏)',
+ }),
};
});
return {
/** 分类信息 */
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.OperatorBar.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
diff --git a/packages/gi-assets-basic/src/components/OperatorHeader/index.tsx b/packages/gi-assets-basic/src/components/OperatorHeader/index.tsx
index 3c1c74f7c..9967037c7 100644
--- a/packages/gi-assets-basic/src/components/OperatorHeader/index.tsx
+++ b/packages/gi-assets-basic/src/components/OperatorHeader/index.tsx
@@ -1,11 +1,11 @@
import Component from './Component';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'OperatorHeader',
- name: '操作头栏',
- desc: '操作头栏',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.OperationHeaderBar', dm: '操作头栏' }),
+ desc: $i18n.get({ id: 'basic.components.OperatorHeader.OperationHeaderBar', dm: '操作头栏' }),
cover: 'http://xxxx.jpg',
category: 'container-components',
type: 'GICC',
diff --git a/packages/gi-assets-basic/src/components/OperatorHeader/registerMeta.ts b/packages/gi-assets-basic/src/components/OperatorHeader/registerMeta.ts
index e30910ccc..f85775a42 100644
--- a/packages/gi-assets-basic/src/components/OperatorHeader/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/OperatorHeader/registerMeta.ts
@@ -1,9 +1,10 @@
import { extra } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const { deepClone, GI_CONTAINER_METAS } = extra;
const metas = deepClone(GI_CONTAINER_METAS);
//@ts-ignore
metas.gap = {
- name: '间隔',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.registerMeta.Interval', dm: '间隔' }),
type: 'text',
default: '0px',
};
@@ -12,13 +13,13 @@ const registerMeta = context => {
return {
/** 分类信息 */
GI_CONTAINER: {
- name: '集成组件',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'TagsSelect',
default: [],
options: GI_CONTAINER_INDEXS,
},
leftContainer: {
- name: '左侧组件',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.registerMeta.LeftComponent', dm: '左侧组件' }),
type: 'TagsSelect',
default: [],
options: GI_CONTAINER_INDEXS,
@@ -27,7 +28,7 @@ const registerMeta = context => {
},
},
centerContainer: {
- name: '中间组件',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.registerMeta.IntermediateComponent', dm: '中间组件' }),
type: 'TagsSelect',
default: [],
options: GI_CONTAINER_INDEXS,
@@ -36,7 +37,7 @@ const registerMeta = context => {
},
},
rightContainer: {
- name: '右侧组件',
+ name: $i18n.get({ id: 'basic.components.OperatorHeader.registerMeta.RightComponent', dm: '右侧组件' }),
type: 'TagsSelect',
default: [],
options: GI_CONTAINER_INDEXS,
diff --git a/packages/gi-assets-basic/src/components/OverView/Component.tsx b/packages/gi-assets-basic/src/components/OverView/Component.tsx
index 8d9c8b800..6af030e59 100755
--- a/packages/gi-assets-basic/src/components/OverView/Component.tsx
+++ b/packages/gi-assets-basic/src/components/OverView/Component.tsx
@@ -3,6 +3,7 @@ import { Alert, Col, Row, Statistic } from 'antd';
import * as React from 'react';
import FilterPanel from './Filter';
import './index.less';
+import $i18n from '../../i18n';
export interface LoadingProps {
limit: number;
@@ -25,20 +26,35 @@ const Overview: React.FunctionComponent = props => {
draft.largeGraphLimit = limit;
});
}, [limit]);
- const title = `为了画布渲染性能 与 用户高效分析,对超过 ${limit} 节点做了展示限制展示,可在属性面板中自定义。您可以通过下方的筛选面板,根据统计分析结果选择展示`;
+ const title = $i18n.get(
+ {
+ id: 'basic.components.OverView.Component.InOrderToAnalyzeCanvas',
+ dm: '为了画布渲染性能 与 用户高效分析,对超过 {limit} 节点做了展示限制展示,可在属性面板中自定义。您可以通过下方的筛选面板,根据统计分析结果选择展示',
+ },
+ { limit: limit },
+ );
const statistic = largeGraphData || source;
return (
-
+
-
+
-
+
diff --git a/packages/gi-assets-basic/src/components/OverView/Filter.tsx b/packages/gi-assets-basic/src/components/OverView/Filter.tsx
index d4d2025fd..bc5ff73f0 100644
--- a/packages/gi-assets-basic/src/components/OverView/Filter.tsx
+++ b/packages/gi-assets-basic/src/components/OverView/Filter.tsx
@@ -9,6 +9,7 @@ import '../FilterPanel/index.less';
import { IFilterCriteria } from '../FilterPanel/type';
import { filterGraphData } from '../FilterPanel/utils';
import Interpretation from './Interpretation';
+import $i18n from '../../i18n';
const { isStyles } = utils;
@@ -148,7 +149,7 @@ const FilterPanel: React.FunctionComponent
= props => {
}>
- 增加筛选器
+ {$i18n.get({ id: 'basic.components.OverView.Filter.AddFilter', dm: '增加筛选器' })}
{Object.values(filterOptions).map(filterCriter => {
diff --git a/packages/gi-assets-basic/src/components/OverView/Interpretation.tsx b/packages/gi-assets-basic/src/components/OverView/Interpretation.tsx
index a24bc50b1..5add257c0 100644
--- a/packages/gi-assets-basic/src/components/OverView/Interpretation.tsx
+++ b/packages/gi-assets-basic/src/components/OverView/Interpretation.tsx
@@ -4,6 +4,7 @@ import { Button, Col, List, Popover, Row, Statistic, Tag, Tooltip } from 'antd';
import * as React from 'react';
import downloadCsv from '../common/downloadCsv';
import { IFilterCriteria } from '../FilterPanel/type';
+import $i18n from '../../i18n';
interface interpretationProps {
filterLogic: 'and' | 'or';
filterOptions: { [id: string]: IFilterCriteria };
@@ -45,33 +46,44 @@ const interpretation: React.FunctionComponent
= props => {
if (item.analyzerType === 'HISTOGRAM') {
const tmp = item.range?.map(e => e.join('~'));
- value = tmp?.join(' 或 ');
+ value = tmp?.join($i18n.get({ id: 'basic.components.OverView.Interpretation.Or', dm: '或' }));
//value = JSON.stringify(item.range)
}
return (
{type} RULE
- {item.prop} 为 {value}
+ {item.prop}
+ {$i18n.get({ id: 'basic.components.OverView.Interpretation.For', dm: '为' })}
+ {value}
);
}}
/>
);
+
return (
-
数据操作
+
+ {$i18n.get({ id: 'basic.components.OverView.Interpretation.DataOperations', dm: '数据操作' })}
+
-
+
} onClick={handleDownload}>
} onClick={handleShowFilter}>
@@ -81,10 +93,16 @@ const interpretation: React.FunctionComponent = props => {
-
+
-
+
diff --git a/packages/gi-assets-basic/src/components/OverView/info.ts b/packages/gi-assets-basic/src/components/OverView/info.ts
index 20e8a1947..012a5cb9f 100644
--- a/packages/gi-assets-basic/src/components/OverView/info.ts
+++ b/packages/gi-assets-basic/src/components/OverView/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'Overview',
- name: '大图概览',
- desc: '大图概览',
+ name: $i18n.get({ id: 'basic.components.OverView.info.BigPictureOverview', dm: '大图概览' }),
+ desc: $i18n.get({ id: 'basic.components.OverView.info.BigPictureOverview', dm: '大图概览' }),
icon: 'icon-dashboard',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/OverView/registerMeta.ts b/packages/gi-assets-basic/src/components/OverView/registerMeta.ts
index b296c587d..57afff5e4 100755
--- a/packages/gi-assets-basic/src/components/OverView/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/OverView/registerMeta.ts
@@ -1,5 +1,6 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_CONTENT_METAS } = extra;
const metas = deepClone(GIAC_CONTENT_METAS);
metas.GIAC_CONTENT.properties.GIAC_CONTENT.properties.title.default = info.name;
@@ -9,14 +10,17 @@ metas.GIAC_CONTENT.properties.GIAC_CONTENT.properties.containerWidth.default = '
export default () => {
return {
limit: {
- title: '限制展示数量(节点)',
+ title: $i18n.get({
+ id: 'basic.components.OverView.registerMeta.LimitTheNumberOfDisplays',
+ dm: '限制展示数量(节点)',
+ }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 600,
},
filterLogic: {
- title: '筛选逻辑',
+ title: $i18n.get({ id: 'basic.components.OverView.registerMeta.FilteringLogic', dm: '筛选逻辑' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -24,6 +28,7 @@ export default () => {
{ value: 'and', label: 'and' },
{ value: 'or', label: 'or' },
],
+
default: 'and',
},
...metas,
diff --git a/packages/gi-assets-basic/src/components/PathAnalysis/Component.tsx b/packages/gi-assets-basic/src/components/PathAnalysis/Component.tsx
index 5b1790c0b..e74ddea1c 100644
--- a/packages/gi-assets-basic/src/components/PathAnalysis/Component.tsx
+++ b/packages/gi-assets-basic/src/components/PathAnalysis/Component.tsx
@@ -10,6 +10,7 @@ import PanelExtra from './PanelExtra';
import { IHighlightElement, IState } from './typing';
import { getPathByWeight } from './utils';
import { findShortestPath } from '@antv/algorithm';
+import $i18n from '../../i18n';
const { Panel } = Collapse;
@@ -74,8 +75,14 @@ const PathAnalysis: React.FC = props => {
const history = {
componentId: 'PathAnalysis',
type: 'analyse',
- subType: '路径',
- statement: `起点: ${source}, 终点: ${target}`,
+ subType: $i18n.get({ id: 'basic.components.PathAnalysis.Component.Path', dm: '路径' }),
+ statement: $i18n.get(
+ {
+ id: 'basic.components.PathAnalysis.Component.StartPointSourceEndPoint',
+ dm: '起点: {source}, 终点: {target}',
+ },
+ { source: source, target: target },
+ ),
params: {
source,
target,
@@ -85,11 +92,26 @@ const PathAnalysis: React.FC = props => {
try {
const { allPath: allNodePath, allEdgePath }: any = findShortestPath(graphData, source, target, direction);
if (!allNodePath?.length) {
- let info = '无符合条件的路径';
+ let info = $i18n.get({
+ id: 'basic.components.PathAnalysis.Component.NoPathThatMeetsThe',
+ dm: '无符合条件的路径',
+ });
if (direction) {
- info = `${info},可尝试将“是否有向”设置为“无向”,或改变起点与终点`;
+ info = $i18n.get(
+ {
+ id: 'basic.components.PathAnalysis.Component.InfoYouCanTryTo',
+ dm: '{info},可尝试将“是否有向”设置为“无向”,或改变起点与终点',
+ },
+ { info: info },
+ );
} else {
- info = `${info},可尝试改变起点与终点`;
+ info = $i18n.get(
+ {
+ id: 'basic.components.PathAnalysis.Component.InfoYouCanTryTo.1',
+ dm: '{info},可尝试改变起点与终点',
+ },
+ { info: info },
+ );
}
message.info(info);
updateHistory({
@@ -296,12 +318,23 @@ const PathAnalysis: React.FC = props => {
diff --git a/packages/gi-assets-basic/src/components/PathAnalysis/FilterRule.tsx b/packages/gi-assets-basic/src/components/PathAnalysis/FilterRule.tsx
index 3fecdb786..89d9920dc 100644
--- a/packages/gi-assets-basic/src/components/PathAnalysis/FilterRule.tsx
+++ b/packages/gi-assets-basic/src/components/PathAnalysis/FilterRule.tsx
@@ -3,6 +3,7 @@ import { useContext, utils } from '@antv/gi-sdk';
import { Button, Form, Popover, Select } from 'antd';
import React, { useMemo } from 'react';
import { IState } from './typing';
+import $i18n from '../../i18n';
export interface FileRuleProps {
children: React.FC;
}
@@ -15,15 +16,15 @@ export interface IFilterRuleContentProps {
const options = [
{
value: 'All-Path',
- label: '所有路径',
+ label: $i18n.get({ id: 'basic.components.PathAnalysis.FilterRule.AllPaths', dm: '所有路径' }),
},
{
value: 'Shortest-Path',
- label: '加权最短路径',
+ label: $i18n.get({ id: 'basic.components.PathAnalysis.FilterRule.WeightedShortestPath', dm: '加权最短路径' }),
},
{
value: 'Edge-Type-Filter',
- label: '边类型过滤',
+ label: $i18n.get({ id: 'basic.components.PathAnalysis.FilterRule.EdgeTypeFiltering', dm: '边类型过滤' }),
},
];
@@ -69,11 +70,13 @@ const FilterRuleContent: React.FC
= props => {
return (
-
+
{filterRule.type === 'Shortest-Path' && (
-
+
{weightProperties.map(prop => {
return {prop};
@@ -81,8 +84,9 @@ const FilterRuleContent: React.FC = props => {
)}
+
{filterRule.type === 'Edge-Type-Filter' && (
-
+
{edgeTypeOptions.map(option => {
return {option.label};
@@ -99,7 +103,7 @@ export const FilterRule = props => {
return (
}
>
diff --git a/packages/gi-assets-basic/src/components/PathAnalysis/info.ts b/packages/gi-assets-basic/src/components/PathAnalysis/info.ts
index aba77a070..3df1373d3 100644
--- a/packages/gi-assets-basic/src/components/PathAnalysis/info.ts
+++ b/packages/gi-assets-basic/src/components/PathAnalysis/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'PathAnalysis',
- name: '路径分析',
- desc: '选择起点和终点,即可分析路径',
+ name: $i18n.get({ id: 'basic.components.PathAnalysis.info.PathAnalysis', dm: '路径分析' }),
+ desc: $i18n.get({
+ id: 'basic.components.PathAnalysis.info.SelectAStartPointAnd',
+ dm: '选择起点和终点,即可分析路径',
+ }),
icon: 'icon-path-analysis',
cover: 'http://xxxx.jpg',
category: 'data-analysis',
diff --git a/packages/gi-assets-basic/src/components/PathAnalysis/registerMeta.ts b/packages/gi-assets-basic/src/components/PathAnalysis/registerMeta.ts
index d6b972bff..47d47817e 100644
--- a/packages/gi-assets-basic/src/components/PathAnalysis/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/PathAnalysis/registerMeta.ts
@@ -1,5 +1,6 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_CONTENT_METAS } = extra;
const metas = deepClone(GIAC_CONTENT_METAS);
metas.GIAC_CONTENT.properties.GIAC_CONTENT.properties.title.default = info.name;
@@ -19,7 +20,7 @@ const registerMeta = ({ schemaData }) => {
return {
pathNodeLabel: {
- title: '标签映射',
+ title: $i18n.get({ id: 'basic.components.PathAnalysis.registerMeta.TagMapping', dm: '标签映射' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
diff --git a/packages/gi-assets-basic/src/components/PinNodeWithMenu/Component.tsx b/packages/gi-assets-basic/src/components/PinNodeWithMenu/Component.tsx
index 5e2d0485c..367760444 100644
--- a/packages/gi-assets-basic/src/components/PinNodeWithMenu/Component.tsx
+++ b/packages/gi-assets-basic/src/components/PinNodeWithMenu/Component.tsx
@@ -4,6 +4,7 @@ import React, { useEffect, useState } from 'react';
import { handlePinNode, handleUnPinNode } from '../common/handlePinNode';
import { INode } from '@antv/g6';
+import $i18n from '../../i18n';
export interface PinNodeMenuItemProps {
contextmenu: any;
@@ -26,7 +27,12 @@ const PinNodeMenuItem: React.FunctionComponent = props =>
// 仅支持对节点的操作
const invalidFromContextMenu = !target || target.destroyed || target.getType?.() !== 'node';
if (invalidFromContextMenu && !propId) {
- handleUpateHistory(undefined, undefined, false, '节点不存在');
+ handleUpateHistory(
+ undefined,
+ undefined,
+ false,
+ $i18n.get({ id: 'basic.components.PinNodeWithMenu.Component.TheNodeDoesNotExist', dm: '节点不存在' }),
+ );
return null;
}
contextmenu.onClose();
@@ -36,7 +42,12 @@ const PinNodeMenuItem: React.FunctionComponent = props =>
let id;
if (propId) {
if (!graph.findById(propId)) {
- handleUpateHistory(undefined, undefined, false, '节点不存在');
+ handleUpateHistory(
+ undefined,
+ undefined,
+ false,
+ $i18n.get({ id: 'basic.components.PinNodeWithMenu.Component.TheNodeDoesNotExist', dm: '节点不存在' }),
+ );
return;
}
id = propId;
@@ -66,8 +77,14 @@ const PinNodeMenuItem: React.FunctionComponent = props =>
updateHistory({
componentId: 'PinNodeWithMenu',
type: 'configure',
- subType: '固定节点',
- statement: `固定 ${id}`,
+ subType: $i18n.get({ id: 'basic.components.PinNodeWithMenu.Component.FixedNode', dm: '固定节点' }),
+ statement: $i18n.get(
+ {
+ id: 'basic.components.PinNodeWithMenu.Component.FixedId',
+ dm: '固定 {id}',
+ },
+ { id: id },
+ ),
success,
errorMsg,
params: { id, action },
@@ -96,7 +113,9 @@ const PinNodeMenuItem: React.FunctionComponent = props =>
return (
handleLockNode()}>
- {targetNode.getModel().pinned ? '解除固定' : '固定节点'}
+ {targetNode.getModel().pinned
+ ? $i18n.get({ id: 'basic.components.PinNodeWithMenu.Component.Unfix', dm: '解除固定' })
+ : $i18n.get({ id: 'basic.components.PinNodeWithMenu.Component.FixedNode', dm: '固定节点' })}
);
};
diff --git a/packages/gi-assets-basic/src/components/PinNodeWithMenu/index.tsx b/packages/gi-assets-basic/src/components/PinNodeWithMenu/index.tsx
index 10e82a4a5..6208276ce 100644
--- a/packages/gi-assets-basic/src/components/PinNodeWithMenu/index.tsx
+++ b/packages/gi-assets-basic/src/components/PinNodeWithMenu/index.tsx
@@ -1,13 +1,16 @@
import Component from './Component';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'PinNodeWithMenu',
- name: '固定节点(MENU)',
+ name: $i18n.get({ id: 'basic.components.PinNodeWithMenu.FixedNodeMenu', dm: '固定节点(MENU)' }),
category: 'elements-interaction',
- desc: '固定节点,常集成在右键菜单中',
+ desc: $i18n.get({
+ id: 'basic.components.PinNodeWithMenu.FixedNodeOftenIntegratedIn',
+ dm: '固定节点,常集成在右键菜单中',
+ }),
cover: 'http://xxxx.jpg',
icon: 'icon-pushpin',
type: 'GIAC_MENU',
diff --git a/packages/gi-assets-basic/src/components/Placeholder/Component.tsx b/packages/gi-assets-basic/src/components/Placeholder/Component.tsx
index f802f4d64..23d716b62 100755
--- a/packages/gi-assets-basic/src/components/Placeholder/Component.tsx
+++ b/packages/gi-assets-basic/src/components/Placeholder/Component.tsx
@@ -1,6 +1,7 @@
import { useContext } from '@antv/gi-sdk';
import * as React from 'react';
import './index.less';
+import $i18n from '../../i18n';
export interface LoadingProps {
img?: string;
@@ -26,8 +27,15 @@ const Placeholder: React.FunctionComponent = props => {
return (
{img &&
}
- 当前载入图的节点规模已经超出「{largeGraphLimit}
- 」限制,建议您在资产中心中加载「大图概览」资产,筛选子图数据 或 调整限制规模
+ {$i18n.get({
+ id: 'basic.components.Placeholder.Component.TheNodeSizeOfThe',
+ dm: '当前载入图的节点规模已经超出「',
+ })}
+ {largeGraphLimit}
+ {$i18n.get({
+ id: 'basic.components.Placeholder.Component.RestrictionsWeRecommendThatYou',
+ dm: '」限制,建议您在资产中心中加载「大图概览」资产,筛选子图数据 或 调整限制规模',
+ })}
);
}
diff --git a/packages/gi-assets-basic/src/components/Placeholder/info.ts b/packages/gi-assets-basic/src/components/Placeholder/info.ts
index 715d2a0bd..3c413e590 100644
--- a/packages/gi-assets-basic/src/components/Placeholder/info.ts
+++ b/packages/gi-assets-basic/src/components/Placeholder/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'Placeholder',
- name: '画布占位符',
- desc: '画布为空时出现的图片占位符',
+ name: $i18n.get({ id: 'basic.components.Placeholder.info.CanvasPlaceholder', dm: '画布占位符' }),
+ desc: $i18n.get({
+ id: 'basic.components.Placeholder.info.ImagePlaceholderWhenCanvasIs',
+ dm: '画布为空时出现的图片占位符',
+ }),
icon: 'icon-placeholder',
cover: 'http://xxxx.jpg',
category: 'system-interaction',
diff --git a/packages/gi-assets-basic/src/components/Placeholder/registerMeta.ts b/packages/gi-assets-basic/src/components/Placeholder/registerMeta.ts
index a9003131a..9882ced77 100755
--- a/packages/gi-assets-basic/src/components/Placeholder/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Placeholder/registerMeta.ts
@@ -1,22 +1,26 @@
+import $i18n from '../../i18n';
export default () => {
return {
img: {
type: 'string',
'x-component': 'Input',
'x-decorator': 'FormItem',
- title: '图片地址',
+ title: $i18n.get({ id: 'basic.components.Placeholder.registerMeta.ImageAddress', dm: '图片地址' }),
default: 'https://gw.alipayobjects.com/zos/bmw-prod/db278704-6158-432e-99d2-cc5db457585d.svg',
},
text: {
type: 'string',
- title: '文本',
+ title: $i18n.get({ id: 'basic.components.Placeholder.registerMeta.Text', dm: '文本' }),
'x-component': 'Input',
'x-decorator': 'FormItem',
- default: '开始你的图分析应用~',
+ default: $i18n.get({
+ id: 'basic.components.Placeholder.registerMeta.StartYourGraphAnalysisApplication',
+ dm: '开始你的图分析应用~',
+ }),
},
width: {
type: 'number',
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.Placeholder.registerMeta.Width', dm: '宽度' }),
'x-component': 'NumberPicker',
'x-decorator': 'FormItem',
default: 200,
diff --git a/packages/gi-assets-basic/src/components/PropertiesPanel/PropertiesDetail.tsx b/packages/gi-assets-basic/src/components/PropertiesPanel/PropertiesDetail.tsx
index 5fca8de34..f8e25e6a1 100644
--- a/packages/gi-assets-basic/src/components/PropertiesPanel/PropertiesDetail.tsx
+++ b/packages/gi-assets-basic/src/components/PropertiesPanel/PropertiesDetail.tsx
@@ -2,6 +2,7 @@ import React from 'react';
import { Input, Empty, Row, Col, Tooltip } from 'antd';
import { useImmer } from 'use-immer';
import { FireTwoTone } from '@ant-design/icons';
+import $i18n from '../../i18n';
const Search = Input.Search;
interface PropertiesDetailProp {
@@ -78,6 +79,7 @@ const PropertiesDetail: React.FC = props => {
}}
/>
)}
+
{content.map(item => {
const { key, value, isObject, rank, isOutlier } = item;
@@ -85,12 +87,29 @@ const PropertiesDetail: React.FC = props => {
let tip = '';
if (rank !== undefined || isOutlier !== undefined) {
let importance = 3 - (rank || 0);
+ tip = $i18n.get(
+ {
+ id: 'basic.components.PropertiesPanel.PropertiesDetail.CompareWithOtherAttribute',
+ dm: `相对于属性 “${key}” 的其他值而言,当前属性值 “${value}” 出现概率${
+ importance > 1 ? '极低' : '较低'
+ },可能含有大信息量,值得关注`,
+ },
+ { key: key, value: value, importance: $i18n.get({
+ id: `basic.components.PropertiesPanel.PropertiesDetail.${importance > 1 ? 'VeryLow' : 'RelativelyLow'}Importance`
+ })},
+ )
tip = `相对于属性 “${key}” 的其他值而言,当前属性值 “${value}” 出现概率${
importance > 1 ? '极低' : '较低'
},可能含有大信息量,值得关注`;
if (isOutlier) {
importance = 4;
- tip = `属性 “${key}” 的大部分属性值具有相同出现次数,而当前属性值 “${value}” 出现此处大于平均出现次数,值得关注`;
+ tip = $i18n.get(
+ {
+ id: 'basic.components.PropertiesPanel.PropertiesDetail.MostAttributeValuesOfThe',
+ dm: '属性 “{key}” 的大部分属性值具有相同出现次数,而当前属性值 “{value}” 出现此处大于平均出现次数,值得关注',
+ },
+ { key: key, value: value },
+ );
}
stars = new Array(importance).fill();
}
diff --git a/packages/gi-assets-basic/src/components/PropertiesPanel/Statistic/ChartCard.tsx b/packages/gi-assets-basic/src/components/PropertiesPanel/Statistic/ChartCard.tsx
index d561f19d9..1e3176179 100644
--- a/packages/gi-assets-basic/src/components/PropertiesPanel/Statistic/ChartCard.tsx
+++ b/packages/gi-assets-basic/src/components/PropertiesPanel/Statistic/ChartCard.tsx
@@ -4,6 +4,7 @@ import React from 'react';
import { useImmer } from 'use-immer';
import ColumnChart from './Charts/ColumnChart';
import LineChart from './Charts/LineChart';
+import $i18n from '../../../i18n';
const chartOptions = [
{
@@ -80,13 +81,18 @@ const ChartCard: React.FC = props => {
const extra = (
<>
-
+
{xFieldOptions.map(x => (
{x}
))}
= props => {
return (
-
+
{state.chartType === 'lineChart' && (
)}
+
{state.chartType === 'columnChart' && (
-
- )}
+
+ )}
);
diff --git a/packages/gi-assets-basic/src/components/PropertiesPanel/info.tsx b/packages/gi-assets-basic/src/components/PropertiesPanel/info.tsx
index 5da031d67..3e3f35b75 100644
--- a/packages/gi-assets-basic/src/components/PropertiesPanel/info.tsx
+++ b/packages/gi-assets-basic/src/components/PropertiesPanel/info.tsx
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const ASSET_ID = 'PropertiesPanel';
const info = {
id: ASSET_ID,
- name: '属性面板',
- desc: '点击节点或边,展示其详情信息',
+ name: $i18n.get({ id: 'basic.components.PropertiesPanel.info.PropertiesPanel', dm: '属性面板' }),
+ desc: $i18n.get({ id: 'basic.components.PropertiesPanel.info.ClickANodeOrEdge', dm: '点击节点或边,展示其详情信息' }),
icon: 'icon-reconciliation',
category: 'elements-interaction',
cover: 'http://xxxx.jpg',
diff --git a/packages/gi-assets-basic/src/components/PropertiesPanel/registerMeta.ts b/packages/gi-assets-basic/src/components/PropertiesPanel/registerMeta.ts
index f5dd9d7c7..c0e5df399 100644
--- a/packages/gi-assets-basic/src/components/PropertiesPanel/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/PropertiesPanel/registerMeta.ts
@@ -1,5 +1,6 @@
import { utils } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const registerMeta = context => {
const { services, engineId, hasPropertyGraph } = context;
@@ -8,7 +9,7 @@ const registerMeta = context => {
const schema = {
serviceId: {
- title: '数据服务',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.DataService', dm: '数据服务' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -20,7 +21,10 @@ const registerMeta = context => {
enableInfoDetect: hasPropertyGraph
? {
- title: '属性推荐',
+ title: $i18n.get({
+ id: 'basic.components.PropertiesPanel.registerMeta.AttributeRecommendation',
+ dm: '属性推荐',
+ }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -29,40 +33,43 @@ const registerMeta = context => {
: undefined,
defaultiStatistic: {
- title: '默认展示统计信息',
+ title: $i18n.get({
+ id: 'basic.components.PropertiesPanel.registerMeta.StatisticsAreDisplayedByDefault',
+ dm: '默认展示统计信息',
+ }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: false,
},
title: {
- title: '标题',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Title', dm: '标题' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
- default: '属性面板',
+ default: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.PropertiesPanel', dm: '属性面板' }),
},
placement: {
- title: '展示方位',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.DisplayOrientation', dm: '展示方位' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
options: [
{
- label: '左部',
+ label: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Left', dm: '左部' }),
value: 'LB',
},
{
- label: '右部',
+ label: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Right', dm: '右部' }),
value: 'RT',
},
{
- label: '上部',
+ label: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.UpperPart', dm: '上部' }),
value: 'LT',
},
{
- label: '底部',
+ label: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Bottom', dm: '底部' }),
value: 'RB',
},
],
@@ -70,28 +77,28 @@ const registerMeta = context => {
default: 'LB',
},
width: {
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Width', dm: '宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
default: '500px',
},
height: {
- title: '高度',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.Height', dm: '高度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
default: 'calc(100% - 80px)',
},
offset: {
- title: '偏移距离',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.OffsetDistance', dm: '偏移距离' }),
type: 'array',
'x-decorator': 'FormItem',
'x-component': 'Offset',
default: [10, 10],
},
animate: {
- title: '抽屉动画',
+ title: $i18n.get({ id: 'basic.components.PropertiesPanel.registerMeta.DrawerAnimation', dm: '抽屉动画' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
diff --git a/packages/gi-assets-basic/src/components/PropertyGraphInitializer/info.ts b/packages/gi-assets-basic/src/components/PropertyGraphInitializer/info.ts
index aab797816..adbd53607 100644
--- a/packages/gi-assets-basic/src/components/PropertyGraphInitializer/info.ts
+++ b/packages/gi-assets-basic/src/components/PropertyGraphInitializer/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'PropertyGraphInitializer',
- name: '属性图计算',
- desc: '辅助其他资产智能分析本地数据的属性图计算',
+ name: $i18n.get({ id: 'basic.components.PropertyGraphInitializer.info.AttributeGraphCalculation', dm: '属性图计算' }),
+ desc: $i18n.get({
+ id: 'basic.components.PropertyGraphInitializer.info.AssistOtherAssetsToIntelligently',
+ dm: '辅助其他资产智能分析本地数据的属性图计算',
+ }),
// icon: 'icon-export',
cover: 'http://xxxx.jpg',
category: 'algorithm-analysis',
diff --git a/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/Component.tsx b/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/Component.tsx
index bdaf02d07..262b54296 100644
--- a/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/Component.tsx
+++ b/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/Component.tsx
@@ -3,6 +3,7 @@ import React, { useEffect } from 'react';
import { Menu } from 'antd';
import { useCallback } from 'react';
import useRemove from './useRemove';
+import $i18n from '../../i18n';
export interface IProps {
contextmenu: any;
controlledValues?: {
@@ -33,8 +34,14 @@ const NodeRemoveMenuItem: React.FunctionComponent = props => {
updateHistory({
componentId: 'RemoveNodeWithMenu',
type: 'configure',
- subType: '删除节点',
- statement: `删除 ${nodeIds.length} 个节点`,
+ subType: $i18n.get({ id: 'basic.components.RemoveNodeWithMenu.Component.DeleteANode', dm: '删除节点' }),
+ statement: $i18n.get(
+ {
+ id: 'basic.components.RemoveNodeWithMenu.Component.DeleteNodeidslengthNodes',
+ dm: '删除 {nodeIdsLength} 个节点',
+ },
+ { nodeIdsLength: nodeIds.length },
+ ),
success,
errorMsg,
params: {
@@ -52,7 +59,14 @@ const NodeRemoveMenuItem: React.FunctionComponent = props => {
const { nodeIds } = controlledValues;
const existIds = nodeIds.filter(id => graph.findById(id));
if (!existIds.length) {
- handleUpateHistory([], false, '当前画布中未找到指定 id 的节点');
+ handleUpateHistory(
+ [],
+ false,
+ $i18n.get({
+ id: 'basic.components.RemoveNodeWithMenu.Component.TheNodeWithTheSpecified',
+ dm: '当前画布中未找到指定 id 的节点',
+ }),
+ );
} else {
removeNodes(existIds);
handleUpateHistory(existIds);
@@ -62,7 +76,7 @@ const NodeRemoveMenuItem: React.FunctionComponent = props => {
return (
- 删除节点
+ {$i18n.get({ id: 'basic.components.RemoveNodeWithMenu.Component.DeleteANode', dm: '删除节点' })}
);
};
diff --git a/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/info.ts b/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/info.ts
index f38114886..5117253d6 100644
--- a/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/info.ts
+++ b/packages/gi-assets-basic/src/components/RemoveNodeWithMenu/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'RemoveNodeWithMenu',
- name: '节点删除',
- desc: '节点删除-右键菜单集成',
+ name: $i18n.get({ id: 'basic.components.RemoveNodeWithMenu.info.NodeDeletion', dm: '节点删除' }),
+ desc: $i18n.get({
+ id: 'basic.components.RemoveNodeWithMenu.info.NodeDeletionRightClickMenu',
+ dm: '节点删除-右键菜单集成',
+ }),
icon: 'icon-minus-circle',
cover: 'http://xxxx.jpg',
category: 'elements-interaction',
diff --git a/packages/gi-assets-basic/src/components/Sankey/Component.tsx b/packages/gi-assets-basic/src/components/Sankey/Component.tsx
index 86f0825a2..7e7cf81eb 100755
--- a/packages/gi-assets-basic/src/components/Sankey/Component.tsx
+++ b/packages/gi-assets-basic/src/components/Sankey/Component.tsx
@@ -2,6 +2,7 @@ import { Sankey } from '@antv/g2plot';
import { useContext } from '@antv/gi-sdk';
import { Empty } from 'antd';
import * as React from 'react';
+import $i18n from '../../i18n';
export interface IProps {
weightField: string;
@@ -40,7 +41,14 @@ const SankeyAnalysis: React.FunctionComponent = props => {
};
}, [weightField, data]);
if (!weightField) {
- return ;
+ return (
+
+ );
}
return (
diff --git a/packages/gi-assets-basic/src/components/Sankey/info.tsx b/packages/gi-assets-basic/src/components/Sankey/info.tsx
index 6c38f8d7c..da98294e5 100644
--- a/packages/gi-assets-basic/src/components/Sankey/info.tsx
+++ b/packages/gi-assets-basic/src/components/Sankey/info.tsx
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'SankeyAnalysis',
- name: '桑基图分析',
- desc: '桑基图分析',
+ name: $i18n.get({ id: 'basic.components.Sankey.info.SankeyDiagramAnalysis', dm: '桑基图分析' }),
+ desc: $i18n.get({ id: 'basic.components.Sankey.info.SankeyDiagramAnalysis', dm: '桑基图分析' }),
icon: 'icon-sankey',
cover: 'http://xxxx.jpg',
category: 'data-analysis',
diff --git a/packages/gi-assets-basic/src/components/Sankey/registerMeta.ts b/packages/gi-assets-basic/src/components/Sankey/registerMeta.ts
index e7969efd7..ea0f0c991 100755
--- a/packages/gi-assets-basic/src/components/Sankey/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Sankey/registerMeta.ts
@@ -1,5 +1,6 @@
import { extra } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_CONTENT_METAS } = extra;
const metas = deepClone(GIAC_CONTENT_METAS);
metas.GIAC_CONTENT.properties.GIAC_CONTENT.properties.title.default = info.name;
@@ -19,7 +20,7 @@ const registerMeta = ({ schemaData }) => {
return {
weightField: {
- title: '权重映射',
+ title: $i18n.get({ id: 'basic.components.Sankey.registerMeta.WeightMapping', dm: '权重映射' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
diff --git a/packages/gi-assets-basic/src/components/Save/Component.tsx b/packages/gi-assets-basic/src/components/Save/Component.tsx
index 3840274bb..f226045dc 100644
--- a/packages/gi-assets-basic/src/components/Save/Component.tsx
+++ b/packages/gi-assets-basic/src/components/Save/Component.tsx
@@ -1,6 +1,7 @@
import { useContext, utils } from '@antv/gi-sdk';
import { Button, Form, Input, notification } from 'antd';
import React from 'react';
+import $i18n from '../../i18n';
export interface Props {
serviceId: string;
@@ -32,8 +33,11 @@ const Save: React.FunctionComponent = props => {
}).then(res => {
if (res.success) {
notification.success({
- message: '保存成功',
- description: '3秒后将自动跳转到分享的画布页',
+ message: $i18n.get({ id: 'basic.components.Save.Component.SavedSuccessfully', dm: '保存成功' }),
+ description: $i18n.get({
+ id: 'basic.components.Save.Component.AfterSecondsItWillAutomatically',
+ dm: '3秒后将自动跳转到分享的画布页',
+ }),
duration: 3,
});
setTimeout(() => {
@@ -51,14 +55,30 @@ const Save: React.FunctionComponent = props => {
return (
diff --git a/packages/gi-assets-basic/src/components/Save/info.ts b/packages/gi-assets-basic/src/components/Save/info.ts
index 6d8fe2339..ee10db586 100644
--- a/packages/gi-assets-basic/src/components/Save/info.ts
+++ b/packages/gi-assets-basic/src/components/Save/info.ts
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const ASSET_ID = 'Save';
const info = {
id: 'Save',
- name: '保存分享',
- desc: '保存画布,并分享给其他人',
+ name: $i18n.get({ id: 'basic.components.Save.info.SaveShare', dm: '保存分享' }),
+ desc: $i18n.get({ id: 'basic.components.Save.info.SaveTheCanvasAndShare', dm: '保存画布,并分享给其他人' }),
icon: 'icon-save',
cover: 'http://xxxx.jpg',
category: 'workbook',
diff --git a/packages/gi-assets-basic/src/components/Save/registerMeta.ts b/packages/gi-assets-basic/src/components/Save/registerMeta.ts
index 330d16a64..d4f13122d 100644
--- a/packages/gi-assets-basic/src/components/Save/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Save/registerMeta.ts
@@ -1,5 +1,6 @@
import { extra, utils } from '@antv/gi-sdk';
import info from './info';
+import $i18n from '../../i18n';
const { deepClone, GIAC_CONTENT_METAS } = extra;
const metas = deepClone(GIAC_CONTENT_METAS);
@@ -12,7 +13,7 @@ export default ({ services }) => {
const serviceOptions = utils.getServiceOptions(services, info.services[0]);
return {
serviceId: {
- title: '保存服务',
+ title: $i18n.get({ id: 'basic.components.Save.registerMeta.SaveService', dm: '保存服务' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
diff --git a/packages/gi-assets-basic/src/components/SegmentedLayout/info.ts b/packages/gi-assets-basic/src/components/SegmentedLayout/info.ts
index bc4c815f9..e1e961020 100644
--- a/packages/gi-assets-basic/src/components/SegmentedLayout/info.ts
+++ b/packages/gi-assets-basic/src/components/SegmentedLayout/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'SegmentedLayout', // up and down layout
- name: '分段布局',
- desc: '分段器布局',
+ name: $i18n.get({ id: 'basic.components.SegmentedLayout.info.SegmentLayout', dm: '分段布局' }),
+ desc: $i18n.get({ id: 'basic.components.SegmentedLayout.info.SectionalizerLayout', dm: '分段器布局' }),
icon: 'icon-pic-center',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/SegmentedLayout/registerMeta.ts b/packages/gi-assets-basic/src/components/SegmentedLayout/registerMeta.ts
index 0f8f8d07d..28646895c 100644
--- a/packages/gi-assets-basic/src/components/SegmentedLayout/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/SegmentedLayout/registerMeta.ts
@@ -1,13 +1,17 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { GIAC_CONTENT_ITEMS } = context;
return {
containers: [
{
id: 'GI_CONTAINER_SIDE',
- name: '侧边容器',
+ name: $i18n.get({ id: 'basic.components.SegmentedLayout.registerMeta.SideContainer', dm: '侧边容器' }),
required: true,
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({
+ id: 'basic.components.SegmentedLayout.registerMeta.IntegratedComponents',
+ dm: '集成组件',
+ }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -19,7 +23,7 @@ const registerMeta = context => {
},
width: {
type: 'number',
- title: '容器宽度',
+ title: $i18n.get({ id: 'basic.components.SegmentedLayout.registerMeta.ContainerWidth', dm: '容器宽度' }),
'x-component': 'NumberPicker',
'x-decorator': 'FormItem',
default: 360,
diff --git a/packages/gi-assets-basic/src/components/SegmentedLayout/useComponents.tsx b/packages/gi-assets-basic/src/components/SegmentedLayout/useComponents.tsx
index 9358715df..1aa73c2d4 100644
--- a/packages/gi-assets-basic/src/components/SegmentedLayout/useComponents.tsx
+++ b/packages/gi-assets-basic/src/components/SegmentedLayout/useComponents.tsx
@@ -1,5 +1,6 @@
import { Empty } from 'antd';
import React from 'react';
+import $i18n from '../../i18n';
const useComponents = (GI_CONTAINER, ComponentCfgMap, assets) => {
return React.useMemo(() => {
@@ -17,7 +18,14 @@ const useComponents = (GI_CONTAINER, ComponentCfgMap, assets) => {
id: 'empty',
icon: 'icon-empty',
props: {},
- children: ,
+ children: (
+
+ ),
},
];
}
diff --git a/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/Component.tsx b/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/Component.tsx
index b4c67c63e..594416150 100644
--- a/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/Component.tsx
+++ b/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/Component.tsx
@@ -3,6 +3,7 @@ import React from 'react';
import { Menu } from 'antd';
import type { ContextMenuValue } from '@antv/graphin';
import { GraphData } from '@antv/g6';
+import $i18n from '../../i18n';
export interface IProps {
contextmenu: ContextMenuValue;
@@ -13,25 +14,28 @@ const SelectExchangeMenuItem: React.FunctionComponent = props => {
const { graph } = useContext();
// 输入当前被选择的节点,实现 节点+边 的反选效果
- const exchangeSelectContents = React.useCallback((nodeIds: any[]) => {
- const graphData = graph.save() as GraphData;
- const selectedNodeMap: any = {};
- // 遍历所有节点。清空状态 + 将每个节点的“selected状态”设置为相反值
- graphData.nodes?.forEach((n: any) => {
- graph.clearItemStates(n.id!);
- const finalStatus = !nodeIds.includes(n.id!) ;
- if(finalStatus){
- selectedNodeMap[n.id!] = n;
- }
- graph.setItemState(n.id!, 'selected', finalStatus);
- });
- // 遍历所有边。清空状态 + 当source和target对应的节点都被选中时,边被选中
- graphData.edges?.forEach((edge) => {
- graph.clearItemStates(edge.id!);
- let finalStatus = selectedNodeMap[edge.source!] && selectedNodeMap[edge.target!];
- graph.setItemState(edge.id!, 'selected', !!finalStatus);
- });
- },[graph]);
+ const exchangeSelectContents = React.useCallback(
+ (nodeIds: any[]) => {
+ const graphData = graph.save() as GraphData;
+ const selectedNodeMap: any = {};
+ // 遍历所有节点。清空状态 + 将每个节点的“selected状态”设置为相反值
+ graphData.nodes?.forEach((n: any) => {
+ graph.clearItemStates(n.id!);
+ const finalStatus = !nodeIds.includes(n.id!);
+ if (finalStatus) {
+ selectedNodeMap[n.id!] = n;
+ }
+ graph.setItemState(n.id!, 'selected', finalStatus);
+ });
+ // 遍历所有边。清空状态 + 当source和target对应的节点都被选中时,边被选中
+ graphData.edges?.forEach(edge => {
+ graph.clearItemStates(edge.id!);
+ let finalStatus = selectedNodeMap[edge.source!] && selectedNodeMap[edge.target!];
+ graph.setItemState(edge.id!, 'selected', !!finalStatus);
+ });
+ },
+ [graph],
+ );
const handleClick = React.useCallback(() => {
contextmenu?.onClose();
@@ -39,14 +43,14 @@ const SelectExchangeMenuItem: React.FunctionComponent = props => {
graph.setItemState(contextmenu.item, 'selected', true);
}
const nodeIds = (graph.findAllByState('node', 'selected') || []).map(n => n.getID());
- exchangeSelectContents(nodeIds)
+ exchangeSelectContents(nodeIds);
}, [contextmenu, graph]);
return (
- 反选节点
+ {$i18n.get({ id: 'basic.components.SelectExchangeMenuItem.Component.InverseNodes', dm: '反选节点' })}
- )
+ );
};
export default SelectExchangeMenuItem;
diff --git a/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/info.ts b/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/info.ts
index bf28e307d..418df00c7 100644
--- a/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/info.ts
+++ b/packages/gi-assets-basic/src/components/SelectExchangeMenuItem/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'SelectExchangeMenuItem',
- name: '反选',
- desc: '反选已选择节点',
+ name: $i18n.get({ id: 'basic.components.SelectExchangeMenuItem.info.Inverse', dm: '反选' }),
+ desc: $i18n.get({ id: 'basic.components.SelectExchangeMenuItem.info.InverseSelectedNodes', dm: '反选已选择节点' }),
icon: 'icon-revert-select', // 临时
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/SideSelectTabs/QueryContainer.tsx b/packages/gi-assets-basic/src/components/SideSelectTabs/QueryContainer.tsx
index 6033b50b3..960eeea8d 100644
--- a/packages/gi-assets-basic/src/components/SideSelectTabs/QueryContainer.tsx
+++ b/packages/gi-assets-basic/src/components/SideSelectTabs/QueryContainer.tsx
@@ -63,7 +63,6 @@ const QueryContainer: React.FunctionComponent = props => {
top: '14px',
fontSize: 10,
};
-
const { children } = props;
return (
diff --git a/packages/gi-assets-basic/src/components/SideSelectTabs/info.ts b/packages/gi-assets-basic/src/components/SideSelectTabs/info.ts
index 5ab05cda3..c1c146c15 100644
--- a/packages/gi-assets-basic/src/components/SideSelectTabs/info.ts
+++ b/packages/gi-assets-basic/src/components/SideSelectTabs/info.ts
@@ -1,8 +1,11 @@
-/** index.md 中解析得到默认值,也可用户手动修改 */
+import $i18n from '../../i18n'; /** index.md 中解析得到默认值,也可用户手动修改 */
const info = {
id: 'SideSelectTabs',
- name: '下拉导航栏',
- desc: '侧边下拉导航栏,可集成分析组件',
+ name: $i18n.get({ id: 'basic.components.SideSelectTabs.info.DropDownNavigationBar', dm: '下拉导航栏' }),
+ desc: $i18n.get({
+ id: 'basic.components.SideSelectTabs.info.SideDropDownNavigationBar',
+ dm: '侧边下拉导航栏,可集成分析组件',
+ }),
icon: 'icon-sidebar',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/SideSelectTabs/registerMeta.ts b/packages/gi-assets-basic/src/components/SideSelectTabs/registerMeta.ts
index fe2e99ff4..471f23d96 100644
--- a/packages/gi-assets-basic/src/components/SideSelectTabs/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/SideSelectTabs/registerMeta.ts
@@ -1,4 +1,5 @@
import { extra } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const { deepClone, GI_CONTAINER_METAS } = extra;
const metas = deepClone(GI_CONTAINER_METAS);
@@ -12,7 +13,7 @@ const registerMeta = context => {
const schema = {
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.SideSelectTabs.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -25,7 +26,7 @@ const registerMeta = context => {
width,
offset,
placement: {
- title: '放置方位',
+ title: $i18n.get({ id: 'basic.components.SideSelectTabs.registerMeta.PlacementOrientation', dm: '放置方位' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -33,7 +34,7 @@ const registerMeta = context => {
options: [
{
value: 'LB',
- label: '左下 / left',
+ label: $i18n.get({ id: 'basic.components.SideSelectTabs.registerMeta.LowerLeftLeft', dm: '左下 / left' }),
},
],
},
diff --git a/packages/gi-assets-basic/src/components/SideTabs/Component.tsx b/packages/gi-assets-basic/src/components/SideTabs/Component.tsx
index bcb960b46..7ed1c8ae4 100755
--- a/packages/gi-assets-basic/src/components/SideTabs/Component.tsx
+++ b/packages/gi-assets-basic/src/components/SideTabs/Component.tsx
@@ -8,6 +8,7 @@ import './index.less';
import SideContainer from './SideContainer';
import type { ContainerProps } from './typing';
import WrapTab from './WrapTab';
+import $i18n from '../../i18n';
const { TabPane } = Tabs;
const defaultVisibleKey = 'side-tabs-default-visible';
export interface SideTabsProps extends ContainerProps {
@@ -86,7 +87,10 @@ const SideTabs: React.FunctionComponent
= props => {
};
const tabBarExtraContent = (
-
+
: } onClick={toggleVisible} />
);
diff --git a/packages/gi-assets-basic/src/components/SideTabs/index.tsx b/packages/gi-assets-basic/src/components/SideTabs/index.tsx
index 1e4ec17f4..cd1d3cfd0 100755
--- a/packages/gi-assets-basic/src/components/SideTabs/index.tsx
+++ b/packages/gi-assets-basic/src/components/SideTabs/index.tsx
@@ -1,11 +1,14 @@
import Component from './Component';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'SideTabs',
- name: '侧边栏',
- desc: '画布侧边导航栏,可集成分析组件',
+ name: $i18n.get({ id: 'basic.components.SideTabs.Sidebar', dm: '侧边栏' }),
+ desc: $i18n.get({
+ id: 'basic.components.SideTabs.CanvasSideNavigationBarWhich',
+ dm: '画布侧边导航栏,可集成分析组件',
+ }),
icon: 'icon-sidebar',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/SideTabs/registerMeta.ts b/packages/gi-assets-basic/src/components/SideTabs/registerMeta.ts
index 2c486c309..f2267b7d2 100755
--- a/packages/gi-assets-basic/src/components/SideTabs/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/SideTabs/registerMeta.ts
@@ -1,4 +1,5 @@
import { extra } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const { deepClone, GI_CONTAINER_METAS } = extra;
const metas = deepClone(GI_CONTAINER_METAS);
@@ -11,7 +12,7 @@ const registerMeta = context => {
const schema = {
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.SideTabs.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -22,14 +23,14 @@ const registerMeta = context => {
default: [],
},
outSideFromCanvas: {
- title: '独立DOM',
+ title: $i18n.get({ id: 'basic.components.SideTabs.registerMeta.IndependentDom', dm: '独立DOM' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
tabPosition: {
- title: '导航布局',
+ title: $i18n.get({ id: 'basic.components.SideTabs.registerMeta.NavigationLayout', dm: '导航布局' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -39,10 +40,11 @@ const registerMeta = context => {
{ label: 'top', value: 'top' },
{ label: 'bottom', value: 'bottom' },
],
+
default: 'left',
},
defaultVisible: {
- title: '默认展开',
+ title: $i18n.get({ id: 'basic.components.SideTabs.registerMeta.DefaultExpansion', dm: '默认展开' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
diff --git a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/Component.tsx b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/Component.tsx
index 513024d7a..fb35d741d 100644
--- a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/Component.tsx
+++ b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/Component.tsx
@@ -4,6 +4,7 @@ import type { ContextMenuValue } from '@antv/graphin';
import { Menu } from 'antd';
import * as React from 'react';
import { filterGraphDataByNodes, getLeafNodes } from '../utils';
+import $i18n from '../../i18n';
type ControlledValues = {
startId: string;
@@ -141,8 +142,17 @@ const ToggleClusterWithMenu: React.FunctionComponent = props => {
updateHistory({
componentId: 'ToggleClusterWithMenu',
type: 'configure',
- subType: '收起/展开',
- statement: `${params.action === 'fold' ? '收起' : '展开'} ${params.startId}`,
+ subType: $i18n.get({ id: 'basic.components.ToggleClusterWithMenu.Component.FoldUpExpand', dm: '收起/展开' }),
+ statement: `${$i18n.get({ id: 'basic.components.ToggleClusterWithMenu.Component.FoldUpExpandStatus', dm: params.action === 'fold' ? '收起' : '展开' }, {
+ action: params.action === 'fold' ? $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.Component.Fold',
+ dm: '收起'
+ }) : $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.Component.Expand',
+ dm: '展开'
+ })
+ })} ${params.startId}`,
+ // statement: `${params.action === 'fold' ? '收起' : '展开'} ${params.startId}`,
success,
errorMsg,
params,
@@ -158,7 +168,14 @@ const ToggleClusterWithMenu: React.FunctionComponent = props => {
const { startId, action } = controlledValues;
const targetNode = graph.findById(startId) as INode;
if (!targetNode) {
- handleUpateHistory({ startId, action }, false, '目标节点不存在');
+ handleUpateHistory(
+ { startId, action },
+ false,
+ $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.Component.TheTargetNodeDoesNot',
+ dm: '目标节点不存在',
+ }),
+ );
return;
}
const leafNodeIds = getLeafNodes(targetNode).map(node => node.getModel().id as string);
@@ -184,7 +201,14 @@ const ToggleClusterWithMenu: React.FunctionComponent = props => {
const { startId, action } = controlledValues;
const node = graph.findById(startId) as INode;
if (!node) {
- handleUpateHistory({ startId, action }, false, '目标节点不存在');
+ handleUpateHistory(
+ { startId, action },
+ false,
+ $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.Component.TheTargetNodeDoesNot',
+ dm: '目标节点不存在',
+ }),
+ );
return;
}
const leafNodeIds = getLeafNodes(node).map(node => node.getModel().id as string);
@@ -209,7 +233,9 @@ const ToggleClusterWithMenu: React.FunctionComponent = props => {
const model = targetNode.getModel();
return (
- {model.folded ? '展开节点' : '收起节点'}
+ {model.folded
+ ? $i18n.get({ id: 'basic.components.ToggleClusterWithMenu.Component.ExpandANode', dm: '展开节点' })
+ : $i18n.get({ id: 'basic.components.ToggleClusterWithMenu.Component.CollapseNode', dm: '收起节点' })}
);
};
diff --git a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/index.tsx b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/index.tsx
index 691692477..c2d703725 100644
--- a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/index.tsx
+++ b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/index.tsx
@@ -1,10 +1,14 @@
import Component from './Component';
import registerMeta from './registerMeta';
+import $i18n from '../../i18n';
const info = {
id: 'ToggleClusterWithMenu',
- name: '展开/收起',
- desc: '集成在右键菜单中,展开/收起节点',
+ name: $i18n.get({ id: 'basic.components.ToggleClusterWithMenu.ExpandFoldUp', dm: '展开/收起' }),
+ desc: $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.IntegrateInTheRightClick',
+ dm: '集成在右键菜单中,展开/收起节点',
+ }),
icon: 'icon-toggle',
cover: 'http://xxx.jpg',
category: 'elements-interaction',
diff --git a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/registerMeta.ts b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/registerMeta.ts
index abe0bdcd5..6533ddb33 100644
--- a/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/ToggleClusterWithMenu/registerMeta.ts
@@ -1,14 +1,18 @@
+import $i18n from '../../i18n';
export default () => {
return {
isReLayout: {
- title: '重新布局',
+ title: $i18n.get({ id: 'basic.components.ToggleClusterWithMenu.registerMeta.ReLayout', dm: '重新布局' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: false,
},
degree: {
- title: '收起节点度数',
+ title: $i18n.get({
+ id: 'basic.components.ToggleClusterWithMenu.registerMeta.DegreesOfFoldingNodes',
+ dm: '收起节点度数',
+ }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
diff --git a/packages/gi-assets-basic/src/components/Toolbar/info.ts b/packages/gi-assets-basic/src/components/Toolbar/info.ts
index 74f60eb25..45c3be9a4 100644
--- a/packages/gi-assets-basic/src/components/Toolbar/info.ts
+++ b/packages/gi-assets-basic/src/components/Toolbar/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'Toolbar',
- name: '工具栏',
- desc: '画布工具栏,可集成画布交互组件',
+ name: $i18n.get({ id: 'basic.components.Toolbar.info.Toolbar', dm: '工具栏' }),
+ desc: $i18n.get({
+ id: 'basic.components.Toolbar.info.CanvasToolbarWhichCanIntegrate',
+ dm: '画布工具栏,可集成画布交互组件',
+ }),
icon: 'icon-tools',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/Toolbar/registerMeta.ts b/packages/gi-assets-basic/src/components/Toolbar/registerMeta.ts
index 04476f8d0..32d1c49c4 100644
--- a/packages/gi-assets-basic/src/components/Toolbar/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Toolbar/registerMeta.ts
@@ -1,10 +1,11 @@
import { DIRECTION_OPTIONS, PLACEMENT_OPTIONS } from '../const';
+import $i18n from '../../i18n';
const registerMeta = context => {
const { GIAC_ITEMS = [] } = context;
const schema = {
GI_CONTAINER: {
- title: '集成组件',
+ title: $i18n.get({ id: 'basic.components.Toolbar.registerMeta.IntegratedComponents', dm: '集成组件' }),
type: 'array',
enum: GIAC_ITEMS,
'x-decorator': 'FormItem',
@@ -15,7 +16,7 @@ const registerMeta = context => {
default: [],
},
direction: {
- title: '展示方向',
+ title: $i18n.get({ id: 'basic.components.Toolbar.registerMeta.DisplayDirection', dm: '展示方向' }),
type: 'string',
'x-decorator': 'FormItem',
' x-component': 'Radio.Group',
@@ -23,7 +24,7 @@ const registerMeta = context => {
default: 'vertical',
},
placement: {
- title: '组件位置',
+ title: $i18n.get({ id: 'basic.components.Toolbar.registerMeta.ComponentLocation', dm: '组件位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -33,7 +34,7 @@ const registerMeta = context => {
default: 'LT',
},
offset: {
- title: '偏移量',
+ title: $i18n.get({ id: 'basic.components.Toolbar.registerMeta.Offset', dm: '偏移量' }),
type: 'array',
'x-decorator': 'FormItem',
'x-component': 'Offset',
diff --git a/packages/gi-assets-basic/src/components/Tooltip/info.ts b/packages/gi-assets-basic/src/components/Tooltip/info.ts
index cce01052c..d35be4148 100644
--- a/packages/gi-assets-basic/src/components/Tooltip/info.ts
+++ b/packages/gi-assets-basic/src/components/Tooltip/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'Tooltip',
- name: '节点提示框',
- desc: 'Hover 节点,展示其详细信息',
+ name: $i18n.get({ id: 'basic.components.Tooltip.info.NodePromptBox', dm: '节点提示框' }),
+ desc: $i18n.get({ id: 'basic.components.Tooltip.info.TheHoverNodeShowingIts', dm: 'Hover 节点,展示其详细信息' }),
cover: 'http://xxxx.jpg',
category: 'elements-interaction',
icon: 'icon-tooltip',
diff --git a/packages/gi-assets-basic/src/components/Tooltip/registerMeta.ts b/packages/gi-assets-basic/src/components/Tooltip/registerMeta.ts
index 9801b45f1..22a54366e 100644
--- a/packages/gi-assets-basic/src/components/Tooltip/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Tooltip/registerMeta.ts
@@ -1,9 +1,10 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { schemaData, keys } = context;
return {
mappingKeys: {
- title: '文本',
+ title: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.Text', dm: '文本' }),
type: 'string',
'x-decorator': 'FormItem',
// 'x-component': 'GroupSelect',
@@ -21,7 +22,7 @@ const registerMeta = context => {
default: keys,
},
placement: {
- title: '位置',
+ title: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.Location', dm: '位置' }),
type: 'Select',
'x-component': 'Select',
'x-decorator': 'FormItem',
@@ -29,33 +30,33 @@ const registerMeta = context => {
options: [
{
value: 'left',
- label: '左侧',
+ label: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.LeftSide', dm: '左侧' }),
},
{
value: 'right',
- label: '右侧',
+ label: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.RightSide', dm: '右侧' }),
},
{
value: 'top',
- label: '上侧',
+ label: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.UpperSide', dm: '上侧' }),
},
{
value: 'bottom',
- label: '下侧',
+ label: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.LowerSide', dm: '下侧' }),
},
],
},
default: 'top',
},
width: {
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.Width', dm: '宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
default: '200px',
},
hasArrow: {
- title: '箭头',
+ title: $i18n.get({ id: 'basic.components.Tooltip.registerMeta.Arrow', dm: '箭头' }),
type: 'boolean',
default: true,
'x-decorator': 'FormItem',
diff --git a/packages/gi-assets-basic/src/components/TooltipForEdge/info.ts b/packages/gi-assets-basic/src/components/TooltipForEdge/info.ts
index e741d6b70..7ff45499e 100644
--- a/packages/gi-assets-basic/src/components/TooltipForEdge/info.ts
+++ b/packages/gi-assets-basic/src/components/TooltipForEdge/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'TooltipForEdge',
- name: '边提示框',
- desc: 'Hover 边,展示其详细信息',
+ name: $i18n.get({ id: 'basic.components.TooltipForEdge.info.EdgePromptBox', dm: '边提示框' }),
+ desc: $i18n.get({
+ id: 'basic.components.TooltipForEdge.info.HoverEdgeShowingItsDetails',
+ dm: 'Hover 边,展示其详细信息',
+ }),
cover: 'http://xxxx.jpg',
category: 'elements-interaction',
icon: 'icon-tooltip',
diff --git a/packages/gi-assets-basic/src/components/TooltipForEdge/registerMeta.ts b/packages/gi-assets-basic/src/components/TooltipForEdge/registerMeta.ts
index dcd03e3fc..af3ac2c72 100644
--- a/packages/gi-assets-basic/src/components/TooltipForEdge/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/TooltipForEdge/registerMeta.ts
@@ -1,9 +1,10 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { schemaData, edgeKeys } = context;
return {
mappingKeys: {
- title: '展示文本',
+ title: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.DisplayText', dm: '展示文本' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -16,7 +17,7 @@ const registerMeta = context => {
default: edgeKeys,
},
placement: {
- title: '展示位置',
+ title: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.DisplayLocation', dm: '展示位置' }),
type: 'Select',
'x-component': 'Select',
'x-decorator': 'FormItem',
@@ -24,33 +25,33 @@ const registerMeta = context => {
options: [
{
value: 'left',
- label: '左侧',
+ label: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.LeftSide', dm: '左侧' }),
},
{
value: 'right',
- label: '右侧',
+ label: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.RightSide', dm: '右侧' }),
},
{
value: 'top',
- label: '上侧',
+ label: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.UpperSide', dm: '上侧' }),
},
{
value: 'bottom',
- label: '下侧',
+ label: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.LowerSide', dm: '下侧' }),
},
],
},
default: 'top',
},
width: {
- title: '展示宽度',
+ title: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.DisplayWidth', dm: '展示宽度' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
default: '200px',
},
hasArrow: {
- title: '展示箭头',
+ title: $i18n.get({ id: 'basic.components.TooltipForEdge.registerMeta.ShowArrow', dm: '展示箭头' }),
type: 'boolean',
default: true,
'x-decorator': 'FormItem',
diff --git a/packages/gi-assets-basic/src/components/UadLayout/info.ts b/packages/gi-assets-basic/src/components/UadLayout/info.ts
index 8a8d9acab..e08265643 100644
--- a/packages/gi-assets-basic/src/components/UadLayout/info.ts
+++ b/packages/gi-assets-basic/src/components/UadLayout/info.ts
@@ -1,7 +1,11 @@
+import $i18n from '../../i18n';
const info = {
id: 'UadLayout', // up and down layout
- name: '上下布局',
- desc: '上下布局,适用于图查询场景',
+ name: $i18n.get({ id: 'basic.components.UadLayout.info.UpperAndLowerLayout', dm: '上下布局' }),
+ desc: $i18n.get({
+ id: 'basic.components.UadLayout.info.UpperAndLowerLayoutSuitable',
+ dm: '上下布局,适用于图查询场景',
+ }),
icon: 'icon-pic-center',
cover: 'http://xxxx.jpg',
category: 'container-components',
diff --git a/packages/gi-assets-basic/src/components/UadLayout/registerMeta.ts b/packages/gi-assets-basic/src/components/UadLayout/registerMeta.ts
index 05cb92ee4..c6d08a753 100644
--- a/packages/gi-assets-basic/src/components/UadLayout/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/UadLayout/registerMeta.ts
@@ -1,13 +1,14 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { GIAC_CONTENT_ITEMS } = context;
return {
containers: [
{
id: 'GI_CONTAINER_TOP',
- name: '顶部容器',
+ name: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.TopContainer', dm: '顶部容器' }),
required: true,
GI_CONTAINER: {
- title: '顶部组件',
+ title: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.TopAssembly', dm: '顶部组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -17,14 +18,14 @@ const registerMeta = context => {
},
height: {
type: 'number',
- title: '顶部高度',
+ title: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.TopHeight', dm: '顶部高度' }),
'x-component': 'NumberPicker',
'x-decorator': 'FormItem',
default: 251,
},
padding: {
type: 'string',
- title: '内部间距',
+ title: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.InternalSpacing', dm: '内部间距' }),
'x-component': 'Input',
'x-decorator': 'FormItem',
default: '0px 0px',
@@ -32,10 +33,10 @@ const registerMeta = context => {
},
{
id: 'GI_CONTAINER_SIDE',
- name: '侧边容器',
+ name: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.SideContainer', dm: '侧边容器' }),
required: true,
GI_CONTAINER: {
- title: '侧边组件',
+ title: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.SideComponents', dm: '侧边组件' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -46,7 +47,7 @@ const registerMeta = context => {
default: [],
},
tabPosition: {
- title: 'Tab 位置',
+ title: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.TabLocation', dm: 'Tab 位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -54,19 +55,19 @@ const registerMeta = context => {
options: [
{
value: 'left',
- label: '左边',
+ label: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.Left', dm: '左边' }),
},
{
value: 'right',
- label: '右边',
+ label: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.Right', dm: '右边' }),
},
{
value: 'top',
- label: '上方',
+ label: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.Above', dm: '上方' }),
},
{
value: 'bottom',
- label: '下方',
+ label: $i18n.get({ id: 'basic.components.UadLayout.registerMeta.Below', dm: '下方' }),
},
],
},
diff --git a/packages/gi-assets-basic/src/components/UadLayout/useComponents.tsx b/packages/gi-assets-basic/src/components/UadLayout/useComponents.tsx
index d00cc589e..ca2cc39fe 100644
--- a/packages/gi-assets-basic/src/components/UadLayout/useComponents.tsx
+++ b/packages/gi-assets-basic/src/components/UadLayout/useComponents.tsx
@@ -1,6 +1,7 @@
import { Empty } from 'antd';
import React from 'react';
import { useContext } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const useComponents = (GI_CONTAINER, ComponentCfgMap, assets) => {
return React.useMemo(() => {
@@ -24,7 +25,14 @@ const useComponents = (GI_CONTAINER, ComponentCfgMap, assets) => {
id: 'empty',
icon: 'icon-empty',
props: {},
- children: ,
+ children: (
+
+ ),
},
];
}
diff --git a/packages/gi-assets-basic/src/components/Watermark/info.ts b/packages/gi-assets-basic/src/components/Watermark/info.ts
index 451bfad0a..e0caa469a 100644
--- a/packages/gi-assets-basic/src/components/Watermark/info.ts
+++ b/packages/gi-assets-basic/src/components/Watermark/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'Watermark',
- name: '水印',
- desc: '添加水印',
+ name: $i18n.get({ id: 'basic.components.Watermark.info.Watermark', dm: '水印' }),
+ desc: $i18n.get({ id: 'basic.components.Watermark.info.AddWatermark', dm: '添加水印' }),
cover: 'http://xxxx.jpg',
category: 'system-interaction',
icon: 'icon-placeholder',
diff --git a/packages/gi-assets-basic/src/components/Watermark/registerMeta.ts b/packages/gi-assets-basic/src/components/Watermark/registerMeta.ts
index 9c811668c..b9986b2be 100644
--- a/packages/gi-assets-basic/src/components/Watermark/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/Watermark/registerMeta.ts
@@ -1,22 +1,29 @@
-import { utils } from "@antv/gi-sdk";
+import { utils } from '@antv/gi-sdk';
+import $i18n from '../../i18n';
const registerMeta = ({ services }) => {
const schema = {
renderMode: {
- title: '渲染模式',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.RenderingMode', dm: '渲染模式' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
options: [
- { value: 'page', label: '整个页面' },
- { value: 'canvas', label: '仅画布' },
+ {
+ value: 'page',
+ label: $i18n.get({ id: 'basic.components.Watermark.registerMeta.EntirePage', dm: '整个页面' }),
+ },
+ {
+ value: 'canvas',
+ label: $i18n.get({ id: 'basic.components.Watermark.registerMeta.CanvasOnly', dm: '仅画布' }),
+ },
],
},
default: 'page',
},
watermarkServiceId: {
- title: '水印服务',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.WatermarkService', dm: '水印服务' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
@@ -26,21 +33,21 @@ const registerMeta = ({ services }) => {
default: 'GI/WatermarkService',
},
width: {
- title: '宽度',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.Width', dm: '宽度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 120,
},
height: {
- title: '高度',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.Height', dm: '高度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 64,
},
rotate: {
- title: '旋转角度',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.RotationAngle', dm: '旋转角度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -58,7 +65,7 @@ const registerMeta = ({ services }) => {
default: 9,
},
fontSize: {
- title: '字体大小',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.FontSize', dm: '字体大小' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -68,14 +75,14 @@ const registerMeta = ({ services }) => {
default: 16,
},
fontColor: {
- title: '字体颜色',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.FontColor', dm: '字体颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: 'rgba(0,0,0,.15)',
},
gap: {
- title: '间距',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.Spacing', dm: '间距' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Offset',
@@ -86,7 +93,7 @@ const registerMeta = ({ services }) => {
default: [100, 100],
},
offset: {
- title: '偏移量',
+ title: $i18n.get({ id: 'basic.components.Watermark.registerMeta.Offset', dm: '偏移量' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Offset',
diff --git a/packages/gi-assets-basic/src/components/ZoomIn/info.ts b/packages/gi-assets-basic/src/components/ZoomIn/info.ts
index 54fc7cd14..099b780c0 100644
--- a/packages/gi-assets-basic/src/components/ZoomIn/info.ts
+++ b/packages/gi-assets-basic/src/components/ZoomIn/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'ZoomIn',
- name: '放大',
- desc: '点击可放大画布',
+ name: $i18n.get({ id: 'basic.components.ZoomIn.info.ZoomIn', dm: '放大' }),
+ desc: $i18n.get({ id: 'basic.components.ZoomIn.info.ClickToEnlargeTheCanvas', dm: '点击可放大画布' }),
cover: 'http://xxxx.jpg',
icon: 'icon-zoomin',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/ZoomOut/info.ts b/packages/gi-assets-basic/src/components/ZoomOut/info.ts
index 794786f9a..78ac0157c 100644
--- a/packages/gi-assets-basic/src/components/ZoomOut/info.ts
+++ b/packages/gi-assets-basic/src/components/ZoomOut/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'ZoomOut',
- name: '缩小',
- desc: '点击可缩小画布',
+ name: $i18n.get({ id: 'basic.components.ZoomOut.info.ZoomOut', dm: '缩小' }),
+ desc: $i18n.get({ id: 'basic.components.ZoomOut.info.ClickToNarrowTheCanvas', dm: '点击可缩小画布' }),
icon: 'icon-zoomout',
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
diff --git a/packages/gi-assets-basic/src/components/ZoomStatus/info.ts b/packages/gi-assets-basic/src/components/ZoomStatus/info.ts
index b13fb1887..75fa37aa7 100644
--- a/packages/gi-assets-basic/src/components/ZoomStatus/info.ts
+++ b/packages/gi-assets-basic/src/components/ZoomStatus/info.ts
@@ -1,7 +1,8 @@
+import $i18n from '../../i18n';
const info = {
id: 'ZoomStatus',
- name: '缩放状态',
- desc: '缩放时到某个阈值添加状态',
+ name: $i18n.get({ id: 'basic.components.ZoomStatus.info.ZoomStatus', dm: '缩放状态' }),
+ desc: $i18n.get({ id: 'basic.components.ZoomStatus.info.WhenScalingToAThreshold', dm: '缩放时到某个阈值添加状态' }),
cover: 'http://xxxx.jpg',
category: 'canvas-interaction',
type: 'AUTO',
diff --git a/packages/gi-assets-basic/src/components/ZoomStatus/registerMeta.ts b/packages/gi-assets-basic/src/components/ZoomStatus/registerMeta.ts
index 4bc569cd4..cb2e18c3a 100644
--- a/packages/gi-assets-basic/src/components/ZoomStatus/registerMeta.ts
+++ b/packages/gi-assets-basic/src/components/ZoomStatus/registerMeta.ts
@@ -1,18 +1,19 @@
+import $i18n from '../../i18n';
export default () => {
return {
minZoom: {
- title: '最小缩放',
+ title: $i18n.get({ id: 'basic.components.ZoomStatus.registerMeta.MinimumZoom', dm: '最小缩放' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
- default: 0.6
+ default: 0.6,
},
statusName: {
- title: '状态名',
+ title: $i18n.get({ id: 'basic.components.ZoomStatus.registerMeta.StatusName', dm: '状态名' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
- default: 'minZoom'
- }
- }
+ default: 'minZoom',
+ },
+ };
};
diff --git a/packages/gi-assets-basic/src/components/common/downloadCsv.tsx b/packages/gi-assets-basic/src/components/common/downloadCsv.tsx
index 7acee79fb..9ab742295 100644
--- a/packages/gi-assets-basic/src/components/common/downloadCsv.tsx
+++ b/packages/gi-assets-basic/src/components/common/downloadCsv.tsx
@@ -1,5 +1,6 @@
import { Parser } from 'json2csv';
-const downloadCsv = (data, name = '未命名') => {
+import $i18n from '../../i18n';
+const downloadCsv = (data, name = $i18n.get({ id: 'basic.components.common.downloadCsv.Unnamed', dm: '未命名' })) => {
// 数量过多,结果下载成 csv 文件
const json2csvParser = new Parser({ delimiter: ',', withBOM: true });
const csvStr = json2csvParser.parse(data);
diff --git a/packages/gi-assets-basic/src/components/const.ts b/packages/gi-assets-basic/src/components/const.ts
index 661d2219e..d2a3f0a67 100644
--- a/packages/gi-assets-basic/src/components/const.ts
+++ b/packages/gi-assets-basic/src/components/const.ts
@@ -1,29 +1,30 @@
+import $i18n from '../i18n';
export const PLACEMENT_OPTIONS = [
{
value: 'LT',
- label: '左上',
+ label: $i18n.get({ id: 'basic.src.components.const.UpperLeft', dm: '左上' }),
},
{
value: 'RT',
- label: '右上',
+ label: $i18n.get({ id: 'basic.src.components.const.UpperRight', dm: '右上' }),
},
{
value: 'LB',
- label: '左下',
+ label: $i18n.get({ id: 'basic.src.components.const.LowerLeft', dm: '左下' }),
},
{
value: 'RB',
- label: '右下',
+ label: $i18n.get({ id: 'basic.src.components.const.LowerRight', dm: '右下' }),
},
];
export const DIRECTION_OPTIONS = [
{
- label: '水平展示',
+ label: $i18n.get({ id: 'basic.src.components.const.HorizontalDisplay', dm: '水平展示' }),
value: 'horizontal',
},
{
- label: '纵向展示',
+ label: $i18n.get({ id: 'basic.src.components.const.VerticalDisplay', dm: '纵向展示' }),
value: 'vertical',
},
];
diff --git a/packages/gi-assets-basic/src/components/utils/csv.ts b/packages/gi-assets-basic/src/components/utils/csv.ts
index a9c333699..addd1bd6d 100644
--- a/packages/gi-assets-basic/src/components/utils/csv.ts
+++ b/packages/gi-assets-basic/src/components/utils/csv.ts
@@ -1,71 +1,67 @@
-
+import $i18n from '../../i18n';
// 格式化表格标题
export const formatFileName = name => {
- let formattedName = '导出数据.csv';
- if (name) {
- if (name.indexOf('.csv') > 0) {
- formattedName = name;
- } else {
- formattedName = name + '.csv';
- }
+ let formattedName = $i18n.get({ id: 'basic.components.utils.csv.ExportDataCsv', dm: '导出数据.csv' });
+ if (name) {
+ if (name.indexOf('.csv') > 0) {
+ formattedName = name;
+ } else {
+ formattedName = name + '.csv';
}
- return formattedName;
+ }
+ return formattedName;
};
-
- // 格式化导出数据
+
+// 格式化导出数据
export const transformCSVData = (originData, columns) => {
- const title: string[] = [];
- const titleForKey: string[] = [];
- let exportData = {};
- if (columns && columns.length > 0) {
- columns.forEach(column => {
- titleForKey.push(column.dataIndex);
- title.push(column.title);
- });
- }
- if (originData && originData.length > 0) {
- exportData = {
- data: originData,
- title,
- titleForKey,
- };
- }
- return exportData;
+ const title: string[] = [];
+ const titleForKey: string[] = [];
+ let exportData = {};
+ if (columns && columns.length > 0) {
+ columns.forEach(column => {
+ titleForKey.push(column.dataIndex);
+ title.push(column.title);
+ });
+ }
+ if (originData && originData.length > 0) {
+ exportData = {
+ data: originData,
+ title,
+ titleForKey,
+ };
+ }
+ return exportData;
};
-
+
// 导出csv数据
export const exportCSV = (config, fileName) => {
- // showPureNumber 判断是否导出纯数字 目的:兼容不希望以科学计数展示的数字
- const { data, titleForKey, title, showPureNumber = false } = config;
- const csvText: string[] = [];
- if (title && title.length > 0) {
- csvText.push(title.join(',') + '\n');
- }
- for (let i = 0; i < data.length; i++) {
- const temp: string[] = [];
+ // showPureNumber 判断是否导出纯数字 目的:兼容不希望以科学计数展示的数字
+ const { data, titleForKey, title, showPureNumber = false } = config;
+ const csvText: string[] = [];
+ if (title && title.length > 0) {
+ csvText.push(title.join(',') + '\n');
+ }
+ for (let i = 0; i < data.length; i++) {
+ const temp: string[] = [];
- for (let j = 0; j < titleForKey.length; j++) {
- const value = data[i][titleForKey[j]] || '';
- // 如果为数字则加上\t的后缀,避免以科学计数展示
- const prefix = isNaN(+value) || showPureNumber ? '' : '\t';
- temp.push(`"${prefix}${value}"`);
- }
- csvText.push(temp.join(',') + '\n');
+ for (let j = 0; j < titleForKey.length; j++) {
+ const value = data[i][titleForKey[j]] || '';
+ // 如果为数字则加上\t的后缀,避免以科学计数展示
+ const prefix = isNaN(+value) || showPureNumber ? '' : '\t';
+ temp.push(`"${prefix}${value}"`);
}
- const link = document.createElement('a');
- link.download = fileName;
- const csvData = new Blob(['\ufeff' + csvText.join('')], { type: 'text/csv' });
- link.href = URL.createObjectURL(csvData);
- link.click();
- return csvText;
+ csvText.push(temp.join(',') + '\n');
+ }
+ const link = document.createElement('a');
+ link.download = fileName;
+ const csvData = new Blob(['\ufeff' + csvText.join('')], { type: 'text/csv' });
+ link.href = URL.createObjectURL(csvData);
+ link.click();
+ return csvText;
};
export default {
- formatFileName,
- transformCSVData,
- exportCSV,
-}
-
-
-
-
\ No newline at end of file
+ formatFileName,
+ transformCSVData,
+ exportCSV,
+};
diff --git a/packages/gi-assets-basic/src/deploys/Esm.tsx b/packages/gi-assets-basic/src/deploys/Esm.tsx
index a3f80faf7..068a29e3e 100644
--- a/packages/gi-assets-basic/src/deploys/Esm.tsx
+++ b/packages/gi-assets-basic/src/deploys/Esm.tsx
@@ -1,5 +1,6 @@
import { Card } from 'antd';
import * as React from 'react';
+import $i18n from '../i18n';
interface EsmDeployProps {
utils: {
@@ -15,14 +16,19 @@ const EsmDeploy: React.FunctionComponent = props => {
cover={}
>
-
ESM 模式
-
提供 NPM 包,支持 Tree Shaking,原生集成到 React 项目中
+
{$i18n.get({ id: 'basic.src.deploys.Esm.EsmMode', dm: 'ESM 模式' })}
+
+ {$i18n.get({
+ id: 'basic.src.deploys.Esm.ProvidesNpmPackagesThatSupport',
+ dm: '提供 NPM 包,支持 Tree Shaking,原生集成到 React 项目中',
+ })}
+
);
};
export default {
- desc: 'ESM 模式',
+ desc: $i18n.get({ id: 'basic.src.deploys.Esm.EsmMode', dm: 'ESM 模式' }),
component: EsmDeploy,
};
diff --git a/packages/gi-assets-basic/src/deploys/Html.tsx b/packages/gi-assets-basic/src/deploys/Html.tsx
index 0b1545c40..aa2affa99 100644
--- a/packages/gi-assets-basic/src/deploys/Html.tsx
+++ b/packages/gi-assets-basic/src/deploys/Html.tsx
@@ -1,5 +1,6 @@
import { Card } from 'antd';
import * as React from 'react';
+import $i18n from '../i18n';
interface HtmlDeployProps {
utils: {
@@ -12,14 +13,16 @@ const HtmlDeploy: React.FunctionComponent = props => {
return (
}>
-
HTML 模式
-
导出 HTML 适合快速本地查看
+
{$i18n.get({ id: 'basic.src.deploys.Html.HtmlMode', dm: 'HTML 模式' })}
+
+ {$i18n.get({ id: 'basic.src.deploys.Html.ExportHtmlForQuickLocal', dm: '导出 HTML 适合快速本地查看' })}
+
);
};
export default {
- desc: 'HTML 模式',
+ desc: $i18n.get({ id: 'basic.src.deploys.Html.HtmlMode', dm: 'HTML 模式' }),
component: HtmlDeploy,
};
diff --git a/packages/gi-assets-basic/src/deploys/Umd.tsx b/packages/gi-assets-basic/src/deploys/Umd.tsx
index 8906b5913..92f957a25 100644
--- a/packages/gi-assets-basic/src/deploys/Umd.tsx
+++ b/packages/gi-assets-basic/src/deploys/Umd.tsx
@@ -1,5 +1,6 @@
import { Card } from 'antd';
import * as React from 'react';
+import $i18n from '../i18n';
interface UmdDeployProps {
utils: {
@@ -12,14 +13,19 @@ const UmdDeploy: React.FunctionComponent = props => {
return (
}>
-
UMD 模式
-
提供 UMD 包,可 CDN 加载,快速集成到 React 项目中
+
{$i18n.get({ id: 'basic.src.deploys.Umd.UmdMode', dm: 'UMD 模式' })}
+
+ {$i18n.get({
+ id: 'basic.src.deploys.Umd.ProvidesUmdPackagesThatCan',
+ dm: '提供 UMD 包,可 CDN 加载,快速集成到 React 项目中',
+ })}
+
);
};
export default {
- desc: 'UMD 模式',
+ desc: $i18n.get({ id: 'basic.src.deploys.Umd.UmdMode', dm: 'UMD 模式' }),
component: UmdDeploy,
};
diff --git a/packages/gi-assets-basic/src/elements/DonutNode/index.tsx b/packages/gi-assets-basic/src/elements/DonutNode/index.tsx
index 68d4c6b79..582cbd529 100644
--- a/packages/gi-assets-basic/src/elements/DonutNode/index.tsx
+++ b/packages/gi-assets-basic/src/elements/DonutNode/index.tsx
@@ -2,14 +2,17 @@ import registerMeta from './registerMeta';
import registerShape from './registerShape';
import registerTransform from './registerTransform';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'DonutNode',
- name: '甜甜圈',
+ name: $i18n.get({ id: 'basic.elements.DonutNode.Doughnuts', dm: '甜甜圈' }),
type: 'NODE',
category: 'node',
icon: 'icon-piechart',
- desc: '甜甜圈组件,用于数据有分布的情况',
+ desc: $i18n.get({
+ id: 'basic.elements.DonutNode.DonutComponentForDataDistribution',
+ dm: '甜甜圈组件,用于数据有分布的情况',
+ }),
cover: 'https://gw.alipayobjects.com/mdn/rms_0d75e8/afts/img/A*dqQ0RrldWTAAAAAAAAAAAAAAARQnAQ',
docs: 'https://www.yuque.com/antv/gi/dps9iq11zye8o35b',
};
diff --git a/packages/gi-assets-basic/src/elements/DonutNode/registerMeta.tsx b/packages/gi-assets-basic/src/elements/DonutNode/registerMeta.tsx
index 6bd7b7614..6db6d9bfa 100644
--- a/packages/gi-assets-basic/src/elements/DonutNode/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/elements/DonutNode/registerMeta.tsx
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
try {
const { keys } = context;
@@ -11,7 +12,7 @@ const registerMeta = context => {
type: 'object',
properties: {
donut: {
- title: '环展示',
+ title: $i18n.get({ id: 'basic.elements.DonutNode.registerMeta.RingDisplay', dm: '环展示' }),
type: 'array',
//todo: 显示文本属性根据 data 生成
enum: numberOptions,
@@ -23,21 +24,21 @@ const registerMeta = context => {
},
},
donutColors: {
- title: '环色彩',
+ title: $i18n.get({ id: 'basic.elements.DonutNode.registerMeta.RingColor', dm: '环色彩' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
default: '',
},
size: {
- title: '环大小',
+ title: $i18n.get({ id: 'basic.elements.DonutNode.registerMeta.RingSizeSmall', dm: '环大小' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: undefined,
},
label: {
- title: '文本',
+ title: $i18n.get({ id: 'basic.elements.DonutNode.registerMeta.Text', dm: '文本' }),
type: 'array',
enum: keys.map(c => {
return {
diff --git a/packages/gi-assets-basic/src/elements/SimpleEdge/index.tsx b/packages/gi-assets-basic/src/elements/SimpleEdge/index.tsx
index 6e65db2a4..d409ccd47 100644
--- a/packages/gi-assets-basic/src/elements/SimpleEdge/index.tsx
+++ b/packages/gi-assets-basic/src/elements/SimpleEdge/index.tsx
@@ -1,14 +1,14 @@
import registerMeta from './registerMeta';
import registerTransform from './registerTransform';
+import $i18n from '../../i18n';
const registerShape = Graphin => {
// graphinEdge 已经在内部注册成功
};
-
/** index.md 中解析得到默认值,也可用户手动修改 */
const info = {
id: 'SimpleEdge',
category: 'edge',
- name: '官方边',
+ name: $i18n.get({ id: 'basic.elements.SimpleEdge.OfficialSide', dm: '官方边' }),
desc: 'SimpleEdge',
cover: 'http://xxxx.jpg',
type: 'EDGE',
diff --git a/packages/gi-assets-basic/src/elements/SimpleEdge/registerMeta.tsx b/packages/gi-assets-basic/src/elements/SimpleEdge/registerMeta.tsx
index 27314a805..4533b27bf 100644
--- a/packages/gi-assets-basic/src/elements/SimpleEdge/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/elements/SimpleEdge/registerMeta.tsx
@@ -1,4 +1,5 @@
import { defaultConfig } from './registerTransform';
+import $i18n from '../../i18n';
const { advanced, color, size } = defaultConfig;
const { keyshape, label, animate } = advanced;
@@ -9,21 +10,21 @@ const registerMeta = context => {
type: 'object',
properties: {
color: {
- title: '颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Color', dm: '颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: color,
},
size: {
- title: '大小',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Size', dm: '大小' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: size,
},
label: {
- title: '文本',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Text', dm: '文本' }),
type: 'string',
// enum: keys.map(c => {
// return {
@@ -51,7 +52,7 @@ const registerMeta = context => {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '高级配置',
+ header: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.AdvancedConfiguration', dm: '高级配置' }),
key: 'advanced-panel',
},
properties: {
@@ -70,20 +71,23 @@ const registerMeta = context => {
'x-decorator': 'FormItem',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '形状',
+ header: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Shape', dm: '形状' }),
key: 'icon-panel',
},
properties: {
hasArrow: {
type: 'boolean',
- title: '箭头',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Arrow', dm: '箭头' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
customPoly: {
type: 'boolean',
- title: '定义弧度',
+ title: $i18n.get({
+ id: 'basic.elements.SimpleEdge.registerMeta.DefineRadians',
+ dm: '定义弧度',
+ }),
default: keyshape.customPoly,
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -115,7 +119,7 @@ const registerMeta = context => {
],
},
poly: {
- title: '弧度',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Radian', dm: '弧度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -123,7 +127,7 @@ const registerMeta = context => {
},
lineDash: {
- title: '虚线',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.DottedLine', dm: '虚线' }),
type: 'array',
'x-decorator': 'FormItem',
'x-component': 'Offset',
@@ -135,7 +139,7 @@ const registerMeta = context => {
},
opacity: {
type: 'string',
- title: '透明度',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Transparency', dm: '透明度' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: keyshape.opacity,
@@ -147,27 +151,27 @@ const registerMeta = context => {
'x-decorator': 'FormItem',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '标签',
+ header: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Label', dm: '标签' }),
key: 'keyshape-panel',
},
properties: {
visible: {
type: 'boolean',
- title: '显隐',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Implicit', dm: '显隐' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: label.visible,
},
fontSize: {
type: 'string',
- title: '大小',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Size', dm: '大小' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: label.fontSize,
},
offset: {
type: 'string',
- title: '偏移',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Offset', dm: '偏移' }),
'x-decorator': 'FormItem',
'x-component': 'Offset',
'x-component-props': {
@@ -178,28 +182,34 @@ const registerMeta = context => {
},
fill: {
type: 'string',
- title: '颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Color', dm: '颜色' }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: label.fill,
},
backgroundEnable: {
type: 'string',
- title: '背景',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Background', dm: '背景' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: label.backgroundEnable,
},
backgroundFill: {
type: 'string',
- title: '背景色',
+ title: $i18n.get({
+ id: 'basic.elements.SimpleEdge.registerMeta.BackgroundColor',
+ dm: '背景色',
+ }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: label.backgroundFill,
},
backgroundStroke: {
type: 'string',
- title: '背景描边',
+ title: $i18n.get({
+ id: 'basic.elements.SimpleEdge.registerMeta.BackgroundStroke',
+ dm: '背景描边',
+ }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: label.backgroundStroke,
@@ -210,13 +220,13 @@ const registerMeta = context => {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '动画',
+ header: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Animation', dm: '动画' }),
key: 'aniamte-panel',
},
properties: {
visible: {
type: 'boolean',
- title: '开关',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Switch', dm: '开关' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: animate.visible,
@@ -256,33 +266,46 @@ const registerMeta = context => {
],
},
type: {
- title: '类型',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Type', dm: '类型' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
enum: [
- { label: '圆球', value: 'circle-running' },
- { label: '虚线', value: 'line-dash' },
- { label: '渐长', value: 'line-growth' },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Ball', dm: '圆球' }),
+ value: 'circle-running',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.DottedLine', dm: '虚线' }),
+ value: 'line-dash',
+ },
+ {
+ label: $i18n.get({
+ id: 'basic.elements.SimpleEdge.registerMeta.GradualLength',
+ dm: '渐长',
+ }),
+ value: 'line-growth',
+ },
],
+
default: animate.type,
},
dotColor: {
type: 'string',
- title: '圆球颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.BallColor', dm: '圆球颜色' }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: animate.dotColor,
},
repeat: {
- title: '重复',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Repeat', dm: '重复' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: animate.repeat,
},
duration: {
- title: '时长',
+ title: $i18n.get({ id: 'basic.elements.SimpleEdge.registerMeta.Duration', dm: '时长' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
diff --git a/packages/gi-assets-basic/src/elements/SimpleEdge/registerTransform.ts b/packages/gi-assets-basic/src/elements/SimpleEdge/registerTransform.ts
index 3ebeb79c6..d6f7eab17 100644
--- a/packages/gi-assets-basic/src/elements/SimpleEdge/registerTransform.ts
+++ b/packages/gi-assets-basic/src/elements/SimpleEdge/registerTransform.ts
@@ -1,6 +1,7 @@
import type { GIEdgeConfig } from '@antv/gi-sdk';
import { Utils } from '@antv/graphin';
import merge from 'deepmerge';
+import $i18n from '../../i18n';
const defaultEdgeTheme = {
primaryEdgeColor: '#ddd',
diff --git a/packages/gi-assets-basic/src/elements/SimpleNode/index.tsx b/packages/gi-assets-basic/src/elements/SimpleNode/index.tsx
index 23388f43b..d9ed4561c 100644
--- a/packages/gi-assets-basic/src/elements/SimpleNode/index.tsx
+++ b/packages/gi-assets-basic/src/elements/SimpleNode/index.tsx
@@ -2,14 +2,14 @@ import registerMeta from './registerMeta';
import registerShape from './registerShape';
import registerTransform, { defaultConfig } from './registerTransform';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'SimpleNode',
category: 'node',
type: 'NODE',
- name: '官方节点',
+ name: $i18n.get({ id: 'basic.elements.SimpleNode.OfficialNode', dm: '官方节点' }),
icon: 'icon-smile',
- desc: '官方节点',
+ desc: $i18n.get({ id: 'basic.elements.SimpleNode.OfficialNode', dm: '官方节点' }),
cover: 'https://gw.alipayobjects.com/mdn/rms_0d75e8/afts/img/A*myb8SrnSy0cAAAAAAAAAAAAAARQnAQ',
docs: 'https://www.yuque.com/antv/gi/mkrt58kk7m8qi0cu',
};
diff --git a/packages/gi-assets-basic/src/elements/SimpleNode/registerMeta.tsx b/packages/gi-assets-basic/src/elements/SimpleNode/registerMeta.tsx
index ff8a5821b..bad6deccd 100644
--- a/packages/gi-assets-basic/src/elements/SimpleNode/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/elements/SimpleNode/registerMeta.tsx
@@ -1,4 +1,5 @@
import { defaultConfig } from './registerTransform';
+import $i18n from '../../i18n';
const { icon, keyshape, label, badge } = defaultConfig.advanced;
const registerMeta = context => {
@@ -7,21 +8,21 @@ const registerMeta = context => {
type: 'object',
properties: {
size: {
- title: '大小',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Size', dm: '大小' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: defaultConfig.size,
},
color: {
- title: '颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Color', dm: '颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: defaultConfig.color,
},
label: {
- title: '文本',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Text', dm: '文本' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'GroupSelect',
@@ -44,7 +45,7 @@ const registerMeta = context => {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '高级配置',
+ header: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.AdvancedConfiguration', dm: '高级配置' }),
// 暂时不设置高级配置默认收起,否则下面的 visible 控制就失效了
key: 'advanced-panel',
},
@@ -59,7 +60,6 @@ const registerMeta = context => {
// background: 'red',
// margin: '-16px',
},
-
ghost: true,
},
properties: {
@@ -68,13 +68,13 @@ const registerMeta = context => {
'x-decorator': 'FormItem',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '图标',
+ header: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Icon', dm: '图标' }),
key: 'icon-panel',
},
properties: {
visible: {
type: 'boolean',
- title: '显隐',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Implicit', dm: '显隐' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
'x-reactions': [
@@ -114,22 +114,31 @@ const registerMeta = context => {
},
type: {
type: 'string',
- title: '类型',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Type', dm: '类型' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
- enum: [{ label: '文本', value: 'text' }, { label: '字体图标', value: 'font' }],
+ enum: [
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Text', dm: '文本' }),
+ value: 'text',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.FontIcon', dm: '字体图标' }),
+ value: 'font',
+ },
+ ],
default: icon.type,
},
value: {
type: 'string',
- title: '图标',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Icon', dm: '图标' }),
'x-decorator': 'FormItem',
'x-component': 'IconPicker',
default: icon.value,
},
fill: {
type: 'string',
- title: '颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Color', dm: '颜色' }),
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
default: icon.fill,
@@ -148,13 +157,13 @@ const registerMeta = context => {
'x-decorator': 'FormItem',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '节点',
+ header: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Node', dm: '节点' }),
key: 'keyshape-panel',
},
properties: {
fillOpacity: {
type: 'string',
- title: '透明度',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Transparency', dm: '透明度' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
max: 1,
@@ -167,13 +176,13 @@ const registerMeta = context => {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '文本',
+ header: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Text', dm: '文本' }),
key: 'label-panel',
},
properties: {
visible: {
type: 'boolean',
- title: '开关',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Switch', dm: '开关' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: label.visible,
@@ -205,7 +214,7 @@ const registerMeta = context => {
],
},
fill: {
- title: '颜色',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Color', dm: '颜色' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'ColorInput',
@@ -213,7 +222,7 @@ const registerMeta = context => {
},
fontSize: {
type: 'string',
- title: '大小',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Size', dm: '大小' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
max: 100,
@@ -221,17 +230,33 @@ const registerMeta = context => {
default: label.fontSize,
},
position: {
- title: '位置',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Location', dm: '位置' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
enum: [
- { label: '顶部', value: 'top' },
- { label: '底部', value: 'bottom' },
- { label: '左侧', value: 'left' },
- { label: '右侧', value: 'right' },
- { label: '中间', value: 'center' },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Top', dm: '顶部' }),
+ value: 'top',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Bottom', dm: '底部' }),
+ value: 'bottom',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.LeftSide', dm: '左侧' }),
+ value: 'left',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.RightSide', dm: '右侧' }),
+ value: 'right',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Middle', dm: '中间' }),
+ value: 'center',
+ },
],
+
default: label.position,
},
},
@@ -240,13 +265,13 @@ const registerMeta = context => {
type: 'object',
'x-component': 'FormCollapse.CollapsePanel',
'x-component-props': {
- header: '徽标',
+ header: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Logo', dm: '徽标' }),
key: 'badge-panel',
},
properties: {
visible: {
type: 'boolean',
- title: '显隐',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Implicit', dm: '显隐' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: badge.visible,
@@ -270,20 +295,33 @@ const registerMeta = context => {
],
},
type: {
- title: '类型',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Type', dm: '类型' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Select',
enum: [
- { label: '字段映射', value: 'mapping' },
- { label: '文本', value: 'text' },
- { label: '字体图标', value: 'font' },
+ {
+ label: $i18n.get({
+ id: 'basic.elements.SimpleNode.registerMeta.FieldMapping',
+ dm: '字段映射',
+ }),
+ value: 'mapping',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Text', dm: '文本' }),
+ value: 'text',
+ },
+ {
+ label: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.FontIcon', dm: '字体图标' }),
+ value: 'font',
+ },
],
+
default: badge.type,
},
value: {
type: 'string',
- title: '文本',
+ title: $i18n.get({ id: 'basic.elements.SimpleNode.registerMeta.Text', dm: '文本' }),
'x-decorator': 'FormItem',
'x-component': 'Input',
default: badge.value,
diff --git a/packages/gi-assets-basic/src/i18n/index.ts b/packages/gi-assets-basic/src/i18n/index.ts
new file mode 100644
index 000000000..257847be7
--- /dev/null
+++ b/packages/gi-assets-basic/src/i18n/index.ts
@@ -0,0 +1,48 @@
+import locale from '@aligov/global-locale';
+import stringFormat from '@aligov/global-string-format';
+import strings from './strings';
+
+let language; // Current language
+let intl; // Instance of intl-universal. Create by provideIntl
+
+function update() {
+ const { lang } = locale.getLocale();
+ language = lang;
+ intl = stringFormat.init(lang, strings, { name: 'basic' });
+}
+
+function change(langTag) {
+ locale.setLang(langTag);
+ update();
+}
+
+function get(id, variable = {}) {
+ if (!intl) update();
+ if (typeof id === 'string') {
+ return stringFormat.format(
+ {
+ id: id,
+ },
+ variable,
+ { name: 'basic' }
+ );
+ } else if (typeof id === 'object' && id.dm) {
+ id.defaultMessage = id.dm;
+ }
+ return stringFormat.format(
+ {
+ id: id.id,
+ defaultString: id.dm,
+ },
+ variable,
+ { name: 'basic' }
+ );
+}
+
+export default {
+ get,
+ update,
+ change,
+ language,
+};
+
\ No newline at end of file
diff --git a/packages/gi-assets-basic/src/i18n/strings/en-US.json b/packages/gi-assets-basic/src/i18n/strings/en-US.json
new file mode 100644
index 000000000..23bc84f5a
--- /dev/null
+++ b/packages/gi-assets-basic/src/i18n/strings/en-US.json
@@ -0,0 +1,641 @@
+{
+ "basic.components.ActivateRelations.info.ElementHighlighting": "Element Highlighting",
+ "basic.components.ActivateRelations.info.ActivateAssociatedNodesAndEdges": "Activate associated nodes and edges through interaction",
+ "basic.components.ActivateRelations.info.YouCanClickNodesTo": "You can click nodes to highlight associated nodes and edges.",
+ "basic.components.ActivateRelations.info.YouCanConfigureNodesOr": "You can configure nodes or edges and hover the highlight effect.",
+ "basic.components.ActivateRelations.info.YouCanConfigureTheHighlighting": "You can configure the highlighting effect of node upstream N degrees and downstream M degrees.",
+ "basic.components.ActivateRelations.registerMeta.NodeHover": "Node hover",
+ "basic.components.ActivateRelations.registerMeta.EdgeHover": "Edge hover",
+ "basic.components.ActivateRelations.registerMeta.EnableAssociation": "Enable Association",
+ "basic.components.ActivateRelations.registerMeta.TriggerMode": "Trigger mode",
+ "basic.components.ActivateRelations.registerMeta.MouseClick": "Mouse Click",
+ "basic.components.ActivateRelations.registerMeta.MoveTheMouseIn": "Move the mouse in",
+ "basic.components.ActivateRelations.registerMeta.UpstreamDegree": "Upstream degree",
+ "basic.components.ActivateRelations.registerMeta.DownstreamDegrees": "Downstream degrees",
+ "basic.components.ActivateRelations.registerMeta.MultipleSelectionsAllowed": "Multiple selections allowed",
+ "basic.components.ActivateRelations.registerMeta.MultipleKeyCombinationsPressThe": "Multiple key combinations, press the keyboard to enter key combinations, support Alt, Control, Shift, Meta",
+ "basic.components.CanvasSetting.CanvasSettings": "Canvas settings",
+ "basic.components.CanvasSetting.SetTheBackgroundOfThe": "Set the background of the canvas, zoom, move, and other interactions",
+ "basic.components.CanvasSetting.SelectCanvasNodeOrEdge": "Select Canvas node or edge",
+ "basic.components.CanvasSetting.SupportsAutomaticAdaptiveCenteringBy": "Supports automatic adaptive centering by double-clicking the canvas.",
+ "basic.components.CanvasSetting.YouCanConfigureTheBackground": "You can configure the background color of the canvas.",
+ "basic.components.CanvasSetting.SupportsScalingAndTranslationInteraction": "Supports scaling and translation interaction of the canvas.",
+ "basic.components.CanvasSetting.registerMeta.CanvasStyle": "Canvas style",
+ "basic.components.CanvasSetting.registerMeta.BackgroundColor": "Background color",
+ "basic.components.CanvasSetting.registerMeta.BackgroundImage": "Background image",
+ "basic.components.CanvasSetting.registerMeta.DragCanvas": "Drag canvas",
+ "basic.components.CanvasSetting.registerMeta.DragDisabled": "Drag disabled",
+ "basic.components.CanvasSetting.registerMeta.DragDirection": "Drag direction",
+ "basic.components.CanvasSetting.registerMeta.Freedom": "Freedom",
+ "basic.components.CanvasSetting.registerMeta.XDirection": "X direction",
+ "basic.components.CanvasSetting.registerMeta.YDirection": "Y direction",
+ "basic.components.CanvasSetting.registerMeta.DragOptimization": "Drag optimization",
+ "basic.components.CanvasSetting.registerMeta.ZoomCanvas": "Zoom canvas",
+ "basic.components.CanvasSetting.registerMeta.ZoomDisabled": "Zoom disabled",
+ "basic.components.CanvasSetting.registerMeta.ZoomOptimization": "Zoom Optimization",
+ "basic.components.CanvasSetting.registerMeta.ClickTheCanvasToClear": "Click the canvas to clear the status.",
+ "basic.components.CanvasSetting.registerMeta.DoubleClickTheCanvasTo": "Double-click the canvas to adapt",
+ "basic.ChartAnalysis.Charts.LineChart": "Line chart",
+ "basic.ChartAnalysis.Charts.Histogram": "Histogram",
+ "basic.ChartAnalysis.Charts.XAxis": "X axis:",
+ "basic.ChartAnalysis.Charts.XAxisField": "X-axis field",
+ "basic.ChartAnalysis.Charts.YAxis": "Y-axis:",
+ "basic.ChartAnalysis.Charts.YAxisField": "Y-axis field",
+ "basic.components.ChartAnalysis.info.ChartAnalysis": "Chart analysis",
+ "basic.components.ChartAnalysis.info.TheDataInTheGraph": "The data in the graph is displayed and analyzed through statistical charts.",
+ "basic.components.ChartAnalysis.registerMeta.ChartTitle": "Chart title",
+ "basic.components.ChartAnalysis.registerMeta.UnnamedChart": "Unnamed chart",
+ "basic.components.ChartAnalysis.registerMeta.ChartType": "Chart type",
+ "basic.components.ChartAnalysis.registerMeta.Histogram": "Histogram",
+ "basic.components.ChartAnalysis.registerMeta.LineChart": "Line chart",
+ "basic.components.ChartAnalysis.registerMeta.InteractionMode": "Interaction Mode",
+ "basic.components.ChartAnalysis.registerMeta.Highlight": "Highlight",
+ "basic.components.ChartAnalysis.registerMeta.Filtering": "Filtering",
+ "basic.components.ChartAnalysis.registerMeta.ChartHeight": "Chart height",
+ "basic.components.ChartAnalysis.registerMeta.DataType": "Data type",
+ "basic.components.ChartAnalysis.registerMeta.NodeData": "Node data",
+ "basic.components.ChartAnalysis.registerMeta.EdgeData": "EDGE data",
+ "basic.components.ChartAnalysis.registerMeta.XAxisField": "X-axis field",
+ "basic.components.ChartAnalysis.registerMeta.YAxisField": "Y-axis field",
+ "basic.components.ClearCanvas.info.ClearCanvas": "Clear canvas",
+ "basic.components.ClearCanvas.info.ClearEverythingOnTheCanvas": "Clear everything on the canvas",
+ "basic.components.CommonNeighbor.Component.NoCommonNeighborsFound": "No common neighbors found!",
+ "basic.components.CommonNeighbor.Component.CommonNeighbor": "Common neighbor",
+ "basic.components.CommonNeighbor.Component.NoRelatedNodeFoundOn": "No related node found on the current canvas",
+ "basic.components.CommonNeighbor.Component.CommonNeighborHopJump": "Common neighbor ({hop} jump)",
+ "basic.components.CommonNeighbor.info.CommonNeighbor": "Common neighbor",
+ "basic.components.CommonNeighbor.info.HighlightTheCommonNeighborsOf": "Highlight the common neighbors of the selected node",
+ "basic.components.CommonNeighbor.registerMeta.NumberOfHops": "Number of hops",
+ "basic.components.ContentContainer.info.ContentContainer": "Content container",
+ "basic.components.ContentContainer.info.CombinedContentContainer": "Combined content container",
+ "basic.components.ContentContainer.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.ContextMenu.info.RightClickMenu": "Right-click menu",
+ "basic.components.ContextMenu.info.RightClickTheMenuContainer": "Right-click the menu container.",
+ "basic.components.ContextMenu.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.Copyright.Component.CopyrightImage": "Copyright image",
+ "basic.components.Copyright.info.Copyright": "Copyright",
+ "basic.components.Copyright.info.ShowApplicationCopyrightInformationOn": "Show application copyright information on canvas",
+ "basic.components.Copyright.registerMeta.CopyrightImage": "Copyright image",
+ "basic.components.Copyright.registerMeta.Width": "Width",
+ "basic.components.Copyright.registerMeta.Height": "Height",
+ "basic.components.Copyright.registerMeta.ComponentLocation": "Component location",
+ "basic.components.Copyright.registerMeta.Offset": "Offset",
+ "basic.components.CreateCombo.info.CreateCombo": "Create Combo",
+ "basic.components.CreateCombo.info.ByCreatingAComboElement": "By creating a Combo element, it is used as a fusion element on the canvas.",
+ "basic.components.CreateCombo.registerMeta.CreateCombo": "Create Combo",
+ "basic.components.DownLoad.info.Download": "Download",
+ "basic.components.DownLoad.info.ClickToDownloadTheCanvas": "Click to download the canvas image.",
+ "basic.components.Export.info.Export": "Export",
+ "basic.components.Export.info.ExportCsvPngJsonData": "Export CSV,PNG,JSON data",
+ "basic.FilterPanel.Charts.HistogramOptions.MinimumRange": "Minimum range",
+ "basic.FilterPanel.Charts.HistogramOptions.MaximumRange": "Maximum range",
+ "basic.FilterPanel.Charts.HistogramOptions.BinValue": "Bin value",
+ "basic.FilterPanel.Charts.HistogramOptions.SaveTheSubBoxConfiguration": "Save the sub-box configuration",
+ "basic.FilterPanel.Charts.HistogramOptions.SetTheRuleOfGrouping": "Set the rule of grouping",
+ "basic.FilterPanel.Charts.LineChart.SelectElementtypeAttribute": "Select {elementType} attribute",
+ "basic.components.FilterPanel.Component.Filter": "Filter",
+ "basic.components.FilterPanel.Component.AddFilter": "Add Filter",
+ "basic.components.FilterPanel.Component.SmartRecommendation": "Recommend",
+ "basic.components.FilterPanel.FilterSelection.SelectElementAttributes": "Select element attributes",
+ "basic.components.FilterPanel.FilterSelection.Node": "Node",
+ "basic.components.FilterPanel.FilterSelection.Edge": "Edge",
+ "basic.components.FilterPanel.FilterSelection.SelectAFilterValue": "Select a filter value",
+ "basic.components.FilterPanel.FilterSelection.SelectAValidField": "Select a valid field",
+ "basic.components.FilterPanel.RecommendFilter.Node": "Node",
+ "basic.components.FilterPanel.RecommendFilter.Edge": "Edge",
+ "basic.components.FilterPanel.RecommendFilter.Properties": "Properties:",
+ "basic.components.FilterPanel.RecommendFilter.ManyValuesOfThisAttribute": "Many values of this attribute have the same number of occurrences, but some values have more occurrences than the average number of occurrences (red), which is worthy of attention.",
+ "basic.components.FilterPanel.RecommendFilter.SomeValuesOfThisAttribute": "Some values of this attribute have a very low probability of occurrence (red) and are likely to contain a larger amount of information, which deserves attention.",
+ "basic.components.FilterPanel.info.FilterPanel": "Filter Panel",
+ "basic.components.FilterPanel.info.FilterCanvasInformationThroughAttributes": "Filter canvas information through attributes to customize",
+ "basic.components.FilterPanel.registerMeta.DefaultFilterField": "Default filter field",
+ "basic.components.FilterPanel.registerMeta.SmartRecommendation": "Recommend",
+ "basic.components.FilterPanel.registerMeta.FilterIsolatedNodes": "Filter isolated nodes",
+ "basic.components.FilterPanel.registerMeta.HighlightMode": "Highlight mode",
+ "basic.components.FilterPanel.registerMeta.FilteringLogic": "Filtering logic",
+ "basic.components.FilterPanel.registerMeta.SubBoxSetting": "Sub-box setting",
+ "basic.components.FilterPanel.registerMeta.CustomSubBox": "Custom sub-box",
+ "basic.components.FilterPanel.registerMeta.IntervalMinimum": "Interval minimum",
+ "basic.components.FilterPanel.registerMeta.IntervalMaximum": "Interval maximum",
+ "basic.components.FilterPanel.registerMeta.BinValue": "Bin value",
+ "basic.components.FitCenter.info.ViewCenter": "View Center",
+ "basic.components.FitCenter.info.AdjustTheCanvasToCenter": "Adjust the canvas to center and align it",
+ "basic.components.FitCenterView.info.AdaptiveCentering": "Adaptive centering",
+ "basic.components.FitCenterView.info.AdjustTheCanvasToDisplay": "Adjust the canvas to display it in the center",
+ "basic.components.FitView.info.Adaptive": "Adaptive",
+ "basic.components.FitView.info.AdjustTheCanvasToAdapt": "Adjust the canvas to adapt to 1:1 display",
+ "basic.components.ForceSimulation.Component.ThisFunctionCanOnlyBe": "This function can only be used under the force guide layout.",
+ "basic.components.ForceSimulation.Component.RestartTheForceGuideLayout": "Restart the Force guide layout and click the canvas to pause the force Guide.",
+ "basic.components.ForceSimulation.info.ForceGuideController": "Force guide controller",
+ "basic.components.ForceSimulation.info.YouCanStopOrRestart": "You can stop or restart the Force guide layout.",
+ "basic.components.ForceSimulation.registerMeta.FixedDraggedNode": "Fixed dragged node",
+ "basic.components.ForceSimulation.registerMeta.FixedMass": "Fixed mass",
+ "basic.components.GrailLayout.HolyGrailLayout": "Holy Grail layout",
+ "basic.components.GrailLayout.SupportsAssetLayoutInThe": "Supports asset layout in the left, right, and lower directions.",
+ "basic.components.GrailLayout.registerMeta.LeftContainer": "Left container",
+ "basic.components.GrailLayout.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheLeftContainer": "By default, the left container is expanded.",
+ "basic.components.GrailLayout.registerMeta.LeftWidth": "Left width",
+ "basic.components.GrailLayout.registerMeta.RightContainer": "Right container",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheContainerOn": "By default, the container on the right is expanded.",
+ "basic.components.GrailLayout.registerMeta.RightWidth": "Right width",
+ "basic.components.GrailLayout.registerMeta.BottomContainer": "Bottom container",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheBottomContainer": "By default, the bottom container is expanded.",
+ "basic.components.GrailLayout.registerMeta.BottomHeight": "Bottom height",
+ "basic.components.GrailLayout.registerMeta.TopContainer": "Top Container",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheTopContainer": "By default, the top container is expanded.",
+ "basic.components.GrailLayout.registerMeta.TopHeight": "Top height",
+ "basic.components.GrailLayout.useComponents.NoAssetsAreAvailableIn": "No assets are available in the current container. Please integrate them in the configuration panel.",
+ "basic.components.GroupBar.info.GroupOperationColumn": "Group operation column",
+ "basic.components.GroupBar.info.GroupOperationsColumnGroupAssets": "Group operations column, group assets",
+ "basic.components.GroupBar.registerMeta.SplitLineConfiguration": "Split line configuration",
+ "basic.components.GroupBar.registerMeta.Location": "Location",
+ "basic.components.GroupBar.registerMeta.Start": "Start",
+ "basic.components.GroupBar.registerMeta.End": "End",
+ "basic.components.GroupBar.registerMeta.StartMargin": "Start margin",
+ "basic.components.GroupBar.registerMeta.EndMargin": "End margin",
+ "basic.components.GroupBar.registerMeta.Color": "Color",
+ "basic.components.GroupBar.registerMeta.LineWidth": "Line width",
+ "basic.components.GroupBar.registerMeta.AddSplitLine": "Add split line",
+ "basic.components.GroupBar.registerMeta.Grouping": "Grouping",
+ "basic.components.GroupBar.registerMeta.AddGroup": "Add Group",
+ "basic.components.GroupBar.registerMeta.ClusterSetting": "Cluster setting",
+ "basic.components.GroupBar.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.GroupBar.registerMeta.Width": "Width",
+ "basic.components.GroupBar.registerMeta.StringOrNumericType": "String or numeric type",
+ "basic.components.GroupBar.registerMeta.Height": "Height",
+ "basic.components.GroupBar.registerMeta.BackgroundColor": "Background color",
+ "basic.components.GroupBar.registerMeta.TextColor": "Text color",
+ "basic.components.GroupBar.registerMeta.Alignment": "Alignment",
+ "basic.components.GroupBar.registerMeta.LeftAlignment": "Left alignment",
+ "basic.components.GroupBar.registerMeta.CenterAlignment": "Center alignment",
+ "basic.components.GroupBar.registerMeta.RightAlignment": "Right alignment",
+ "basic.components.GroupBar.registerMeta.Suspension": "Suspension",
+ "basic.components.GroupBar.registerMeta.Top": "Top",
+ "basic.components.GroupBar.registerMeta.Bottom": "Bottom",
+ "basic.components.GroupBar.registerMeta.LeftSide": "Left side",
+ "basic.components.GroupBar.registerMeta.RightSide": "Right side",
+ "basic.components.GroupBar.registerMeta.Size": "Size",
+ "basic.components.Initializer.Component.CanvasRenderingFailed": "Canvas rendering failed",
+ "basic.components.Initializer.Component.TheServiceidServiceIsMissing": "The {serviceId} service is missing. Check whether the relevant assets have been loaded successfully.",
+ "basic.components.Initializer.Component.FailedToObtainGraphModel": "Failed to obtain graph model",
+ "basic.components.Initializer.Component.TheAmountOfDataLoaded": "The amount of data loaded is too large.",
+ "basic.components.Initializer.Component.WeRecommendThatYouAggregate": "We recommend that you aggregate data and switch to grid layout by default. You can also load the big picture component in the asset center to enable 3D rendering.",
+ "basic.components.Initializer.info.Initializer": "Initializer",
+ "basic.components.Initializer.info.RequiredInitializeQueryGraphData": "Required! Initialize query graph data and graph model",
+ "basic.components.Initializer.registerMeta.InitializeAQuery": "Initialize a query",
+ "basic.components.Initializer.registerMeta.QueryGraphModel": "Query graph model",
+ "basic.components.Initializer.registerMeta.DefaultStartup": "Default Startup",
+ "basic.components.Initializer.registerMeta.SummaryEdge": "Summary edge",
+ "basic.components.Initializer.registerMeta.EnableFieldMapping": "Enable field mapping",
+ "basic.components.LassoSelect.info.FreeSelection": "Free selection",
+ "basic.components.LassoSelect.info.YouCanUseTheCable": "You can use the cable tool to freely circle canvas elements.",
+ "basic.components.LassoSelect.registerMeta.HoldDownShiftAndClick": "Hold down Shift and click the canvas to freely select",
+ "basic.components.LayoutSwitch.Component.LayoutSwitching": "Layout switching",
+ "basic.components.LayoutSwitch.Component.LayoutLayoutpropstype": "Layout {layoutPropsType}",
+ "basic.components.LayoutSwitch.Component.LayoutScheme": "Layout scheme",
+ "basic.components.LayoutSwitch.info.LayoutSwitching": "Layout switching",
+ "basic.components.LayoutSwitch.info.SwitchLayoutWithOneClick": "Switch layout with one click",
+ "basic.components.LayoutSwitch.registerMeta.SwitchCanvasLayoutWithOne": "Switch canvas layout with one click",
+ "basic.components.Loading.info.LoadAnimation": "Load animation",
+ "basic.components.Loading.info.WhenLoadingDataAsynchronouslyThe": "When loading data asynchronously, the loading animation can be displayed.",
+ "basic.components.MiniMap.SmallMap": "Small map",
+ "basic.components.MiniMap.WhenEnabledInformationCanBe": "When enabled, information can be displayed on the mini map.",
+ "basic.components.NeighborsQuery.Component.TheSpecifiedDiffusionStartNode": "The specified diffusion start node is not found in the current canvas.",
+ "basic.components.NeighborsQuery.Component.NeighborQuery": "Neighbor query",
+ "basic.components.NeighborsQuery.Component.NeighborQueryOfStartIds": "Query the neighbors of {startIds}",
+ "basic.components.NeighborsQuery.Component.One": "One",
+ "basic.components.NeighborsQuery.Component.Ii": "II",
+ "basic.components.NeighborsQuery.Component.Three": "Three",
+ "basic.components.NeighborsQuery.Component.DegreeExtension": "Degree extension",
+ "basic.components.NeighborsQuery.Component.ExtendedQuery": "Extended query",
+ "basic.components.NeighborsQuery.info.NeighborQuery": "Neighbor query",
+ "basic.components.NeighborsQuery.info.IntegratedInTheRightClick": "Integrated in the right-click menu, you can query neighbor nodes",
+ "basic.components.NeighborsQuery.registerMeta.DataService": "Data Service",
+ "basic.components.NeighborsQuery.registerMeta.QueryableDegrees": "Queryable degrees",
+ "basic.components.NeighborsQuery.registerMeta.OnceQuery": "Once query",
+ "basic.components.NeighborsQuery.registerMeta.SecondDegreeQuery": "Second degree query",
+ "basic.components.NeighborsQuery.registerMeta.ThreeDegreeQuery": "Three-degree query",
+ "basic.components.NeighborsQuery.registerMeta.WhetherToFocusOnThe": "Whether to focus on the diffusion point",
+ "basic.components.NeighborsQuery.registerMeta.LimitedQuantity": "Limited Quantity",
+ "basic.components.NodeLegend.info.NodeLegend": "Node legend",
+ "basic.components.NodeLegend.info.WhenEnabledTheLegendInformation": "When enabled, the legend information of the node can be displayed.",
+ "basic.components.NodeLegend.registerMeta.MappingField": "Mapping field",
+ "basic.components.NodeLegend.registerMeta.FontColor": "Font color",
+ "basic.components.NodeLegend.registerMeta.ComponentLocation": "Component location",
+ "basic.components.NodeLegend.registerMeta.Offset": "Offset",
+ "basic.components.OperatorBar.ActionBar": "Action Bar",
+ "basic.components.OperatorBar.BusinessActionBarWhichCan": "Business Action Bar, which can integrate many analysis components",
+ "basic.components.OperatorBar.registerMeta.WeRecommendThatYouIntegrate": "(We recommend that you integrate it into the toolbar)",
+ "basic.components.OperatorBar.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.OperatorHeader.OperationHeaderBar": "Operation header bar",
+ "basic.components.OperatorHeader.registerMeta.Interval": "Interval",
+ "basic.components.OperatorHeader.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.OperatorHeader.registerMeta.LeftComponent": "Left component",
+ "basic.components.OperatorHeader.registerMeta.IntermediateComponent": "Intermediate component",
+ "basic.components.OperatorHeader.registerMeta.RightComponent": "Right component",
+ "basic.components.OverView.Component.InOrderToAnalyzeCanvas": "In order to analyze canvas rendering performance and user efficiency, the display limit of nodes exceeding {limit} is displayed, which can be customized in the property panel. You can select display based on the statistical analysis results through the filter panel below.",
+ "basic.components.OverView.Component.DisplayLimits": "Display limits",
+ "basic.components.OverView.Component.NumberOfLoadedNodes": "Number of loaded nodes",
+ "basic.components.OverView.Component.NumberOfLoadedEdges": "Number of loaded edges",
+ "basic.components.OverView.Filter.AddFilter": "Add Filter",
+ "basic.components.OverView.Interpretation.Or": "Or",
+ "basic.components.OverView.Interpretation.For": "For",
+ "basic.components.OverView.Interpretation.DataOperations": "Data operations",
+ "basic.components.OverView.Interpretation.DownloadData": "Download data",
+ "basic.components.OverView.Interpretation.CurrentFilterLogic": "Current filter logic: {filterLogic}, filter conditions are as follows:",
+ "basic.components.OverView.Interpretation.CurrentNode": "Current node",
+ "basic.components.OverView.Interpretation.CurrentEdge": "Current edge",
+ "basic.components.OverView.info.BigPictureOverview": "Big picture overview",
+ "basic.components.OverView.registerMeta.LimitTheNumberOfDisplays": "Limit the number of displays (nodes)",
+ "basic.components.OverView.registerMeta.FilteringLogic": "Filtering logic",
+ "basic.components.PathAnalysis.Component.Path": "Path",
+ "basic.components.PathAnalysis.Component.StartPointSourceEndPoint": "Start point: {source}, end point: {target}",
+ "basic.components.PathAnalysis.Component.NoPathThatMeetsThe": "No path that meets the conditions",
+ "basic.components.PathAnalysis.Component.InfoYouCanTryTo": "{info}, you can try to set whether there is a direction to no direction, or change the start and end points.",
+ "basic.components.PathAnalysis.Component.InfoYouCanTryTo.1": "{info}, you can try to change the start and end points.",
+ "basic.components.PathAnalysis.Component.StartNode": "Start node",
+ "basic.components.PathAnalysis.Component.EnterTheStartNodeId": "Enter the start node ID.",
+ "basic.components.PathAnalysis.Component.YouCanClickTheCanvas": "You can click the canvas node to quickly select the starting node.",
+ "basic.components.PathAnalysis.Component.TargetNode": "Target node",
+ "basic.components.PathAnalysis.Component.EnterTheEndpointId": "Enter the endpoint ID.",
+ "basic.components.PathAnalysis.Component.YouCanClickTheCanvas.1": "You can click the canvas node to quickly select the target node.",
+ "basic.components.PathAnalysis.Component.IsThereAnyDirection": "Is there any direction",
+ "basic.components.PathAnalysis.Component.Directed": "Directed",
+ "basic.components.PathAnalysis.Component.Undirected": "Undirected",
+ "basic.components.PathAnalysis.Component.QueryPath": "Query path",
+ "basic.components.PathAnalysis.Component.PathNumber": "Path{number}",
+ "basic.components.PathAnalysis.FilterRule.AllPaths": "All paths",
+ "basic.components.PathAnalysis.FilterRule.WeightedShortestPath": "Weighted shortest path",
+ "basic.components.PathAnalysis.FilterRule.EdgeTypeFiltering": "Edge type filtering",
+ "basic.components.PathAnalysis.FilterRule.FilterRules": "Filter rules",
+ "basic.components.PathAnalysis.FilterRule.WeightAttribute": "Weight attribute",
+ "basic.components.PathAnalysis.FilterRule.EdgeType": "Edge type",
+ "basic.components.PathAnalysis.info.PathAnalysis": "Path analysis",
+ "basic.components.PathAnalysis.info.SelectAStartPointAnd": "Select a start point and an end point to analyze the path.",
+ "basic.components.PathAnalysis.registerMeta.TagMapping": "Tag Mapping",
+ "basic.components.PinNodeWithMenu.Component.TheNodeDoesNotExist": "The node does not exist.",
+ "basic.components.PinNodeWithMenu.Component.FixedNode": "Fixed node",
+ "basic.components.PinNodeWithMenu.Component.FixedId": "Fixed {id}",
+ "basic.components.PinNodeWithMenu.Component.Unfix": "Unfix",
+ "basic.components.PinNodeWithMenu.FixedNodeMenu": "Fixed node (MENU)",
+ "basic.components.PinNodeWithMenu.FixedNodeOftenIntegratedIn": "Fixed node, often integrated in the right-click menu",
+ "basic.components.Placeholder.Component.TheNodeSizeOfThe": "The node size of the currently loaded graph has exceeded 「",
+ "basic.components.Placeholder.Component.RestrictionsWeRecommendThatYou": "\"Restrictions. We recommend that you load the\" big picture overview \"asset in the asset Center, filter sub-picture data, or adjust the limit size.",
+ "basic.components.Placeholder.info.CanvasPlaceholder": "Canvas placeholder",
+ "basic.components.Placeholder.info.ImagePlaceholderWhenCanvasIs": "Image placeholder when canvas is empty",
+ "basic.components.Placeholder.registerMeta.ImageAddress": "Image address",
+ "basic.components.Placeholder.registerMeta.Text": "Text",
+ "basic.components.Placeholder.registerMeta.StartYourGraphAnalysisApplication": "Start your graph analysis application ~",
+ "basic.components.Placeholder.registerMeta.Width": "Width",
+ "basic.components.PropertiesPanel.PropertiesDetail.CompareWithOtherAttribute": "Compared to other values of the attribute {key}, the current attribute value {value} has a {importance} occurrence rate, which may contain significant information and deserves attention",
+ "basic.components.PropertiesPanel.PropertiesDetail.VeryLow": " very low",
+ "basic.components.PropertiesPanel.PropertiesDetail.RelativelyLow": " relatively low",
+ "basic.components.PropertiesPanel.PropertiesDetail.MostAttributeValuesOfThe": "Most attribute values of the property \"{key}\" have the same number of occurrences, while the current attribute value \"{value}\" appears here more than the average number of occurrences, which deserves attention.",
+ "basic.PropertiesPanel.Statistic.ChartCard.XAxisField": "X-axis field",
+ "basic.PropertiesPanel.Statistic.ChartCard.YAxisField": "Y-axis field",
+ "basic.components.PropertiesPanel.info.PropertiesPanel": "Properties panel",
+ "basic.components.PropertiesPanel.info.ClickANodeOrEdge": "Click a node or edge to display its details.",
+ "basic.components.PropertiesPanel.registerMeta.DataService": "Data Service",
+ "basic.components.PropertiesPanel.registerMeta.AttributeRecommendation": "Attribute recommendation",
+ "basic.components.PropertiesPanel.registerMeta.StatisticsAreDisplayedByDefault": "Statistics are displayed by default.",
+ "basic.components.PropertiesPanel.registerMeta.Title": "Title",
+ "basic.components.PropertiesPanel.registerMeta.PropertiesPanel": "Properties panel",
+ "basic.components.PropertiesPanel.registerMeta.DisplayOrientation": "Display orientation",
+ "basic.components.PropertiesPanel.registerMeta.Left": "Left",
+ "basic.components.PropertiesPanel.registerMeta.Right": "Right",
+ "basic.components.PropertiesPanel.registerMeta.UpperPart": "Upper part",
+ "basic.components.PropertiesPanel.registerMeta.Bottom": "Bottom",
+ "basic.components.PropertiesPanel.registerMeta.Width": "Width",
+ "basic.components.PropertiesPanel.registerMeta.Height": "Height",
+ "basic.components.PropertiesPanel.registerMeta.OffsetDistance": "Offset distance",
+ "basic.components.PropertiesPanel.registerMeta.DrawerAnimation": "Drawer animation",
+ "basic.components.PropertyGraphInitializer.info.AttributeGraphCalculation": "Attribute graph calculation",
+ "basic.components.PropertyGraphInitializer.info.AssistOtherAssetsToIntelligently": "Assist other assets to intelligently analyze attribute graph calculation of local data",
+ "basic.components.RemoveNodeWithMenu.Component.DeleteANode": "Delete a node",
+ "basic.components.RemoveNodeWithMenu.Component.DeleteNodeidslengthNodes": "Delete {nodeIdsLength} nodes",
+ "basic.components.RemoveNodeWithMenu.Component.TheNodeWithTheSpecified": "The node with the specified id is not found in the current canvas.",
+ "basic.components.RemoveNodeWithMenu.info.NodeDeletion": "Node deletion",
+ "basic.components.RemoveNodeWithMenu.info.NodeDeletionRightClickMenu": "Node deletion-right-click menu integration",
+ "basic.components.Sankey.Component.PleaseSetTheWeightMapping": "Please set the weight mapping of Sankey diagram first 」",
+ "basic.components.Sankey.info.SankeyDiagramAnalysis": "Sankey diagram analysis",
+ "basic.components.Sankey.registerMeta.WeightMapping": "Weight mapping",
+ "basic.components.Save.Component.SavedSuccessfully": "Saved successfully",
+ "basic.components.Save.Component.AfterSecondsItWillAutomatically": "After 3 seconds, it will automatically jump to the shared canvas page.",
+ "basic.components.Save.Component.Name": "Name",
+ "basic.components.Save.Component.TheNameConsistsOfChinese": "The name consists of Chinese, English, or numbers.",
+ "basic.components.Save.Component.Description": "Description",
+ "basic.components.Save.Component.DescriptionConsistsOfChineseEnglish": "Description consists of Chinese, English, or numbers",
+ "basic.components.Save.Component.Thumbnail": "Thumbnail",
+ "basic.components.Save.Component.SaveShare": "Save share",
+ "basic.components.Save.info.SaveShare": "Save share",
+ "basic.components.Save.info.SaveTheCanvasAndShare": "Save the canvas and share it with others",
+ "basic.components.Save.registerMeta.SaveService": "Save service",
+ "basic.components.SegmentedLayout.info.SegmentLayout": "Segment layout",
+ "basic.components.SegmentedLayout.info.SectionalizerLayout": "Sectionalizer layout",
+ "basic.components.SegmentedLayout.registerMeta.SideContainer": "Side Container",
+ "basic.components.SegmentedLayout.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.SegmentedLayout.registerMeta.ContainerWidth": "Container Width",
+ "basic.components.SegmentedLayout.useComponents.NoAssetsAreAvailableIn": "No assets are available in the current container. Please integrate them in the configuration panel.",
+ "basic.components.SelectExchangeMenuItem.Component.InverseNodes": "Inverse nodes",
+ "basic.components.SelectExchangeMenuItem.info.Inverse": "Inverse",
+ "basic.components.SelectExchangeMenuItem.info.InverseSelectedNodes": "Inverse selected nodes",
+ "basic.components.SideSelectTabs.info.DropDownNavigationBar": "Drop-down navigation bar",
+ "basic.components.SideSelectTabs.info.SideDropDownNavigationBar": "Side drop-down navigation bar to integrate analysis components",
+ "basic.components.SideSelectTabs.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.SideSelectTabs.registerMeta.PlacementOrientation": "Placement orientation",
+ "basic.components.SideSelectTabs.registerMeta.LowerLeftLeft": "Lower left/left",
+ "basic.components.SideTabs.Component.YouCanExpandAndCollapse": "You can expand and collapse the navigation bar.",
+ "basic.components.SideTabs.Sidebar": "Sidebar",
+ "basic.components.SideTabs.CanvasSideNavigationBarWhich": "Canvas side navigation bar, which can integrate analysis components",
+ "basic.components.SideTabs.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.SideTabs.registerMeta.IndependentDom": "Independent DOM",
+ "basic.components.SideTabs.registerMeta.NavigationLayout": "Navigation layout",
+ "basic.components.SideTabs.registerMeta.DefaultExpansion": "Default expansion",
+ "basic.components.ToggleClusterWithMenu.Component.FoldUpExpand": "Fold up/expand",
+ "basic.components.ToggleClusterWithMenu.Component.Fold": "Fold",
+ "basic.components.ToggleClusterWithMenu.Component.Expand": "Expand",
+ "basic.components.ToggleClusterWithMenu.Component.TheTargetNodeDoesNot": "The target node does not exist.",
+ "basic.components.ToggleClusterWithMenu.Component.ExpandANode": "Expand a node",
+ "basic.components.ToggleClusterWithMenu.Component.CollapseNode": "Collapse node",
+ "basic.components.ToggleClusterWithMenu.ExpandFoldUp": "Expand/fold up",
+ "basic.components.ToggleClusterWithMenu.IntegrateInTheRightClick": "Integrate in the right-click menu, expand/collapse the node",
+ "basic.components.ToggleClusterWithMenu.registerMeta.ReLayout": "Re-layout",
+ "basic.components.ToggleClusterWithMenu.registerMeta.DegreesOfFoldingNodes": "Degrees of folding nodes",
+ "basic.components.Toolbar.info.Toolbar": "Toolbar",
+ "basic.components.Toolbar.info.CanvasToolbarWhichCanIntegrate": "Canvas toolbar, which can integrate canvas interactive components",
+ "basic.components.Toolbar.registerMeta.IntegratedComponents": "Integrated Components",
+ "basic.components.Toolbar.registerMeta.DisplayDirection": "Display direction",
+ "basic.components.Toolbar.registerMeta.ComponentLocation": "Component location",
+ "basic.components.Toolbar.registerMeta.Offset": "Offset",
+ "basic.components.Tooltip.info.NodePromptBox": "Node prompt box",
+ "basic.components.Tooltip.info.TheHoverNodeShowingIts": "The Hover node, showing its details.",
+ "basic.components.Tooltip.registerMeta.Text": "Text",
+ "basic.components.Tooltip.registerMeta.Location": "Location",
+ "basic.components.Tooltip.registerMeta.LeftSide": "Left side",
+ "basic.components.Tooltip.registerMeta.RightSide": "Right side",
+ "basic.components.Tooltip.registerMeta.UpperSide": "Upper Side",
+ "basic.components.Tooltip.registerMeta.LowerSide": "Lower side",
+ "basic.components.Tooltip.registerMeta.Width": "Width",
+ "basic.components.Tooltip.registerMeta.Arrow": "Arrow",
+ "basic.components.TooltipForEdge.info.EdgePromptBox": "Edge prompt box",
+ "basic.components.TooltipForEdge.info.HoverEdgeShowingItsDetails": "Hover edge, showing its details",
+ "basic.components.TooltipForEdge.registerMeta.DisplayText": "Display text",
+ "basic.components.TooltipForEdge.registerMeta.DisplayLocation": "Display location",
+ "basic.components.TooltipForEdge.registerMeta.LeftSide": "Left side",
+ "basic.components.TooltipForEdge.registerMeta.RightSide": "Right side",
+ "basic.components.TooltipForEdge.registerMeta.UpperSide": "Upper Side",
+ "basic.components.TooltipForEdge.registerMeta.LowerSide": "Lower side",
+ "basic.components.TooltipForEdge.registerMeta.DisplayWidth": "Display width",
+ "basic.components.TooltipForEdge.registerMeta.ShowArrow": "Show Arrow",
+ "basic.components.UadLayout.info.UpperAndLowerLayout": "Upper and Lower layout",
+ "basic.components.UadLayout.info.UpperAndLowerLayoutSuitable": "Upper and Lower layout, suitable for graph query scenarios",
+ "basic.components.UadLayout.registerMeta.TopContainer": "Top Container",
+ "basic.components.UadLayout.registerMeta.TopAssembly": "Top Assembly",
+ "basic.components.UadLayout.registerMeta.TopHeight": "Top height",
+ "basic.components.UadLayout.registerMeta.InternalSpacing": "Internal spacing",
+ "basic.components.UadLayout.registerMeta.SideContainer": "Side Container",
+ "basic.components.UadLayout.registerMeta.SideComponents": "Side components",
+ "basic.components.UadLayout.registerMeta.TabLocation": "Tab location",
+ "basic.components.UadLayout.registerMeta.Left": "Left",
+ "basic.components.UadLayout.registerMeta.Right": "Right",
+ "basic.components.UadLayout.registerMeta.Above": "Above",
+ "basic.components.UadLayout.registerMeta.Below": "Below",
+ "basic.components.UadLayout.useComponents.NoAssetsAreAvailableIn": "No assets are available in the current container. Please integrate them in the configuration panel.",
+ "basic.components.Watermark.info.Watermark": "Watermark",
+ "basic.components.Watermark.info.AddWatermark": "Add watermark",
+ "basic.components.Watermark.registerMeta.RenderingMode": "Rendering mode",
+ "basic.components.Watermark.registerMeta.EntirePage": "Entire page",
+ "basic.components.Watermark.registerMeta.CanvasOnly": "Canvas only",
+ "basic.components.Watermark.registerMeta.WatermarkService": "Watermark service",
+ "basic.components.Watermark.registerMeta.Width": "Width",
+ "basic.components.Watermark.registerMeta.Height": "Height",
+ "basic.components.Watermark.registerMeta.RotationAngle": "Rotation angle",
+ "basic.components.Watermark.registerMeta.FontSize": "Font size",
+ "basic.components.Watermark.registerMeta.FontColor": "Font color",
+ "basic.components.Watermark.registerMeta.Spacing": "Spacing",
+ "basic.components.Watermark.registerMeta.Offset": "Offset",
+ "basic.components.ZoomIn.info.ZoomIn": "Zoom in",
+ "basic.components.ZoomIn.info.ClickToEnlargeTheCanvas": "Click to enlarge the canvas",
+ "basic.components.ZoomOut.info.ZoomOut": "Zoom out",
+ "basic.components.ZoomOut.info.ClickToNarrowTheCanvas": "Click to narrow the canvas",
+ "basic.components.ZoomStatus.info.ZoomStatus": "Zoom status",
+ "basic.components.ZoomStatus.info.WhenScalingToAThreshold": "When scaling to a threshold add state",
+ "basic.components.ZoomStatus.registerMeta.MinimumZoom": "Minimum zoom",
+ "basic.components.ZoomStatus.registerMeta.StatusName": "Status name",
+ "basic.components.common.downloadCsv.Unnamed": "Unnamed",
+ "basic.src.components.const.UpperLeft": "Upper left",
+ "basic.src.components.const.UpperRight": "Upper right",
+ "basic.src.components.const.LowerLeft": "Lower left",
+ "basic.src.components.const.LowerRight": "Lower right",
+ "basic.src.components.const.HorizontalDisplay": "Horizontal display",
+ "basic.src.components.const.VerticalDisplay": "Vertical display",
+ "basic.components.utils.csv.ExportDataCsv": "Export data. csv",
+ "basic.src.deploys.Esm.EsmMode": "ESM mode",
+ "basic.src.deploys.Esm.ProvidesNpmPackagesThatSupport": "Provides NPM packages that support Tree Shaking and are native integrated into React projects.",
+ "basic.src.deploys.Html.HtmlMode": "HTML mode",
+ "basic.src.deploys.Html.ExportHtmlForQuickLocal": "Export HTML for quick local viewing",
+ "basic.src.deploys.Umd.UmdMode": "UMD mode",
+ "basic.src.deploys.Umd.ProvidesUmdPackagesThatCan": "Provides UMD packages that can be loaded by CDN and quickly integrated into React projects.",
+ "basic.elements.DonutNode.Doughnuts": "Doughnuts",
+ "basic.elements.DonutNode.DonutComponentForDataDistribution": "Donut component for data distribution",
+ "basic.elements.DonutNode.registerMeta.RingDisplay": "Ring display",
+ "basic.elements.DonutNode.registerMeta.RingColor": "Ring color",
+ "basic.elements.DonutNode.registerMeta.RingSizeSmall": "Ring size small",
+ "basic.elements.DonutNode.registerMeta.Text": "Text",
+ "basic.elements.SimpleEdge.OfficialSide": "Official side",
+ "basic.elements.SimpleEdge.registerMeta.Color": "Color",
+ "basic.elements.SimpleEdge.registerMeta.Size": "Size",
+ "basic.elements.SimpleEdge.registerMeta.Text": "Text",
+ "basic.elements.SimpleEdge.registerMeta.AdvancedConfiguration": "Advanced Configuration",
+ "basic.elements.SimpleEdge.registerMeta.Shape": "Shape",
+ "basic.elements.SimpleEdge.registerMeta.Arrow": "Arrow",
+ "basic.elements.SimpleEdge.registerMeta.DefineRadians": "Define radians",
+ "basic.elements.SimpleEdge.registerMeta.Radian": "Radian",
+ "basic.elements.SimpleEdge.registerMeta.DottedLine": "Dotted line",
+ "basic.elements.SimpleEdge.registerMeta.Transparency": "Transparency",
+ "basic.elements.SimpleEdge.registerMeta.Label": "Label",
+ "basic.elements.SimpleEdge.registerMeta.Implicit": "Implicit",
+ "basic.elements.SimpleEdge.registerMeta.Offset": "Offset",
+ "basic.elements.SimpleEdge.registerMeta.Background": "Background",
+ "basic.elements.SimpleEdge.registerMeta.BackgroundColor": "Background color",
+ "basic.elements.SimpleEdge.registerMeta.BackgroundStroke": "Background stroke",
+ "basic.elements.SimpleEdge.registerMeta.Animation": "Animation",
+ "basic.elements.SimpleEdge.registerMeta.Switch": "Switch",
+ "basic.elements.SimpleEdge.registerMeta.Type": "Type",
+ "basic.elements.SimpleEdge.registerMeta.Ball": "Ball",
+ "basic.elements.SimpleEdge.registerMeta.GradualLength": "Gradual length",
+ "basic.elements.SimpleEdge.registerMeta.BallColor": "Ball color",
+ "basic.elements.SimpleEdge.registerMeta.Repeat": "Repeat",
+ "basic.elements.SimpleEdge.registerMeta.Duration": "Duration",
+ "basic.elements.SimpleNode.OfficialNode": "Official node",
+ "basic.elements.SimpleNode.registerMeta.Size": "Size",
+ "basic.elements.SimpleNode.registerMeta.Color": "Color",
+ "basic.elements.SimpleNode.registerMeta.Text": "Text",
+ "basic.elements.SimpleNode.registerMeta.AdvancedConfiguration": "Advanced Configuration",
+ "basic.elements.SimpleNode.registerMeta.Icon": "Icon",
+ "basic.elements.SimpleNode.registerMeta.Implicit": "Implicit",
+ "basic.elements.SimpleNode.registerMeta.Type": "Type",
+ "basic.elements.SimpleNode.registerMeta.FontIcon": "Font icon",
+ "basic.elements.SimpleNode.registerMeta.Node": "Node",
+ "basic.elements.SimpleNode.registerMeta.Transparency": "Transparency",
+ "basic.elements.SimpleNode.registerMeta.Switch": "Switch",
+ "basic.elements.SimpleNode.registerMeta.Location": "Location",
+ "basic.elements.SimpleNode.registerMeta.Top": "Top",
+ "basic.elements.SimpleNode.registerMeta.Bottom": "Bottom",
+ "basic.elements.SimpleNode.registerMeta.LeftSide": "Left side",
+ "basic.elements.SimpleNode.registerMeta.RightSide": "Right side",
+ "basic.elements.SimpleNode.registerMeta.Middle": "Middle",
+ "basic.elements.SimpleNode.registerMeta.Logo": "Logo",
+ "basic.elements.SimpleNode.registerMeta.FieldMapping": "Field Mapping",
+ "basic.layouts.Circular.CircularLayout": "Circular layout",
+ "basic.layouts.Circular.registerMeta.Radius": "Radius",
+ "basic.layouts.Circular.registerMeta.NumberOfSegments": "Number of segments",
+ "basic.layouts.Circular.registerMeta.Sort": "Sort",
+ "basic.layouts.Circular.registerMeta.PreventOverlap": "Prevent overlap",
+ "basic.layouts.ClusteringDagre.ClusteringHierarchicalLayout": "Clustering hierarchical layout",
+ "basic.layouts.ClusteringDagre.ClusteringDirectedHierarchicalLayout": "Clustering directed hierarchical layout",
+ "basic.layouts.ClusteringDagre.registerMeta.LayoutDirection": "Layout direction",
+ "basic.layouts.ClusteringDagre.registerMeta.TopDown": "Top-down",
+ "basic.layouts.ClusteringDagre.registerMeta.BottomUp": "Bottom-up",
+ "basic.layouts.ClusteringDagre.registerMeta.FromLeftToRight": "From left to right",
+ "basic.layouts.ClusteringDagre.registerMeta.FromRightToLeft": "From right to left",
+ "basic.layouts.ClusteringDagre.registerMeta.HierarchicalBasis": "Hierarchical basis",
+ "basic.layouts.ClusteringDagre.registerMeta.MaximumNumberOfNodesAt": "Maximum number of nodes at each layer",
+ "basic.layouts.ClusteringDagre.registerMeta.SpacingBetweenMultipleLinesAfter": "Spacing between multiple lines after line breaks of nodes at the same layer",
+ "basic.layouts.ClusteringDagre.registerMeta.Alignment": "Alignment",
+ "basic.layouts.ClusteringDagre.registerMeta.NodeSpacing": "Node spacing",
+ "basic.layouts.ClusteringDagre.registerMeta.LayerSpacing": "Layer spacing",
+ "basic.layouts.Concentric.ConcentricCircleLayout": "Concentric circle layout",
+ "basic.layouts.Concentric.AccordingToTheNodeDegree": "According to the node degree, it can be arranged in concentric circles.",
+ "basic.layouts.Concentric.registerMeta.Sort": "Sort",
+ "basic.layouts.Concentric.registerMeta.NodeSize": "Node size",
+ "basic.layouts.Concentric.registerMeta.MinimumSpacing": "Minimum spacing",
+ "basic.layouts.Concentric.registerMeta.EqualSpacing": "Equal Spacing",
+ "basic.layouts.Concentric.registerMeta.PreventOverlap": "Prevent overlap",
+ "basic.layouts.Dagre.DirectedLayering": "Directed layering",
+ "basic.layouts.Dagre.NodesAreArrangedAccordingTo": "Nodes are arranged according to the flow direction of edges.",
+ "basic.layouts.Dagre.registerMeta.LayoutDirection": "Layout direction",
+ "basic.layouts.Dagre.registerMeta.TopDown": "Top-down",
+ "basic.layouts.Dagre.registerMeta.BottomUp": "Bottom-up",
+ "basic.layouts.Dagre.registerMeta.FromLeftToRight": "From left to right",
+ "basic.layouts.Dagre.registerMeta.FromRightToLeft": "From right to left",
+ "basic.layouts.Dagre.registerMeta.Alignment": "Alignment",
+ "basic.layouts.Dagre.registerMeta.NodeSpacing": "Node spacing",
+ "basic.layouts.Dagre.registerMeta.LayerSpacing": "Layer spacing",
+ "basic.layouts.Force2.FastForceGuide": "Fast Force guide",
+ "basic.layouts.Force2.ProgressiveForceDirectedLayoutFor": "Progressive Force-directed layout for dynamic layout",
+ "basic.layouts.Force2.registerMeta.GridLayout": "Grid Layout",
+ "basic.layouts.Force2.registerMeta.CircularLayout": "Circular layout",
+ "basic.layouts.Force2.registerMeta.ConcentricCircleLayout": "Concentric circle layout",
+ "basic.layouts.Force2.registerMeta.DirectedLayering": "Directed layering",
+ "basic.layouts.Force2.registerMeta.OriginalValue": "Original value",
+ "basic.layouts.Force2.registerMeta.Square": "Square",
+ "basic.layouts.Force2.registerMeta.Square.1": "Square",
+ "basic.layouts.Force2.registerMeta.Reciprocal": "Reciprocal",
+ "basic.layouts.Force2.registerMeta.EdgeGravityCoefficient": "Edge gravity coefficient",
+ "basic.layouts.Force2.registerMeta.RepulsionCoefficientBetweenNodes": "Repulsion coefficient between nodes",
+ "basic.layouts.Force2.registerMeta.DampingCoefficient": "Damping coefficient",
+ "basic.layouts.Force2.registerMeta.EnableAnimation": "Enable animation",
+ "basic.layouts.Force2.registerMeta.FrontLayout": "Front Layout",
+ "basic.layouts.Force2.registerMeta.PresetLayoutWidth": "Preset layout width",
+ "basic.layouts.Force2.registerMeta.PresetLayoutHeight": "Preset layout height",
+ "basic.layouts.Force2.registerMeta.MinimumLimitDegree": "Minimum limit degree",
+ "basic.layouts.Force2.registerMeta.MaximumLimitSideLength": "Maximum limit side length",
+ "basic.layouts.Force2.registerMeta.DefaultSideLength": "Default side length",
+ "basic.layouts.Force2.registerMeta.NodeClusteringStrength": "Node clustering strength",
+ "basic.layouts.Force2.registerMeta.MinimumDistanceOfIterationStop": "Minimum distance of iteration stop",
+ "basic.layouts.Force2.registerMeta.IterationStopJudgmentBasis": "Iteration stop judgment basis",
+ "basic.layouts.Force2.registerMeta.Average": "Average",
+ "basic.layouts.Force2.registerMeta.MinimumValue": "Minimum value",
+ "basic.layouts.Force2.registerMeta.Maximum": "Maximum",
+ "basic.layouts.Force2.registerMeta.InitialVelocity": "Initial velocity",
+ "basic.layouts.Force2.registerMeta.LeafNode": "Leaf node",
+ "basic.layouts.Force2.registerMeta.IsolatedNode": "Isolated node",
+ "basic.layouts.Force2.registerMeta.OtherNodes": "Other nodes",
+ "basic.layouts.Force2.registerMeta.AdvancedWeightConfiguration": "Advanced weight configuration",
+ "basic.layouts.Force2.registerMeta.GravityWeightAssociation": "Gravity weight Association",
+ "basic.layouts.Force2.registerMeta.GravityWeightAssociation.1": "Gravity weight Association",
+ "basic.layouts.Force2.registerMeta.RepulsionAssociationType": "Repulsion Association type",
+ "basic.layouts.Force2.registerMeta.NodeProperties": "Node properties",
+ "basic.layouts.Force2.registerMeta.AddAndAddRelatedEdge": "Add and add related edge attributes",
+ "basic.layouts.Force2.registerMeta.RepulsionWeightAssociation": "Repulsion weight Association",
+ "basic.layouts.Force2.registerMeta.RepulsiveWeightAssociation": "Repulsive weight Association",
+ "basic.layouts.Force2.registerMeta.EnableDirectionalForce": "Enable directional force",
+ "basic.layouts.Force2.registerMeta.CapitalAssociationElements": "Capital Association elements",
+ "basic.layouts.Force2.registerMeta.EnterWeightField": "Enter weight field",
+ "basic.layouts.Force2.registerMeta.OutputWeightField": "Output weight field",
+ "basic.layouts.Force2.registerMeta.RelatedEdgeProperties": "Related edge properties",
+ "basic.layouts.Force2.registerMeta.LogMapping": "log mapping",
+ "basic.layouts.Force2.registerMeta.MultipleMapping": "Multiple mapping",
+ "basic.layouts.FundForce.FinancialGuidance": "Financial Guidance",
+ "basic.layouts.FundForce.VerticalForceGuideLayoutBased": "Vertical Force guide layout based on node field size",
+ "basic.layouts.FundForce.registerMeta.InflowFunds": "Inflow funds",
+ "basic.layouts.FundForce.registerMeta.OutflowFunds": "Outflow funds",
+ "basic.layouts.FundForce.registerMeta.LogMapping": "log mapping",
+ "basic.layouts.FundForce.registerMeta.MultipleMapping": "Multiple mapping",
+ "basic.layouts.GraphinForce.ProgressiveForceGuide": "Progressive Force guide",
+ "basic.layouts.GraphinForce.ProgressiveForceDirectedLayoutFor": "Progressive Force-directed layout for dynamic layout",
+ "basic.layouts.GraphinForce.registerMeta.GridLayout": "Grid Layout",
+ "basic.layouts.GraphinForce.registerMeta.CircularLayout": "Circular layout",
+ "basic.layouts.GraphinForce.registerMeta.ConcentricCircleLayout": "Concentric circle layout",
+ "basic.layouts.GraphinForce.registerMeta.DirectedLayering": "Directed layering",
+ "basic.layouts.GraphinForce.registerMeta.SpringStiffnessCoefficient": "Spring stiffness coefficient",
+ "basic.layouts.GraphinForce.registerMeta.CullenConstantKeRepulsion": "Cullen constant Ke (repulsion)",
+ "basic.layouts.GraphinForce.registerMeta.DampingCoefficient": "Damping coefficient",
+ "basic.layouts.GraphinForce.registerMeta.EnableAnimation": "Enable animation",
+ "basic.layouts.GraphinForce.registerMeta.FrontLayout": "Front Layout",
+ "basic.layouts.GraphinForce.registerMeta.MinimumLimitDegree": "Minimum limit degree",
+ "basic.layouts.GraphinForce.registerMeta.MaximumLimitSideLength": "Maximum limit side length",
+ "basic.layouts.GraphinForce.registerMeta.DefaultSideLength": "Default side length",
+ "basic.layouts.GraphinForce.registerMeta.LeafNode": "Leaf node",
+ "basic.layouts.GraphinForce.registerMeta.IsolatedNode": "Isolated node",
+ "basic.layouts.GraphinForce.registerMeta.OtherNodes": "Other nodes",
+ "basic.layouts.Grid.GridLayout": "Grid Layout",
+ "basic.layouts.Grid.NodesAreArrangedByGrid": "Nodes are arranged by grid",
+ "basic.layouts.Grid.registerMeta.NumberOfGridRows": "Number of grid rows",
+ "basic.layouts.Grid.registerMeta.NumberOfGridColumns": "Number of grid columns",
+ "basic.layouts.Grid.registerMeta.Sort": "Sort",
+ "basic.layouts.Radial.RadialLayout": "Radial layout",
+ "basic.layouts.Radial.RadiationLayout": "Radiation layout",
+ "basic.layouts.Radial.registerMeta.LevelDistance": "Level Distance",
+ "basic.layouts.Radial.registerMeta.SideLength": "Side length",
+ "basic.layouts.Radial.registerMeta.NodeSize": "Node size",
+ "basic.layouts.Radial.registerMeta.CentralNode": "Central Node",
+ "basic.layouts.Radial.registerMeta.NodeSpacing": "Node spacing",
+ "basic.layouts.Radial.registerMeta.PreventOverlap": "Prevent overlap",
+ "basic.layouts.Radial.registerMeta.StrictRadiation": "Strict radiation",
+ "basic.layouts.Random.RandomLayout": "Random layout",
+ "basic.src.services.NeighborsQuery.NeighborQuery": "Neighbor query",
+ "basic.src.services.NeighborsQuery.ExportInterfaceReqneighborsqueryTheDiffused": "\nexport interface ReqNeighborsQuery {\n// The diffused node, which is an array of node IDs.\nids: string[];\n// All information of the diffused node\nnodes: any[];\n// The degree of diffusion.\nsep: number;\n}\n",
+ "basic.src.services.NeighborsQuery.ExportInterfaceGigraphdataNodesNode": "\nexport interface GIGraphData {\nnodes: {\n// Node ID\nid: string;\n// The enumeration value of the node type. Property Graph is also called node.label\nnodeType: string;\n// Pay attention to the need to level up business data. Currently, nesting is not supported.\ndata: {};\n// Which field in the business data is used to map the node type\nnodeTypeKeyFromProperties? : string;\n}[];\nedges: {\n// Edge ID\nid: string;\n// The ID of the source node associated with the edge.\nsource: string;\n// The ID of the target node associated with the edge.\ntarget: string;\n// The enumerated value of the edge type. Property Graph is also called edge.label\nedgeType: string;\n// Pay attention to the need to level up business data. Currently, nesting is not supported.\ndata: {};\n// Which field in the business data is used to map the edge type\nedgeTypeKeyFromProperties? : string;\n}[];\n}\n",
+ "basic.src.services.PropertiesPanel.QueryAttributeDetails": "Query attribute details",
+ "basic.src.services.PropertiesPanel.ExportInterfaceReqpropertiespanelDetailsOf": "\nexport interface ReqPropertiesPanel {\n/**Details of nodes or edges */\ndata: any;\n}\n",
+ "basic.src.services.PropertiesPanel.ExportInterfaceRespropertiespanelDetailsOf": "\nexport interface ResPropertiesPanel {\n/**Details of nodes or edges */\n[key: string]: any;\n}\n",
+ "basic.src.services.WatermarkService.WatermarkService": "Watermark service",
+ "basic.src.services.WatermarkService.ExportInterfaceWatermarkresparamsSaveSuccessfully": "\nexport interface WatermarkResParams {\n/**Save successfully */\nsuccess: boolean;\n/**Message prompt * */\nmsg: string;\n/**Return data */\ndata: {\n/**Watermark text content */\ncontent?: string[] | string;\n/**Watermark Image Source\n* Note: priority image> content. When an image watermark is used and the image load is abnormal, content is used */\nimage?: string;\n}\n}\n",
+ "basic.src.services.WatermarkService.ThisIsALineOf": "This is a line of Watermark",
+ "basic.src.services.WatermarkService.TheWatermarkIsObtained": "The watermark is obtained!",
+ "basic.src.services.TheLocalFileImportService": "The local file import service provided by G6VP can store data in browser IndexDB or cloud servers depending on the deployment environment.",
+ "basic.src.templates.Query.UpperAndLowerLayout": "Upper and Lower layout",
+ "basic.src.templates.Query.GremlinQuery": "Gremlin query",
+ "basic.src.templates.Query.TableMode": "Table mode",
+ "basic.src.templates.Query.ShowNodesAndEdgesIn": "Show nodes and edges in the canvas as tables",
+ "basic.src.templates.Query.CodeMode": "Code mode",
+ "basic.src.templates.Query.ShowDataInCode": "Show data in code",
+ "basic.src.templates.Query.Sidebar": "Sidebar",
+ "basic.src.templates.Query.PathStructureAnalysis": "Path structure analysis",
+ "basic.src.templates.Query.AutomaticallyParseAllPathsOf": "Automatically parse all paths of the canvas for aggregation analysis.",
+ "basic.src.templates.Query.InformationDetection": "Information Detection",
+ "basic.src.templates.Query.DetectIsolatedPointsRingsEtc": "Detect isolated points, rings, etc. in the canvas",
+ "basic.src.templates.Query.NodeImportance": "Node importance",
+ "basic.src.templates.Query.CommunityDiscovery": "Community discovery",
+ "basic.src.templates.Query.PatternMatching": "Pattern matching",
+ "basic.src.templates.Query.CypherStatementQuery": "Cypher statement query",
+ "basic.src.templates.Query.QueryTemplate": "Query Template",
+ "basic.src.templates.Query.TheTemplateWithTheQuery": "The template with the query statement as the main body contains {activeAssetsKeysComponentsLength} ANALYSIS Assets. The page layout is distributed up and down. The top is integrated with \"Gremlin\" or \"Cypher\" query statements, it is commonly used in database query scenarios.",
+ "basic.src.templates.Simple.SegmentLayout": "Segment layout",
+ "basic.src.templates.Simple.SideContainer": "Side Container",
+ "basic.src.templates.Simple.MinimalistTemplate": "Minimalist template",
+ "basic.src.templates.Simple.ThisTemplateIsAnOfficial": "This template is an official minimalist template that contains {activeAssetsKeysComponentsLength} analysis assets and provides common interactive analysis, filter views, and other functions. On the page layout, canvas Display space is large, providing immersive analysis experience"
+}
diff --git a/packages/gi-assets-basic/src/i18n/strings/index.d.ts b/packages/gi-assets-basic/src/i18n/strings/index.d.ts
new file mode 100644
index 000000000..6a4d9a1eb
--- /dev/null
+++ b/packages/gi-assets-basic/src/i18n/strings/index.d.ts
@@ -0,0 +1,2 @@
+declare const locale: any;
+export default locale;
diff --git a/packages/gi-assets-basic/src/i18n/strings/index.js b/packages/gi-assets-basic/src/i18n/strings/index.js
new file mode 100644
index 000000000..9b61c93e1
--- /dev/null
+++ b/packages/gi-assets-basic/src/i18n/strings/index.js
@@ -0,0 +1,4 @@
+module.exports = {
+ 'en-US': require('./en-US.json'),
+ 'zh-CN': require('./zh-CN.json'),
+};
diff --git a/packages/gi-assets-basic/src/i18n/strings/zh-CN.json b/packages/gi-assets-basic/src/i18n/strings/zh-CN.json
new file mode 100644
index 000000000..f7b2718e6
--- /dev/null
+++ b/packages/gi-assets-basic/src/i18n/strings/zh-CN.json
@@ -0,0 +1,647 @@
+{
+ "basic.components.ActivateRelations.info.ElementHighlighting": "元素高亮",
+ "basic.components.ActivateRelations.info.ActivateAssociatedNodesAndEdges": "通过交互,激活相关联的节点与边",
+ "basic.components.ActivateRelations.info.YouCanClickNodesTo": "支持点击节点,高亮展示关联节点和边",
+ "basic.components.ActivateRelations.info.YouCanConfigureNodesOr": "支持配置节点或者边,悬停高亮效果",
+ "basic.components.ActivateRelations.info.YouCanConfigureTheHighlighting": "支持配置节点「上游N度」「下游M度」的高亮效果",
+ "basic.components.ActivateRelations.registerMeta.NodeHover": "节点悬停",
+ "basic.components.ActivateRelations.registerMeta.EdgeHover": "边悬停",
+ "basic.components.ActivateRelations.registerMeta.EnableAssociation": "启用关联",
+ "basic.components.ActivateRelations.registerMeta.TriggerMode": "触发方式",
+ "basic.components.ActivateRelations.registerMeta.MouseClick": "鼠标点击",
+ "basic.components.ActivateRelations.registerMeta.MoveTheMouseIn": "鼠标移入",
+ "basic.components.ActivateRelations.registerMeta.UpstreamDegree": "上游度数",
+ "basic.components.ActivateRelations.registerMeta.DownstreamDegrees": "下游度数",
+ "basic.components.ActivateRelations.registerMeta.MultipleSelectionsAllowed": "允许多选",
+ "basic.components.ActivateRelations.registerMeta.MultipleKeyCombinationsPressThe": "多选组合键, 按下键盘输入组合键,支持Alt, Control, Shift, Meta",
+ "basic.components.CanvasSetting.CanvasSettings": "画布设置",
+ "basic.components.CanvasSetting.SetTheBackgroundOfThe": "设置画布的背景,缩放,移动等交互",
+ "basic.components.CanvasSetting.SelectCanvasNodeOrEdge": "支持框选「画布」节点或者边",
+ "basic.components.CanvasSetting.SupportsAutomaticAdaptiveCenteringBy": "支持双击「画布」自动自适应居中",
+ "basic.components.CanvasSetting.YouCanConfigureTheBackground": "支持配置「画布」的背景色",
+ "basic.components.CanvasSetting.SupportsScalingAndTranslationInteraction": "支持配置「画布」的缩放,平移交互",
+ "basic.components.CanvasSetting.registerMeta.CanvasStyle": "画布样式",
+ "basic.components.CanvasSetting.registerMeta.BackgroundColor": "背景颜色",
+ "basic.components.CanvasSetting.registerMeta.BackgroundImage": "背景图片",
+ "basic.components.CanvasSetting.registerMeta.DragCanvas": "拖拽画布",
+ "basic.components.CanvasSetting.registerMeta.DragDisabled": "拖拽禁用",
+ "basic.components.CanvasSetting.registerMeta.DragDirection": "拖拽方向",
+ "basic.components.CanvasSetting.registerMeta.Freedom": "自由",
+ "basic.components.CanvasSetting.registerMeta.XDirection": "X方向",
+ "basic.components.CanvasSetting.registerMeta.YDirection": "Y方向",
+ "basic.components.CanvasSetting.registerMeta.DragOptimization": "拖拽优化",
+ "basic.components.CanvasSetting.registerMeta.ZoomCanvas": "缩放画布",
+ "basic.components.CanvasSetting.registerMeta.ZoomDisabled": "缩放禁用",
+ "basic.components.CanvasSetting.registerMeta.ZoomOptimization": "缩放优化",
+ "basic.components.CanvasSetting.registerMeta.ClickTheCanvasToClear": "点击画布,清空状态",
+ "basic.components.CanvasSetting.registerMeta.DoubleClickTheCanvasTo": "双击画布,自适应",
+ "basic.ChartAnalysis.Charts.LineChart": "折线图",
+ "basic.ChartAnalysis.Charts.Histogram": "柱状图",
+ "basic.ChartAnalysis.Charts.XAxis": "X轴:",
+ "basic.ChartAnalysis.Charts.XAxisField": "X轴字段",
+ "basic.ChartAnalysis.Charts.YAxis": "Y轴:",
+ "basic.ChartAnalysis.Charts.YAxisField": "Y轴字段",
+ "basic.components.ChartAnalysis.info.ChartAnalysis": "图表分析",
+ "basic.components.ChartAnalysis.info.TheDataInTheGraph": "图中数据通过统计图表展示分析",
+ "basic.components.ChartAnalysis.registerMeta.ChartTitle": "图表标题",
+ "basic.components.ChartAnalysis.registerMeta.UnnamedChart": "未命名图表",
+ "basic.components.ChartAnalysis.registerMeta.ChartType": "图表类型",
+ "basic.components.ChartAnalysis.registerMeta.Histogram": "柱状图",
+ "basic.components.ChartAnalysis.registerMeta.LineChart": "折线图",
+ "basic.components.ChartAnalysis.registerMeta.InteractionMode": "交互模式",
+ "basic.components.ChartAnalysis.registerMeta.Highlight": "高亮",
+ "basic.components.ChartAnalysis.registerMeta.Filtering": "过滤",
+ "basic.components.ChartAnalysis.registerMeta.ChartHeight": "图表高度",
+ "basic.components.ChartAnalysis.registerMeta.DataType": "数据类型",
+ "basic.components.ChartAnalysis.registerMeta.NodeData": "节点数据",
+ "basic.components.ChartAnalysis.registerMeta.EdgeData": "边数据",
+ "basic.components.ChartAnalysis.registerMeta.XAxisField": "X轴字段",
+ "basic.components.ChartAnalysis.registerMeta.YAxisField": "Y轴字段",
+ "basic.components.ClearCanvas.info.ClearCanvas": "清空画布",
+ "basic.components.ClearCanvas.info.ClearEverythingOnTheCanvas": "清空画布上的所有内容",
+ "basic.components.CommonNeighbor.Component.NoCommonNeighborsFound": "没有发现共同邻居!",
+ "basic.components.CommonNeighbor.Component.CommonNeighbor": "共同邻居",
+ "basic.components.CommonNeighbor.Component.NoRelatedNodeFoundOn": "当前画布未找到相关节点",
+ "basic.components.CommonNeighbor.Component.CommonNeighborHopJump": "共同邻居({hop}跳)",
+ "basic.components.CommonNeighbor.info.CommonNeighbor": "共同邻居",
+ "basic.components.CommonNeighbor.info.HighlightTheCommonNeighborsOf": "高亮展示选中节点的共同邻居",
+ "basic.components.CommonNeighbor.registerMeta.NumberOfHops": "跳数",
+ "basic.components.ContentContainer.info.ContentContainer": "内容容器",
+ "basic.components.ContentContainer.info.CombinedContentContainer": "组合内容容器",
+ "basic.components.ContentContainer.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.ContextMenu.info.RightClickMenu": "右键菜单",
+ "basic.components.ContextMenu.info.RightClickTheMenuContainer": "鼠标右键即可出现菜单容器",
+ "basic.components.ContextMenu.registerMeta.IntegratedComponents": "可集成组件",
+ "basic.components.Copyright.Component.CopyrightImage": "版权图片",
+ "basic.components.Copyright.info.Copyright": "版权",
+ "basic.components.Copyright.info.ShowApplicationCopyrightInformationOn": "在画布上显示应用版权信息",
+ "basic.components.Copyright.registerMeta.CopyrightImage": "版权图片",
+ "basic.components.Copyright.registerMeta.Width": "宽度",
+ "basic.components.Copyright.registerMeta.Height": "高度",
+ "basic.components.Copyright.registerMeta.ComponentLocation": "组件位置",
+ "basic.components.Copyright.registerMeta.Offset": "偏移量",
+ "basic.components.CreateCombo.info.CreateCombo": "创建Combo",
+ "basic.components.CreateCombo.info.ByCreatingAComboElement": "通过创建Combo元素,作为画布上的融合元素使用",
+ "basic.components.CreateCombo.registerMeta.CreateCombo": "创建Combo",
+ "basic.components.DownLoad.info.Download": "下载",
+ "basic.components.DownLoad.info.ClickToDownloadTheCanvas": "点击下载画布图片",
+ "basic.components.Export.info.Export": "导出",
+ "basic.components.Export.info.ExportCsvPngJsonData": "导出CSV,PNG,JSON数据",
+ "basic.FilterPanel.Charts.HistogramOptions.MinimumRange": "范围最小值",
+ "basic.FilterPanel.Charts.HistogramOptions.MaximumRange": "范围最大值",
+ "basic.FilterPanel.Charts.HistogramOptions.BinValue": "分箱值",
+ "basic.FilterPanel.Charts.HistogramOptions.SaveTheSubBoxConfiguration": "保存分箱配置",
+ "basic.FilterPanel.Charts.HistogramOptions.SetTheRuleOfGrouping": "设置分箱规则",
+ "basic.FilterPanel.Charts.LineChart.SelectElementtypeAttribute": "选择{elementType}属性",
+ "basic.components.FilterPanel.Component.Filter": "筛选",
+ "basic.components.FilterPanel.Component.AddFilter": "增加筛选器",
+ "basic.components.FilterPanel.Component.SmartRecommendation": "智能推荐",
+ "basic.components.FilterPanel.FilterSelection.SelectElementAttributes": "选择元素属性",
+ "basic.components.FilterPanel.FilterSelection.Node": "节点",
+ "basic.components.FilterPanel.FilterSelection.Edge": "边",
+ "basic.components.FilterPanel.FilterSelection.SelectAFilterValue": "选择筛选值",
+ "basic.components.FilterPanel.FilterSelection.SelectAValidField": "请选择合法字段",
+ "basic.components.FilterPanel.RecommendFilter.Node": "节点",
+ "basic.components.FilterPanel.RecommendFilter.Edge": "边",
+ "basic.components.FilterPanel.RecommendFilter.Properties": "属性:",
+ "basic.components.FilterPanel.RecommendFilter.ManyValuesOfThisAttribute": "该属性大多值具有相同的出现次数,但有些值有出现次数大于平均出现次数(红色),值得关注",
+ "basic.components.FilterPanel.RecommendFilter.SomeValuesOfThisAttribute": "该属性的某些值出现概率极低(红色),很可能含有更大信息量,值得关注",
+ "basic.components.FilterPanel.info.FilterPanel": "筛选面板",
+ "basic.components.FilterPanel.info.FilterCanvasInformationThroughAttributes": "通过属性筛选画布信息,可自定义",
+ "basic.FilterPanel.locales.AddFilter": "增加筛选器",
+ "basic.FilterPanel.locales.SelectElementAttributes": "选择元素属性",
+ "basic.FilterPanel.locales.SelectAFilterValue": "选择筛选值",
+ "basic.FilterPanel.locales.SelectAValidField": "请选择合法字段",
+ "basic.FilterPanel.locales.Node": "节点",
+ "basic.FilterPanel.locales.Edge": "边",
+ "basic.FilterPanel.locales.SmartRecommendation": "智能推荐",
+ "basic.FilterPanel.locales.FilterPanel": "筛选面板",
+ "basic.FilterPanel.locales.DefaultFilterField": "默认筛选字段",
+ "basic.components.FilterPanel.registerMeta.DefaultFilterField": "默认筛选字段",
+ "basic.components.FilterPanel.registerMeta.SmartRecommendation": "智能推荐",
+ "basic.components.FilterPanel.registerMeta.FilterIsolatedNodes": "过滤孤立节点",
+ "basic.components.FilterPanel.registerMeta.HighlightMode": "高亮模式",
+ "basic.components.FilterPanel.registerMeta.FilteringLogic": "筛选逻辑",
+ "basic.components.FilterPanel.registerMeta.SubBoxSetting": "分箱设置",
+ "basic.components.FilterPanel.registerMeta.CustomSubBox": "自定义分箱",
+ "basic.components.FilterPanel.registerMeta.IntervalMinimum": "区间最小值",
+ "basic.components.FilterPanel.registerMeta.IntervalMaximum": "区间最大值",
+ "basic.components.FilterPanel.registerMeta.BinValue": "分箱值",
+ "basic.components.FitCenter.info.ViewCenter": "视图居中",
+ "basic.components.FitCenter.info.AdjustTheCanvasToCenter": "调整画布,使其居中对齐",
+ "basic.components.FitCenterView.info.AdaptiveCentering": "自适应居中",
+ "basic.components.FitCenterView.info.AdjustTheCanvasToDisplay": "调整画布,使其自适应居中展示",
+ "basic.components.FitView.info.Adaptive": "自适应",
+ "basic.components.FitView.info.AdjustTheCanvasToAdapt": "调整画布,使其自适应 1:1 展示",
+ "basic.components.ForceSimulation.Component.ThisFunctionCanOnlyBe": "该功能仅在力导布局下才可使用",
+ "basic.components.ForceSimulation.Component.RestartTheForceGuideLayout": "重启力导布局,点击画布可以暂停力导",
+ "basic.components.ForceSimulation.info.ForceGuideController": "力导控制器",
+ "basic.components.ForceSimulation.info.YouCanStopOrRestart": "可以停止/重启力导布局",
+ "basic.components.ForceSimulation.registerMeta.FixedDraggedNode": "固定拖拽后的节点",
+ "basic.components.ForceSimulation.registerMeta.FixedMass": "固定的质量",
+ "basic.components.GrailLayout.HolyGrailLayout": "圣杯布局",
+ "basic.components.GrailLayout.SupportsAssetLayoutInThe": "支持左、右、下三个方向资产布局",
+ "basic.components.GrailLayout.registerMeta.LeftContainer": "左侧容器",
+ "basic.components.GrailLayout.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheLeftContainer": "默认展开左侧容器",
+ "basic.components.GrailLayout.registerMeta.LeftWidth": "左侧宽度",
+ "basic.components.GrailLayout.registerMeta.RightContainer": "右侧容器",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheContainerOn": "默认展开右侧容器",
+ "basic.components.GrailLayout.registerMeta.RightWidth": "右侧宽度",
+ "basic.components.GrailLayout.registerMeta.BottomContainer": "底部容器",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheBottomContainer": "默认展开底部容器",
+ "basic.components.GrailLayout.registerMeta.BottomHeight": "底部高度",
+ "basic.components.GrailLayout.registerMeta.TopContainer": "顶部容器",
+ "basic.components.GrailLayout.registerMeta.ByDefaultTheTopContainer": "默认展开顶部容器",
+ "basic.components.GrailLayout.registerMeta.TopHeight": "顶部高度",
+ "basic.components.GrailLayout.useComponents.NoAssetsAreAvailableIn": "当前容器中无可用资产,请在配置面板中集成",
+ "basic.components.GroupBar.info.GroupOperationColumn": "分组操作栏",
+ "basic.components.GroupBar.info.GroupOperationsColumnGroupAssets": "分组操作栏,分组形式集成资产",
+ "basic.components.GroupBar.registerMeta.SplitLineConfiguration": "分割线配置",
+ "basic.components.GroupBar.registerMeta.Location": "位置",
+ "basic.components.GroupBar.registerMeta.Start": "开始",
+ "basic.components.GroupBar.registerMeta.End": "结尾",
+ "basic.components.GroupBar.registerMeta.StartMargin": "起始边距",
+ "basic.components.GroupBar.registerMeta.EndMargin": "结束边距",
+ "basic.components.GroupBar.registerMeta.Color": "颜色",
+ "basic.components.GroupBar.registerMeta.LineWidth": "线宽",
+ "basic.components.GroupBar.registerMeta.AddSplitLine": "添加分割线",
+ "basic.components.GroupBar.registerMeta.Grouping": "分组",
+ "basic.components.GroupBar.registerMeta.AddGroup": "添加分组",
+ "basic.components.GroupBar.registerMeta.ClusterSetting": "分组配置",
+ "basic.components.GroupBar.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.GroupBar.registerMeta.Width": "宽度",
+ "basic.components.GroupBar.registerMeta.StringOrNumericType": "字符串或数字类型",
+ "basic.components.GroupBar.registerMeta.Height": "高度",
+ "basic.components.GroupBar.registerMeta.BackgroundColor": "背景色",
+ "basic.components.GroupBar.registerMeta.TextColor": "文字颜色",
+ "basic.components.GroupBar.registerMeta.Alignment": "对齐方式",
+ "basic.components.GroupBar.registerMeta.LeftAlignment": "左对齐",
+ "basic.components.GroupBar.registerMeta.CenterAlignment": "居中对齐",
+ "basic.components.GroupBar.registerMeta.RightAlignment": "右对齐",
+ "basic.components.GroupBar.registerMeta.Suspension": "悬浮",
+ "basic.components.GroupBar.registerMeta.Top": "顶部",
+ "basic.components.GroupBar.registerMeta.Bottom": "底部",
+ "basic.components.GroupBar.registerMeta.LeftSide": "左侧",
+ "basic.components.GroupBar.registerMeta.RightSide": "右侧",
+ "basic.components.GroupBar.registerMeta.Size": "大小",
+ "basic.components.Initializer.Component.CanvasRenderingFailed": "画布渲染失败",
+ "basic.components.Initializer.Component.TheServiceidServiceIsMissing": "缺少 {serviceId} 服务,请检查相关资产是否加载成功",
+ "basic.components.Initializer.Component.FailedToObtainGraphModel": "图模型获取失败",
+ "basic.components.Initializer.Component.TheAmountOfDataLoaded": "加载的数据量过大",
+ "basic.components.Initializer.Component.WeRecommendThatYouAggregate": "建议聚合数据,默认切换到网格布局。您也可以在「资产中心」中加载「大图组件」启用 3D 渲染",
+ "basic.components.Initializer.info.Initializer": "初始化器",
+ "basic.components.Initializer.info.RequiredInitializeQueryGraphData": "必选!初始化查询图数据与图模型",
+ "basic.components.Initializer.registerMeta.InitializeAQuery": "初始化查询",
+ "basic.components.Initializer.registerMeta.QueryGraphModel": "查询图模型",
+ "basic.components.Initializer.registerMeta.DefaultStartup": "默认启动",
+ "basic.components.Initializer.registerMeta.SummaryEdge": "汇总边",
+ "basic.components.Initializer.registerMeta.EnableFieldMapping": "开启字段映射",
+ "basic.components.LassoSelect.info.FreeSelection": "自由圈选",
+ "basic.components.LassoSelect.info.YouCanUseTheCable": "可通过拉索工具,自由圈选画布元素",
+ "basic.components.LassoSelect.registerMeta.HoldDownShiftAndClick": "按住Shift,点击画布即可自由圈选",
+ "basic.components.LayoutSwitch.Component.LayoutSwitching": "布局切换",
+ "basic.components.LayoutSwitch.Component.LayoutLayoutpropstype": "布局 {layoutPropsType}",
+ "basic.components.LayoutSwitch.Component.LayoutScheme": "布局方案",
+ "basic.components.LayoutSwitch.info.LayoutSwitching": "布局切换",
+ "basic.components.LayoutSwitch.info.SwitchLayoutWithOneClick": "一键切换布局",
+ "basic.components.LayoutSwitch.registerMeta.SwitchCanvasLayoutWithOne": "一键切换画布布局",
+ "basic.components.Loading.info.LoadAnimation": "加载动画",
+ "basic.components.Loading.info.WhenLoadingDataAsynchronouslyThe": "异步加载数据时,可展示加载动画",
+ "basic.components.MiniMap.SmallMap": "小地图",
+ "basic.components.MiniMap.WhenEnabledInformationCanBe": "启用后,可在小地图上展示信息",
+ "basic.components.NeighborsQuery.Component.TheSpecifiedDiffusionStartNode": "当前画布中未找到指定的扩散起始节点",
+ "basic.components.NeighborsQuery.Component.NeighborQuery": "邻居查询",
+ "basic.components.NeighborsQuery.Component.NeighborQueryOfStartIds": "查询 {startIds} 的邻居",
+ "basic.components.NeighborsQuery.Component.One": "一",
+ "basic.components.NeighborsQuery.Component.Ii": "二",
+ "basic.components.NeighborsQuery.Component.Three": "三",
+ "basic.components.NeighborsQuery.Component.DegreeExtension": "度扩展",
+ "basic.components.NeighborsQuery.Component.ExtendedQuery": "扩展查询",
+ "basic.components.NeighborsQuery.info.NeighborQuery": "邻居查询",
+ "basic.components.NeighborsQuery.info.IntegratedInTheRightClick": "集成在右键菜单中,可查询邻居节点",
+ "basic.components.NeighborsQuery.registerMeta.DataService": "数据服务",
+ "basic.components.NeighborsQuery.registerMeta.QueryableDegrees": "可查询度数",
+ "basic.components.NeighborsQuery.registerMeta.OnceQuery": "一度查询",
+ "basic.components.NeighborsQuery.registerMeta.SecondDegreeQuery": "二度查询",
+ "basic.components.NeighborsQuery.registerMeta.ThreeDegreeQuery": "三度查询",
+ "basic.components.NeighborsQuery.registerMeta.WhetherToFocusOnThe": "是否聚焦到扩散点",
+ "basic.components.NeighborsQuery.registerMeta.LimitedQuantity": "限制数量",
+ "basic.components.NodeLegend.info.NodeLegend": "节点图例",
+ "basic.components.NodeLegend.info.WhenEnabledTheLegendInformation": "启用后可展示节点的图例信息",
+ "basic.components.NodeLegend.registerMeta.MappingField": "映射字段",
+ "basic.components.NodeLegend.registerMeta.FontColor": "字体颜色",
+ "basic.components.NodeLegend.registerMeta.ComponentLocation": "组件位置",
+ "basic.components.NodeLegend.registerMeta.Offset": "偏移量",
+ "basic.components.OperatorBar.ActionBar": "操作栏",
+ "basic.components.OperatorBar.BusinessActionBarWhichCan": "业务操作栏,可集成众多分析组件",
+ "basic.components.OperatorBar.registerMeta.WeRecommendThatYouIntegrate": "(建议集成在工具栏)",
+ "basic.components.OperatorBar.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.OperatorHeader.OperationHeaderBar": "操作头栏",
+ "basic.components.OperatorHeader.registerMeta.Interval": "间隔",
+ "basic.components.OperatorHeader.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.OperatorHeader.registerMeta.LeftComponent": "左侧组件",
+ "basic.components.OperatorHeader.registerMeta.IntermediateComponent": "中间组件",
+ "basic.components.OperatorHeader.registerMeta.RightComponent": "右侧组件",
+ "basic.components.OverView.Component.InOrderToAnalyzeCanvas": "为了画布渲染性能 与 用户高效分析,对超过 {limit} 节点做了展示限制展示,可在属性面板中自定义。您可以通过下方的筛选面板,根据统计分析结果选择展示",
+ "basic.components.OverView.Component.DisplayLimits": "展示限制",
+ "basic.components.OverView.Component.NumberOfLoadedNodes": "载入节点数",
+ "basic.components.OverView.Component.NumberOfLoadedEdges": "载入边数",
+ "basic.components.OverView.Filter.AddFilter": "增加筛选器",
+ "basic.components.OverView.Interpretation.Or": "或",
+ "basic.components.OverView.Interpretation.For": "为",
+ "basic.components.OverView.Interpretation.DataOperations": "数据操作",
+ "basic.components.OverView.Interpretation.DownloadData": "下载数据",
+ "basic.components.OverView.Interpretation.CurrentFilterLogic": "当前筛选逻辑:{filterLogic},筛选条件如下:",
+ "basic.components.OverView.Interpretation.CurrentNode": "当前节点",
+ "basic.components.OverView.Interpretation.CurrentEdge": "当前边",
+ "basic.components.OverView.info.BigPictureOverview": "大图概览",
+ "basic.components.OverView.registerMeta.LimitTheNumberOfDisplays": "限制展示数量(节点)",
+ "basic.components.OverView.registerMeta.FilteringLogic": "筛选逻辑",
+ "basic.components.PathAnalysis.Component.Path": "路径",
+ "basic.components.PathAnalysis.Component.StartPointSourceEndPoint": "起点: {source}, 终点: {target}",
+ "basic.components.PathAnalysis.Component.NoPathThatMeetsThe": "无符合条件的路径",
+ "basic.components.PathAnalysis.Component.InfoYouCanTryTo": "{info},可尝试将“是否有向”设置为“无向”,或改变起点与终点",
+ "basic.components.PathAnalysis.Component.InfoYouCanTryTo.1": "{info},可尝试改变起点与终点",
+ "basic.components.PathAnalysis.Component.StartNode": "起始节点",
+ "basic.components.PathAnalysis.Component.EnterTheStartNodeId": "请填写起点节点ID",
+ "basic.components.PathAnalysis.Component.YouCanClickTheCanvas": "可点选画布节点,快速选择起始节点",
+ "basic.components.PathAnalysis.Component.TargetNode": "目标节点",
+ "basic.components.PathAnalysis.Component.EnterTheEndpointId": "请填写终点节点ID",
+ "basic.components.PathAnalysis.Component.YouCanClickTheCanvas.1": "可点选画布节点,快速选择目标节点",
+ "basic.components.PathAnalysis.Component.IsThereAnyDirection": "是否有向",
+ "basic.components.PathAnalysis.Component.Directed": "有向",
+ "basic.components.PathAnalysis.Component.Undirected": "无向",
+ "basic.components.PathAnalysis.Component.QueryPath": "查询路径",
+ "basic.components.PathAnalysis.Component.PathNumber": "路径{number}",
+ "basic.components.PathAnalysis.FilterRule.AllPaths": "所有路径",
+ "basic.components.PathAnalysis.FilterRule.WeightedShortestPath": "加权最短路径",
+ "basic.components.PathAnalysis.FilterRule.EdgeTypeFiltering": "边类型过滤",
+ "basic.components.PathAnalysis.FilterRule.FilterRules": "过滤规则",
+ "basic.components.PathAnalysis.FilterRule.WeightAttribute": "权重属性",
+ "basic.components.PathAnalysis.FilterRule.EdgeType": "边类型",
+ "basic.components.PathAnalysis.info.PathAnalysis": "路径分析",
+ "basic.components.PathAnalysis.info.SelectAStartPointAnd": "选择起点和终点,即可分析路径",
+ "basic.components.PathAnalysis.registerMeta.TagMapping": "标签映射",
+ "basic.components.PinNodeWithMenu.Component.TheNodeDoesNotExist": "节点不存在",
+ "basic.components.PinNodeWithMenu.Component.FixedNode": "固定节点",
+ "basic.components.PinNodeWithMenu.Component.FixedId": "固定 {id}",
+ "basic.components.PinNodeWithMenu.Component.Unfix": "解除固定",
+ "basic.components.PinNodeWithMenu.FixedNodeMenu": "固定节点(MENU)",
+ "basic.components.PinNodeWithMenu.FixedNodeOftenIntegratedIn": "固定节点,常集成在右键菜单中",
+ "basic.components.Placeholder.Component.TheNodeSizeOfThe": "当前载入图的节点规模已经超出「",
+ "basic.components.Placeholder.Component.RestrictionsWeRecommendThatYou": "」限制,建议您在资产中心中加载「大图概览」资产,筛选子图数据 或 调整限制规模",
+ "basic.components.Placeholder.info.CanvasPlaceholder": "画布占位符",
+ "basic.components.Placeholder.info.ImagePlaceholderWhenCanvasIs": "画布为空时出现的图片占位符",
+ "basic.components.Placeholder.registerMeta.ImageAddress": "图片地址",
+ "basic.components.Placeholder.registerMeta.Text": "文本",
+ "basic.components.Placeholder.registerMeta.StartYourGraphAnalysisApplication": "开始你的图分析应用~",
+ "basic.components.Placeholder.registerMeta.Width": "宽度",
+ "basic.components.PropertiesPanel.PropertiesDetail.MostAttributeValuesOfThe": "属性 “{key}” 的大部分属性值具有相同出现次数,而当前属性值 “{value}” 出现此处大于平均出现次数,值得关注",
+ "basic.PropertiesPanel.Statistic.ChartCard.XAxisField": "X轴字段",
+ "basic.PropertiesPanel.Statistic.ChartCard.YAxisField": "Y轴字段",
+ "basic.components.PropertiesPanel.info.PropertiesPanel": "属性面板",
+ "basic.components.PropertiesPanel.info.ClickANodeOrEdge": "点击节点或边,展示其详情信息",
+ "basic.components.PropertiesPanel.registerMeta.DataService": "数据服务",
+ "basic.components.PropertiesPanel.registerMeta.AttributeRecommendation": "属性推荐",
+ "basic.components.PropertiesPanel.registerMeta.StatisticsAreDisplayedByDefault": "默认展示统计信息",
+ "basic.components.PropertiesPanel.registerMeta.Title": "标题",
+ "basic.components.PropertiesPanel.registerMeta.PropertiesPanel": "属性面板",
+ "basic.components.PropertiesPanel.registerMeta.DisplayOrientation": "展示方位",
+ "basic.components.PropertiesPanel.registerMeta.Left": "左部",
+ "basic.components.PropertiesPanel.registerMeta.Right": "右部",
+ "basic.components.PropertiesPanel.registerMeta.UpperPart": "上部",
+ "basic.components.PropertiesPanel.registerMeta.Bottom": "底部",
+ "basic.components.PropertiesPanel.registerMeta.Width": "宽度",
+ "basic.components.PropertiesPanel.registerMeta.Height": "高度",
+ "basic.components.PropertiesPanel.registerMeta.OffsetDistance": "偏移距离",
+ "basic.components.PropertiesPanel.registerMeta.DrawerAnimation": "抽屉动画",
+ "basic.components.PropertyGraphInitializer.info.AttributeGraphCalculation": "属性图计算",
+ "basic.components.PropertyGraphInitializer.info.AssistOtherAssetsToIntelligently": "辅助其他资产智能分析本地数据的属性图计算",
+ "basic.components.RemoveNodeWithMenu.Component.DeleteANode": "删除节点",
+ "basic.components.RemoveNodeWithMenu.Component.DeleteNodeidslengthNodes": "删除 {nodeIdsLength} 个节点",
+ "basic.components.RemoveNodeWithMenu.Component.TheNodeWithTheSpecified": "当前画布中未找到指定 id 的节点",
+ "basic.components.RemoveNodeWithMenu.info.NodeDeletion": "节点删除",
+ "basic.components.RemoveNodeWithMenu.info.NodeDeletionRightClickMenu": "节点删除-右键菜单集成",
+ "basic.components.Sankey.Component.PleaseSetTheWeightMapping": "请先设置「桑基图」的「权重映射」",
+ "basic.components.Sankey.info.SankeyDiagramAnalysis": "桑基图分析",
+ "basic.components.Sankey.registerMeta.WeightMapping": "权重映射",
+ "basic.components.Save.Component.SavedSuccessfully": "保存成功",
+ "basic.components.Save.Component.AfterSecondsItWillAutomatically": "3秒后将自动跳转到分享的画布页",
+ "basic.components.Save.Component.Name": "名称",
+ "basic.components.Save.Component.TheNameConsistsOfChinese": "名称由中文、英文或数字组成",
+ "basic.components.Save.Component.Description": "描述",
+ "basic.components.Save.Component.DescriptionConsistsOfChineseEnglish": "描述由中文、英文或数字组成",
+ "basic.components.Save.Component.Thumbnail": "缩略图",
+ "basic.components.Save.Component.SaveShare": "保存分享",
+ "basic.components.Save.info.SaveShare": "保存分享",
+ "basic.components.Save.info.SaveTheCanvasAndShare": "保存画布,并分享给其他人",
+ "basic.components.Save.registerMeta.SaveService": "保存服务",
+ "basic.components.SegmentedLayout.info.SegmentLayout": "分段布局",
+ "basic.components.SegmentedLayout.info.SectionalizerLayout": "分段器布局",
+ "basic.components.SegmentedLayout.registerMeta.SideContainer": "侧边容器",
+ "basic.components.SegmentedLayout.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.SegmentedLayout.registerMeta.ContainerWidth": "容器宽度",
+ "basic.components.SegmentedLayout.useComponents.NoAssetsAreAvailableIn": "当前容器中无可用资产,请在配置面板中集成",
+ "basic.components.SelectExchangeMenuItem.Component.InverseNodes": "反选节点",
+ "basic.components.SelectExchangeMenuItem.info.Inverse": "反选",
+ "basic.components.SelectExchangeMenuItem.info.InverseSelectedNodes": "反选已选择节点",
+ "basic.components.SideSelectTabs.info.DropDownNavigationBar": "下拉导航栏",
+ "basic.components.SideSelectTabs.info.SideDropDownNavigationBar": "侧边下拉导航栏,可集成分析组件",
+ "basic.components.SideSelectTabs.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.SideSelectTabs.registerMeta.PlacementOrientation": "放置方位",
+ "basic.components.SideSelectTabs.registerMeta.LowerLeftLeft": "左下 / left",
+ "basic.components.SideTabs.Component.YouCanExpandAndCollapse": "可展开收起导航栏",
+ "basic.components.SideTabs.Sidebar": "侧边栏",
+ "basic.components.SideTabs.CanvasSideNavigationBarWhich": "画布侧边导航栏,可集成分析组件",
+ "basic.components.SideTabs.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.SideTabs.registerMeta.IndependentDom": "独立DOM",
+ "basic.components.SideTabs.registerMeta.NavigationLayout": "导航布局",
+ "basic.components.SideTabs.registerMeta.DefaultExpansion": "默认展开",
+ "basic.components.ToggleClusterWithMenu.Component.FoldUpExpand": "收起/展开",
+ "basic.components.ToggleClusterWithMenu.Component.Fold": "收起",
+ "basic.components.ToggleClusterWithMenu.Component.Expand": "展开",
+ "basic.components.ToggleClusterWithMenu.Component.TheTargetNodeDoesNot": "目标节点不存在",
+ "basic.components.ToggleClusterWithMenu.Component.ExpandANode": "展开节点",
+ "basic.components.ToggleClusterWithMenu.Component.CollapseNode": "收起节点",
+ "basic.components.ToggleClusterWithMenu.ExpandFoldUp": "展开/收起",
+ "basic.components.ToggleClusterWithMenu.IntegrateInTheRightClick": "集成在右键菜单中,展开/收起节点",
+ "basic.components.ToggleClusterWithMenu.registerMeta.ReLayout": "重新布局",
+ "basic.components.ToggleClusterWithMenu.registerMeta.DegreesOfFoldingNodes": "收起节点度数",
+ "basic.components.Toolbar.info.Toolbar": "工具栏",
+ "basic.components.Toolbar.info.CanvasToolbarWhichCanIntegrate": "画布工具栏,可集成画布交互组件",
+ "basic.components.Toolbar.registerMeta.IntegratedComponents": "集成组件",
+ "basic.components.Toolbar.registerMeta.DisplayDirection": "展示方向",
+ "basic.components.Toolbar.registerMeta.ComponentLocation": "组件位置",
+ "basic.components.Toolbar.registerMeta.Offset": "偏移量",
+ "basic.components.Tooltip.info.NodePromptBox": "节点提示框",
+ "basic.components.Tooltip.info.TheHoverNodeShowingIts": "Hover 节点,展示其详细信息",
+ "basic.components.Tooltip.registerMeta.Text": "文本",
+ "basic.components.Tooltip.registerMeta.Location": "位置",
+ "basic.components.Tooltip.registerMeta.LeftSide": "左侧",
+ "basic.components.Tooltip.registerMeta.RightSide": "右侧",
+ "basic.components.Tooltip.registerMeta.UpperSide": "上侧",
+ "basic.components.Tooltip.registerMeta.LowerSide": "下侧",
+ "basic.components.Tooltip.registerMeta.Width": "宽度",
+ "basic.components.Tooltip.registerMeta.Arrow": "箭头",
+ "basic.components.TooltipForEdge.info.EdgePromptBox": "边提示框",
+ "basic.components.TooltipForEdge.info.HoverEdgeShowingItsDetails": "Hover 边,展示其详细信息",
+ "basic.components.TooltipForEdge.registerMeta.DisplayText": "展示文本",
+ "basic.components.TooltipForEdge.registerMeta.DisplayLocation": "展示位置",
+ "basic.components.TooltipForEdge.registerMeta.LeftSide": "左侧",
+ "basic.components.TooltipForEdge.registerMeta.RightSide": "右侧",
+ "basic.components.TooltipForEdge.registerMeta.UpperSide": "上侧",
+ "basic.components.TooltipForEdge.registerMeta.LowerSide": "下侧",
+ "basic.components.TooltipForEdge.registerMeta.DisplayWidth": "展示宽度",
+ "basic.components.TooltipForEdge.registerMeta.ShowArrow": "展示箭头",
+ "basic.components.UadLayout.info.UpperAndLowerLayout": "上下布局",
+ "basic.components.UadLayout.info.UpperAndLowerLayoutSuitable": "上下布局,适用于图查询场景",
+ "basic.components.UadLayout.registerMeta.TopContainer": "顶部容器",
+ "basic.components.UadLayout.registerMeta.TopAssembly": "顶部组件",
+ "basic.components.UadLayout.registerMeta.TopHeight": "顶部高度",
+ "basic.components.UadLayout.registerMeta.InternalSpacing": "内部间距",
+ "basic.components.UadLayout.registerMeta.SideContainer": "侧边容器",
+ "basic.components.UadLayout.registerMeta.SideComponents": "侧边组件",
+ "basic.components.UadLayout.registerMeta.TabLocation": "Tab 位置",
+ "basic.components.UadLayout.registerMeta.Left": "左边",
+ "basic.components.UadLayout.registerMeta.Right": "右边",
+ "basic.components.UadLayout.registerMeta.Above": "上方",
+ "basic.components.UadLayout.registerMeta.Below": "下方",
+ "basic.components.UadLayout.useComponents.NoAssetsAreAvailableIn": "当前容器中无可用资产,请在配置面板中集成",
+ "basic.components.Watermark.info.Watermark": "水印",
+ "basic.components.Watermark.info.AddWatermark": "添加水印",
+ "basic.components.Watermark.registerMeta.RenderingMode": "渲染模式",
+ "basic.components.Watermark.registerMeta.EntirePage": "整个页面",
+ "basic.components.Watermark.registerMeta.CanvasOnly": "仅画布",
+ "basic.components.Watermark.registerMeta.WatermarkService": "水印服务",
+ "basic.components.Watermark.registerMeta.Width": "宽度",
+ "basic.components.Watermark.registerMeta.Height": "高度",
+ "basic.components.Watermark.registerMeta.RotationAngle": "旋转角度",
+ "basic.components.Watermark.registerMeta.FontSize": "字体大小",
+ "basic.components.Watermark.registerMeta.FontColor": "字体颜色",
+ "basic.components.Watermark.registerMeta.Spacing": "间距",
+ "basic.components.Watermark.registerMeta.Offset": "偏移量",
+ "basic.components.ZoomIn.info.ZoomIn": "放大",
+ "basic.components.ZoomIn.info.ClickToEnlargeTheCanvas": "点击可放大画布",
+ "basic.components.ZoomOut.info.ZoomOut": "缩小",
+ "basic.components.ZoomOut.info.ClickToNarrowTheCanvas": "点击可缩小画布",
+ "basic.components.ZoomStatus.info.ZoomStatus": "缩放状态",
+ "basic.components.ZoomStatus.info.WhenScalingToAThreshold": "缩放时到某个阈值添加状态",
+ "basic.components.ZoomStatus.registerMeta.MinimumZoom": "最小缩放",
+ "basic.components.ZoomStatus.registerMeta.StatusName": "状态名",
+ "basic.components.common.downloadCsv.Unnamed": "未命名",
+ "basic.src.components.const.UpperLeft": "左上",
+ "basic.src.components.const.UpperRight": "右上",
+ "basic.src.components.const.LowerLeft": "左下",
+ "basic.src.components.const.LowerRight": "右下",
+ "basic.src.components.const.HorizontalDisplay": "水平展示",
+ "basic.src.components.const.VerticalDisplay": "纵向展示",
+ "basic.components.utils.csv.ExportDataCsv": "导出数据.csv",
+ "basic.src.deploys.Esm.EsmMode": "ESM 模式",
+ "basic.src.deploys.Esm.ProvidesNpmPackagesThatSupport": "提供 NPM 包,支持 Tree Shaking,原生集成到 React 项目中",
+ "basic.src.deploys.Html.HtmlMode": "HTML 模式",
+ "basic.src.deploys.Html.ExportHtmlForQuickLocal": "导出 HTML 适合快速本地查看",
+ "basic.src.deploys.Umd.UmdMode": "UMD 模式",
+ "basic.src.deploys.Umd.ProvidesUmdPackagesThatCan": "提供 UMD 包,可 CDN 加载,快速集成到 React 项目中",
+ "basic.elements.DonutNode.Doughnuts": "甜甜圈",
+ "basic.elements.DonutNode.DonutComponentForDataDistribution": "甜甜圈组件,用于数据有分布的情况",
+ "basic.elements.DonutNode.registerMeta.RingDisplay": "环展示",
+ "basic.elements.DonutNode.registerMeta.RingColor": "环色彩",
+ "basic.elements.DonutNode.registerMeta.RingSizeSmall": "环大小",
+ "basic.elements.DonutNode.registerMeta.Text": "文本",
+ "basic.elements.SimpleEdge.OfficialSide": "官方边",
+ "basic.elements.SimpleEdge.registerMeta.Color": "颜色",
+ "basic.elements.SimpleEdge.registerMeta.Size": "大小",
+ "basic.elements.SimpleEdge.registerMeta.Text": "文本",
+ "basic.elements.SimpleEdge.registerMeta.AdvancedConfiguration": "高级配置",
+ "basic.elements.SimpleEdge.registerMeta.Shape": "形状",
+ "basic.elements.SimpleEdge.registerMeta.Arrow": "箭头",
+ "basic.elements.SimpleEdge.registerMeta.DefineRadians": "定义弧度",
+ "basic.elements.SimpleEdge.registerMeta.Radian": "弧度",
+ "basic.elements.SimpleEdge.registerMeta.DottedLine": "虚线",
+ "basic.elements.SimpleEdge.registerMeta.Transparency": "透明度",
+ "basic.elements.SimpleEdge.registerMeta.Label": "标签",
+ "basic.elements.SimpleEdge.registerMeta.Implicit": "显隐",
+ "basic.elements.SimpleEdge.registerMeta.Offset": "偏移",
+ "basic.elements.SimpleEdge.registerMeta.Background": "背景",
+ "basic.elements.SimpleEdge.registerMeta.BackgroundColor": "背景色",
+ "basic.elements.SimpleEdge.registerMeta.BackgroundStroke": "背景描边",
+ "basic.elements.SimpleEdge.registerMeta.Animation": "动画",
+ "basic.elements.SimpleEdge.registerMeta.Switch": "开关",
+ "basic.elements.SimpleEdge.registerMeta.Type": "类型",
+ "basic.elements.SimpleEdge.registerMeta.Ball": "圆球",
+ "basic.elements.SimpleEdge.registerMeta.GradualLength": "渐长",
+ "basic.elements.SimpleEdge.registerMeta.BallColor": "圆球颜色",
+ "basic.elements.SimpleEdge.registerMeta.Repeat": "重复",
+ "basic.elements.SimpleEdge.registerMeta.Duration": "时长",
+ "basic.elements.SimpleNode.OfficialNode": "官方节点",
+ "basic.elements.SimpleNode.registerMeta.Size": "大小",
+ "basic.elements.SimpleNode.registerMeta.Color": "颜色",
+ "basic.elements.SimpleNode.registerMeta.Text": "文本",
+ "basic.elements.SimpleNode.registerMeta.AdvancedConfiguration": "高级配置",
+ "basic.elements.SimpleNode.registerMeta.Icon": "图标",
+ "basic.elements.SimpleNode.registerMeta.Implicit": "显隐",
+ "basic.elements.SimpleNode.registerMeta.Type": "类型",
+ "basic.elements.SimpleNode.registerMeta.FontIcon": "字体图标",
+ "basic.elements.SimpleNode.registerMeta.Node": "节点",
+ "basic.elements.SimpleNode.registerMeta.Transparency": "透明度",
+ "basic.elements.SimpleNode.registerMeta.Switch": "开关",
+ "basic.elements.SimpleNode.registerMeta.Location": "位置",
+ "basic.elements.SimpleNode.registerMeta.Top": "顶部",
+ "basic.elements.SimpleNode.registerMeta.Bottom": "底部",
+ "basic.elements.SimpleNode.registerMeta.LeftSide": "左侧",
+ "basic.elements.SimpleNode.registerMeta.RightSide": "右侧",
+ "basic.elements.SimpleNode.registerMeta.Middle": "中间",
+ "basic.elements.SimpleNode.registerMeta.Logo": "徽标",
+ "basic.elements.SimpleNode.registerMeta.FieldMapping": "字段映射",
+ "basic.layouts.Circular.CircularLayout": "圆形布局",
+ "basic.layouts.Circular.registerMeta.Radius": "半径",
+ "basic.layouts.Circular.registerMeta.NumberOfSegments": "分段数",
+ "basic.layouts.Circular.registerMeta.Sort": "排序依据",
+ "basic.layouts.Circular.registerMeta.PreventOverlap": "防止重叠",
+ "basic.layouts.ClusteringDagre.ClusteringHierarchicalLayout": "聚类分层布局",
+ "basic.layouts.ClusteringDagre.ClusteringDirectedHierarchicalLayout": "可聚类的有向分层布局",
+ "basic.layouts.ClusteringDagre.registerMeta.LayoutDirection": "布局方向",
+ "basic.layouts.ClusteringDagre.registerMeta.TopDown": "自上而下",
+ "basic.layouts.ClusteringDagre.registerMeta.BottomUp": "自下而上",
+ "basic.layouts.ClusteringDagre.registerMeta.FromLeftToRight": "自左而右",
+ "basic.layouts.ClusteringDagre.registerMeta.FromRightToLeft": "自右而左",
+ "basic.layouts.ClusteringDagre.registerMeta.HierarchicalBasis": "分层依据",
+ "basic.layouts.ClusteringDagre.registerMeta.MaximumNumberOfNodesAt": "每层节点上限",
+ "basic.layouts.ClusteringDagre.registerMeta.SpacingBetweenMultipleLinesAfter": "同层节点换行后多行之间的间距",
+ "basic.layouts.ClusteringDagre.registerMeta.Alignment": "对齐方式",
+ "basic.layouts.ClusteringDagre.registerMeta.NodeSpacing": "节点间距",
+ "basic.layouts.ClusteringDagre.registerMeta.LayerSpacing": "层间距",
+ "basic.layouts.Concentric.ConcentricCircleLayout": "同心圆布局",
+ "basic.layouts.Concentric.AccordingToTheNodeDegree": "根据节点度数,可按照同心圆排布",
+ "basic.layouts.Concentric.registerMeta.Sort": "排序依据",
+ "basic.layouts.Concentric.registerMeta.NodeSize": "节点大小",
+ "basic.layouts.Concentric.registerMeta.MinimumSpacing": "最小间距",
+ "basic.layouts.Concentric.registerMeta.EqualSpacing": "是否等间距",
+ "basic.layouts.Concentric.registerMeta.PreventOverlap": "防止重叠",
+ "basic.layouts.Dagre.DirectedLayering": "有向分层",
+ "basic.layouts.Dagre.NodesAreArrangedAccordingTo": "节点按照边的流向排布",
+ "basic.layouts.Dagre.registerMeta.LayoutDirection": "布局方向",
+ "basic.layouts.Dagre.registerMeta.TopDown": "自上而下",
+ "basic.layouts.Dagre.registerMeta.BottomUp": "自下而上",
+ "basic.layouts.Dagre.registerMeta.FromLeftToRight": "自左而右",
+ "basic.layouts.Dagre.registerMeta.FromRightToLeft": "自右而左",
+ "basic.layouts.Dagre.registerMeta.Alignment": "对齐方式",
+ "basic.layouts.Dagre.registerMeta.NodeSpacing": "节点间距",
+ "basic.layouts.Dagre.registerMeta.LayerSpacing": "层间距",
+ "basic.layouts.Force2.FastForceGuide": "快速力导",
+ "basic.layouts.Force2.ProgressiveForceDirectedLayoutFor": "渐进式力导布局,可用于动态布局",
+ "basic.layouts.Force2.registerMeta.GridLayout": "网格布局",
+ "basic.layouts.Force2.registerMeta.CircularLayout": "环形布局",
+ "basic.layouts.Force2.registerMeta.ConcentricCircleLayout": "同心圆布局",
+ "basic.layouts.Force2.registerMeta.DirectedLayering": "有向分层",
+ "basic.layouts.Force2.registerMeta.OriginalValue": "原始值",
+ "basic.layouts.Force2.registerMeta.Square": "开平方",
+ "basic.layouts.Force2.registerMeta.Square.1": "平方",
+ "basic.layouts.Force2.registerMeta.Reciprocal": "倒数",
+ "basic.layouts.Force2.registerMeta.EdgeGravityCoefficient": "边引力系数",
+ "basic.layouts.Force2.registerMeta.RepulsionCoefficientBetweenNodes": "节点间斥力系数",
+ "basic.layouts.Force2.registerMeta.DampingCoefficient": "阻尼系数",
+ "basic.layouts.Force2.registerMeta.EnableAnimation": "启用动画",
+ "basic.layouts.Force2.registerMeta.FrontLayout": "前置布局",
+ "basic.layouts.Force2.registerMeta.PresetLayoutWidth": "预设布局宽度",
+ "basic.layouts.Force2.registerMeta.PresetLayoutHeight": "预设布局高度",
+ "basic.layouts.Force2.registerMeta.MinimumLimitDegree": "最小界限度数",
+ "basic.layouts.Force2.registerMeta.MaximumLimitSideLength": "最大限制边长",
+ "basic.layouts.Force2.registerMeta.DefaultSideLength": "默认边长",
+ "basic.layouts.Force2.registerMeta.NodeClusteringStrength": "节点聚类力强度",
+ "basic.layouts.Force2.registerMeta.MinimumDistanceOfIterationStop": "迭代停止最小距离",
+ "basic.layouts.Force2.registerMeta.IterationStopJudgmentBasis": "迭代停止判断依据",
+ "basic.layouts.Force2.registerMeta.Average": "平均值",
+ "basic.layouts.Force2.registerMeta.MinimumValue": "最小值",
+ "basic.layouts.Force2.registerMeta.Maximum": "最大值",
+ "basic.layouts.Force2.registerMeta.InitialVelocity": "初始速度",
+ "basic.layouts.Force2.registerMeta.LeafNode": "叶子节点",
+ "basic.layouts.Force2.registerMeta.IsolatedNode": "孤立节点",
+ "basic.layouts.Force2.registerMeta.OtherNodes": "其他节点",
+ "basic.layouts.Force2.registerMeta.AdvancedWeightConfiguration": "权重高级配置",
+ "basic.layouts.Force2.registerMeta.GravityWeightAssociation": "引力权重关联",
+ "basic.layouts.Force2.registerMeta.GravityWeightAssociation.1": "引力权重关联归一",
+ "basic.layouts.Force2.registerMeta.RepulsionAssociationType": "斥力关联类型",
+ "basic.layouts.Force2.registerMeta.NodeProperties": "节点属性",
+ "basic.layouts.Force2.registerMeta.AddAndAddRelatedEdge": "相关边属性加和",
+ "basic.layouts.Force2.registerMeta.RepulsionWeightAssociation": "斥力权重关联",
+ "basic.layouts.Force2.registerMeta.RepulsiveWeightAssociation": "斥力权重关联归一",
+ "basic.layouts.Force2.registerMeta.EnableDirectionalForce": "启用有向力",
+ "basic.layouts.Force2.registerMeta.CapitalAssociationElements": "资金关联元素",
+ "basic.layouts.Force2.registerMeta.EnterWeightField": "入权重字段",
+ "basic.layouts.Force2.registerMeta.OutputWeightField": "出权重字段",
+ "basic.layouts.Force2.registerMeta.RelatedEdgeProperties": "相关边属性",
+ "basic.layouts.Force2.registerMeta.LogMapping": "log 映射",
+ "basic.layouts.Force2.registerMeta.MultipleMapping": "倍数映射",
+ "basic.layouts.FundForce.FinancialGuidance": "资金力导",
+ "basic.layouts.FundForce.VerticalForceGuideLayoutBased": "基于节点字段大小的垂直力导布局",
+ "basic.layouts.FundForce.registerMeta.InflowFunds": "流入资金",
+ "basic.layouts.FundForce.registerMeta.OutflowFunds": "流出资金",
+ "basic.layouts.FundForce.registerMeta.LogMapping": "log 映射",
+ "basic.layouts.FundForce.registerMeta.MultipleMapping": "倍数映射",
+ "basic.layouts.GraphinForce.ProgressiveForceGuide": "渐进力导",
+ "basic.layouts.GraphinForce.ProgressiveForceDirectedLayoutFor": "渐进式力导布局,可用于动态布局",
+ "basic.layouts.GraphinForce.registerMeta.GridLayout": "网格布局",
+ "basic.layouts.GraphinForce.registerMeta.CircularLayout": "环形布局",
+ "basic.layouts.GraphinForce.registerMeta.ConcentricCircleLayout": "同心圆布局",
+ "basic.layouts.GraphinForce.registerMeta.DirectedLayering": "有向分层",
+ "basic.layouts.GraphinForce.registerMeta.SpringStiffnessCoefficient": "弹簧劲度系数",
+ "basic.layouts.GraphinForce.registerMeta.CullenConstantKeRepulsion": "库伦常量Ke(斥力)",
+ "basic.layouts.GraphinForce.registerMeta.DampingCoefficient": "阻尼系数",
+ "basic.layouts.GraphinForce.registerMeta.EnableAnimation": "启用动画",
+ "basic.layouts.GraphinForce.registerMeta.FrontLayout": "前置布局",
+ "basic.layouts.GraphinForce.registerMeta.MinimumLimitDegree": "最小界限度数",
+ "basic.layouts.GraphinForce.registerMeta.MaximumLimitSideLength": "最大限制边长",
+ "basic.layouts.GraphinForce.registerMeta.DefaultSideLength": "默认边长",
+ "basic.layouts.GraphinForce.registerMeta.LeafNode": "叶子节点",
+ "basic.layouts.GraphinForce.registerMeta.IsolatedNode": "孤立节点",
+ "basic.layouts.GraphinForce.registerMeta.OtherNodes": "其他节点",
+ "basic.layouts.Grid.GridLayout": "网格布局",
+ "basic.layouts.Grid.NodesAreArrangedByGrid": "节点按照网格排布",
+ "basic.layouts.Grid.registerMeta.NumberOfGridRows": "网格行数",
+ "basic.layouts.Grid.registerMeta.NumberOfGridColumns": "网格列数",
+ "basic.layouts.Grid.registerMeta.Sort": "排序依据",
+ "basic.layouts.Radial.RadialLayout": "径向布局",
+ "basic.layouts.Radial.RadiationLayout": "辐射布局",
+ "basic.layouts.Radial.registerMeta.LevelDistance": "层级距离",
+ "basic.layouts.Radial.registerMeta.SideLength": "边长",
+ "basic.layouts.Radial.registerMeta.NodeSize": "节点大小",
+ "basic.layouts.Radial.registerMeta.CentralNode": "中心节点",
+ "basic.layouts.Radial.registerMeta.NodeSpacing": "节点间距",
+ "basic.layouts.Radial.registerMeta.PreventOverlap": "防止重叠",
+ "basic.layouts.Radial.registerMeta.StrictRadiation": "严格辐射",
+ "basic.layouts.Random.RandomLayout": "随机布局",
+ "basic.src.services.NeighborsQuery.NeighborQuery": "邻居查询",
+ "basic.src.services.NeighborsQuery.ExportInterfaceReqneighborsqueryTheDiffused": "\n export interface ReqNeighborsQuery {\n //扩散的节点,是个节点ID数组\n ids: string[];\n //扩散的节点的全部信息\n nodes: any[];\n //扩散的度数\n sep: number;\n } \n ",
+ "basic.src.services.NeighborsQuery.ExportInterfaceGigraphdataNodesNode": "\n export interface GIGraphData {\n nodes: {\n // 节点ID\n id: string;\n // 节点类型的枚举值。Property Graph 也称之为 node.label\n nodeType: string;\n // 业务数据,注意需要打平,暂不支持嵌套\n data: {};\n // 业务数据(data)中的哪个字段,用来映射节点类型\n nodeTypeKeyFromProperties?: string;\n }[];\n edges: {\n // 边ID\n id: string;\n // 边关联的 source 节点ID\n source: string;\n // 边关联的 target 节点ID\n target: string;\n // 边类型的枚举值。Property Graph 也称之为 edge.label\n edgeType: string;\n // 业务数据,注意需要打平,暂不支持嵌套\n data: {};\n // 业务数据(data)中的哪个字段,用来映射边类型\n edgeTypeKeyFromProperties?: string;\n }[];\n }\n ",
+ "basic.src.services.PropertiesPanel.QueryAttributeDetails": "查询属性详情",
+ "basic.src.services.PropertiesPanel.ExportInterfaceReqpropertiespanelDetailsOf": "\n export interface ReqPropertiesPanel {\n /** 节点 或者 边的详细信息 */\n data: any;\n }\n ",
+ "basic.src.services.PropertiesPanel.ExportInterfaceRespropertiespanelDetailsOf": "\n export interface ResPropertiesPanel {\n /** 节点 或 边的详细信息 */\n [key: string]: any;\n }\n ",
+ "basic.src.services.WatermarkService.WatermarkService": "水印服务",
+ "basic.src.services.WatermarkService.ExportInterfaceWatermarkresparamsSaveSuccessfully": "\n export interface WatermarkResParams {\n /** 保存是否成功 */\n success: boolean;\n /** 信息提示 **/\n msg: string;\n /** 返回数据 */\n data: {\n /** 水印文字内容 */\n content ?: string[] | string;\n /** 水印图片源\n * 注意:优先级 image > content, 当使用图片水印且图片加载异常, 会使用 content */\n image ?: string;\n }\n }\n ",
+ "basic.src.services.WatermarkService.ThisIsALineOf": "这是一行水印",
+ "basic.src.services.WatermarkService.TheWatermarkIsObtained": "获取水印成功!",
+ "basic.src.services.TheLocalFileImportService": "G6VP 官方提供的本地文件导入服务,根据部署环境的不同,可以将数据存储在浏览器 IndexDB 或者 云端服务器中",
+ "basic.src.templates.Query.UpperAndLowerLayout": "上下布局",
+ "basic.src.templates.Query.GremlinQuery": "Gremlin 查询",
+ "basic.src.templates.Query.TableMode": "表格模式",
+ "basic.src.templates.Query.ShowNodesAndEdgesIn": "将画布中的节点和边以表格形式展示",
+ "basic.src.templates.Query.CodeMode": "代码模式",
+ "basic.src.templates.Query.ShowDataInCode": "将数据以代码形式展示",
+ "basic.src.templates.Query.Sidebar": "侧边栏",
+ "basic.src.templates.Query.PathStructureAnalysis": "路径结构分析",
+ "basic.src.templates.Query.AutomaticallyParseAllPathsOf": "自动解析画布所有路径,做聚合分析",
+ "basic.src.templates.Query.InformationDetection": "信息检测",
+ "basic.src.templates.Query.DetectIsolatedPointsRingsEtc": "检测画布中孤立点、环等",
+ "basic.src.templates.Query.NodeImportance": "节点重要性",
+ "basic.src.templates.Query.CommunityDiscovery": "社区发现",
+ "basic.src.templates.Query.PatternMatching": "模式匹配",
+ "basic.src.templates.Query.CypherStatementQuery": "Cypher 语句查询",
+ "basic.src.templates.Query.QueryTemplate": "查询模版",
+ "basic.src.templates.Query.TheTemplateWithTheQuery": "以查询语句为主体的模版,包含 {activeAssetsKeysComponentsLength} 个分析资产,页面布局呈上下分布,最上方集成「Gremlin」或者「Cypher」查询语句,常用于数据库查询场景。",
+ "basic.src.templates.Simple.SegmentLayout": "分段布局",
+ "basic.src.templates.Simple.SideContainer": "侧边容器",
+ "basic.src.templates.Simple.MinimalistTemplate": "极简模版",
+ "basic.src.templates.Simple.ThisTemplateIsAnOfficial": "该模版是官方提供的极简模版,包含 {activeAssetsKeysComponentsLength} 个分析资产,提供常见的「交互分析」「筛选看数」等功能,页面布局上,画布展示空间较大,提供沉浸式分析体验"
+}
diff --git a/packages/gi-assets-basic/src/index.tsx b/packages/gi-assets-basic/src/index.tsx
index fbd2b4165..7f03a24b8 100644
--- a/packages/gi-assets-basic/src/index.tsx
+++ b/packages/gi-assets-basic/src/index.tsx
@@ -4,6 +4,5 @@ import * as elements from './elements';
import * as layouts from './layouts';
import services from './services';
import * as templates from './templates';
-import locales from './locales';
-export { components, deploys, elements, layouts, services, templates, locales };
+export { components, deploys, elements, layouts, services, templates };
diff --git a/packages/gi-assets-basic/src/layouts/Circular/index.tsx b/packages/gi-assets-basic/src/layouts/Circular/index.tsx
index 9d0130b5e..1dc88e814 100644
--- a/packages/gi-assets-basic/src/layouts/Circular/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Circular/index.tsx
@@ -1,16 +1,16 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Circular',
options: {
type: 'circular',
},
- name: '圆形布局',
+ name: $i18n.get({ id: 'basic.layouts.Circular.CircularLayout', dm: '圆形布局' }),
category: 'basic',
type: 'LAYOUT',
- desc: '圆形布局',
+ desc: $i18n.get({ id: 'basic.layouts.Circular.CircularLayout', dm: '圆形布局' }),
icon: 'icon-layout-circular',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/tervm8tc2nf2z3ok',
diff --git a/packages/gi-assets-basic/src/layouts/Circular/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Circular/registerMeta.tsx
index 4edbc9c0a..c6d1ec540 100644
--- a/packages/gi-assets-basic/src/layouts/Circular/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Circular/registerMeta.tsx
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
return {
radius: {
type: 'number',
- title: '半径',
+ title: $i18n.get({ id: 'basic.layouts.Circular.registerMeta.Radius', dm: '半径' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -12,7 +13,7 @@ const registerMeta = context => {
},
divisions: {
type: 'number',
- title: '分段数',
+ title: $i18n.get({ id: 'basic.layouts.Circular.registerMeta.NumberOfSegments', dm: '分段数' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -22,7 +23,7 @@ const registerMeta = context => {
},
ordering: {
type: 'string',
- title: '排序依据',
+ title: $i18n.get({ id: 'basic.layouts.Circular.registerMeta.Sort', dm: '排序依据' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -36,7 +37,7 @@ const registerMeta = context => {
},
preventOverlap: {
type: 'switch',
- title: '防止重叠',
+ title: $i18n.get({ id: 'basic.layouts.Circular.registerMeta.PreventOverlap', dm: '防止重叠' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
diff --git a/packages/gi-assets-basic/src/layouts/ClusteringDagre/index.tsx b/packages/gi-assets-basic/src/layouts/ClusteringDagre/index.tsx
index d382e2fb5..9133b4b01 100644
--- a/packages/gi-assets-basic/src/layouts/ClusteringDagre/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/ClusteringDagre/index.tsx
@@ -1,16 +1,19 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'ClusteringDagre',
options: {
type: 'clusteringDagre',
},
- name: '聚类分层布局',
+ name: $i18n.get({ id: 'basic.layouts.ClusteringDagre.ClusteringHierarchicalLayout', dm: '聚类分层布局' }),
category: 'basic',
type: 'LAYOUT',
- desc: '可聚类的有向分层布局',
+ desc: $i18n.get({
+ id: 'basic.layouts.ClusteringDagre.ClusteringDirectedHierarchicalLayout',
+ dm: '可聚类的有向分层布局',
+ }),
icon: 'icon-layout-tree',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/bpvfi1rtglkhz4wc',
diff --git a/packages/gi-assets-basic/src/layouts/ClusteringDagre/registerMeta.ts b/packages/gi-assets-basic/src/layouts/ClusteringDagre/registerMeta.ts
index 9d94cf8c5..b4433303d 100644
--- a/packages/gi-assets-basic/src/layouts/ClusteringDagre/registerMeta.ts
+++ b/packages/gi-assets-basic/src/layouts/ClusteringDagre/registerMeta.ts
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { keys } = context;
// 过滤掉 nodeTypeKeyFromProperties 属性
@@ -6,22 +7,34 @@ const registerMeta = context => {
return {
rankdir: {
type: 'string',
- title: '布局方向',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.LayoutDirection', dm: '布局方向' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
options: [
- { label: '自上而下', value: 'TB' },
- { label: '自下而上', value: 'BT' },
- { label: '自左而右', value: 'LR' },
- { label: '自右而左', value: 'RL' },
+ {
+ label: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.TopDown', dm: '自上而下' }),
+ value: 'TB',
+ },
+ {
+ label: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.BottomUp', dm: '自下而上' }),
+ value: 'BT',
+ },
+ {
+ label: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.FromLeftToRight', dm: '自左而右' }),
+ value: 'LR',
+ },
+ {
+ label: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.FromRightToLeft', dm: '自右而左' }),
+ value: 'RL',
+ },
],
},
default: 'TB',
},
clusterAttr: {
type: 'string',
- title: '分层依据',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.HierarchicalBasis', dm: '分层依据' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -37,7 +50,7 @@ const registerMeta = context => {
},
wrapThreshold: {
type: 'number',
- title: '每层节点上限',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.MaximumNumberOfNodesAt', dm: '每层节点上限' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -47,7 +60,10 @@ const registerMeta = context => {
},
wrapLineHeight: {
type: 'number',
- title: '同层节点换行后多行之间的间距',
+ title: $i18n.get({
+ id: 'basic.layouts.ClusteringDagre.registerMeta.SpacingBetweenMultipleLinesAfter',
+ dm: '同层节点换行后多行之间的间距',
+ }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -57,7 +73,7 @@ const registerMeta = context => {
},
align: {
type: 'string',
- title: '对齐方式',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.Alignment', dm: '对齐方式' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -73,7 +89,7 @@ const registerMeta = context => {
},
nodesep: {
type: 'number',
- title: '节点间距',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.NodeSpacing', dm: '节点间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -83,7 +99,7 @@ const registerMeta = context => {
},
ranksep: {
type: 'number',
- title: '层间距',
+ title: $i18n.get({ id: 'basic.layouts.ClusteringDagre.registerMeta.LayerSpacing', dm: '层间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
diff --git a/packages/gi-assets-basic/src/layouts/Concentric/index.tsx b/packages/gi-assets-basic/src/layouts/Concentric/index.tsx
index 9c95c1aa6..ee590715f 100644
--- a/packages/gi-assets-basic/src/layouts/Concentric/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Concentric/index.tsx
@@ -1,16 +1,16 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Concentric',
options: {
type: 'concentric',
},
- name: '同心圆布局',
+ name: $i18n.get({ id: 'basic.layouts.Concentric.ConcentricCircleLayout', dm: '同心圆布局' }),
category: 'basic',
type: 'LAYOUT',
- desc: '根据节点度数,可按照同心圆排布',
+ desc: $i18n.get({ id: 'basic.layouts.Concentric.AccordingToTheNodeDegree', dm: '根据节点度数,可按照同心圆排布' }),
icon: 'icon-layout-concentric',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/gpr0ca0pa26img2x',
diff --git a/packages/gi-assets-basic/src/layouts/Concentric/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Concentric/registerMeta.tsx
index 785bdb7b4..f9ad0d335 100644
--- a/packages/gi-assets-basic/src/layouts/Concentric/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Concentric/registerMeta.tsx
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
return {
sortBy: {
type: 'string',
- title: '排序依据',
+ title: $i18n.get({ id: 'basic.layouts.Concentric.registerMeta.Sort', dm: '排序依据' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -16,7 +17,7 @@ const registerMeta = context => {
},
nodeSize: {
type: 'number',
- title: '节点大小',
+ title: $i18n.get({ id: 'basic.layouts.Concentric.registerMeta.NodeSize', dm: '节点大小' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -26,7 +27,7 @@ const registerMeta = context => {
},
minNodeSpacing: {
type: 'number',
- title: '最小间距',
+ title: $i18n.get({ id: 'basic.layouts.Concentric.registerMeta.MinimumSpacing', dm: '最小间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -36,14 +37,14 @@ const registerMeta = context => {
},
equidistant: {
type: 'boolean',
- title: '是否等间距',
+ title: $i18n.get({ id: 'basic.layouts.Concentric.registerMeta.EqualSpacing', dm: '是否等间距' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
preventOverlap: {
type: 'boolean',
- title: '防止重叠',
+ title: $i18n.get({ id: 'basic.layouts.Concentric.registerMeta.PreventOverlap', dm: '防止重叠' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
diff --git a/packages/gi-assets-basic/src/layouts/Dagre/index.tsx b/packages/gi-assets-basic/src/layouts/Dagre/index.tsx
index 73e863164..c889a3b72 100644
--- a/packages/gi-assets-basic/src/layouts/Dagre/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Dagre/index.tsx
@@ -1,16 +1,16 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Dagre',
options: {
type: 'dagre',
},
- name: '有向分层',
+ name: $i18n.get({ id: 'basic.layouts.Dagre.DirectedLayering', dm: '有向分层' }),
category: 'basic',
type: 'LAYOUT',
- desc: '节点按照边的流向排布',
+ desc: $i18n.get({ id: 'basic.layouts.Dagre.NodesAreArrangedAccordingTo', dm: '节点按照边的流向排布' }),
icon: 'icon-layout-tree',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/xcbi5pnxw76to86c',
diff --git a/packages/gi-assets-basic/src/layouts/Dagre/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Dagre/registerMeta.tsx
index a6af5edbf..31f7d24bc 100644
--- a/packages/gi-assets-basic/src/layouts/Dagre/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Dagre/registerMeta.tsx
@@ -1,23 +1,24 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
return {
rankdir: {
type: 'string',
- title: '布局方向',
+ title: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.LayoutDirection', dm: '布局方向' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
options: [
- { label: '自上而下', value: 'TB' },
- { label: '自下而上', value: 'BT' },
- { label: '自左而右', value: 'LR' },
- { label: '自右而左', value: 'RL' },
+ { label: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.TopDown', dm: '自上而下' }), value: 'TB' },
+ { label: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.BottomUp', dm: '自下而上' }), value: 'BT' },
+ { label: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.FromLeftToRight', dm: '自左而右' }), value: 'LR' },
+ { label: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.FromRightToLeft', dm: '自右而左' }), value: 'RL' },
],
},
default: 'TB',
},
align: {
type: 'string',
- title: '对齐方式',
+ title: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.Alignment', dm: '对齐方式' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
@@ -33,7 +34,7 @@ const registerMeta = context => {
},
nodesep: {
type: 'number',
- title: '节点间距',
+ title: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.NodeSpacing', dm: '节点间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -43,7 +44,7 @@ const registerMeta = context => {
},
ranksep: {
type: 'number',
- title: '层间距',
+ title: $i18n.get({ id: 'basic.layouts.Dagre.registerMeta.LayerSpacing', dm: '层间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
diff --git a/packages/gi-assets-basic/src/layouts/Force2/index.tsx b/packages/gi-assets-basic/src/layouts/Force2/index.tsx
index a80653d9d..ed248c626 100644
--- a/packages/gi-assets-basic/src/layouts/Force2/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Force2/index.tsx
@@ -1,7 +1,7 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Force2',
options: {
@@ -20,10 +20,13 @@ const info = {
maxSpeed: 1000,
distanceThresholdMode: 'max',
},
- name: '快速力导',
+ name: $i18n.get({ id: 'basic.layouts.Force2.FastForceGuide', dm: '快速力导' }),
category: 'basic',
type: 'LAYOUT',
- desc: '渐进式力导布局,可用于动态布局',
+ desc: $i18n.get({
+ id: 'basic.layouts.Force2.ProgressiveForceDirectedLayoutFor',
+ dm: '渐进式力导布局,可用于动态布局',
+ }),
icon: 'icon-layout-force',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/rloo8d2l7qbsuyg8',
diff --git a/packages/gi-assets-basic/src/layouts/Force2/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Force2/registerMeta.tsx
index bddab3521..88234903f 100644
--- a/packages/gi-assets-basic/src/layouts/Force2/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Force2/registerMeta.tsx
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const { schemaData, keys } = context;
const nodeProperties = schemaData.nodes.reduce((acc, cur) => {
@@ -8,37 +9,38 @@ const registerMeta = context => {
}, {});
const presetOptions = [
{
- label: '网格布局',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.GridLayout', dm: '网格布局' }),
value: 'grid',
},
{
- label: '环形布局',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.CircularLayout', dm: '环形布局' }),
value: 'circular',
},
{
- label: '同心圆布局',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.ConcentricCircleLayout', dm: '同心圆布局' }),
value: 'concentric',
},
{
- label: '有向分层',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.DirectedLayering', dm: '有向分层' }),
value: 'dagre',
},
];
+
const weightScaleOptions = [
{
- label: '原始值',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.OriginalValue', dm: '原始值' }),
value: 1,
},
{
- label: '开平方',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.Square', dm: '开平方' }),
value: 'sqrt',
},
{
- label: '平方',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.Square.1', dm: '平方' }),
value: 'sqr',
},
{
- label: '倒数',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.Reciprocal', dm: '倒数' }),
value: 'reciprocal',
},
{
@@ -50,12 +52,13 @@ const registerMeta = context => {
value: 'log10',
},
];
+
const directedWeightOptions = keys.filter(k => nodeProperties[k] === 'number').map(k => ({ label: k, value: k }));
return {
edgeStrength: {
type: 'number',
- title: '边引力系数',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.EdgeGravityCoefficient', dm: '边引力系数' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -64,7 +67,10 @@ const registerMeta = context => {
default: 200,
},
nodeStrength: {
- title: '节点间斥力系数',
+ title: $i18n.get({
+ id: 'basic.layouts.Force2.registerMeta.RepulsionCoefficientBetweenNodes',
+ dm: '节点间斥力系数',
+ }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -72,7 +78,7 @@ const registerMeta = context => {
default: 1000,
},
damping: {
- title: '阻尼系数',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.DampingCoefficient', dm: '阻尼系数' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -84,7 +90,7 @@ const registerMeta = context => {
default: 0.8,
},
animate: {
- title: '启用动画',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.EnableAnimation', dm: '启用动画' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -95,7 +101,7 @@ const registerMeta = context => {
properties: {
type: {
type: 'string',
- title: '前置布局',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.FrontLayout', dm: '前置布局' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -104,14 +110,14 @@ const registerMeta = context => {
default: 'concentric',
},
width: {
- title: '预设布局宽度',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.PresetLayoutWidth', dm: '预设布局宽度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 800,
},
height: {
- title: '预设布局高度',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.PresetLayoutHeight', dm: '预设布局高度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -123,21 +129,21 @@ const registerMeta = context => {
type: 'object',
properties: {
minLimitDegree: {
- title: '最小界限度数',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.MinimumLimitDegree', dm: '最小界限度数' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 5,
},
maxLimitLength: {
- title: '最大限制边长',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.MaximumLimitSideLength', dm: '最大限制边长' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 500,
},
defaultSpring: {
- title: '默认边长',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.DefaultSideLength', dm: '默认边长' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -146,7 +152,7 @@ const registerMeta = context => {
},
},
clusterNodeStrength: {
- title: '节点聚类力强度',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.NodeClusteringStrength', dm: '节点聚类力强度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -154,7 +160,10 @@ const registerMeta = context => {
default: 35,
},
minMovement: {
- title: '迭代停止最小距离',
+ title: $i18n.get({
+ id: 'basic.layouts.Force2.registerMeta.MinimumDistanceOfIterationStop',
+ dm: '迭代停止最小距离',
+ }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -162,22 +171,22 @@ const registerMeta = context => {
default: context.data?.nodes?.length > 200 ? 10 : 2,
},
distanceThresholdMode: {
- title: '迭代停止判断依据',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.IterationStopJudgmentBasis', dm: '迭代停止判断依据' }),
type: 'string',
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
options: [
{
- label: '平均值',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.Average', dm: '平均值' }),
value: 'mean',
},
{
- label: '最小值',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.MinimumValue', dm: '最小值' }),
value: 'min',
},
{
- label: '最大值',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.Maximum', dm: '最大值' }),
value: 'max',
},
],
@@ -185,7 +194,7 @@ const registerMeta = context => {
default: 'max',
},
maxSpeed: {
- title: '初始速度',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.InitialVelocity', dm: '初始速度' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -196,21 +205,21 @@ const registerMeta = context => {
type: 'object',
properties: {
leaf: {
- title: '叶子节点',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.LeafNode', dm: '叶子节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 2,
},
single: {
- title: '孤立节点',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.IsolatedNode', dm: '孤立节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 2,
},
others: {
- title: '其他节点',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.OtherNodes', dm: '其他节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -232,7 +241,7 @@ const registerMeta = context => {
},
advanceWeight: {
- title: '权重高级配置',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.AdvancedWeightConfiguration', dm: '权重高级配置' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -262,7 +271,7 @@ const registerMeta = context => {
},
edgeWeightField: {
type: 'string',
- title: '引力权重关联',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.GravityWeightAssociation', dm: '引力权重关联' }),
'x-decorator': 'FormItem',
'x-component': 'GroupSelect',
'x-component-props': {
@@ -272,7 +281,7 @@ const registerMeta = context => {
},
edgeWeightFieldScale: {
type: 'string',
- title: '引力权重关联归一',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.GravityWeightAssociation.1', dm: '引力权重关联归一' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -281,21 +290,22 @@ const registerMeta = context => {
default: 1,
},
nodeWeightFromType: {
- title: '斥力关联类型',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.RepulsionAssociationType', dm: '斥力关联类型' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component-props': {},
'x-component': 'Radio.Group',
enum: [
{
- label: '节点属性',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.NodeProperties', dm: '节点属性' }),
value: 'node',
},
{
- label: '相关边属性加和',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.AddAndAddRelatedEdge', dm: '相关边属性加和' }),
value: 'edge',
},
],
+
default: 'node',
'x-reactions': [
{
@@ -318,7 +328,7 @@ const registerMeta = context => {
},
nodeWeightField: {
type: 'string',
- title: '斥力权重关联',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.RepulsionWeightAssociation', dm: '斥力权重关联' }),
'x-decorator': 'FormItem',
'x-component': 'GroupSelect',
'x-component-props': {
@@ -331,7 +341,7 @@ const registerMeta = context => {
},
nodeWeightFieldFromEdge: {
type: 'string',
- title: '斥力权重关联',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.RepulsionWeightAssociation', dm: '斥力权重关联' }),
'x-decorator': 'FormItem',
'x-component': 'GroupSelect',
'x-component-props': {
@@ -344,7 +354,7 @@ const registerMeta = context => {
},
nodeWeightFieldScale: {
type: 'string',
- title: '斥力权重关联归一',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.RepulsiveWeightAssociation', dm: '斥力权重关联归一' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -353,7 +363,7 @@ const registerMeta = context => {
default: 1,
},
directed: {
- title: '启用有向力',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.EnableDirectionalForce', dm: '启用有向力' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -387,21 +397,22 @@ const registerMeta = context => {
},
directedFromType: {
- title: '资金关联元素',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.CapitalAssociationElements', dm: '资金关联元素' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component-props': {},
'x-component': 'Radio.Group',
enum: [
{
- label: '节点属性',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.NodeProperties', dm: '节点属性' }),
value: 'node',
},
{
- label: '相关边属性加和',
+ label: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.AddAndAddRelatedEdge', dm: '相关边属性加和' }),
value: 'edge',
},
],
+
default: 'node',
'x-reactions': [
{
@@ -434,7 +445,7 @@ const registerMeta = context => {
],
},
directedInWeightField: {
- title: '入权重字段',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.EnterWeightField', dm: '入权重字段' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -444,7 +455,7 @@ const registerMeta = context => {
default: directedWeightOptions[0]?.value,
},
directedOutWeightField: {
- title: '出权重字段',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.OutputWeightField', dm: '出权重字段' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -455,7 +466,7 @@ const registerMeta = context => {
},
directedAmountFromEdge: {
type: 'string',
- title: '相关边属性',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.RelatedEdgeProperties', dm: '相关边属性' }),
'x-decorator': 'FormItem',
'x-component': 'GroupSelect',
'x-component-props': {
@@ -464,14 +475,14 @@ const registerMeta = context => {
},
},
directedIsLog: {
- title: 'log 映射',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.LogMapping', dm: 'log 映射' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
directedMultiple: {
- title: '倍数映射',
+ title: $i18n.get({ id: 'basic.layouts.Force2.registerMeta.MultipleMapping', dm: '倍数映射' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
diff --git a/packages/gi-assets-basic/src/layouts/FundForce/index.tsx b/packages/gi-assets-basic/src/layouts/FundForce/index.tsx
index c1510087c..b4dbc3678 100644
--- a/packages/gi-assets-basic/src/layouts/FundForce/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/FundForce/index.tsx
@@ -1,7 +1,7 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'FundForce',
options: {
@@ -11,10 +11,13 @@ const info = {
type: 'concentric',
},
},
- name: '资金力导',
+ name: $i18n.get({ id: 'basic.layouts.FundForce.FinancialGuidance', dm: '资金力导' }),
category: 'basic',
type: 'LAYOUT',
- desc: '基于节点字段大小的垂直力导布局',
+ desc: $i18n.get({
+ id: 'basic.layouts.FundForce.VerticalForceGuideLayoutBased',
+ dm: '基于节点字段大小的垂直力导布局',
+ }),
icon: 'icon-layout-force',
cover: 'http://xxxx.jpg',
};
diff --git a/packages/gi-assets-basic/src/layouts/FundForce/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/FundForce/registerMeta.tsx
index fd11e4f52..f4da006b1 100644
--- a/packages/gi-assets-basic/src/layouts/FundForce/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/FundForce/registerMeta.tsx
@@ -1,3 +1,4 @@
+import $i18n from '../../i18n';
const registerMeta = ({ keys, schemaData }) => {
const nodeProperties = schemaData.nodes.reduce((acc, cur) => {
return {
@@ -5,12 +6,11 @@ const registerMeta = ({ keys, schemaData }) => {
...cur.properties,
};
}, {});
-
const options = keys.filter(k => nodeProperties[k] === 'number').map(k => ({ label: k, value: k }));
return {
income: {
- title: '流入资金',
+ title: $i18n.get({ id: 'basic.layouts.FundForce.registerMeta.InflowFunds', dm: '流入资金' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -19,7 +19,7 @@ const registerMeta = ({ keys, schemaData }) => {
default: options[0]?.value,
},
outcome: {
- title: '流出资金',
+ title: $i18n.get({ id: 'basic.layouts.FundForce.registerMeta.OutflowFunds', dm: '流出资金' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -27,9 +27,15 @@ const registerMeta = ({ keys, schemaData }) => {
},
default: options[0]?.value,
},
- isLog: { title: 'log 映射', type: 'boolean', 'x-decorator': 'FormItem', 'x-component': 'Switch', default: true },
+ isLog: {
+ title: $i18n.get({ id: 'basic.layouts.FundForce.registerMeta.LogMapping', dm: 'log 映射' }),
+ type: 'boolean',
+ 'x-decorator': 'FormItem',
+ 'x-component': 'Switch',
+ default: true,
+ },
multiple: {
- title: '倍数映射',
+ title: $i18n.get({ id: 'basic.layouts.FundForce.registerMeta.MultipleMapping', dm: '倍数映射' }),
type: 'string',
'x-decorator': 'FormItem',
'x-component': 'Input',
diff --git a/packages/gi-assets-basic/src/layouts/GraphinForce/index.tsx b/packages/gi-assets-basic/src/layouts/GraphinForce/index.tsx
index 18532deb4..eebea01dd 100644
--- a/packages/gi-assets-basic/src/layouts/GraphinForce/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/GraphinForce/index.tsx
@@ -1,7 +1,7 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'GraphinForce',
options: {
@@ -11,10 +11,13 @@ const info = {
type: 'concentric',
},
},
- name: '渐进力导',
+ name: $i18n.get({ id: 'basic.layouts.GraphinForce.ProgressiveForceGuide', dm: '渐进力导' }),
category: 'basic',
type: 'LAYOUT',
- desc: '渐进式力导布局,可用于动态布局',
+ desc: $i18n.get({
+ id: 'basic.layouts.GraphinForce.ProgressiveForceDirectedLayoutFor',
+ dm: '渐进式力导布局,可用于动态布局',
+ }),
icon: 'icon-layout-force',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/tr6ibufmbiggp5s8',
diff --git a/packages/gi-assets-basic/src/layouts/GraphinForce/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/GraphinForce/registerMeta.tsx
index 8b04c22d5..99bd84993 100644
--- a/packages/gi-assets-basic/src/layouts/GraphinForce/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/GraphinForce/registerMeta.tsx
@@ -1,26 +1,31 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
const presetOptions = [
{
- label: '网格布局',
+ label: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.GridLayout', dm: '网格布局' }),
value: 'grid',
},
{
- label: '环形布局',
+ label: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.CircularLayout', dm: '环形布局' }),
value: 'circular',
},
{
- label: '同心圆布局',
+ label: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.ConcentricCircleLayout', dm: '同心圆布局' }),
value: 'concentric',
},
{
- label: '有向分层',
+ label: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.DirectedLayering', dm: '有向分层' }),
value: 'dagre',
},
];
+
return {
stiffness: {
type: 'number',
- title: '弹簧劲度系数',
+ title: $i18n.get({
+ id: 'basic.layouts.GraphinForce.registerMeta.SpringStiffnessCoefficient',
+ dm: '弹簧劲度系数',
+ }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -29,7 +34,10 @@ const registerMeta = context => {
default: 200,
},
repulsion: {
- title: '库伦常量Ke(斥力)',
+ title: $i18n.get({
+ id: 'basic.layouts.GraphinForce.registerMeta.CullenConstantKeRepulsion',
+ dm: '库伦常量Ke(斥力)',
+ }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -37,7 +45,7 @@ const registerMeta = context => {
default: 1000,
},
damping: {
- title: '阻尼系数',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.DampingCoefficient', dm: '阻尼系数' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -49,7 +57,7 @@ const registerMeta = context => {
default: 0.9,
},
animation: {
- title: '启用动画',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.EnableAnimation', dm: '启用动画' }),
type: 'boolean',
'x-decorator': 'FormItem',
'x-component': 'Switch',
@@ -60,7 +68,7 @@ const registerMeta = context => {
properties: {
type: {
type: 'string',
- title: '前置布局',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.FrontLayout', dm: '前置布局' }),
'x-component': 'Select',
'x-decorator': 'FormItem',
'x-component-props': {
@@ -74,21 +82,24 @@ const registerMeta = context => {
type: 'object',
properties: {
minLimitDegree: {
- title: '最小界限度数',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.MinimumLimitDegree', dm: '最小界限度数' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 5,
},
maxLimitLength: {
- title: '最大限制边长',
+ title: $i18n.get({
+ id: 'basic.layouts.GraphinForce.registerMeta.MaximumLimitSideLength',
+ dm: '最大限制边长',
+ }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 500,
},
defaultSpring: {
- title: '默认边长',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.DefaultSideLength', dm: '默认边长' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
@@ -100,21 +111,21 @@ const registerMeta = context => {
type: 'object',
properties: {
leaf: {
- title: '叶子节点',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.LeafNode', dm: '叶子节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 2,
},
single: {
- title: '孤立节点',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.IsolatedNode', dm: '孤立节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 2,
},
others: {
- title: '其他节点',
+ title: $i18n.get({ id: 'basic.layouts.GraphinForce.registerMeta.OtherNodes', dm: '其他节点' }),
type: 'number',
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
diff --git a/packages/gi-assets-basic/src/layouts/Grid/index.tsx b/packages/gi-assets-basic/src/layouts/Grid/index.tsx
index 89bc00696..1977641d1 100644
--- a/packages/gi-assets-basic/src/layouts/Grid/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Grid/index.tsx
@@ -1,16 +1,16 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Grid',
options: {
type: 'grid',
},
- name: '网格布局',
+ name: $i18n.get({ id: 'basic.layouts.Grid.GridLayout', dm: '网格布局' }),
category: 'basic',
type: 'LAYOUT',
- desc: '节点按照网格排布',
+ desc: $i18n.get({ id: 'basic.layouts.Grid.NodesAreArrangedByGrid', dm: '节点按照网格排布' }),
icon: 'icon-layout-grid-fill',
cover: 'http://xxxx.jpg',
docs: 'https://www.yuque.com/antv/gi/aaoz8n0lmvxxevml',
diff --git a/packages/gi-assets-basic/src/layouts/Grid/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Grid/registerMeta.tsx
index c6593b033..3e5c7ef89 100644
--- a/packages/gi-assets-basic/src/layouts/Grid/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Grid/registerMeta.tsx
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
return {
rows: {
type: 'number',
- title: '网格行数',
+ title: $i18n.get({ id: 'basic.layouts.Grid.registerMeta.NumberOfGridRows', dm: '网格行数' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -11,7 +12,7 @@ const registerMeta = context => {
},
cols: {
type: 'slider',
- title: '网格列数',
+ title: $i18n.get({ id: 'basic.layouts.Grid.registerMeta.NumberOfGridColumns', dm: '网格列数' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -20,7 +21,7 @@ const registerMeta = context => {
},
sortBy: {
type: 'select',
- title: '排序依据',
+ title: $i18n.get({ id: 'basic.layouts.Grid.registerMeta.Sort', dm: '排序依据' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
diff --git a/packages/gi-assets-basic/src/layouts/Radial/index.tsx b/packages/gi-assets-basic/src/layouts/Radial/index.tsx
index e0571c354..b95fff8af 100644
--- a/packages/gi-assets-basic/src/layouts/Radial/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Radial/index.tsx
@@ -1,16 +1,16 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Radial',
options: {
type: 'radial',
},
- name: '径向布局',
+ name: $i18n.get({ id: 'basic.layouts.Radial.RadialLayout', dm: '径向布局' }),
category: 'basic',
type: 'LAYOUT',
- desc: '辐射布局',
+ desc: $i18n.get({ id: 'basic.layouts.Radial.RadiationLayout', dm: '辐射布局' }),
icon: 'icon-layout-radial',
cover: 'http://xxxx.jpg',
};
diff --git a/packages/gi-assets-basic/src/layouts/Radial/registerMeta.tsx b/packages/gi-assets-basic/src/layouts/Radial/registerMeta.tsx
index 71afa5c59..df90c6b92 100644
--- a/packages/gi-assets-basic/src/layouts/Radial/registerMeta.tsx
+++ b/packages/gi-assets-basic/src/layouts/Radial/registerMeta.tsx
@@ -1,8 +1,9 @@
+import $i18n from '../../i18n';
const registerMeta = context => {
return {
unitRadius: {
type: 'number',
- title: '层级距离',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.LevelDistance', dm: '层级距离' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {
@@ -12,27 +13,27 @@ const registerMeta = context => {
},
linkDistance: {
type: 'number',
- title: '边长',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.SideLength', dm: '边长' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 200,
},
nodeSize: {
type: 'number',
- title: '节点大小',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.NodeSize', dm: '节点大小' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
default: 60,
},
focusNode: {
type: 'string',
- title: '中心节点',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.CentralNode', dm: '中心节点' }),
'x-decorator': 'FormItem',
'x-component': 'Select',
},
nodeSpacing: {
type: 'number',
- title: '节点间距',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.NodeSpacing', dm: '节点间距' }),
'x-decorator': 'FormItem',
'x-component': 'NumberPicker',
'x-component-props': {},
@@ -40,14 +41,14 @@ const registerMeta = context => {
},
preventOverlap: {
type: 'boolean',
- title: '防止重叠',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.PreventOverlap', dm: '防止重叠' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
},
strictRadial: {
type: 'boolean',
- title: '严格辐射',
+ title: $i18n.get({ id: 'basic.layouts.Radial.registerMeta.StrictRadiation', dm: '严格辐射' }),
'x-decorator': 'FormItem',
'x-component': 'Switch',
default: true,
diff --git a/packages/gi-assets-basic/src/layouts/Random/index.tsx b/packages/gi-assets-basic/src/layouts/Random/index.tsx
index b129552fe..b8101c0dc 100644
--- a/packages/gi-assets-basic/src/layouts/Random/index.tsx
+++ b/packages/gi-assets-basic/src/layouts/Random/index.tsx
@@ -1,14 +1,14 @@
import registerLayout from './registerLayout';
import registerMeta from './registerMeta';
-/** index.md 中解析得到默认值,也可用户手动修改 */
+/** index.md 中解析得到默认值,也可用户手动修改 */ import $i18n from '../../i18n';
const info = {
id: 'Random',
/** 该布局资产下的布局的参数 */
options: {
type: 'custom-random',
},
- name: '随机布局',
+ name: $i18n.get({ id: 'basic.layouts.Random.RandomLayout', dm: '随机布局' }),
category: 'custom',
type: 'LAYOUT',
desc: '',
diff --git a/packages/gi-assets-basic/src/locales/en-US.ts b/packages/gi-assets-basic/src/locales/en-US.ts
deleted file mode 100644
index 48254e451..000000000
--- a/packages/gi-assets-basic/src/locales/en-US.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import FilterPanel from '../components/FilterPanel/locales';
-import { LANGUAGE_KEY_NAME } from '@antv/gi-sdk';
-
-export default {
- language: LANGUAGE_KEY_NAME.EnUs,
- ...FilterPanel[LANGUAGE_KEY_NAME.EnUs],
-};
diff --git a/packages/gi-assets-basic/src/locales/index.ts b/packages/gi-assets-basic/src/locales/index.ts
deleted file mode 100644
index 43dc21d6a..000000000
--- a/packages/gi-assets-basic/src/locales/index.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import enUS from './en-US';
-import zhCN from './zh-CN';
-import { LANGUAGE_KEY_NAME } from '@antv/gi-sdk';
-
-export default {
- [LANGUAGE_KEY_NAME.EnUs]: enUS,
- [LANGUAGE_KEY_NAME.ZhCN]: zhCN,
-};
diff --git a/packages/gi-assets-basic/src/locales/zh-CN.ts b/packages/gi-assets-basic/src/locales/zh-CN.ts
deleted file mode 100644
index e38cb6eb0..000000000
--- a/packages/gi-assets-basic/src/locales/zh-CN.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import FilterPanel from '../components/FilterPanel/locales';
-import { LANGUAGE_KEY_NAME } from '@antv/gi-sdk';
-
-export default {
- language: LANGUAGE_KEY_NAME.ZhCN,
- ...FilterPanel[LANGUAGE_KEY_NAME.ZhCN],
-};
diff --git a/packages/gi-assets-basic/src/services/NeighborsQuery.ts b/packages/gi-assets-basic/src/services/NeighborsQuery.ts
index 118b84730..069c39ec1 100644
--- a/packages/gi-assets-basic/src/services/NeighborsQuery.ts
+++ b/packages/gi-assets-basic/src/services/NeighborsQuery.ts
@@ -1,4 +1,5 @@
import { GIGraphData, ServiceObject } from '@antv/gi-sdk';
+import $i18n from '../i18n';
export interface ReqNeighborsQuery {
//扩散的节点,是个节点ID数组
@@ -18,46 +19,17 @@ export interface ResNeighborsQuery {
}
export const NeighborsQuery: ServiceObject = {
- name: '邻居查询',
+ name: $i18n.get({ id: 'basic.src.services.NeighborsQuery.NeighborQuery', dm: '邻居查询' }),
method: 'POST',
- req: `
- export interface ReqNeighborsQuery {
- //扩散的节点,是个节点ID数组
- ids: string[];
- //扩散的节点的全部信息
- nodes: any[];
- //扩散的度数
- sep: number;
- }
- `,
- res: `
- export interface GIGraphData {
- nodes: {
- // 节点ID
- id: string;
- // 节点类型的枚举值。Property Graph 也称之为 node.label
- nodeType: string;
- // 业务数据,注意需要打平,暂不支持嵌套
- data: {};
- // 业务数据(data)中的哪个字段,用来映射节点类型
- nodeTypeKeyFromProperties?: string;
- }[];
- edges: {
- // 边ID
- id: string;
- // 边关联的 source 节点ID
- source: string;
- // 边关联的 target 节点ID
- target: string;
- // 边类型的枚举值。Property Graph 也称之为 edge.label
- edgeType: string;
- // 业务数据,注意需要打平,暂不支持嵌套
- data: {};
- // 业务数据(data)中的哪个字段,用来映射边类型
- edgeTypeKeyFromProperties?: string;
- }[];
- }
- `,
+ req: $i18n.get({
+ id: 'basic.src.services.NeighborsQuery.ExportInterfaceReqneighborsqueryTheDiffused',
+ dm: '\n export interface ReqNeighborsQuery {\n //扩散的节点,是个节点ID数组\n ids: string[];\n //扩散的节点的全部信息\n nodes: any[];\n //扩散的度数\n sep: number;\n } \n ',
+ }),
+
+ res: $i18n.get({
+ id: 'basic.src.services.NeighborsQuery.ExportInterfaceGigraphdataNodesNode',
+ dm: '\n export interface GIGraphData {\n nodes: {\n // 节点ID\n id: string;\n // 节点类型的枚举值。Property Graph 也称之为 node.label\n nodeType: string;\n // 业务数据,注意需要打平,暂不支持嵌套\n data: {};\n // 业务数据(data)中的哪个字段,用来映射节点类型\n nodeTypeKeyFromProperties?: string;\n }[];\n edges: {\n // 边ID\n id: string;\n // 边关联的 source 节点ID\n source: string;\n // 边关联的 target 节点ID\n target: string;\n // 边类型的枚举值。Property Graph 也称之为 edge.label\n edgeType: string;\n // 业务数据,注意需要打平,暂不支持嵌套\n data: {};\n // 业务数据(data)中的哪个字段,用来映射边类型\n edgeTypeKeyFromProperties?: string;\n }[];\n }\n ',
+ }),
service: (params: ReqNeighborsQuery): Promise => {
const { ids, nodes: NODES } = params;
@@ -104,6 +76,7 @@ export const NeighborsQuery: ServiceObject = {
nodeType,
},
],
+
edges: [
{
source: id,
diff --git a/packages/gi-assets-basic/src/services/PropertiesPanel.ts b/packages/gi-assets-basic/src/services/PropertiesPanel.ts
index 76aa15946..dfba01f97 100644
--- a/packages/gi-assets-basic/src/services/PropertiesPanel.ts
+++ b/packages/gi-assets-basic/src/services/PropertiesPanel.ts
@@ -1,3 +1,4 @@
+import $i18n from '../i18n';
export interface ReqPropertiesPanel {
/** 节点 或者 边的详细信息 */
data: any;
@@ -8,19 +9,17 @@ export interface ResPropertiesPanel {
}
export const PropertiesPanel = {
- name: '查询属性详情',
- req: `
- export interface ReqPropertiesPanel {
- /** 节点 或者 边的详细信息 */
- data: any;
- }
- `,
- res: `
- export interface ResPropertiesPanel {
- /** 节点 或 边的详细信息 */
- [key: string]: any;
- }
- `,
+ name: $i18n.get({ id: 'basic.src.services.PropertiesPanel.QueryAttributeDetails', dm: '查询属性详情' }),
+ req: $i18n.get({
+ id: 'basic.src.services.PropertiesPanel.ExportInterfaceReqpropertiespanelDetailsOf',
+ dm: '\n export interface ReqPropertiesPanel {\n /** 节点 或者 边的详细信息 */\n data: any;\n }\n ',
+ }),
+
+ res: $i18n.get({
+ id: 'basic.src.services.PropertiesPanel.ExportInterfaceRespropertiespanelDetailsOf',
+ dm: '\n export interface ResPropertiesPanel {\n /** 节点 或 边的详细信息 */\n [key: string]: any;\n }\n ',
+ }),
+
service: (params: ReqPropertiesPanel): Promise => {
const { data } = params;
return new Promise(resolve => {
diff --git a/packages/gi-assets-basic/src/services/WatermarkService.ts b/packages/gi-assets-basic/src/services/WatermarkService.ts
index bd97f0645..d34542450 100644
--- a/packages/gi-assets-basic/src/services/WatermarkService.ts
+++ b/packages/gi-assets-basic/src/services/WatermarkService.ts
@@ -1,33 +1,23 @@
+import $i18n from '../i18n';
export const WatermarkService = {
- name: '水印服务',
+ name: $i18n.get({ id: 'basic.src.services.WatermarkService.WatermarkService', dm: '水印服务' }),
req: '',
- res: `
- export interface WatermarkResParams {
- /** 保存是否成功 */
- success: boolean;
- /** 信息提示 **/
- msg: string;
- /** 返回数据 */
- data: {
- /** 水印文字内容 */
- content ?: string[] | string;
- /** 水印图片源
- * 注意:优先级 image > content, 当使用图片水印且图片加载异常, 会使用 content */
- image ?: string;
- }
- }
- `,
+ res: $i18n.get({
+ id: 'basic.src.services.WatermarkService.ExportInterfaceWatermarkresparamsSaveSuccessfully',
+ dm: '\n export interface WatermarkResParams {\n /** 保存是否成功 */\n success: boolean;\n /** 信息提示 **/\n msg: string;\n /** 返回数据 */\n data: {\n /** 水印文字内容 */\n content ?: string[] | string;\n /** 水印图片源\n * 注意:优先级 image > content, 当使用图片水印且图片加载异常, 会使用 content */\n image ?: string;\n }\n }\n ',
+ }),
+
service: async () => {
//@ts-ignore
const { GI_USER_INFO: user } = window;
- let data = { content: '这是一行水印' };
+ let data = { content: $i18n.get({ id: 'basic.src.services.WatermarkService.ThisIsALineOf', dm: '这是一行水印' }) };
if (user) {
const { realName, outUserNo, nickName } = user;
data = { content: `${realName}(${nickName})${outUserNo}` };
}
return {
success: true,
- msg: '获取水印成功!',
+ msg: $i18n.get({ id: 'basic.src.services.WatermarkService.TheWatermarkIsObtained', dm: '获取水印成功!' }),
data,
};
},
diff --git a/packages/gi-assets-basic/src/services/index.ts b/packages/gi-assets-basic/src/services/index.ts
index b97f2b87a..0e765f13c 100644
--- a/packages/gi-assets-basic/src/services/index.ts
+++ b/packages/gi-assets-basic/src/services/index.ts
@@ -3,12 +3,16 @@ import * as NeighborsQueryServices from './NeighborsQuery';
import * as PropertiesPanel from './PropertiesPanel';
import * as Save from './Save';
import * as WatermarkService from './WatermarkService';
+import $i18n from '../i18n';
export default {
id: 'GI',
type: 'file',
name: 'GraphJSON',
- desc: 'G6VP 官方提供的本地文件导入服务,根据部署环境的不同,可以将数据存储在浏览器 IndexDB 或者 云端服务器中',
+ desc: $i18n.get({
+ id: 'basic.src.services.TheLocalFileImportService',
+ dm: 'G6VP 官方提供的本地文件导入服务,根据部署环境的不同,可以将数据存储在浏览器 IndexDB 或者 云端服务器中',
+ }),
cover: 'https://gw.alipayobjects.com/mdn/rms_0d75e8/afts/img/A*3YEZS6qSRgAAAAAAAAAAAAAAARQnAQ',
services: {
...PropertiesPanel,
diff --git a/packages/gi-assets-basic/src/templates/Query.tsx b/packages/gi-assets-basic/src/templates/Query.tsx
index 75cee8bb4..3be32fd81 100644
--- a/packages/gi-assets-basic/src/templates/Query.tsx
+++ b/packages/gi-assets-basic/src/templates/Query.tsx
@@ -1,10 +1,11 @@
import { template } from '@antv/gi-sdk';
// 页面布局容器
+import $i18n from '../i18n';
const pageLayout = {
id: 'UadLayout',
type: 'GICC_LAYOUT',
- name: '上下布局',
+ name: $i18n.get({ id: 'basic.src.templates.Query.UpperAndLowerLayout', dm: '上下布局' }),
props: {
containers: [
{
@@ -25,7 +26,7 @@ const addComponents = [
{
id: 'GremlinQuery',
type: 'GIAC_CONTENT',
- name: 'Gremlin 查询',
+ name: $i18n.get({ id: 'basic.src.templates.Query.GremlinQuery', dm: 'Gremlin 查询' }),
props: {
serviceId: 'GraphScope/GremlinQuery',
isShowPublishButton: false,
@@ -60,7 +61,7 @@ const addComponents = [
{
id: 'TableMode',
type: 'GIAC_CONTENT',
- name: '表格模式',
+ name: $i18n.get({ id: 'basic.src.templates.Query.TableMode', dm: '表格模式' }),
props: {
enableCopy: true,
isSelectedActive: true,
@@ -69,11 +70,14 @@ const addComponents = [
visible: false,
disabled: false,
isShowTitle: true,
- title: '表格模式',
+ title: $i18n.get({ id: 'basic.src.templates.Query.TableMode', dm: '表格模式' }),
isShowIcon: true,
icon: 'icon-table',
isShowTooltip: true,
- tooltip: '将画布中的节点和边以表格形式展示',
+ tooltip: $i18n.get({
+ id: 'basic.src.templates.Query.ShowNodesAndEdgesIn',
+ dm: '将画布中的节点和边以表格形式展示',
+ }),
tooltipColor: '#3056e3',
tooltipPlacement: 'right',
hasDivider: false,
@@ -92,7 +96,7 @@ const addComponents = [
{
id: 'JSONMode',
type: 'GIAC_CONTENT',
- name: '代码模式',
+ name: $i18n.get({ id: 'basic.src.templates.Query.CodeMode', dm: '代码模式' }),
props: {
theme: 'rjv-default',
GI_CONTAINER_INDEX: 2,
@@ -100,11 +104,11 @@ const addComponents = [
visible: false,
disabled: false,
isShowTitle: true,
- title: '代码模式',
+ title: $i18n.get({ id: 'basic.src.templates.Query.CodeMode', dm: '代码模式' }),
isShowIcon: true,
icon: 'icon-table',
isShowTooltip: true,
- tooltip: '将数据以代码形式展示',
+ tooltip: $i18n.get({ id: 'basic.src.templates.Query.ShowDataInCode', dm: '将数据以代码形式展示' }),
tooltipColor: '#3056e3',
tooltipPlacement: 'right',
hasDivider: false,
@@ -123,7 +127,7 @@ const addComponents = [
{
id: 'SideTabs',
type: 'GICC',
- name: '侧边栏',
+ name: $i18n.get({ id: 'basic.src.templates.Query.Sidebar', dm: '侧边栏' }),
props: {
GI_CONTAINER: ['FilterPanel', 'NodeImportance', 'CommunityDetection', 'PatternMatch'],
outSideFromCanvas: true,
@@ -138,18 +142,21 @@ const addComponents = [
{
id: 'StructAnalysis',
type: 'GIAC_CONTENT',
- name: '路径结构分析',
+ name: $i18n.get({ id: 'basic.src.templates.Query.PathStructureAnalysis', dm: '路径结构分析' }),
props: {
GI_CONTAINER_INDEX: 2,
GIAC_CONTENT: {
visible: false,
disabled: false,
isShowTitle: true,
- title: '路径结构分析',
+ title: $i18n.get({ id: 'basic.src.templates.Query.PathStructureAnalysis', dm: '路径结构分析' }),
isShowIcon: true,
icon: 'icon-layout-tree',
isShowTooltip: true,
- tooltip: '自动解析画布所有路径,做聚合分析',
+ tooltip: $i18n.get({
+ id: 'basic.src.templates.Query.AutomaticallyParseAllPathsOf',
+ dm: '自动解析画布所有路径,做聚合分析',
+ }),
tooltipColor: '#3056e3',
tooltipPlacement: 'right',
hasDivider: false,
@@ -168,18 +175,21 @@ const addComponents = [
{
id: 'InfoDetection',
type: 'GIAC_CONTENT',
- name: '信息检测',
+ name: $i18n.get({ id: 'basic.src.templates.Query.InformationDetection', dm: '信息检测' }),
props: {
GI_CONTAINER_INDEX: 2,
GIAC_CONTENT: {
visible: false,
disabled: false,
isShowTitle: false,
- title: '信息检测',
+ title: $i18n.get({ id: 'basic.src.templates.Query.InformationDetection', dm: '信息检测' }),
isShowIcon: true,
icon: 'icon-infomation',
isShowTooltip: true,
- tooltip: '检测画布中孤立点、环等',
+ tooltip: $i18n.get({
+ id: 'basic.src.templates.Query.DetectIsolatedPointsRingsEtc',
+ dm: '检测画布中孤立点、环等',
+ }),
tooltipColor: '#3056e3',
tooltipPlacement: 'right',
hasDivider: false,
@@ -198,14 +208,14 @@ const addComponents = [
{
id: 'NodeImportance',
type: 'GIAC_CONTENT',
- name: '节点重要性',
+ name: $i18n.get({ id: 'basic.src.templates.Query.NodeImportance', dm: '节点重要性' }),
props: {
GI_CONTAINER_INDEX: 2,
GIAC_CONTENT: {
visible: false,
disabled: false,
isShowTitle: false,
- title: '节点重要性',
+ title: $i18n.get({ id: 'basic.src.templates.Query.NodeImportance', dm: '节点重要性' }),
isShowIcon: true,
icon: 'icon-rules',
isShowTooltip: true,
@@ -228,14 +238,14 @@ const addComponents = [
{
id: 'CommunityDetection',
type: 'GIAC_CONTENT',
- name: '社区发现',
+ name: $i18n.get({ id: 'basic.src.templates.Query.CommunityDiscovery', dm: '社区发现' }),
props: {
GI_CONTAINER_INDEX: 2,
GIAC_CONTENT: {
visible: false,
disabled: false,
isShowTitle: false,
- title: '社区发现',
+ title: $i18n.get({ id: 'basic.src.templates.Query.CommunityDiscovery', dm: '社区发现' }),
isShowIcon: true,
icon: 'icon-associate',
isShowTooltip: true,
@@ -258,14 +268,14 @@ const addComponents = [
{
id: 'PatternMatch',
type: 'GIAC_CONTENT',
- name: '模式匹配',
+ name: $i18n.get({ id: 'basic.src.templates.Query.PatternMatching', dm: '模式匹配' }),
props: {
GI_CONTAINER_INDEX: 2,
GIAC_CONTENT: {
visible: false,
disabled: false,
isShowTitle: false,
- title: '模式匹配',
+ title: $i18n.get({ id: 'basic.src.templates.Query.PatternMatching', dm: '模式匹配' }),
isShowIcon: true,
icon: 'icon-query-path',
isShowTooltip: true,
@@ -288,7 +298,7 @@ const addComponents = [
{
id: 'CypherQuery',
type: 'GIAC_CONTENT',
- name: 'Cypher 语句查询',
+ name: $i18n.get({ id: 'basic.src.templates.Query.CypherStatementQuery', dm: 'Cypher 语句查询' }),
props: {
serviceId: 'TuGraph/CypherQuery',
isShowPublishButton: false,
@@ -299,7 +309,7 @@ const addComponents = [
visible: false,
disabled: false,
isShowTitle: true,
- title: 'Cypher 语句查询',
+ title: $i18n.get({ id: 'basic.src.templates.Query.CypherStatementQuery', dm: 'Cypher 语句查询' }),
isShowIcon: true,
icon: 'icon-query',
isShowTooltip: true,
@@ -336,10 +346,16 @@ export const activeAssetsKeys = {
};
export default {
- name: '查询模版',
+ name: $i18n.get({ id: 'basic.src.templates.Query.QueryTemplate', dm: '查询模版' }),
id: 'TP_QUERY',
image: `/image/tp_query.png`,
- desc: `以查询语句为主体的模版,包含 ${activeAssetsKeys.components.length} 个分析资产,页面布局呈上下分布,最上方集成「Gremlin」或者「Cypher」查询语句,常用于数据库查询场景。`,
+ desc: $i18n.get(
+ {
+ id: 'basic.src.templates.Query.TheTemplateWithTheQuery',
+ dm: '以查询语句为主体的模版,包含 {activeAssetsKeysComponentsLength} 个分析资产,页面布局呈上下分布,最上方集成「Gremlin」或者「Cypher」查询语句,常用于数据库查询场景。',
+ },
+ { activeAssetsKeysComponentsLength: activeAssetsKeys.components.length },
+ ),
activeAssetsKeys,
...config,
};
diff --git a/packages/gi-assets-basic/src/templates/Simple.tsx b/packages/gi-assets-basic/src/templates/Simple.tsx
index dc259f88e..95970bbbc 100644
--- a/packages/gi-assets-basic/src/templates/Simple.tsx
+++ b/packages/gi-assets-basic/src/templates/Simple.tsx
@@ -1,13 +1,14 @@
import { template } from '@antv/gi-sdk';
+import $i18n from '../i18n';
const pageLayout = {
id: 'SegmentedLayout',
- name: '分段布局',
+ name: $i18n.get({ id: 'basic.src.templates.Simple.SegmentLayout', dm: '分段布局' }),
props: {
containers: [
{
id: 'GI_CONTAINER_SIDE',
- name: '侧边容器',
+ name: $i18n.get({ id: 'basic.src.templates.Simple.SideContainer', dm: '侧边容器' }),
required: true,
GI_CONTAINER: ['FilterPanel'],
display: true,
@@ -33,9 +34,15 @@ export const activeAssetsKeys = {
};
export default {
- name: '极简模版',
+ name: $i18n.get({ id: 'basic.src.templates.Simple.MinimalistTemplate', dm: '极简模版' }),
id: 'TP_SIMPLE',
- desc: `该模版是官方提供的极简模版,包含 ${activeAssetsKeys.components.length} 个分析资产,提供常见的「交互分析」「筛选看数」等功能,页面布局上,画布展示空间较大,提供沉浸式分析体验`,
+ desc: $i18n.get(
+ {
+ id: 'basic.src.templates.Simple.ThisTemplateIsAnOfficial',
+ dm: '该模版是官方提供的极简模版,包含 {activeAssetsKeysComponentsLength} 个分析资产,提供常见的「交互分析」「筛选看数」等功能,页面布局上,画布展示空间较大,提供沉浸式分析体验',
+ },
+ { activeAssetsKeysComponentsLength: activeAssetsKeys.components.length },
+ ),
image: `/image/tp_simple.png`,
activeAssetsKeys,
...config,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f245889f4..216384ffa 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -264,6 +264,12 @@ importers:
packages/gi-assets-basic:
dependencies:
+ '@aligov/global-locale':
+ specifier: ^1.0.5
+ version: 1.0.5
+ '@aligov/global-string-format':
+ specifier: ^1.0.7
+ version: 1.0.7
'@ant-design/icons':
specifier: latest
version: 5.1.4(react-dom@17.0.2)(react@17.0.2)
@@ -363,7 +369,7 @@ importers:
devDependencies:
dumi:
specifier: ^1.1.38
- version: 1.1.50(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)(typescript@4.9.5)
+ version: 1.1.50(react-dom@16.14.0)(react-router@6.12.1)(react@17.0.2)(typescript@4.9.5)
father:
specifier: ^2.30.6
version: 2.30.23(@babel/core@7.22.5)(@storybook/source-loader@7.0.20)(@types/react@17.0.61)(eslint@7.32.0)(jest@29.5.0)(react-dom@16.14.0)(react@17.0.2)(regenerator-runtime@0.13.11)(typescript@4.9.5)(webpack-cli@4.10.0)(webpack@5.86.0)
@@ -375,7 +381,7 @@ importers:
version: 3.0.2
umi:
specifier: ^3.5.20
- version: 3.5.41(react-router@5.2.0)
+ version: 3.5.41(react-router@6.12.1)
webpack:
specifier: ^5.53.0
version: 5.86.0(webpack-cli@4.10.0)
@@ -17706,7 +17712,7 @@ packages:
peerDependencies:
umi: 3.x
dependencies:
- umi: 3.5.41(react-router@5.2.0)
+ umi: 3.5.41(react-router@6.12.1)
/@umijs/plugin-antd@0.13.0(react-dom@17.0.2)(react@17.0.2)(umi@3.5.41):
resolution: {integrity: sha512-7tooYtOylVatrzMWCJtk8JFQL90i94OD0FgZYpKBbM7keThH8prYkSkDJFIDkuGfZ6pl6BJT8ESnYLxf2OiQUw==}
@@ -17883,69 +17889,6 @@ packages:
transitivePeerDependencies:
- react-dom
- /@umijs/preset-dumi@1.1.50(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)(typescript@4.9.5)(umi@3.5.41):
- resolution: {integrity: sha512-HhKMGct5DEd+ZZxBLbCUvXxnMh4MYlMeFIQXf2Ei9tVaKCeNri4I+BYb93swAmEl2v+2PxrKHCCzXNv07C+9Uw==}
- peerDependencies:
- umi: ^3.0.0
- dependencies:
- '@babel/core': 7.22.5
- '@babel/generator': 7.22.5
- '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5)
- '@babel/traverse': 7.22.5(supports-color@5.5.0)
- '@babel/types': 7.22.5
- '@mapbox/hast-util-to-jsx': 1.0.0
- '@umijs/babel-preset-umi': 3.5.41
- '@umijs/core': 3.5.41
- '@umijs/plugin-analytics': 0.2.3(umi@3.5.41)
- '@umijs/runtime': 3.5.41(react@17.0.2)
- '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)
- '@umijs/utils': 3.5.41
- codesandbox: 2.2.3
- copy-text-to-clipboard: 2.2.0
- deepmerge: 4.3.1
- dumi-assets-types: 1.0.1
- dumi-theme-default: 1.1.24(@umijs/preset-dumi@1.1.50)(react-dom@16.14.0)(react@17.0.2)
- enhanced-resolve: 4.5.0
- github-slugger: 1.5.0
- hast-util-has-property: 1.0.4
- hast-util-is-element: 1.1.0
- hast-util-raw: 6.1.0
- hast-util-to-html: 7.1.3
- hast-util-to-string: 1.0.4
- hosted-git-info: 3.0.8
- ignore: 5.2.4
- js-yaml: 3.14.1
- lodash.throttle: 4.1.1
- lz-string: 1.5.0
- react-docgen-typescript-dumi-tmp: 1.22.1-0(typescript@4.9.5)
- rehype-autolink-headings: 4.0.0
- rehype-mathjax: 3.1.0
- rehype-remove-comments: 4.0.2
- rehype-stringify: 8.0.0
- remark-frontmatter: 3.0.0
- remark-gfm: 1.0.0
- remark-math: 4.0.0
- remark-parse: 9.0.0
- remark-rehype: 8.1.0
- remark-stringify: 9.0.1
- sitemap: 6.4.0
- slash2: 2.0.0
- terser: 5.17.7
- umi: 3.5.41(react-router@5.2.0)
- unified: 8.4.2
- unist-util-visit: 2.0.3
- unist-util-visit-parents: 3.1.1
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - react
- - react-dom
- - react-router
- - supports-color
- - typescript
- - utf-8-validate
- dev: true
-
/@umijs/preset-dumi@1.1.50(react-dom@16.14.0)(react-router@6.12.1)(react@17.0.2)(typescript@4.9.5)(umi@3.5.41):
resolution: {integrity: sha512-HhKMGct5DEd+ZZxBLbCUvXxnMh4MYlMeFIQXf2Ei9tVaKCeNri4I+BYb93swAmEl2v+2PxrKHCCzXNv07C+9Uw==}
peerDependencies:
@@ -18134,23 +18077,6 @@ packages:
transitivePeerDependencies:
- react-router
- /@umijs/renderer-react@3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2):
- resolution: {integrity: sha512-DmExaziU84uFXv09gYXpFk/tHB+mjINUD8YmYULjbQ+QQA9so2zkxNSv9gYy5hXNepheUMd+uriV/qUB6HNBVg==}
- peerDependencies:
- react: 16.x || 17.x || 17
- react-dom: 16.x || 17.x
- dependencies:
- '@types/react': 16.14.43
- '@types/react-dom': 16.9.19
- '@types/react-router-config': 5.0.2
- '@umijs/runtime': 3.5.41(react@17.0.2)
- react: 17.0.2
- react-dom: 16.14.0(react@17.0.2)
- react-router-config: 5.1.1(react-router@5.2.0)(react@17.0.2)
- transitivePeerDependencies:
- - react-router
- dev: true
-
/@umijs/renderer-react@3.5.41(react-dom@16.14.0)(react-router@5.3.4)(react@16.14.0):
resolution: {integrity: sha512-DmExaziU84uFXv09gYXpFk/tHB+mjINUD8YmYULjbQ+QQA9so2zkxNSv9gYy5hXNepheUMd+uriV/qUB6HNBVg==}
peerDependencies:
@@ -18305,22 +18231,6 @@ packages:
- react-dom
- react-router
- /@umijs/types@3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2):
- resolution: {integrity: sha512-pxvLiQ99EL8Yu98F/ZMojG9ukDptC315cnxSnRYOdS34F57oiIgW0Zoi0TrKlA0pVIQxC2MXzyQwy+HfDmB23Q==}
- dependencies:
- '@umijs/babel-preset-umi': 3.5.41
- '@umijs/core': 3.5.41
- '@umijs/deps': 3.5.41
- '@umijs/renderer-react': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)
- '@umijs/server': 3.5.41
- '@umijs/utils': 3.5.41
- webpack-chain: 6.5.1
- transitivePeerDependencies:
- - react
- - react-dom
- - react-router
- dev: true
-
/@umijs/types@3.5.41(react-dom@16.14.0)(react-router@5.3.4)(react@16.14.0):
resolution: {integrity: sha512-pxvLiQ99EL8Yu98F/ZMojG9ukDptC315cnxSnRYOdS34F57oiIgW0Zoi0TrKlA0pVIQxC2MXzyQwy+HfDmB23Q==}
dependencies:
@@ -25981,7 +25891,7 @@ packages:
'@umijs/preset-dumi': 1.x
react: ^16.13.1 || ^17.0.0 || 17
dependencies:
- '@umijs/preset-dumi': 1.1.50(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)(typescript@4.9.5)(umi@3.5.41)
+ '@umijs/preset-dumi': 1.1.50(react-dom@16.14.0)(react-router@6.12.1)(react@17.0.2)(typescript@4.9.5)(umi@3.5.41)
lodash.throttle: 4.1.1
prism-react-renderer: 1.3.5(react@17.0.2)
prismjs: 1.29.0
@@ -26013,23 +25923,6 @@ packages:
- react-dom
dev: false
- /dumi@1.1.50(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)(typescript@4.9.5):
- resolution: {integrity: sha512-8kc+VL62JlVj1zoAaqWN2uE/feSYhzCuFFnWUll+aQgpKKM103DvnkmczqruMqV33gOsy3lWHf01uFu5RUagGg==}
- hasBin: true
- dependencies:
- '@umijs/preset-dumi': 1.1.50(react-dom@16.14.0)(react-router@5.2.0)(react@17.0.2)(typescript@4.9.5)(umi@3.5.41)
- umi: 3.5.41(react-router@5.2.0)
- transitivePeerDependencies:
- - bufferutil
- - canvas
- - react
- - react-dom
- - react-router
- - supports-color
- - typescript
- - utf-8-validate
- dev: true
-
/dumi@1.1.50(react-dom@16.14.0)(react-router@6.12.1)(react@17.0.2)(typescript@4.9.5):
resolution: {integrity: sha512-8kc+VL62JlVj1zoAaqWN2uE/feSYhzCuFFnWUll+aQgpKKM103DvnkmczqruMqV33gOsy3lWHf01uFu5RUagGg==}
hasBin: true
@@ -42882,18 +42775,7 @@ packages:
dependencies:
'@babel/runtime': 7.22.5
react: 16.14.0
- react-router: 5.2.0(react@17.0.2)
-
- /react-router-config@5.1.1(react-router@5.2.0)(react@17.0.2):
- resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
- peerDependencies:
- react: '>=15 || 17'
- react-router: '>=5'
- dependencies:
- '@babel/runtime': 7.22.5
- react: 17.0.2
- react-router: 5.2.0(react@17.0.2)
- dev: true
+ react-router: 5.2.0(react@16.14.0)
/react-router-config@5.1.1(react-router@5.3.4)(react@16.14.0):
resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
@@ -48133,23 +48015,6 @@ packages:
slash2: 2.0.0
dev: true
- /umi@3.5.41(react-router@5.2.0):
- resolution: {integrity: sha512-sjgfFGC3E5jG5Cn8pXdwODDgPW1hnlkn24f7+onNnNdq77syuc4s3R5z7BKQHbjiWtVVIV1VOFMYE9JsJYnOPQ==}
- hasBin: true
- dependencies:
- '@umijs/bundler-webpack': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@16.14.0)
- '@umijs/core': 3.5.41
- '@umijs/deps': 3.5.41
- '@umijs/preset-built-in': 3.5.41(react-dom@16.14.0)(react@16.14.0)
- '@umijs/runtime': 3.5.41(react@16.14.0)
- '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@16.14.0)
- '@umijs/utils': 3.5.41
- react: 16.14.0
- react-dom: 16.14.0(react@16.14.0)
- v8-compile-cache: 2.3.0
- transitivePeerDependencies:
- - react-router
-
/umi@3.5.41(react-router@5.3.4):
resolution: {integrity: sha512-sjgfFGC3E5jG5Cn8pXdwODDgPW1hnlkn24f7+onNnNdq77syuc4s3R5z7BKQHbjiWtVVIV1VOFMYE9JsJYnOPQ==}
hasBin: true