diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 44fee06446f..8a125f65f86 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4221,7 +4221,7 @@ class Form
* @param string $title Title
* @param string $question Question
* @param string $action Action
- * @param array|string $formquestion An array with complementary inputs to add into forms: array(array('label'=> ,'type'=> , ))
+ * @param array|string $formquestion An array with complementary inputs to add into forms: array(array('label'=> ,'type'=> , 'size'=>, 'morecss'=>, 'moreattr'=>))
* type can be 'hidden', 'text', 'password', 'checkbox', 'radio', 'date', 'morecss', ...
* @param string $selectedchoice '' or 'no', or 'yes' or '1' or '0'
* @param int|string $useajax 0=No, 1=Yes, 2=Yes but submit page with &confirm=no if choice is No, 'xxx'=Yes and preoutput confirm box with div id=dialog-confirm-xxx
diff --git a/htdocs/core/class/html.formadmin.class.php b/htdocs/core/class/html.formadmin.class.php
index b0b979dcf46..3e8eb04c430 100644
--- a/htdocs/core/class/html.formadmin.class.php
+++ b/htdocs/core/class/html.formadmin.class.php
@@ -51,14 +51,14 @@ class FormAdmin
* @param string $htmlname Name of HTML select
* @param int $showauto Show 'auto' choice
* @param array $filter Array of keys to exclude in list (opposite of $onlykeys)
- * @param string $showempty '1'=Add empty value or string to show
+ * @param string $showempty '1'=Add empty value or 'string to show'
* @param int $showwarning Show a warning if language is not complete
* @param int $disabled Disable edit of select
* @param string $morecss Add more css styles
* @param int $showcode 1=Add language code into label at begining, 2=Add language code into label at end
* @param int $forcecombo Force to use combo box (so no ajax beautify effect)
* @param int $multiselect Make the combo a multiselect
- * @param array $onlykeys Show only the following keys (opposite of $filter). Example array('fr', 'es', ...)
+ * @param array $onlykeys Array of language keys to restrict list with the following keys (opposite of $filter). Example array('fr', 'es', ...)
* @param int $mainlangonly 1=Show only main languages ('fr_FR' no' fr_BE', 'es_ES' not 'es_MX', ...)
* @return string Return HTML select string with list of languages
*/
@@ -95,9 +95,12 @@ class FormAdmin
foreach ($langs_available as $key => $value)
{
$valuetoshow = $value;
- if ($showcode == 1) $valuetoshow = $key.' - '.$value;
+ if ($showcode == 1) {
+ if ($mainlangonly) $valuetoshow = ''.preg_replace('/[_-].*$/', '', $key).' - '.$value;
+ else $valuetoshow = ''.$key.' - '.$value;
+ }
if ($showcode == 2) {
- if ($mainlangonly) $valuetoshow = $value.' ('.preg_replace('/[_-].*$/', '', $key).')';
+ if ($mainlangonly) $valuetoshow = $value.' ('.preg_replace('/[_-].*$/', '', $key).')';
else $valuetoshow = $value.' ('.$key.')';
}
diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php
index 7655d6033d9..18169c8e5ce 100644
--- a/htdocs/core/class/translate.class.php
+++ b/htdocs/core/class/translate.class.php
@@ -794,29 +794,33 @@ class Translate
if ($mainlangonly) {
$arrayofspecialmainlanguages = array(
'en'=>'en_US',
- 'sq'=>'sq_AL',
+ 'am'=>'am_ET',
'ar'=>'ar_SA',
- 'eu'=>'eu_ES',
'bn'=>'bn_DB',
'bs'=>'bs_BA',
'ca'=>'ca_ES',
- 'zh'=>'zh_TW',
'cs'=>'cs_CZ',
'da'=>'da_DK',
'et'=>'et_EE',
- 'ka'=>'ka_GE',
'el'=>'el_GR',
+ 'eu'=>'eu_ES',
+ 'fa'=>'fa_IR',
'he'=>'he_IL',
- 'kn'=>'kn_IN',
+ 'ka'=>'ka_GE',
'km'=>'km_KH',
+ 'kn'=>'kn_IN',
'ko'=>'ko_KR',
+ 'ja'=>'ja_JP',
'lo'=>'lo_LA',
'nb'=>'nb_NO',
'fa'=>'fa_IR',
+ 'sq'=>'sq_AL',
'sr'=>'sr_RS',
+ 'sv'=>'sv_SE',
'sl'=>'sl_SI',
'uk'=>'uk_UA',
- 'vi'=>'vi_VN'
+ 'vi'=>'vi_VN',
+ 'zh'=>'zh_CN'
);
if (strtolower($regs[1]) != strtolower($regs[2]) && !in_array($dir, $arrayofspecialmainlanguages)) continue;
}
diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
index 27a5d607fb8..b6dbee28994 100644
--- a/htdocs/langs/en_US/website.lang
+++ b/htdocs/langs/en_US/website.lang
@@ -135,4 +135,5 @@ RSSFeed=RSS Feed
RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using this URL
PagesRegenerated=%s page(s)/container(s) regenerated
RegenerateWebsiteContent=Regenerate web site cache files
-AllowedInFrames=Allowed in Frames
\ No newline at end of file
+AllowedInFrames=Allowed in Frames
+DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties.
\ No newline at end of file
diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php
index ff072827423..ecdb9fa6f15 100644
--- a/htdocs/website/class/websitepage.class.php
+++ b/htdocs/website/class/websitepage.class.php
@@ -682,6 +682,7 @@ class WebsitePage extends CommonObject
$object->author_alias = '';
$object->date_creation = $now;
$object->title = ($newtitle == '1' ? $object->title : ($newtitle ? $newtitle : $object->title));
+ $object->description = $object->title;
if (!empty($newlang)) $object->lang = $newlang;
if ($istranslation) $object->fk_page = $fromid;
else $object->fk_page = 0;
diff --git a/htdocs/website/index.php b/htdocs/website/index.php
index d8ad8163dde..b6f274c375d 100644
--- a/htdocs/website/index.php
+++ b/htdocs/website/index.php
@@ -1824,8 +1824,7 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
// Protection if it is a translation page
if ($istranslation)
{
- if (GETPOST('newlang', 'aZ09') == $objectpage->lang)
- {
+ if (GETPOST('newlang', 'aZ09') == $objectpage->lang || !GETPOST('newlang', 'aZ09')) {
$error++;
setEventMessages($langs->trans("LanguageMustNotBeSameThanClonedPage"), null, 'errors');
$action = 'preview';
@@ -2631,24 +2630,28 @@ if (!GETPOST('hide_websitemenu'))
$onlylang = array();
if ($website->otherlang) {
if (!empty($website->lang)) {
- $onlylang[$website->lang] = $website->lang;
+ $onlylang[$website->lang] = $website->lang.' ('.$langs->trans("Default").')';
}
foreach (explode(',', $website->otherlang) as $langkey) {
$onlylang[$langkey] = $langkey;
}
- $textifempty = 1;
+ $textifempty = $langs->trans("Default");
} else {
- $onlylang['none'] = '';
+ $onlylang['none'] = 'none';
+ $textifempty = $langs->trans("Default");
}
- $textifempty = 1;
$formquestion = array(
array('type' => 'hidden', 'name' => 'sourcepageurl', 'value'=> $objectpage->pageurl),
array('type' => 'other', 'tdclass'=>'fieldrequired', 'name' => 'newwebsite', 'label' => $langs->trans("WebSite"), 'value' => $formwebsite->selectWebsite($object->id, 'newwebsite', 0)),
- array('type' => 'text', 'tdclass'=>'maxwidth200 fieldrequired', 'name' => 'newtitle', 'label'=> $langs->trans("WEBSITE_TITLE"), 'value'=> $langs->trans("CopyOf").' '.$objectpage->title),
- array('type' => 'text', 'tdclass'=>'maxwidth200', 'name' => 'newpageurl', 'label'=> $langs->trans("WEBSITE_PAGENAME"), 'value'=> ''),
- array('type' => 'checkbox', 'tdclass'=>'maxwidth200', 'name' => 'is_a_translation', 'label' => $langs->trans("PageIsANewTranslation"), 'value' => 0, 'morecss'=>'margintoponly'),
- array('type' => 'other', 'name' => 'newlang', 'label' => $form->textwithpicto($langs->trans("Language"), $langs->trans("DefineListOfAltLanguagesInWebsiteProperties")), 'value' => $formadmin->select_language($preselectedlanguage, 'newlang', 0, null, $textifempty, 0, 0, 'minwidth200', 0, 1, 0, $onlylang, 1)),
- );
+ array('type' => 'text', 'tdclass'=>'maxwidth200 fieldrequired', 'moreattr'=>'autofocus="autofocus"', 'name' => 'newtitle', 'label'=> $langs->trans("WEBSITE_TITLE"), 'value'=> $langs->trans("CopyOf").' '.$objectpage->title),
+ array('type' => 'text', 'tdclass'=>'maxwidth200', 'name' => 'newpageurl', 'label'=> $langs->trans("WEBSITE_PAGENAME"), 'value'=> '')
+ );
+ if (count($onlylang) > 1) {
+ $formquestion[] = array('type' => 'checkbox', 'tdclass'=>'maxwidth200', 'name' => 'is_a_translation', 'label' => $langs->trans("PageIsANewTranslation"), 'value' => 0, 'morecss'=>'margintoponly');
+ }
+
+ $value= $formadmin->select_language($preselectedlanguage, 'newlang', 0, null, $textifempty, 0, 0, 'minwidth200', 1, 0, 0, $onlylang, 1);
+ $formquestion[] = array('type' => 'other', 'name' => 'newlang', 'label' => $form->textwithpicto($langs->trans("Language"), $langs->trans("DefineListOfAltLanguagesInWebsiteProperties")), 'value' => $value);
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$object->ref.'&pageid='.$pageid, $langs->trans('ClonePage'), '', 'confirm_createpagefromclone', $formquestion, 0, 1, 300, 550);