gywx 发表于 2002-9-29 09:35:57

有关Po文件的制作!(它说只有版主才能回复主题,只能在新写个帖子!

谢谢你的回复!!!而且说的也非常详细!!!
但目前还有一个问题:
我看了一下解开的源码目录,的确是有一个po的目录,在这个目录中有以下目录和文件:

CVS --| Entries
             | Repository
             | Root
   Makefile
   Makefile.am
   Makefile.in

我该如何生成你说的name.pot文件呢?不好意思,你能再讲讲吗?谢谢!!!

mozilla 发表于 2002-9-29 10:41:52

哇,这个目录等于是空的,一个po文件也没有,那个pot文件一般是源码自带的(如果该软件支持多语言的话),然后根据pot文件做成各种语言的po文件.如果没有po或pot文件,那你就要手动提取源码里要翻译的字符串,如果源码很大,那工作量就太大了.还有你那个软件是否支持多语言???你看看源码里的要显示在软件界面上的字符串,如果字符串是以这种形式存在_("just a test"),那该软件应该是支持多语言的.你就把_( )里的字符串找出来做个po文件就行了.你可以写个程序,提取这些字符串.

gywx 发表于 2002-9-29 13:37:17

现在网上有没有指导性的资料可以使用!

现在网上有没有这方面的资料(指导性)和程序可以使用!
setlocale()究竟是什么东西啊?怎么才能设置啊?
我在网上看到于明鉴的一篇文章http://www.opencjk.org/~yumj/i18n.html
在信息的国际化小节中有写道关于制作Po文件,这些对我又用吗?看完之后,我该怎样去使用!

谢谢!!!

mozilla 发表于 2002-9-29 13:56:08

如果你那个源码没什么机密可言,你给我,我给你看看.
http://www.opencjk.org/~yumj/i18n.html 里提到用xgettext来提取
要翻译的字符串,我试了一下,不是很好用,他会把源码里的所有字符串
都提取出来.

setlocale()是软件本地化要用到的一个函数.如果你那个软件支持本地化,
应该会用到这个函数.你只管做po就行了,不用管setlocale(),如果软件不
支持本地化,做po也是白做.

mozilla 发表于 2002-9-29 13:57:50

论坛有问题

mozilla 发表于 2002-9-29 14:37:32

(这只是个回复测试)

mozilla 发表于 2002-9-29 14:57:58

just a test

mozilla 发表于 2002-9-29 14:58:49

test

gywx 发表于 2002-9-29 17:33:15

情况是这样的!

Mozilla兄,我给你发信了!请查收!
[email protected]
这是我的邮箱,你可以和我联系!

谢谢!!!

llc 发表于 2002-9-29 17:52:16

非常感谢mozilla朋友的回答,公社里关于编程的高手还很少,欢迎你以后常来逛逛,帮有需要的朋友解答一些问题!

mozilla 发表于 2002-9-29 17:53:22

xgettext用法:
建一个目录,比如potest

把源码里的所有.c,.cpp,.h,.hpp(反正是源码文件)都拷贝到potest目录里

进入potest目录

执行:   xgettext -a -o name.po *.*

这样在potest目录里就应该有一个name.po文件,这文件里面提取
了很多字符串,其中可能大部分是不用翻译的.你把你公司的那个软件打开,
看看界面上有哪些字符串汉化,然后到po文件里找相应的字符串,并翻译.

注意:如果界面上有一个字符串是Test,其中T字母下面有下横线(我在这里没法
做下横线),那么在po文件里他对应的字符串应该是"_Test",也就是T字母前面
有一个下横杠.

这是个比较笨的方法.因为我不知道你那个软件的实际情况,所以只能这样.

如果那软件的源码并不多,你可以手动把_("xxxxxxxxxx")或N_("xxxxxxxxxxx')里的
字符串提取出来,写到po文件里(那些xxxxxxxxx就是你要提取的字符串).

gywx 发表于 2002-10-14 14:19:50

谢谢!谢谢!!!

谢谢你的帮助!
谢谢你的帮助!!!

gywx 发表于 2002-10-15 15:53:39

mozilla兄,又有新的问题出现了!!!

我用xgettext把程序中的字符串提取出来之后!并翻译完成。我想看看翻译的效果,于是按照网上所说的用
msgfmt -o prog.gmo prog.po
系统告诉我说:
msgfmt: prog.po:warning:Charset "CHARSET" is not a portable encoding name. Message conversion to user's charset might not work.
我打开po文件发现:是这样的
----------------------------------
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-09-30 15:51+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
----------------------------------
我将CHARSET改成GB2312,Ok 这次成功!
把.gmo安装到
               /usr/share/locale/zh_CN/LC_MESSAGES/
之後,就名改为 prog.mo
运行程序,哇噻,界面上翻译过的地方全是方框!!!我以为是CHARSET的问题,又将它改成iso-8859-1 ,但还是不行!

请你再次帮忙,谢谢!!!

mozilla 发表于 2002-10-15 17:07:42

你的其他中文界面的程序显示正常吗?
你用什么linux?

gywx 发表于 2002-10-15 18:33:37

其它的正常啊!


我用的是RH7。3 ,系统内其他的软件正常啊!!!
页: [1] 2
查看完整版本: 有关Po文件的制作!(它说只有版主才能回复主题,只能在新写个帖子!