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

解决

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

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

GUN-gettext 无效

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

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

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

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

GUN-gettext 无效

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

<?php              

// 注意, 这里的语言后面拼接了编码. 不拼也不能翻译. 
// 不知道网上的教程是怎么成功的, 可能是我环境还有问题
setlocale(LC_ALL, 'zh_CN.UTF-8');            
bindtextdomain('test', './locale');            
textdomain('test');            
echo gettext('Hello World!');  

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
  • 2021-06-28
猜你喜欢
  • 2021-06-25
  • 2021-07-10
  • 2021-08-03
  • 2021-07-07
  • 2021-09-11
  • 2021-08-18
相关资源
相似解决方案