[solved] Shop: Wie Sprach-Templates aktivieren?

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
santscho
Posts: 1368
Joined: Mon 2. Apr 2007, 08:56
Location: Singapore
Contact:

[solved] Shop: Wie Sprach-Templates aktivieren?

Post by santscho » Sun 28. Sep 2014, 20:17

Betreibe phpwcms in den Sprachen DE, EN und FR. Dazu benutze ich diese Sprach-Umschaltung:

Code: Select all

<a href="index.php?home-d&lang=de" class="ym-button ym-xsmall">DE</a><a href="home-f&lang=fr.html" class="ym-button ym-xsmall">FR</a><a href="home-e&lang=en.html" class="ym-button ym-xsmall">EN</a>
Wie kann ich den Shop dazu bringen, die entsprechenden Shop-Templates zu verwenden (de.html, fr.html, en.html)?
Last edited by santscho on Mon 29. Sep 2014, 11:58, edited 1 time in total.
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org

User avatar
update
Moderator
Posts: 6394
Joined: Mon 10. Jan 2005, 17:29
Location: germany / outdoor

Re: Shop: Wie Sprach-Templates aktivieren?

Post by update » Sun 28. Sep 2014, 21:42

wie wäre es mit der Änderung der Document Language? Schon probiert? :oops:
It's mostly all about webdesign, logo design, new and old pages refresh, print BUT slowly switching to be supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.

User avatar
santscho
Posts: 1368
Joined: Mon 2. Apr 2007, 08:56
Location: Singapore
Contact:

Re: Shop: Wie Sprach-Templates aktivieren?

Post by santscho » Sun 28. Sep 2014, 21:45

Verstehe nicht was Du meinst, Claus. :?:

EDIT:
Meinst Du das...?

Code: Select all

<html lang="de">
EDIT 2:
Ja, wenn ich in der conf.inc.php die sprache auf "en" wechsle, wird der Shop in Englisch dargestellt. Das heisst also, dass phpwcms bei einem Sprachwechsel auch die doc-Language dynamisch umstellen sollte? Aber wie?
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org

User avatar
Oliver Georgi
Site Admin
Posts: 9560
Joined: Fri 3. Oct 2003, 22:22
Location: Moscow, Russia
Contact:

Re: Shop: Wie Sprach-Templates aktivieren?

Post by Oliver Georgi » Mon 29. Sep 2014, 08:25

So mittels Frontend Init:

Code: Select all

<?php

// Define some general language specifics

/**
 * language setting based on site tree
 * $phpwcms['allowed_lang'] = array('en', 'de', 'fr', 'es');
 * - DE
 * - EN
 * - FR
 * - ES
 * ...
 */
$phpwcms['id_lang'] = array(
	//	ID		LANG
		1	=>	'en',
		2	=>	'de' //,
	//	3	=>	'fr' ...
);
$phpwcms['lang_id'] = array_flip($phpwcms['id_lang']);

// Redirect to default language entry based on browser
if(!isset($LEVEL_ID[1])) {

	// try to link user to correct language
	$phpwcms['DOCTYPE_LANG'] = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)) : $phpwcms['default_lang'];
	if(!isset($phpwcms['lang_id'][$phpwcms['DOCTYPE_LANG']])) {
		$phpwcms['DOCTYPE_LANG'] = $phpwcms['default_lang'];
	}

	// Get current alias
	$pagelink = empty($content['struct'][ $phpwcms['lang_id'][$phpwcms['DOCTYPE_LANG']] ]['acat_alias']) ? 'id='.$phpwcms['lang_id'][$phpwcms['DOCTYPE_LANG']] : $content['struct'][ $phpwcms['lang_id'][$phpwcms['DOCTYPE_LANG']] ]['acat_alias'];
	$pagelink = $phpwcms["rewrite_url"] ? $pagelink . PHPWCMS_REWRITE_EXT : 'index.php?' . $pagelink;

	// Redirect
	headerRedirect(PHPWCMS_URL . $pagelink, 301);

} elseif(isset($phpwcms['id_lang'][ $LEVEL_ID[1] ])) {

	$phpwcms['DOCTYPE_LANG'] = $phpwcms['default_lang'] = $phpwcms['id_lang'][ $LEVEL_ID[1] ];

} else {

	$phpwcms['DOCTYPE_LANG'] = $phpwcms['default_lang'];

}


?>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон

User avatar
santscho
Posts: 1368
Joined: Mon 2. Apr 2007, 08:56
Location: Singapore
Contact:

Re: Shop: Wie Sprach-Templates aktivieren?

Post by santscho » Mon 29. Sep 2014, 10:10

Hallo Oliver

Ich habe folgende Struktur:
-------------
ID1 = DEUTSCH
ID2 = FRANCAIS
ID3 = ENGLISH
ID4 = SHOP -->> Hier müssen die Shop-Sprachtemplates gezogen werden
-------------

