Seite 1 von 2

Mehrsprachige Kategorie- und Forentitel

Verfasst: 17.02.2009 01:54
von HJW
Hallo,

damit beim Wechsel der Boardsprache auch die Kategorien und Foren-Titel in der jeweiligen Sprache angezeigt werden, habe ich in den Tamplates {FORUM_NAME} durch die Forenbeschreibung {FORUM_DESC} ersetzt und mit bbcode für jedes Forum eine Sprachvariable definiert. Das funktioniert auch sehr gut. Das Problem, das ich jetzt noch habe ist die Navigationsleiste. Die wird in der functions_display.php zusammengebaut und zwar in dieser Funktion:

Code: Alles auswählen

function generate_forum_nav(&$forum_data)
{
	global $db, $user, $template, $auth;
	global $phpEx, $phpbb_root_path;

	if (!$auth->acl_get('f_list', $forum_data['forum_id']))
	{
		return;
	}

	// Get forum parents
	$forum_parents = get_forum_parents($forum_data);

	// Build navigation links
	if (!empty($forum_parents))
	{
		foreach ($forum_parents as $parent_forum_id => $parent_data)
		{
			list($parent_name, $parent_type) = array_values($parent_data);

			// Skip this parent if the user does not have the permission to view it
			if (!$auth->acl_get('f_list', $parent_forum_id))
			{
				continue;
			}
			$template->assign_block_vars('navlinks', array(
				'S_IS_CAT'		=> ($parent_type == FORUM_CAT) ? true : false,
				'S_IS_LINK'		=> ($parent_type == FORUM_LINK) ? true : false,
				'S_IS_POST'		=> ($parent_type == FORUM_POST) ? true : false,
				'FORUM_NAME'	=> $parent_name,
				'FORUM_ID'		=> $parent_forum_id,
				'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $parent_forum_id))
			);
		}
	}

	$template->assign_block_vars('navlinks', array(
		'S_IS_CAT'		=> ($forum_data['forum_type'] == FORUM_CAT) ? true : false,
		'S_IS_LINK'		=> ($forum_data['forum_type'] == FORUM_LINK) ? true : false,
		'S_IS_POST'		=> ($forum_data['forum_type'] == FORUM_POST) ? true : false,
		'FORUM_NAME'	=> $forum_data['forum_name'],
		'FORUM_DESC'	=> generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options']),
		'FORUM_ID'		=> $forum_data['forum_id'],
		'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data['forum_id']))
	);
	

	$template->assign_vars(array(
		'FORUM_ID' 		=> $forum_data['forum_id'],
		'FORUM_NAME'	=> $forum_data['forum_name'],
		'FORUM_DESC'	=> generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options'])
		)
	);

	return;
}
Hat jemand eine Idee wie ich in dem ersten '$template' block die funktion generate_text_for_display ausführen kann? So wie ich das sehe müssen die Parameter erst durch get_forum_parents übergeben werden. Mit meinen eigenlich nicht vorhandenen php-Kenntnissen komme ich da nicht weiter. Es wäre auch schön wenn man {FORUM_DESC} bis vor dem ersten '<' kürzen könnte.

(Oder gibt es eine einfachere Methode, das Board komplett (bis auf die Beiträge) mehrsprachig zu machen?)

Re: {FORUM_DESC}

Verfasst: 17.02.2009 09:28
von DerPate
Moin,

ist zwar nicht die direkt Antwort auf die Frage zum generate_text_for_display, aber vll hilfts ja. Ich lasse mir Forennamen/Forenbeschreibungen auch mehrsprachig anzeigen. Allerdings hol ich mir die Übersetzung aus einer neu angelegten Datei mit den Sprachvariablen.

Für die Nav-Links kann man ...

Code: Alles auswählen

'FORUM_NAME'   => $parent_name,
mit

Code: Alles auswählen

'FORUM_NAME'   => (isset($user->lang[$parent_name])) ? $user->lang[$parent_name] : $parent_name,
ersetzten.

Und ersetzte

Code: Alles auswählen

'FORUM_NAME'   => $forum_data['forum_name'],
mit

Code: Alles auswählen

'FORUM_NAME'   => (isset($user->lang[$forum_data['forum_name']])) ? $user->lang[$forum_data['forum_name']] : $forum_data['forum_name'],
So wie die Nav-Links geändert wurden, muss nun auch noch die Ausgabe der Überschrift/Beschreibung und der Jumpbox geändert werden.

Nachteil: für jeden mehrsprachigen Titel muss die Datei mit den Sprachvariablen angepasst werden, aber damit kann ich erstmal leben.

Achtung: ist ausm FF zusammengeschrieben, evtl sind Fehler vorhanden, aber grundsätzlich funktioniert das wunderbar.

Mfg

edit: Fehler entfernt

Re: {FORUM_DESC}

Verfasst: 17.02.2009 09:40
von HJW
Hallo,

danke. Ich werde das mal heute abend testen.

Re: {FORUM_DESC}

Verfasst: 17.02.2009 10:27
von nickvergessen
Hier wär sonst ne Variante, die wie bisher diene FORUM_DESC benutzt.
Nachteil: für jedes Forum das angezeigt wird, muss eine SQL gemacht werden.

includes/function_display.php
finde:

Code: Alles auswählen

			// Skip this parent if the user does not have the permission to view it
			if (!$auth->acl_get('f_list', $parent_forum_id))
			{
				continue;
			}
danach einfügen:

Code: Alles auswählen

			// Use forum_desc instead of forum_name in breadcrumbs
			$sql = 'SELECT forum_desc, forum_desc_uid, forum_desc_bitfield, forum_desc_options
				FROM ' . FORUMS_TABLE . '
				WHERE forum_id = ' . $parent_forum_id;
			$result = $db->sql_query($sql);
			$parent_data = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);
finde:

Code: Alles auswählen

				'FORUM_NAME'	=> $parent_name,
ersetze mit:

Code: Alles auswählen

				//'FORUM_NAME'	=> $parent_name,
				'FORUM_NAME'	=> generate_text_for_display($parent_data['forum_desc'], $parent_data['forum_desc_uid'], $parent_data['forum_desc_bitfield'], $parent_data['forum_desc_options']),
finde:

Code: Alles auswählen

		'FORUM_NAME'	=> $forum_data['forum_name'],
ersetze mit:

Code: Alles auswählen

		//'FORUM_NAME'	=> $forum_data['forum_name'],
		'FORUM_NAME'	=> generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options']),

Re: {FORUM_DESC}

Verfasst: 17.02.2009 21:47
von HJW
Hallo,

@nickvergessen:
Danke für den Code, aber ich mach es dann doch mal so wie von DerPate beschrieben.

@DerPate:
Im 2. Code fehlt eine ) hinter ($user->lang[$parent_name] . Vielleicht kannst du das ja noch berichtigen, könnte ja sein, daß es noch jemand gebrauchen kann.

Re: Mehrsprachige Kategorie- und Forentitel

Verfasst: 18.02.2009 18:33
von DerPate
Nachteil: für jeden mehrsprachigen Titel muss die Datei mit den Sprachvariablen angepasst werden, aber damit kann ich erstmal leben.
Da die Anfrage ja schon nach mehrsprachigen Titeln schon mehrfach gab, überleg ich gerade daraus nen kleinen Mod zu basteln. Die Frage ist nur, wie geht man es besten an?

Die Titel in der Datenbank abzulegen fänd ich ein wenig umständlich, weils einfach nutzerabhängig ist, welche Sprachen und wie viele installiert sind. Meine Idee wäre nun eine neue Sprachdatein anzulegen und diese von ACP aus per fwrite zu füllen.

Vorteile? Nachteile? Einwände? Bessere Ideen? Und überhaupt, besteht außer den 2,3 Beiträgen die ich gefunden habe Interesse an sowas?

Re: Mehrsprachige Kategorie- und Forentitel

Verfasst: 18.02.2009 19:20
von HJW
Hallo,

bei mir hat das sehr gut funktioniert, jetzt muß ich "nur" noch die Sprach-Variablen füllen.
Ich sehe da kein Problem, daß die Texte in dem entsprechenden Language-Ordner abgelegt werden. Ich habe da soviel Text für meine eigenen Seiten liegen, da kommt es auf ein paar Foren-Namen nicht an.

Re: Mehrsprachige Kategorie- und Forentitel

Verfasst: 02.11.2010 17:40
von NicoM
Hallo,

danke für die Lösungsvorschläge. Nur habe ich nicht ganz kapiert, was wo geändert werden muss, wenn man die Forentitel mehrsprachig anlegen will.

Könnte bitte jemand zusammenfasssen, was genau zu tun ist? Danke!

Oder gibt es bereits einen MOD für diese Änderungen?

Gruß,
NicoM

Re: Mehrsprachige Kategorie- und Forentitel

Verfasst: 26.08.2012 15:14
von xconnect
Hallo alle zusammen!

Mich interessiert die Lösungsidee von DerPate.

Welche Änderungen müssen durchgeführt werden?
  • Forumname
  • Forumbeschreibung
  • Navlinks
  • Jumpbox (?)
Müssen insgesamt nur folgende Dateien bearbeitet werden?
  • root/includes/function_display.php
  • root/language/XX/common.php
DerPate hat geschrieben:für jeden mehrsprachigen Titel muss die Datei mit den Sprachvariablen angepasst werden
Das verstehe ich nicht. Ein Erklärung wäre nett.

Re: Mehrsprachige Kategorie- und Forentitel

Verfasst: 26.08.2012 17:14
von BNa
Hallo xconnect,

4seven hatte vor zwei Jahren mal ein Projekt gestartet, hiess [DEV] Full Bilingual Board v.0.0.1. Hier konnte man im ACP neben dem Forumnamen, der Forumbeschreibung, uvm. immer zwei Felder ausfüllen, zB. de und en. Die Sprache wurde automatisch detektiert und dem User angezeigt. Die Sprache konnte man ebenso manuell über ein Auswahlfeld umschalten. Auch die Posts konnten zweisprachig verfasst werden. Die Version ist zwar nie öffentlich erschienen, die DEV Version war aber in ein Test Board installiert und funktionierte gut. Mals sehen, ob man da was extrahieren kann.

Gruss, BNa