Абстрактный класс: MhTranslation
Документация по плагину абстрактный класс: mhtranslation для DLE.
Краткое содержание:
Класс для оформления фраз переводов
Свойства
- private $cache_folder
- private $locale
- private $localization_path
- private $prefix
- private $translator
- private $use_translator
Методы
- public clear_cache()
- public convertXliffToJs()
- public get_cache()
- public getCacheFolder()
- public getFormattedLanguageList()
- public getLanguages()
- public getLocale()
- public getLocaleData()
- public getLocalizationPath()
- public getPrefix()
- public getTranslation()
- public getTranslationPlural()
- public getTranslationPluralWithParameters()
- public getTranslationWithParameters()
- public getTranslator()
- public isUseTranslator()
- public load_data()
- public setCacheFolder()
- public setLocale()
- public setLocalizationPath()
- public setPrefix()
- public setTranslator()
- public setUseTranslator()
- private generateJsTranslationContent()
- private getTranslationArray()
- private languageList()
- private nonTranslator()
- private parseXliffFile()
- private set_cache()
- private writeJsFile()
Подробности
- Путь: engine/inc/maharder/_includes/classes/MhTranslation.php
- Использованные трейты:
Свойства
private $cache_folder : string
Краткое содержание
Папка кеша
Тип: Текст
private $locale : ?string
Краткое содержание
Название локали
Тип: Текст или null
Подробности:
Tags
| Тэг | Версия | Описание |
|---|---|---|
| version | 173.3.0 | |
| since | 173.3.0 |
private $localization_path : ?string
Краткое содержание
Путь до фраз перевода
Тип: Текст или null
Подробности:
Tags
| Тэг | Версия | Описание |
|---|---|---|
| version | 173.3.0 | |
| since | 173.3.0 |
private $prefix : ?string
Тип: Текст или null
Подробности:
private $translator : ?\Symfony\Component\Translation\Translator
Краткое содержание
Класс переводчика
**Тип: ** Translator
Подробности:
Tags
| Тэг | Версия | Описание |
|---|---|---|
| version | 173.3.0 | |
| since | 173.3.0 |
private $use_translator : bool
Тип: Логические значения
Подробности:
Методы
clear_cache
public clear_cache(string type = "all") : voidКраткое содержание
Очищает кеш указанного типа.
Описание
Метод позволяет очистить кеш для переданного типа или полностью, если тип "all". Использует внутренний метод CacheControl::clearCache для выполнения операции очистки.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | "all" |
Возвращает:
voidconvertXliffToJs
static public convertXliffToJs() : voidКраткое содержание
Преобразует XLIFF-файлы переводов в JavaScript-файлы для поддержки локализации на клиентской стороне.
Описание
Метод перебирает доступные языки из функции {@see}, кэширует переводы, преобразует их из XLIFF-файлов и генерирует JavaScript-файлы с переводами. Если переводы не найдены или директория переводов отсутствует, генерируется лог ошибки.
Смотри так-же:
- \LogGenerator::generateLog()
- \MhTranslation::getLanguages()
- \CacheControl::getCache()
- \DataManager::normalizePath()
- \DataManager::dirToArray()
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | \Throwable |
Возвращает:
voidget_cache
public get_cache(string type, string name) : array|falseКраткое содержание
Получает кешированные данные для заданного типа и имени.
Описание
Метод использует статический метод CacheControl::getCache(), чтобы получить данные из файловой системы.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | |
| $name | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
array|falseВозвращает массив декодированных данных, если файл кеша успешно найден и данные корректны,
или false, если произошла ошибка (например, файл не найден или данные некорректны).
getCacheFolder
public getCacheFolder() : stringВозвращает:
stringgetFormattedLanguageList
static public getFormattedLanguageList(string|null format = "{original} ({english})") : arrayКраткое содержание
Возвращает отформатированный список языков с заданным шаблоном формата.
Описание
Поддерживаемые подстановочные шаблоны в строке формата:
{original}- заменяется на переведённое название языка.{english}- заменяется на английское название языка.{iso2}- заменяется на двузначный код языка (например:ru).{tag}- заменяется на код языка (например:ru_RU). Если формат не указан, по умолчанию используется шаблон: "{original} ({english})".
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $format | string|null | "{original} ({english})" |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Выбрасывается в случае ошибок при JSON-операциях. |
| \Throwable |
Возвращает:
arrayВозвращает массив языков, где каждый элемент содержит:
tag- код языка,name- сгенерированное название языка на основе переданного формата.
getLanguages
static public getLanguages() : arrayКраткое содержание
Получает список доступных языков.
Описание
Метод проверяет наличие кэша для списка языков. Если кэш отсутствует, формирует список языков на основе содержимого директории локализаций. Полученные данные сохраняются в кэше для последующего использования.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | Возникает при ошибке декодирования JSON в момент работы с кэшем. |
Возвращает:
arrayМассив доступных языков, где ключ — идентификатор языка, а значение — данные языка.
getLocale
static public getLocale() : stringКраткое содержание
Возвращает текущую локаль или значение по умолчанию ("ru_RU"), если локаль не определена.
Возвращает:
stringТекущая локаль или значение по умолчанию ("ru_RU").
getLocaleData
static public getLocaleData(string locale) : arrayКраткое содержание
Возвращает локализованные данные для указанного языка.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $locale | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если возникли ошибки при декодировании JSON-данных. |
| \Throwable | Если возникают ошибки при работе с кешем или файловой системой. |
Возвращает:
arrayМассив данных локализации для указанного языка.
getLocalizationPath
static public getLocalizationPath() : string|nullКраткое содержание
Получает путь к локализации приложения.
Описание
Метод возвращает путь к директории с файлами локализации. Если путь ранее
не был установлен или пуст, он загружается из конфигурации mhadmin и
по умолчанию указывает на директорию /engine/inc/maharder/_locales.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если возникает ошибка при загрузке конфигурации. |
Возвращает:
string|nullПолный путь к локализации, или null, если ROOT_DIR не определён.
getPrefix
public getPrefix() : stringКраткое содержание
Возвращает префикс для использования в SQL-запросах.
Описание
Метод проверяет, установлен ли префикс. Если префикс не задан, он вызывает метод setPrefix(),
чтобы установить его значение. Затем возвращает установившийся префикс.
Смотри так-же:
Возвращает:
stringПрефикс, используемый для построения SQL-запросов.
getTranslation
static public getTranslation(string phrase) : stringКраткое содержание
Возвращает переведённую фразу.
Описание
Метод использует функцию getTranslationWithParameters для получения перевода
без указания дополнительных параметров.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $phrase | string |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Исключение, выбрасываемое при ошибках обработки JSON (возможные ошибки в логе или настройках переводчика). |
Возвращает:
stringПереведённая строка.
getTranslationPlural
static public getTranslationPlural(string phrase, int count) : stringКраткое содержание
Возвращает переведённую фразу с учётом параметров множественного числа/склонения.
Описание
Делегирует обработку перевода методу getTranslationPluralWithParameters, передавая
пустой массив параметров в качестве третьего аргумента.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $phrase | string | |
| $count | int |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если в процессе выполнения произошла ошибка обработки JSON. |
Возвращает:
stringПереведённая строка с учётом параметров множественного числа/склонения.
getTranslationPluralWithParameters
static public getTranslationPluralWithParameters(string phrase, int count, array parameters) : stringКраткое содержание
Возвращает переведённую фразу с параметрами множественного числа, учитывая склонения, с дополнительной поддержкой параметров.
Смотри так-же:
- \MhTranslation::$translator
- \MhTranslation::isUseTranslator()
- \MhTranslation::setTranslator()
- \MhTranslation::getTranslationWithParameters()
- \MhTranslation::nonTranslator()
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $phrase | string | |
| $count | int | |
| $parameters | array |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Если возникает ошибка при обработке JSON данных. |
| \Throwable |
Возвращает:
stringПереведённая фраза с учетом склонений и параметров.
getTranslationWithParameters
static public getTranslationWithParameters(string phrase, array parameters) : stringКраткое содержание
Возвращает переведённую фразу с установленными параметрами.
Описание
Перевод осуществляется с использованием зарегистрированного переводчика.
Если переводчик не установлен, он инициализируется вызовом метода setTranslator.
Если использование переводчика отключено, возвращается результат без перевода.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $phrase | string | |
| $parameters | array |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | В случае возникновения ошибки при работе с переводчиком. |
Возвращает:
stringПереведённая фраза или исходная строка при отключённом переводчике.
getTranslator
static public getTranslator() : \Translator|nullКраткое содержание
Возвращает экземпляр переводчика, связанный с текущим модулем.
Описание
Если модуль передан как параметр, то он устанавливается перед получением переводчика. Если переводчик ещё не установлен, он будет автоматически инициализирован для текущего модуля.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \Throwable | |
| \JsonException | Генерируется при ошибках работы с JSON во внутренних методах. |
Возвращает:
\Translator|nullЭкземпляр переводчика или null, если переводчик не установлен.
isUseTranslator
static public isUseTranslator() : boolКраткое содержание
Проверяет, используется ли переводчик.
Описание
Метод проверяет, инициализирован ли статический переводчик
(self::$translator). Если переменная не равна null, значит переводчик
используется.
Возвращает:
boolВозвращает true, если переводчик задан; иначе false.
load_data
public load_data(string name, mixed ..._vars) : arrayКраткое содержание
Метод загружает данные из базы данных с использованием механизма кеширования.
Описание
Если данные уже закешированы, то они возвращаются из кеша, иначе выполняется запрос к базе данных, формируется кеш и результат сохраняется на диск.
Смотри так-же:
- \DataManager::getDb()
- \DataManager::nameArgs()
- \DataManager::getComparer()
- \DataManager::getConfig()
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $name | string | |
| $_vars | mixed |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | В случае JSON-ошибок при работе с кешем. |
Возвращает:
arrayРезультат выборки из базы данных, либо из кеша.
setCacheFolder
public setCacheFolder(string cache_folder) : voidСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $cache_folder | string |
Возвращает:
voidsetLocale
static public setLocale(string locale) : voidКраткое содержание
Устанавливает локаль для приложения.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $locale | string |
Возвращает:
voidsetLocalizationPath
static public setLocalizationPath(string localization_path) : voidКраткое содержание
Устанавливает путь до переводимых фраз
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $localization_path | string |
Возвращает:
voidsetPrefix
public setPrefix(string|null name = null) : voidКраткое содержание
Устанавливает префикс для использования в загрузке данных.
Описание
Если переданное имя соответствует значениям "users" или "usergroup",
то префикс устанавливается в значение константы USERPREFIX.
В противном случае используется значение по умолчанию из константы PREFIX.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $name | string|null | null |
Возвращает:
voidsetTranslator
static public setTranslator() : voidКраткое содержание
Устанавливает переводчик для модуля с заданными настройками.
Описание
Использует параметры из конфигурации для настройки локализации, загрузки переводов и их применения.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException|\Throwable | Если возникла ошибка при работе с JSON-файлами. |
Возвращает:
voidsetUseTranslator
static public setUseTranslator(bool use_translator) : voidКраткое содержание
Устанавливает использование переводчика.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $use_translator | bool |
Возвращает:
voidgenerateJsTranslationContent
static private generateJsTranslationContent(array translations) : stringКраткое содержание
Генерирует содержимое JavaScript-файла с переводами на основе переданного массива переводов.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $translations | array |
Возвращает:
stringСодержимое для JavaScript, включающее объект переводов и экспорт по умолчанию.
getTranslationArray
static private getTranslationArray() : arrayКраткое содержание
Возвращает массив переводов из XLIFF файла в виде ассоциативного массива, где ключами являются исходные строки, а значениями — переведённые строки.
Описание
Если файл перевода отсутствует или возникает ошибка при его обработке, возвращается пустой массив. Реализована поддержка кеширования для ускорения получения данных при последующих вызовах.
Смотри так-же:
- \DataManager::normalizePath()
- \LogGenerator::generateLog()
- \CacheControl::getCache()
- \CacheControl::setCache()
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException | Исключение при ошибке работы с JSON при кэшировании. |
| \Throwable | Исключение при неизвестной ошибке в процессе обработки файла. |
Возвращает:
arrayАссоциативный массив переводов.
languageList
static private languageList(string lang) : arrayКраткое содержание
Возвращает массив данных о языке на основе переданного кода языка.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $lang | string |
Возвращает:
arrayАссоциативный массив с данными о языке. Содержит следующие ключи:
original(string): Название языка на его родном языке.english(string): Название языка на английском.iso2(string): Код ISO 639-1 языка.tag(string): Полный тег языка.
nonTranslator
static private nonTranslator(string phrase, array params = []) : stringКраткое содержание
Заменяет плейсхолдеры в строке на указанные значения.
Описание
Метод принимает строку и массив пар "ключ-значение", где каждый ключ - это плейсхолдер, который заменяется соответствующим значением в строке.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $phrase | string | |
| $params | array | [] |
Возвращает:
stringОбработанная строка с произведёнными заменами.
parseXliffFile
static private parseXliffFile(string filePath) : arrayСвойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $filePath | string |
Возвращает:
arrayset_cache
private set_cache(string type, string name, mixed data) : voidКраткое содержание
Сохраняет данные в кеш.
Описание
Метод записывает данные в кеш, используя указанный тип и имя.
Для сохранения данных вызывается метод CacheControl::setCache, который
обрабатывает директорию и имя файла, записывает данные в формате JSON
и устанавливает необходимые права доступа к файлу.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $type | string | |
| $name | string | |
| $data | mixed |
Ошибки:
| Тип | Описание |
|---|---|
| \JsonException |
Возвращает:
voidwriteJsFile
static private writeJsFile(string path, string content) : boolКраткое содержание
Записывает переданное содержимое в указанный файл JavaScript.
Описание
В случае неуспешной записи генерирует критический лог с использованием метода LogGenerator::generateLog.
Смотри так-же:
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $path | string | |
| $content | string |
Ошибки:
| Тип | Описание |
|---|---|
| \Throwable |
Возвращает:
boolВозвращает true, если запись прошла успешно, или false, если возникла ошибка.