* Calendar/API: fixed not working dateformat d-M-Y with French language (Juin=Jun, Juillet=Jui)

This commit is contained in:
Ralf Becker 2011-04-09 11:24:50 +00:00
parent 0db7258a7b
commit 52be51f4bf
2 changed files with 30 additions and 18 deletions

View File

@ -112,13 +112,16 @@ class jscalendar
static $chars_shortcut; static $chars_shortcut;
if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$markuntranslated = translation::$markuntranslated;
translation::$markuntranslated = true; // otherwise we can not detect NOT translated phrases!
$short = lang($m = adodb_date('M',$ts)); // check if we have a translation of the short-cut $short = lang($m = adodb_date('M',$ts)); // check if we have a translation of the short-cut
if ($short == $m || $substr($short,-1) == '*') // if not generate one by truncating the translation of the long name if ($substr($short,-1) == '*') // if not generate one by truncating the translation of the long name
{ {
$short = $chars_shortcut > 0 ? $substr(lang(adodb_date('F',$ts)),0,$chars_shortcut) : $short = $chars_shortcut > 0 ? $substr(lang(adodb_date('F',$ts)),0,$chars_shortcut) :
$substr(lang(adodb_date('F',$ts)),$chars_shortcut); $substr(lang(adodb_date('F',$ts)),$chars_shortcut);
} }
$date = str_replace(adodb_date('M',$ts),$short,$date); $date = str_replace(adodb_date('M',$ts),$short,$date);
translation::$markuntranslated = $markuntranslated;
} }
} }
if ($helpmsg !== '') if ($helpmsg !== '')
@ -265,6 +268,8 @@ function monthClicked(calendar,monthstart) {
{ {
return False; return False;
} }
$markuntranslated = translation::$markuntranslated;
translation::$markuntranslated = true; // otherwise we can not detect NOT translated phrases!
$fields = preg_split('/[.\\/-]/',$datestr); $fields = preg_split('/[.\\/-]/',$datestr);
foreach(preg_split('/[.\\/-]/',$this->dateformat) as $n => $field) foreach(preg_split('/[.\\/-]/',$this->dateformat) as $n => $field)
{ {
@ -302,6 +307,8 @@ function monthClicked(calendar,monthstart) {
} }
$date[$field] = (int)$fields[$n]; $date[$field] = (int)$fields[$n];
} }
translation::$markuntranslated = $markuntranslated;
$ret = array( $ret = array(
$year => $date['Y'], $year => $date['Y'],
$month => $date['m'], $month => $date['m'],

View File

@ -256,10 +256,12 @@ Calendar._SDN = new Array
static $substr; static $substr;
if(is_null($substr)) $substr = function_exists('mb_substr') ? 'mb_substr' : 'substr'; if(is_null($substr)) $substr = function_exists('mb_substr') ? 'mb_substr' : 'substr';
$chars_shortcut = (int) lang('3 number of chars for day-shortcut'); // < 0 to take the chars from the end $chars_shortcut = (int) lang('3 number of chars for day-shortcut'); // < 0 to take the chars from the end
$markuntranslated = translation::$markuntranslated;
translation::$markuntranslated = true; // otherwise we can not detect NOT translated phrases!
foreach($day2int as $name => $n) foreach($day2int as $name => $n)
{ {
$short = lang($m = substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars $short = lang($m = substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars
if ($short == $m || $substr($short,-1) == '*') // else create one by truncating the full translation to x chars if ($substr($short,-1) == '*') // else create one by truncating the full translation to x chars
{ {
$short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut); $short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut);
} }
@ -270,6 +272,7 @@ Calendar._SDN_len = <?php echo abs((int) lang('3 number of chars for day-shortcu
Calendar._MN = new Array Calendar._MN = new Array
(<?php // full month names (<?php // full month names
translation::$markuntranslated = $markuntranslated;
$monthnames = array('January','February','March','April','May','June','July','August','September','October','November','December'); $monthnames = array('January','February','March','April','May','June','July','August','September','October','November','December');
foreach($monthnames as $n => $name) foreach($monthnames as $n => $name)
{ {
@ -279,16 +282,18 @@ foreach($monthnames as $n => $name)
Calendar._SMN = new Array Calendar._SMN = new Array
(<?php // short month names (<?php // short month names
translation::$markuntranslated = true; // otherwise we can not detect NOT translated phrases!
$chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
foreach($monthnames as $n => $name) foreach($monthnames as $n => $name)
{ {
$short = lang($m = substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars $short = lang($m = substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars
if ($short == $m || $substr($short,-1) == '*') // else create one by truncating the full translation to x chars if ($substr($short,-1) == '*') // else create one by truncating the full translation to x chars
{ {
$short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut); $short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut);
} }
echo "\n \"".$short.'"'.($n < 11 ? ',' : ''); echo "\n \"".$short.'"'.($n < 11 ? ',' : '');
} }
translation::$markuntranslated = $markuntranslated;
?>); ?>);
Calendar._SMN_len = <?php echo abs((int) lang('3 number of chars for month-shortcut')); ?>; Calendar._SMN_len = <?php echo abs((int) lang('3 number of chars for month-shortcut')); ?>;