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