[3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Fragen rund um die Installation, Administration und Benutzung von phpBB 3.1.x und höher und die Konvertierung zu phpBB 3.2.x.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version [3.1.x] oder [3.2.x] angeben.
ZNC
Mitglied
Beiträge: 146
Registriert: 21.05.2014 13:48
Wohnort: Köln

[3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon ZNC » 30.07.2017 18:10

Ich möchte in meinem kopierten prosilver-Style ein Impressum einbinden, das je nach eingestellter Sprache (deutsch oder türkisch) verlinkt und je nach Sprache ein deutsch- oder türkischsprachiges Impressum anzeigt. Diese Methode könnte man grundsätzlich für jede andere mehrsprachige individuelle Seiten anwenden, wenn das Wörtchen "Wenn" nicht wäre.

Hierzu habe ich im Template-Verzeichnis meines Styles zwei HTML-Dateien:
1. impressum_de.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
   <h2>Impressum</h2>
   <p>usw. ...</p>
<!-- INCLUDE overall_footer.html -->

1. impressum_tr.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
   <h2>Künye</h2>
   <p>usw. ...</p>
<!-- INCLUDE overall_footer.html -->


Ich nutze eine Kopie des prosilver-Styles platziere mein Impressum in dem Standard-Template meines Styles overall_header.html folgendermaßen:

Code: Alles auswählen

<a href="http://www.meineseite.de/impressum.php" title="{L_TITEL_IMPRESSUM}">{L_TITEL_IMPRESSUM}</a>


Dann erstelle ich in dem phpBB3-Verzeichnis eine Datei impressum.php:

Code: Alles auswählen

<?php
/**
* @author
* @package {PACKAGENAME}
* @version $Id$
* @copyright
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
/* @ignore */
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin(); // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/meine_sprachvariablen'); // Sprachvariablen aus eigener Sprach Datei laden
page_header($user->lang['TITEL_IMPRESSUM']);
$template->set_filenames(array(
    'body' => 'impressum_' . $user->lang['ISO_SPRACHKENNUNG'] . '.html',
));
page_footer();
?>


Und zu guter Letzt erstelle ich für jede installierte Sprache jeweils im Languages-Verzeichnis
1. phpBB3/languages/de/mods/meine_sprachvariable.php:

Code: Alles auswählen

<?php
/**
* groups [German]
* @author
* @package language
* @version $Id$
* @copyright
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
if (!defined('IN_PHPBB'))
{
    exit;
}
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}
$lang = array_merge($lang, array(
    'ISO_SPRACHKENNUNG' => 'de',
    'TITEL_IMPRESSUM'   => 'Impressum',
));
?>


2. phpBB3/languages/tr/mods/meine_sprachvariable.php:

Code: Alles auswählen

<?php
/**
* groups [German]
* @author
* @package language
* @version $Id$
* @copyright
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
if (!defined('IN_PHPBB'))
{
    exit;
}
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}
$lang = array_merge($lang, array(
    'ISO_SPRACHKENNUNG' => 'tr',
    'TITEL_IMPRESSUM'   => 'Künye',
));
?>


Das alles funktioniert bis darauf, dass der Link aus meinem Forumsverzeichnis anstelle von Impressum TITEL_IMPRESSUM ausgibt.

Bin ich auf der Impressum-Seite, wird der Link korrekt übersetzt - in deutsch mit Impressum und in türkisch mit Künye. Wie kriege ich dies trotzdem hin, ohne die Standard-Sprachdateien zu manipulieren?

.
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)

Benutzeravatar
gn#36
Administrator
Administrator
Beiträge: 9175
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon gn#36 » 31.07.2017 11:52

Der Link wird an einer Stelle angezeigt, wo deine Sprachvariablen nicht geladen werden. Du musst dafür sorgen, dass deine Sprachvariable global verfügbar wird, so dass der Style sie findet. Das geht z.B. mit einer Erweiterung wie in unserer KB beschrieben:

Eigene phpBB Erweiterungen erstellen

Passenderweise ist genau das Beispiel, eine eigene Sprachdatei einzubinden in dem Artikel zu finden: https://www.phpbb.de/kb/ext_erstellen#f ... veraendern

Wenn du es ohne Erweiterung machen willst, dann wird dir nicht viel anderes übrig bleiben, als die Sprachpakete anzupassen und die neue Variable z.B. in die common.php des Sprachpakets zu stecken oder aber die PHP Dateien anzupassen und eine von dir gewählte Sprachdatei immer einzubinden (hier weiß ich gerade auswendig nicht, wo man das am besten einbaut, da gibt's mit Sicherheit mehrere Möglichkeiten).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.

Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 5491
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon Kirk » 31.07.2017 13:33

Du könntest die Ext About Us/Impressum für phpBB 3.1/3.2 von Crizzo nehmen und so verändern:

Öffne: root/ext/crizzo/aboutus/event/listener.php
Finde:

Code: Alles auswählen

'ABOUTUS_ENABLE'   => $this->config['acp_aboutus_enable'],


Danach einfügen:

Code: Alles auswählen

'ABOUTUS_OUTPUT'   => $this->user->lang('ABOUTUS_OUTPUT'),


In den language dateien z.b. root/ext/crizzo/aboutus/language/de/common.php fügst das ein 'ABOUTUS_OUTPUT' => 'deininhalt',
ersetze einfach das hier deininhalt mit dem Inhalt wo du angezeigt haben möchtest.
Eine türkische language Datei ist in dieser EXT bereits vorhanden.
Mit dieser Änderung wird was du im ACP/Erweiterungen/Impressums-Einstellungen in diesem Editor eingibst ignoriert.
In diesen Language Dateien kannst du auch Formatierungen anwenden.

ZNC
Mitglied
Beiträge: 146
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon ZNC » 07.08.2017 08:07

@gn#36, derzeit habe ich die
/forum/phpBB3/language/de/common.php

Code: Alles auswählen

   'ISO_SPRACHCODE'   => 'de',
   'TITEL_IMPRESSUM'         => 'Impressum',
und
/forum/phpBB3/language/tr/common.php

Code: Alles auswählen

   'ISO_SPRACHCODE'   => 'tr',
   'TITEL_IMPRESSUM'         => 'Künye',
ergänzt und dokumentiert, wie auch bei 3.1. Die von Dir genannten Infos lese ich mir durch, danke hierfür.

@Kirk, ich möchte, wie erwähnt, so wenig wie möglich an Extensions einbinden und somit die Kontrolle selber behalten.
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)

Benutzeravatar
Mahony
Ehemaliger
Beiträge: 10999
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: [3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon Mahony » 07.08.2017 08:46

Hallo
Ich würde empfehlen, nur eine impressum.html anzulegen (das erleichtert die spätere Pflege).

Folgender Inhalt sollte dann in die impressum.html

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
   <h2>{L_TITEL_IMPRESSUM}</h2>
   <p>usw. ...</p>
<!-- INCLUDE overall_footer.html -->


Anstelle von

Code: Alles auswählen

<p>usw. ...</p>
in der impressum.html kannst du auch den Text in einer Sprachvariable in die /language/xx/mods/meine_sprachvariable.php packen und sie dann in der impressum.html aufrufen.

Die impressum.php sollte dann so aussehen

Code: Alles auswählen

<?php
/**
* @author
* @package {PACKAGENAME}
* @version $Id$
* @copyright
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
/* @ignore */
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin(); // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/meine_sprachvariable'); // Sprachvariablen aus eigener Sprach Datei laden
page_header($user->lang['TITEL_IMPRESSUM']);
$template->set_filenames(array(
    'body' => 'impressum.html',
));
page_footer();
?>


Dann kannst du auch die Sprachvariablen

Code: Alles auswählen

'ISO_SPRACHCODE'   => 'de',
und

Code: Alles auswählen

'ISO_SPRACHCODE'   => 'tr',
aus der jeweiligen /language/xx/common.php heraus nehmen.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.

ZNC
Mitglied
Beiträge: 146
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] mehrsprachiges Impressum ohne Extension selber einbinden

Beitragvon ZNC » 07.08.2017 10:11

@ Mahony, ja, das wäre auch eine Möglichkeit. Vielen Dank.
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)


Zurück zu „Support-Forum“