Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >gettext msgfmt安装及po/mo文件编译转换

gettext msgfmt安装及po/mo文件编译转换

作者头像
德顺
发布于 2020-10-16 02:49:29
发布于 2020-10-16 02:49:29
3.1K00
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:0
代码可运行

最近在研究 Typecho 的多语言切换(自动翻译)问题,官方也有提供翻译语言包

但是有个问题,官方提供的翻译文件都是 .po 文件,我试了一下 Typecho 并不支持 .po 文件,放入指定文件夹后不显示,没有任何效果。

有人说是正式版 Typecho 不支持 .po 文件,开发版支持,但我用的就是开发版。

那只能把 .po 文件编译一下,整成 .mo 文件就行了。

这里需要 gettext 的 msgfmt 。

安装 gettext :

这里以 CentOS 为例,其他平台安装命令放在最后面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install -y gettext

如果您的系统不支持 sudo 命令,需要安装 sudo:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install sudo

文件转换:

然后执行转换命令,将 .po 文件转换成 .mo 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msgfmt -o /langs/languages-master/en_US.mo /langs/languages-master/en_US.po
#msgfmt -o 新文件 源文件

 注意顺序,不然会报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msgfmt: error while opening "/langs/languages-master/ja_JP_.mo" for reading: No such file or directory

更多 msgfmt 命令可以参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msgfmt --help

通过包管理器安装GNU gettext:

操作系统

包管理器

安装命令

Windows

scoop

scoop install gettext

macOS

HomeBrew

brew install gettext

GNU/Linux

LinuxBrew

brew install gettext

Debian GNU/LinuxUbuntuUbuntu KylinTails LinuxKali LinuxMX LinuxLinux MintDeepinantiXKDE neonPop!_OSZorin OSelementaryOSPCLinuxOS

apt

sudo apt-get install -y gettext

CentOS

yum

sudo yum install -y gettext

FedoraMageia

dnf

sudo dnf install -y gettext

openSUSE

zypper

sudo zypper install -y gettext-tools gettext-runtime

Alpine Linux

apk

sudo apk add gettext

Arch LinuxArcoLinuxManjaro Linux

pacman

sudo pacman -Syyu --noconfirmsudo pacman -S    --noconfirm gettext

Gentoo Linux

Portage

sudo emerge gettext

未经允许不得转载:w3h5 » gettext msgfmt安装及po/mo文件编译转换

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Typecho配置多国语支持,检查客户端语言自动切换翻译
Typecho 原生自带了翻译功能,但不支持随客户端语言自动切换。 我们可以通过获取客户端语言,替换原生翻译功能所调用的翻译文件,来实现自动切换翻译。
德顺
2020/10/23
2.4K0
Linux 各发行版安装 ping 命令指南
ping 是网络诊断中最常用的命令之一,用于测试网络连接和延迟。不同的 Linux 发行版安装 ping 命令的方法略有不同。本文将详细介绍主流 Linux 发行版的安装方法。
洛秋_
2024/12/17
4440
【译】5个对Linux新手来说最好的包管理器
译者按:作为Linux新手来说,选择一个Linux发行版、熟悉Linux系统,无论做什么都离不开软件的安装与卸载。那么,软件包管理器的相关知识就显得非常重要了。下面,我们就一起来看看这5大最适合新手的
小小科
2018/05/04
1.7K0
【译】5个对Linux新手来说最好的包管理器
怎么通过命令的形式列出各个linux系统已经安装的软件包?
使用过linux系统的运维应该都有在上面安装过软件包,有时候我们需要查询即将要安装的包有没有在这个系统上已经安装,如果不先查一下,或多或少会出现问题,比如版本不一致等等。
网络技术联盟站
2021/09/24
9.1K0
怎么通过命令的形式列出各个linux系统已经安装的软件包?
一条命令行打包一个网页为html 文件
这个工具不仅保存目标文档,还嵌入了 CSS、图像和 JavaScript 资源,生成一个单一的 HTML5 文档。与传统的“另存为”功能不同,Monolith 能够将所有资源嵌入为数据 URL,从而使浏览器在没有网络连接的情况下也能准确渲染保存的页面。
大侠之运维
2025/01/14
1970
Mac OS下包管理器Homebrew的安装与使用
Mac OS X是基于Unix的,它可以使用非常多Linux平台上开源的优秀工具,比如wget,比如dos2unix脚本工具等。 但是OS X系统本身却缺少Linux下得包管理器。比如Fedora的yum与dnf,比如Ubuntu的apt-get,比如ArchLinux的Pacman等。 于是这些优秀的开源软件在Mac上的安装只能通过下载源码,编译,安装,配置环境变量的步骤来完成安装。对于大部分的软件,在安装过程中是需要很多的依赖库的,手动去解决这些依赖库是十分痛苦的事情。包管理器干的就是这样的事情:解决软件安装过程中的依赖关系。 有一个开源的项目叫Homebrew,完美解决了Mac OS X上没有包管理器的尴尬。 Homebrew的安装与使用
用户1065635
2019/03/21
2.4K0
Anbox:在 Linux 上运行 Android 应用程序的简单方式
Anbox 是 “Android in a box” 的缩写。Anbox 是一个基于容器的方法,可以在普通的 GNU/Linux 系统上启动完整的 Android 系统。
用户8639654
2021/09/23
5.7K0
python国际化(i18n)和中英文切
Python通过gettext模块支持国际化(i18n),可以实现程序的多语言界面的支持,下面是我的多语言支持实现:
py3study
2020/01/06
1.3K0
如何搜索一个包是否在你的 Linux 发行版中
在某些情况下,如果你不知道确切的包名称或者你想搜索某些包,那么你可以在发行版的包管理器的帮助下轻松搜索该包。搜索会自动包括已安装和可用的包。结果的格式取决于选项。如果你的查询没有输出任何信息,那么意味着没有匹配条件的包。这可以通过发行版的包管理器的各种选项来完成。我已经在本文中添加了所有可能的选项,你可以选择最好的和最合适你的选项。
用户1880875
2021/09/23
1.4K0
多语言中的 .POT .PO .MO 和 xgettext
如果你了解过 WordPress 的多语言,你就会发现关于这块的知识点中,会时不时的出现, .po .pot .mo 这类的文件。
上山打老虎了
2022/06/15
1.9K0
多语言中的 .POT .PO .MO 和 xgettext
怎样才能让 Linux 文档的颜色高亮?
我们可以在 Linux 和类 Unix 系统(如 FreeBSD 或 macOS)上安装 pinfo。
杰哥的IT之旅
2022/09/02
1.2K0
怎样才能让 Linux 文档的颜色高亮?
如何在 Linux 上安装/卸载一个文件中列出的软件包?
在某些情况下,你可能想要将一个服务器上的软件包列表安装到另一个服务器上。例如,你已经在服务器 A 上安装了 15 个软件包并且这些软件包也需要被安装到服务器 B、服务器 C 上等等。
用户8639654
2021/09/23
2.7K0
如何在Linux中安装Microsoft Edge浏览器
首先,从Microsoft Edge Inside网站下载.deb或.rpm文件,它将Microsoft仓库添加到系统中,这将自动使Microsoft Edge保持最新版本。
用户7639835
2021/12/03
3.7K0
python gettext使用
2.从源代码中抽取需要国际化的文本消息,并转换创建.pot文件, 可以使用的工具为pygettext.py 或者GNU工具 xgettext
py3study
2020/01/03
1.6K0
【CentOS】:软件包管理
On Linux, software is typically built as a package, distributed through repositories, and managed on the end-user’s system through package managers. Each Linux system typically contains thousands of packages, many of which are required dependencies for other packages.
WEBJ2EE
2021/09/02
1.4K0
【CentOS】:软件包管理
怎样在Linux中用一个命令升级全部软件
此命令仅升级使用 APT 包管理器安装的应用程序。你有可能使用 cargo、pip、npm、snap 、flatpak 或 Linuxbrew 包管理器安装了其他软件。你需要使用相应的包管理器才能使它们全部更新。
用户4988376
2021/07/21
1.3K0
善用开源,无GUI的磁盘管理小工具
系统用久了,占用磁盘会越来越多. 以至于到后面你都不知道究竟是什么东西占用了这么多磁盘空间.
御剑
2024/02/26
1K0
善用开源,无GUI的磁盘管理小工具
如何在 Linux 上安装、配置 NTP 服务器和客户端?
你也许听说过这个词很多次或者你可能已经在使用它了。在这篇文章中我将会清晰的告诉你 NTP 服务器和客户端的安装。
用户4988085
2021/09/14
8.7K0
kubectl命令使用(一)
在Linux上安装Kubectl,您可以使用包管理器,如apt-get,yum或dnf。例如,如果您使用的是Ubuntu Linux,请使用以下命令安装Kubectl:
玖叁叁
2023/04/29
7190
git 入门教程之 git bash 竟然不支持 tree 命令
git bash 是 Windows 用户安装 git 时默认安装的命令行工具,不仅界面漂亮功能也不错,大多数情况下可以替代 Windows 原生的 cmd 命令行.
雪之梦技术驿站
2019/05/14
2.9K0
git 入门教程之 git bash 竟然不支持 tree 命令
相关推荐
Typecho配置多国语支持,检查客户端语言自动切换翻译
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验