#DOCUMENTATION
class: Smalltalk
comment/format in:
#loadExtensionsForPackage:
#loadExtensionsForPackage:language:
#loadExtensionsFromDirectory:
changed:
#hello
#languageTerritory:
--- a/Smalltalk.st Thu Nov 19 14:56:31 2015 +0100
+++ b/Smalltalk.st Thu Nov 19 15:22:51 2015 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
@@ -2449,8 +2447,8 @@
| extensionsLoaded |
extensionsLoaded := false.
- ProgrammingLanguage allDo:[:lang|
- extensionsLoaded := extensionsLoaded | (self loadExtensionsForPackage:aPackageId language: lang)
+ ProgrammingLanguage allDo:[:programmingLanguage|
+ extensionsLoaded := extensionsLoaded | (self loadExtensionsForPackage:aPackageId language: programmingLanguage)
].
^ extensionsLoaded
@@ -2459,81 +2457,81 @@
"Modified (format): / 04-09-2011 / 09:19:24 / cg"
!
-loadExtensionsForPackage:aPackageId language: language
+loadExtensionsForPackage:aPackageId language: programmingLanguage
|mgr packageDirName inStream projectDefinition extensionsFilename mod dir
extensionsRevisionString extensionsRevisionInfo|
- language supportsExtensionMethods ifFalse:[^false].
+ programmingLanguage supportsExtensionMethods ifFalse:[^false].
packageDirName := aPackageId copyReplaceAll:$: with:$/.
packageDirName := self getPackageFileName:packageDirName.
(packageDirName notNil and:[Class tryLocalSourceFirst]) ifTrue:[
- (self loadExtensionsFromDirectory:packageDirName language: language) ifTrue:[
- ^ true.
- ].
- packageDirName := nil. "do not try again"
+ (self loadExtensionsFromDirectory:packageDirName language: programmingLanguage) ifTrue:[
+ ^ true.
+ ].
+ packageDirName := nil. "do not try again"
].
"
if there is a sourceCodeManager, ask it first for the extensions
"
(Smalltalk at:#AbstractSourceCodeManager) notNil ifTrue:[
- mgr := AbstractSourceCodeManager managerForPackage: aPackageId
+ mgr := AbstractSourceCodeManager managerForPackage: aPackageId
].
mgr notNil ifTrue:[
- extensionsFilename := 'extensions.' , language sourceFileSuffix.
-
- projectDefinition := ProjectDefinition definitionClassForPackage:aPackageId.
- projectDefinition notNil ifTrue:[
- mod := aPackageId asPackageId module.
- dir := aPackageId asPackageId directory.
- extensionsRevisionString := projectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
- extensionsRevisionString notNil ifTrue:[
- extensionsRevisionInfo := mgr revisionInfoFromString:extensionsRevisionString inClass:nil.
- extensionsRevisionInfo notNil ifTrue:[
- extensionsRevisionInfo fileName = extensionsFilename ifFalse:[
- "JV@2011-10-23: following condition is never satisfied for
- filed-in packages. The whole scheme of extensionVersion_XXX
- works ONLY for compiled packages as it depends on fact, that
- extension Init() routine is called AFTER all classes are inited,
- therefore the extensionVersion_XXX methods from extensions.st
- overwrites methods coming from package definition class. All this
- is so tricky and error prone, that we have to come up with better
- solution!!"
- packageDirName notNil ifTrue:[
- ^ self loadExtensionsFromDirectory:packageDirName language: language
- ] ifFalse:[
- ^ false
- ]
- ]
- ]
- ].
- SourceCodeManagerError handle:[:ex |
- ] do:[
- inStream := mgr streamForExtensionFile:extensionsFilename package:aPackageId directory:dir module:mod cache:true.
- ].
- ].
- inStream isNil ifTrue:[
- SourceCodeManagerError handle:[:ex |
- ] do:[
- inStream := mgr getMostRecentSourceStreamForFile:extensionsFilename inPackage:aPackageId.
- ].
- ].
- inStream notNil ifTrue:[
- Class withoutUpdatingChangeSetDo:[
- inStream fileIn.
- ].
- inStream close.
- VerboseLoading ifTrue:[
- Transcript showCR:('loaded extensions for ',aPackageId,' from repository').
- ].
- ^ true
- ]
+ extensionsFilename := 'extensions.' , programmingLanguage sourceFileSuffix.
+
+ projectDefinition := ProjectDefinition definitionClassForPackage:aPackageId.
+ projectDefinition notNil ifTrue:[
+ mod := aPackageId asPackageId module.
+ dir := aPackageId asPackageId directory.
+ extensionsRevisionString := projectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
+ extensionsRevisionString notNil ifTrue:[
+ extensionsRevisionInfo := mgr revisionInfoFromString:extensionsRevisionString inClass:nil.
+ extensionsRevisionInfo notNil ifTrue:[
+ extensionsRevisionInfo fileName = extensionsFilename ifFalse:[
+ "JV@2011-10-23: following condition is never satisfied for
+ filed-in packages. The whole scheme of extensionVersion_XXX
+ works ONLY for compiled packages as it depends on fact, that
+ extension Init() routine is called AFTER all classes are inited,
+ therefore the extensionVersion_XXX methods from extensions.st
+ overwrites methods coming from package definition class. All this
+ is so tricky and error prone, that we have to come up with better
+ solution!!"
+ packageDirName notNil ifTrue:[
+ ^ self loadExtensionsFromDirectory:packageDirName language: programmingLanguage
+ ] ifFalse:[
+ ^ false
+ ]
+ ]
+ ]
+ ].
+ SourceCodeManagerError handle:[:ex |
+ ] do:[
+ inStream := mgr streamForExtensionFile:extensionsFilename package:aPackageId directory:dir module:mod cache:true.
+ ].
+ ].
+ inStream isNil ifTrue:[
+ SourceCodeManagerError handle:[:ex |
+ ] do:[
+ inStream := mgr getMostRecentSourceStreamForFile:extensionsFilename inPackage:aPackageId.
+ ].
+ ].
+ inStream notNil ifTrue:[
+ Class withoutUpdatingChangeSetDo:[
+ inStream fileIn.
+ ].
+ inStream close.
+ VerboseLoading ifTrue:[
+ Transcript showCR:('loaded extensions for ',aPackageId,' from repository').
+ ].
+ ^ true
+ ]
].
packageDirName notNil ifTrue:[
- ^ self loadExtensionsFromDirectory:packageDirName language: language
+ ^ self loadExtensionsFromDirectory:packageDirName language: programmingLanguage
].
^ false
@@ -2544,13 +2542,13 @@
!
loadExtensionsFromDirectory:packageDirOrString
-
| extensionsLoaded |
+
extensionsLoaded := false.
- ProgrammingLanguage allDo:
- [:lang|
- extensionsLoaded := extensionsLoaded | (self loadExtensionsFromDirectory: packageDirOrString language: lang)].
- ^extensionsLoaded
+ ProgrammingLanguage allDo:[:programmingLanguage|
+ extensionsLoaded := extensionsLoaded | (self loadExtensionsFromDirectory: packageDirOrString language: programmingLanguage)
+ ].
+ ^ extensionsLoaded
"Modified: / 02-01-2010 / 10:40:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -4972,9 +4970,11 @@
languageTerritory:aTerritorySymbol
"set the language territory - send out change notifications"
- LanguageTerritory := aTerritorySymbol asSymbol.
- self changed:#LanguageTerritory
-
+ aTerritorySymbol ~= LanguageTerritory ifTrue:[
+ LanguageTerritory := aTerritorySymbol asSymbol.
+ self changed:#LanguageTerritory
+ ].
+
"
Time now
@@ -8104,35 +8104,35 @@
"return a greeting string"
"stupid: this should come from a resource file ...
- but I dont use it here, to allow mini-systems without
+ but I don't use it here, to allow mini-systems without
Resource-stuff."
|proto lang|
lang := Language.
(lang == #de) ifTrue:[
- proto := 'Willkommen bei %1 (Version %2 von %3)'
+ proto := 'Willkommen bei %1 (Version %2 von %3)'
] ifFalse:[ (lang == #fr) ifTrue:[
- proto := 'Salut, Bienvenue à%1 (version %2 de %3)'
+ proto := 'Salut, Bienvenue à %1 (version %2 de %3)'
] ifFalse:[ (lang == #it) ifTrue:[
- proto := 'Ciao, benvenuto al %1 (versione %2 di %3)'
+ proto := 'Ciao, benvenuto al %1 (versione %2 di %3)'
] ifFalse:[ (lang == #es) ifTrue:[
-"/ proto := 'Hola, bienvenida a %1 (versión %2 de %3)'
- ] ifFalse:[ (lang == #es) ifTrue:[
-"/ proto := 'Oi, benvindo a %1 (versão %2 de %3)'
+ proto := 'Hola, bienvenida a %1 (version %2 de %3)'
+ ] ifFalse:[ (lang == #pt) ifTrue:[
+ proto := 'Olá!!, mem-vindo a %1 (version %2 de %3)'
] ifFalse:[ (lang == #no) ifTrue:[
- proto := 'Hei, verdenmottakelse til %1 (versjon %2 av %3)'
+ proto := 'Hei, verdenmottakelse til %1 (versjon %2 av %3)'
]]]]]].
"/ ... more needed here ...
proto isNil ifTrue:[
- proto := 'Hello World - here is %1 version %2 of %3'.
+ proto := 'Hello World - welcome to %1 version %2 of %3'.
].
^ proto bindWith:('SmallTalk/X' allBold)
- with:(self versionString)
- with:(self versionDate)
+ with:(self versionString)
+ with:(self versionDate)
"
Smalltalk language:#us.