Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | TIP#399 implementation: mcconfig may add additional glob pattern for mcload |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | msgcat_dyn_locale |
Files: | files | file ages | folders |
SHA1: |
dbafc2163d5c803179843419fd2d0046 |
User & Date: | oehhar 2012-09-19 20:31:48 |
Context
2012-09-19
| ||
20:40 | (proposal) msgcat with dynamic mc file load on locale change check-in: 0c67dffd72 user: oehhar tags: msgcat_dyn_locale | |
20:31 | TIP#399 implementation: mcconfig may add additional glob pattern for mcload check-in: dbafc2163d user: oehhar tags: msgcat_dyn_locale | |
12:33 | Let "nmakehlp -V" start searching digits after the found match (suggested by Harald Oehlmann) check-in: 8be494c5ee user: jan.nijtmans tags: trunk | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-09-19 Jan Nijtmans <[email protected]> * generic/tcl.h: make Tcl_Interp a fully opaque structure if TCL_NO_DEPRECATED is set (TIP 330 and 336). * win/nmakehlp.c: Let "nmakehlp -V" start searching digits after the found match (suggested by Harald Oehlmann) | > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 2012-09-19 Harald Oehlmann <[email protected]> IMPLEMENTATION OF TIP#399. * library/msgcat/msgcat.tcl: [FRQ 3544988]: New commands [mcconfig] * library/msgcat/pkgIndex.tcl: to set additional mcload search pattern. * unix/Makefile.in: Bump to 1.6.0. * win/Makefile.in: 2012-09-19 Jan Nijtmans <[email protected]> * generic/tcl.h: make Tcl_Interp a fully opaque structure if TCL_NO_DEPRECATED is set (TIP 330 and 336). * win/nmakehlp.c: Let "nmakehlp -V" start searching digits after the found match (suggested by Harald Oehlmann) |
︙ | ︙ |
Changes to changes.
︙ | ︙ | |||
8112 8113 8114 8115 8116 8117 8118 | => msgcat 1.5.0 Many revisions to better support a Cygwin environment (nijtmans) Dropped support for OS X versions less than 10.4 (Tiger) (fellows) --- Released 8.6b3, September 18, 2012 --- See ChangeLog for details --- | > > | 8112 8113 8114 8115 8116 8117 8118 8119 8120 | => msgcat 1.5.0 Many revisions to better support a Cygwin environment (nijtmans) Dropped support for OS X versions less than 10.4 (Tiger) (fellows) --- Released 8.6b3, September 18, 2012 --- See ChangeLog for details --- 2012-09-19 (TIP399) New msgcat command [mcconfig] (oehlmann) |
Changes to library/msgcat/msgcat.tcl.
︙ | ︙ | |||
9 10 11 12 13 14 15 | # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. package require Tcl 8.5 # When the version number changes, be sure to update the pkgIndex.tcl file, # and the installation directory in the Makefiles. | | | > > > | 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 | # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. package require Tcl 8.5 # When the version number changes, be sure to update the pkgIndex.tcl file, # and the installation directory in the Makefiles. package provide msgcat 1.6.0 namespace eval msgcat { namespace export mc mcload mclocale mcmax mcmset mcpreferences mcset \ mcunknown mcflset mcflmset mcconfig # Records the current locale as passed to mclocale variable Locale "" # Records the list of locales to search variable Loclist {} # Records the locale of the currently sourced message catalogue file variable FileLocale # List of file pattern to load in addition to Loclist. variable Patternlist {} # Records the mapping between source strings and translated strings. The # dict key is of the form "<locale> <namespace> <src>", where locale and # namespace should be themselves dict values and the value is # the translated string. variable Msgs [dict create] |
︙ | ︙ | |||
161 162 163 164 165 166 167 168 169 170 171 172 173 174 | 76 la 0476 la_VA 77 so 0477 so_SO 78 sit 0478 sit_CN 79 pap 0479 pap_AN }] } } # msgcat::mc -- # # Find the translation for the given string based on the current # locale setting. Check the local namespace first, then look in each # parent namespace until the source is found. If additional args are # specified, use the format command to work them into the traslated | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | 76 la 0476 la_VA 77 so 0477 so_SO 78 sit 0478 sit_CN 79 pap 0479 pap_AN }] } } # msgcat::mcconfig option ?value? ?option? ?value? # # Get or set a package option. # To set options, one may specify multiple option-value pairs. # To read an option value, one may specify a single option. # Available options are: # -pattern # List of file pattern to load in addition to mcpreferences # # Arguments: # option The name of the option # value The new value of the option # # Results: # The value if options are read proc msgcat::mcconfig {args} { variable Patternlist variable MCFileLocale if {1 == [llength $args]} { switch -exact -- [lindex $args] { -pattern { return $Patternlist} default { return -code error "Unknown option" } } } dict for {option value} $args { switch -exact -- $option { -pattern { set Patternlist $value } default { return -code error "Unknown option" } } } } # msgcat::mc -- # # Find the translation for the given string based on the current # locale setting. Check the local namespace first, then look in each # parent namespace until the source is found. If additional args are # specified, use the format command to work them into the traslated |
︙ | ︙ | |||
276 277 278 279 280 281 282 283 284 285 286 287 288 | # Arguments: # langdir The directory to search. # # Results: # Returns the number of message catalogs that were loaded. proc msgcat::mcload {langdir} { variable FileLocale # Save the file locale if we are recursively called if {[info exists FileLocale]} { set nestedFileLocale $FileLocale } set x 0 | > > | | | > | > | | | | | | | | < | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 | # Arguments: # langdir The directory to search. # # Results: # Returns the number of message catalogs that were loaded. proc msgcat::mcload {langdir} { variable Patternlist variable FileLocale # Save the file locale if we are recursively called if {[info exists FileLocale]} { set nestedFileLocale $FileLocale } set x 0 set filelist {} foreach pattern [lsort -unique [concat [mcpreferences] $Patternlist]] { if { $pattern eq {} } { set pattern ROOT } lappend filelist {*}[glob -directory $langdir -nocomplain -types {f r}\ -- $pattern.msg] } foreach langfile [lsort -unique $filelist] { incr x set FileLocale [string tolower [file tail [file rootname $langfile]]] if {"root" eq $FileLocale} { set FileLocale "" } uplevel 1 [list ::source -encoding utf-8 $langfile] unset FileLocale } if {[info exists nestedFileLocale]} { set FileLocale $nestedFileLocale } return $x } |
︙ | ︙ |
Changes to library/msgcat/pkgIndex.tcl.
1 | if {![package vsatisfies [package provide Tcl] 8.5]} {return} | | | 1 2 | if {![package vsatisfies [package provide Tcl] 8.5]} {return} package ifneeded msgcat 1.6.0 [list source [file join $dir msgcat.tcl]] |
Changes to unix/Makefile.in.
︙ | ︙ | |||
842 843 844 845 846 847 848 | @echo "Installing package http 2.8.4 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.4.tm; @echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/"; @for i in $(TOP_DIR)/library/opt/*.tcl ; \ do \ $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/opt0.4; \ done; | | | | 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 | @echo "Installing package http 2.8.4 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/http/http.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.6/http-2.8.4.tm; @echo "Installing package opt0.4 files to $(SCRIPT_INSTALL_DIR)/opt0.4/"; @for i in $(TOP_DIR)/library/opt/*.tcl ; \ do \ $(INSTALL_DATA) $$i "$(SCRIPT_INSTALL_DIR)"/opt0.4; \ done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.6.0.tm; @echo "Installing package tcltest 2.3.4 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.4.tm; @echo "Installing package platform 1.0.10 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.10.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; @$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform/shell-1.1.4.tm; |
︙ | ︙ |
Changes to win/Makefile.in.
︙ | ︙ | |||
643 644 645 646 647 648 649 | @echo "Installing package http 2.8.4 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.4.tm; @echo "Installing library opt0.4 directory"; @for j in $(ROOT_DIR)/library/opt/*.tcl; \ do \ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \ done; | | | | 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 | @echo "Installing package http 2.8.4 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/http/http.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.6/http-2.8.4.tm; @echo "Installing library opt0.4 directory"; @for j in $(ROOT_DIR)/library/opt/*.tcl; \ do \ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \ done; @echo "Installing package msgcat 1.6.0 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.6.0.tm; @echo "Installing package tcltest 2.3.4 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.4.tm; @echo "Installing package platform 1.0.10 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.10.tm; @echo "Installing package platform::shell 1.1.4 as a Tcl Module"; @$(COPY) $(ROOT_DIR)/library/platform/shell.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform/shell-1.1.4.tm; @echo "Installing encodings"; |
︙ | ︙ |