Используйте пользовательский компонент, обертывающий FunctionField
вместо TextField
.
Используйте react-admin
'translate
HOC на нем.
import React from 'react';
import PropTypes from 'prop-types';
import { translate, FunctionField } from 'react-admin';
import get from 'lodash/get';
const TranslateField = translate(( { translate, namespace, ...props } ) => {
return (
<FunctionField {...props}
render={ (record, source) => translate(`${namespace}.${get(record, source)}`) }
/>
)
});
TranslateField.propTypes = {
namespace: PropTypes.string
}
TranslateField.defaultProps = {
namespace: 'dbphrases',
};
export default TranslateField;
export const MemberList = withStyles(listStyles)(({ classes,
permissions, ...props }) => (
<List {...props}>
<Datagrid rowClick="show">
<TextField source="full_name" />
<TextField source="email" />
<TextField source="telephone" />
<TranslateField source="member_category" />
</Datagrid>
</List>
));
Тогдаэто просто вопрос загрузки правильных переводов в нужном пространстве имен в вашей конфигурации i18n
.Здесь я поместил пространство имен dbphrases
по умолчанию, чтобы принимать переводы из ${locale}.dbphrases.${value}
См. react-admin
документ