diff --git a/gulpfile.js b/gulpfile.js
index 1c8915dc7..ded5f8fda 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -37,6 +37,18 @@ const componentList = [
'grid'
]
+const languages = [
+ 'zh-CN',
+ 'zh-TC',
+ 'zh-HK',
+ 'zh-MO',
+ 'zh-TW',
+ 'en-US',
+ 'ja-JP',
+ 'es-ES',
+ 'pt-BR'
+]
+
const styleCode = 'require(\'./style.css\')'
const delDir = (directory) => {
@@ -234,6 +246,45 @@ gulp.task('build_single_style', () => {
return merge(...rest)
})
+gulp.task('build_i18n', () => {
+ languages.forEach(code => {
+ fs.writeFileSync(`lib/locale/lang/${code}.d.ts`, 'declare const langMsgs: { [key: string]: any }\nexport default langMsgs')
+ fs.writeFileSync(`es/locale/lang/${code}.d.ts`, 'declare const langMsgs: { [key: string]: any }\nexport default langMsgs')
+ })
+ const rest = languages.map(code => {
+ const name = XEUtils.camelCase(code).replace(/^[a-z]/, firstChat => firstChat.toUpperCase())
+ const isZHTC = ['zh-HK', 'zh-MO', 'zh-TW'].includes(code)
+ return gulp.src(`packages_temp/locale/lang/${isZHTC ? 'zh-TC' : code}.ts`)
+ .pipe(ts(tsSettings))
+ .pipe(babel({
+ moduleId: `vxe-table-lang.${code}`,
+ presets: ['@babel/env'],
+ plugins: [
+ ['@babel/transform-modules-umd', {
+ globals: {
+ [`vxe-table-language.${code}`]: `VXETableLang${name}`
+ },
+ exactGlobals: true
+ }]
+ ]
+ }))
+ .pipe(rename({
+ basename: code,
+ suffix: '.umd',
+ extname: '.js'
+ }))
+ .pipe(gulp.dest('lib/locale/lang'))
+ .pipe(uglify())
+ .pipe(rename({
+ basename: code,
+ suffix: '.min',
+ extname: '.js'
+ }))
+ .pipe(gulp.dest('lib/locale/lang'))
+ })
+ return merge(...rest)
+})
+
gulp.task('copy_pack', () => {
return gulp.src('packages/**')
.pipe(gulp.dest('packages_temp'))
@@ -249,7 +300,7 @@ gulp.task('clear', () => {
gulp.task('build_all', gulp.parallel('build_es_all', 'build_common_all', 'build_umd_all'))
-gulp.task('build', gulp.series('clear', 'copy_pack', 'build_all', 'build_single_style', () => {
+gulp.task('build', gulp.series('clear', 'copy_pack', 'build_all', 'build_i18n', 'build_single_style', () => {
[coreName, ...componentList].forEach(name => {
fs.writeFileSync(`lib/${name}/style/index.js`, styleCode)
fs.writeFileSync(`lib/vxe-${name}/style/index.js`, styleCode)
diff --git a/package.json b/package.json
index 6b54c990c..74f10305a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vxe-table",
- "version": "4.7.0-alpha.16",
+ "version": "4.7.0-alpha.18",
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
"scripts": {
"update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
"style": "lib/style.css",
"typings": "types/index.d.ts",
"dependencies": {
- "vxe-pc-ui": "^1.7.19"
+ "vxe-pc-ui": "^1.8.0"
},
"devDependencies": {
"@types/resize-observer-browser": "^0.1.11",
diff --git a/packages/locale/lang/en-US.ts b/packages/locale/lang/en-US.ts
new file mode 100644
index 000000000..473606eeb
--- /dev/null
+++ b/packages/locale/lang/en-US.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: 'Please input',
+ pleaseSelect: 'Select'
+ },
+ loading: {
+ text: 'Loading...'
+ },
+ error: {
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
+ groupMouseRange: 'Grouping headers and "{0}" cannot be used at the same time, which may cause errors.',
+ groupTag: 'Grouping column header should use "{0}" instead of "{1}", which may cause errors.',
+ scrollErrProp: 'The parameter "{0}" is not supported when virtual scrolling is enabled.',
+ errConflicts: 'Argument "{0}" conflicts with "{1}"',
+ unableInsert: 'Unable to insert to the specified location.',
+ useErr: 'Error installing "{0}" module, possibly in the wrong order, dependent modules need to be installed before Table.',
+ barUnableLink: 'Toolbar cannot associate table.',
+ expandContent: 'Expand row slot should be "content", please check if it is correct.',
+ reqModule: 'require "{0}" module.',
+ reqProp: 'Missing the necessary "{0}" parameter, which can cause error.',
+ emptyProp: 'The property "{0}" is not allowed to be empty.',
+ errProp: 'Unsupported parameter "{0}", possibly "{1}".',
+ colRepet: 'column.{0}="{0}" is duplicated, which may make some features unusable',
+ notFunc: 'method "{0}" not exist.',
+ errFunc: 'The argument "{0}" is not a method',
+ notValidators: 'Global validators "{0}" no existe.',
+ notFormats: 'Global formats "{0}" no existe.',
+ notCommands: 'Global commands "{0}" no existe.',
+ notSlot: 'slot "{0}" does not exist',
+ noTree: 'The tree structure does not support "{0}".',
+ notProp: 'Unsupported parameters "{0}"',
+ checkProp: 'The checkbox may stall when the amount of data is too large, it is recommended to set the parameter "{0}" to increase the rendering speed ',
+ coverProp: 'The parameter "{1}" to "{0}" is repeatedly defined. This may cause an error',
+ delFunc: 'The function "{0}" is deprecated, please use "{1}".',
+ delProp: 'The property "{0}" is deprecated, please use "{1}".',
+ delEvent: 'The event "{0}" is deprecated, please use "{1}"',
+ removeProp: 'The property "{0}" is deprecated and is not recommended, which may cause error.',
+ errFormat: 'The global formatted content should be defined with "VXETable.formats". Mounting "formatter={0}" is not recommended.',
+ notType: 'Unsupported file types "{0}"',
+ notExp: 'The browser does not support import / export.',
+ impFields: 'Import failed, please check that the field name and data format are correct.',
+ treeNotImp: 'Tree table does not support import.'
+ },
+ table: {
+ emptyText: 'No Data',
+ allTitle: 'Select all / cancel',
+ seqTitle: '#',
+ confirmFilter: 'Confirm',
+ resetFilter: 'Reset',
+ allFilter: 'All',
+ sortAsc: 'Ascending: lowest to highest',
+ sortDesc: 'Descending: highest to lowest',
+ filter: 'Enable filtering on selected columns',
+ impSuccess: 'Successfully imported {0} records',
+ expLoading: 'Exporting',
+ expSuccess: 'Export success',
+ expFilename: 'Export_{0}',
+ expOriginFilename: 'Export_original_{0}',
+ customTitle: 'Column settings',
+ customAll: 'All',
+ customConfirm: 'Confirm',
+ customRestore: 'Reset',
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
+ },
+ grid: {
+ selectOneRecord: 'Please choose at least one piece of record!',
+ deleteSelectRecord: 'Are you sure you want to delete the selected record?',
+ removeSelectRecord: 'Are you sure you want to remove the selected record?',
+ dataUnchanged: 'Data unchanged! ',
+ delSuccess: 'Successfully deleted the selected record!',
+ saveSuccess: 'Saved successfully!',
+ operError: 'Error occurred, operation failed!'
+ },
+ select: {
+ search: 'Search',
+ loadingText: 'Loading',
+ emptyText: 'No Data'
+ },
+ pager: {
+ goto: 'Go to',
+ pagesize: '{0}/page',
+ total: 'Total {0} record',
+ pageClassifier: '',
+ homePage: 'Home',
+ homePageTitle: 'Home page',
+ prevPage: 'Previous page',
+ prevPageTitle: 'Previous page',
+ nextPage: 'next page',
+ nextPageTitle: 'next page',
+ prevJump: 'Jump previous page',
+ prevJumpTitle: 'Jump previous page',
+ nextJump: 'Jump next page',
+ nextJumpTitle: 'Jump next page',
+ endPage: 'End page',
+ endPageTitle: 'End'
+ },
+ alert: {
+ title: 'System messages'
+ },
+ button: {
+ confirm: 'Confirm',
+ cancel: 'Cancel'
+ },
+ filter: {
+ search: '搜索'
+ },
+ custom: {
+ cstmTitle: 'Column Settings',
+ cstmRestore: 'Restore default',
+ cstmCancel: 'Cancelar',
+ cstmConfirm: 'Confirm',
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
+ cstmDragTarget: 'Moving target: {0}',
+ setting: {
+ colSort: 'Sort',
+ sortHelpTip: 'Click and drag the icon to adjust the order of the columns.',
+ colTitle: 'Title',
+ colVisible: 'Visible',
+ colFixed: 'Freeze columns (Max. {0})',
+ fixedLeft: 'Left',
+ fixedUnset: 'Unset',
+ fixedRight: 'Right'
+ }
+ },
+ import: {
+ modes: {
+ covering: 'Covering',
+ insert: 'Insert'
+ },
+ impTitle: 'Import data',
+ impFile: 'Filename',
+ impSelect: 'Select file',
+ impType: 'File type',
+ impOpts: 'Settings',
+ impConfirm: 'Import',
+ impCancel: 'Cancel'
+ },
+ export: {
+ types: {
+ csv: 'CSV (Comma separated) (*.csv)',
+ html: 'Web Page (*.html)',
+ xml: 'XML Data(*.xml)',
+ txt: 'Text (Tab delimited) (*.txt)',
+ xls: 'Excel 97-2003 Workbook(*.xls)',
+ xlsx: 'Excel Workbook (*.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: 'Current data (data of current page)',
+ selected: 'Selected data (data selected on the current page)',
+ all: 'Full data (including all paging data)'
+ },
+ printTitle: 'Print data',
+ expTitle: 'Export data',
+ expName: 'Filename',
+ expNamePlaceholder: 'Please enter filename',
+ expSheetName: 'Title',
+ expSheetNamePlaceholder: 'Please enter a title',
+ expType: 'Save the type',
+ expMode: 'Select data',
+ expCurrentColumn: 'All the field',
+ expColumn: 'Select field',
+ expOpts: 'Settings',
+ expOptHeader: 'Header',
+ expHeaderTitle: 'Do I need a header',
+ expOptFooter: 'Footer',
+ expFooterTitle: 'Do you need the footer table',
+ expOptColgroup: 'Group header',
+ expColgroupTitle: 'If it exists, headers with grouping structure are supported',
+ expOptMerge: 'Merge',
+ expMergeTitle: 'If it exists, cells with merged structures are supported',
+ expOptAllExpand: 'Expand nodes',
+ expAllExpandTitle: 'If it exists, all data with tree structure can be expanded',
+ expOptUseStyle: 'Styles',
+ expUseStyleTitle: 'If it exists, cells with styles are supported',
+ expOptOriginal: 'Source data',
+ expOriginalTitle: 'If it is source data, import into the table is supported',
+ expPrint: 'Print',
+ expConfirm: 'Export',
+ expCancel: 'Cancel'
+ },
+ modal: {
+ zoomIn: 'Maximization',
+ zoomOut: 'Reduction',
+ close: 'Close'
+ },
+ drawer: {
+ close: 'Close'
+ },
+ form: {
+ folding: 'Folding',
+ unfolding: 'Unfolding'
+ },
+ toolbar: {
+ import: 'Import',
+ export: 'Export',
+ print: 'Printing',
+ refresh: 'Refresh',
+ zoomIn: 'Full screen',
+ zoomOut: 'Reduction',
+ custom: 'Column settings',
+ customAll: 'All',
+ customConfirm: 'Confirm',
+ customRestore: 'Reset',
+ fixedLeft: 'Freeze on the left',
+ fixedRight: 'Freeze on the right',
+ cancelFixed: 'Unfreeze column'
+ },
+ input: {
+ date: {
+ m1: 'January',
+ m2: 'February',
+ m3: 'March',
+ m4: 'April',
+ m5: 'May',
+ m6: 'June',
+ m7: 'July',
+ m8: 'August',
+ m9: 'September',
+ m10: 'October',
+ m11: 'November',
+ m12: 'December',
+ quarterLabel: '{0}',
+ monthLabel: '{0}',
+ dayLabel: '{1} {0}',
+ labelFormat: {
+ date: 'dd/MM/yyyy',
+ time: 'HH:mm:ss',
+ datetime: 'yyyy-MM-dd HH:mm:ss',
+ week: '[Week] WW, yyyy',
+ month: 'MM/yyyy',
+ quarter: '[Quarter] q, yyyy',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: 'Week',
+ w0: 'Sun',
+ w1: 'Mon',
+ w2: 'Tue',
+ w3: 'Wed',
+ w4: 'Thu',
+ w5: 'Fri',
+ w6: 'Sat'
+ },
+ months: {
+ m0: 'Jan',
+ m1: 'Feb',
+ m2: 'Mar',
+ m3: 'Apr',
+ m4: 'May',
+ m5: 'Jun',
+ m6: 'Jul',
+ m7: 'Aug',
+ m8: 'Sep',
+ m9: 'Oct',
+ m10: 'Nov',
+ m11: 'Dec'
+ },
+ quarters: {
+ q1: 'First quarter',
+ q2: 'Second quarter',
+ q3: 'Third quarter',
+ q4: 'Fourth quarter'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: 'Input',
+ textarea: 'Textarea',
+ select: 'Select'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: 'The operation cannot be performed on merged cells',
+ multiErr: 'The operation cannot be performed on multiple selection areas',
+ extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size',
+ pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation',
+ cpInvalidErr: 'This operation cannot be performed because there are prohibited columns in the area you selected ({0})'
+ },
+ fnr: {
+ title: 'Find and replace',
+ findLabel: 'Find',
+ replaceLabel: 'Replace',
+ findTitle: 'What to find:',
+ replaceTitle: 'Replace with:',
+ tabs: {
+ find: 'Find',
+ replace: 'Replace'
+ },
+ filter: {
+ re: 'Regular Expression',
+ whole: 'Whole word',
+ sensitive: 'Case sensitive'
+ },
+ btns: {
+ findNext: 'Find next',
+ findAll: 'Find all',
+ replace: 'Replace',
+ replaceAll: 'Replace all',
+ cancel: 'Cancel'
+ },
+ header: {
+ seq: '#',
+ cell: 'Cell',
+ value: 'Value'
+ },
+ empty: '(Empty)',
+ reError: 'Invalid regular expression',
+ recordCount: 'Found {0} cells',
+ notCell: 'No matching cells were found',
+ replaceSuccess: 'Successfully replaced {0} cells'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: 'Freeze column',
+ fixedGroup: 'Freeze group',
+ cancelFixed: 'Clear freeze',
+ fixedLeft: 'Freeze the left',
+ fixedRight: 'Freeze the right'
+ },
+ cases: {
+ equal: 'Equal',
+ gt: 'Greater than',
+ lt: 'Less than',
+ begin: 'Beginning is',
+ endin: 'End is',
+ include: 'Include',
+ isSensitive: 'Case sensitive'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: 'Clear sort',
+ sortAsc: 'Ascending order',
+ sortDesc: 'Descending order',
+ fixedColumn: 'Freeze column',
+ fixedGroup: 'Freeze group',
+ cancelFixed: 'Clear freeze',
+ fixedLeft: 'Freeze the left',
+ fixedRight: 'Freeze the right',
+ clearFilter: 'Clear filter',
+ textOption: 'Text filter',
+ numberOption: 'Number filter'
+ },
+ popup: {
+ title: 'Custom filtering',
+ currColumnTitle: 'Current column:',
+ and: 'And',
+ or: 'Or',
+ describeHtml: 'Use ? To represent a single character
use * to represent any number of characters'
+ },
+ cases: {
+ equal: 'Equal',
+ unequal: 'Not equal',
+ gt: 'Greater than',
+ ge: 'Greater than or equal',
+ lt: 'Less than',
+ le: 'Less than or equal',
+ begin: 'Beginning is',
+ notbegin: 'Beginning is not',
+ endin: 'End is',
+ notendin: 'End is not',
+ include: 'Include',
+ exclude: 'Exclusive',
+ between: 'Betweenness',
+ custom: 'Custom filter',
+ insensitive: 'Case insensitive',
+ isSensitive: 'Case sensitive'
+ },
+ empty: '(Empty)',
+ notData: 'No data'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ renderer: {
+ search: 'Search',
+ cases: {
+ equal: 'Equal',
+ unequal: 'Not equal',
+ gt: 'Greater than',
+ ge: 'Greater than or equal',
+ lt: 'Less than',
+ le: 'Less than or equal',
+ begin: 'Beginning is',
+ notbegin: 'Beginning is not',
+ endin: 'End is',
+ notendin: 'End is not',
+ include: 'Include',
+ exclude: 'Exclusive',
+ between: 'Betweenness',
+ custom: 'Custom filter',
+ insensitive: 'Case insensitive',
+ isSensitive: 'Case sensitive'
+ },
+ combination: {
+ menus: {
+ clearSort: 'Clear sort',
+ sortAsc: 'Ascending order',
+ sortDesc: 'Descending order',
+ fixedColumn: 'Fixed column',
+ fixedGroup: 'Fixed group',
+ cancelFixed: 'Clear fixed',
+ fixedLeft: 'Fixed the left',
+ fixedRight: 'Fixed the right',
+ clearFilter: 'Clear filter',
+ textOption: 'Text filter',
+ numberOption: 'Number filter'
+ },
+ popup: {
+ title: 'Custom filtering',
+ currColumnTitle: 'Current column:',
+ and: 'And',
+ or: 'Or',
+ describeHtml: 'Use ? To represent a single character
use * to represent any number of characters'
+ },
+ empty: '(Empty)',
+ notData: 'No data'
+ }
+ },
+ pro: {
+ area: {
+ mergeErr: 'The operation cannot be performed on merged cells',
+ multiErr: 'The operation cannot be performed on multiple selection areas',
+ extendErr: 'If the extended area contains merged cells, all merged cells need to be the same size',
+ pasteMultiErr: 'Cannot paste, copied area and pasted area of the same size are required to perform this operation'
+ },
+ fnr: {
+ title: 'Find and replace',
+ findLabel: 'Find',
+ replaceLabel: 'Replace',
+ findTitle: 'What to find:',
+ replaceTitle: 'Replace with:',
+ tabs: {
+ find: 'Find',
+ replace: 'Replace'
+ },
+ filter: {
+ re: 'Regular Expression',
+ whole: 'Whole word',
+ sensitive: 'Case sensitive'
+ },
+ btns: {
+ findNext: 'Find next',
+ findAll: 'Find all',
+ replace: 'Replace',
+ replaceAll: 'Replace all',
+ cancel: 'Cancel'
+ },
+ header: {
+ seq: '#',
+ cell: 'Cell',
+ value: 'Value'
+ },
+ empty: '(Empty)',
+ reError: 'Invalid regular expression',
+ recordCount: 'Found {0} cells',
+ notCell: 'No matching cells were found',
+ replaceSuccess: 'Successfully replaced {0} cells'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/es-ES.ts b/packages/locale/lang/es-ES.ts
new file mode 100644
index 000000000..4aeade258
--- /dev/null
+++ b/packages/locale/lang/es-ES.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: 'Please input',
+ pleaseSelect: 'Select'
+ },
+ loading: {
+ text: 'Cargando...'
+ },
+ error: {
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
+ groupMouseRange: 'Los encabezados de agrupación y "{0}" no pueden ser utilizados al mismo tiempo, lo que puede causar errores.',
+ groupTag: 'El encabezado de columna de agrupación debería utilizar "{0}" en lugar de "{1}", lo que puede causar errores.',
+ scrollErrProp: 'El parámetro "{0}" no es compatible cuando el desplazamiento virtual está habilitado.',
+ errConflicts: 'El argumento "{0}" entra en conflicto con "{1}"',
+ unableInsert: 'No se puede insertar en la ubicación especificada.',
+ useErr: 'Error al instalar el módulo "{0}", posiblemente en el orden equivocado, los módulos dependientes deben ser instalados antes de la tabla.',
+ barUnableLink: 'La barra de herramientas no puede asociarse con la tabla.',
+ expandContent: 'La ranura de fila expandible debería ser "contenido", por favor revise si está correcta.',
+ reqModule: 'Requerir el módulo "{0}".',
+ reqProp: 'Falta el parámetro necesario "{0}", lo que puede causar errores.',
+ emptyProp: 'La propiedad "{0}" no se permite estar vacía.',
+ errProp: 'Parámetro no compatible "{0}", posiblemente "{1}".',
+ colRepet: 'columna.{0}="{0}" está duplicado, lo que puede hacer que algunas funciones sean inutilizables',
+ notFunc: 'El método "{0}" no existe.',
+ errFunc: 'The argument "{0}" is not a method',
+ notValidators: 'Global validators "{0}" no existe.',
+ notFormats: 'Global formats "{0}" no existe.',
+ notCommands: 'Global commands "{0}" no existe.',
+ notSlot: 'La ranura "{0}" no existe.',
+ noTree: 'La estructura de árbol no soporta "{0}".',
+ notProp: 'Parámetros no compatibles "{0}"',
+ checkProp: 'La casilla de verificación puede detenerse cuando la cantidad de datos es demasiado grande, se recomienda establecer el parámetro "{0}" para aumentar la velocidad de representación',
+ coverProp: 'The parameter "{1}" to "{0}" is repeatedly defined. This may cause an error',
+ delFunc: 'La función "{0}" está en desuso, por favor use "{1}".',
+ delProp: 'La propiedad "{0}" está en desuso, por favor use "{1}".',
+ delEvent: 'El evento "{0}" está en desuso, por favor use "{1}"',
+ removeProp: 'La propiedad "{0}" está en desuso y no se recomienda, lo que puede causar un error.',
+ errFormat: 'El contenido formateado global debería ser definido con "VXETable.formats". No se recomienda montar "formatter={0}".',
+ notType: 'Tipos de archivo no compatibles "{0}"',
+ notExp: 'El navegador no es compatible con la importación / exportación.',
+ impFields: 'Error de importación, por favor revise que el nombre del campo y el formato de datos sean correctos.',
+ treeNotImp: 'La tabla de árbol no soporta importación.'
+ },
+ table: {
+ emptyText: 'No hay datos',
+ allTitle: 'Seleccionar todo / cancelar',
+ seqTitle: '#',
+ confirmFilter: 'Confirmar',
+ resetFilter: 'Restablecer',
+ allFilter: 'Todo',
+ sortAsc: 'Ascendente: de menor a mayor',
+ sortDesc: 'Descendente: de mayor a menor',
+ filter: 'Habilitar filtro en columnas seleccionadas',
+ impSuccess: 'Se importaron {0} registros con éxito',
+ expLoading: 'Exportando',
+ expSuccess: 'Éxito al exportar',
+ expFilename: 'Exportar_{0}',
+ expOriginFilename: 'Exportar_original_{0}',
+ customTitle: 'Configuraciones de columna',
+ customAll: 'Todo',
+ customConfirm: 'Confirmar',
+ customRestore: 'Restaurar',
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
+ },
+ grid: {
+ selectOneRecord: '¡Seleccione al menos un registro!',
+ deleteSelectRecord: '¿Seguro que desea eliminar el registro seleccionado?',
+ removeSelectRecord: '¿Seguro que desea quitar el registro seleccionado?',
+ dataUnchanged: '¡Datos sin cambios!',
+ delSuccess: '¡Se eliminó con éxito el registro seleccionado!',
+ saveSuccess: '¡Guardado con éxito!',
+ operError: 'Se produjo un error, ¡operación fallida!'
+ },
+ select: {
+ search: 'Buscar',
+ loadingText: 'Cargando',
+ emptyText: 'No hay datos'
+ },
+ pager: {
+ goto: 'Ir a',
+ pagesize: '{0}/página',
+ total: 'Total {0} registro',
+ pageClassifier: '',
+ homePage: 'Home',
+ homePageTitle: 'Home page',
+ prevPage: 'Página anterior',
+ prevPageTitle: 'Previous page',
+ nextPage: 'Siguiente página',
+ nextPageTitle: 'next page',
+ prevJump: 'Saltar página anterior',
+ prevJumpTitle: 'Jump previous page',
+ nextJump: 'Saltar siguiente página',
+ nextJumpTitle: 'Jump next page',
+ endPage: 'End page',
+ endPageTitle: 'End'
+ },
+ alert: {
+ title: 'System messages'
+ },
+ button: {
+ confirm: 'Confirmar',
+ cancel: 'Cancelar'
+ },
+ filter: {
+ search: '搜索'
+ },
+ custom: {
+ cstmTitle: 'Column Settings',
+ cstmRestore: 'Restore default',
+ cstmCancel: 'Cancelar',
+ cstmConfirm: 'Confirm',
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
+ cstmDragTarget: 'Moving target: {0}',
+ setting: {
+ colSort: 'Sort',
+ sortHelpTip: 'Click and drag the icon to adjust the order of the columns.',
+ colTitle: 'Title',
+ colVisible: 'Visible',
+ colFixed: 'Freeze columns (Max {0})',
+ fixedLeft: 'Left',
+ fixedUnset: 'Unset',
+ fixedRight: 'Right'
+ }
+ },
+ import: {
+ modes: {
+ covering: 'Cubriendo',
+ insert: 'Insertar'
+ },
+ impTitle: 'Importar datos',
+ impFile: 'Nombre del archivo',
+ impSelect: 'Seleccionar archivo',
+ impType: 'Tipo de archivo',
+ impOpts: 'Configuración',
+ impConfirm: 'Importar',
+ impCancel: 'Cancelar'
+ },
+ export: {
+ types: {
+ csv: 'CSV (Separado por comas) (.csv)',
+ html: 'Página web (.html)',
+ xml: 'Datos XML (.xml)',
+ txt: 'Texto (Separado por tabulaciones) (.txt)',
+ xls: 'Libro de Excel 97-2003 (.xls)',
+ xlsx: 'Libro de Excel (.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: 'Datos actuales (datos de la página actual)',
+ selected: 'Datos seleccionados (datos seleccionados en la página actual)',
+ all: 'Todos los datos (incluidos todos los datos de paginación)'
+ },
+ printTitle: 'Imprimir datos',
+ expTitle: 'Exportar datos',
+ expName: 'Nombre del archivo',
+ expNamePlaceholder: 'Por favor, introduzca un nombre de archivo',
+ expSheetName: 'Título',
+ expSheetNamePlaceholder: 'Por favor, introduzca un título',
+ expType: 'Guardar el tipo',
+ expMode: 'Seleccionar datos',
+ expCurrentColumn: 'Todos los campos',
+ expColumn: 'Seleccionar campos',
+ expOpts: 'Configuración',
+ expOptHeader: 'Encabezado',
+ expHeaderTitle: '¿Necesita un encabezado?',
+ expOptFooter: 'Pie de página',
+ expFooterTitle: '¿Necesita el pie de página de la tabla?',
+ expOptColgroup: 'Encabezado de grupo',
+ expColgroupTitle: 'Si existe, se admiten encabezados con estructura de agrupación',
+ expOptMerge: 'Combinar',
+ expMergeTitle: 'Si existe, se admiten celdas con estructuras combinadas',
+ expOptAllExpand: 'Expandir nodos',
+ expAllExpandTitle: 'Si existe, se pueden expandir todos los datos con estructura de árbol',
+ expOptUseStyle: 'Estilos',
+ expUseStyleTitle: 'Si existe, se admiten celdas con estilos',
+ expOptOriginal: 'Datos de origen',
+ expOriginalTitle: 'Si son datos de origen, se admite la importación en la tabla',
+ expPrint: 'Imprimir',
+ expConfirm: 'Exportar',
+ expCancel: 'Cancelar'
+ },
+ modal: {
+ zoomIn: 'Maximizar',
+ zoomOut: 'Reducir',
+ close: 'Cerrar'
+ },
+ drawer: {
+ close: 'Cerrar'
+ },
+ form: {
+ folding: 'Plegar',
+ unfolding: 'Desplegar'
+ },
+ toolbar: {
+ importar: 'Importar',
+ exportar: 'Exportar',
+ imprimir: 'Imprimir',
+ actualizar: 'Actualizar',
+ zoomIn: 'Pantalla completa',
+ zoomOut: 'Reducción',
+ custom: 'Configuración de columna',
+ customAll: 'Todo',
+ customConfirm: 'Confirmar',
+ customRestore: 'Restaurar',
+ fixedLeft: 'Freeze on the left',
+ fixedRight: 'Freeze on the right',
+ cancelFixed: 'Unfreeze column'
+ },
+ input: {
+ date: {
+ m1: 'Enero',
+ m2: 'Febrero',
+ m3: 'Marzo',
+ m4: 'Abril',
+ m5: 'Mayo',
+ m6: 'Junio',
+ m7: 'Julio',
+ m8: 'Agosto',
+ m9: 'Septiembre',
+ m10: 'Octubre',
+ m11: 'Noviembre',
+ m12: 'Diciembre',
+ quarterLabel: '{0}',
+ monthLabel: '{0}',
+ dayLabel: '{1} {0}',
+ labelFormat: {
+ date: 'dd/MM/yyyy',
+ time: 'HH:mm:ss',
+ datetime: 'yyyy-MM-dd HH:mm:ss',
+ week: '[Semana] WW, yyyy',
+ month: 'MM/yyyy',
+ quarter: '[Trimestre] q, yyyy',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: 'Semana',
+ w0: 'Dom',
+ w1: 'Lun',
+ w2: 'Mar',
+ w3: 'Mié',
+ w4: 'Jue',
+ w5: 'Vie',
+ w6: 'Sáb'
+ },
+ months: {
+ m0: 'Ene',
+ m1: 'Feb',
+ m2: 'Mar',
+ m3: 'Abr',
+ m4: 'May',
+ m5: 'Jun',
+ m6: 'Jul',
+ m7: 'Ago',
+ m8: 'Sep',
+ m9: 'Oct',
+ m10: 'Nov',
+ m11: 'Dic'
+ },
+ quarters: {
+ q1: 'Primer trimestre',
+ q2: 'Segundo trimestre',
+ q3: 'Tercer trimestre',
+ q4: 'Cuarto trimestre'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: 'Input',
+ textarea: 'Textarea',
+ select: 'Select'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: '无法对合并单元格进行该操作',
+ multiErr: '无法对多重选择区域进行该操作',
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
+ cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})'
+ },
+ fnr: {
+ title: '查找和替换',
+ findLabel: '查找',
+ replaceLabel: '替换',
+ findTitle: '查找内容:',
+ replaceTitle: '替换为:',
+ tabs: {
+ find: '查找',
+ replace: '替换'
+ },
+ filter: {
+ re: '正则表达式',
+ whole: '全词匹配',
+ sensitive: '区分大小写'
+ },
+ btns: {
+ findNext: '查找下一个',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '单元格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '无效的正则表达式',
+ recordCount: '已找到 {0} 个单元格',
+ notCell: '找不到匹配的单元格',
+ replaceSuccess: '成功替换 {0} 个单元格'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧'
+ },
+ cases: {
+ equal: '等于',
+ gt: '大于',
+ lt: '小于',
+ begin: '开头是',
+ endin: '结尾是',
+ include: '包含',
+ isSensitive: '区分大小写'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '升序',
+ sortDesc: '降序',
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧',
+ clearFilter: '清除筛选',
+ textOption: '文本筛选',
+ numberOption: '数值筛选'
+ },
+ popup: {
+ title: '自定义筛选的方式',
+ currColumnTitle: '当前列:',
+ and: '与',
+ or: '或',
+ describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符'
+ },
+ cases: {
+ equal: '等于',
+ unequal: '不等于',
+ gt: '大于',
+ ge: '大于或等于',
+ lt: '小于',
+ le: '小于或等于',
+ begin: '开头是',
+ notbegin: '开头不是',
+ endin: '结尾是',
+ notendin: '结尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介于',
+ custom: '自定义筛选',
+ insensitive: '不区分大小写',
+ isSensitive: '区分大小写'
+ },
+ empty: '(空白)',
+ notData: '无匹配项'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ renderer: {
+ search: 'Buscar',
+ cases: {
+ equal: 'Igual',
+ unequal: 'Distinto que',
+ gt: 'Mayor que',
+ ge: 'Mayor o igual que',
+ lt: 'Menor que',
+ le: 'Menor o igual que',
+ begin: 'Empieza por',
+ notbegin: 'No empieza por',
+ endin: 'Termina con',
+ notendin: 'No termina con',
+ include: 'Incluye',
+ exclude: 'Excluye',
+ between: 'Entre',
+ custom: 'Filtro personalizado',
+ insensitive: 'No sensible a mayúsculas/minúsculas',
+ isSensitive: 'Sensible a mayúsculas/minúsculas'
+ },
+ combination: {
+ menus: {
+ clearSort: 'Limpiar ordenamiento',
+ sortAsc: 'Orden ascendente',
+ sortDesc: 'Orden descendente',
+ fixedColumn: 'Columna fija',
+ fixedGroup: 'Grupo fijo',
+ cancelFixed: 'Borrar fijado',
+ fixedLeft: 'Fijar a la izquierda',
+ fixedRight: 'Fijar a la derecha',
+ clearFilter: 'Limpiar filtro',
+ textOption: 'Filtro de texto',
+ numberOption: 'Filtro de número'
+ },
+ popup: {
+ title: 'Filtro personalizado',
+ currColumnTitle: 'Columna actual:',
+ and: 'Y',
+ or: 'O',
+ describeHtml: 'Use ? para representar un solo carácter
use * para representar cualquier número de caracteres'
+ },
+ empty: '(Vacío)',
+ notData: 'No hay datos'
+ }
+ },
+ pro: {
+ area: {
+ mergeErr: 'La operación no se puede realizar en celdas combinadas',
+ multiErr: 'La operación no se puede realizar en áreas de selección múltiple',
+ extendErr: 'Si el área extendida contiene celdas combinadas, todas las celdas combinadas deben tener el mismo tamaño',
+ pasteMultiErr: 'No se puede pegar, se requieren áreas copiadas y pegadas del mismo tamaño para realizar esta operación'
+ },
+ fnr: {
+ title: 'Buscar y reemplazar',
+ findLabel: 'Buscar',
+ replaceLabel: 'Reemplazar',
+ findTitle: 'Qué buscar:',
+ replaceTitle: 'Reemplazar con:',
+ tabs: {
+ find: 'Buscar',
+ replace: 'Reemplazar'
+ },
+ filter: {
+ re: 'Expresión regular',
+ whole: 'Palabra completa',
+ sensitive: 'Distinguir mayúsculas y minúsculas'
+ },
+ btns: {
+ findNext: 'Buscar siguiente',
+ findAll: 'Buscar todo',
+ replace: 'Reemplazar',
+ replaceAll: 'Reemplazar todo',
+ cancel: 'Cancelar'
+ },
+ header: {
+ seq: '#',
+ cell: 'Celda',
+ value: 'Valor'
+ },
+ empty: '(Vacío)',
+ reError: 'Expresión regular inválida',
+ recordCount: 'Se encontraron {0} celdas',
+ notCell: 'No se encontraron celdas coincidentes',
+ replaceSuccess: 'Se reemplazaron {0} celdas con éxito'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/ja-JP.ts b/packages/locale/lang/ja-JP.ts
new file mode 100644
index 000000000..6341dbca6
--- /dev/null
+++ b/packages/locale/lang/ja-JP.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: 'Please input',
+ pleaseSelect: 'Select'
+ },
+ loading: {
+ text: 'Loading...'
+ },
+ error: {
+ groupFixed: 'グループ化ヘッダーを使用する場合、固定列はグループで設定しなければなりません',
+ groupMouseRange: 'グループ化ヘッダーと「{0}」は同時に使用できません。これによりエラーが発生する可能性があります',
+ groupTag: 'グループ化ヘッダーは "{0}" を使ってください。 "{1}" はエラーが発生する可能性があります',
+ scrollErrProp: '仮想スクロールはこのパラメータを使えません: "{0}"',
+ errConflicts: 'パラメータ "{0}" と "{1}" は同時に使えません',
+ unableInsert: '指定された位置に挿入できない',
+ useErr: '"{0}" モジュールをインストールする際にエラーが発生し、順序が正しくない可能性がある。依存するモジュールはTableの前にインストールする必要がある',
+ barUnableLink: 'ツールバーはフォームを関連付けることができない',
+ expandContent: '拡張行スロットは "content" である必要があります。確認してください',
+ reqModule: '"{0}" モジュールが必要です',
+ reqProp: '必要な "{0}" パラメーターが欠落しているため、エラーが発生する可能性があります',
+ emptyProp: '"{0}" プロパティは空白が許可されていません',
+ errProp: 'サポートされていないパラメーター "{0}"、"{1}" の可能性があります',
+ colRepet: 'column.{0}="{0}" が重複しているため、機能が使えなくなる可能性があります。',
+ notFunc: 'メソッド "{0}" がありません',
+ errFunc: 'The argument "{0}" is not a method',
+ notValidators: 'Global validators "{0}" no existe.',
+ notFormats: 'Global formats "{0}" no existe.',
+ notCommands: 'Global commands "{0}" no existe.',
+ notSlot: 'slot "{0}" がありません',
+ noTree: 'Tree structureは "{0}" をサポートしていません',
+ notProp: 'サポートされていないパラメータ "{0}"',
+ checkProp: 'パフマンス低下になる可能性があります。パラメータ "{0}" の値を指定してください',
+ coverProp: 'The parameter "{1}" to "{0}" is repeatedly defined. This may cause an error',
+ delFunc: '"{0}" functionが非推奨です。"{1}"を使用してください',
+ delProp: '"{0}" propertyが非推奨です。"{1}"を使用してください',
+ delEvent: 'イベント "{0}" が廃止されました。 "{1}" を使用してください',
+ removeProp: 'パラメーター "{0}" が非推奨です。エラーが発生する可能性があります',
+ errFormat: '全般フォーマットするには "VXETable.formats" で定義してください。 "formatter={0}" での方式が非推奨です',
+ notType: 'サポートされていないファイルの種類 "{0}"',
+ notExp: 'ご利用のブラウザはインポート/エクスポート機能を利用できません',
+ impFields: 'インポートに失敗しました。フィールド名とデータ形式を確認してください',
+ treeNotImp: 'ツリーテーブルはインポートをサポートしていません'
+ },
+ table: {
+ emptyText: 'データがありません',
+ allTitle: '全て選択/取消',
+ seqTitle: '#',
+ confirmFilter: 'OK',
+ resetFilter: 'リセット',
+ allFilter: '全て',
+ sortAsc: '昇順',
+ sortDesc: '降順',
+ filter: '選択した列が絞り込む有効',
+ impSuccess: '{0} レコードがインポートされました',
+ expLoading: 'エクスポート中',
+ expSuccess: 'エクスポートが成功しました',
+ expOriginFilename: 'エクスポート_{0}',
+ expSrcFilename: 'エクスポート_ソース_{0}',
+ customTitle: '列設定',
+ customAll: '全部',
+ customConfirm: 'OK',
+ customRestore: 'リセット',
+ maxFixedCol: '最大固定列数が {0} です。'
+ },
+ grid: {
+ selectOneRecord: '1つ以上ののレコードを選択してください',
+ deleteSelectRecord: 'レコードを削除してもよろしいですか?',
+ removeSelectRecord: 'レコードを削除してもよろしいですか?',
+ dataUnchanged: 'データが変更されませんでした',
+ delSuccess: '選択したレコードを削除しました',
+ saveSuccess: '保存しました',
+ operError: 'エラーが発生しました。操作が失敗しました'
+ },
+ select: {
+ search: '検索',
+ loadingText: 'Loading',
+ emptyText: 'データがありません'
+ },
+ pager: {
+ goto: '移動',
+ pagesize: '{0}件/ページ',
+ total: '全 {0} 件',
+ pageClassifier: 'ページ',
+ homePage: '1ページ目',
+ homePageTitle: '1ページ目',
+ prevPage: '前のページ',
+ prevPageTitle: '前のページ',
+ nextPage: '次のページ',
+ nextPageTitle: '次のページ',
+ prevJump: '前のページに移動',
+ prevJumpTitle: '前のページに移動',
+ nextJump: '次のページに移動',
+ nextJumpTitle: '次のページに移動',
+ endPage: '最後ページ',
+ endPageTitle: '最後ページ'
+ },
+ alert: {
+ title: 'System messages'
+ },
+ button: {
+ confirm: 'OK',
+ cancel: 'キャンセル'
+ },
+ filter: {
+ search: '検索'
+ },
+ custom: {
+ cstmTitle: '列設定',
+ cstmRestore: 'リセット',
+ cstmCancel: 'キャンセル',
+ cstmConfirm: 'OK',
+ cstmConfirmRestore: '列をデフォルト状態に戻します。よろしいですか?',
+ cstmDragTarget: '移動ターゲット: {0}',
+ setting: {
+ colSort: 'ソート',
+ sortHelpTip: 'Click and drag the icon to adjust the order of the columns.',
+ colTitle: 'タイトル',
+ colVisible: '表示',
+ colFixed: '冻结列(最多 {0} 列)',
+ fixedLeft: '左側',
+ fixedUnset: '指定しない',
+ fixedRight: '右側'
+ }
+ },
+ import: {
+ modes: {
+ covering: '上書き',
+ insert: '追加'
+ },
+ impTitle: 'データインポート',
+ impFile: 'ファイル名',
+ impSelect: 'ファイル選択',
+ impType: 'ファイルの種類',
+ impOpts: 'パラメータ指定',
+ impConfirm: 'インポート',
+ impCancel: 'キャンセル'
+ },
+ export: {
+ types: {
+ csv: 'CSV (カンマ区切り)(*.csv)',
+ html: 'webページ(*.html)',
+ xml: 'XML データ(*.xml)',
+ txt: 'テキストファイル(タブ区切り)(*.txt)',
+ xls: 'Excel 97-2003 ワークブック(*.xls)',
+ xlsx: 'Excel ワークブック(*.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: '表示中のデータ(表示中のページのデータ)',
+ selected: '選択したデータ(表示中のページに選択したデータ)',
+ all: '全てのデータ(全てのページのデータを含む)'
+ },
+ printTitle: '印刷',
+ expTitle: 'データ',
+ expName: 'ファイル名',
+ expNamePlaceholder: 'ファイル名を入力してください',
+ expSheetName: 'タイトル',
+ expSheetNamePlaceholder: 'タイトルを入力してください',
+ expType: '保存タイプ',
+ expMode: '保存データ',
+ expCurrentColumn: '全てのフィールド',
+ expColumn: '列',
+ expOpts: 'パラメータ',
+ expOptHeader: 'ヘッダー',
+ expHeaderTitle: 'ヘッダーをエクスポート',
+ expOptFooter: 'フッター',
+ expFooterTitle: 'フッターをエクスポート',
+ expOptColgroup: 'グループ分けタイトル',
+ expColgroupTitle: 'グループ分けタイトルを有効にする',
+ expOptMerge: '結合',
+ expMergeTitle: '結合セルを有効にする',
+ expOptAllExpand: '階層構造',
+ expAllExpandTitle: '階層構造を有効にする',
+ expOptUseStyle: 'スタイル',
+ expUseStyleTitle: 'スタイルを有効にする',
+ expOptOriginal: 'ソースデータ',
+ expOriginalTitle: 'ソースデータを有効にする',
+ expPrint: '印刷',
+ expConfirm: 'OK',
+ expCancel: 'キャンセル'
+ },
+ modal: {
+ zoomIn: '最大化',
+ zoomOut: '縮小',
+ close: '閉じる'
+ },
+ drawer: {
+ close: '閉じる'
+ },
+ form: {
+ folding: '展開を戻す',
+ unfolding: '展開'
+ },
+ toolbar: {
+ import: 'ファイル読込',
+ export: 'エクスポート',
+ print: '印刷',
+ refresh: '再読み込み',
+ zoomIn: 'フルスクリーン',
+ zoomOut: '縮小',
+ custom: 'カスタム設定',
+ customAll: '全部',
+ customConfirm: 'OK',
+ customRestore: 'リセット',
+ fixedLeft: '左側に固定',
+ fixedRight: '右側に固定',
+ cancelFixed: '列固定を取消'
+ },
+ input: {
+ date: {
+ m1: '1月',
+ m2: '2月',
+ m3: '3月',
+ m4: '4月',
+ m5: '5月',
+ m6: '6月',
+ m7: '7月',
+ m8: '8月',
+ m9: '9月',
+ m10: '10月',
+ m11: '11月',
+ m12: '12月',
+ quarterLabel: '{0} 年',
+ monthLabel: '{0} 年',
+ dayLabel: '{0} 年 {1}',
+ labelFormat: {
+ date: 'yyyy-MM-dd',
+ time: 'HH:mm:ss',
+ datetime: 'yyyy-MM-dd HH:mm:ss',
+ week: 'yyyy 年 WW',
+ month: 'yyyy-MM',
+ quarter: 'yyyy 年第 q 四半期',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: '曜日',
+ w0: '日',
+ w1: '月',
+ w2: '火',
+ w3: '水',
+ w4: '木',
+ w5: '金',
+ w6: '土'
+ },
+ months: {
+ m0: '1月',
+ m1: '2月',
+ m2: '3月',
+ m3: '4月',
+ m4: '5月',
+ m5: '6月',
+ m6: '7月',
+ m7: '8月',
+ m8: '9月',
+ m9: '10月',
+ m10: '11月',
+ m11: '12月'
+ },
+ quarters: {
+ q1: '第1四半期',
+ q2: '第2四半期',
+ q3: '第3四半期',
+ q4: '第4四半期'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: 'Input',
+ textarea: 'Textarea',
+ select: 'Select'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: '該当セルに操作できません',
+ multiErr: '複数の選択箇所に操作できません',
+ extendErr: '結合セルが含まれている場合、すべての結合セルのサイズが同じでなければなりません',
+ pasteMultiErr: 'ペーストできません。同じサーズの領域を選択してください',
+ cpInvalidErr: '操作できません。選択禁止の列({0})が選択されています'
+ },
+ fnr: {
+ title: '検索と置換',
+ findLabel: '検索',
+ replaceLabel: '置換',
+ findTitle: '検索内容:',
+ replaceTitle: '置換する文字:',
+ tabs: {
+ find: '検索',
+ replace: '置換'
+ },
+ filter: {
+ re: '正規表現',
+ whole: 'フルワード',
+ sensitive: '大文字小文字区別する'
+ },
+ btns: {
+ findNext: '次検索',
+ findAll: 'すべて検索',
+ replace: '置換',
+ replaceAll: 'すべて置換',
+ cancel: 'キャンセル'
+ },
+ header: {
+ seq: '#',
+ cell: 'セル',
+ value: '値'
+ },
+ empty: '(空白)',
+ reError: '無効な正規表現',
+ recordCount: '{0} 個のセルが見つかりました',
+ notCell: '見つかりませんでした',
+ replaceSuccess: '{0} 個のセルを置換しました'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: '列ロック',
+ fixedGroup: 'グループロック',
+ cancelFixed: 'ロック解除',
+ fixedLeft: '左側ロック',
+ fixedRight: '右側ロック'
+ },
+ cases: {
+ equal: 'イコール',
+ gt: '大なり',
+ lt: '小なり',
+ begin: '先頭は',
+ endin: '末尾は',
+ include: '含む',
+ isSensitive: '大文字小文字区別する'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: 'ソートクリア',
+ sortAsc: '昇順',
+ sortDesc: '降順',
+ fixedColumn: '列ロック',
+ fixedGroup: 'グループロック',
+ cancelFixed: 'ロック解除',
+ fixedLeft: '左側ロック',
+ fixedRight: '右側ロック',
+ clearFilter: '絞り込みクリア',
+ textOption: '文字絞り込む',
+ numberOption: '数値絞り込み'
+ },
+ popup: {
+ title: 'カスタムフィルター',
+ currColumnTitle: '現在列:',
+ and: 'と',
+ or: 'もしくは',
+ describeHtml: ' ? で一文字
* で複数文字を代替する'
+ },
+ cases: {
+ equal: 'イコール',
+ unequal: 'ノットイコール',
+ gt: '大なり',
+ ge: '大なりイコール',
+ lt: '小なり',
+ le: '小なりイコール',
+ begin: '先頭は',
+ notbegin: 'not begin',
+ endin: '末尾は',
+ notendin: 'not endin',
+ include: '含む',
+ exclude: '含まない',
+ between: '属する',
+ custom: 'カスタムフィルター',
+ insensitive: '大文字小文字区別しない',
+ isSensitive: '大文字小文字区別する'
+ },
+ empty: '(空白)',
+ notData: 'データなし'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ renderer: {
+ search: '搜索',
+ cases: {
+ equal: '等于',
+ unequal: '不等于',
+ gt: '大于',
+ ge: '大于或等于',
+ lt: '小于',
+ le: '小于或等于',
+ begin: '开头是',
+ notbegin: '开头不是',
+ endin: '结尾是',
+ notendin: '结尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介于',
+ custom: '自定义筛选',
+ insensitive: '不区分大小写',
+ isSensitive: '区分大小写'
+ },
+ combination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '升序',
+ sortDesc: '降序',
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧',
+ clearFilter: '清除筛选',
+ textOption: '文本筛选',
+ numberOption: '数值筛选'
+ },
+ popup: {
+ title: '自定义筛选的方式',
+ currColumnTitle: '当前列:',
+ and: '与',
+ or: '或',
+ describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符'
+ },
+ empty: '(空白)',
+ notData: '无匹配项'
+ }
+ },
+ pro: {
+ area: {
+ mergeErr: '无法对合并单元格进行该操作',
+ multiErr: '无法对多重选择区域进行该操作',
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
+ },
+ fnr: {
+ title: '查找和替换',
+ findLabel: '查找',
+ replaceLabel: '替换',
+ findTitle: '查找内容:',
+ replaceTitle: '替换为:',
+ tabs: {
+ find: '查找',
+ replace: '替换'
+ },
+ filter: {
+ re: '正则表达式',
+ whole: '全词匹配',
+ sensitive: '区分大小写'
+ },
+ btns: {
+ findNext: '查找下一个',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '单元格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '无效的正则表达式',
+ recordCount: '已找到 {0} 个单元格',
+ notCell: '找不到匹配的单元格',
+ replaceSuccess: '成功替换 {0} 个单元格'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/pt-BR.ts b/packages/locale/lang/pt-BR.ts
new file mode 100644
index 000000000..1e54462a9
--- /dev/null
+++ b/packages/locale/lang/pt-BR.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: 'Por favor, insira',
+ pleaseSelect: 'Selecione'
+ },
+ loading: {
+ text: 'Carregando...'
+ },
+ error: {
+ groupFixed: 'If you use group headers, the freeze columns must be set by group.',
+ groupMouseRange: 'Agrupar cabeçalhos e "{0}" não podem ser usados ao mesmo tempo, o que pode causar erros.',
+ groupTag: 'O cabeçalho da coluna de agrupamento deve usar "{0}" em vez de "{1}", o que pode causar erros.',
+ scrollErrProp: 'O parâmetro "{0}" não é suportado quando a rolagem virtual está habilitada.',
+ errConflicts: 'O argumento "{0}" entra em conflito com "{1}"',
+ unableInsert: 'Não é possível inserir na localização especificada.',
+ useErr: 'Erro ao instalar o módulo "{0}", possivelmente na ordem errada, os módulos dependentes precisam ser instalados antes da Tabela.',
+ barUnableLink: 'A barra de ferramentas não pode ser associada à tabela.',
+ expandContent: 'O slot de linha expandida deve ser "content", verifique se está correto.',
+ reqModule: 'requerir o módulo "{0}".',
+ reqProp: 'Faltando o parâmetro necessário "{0}", o que pode causar um erro.',
+ emptyProp: 'A propriedade "{0}" não pode estar vazia.',
+ errProp: 'Parâmetro não suportado "{0}", possivelmente "{1}".',
+ colRepet: 'column.{0}="{0}" está duplicado, o que pode tornar algumas funcionalidades inutilizáveis.',
+ notFunc: 'método "{0}" não existe.',
+ errFunc: 'The argument "{0}" is not a method',
+ notValidators: 'Validadores globais "{0}" não existem.',
+ notFormats: 'Formatos globais "{0}" não existem.',
+ notCommands: 'Comandos globais "{0}" não existem.',
+ notSlot: 'slot "{0}" não existe',
+ noTree: 'A estrutura de árvore não suporta "{0}".',
+ notProp: 'Parâmetros não suportados "{0}"',
+ checkProp: 'A caixa de seleção pode travar quando a quantidade de dados é muito grande, é recomendado definir o parâmetro "{0}" para aumentar a velocidade de renderização ',
+ coverProp: 'The parameter "{1}" to "{0}" is repeatedly defined. This may cause an error',
+ delFunc: 'A função "{0}" está obsoleta, por favor, use "{1}".',
+ delProp: 'A propriedade "{0}" está obsoleta, por favor, use "{1}".',
+ delEvent: 'O evento "{0}" está obsoleto, por favor, use "{1}".',
+ removeProp: 'A propriedade "{0}" está obsoleta e não é recomendada, o que pode causar um erro.',
+ errFormat: 'O conteúdo formatado global deve ser definido com "VXETable.formats". Montar "formatter={0}" não é recomendado.',
+ notType: 'Tipos de arquivo não suportados "{0}"',
+ notExp: 'O navegador não suporta importação/exportação.',
+ impFields: 'Falha na importação, verifique se o nome do campo e o formato dos dados estão corretos.',
+ treeNotImp: 'A tabela de árvore não suporta importação.'
+ },
+ table: {
+ emptyText: 'Sem dados',
+ allTitle: 'Selecionar todos / cancelar',
+ seqTitle: '#',
+ confirmFilter: 'Confirmar',
+ resetFilter: 'Redefinir',
+ allFilter: 'Todos',
+ sortAsc: 'Ordenação ascendente: do menor para o maior',
+ sortDesc: 'Ordenação descendente: do maior para o menor',
+ filter: 'Habilitar filtro em colunas selecionadas',
+ impSuccess: 'Importado com sucesso {0} registros',
+ expLoading: 'Exportando',
+ expSuccess: 'Exportado com sucesso',
+ expFilename: 'Exportar_{0}',
+ expOriginFilename: 'Exportar_original_{0}',
+ customTitle: 'Configurações de coluna',
+ customAll: 'Todos',
+ customConfirm: 'Confirmar',
+ customRestore: 'Redefinir',
+ maxFixedCol: 'The maximum number of Freeze columns cannot exceed {0}'
+ },
+ grid: {
+ selectOneRecord: 'Por favor, selecione pelo menos um registro!',
+ deleteSelectRecord: 'Tem certeza de que deseja excluir o registro selecionado?',
+ removeSelectRecord: 'Tem certeza de que deseja remover o registro selecionado?',
+ dataUnchanged: 'Dados inalterados!',
+ delSuccess: 'Registro selecionado excluído com sucesso!',
+ saveSuccess: 'Salvo com sucesso!',
+ operError: 'Ocorreu um erro, a operação falhou!'
+ },
+ select: {
+ search: 'Buscar',
+ loadingText: 'Carregando',
+ emptyText: 'Sem dados'
+ },
+ pager: {
+ goto: 'Ir para',
+ pagesize: '{0}/página',
+ total: 'Total de {0} registros',
+ pageClassifier: '',
+ homePage: 'Home',
+ homePageTitle: 'Home page',
+ prevPage: 'Previous page',
+ prevPageTitle: 'Previous page',
+ nextPage: 'next page',
+ nextPageTitle: 'next page',
+ prevJump: 'Jump previous page',
+ prevJumpTitle: 'Jump previous page',
+ nextJump: 'Jump next page',
+ nextJumpTitle: 'Jump next page',
+ endPage: 'End page',
+ endPageTitle: 'End'
+ },
+ alert: {
+ title: 'System messages'
+ },
+ button: {
+ confirm: 'Confirmar',
+ cancel: 'Cancelar'
+ },
+ filter: {
+ search: 'Buscar'
+ },
+ custom: {
+ cstmTitle: 'Column Settings',
+ cstmRestore: 'Restore default',
+ cstmCancel: 'Cancelar',
+ cstmConfirm: 'Confirm',
+ cstmConfirmRestore: 'Please confirm whether to restore the default column configuration?',
+ cstmDragTarget: 'Moving target: {0}',
+ setting: {
+ colSort: 'Sort',
+ sortHelpTip: 'Click and drag the icon to adjust the order of the columns.',
+ colTitle: 'Title',
+ colVisible: 'Visible',
+ colFixed: 'Freeze columns (Max {0})',
+ fixedLeft: 'Left',
+ fixedUnset: 'Unset',
+ fixedRight: 'Right'
+ }
+ },
+ import: {
+ modes: {
+ covering: 'Sobrescrever',
+ insert: 'Inserir'
+ },
+ impTitle: 'Importar dados',
+ impFile: 'Nome do arquivo',
+ impSelect: 'Selecionar arquivo',
+ impType: 'Tipo de arquivo',
+ impOpts: 'Configurações',
+ impConfirm: 'Importar',
+ impCancel: 'Cancelar'
+ },
+ export: {
+ types: {
+ csv: 'CSV (Separado por vírgulas) (*.csv)',
+ html: 'Página da Web (*.html)',
+ xml: 'Dados XML (*.xml)',
+ txt: 'Texto (Separado por tabulação) (*.txt)',
+ xls: 'Pasta de trabalho do Excel 97-2003 (*.xls)',
+ xlsx: 'Pasta de trabalho do Excel (*.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: 'Dados atuais (dados da página atual)',
+ selected: 'Dados selecionados (dados selecionados na página atual)',
+ all: 'Todos os dados (incluindo todos os dados de paginação)'
+ },
+ printTitle: 'Imprimir dados',
+ expTitle: 'Exportar dados',
+ expName: 'Nome do arquivo',
+ expNamePlaceholder: 'Por favor, insira o nome do arquivo',
+ expSheetName: 'Título',
+ expSheetNamePlaceholder: 'Por favor, insira um título',
+ expType: 'Salvar o tipo',
+ expMode: 'Selecionar dados',
+ expCurrentColumn: 'Todos os campos',
+ expColumn: 'Selecionar campo',
+ expOpts: 'Configurações',
+ expOptHeader: 'Cabeçalho',
+ expHeaderTitle: 'Necessita de cabeçalho',
+ expOptFooter: 'Rodapé',
+ expFooterTitle: 'Necessita de tabela de rodapé',
+ expOptColgroup: 'Cabeçalho de grupo',
+ expColgroupTitle: 'Se existir, suporta cabeçalhos com estrutura de agrupamento',
+ expOptMerge: 'Mesclar',
+ expMergeTitle: 'Se existir, suporta células com estruturas mescladas',
+ expOptAllExpand: 'Expandir nós',
+ expAllExpandTitle: 'Se existir, todos os dados com estrutura de árvore podem ser expandidos',
+ expOptUseStyle: 'Estilos',
+ expUseStyleTitle: 'Se existir, suporta células com estilos',
+ expOptOriginal: 'Dados originais',
+ expOriginalTitle: 'Se for dados originais, é possível importá-los de volta para a tabela',
+ expPrint: 'Imprimir',
+ expConfirm: 'Exportar',
+ expCancel: 'Cancelar'
+ },
+ modal: {
+ zoomIn: 'Maximizar',
+ zoomOut: 'Restaurar',
+ close: 'Fechar'
+ },
+ drawer: {
+ close: 'Fechar'
+ },
+ form: {
+ folding: 'Ocultar',
+ unfolding: 'Mostrar'
+ },
+ toolbar: {
+ import: 'Importar',
+ export: 'Exportar',
+ print: 'Imprimir',
+ refresh: 'Atualizar',
+ zoomIn: 'Tela cheia',
+ zoomOut: 'Restaurar',
+ custom: 'Configurações de coluna',
+ customAll: 'Todos',
+ customConfirm: 'Confirmar',
+ customRestore: 'Redefinir',
+ fixedLeft: 'Freeze on the left',
+ fixedRight: 'Freeze on the right',
+ cancelFixed: 'Unfreeze column'
+ },
+ input: {
+ date: {
+ m1: 'Janeiro',
+ m2: 'Fevereiro',
+ m3: 'Março',
+ m4: 'Abril',
+ m5: 'Maio',
+ m6: 'Junho',
+ m7: 'Julho',
+ m8: 'Agosto',
+ m9: 'Setembro',
+ m10: 'Outubro',
+ m11: 'Novembro',
+ m12: 'Dezembro',
+ quarterLabel: '{0} trimestre',
+ monthLabel: '{0}',
+ dayLabel: '{1} {0}',
+ labelFormat: {
+ date: 'dd/MM/yyyy',
+ time: 'HH:mm:ss',
+ datetime: 'dd/MM/yyyy HH:mm:ss',
+ week: '[Semana] WW, yyyy',
+ month: 'MM/yyyy',
+ quarter: '[Trimestre] q, yyyy',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: 'Semana',
+ w0: 'Dom',
+ w1: 'Seg',
+ w2: 'Ter',
+ w3: 'Qua',
+ w4: 'Qui',
+ w5: 'Sex',
+ w6: 'Sáb'
+ },
+ months: {
+ m0: 'Jan',
+ m1: 'Fev',
+ m2: 'Mar',
+ m3: 'Abr',
+ m4: 'Mai',
+ m5: 'Jun',
+ m6: 'Jul',
+ m7: 'Ago',
+ m8: 'Set',
+ m9: 'Out',
+ m10: 'Nov',
+ m11: 'Dez'
+ },
+ quarters: {
+ q1: '1º trimestre',
+ q2: '2º trimestre',
+ q3: '3º trimestre',
+ q4: '4º trimestre'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: 'Input',
+ textarea: 'Textarea',
+ select: 'Select'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: '无法对合并单元格进行该操作',
+ multiErr: '无法对多重选择区域进行该操作',
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
+ cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})'
+ },
+ fnr: {
+ title: '查找和替换',
+ findLabel: '查找',
+ replaceLabel: '替换',
+ findTitle: '查找内容:',
+ replaceTitle: '替换为:',
+ tabs: {
+ find: '查找',
+ replace: '替换'
+ },
+ filter: {
+ re: '正则表达式',
+ whole: '全词匹配',
+ sensitive: '区分大小写'
+ },
+ btns: {
+ findNext: '查找下一个',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '单元格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '无效的正则表达式',
+ recordCount: '已找到 {0} 个单元格',
+ notCell: '找不到匹配的单元格',
+ replaceSuccess: '成功替换 {0} 个单元格'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧'
+ },
+ cases: {
+ equal: '等于',
+ gt: '大于',
+ lt: '小于',
+ begin: '开头是',
+ endin: '结尾是',
+ include: '包含',
+ isSensitive: '区分大小写'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '升序',
+ sortDesc: '降序',
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧',
+ clearFilter: '清除筛选',
+ textOption: '文本筛选',
+ numberOption: '数值筛选'
+ },
+ popup: {
+ title: '自定义筛选的方式',
+ currColumnTitle: '当前列:',
+ and: '与',
+ or: '或',
+ describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符'
+ },
+ cases: {
+ equal: '等于',
+ unequal: '不等于',
+ gt: '大于',
+ ge: '大于或等于',
+ lt: '小于',
+ le: '小于或等于',
+ begin: '开头是',
+ notbegin: '开头不是',
+ endin: '结尾是',
+ notendin: '结尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介于',
+ custom: '自定义筛选',
+ insensitive: '不区分大小写',
+ isSensitive: '区分大小写'
+ },
+ empty: '(空白)',
+ notData: '无匹配项'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ renderer: {
+ search: 'Buscar',
+ cases: {
+ equal: 'Igual',
+ unequal: 'Não igual',
+ gt: 'Maior que',
+ ge: 'Maior ou igual a',
+ lt: 'Menor que',
+ le: 'Menor ou igual a',
+ begin: 'Começa com',
+ notbegin: 'Não começa com',
+ endin: 'Termina com',
+ notendin: 'Não termina com',
+ include: 'Inclui',
+ exclude: 'Exclusivo',
+ between: 'Entre',
+ custom: 'Filtro personalizado',
+ insensitive: 'Sem diferenciação de maiúsculas e minúsculas',
+ isSensitive: 'Diferenciação de maiúsculas e minúsculas'
+ },
+ combination: {
+ menus: {
+ clearSort: 'Limpar ordenação',
+ sortAsc: 'Ordem ascendente',
+ sortDesc: 'Ordem descendente',
+ fixedColumn: 'Coluna fixa',
+ fixedGroup: 'Grupo fixo',
+ cancelFixed: 'Limpar fixação',
+ fixedLeft: 'Fixar à esquerda',
+ fixedRight: 'Fixar à direita',
+ clearFilter: 'Limpar filtro',
+ textOption: 'Filtro de texto',
+ numberOption: 'Filtro numérico'
+ },
+ popup: {
+ title: 'Filtragem personalizada',
+ currColumnTitle: 'Coluna atual:',
+ and: 'E',
+ or: 'Ou',
+ describeHtml: 'Use ? para representar um único caractere
use * para representar qualquer número de caracteres'
+ },
+ empty: '(Vazio)',
+ notData: 'Sem dados'
+ }
+ },
+ pro: {
+ area: {
+ mergeErr: 'A operação não pode ser realizada em células mescladas',
+ multiErr: 'A operação não pode ser realizada em áreas de seleção múltipla',
+ extendErr: 'Se a área estendida contiver células mescladas, todas as células mescladas devem ter o mesmo tamanho',
+ pasteMultiErr: 'Não é possível colar, é necessário que a área copiada e a área colada tenham o mesmo tamanho para realizar esta operação'
+ },
+ fnr: {
+ title: 'Localizar e substituir',
+ findLabel: 'Localizar',
+ replaceLabel: 'Substituir',
+ findTitle: 'O que localizar:',
+ replaceTitle: 'Substituir por:',
+ tabs: {
+ find: 'Localizar',
+ replace: 'Substituir'
+ },
+ filter: {
+ re: 'Expressão Regular',
+ whole: 'Palavra inteira',
+ sensitive: 'Diferenciar maiúsculas e minúsculas'
+ },
+ btns: {
+ findNext: 'Localizar próximo',
+ findAll: 'Localizar todos',
+ replace: 'Substituir',
+ replaceAll: 'Substituir tudo',
+ cancel: 'Cancelar'
+ },
+ header: {
+ seq: '#',
+ cell: 'Célula',
+ value: 'Valor'
+ },
+ empty: '(Vazio)',
+ reError: 'Expressão regular inválida',
+ recordCount: 'Encontradas {0} células',
+ notCell: 'Não foram encontradas células correspondentes',
+ replaceSuccess: 'Substituído com sucesso {0} células'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/zh-CN.ts b/packages/locale/lang/zh-CN.ts
new file mode 100644
index 000000000..875606474
--- /dev/null
+++ b/packages/locale/lang/zh-CN.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: '请输入',
+ pleaseSelect: '请选择'
+ },
+ loading: {
+ text: '加载中...'
+ },
+ error: {
+ groupFixed: '如果使用分组表头,冻结列必须按组设置',
+ groupMouseRange: '分组表头与 "{0}" 不能同时使用,这可能会出现错误',
+ groupTag: '分组列头应该使用 "{0}" 而不是 "{1}",这可能会出现错误',
+ scrollErrProp: '启用虚拟滚动后不支持该参数 "{0}"',
+ errConflicts: '参数 "{0}" 与 "{1}" 有冲突',
+ unableInsert: '无法插入到指定位置,请检查参数是否正确',
+ useErr: '安装 "{0}" 模块时发生错误,可能顺序不正确,依赖的模块需要在 Table 之前安装',
+ barUnableLink: '工具栏无法关联表格',
+ expandContent: '展开行的插槽应该是 "content",请检查是否正确',
+ reqModule: '缺少 "{0}" 模块',
+ reqProp: '缺少必要的 "{0}" 参数,这可能会导致出现错误',
+ emptyProp: '参数 "{0}" 不允许为空',
+ errProp: '不支持的参数 "{0}",可能为 "{1}"',
+ colRepet: 'column.{0}="{1}" 重复了,这可能会导致某些功能无法使用',
+ notFunc: '方法 "{0}" 不存在',
+ errFunc: '参数 "{0}" 不是一个方法',
+ notValidators: '全局校验 "{0}" 不存在',
+ notFormats: '全局格式化 "{0}" 不存在',
+ notCommands: '全局指令 "{0}" 不存在',
+ notSlot: '插槽 "{0}" 不存在',
+ noTree: '树结构不支持 "{0}"',
+ notProp: '不支持的参数 "{0}"',
+ checkProp: '当数据量过大时可能会导致复选框卡顿,建议设置参数 "{0}" 提升渲染速度',
+ coverProp: '"{0}" 的参数 "{1}" 重复定义,这可能会出现错误',
+ delFunc: '方法 "{0}" 已废弃,请使用 "{1}"',
+ delProp: '参数 "{0}" 已废弃,请使用 "{1}"',
+ delEvent: '事件 "{0}" 已废弃,请使用 "{1}"',
+ removeProp: '参数 "{0}" 已废弃,不建议使用,这可能会导致出现错误',
+ errFormat: '全局的格式化内容应该使用 "VXETable.formats" 定义,挂载 "formatter={0}" 的方式已不建议使用',
+ notType: '不支持的文件类型 "{0}"',
+ notExp: '该浏览器不支持导入/导出功能',
+ impFields: '导入失败,请检查字段名和数据格式是否正确',
+ treeNotImp: '树表格不支持导入'
+ },
+ table: {
+ emptyText: '暂无数据',
+ allTitle: '全选/取消',
+ seqTitle: '#',
+ confirmFilter: '筛选',
+ resetFilter: '重置',
+ allFilter: '全部',
+ sortAsc: '升序:最低到最高',
+ sortDesc: '降序:最高到最低',
+ filter: '对所选的列启用筛选',
+ impSuccess: '成功导入 {0} 条记录',
+ expLoading: '正在导出中',
+ expSuccess: '导出成功',
+ expFilename: '导出_{0}',
+ expOriginFilename: '导出_源_{0}',
+ customTitle: '列设置',
+ customAll: '全部',
+ customConfirm: '确认',
+ customRestore: '重置',
+ maxFixedCol: '最大冻结列的数量不能超过 {0} 个'
+ },
+ grid: {
+ selectOneRecord: '请至少选择一条记录!',
+ deleteSelectRecord: '您确定要删除所选记录吗?',
+ removeSelectRecord: '您确定要移除所选记录吗?',
+ dataUnchanged: '数据未改动!',
+ delSuccess: '成功删除所选记录!',
+ saveSuccess: '保存成功!',
+ operError: '发生错误,操作失败!'
+ },
+ select: {
+ search: '搜索',
+ loadingText: '加载中',
+ emptyText: '暂无数据'
+ },
+ pager: {
+ goto: '前往',
+ pagesize: '{0}条/页',
+ total: '共 {0} 条记录',
+ pageClassifier: '页',
+ homePage: '首页',
+ homePageTitle: '首页',
+ prevPage: '上一页',
+ prevPageTitle: '上一页',
+ nextPage: '下一页',
+ nextPageTitle: '下一页',
+ prevJump: '向上跳页',
+ prevJumpTitle: '向上跳页',
+ nextJump: '向下跳页',
+ nextJumpTitle: '向下跳页',
+ endPage: '末页',
+ endPageTitle: '末页'
+ },
+ alert: {
+ title: '系统提示'
+ },
+ button: {
+ confirm: '确认',
+ cancel: '取消'
+ },
+ filter: {
+ search: '搜索'
+ },
+ custom: {
+ cstmTitle: '列设置',
+ cstmRestore: '恢复默认',
+ cstmCancel: '取消',
+ cstmConfirm: '确定',
+ cstmConfirmRestore: '请确认是否恢复成默认列配置?',
+ cstmDragTarget: '移动目标:{0}',
+ setting: {
+ colSort: '排序',
+ sortHelpTip: '点击并拖动图标可以调整列的排序',
+ colTitle: '标题',
+ colVisible: '是否显示',
+ colFixed: '冻结列(最多 {0} 列)',
+ fixedLeft: '左侧',
+ fixedUnset: '不设置',
+ fixedRight: '右侧'
+ }
+ },
+ import: {
+ modes: {
+ covering: '覆盖',
+ insert: '新增'
+ },
+ impTitle: '导入数据',
+ impFile: '文件名',
+ impSelect: '选择文件',
+ impType: '文件类型',
+ impOpts: '参数设置',
+ impConfirm: '导入',
+ impCancel: '取消'
+ },
+ export: {
+ types: {
+ csv: 'CSV (逗号分隔)(*.csv)',
+ html: '网页(*.html)',
+ xml: 'XML 数据(*.xml)',
+ txt: '文本文件(制表符分隔)(*.txt)',
+ xls: 'Excel 97-2003 工作簿(*.xls)',
+ xlsx: 'Excel 工作簿(*.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: '当前数据(当前页的数据)',
+ selected: '选中数据(当前页选中的数据)',
+ all: '全量数据(包括所有分页的数据)'
+ },
+ printTitle: '打印数据',
+ expTitle: '导出数据',
+ expName: '文件名',
+ expNamePlaceholder: '请输入文件名',
+ expSheetName: '标题',
+ expSheetNamePlaceholder: '请输入标题',
+ expType: '保存类型',
+ expMode: '选择数据',
+ expCurrentColumn: '全部字段',
+ expColumn: '选择字段',
+ expOpts: '参数设置',
+ expOptHeader: '表头',
+ expHeaderTitle: '是否需要表头',
+ expOptFooter: '表尾',
+ expFooterTitle: '是否需要表尾',
+ expOptColgroup: '分组表头',
+ expColgroupTitle: '如果存在,则支持带有分组结构的表头',
+ expOptMerge: '合并',
+ expMergeTitle: '如果存在,则支持带有合并结构的单元格',
+ expOptAllExpand: '展开层级',
+ expAllExpandTitle: '如果存在,则支持将带有层级结构的数据全部展开',
+ expOptUseStyle: '样式',
+ expUseStyleTitle: '如果存在,则支持带样式的单元格',
+ expOptOriginal: '源数据',
+ expOriginalTitle: '如果为源数据,则支持导入到表格中',
+ expPrint: '打印',
+ expConfirm: '导出',
+ expCancel: '取消'
+ },
+ modal: {
+ zoomIn: '最大化',
+ zoomOut: '还原',
+ close: '关闭'
+ },
+ drawer: {
+ close: '关闭'
+ },
+ form: {
+ folding: '收起',
+ unfolding: '展开'
+ },
+ toolbar: {
+ import: '导入',
+ export: '导出',
+ print: '打印',
+ refresh: '刷新',
+ zoomIn: '全屏',
+ zoomOut: '还原',
+ custom: '列设置',
+ customAll: '全部',
+ customConfirm: '确认',
+ customRestore: '重置',
+ fixedLeft: '冻结在左侧',
+ fixedRight: '冻结在右侧',
+ cancelFixed: '取消冻结列'
+ },
+ input: {
+ date: {
+ m1: '01 月',
+ m2: '02 月',
+ m3: '03 月',
+ m4: '04 月',
+ m5: '05 月',
+ m6: '06 月',
+ m7: '07 月',
+ m8: '08 月',
+ m9: '09 月',
+ m10: '10 月',
+ m11: '11 月',
+ m12: '12 月',
+ quarterLabel: '{0} 年',
+ monthLabel: '{0} 年',
+ dayLabel: '{0} 年 {1}',
+ labelFormat: {
+ date: 'yyyy-MM-dd',
+ time: 'HH:mm:ss',
+ datetime: 'yyyy-MM-dd HH:mm:ss',
+ week: 'yyyy 年第 WW 周',
+ month: 'yyyy-MM',
+ quarter: 'yyyy 年第 q 季度',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: '周',
+ w0: '周日',
+ w1: '周一',
+ w2: '周二',
+ w3: '周三',
+ w4: '周四',
+ w5: '周五',
+ w6: '周六'
+ },
+ months: {
+ m0: '一月',
+ m1: '二月',
+ m2: '三月',
+ m3: '四月',
+ m4: '五月',
+ m5: '六月',
+ m6: '七月',
+ m7: '八月',
+ m8: '九月',
+ m9: '十月',
+ m10: '十一月',
+ m11: '十二月'
+ },
+ quarters: {
+ q1: '第一季度',
+ q2: '第二季度',
+ q3: '第三季度',
+ q4: '第四季度'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: '输入框',
+ textarea: '文本域',
+ select: '下拉框'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: '无法对合并单元格进行该操作',
+ multiErr: '无法对多重选择区域进行该操作',
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
+ cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})'
+ },
+ fnr: {
+ title: '查找和替换',
+ findLabel: '查找',
+ replaceLabel: '替换',
+ findTitle: '查找内容:',
+ replaceTitle: '替换为:',
+ tabs: {
+ find: '查找',
+ replace: '替换'
+ },
+ filter: {
+ re: '正则表达式',
+ whole: '全词匹配',
+ sensitive: '区分大小写'
+ },
+ btns: {
+ findNext: '查找下一个',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '单元格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '无效的正则表达式',
+ recordCount: '已找到 {0} 个单元格',
+ notCell: '找不到匹配的单元格',
+ replaceSuccess: '成功替换 {0} 个单元格'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: '冻结列',
+ fixedGroup: '冻结分组',
+ cancelFixed: '取消冻结',
+ fixedLeft: '冻结左侧',
+ fixedRight: '冻结右侧'
+ },
+ cases: {
+ equal: '等于',
+ gt: '大于',
+ lt: '小于',
+ begin: '开头是',
+ endin: '结尾是',
+ include: '包含',
+ isSensitive: '区分大小写'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '升序',
+ sortDesc: '降序',
+ fixedColumn: '冻结列',
+ fixedGroup: '冻结分组',
+ cancelFixed: '取消冻结',
+ fixedLeft: '冻结左侧',
+ fixedRight: '冻结右侧',
+ clearFilter: '清除筛选',
+ textOption: '文本筛选',
+ numberOption: '数值筛选'
+ },
+ popup: {
+ title: '自定义筛选的方式',
+ currColumnTitle: '当前列:',
+ and: '与',
+ or: '或',
+ describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符'
+ },
+ cases: {
+ equal: '等于',
+ unequal: '不等于',
+ gt: '大于',
+ ge: '大于或等于',
+ lt: '小于',
+ le: '小于或等于',
+ begin: '开头是',
+ notbegin: '开头不是',
+ endin: '结尾是',
+ notendin: '结尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介于',
+ custom: '自定义筛选',
+ insensitive: '不区分大小写',
+ isSensitive: '区分大小写'
+ },
+ empty: '(空白)',
+ notData: '无匹配项'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ pro: {
+ area: {
+ mergeErr: '无法对合并单元格进行该操作',
+ multiErr: '无法对多重选择区域进行该操作',
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
+ },
+ fnr: {
+ title: '查找和替换',
+ findLabel: '查找',
+ replaceLabel: '替换',
+ findTitle: '查找内容:',
+ replaceTitle: '替换为:',
+ tabs: {
+ find: '查找',
+ replace: '替换'
+ },
+ filter: {
+ re: '正则表达式',
+ whole: '全词匹配',
+ sensitive: '区分大小写'
+ },
+ btns: {
+ findNext: '查找下一个',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '单元格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '无效的正则表达式',
+ recordCount: '已找到 {0} 个单元格',
+ notCell: '找不到匹配的单元格',
+ replaceSuccess: '成功替换 {0} 个单元格'
+ }
+ },
+ renderer: {
+ search: '搜索',
+ cases: {
+ equal: '等于',
+ unequal: '不等于',
+ gt: '大于',
+ ge: '大于或等于',
+ lt: '小于',
+ le: '小于或等于',
+ begin: '开头是',
+ notbegin: '开头不是',
+ endin: '结尾是',
+ notendin: '结尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介于',
+ custom: '自定义筛选',
+ insensitive: '不区分大小写',
+ isSensitive: '区分大小写'
+ },
+ combination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '升序',
+ sortDesc: '降序',
+ fixedColumn: '锁定列',
+ fixedGroup: '锁定组',
+ cancelFixed: '取消锁定',
+ fixedLeft: '锁定左侧',
+ fixedRight: '锁定右侧',
+ clearFilter: '清除筛选',
+ textOption: '文本筛选',
+ numberOption: '数值筛选'
+ },
+ popup: {
+ title: '自定义筛选的方式',
+ currColumnTitle: '当前列:',
+ and: '与',
+ or: '或',
+ describeHtml: '可用 ? 代表单个字符
用 * 代表任意多个字符'
+ },
+ empty: '(空白)',
+ notData: '无匹配项'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/zh-HK.ts b/packages/locale/lang/zh-HK.ts
new file mode 100644
index 000000000..b85cd157e
--- /dev/null
+++ b/packages/locale/lang/zh-HK.ts
@@ -0,0 +1,3 @@
+import zhTC from './zh-TC'
+
+export default zhTC
diff --git a/packages/locale/lang/zh-MO.ts b/packages/locale/lang/zh-MO.ts
new file mode 100644
index 000000000..b85cd157e
--- /dev/null
+++ b/packages/locale/lang/zh-MO.ts
@@ -0,0 +1,3 @@
+import zhTC from './zh-TC'
+
+export default zhTC
diff --git a/packages/locale/lang/zh-TC.ts b/packages/locale/lang/zh-TC.ts
new file mode 100644
index 000000000..fd1c78ebc
--- /dev/null
+++ b/packages/locale/lang/zh-TC.ts
@@ -0,0 +1,479 @@
+/**
+ * v4保留兼容,已废弃,即将删除文件
+ * @deprecated
+ */
+export default {
+ vxe: {
+ base: {
+ pleaseInput: '请输入',
+ pleaseSelect: '请选择'
+ },
+ loading: {
+ text: '加載中...'
+ },
+ error: {
+ groupFixed: '如果使用分組表頭,固冻结列必須按組設定',
+ groupMouseRange: '分组表頭與 "{0}" 不能同時使用,這可能會出現錯誤',
+ groupTag: '分組列頭應該使用 "{0}" 而不是 "{1}",這可能會出現錯誤',
+ scrollErrProp: '啟用虛擬滾動後不支持該參數 "{0}"',
+ errConflicts: '參數 "{0}" 與 "{1}" 有衝突',
+ unableInsert: '無法插入到指定位置,請檢查參數是否正確',
+ useErr: '安裝 "{0}" 模組時發生錯誤,可能順序不正確,依賴的模組需要在Table之前安裝',
+ barUnableLink: '工具欄無法關聯表格',
+ expandContent: '展開行的插槽應該是 “content”,請檢查是否正確',
+ reqModule: '缺少 "{0}" 模組',
+ reqProp: '缺少必要的 "{0}" 參數,可能會導致出現錯誤',
+ emptyProp: '參數 "{0}" 不允許為空',
+ errProp: '不支持的參數 "{0}",可能為 "{1}"',
+ colRepet: 'column.{0}="{1}" 重複了,這可能會導致某些功能無法使用',
+ notFunc: '方法 "{0}" 不存在',
+ errFunc: '參數 "{0}" 不是一個方法',
+ notValidators: '全局校验 "{0}" 不存在',
+ notFormats: '全局格式化 "{0}" 不存在',
+ notCommands: '全局指令 "{0}" 不存在',
+ notSlot: '插槽 "{0}" 不存在',
+ noTree: '樹狀結構不支援 {0}',
+ notProp: '不支持的參數 "{0}"',
+ checkProp: '當數據量過大時可能會導致複選框卡頓,建議設置參數 "{0}" 提升渲染速度',
+ coverProp: '"{0}" 的參數 "{1}" 重複定義,這可能會出現錯誤',
+ delFunc: '方法 "{0}" 已停用,請使用 "{1}"',
+ delProp: '參數 "{0}" 已停用,請使用 "{1}"',
+ delEvent: '事件 "{0}" 已停用,請使用 "{1}"',
+ removeProp: '參數 "{0}" 已停用,不建議使用,這可能會導致出現錯誤',
+ errFormat: '全域的格式化內容應該使用 "VXETable.formats" 定義,掛載 "formatter={0}" 的管道已不建議使用',
+ notType: '不支持的檔案類型 "{0}"',
+ notExp: '該瀏覽器不支持導入/匯出功能',
+ impFields: '導入失敗,請檢查欄位名和數據格式是否正確',
+ treeNotImp: '樹狀表格不支持導入'
+ },
+ table: {
+ emptyText: '暫無資料',
+ allTitle: '全選/取消',
+ seqTitle: '#',
+ confirmFilter: '篩選',
+ resetFilter: '重置',
+ allFilter: '全部',
+ sortAsc: '按低到高排序',
+ sortDesc: '按高到低排序',
+ filter: '對所選的列啟用篩選',
+ impSuccess: '成功導入 {0} 條記錄',
+ expLoading: '正在匯出中',
+ expSuccess: '匯出成功',
+ expOriginFilename: '匯出_{0}',
+ expSrcFilename: '匯出_從_{0}',
+ customTitle: '列設定',
+ customAll: '全部',
+ customConfirm: '確認',
+ customRestore: '重置',
+ maxFixedCol: '最大冻结列的數量不能超過 {0} 個'
+ },
+ grid: {
+ selectOneRecord: '請至少選擇一條記錄!',
+ deleteSelectRecord: '您確定要刪除所選記錄嗎?',
+ removeSelectRecord: '您確定要移除所選記錄嗎?',
+ dataUnchanged: '資料未更改! ',
+ delSuccess: '成功删除所選記錄!',
+ saveSuccess: '保存成功!',
+ operError: '發生錯誤,操作失敗!'
+ },
+ select: {
+ search: '蒐索',
+ loadingText: '加載中',
+ emptyText: '暫無資料'
+ },
+ pager: {
+ goto: '前往',
+ pagesize: '{0}項/頁',
+ total: '共 {0} 項記錄',
+ pageClassifier: '頁',
+ homePage: '首頁',
+ homePageTitle: '首頁',
+ prevPage: '上一頁',
+ prevPageTitle: '上一頁',
+ nextPage: '下一頁',
+ nextPageTitle: '下一頁',
+ prevJump: '向上跳頁',
+ prevJumpTitle: '向上跳頁',
+ nextJump: '向下跳頁',
+ nextJumpTitle: '向下跳頁',
+ endPage: '末頁',
+ endPageTitle: '末頁'
+ },
+ alert: {
+ title: '系統提示'
+ },
+ button: {
+ confirm: '確認',
+ cancel: '取消'
+ },
+ filter: {
+ search: '搜索'
+ },
+ custom: {
+ cstmTitle: '列設定',
+ cstmRestore: '恢復默認',
+ cstmCancel: '取消',
+ cstmConfirm: '確認',
+ cstmConfirmRestore: '請確認是否恢復成默認列配置?',
+ cstmDragTarget: '移動目標:{0}',
+ setting: {
+ colSort: '排序',
+ sortHelpTip: '點擊並拖動圖標可以調整列的排序',
+ colTitle: '標題',
+ colVisible: '是否顯示',
+ colFixed: '冻结列(最多 {0} 列)',
+ fixedLeft: '左側',
+ fixedUnset: '不設定',
+ fixedRight: '右側'
+ }
+ },
+ import: {
+ modes: {
+ covering: '覆盖',
+ insert: '新增'
+ },
+ impTitle: '導入數據',
+ impFile: '檔名',
+ impSelect: '選擇檔案',
+ impType: '檔案類型',
+ impOpts: '參數設置',
+ impConfirm: '導入',
+ impCancel: '取消'
+ },
+ export: {
+ types: {
+ csv: 'CSV (逗号分隔)(*.csv)',
+ html: '網頁(*.html)',
+ xml: 'XML 文件(*.xml)',
+ txt: '文本文件(制表符分隔)(*.txt)',
+ xls: 'Excel 97-2003 工作簿(*.xls)',
+ xlsx: 'Excel 工作簿(*.xlsx)',
+ pdf: 'PDF (*.pdf)'
+ },
+ modes: {
+ current: '當前數據(當前頁的數據)',
+ selected: '選中數據(當前頁選中的數據)',
+ all: '全量數據(包括所有分頁的數據)'
+ },
+ printTitle: '列印數據',
+ expTitle: '匯出數據',
+ expName: '檔名',
+ expNamePlaceholder: '請輸入檔名',
+ expSheetName: '標題',
+ expSheetNamePlaceholder: '請輸入標題',
+ expType: '保存類型',
+ expMode: '選擇數據',
+ expCurrentColumn: '全部欄位',
+ expColumn: '選擇欄位',
+ expOpts: '參數設置',
+ expOptHeader: '表頭',
+ expHeaderTitle: '是否需要表頭',
+ expOptFooter: '表尾',
+ expFooterTitle: '是否需要表尾',
+ expOptColgroup: '分组表头',
+ expColgroupTitle: '如果存在,則支持帶有分組結構的表頭',
+ expOptMerge: '合併',
+ expMergeTitle: '如果存在,則支持帶有合併結構的儲存格',
+ expOptAllExpand: '展開層級',
+ expAllExpandTitle: '如果存在,則支持將帶有樹結構的數據全部展開',
+ expOptUseStyle: '樣式',
+ expUseStyleTitle: '如果存在,則支持帶樣式的儲存格',
+ expOptOriginal: '源數據',
+ expOriginalTitle: '如果為源數據,則支持導入到表格中',
+ expPrint: '列印',
+ expConfirm: '匯出',
+ expCancel: '取消'
+ },
+ modal: {
+ zoomIn: '最大化',
+ zoomOut: '還原',
+ close: '關閉'
+ },
+ drawer: {
+ close: '關閉'
+ },
+ form: {
+ folding: '收起',
+ unfolding: '展開'
+ },
+ toolbar: {
+ import: '導入',
+ export: '匯出',
+ print: '列印',
+ refresh: '刷新',
+ zoomIn: '全螢幕',
+ zoomOut: '還原',
+ custom: '列設定',
+ customAll: '全部',
+ customConfirm: '確認',
+ customRestore: '重置',
+ fixedLeft: '冻结在左側',
+ fixedRight: '冻结在右側',
+ cancelFixed: '取消冻结列'
+ },
+ input: {
+ date: {
+ m1: '01 月',
+ m2: '02 月',
+ m3: '03 月',
+ m4: '04 月',
+ m5: '05 月',
+ m6: '06 月',
+ m7: '07 月',
+ m8: '08 月',
+ m9: '09 月',
+ m10: '10 月',
+ m11: '11 月',
+ m12: '12 月',
+ quarterLabel: '{0} 年',
+ monthLabel: '{0} 年',
+ dayLabel: '{0} 年 {1}',
+ labelFormat: {
+ date: 'yyyy-MM-dd',
+ time: 'HH:mm:ss',
+ datetime: 'yyyy-MM-dd HH:mm:ss',
+ week: 'yyyy 年第 WW 周',
+ month: 'yyyy-MM',
+ quarter: 'yyyy 年第 q 季度',
+ year: 'yyyy'
+ },
+ weeks: {
+ w: '周',
+ w0: '周日',
+ w1: '周一',
+ w2: '周二',
+ w3: '周三',
+ w4: '周四',
+ w5: '周五',
+ w6: '周六'
+ },
+ months: {
+ m0: '一月',
+ m1: '二月',
+ m2: '三月',
+ m3: '四月',
+ m4: '五月',
+ m5: '六月',
+ m6: '七月',
+ m7: '八月',
+ m8: '九月',
+ m9: '十月',
+ m10: '十一月',
+ m11: '十二月'
+ },
+ quarters: {
+ q1: '第一季度',
+ q2: '第二季度',
+ q3: '第三季度',
+ q4: '第四季度'
+ }
+ }
+ },
+ formDesign: {
+ widget: {
+ input: '輸入框',
+ textarea: '文本域',
+ select: '下拉框'
+ }
+ },
+
+ /**
+ * 扩展插件
+ */
+ plugins: {
+ extendCellArea: {
+ area: {
+ mergeErr: '無法對合併儲存格進行該操作',
+ multiErr: '無法對多重選擇區域進行該操作',
+ extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
+ cpInvalidErr: '該操作無法進行,您選擇的區域中存在被禁止的列({0})'
+ },
+ fnr: {
+ title: '查找和替換',
+ findLabel: '查找',
+ replaceLabel: '替換',
+ findTitle: '查找內容:',
+ replaceTitle: '替換為:',
+ tabs: {
+ find: '查找',
+ replace: '替換'
+ },
+ filter: {
+ re: '規則運算式',
+ whole: '全詞匹配',
+ sensitive: '區分大小寫'
+ },
+ btns: {
+ findNext: '查找下一個',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '儲存格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '無效的規則運算式',
+ recordCount: '已找到 {0} 個儲存格',
+ notCell: '找不到匹配的儲存格',
+ replaceSuccess: '成功替換 {0} 個儲存格'
+ }
+ },
+ filterComplexInput: {
+ menus: {
+ fixedColumn: '凍結列',
+ fixedGroup: '凍結分组',
+ cancelFixed: '取消凍結',
+ fixedLeft: '凍結左侧',
+ fixedRight: '凍結右侧'
+ },
+ cases: {
+ equal: '等於',
+ gt: '大於',
+ lt: '小於',
+ begin: '開頭是',
+ endin: '結尾是',
+ include: '包含',
+ isSensitive: '區分大小寫'
+ }
+ },
+ filterCombination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '昇冪',
+ sortDesc: '降序',
+ fixedColumn: '凍結列',
+ fixedGroup: '凍結分組',
+ cancelFixed: '取消凍結',
+ fixedLeft: '凍結左側',
+ fixedRight: '凍結右側',
+ clearFilter: '清除篩選',
+ textOption: '文字篩選',
+ numberOption: '數值篩選'
+ },
+ popup: {
+ title: '自定義篩選的管道',
+ currColumnTitle: '當前列:',
+ and: '與',
+ or: '或',
+ describeHtml: '用 ? 代表單個字元
用 * 代表任意多個字元'
+ },
+ cases: {
+ equal: '等於',
+ unequal: '不等於',
+ gt: '大於',
+ ge: '大於或等於',
+ lt: '小於',
+ le: '小於或等於',
+ begin: '開頭是',
+ notbegin: '開頭不是',
+ endin: '結尾是',
+ notendin: '結尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介於',
+ custom: '自定義篩選',
+ insensitive: '不區分大小寫',
+ isSensitive: '區分大小寫'
+ },
+ empty: '(空白)',
+ notData: '無匹配項'
+ }
+ },
+
+ /**
+ * 以下废弃
+ * @deprecated
+ */
+ renderer: {
+ search: '蒐索',
+ cases: {
+ equal: '等於',
+ unequal: '不等於',
+ gt: '大於',
+ ge: '大於或等於',
+ lt: '小於',
+ le: '小於或等於',
+ begin: '開頭是',
+ notbegin: '開頭不是',
+ endin: '結尾是',
+ notendin: '結尾不是',
+ include: '包含',
+ exclude: '不包含',
+ between: '介於',
+ custom: '自定義篩選',
+ insensitive: '不區分大小寫',
+ isSensitive: '區分大小寫'
+ },
+ combination: {
+ menus: {
+ clearSort: '清除排序',
+ sortAsc: '昇冪',
+ sortDesc: '降序',
+ fixedColumn: '鎖定列',
+ fixedGroup: '鎖定組',
+ cancelFixed: '取消鎖定',
+ fixedLeft: '鎖定左側',
+ fixedRight: '鎖定右側',
+ clearFilter: '清除篩選',
+ textOption: '文字篩選',
+ numberOption: '數值篩選'
+ },
+ popup: {
+ title: '自定義篩選的管道',
+ currColumnTitle: '當前列:',
+ and: '與',
+ or: '或',
+ describeHtml: '用 ? 代表單個字元
用 * 代表任意多個字元'
+ },
+ empty: '(空白)',
+ notData: '無匹配項'
+ }
+ },
+ pro: {
+ area: {
+ mergeErr: '無法對合併儲存格進行該操作',
+ multiErr: '無法對多重選擇區域進行該操作',
+ extendErr: '如果延伸的區域包含被合併的儲存格,所有合併的儲存格需大小相同',
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作'
+ },
+ fnr: {
+ title: '查找和替換',
+ findLabel: '查找',
+ replaceLabel: '替換',
+ findTitle: '查找內容:',
+ replaceTitle: '替換為:',
+ tabs: {
+ find: '查找',
+ replace: '替換'
+ },
+ filter: {
+ re: '規則運算式',
+ whole: '全詞匹配',
+ sensitive: '區分大小寫'
+ },
+ btns: {
+ findNext: '查找下一個',
+ findAll: '查找全部',
+ replace: '替换',
+ replaceAll: '替换全部',
+ cancel: '取消'
+ },
+ header: {
+ seq: '#',
+ cell: '儲存格',
+ value: '值'
+ },
+ empty: '(空值)',
+ reError: '無效的規則運算式',
+ recordCount: '已找到 {0} 個儲存格',
+ notCell: '找不到匹配的儲存格',
+ replaceSuccess: '成功替換 {0} 個儲存格'
+ }
+ }
+ }
+}
diff --git a/packages/locale/lang/zh-TW.ts b/packages/locale/lang/zh-TW.ts
new file mode 100644
index 000000000..b85cd157e
--- /dev/null
+++ b/packages/locale/lang/zh-TW.ts
@@ -0,0 +1,3 @@
+import zhTC from './zh-TC'
+
+export default zhTC
diff --git a/styles/cssvar.scss b/styles/cssvar.scss
new file mode 100644
index 000000000..439a68fce
--- /dev/null
+++ b/styles/cssvar.scss
@@ -0,0 +1,3 @@
+/*已废弃*/
+
+@import './base.scss';
\ No newline at end of file
diff --git a/styles/modules.scss b/styles/modules.scss
new file mode 100644
index 000000000..85d96d10c
--- /dev/null
+++ b/styles/modules.scss
@@ -0,0 +1,7 @@
+/*已废弃*/
+
+@import './components/column.scss';
+@import './components/colgroup.scss';
+@import './components/table.scss';
+@import './components/grid.scss';
+@import './components/toolbar.scss';
diff --git a/styles/variable.scss b/styles/variable.scss
new file mode 100644
index 000000000..439a68fce
--- /dev/null
+++ b/styles/variable.scss
@@ -0,0 +1,3 @@
+/*已废弃*/
+
+@import './base.scss';
\ No newline at end of file