mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-18 08:19:05 +01:00
Add autocompleter for CLI command LSlang :: generate_lang_file
This commit is contained in:
parent
3494cc55c8
commit
c8820ff841
1 changed files with 75 additions and 6 deletions
|
@ -121,16 +121,33 @@ class LSlang extends LSlog_staticLoggerClass {
|
||||||
/**
|
/**
|
||||||
* Return list of available languages
|
* Return list of available languages
|
||||||
*
|
*
|
||||||
|
* @param[in] $encoding string|null Specify encoding for lang selection. If null, use self :: encoding value,
|
||||||
|
* if false, do not filter on encoding, otherwise filter available lang for
|
||||||
|
* specified encoding (optional, default: null)
|
||||||
|
* @params[in] $with_encoding Return available lang list with encoding (optional, default: false)
|
||||||
|
*
|
||||||
* @retval array List of available languages.
|
* @retval array List of available languages.
|
||||||
**/
|
**/
|
||||||
public static function getLangList() {
|
public static function getLangList($encoding=null, $with_encoding=false) {
|
||||||
$list = array('en_US');
|
if (is_null($encoding))
|
||||||
if (self :: $encoding) {
|
$encoding = self :: $encoding;
|
||||||
$regex = '/^([a-zA-Z_]*)\.'.self :: $encoding.'$/';
|
if ($with_encoding)
|
||||||
|
$list = array('en_US.UTF8');
|
||||||
|
else
|
||||||
|
$list = array('en_US');
|
||||||
|
if ($encoding) {
|
||||||
|
if ($with_encoding)
|
||||||
|
$regex = '/^([a-zA-Z_]*\.'.$encoding.')$/';
|
||||||
|
else
|
||||||
|
$regex = '/^([a-zA-Z_]*)\.'.$encoding.'$/';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$regex = '/^([a-zA-Z_]*)$/';
|
if ($with_encoding)
|
||||||
|
$regex = '/^([a-zA-Z_]+\.[a-zA-Z0-9\-]+)$/';
|
||||||
|
else
|
||||||
|
$regex = '/^([a-zA-Z_]+)\.[a-zA-Z0-9\-]+$/';
|
||||||
}
|
}
|
||||||
|
self :: log_debug("getLangList(".varDump($encoding).", $with_encoding) : regex='$regex'");
|
||||||
foreach(array(LS_I18N_DIR_PATH, LS_LOCAL_DIR.'/'.LS_I18N_DIR) as $lang_dir) {
|
foreach(array(LS_I18N_DIR_PATH, LS_LOCAL_DIR.'/'.LS_I18N_DIR) as $lang_dir) {
|
||||||
if (!is_dir($lang_dir))
|
if (!is_dir($lang_dir))
|
||||||
continue;
|
continue;
|
||||||
|
@ -835,6 +852,57 @@ function cli_generate_lang_file($command_args) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Args autocompleter for CLI command generate_lang_file
|
||||||
|
*
|
||||||
|
* @param[in] $comp_words array List of already typed words of the command
|
||||||
|
* @param[in] $comp_word_num int The command word number to autocomplete
|
||||||
|
* @param[in] $comp_word string The command word to autocomplete state
|
||||||
|
* @param[in] $opts array List of global available options
|
||||||
|
*
|
||||||
|
* @retval array List of available options for the word to autocomplete
|
||||||
|
**/
|
||||||
|
function cli_generate_lang_file_args_autocompleter($comp_words, $comp_word_num, $comp_word, $opts) {
|
||||||
|
global $available_withouts, $available_onlys;
|
||||||
|
switch ($comp_words[$comp_word_num-1]) {
|
||||||
|
case '-W':
|
||||||
|
case '--without':
|
||||||
|
return LScli :: autocomplete_opts($available_withouts, $comp_word);
|
||||||
|
break;
|
||||||
|
case '-O':
|
||||||
|
case '--only':
|
||||||
|
return LScli :: autocomplete_opts($available_onlys, $comp_word);
|
||||||
|
break;
|
||||||
|
case '-l':
|
||||||
|
case '--lang':
|
||||||
|
return LScli :: autocomplete_opts(LSlang :: getLangList(false, true), $comp_word);
|
||||||
|
break;
|
||||||
|
case '-o':
|
||||||
|
case '--output':
|
||||||
|
return array();
|
||||||
|
break;
|
||||||
|
case '-f':
|
||||||
|
case '--format':
|
||||||
|
return LScli :: autocomplete_opts(array('php', 'pot'), $comp_word);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$opts = array_merge(
|
||||||
|
$opts,
|
||||||
|
array (
|
||||||
|
'-W', '--without',
|
||||||
|
'-O', '--only',
|
||||||
|
'-c', '--copy-original-value',
|
||||||
|
'-i', '--interactive',
|
||||||
|
'-a', '--additional-file-format',
|
||||||
|
'-l', '--lang',
|
||||||
|
'-o', '--output',
|
||||||
|
'-f', '--format',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return LScli :: autocomplete_opts($opts, $comp_word);
|
||||||
|
}
|
||||||
|
|
||||||
LScli :: add_command(
|
LScli :: add_command(
|
||||||
'generate_lang_file',
|
'generate_lang_file',
|
||||||
'cli_generate_lang_file',
|
'cli_generate_lang_file',
|
||||||
|
@ -858,7 +926,8 @@ LScli :: add_command(
|
||||||
" -f/--format Output file format : php or pot",
|
" -f/--format Output file format : php or pot",
|
||||||
" (default: php)",
|
" (default: php)",
|
||||||
),
|
),
|
||||||
false // This command does not need LDAP connection
|
false, // This command does not need LDAP connection
|
||||||
|
'cli_generate_lang_file_args_autocompleter'
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue