Class lajax\translatemanager\Module

Inheritancelajax\translatemanager\Module » yii\base\Module
Available since version1.0

This is the main module class for the TranslateManager module.

Initialisation example:

Simple example:

'modules' => [
    'translatemanager' => [
        'class' => 'lajax\translatemanager\Module',
    ],
],

Complex example:

'modules' => [
    'translatemanager' => [
        'class' => 'lajax\translatemanager\Module',
        'root' => '@app',               // The root directory of the project scan.
        'layout' => 'language',         // Name of the used layout. If using own layout use 'null'.
        'allowedIPs' => ['127.0.0.1'],  // IP addresses from which the translation interface is accessible.
        'roles' => ['@'],               // For setting access levels to the translating interface.
        'tmpDir' => '@runtime',         // Writable directory for the client-side temporary language files.
                                        // IMPORTANT: must be identical for all applications (the AssetsManager serves the JavaScript files containing language elements from this directory).
        'phpTranslators' => ['::t'],    // list of the php function for translating messages.
        'jsTranslators' => ['lajax.t'], // list of the js function for translating messages.
        'patterns' => ['*.js', '*.php'],// list of file extensions that contain language elements.
        'ignoredCategories' => ['yii'], // these categories won’t be included in the language database.
        'ignoredItems' => ['config'],   // these files will not be processed.
        'languageTable' => 'language',  // Name of the database table storing the languages.
        'scanTimeLimit' => null,        // increase to prevent "Maximum execution time" errors, if null the default max_execution_time will be used
        'tables' => [                   // Properties of individual tables
            [
                'connection' => 'db',   // connection identifier
                'table' => '{{%language}}',          // table name
                'columns' => ['name', 'name_ascii']  //names of multilingual fields
            ]
        ]
    ],
],

IMPORTANT: If you want to modify the value of roles (in other words to start using user roles) you need to enable authManager in the common config.

Using of authManager: http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

examples:

PhpManager:

'components' => [
     'authManager' => [
         'class' => 'yii\rbac\PhpManager',
     ],
],

DbManager:

'components' => [
     'authManager' => [
         'class' => 'yii\rbac\DbManager',
     ],
],

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$allowedIPs array The list of IPs that are allowed to access this module. lajax\translatemanager\Module
$controllerNamespace lajax\translatemanager\Module
$defaultRoute lajax\translatemanager\Module
$ignoredCategories array List of the categories being ignored. lajax\translatemanager\Module
$ignoredItems array Directories/files being ignored. lajax\translatemanager\Module
$jsTranslators array List of the JavaScript function for translating messages. lajax\translatemanager\Module
$languageTable string The database table storing the languages. lajax\translatemanager\Module
$layout string Name of the used layout. lajax\translatemanager\Module
$patternArray string PHP Regular expression to match arrays containing language elements to translate. lajax\translatemanager\Module
$patternArrayRecursive string PHP Regular expression to detect langualge elements within arrays. lajax\translatemanager\Module
$patternArrayTranslator string PHP Regular expression to match arrays containing language elements to translate. lajax\translatemanager\Module
$patternJs string Regular expression to detect JavaScript lajax. lajax\translatemanager\Module
$patternPhp string Regular expression to match PHP Yii::t functions. lajax\translatemanager\Module
$patterns array List of file extensions that contain language elements. lajax\translatemanager\Module
$phpTranslators array List of the PHP function for translating messages. lajax\translatemanager\Module
$roles array The list of rights that are allowed to access this module. lajax\translatemanager\Module
$root string The root directory of the scanning. lajax\translatemanager\Module
$scanTimeLimit int The max_execution_time used when scanning, when set to null the default max_execution_time will not be modified. lajax\translatemanager\Module
$searchEmptyCommand string The search string to find empty translations. lajax\translatemanager\Module
$subDir string Name of the subdirectory which contains the language elements. lajax\translatemanager\Module
$tables array Identifiers for the database tables containing language elements. lajax\translatemanager\Module
$tmpDir string Writeable directory used for keeping the generated javascript files. lajax\translatemanager\Module

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
SESSION_KEY_ENABLE_TRANSLATE 'frontendTranslation_EnableTranslate' Session key for storing front end translating privileges. lajax\translatemanager\Module

Property Details

$allowedIPs public property

The list of IPs that are allowed to access this module.

public array $allowedIPs = ['127.0.0.1''::1']
$controllerNamespace public property
public $controllerNamespace 'lajax\translatemanager\controllers'
$defaultRoute public property
public $defaultRoute 'language/list'
$ignoredCategories public property

List of the categories being ignored.

$ignoredItems public property

Directories/files being ignored.

public array $ignoredItems = ['.svn''.git''.gitignore''.gitkeep''.hgignore''.hgkeep''/messages''/BaseYii.php''runtime''bower''nikic']
$jsTranslators public property

List of the JavaScript function for translating messages.

public array $jsTranslators = ['lajax.t']
$languageTable public property

The database table storing the languages.

public string $languageTable '{{%language}}'
$layout public property

Name of the used layout. If you want to use the site default layout set value null.

public string $layout 'language'
$patternArray public property

PHP Regular expression to match arrays containing language elements to translate.

public string $patternArray "#\@translate[^\$]+\$(?P<text>.+?)[\]\)];#smui"
$patternArrayRecursive public property

PHP Regular expression to detect langualge elements within arrays.

public string $patternArrayRecursive '#(?P<category>)(\[|\(|>|,|)\s*(?P<text>\'.*?(?<!\\\\)\'|".*?(?<!\\\\)"?)\s*(,|$)#s'
$patternArrayTranslator public property

PHP Regular expression to match arrays containing language elements to translate.

public string $patternArrayTranslator '#\@translate[^\$]+(?P<translator>[\w\d\s_]+[^\(\[]+)#s'
$patternJs public property

Regular expression to detect JavaScript lajax.t functions.

public string $patternJs '#lajax\.t\s*\(\s*(?P<text>\'.*?(?<!\\\\)\'|".*?(?<!\\\\)"?)\s*[,\)]#s'
$patternPhp public property

Regular expression to match PHP Yii::t functions.

public string $patternPhp '#::t\s*\(\s*(?P<category>\'[\w\d\s_-]+?(?<!\\\\)\'|"[\w\d\s_-]+?(?<!\\\\)"?)\s*,\s*(?P<text>\'.*?(?<!\\\\)\'|".*?(?<!\\\\)"?)\s*[,\)]#s'
$patterns public property

List of file extensions that contain language elements. Only files with these extensions will be processed.

public array $patterns = ['*.php''*.js']
$phpTranslators public property

List of the PHP function for translating messages.

public array $phpTranslators = ['::t']
$roles public property

The list of rights that are allowed to access this module. If you modify, you also need to enable authManager. http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

public array $roles = []
$root public property

The root directory of the scanning.

public string $root '@app'
$scanTimeLimit public property

The max_execution_time used when scanning, when set to null the default max_execution_time will not be modified.

public int $scanTimeLimit null
$searchEmptyCommand public property

The search string to find empty translations.

$subDir public property

Name of the subdirectory which contains the language elements.

public string $subDir '/translate/'
$tables public property

Identifiers for the database tables containing language elements.

public array $tables null
$tmpDir public property

Writeable directory used for keeping the generated javascript files.

public string $tmpDir '@runtime/'

Method Details

beforeAction() public method

public void beforeAction ( $action )
$action
checkAccess() public method

public boolean checkAccess ( )
return boolean

Whether the module can be accessed by the current user

getLanguageItemsDirPath() public method

public string getLanguageItemsDirPath ( )
return string

The full path of the directory containing the generated JavaScript files.