diff --git a/src/UIComponents/ColumnDetailsCategorical.tsx b/src/UIComponents/ColumnDetailsCategorical.tsx index d4da767d..706869b4 100644 --- a/src/UIComponents/ColumnDetailsCategorical.tsx +++ b/src/UIComponents/ColumnDetailsCategorical.tsx @@ -3,12 +3,14 @@ import {connect} from 'react-redux'; import {RootState} from '../redux'; import {colors, styles} from '../constants'; import {Bar} from 'react-chartjs-2'; +import {getLocalizedValue} from '../helpers/valueDetails'; import {getCategoricalColumnDetails} from '../selectors/currentColumnSelectors'; import I18n from '../i18n'; import {CategoricalColumnDetails} from '../types'; interface ColumnDetailsCategoricalProps { columnDetails: CategoricalColumnDetails; + datasetId: string; } const chartOptions = { @@ -27,11 +29,15 @@ const chartOptions = { const ColumnDetailsCategorical = ({ columnDetails, + datasetId, }: ColumnDetailsCategoricalProps) => { const {id, uniqueOptions, frequencies} = columnDetails; const labels = uniqueOptions && Object.values(uniqueOptions); + const localizedLabels = labels.map(option => + getLocalizedValue(option, datasetId), + ); const barData = { - labels, + localizedLabels, datasets: [ { label: id, @@ -70,6 +76,7 @@ const ColumnDetailsCategorical = ({ export default connect( (state: RootState) => ({ columnDetails: getCategoricalColumnDetails(state), + datasetId: state.metadata?.name || 'unknown', }), {}, )(ColumnDetailsCategorical); diff --git a/src/UIComponents/CrossTab.tsx b/src/UIComponents/CrossTab.tsx index d53c9822..534855f3 100644 --- a/src/UIComponents/CrossTab.tsx +++ b/src/UIComponents/CrossTab.tsx @@ -9,14 +9,16 @@ import {RootState} from '../redux'; import {getCrossTabData} from '../selectors/visualizationSelectors'; import {styles} from '../constants'; import ScrollableContent from './ScrollableContent'; +import {getLocalizedValue} from '../helpers/valueDetails'; import I18n from '../i18n'; import {CrossTabData} from '../types'; interface CrossTabProps { crossTabData: CrossTabData | null; + datasetId: string; } -const CrossTab = ({crossTabData}: CrossTabProps) => { +const CrossTab = ({crossTabData, datasetId}: CrossTabProps) => { const getCellStyle = useCallback((percent: number) => { return { ...(styles as Record)[ @@ -91,7 +93,7 @@ const CrossTab = ({crossTabData}: CrossTabProps) => { (uniqueLabelValue, index) => { return ( - {uniqueLabelValue} + {getLocalizedValue(uniqueLabelValue, datasetId)} ); }, @@ -104,7 +106,7 @@ const CrossTab = ({crossTabData}: CrossTabProps) => { (featureValue, featureIndex) => { return ( - {featureValue} + {getLocalizedValue(featureValue, datasetId)} ); }, @@ -137,4 +139,5 @@ const CrossTab = ({crossTabData}: CrossTabProps) => { export default connect((state: RootState) => ({ crossTabData: getCrossTabData(state), + datasetId: state.metadata?.name || 'unknown', }))(CrossTab); diff --git a/src/UIComponents/DataTable.tsx b/src/UIComponents/DataTable.tsx index a000cc56..824c885a 100644 --- a/src/UIComponents/DataTable.tsx +++ b/src/UIComponents/DataTable.tsx @@ -9,13 +9,14 @@ import { import {Dispatch} from 'redux'; import {styles} from '../constants'; import {getLocalizedColumnName} from '../helpers/columnDetails'; +import {getLocalizedValue} from '../helpers/valueDetails'; import {DataRow} from '../types'; interface DataTableProps { currentPanel: string; data: DataRow[]; - datasetId?: string; - labelColumn?: string; + datasetId: string; + labelColumn: string; selectedFeatures: string[]; setCurrentColumn: (column?: string) => void; setHighlightColumn: (column?: string) => void; @@ -143,7 +144,7 @@ const DataTable = ({ onMouseEnter={() => handleSetHighlightColumn(columnId)} onMouseLeave={() => handleSetHighlightColumn(undefined)} > - {getLocalizedColumnName(datasetId!, columnId)} + {getLocalizedColumnName(datasetId, columnId)} ); })} @@ -168,7 +169,7 @@ const DataTable = ({ {startingRow !== undefined && index <= startingRow ? (   ) : ( - row[columnId] + getLocalizedValue(row[columnId], datasetId) )} ); @@ -184,8 +185,8 @@ const DataTable = ({ export default connect( (state: RootState, props: {useResultsData?: boolean}) => ({ data: getTableData(state, !!props.useResultsData), - datasetId: state.metadata && state.metadata.name, - labelColumn: state.labelColumn, + datasetId: state.metadata?.name || 'unknown', + labelColumn: state.labelColumn || 'unknown', selectedFeatures: state.selectedFeatures, currentColumn: state.currentColumn, highlightColumn: state.highlightColumn, diff --git a/src/UIComponents/ModelCard.tsx b/src/UIComponents/ModelCard.tsx index 2bddc830..e085c673 100644 --- a/src/UIComponents/ModelCard.tsx +++ b/src/UIComponents/ModelCard.tsx @@ -8,6 +8,7 @@ import Statement from './Statement'; import aiBotBorder from '@public/images/ai-bot/ai-bot-border.png'; import I18n from '../i18n'; import {getLocalizedColumnName} from '../helpers/columnDetails'; +import {getLocalizedValue} from '../helpers/valueDetails'; import { ModelCardColumn, TrainedModelDetailsSave, @@ -21,6 +22,7 @@ interface ModelCardProps { label: ModelCardColumn; features: ModelCardColumn[]; datasetDetails: DatasetDetails; + datasetId: string; } const ModelCard = ({ @@ -30,6 +32,7 @@ const ModelCard = ({ label, features, datasetDetails, + datasetId, }: ModelCardProps) => { const localizedLabel = getLocalizedColumnName(datasetDetails.name, label.id); const localizedFeatures = selectedFeatures.map(feature => @@ -131,7 +134,7 @@ const ModelCard = ({

{I18n.t('modelCardPossibleValues')}
- {label.values.join(' ')} + {label.values.map((value) => getLocalizedValue(value, datasetId)).join(' ')}

)} @@ -158,7 +161,7 @@ const ModelCard = ({

{I18n.t('modelCardPossibleValues')}
- {feature.values.join(' ')} + {feature.values.map((value) => getLocalizedValue(value, datasetId)).join(' ')}

)} @@ -178,4 +181,5 @@ export default connect((state: RootState) => ({ label: getLabelToSave(state), features: getFeaturesToSave(state), datasetDetails: getDatasetDetails(state), + datasetId: state.metadata?.name || 'unknown', }))(ModelCard); diff --git a/src/UIComponents/Predict.tsx b/src/UIComponents/Predict.tsx index 8204f951..9c07f0c0 100644 --- a/src/UIComponents/Predict.tsx +++ b/src/UIComponents/Predict.tsx @@ -17,9 +17,10 @@ import aiBotBorder from '@public/images/ai-bot/ai-bot-border.png'; import ScrollableContent from './ScrollableContent'; import I18n from '../i18n'; import {getLocalizedColumnName} from '../helpers/columnDetails'; +import {getLocalizedValue} from '../helpers/valueDetails'; interface PredictProps { - labelColumn: string | undefined; + labelColumn: string; selectedCategoricalFeatures: string[]; selectedNumericalFeatures: string[]; uniqueOptionsByColumn: Record; @@ -28,7 +29,7 @@ interface PredictProps { predictedLabel: string | number; getPredictAvailable: boolean; extremaByColumn: Record; - datasetId: string | undefined; + datasetId: string; } const Predict = ({ @@ -66,7 +67,7 @@ const Predict = ({ return (