/** Native-shell catalog. Kept with the shell so packaged builds do not load server sources. */ const ru = { "Check for Updates…": "Проверить обновления…", "Edit": "Правка", "View": "Вид", "Window": "Окно", "Actual Size": "Исходный масштаб", "Zoom In": "Увеличить масштаб", "Zoom Out": "Уменьшить масштаб", "About LearnHarness": "О LearnHarness", "Hide LearnHarness": "Скрыть LearnHarness", "Hide Others": "Скрыть остальные", "Quit LearnHarness": "Выйти из LearnHarness", "Undo": "Отменить", "Redo": "Повторить", "Cut": "Вырезать", "Copy": "Копировать", "Paste": "Вставить", "Select All": "Выбрать всё", "Reload": "Перезагрузить", "Developer Tools": "Инструменты разработчика", "Toggle Full Screen": "Полноэкранный режим", "Minimize": "Свернуть", "Close": "Закрыть", "You're up to date.": "Установлена последняя версия.", "Couldn't check for updates.": "Не удалось проверить обновления.", "LearnHarness {version} is the latest version.": "LearnHarness {version} — последняя версия.", "OK": "ОК", }; function resolveLanguage(preference, languages = []) { return preference === "ru" || preference !== "en" && /^ru(?:-|_|$)/i.test(languages[0] || "") ? "ru" : "en"; } function translate(language, text, params = {}) { return (language === "ru" ? ru[text] || text : text).replace(/\{(\w+)\}/g, (match, key) => Object.hasOwn(params, key) ? String(params[key]) : match); } module.exports = { resolveLanguage, translate };