From be8ba4515aaf9da7893bcb0930ca1965e0602cb3 Mon Sep 17 00:00:00 2001 From: ericm Date: Fri, 30 Jun 2000 06:28:26 +0000 Subject: * doc/msgcat.n: Doc's for mcmax function. * library/msgcat1.0/msgcat.tcl: Applied patches from Laurent Duperval, to add mcmax function, which computes the length of the longest of several translated strings. Bumped version number to 1.1. --- ChangeLog | 8 ++++++++ doc/msgcat.n | 8 ++++++++ library/msgcat/msgcat.tcl | 30 ++++++++++++++++++++++++++---- library/msgcat1.0/msgcat.tcl | 30 ++++++++++++++++++++++++++---- 4 files changed, 68 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4dab71c..22fc94a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-06-29 Eric Melski + + * doc/msgcat.n: Doc's for mcmax function. + + * library/msgcat1.0/msgcat.tcl: Applied patches from Laurent + Duperval, to add mcmax function, which computes the length of the + longest of several translated strings. Bumped version number to 1.1. + 2000-06-27 Eric Melski * tests/stringObj.test: Tweaked tests to avoid hardcoded diff --git a/doc/msgcat.n b/doc/msgcat.n index f4acd54..e271839 100644 --- a/doc/msgcat.n +++ b/doc/msgcat.n @@ -15,6 +15,8 @@ msgcat \- Tcl message catalog .SH SYNOPSIS \fB::msgcat::mc \fIsrc-string\fR ?\fIarg arg ...\fR? .sp +\fB::msgcat::mcmax ?\fIsrc-string src-string ...\fR? +.sp \fB::msgcat::mclocale \fR?\fInewLocale\fR? .sp \fB::msgcat::mcpreferences\fR @@ -63,6 +65,12 @@ use the result. If an application is written for a single language in this fashion, then it is easy to add support for additional languages later simply by defining new message catalog entries. .TP +\fB::msgcat::mcmax ?\fIsrc-string src-string ...\fR? +Given several source strings, \fB::msgcat::mcmax\fR returns the length +of the longest translated string. This is useful when designing +localized GUI's, which may require that all buttons, for example, be a +fixed width (which will be the width of the widest button). +.TP \fB::msgcat::mclocale \fR?\fInewLocale\fR? This function sets the locale to \fInewLocale\fR. If \fInewLocale\fR is omitted, the current locale is returned, otherwise the current locale diff --git a/library/msgcat/msgcat.tcl b/library/msgcat/msgcat.tcl index 4619ae1..0f7d6d3 100644 --- a/library/msgcat/msgcat.tcl +++ b/library/msgcat/msgcat.tcl @@ -4,18 +4,18 @@ # message catalog facility for Tcl programs. It should be # loaded with the command "package require msgcat". # -# Copyright (c) 1998 by Scriptics Corporation. +# Copyright (c) 1998-2000 by Ajuba Solutions. # Copyright (c) 1998 by Mark Harrison. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: msgcat.tcl,v 1.4 2000/04/11 21:16:18 ericm Exp $ +# RCS: @(#) $Id: msgcat.tcl,v 1.5 2000/06/30 06:28:27 ericm Exp $ -package provide msgcat 1.0 +package provide msgcat 1.1 namespace eval msgcat { - namespace export mc mcset mclocale mcpreferences mcunknown + namespace export mc mcset mclocale mcpreferences mcunknown mcmax # Records the current locale as passed to mclocale variable locale "" @@ -182,6 +182,28 @@ proc msgcat::mcunknown {locale src} { return $src } +# msgcat::mcmax -- +# +# Calculates the maximun length of the translated strings of the given +# list. +# +# Arguments: +# args strings to translate. +# +# Results: +# Returns the length of the longest translated string. + +proc msgcat::mcmax {args} { + set max 0 + foreach string $args { + set len [string length [msgcat::mc $string]] + if {$len>$max} { + set max $len + } + } + return $max +} + # Initialize the default locale namespace eval msgcat { diff --git a/library/msgcat1.0/msgcat.tcl b/library/msgcat1.0/msgcat.tcl index 4619ae1..0f7d6d3 100644 --- a/library/msgcat1.0/msgcat.tcl +++ b/library/msgcat1.0/msgcat.tcl @@ -4,18 +4,18 @@ # message catalog facility for Tcl programs. It should be # loaded with the command "package require msgcat". # -# Copyright (c) 1998 by Scriptics Corporation. +# Copyright (c) 1998-2000 by Ajuba Solutions. # Copyright (c) 1998 by Mark Harrison. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: msgcat.tcl,v 1.4 2000/04/11 21:16:18 ericm Exp $ +# RCS: @(#) $Id: msgcat.tcl,v 1.5 2000/06/30 06:28:27 ericm Exp $ -package provide msgcat 1.0 +package provide msgcat 1.1 namespace eval msgcat { - namespace export mc mcset mclocale mcpreferences mcunknown + namespace export mc mcset mclocale mcpreferences mcunknown mcmax # Records the current locale as passed to mclocale variable locale "" @@ -182,6 +182,28 @@ proc msgcat::mcunknown {locale src} { return $src } +# msgcat::mcmax -- +# +# Calculates the maximun length of the translated strings of the given +# list. +# +# Arguments: +# args strings to translate. +# +# Results: +# Returns the length of the longest translated string. + +proc msgcat::mcmax {args} { + set max 0 + foreach string $args { + set len [string length [msgcat::mc $string]] + if {$len>$max} { + set max $len + } + } + return $max +} + # Initialize the default locale namespace eval msgcat { -- cgit v0.12