Home
Download
Add-ons
Help
Forum
Organisation
Project
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
May 24, 2012, 08:36:04 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search:
Advanced search
Interested in joining the WebsiteBaker team?
For more Information read
here
or on our
new website
.
155469
Posts in
21707
Topics by
7732
Members
Latest Member:
DarrellDD
WebsiteBaker Community Forum
Deutsch (German)
Hilfe/Support
(Moderator:
badknight
)
Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
Pages: [
1
]
Go Down
Author
Topic: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren. (Read 1180 times)
CyberDyne
Offline
Posts: 158
Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
on:
November 30, 2008, 12:47:23 PM »
Hallo,
ich habe mal wieder ein Problem mit der Mehrsprachigkeit meiner WB-Präsentation. Seltsamerweise geht die Zuweisung der jeweiligen Sprache (gesetzt im Backend bei den Eigenschaften der Seite), beim Navigieren in der Seite über das Menü verloren. Dies geschieht ebenso, wenn ich mir die Seite aus dem Backend heraus anzeigen lasse. Der Hinweis ?lang=DE ist nicht mehr vorhanden, was nun tragisch ist, da ich News über die jeweilige Landessprache separieren lasse und diese Info dann auch nicht mehr erscheint.
Rufe ich die Seite über den der Templateindex eingefügten Code auf, so wird das Kürzel am Ende der Adresszeile brauv ausgewiesen. Navigiere ich denn weiter über das Menü, verschwindet es wieder.
Bevor ich nun lange Codes und Erklärungen poste, erst mal so eine ungute Ahnung, ob es ev. sein kann, dass WB 2.7 "nachlässig" wird je umfangreicher die Seite ist (6 Sprachen in der geforderten Hirarchie laut Hilfe, sowie mit weiteren Verzweigungen bis in die 4 Unterebene)?
Gruß in den Sonntag,
Klaus
Logged
thorn
Offline
Posts: 980
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #1 on:
November 30, 2008, 05:47:22 PM »
Hallo,
soweit ich weiß, wird das
?lang=XX
nur angehängt, wenn sich die Sprache der Zielseite von der der verlinkenden Seite unterscheidet. Könnte dass das Problem sein?
thorn.
Logged
Projekte
surf-andrea
Offline
Posts: 126
wie bringst du unterschiedliche news für unterschiedliche Sprachen unter?
«
Reply #2 on:
November 30, 2008, 06:29:22 PM »
kannst du mir da kurz eine Erklärung geben?
Danke.
Andi.
Logged
thorn
Offline
Posts: 980
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #3 on:
November 30, 2008, 06:35:39 PM »
Hallo,
Das hier ist was passiert
Code: (/framework/class.frontend.php)
<?php
// Fetch page details
$this
->
page
=
$get_page
->
fetchRow
();
// Check if the page language is also the selected language. If not, send headers again.
if (
$this
->
page
[
'language'
]!=
LANGUAGE
) {
if(isset(
$_SERVER
[
'QUERY_STRING'
]) &&
$_SERVER
[
'QUERY_STRING'
] !=
''
) {
// check if there is an query-string
header
(
'Location: '
.
$this
->
page_link
(
$this
->
page
[
'link'
]).
'?lang='
.
$this
->
page
[
'language'
].
'&'
.
$_SERVER
[
'QUERY_STRING'
]);
} else {
header
(
'Location: '
.
$this
->
page_link
(
$this
->
page
[
'link'
]).
'?lang='
.
$this
->
page
[
'language'
]);
}
exit();
}
?>
Nur wenn die Sprache der aufgerufenen Seite von der bisher benutzen Sprache abweicht wird ?LANG=XX gesetzt.
EDIT: Um das wahrscheinlich von dir gewünschte Ergebnis zu erreichen müsstest du die äussere if-Abfrage entfernen.
thorn.
«
Last Edit: November 30, 2008, 06:39:23 PM by thorn
»
Logged
Projekte
CyberDyne
Offline
Posts: 158
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #4 on:
December 01, 2008, 09:02:22 AM »
Quote from: thorn on November 30, 2008, 06:35:39 PM
Hallo,
Nur wenn die Sprache der aufgerufenen Seite von der bisher benutzen Sprache abweicht wird ?LANG=XX gesetzt.
EDIT: Um das wahrscheinlich von dir gewünschte Ergebnis zu erreichen müsstest du die äussere if-Abfrage entfernen.
thorn.
Hallo,
ja das könnte due Ursache sein, denn ich bewege mich ja innerhalb der selben Sprache. Sobald ich diese wechsel, taucht auch der Anhang ?lang=XX wieder auf.
Ich habe Deinen Hinweis gleich mal umgesetzt und betreffende if Abfrage aus der class.frontend.php entfernt doch der Zusatz ?lang=XX wird trotzdem beim navigieren abgeschnitten. Dein Ansatz ist ein toller Tipp, wird diese Abfrage nach der verwendeten Sprache ev. noch woanders getätigt?
Wünsche allseits guten Start in die Adventszeit,
Klaus
«
Last Edit: December 01, 2008, 09:17:45 AM by CyberDyne
»
Logged
CyberDyne
Offline
Posts: 158
Re: wie bringst du unterschiedliche news für unterschiedliche Sprachen unter?
«
Reply #5 on:
December 01, 2008, 09:47:24 AM »
Quote from: surf-andrea on November 30, 2008, 06:29:22 PM
kannst du mir da kurz eine Erklärung geben?
Danke.
Andi.
Hallo,
eine Erklärung kann ich Dir gerne geben, allerdings sind die sprachenabhängige News noch nicht fertig, bislang kann ich nur zwischen zwei versch. Sprachen unterscheiden, ein Problem, um das ich mich dann nach der ?lang=XX Geschichte kümmern möchte.
Basis ist der Aufruf des Newsblocks wie ihn
Ruud hier beschrieben
hat.
Code:
<?php
$url
=
$_SERVER
[
'REQUEST_URI'
];
if (
function_exists
(
'display_news_items'
))
{
if (
strrpos
(
$url
,
"/en/"
))
{
display_news_items
(
1
,
3
,-
1
,
1
,
"Latest news"
,
"read more"
,
"No news available"
,
false
);
} else {
display_news_items
(
2
,
3
,-
1
,
1
,
"Laatste nieuws"
,
"verder lezen"
,
"geen nieuws beschikbaar"
,
false
);
}
}
?>
Die else-Abfrage habe ich dann um das auch dort beschriebene else if erweitert, um weitere Sprachen anführen zu können.
Code:
<?php
$url
=
$_SERVER
[
'REQUEST_URI'
];
if(
function_exists
(
'display_news_items'
)) {
if (
strrpos
(
$url
,
"deutsch"
))
{
display_news_items
(
5
,
5
,
50
,
1
,
""
,
"weiter lesen ..."
,
"no news avaialbe yet..."
,
false
);
} else if (
strrpos
(
$url
,
"english"
)) {
display_news_items
(
6
,
5
,
50
,
1
,
""
,
"read more ..."
,
"no news avaialbe yet..."
,
false
);
} else if (
strrpos
(
$url
,
"french"
)) {
display_news_items
(
7
,
5
,
50
,
1
,
""
,
"en plus ..."
,
"rien ne va plus!"
,
false
);
}
}
?>
Damit wird wie gesagt auch bereits unterschieden, allerdings nur zwischen deutscher und englischer Sprache. Danach dann will es nicht mehr das else if abarbeiten. Vermutlich muß dies anderes programmiert werden, bin aber leider kein PHP-Profi.
Die mehrsprachige Seite wurde nach den Vorgaben aus der betreffenden Hilfe unterteilt und jeweils auch die zutreffende Sprach in den Seiteneigenschaften gesetzt.
Gruß,
Klaus
«
Last Edit: December 01, 2008, 09:49:05 AM by CyberDyne
»
Logged
surf-andrea
Offline
Posts: 126
das end if am Schluss fehlt oder?
«
Reply #6 on:
December 01, 2008, 10:20:46 PM »
Alternativvorschlag:
Select Case, da kenne ich aber nicht genau den Aufbau.
Logged
CyberDyne
Offline
Posts: 158
Re: das end if am Schluss fehlt oder?
«
Reply #7 on:
December 02, 2008, 11:54:21 AM »
Quote from: surf-andrea on December 01, 2008, 10:20:46 PM
Alternativvorschlag:
Select Case, da kenne ich aber nicht genau den Aufbau.
Hallo,
habe versucht anhand dieses
Beispiels
das else if zu ersetzen, kriegs aber nich hin:
Code:
<?php
if(
function_exists
(
'display_news_items'
)) {
switch (
$_SERVER
[
'REQUEST_URI'
]) {
case
"de"
:
display_news_items
(
5
,
5
,
50
,
1
,
""
,
"weiter lesen ..."
,
"keine aktuellen Nachrichten..."
,
false
);
break;
case
"en"
:
display_news_items
(
5
,
5
,
50
,
1
,
""
,
"read more ..."
,
"no news avaialbe yet..."
,
false
);
break;
case
"fr"
:
display_news_items
(
7
,
5
,
50
,
1
,
""
,
"en plus ..."
,
"rien ne va plus!"
,
false
);
break;
}
}
?>
Könnte sich bitte ein PHP-Profi der Sache annehmen? Das wäre super!!
Gruß,
Klaus
«
Last Edit: December 02, 2008, 11:58:42 AM by CyberDyne
»
Logged
BerndJM
Offline
Posts: 1764
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #8 on:
December 02, 2008, 12:33:47 PM »
Hi Klaus,
das kann so nicht funktionieren, da REQUEST_URI was ganz anderes (z.B.: /home/wb/de/kontakt.php) zurückgibt, als du abprüfst (de - en - fr).
Warum die elseif Geschichte aus dem Posting davor nicht funktioniert ist mir allerdings schleierhaft, sieht von der Syntax eigentlich o.k. aus, evtl. ein Tipfehler bei "french"? Ich verwende
hier
im Prinzip die gleiche Syntax, vielleicht mal vergleichen ...
Grüßle Bernd
«
Last Edit: December 02, 2008, 12:37:31 PM by BerndJM
»
Logged
In theory, there is no difference between theory and practice. But, in practice, there is.
aldus
Offline
Posts: 1238
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #9 on:
December 02, 2008, 01:16:45 PM »
Hallo Klaus
Alternativ könntest Du es auch so lösen, um das nicht gerade konfortable "if-elseif-elseif-endif"
los zu werden ...
Code:
<?php
/**
* @version 0.1.0
* @date 2008-12-02
* @author aldus
* @plattform WB 2.7
* @package WebsiteBaker - Code examples
*
*/
if (
function_exists
(
'display_news_items'
) ) {
$lang
= array (
'deutsch'
=> array (
"weiter lesen ..."
,
"keine aktuellen Nachrichten ..."
),
'english'
=> array (
"read more ..."
,
"no news avaialbe yet..."
),
'france'
=> array (
"en plus ..."
,
"rien ne va plus!"
),
'plattduesk'
=> array (
"mok meer ..."
,
"nix inne tuete - nix los hier!"
),
'austria'
=> array (
"viny fragen"
,
"viny weiss das ..."
)
);
foreach(
$lang
as
$lookup
=>
$value
) {
if (
strrpos
(
$_SERVER
[
'REQUEST_URI'
],
$lookup
) !=
0
) {
display_news_items
(
5
,
5
,
50
,
1
,
""
,
$value
[
0
],
$value
[
1
],
false
);
}
}
}
?>
Untested!
Jetzt brauchst Du nur noch das "$lang"-Array anpassen, erweitern, bzw. wenn sich die
Pfade zu den Sprachen ändern nur noch die //Schlüssel// (rechts) ....
Ebenso brauchst Du nur noch einen Aufruf von "display_news_items" bei Änderungen anzupassen und
nicht 4-6+x Zeilen ...
Gruß
Aldus
Edit: sorry ... war doch noch ein Bug drin ... sollte so nun aber funktionieren ...
«
Last Edit: December 02, 2008, 01:24:21 PM by aldus
»
Logged
aldus
Offline
Posts: 1238
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #10 on:
December 02, 2008, 01:41:39 PM »
Hallo Klaus
nachschlag ... jetzt klappt's auch mit den Pfaden ...
Code:
<?php
/**
* @version 0.1.2
* @date 2008-12-02
* @author aldus
* @plattform WB 2.7
* @package WebsiteBaker - Code examples
*
*/
if (
function_exists
(
'display_news_items'
) ) {
$lang
= array (
'deutsch'
=> array (
"weiter lesen ..."
,
"keine aktuellen Nachrichten ..."
),
'english'
=> array (
"read more ..."
,
"no news avaialbe yet..."
),
'france'
=> array (
"en plus ..."
,
"rien ne va plus!"
),
'plattduesk'
=> array (
"mok meer ..."
,
"nix inne tuete - nix los hier!"
),
'austria'
=> array (
"viny fragen"
,
"viny weiss das ..."
)
);
foreach(
$lang
as
$lookup
=>
$value
) {
if (
strrpos
(
$_SERVER
[
'REQUEST_URI'
],
"/"
.
$lookup
.
"/"
) !=
0
) {
display_news_items
(
5
,
5
,
50
,
1
,
""
,
$value
[
0
],
$value
[
1
],
false
);
}
}
}
?>
Gruß
Aldus
Logged
CyberDyne
Offline
Posts: 158
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #11 on:
December 02, 2008, 02:09:20 PM »
Quote from: BerndJM on December 02, 2008, 12:33:47 PM
Hi Klaus,
das kann so nicht funktionieren, da REQUEST_URI was ganz anderes (z.B.: /home/wb/de/kontakt.php) zurückgibt, als du abprüfst (de - en - fr).
Warum die elseif Geschichte aus dem Posting davor nicht funktioniert ist mir allerdings schleierhaft, sieht von der Syntax eigentlich o.k. aus, evtl. ein Tipfehler bei "french"? Ich verwende
hier
im Prinzip die gleiche Syntax, vielleicht mal vergleichen ...
Grüßle Bernd
Hallo Bernd,
ich habe nun alles noch mal mit der if Abfrage ins Template eingetragen und diese funktioniert, gibt allerdings nicht das gewünschte Ergebnis aus.
Um die Fehlersuche etwas leichter zu gestalten habe ich die Ausgabe der News durch ein einfaches echo ersetzt, funktioniert auch, d.h. der String in der Adresszeile wird korrekt geprüft und schließlich die Meldung "Dies ist XXX" ausgegeben.
Ab der zweiten Sprache wird's aber merkwürdig, denn dann scheint das Ergebnis für den String nur noch Englisch zu sein, mit Ausnahme von Polnisch, da wird dann Deutsch als Ergebnis ausgespuckt.
Hier mal der verwendete Code
Code:
<?php
$url
=
$_SERVER
[
'REQUEST_URI'
];
if(
function_exists
(
'display_news_items'
)) {
if (
strrpos
(
$url
,
"deutsch"
)) {
echo
"Dies ist Deutsch"
;
} else if (
strrpos
(
$url
,
"english"
)) {
echo
"Dies ist Englisch"
;
} else if (
strrpos
(
$url
,
"french"
)) {
echo
"Dies ist Französisch"
;
} else if (
strrpos
(
$url
,
"italy"
)) {
echo
"Dies ist Italienisch"
;
} else if (
strrpos
(
$url
,
"poland"
)) {
echo
"Dies ist Polnisch"
;
} else if (
strrpos
(
$url
,
"russia"
)) {
echo
"Dies ist Russisch"
;
} else if (
strrpos
(
$url
,
"spain"
)) {
echo
"Dies ist Spanisch"
;
}
}
?>
Ich geh mal davon aus, dass wenn die Abfrage für Deutsch und Englisch korrekt erfolgt, die folgenden Sprachen ebenso richtig ausgeführt werden sollten.
Eine seltsame Geschichte, kannst Du Dir da einen Reim drauf machen?
Gruß,
Klaus
Logged
BerndJM
Offline
Posts: 1764
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #12 on:
December 02, 2008, 04:26:54 PM »
Probier's mal mit strpos statt str
r
pos ob's da genau so (falsch) reagiert.
Btw: welche PHP-Version hast du am Start?
Grüßle Bernd
Logged
In theory, there is no difference between theory and practice. But, in practice, there is.
thorn
Offline
Posts: 980
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #13 on:
December 02, 2008, 11:26:50 PM »
Hallo,
Quote from: BerndJM on December 02, 2008, 04:26:54 PM
Btw: welche PHP-Version hast du am Start?
höchstwahrscheinlich php4.
Bitte
http://de.php.net/strrpos
aufmerksam lesen.
-> Findet das letzte Vorkommen
eines Zeichens
innerhalb einer Zeichenkette
(erst ab php5 kann die Funktion auch mit einem String umgehen).
Das erklärt dann auch das Verhalten: Die Routine sucht nicht nach "deutsch", "englisch", "france"...
sondern (mit PHP4) nur nach "d", "e", "f"...
thorn.
Logged
Projekte
BerndJM
Offline
Posts: 1764
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #14 on:
December 03, 2008, 12:02:30 AM »
Danke thorn,
ich hatte da sowas im Hinterkopf, aber vorhin nicht die Zeit es nochmal genau nachzulesen. Liege ich also richtig, daß seine Mimik mit strpos (1r) funktionieren müßte, oder?
Grüßle Bernd
Logged
In theory, there is no difference between theory and practice. But, in practice, there is.
thorn
Offline
Posts: 980
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #15 on:
December 03, 2008, 12:41:02 AM »
ja.
Keine Ahnung warum da diese Inkonsistenz zwischen strpos() und strrpos() ist.
thorn.
Logged
Projekte
CyberDyne
Offline
Posts: 158
Re: Mehrere Sprachen: Zusatz ?lang=DE (FR/ EN/ ES/ etc.) geht verloren.
«
Reply #16 on:
December 03, 2008, 10:07:20 AM »
Quote from: BerndJM on December 02, 2008, 04:26:54 PM
Probier's mal mit strpos statt str
r
pos ob's da genau so (falsch) reagiert.
Btw: welche PHP-Version hast du am Start?
Grüßle Bernd
Hallo,
hatte tatsächlich PHP 4 laufen, war mir gar nicht bewußt! Konnte mit ner .htaccess auf PHP 5 umstellen.
Sodele, nach zwei Tagen Pause fiel mir der Balken im Auge sofort auf, Groß/Kleinschreibung hat die Ausgabe der Gruppen 10 und 11 verhindert. Nun funzt es in allen 6 Sprachen!
Vielen Dank schon für Eure Hilfe!!
Gruß,
Klaus
«
Last Edit: December 06, 2008, 12:05:55 PM by CyberDyne
»
Logged
Pages: [
1
]
Go Up
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Announcements
=> Security Announcements
=> Documentation
=> WebsiteBaker Website Showcase
=> Guest Area & Off-Topic
-----------------------------
English
-----------------------------
=> WebsiteBaker 2.9
===> Announcements
===> Help/Support
=====> Modules / Extensions
===> Suggestions
===> Software bugs
=> Help & Support
=> Modules
=> Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code)
=> jQuery
=> Templates, Menus & Design
=> WebsiteBaker Language Files
=> WebsiteBaker 2.x discussion
=> WebsiteBaker 3
=> Archive (posts up to 2007)
-----------------------------
Deutsch (German)
-----------------------------
=> Ankündigungen
=> WebsiteBaker 2.9
===> Ankündigungen
===> Hilfe/Support
=====> Module / Extensions
===> Vorschläge
===> Softwarefehler
===> Erfahrungs und Testberichte
=> Hilfe/Support
=> Module & Snippets
=> Templates & Design
=> Tutorials
=> jQuery
=> Diskussion über WB
=> Off-Topic
=> Archiv für Themen bis 2007
-----------------------------
Nederlands (Dutch)
-----------------------------
=> Aankondigingen
=> Hulp & Ondersteuning
=> Niet-Terzake (Off Topic)
-----------------------------
Francais (French)
-----------------------------
=> Help/Support
-----------------------------
Italiano (Italian)
-----------------------------
=> Help/Support
-----------------------------
Bakery (WB shop module)
-----------------------------
=> Bakery English
=> Bakery Deutsch
-----------------------------
KeepInTouch (Multi Contact Module)
-----------------------------
=> KeepInTouch English
=> KeepInTouch Deutsch
Loading...