• GUNgettext 无效


    场景

    根据网上的教程使用GNU-gettext实现多语言, po, mo文件都准备好了, 代码也一毛一样, 但就是无法翻译, 甚是难受啊.

    解决

    最终发现, 无法翻译是因为系统没有进行语言的支持.

    通过命令: locale -a 查看当前系统已经开启的语言支持:

    image-20211122220119533

    如果发现没有你使用的语言, 那么本篇文章就可以帮到你了.

    此时需要安装需要的语言, 通过命令: locale-gen.

    若提示没有locale-gen命令, 先进行安装: apt install locales

    修改文件: /etc/locale.gen 将你需要的语言前面的注释打开, 然后执行命令: locale-gen进行安装, 安装完后在查看一下: locale -a 就会发现已经有了:

    image-20211122220959195

    此时, 网上的例子就能正确翻译了(我使用的 PHP, 其他也是一样的):

    <?php              
    
    // 注意, 这里的语言后面拼接了编码. 不拼也不能翻译. 
    // 不知道网上的教程是怎么成功的, 可能是我环境还有问题
    setlocale(LC_ALL, 'zh_CN.UTF-8');            
    bindtextdomain('test', './locale');            
    textdomain('test');            
    echo gettext('Hello World!');  
    
  • 相关阅读:
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/hujingnb/p/15590663.html
Copyright © 2020-2023  润新知