File: msgcat.tcl

package info (click to toggle)
tcllib 1.20%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 68,064 kB
  • sloc: tcl: 216,842; ansic: 14,250; sh: 2,846; xml: 1,766; yacc: 1,145; pascal: 881; makefile: 107; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (59 lines) | stat: -rw-r--r-- 1,647 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- tcl -*-
# Copyright (c) 2009 Andreas Kupries <andreas_kupries@sourceforge.net>

# 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