diff --git a/.vscode/settings.json b/.vscode/settings.json index 768edbfb..c21e9f5a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,7 +5,8 @@ "MySQL", "PostgreSQL", "SQLite", - "Windows" + "Windows", + "translation" ], "svg.preview.background": "transparent" } \ No newline at end of file diff --git a/src/renderer/i18n/index.js b/src/renderer/i18n/index.js index b91a36d4..ef195f25 100644 --- a/src/renderer/i18n/index.js +++ b/src/renderer/i18n/index.js @@ -12,7 +12,8 @@ const i18n = createI18n({ 'de-DE': require('./de-DE'), 'vi-VN': require('./vi-VN'), 'ja-JP': require('./ja-JP'), - 'zh-CN': require('./zh-CN') + 'zh-CN': require('./zh-CN'), + 'ru-RU': require('./ru-RU') } }); export default i18n; diff --git a/src/renderer/i18n/pt-BR.js b/src/renderer/i18n/pt-BR.js index b9abe1be..caf0221f 100644 --- a/src/renderer/i18n/pt-BR.js +++ b/src/renderer/i18n/pt-BR.js @@ -107,37 +107,37 @@ module.exports = { changelog: 'Logs de alteração', format: 'Formato', sshTunnel: 'SSH túnel', - structure: 'Estrutura', - small: 'Pequeno', - medium: 'Médio', - large: 'Grande', - row: 'Linha | Linhas', - cell: 'Celula | Células', - triggerFunction: 'Gatinho de função | Gatilhos de Funções', - all: 'Todos', - duplicate: 'Duplicado', - routine: 'Rotina', - new: 'Novo', - history: 'Histórico', - select: 'Seleciomar', - passphrase: 'Palavara-Passe', - filter: 'Filtrar', - change: 'Alterar', - views: 'Visualizações', - triggers: 'Gatilhos', - routines: 'Rotinas', - functions: 'Funções', - schedulers: 'Agendadores', - includes: 'Includes', - drop: 'Drop', - completed: 'Completo', - aborted: 'Abortado', - disabled: 'Inativo', - enable: 'Ativo', - disable: 'Disable', - commit: 'Enviar', - rollback: 'Reverter', - connectionString: 'String da conexão', + structure: 'Estrutura', + small: 'Pequeno', + medium: 'Médio', + large: 'Grande', + row: 'Linha | Linhas', + cell: 'Celula | Células', + triggerFunction: 'Gatinho de função | Gatilhos de Funções', + all: 'Todos', + duplicate: 'Duplicado', + routine: 'Rotina', + new: 'Novo', + history: 'Histórico', + select: 'Seleciomar', + passphrase: 'Palavara-Passe', + filter: 'Filtrar', + change: 'Alterar', + views: 'Visualizações', + triggers: 'Gatilhos', + routines: 'Rotinas', + functions: 'Funções', + schedulers: 'Agendadores', + includes: 'Includes', + drop: 'Drop', + completed: 'Completo', + aborted: 'Abortado', + disabled: 'Inativo', + enable: 'Ativo', + disable: 'Disable', + commit: 'Enviar', + rollback: 'Reverter', + connectionString: 'String da conexão', contributors: 'Contribuintes' }, message: { diff --git a/src/renderer/i18n/ru-RU.js b/src/renderer/i18n/ru-RU.js new file mode 100644 index 00000000..ccfb2283 --- /dev/null +++ b/src/renderer/i18n/ru-RU.js @@ -0,0 +1,459 @@ +module.exports = { + word: { + edit: 'Редактировать', + save: 'Сохранить', + close: 'Закрыть', + delete: 'Удалить', + confirm: 'Подтвердить', + cancel: 'Отмена', + send: 'Отправить', + connectionName: 'Название соединения', + client: 'Клиент', + hostName: 'Название хоста', + port: 'Порт', + user: 'Пользователь', + password: 'Пароль', + credentials: 'Полномочия', + connect: 'Подключить', + connected: 'Подключено', + disconnect: 'Отключить', + disconnected: 'Отключено', + refresh: 'Обновить', + settings: 'Настройка', + general: 'Общие', + themes: 'Темы', + update: 'Обновить', + about: 'О программе', + language: 'Язык', + version: 'Версия', + donate: 'Пожертвование', + run: 'Запуск', + schema: 'Схема', + results: 'Результаты', + size: 'Размер', + seconds: 'Секунды', + type: 'Тип', + mimeType: 'Mime-Тип', + download: 'Скачать', + add: 'Добавить', + data: 'Данные', + properties: 'Свойства', + insert: 'Вставить', + connecting: 'Соединение', + name: 'Название', + collation: 'Сопоставление', + clear: 'Очистить', + options: 'Опции', + autoRefresh: 'Авто-обновление', + indexes: 'Индексы', + foreignKeys: 'Внешние ключи', + length: 'Длина', + unsigned: 'Неподписанный', + default: 'По умолчанию', + comment: 'Комментарий', + key: 'Ключ | Ключи', + order: 'Заказ', + expression: 'Выражение', + autoIncrement: 'Авто-увеличение', + engine: 'Движок', + field: 'Поле | Поля', + approximately: 'Примерно', + total: 'Всего', + table: 'Таблица', + discard: 'Отказать', + stay: 'Оставить', + author: 'Автор', + light: 'Светлая', + dark: 'Темная', + autoCompletion: 'Авто-дополнение', + application: 'Приложение', + editor: 'Реадктор', + view: 'Просмотр', + definer: 'Определитель', + algorithm: 'Алгоритм', + trigger: 'Триггер | Триггеры', + storedRoutine: 'Сохраненная процедура | Сохраненные процедуры', + scheduler: 'Планировщик | Планировщики', + event: 'Событие', + parameters: 'Параметры', + function: 'Функция | Функции', + deterministic: 'Детерминированный', + context: 'Контекст', + export: 'Экспорт', + import: 'Импорт', + returns: 'Вернуть', + timing: 'Сроки', + state: 'Состояние', + execution: 'Выполнение', + starts: 'Начинает', + ends: 'Заканчивает', + ssl: 'SSL', + privateKey: 'Закрытый ключ', + certificate: 'Сертификат', + caCertificate: 'CA сертификат', + ciphers: 'Шифры', + upload: 'Загрузки', + browse: 'Обзор', + faker: 'Faker', + content: 'Содержимое', + cut: 'Вырезать', + copy: 'Копировать', + paste: 'Вставить', + tools: 'Инструменты', + variables: 'Переменные', + processes: 'Процессы', + database: 'База данных', + scratchpad: 'Заметки', + array: 'Массив', + changelog: 'Журнал изменений', + format: 'Формат', + sshTunnel: 'SSH туннель', + structure: 'Структура', + small: 'Малый', + medium: 'Средний', + large: 'Большой', + row: 'Строка | Строки', + cell: 'Ячейка | Ячейки', + triggerFunction: 'Функция запуска | Функции запуска', + all: 'Все', + duplicate: 'Дубликат', + routine: 'Порядок', + new: 'Новый', + history: 'История', + select: 'Выбрать', + passphrase: 'Кодовая фраза', + filter: 'Фильтр', + change: 'Изменить', + views: 'Просмотры', + triggers: 'Триггеры', + routines: 'Порядок', + functions: 'Функции', + schedulers: 'Планировщики', + includes: 'Включает', + drop: 'Сбросить', + completed: 'Завершено', + aborted: 'Aborted', + disabled: 'Прервано', + enable: 'Включить', + disable: 'Выключить', + commit: 'Подтвердить', + rollback: 'Отмена', + connectionString: 'Строка подключения', + contributors: 'Участники' + }, + message: { + appWelcome: 'Приветсвуем в SQL клиенте Antares!', + appFirstStep: 'Ваш первый шаг: создать новое подключение с БД.', + addConnection: 'Добавить подключение', + createConnection: 'Создать подключение', + createNewConnection: 'Созадть новое подключение', + askCredentials: 'Спрашивать учетные данные', + testConnection: 'Тестирование подключения', + editConnection: 'Редактирование подключения', + deleteConnection: 'Удалить подключение', + deleteCorfirm: 'Подтверждаете ли вы отмену', + connectionSuccessfullyMade: 'Соединение успешно установлено!', + madeWithJS: 'Сделано с 💛 и JavaScript!', + checkForUpdates: 'Проверить обновления', + noUpdatesAvailable: 'Обновлений не найдено', + checkingForUpdate: 'Проверить обновления', + checkFailure: 'Проверка не удалась, пожалуйста, попробуйте позже', + updateAvailable: 'Доступно обновление', + downloadingUpdate: 'Скачать обновление', + updateDownloaded: 'Обновление скачано', + restartToInstall: 'Перезапустить Antares для установки', + unableEditFieldWithoutPrimary: 'Невозможно отредактировать поле без первичного ключа в наборе результатов', + editCell: 'Редактировать ячейку', + deleteRows: 'Удалить строку | Удалить {count} строк', + confirmToDeleteRows: 'Подтверждаете удаление строки? | Подтверждаете удаление {count} строк?', + notificationsTimeout: 'Тайм-аут уведомлений', + uploadFile: 'Загрузить файл', + addNewRow: 'Добавить новую строку', + numberOfInserts: 'Количество вставок', + openNewTab: 'Открыть новую вкладку', + affectedRows: 'Задействовано строк', + createNewDatabase: 'Создать новую БД', + databaseName: 'Название БД', + serverDefault: 'Сервер по умолчанию', + deleteDatabase: 'Удалить БД', + editDatabase: 'Редактировать БД', + clearChanges: 'Очистить изменения', + addNewField: 'Добавить новое поле', + manageIndexes: 'Управление индексами', + manageForeignKeys: 'Управление внешними ключами', + allowNull: 'Разрешить NULL', + zeroFill: 'Заполнить нулями', + customValue: 'Пользовательское значение', + onUpdate: 'При обновлении', + deleteField: 'Удалить поле', + createNewIndex: 'Создать новый индекс', + addToIndex: 'Добавить индекс', + createNewTable: 'Создать новую таблицу', + emptyTable: 'Пустая таблица', + deleteTable: 'Удалить таблицу', + emptyCorfirm: 'Подтверждаете очистку?', + unsavedChanges: 'Несохраненные изменения', + discardUnsavedChanges: 'У вас имеются несохраненные данные. Закрытие этой вкладки приведёт к их отмене.', + thereAreNoIndexes: 'Индексов нет', + thereAreNoForeign: 'Внешних ключей нет', + createNewForeign: 'Создать новый внешний ключ', + referenceTable: 'Ссылка на таблицу', + referenceField: 'Ссылка на поле', + foreignFields: 'Сторонние поля', + invalidDefault: 'Недопустимое значение', + onDelete: 'При удалении', + applicationTheme: 'Тема приложения', + editorTheme: 'Редактировать Тему', + wrapLongLines: 'Перенос длинных строк', + selectStatement: 'Оператор выбора', + triggerStatement: 'Оператор триггера', + sqlSecurity: 'SQL безопасность', + updateOption: 'Опции обновления', + deleteView: 'Удалить просмотр', + createNewView: 'Создать новый просмотр', + deleteTrigger: 'Удалить триггер', + createNewTrigger: 'Создать новый триггер', + currentUser: 'Текущий пользователь', + routineBody: 'Routine body', + dataAccess: 'Доступ к данным', + thereAreNoParameters: 'Там нет никаких параметров', + createNewParameter: 'Создать новый параметр', + createNewRoutine: 'Создание новой сохраненной процедуры', + deleteRoutine: 'Удаление сохраненной процедуры', + functionBody: 'Тело функции', + createNewFunction: 'Создать новую функцию', + deleteFunction: 'Удалить функцию', + schedulerBody: 'Тело планировщика', + createNewScheduler: 'Создать новый планировщик', + deleteScheduler: 'Удалить планировщик', + preserveOnCompletion: 'Сохранение по завершении', + enableSsl: 'Включить SSL', + manualValue: 'Установить значение вручную', + tableFiller: 'Фильтр таблицы', + fakeDataLanguage: 'Язык поддельных данных', + searchForElements: 'Поиск элементов', + selectAll: 'Выбрать все', + queryDuration: 'Длительность запроса', + includeBetaUpdates: 'Получать бета-версии обновлений', + setNull: 'Установить NULL', + processesList: 'Список процессов', + processInfo: 'Информация о процессе', + manageUsers: 'Управление пользователями', + createNewSchema: 'Создать новую схему', + schemaName: 'Название схемы', + editSchema: 'Редактировать схему', + deleteSchema: 'Удалить схему', + markdownSupported: 'Поддержка Markdown', + plantATree: 'Посадить дерево', + dataTabPageSize: 'Размер страницы вкладки ДАННЫЕ', + enableSsh: 'Включить SSH', + pageNumber: 'Номер страницы', + duplicateTable: 'Дубликат таблицы', + noOpenTabs: 'Открытых вкладок нет, перейдите по левой панели или:', + noSchema: 'Нет схемы', + restorePreviourSession: 'Восстановить предыдущую сессию', + runQuery: 'Запуск очереди', + thereAreNoTableFields: 'В таблице нет полей', + newTable: 'Новая таблица', + newView: 'Новый просмотр', + newTrigger: 'Новый триггер', + newRoutine: 'New routine', + newFunction: 'Новая функция', + newScheduler: 'Новый планировщик', + newTriggerFunction: 'Новая функция триггера', + thereIsNoQueriesYet: 'Пока нет никаких запросов', + searchForQueries: 'Поиск по запросам', + killProcess: 'Убить процесс', + closeTab: 'Закрыть вкладку', + exportSchema: 'Экспорт схемы', + importSchema: 'Импорт схемы', + directoryPath: 'Путь к каталогу', + newInserStmtEvery: 'New INSERT statement every', + processingTableExport: 'Обработка {table}', + fechingTableExport: 'Получение данных с {table}', + writingTableExport: 'Запись данных в {table}', + checkAllTables: 'Проверить все таблицы', + uncheckAllTables: 'Убрать со всех таблиц', + goToDownloadPage: 'Перейти на страницу для загрузки', + readOnlyMode: 'Режим только чтение', + killQuery: 'Убить запрос', + insertRow: 'Вставить строку | Вставить строки', + commitMode: 'Режим подтверждения', + autoCommit: 'Авто-подтверждение', + manualCommit: 'Ручное подтверждение', + actionSuccessful: '{action} успешно', + importQueryErrors: 'Внимание: {n} ошибка возникла | Внимание: {n} ошибок произошло', + executedQueries: '{n} запрос выполнен | {n} запросов выполнено', + ourputFormat: 'Формат вывода', + singleFile: 'Один {ext} файл', + zipCompressedFile: 'ZIP сжатие {ext} файла', + disableBlur: 'Отключить размытие', + untrustedConnection: 'Ненадежное соединение', + missingOrIncompleteTranslation: 'Отсутствующий или неполный перевод?', + findOutHowToContribute: 'Узнайте, как внести свой вклад' + }, + faker: { + address: 'Адрес', + commerce: 'Коммерция', + company: 'Компания', + database: 'База данных', + date: 'Дата', + finance: 'Финансы', + git: 'Git', + hacker: 'Хакер', + internet: 'Интернет', + lorem: 'Лорем', + name: 'Имя', + music: 'Музыка', + phone: 'Телефон', + random: 'Случайный', + system: 'Система', + time: 'Время', + vehicle: 'Vehicle', + zipCode: 'Почтовый код', + zipCodeByState: 'Почтовый код города', + city: 'Город', + cityPrefix: 'Префикс города', + citySuffix: 'Суфикс города', + streetName: 'Название улицы', + streetAddress: 'Адрес улицы', + streetSuffix: 'Суфикс улицы', + streetPrefix: 'Префикс улицы', + secondaryAddress: 'Дополнительный адрес', + county: 'Округ', + country: 'Страна', + countryCode: 'Код страны', + state: 'Штат', + stateAbbr: 'Аббревиатура штата', + latitude: 'Широта', + longitude: 'Долгота', + direction: 'Направление', + cardinalDirection: 'Кардинальное направление', + ordinalDirection: 'Порядковое направление', + nearbyGPSCoordinate: 'Ближайшая GPS-координата', + timeZone: 'Часовой пояс', + color: 'Цвет', + department: 'Отдел', + productName: 'Имя продукта', + price: 'Прайс', + productAdjective: 'Product adjective', + productMaterial: 'Product material', + product: 'Продукт', + productDescription: 'Описание продукта', + suffixes: 'Суфиксы', + companyName: 'Название компании', + companySuffix: 'Суфикс компании', + catchPhrase: 'Крылатая фраза', + bs: 'BS', + catchPhraseAdjective: 'Крылатая фраза прилагательное', + catchPhraseDescriptor: 'Дескриптор крылатой фразы', + catchPhraseNoun: 'Крылатая фраза существительное', + bsAdjective: 'BS прилагательное', + bsBuzz: 'BS жужжать', + bsNoun: 'BS существительное', + column: 'Колонка', + type: 'Тип', + collation: 'Сопоставление', + engine: 'Движок', + past: 'Прошлое', + future: 'Будущее', + between: 'Между', + recent: 'Недавнее', + soon: 'Вскоре', + month: 'Месяц', + weekday: 'Будний день', + account: 'Аккаунт', + accountName: 'Имя аккаунта', + routingNumber: 'Routing number', + mask: 'Маска', + amount: 'Сумма', + transactionType: 'Тип транзакции', + currencyCode: 'Код валюты', + currencyName: 'Название валюты', + currencySymbol: 'Символ валюты', + bitcoinAddress: 'Bitcoin кошелек', + litecoinAddress: 'Litecoin кошелек', + creditCardNumber: 'Номер кредитной карты', + creditCardCVV: 'CVV код', + ethereumAddress: 'Ethereum кошелек', + iban: 'Iban', + bic: 'Bic', + transactionDescription: 'Описание транзакции', + branch: 'Ветка', + commitEntry: 'Подтвердить запись', + commitMessage: 'Подтвердить сообщение', + commitSha: 'Подтвердить SHA', + shortSha: 'Короткий SHA', + abbreviation: 'Сокращение', + adjective: 'Прилагательное', + noun: 'Существительное', + verb: 'Глагол', + ingverb: 'Пословица', + phrase: 'Фраза', + avatar: 'Аватар', + email: 'Почта', + exampleEmail: 'Пример почты', + userName: 'Логин', + protocol: 'Протокол', + url: 'Url', + domainName: 'Название домена', + domainSuffix: 'Суфикс домена', + domainWord: 'Слово домена', + ip: 'Ip', + ipv6: 'Ipv6', + userAgent: 'User agent', + mac: 'Мак-адрес', + password: 'Пароль', + word: 'Слово', + words: 'Слова', + sentence: 'Предложение', + slug: 'Slug', + sentences: 'Sentences', + paragraph: 'Параграф', + paragraphs: 'Параграфы', + text: 'Текст', + lines: 'Линии', + genre: 'Жанр', + firstName: 'Фамилия', + lastName: 'Имя', + middleName: 'Среднее имя', + findName: 'Полное имя', + jobTitle: 'Название задания', + gender: 'Пол', + prefix: 'Префикс', + suffix: 'Суфикс', + title: 'Заголовок', + jobDescriptor: 'Описание задания', + jobArea: 'Область задания', + jobType: 'Тип задания', + phoneNumber: 'Номер телефона', + phoneNumberFormat: 'Формат номера', + phoneFormats: 'Формат номеров телефона', + number: 'Номер', + float: 'Дробное число', + arrayElement: 'Элемент массива', + arrayElements: 'Элементы массива', + objectElement: 'Объект элемента', + uuid: 'Uuid', + boolean: 'Логический', + image: 'Изображение', + locale: 'Локаль', + alpha: 'Альфа', + alphaNumeric: 'Буквенно-Цифровой', + hexaDecimal: 'Шестнадцатеричный', + fileName: 'Имя файла', + commonFileName: 'Общее имя файла', + mimeType: 'Mime тип', + commonFileType: 'Общий тип файло', + commonFileExt: 'Общее расширение файлов', + fileType: 'Тип файла', + fileExt: 'Расширение файла', + directoryPath: 'Путь к каталогу', + filePath: 'Путь к файлу', + semver: 'Semver', + manufacturer: 'Производитель', + model: 'Модель', + fuel: 'Топливо', + vin: 'Vin' + } +}; diff --git a/src/renderer/i18n/supported-locales.js b/src/renderer/i18n/supported-locales.js index a010f8ac..e2f7d780 100644 --- a/src/renderer/i18n/supported-locales.js +++ b/src/renderer/i18n/supported-locales.js @@ -8,5 +8,6 @@ export default { 'de-DE': 'Deutsch (Deutschland)', 'vi-VN': 'Tiếng Việt', 'ja-JP': '日本語', - 'zh-CN': '简体中文' + 'zh-CN': '简体中文', + 'ru-RU': 'Русский' };