Updated Russian localization

This commit is contained in:
TokcDK 2020-05-14 23:11:29 +05:00 committed by Akash Mozumdar
parent a2d1374ad4
commit 3e21a6b4ba

View File

@ -1,4 +1,4 @@
#ifdef _WIN64 #ifdef _WIN64
#define ARCH "x64" #define ARCH "x64"
#else #else
#define ARCH "x86" #define ARCH "x86"
@ -376,6 +376,7 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
NATIVE_LANGUAGE = "Russian"; NATIVE_LANGUAGE = "Russian";
ATTACH = u8"Присоединить к игре"; ATTACH = u8"Присоединить к игре";
LAUNCH = u8"Запустить игру"; LAUNCH = u8"Запустить игру";
GAME_CONFIG = u8"Настройки игры";
DETACH = u8"Отсоединить от игры"; DETACH = u8"Отсоединить от игры";
FORGET = u8"Забыть игру"; FORGET = u8"Забыть игру";
ADD_HOOK = u8"Добавить хук"; ADD_HOOK = u8"Добавить хук";
@ -387,27 +388,53 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
SELECT_PROCESS = u8"Выберете процесс"; SELECT_PROCESS = u8"Выберете процесс";
ATTACH_INFO = u8R"(Если вы не видите процесс, к которому хотите присоединить, попробуйте запуск с правами администратора ATTACH_INFO = u8R"(Если вы не видите процесс, к которому хотите присоединить, попробуйте запуск с правами администратора
Вы также можете ввести id процесса)"; Вы также можете ввести id процесса)";
SELECT_PROCESS_INFO = u8"При ручном вводе имени файла процесса используйте абсолютный путь";
FROM_COMPUTER = u8"Найти в проводнике"; FROM_COMPUTER = u8"Найти в проводнике";
PROCESSES = u8"Процессы (*.exe)"; PROCESSES = u8"Процессы (*.exe)";
CODE_INFODUMP = u8R"(Введите код чтения
R{S|Q|V|M}[null_length<][codepage#]@addr
ИЛИ
Введите хук-код
H{A|B|W|H|S|Q|V|M}[F][null_length<][N][codepage#][padding+]data_offset[*deref_offset][:split_offset[*deref_offset]]@addr[:module[:func]]
Все цифры кроме codepage/null_length в hexadecimal
Кодировка по умолчанию - 932 (Shift-JIS), но может быть изменена в настройках
A/B: символ кодировки little/big endian
W: символ UTF-16
H: Два hex байта
S/Q/V/M: codepage/UTF-16/UTF-8/hex string
F: treat strings as full lines of text
N: не использовать контекст
null_length: длина null прерывателя, используемого в строке
padding: длина добавочных данных перед строкой (C struct { int64_t size; char string[500]; } needs padding = 8)
Отрицательное для data_offset/split_offset ссылается на регистры
-4 для EAX, -8 для ECX, -C для EDX, -10 для EBX, -14 для ESP, -18 для EBP, -1C для ESI, -20 для EDI
-C для RAX, -14 для RBX, -1C для RCX, -24 для RDX, и так далее для RSP, RBP, RSI, RDI, R8-R15
* значит указатель разницы+deref_offset)";
SAVE_SETTINGS = u8"Сохранить настройки"; SAVE_SETTINGS = u8"Сохранить настройки";
EXTEN_WINDOW_INSTRUCTIONS = u8R"(Перетащите сюда (.dll) файлы расширений из проводника для их добавления EXTEN_WINDOW_INSTRUCTIONS = u8R"(Перетащите сюда (.dll) файлы расширений из проводника для их добавления
(Не работает при запуске от администратора) (Не работает при запуске от администратора)
Перетаскивайте по списку для изменения порядка Перетаскивайте по списку для изменения порядка
Нажмите клавишу удаления, чтобы удалить выбранное расширение)"; Нажмите клавишу удаления, чтобы удалить выбранное расширение)";
ADD_EXTENSION = u8"Добавить расширение";
INVALID_EXTENSION = u8"%1 - неверное расширение"; INVALID_EXTENSION = u8"%1 - неверное расширение";
CONFIRM_EXTENSION_OVERWRITE = u8"Уже существует другая версия этого расширения, перезаписать его?"; CONFIRM_EXTENSION_OVERWRITE = u8"Уже существует другая версия этого расширения, перезаписать его?";
EXTENSION_WRITE_ERROR = u8"Не удалось сохранить расширение"; EXTENSION_WRITE_ERROR = u8"Не удалось сохранить расширение";
USE_JP_LOCALE = u8"Симулировать японскую локаль?"; USE_JP_LOCALE = u8"Симулировать японскую локаль?";
FAILED_TO_CREATE_CONFIG_FILE = u8"Не удалось создать файл настроек \"%1\"";
HOOK_SEARCH_UNSTABLE_WARNING = u8"Поиск хуков нестабилен! Игра может закрыться с ошибкой!"; HOOK_SEARCH_UNSTABLE_WARNING = u8"Поиск хуков нестабилен! Игра может закрыться с ошибкой!";
SEARCH_CJK = u8"Поиск для Китайского/Японского/Корейского"; SEARCH_CJK = u8"Поиск для Китайского/Японского/Корейского";
SEARCH_PATTERN = u8"Шаблон поиска (hex byte array)"; SEARCH_PATTERN = u8"Шаблон поиска (hex byte array)";
SEARCH_DURATION = u8"Продолжительность поиска (ms)"; SEARCH_DURATION = u8"Продолжительность поиска (ms)";
SEARCH_MODULE = u8"Поиск по модулю";
PATTERN_OFFSET = u8"Смещение от начала шаблона"; PATTERN_OFFSET = u8"Смещение от начала шаблона";
MAX_HOOK_SEARCH_RECORDS = u8"Порог поиска"; MAX_HOOK_SEARCH_RECORDS = u8"Порог поиска";
MIN_ADDRESS = u8"Начальный адрес (hex)"; MIN_ADDRESS = u8"Начальный адрес (hex)";
MAX_ADDRESS = u8"Конечный адрес (hex)"; MAX_ADDRESS = u8"Конечный адрес (hex)";
STRING_OFFSET = u8"Смещение строки (hex)"; STRING_OFFSET = u8"Смещение строки (hex)";
HOOK_SEARCH_FILTER = u8"Результат должен совпадать с этим regex"; HOOK_SEARCH_FILTER = u8"Результат должен совпадать с этим regex";
TEXT = u8"Текст";
CODEPAGE = u8"Кодировка";
SEARCH_FOR_TEXT = u8"Поиск определенного текста";
START_HOOK_SEARCH = u8"Начать поиск хуков"; START_HOOK_SEARCH = u8"Начать поиск хуков";
SAVE_SEARCH_RESULTS = u8"Сохранить результат поиска"; SAVE_SEARCH_RESULTS = u8"Сохранить результат поиска";
TEXT_FILES = u8"Текст (*.txt)"; TEXT_FILES = u8"Текст (*.txt)";
@ -415,9 +442,12 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
FILTER_REPETITION = u8"Фильтр повторений"; FILTER_REPETITION = u8"Фильтр повторений";
AUTO_ATTACH = u8"Авто-присоединение"; AUTO_ATTACH = u8"Авто-присоединение";
ATTACH_SAVED_ONLY = u8"Авто-присоединение (только сохраненные)"; ATTACH_SAVED_ONLY = u8"Авто-присоединение (только сохраненные)";
SHOW_SYSTEM_PROCESSES = u8"Показать системные процесы";
DEFAULT_CODEPAGE = u8"Кодировка по умолчанию"; DEFAULT_CODEPAGE = u8"Кодировка по умолчанию";
FLUSH_DELAY = u8"Задержка сброса"; FLUSH_DELAY = u8"Задержка сброса";
MAX_BUFFER_SIZE = u8"Максимальный размер буфера"; MAX_BUFFER_SIZE = u8"Максимальный размер буфера";
MAX_HISTORY_SIZE = u8"Макс. размер истории";
CONFIG_JP_LOCALE = u8"Запуск с JP локалью";
CONSOLE = L"Консоль"; CONSOLE = L"Консоль";
CLIPBOARD = L"Буфер обмена"; CLIPBOARD = L"Буфер обмена";
ABOUT = L"Textractor " ARCH L" в." VERSION LR"( автор: Artikash (email: akashmozumdar@gmail.com) ABOUT = L"Textractor " ARCH L" в." VERSION LR"( автор: Artikash (email: akashmozumdar@gmail.com)
@ -445,25 +475,58 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
STARTING_SEARCH = u8"Textractor: начало поиска"; STARTING_SEARCH = u8"Textractor: начало поиска";
NOT_ENOUGH_TEXT = u8"Textractor: не достаточно текста для точного поиска"; NOT_ENOUGH_TEXT = u8"Textractor: не достаточно текста для точного поиска";
HOOK_SEARCH_INITIALIZED = u8"Textractor: поиск инициализирован с %zd хуками"; HOOK_SEARCH_INITIALIZED = u8"Textractor: поиск инициализирован с %zd хуками";
MAKE_GAME_PROCESS_TEXT = u8"Textractor: покликайте в игре, чтобы вызвать смену текста в течение %d секунд";
HOOK_SEARCH_FINISHED = u8"Textractor: поиск хуков завершен, %d результатов найдено"; HOOK_SEARCH_FINISHED = u8"Textractor: поиск хуков завершен, %d результатов найдено";
OUT_OF_RECORDS_RETRY = u8"Textractor: записи для поиска закончились, повторите,если результаты неудовлетворительны (количество записей по умолчанию увеличено)";
FUNC_MISSING = u8"Textractor: функция отсутствует"; FUNC_MISSING = u8"Textractor: функция отсутствует";
MODULE_MISSING = u8"Textractor: модуль отсутствует"; MODULE_MISSING = u8"Textractor: модуль отсутствует";
GARBAGE_MEMORY = u8"Textractor: память постоянно изменяется, бесполезно читать"; GARBAGE_MEMORY = u8"Textractor: память постоянно изменяется, бесполезно читать";
SEND_ERROR = u8"Textractor: Send ERROR (вероятно неверный H-code)"; SEND_ERROR = u8"Textractor: Send ERROR (вероятно неверный H-code)";
READ_ERROR = u8"Textractor: Reader ERROR (вероятно неверный R-code)"; READ_ERROR = u8"Textractor: Reader ERROR (вероятно неверный R-code)";
HIJACK_ERROR = u8"Textractor: Hijack ERROR";
COULD_NOT_FIND = u8"Textractor: невозможно найти текст"; COULD_NOT_FIND = u8"Textractor: невозможно найти текст";
TRANSLATE_TO = u8"Переводить на";
TRANSLATE_SELECTED_THREAD_ONLY = u8"Переводить текст только в выбранном потоке";
RATE_LIMIT_ALL_THREADS = u8"Ограничение скорости для всех текстовых потоков";
RATE_LIMIT_SELECTED_THREAD = u8"Ограничение скорости выделенного текстового потока";
USE_TRANS_CACHE = u8"Использовать кеш перевода";
RATE_LIMIT_TOKEN_COUNT = u8"Ограничение частоты подсчёта токенов";
RATE_LIMIT_TOKEN_RESTORE_DELAY = u8"Ограничение частоты задержки восстановления токенов (мс)";
TOO_MANY_TRANS_REQUESTS = L"Слишком много запросов для перевода: отклонено"; TOO_MANY_TRANS_REQUESTS = L"Слишком много запросов для перевода: отклонено";
TRANSLATION_ERROR = L"Ошибка при переводе"; TRANSLATION_ERROR = L"Ошибка при переводе";
USE_PREV_SENTENCE_CONTEXT = u8"Использовать предыдущее предложение как контекст";
API_KEY = u8"Ключ API";
EXTRA_WINDOW_INFO = u8R"(Правый клик для изменения настроек EXTRA_WINDOW_INFO = u8R"(Правый клик для изменения настроек
Нажмите и перетащите за края - для перемещения, или за правый-нижний угол - для изменения размера)"; Нажмите и перетащите за края - для перемещения, или за правый-нижний угол - для изменения размера)";
SENTENCE_TOO_BIG = u8"Придложение слишком длинное для отображения";
MAX_SENTENCE_SIZE = u8"Максимальная длина предложения";
TOPMOST = u8"Поверх всех окон"; TOPMOST = u8"Поверх всех окон";
DICTIONARY = u8"Словарь";
DICTIONARY_INSTRUCTIONS = u8R"(Этот файл использован только для функции "Словарь" расширения Extra Window.
Он использует свой формат, специально для Textractor и не предназначен для рачного ввода.
Смотрите онлайн словарь в этом формате(https://github.com/Artikash/Textractor-Dictionaries/releases - начните здесь).
В качестве альтернативы, если вы программист, вы можете написать скрипт для конвертирования словаря из другого формата с информацией, приведенной ниже.
При наличии словаря, для просмотра текста в Экстра окне просто наведите курсор на него. Можно прокрутить все совпадающие определения.
Определения имеют следующий формат:|TERM|Hola<<ignored|TERM|hola|TERM|Bonjour|TERM|bonjour|DEFINITION|hello|END|
Термин и определение могут включать форматированный текст(https://doc.qt.io/qt-5/richtext-html-subset.html), который будет соответствующе отформатирован.
Перефразировки имеют следующий формат:|ROOT|1<<noun|INFLECTS TO|(\w*)s|NAME| plural|END|
Textractor проверит, совпадает ли термин с регексом перефразировки и при совпадении будет рекурсивно искать корневой термин..
Корневой термин генерируется путем замены каждого числа на соответствующую regex группу захвата(при этом 0 заменяется на полное совпадение).
Этот процесс может легко привести к бесконечным циклам и/или переполнению стека. Ваша задача - избежать этого.
regex перефразировок использует QRegularExpression (https://doc.qt.io/qt-5/qregularexpression.html) unicode синтаксис.
Textractor отобразит конечный корневой термин, а также все перефразировки, используемые для получения этого корневого термина.
Однако,текст в термине после << игнорируется при отображении. Это сделано для хранения информации о части речи.
У этого файла кодировка должна быть UTF-8.)";
SHOW_ORIGINAL = u8"Исходный текст"; SHOW_ORIGINAL = u8"Исходный текст";
SHOW_ORIGINAL_INFO = u8R"(Исходный текст будет скрыт SHOW_ORIGINAL_INFO = u8R"(Исходный текст будет скрыт
Работает только если это расширение используется после расширения перевода)"; Работает только если это расширение используется после расширения перевода)";
SIZE_LOCK = u8"Фиксированный размер"; SIZE_LOCK = u8"Фиксированный размер";
OPACITY = u8"Прозрачность";
BG_COLOR = u8"Цвет заднего фона"; BG_COLOR = u8"Цвет заднего фона";
TEXT_COLOR = u8"Цвет текста"; TEXT_COLOR = u8"Цвет текста";
TEXT_OUTLINE = u8"Обводка текста";
OUTLINE_COLOR = u8"Цвет обводки";
OUTLINE_SIZE = u8"Толщина обводки";
OUTLINE_SIZE_INFO = u8"Размер в пикселях (рекомендуется оставить как 20% от размера шрифта)";
FONT = u8"Шрифт"; FONT = u8"Шрифт";
LUA_INTRO = u8R"(--[[ LUA_INTRO = u8R"(--[[
ProcessSentence вызывается каждый раз, когда Textractor получает предложение с текстом. ProcessSentence вызывается каждый раз, когда Textractor получает предложение с текстом.