Author Topic: Vlib erweitern  (Read 1364 times)

0 Members and 1 Guest are viewing this topic.

futzinator

  • Guest
Vlib erweitern
on: Fri, 25. March 2005 - 11:15:04
Hi

Ich proggramiere gerade an einem multilangualen CMS. Und ich würde gerne die Variablen für die Sprache gleich im Vlib einbinden. Ich habe mir mal eure Klasse angesehen, aber da müsste ich mich länger einarbeiten. Darum frage ich lieber zuerst euch, ob ihr mir weiterhelfen könnt. ;-)

im System globales Array:

Code: [Select]
outputtest == Dies ist ein Test;nun Möchte ich dass vlib alle Variabeln beim parsen so ersetzt:

zb: Templat-Variable: <tmpl_lang name=test>   wird dann mit "Dies ist ein Test" ersetzt.

Ist das einfach zum realisieren? Kann mir wer helfen.
Ansonsten muss ich immer alles doppelt eingeben.

THX
Last Edit: Sat, 26. March 2005 - 11:33:53 by ClausVB

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Vlib erweitern
Reply #1 on: Sat, 26. March 2005 - 11:31:59
Eine Erweiterung für vlibTemplate wird es nicht geben.

International durchgesetzt haben sich LANG-Dateien, wie beim phpMyAdmin, in denen alle LANG-Variablen gespeichert werden. Diese kann man dann auch mit vlibTemplate benutzen.

Es gibt ein Beispiel, das ich hier im Forum für sister_sourcecode geschrieben habe.

Ein Beispiel für ein Template gibt es auch. Hier ein kleiner Auszug:

Code: [Select]
tr bgcolor=#dededf
  td{tmpl_var name=lang_department}/td
  td{tmpl_var name=form_department} input type=hidden name=form_department_id value={tmpl_var name=form_department_id}/td
/tr
tr bgcolor=#dededf
  td{tmpl_var name=lang_room}/td
  td{tmpl_var name=form_room} input type=hidden name=form_room value={tmpl_var name=form_room}/td
/tr
Ich hoffe, dass hilft Dir.

Gruß
Claus
Last Edit: Sat, 26. March 2005 - 11:33:41 by ClausVB

futzinator

  • Guest
Vlib erweitern
Reply #2 on: Sat, 26. March 2005 - 14:36:29
Hi

Wenn ich dich richtig verstanden habe, machst du es gleich wie ich zur Zeit.

Ich habe auch eine Lang-Datei die ich include und dann einer Templat-Variable zuteile. Aber ich möchte es so machen, dass es alle lang Variabeln gleich im Template parst ohne dass ich es vorher in php einer Variael zuteile.

so eine Langdatei sieh so aus:
output["test"] == "Dies ist ein Test";

oder:
output["test"] = "This is a test";

Und da dachte ich mir vielleicht kann mas so machen, dass wenn man im template {tmpl_lang name=test} schreibt es dann mit der jeweiligen Sprache ersetzt wird.
Das würde enorm an Arbeit sparen ;-)

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Vlib erweitern
Reply #3 on: Sat, 26. March 2005 - 17:33:51
Dann musst Du vlibTemplate selbst umschreiben. Ich habe damals 30 Templates mit LANG-Variablen ausgestattet. Das war nach ca. 40 Minuten erledigt. Copy&Paste ist da eine große Hilfe.

Ich meine mit Copy&Paste 40 Mal
Code: [Select]
tmpl-setVarlang_uname, lang_uname;
tmpl-setVarlang_department, lang_department;
tmpl-setVarlang_room, lang_room;
tmpl-setVar, ;
tmpl-setVar, ;
tmpl-setVar, ;
zu generieren, dauert noch nicht mal 30 Sekunden. Templates und LANG-Datei musst Du sowieso erstellen. Bei einem Array kann man vielleicht sogar mit FOREACH arbeiten.

Das Umschreiben und Testen von vlibTemplate würde (mit ziemlicher Sicherheit) länger dauern. Ich werde es auf jeden Fall nicht machen.

Gruß
Claus
Last Edit: Sat, 26. March 2005 - 17:34:47 by ClausVB

futzinator

  • Guest
Vlib erweitern
Reply #4 on: Sat, 26. March 2005 - 20:18:51
ok danke, dann mach ichs so weiter

Guest

  • Guest
Vlib erweitern
Reply #5 on: Thu, 12. May 2005 - 01:24:28
Die Antwort ist was später, aber egal.

Warum so schwer?

Man braucht nichtmal 40min und wenig copy&paste.
Du schreibst dir einfach ne Funktion dazu.

Datei index.php:
Code: [Select]
clTPL = new vlibTemplateht.html;

clTPL = setLanguageclTPL;

Datei: language.php:
Code: [Select]
function setLanguageobj {
  obj-setVardepartment,_GLOBASdep;
  ...

  return obj;
}


Man kann das auch schöner machen. ;)

Gast

  • Guest
Vlib erweitern
Reply #6 on: Thu, 08. September 2005 - 01:35:39
Quote
Warum so schwer?
Frage ich mich auch.

Denn wenn man der setVar()-Methode ein Array mit Werten übergibt, werden die alle als Variablen dem Template zugewiesen:

Code: [Select]
lang = arraytitle=Das ist der Titel,text=Ein langer Erklärtext;

vlib-setVarlang;
Und schon kann man im Template die Variablen title und text verwenden.

Wenn man sich also in einem Language-File ein Array mit den einzelnen Sprachvarianten baut, und auch hinsichtlich der Variablenbezeichner geeignete Namensräume konstruiert, damit man mit den normalen Variablen nicht in Konflikt gerät, kann man einfach das Array an das Template durchreichen und erledigt so alles auf einen Schlag.

Alternativ kann man natürlich auch drüber nachdenken, sprachabhängige Templates zu basteln. ;)
Last Edit: Sun, 27. November 2005 - 22:01:09 by ClausVB