From 5003df3dea15ff094532b514f958b55b0ad2abfc Mon Sep 17 00:00:00 2001 From: Ionite Date: Mon, 23 Oct 2023 12:56:19 -0400 Subject: [PATCH 1/3] Add Russian localization --- CHANGELOG.md | 4 + README.md | 2 + .../Languages/Cultures.cs | 3 +- .../Languages/Resources.ru.resx | 681 ++++++++++++++++++ 4 files changed, 689 insertions(+), 1 deletion(-) create mode 100644 StabilityMatrix.Avalonia/Languages/Resources.ru.resx diff --git a/CHANGELOG.md b/CHANGELOG.md index a819072dc..e993cffda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). +## v2.5.6 +### Added +- Added Russian UI language option, thanks to aolko for the translation + ## v2.5.5 ### Added - Added Spanish UI language options, thanks to Carlos Baena and Lautaroturina for the translations diff --git a/README.md b/README.md index ba38d4545..9e668e434 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,8 @@ Stability Matrix is now available in the following languages, thanks to our comm - 🇪🇸 Español - Carlos Baena - Lautaroturina +- 🇷🇺 Русский + - aolko If you would like to contribute a translation, please create an issue or contact us on Discord. Include an email where we'll send an invite to our [POEditor](https://poeditor.com/) project. diff --git a/StabilityMatrix.Avalonia/Languages/Cultures.cs b/StabilityMatrix.Avalonia/Languages/Cultures.cs index eb39a9f0d..b9d00f61c 100644 --- a/StabilityMatrix.Avalonia/Languages/Cultures.cs +++ b/StabilityMatrix.Avalonia/Languages/Cultures.cs @@ -24,7 +24,8 @@ public static class Cultures ["zh-Hant"] = new("zh-Hant"), ["it-IT"] = new("it-IT"), ["fr-FR"] = new("fr-FR"), - ["es"] = new("es") + ["es"] = new("es"), + ["ru"] = new("ru") }; public static IReadOnlyList SupportedCultures => diff --git a/StabilityMatrix.Avalonia/Languages/Resources.ru.resx b/StabilityMatrix.Avalonia/Languages/Resources.ru.resx new file mode 100644 index 000000000..149c0a0b5 --- /dev/null +++ b/StabilityMatrix.Avalonia/Languages/Resources.ru.resx @@ -0,0 +1,681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Запустить + + + Выйти + + + Сохранить + + + Отмена + + + Язык + + + Чтобы применить новый язык требуется перезапуск + + + Перезапустить + + + Перезапустить позже + + + Требуется перезапуск + + + Неизвестный пакет + + + Импорт + + + Тип пакета + + + Версия + + + Тип версии + + + Релизы + + + Ветки + + + Перетащите модели сюда для импорта + + + Усиление акцента + + + Ослабление акцента + + + Вложения / Текстовые Инверсии + + + Сети (Лора / ЛиКОРИС) + + + Комментарии + + + Показывать пискельную сетку при максимальном масштабе + + + Шаги + + + Шаги - Базовые + + + Шаги - Обработчик + + + Внимание к запросу + + + Сила шумоподавления + + + Ширина + + + Высота + + + Обработчик + + + VAE + + + Модель + + + Соединиться + + + Соединяюсь... + + + Закрыть + + + Жду соединения... + + + Доступно обновление + + + Поддержать на Патреоне + + + Дискорд сервер проекта + + + Загрузки + + + Установить + + + Пропустить установку в первый раз + + + Произошла неизвестная ошибка + + + Выйти из программы + + + Название + + + Установка с таким названием уже существует. + + + Пожалуйста выберите другое название или другой путь установки. + + + Продвинутые настройки + + + Коммит + + + Способ расшаривания моделей + + + Версия PyTorch + + + Закрыть диалог по завершении + + + Папка с данными + + + Папка в которую будут установлены модели, Лоры, интерфейсы, настройки, и прочее. + + + Вы можете столкнуться с ошибками при использовании диска FAT32 или exFAT. Выберите другой диск для более плавной работы. + + + Портативный режим + + + В портативном режиме все данные и настройки будут храниться в той же папке, что и приложение. Вы сможете переместить приложение вместе с его папкой с данными ("Data") в другое место или на другой компьютер. + + + Продолжить + + + Пред. картинка + + + След. картинка + + + Описание модели + + + Доступна новая версия Stability Matrix! + + + Импорт последней - + + + Все версии + + + Поиск моделей, #тегов или @авторов + + + Поиск + + + Сортировка + + + Промежуток + + + Тип модели + + + Базовая модель + + + Показывать 18+ контент + + + Данные предоставлены CivitAI + + + Страница + + + Первая страница + + + Пред. страницаыдущая + + + Следущая страница + + + Последняя страница + + + Переименовать + + + Удалить + + + Открыть на CivitAI + + + Связанная модель + + + Локальная модель + + + Открыть в проводнике + + + Новая... + + + Папка + + + Перетащите файл сюда для импорта + + + Импортировать как связанные + + + Искать связанные данные при новом локальном импорте + + + Индексирую... + + + Папка с моделями + + + Категории + + + Давайте приступим + + + Я прочёл и согласен с + + + Лицензионным соглашением. + + + Найти связанные данные + + + Показать картинки моделей + + + Внешний вид + + + Тема + + + Управление моделями + + + Удалить ссылки на расшаренные модели при выключении + + + Выберите эту настройку если у вас возникают проблемы с перемещением Stability Matrix на другой диск + + + Сбросить кэш моделей + + + Перестраивает кэш установленных моделей. Используйте если модели некорректно названы в Просмотровщике моделей + + + Среда для пакетов + + + Редактировать + + + Переменные среды + + + Встроенный Python + + + Проверить версию + + + Интеграции + + + Discord Rich Presence + + + Система + + + Добавить ярлык Stability Matrix в меню "Пуск" + + + Использует текущее местоположение приложения, вы можете запустить это снова, если переместите приложение + + + Доступно только на Windows + + + Добавить для Текущего пользователя + + + Добавить для всех + + + Выберите новую папку с данными ("Data") + + + Не перемещает существующие данные + + + Выберите папку + + + О программе + + + Stability Matrix + + + Уведомления о лицензиях и открытом исходном коде + + + Нажмите "Запуск" чтобы начать! + + + Стоп + + + Послать команду + + + Команда + + + Отправить + + + Требуется команда + + + Подтвердить? + + + Да + + + Нет + + + Открыть веб-интерфейс + + + Добро пожаловать в Stability Matrix! + + + Выберите желаемый интерфейс и нажмите "Установить" чтобы начать работу + + + Устанавливаю + + + Перехожу на страницу запуска + + + Скачиваю пакет... + + + Скачивание завершено + + + Установка завершена + + + Устанавливаю необходимые компоненты... + + + Устанавливаю зависимости пакета... + + + Открыть в проводнике + + + Открыть в файндере + + + Удалить + + + Проверить обновления + + + Обновить + + + Добавить пакет + + + Добавьте пакет чтобы начать! + + + Переменная + + + Значение + + + Удалить + + + Подробнее + + + Стэк вызовов (Callstack) + + + Внутреннее исключение (Inner exception) + + + Поиск... + + + ОК + + + Повторить + + + Версия Python + + + Перезапустить + + + Подтвердите удаление + + + Это приведет к удалению папки пакета и всего её содержимого, включая любые сгенерированные картинки и файлы, которые вы, возможно, добавили. + + + Удаляю пакет... + + + Пакет удалён + + + Некоторые файлы не удалось удалить. Пожалуйста, закройте все открытые файлы в каталоге пакетов и повторите попытку. + + + Неправильный тип пакета + + + Обновляю {0} + + + Обновление завершено + + + {0} был обновлён до последней версии + + + Ошибка обновления {0} + + + Ошибка обновления + + + Открыть в браузере + + + Ошибка установки пакета + + + Ветка + + + Автоматически прокручивать до конца + + + Лицензия + + + Расшаривание моделей... + + + Пожалуйста выберите папку с данными + + + Название папки с данными + + + Текущая папка: + + + Приложение перезапустится после обновления + + + Напомнить позже + + + Установить сейчас + + + Заметки о выпуске + + + Открыть проект... + + + Сохранить как... + + + Восстановить вид по умолчанию + + \ No newline at end of file From 6bbb58305c76f4190596b430e639b8969378c719 Mon Sep 17 00:00:00 2001 From: Ionite Date: Mon, 23 Oct 2023 13:04:09 -0400 Subject: [PATCH 2/3] Update ru-RU locale name --- StabilityMatrix.Avalonia/Languages/Cultures.cs | 2 +- .../Languages/{Resources.ru.resx => Resources.ru-ru.resx} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename StabilityMatrix.Avalonia/Languages/{Resources.ru.resx => Resources.ru-ru.resx} (100%) diff --git a/StabilityMatrix.Avalonia/Languages/Cultures.cs b/StabilityMatrix.Avalonia/Languages/Cultures.cs index b9d00f61c..77fb993aa 100644 --- a/StabilityMatrix.Avalonia/Languages/Cultures.cs +++ b/StabilityMatrix.Avalonia/Languages/Cultures.cs @@ -25,7 +25,7 @@ public static class Cultures ["it-IT"] = new("it-IT"), ["fr-FR"] = new("fr-FR"), ["es"] = new("es"), - ["ru"] = new("ru") + ["ru-RU"] = new("ru-RU") }; public static IReadOnlyList SupportedCultures => diff --git a/StabilityMatrix.Avalonia/Languages/Resources.ru.resx b/StabilityMatrix.Avalonia/Languages/Resources.ru-ru.resx similarity index 100% rename from StabilityMatrix.Avalonia/Languages/Resources.ru.resx rename to StabilityMatrix.Avalonia/Languages/Resources.ru-ru.resx From 63c166f7cc4acea8b9e4ff3e88e3fef7fa3d0440 Mon Sep 17 00:00:00 2001 From: Ionite Date: Mon, 23 Oct 2023 13:08:50 -0400 Subject: [PATCH 3/3] Add titlecase display for language options --- .../Converters/CultureInfoDisplayConverter.cs | 28 +++++++++++++++++++ .../Views/SettingsPage.axaml | 7 ++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 StabilityMatrix.Avalonia/Converters/CultureInfoDisplayConverter.cs diff --git a/StabilityMatrix.Avalonia/Converters/CultureInfoDisplayConverter.cs b/StabilityMatrix.Avalonia/Converters/CultureInfoDisplayConverter.cs new file mode 100644 index 000000000..d51a3d0a7 --- /dev/null +++ b/StabilityMatrix.Avalonia/Converters/CultureInfoDisplayConverter.cs @@ -0,0 +1,28 @@ +using System; +using System.Globalization; +using Avalonia.Data.Converters; + +namespace StabilityMatrix.Avalonia.Converters; + +public class CultureInfoDisplayConverter : IValueConverter +{ + /// + public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + if (value is not CultureInfo cultureInfo) + return null; + + return cultureInfo.TextInfo.ToTitleCase(cultureInfo.NativeName); + } + + /// + public object ConvertBack( + object? value, + Type targetType, + object? parameter, + CultureInfo culture + ) + { + throw new NotImplementedException(); + } +} diff --git a/StabilityMatrix.Avalonia/Views/SettingsPage.axaml b/StabilityMatrix.Avalonia/Views/SettingsPage.axaml index 21ab36aca..7a1e324f3 100644 --- a/StabilityMatrix.Avalonia/Views/SettingsPage.axaml +++ b/StabilityMatrix.Avalonia/Views/SettingsPage.axaml @@ -10,12 +10,17 @@ xmlns:ui="using:FluentAvalonia.UI.Controls" xmlns:vm="clr-namespace:StabilityMatrix.Avalonia.ViewModels" xmlns:lang="clr-namespace:StabilityMatrix.Avalonia.Languages" + xmlns:converters="clr-namespace:StabilityMatrix.Avalonia.Converters" d:DataContext="{x:Static mocks:DesignData.SettingsViewModel}" d:DesignHeight="700" d:DesignWidth="800" x:CompileBindings="True" x:DataType="vm:SettingsViewModel" mc:Ignorable="d"> + + + + @@ -46,7 +51,7 @@