1.  gettext 下载地址https://nchc.dl.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4.exe

2. 代码中使用安装后的头文件和库文件:

(1)头文件

(2)  库文件

(3)libintl.lib 库依赖一些dll文件,需要把需要的dll文件拷到项目目录下:

3. 项目中使用的代码

(1)代码 (代码页名称:DesignPattern.cpp)

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <locale.h>
#include <libintl.h>
#define _(STRING) gettext(STRING)using namespace std;int main()
{setlocale(LC_ALL, "en_US"); // 设置使用环境变量的默认地域,中国bindtextdomain("DesignPattern", "locale"); // 设置mo文件名称,设置mo文件所在目录textdomain("DesignPattern");printf(_("Error en los parametros de entrada.\n"));printf(_("Uso: ./sumatorio [Max num] [Threads]\n"));getchar();return 0;
}

(2)说明:

1. "DesignPattern"为生成的mo文件名称;

2. “locale” 为mo文件所在的目录:

项目文件里新建locale文件夹,将下图的目录结构复制过去并将mo文件放到对应的目录中;

gettext要求mo文件所在路径要符合它的规则,每种语言在不同的固定路径下:

附注:

4. 我理解的gettext 使用方式

(1)我们根据它的接口将需要国际化的字符串包含起来;

(2)getext读取代码文件中的被接口包含的字符串生成po文件,我们把po文件的对应字符串进行翻译,然后gettext再将po文件转成mo文件,最终根据语言区域,将字符串转成当地的语言;

5. 文件生成步骤:

(1)在cmd中使用语句 (xgettext.exe -k_ -o DesignPattern.po DesignPattern.cpp) 生成.po文件;

生成的po文件中有

"Content-Type: text/plain; charset=CHARSET\n"

msgid "Error en los parametros de entrada.\n"
msgstr ""
将CHARSET 改为UTF-8;

msgid 代表原先代码里的字符串;msgstr 里需要自己写上需要翻译成的字符串;

(2) 在cmd中使用语句 (msgfmt -o DesignPattern.mo DesignPattern.po) 生成.mo文件;

(3)将生成的mo文件放在固定的文件夹下( locale/zh_CN/LC_MESSAGES文件夹下);

(4)运行程序,控制台会显示自己填写的翻译内容;

使用 GNU gettext 实现国际化相关推荐

  1. java gnu gettext_多国语言解决方案gnu.gettext + poedit

    1.工具简介 1.1.关于i18n i18n其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数是"国际化"的简称. i10n为资源本地化 ...

  2. java file gettext_避免使用.properties文件GNU Gettext Java

    首先,我的问题类似于这两个问题: >我想使用GNU Gettext实用程序对我的应用程序进行国际化.我设法通过使用正确的键值对创建一个translations.properties文件来使其工作 ...

  3. python:gettext --- 多语种国际化服务

    python:gettext --- 多语种国际化服务 GNU gettext API 基于类的 API NullTranslations 类 GNUTranslations 类 Solaris 消息 ...

  4. c语言gettext的头文件,C语言中用GNU gettext实现本地化

    首先要确认GNU gettext已经被安装. 写一个示例程序 gettext_test.c: #include #include #include #define _(string) gettext( ...

  5. GNU gettext

    Frequently Asked Questions for GNU gettext Questions General Where is the mailing list?     Where is ...

  6. 第十五章:国际化和本地化-gettext:消息编目-转换工作流概述

    第15章:国际化和本地化 15.1 gettext:消息编目 gettext模块提供了一个纯Python实现,与GNU gettext库兼容,用于完成消息转换和编目管理.利用Python源代码发布版提 ...

  7. GNU/Linux上程序的国际化和本地化(I18N I10N)

    [目录] 0. forward 1. i18n and l10n introduction 2. gettext and intltool introduction 3. building a i18 ...

  8. Python中国际化(i18n)完整指南

    这是一个完整的指南,展示了如何为一个Python应用程序进行国际化(i18n).当我在handroll项目中添加i18n时,我很难找到支持其他语言的明确建议.这是我个人的一点经验,解释了我是如何做到这 ...

  9. wxWidgets:支持国际化

    wxWidgets:支持国际化 wxWidgets:支持国际化 入门 翻译目录中的内容 开始翻译成新语言 使用最新的字符串更新更新现有翻译 数据文件组织 将其放入您的应用程序中 wxWidgets:支 ...

最新文章

  1. java何时支持await,内存-为什么Java等待这么长时间才能运行垃圾回收器?
  2. 管理文库]我喜欢的10个经典管理学定律点评
  3. 【Android 异步操作】线程池 ( 线程池 execute 方法源码解析 )
  4. tensorflow 1.0 学习:模型的保存与恢复(Saver)
  5. css x轴不滚动_泡沫轴滚动放松是什么原理:你并不了解泡沫轴
  6. 割裂的前端工程师--- 2017年前端生态窥探
  7. 将DataFrame某列中的空值填充为0
  8. 解决CesiumForUnreal加入CesiumSunSky并调整设置后场景仍然纯白的问题
  9. 什么pdf转换成word转换器在线好
  10. P5167 xtq的神笔
  11. 叉积 微分 恒等式_不等式(O):常见符号及恒等式
  12. java面试全套清单_Java 全套面试题 PDF 下载
  13. Tomcat : 修改Tomcat端口号
  14. 安全产品的核心逻辑-杀毒软件
  15. 3.5Bootstrap组件篇之导航条
  16. 被称为世上最经典的24句话
  17. MySQL 常用命令速查表:日常开发、求职面试必备良方!
  18. Xcode 9 下为适配 iPhoneX 导致对 iOS 10 不兼容问题
  19. 如何使用码云高校版批改学生作业? | 码云高校版最佳实践
  20. 键盘快捷键大全 - Mac 技巧

热门文章

  1. nacos 一直访问本地地址
  2. 小程序和html5开发的差异
  3. 大数据Hadoop入门教程 | (一)概论
  4. linux bash 漏洞修复方法
  5. 酷狗音乐动态壁纸脱离酷狗音乐独立运行
  6. Flink SQL:Queries(Joins)
  7. 继电器rc吸收电路取值_RC吸收电路的参数选取
  8. shadow acne(阴影失真)和peter panning(阴影悬浮)
  9. cass块参照怎么改颜色_【干货】CASS自定义图斑填充技巧
  10. 程序员应了解的那些事(4)求递归算法的时间复杂度