Локализация
В этой статье
На данный момент Proceset поддерживает два языка: русский и английский. Виджеты также могут быть локализованы. Текущий язык системы передается в объекте widgetContexts
как в props
виджета, так и в методы по конфигурированию панели настроек.
Для локализации виджета необходимо использовать функцию getLocalizedText
из @infomaximum/widget-sdk. Данная функция использует библиотеку @infomaximum/localization и позволяет локализовывать текст.
Локализация настроек и отображения на примере:
src/localization.ts
export const DIMENSIONS_AND_MEASURES = {
ru: "Разрезы и меры",
en: "Dimensions and measures",
};
export const ADD_MEASURE = {
ru: "Добавить меру",
en: "Add measure",
};
export const ADD_DIMENSION = {
ru: "Добавить разрез",
en: "Add dimension",
};
src/App.tsx
import {
getLocalizedText,
type ICustomWidgetProps,
} from "@infomaximum/widget-sdk";
import type { WidgetSettings } from "definition/settings";
import { DIMENSIONS_AND_MEASURES } from "localization";
import { type FC } from "react";
interface IAppProps extends ICustomWidgetProps<WidgetSettings> {}
export const App: FC<IAppProps> = ({ widgetsContext: { language } }) => {
return <div>{getLocalizedText(language, DIMENSIONS_AND_MEASURES)}</div>;
};
src/definition/panel.ts
import {
type IPanelDescriptionCreator,
type IGroupSettings,
EWidgetIndicatorType,
getLocalizedText,
} from "@infomaximum/widget-sdk";
import type { WidgetSettings } from "./settings";
import {
ADD_DIMENSION,
ADD_MEASURE,
DIMENSIONS_AND_MEASURES,
} from "localization";
export const createPanelDescription: IPanelDescriptionCreator<
WidgetSettings,
IGroupSettings
> = ({ language }) => ({
groupSetDescriptions: {
dimensionsAndMeasures: {
title: getLocalizedText(language, DIMENSIONS_AND_MEASURES),
maxCount: Infinity,
accessor: "dimensionsAndMeasures",
addButtons: [
{
title: getLocalizedText(language, ADD_DIMENSION),
indicatorType: EWidgetIndicatorType.DIMENSION,
},
{
title: getLocalizedText(language, ADD_MEASURE),
indicatorType: EWidgetIndicatorType.MEASURE,
},
],
},
},
});
Также пример работы с локализацией можно посмотреть в репозитории с примерами виджетов на GitHub.
Была ли статья полезна?
Да
Нет