У меня есть сценарий, который, хотя и имеет возможность многоязычности, спроектирован таким образом, что для всех пользователей может быть установлен только один язык, у меня есть несколько файлов json с переведенными сообщениями, и я могу выбрать только один language.
Выбранный язык затем записывается в БД, и к нему обращается вспомогательный файл:
if ( ! function_exists('get_phrase'))
{
function get_phrase($phrase = '') {
$CI =& get_instance();
$CI->load->database();
$language_code = $CI->db->get_where('settings' , array('key' => 'language'))->row()->value;
$key = strtolower(preg_replace('/\s+/', '_', $phrase));
$langArray = openJSONFile($language_code);
if (array_key_exists($key, $langArray)) {
} else {
$langArray[$key] = ucfirst(str_replace('_', ' ', $key));
$jsonData = json_encode($langArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
file_put_contents(APPPATH.'language/'.$language_code.'.json', stripslashes($jsonData));
}
return $langArray[$key];
}
Мне нужна помощь, так это способ для пользователя выбрать желаемый язык, и этот выбор будет сохранен в сеансе, чтобы разные пользователи могли использовать разные языки.
Я не разбираюсь в CodeIgniter, поэтому пошаговые инструкции по изменениям и расположению файлов, которые нужно изменить, будут оценен.
Я провел некоторые исследования по основному c многоязыковой поддержке CodeIgniter, но все они основаны на другом подходе, который используется в этом скрипте, с использованием хуков и каталогов для языков.