diff --git a/lang/cachyos-packageinstaller_ru.ts b/lang/cachyos-packageinstaller_ru.ts index 0be601c..1ca5cb7 100644 --- a/lang/cachyos-packageinstaller_ru.ts +++ b/lang/cachyos-packageinstaller_ru.ts @@ -1,6 +1,79 @@ + + Category + + + Audio + Аудио + + + + Browsers + Браузеры + + + + Communication + Общение + + + + Development + Разработка + + + + Games + Игры + + + + Graphics + Графика + + + + Hardware Tools + Утилиты для оборудования + + + + Internet + Интернет + + + + Mail + Почта + + + + Multimedia + Мультимедиа + + + + Office + Офис + + + + Other + Прочее + + + + Video + Видео + + + + Virtualization + Виртуализация + + MainWindow @@ -60,29 +133,29 @@ - + All packages Все пакеты - + Installed Установлено - + Upgradable Доступно для обновления - - - - + + + + Not installed Не установлено @@ -152,39 +225,39 @@ - + All apps Все приложения - + All runtimes Все среды выполнения - + All available Все доступные - + Installed apps Установленные приложения - + Installed runtimes Установленные среды выполнения - - - + + + All installed Все установленные @@ -246,8 +319,8 @@ - - + + Console Output Консольный вывод @@ -303,10 +376,10 @@ - - - - + + + + Install Установить @@ -340,16 +413,16 @@ Обновление источников... - - - - - - - - - - + + + + + + + + + + Error Ошибка @@ -358,74 +431,74 @@ Возникла проблема с обновлением источников. Возможно, некоторые источники не предоставили обновлений. Для получения дополнительной информации проверьте: - + Unable to fetch pkglist. Timeout! Не удалось получить pkglist. Тайм-аут! - + Cancel Отмена - + Please wait... Пожалуйста подождите... - - + + Version Версия - + Latest version Последняя версия - + already installed уже установлено - + installed установлено - + CachyOS includes this repository of flatpaks for the users' convenience only, and is not responsible for the functionality of the individual flatpaks themselves. For more, consult flatpaks in the Wiki. CachyOS включает этот репозиторий flatpaks только для удобства пользователей и не несет ответственности за функциональность самих отдельных flatpaks. Для получения дополнительной информации обратитесь к flatpaks в Wiki. - - + + Warning Предупреждение - + Do not show this message again Больше не показывать это окно - + Remove Удалить - + The following packages were selected. Click Show Details for list of changes. Были выбраны следующие пакеты. Нажмите кнопку Показать подробности, чтобы просмотреть список изменений. - + Installing packages... Установка пакетов... - + Installing Установка @@ -434,78 +507,78 @@ Загрузка информации о пакетах... - + Packages to be installed: Пакеты, которые будут установлены: - - + + Package info Информация о пакете - - - - - - - - - - + + + + + + + + + + Done Готово - - - - - - - - - - - - + + + + + + + + + + + + Processing finished successfully. Обработка успешно завершена. - - - - - - + + + + + + Problem detected while installing, please inspect the console output. Во время установки была обнаружена проблема, пожалуйста, проверьте вывод консоли. - + About %1 О %1 - + Version: Версия: - + Package Installer for CachyOS Установщик пакетов для CachyOS - + Copyright (c) CachyOS Copyright (c) CachyOS - + in repo в репозитории @@ -515,108 +588,108 @@ - + Not available in repo Недоступно в репозитории - + Fetching infomation about packages... - + We encountered a problem uninstalling, please check output Мы столкнулись с проблемой удаления, пожалуйста, проверьте выходные данные - - + + Success Успешно - - + + We encountered a problem uninstalling the program Мы столкнулись с проблемой удаления программы - - + + Flatpak not installed Flatpak не установлен - + Flatpak is not currently installed. OK to go ahead and install it? Flatpak в настоящее время не установлен. Начать его установку? - + Flatpak was not installed Flatpak не был установлен - + Flathub remote failed Дистанционный Flathub завершился ошибкой - + Flathub remote could not be added Не удалось добавить зеркало Flathub - + Needs re-login Требуется повторный вход в систему - + You might need to logout/login to see installed items in the menu Возможно, вам потребуется выйти из системы/войти в систему, чтобы увидеть установленные элементы в меню - + Upgrade Обновить - + Upgrading system... - + Quit? Выйти? - + Process still running, quitting might leave the system in an unstable state.<p><b>Are you sure you want to exit CachyOS Package Installer?</b> Процесс все еще запущен, завершение работы может привести к нестабильному состоянию системы.<p><b> Вы уверены, что хотите выйти из установщика пакетов CachyOS?</b> - - + + More &info... Подробнее &информация... - + Reinstall Переустановить - + Problem detected during last operation, please inspect the console output. Обнаружена проблема во время последней операции, пожалуйста, проверьте вывод консоли. - + Potentially dangerous operation. Please make sure you check carefully the list of packages to be removed. Потенциально опасная операция. diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cc5039d..1a416ef 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -350,6 +350,40 @@ void MainWindow::outputAvailable(const QString& output) { m_ui->outputBox->verticalScrollBar()->setValue(m_ui->outputBox->verticalScrollBar()->maximum()); } +namespace { + +// Category and group names are data rather than literals: they are read from +// pkglist.yaml, which is fetched from the network at runtime. Listing the known +// names here is what makes lupdate pick them up for the translation catalogs. +[[maybe_unused]] constexpr std::array CATEGORY_NAMES{ + QT_TRANSLATE_NOOP("Category", "Audio"), + QT_TRANSLATE_NOOP("Category", "Browsers"), + QT_TRANSLATE_NOOP("Category", "Communication"), + QT_TRANSLATE_NOOP("Category", "Development"), + QT_TRANSLATE_NOOP("Category", "Games"), + QT_TRANSLATE_NOOP("Category", "Graphics"), + QT_TRANSLATE_NOOP("Category", "Hardware Tools"), + QT_TRANSLATE_NOOP("Category", "Internet"), + QT_TRANSLATE_NOOP("Category", "Mail"), + QT_TRANSLATE_NOOP("Category", "Multimedia"), + QT_TRANSLATE_NOOP("Category", "Office"), + QT_TRANSLATE_NOOP("Category", "Other"), + QT_TRANSLATE_NOOP("Category", "Video"), + QT_TRANSLATE_NOOP("Category", "Virtualization"), +}; + +// Translate a category or group name read from pkglist.yaml. +// A name without a translation, e.g. one added to the remote pkglist after this +// release, is returned unchanged and is still displayed. +QString translate_category(const QString& name) noexcept { + if (name.isEmpty()) { + return name; + } + return QCoreApplication::translate("Category", name.toUtf8().constData()); +} + +} // namespace + void processMap(MainWindow& window, const std::string& parent_category, ryml::NodeRef&& root_map, std::int32_t depth) noexcept { // NOTE: there shouldn't be nested subgroups of depth more than 2. // let's limit recursion to 2 depth in. @@ -583,12 +617,12 @@ void MainWindow::displayPopularApps() const noexcept { }; for (const QStringList& list : m_popular_apps) { - const auto& category = list.at(Popular::Category); + const auto& category = translate_category(list.at(Popular::Category)); const auto& name = list.at(Popular::Name); const auto& description = list.at(Popular::Description); const auto& install_names = list.at(Popular::InstallNames); const auto& uninstall_names = list.at(Popular::UninstallNames); - const auto& group = list.at(Popular::Group); + const auto& group = translate_category(list.at(Popular::Group)); QTreeWidgetItem* topLevelChildItem = nullptr; if (group != category) {