Сторонние ресурсы

GPU Fan Meister в процессе работы может загружать разные сторонние ресурсы: плагины, документацию и локализацию. GPU Fan Meister ищет эти ресурсы в определённых папках. Список этих папок зависит от операционной системы. Полный список папок, в которых GPU Fan Meister будет искать ресурсы, можно получить через параметр --dirs командной строки. При попытке загрузить какой-либо ресурс GPU Fan Meister перебирает все папки для поиска и пытается найти ресурс в определённой подпапке, которая соответствует типу ресурса. Ниже описан процесс поиска и загрузки каждого типа ресурса.

Плагины

Процесс поиска и загрузки плагинов следующий:

  1. Перебираются все папки для поиска в том порядке, который выдаётся CLI-параметром --dirs.

  2. Плагин ищется в папке <текущая папка для поиска>/plugins/<идентификатор-плагина>.

  3. Если плагин найден, то он загружается, а все остальные плагины с этим именем из других папок поиска игнорируются.

Пример: если имеется папка для поиска /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.

Документация

Процесс поиска и загрузки документации следующий:

  1. Перебираются все папки для поиска в том порядке, который выдаётся CLI-параметром --dirs.

  2. Ищется папка <текущая папка для поиска>/docs/<код языка>, где <код языка> - это IETF-код1 языка, соответствующий системной локали.

  3. Если папка найдена, то используется документация именно из этой папки. Все остальные папки игнорируются.

  4. Если ни в одной папке для поиска документация не найдена, то из <код языка> убирается последний элемент после знака "-" (zh-TW => zh). Затем процесс повторяется заново.

  5. Если последний элемент из <код языка> убран, а документация всё ещё не найдена, то 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 уже делает большую часть работы за вас. В конечном счёте, вам необходимо сделать следующее:

  1. Склонировать основной репозиторий:

    git clone https://github.com/alkatrazstudio/gpu-fan-meister

  2. Сгенерировать или обновить PO-файлы:

    docs/src/build.sh <IETF-код языка> po

  3. Перевести PO-файлы.

  4. Запустить скрипт сборки документации:

    docs/src/build.sh <IETF-код языка>

  5. Переместить полученную документацию из папки docs/<IETF-код языка> в любую папку поиска.

Локализация

Процесс поиска и загрузки локализаций следующий:

  1. Перебираются все папки для поиска в порядке, обратном тому, который выдаётся CLI-параметром --dirs.

  2. Файлы локализации ищутся в папке <текущая папка для поиска>/translations и загружаются по правилам Qt: https://doc.qt.io/qt-5.12/qtranslator.html#load-1.

  3. Если файл локализации найден, то содержащийся в нём перевод добавляется к уже загруженным файлам локализации. При наличии дубликатов переводов, приоритет будет отдаваться последней загруженной локализации.

Пример: если имеется папка для поиска /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.