React - 如何更改 material ui 的 DataTable 组件属性的语言?
React - How to change the language of DataTable component properties of material ui?
我正在使用一个名为 DataTable 的 Material ui 组件,问题是过滤字段是英文的,我想知道是否有任何方法可以将他们的语言更改为葡萄牙语
下面是我的组件代码:
import * as React from 'react';
import { DataGrid } from '@mui/x-data-grid';
import { PropTypes } from 'prop-types';
export default function DataTable({ rows, columns }) {
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
/>
</div>
);
}
DataTable.propTypes = {
rows: PropTypes.arrayOf(
PropTypes.shape({
conteudo: PropTypes.string,
disciplina: PropTypes.string,
curso: PropTypes.string,
data: PropTypes.string,
})
).isRequired,
// eslint-disable-next-line react/forbid-prop-types
columns: PropTypes.array.isRequired,
};
我想将“取消排序、按 Desc 排序、过滤、隐藏...”翻译成英语
您可以通过将 localeText
对象道具传递给 DataGrid
来本地化 DataGrid
上的任何文本标签,如下所示:
import { useState } from "react";
import { DataGrid } from "@mui/x-data-grid";
const localizedTextsMap = {
columnMenuUnsort: "não classificado",
columnMenuSortAsc: "Classificar por ordem crescente",
columnMenuSortDesc: "Classificar por ordem decrescente",
columnMenuFilter: "Filtro",
columnMenuHideColumn: "Ocultar",
columnMenuShowColumns: "Mostrar colunas"
};
export default function DataTable({ rows, columns }) {
const [finalClickInfo, setFinalClickInfo] = useState(null);
const handleOnCellClick = (params) => {
setFinalClickInfo(params);
};
return (
<div style={{ height: 400, width: "100%" }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
onCellClick={handleOnCellClick}
localeText={localizedTextsMap}
/>
{finalClickInfo &&
`Final clicked id = ${finalClickInfo.id},
Final clicked field = ${finalClickInfo.field},
Final clicked value = ${finalClickInfo.value}`}
{!finalClickInfo && `Click on a column`}
</div>
);
}
列出所有可以本地化的键here。
您可以查看 this sandbox 以了解此用法的实际工作示例。
只是为了在需要时帮助某人。 (同时更改 dataGrid 页脚)
在我的 .jsx 中添加了:
import { DataGrid, **ptBR** } from "@mui/x-data-grid";
<DataGrid localeText={ptBR.props.MuiDataGrid.localeText}
结果是:
支持的语言环境:
https://material-ui.netlify.app/zh/components/data-grid/localization/
我正在使用一个名为 DataTable 的 Material ui 组件,问题是过滤字段是英文的,我想知道是否有任何方法可以将他们的语言更改为葡萄牙语
下面是我的组件代码:
import * as React from 'react';
import { DataGrid } from '@mui/x-data-grid';
import { PropTypes } from 'prop-types';
export default function DataTable({ rows, columns }) {
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
/>
</div>
);
}
DataTable.propTypes = {
rows: PropTypes.arrayOf(
PropTypes.shape({
conteudo: PropTypes.string,
disciplina: PropTypes.string,
curso: PropTypes.string,
data: PropTypes.string,
})
).isRequired,
// eslint-disable-next-line react/forbid-prop-types
columns: PropTypes.array.isRequired,
};
我想将“取消排序、按 Desc 排序、过滤、隐藏...”翻译成英语
您可以通过将 localeText
对象道具传递给 DataGrid
来本地化 DataGrid
上的任何文本标签,如下所示:
import { useState } from "react";
import { DataGrid } from "@mui/x-data-grid";
const localizedTextsMap = {
columnMenuUnsort: "não classificado",
columnMenuSortAsc: "Classificar por ordem crescente",
columnMenuSortDesc: "Classificar por ordem decrescente",
columnMenuFilter: "Filtro",
columnMenuHideColumn: "Ocultar",
columnMenuShowColumns: "Mostrar colunas"
};
export default function DataTable({ rows, columns }) {
const [finalClickInfo, setFinalClickInfo] = useState(null);
const handleOnCellClick = (params) => {
setFinalClickInfo(params);
};
return (
<div style={{ height: 400, width: "100%" }}>
<DataGrid
rows={rows}
columns={columns}
pageSize={5}
rowsPerPageOptions={[5]}
checkboxSelection
onCellClick={handleOnCellClick}
localeText={localizedTextsMap}
/>
{finalClickInfo &&
`Final clicked id = ${finalClickInfo.id},
Final clicked field = ${finalClickInfo.field},
Final clicked value = ${finalClickInfo.value}`}
{!finalClickInfo && `Click on a column`}
</div>
);
}
列出所有可以本地化的键here。 您可以查看 this sandbox 以了解此用法的实际工作示例。
只是为了在需要时帮助某人。 (同时更改 dataGrid 页脚)
在我的 .jsx 中添加了:
import { DataGrid, **ptBR** } from "@mui/x-data-grid";
<DataGrid localeText={ptBR.props.MuiDataGrid.localeText}
结果是:
支持的语言环境: https://material-ui.netlify.app/zh/components/data-grid/localization/