Seite 1 von 1
Sprachdateien nachrüsten?
Verfasst: 12.12.2004 13:24
von Werbung
Hi..
ich hab einige mods, wo die Sprachen Englisch und Deutsch gleichzeitig stehen.
ich möchte gerne, diese erweitern und eine eigene Sprachdatei (lang_xyz.php) erstellen bzw nachrüsten, damit in diesen Mod in der jeweiligen Borad sprache entscheint und nicht zwei gleichzeitig.
Wie mach ich das und wo und was muss ich schreiben, ersetzen damit ich dass machen kann?
Ich wär euch dankbar, wenn ihr mir eine schön ausfühlriche antwort schreiben würdet. Danke im vorraus schon mal.
MfG Werbung
Verfasst: 12.12.2004 14:12
von Nico Haase
du müsstest den gesamten mod anpassen und genau nachlesen, an welcher stelle warum welche sprache erscheint. grundsätzlich würde ich das aber eher dem autoren des mods schreiben, damit gemeinsam eine bessere lösung gefunden werden kann
Verfasst: 12.12.2004 16:00
von Werbung
ja schon... aber die autoren haben keine zeit bzw. keine lust... das noch zu verbessern.
und so bleibt mir ja nur die eine möglichkeit, selbst eine sprachdatei dafür zu schreiben.
wie geht das?
Verfasst: 12.12.2004 16:11
von Nico Haase
das kommt auf den mod drauf an. normalerweise erstellst du eine sprachdatei, die im ordner /language/lang_$sprache/ gespeichert wird. dort kommen - so wie in der lang_main.php - alle sprachausgaben in einem array sortiert rein. im mod selbst brauchst du dann einen include dieser sprachdatei, der könnte bspw. so aussehen:
Code: Alles auswählen
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_mod.' . $phpEx)) )
{
include($phpbb_root_path . 'language/lang_english/lang_mod.' . $phpEx);
} else
{
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_mod.' . $phpEx);
}
also: includiere die englische version (die auf jeden fall vorhanden sein sollte!), wenn die version in der sprache, in der auch das forum verfügbar ist, nicht existiert. dann guckst du durch den mod und extrahierst alle ausgaben, wie "nachrichtentext" oder "bbcode in diesem beitrag deaktivieren". für jeden suchst du dir eine griffige bezeichnung in englisch und packst dann die array-elemente alle in die lang_$mod.php. in anderen sprachen änderst du dann nur den inhalt, nicht die array-bezeichner, denn diese setzt du jeweils anstelle der vorher dort stehenden direkten ausgaben in die mod-datei.
du siehst: da haste dir was vorgenommen....

Verfasst: 12.12.2004 22:09
von Werbung
ok,... mal schauen ob ich das jetzt richtig verstanden habe.
Also, wenn in der Datei so was steht:
Code: Alles auswählen
<td class="row2"><span class="gensmall">Morgen</span></td>
und ich diese "Morgen" ein mal in Deutsch und Englisch haben will. Muss ich mir nen eigenen lang_test.php in lang_english und lang_german erstellen und in dieser dann
"$lang['Morgen] = 'Morgen';" - im lang_german/lang_test-php
"$lang['Morgen] = 'Tomorrow' - im lang_english/lang_test.php reinschreiben.
und da wo "<td class="row2"><span class="gensmall">Morgen</span>" steht muss ich dann nur das mit dem hier ersetzen oder?
Code: Alles auswählen
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_test.' . $phpEx)) )
{
include($phpbb_root_path . 'language/lang_english/lang_test.' . $phpEx);
} else
{
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_test.' . $phpEx);
}
eingeben oder wie?
Verfasst: 12.12.2004 22:11
von Werbung
Aaaaaaaaaaaaaaaaaa
sorry, ich hab jetzt voll den überblick verlohren...
geht das vielleicht noch etwas einfacher?
kannst du mir nicht einen Beispielt zeigen, damit ich ein Muster hab, wie und was ich machen muss und wie es ausschaue sollte.
ich wäre dir dankbar. thx
Verfasst: 12.12.2004 23:05
von saerdnaer
du musst, wie du schon geschrieben hast die variabeln in der lang_main.php hinzufügen.
dann musst du schauen in welcher php die tpl datei die du ändern willst steht.
dort musst du dann irgendwo nach $template->assign_vars(array( für jede lanuage variable folgende zeile einfügen 'L_XYZ' => $lang['xyz'],
dann kannst du in der template datei den text, in deinem fall Morgen mit {L_XYZ} ersetzen und schon hast du was du willst.
ah
Verfasst: 13.12.2004 16:07
von Werbung
ok,... also,...
Code: Alles auswählen
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Konnte UID nicht bestimmen!<br><br>Could not get user id!', '', __LINE__, __FILE__, $sql);
}
ich will "'Konnte UID nicht bestimmen!<br><br>Could not get user id!" das hier in die lang_main.php einfügen.
ich muss ein $lang... in lang_main.php erstellen. nur ein beispiel in german
german/lang_main.php
$lang['UID']='Konnte UID nicht bestimmen'
und da in der .php datei, wo der "Code" steht muss ich anstelle von "'Konnte UID nicht bestimmen!<br><br>Could not get user id!" Nun einfach nur das hier damit ersetzen
$lang['UID'] eingeben und in der datei eine include/german/lang_main.php einfügen damit er die lang_main.php einfügt oder?
stimmt das so oder hab ich was vergessen?
Verfasst: 14.12.2004 13:32
von saerdnaer
in der php datei ja.
ah