Seite 1 von 1

Today Yesterday Hack Multilingual anpassen

Verfasst: 28.12.2004 17:43
von mode
Hallo,

Ich habe den Today/Yesterday Hack von phpbbhacks.com eingebaut. Dazu ist ja nur eine aenderung der functions.php notwendig. Daraus resultiert, dass die Woerter Today und Yesterday Hardcoded sind. Nicht so gut. Ich habe sie nun schon auf Heute und Gestern umgebaut aber das is ja auch keine richtige Loesung.

Wie kann ich es schaffen dass ich die Worte in der (z.B. fuer GER) /language/lang_german/lang_main.php festlege?

Also wie kann ich aus der functions.php auf die
$lang['TODAY'] = '<b>Heute</b>';
aus der lang_main.php zugreifen?


Hatte schon Loesungsideen die aber nach hinten losgegangen sind :(
Folgende Aenderungen habe ich an der Funktion Create_date vorgenommen:

Code: Alles auswählen

function create_date($format, $gmepoch, $tz)
{
	global $board_config, $lang, $template;    // Hier $template hinzugefuegt

	$template->assign_vars(array(
		'L_Today' => $lang['TODAY'])
	);

// Dann mod hinzufeguegt und die Zeile $L_Today = 'Today'; auskommentiert.
Leider funktioniert das nicht, es wird einfach an der Stelle nichts angezeigt.

Wo ist mein Fehler?


Gruss

Mode

Verfasst: 30.12.2004 13:53
von mode
hmm keiner ne Idee?

Wenn man schon mal was verstehen will und nicht nur das es funktioniert... Schade :(

Verfasst: 30.12.2004 13:54
von kratzer54847
wie sah den der Codeabschnitt original aus? also ohne Lang-Anpassung?

Verfasst: 30.12.2004 14:32
von mode

Code: Alles auswählen

//
// Create date/time from format and timezone
//
function create_date($format, $gmepoch, $tz)
{
	global $board_config, $lang;
	static $translate;

	if ( empty($translate) && $board_config['default_lang'] != 'english' )
	{
		@reset($lang['datetime']);
		while ( list($match, $replace) = @each($lang['datetime']) )
		{
			$translate[$match] = $replace;
		}
	}

// friendly date mod\\*******************

	$thetime = ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
	
	$L_Today = '<b>Today</b>';
	$L_Yesterday = 'Yesterday';
	$time_format = " - H:i";// - hour:minute am/pm
	
	$date = getdate();
	$today = $date['mday'];
	$month = $date['mon'];
	$year = $date['year'];

	$forum_date_today = @gmdate ("d", $gmepoch);
	$forum_date_month = @gmdate ("m", $gmepoch);
	$forum_date_year = @gmdate ("Y", $gmepoch);
	
	if ($forum_date_today == $today && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Today . @gmdate ($time_format, $gmepoch);//today
	
	else
	if ($today != 1 && $forum_date_today == ($today-1) && $forum_date_month == $month && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
		
	else
	//if today is 1 and the month is not 1, then we have to check how many days in the previews month
	//and then set $yesterday to the last day in the previews month
	if ($today == 1 && $month != 1)
	{
	$yesterday = date ("t", mktime(0,0,0,($month-1),1,$year));//returns how many days in the previews month
	if ($forum_date_today == $yesterday && $forum_date_month == ($month-1) && $forum_date_year == $year)
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
	}
	else 
	//if we are in the first day in the year
	if ($today == 1 && $month == 1)
	{
	$yesterday = date ("t", mktime(0,0,0,12,1,($year -1)));
	if ($forum_date_today == $yesterday && $forum_date_month == 12 && $forum_date_year == ($year-1))
		$thetime = $L_Yesterday . @gmdate ($time_format, $gmepoch);//yesterday
	}

   	return ($thetime);
//end friendly date \\*******************************

	// return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
}

Verfasst: 30.12.2004 14:39
von kratzer54847
versuch mal:

Code: Alles auswählen

// 
// Create date/time from format and timezone 
// 
function create_date($format, $gmepoch, $tz) 
{ 
   global $board_config, $lang; 
   static $translate; 

   if ( empty($translate) && $board_config['default_lang'] != 'english' ) 
   { 
      @reset($lang['datetime']); 
      while ( list($match, $replace) = @each($lang['datetime']) ) 
      { 
         $translate[$match] = $replace; 
      } 
   } 

// friendly date mod\\******************* 

   $thetime = ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); 
    
   $time_format = " - H:i";// - hour:minute am/pm 
    
   $date = getdate(); 
   $today = $date['mday']; 
   $month = $date['mon']; 
   $year = $date['year']; 

   $forum_date_today = @gmdate ("d", $gmepoch); 
   $forum_date_month = @gmdate ("m", $gmepoch); 
   $forum_date_year = @gmdate ("Y", $gmepoch); 
    
   if ($forum_date_today == $today && $forum_date_month == $month && $forum_date_year == $year) 
      $thetime = $lang['TODAY'] . @gmdate ($time_format, $gmepoch);//today 
    
   else 
   if ($today != 1 && $forum_date_today == ($today-1) && $forum_date_month == $month && $forum_date_year == $year) 
      $thetime = $lang['yesterday'] . @gmdate ($time_format, $gmepoch);//yesterday 
       
   else 
   //if today is 1 and the month is not 1, then we have to check how many days in the previews month 
   //and then set $yesterday to the last day in the previews month 
   if ($today == 1 && $month != 1) 
   { 
   $yesterday = date ("t", mktime(0,0,0,($month-1),1,$year));//returns how many days in the previews month 
   if ($forum_date_today == $yesterday && $forum_date_month == ($month-1) && $forum_date_year == $year) 
      $thetime = $lang['yesterday'] . @gmdate ($time_format, $gmepoch);//yesterday 
   } 
   else 
   //if we are in the first day in the year 
   if ($today == 1 && $month == 1) 
   { 
   $yesterday = date ("t", mktime(0,0,0,12,1,($year -1))); 
   if ($forum_date_today == $yesterday && $forum_date_month == 12 && $forum_date_year == ($year-1)) 
      $thetime = $lang['yesterday'] . @gmdate ($time_format, $gmepoch);//yesterday 
   } 

      return ($thetime); 
//end friendly date \\******************************* 

   // return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); 
} 

Verfasst: 31.12.2004 16:52
von mode
Alles klar,

Danke fuer deinen Tipp!

Hab den Mod so gelassen und diese Zeilen eingefuegt. Damit geht es wunderbar :)

Code: Alles auswählen

	$L_Today = $lang['TODAY'];
	$L_Today = $lang['YESTERDAY'];
	$time_format = $lang['TIMEFORMAT'];

Prost Neujahr


Mode