Top.Mail.Ru
Локализация
8 800 555-89-02
For developers
CTRL+K
Standalone2403

Локализация

В этой статье
  • Локализация

На данный момент 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.

Была ли статья полезна?

Да
Нет
Предыдущая
Фильтрация
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102024. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.