|
Class: UserMessage
Object
|
+--UserMessage
- Package:
- stx:libbasic
- Category:
- Interface-Internationalization
- Version:
- rev:
1.17
date: 2021/01/20 12:54:10
- user: cg
- file: UserMessage.st directory: libbasic
- module: stx stc-classLibrary: libbasic
added for vw5i compatibility, which accesses messageCatalogs
via:
(#key << #catalogID >> 'defaultMessage')
which creates an instance of UserMessage.
Currently, this is a dummy operation in ST/X, however it is mapped onto
the resource mechanism, if the given catalogID is the name of a class or a package.
I.e.
(YesNoBox classResources string:'continue')
can now also be written as:
(#continue << YesNoBox) asString
(#continue << #YesNoBox >> 'Continue really') asString
or, via the package as:
(#continue << #stx:libwidg) asString
If there is no such catalog, or the key is not found, either the default message is generated:
(#continue << #foo >> 'Continue really') asString
or, if there is no default, the key itself is returned:
(#continue << #foo) asString
copyrightCOPYRIGHT (c) 2001 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
instance creation
-
key: aKeySymbol catalogID: aCatalogSymbol
-
-
key: aKeySymbol defaultString: aString
-
Compatibility-V'Age
-
bindWith: aString
-
return a copy of the receiver, where a '%1' escape is
replaced by aString.
This has been added for VisualAge compatibility.
Usage example(s):
'do you like %1 ?' bindWith:'smalltalk'
|
-
bindWith: string1 with: string2
-
return a copy of the receiver, where a '%1' escape is
replaced by string1 and '%2' is replaced by string2.
This has been added for VisualAge compatibility.
Usage example(s):
'do you prefer %1 or rather %2 ?'
bindWith:'smalltalk' with:'c++'
|
-
bindWith: str1 with: str2 with: str3
-
return a copy of the receiver, where a '%1', '%2' and '%3' escapes
are replaced by str1, str2 and str3 respectively.
This has been added for VisualAge compatibility.
Usage example(s):
'do you prefer %1 or rather %2 (not talking about %3) ?'
bindWith:'smalltalk' with:'c++' with:'c'
|
-
bindWith: str1 with: str2 with: str3 with: str4
-
return a copy of the receiver, where a '%1', '%2', '%3' and '%4' escapes
are replaced by str1, str2, str3 and str4 respectively.
This has been added for VisualAge compatibility.
Usage example(s):
'do you prefer %1 or rather %2 (not talking about %3 or even %4) ?'
bindWith:'smalltalk' with:'c++' with:'c' with:'assembler'
|
-
bindWith: str1 with: str2 with: str3 with: str4 with: str5
-
return a copy of the receiver, where a '%1' .. '%5' escapes
are replaced by str1 .. str5 respectively.
This has been added for VisualAge compatibility.
-
bindWith: str1 with: str2 with: str3 with: str4 with: str5 with: str6
-
return a copy of the receiver, where a '%1' .. '%6' escapes
are replaced by str1 .. str6 respectively.
This has been added for VisualAge compatibility.
-
bindWith: str1 with: str2 with: str3 with: str4 with: str5 with: str6 with: str7
-
return a copy of the receiver, where a '%1' .. '%7' escapes
are replaced by str1 .. str7 respectively.
This has been added for VisualAge compatibility.
-
bindWithArguments: argumentsCollection
-
return a copy of the receiver, where a '%i' escape
is replaced by the corresponding string from the argument array.
'i' may be between 1 and 9 (i.e. a maximum of 9 placeholders is allowed),
or %(key); the argumentsCollection must then be a dictionary.
To get an integer-indexed placeHolder followed by another digit,
or an index > 9, you must use %(digit).
This has been added for VisualAge compatibility.
Usage example(s):
'do you prefer %1 or rather %2 (not talking about %3) ?'
bindWithArguments:#('smalltalk' 'c++' 'c')
'do you %(what) ?'
bindWithArguments:(Dictionary new at:#'what' put:'understand'; yourself)
|
accessing
-
catalogID
-
-
catalogID: aCatalogSymbol
-
-
defaultString
-
-
defaultString: aString
-
-
key
-
-
key: aKeySymbol
-
-
key: aKeySymbol catalogID: aCatalogSymbol
-
-
key: aKeySymbol defaultString: aString
-
converting
-
asString
-
convert the user message to a string.
If there us no mapping for the user message -
for now: return the defaultString, ignoring the catalogID.
-
string
-
printing & storing
-
displayOn: aStream
-
what a kludge - Dolphin and Squeak mean: printOn: a stream;
-
printOn: aStream
-
(comment from inherited method)
append a user printed representation of the receiver to aStream.
The format is suitable for a human - not meant to be read back.
The default here is to output the receiver's class name.
BUT: this method is heavily redefined for objects which
can print prettier.
special string converting
-
expandMacros
-
-
expandMacrosWith: arg1
-
-
expandPlaceholdersWith: argArrayOrDictionary
-
-
expandPlaceholdersWith: argArrayOrDictionary on: aStream
-
-
withCRs
-
utilities
-
<< aSymbol
-
set the catalogID
-
>> aString
-
set the default string
Usage example(s):
(#theFooMessage << #myMessages >> 'cannot read subclass of metaclass')
|
-
lookupInMessageCatalog
-
catalogID may be a block
Use a class as catalog:
self warn:(#continue << YesNoBox) asString
| Use a class name as catalog:
self warn:(#continue << #YesNoBox) asString
| Some default text if the symbol is not present in the catalog:
self warn:(#continue << #YesNoBox >> 'Default for continue') asString.
self warn:(#continueRRRRRRR << #YesNoBox >> 'Default for continue') asString
| Here we inherit from the top catalog:
self information:(Time now printStringFormat:(#TIMEFORMAT << self >> 'Resolved via default %h:%m:%s') asString)
|
Can also use a package's catalog:
self information:((#'WARN_RENAME' << #'stx:libtool' )
withCRs bindWith:'ARG1' with:'ARG2')
|
Lazy resolving the catalog in a block
(if you generate the messages at startup and want to recognize language changes):
self information:((#'WARN_RENAME' << [ Tools::NewSystemBrowser classResources ] )
withCRs bindWith:'ARG1' with:'ARG2')
|
|