[erledigt]phpbb sprachzuweisung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

[erledigt]phpbb sprachzuweisung

Beitrag von Ambience »

Hallo,

also ich sitze hier gerade vor einem Problem. Will mein Gästebuch auf sprachdateien und templatesystem umbauen.

Nun häng ich aber bei den sprachdateien.

Wo wird in phpBB die sprache aus der datenbank geholt? Ich nehme an functions.php habe dort aber nichts gefunden und/oder bin zu blöd.

und wie funktioniert das, das man auf anderen seiten wie z.b. faq die lang_faq hat?

Aber ich denke ich war nur irgendwie ein wenig zu blöd richtig zu suchen.

ps. Nehme meine Inspiration von phpBB^^
Zuletzt geändert von Ambience am 18.11.2006 21:14, insgesamt 2-mal geändert.
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

Die Sprache kommt nicht aus der Datenbank, sondern aus lang_*.php. Diese Dateien sind einfacher PHP-Code, deswegen die Endung, mit einem assoziativen Array (Name als Index, kein Integer). Diese Dateien werden mittels des PHP-Konstrukts include() inkludiert, womit dir dieses As-Array im Code zur Verfügung steht. Anstatt von echo "Hallo Welt"; schreibst du nun eben echo $lang["Hello_World"]; weil du in der lang_*.php geschrieben hast $lang["Hello_World"] = "Hallo Welt";

Das ganze findest du nicht in functions.php. sondern im common.php, IIRC
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

alternative möglichkeiten wären defines (performance) bzw. gettext (bessere i8n) - in bezug auf templating ist imho smarty eine gute wahl.
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Beitrag von Ambience »

nein, ich mein das anders.

also in der datenbank steht:

default_lang und als wert hat das z.b. german

dann werden ja aus der language/lang_german/lang_main.php die sachen geholt. oder so in der richtung.

Nun ich möchte gerne wissen, wo das genau ist. also auf der faq seite wird ja eine andere lang_* datei benutzt als auf der index.

Meine genaue Frage wäre:
Wo wird zum ersten mal die sprache geholt. also aus der datenbank in der common. wo werden dann die dateien geincludet`? und wie läuft das mit der faq seite, das da die lang_faq.php geholt wird?

evtl. hab ich mich jetzt ein wenig besser ausgedrückt.

ok, habs nun selber gefunden:

Code: Alles auswählen

//
// Load the appropriate faq file
//
if( isset($HTTP_GET_VARS['mode']) )
{
	switch( $HTTP_GET_VARS['mode'] )
	{
		case 'bbcode':
			$lang_file = 'lang_bbcode';
			$l_title = $lang['BBCode_guide'];
			break;
		default:
			$lang_file = 'lang_faq';
			$l_title = $lang['FAQ'];
			break;
	}
}
else
{
	$lang_file = 'lang_faq';
	$l_title = $lang['FAQ'];
}
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/' . $lang_file . '.' . $phpEx);
aber wo wird in der index.php die sprache geholt?
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Jan500 »

hi

in der inculdes/functions.php

die function init_userprefs()

für die faq ist dieser code verantwortlich in der faq.php
//
// Load the appropriate faq file
//
if( isset($HTTP_GET_VARS['mode']) )
{
switch( $HTTP_GET_VARS['mode'] )
{
case 'bbcode':
$lang_file = 'lang_bbcode';
$l_title = $lang['BBCode_guide'];
break;
default:
$lang_file = 'lang_faq';
$l_title = $lang['FAQ'];
break;
}
}
else
{
$lang_file = 'lang_faq';
$l_title = $lang['FAQ'];
}
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/' . $lang_file . '.' . $phpEx);
gruß jan
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Beitrag von Ambience »

vielen dank. dann habe ich wohl falsch gesucht. hatte sowas in der art wie setup_lang gesucht. gibt ja auch eine setup_style function.

Danke
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

functions.php > function init_userprefs()

Code: Alles auswählen

function init_userprefs($userdata)
{
	global $board_config, $theme, $images;
	global $template, $lang, $phpEx, $phpbb_root_path, $db;
	global $nav_links;

	if ( $userdata['user_id'] != ANONYMOUS )
	{
		if ( !empty($userdata['user_lang']))
		{
			$default_lang = phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'");
		}

	}
	else
	{
		$default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
	}

	$board_config['default_lang'] = $default_lang;

	include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);

	if ( defined('IN_ADMIN') )
	{
		if( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx)) )
		{
			$board_config['default_lang'] = 'english';
		}

		include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx);
	}


	return;
}
Die funktion hab ich der Übersicht halber gekürzt...

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Beitrag von Ambience »

danke

so hab mal ein wenig rumgespielt:

Code: Alles auswählen

function setup_guestbook()
{
  global $greatbook_config, $greatbook_root_path, $phpEx;
  
  $default_lang = $greatbook_config['language'];
  
  if (!file_exists($greatbook_root_path . 'language/' . $default_lang . '/lang_main.' . $phpEx))
  {
    //
    // alternate language for guestbook
    //
    $default_lang = 'de';
  }
  
  if (!file_exists($greatbook_root_path . 'language/' . $default_lang . '/lang_main.' . $phpEx))
  {
    die('Keine valide language datei gefunden');
  }
  
  include($greatbook_root_path . 'language/' . $default_lang . '/lang_main.' . $phpEx);
}
ehm ja. Wie komm ich jetzt auserhalb dieser funktion an meine language variablen?
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Beitrag von Ambience »

also ich meine ich hab das wie bei phpbb... aber trotzdem komme ich nicht an $lang['Index'] heran. was läuft an meiner funktion den falsch, was in der von Olli´s nicht so ist?
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Normalerweise müsste das so funktionieren.. evt. mal $lang mit in die globals aufnehmen

Code: Alles auswählen

global $greatbook_config, $greatbook_root_path, $phpEx, $lang;
Antworten

Zurück zu „Coding & Technik“