פνϤ¿첽ˤĤ

                                                          2001-08-31
                                        Hiroki ATA<hata@kondara.org>


1. webalizer¿첽

  ͥ[Kondara-devel.ja:02723] Re:[put] gd-1.8.3-1kΤȤۤۤ뤵
Ƥˤʤޤˤ褦ˡwebalizer.confˤơϸλ
Ǥ褦˥ѥåƤޤ
  ޤߤΥѥåǤϡܸΥեȤꤷ˱Ѹʤ¾
θβʸɽ뤿ᡢjapanese, chinese, russian ϲ
ɽ˱ѸʸѤ褦˻ꤷƤޤrussian˴ؤƤϡʸ
Ƥ褦ʤΤǡѸɽ褦ˤƤޤñ˻δ
˥եȤ̵Ȼפޤ¿бΥեʣ
ˤʤ뤿ᡢϸޤ


2. ѥåŬ

  ʲΤ褦ˤСѤǤȻפޤrpmե뤬ޤ
ΤǡrpmѤڤǤ礦

  ѥåϰʲΥեˤʤޤ

  webalizer-2.01-06-multilingual-logs.patch

  ܸ첽ѥåŬѤˡΥեŬѤޤ

  $ patch -p1 < webalizer-2.01-06-multilingual-logs.patch

ǡconfigureޤ

  $ ./configure --prefix=/usr --with-gd --with-language=japanese

ˡwebalizer_lang.hȤե뤬langβΥե򥷥
å󥯤ǻꤷƤ뤿ᡢ
webalizer_lang_multilingual.h򥳥ԡƤѤޤ

  $ rm webalizer_lang.h
  $ cp webalizer_lang_multilingual.h webalizer_lang.h

ξ֤ǡmake¹Ԥޤ

  $ make

󥹥ȡ륹ץȤϽ񤤤Ƥʤᡢ̾Υե򥤥󥹥ȡ
塢{prefix}/lib/webalizer_langȤǥ쥯ȥ˸Ѷͭ饤
򥳥ԡޤ

  # mkdir {prefix}/lib/webalizer_lang
  # cp -d webalizer_lang/lib* {prefix}/lib/webalizer_lang

ǡ󥹥ȡ꤬ʤСLogLanguagesλ꤬ͭˤʤ
ޤɬפ˱webalizer.confLogLanguagesͤɲäС
ɤȻפޤ


3. 

  webalizer.conf ɲäȤLogLanguagesȤѥ᡼ɲ
ޤ˽ϤɬפʸɲäƤޤɲòǽʸ
webalizerեΤˤʤޤǽʸϡlang
ǥ쥯ȥˤĥҤʸбޤ

)
------ webalizer.conf () ------
LogLanguages japanese english korean
------ webalizer.conf (ޤ) ------

) ʣθ꤬äƤ⡢1Ԥǽ񤭹Ǥ


  ǲǽʸϰʲΤΤȤʤޤ

    ǽʸ     եĥ
    ------------------ --------------
    catalan            .ca
    czech              .cs
    danish             .da
    german             .de
    greek              .el
    english            .en
    spanish            .es
    estonian           .et
    finnish            .fi
    french             .fr
    hungarian          .hu
    indonesian         .id
    italian            .it
    japanese           .ja
    korean             .ko
    dutch              .nl
    polish             .po
    portuguese         .pt
    portuguese_brazil  .pt_BR
    romanian           .ro
    russian            .ru
    slovak             .sk
    slovene            .sl
    swedish            .sv
    turkish            .tr
    chinese            .zh

  ޤ󥹥ȡconfigure--with-languageǻꤷǥ
եȤθ줬ꤵޤǥեȤǽϤindex.htmlʤɤ
Ϥǡꤵ졢¹Υå⤳θɽޤ(
âjapanese  english ΤߤˤʤäƤ뤫⤷ޤ)

  θLogLanguagesǻꤷϡǥեȤǤνϤ˲ä
ƥϤޤκݤˡ֥饦ñʤ륽ɽ
褦ʾϡHTTP¦ǡΥեγĥҤθΥɥ
ȤؤƤʤɤλ򤹤褦ˤƤ㤨СApache
ѤƤ褦ʾϡʲhttpd.confɲäɬפ
ޤ(ʲenʤɤĤϡ餫ꤵƤ
ޤ)

