Загрузка данных


import { english } from '@src/translations/englishDict';
import { russian } from '@src/translations/russianDict';

export enum Locale {
  rus = 'ru-RU',
  eng = 'en-US',
}

let dictionary: Record<string, string> = english as Record<string, string>;
let locale: Locale = Locale.eng;

export function getLocale() {
  return locale;
}

export function setLocale(l: Locale) {
  locale = l;
  dictionary = localeToDict[l];
}

export function t(key: string) {
  if (!dictionary || locale === Locale.eng) {
    return key;
  }

  if (!dictionary[key]) {
    console.warn(`Отсутствует перевод для ${key}`);

    return key;
  }

  return dictionary[key];
}

const localeToDict: Record<Locale, Record<string, string>> = {
  [Locale.rus]: russian,
  [Locale.eng]: english,
};


export const english = {};

export const russian = {
  Indicators: 'Индикаторы',
  Settings: 'Настройки',
  'Add volume indicator': 'Добавить индикатор объёма',
  tick: 'тик',
  ticks: 'тики',
  second: 'секунда',
  seconds: 'секунды',
  minute: 'минута',
  minutes: 'минуты',
  hour: 'час',
  hours: 'часы',
  day: 'день',
  days: 'дни',
  week: 'неделя',
  weeks: 'недели',
  months: 'месяца',
  month: 'месяц',
  Bars: 'Бары',
  Line: 'Линия',
  Candles: 'Свечи',
  'Time format': 'Формат времени',
  'Date format': 'Формат даты',
  Crosshair: 'Перекрестие',
  'Trend line': 'Линия тренда',
  Ray: 'Луч',
  'Horizontal line': 'Горизонтальная линия',
  'Horizontal ray': 'Горизонтальный луч',
  'Vertical line': 'Вертикальная линия',
  'Vertical ray': 'Вертикальный луч',
  'Long position': 'Длинная позиция',
  'Short position': 'Короткая позиция',
  'Dates range': 'Диапазон дат',
  'Prices range': 'Диапазон цен',
  'Fixed profile volume': 'Фиксированный профиль объема',
  'Visible profile volume range': 'Профиль объема видимого диапазона',
  'Fibonacci retracement': 'Коррекция Фибоначчи',
  Rectangle: 'Прямоугольник',
  Traectory: 'Траектория',
  'Geometric shapes': 'Геометрические фигуры',
  Text: 'Текст',
  'XABCD template': 'Шаблон XABCD',
  'Measurement tools': 'Инструменты для измерения и прогнозирования',
  Ruler: 'Линейка',
  Upscale: 'Увеличить масштаб',
  Downscale: 'Уменьшить масштаб',
  'Gann and Fibonacci': 'Инструменты Ганна и Фибоначчи',
  'Endless drawing mode': 'Продолжить в режиме рисования',
  'Fix all objects': 'Зафиксировать все объекты',
  'Hide all drawing objects': 'Скрыть все объекты рисования',
  'Clear objects': 'Удалить объекты',
  'DOM tree': 'Дерево объектов',
  'Magnet allows you to attract objects points to the nearest bar prices':
    'Магнит позволяет притягивать точки объектов к ближайшим ценам (откр., макс., мин., закр.) баров',
  Pin: 'Значок',
  Open: 'Откр.',
  High: 'Макс.',
  Low: 'Мин.',
  Close: 'Закр.',
  Change: 'Изм.',
  Time: 'Время',
  Arguments: 'Аргументы',
  // settings
  'Area color': 'Цвет области',
  'Border color': 'Цвет границы',
  'Font size': 'Размер текста',
  Bold: 'Жирный',
  Italics: 'Курсив',
  'Text color': 'Цвет текста',
  'Background color': 'Цвет фона',
  Style: 'Стиль',
  'Background transparency': 'Прозрачность фона',
  Background: 'Фон',
  Reverse: 'Переворот',
  'Labels position': 'Положение меток',
  'Show prices': 'Отображать цену',
  'Show level values': 'Отображать уровень',
  Color: 'Цвет',
  Levels: 'Уровни',
  Left: 'Слева',
  Right: 'Справа',
  'Enter text': 'Введите текст',
  'Profit zone color': 'Цвет зоны прибыли',
  'Loss zone color': 'Цвет зоны убытка',
  'Line color': 'Цвет линии',
  'Growing volume color': 'Цвет растущего объёма',
  'Decreasing volume color': 'Цвет снижающего объёма',
  'POC-line color': 'Цвет POC-линии',
  Length: 'Длинна',
  Data: 'Данные',
  'Open price': 'Цена открытия',
  Max: 'Максимум',
  Min: 'Минимум',
  'Close price': 'Цена закрытия',
  Offset: 'Отступ',
  'Fast length': 'Длина Fast',
  'Slow length': 'Длина Slow',
  'Signal length': 'Длина сигнала',
  'Oscillator MA type': 'Тип осцилятора MA',
  'Signal MA type': 'Тип сигнала MA',
  Save: 'Сохранить',
  Reject: 'Отменить',
  Volume: 'Объём',
  '1D': '1Д',
  '5D': '5Д',
  '1M': '1М',
  '3M': '3М',
  '6M': '6М',
  '1Y': '1Г',
  All: 'Всё',
  '12h': '12ч',
  '24h': '24ч',
  'Mon Q3 \'97': 'Пн кв3 \'97',
  'Mon Q3 1997': 'Пн кв3 1997',
  'Mon 29 Sep \'97': 'Пн 29 сен. \'97',
  'Mon Sep \'97': 'Пн сен. \'97',
  'Mon Sep 29, 1997': 'Пн сен. 29, 1997',
  'Mon Sep 1997': 'Пн сен. 1997',
  'Mon Sep 29': 'Пн сен. 29',
  'Mon 29 Sep': 'Пн 29 сен.',
  'Mon 1997-09-29': 'Пн 1997-09-29',
  'Mon 97-09-29': 'Пн 97-09-29',
  'Mon 97/09/29': 'Пн 97/09/29',
  'Mon 1997/09/29': 'Пн 1997/09/29',
  'Mon 29-09-1997': 'Пн 29-09-1997',
  'Mon 29-09-97': 'Пн 29-09-97',
  'Mon 29/09/97': 'Пн 29/09/97',
  'Mon 29/09/1997': 'Пн 29/09/1997',
  'Mon 09/29/97': 'Пн 09/29/97',
  'Mon 09/29/1997': 'Пн 09/29/1997',
  '09.29.1997 00:00:00': '09.29.1997 00:00:00',
  'interval for': 'интервал для',
  timeframe: 'таймфрейма',
  'Open P&L': 'Откр. поз. П/Л',
  Qty: 'Кол-во',
  'Risk/Reward Ratio': 'Соотношение риск/прибыль',
  Target: 'Цель',
  Amount: 'Количество',
  Stop: 'Стоп',
  Vol: 'Объем',
  bars: 'бары',

  '1t': '1т',
  '10t': '10т',
  '100t': '100т',
  '1000t': '1000т',

  '1s': '1с',
  '5s': '5с',
  '10s': '10с',
  '15s': '15с',
  '30s': '30с',
  '45s': '45с',

  '1m': '1м',
  '2m': '2м',
  '3m': '3м',
  '5m': '5м',
  '10m': '10м',
  '15m': '15м',
  '30m': '30м',
  '45m': '45м',

  '1h': '1ч',
  '2h': '2ч',
  '3h': '3ч',
  '4h': '4ч',
  '8h': '8ч',

  '1d': '1д',
  '3d': '3д',
  '5d': '5д',

  '1w': '1н',

  '1М': '1M',
  '3М': '3M',
};