2016-11-21 4 views
0

В моей заявке предоставляется 3 разных языка (Английский, Испанский, Французский). Всякий раз, когда я изменить язык из английского языка на Испанский/Английский на Французский тогда будет преобразовывать десятичные числа от точки до запятой и его создать проблему для меня. так как я могу предотвратить эту проблему или решить эту проблему?Точка преобразования с изменением языка

Мой код преобразования языка кажется, как показано ниже:

function set_lang($lang=FALSE){ 

     $current_locale=$this->CI->session->userdata('user_language'); 
     if(empty($current_locale)){ 
      $current_locale= 'en_US'; 
     } 
    putenv("LANG=$current_locale"); 
    setlocale(LC_ALL, $current_locale.".UTF-8"); 
    setlocale(LC_MESSAGES,$current_locale); 
    setlocale(LC_TIME, $current_locale); 
    setlocale(LC_CTYPE,$current_locale); 
    $domain='messages'; 
    $uri_segment=''; 
    $uri_segment = $this->CI->uri->segments; 
    if(isset($uri_segment[1])){ 
     $filename = getcwd().'/application/modules/user/language/'.$lang.'/LC_MESSAGES/messages.mo'; 
       bindtextdomain(WEBSITE_DOMAIN,getcwd().'/application/modules/'.$uri_segment[1].'/language/'); 
    } 
    bind_textdomain_codeset(WEBSITE_DOMAIN, 'UTF-8'); 
    textdomain(WEBSITE_DOMAIN); 
     return true; 
    } 

Любые идеи? Какие-либо предложения ?

Спасибо всем заблаговременно.

+0

Почему вы хотите, чтобы не изменить его? –

+0

Почему это проблема? –

+0

потому что его не требуется, как моя сумма 0.2, тогда нужно показать, как 0,2 –

ответ

0

Вы можете использовать формат номера php для этого, используйте его следующим образом: number_format ($ number, 2, ',', '');

Подробнее на http://php.net/manual/en/function.number-format.php

+0

Спасибо за ответ, но я уже решил эту проблему с str_replace –

Смежные вопросы