Difference between #6 and #7 of
Manage (Target) Language in Multilingual Applications + A Language Selector Widget (i18n)

Changes

Title unchanged

Manage (Target) Language in Multilingual Applications + A Language Selector Widget (i18n)

Category unchanged

Tutorials

Yii version unchanged

Tags unchanged

i18n, language, multilanguage, session, cookie, Widgets, behavior, event handler

Content changed

If you haven case of a multilingual application, you have to provide the usone might consider with a mreans to select/change the language, and you have to manage the application language in the background.
 
 
Here's my way of doing this (see also this [post](http://www.yiiframework.com/wiki/26/setting-and-maintaining-the-language-in-application-i18n/ "Setting Language") for an alternative):
 
 
- Provide a language selector in the header of each page using a custom widget.
 
- When a language is selected, save it in the Session and in a Cookie.
 
- Every time a page/url is requested, check if the
sonable approach to store the preferred language of the user in a session variable, and after that, every time a page is requested, to check this session variable and render the page in the indicated language.
 
This tutorial shows a Yii-way of doing this. 
 
<br>We implement an event handler for the _onBeginRequest_ event; as the name of the event suggests, this event handler will be called at the beginning of each request, so its a good place to check whether a
language is provided (via POSTpost, session or cookie) and set the application language accordingly.
 
<br>For this,We also implement an event handler for the 'onBeginRequest' event. As the name of the event suggests, this event handler then will be called on the beginning of every request. 
 
 
 simple Language-Selector Widget, which can render the language options as ajax-links or as a drop-down list. 
 
 
See also this [post](http://www.yiiframework.com/wiki/26/setting-and-maintaining-the-language-in-application-i18n/ "Setting Language") for an alternative.
 
 
#### 
_Why is it necessary to set the application language for every request?_
<br>--->The requested page will be shown in the _target language_ of the application, which can be set/get via `Yii::app()->language`.
<br>--->If this property is not set explicitly, Yii assumes it to be equal to the _source language_ of the application, which can be set/get via `Yii::app()->sourceLanguage` and defaults to `'en_us'`.
<br>--->These properties can also be set in the main config file, like
<br>`'sourceLanguage'=>'en',`
<br>`'language'=>'de',`
[...]
9 0
19 followers
Viewed: 50 583 times
Version: 1.1
Category: Tutorials
Written by: c@cba
Last updated by: c@cba
Created on: Dec 25, 2011
Last updated: 12 years ago
Update Article

Revisions

View all history