Sobald ich mich in der Strukturebene 1, 2 oder 3 befinde, wird im Browser schön gerendert: <html lang="de">, <html lang="fr"> oder <html lang="en">. Wunderbar!

Doch der Shop (ID4) wird immer als <html lang="de"> ausgegeben. Dies ist die Standard-Definition in der conf.inc.php. Der Shop nimmt jetzt immer das "de.html"


Settings der conf.inc.php:

Code: Select all

$phpwcms['allowed_lang']      = array('de','fr','en');
$phpwcms['DOCTYPE_LANG']      = ' ';
$phpwcms['default_lang']      = 'de';
Dein Frontend Init Script habe ich angepasst:

Code: Select all

$phpwcms['id_lang'] = array(
   //   ID      LANG
	1   =>   'de',
	2   =>   'fr',
	3   =>   'en'
);
Für den Sprachenwechsel habe ich das folgende Frontend-Renderscript im Einsatz:

Code: Select all

<?php

// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------

	
// set allowed languages
// set $phpwcms['allowed_lang'] in conf.inc.php
// $phpwcms['allowed_lang']      = array('en', 'de', 'fr', 'es');
$language_default			= 'de';
$language_current			= $language_default;
$language_cookie_duration	= 60*60*24*365; // 1 year

if(isset($_GET['lang'])) {
	$language_current = strtolower( substr($_GET['lang'], 0, 2) );
	$_SESSION['phpwcmsFrontendLanguage'] = $language_current;
	setcookie('phpwcmsFrontendLanguage', $language_current, time()+$language_cookie_duration, '/' );
} elseif(isset($_SESSION['phpwcmsFrontendLanguage'])) {
	$language_current	= $_SESSION['phpwcmsFrontendLanguage'];
} elseif(isset($_COOKIE['phpwcmsFrontendLanguage'])) {
	$language_current	= $_COOKIE['phpwcmsFrontendLanguage'];
}
if(!in_array($language_current, $phpwcms['allowed_lang'])) {
	$language_current	= $language_default;
	$_SESSION['phpwcmsFrontendLanguage'] = $language_current;
	setcookie('phpwcmsFrontendLanguage', $language_current, time()+$language_cookie_duration, '/' );
}

// init language replacements
$language_regexp 		= array( 'search' => array(), 'replace' => array() );

// set all language replacements now
foreach($phpwcms['allowed_lang'] as $lang) {

	$language_regexp['search'][$lang]	= '/\['.$lang.'\](.*?)\[\/'.$lang.'\]/is';
	$language_regexp['replace'][$lang]	= $lang == $language_current ? '$1' : '';

}

$content['all']			= preg_replace($language_regexp['search'], $language_regexp['replace'], $content['all']);
$content["pagetitle"]	= preg_replace($language_regexp['search'], $language_regexp['replace'], $content["pagetitle"]);

?>
Sollte ich grundsätzlich Sprachen anders managen als ich das bisher gemacht habe? Bisher habe ich ja 3 Sprachbäume im Einsatz. Ich habe gesehen, dass man für Seitenstruktur und Artikel auch Sprachen definieren kann. Und im Shop kann man auch die Produkte den Sprachen zuweisen. Was kannst Du mir empfehlen?
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org

User avatar
Oliver Georgi
Site Admin
Posts: 9560
Joined: Fri 3. Oct 2003, 22:22
Location: Moscow, Russia
Contact:

Re: Shop: Wie Sprach-Templates aktivieren?

Post by Oliver Georgi » Mon 29. Sep 2014, 10:29

Der Shop sollte nicht separat geführt werden, sondern immer einen Bereich innerhalb der jeweiligen Sprache haben. Denn jede Sprache hat separaten Warenkorb usw.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон

User avatar
santscho
Posts: 1368
Joined: Mon 2. Apr 2007, 08:56
Location: Singapore
Contact:

Re: Shop: Wie Sprach-Templates aktivieren?

Post by santscho » Mon 29. Sep 2014, 10:33

Ja, Oliver! Ich hatte gerade in den Shoptemplates gesehen, dass man Shop-ID und auch die Warenkorb-ID im Shop-Template individuell definieren kann:

Code: Select all

; Overwrites the backend settings
; shop_url =
; cart_url =
Also...
1. Shop-Ebene in DE, FR und EN
2. Shop-Templates für DE, FR und EN anpassen (mit den jeweiligen Anpassungen der shop_url und cart_url)

Werde das mal so ausprobieren.
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org

User avatar
santscho
Posts: 1368
Joined: Mon 2. Apr 2007, 08:56
Location: Singapore
Contact:

Re: [solved] Shop: Wie Sprach-Templates aktivieren?

Post by santscho » Mon 29. Sep 2014, 11:59

Jeder Sprachbaum hat jetzt eine eigene Shop-Kategorie. Die Shop-Templates werden jetzt problemlos übernommen. Danke!
Schon Konfuzius sagte: "Sei kein YAML-Lappen". YAML-phpwcms-Integration auf http://www.yaml.phpwcms.org

Post Reply