I have read topic from cookbook Setting and maintaining the language in Application (i18n), and it is helpfull. Only it should be tweaked to use _lang from GET instead of POST. That way it colud be possible to save url to page written in any language.
I changed example file components/views/langBox.php to
<?php
$url = '';
echo CHtml::form($url, 'get') ?>
<div id="langdrop">
<?php echo CHtml::dropDownList('_lang', $currentLang, array(
'en_us' => 'English', 'is_is' => 'Icelandic'), array('submit' => '')) ?>
</div>
<?php echo CHtml::endForm()?>
The problem is that normalized $url is appdended _lang after every language switch.
What would be the best solution to obtain valid $url, which is pointing to the current page and have just one _lang=en_us or lang=is_is ?
My solution is to parse CHttpRequest::getQueryString(), remove all previous _lang and append just the current one. It is not very elegant.