how to use gettext in php?

后端 未结 3 1318
执念已碎
执念已碎 2021-01-22 12:59

I have a file dk.po and dk.mo in folder lang in my webdir.

How can I use this file? I have tried all, but I can not get it to work.

<         


        
相关标签:
3条回答
  • 2021-01-22 13:25

    this works for me my file is named messages.mo

    static function initialize_i18n() {
        $locale=App::$locale;        
        $locales_root = App::$root."locale";
        putenv('LANG='.$locale);
        putenv('LANGUAGE='.$locale);
        putenv('LC_ALL='.$locale);    
        putenv('LC_MESSAGES='.$locale); 
        setlocale(LC_ALL, $locale.".utf-8");   
        $domains = glob($locales_root.'/'.$locale.'/LC_MESSAGES/messages-*.mo');
        $current = basename($domains[0],'.mo');
        $timestamp = preg_replace('{messages-}i','',$current);
        bindtextdomain("messages",$locales_root);
        textdomain("messages");
    }    
    
    0 讨论(0)
  • 2021-01-22 13:42

    I would seriously recommend using Zend_Translate for this as you can run into a lot of inconsistencies with locales on various types of systems.

    Docs: http://framework.zend.com/manual/en/zend.translate.using.html

    0 讨论(0)
  • 2021-01-22 13:45

    I am working with this already:

    setlocale(LC_ALL, 'ar_LY.utf8');
    bindtextdomain("trans", $_SERVER["DOCUMENT_ROOT"].'/trans/locale');
    textdomain("trans"); 
    

    the language file path:

    /var/www/trans/locale/ar_LY/LC_MESSAGES/trans.mo
    

    and I think (not sure) that you have to use the same paths!

    0 讨论(0)
提交回复
热议问题