feat: add locale files for Russian language, translated texts in locale json files to Russian language. (#4984)

This commit is contained in:
Rafael Osipov 2025-05-07 23:20:10 +03:00 committed by GitHub
parent a16d612a8a
commit c829270c80
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 353 additions and 3 deletions

View File

@ -7,6 +7,7 @@ import fr from './fr/';
import ja_JP from './ja-JP/';
import nl from './nl/';
import pt_BR from './pt-BR/';
import ru from './ru/';
import vi from './vi/';
import zh from './zh/';
import test_lng from './test-LNG/';
@ -21,6 +22,7 @@ export default {
...ja_JP,
...nl,
...pt_BR,
...ru,
...vi,
...zh,
...test_lng,

View File

@ -0,0 +1,18 @@
{
"About OHIF Viewer": "О программе OHIF Viewer",
"Browser": "Браузер",
"Build number": "Номер сборки",
"Commit hash": "Хэш-код git-коммита'}",
"Data citation": "Цитирование",
"Important links": "Важные ссылки",
"Last master commits": "Последние коммиты в ветку Master:",
"More details": "Подробнее",
"Name": "Название",
"OS": "Операционная система",
"Report an issue": "Сообщить о проблеме",
"Repository URL": "URL репозитория",
"Value": "Значение",
"Version information": "Информация о версии",
"Version number": "Номер версии",
"Visit the forum": "Посетите форум"
}

View File

@ -0,0 +1,51 @@
{
"Acquired": "Получено",
"Angle": "Угол",
"Annotation": "Аннотация",
"Axial": "Аксиальный",
"Bidirectional": "Двунаправленный",
"Brush": "Кисть",
"Cine": "Кинорежим",
"CINE": "КИНОРЕЖИМ",
"Cancel": "Отмена",
"Capture": "Захват",
"Circle": "Окружность",
"Clear": "Очистить",
"Coronal": "Корональный",
"Crosshairs": "Перекрестие",
"Download": "Скачать",
"Ellipse": "Эллипс",
"Elliptical": "Эллиптический",
"Flip H": "Отразить горизонтально",
"Flip Horizontally": "Отразить по горизонтали",
"Flip V": "Отразить вертикально",
"Freehand": "Свободная рука",
"Grid Layout": "Сетка",
"Invert": "Инвертировать",
"Layout": "$t(Common:Layout)",
"Length": "Длина",
"Levels": "Уровни",
"Magnify": "Увеличить",
"Manual": "Ручной",
"Measurements": "Измерения",
"More": "$t(Common:More)",
"More Tools": "Другие инструменты",
"Next": "$t(Common:Next)",
"Pan": "Перемещение",
"Play": "$t(Common:Play)",
"Previous": "$t(Common:Previous)",
"Probe": "Измерение",
"ROI Window": "Окно области интереса",
"Rectangle": "Прямоугольник",
"Reference Lines": "Опорные линии",
"Reset": "$t(Common:Reset)",
"Reset to defaults": "$t(Common:Reset) to Defaults",
"Rotate Right": "Повернуть направо",
"Sagittal": "Сагиттальный",
"Save": "Сохранить",
"Stack Scroll": "Прокрутка стопки",
"Stack Image Sync": "Синхронизация стопок",
"Stop": "$t(Common:Stop)",
"Themes": "Tемы",
"Zoom": "Масштаб"
}

View File

@ -0,0 +1,8 @@
{
"Next image": "След. изображение",
"Play / Stop": "Воспр. / Стоп",
"Previous image": "Пред. изображение",
"Skip to first image": "В начало",
"Skip to last image": "В конец",
"fps": "кадр/сек"
}

View File

@ -0,0 +1,22 @@
{
"Back to": "Назад к {{location}}",
"Close": "Закрыть",
"Image": "Изображение",
"Layout": "Расположение",
"LOAD": "ЗАГРУЗКА",
"Measurements": "Измерения",
"mm": "мм",
"More": "Подробнее",
"Next": "Далее",
"No": "Нет",
"NoStudyDate": "Нет даты исследования",
"Play": "Воспроизведение",
"Previous": "Пред.",
"Reset": "Сброс",
"RowsPerPage": "записей на страницу",
"Series": "Наборы",
"Show": "Показать",
"Stop": "Стоп",
"StudyDate": "Дата исследования",
"Yes": "Да"
}

View File

@ -0,0 +1,24 @@
{
"Configure Data Source": "Настроить источник данных",
"Data set": "Набор данных",
"DICOM store": "Хранилище DICOM",
"Location": "Местоположение",
"Project": "Проект",
"Error fetching Data set list": "Ошибка при получении набора данных",
"Error fetching DICOM store list": "Ошибка при получении списка DICOM-хранилищ",
"Error fetching Location list": "Ошибка при получении списка местоположений",
"Error fetching Project list": "Ошибка при получении списка проектов",
"No Project available": "Нет доступных проектов",
"No Location available": "Нет доступных местоположений",
"No Data set available": "Нет доступных наборов данных",
"No DICOM store available": "Нет доступных DICOM-хранилищ",
"Select": "Выбрать",
"Search Data set list": "Поиск наборов данных",
"Search DICOM store list": "Поиск DICOM-хранилищ",
"Search Location list": "Поиск местоположений",
"Search Project list": "Поиск проектов",
"Select Data set": "Выберите набор данных",
"Select DICOM store": "Выберите DICOM-хранилище",
"Select Location": "Выберите местоположение",
"Select Project": "Выберите проект"
}

View File

@ -0,0 +1,9 @@
{
"Clear dates": "Сброс",
"Close": "$t(Common:Close)",
"End Date": "Конечная дата",
"Last 7 days": "Последние 7 дней",
"Last 30 days": "Последние 30 дней",
"Start Date": "Начальная дата",
"Today": "Сегодня"
}

View File

@ -0,0 +1,8 @@
{
"Context": "Контекст",
"Error Message": "Сообщение об ошибке",
"Something went wrong": "Что-то пошло не так",
"in": "в",
"Sorry, something went wrong there. Try again.": "Извините, что-то пошло не так, попробуйте ещё раз...",
"Stack Trace": "Стек-трейс"
}

View File

@ -0,0 +1,9 @@
{
"About": "О программе",
"Back to Viewer": "Вернуться в программу",
"INVESTIGATIONAL USE ONLY": "ТОЛЬКО ДЛЯ ИССЛЕДОВАТЕЛЬСКИХ ЦЕЛЕЙ",
"Options": "Настройки",
"Preferences": "Предпочтения",
"Study list": "Список исследований",
"Logout": "Выйти"
}

View File

@ -0,0 +1,6 @@
{
"Field can't be empty": "Поле не может быть пустым",
"Hotkey is already in use": "\"{{action}}\" уже задано для комбинации клавиш \"{{pressedKeys}}\".",
"It's not possible to define only modifier keys (ctrl, alt and shift) as a shortcut": "Нельзя задать для комбинации клавиш только одну модифицирующую клавишу (ctrl, alt и shift)",
"Shortcut combination is not allowed": "{{pressedKeys}} - эту комбинацию клавиш использовать нельзя."
}

View File

@ -0,0 +1,5 @@
{
"is for investigational use only": "только для исследовательских целей",
"Confirm and hide": "Подтвердить и закрыть",
"Learn more about OHIF Viewer": "Узнать больше об OHIF Viewer"
}

View File

@ -0,0 +1,18 @@
{
"Criteria nonconformities": "Отклонения от критериев",
"Delete": "Удалить",
"Description": "Описание",
"MAX": "МАКС.",
"Measurements": "Измерения",
"No, do not ask again": "Нет, больше не спрашивать",
"NonTargets": "Нецелевые объекты",
"Relabel": "Изменить метку",
"Targets": "Целевые объекты",
"Track measurements for this series?": "Отслеживать измерения для этой серии?",
"Do you want to add this measurement to the existing report?": "Добавить это измерение в текущий отчёт?",
"You have existing tracked measurements. What would you like to do with your existing tracked measurements?": "У вас есть отслеживаемые измерения. Что бы вы хотели с ними сделать?",
"Measurements cannot span across multiple studies. Do you want to save your tracked measurements?": "Измерения не могут быть распределены между несколькими исследованиями. Сохранить текущие измерения?",
"Do you want to continue tracking measurements for this study?": "Продолжить отслеживание измерений для этого исследования?",
"Do you want to open this Segmentation?": "Открыть эту сегментацию?",
"There are unsaved measurements. Do you want to save it?": "Есть несохранённые измерения. Сохранить их?"
}

View File

@ -0,0 +1,16 @@
{
"Display Set Messages": "Сообщения о наборах изображений",
"1": "В серии не найдено корректных экземпляров.",
"2": "В наборе изображений отсутствует информация о положении.",
"3": "Набор изображений не является восстанавливаемым 3D-объёмом.",
"4": "Многофреймовые наборы изображений не содержат данных о пиксельных измерениях.",
"5": "Многофреймовые наборы изображений не содержат информации об ориентации.",
"6": "Многофреймовые наборы изображений не содержат информации о положении.",
"7": "В наборе изображений отсутствуют некоторые кадры.",
"8": "В наборе изображений обнаружен нерегулярный интервал между кадрами.",
"9": "В наборе изображений обнаружено несовпадение размеров кадров.",
"10": "В наборе изображений кадры содержат разное количество компонентов.",
"11": "В наборе изображений кадры имеют несовместимые ориентации.",
"12": "В наборе изображений обнаружена противоречивая информация о положении.",
"13": "Неподдерживаемый набор изображений."
}

View File

@ -0,0 +1,8 @@
{
"Basic Dev Viewer": "Базовый просмотр",
"Basic Test Mode": "Базовый тестовый режим",
"Basic Viewer": "Базовый просмотр",
"Microscopy": "Микроскопия",
"Segmentation": "Сегментация",
"Total Metabolic Tumor Volume": "Общий метаболический объём опухоли"
}

View File

@ -0,0 +1,18 @@
{
"Active": "Активный",
"Add new segmentation": "Добавить новую сегментацию",
"Add segment": "Добавить сегмент",
"Add segmentation": "Добавить сегментацию",
"Delete": "Удалить",
"Display inactive segmentations": "Отобразить неактивные сегментации",
"Export DICOM SEG": "Экспортировать DICOM SEG",
"Download DICOM SEG": "Скачать DICOM SEG",
"Download DICOM RTSTRUCT": "Скачать DICOM RTSTRUCT",
"Fill": "Заполнить",
"Inactive segmentations": "Неактивные сегментации",
"Opacity": "Тень",
"Outline": "Контур",
"Rename": "Переименовать",
"Segmentation": "Сегментация",
"Size": "Размер"
}

View File

@ -0,0 +1,4 @@
{
"Measurements": "Измерения",
"Studies": "Исследования"
}

View File

@ -0,0 +1,5 @@
{
"Primary": "Первичные",
"Recent": "Недавние",
"All": "Все"
}

View File

@ -0,0 +1,3 @@
{
"Tracked series": "{{trackedSeries}} Отслеживаемые серии"
}

View File

@ -0,0 +1,20 @@
{
"AccessionNumber": "Учётный номер",
"ClearFilters": "Сбросить фильтры",
"Description": "Описание",
"Empty": "Пусто",
"Filter list to 100 studies or less to enable sorting": "Отфильтруйте список до 100 исследований или меньше для включения сортировки",
"Instances": "Экземпляры",
"Modality": "Модальность",
"MRN": "Мед. карта #",
"Next": "Далее >",
"No studies available": "Исследований не найдено",
"Number of studies": "Количество исследований",
"Page": "Страница",
"PatientName": "Пациент",
"Previous": "< Назад",
"Results per page": "Строк на странице",
"StudyDate": "Дата исследования",
"StudyList": "Список исследований",
"Upload": "Загрузить"
}

View File

@ -0,0 +1,5 @@
{
"Series is tracked": "Серия отслеживается",
"Series is untracked": "Серия не отслеживается",
"Viewport": "Область просмотра"
}

View File

@ -0,0 +1,4 @@
{
"Copied": "Скопировано",
"Failed to copy": "Ошибка при копировании"
}

View File

@ -0,0 +1,4 @@
{
"Series is tracked and can be viewed in the measurement panel": "Серия отслеживается и может быть просмотрена в измерительной панели",
"Measurements for untracked series will not be shown in the measurements panel": "Измерения для неотслеживаемых серий не будут отображаться в измерительной панели"
}

View File

@ -0,0 +1,9 @@
{
"Cancel": "$t(Buttons:Cancel)",
"No hotkeys found": "Горячие клавиши не сконфигурированы для этого приложения. Горячие клавиши могут быть сконфигурированы в файле app-config.js приложения.",
"Reset to defaults": "$t(Buttons:Reset to defaults)",
"ResetDefaultMessage": "Настройки были сброшены до фабричных. <br /> Вы должны <strong>сохранить изменения</strong>.",
"Save": "$t(Buttons:Save)",
"SaveMessage": "Настройки сохранены",
"User preferences": "Пользовательские настройки"
}

View File

@ -0,0 +1,14 @@
{
"emptyFilenameError": "Имя файла не может быть пустым.",
"fileType": "Тип файла",
"filename": "Имя файла",
"formTitle": "Пожалуйста укажите размеры, имя файла и желаемый тип для результирующего изображения.",
"imageHeight": "Высота (точек)",
"imagePreview": "Предв. просмотр",
"imageWidth": "Ширина (точек)",
"keepAspectRatio": "Сохранить пропорции",
"loadingPreview": "Загружаем изображение для предварительного просмотра...",
"minHeightError": "Минимальная разрешенная высота: 100 точек.",
"minWidthError": "Минимальная разрешенная ширина: 100 точек.",
"showAnnotations": "Показать аннотации"
}

View File

@ -0,0 +1,5 @@
{
"Back to Display Options": "Назад к настройкам отображения",
"Modality Presets": "{{modality}} предустановок",
"Modality Window Presets": "{{modality}} предустановок окна"
}

View File

@ -0,0 +1,53 @@
import AboutModal from './AboutModal.json';
import Buttons from './Buttons.json';
import CineDialog from './CineDialog.json';
import Common from './Common.json';
import DataSourceConfiguration from './DataSourceConfiguration.json';
import DatePicker from './DatePicker.json';
import ErrorBoundary from './ErrorBoundary.json';
import Header from './Header.json';
import HotkeysValidators from './HotkeysValidators.json';
import InvestigationalUseDialog from './InvestigationalUseDialog.json';
import MeasurementTable from './MeasurementTable.json';
import Modes from './Modes.json';
import SegmentationTable from './SegmentationTable.json';
import SidePanel from './SidePanel.json';
import StudyBrowser from './StudyBrowser.json';
import StudyItem from './StudyItem.json';
import StudyList from './StudyList.json';
import TooltipClipboard from './TooltipClipboard.json';
import ThumbnailTracked from './ThumbnailTracked.json';
import TrackedCornerstoneViewport from './TrackedCornerstoneViewport.json';
import UserPreferencesModal from './UserPreferencesModal.json';
import ViewportDownloadForm from './ViewportDownloadForm.json';
import Messages from './Messages.json';
import WindowLevelActionMenu from './WindowLevelActionMenu.json';
export default {
ru: {
AboutModal,
Buttons,
CineDialog,
Common,
DataSourceConfiguration,
DatePicker,
ErrorBoundary,
Header,
HotkeysValidators,
InvestigationalUseDialog,
MeasurementTable,
Modes,
SegmentationTable,
SidePanel,
StudyBrowser,
StudyItem,
StudyList,
TooltipClipboard,
ThumbnailTracked,
TrackedCornerstoneViewport,
UserPreferencesModal,
ViewportDownloadForm,
Messages,
WindowLevelActionMenu,
},
};

View File

@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { Icons } from '@ohif/ui-next';
import { Button } from '../Button';
import { useTranslation } from 'react-i18next';
export enum showDialogOption {
NeverShowDialog = 'never',
@ -16,6 +17,7 @@ const InvestigationalUseDialog = ({
}) => {
const { option, days } = dialogConfiguration;
const [isHidden, setIsHidden] = useState(true);
const { t } = useTranslation('InvestigationalUseDialog');
useEffect(() => {
const dialogLocalState = localStorage.getItem('investigationalUseDialog');
@ -69,14 +71,14 @@ const InvestigationalUseDialog = ({
<div className="flex flex-col">
<div className="text-[19px] text-white">
OHIF Viewer is{' '}
<span className="text-primary-light">for investigational use only</span>
<span className="text-primary-light">{t('for investigational use only')}</span>
</div>
<div className="text-[13px] text-white">
<span
className="text-primary-active cursor-pointer"
onClick={() => window.open('https://ohif.org/', '_blank')}
>
Learn more about OHIF Viewer
{t('Learn more about OHIF Viewer')}
</span>
</div>
</div>
@ -86,7 +88,7 @@ const InvestigationalUseDialog = ({
className="bg-primary-main"
dataCY="confirm-and-hide-button"
>
Confirm and Hide
{t('Confirm and hide')}
</Button>
</div>
</div>