xini/silverstripe-localedomains

There is no license information available for the latest version (1.1.0) of this package.

Allows to setup a domain for each language configured and forces translated pages to the domain according to their locale.

Installs: 117

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 0

Type:silverstripe-module

1.1.0 2016-06-10 22:48 UTC

This package is auto-updated.

Last update: 2021-01-26 12:38:03 UTC


README

Introduction

Allows to setup a domain for each language configured and forces translated pages to the domain according to their locale.

Requirements

  • SilverStripe ~3.0
  • Translatable ~1.0

Usage

Add the following entries to your _config.php and configure them with your domains and locales:

LocaleDomains::addLocaleDomain('de_DE', 'www.germandomain.de');
LocaleDomains::addLocaleDomain('en_GB', 'www.englishdomain.com');
LocaleDomains::addLocaleDomain('fr_FR', 'www.frenchdomain.fr');

To get the customised links to the domain according to the locale of the target page, add the following code to your Page.php:

public function Link($action=null) {
	$link = parent::Link($action);
	if($this->hasExtension('Translatable') && $this->hasExtension("LocaleDomainDecorator")){
		// check base url and set localised domain if necessary
		$currHost = Director::protocolAndHost();
		$localeHost = Director::protocol().LocaleDomains::getHostFromLocale($this->Locale);
		if ($currHost != $localeHost) {
			$link = Controller::join_links($localeHost, $link);
		}
	}
	return $link;
}