diff --git a/locales/ru/gallery.json b/locales/ru/gallery.json index 0967ef42..ea9f69e5 100644 --- a/locales/ru/gallery.json +++ b/locales/ru/gallery.json @@ -1 +1,72 @@ -{} +{ + "galleryData": { + "common": { + "warningthesequenceof": "Предупреждение: последовательность появления света не отражает фактическую скорость света — значимым является только конечное изображение." + }, + "hyperbolicMirror": { + "description": "Это демонстрация отражательного свойства гиперболического зеркала: лучи света, идущие от одного фокуса к гиперболическому зеркалу, будут отражаться от другого фокуса.\n\nДва фокуса гиперболы являются апланатическими точками (см. [Апланатические точки](/gallery/aplanatic-points)).", + "pointlightsourceaton": "Точечный источник света в одной точке фокусировки", + "theorangeraysareimag": "Оранжевые лучи — это воображаемые расширенные лучи от отраженных желтых лучей. \nЭти воображаемые лучи сходятся в другой точке фокуса.", + "title": "Гиперболическое зеркало" + }, + "imagesFormedByTwoMirrors": { + "description": "Эта симуляция показывает изображения, сформированные двумя зеркалами. Зелёная буква \"L\" — это объект. Если угол между двумя зеркалами равен \\(\\frac{360^\\circ}{n}\\), то будет сформировано \\(n-1\\) виртуальных изображений (оранжевые буквы L). Вы можете перетащить конечную точку зеркала, чтобы изменить угол между ними.", + "title": "Изображения из Two Mirrors" + }, + "newtonianTelescope": { + "description": "Это модель ньютоновского телескопа с окуляром Плёссла.", + "title": "Телескоп Ньютона" + }, + "opticalCavity": { + "clickholdleftmouseto": "Нажмите и удерживайте левую кнопку мыши,\nчтобы переместить луч", + "concaveconvexresonat": "Вогнуто-выпуклый резонатор", + "concentricresonator": "Концентрический резонатор", + "confocalresonator": "Конфокальный резонатор", + "d400intheresonatorsb": "d = 400 в резонаторах ниже", + "description": "Это моделирование лучей внутри оптической полости с двумя зеркалами. Учитывая, что длина полости равна \\(d\\), а радиус кривизны ее зеркал равен \\(R_1\\) и \\(R_2\\) соответственно (с соглашением, что \\(R>0\\) для вогнутого зеркала), то оптическая полость является устойчивой (это означает, что для каждого луча, который исходит от одного из зеркал к другому зеркалу, для достаточно высоких зеркал гарантируется нерасходящаяся траектория), тогда и только тогда, когда \\(0\\leq (1-\\frac {d}{R_1})(1-\\frac {d}{R_2})\\leq 1\\). В этом моделировании мы предполагаем, что зеркала являются идеальными изогнутыми зеркалами, что означает, что \\(f=\\frac{R}{2}\\), что приводит предыдущее условие устойчивости к \\(0\\leq (1-\\frac {d}{2f_1})(1-\\frac {d}{2f_2})\\leq 1\\). [Здесь](/gallery/resonator) — это аналогичное моделирование со сферическими зеркалами, где первое условие устойчивости выполняется в параксиальном приближении.", + "dragtomovetheidealmi": "Перетащите, чтобы переместить\nидеальное зеркало", + "planoconcaveresonato": "Плоско-вогнутый резонатор", + "title": "Двухзеркальный оптический резонатор" + }, + "parabolicMirror": { + "description": "Данная симуляция демонстрирует фокусирующее свойство параболического зеркала.", + "title": "Параболическое зеркало" + }, + "penroseUnilluminableRoom": { + "description": "Неосвещаемая комната Пенроуза построена из эллиптических, круглых и линейных зеркал. Она обладает интересным свойством: точечный источник (зеленый) внутри комнаты не будет освещать всю комнату, независимо от того, где вы его разместите. Вы можете перетаскивать зеленую точку, чтобы переместить источник.", + "nomatterwhereyouputt": "Независимо от того, где вы разместите точечный источник, он не будет освещать всю комнату.\nПредупреждение: из-за числовой погрешности он может продолжать светить через некоторое время.", + "title": "Пенроуз неосвещаемая комната" + }, + "periscope": { + "description": "Это имитация перископа, состоящая из двух плоских зеркал и нескольких светоблоков.", + "observerseyenottosca": "Глаз наблюдателя (не в масштабе)", + "title": "Перископ" + }, + "resonator": { + "description": "Это демонстрация плосковогнутого резонатора. Если расстояние между зеркалами больше радиуса кривизны, резонатор неустойчив. Если расстояние между зеркалами меньше или равно радиусу кривизны, формируется устойчивая мода резонатора.", + "flatmirror": "Плоское зеркало", + "title": "Плоско-вогнутый резонатор" + }, + "retroreflectors": { + "catseyeretroreflecto": "Ретрорефлектор «кошачий глаз»", + "cornerretroreflector": "Угловой световозвращатель", + "description": "Это имитация двух типов ретрорефлекторов:\n\n1. Угловой ретрорефлектор.\n2. Ретрорефлектор «кошачий глаз».", + "dragtorotatethebeam": "Перетащите \nчтобы повернуть луч", + "title": "Световозвращатели" + } + }, + "galleryPage": { + "categories": { + "combinationOfLenses": "Комбинация линз", + "grinOptics": "Градиентно-индексная оптика", + "lens": "Объектив", + "miscellaneous": "Разнообразный", + "reflection": "Отражение", + "refraction": "Преломление", + "title": "Категории" + }, + "description": "Это коллекция симуляций, созданных с помощью [веб-приложения](/simulator), которые можно использовать в качестве интерактивных демонстраций оптики. Вы можете вносить новые элементы. См. [руководство по внесению вклада](/contributing/gallery) для получения дополнительной информации. Чтобы сообщить об ошибке, [откройте проблему на GitHub](/github/issues) или отправьте электронное письмо по адресу [ray-optics@phydemo.app](/email).", + "openInSimulator": "Открыть в симуляторе", + "title": "Галерея лучевой оптики" + } +} diff --git a/locales/ru/main.json b/locales/ru/main.json index c1f97437..29eb41ef 100644 --- a/locales/ru/main.json +++ b/locales/ru/main.json @@ -1,6 +1,6 @@ { "homePage": { - "description": "Веб-приложение с открытым исходным кодом симулируещее отражение и рефракцию света.\nНаписано на HTML, CSS и JavaScript. ([GitHub](/github))", + "description": "Создавайте и моделируйте 2D геометрические оптические сцены интерактивно.\nАбсолютно бесплатно и на веб-основе. Исходный код [доступен на GitHub](/github).", "launchSimulator": "Запустить приложение" }, "languageDropdown": { @@ -12,12 +12,22 @@ "list": "{{first}}, {{others}}", "parentheses": "{{main}} ({{sub}})" }, + "pages": { + "about": "Узнать больше", + "gallery": "Галерея", + "github": "GitHub", + "home": "Главная", + "modules": "Модули", + "simulator": "Симулятор" + }, "project": { + "description": "Бесплатное веб-приложение с открытым исходным кодом для создания и моделирования двумерных геометрических оптических сцен.", "name": "Симуляция оптических лучей", "shortName": "Лучевая оптика" }, "tools": { "AngleSource": { + "description": "Точечный источник с заданным углом излучения.", "instruction": "Потяните или нажмите, чтобы создать. Первая точка - источник, испускающий луч в сторону второй точки." }, "ArcMirror": { @@ -26,7 +36,7 @@ "title": "Дуговое" }, "Beam": { - "description": "Пучок параллельных лучей, исходящих из отрезка, с плотностью лучей задаваемой ползунком 'Плотность лучей'. (Also supports divergent beams.)", + "description": "Пучок параллельных лучей, исходящих из отрезка, с плотностью лучей задаваемой ползунком 'Плотность лучей'.", "title": "Пучок" }, "Blocker": { @@ -36,6 +46,10 @@ "description": "Стекло в форме круга. Задается центром и точкой.", "title": "Круг" }, + "CustomMirror": { + "description": "Зеркало, форма которого определяется пользовательским уравнением y = f(x), где (x,y) находится в преобразованных координатах, в которых двумя контрольными точками являются (-1,0) и (1,0).", + "title": "Пользовательское уравнение" + }, "Glass": { "description": "Стекло с формой, состоящей из отрезков и дуг.", "instruction": "Нажмите, чтобы создать отрезок, потяните, чтобы создать дугу, нажмите на начальную точку, чтобы закончить фигуру." @@ -52,6 +66,11 @@ "description": "Симулирует отражение в зеркале.", "title": "Плоское" }, + "ParabolicMirror": { + "description": "Зеркало, имеющее форму параболы, определяемую тремя точками.", + "instruction": "Перетащите или щелкните две конечные точки, которые нужно создать, затем щелкните вершину.", + "title": "Параболический" + }, "PlaneGlass": { "description": "Симулирует отражение и преломление света на поверхности.", "instruction": "Потяните или нажмите, чтобы создать.", @@ -95,7 +114,7 @@ "title": "Другое" }, "otherMirror": { - "description": "Зеркало в форме дуги. Задается тремя точками.", + "description": "Зеркало, форма которого изогнута. Может быть круглым, параболическим или определяться пользовательским уравнением y = f(x).", "title": "Дуговое" }, "title": "Инструменты" diff --git a/locales/ru/modules.json b/locales/ru/modules.json index 0967ef42..db21b9ae 100644 --- a/locales/ru/modules.json +++ b/locales/ru/modules.json @@ -1 +1,71 @@ -{} +{ + "moduleData": { + "BeamExpander": { + "description": "Комбинация двух идеальных линз, сумма фокусных расстояний которых равна расстоянию между ними. Они расширяют или уменьшают диаметр пучка коллимированного света. Модульная версия [этого примера галереи](/gallery/beam-expanders).", + "point1": "Центр первой линзы", + "point2": "Вторая точка второй линзы", + "point3": "Определяет общую фокусную точку линз", + "title": "Расширитель луча" + }, + "Chaff": { + "L": "Длина зеркал", + "N": "Число зеркал в мякине", + "description": "Чафф прямоугольной формы, состоящий из случайных кусков зеркал. Модульная версия [этого примера галереи](/gallery/chaff-countermeasure).", + "point1": "Верхний левый угол шелухи", + "point2": "Правый нижний угол шелухи", + "title": "Мякина" + }, + "CircleSource": { + "N": "Количество точечных источников", + "brightness": "Общая яркость", + "description": "Круг с равномерно расположенными по его окружности точечными источниками света со стороной 180 градусов.", + "point1": "Центр круга", + "r": "Радиус окружности", + "title": "Круглый источник света" + }, + "ContSpectrum": { + "brightness": "Общая яркость", + "description": "Источник света с равномерным непрерывным спектром, дискретизированным с заданным постоянным шагом. Работает только при включенном \"Имитировать цвета\".", + "max": "Максимальная длина волны", + "min": "Минимальная длина волны", + "point1": "Происхождение лучей", + "point2": "Определяет направление лучей", + "step": "Шаг длины волны", + "title": "Источник света непрерывного спектра" + }, + "FresnelLens": { + "Nslice": "Количество ломтиков", + "description": "Линза Френеля, сделанная из полукруглого куска стекла. Модульная версия [этого примера галереи](/gallery/fresnel-lens).", + "point1": "Первая конечная точка линзы", + "point2": "Вторая конечная точка линзы", + "refIndex": "Показатель преломления линзы", + "title": "Линза Френеля" + }, + "RayRelay": { + "description": "Серия идеальных идентичных линз с фокусным расстоянием \\(f\\) и расстоянием \\(d\\) между линзами. Нерасходящаяся траектория луча гарантируется тогда и только тогда, когда \\(d\\leq 4f\\). Модуляризированная версия [этого примера галереи](/gallery/ray-relaying).", + "title": "Рэй Реле" + } + }, + "modulesPage": { + "contribution": { + "description": "Приветствуется участие в списке выше. Чтобы внести свой модуль, см. [Внесение модулей](/contributing/modules).", + "title": "Вклад" + }, + "customization": { + "description": "Модули можно создавать или настраивать непосредственно в веб-приложении с помощью встроенного редактора JSON. См. [руководство](/modules/tutorial). Настройка импортированных модулей повлияет только на текущую сцену.", + "title": "Кастомизация" + }, + "description": { + "appearAsTools": "Импортированные модули будут отображаться как инструменты в категории «Другое». Выберите и щелкните пустое место в соответствии с порядком последовательности контрольных точек (см. «Спецификация»).", + "embeddedInScene": "Импортированные модули встроены в данные сцены, поэтому не будут автоматически обновляться при обновлении модулей авторами.", + "makeNewTools": "Функция «Модуль» позволяет создавать новые инструменты путем комбинирования, специализации или перепараметризации объектов, созданных существующими инструментами в этом симуляторе." + }, + "import": "Импортировать", + "imported": "Импортировано", + "specification": { + "controlPointSequence": "Последовательность контрольных точек", + "parameters": "Параметры", + "title": "Спецификация" + } + } +} diff --git a/locales/ru/simulator.json b/locales/ru/simulator.json index 8f1f3e82..30193fc4 100644 --- a/locales/ru/simulator.json +++ b/locales/ru/simulator.json @@ -1,10 +1,21 @@ { "common": { "cancelButton": "Отмена", + "closeButton": "Закрыть", + "defaultOption": "По умолчанию", + "reloadToTakeEffect": "Пожалуйста, перезагрузите страницу, чтобы изменения вступили в силу.", "saveButton": "Сохранить" }, "file": { + "copyLink": { + "description": "Скопируйте и перейдите по прямому URL-адресу текущей сцены, который можно использовать для обмена (возможно, через сокращатель URL). Также см. Настройки -> URL автосинхронизации.", + "title": "Скопировать ссылку для общего доступа" + }, + "export": { + "title": "Экспортировать как PNG/SVG" + }, "open": { + "description": "Откройте существующий файл или фоновое изображение. Фоновое изображение будет показано из начала координат. (Или перетащите файл)", "title": "Открыть" }, "redo": { @@ -19,13 +30,57 @@ "title": "Файл", "undo": { "title": "Отмена" + }, + "viewGallery": { + "description": "Перейдите на веб-страницу Галереи, чтобы загрузить пример.", + "title": "Посмотреть галерею" } }, "footer": { + "helpPopup": { + "constrainedDragging": { + "description": "При перетаскивании объекта удерживайте Shift, чтобы ограничиться горизонталью/вертикалью; удерживайте Ctrl, чтобы клонировать. При создании объекта в форме линии или перетаскивании его конечных точек удерживайте Shift, чтобы зафиксировать угол или привязать к 0°, 45°, 90°; удерживайте Ctrl, чтобы вращать/масштабировать относительно его центра.", + "title": "Ограниченное перетаскивание" + }, + "contactUs": { + "contribute": "Прямые взносы также приветствуются (см. [руководство по внесению вклада](/contributing)).", + "description": "Предлагаемый способ — перейти на [Обсуждения](/github/discussions) или [Проблемы](/github/issues) на GitHub. Если вы не используете GitHub, вы также можете написать нам по адресу [ray-optics@phydemo.app](/email).", + "title": "Связаться с нами" + }, + "editCoordinates": { + "description": "Дважды щелкните или щелкните правой кнопкой мыши контрольную точку (например, конечную точку) объекта, отредактируйте координаты (x,y), затем нажмите Enter.", + "title": "Редактировать координаты напрямую" + }, + "groupRotateScale": { + "description": "Удерживая клавишу Ctrl, щелкните несколько контрольных точек (например, конечных точек), затем щелкните пустое место, чтобы сгруппировать эти точки и создать маркер. Перетащите маркер (или нажмите клавиши со стрелками), чтобы переместить группу; Shift+перетащите, чтобы ограничиться горизонтальным/вертикальным положением; Ctrl+перетащите, чтобы повернуть группу, Ctrl+Shift+перетащите, чтобы масштабировать группу. Перетащите «+», чтобы задать центр вращения/масштабирования. Щелкните маркер и нажмите Ctrl+D, чтобы дублировать группу; нажмите Delete, чтобы разгруппировать.", + "title": "Группировка, поворот и масштабирование объектов" + }, + "keyboardShortcuts": { + "description": "Когда объект выбран (щелчком мыши), используйте клавиши со стрелками, чтобы переместить объект; Ctrl+D, чтобы дублировать объект; клавишу Delete, чтобы удалить объект.", + "title": "Сочетания клавиш" + }, + "runLocally": { + "description": "Чтобы запустить этот проект на своем компьютере, независимо от онлайн-версии, см. [это руководство](/run-locally).", + "title": "Запускать локально" + } + }, "processing": "Вычисление... Нажмите, чтобы остановить." }, + "generalWarnings": { + "autoSyncUrlTooLarge": "Сцена слишком большая для синхронизации с URL. Пожалуйста, сохраните ее вручную.", + "brightnessInconsistent": "Яркости двух или более источников света насыщаются с несогласованными соотношениями. Это может привести к неправильным показаниям детектора и цветопередаче. Пожалуйста, увеличьте плотность лучей или уменьшите яркость источников света.", + "identicalObjects": "В сцене есть два одинаковых оптических элемента, которые полностью перекрываются. Это может вызвать неожиданное поведение.", + "shareLinkTooLong": "URL слишком длинный, поэтому он может не работать на некоторых платформах. Возможно, вам придется использовать «Сохранить» и поделиться файлом." + }, "languageModal": { - "title": "Язык" + "helpTranslate": "Помогите нам перевести это приложение", + "title": "Язык", + "translatedFraction": "переведено" + }, + "moduleModal": { + "conflict": "Другой модуль с таким же именем уже существует в текущей сцене. Вы можете ввести новое имя или оставить его прежним, чтобы перезаписать существующий модуль.", + "makeCustomModules": "Создать собственный модуль", + "title": "Импортировать модули" }, "objBar": { "applyToAll": { @@ -36,6 +91,12 @@ }, "duplicate": { "title": "Дублировать" + }, + "showAdvanced": { + "title": "Больше вариантов…" + }, + "unselect": { + "description": "Снимите выделение с этого объекта (щелчок правой кнопкой мыши по пустому месту имеет ту же функцию.)" } }, "saveModal": {