Add an option for extension language

This commit is contained in:
FusionPBX 2024-01-10 15:55:00 -07:00 committed by GitHub
parent ad86456b33
commit 0ea2d00289
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 83 additions and 28 deletions

View File

@ -642,6 +642,18 @@
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "extension_language";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "extension_dialect";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "extension_voice";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";
$z++;
$apps[$x]['db'][$y]['fields'][$z]['name'] = "extension_type";
$apps[$x]['db'][$y]['fields'][$z]['type'] = "text";
$apps[$x]['db'][$y]['fields'][$z]['description']['en-us'] = "";

View File

@ -2314,6 +2314,30 @@ $text['label-extension_only']['zh-cn'] = "仅限分机";
$text['label-extension_only']['ja-jp'] = "内線のみ";
$text['label-extension_only']['ko-kr'] = "내선 전용";
$text['label-language']['en-us'] = "Language";
$text['label-language']['en-gb'] = "Language";
$text['label-language']['ar-eg'] = "اللغة";
$text['label-language']['de-at'] = "Sprache";
$text['label-language']['de-ch'] = "Sprache";
$text['label-language']['de-de'] = "Sprache";
$text['label-language']['es-cl'] = "Idioma";
$text['label-language']['es-mx'] = "Idioma";
$text['label-language']['fr-ca'] = "Langue";
$text['label-language']['fr-fr'] = "Langue";
$text['label-language']['he-il'] = "שפה";
$text['label-language']['it-it'] = "Lingua";
$text['label-language']['nl-nl'] = "Taal";
$text['label-language']['pl-pl'] = "Język";
$text['label-language']['pt-br'] = "Língua";
$text['label-language']['pt-pt'] = "Língua";
$text['label-language']['ro-ro'] = "Limba";
$text['label-language']['ru-ru'] = "Язык";
$text['label-language']['sv-se'] = "Språk";
$text['label-language']['uk-ua'] = "Українська";
$text['label-language']['zh-cn'] = "语言";
$text['label-language']['ja-jp'] = "言語";
$text['label-language']['ko-kr'] = "언어";
$text['label-extension_type']['en-us'] = "Type";
$text['label-extension_type']['ar-eg'] = "النوع";
$text['label-extension_type']['de-at'] = "Art";
@ -3847,4 +3871,3 @@ $text['button-call_forward']['ja-jp'] = "電話転送";
$text['button-call_forward']['ko-kr'] = "착신 전환";
?>

View File

@ -132,10 +132,14 @@
$absolute_codec_string = $_POST["absolute_codec_string"];
$force_ping = $_POST["force_ping"];
$dial_string = $_POST["dial_string"];
$extension_language = $_POST["extension_language"];
$extension_type = $_POST["extension_type"];
$enabled = $_POST["enabled"] ?? 'false';
$description = $_POST["description"];
//set defaults
$extension_language = $extension_language ?? '';
//outbound caller id number - only allow numeric and +
if (!empty($outbound_caller_id_number)) {
$outbound_caller_id_number = preg_replace('#[^\+0-9]#', '', $outbound_caller_id_number);
@ -425,6 +429,12 @@
$password = generate_password($password_length, $password_strength);
}
//seperate the language components into language, dialect and voice
$language_array = explode("/",$ivr_menu_language);
$ivr_menu_language = $language_array[0] ?? 'en';
$ivr_menu_dialect = $language_array[1] ?? 'us';
$ivr_menu_voice = $language_array[2] ?? 'callie';
//create the data array
$array["extensions"][$i]["domain_uuid"] = $domain_uuid;
$array["extensions"][$i]["extension_uuid"] = $extension_uuid;
@ -531,6 +541,11 @@
$array["extensions"][$i]["dial_string"] = $dial_string;
}
}
if (permission_exists('extension_language')) {
$array['ivr_menus'][0]["extension_language"] = $extension_language;
$array['ivr_menus'][0]["extension_dialect"] = $extension_dialect;
$array['ivr_menus'][0]["extension_voice"] = $extension_voice;
}
if (permission_exists('extension_type')) {
$array["extensions"][$i]["extension_type"] = $extension_type;
}
@ -1974,6 +1989,35 @@
echo "</tr>\n";
}
if (permission_exists('extension_language')) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap>\n";
echo " ".$text['label-language']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' type='text' name='extension_language'>\n";
echo " <option></option>\n";
if (!empty($extension_language) && !empty($extension_dialect) && !empty($extension_voice)) {
$language_formatted = $extension_language."-".$extension_dialect." ".$extension_voice;
echo " <option value='".escape($extension_language.'/'.$extension_dialect.'/'.$extension_voice)."' selected='selected'>".escape($language_formatted)."</option>\n";
}
if (!empty($language_paths)) {
foreach ($language_paths as $key => $language_variables) {
$language_variables = explode('/',$language_paths[$key]);
$language = $language_variables[0];
$dialect = $language_variables[1];
$voice = $language_variables[2];
if (empty($language_formatted) || $language_formatted != $language.'-'.$dialect.' '.$voice) {
echo " <option value='".$language."/".$dialect."/".$voice."'>".$language."-".$dialect." ".$voice."</option>\n";
}
}
}
echo "<br />\n";
//echo $text['description-language']."\n";
echo "</td>\n";
echo "</tr>\n";
}
if (permission_exists('extension_type')) {
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";

View File

@ -240,30 +240,6 @@ $text['message-maximum_ivr_menus']['zh-cn'] = "最大 IVR 菜单:";
$text['message-maximum_ivr_menus']['ja-jp'] = "最大 IVR メニュー:";
$text['message-maximum_ivr_menus']['ko-kr'] = "최대 IVR 메뉴:";
$text['label-language']['en-us'] = "Language";
$text['label-language']['en-gb'] = "Language";
$text['label-language']['ar-eg'] = "اللغة";
$text['label-language']['de-at'] = "Sprache";
$text['label-language']['de-ch'] = "Sprache";
$text['label-language']['de-de'] = "Sprache";
$text['label-language']['es-cl'] = "Idioma";
$text['label-language']['es-mx'] = "Idioma";
$text['label-language']['fr-ca'] = "Langue";
$text['label-language']['fr-fr'] = "Langue";
$text['label-language']['he-il'] = "שפה";
$text['label-language']['it-it'] = "Lingua";
$text['label-language']['nl-nl'] = "Taal";
$text['label-language']['pl-pl'] = "Język";
$text['label-language']['pt-br'] = "Língua";
$text['label-language']['pt-pt'] = "Língua";
$text['label-language']['ro-ro'] = "Limba";
$text['label-language']['ru-ru'] = "Язык";
$text['label-language']['sv-se'] = "Språk";
$text['label-language']['uk-ua'] = "Українська";
$text['label-language']['zh-cn'] = "语言";
$text['label-language']['ja-jp'] = "言語";
$text['label-language']['ko-kr'] = "언어";
$text['label-tts_voice']['en-us'] = "TTS Voice";
$text['label-tts_voice']['en-gb'] = "TTS Voice";
$text['label-tts_voice']['ar-eg'] = "TTS الصوت";