Версия: 6.x
burger close
Класс LangApi
Граф наследования:LangApi:
BaseModel

Подробное описание

Класс содержит нобходимые методы для работы с языковыми файлами

Открытые члены

 createLangFiles ($lang, $filter=null, $position=0)
 
 makeLangArchive ($lang)
 
 getPossibleLangsData ()
 
 removePhrases ($translates_ids)
 
 addTableControl (TableControl $table_control)
 
 addFilterControl (FilterControl $filter_control)
 
 setFilter ($filter_array)
 
 setLangFilter ($lang)
 
 getListCount ()
 
 getList ($page=1, $page_size=100)
 
 getTableGroupRows ()
 
 saveTranslates ($translates, $add=false)
 
 getModuleLangFilepath ($module, $type, $lang)
 
 saveFilters ()
 
 getHashSourcePhrase ($phrase)
 
 removeLangs ($langs)
 
- Открытые члены унаследованные от BaseModel
 addError ($message, $fieldname=null, $form=null)
 
 hasError ()
 
 getErrors ()
 
 cleanErrors ()
 
 getDisplayErrors ()
 
 getErrorsStr ()
 
 getFormErrors ($form, $separator= ', ')
 
 getNonFormErrors ($separator= ', ')
 
 exportErrors ()
 
 importErrors ($data)
 

Открытые статические члены

static getTranslateModuleList ()
 
static getPossibleLang ()
 
static getSavedFilters ()
 

Поля данных

const TIMEOUT = 15
 
const FILTER_SESSION_VAR = 'lang_filter'
 
const FILTER_SHOW_WITH_TRANSLATE = 'with_translate'
 
const FILTER_SHOW_NO_TRANSLATE = 'no_translate'
 
const CORE_MODULE_ID = '@core'
 
const LANG_FILE_TYPE_JS = 'js'
 
const LANG_FILE_TYPE_PHP = 'php'
 
- Поля данных унаследованные от BaseModel
 $form_fieldname = []
 
 $errors_by_form = []
 
 $errors_non_form = []
 
 $errors = []
 

Защищенные члены

 createLangFilesForDirectory ($directory_path, $module, $lang)
 
 prepareJsStrings ($js_strings)
 
 getStringsFromDir ($directory_path, array $extensions, array $patterns)
 
 getStringsFromDirByTokenizer ($directory_path, array $extensions)
 
 getStringsFromFile ($file_path, array $patterns)
 
 getStringsFromFileByTokenizer ($file_path)
 
 addLangFolderToArchive (ZipArchive $zip, $relative_folder)
 
 getModulesLangFilepath ()
 
 getLangFilepath ($module, $view_folder)
 
 getAllPhrases ()
 
 loadLangFile ($filepath, $module, $type, $lang)
 
 addTranslateInFile ($file, $new_translates)
 
 replaceTranslatesInFile ($file, $new_translates)
 
 transformTranslatesByFiles ($translates)
 
 getModuleViewPath ($module)
 
 writeLangFile ($file, $messages)
 
 loadTranslateFile ($file)
 

Дополнительные унаследованные члены

- Защищенные данные унаследованные от BaseModel
 $default_error_fieldname = 'Информация'
 

Методы

addFilterControl ( FilterControl  $filter_control)

Устанавливает фильтры, от компонента

Аргументы
FilterControl$filter_control- объект фильтра
addLangFolderToArchive ( ZipArchive  $zip,
  $relative_folder 
)
protected

Добавляет файлы одного модуля в архив

Аргументы
ZipArchive$zipОбъект архива
string$relative_folderПуть к папке, относительно корня сайта
addTableControl ( TableControl  $table_control)

Применяет параметры таблицы к выборке. Зарезервировано

Аргументы
TableControl$table_control
addTranslateInFile (   $file,
  $new_translates 
)
protected

Обновляет или добавляет переводы в файле

Аргументы
string$fileпуть к языковому файлу
array$new_translatesмассив [Хэш исходной фразы => ['source' => Исходная фраза, 'translate' => 'перевод']]
Возвращает
bool
createLangFiles (   $lang,
  $filter = null,
  $position = 0 
)

Метод, создающий файлы локализации по всему проекту

Аргументы
string$lang- язык для которого подготовить файлы
string$filter- фильтрует модули, для которых нужно создать языковый файл. Может содержать "имя папки модуля" или "@core" или "#имя шаблона"
int$positionПозиция, с которой начинать обработку
Возвращает
bool(true)|int Возвращает true, если операция завершена полностью.
createLangFilesForDirectory (   $directory_path,
  $module,
  $lang 
)
protected

Создает языковые файлы для определенной директории

Аргументы
string$directory_path- путь к папке
string$moduleИдентификатор модуля
string$langИдентификатор языка
getAllPhrases ( )
protected

Возвращает полный список фраз с учетом фильтра

Возвращает
array
getHashSourcePhrase (   $phrase)

Возвращает хэш от исходной фразы для перевода

Аргументы
string$phraseИсходная фраза
Возвращает
string
getLangFilepath (   $module,
  $view_folder 
)
protected

Находит в указанной папке языковые файлы

Аргументы
string$moduleИдентификатор модуля или шаблона или ядра
string$view_folderпуть к папке, в которой должна находиться папка lang
Возвращает
array
getList (   $page = 1,
  $page_size = 100 
)