ʲΤ褦ƤɲäɤǤhttp-webalizer.conf 
http.conf Include ǥ쥯ƥ֤ǻꤹ褦ˤΤɤ
פޤ

------ httpd.confɲä() ------
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it

AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage zh .zh
AddLanguage ca .ca
AddLanguage cs .cs
AddLanguage nl .nl
AddLanguage ge .ge
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt .pt_BR
AddLanguage ro .ro
AddLanguage ru .ru
AddLanguage sk .sk
AddLanguage es .es
AddLanguage sv .sv
------ httpd.confɲä(ޤ) ------
  

  ʹߤƤϡѥåδñʥˤʤޤ(ver 1.30.04 
줿ƤǤŪˤѤäƤޤ󤬡ۤʤǽ
ޤ)


4. ѥåδŪʹ¤

  ꥸʥΥץबñʸǤθͤƤ뤿ᡢΤޤ
1줷ѤǤʤΤᡢ¤ΤƤΥå򰷤
ޤ϶ͭ饤֥ƸΥ饤֥뤫ꤷ
ϡͭ饤֥Ѥ뤳Ȥˤޤ

  ͭ饤֥ѤȤƤϡlangʲˤ
webalizer_lang.<language>ե򤽤ΤޤѤǤͤ
ΥեϸˤꡢƽľΤϤʤ˼
ˤʤ뤿ᡢ򤱤̣⤢ꡢΥ꥽˶ͭ饤֥
ޤΥ饤֥ϡlibwebalizer_lang.<language>.so
Ȥե{prefix}/lib/webalizer_langȤǥ쥯ȥ֤
Ƥޤ

  Τζͭ饤֥ɤꡢͭ饤֥꤫ʸ
Τϡwebalizer_lang_manager.h, webalizer_lang_manager.c 
Ƥؿ̤ƹԤޤϡꥸʥʸ֤
ơǥեȤꤵƤѤꡢθѤ
ꤷơʸޤ

  δؿޥ graph.h, graph.c, webalizer.h, webalizer.c
ʸ򻲾ȤƤսбơ֤褦ˤƤޤ

  ǥեȤʸѤʤ褦㳰ŪʽƤսϡ
ˡ̤˽вɽơܸǯȷν֤ۤʤ뤿᤽
бѤʸenglish褹ʤɤޤϡ
θΤνäƤޤ


5. ʸ줿ͭ饤֥

  langǥ쥯ȥˤwebalizer_lang.<language>إåեȤ
Ƥ줾θ줫ǡФδؿwebalizer_lang_shared.h
webalizer_lang_shared.cԤäƤޤ
  Ƥ᥽åɤϡwebalizer_lang_shared.hƤޤ


int init_lang_module ();
  ͭ饤֥ޤ˽λϡʳ
ο۾ｪλϡ0֤ޤ

void fini_lang_module ();
  ͭ饤֥Υ꥽ʤɤޤץꥱλ˸
ӽФޤ

const char* get_msg (const char* pKey);
  msg_hogehogeθͭͤޤpKey˻ꤹʸϡ
"msg_hogehoge"Ȥ褦ʡޤޤѿ̾äΤϤޤꤷ
ʸбͤСʸ֤ޤ̵ϡNULL
֤ޤ

const char* get_country_code_desc (u_long idx);
  struct country_codedescʸ֤ޤˤϡidx
ͤϤޤǤʤäϡNULL֤ޤ

const char* get_response_code_desc (int n);
  HTTPΥơɤ֤ޤ⡢struct response_code
desc֤ͤޤˤɬפindexϤޤǤʤä
NULL֤ޤ

char**      get_short_month_tbl();
  ûɽʸΥơ֥ؤƬʸ֤ޤͤ
ʤäϡNULL֤ޤs_month֤ޤ

char**      get_long_month_tbl();
  ûɽʸΥơ֥ؤƬʸ֤ޤͤ
ʤäNULL֤ޤl_month֤ޤ

const char* get_help_message(int n);
  إץåޤnϡܤΥåꤷޤ

int         get_last_hlp_msg();
  HelpåοˤʤޤΤᡢget_help_messageindex
0 < n < get_last_hlp_msg()ˤʤޤLAS_THLP_MSG֤ͤޤ

int         get_max_ctry();
  MAX_CTRY֤ͤޤ


  ޤJAPANESEƤϡѤΥåȤơ
msg_top_all, msg_hhdr_date, msg_hhdr_gmtdate, msg_year ޤ

  åϡŬhashtableǴƤޤ


ζͭ饤֥makeMakefilecreate_lang_libs.shȤѤ
ƺޤ


6. Ƹζͭ饤֥δ

  webalizer_lang_manager.hwebalizer_lang_manager.cǴޤ
ǡɬפ˱ƥ饤֥꤫ɤ˰¸ʸ
ޤθʸꡢǥեȤʸѹ
ɤԤޤ


DEFAULT_LANG
  󥹥ȡ˻ꤷƤǻꤷ줬ɽ䡢ǥե
Ȥθˤʤޤset_default_langѤˤϡ
DEFAULT_LANGȰۤʤ褦ˤʤޤDEFAULT_LANGϥ󥹥ȡLANG
ȹͤɤΤޤ

open_msg_manager(),  close_msg_manager()ǡ/λԤޤ
δ֤ǡ줾δؿѤޤ

  get_msg (), get_country_code_desc (), get_resuponse_code_desc (),
get_short_month_tbl(), get_long_month_tbl (), get_help_message (),
get_last_hlp_msg (), get_max_ctry () ϡ줾ζͭ饤
֥бʸμԤޤꤹ뤿ˡˤ
θλ꤬ǽǤNULLꤷϡget_default_lang()
Ǽǽʸ줬ꤵޤ

  is_registed_lang()ϡθ줬ϿƤΤɤȽꤷ
ʤ0,Фʳ֤ޤ

  get_lang_suffix()ϡindex.html.jaΤ褦ʥե¸
ѤjaȤû˹碌ʸޤꤹС
θûʸNULLξϡget_default_lang֤ΤΤ
ޤ

  get_default_lang()ϡNULLˤ򤵤֤
ޤ("japanese"Ȥʸ֤)set_default_lang()ǻꤷƤʤ
ϡDEFAULT_LANG֤ͤޤ

  set_default_lang()ϡNULLȤѤ򤳤
ꤷޤ

  is_graph_english()ϡߤget_default_langǼ줬Ѹǲ
ʸ褹뤫ɤȽꤷޤ⤷Ѹ褹ɬפ
ϡʳο֤ޤΤޤ褷Ƥ褱С0֤
ޤ

  typedef hoge  dl_hogehoge ϡͭ饤֥꤫ؿݥ
ɽƤޤ饤֥δؿƤӽФѤޤ

  _MSGϡget_msgNULLꤷƸƤӽФޤꤹ
ϡ_Lդޤʹߤ⤽줾бΤƤӽФΤ
Ѥޤ

  webalizer_lang_manager.cƤ롢INST_DIRȡ
LANG_LIB_PREFIXϡɤ߹饤֥ΰ֤ꤷޤ饤֥
INST_DIRǷǤΤϡäȷɡ򤷤ʤ
ӽФʤ礬äΤǡݤʤΤǡ󥹥ȡ˻ꤹ褦
ˤޤLANG_LIB_PREFIXϡ饤֥̾ꤷޤ

  except_graph_lang_listǡ褹˱Ѹ褹褦
ˤɲäޤ

  handle_tblǡ졢եsuffix饤֥̾Ƥޤ
ѹɬפϡޤ(polishplȤƤʤ
ΤϡplˤperlȤ֤Ĥ뤿ᡢѹƤޤ)


7. 

  ߡʸʸǧ줿Τ䡢쥤Ȥ
ΤϡѸɽ褦ѹޤפܸʤɤ2Х
ʸѤƤβʸ򥵥ݡȤƤʤȤˤʤޤ
  δĶǤϤۤɽʤäȤ顢ߤܸ
ѤʤƤɤʤȻפäƤޤ(ƤθǤ줤ɽǤ
ˤȤϤʤΤǤ)

  ⤦ġפʤΤäơ饤֥ɤݤˡܸ䡢
¾θѿ̾ʤɤ֤Ĥ뤳Ȥˤ륷ܥνʣΤ褦ʤΤ
ȯ¾ͤ񤭤뤳Ȥ̵ΤǺǤޤǤϡư
Ƥ뤿ᡢʤȻפΤǤ꤬ȯϡ¤
ΤʤɤѤѿ̾ΥܥɻߤΤ褦ʤȤͤʤȤʤ
ȤˤʤǤ礦


8. 

  ͭ饤֥ưŪƤӽФϡman dlopen򻲹ͤˤ
ͭ饤֥κˡϡThe Linux ELF HOWTO򻲹ͤˤ

