R – Drupal language negotiation

drupaldrupal-6

I have a multi-language drupal setup (2 languages, english default). I want users to receive always content in the other language (lets say spanish) on initial page request, but keep english as default language for future language switch. So users will be redirected on initial load to site.com/es, but through the language switch will be able to go to site.com/ (which is english).

Any suggestions? Thank you.

(Apache, PHP)

Best Answer

Redirect users using preprocess in template.php file of your theme:
Approximate code:


/**
 * Override or insert variables into the page templates.
 *
 * @param $vars
 *   An array of variables to pass to the theme template.
 * @param $hook
 *   The name of the template being rendered ("page" in this case.)
 */
function THEMENAME_preprocess_page(&$vars, $hook) {
  global $language;
  if ($language->language == 'en') { // Add here some checking for page, see print_r($vars)
    drupal_goto(url().'/es/'.$GET['q']); //goto es version
  }
}
Related Topic