Загрузка данных
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',
};