亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1367 | 回復: 6
打印 上一主題 下一主題

gettext無法提取翻譯信息,求助 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-08-09 11:02 |只看該作者 |倒序瀏覽
用glade+anjuta開發(fā),glade畫界面,anjuta就會自動生成main.c callback.c interface.c 和support.c四個c文件,還有其他

我把我的這兩個main。c,callback.c文件貼出來

callback.c

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <gnome.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"


void
on_button1_clicked                     (GtkButton       *button,
                                        gpointer         user_data)
{
char *contp;
contp = gettext("aaa");
GtkWidget *msgbox = gnome_app_new("Hello World", "Hello World");
gnome_app_message (GNOME_APP(msgbox), contp);
}


main.c

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <gnome.h>

#include "interface.h"
#include "support.h"

//#define _(String)  gettext(String)
//#define N_(String)  gettext(String)
//#define _ _(String) (String)
int
main (int argc, char *argv[])
{
  GtkWidget *window1;

#ifdef ENABLE_NLS
  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
  textdomain (GETTEXT_PACKAGE);
#endif

  gnome_program_init (PACKAGE, VERSION, LIBGNOMEUI_MODULE,
                      argc, argv,
                      GNOME_PARAM_APP_DATADIR, PACKAGE_DATA_DIR,
                      NULL);

  /*
   * The following code was added by Glade to create one of each component
   * (except popup menus), just so that you see something after building
   * the project. Delete any components that you don't want shown initially.
   */
  window1 = create_window1 ();
  gtk_widget_show (window1);

  gtk_main ();
  
  setlocale(LC_ALL, "en");
  bindtextdomain("language", "/usr/local/language/share/local/");
  //textdomain("language");
  GtkWidget *msgbox = gnome_app_new("Hello World", "Hello World");
  gnome_app_message (GNOME_APP(msgbox),gettext("Some String"));
  gnome_app_message (GNOME_APP(msgbox),GETTEXT_PACKAGE);
  
// printf(gettext("Some String"));

  return 0;
}

弄好c文件,然后我配置configure安裝在/usr/local/language/(因為我的項目名稱叫做language,所以我在/usr/local/下建立了一個language目錄),然后運行configure,make,make。椋睿螅簦幔欤彀惭b我的程序,然后我再建立/usr/local/language/share/local/en/LC_MESSAGES文件夾,其中l(wèi)ocal/en/LC_MESSAGES這部分是原來沒有的,然后把四個c文件cp到/usr/local/language/share/local/en/LC_MESSAGES,執(zhí)行xgettext -n *.c這時候生成了messages.po文件,po文件內(nèi)容如下:
[root@FC5TEST LC_MESSAGES]# cat messages.po
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-08-09 11:07+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: callbacks.c:17
msgid "aaa"
msgstr "bbb"

#: main.c:48
msgid "Some String"
msgstr "ddddd"

然后我再運行msgfmt messages.po就出現(xiàn)了一個提示信息:
[root@FC5TEST LC_MESSAGES]# msgfmt messages.po
msgfmt: messages.po: warning: Charset "CHARSET" is not a portable encoding name.
                              Message conversion to user's charset might not work.
此時我運行我安裝后的程序,界面上就有一個button,正常運行后就應該彈出一個message,顯示ddddd,然后單擊那個button顯示bbb,但是現(xiàn)在是運行后沒有顯示ddddd,點擊button時候只是彈出了aaa,而不是我要翻譯后的bbb
請各位幫忙,小艾謝謝大家

論壇徽章:
0
2 [報告]
發(fā)表于 2006-08-09 11:43 |只看該作者
操作系統(tǒng)是FC5,我在FC4也試過了,同樣的提示信息,同樣的現(xiàn)象

論壇徽章:
0
3 [報告]
發(fā)表于 2006-08-09 11:52 |只看該作者
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"


這些信息的值都是缺省的,需要修改。如果你的翻譯是中文的,charset建議為utf-8,同時要注意你的整個文件必須與這里的聲明要一致,比如說使用utf-8編碼保存。

論壇徽章:
0
4 [報告]
發(fā)表于 2006-08-09 13:45 |只看該作者
原帖由 limodou 于 2006-8-9 11:52 發(fā)表


這些信息的值都是缺省的,需要修改。如果你的翻譯是中文的,charset建議為utf-8,同時要注意你的整個文件必須與這里的聲明要一致,比如說使用utf-8編碼保存。


1。我想把它變成英文的,或者日文的,那么這個字符集與語言的對應怎么對應?
[root@FC5TEST LC_MESSAGES]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
我把charset變成了en_US.UTF-8,生成mo文件時候還是抱錯
2。還有就是你說那些缺省的部分需要修改,是必須的嗎?有什么用嗎?

論壇徽章:
0
5 [報告]
發(fā)表于 2006-08-09 14:06 |只看該作者
我剛才把上面的charset變成UTF-8了,結(jié)果那個msgfmt沒有問題了,至少沒有提示什么出錯信息
但是程序運行后,并沒有取出那個aaa應該翻譯成的字符串bbb
這個mo文件位置應該在哪里?
我的程序安裝在/usr/local/language/
我那個mo文件放在下面路徑了:
/usr/local/language/share/local/en/LC_MESSAGES/messages.mo
說明一下,local包括local以后都是我自己建立的文件夾,安裝時候沒有
此時,當按鈕單擊后彈出的消息框還是aaa
然后我把這個message.mo放在/usr/share/locale/en/LC_MESSAGES/language.mo
同樣的現(xiàn)象,還是彈出aaa

論壇徽章:
0
6 [報告]
發(fā)表于 2006-08-09 17:13 |只看該作者
看過一些文檔后,我把那個mo文件放到了/usr/share/locale/en/LC_MESSAGES/下面,但是運行時還是原來的aaa,不是下面要替換的字串

論壇徽章:
0
7 [報告]
發(fā)表于 2006-08-10 08:51 |只看該作者
有人用anjuta開發(fā)過嗎?有些資料說anjuta就支持i18n國際化,可是我沒有找到,只是在新建項目的時候有一個gettext的支持,這有什么用呢?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP