免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1706 | 回复: 2
打印 上一主题 下一主题

Anjuta 和国际化编程设置- -出现问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-10 12:28 |只看该作者 |倒序浏览
用Anjuta可以工程创建精灵可以方便的生成一个工程,虽然不一定要用anjuta来编程(本人使用Emacs),但是也可以稍微利用一下它这个工程创建精灵的作用。
选择支持本地语言可以让工程创建时增加一个setup-gettext脚本,运行后会提示:
autopoint --force
autopoint: *** Missing version: please specify in configure.in through a line 'AM_GNU_GETTEXT_VERSION(x.yy.zz)' the gettext version the package is using
autopoint: *** Stop.

编辑一下configure.in 加入自己的gettext 的version信息。我的是AM_GNU_GETTEXT_VERSION("0.15")
dnl Languages which your application supports
ALL_LINGUAS=""
AM_GLIB_GNU_GETTEXT

如果需要加入zh_CN的支持
就改成 ALL_LINGUAS="zh_CN"
我习惯改成AM_GNU_GETTEXT

另外在最后在AC_OUTPUT 下加上 intl/Makefile
还要编辑Makefile.am在SUBDIRS里加上intl

编辑完后运行 setup-gettext 脚本。
拷贝生成一堆东西过来。比如m4目录和intl目录。

图形编程的时候要这样:
先给一个函数方便大家:
static void
setup_i18n (void)
{
gtk_set_locale ();
bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (PACKAGE, "UTF-8");
textdomain (PACKAGE);
}

在主程进入时调用一下。

程序里还可以声明一句这个:
#define _(String) gettext(String)
#define gettext_noop(String) (String)

然后把需要翻译的字符串都如下面这样写:
gtk_window_set_title(GTK_WINDOW(opwin),_("General Options"));

程序写差不多了进入po目录
运行make update-po
如果报错说需要Changelog啥的就touch一个出来。没什么影响。
po目录下就会有一个pot文件,名称就是你的工程名字。
我们把这个pot文件复制成zh_CN.po
然后编辑它,补全所有的头信息。
最关键的是Charset,写charset=UTF-8。
然后开始翻译了。

注意这个po文件的编码一定要是UTF-8。
可以使用leafpad之类的编辑器存程UTF-8 编码的文件。

然后在po里面make一下就生成了一个gmo文件。
最后make install你的软件
运行一下,可以看到你的翻译信息在图形界面上显示了。
大功告成。
********************************************************
问题:这是一篇原文,但是我按照上面的说明,在po文件夹中执行make update-po时候报错
错误消息如下:
  [root@FC5TEST po]# make update-mo
make: *** No rule to make target `Makevars', needed by `Makefile'.  Stop.

什么原因呢?

论坛徽章:
0
2 [报告]
发表于 2006-08-10 17:28 |只看该作者
我把那个intl/Makefile改成intl/Makefile。in就生成了pot文件,但是下一步是用make想生成gmo文件时候报错,说:Nothing to be done for 'a11'

论坛徽章:
0
3 [报告]
发表于 2006-08-11 15:06 |只看该作者
现在情况是这样的,如果按照文档作修改,configure。in,Makefile。am,那么在po文件夹用make update-po就会提示什么没有生成Makevars的Makefile规则之类的,如果什么都不修改,直接建立项目后,然后再po文件夹用make update-po就可以生成一个pot文件,当然pot是后缀,然后再我把这个pot拷贝一份叫做zh_CN。po,然后编辑里面msgstr,就是被翻译部分,保存后执行make命令,此时报错为:
nothing to be done for 'all'
各位,有什么高招马?
帮忙看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP