# ACTIVESTATE TEAPOT-PKG BEGIN TM -*- tcl -*- # -- Tcl Module # @@ Meta Begin # Package doctools::msgcat 0.1 # Meta as::build::date 2015-05-25 # Meta as::origin http://sourceforge.net/projects/tcllib # Meta category Documentation tools # Meta description Message catalog management for the various document # Meta description parsers # Meta license BSD # Meta platform tcl # Meta require {Tcl 8.4} # Meta require msgcat # Meta subject {message catalog} i18n doctoc {message package} # Meta subject localization internationalization l10n doctools # Meta subject docidx {catalog package} # Meta summary doctools::msgcat # @@ Meta End # ACTIVESTATE TEAPOT-PKG BEGIN REQUIREMENTS package require Tcl 8.4 package require msgcat # ACTIVESTATE TEAPOT-PKG END REQUIREMENTS # ACTIVESTATE TEAPOT-PKG BEGIN DECLARE package provide doctools::msgcat 0.1 # ACTIVESTATE TEAPOT-PKG END DECLARE # ACTIVESTATE TEAPOT-PKG END TM # -*- tcl -*- # Copyright (c) 2009 Andreas Kupries # L10N, I18N # Support package. Handling of message catalogs within the various # doctools document processing packages. Contrary to the regular # msgcat package here message catalogs are equated with packages. This # makes their use easier, as the user does not have to know the # location of the message catalogs. Locating a desired catalog is # handled through Tcl's regular package management. # To this end this package provides a command analogous to # 'msgcat::load', just replacing direct file access with package # loading. This is 'doctools::msgcat::init'. # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required Core package require msgcat ; # Fondation catalog database namespace eval ::doctools::msgcat {} # # ## ### ##### ######## ############# ##################### ## Overide catalog unknown handler to report missing strings ## as fatal problem. DEBUG only. if 0 { proc ::msgcat::mcunknown {locale code} { return "unknown error code \"$code\" (for locale $locale)" } } # # ## ### ##### ######## ############# ##################### ## Public API proc ::doctools::msgcat::init {prefix} { set matches 0 foreach p [msgcat::mcpreferences] { set pkg doctools::msgcat::${prefix}::${p} if {![catch { package require $pkg }]} { incr matches } } return $matches } # # ## ### ##### ######## ############# ##################### ## Ready namespace eval ::doctools::msgcat { namespace export init } package provide doctools::msgcat 0.1 return