Сторонние ресурсы¶
GPU Fan Meister в процессе работы может загружать разные сторонние ресурсы: плагины, документацию и локализацию. GPU Fan Meister ищет эти ресурсы в определённых папках. Список этих папок зависит от операционной системы. Полный список папок, в которых GPU Fan Meister будет искать ресурсы, можно получить через параметр --dirs командной строки. При попытке загрузить какой-либо ресурс GPU Fan Meister перебирает все папки для поиска и пытается найти ресурс в определённой подпапке, которая соответствует типу ресурса. Ниже описан процесс поиска и загрузки каждого типа ресурса.
Плагины¶
Процесс поиска и загрузки плагинов следующий:
Перебираются все папки для поиска в том порядке, который выдаётся CLI-параметром --dirs.
Плагин ищется в папке <текущая папка для поиска>/plugins/<идентификатор-плагина>.
Если плагин найден, то он загружается, а все остальные плагины с этим именем из других папок поиска игнорируются.
Пример: если имеется папка для поиска /usr/local/share/gpu-fan-meister, а плагин называется amd-mesa, то GPU Fan Meister сможет загрузить этот плагин из папки /usr/local/share/gpu-fan-meister/plugins/amd-mesa.
О том, как создать свой плагин для GPU Fan Meister, читайте в разделе "Добавление поддержки новых видеокарт и драйверов". Пример плагина вы можете найти здесь: https://github.com/alkatrazstudio/gpu-fan-meister/blob/master/plugins.
Документация¶
Процесс поиска и загрузки документации следующий:
Перебираются все папки для поиска в том порядке, который выдаётся CLI-параметром --dirs.
Ищется папка <текущая папка для поиска>/docs/<код языка>, где <код языка> - это IETF-код1 языка, соответствующий системной локали.
Если папка найдена, то используется документация именно из этой папки. Все остальные папки игнорируются.
Если ни в одной папке для поиска документация не найдена, то из <код языка> убирается последний элемент после знака "-" (zh-TW => zh). Затем процесс повторяется заново.
Если последний элемент из <код языка> убран, а документация всё ещё не найдена, то GPU Fan Meister ищет в папках для поиска документацию для языка "en" (которая гарантированно будет присутствовать хотя бы в одной папке для поиска).
Пример: если имеется папка для поиска /usr/local/share/gpu-fan-meister, а в системе установлен французский канадский язык, то GPU Fan Meister будет искать документацию в папках /usr/local/share/gpu-fan-meister/docs/fr-CA, /usr/local/share/gpu-fan-meister/docs/fr и /usr/local/share/gpu-fan-meister/docs/en.
Вы можете перевести документацию GPU Fan Meister на любой язык. Документация написана на reStructuredText и собрана с помощью Sphinx. Процесс локализации в Sphinx описан здесь: https://www.sphinx-doc.org/en/master/usage/advanced/intl.html. Скрипт docs/src/build.sh
уже делает большую часть работы за вас. В конечном счёте, вам необходимо сделать следующее:
Склонировать основной репозиторий:
git clone https://github.com/alkatrazstudio/gpu-fan-meister
Сгенерировать или обновить PO-файлы:
docs/src/build.sh <IETF-код языка> po
Перевести PO-файлы.
Запустить скрипт сборки документации:
docs/src/build.sh <IETF-код языка>
Переместить полученную документацию из папки docs/<IETF-код языка> в любую папку поиска.
Локализация¶
Процесс поиска и загрузки локализаций следующий:
Перебираются все папки для поиска в порядке, обратном тому, который выдаётся CLI-параметром --dirs.
Файлы локализации ищутся в папке <текущая папка для поиска>/translations и загружаются по правилам Qt: https://doc.qt.io/qt-5.12/qtranslator.html#load-1.
Если файл локализации найден, то содержащийся в нём перевод добавляется к уже загруженным файлам локализации. При наличии дубликатов переводов, приоритет будет отдаваться последней загруженной локализации.
Пример: если имеется папка для поиска /usr/local/share/gpu-fan-meister, а в системе установлен немецкий язык, то GPU Fan Meister может искать файлы с переводом в файлах /usr/local/share/gpu-fan-meister/translations/de-DE.qm (или в других de-*.qm файлах в зависимости от локали) и /usr/local/share/gpu-fan-meister/translations/de.qm.
О том, как создать свой перевод для GPU Fan Meister, читайте в справке к Qt Linguist: https://doc.qt.io/qt-5.12/linguist-translators.html.
Примечания
- 1
Статья "IETF language tag" в Википедии: https://en.wikipedia.org/wiki/IETF_language_tag.