Mehrsprachige Kategorie- und Forentitel

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Mehrsprachige Kategorie- und Forentitel

Beitrag 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?)
Zuletzt geändert von HJW am 17.02.2009 21:49, insgesamt 1-mal geändert.
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Re: {FORUM_DESC}

Beitrag 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
Zuletzt geändert von DerPate am 18.02.2009 08:14, insgesamt 1-mal geändert.
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: {FORUM_DESC}

Beitrag von HJW »

Hallo,

danke. Ich werde das mal heute abend testen.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: {FORUM_DESC}

Beitrag 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']),
kein Support per PN
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: {FORUM_DESC}

Beitrag 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.
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Re: Mehrsprachige Kategorie- und Forentitel

Beitrag 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?
HJW
Mitglied
Beiträge: 1302
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Mehrsprachige Kategorie- und Forentitel

Beitrag 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.
Benutzeravatar
NicoM
Mitglied
Beiträge: 487
Registriert: 15.10.2010 13:35
Wohnort: Rheinland-Pfalz
Kontaktdaten:

Re: Mehrsprachige Kategorie- und Forentitel

Beitrag 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
Nico
Benutzeravatar
xconnect
Mitglied
Beiträge: 277
Registriert: 19.03.2009 15:43
Wohnort: Berlin
Kontaktdaten:

Re: Mehrsprachige Kategorie- und Forentitel

Beitrag 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.
Wie immer... liebe Grüße
Nicolas Lehmann (xconnect)
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Mehrsprachige Kategorie- und Forentitel

Beitrag 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
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“