Возвращает список языковых файлов во всех модулях и актуальной теме оформления

Аргументы
int$pageНомер страницы
int$page_sizeКоличество элементов на странице
Возвращает
array
getListCount ( )

Возвращает общее количество фраз для перевода

Возвращает
int
getModuleLangFilepath (   $module,
  $type,
  $lang 
)

Возвращает полный путь к языковому файлу

Аргументы
string$moduleимя модуля
string$typeтип файла для переводов
string$langдвухсимвольный идентификатор языка
Возвращает
string|bool(false)
getModulesLangFilepath ( )
protected

Возвращает информацию по всем файлам переводов для всех модулей с учетом фильтра

Возвращает
array
getModuleViewPath (   $module)
protected

Возвращает путь к папке, где должна находиться папка lang для модуля $module

Аргументы
string$moduleидентификатор модуля, темы, ядра
Возвращает
string
static getPossibleLang ( )
static

Возвращает список языков, для которых созданы языковые файлы в системе

Возвращает
array
getPossibleLangsData ( )

Возвращает существующие в системе языки в формате для отображения в списке

Возвращает
array
static getSavedFilters ( )
static

Возвращает сохраненные в сессии фильтры последнего отображения переводов

Возвращает
array
getStringsFromDir (   $directory_path,
array  $extensions,
array  $patterns 
)
protected

Получить все строки из директории

Аргументы
string$directory_path- путь к папке
array$extensions- расширения файлов для поиска
array$patterns- массив парсинга
Возвращает
array
getStringsFromDirByTokenizer (   $directory_path,
array  $extensions 
)
protected

Получить все строки из директории используя токинайзер PHP

Аргументы
string$directory_path- путь к папке
array$extensions- расширения файлов для поиска
Возвращает
array
getStringsFromFile (   $file_path,
array  $patterns 
)
protected

Получить все строки из конкретного файлы

Аргументы
string$file_path- полный путь к файлу на диске
array$patterns- правила для парсинга
Возвращает
array
getStringsFromFileByTokenizer (   $file_path)
protected

Получить все строки из конкретного файла используя лексер для обхода

Аргументы
string$file_path- полный путь к файлу на диске
Возвращает
array
getTableGroupRows ( )

Возвращает данные вставки групп в таблицу

static getTranslateModuleList ( )
static

Возвращает ассоциативный массив со списком модулей и тем оформления, которые можно перевести

Возвращает
array
loadLangFile (   $filepath,
  $module,
  $type,
  $lang 
)
protected

Возвращает массив с id, исходной фразой и переводом

Аргументы
string$filepath
string$module
string$type
string$lang
Возвращает
array
loadTranslateFile (   $file)
protected

Возвращает имеющиеся фразы в файле переводов

Аргументы
string$fileПолный путь к файлу переводов
Возвращает
array|bool(false)
makeLangArchive (   $lang)

Возвращает относительную ссылку на созданный zip архив

Аргументы
string$langИдентификатор языка
Возвращает
string
Исключения
RsException
prepareJsStrings (   $js_strings)
protected

Обрабатывает JS фразы. Исключает из них экранирование

Аргументы
array$js_strings
Возвращает
array
removeLangs (   $langs)

Удаляет файлы переводов для заданных языков

Аргументы
array$langs
Возвращает
bool
removePhrases (   $translates_ids)

Удаляет фразы из языкового файла

Аргументы
array$translates_idsМассив с ID фраз, которые необходимо удалить
Возвращает
bool
replaceTranslatesInFile (   $file,
  $new_translates 
)
protected

Заменяет фразы в файле

Аргументы
string$fileПолный путь к файлу на диске
array$new_translatesмассив с переводами, [ID исходной фразы module-lang-type-phraseId => Перевод, ...]
Возвращает
bool
saveFilters ( )

Сохраняет в сессии фильтры последнего отображения переводов

Возвращает
void
saveTranslates (   $translates,
  $add = false 
)

Сохраняет переводы

Аргументы
$translates
bool$addЕсли true, то фразы либо обновляются, либо добавляются в $translates ожидается массив [Хэш исходной фразы => ['source' => Исходная фраза, 'translate' => 'перевод']] Если false, то [Хэш исходной фразы => 'перевод']
Возвращает
bool
setFilter (   $filter_array)

Устанавливает массив с фильтрами по переводам

Аргументы
$filter_array
setLangFilter (   $lang)

Устанавливает фильтр по языку

Аргументы
string$lang
transformTranslatesByFiles (   $translates)
protected

Возвращает массив с фразами, сгруппированными по полным путям к файлам

Аргументы
array$translatesмассив с переводами, где в ключе составной ID исходной фразы module-lang-type-phraseId
Возвращает
array
writeLangFile (   $file,
  $messages 
)
protected

Записывает на диск файл с переводами фраз в формате ReadyScript

Аргументы
string$fileПолный путь к файлу перевода
array$messagesМассив с исходной фразой в ключе и переводом в значении
Возвращает
bool|int

Поля

const CORE_MODULE_ID = '@core'
const FILTER_SESSION_VAR = 'lang_filter'
const FILTER_SHOW_NO_TRANSLATE = 'no_translate'
const FILTER_SHOW_WITH_TRANSLATE = 'with_translate'
const LANG_FILE_TYPE_JS = 'js'
const LANG_FILE_TYPE_PHP = 'php'
const TIMEOUT = 15