*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Mon, 15 Mar 2004 15:11:32 +0100
changeset 5719 56551053942f
parent 5718 a16c274a18ef
child 5720 533e9411270c
*** empty log message ***
AbstractSettingsApplication.st
--- a/AbstractSettingsApplication.st	Mon Mar 15 13:59:21 2004 +0100
+++ b/AbstractSettingsApplication.st	Mon Mar 15 15:11:32 2004 +0100
@@ -3999,9 +3999,9 @@
     |fontPref fontPrefs language oldLanguage languageString territory enc 
      answer matchingFonts l screen switch dialog anyWrong|
 
-    language := self languageHolder value.
     self withWaitCursorDo:[
         languageString := translatedLanguages at:(self languageIndexHolder value).
+        language := self languageHolder value.
         (language includes:$-) ifTrue:[
             l := language asCollectionOfSubstringsSeparatedBy:$-.
             language := l at:1.
@@ -4180,7 +4180,10 @@
 !
 
 languageIndexChanged
-    self languageHolder value:(listOfLanguages at:self languageIndexHolder value ? 1).
+    |langIdx|
+
+    langIdx := self languageIndexHolder value ? 1.
+    self languageHolder value:(listOfLanguages at:langIdx).
     self updateModifiedChannel.
 !
 
@@ -4223,15 +4226,16 @@
 !
 
 initializeLanguages
-    |flags enResources savedLanguage enLanguages nativeLanguages languages|
+    |flags enResources savedLanguage savedLanguageTerritory enLanguages nativeLanguages languages listOfLanguageKeys|
 
     resources := self class classResources.
     listOfLanguages := resources at:'LIST_OF_OFFERED_LANGUAGES' default:#('default' 'en' ).
     listOfLanguages := listOfLanguages asOrderedCollection.
+    listOfLanguageKeys := listOfLanguages collect:[:l | l copyReplaceAll:$- with:$_ ].
 
     (perLanguageResources notNil 
     and:[ (perLanguageResources includesKey:#en) not 
-    and:[ (perLanguageResources includesKey:#en_us) not ]]) 
+    and:[ (perLanguageResources includesKey:#'en_us') not ]]) 
     ifTrue:[
         perLanguageResources := nil.
     ].
@@ -4239,24 +4243,32 @@
     perLanguageResources isNil ifTrue:[
         perLanguageResources := Dictionary new.
 
-        listOfLanguages do:[:eachLang |
+        listOfLanguageKeys do:[:eachLang |
             savedLanguage := Language.
+            savedLanguageTerritory := LanguageTerritory.
             ResourcePack flushCachedResourcePacks.
             [
-                |rsc|
-
-                Language := eachLang asSymbol.
+                |rsc lang terr|
+
+                lang := terr := eachLang.
+                (lang includes:$_) ifTrue:[
+                    terr := lang copyFrom:4.
+                    lang := lang copyTo:2.
+                ].                
+                Language := lang asSymbol.
+                LanguageTerritory := terr asSymbol.
                 rsc := ResourcePack for:(self class) cached:false.
                 perLanguageResources at:eachLang asSymbol put:rsc.
             ] ensure:[
-                Language := savedLanguage
+                Language := savedLanguage.
+                LanguageTerritory := savedLanguageTerritory.
             ].
         ].
         ResourcePack flushCachedResourcePacks.
     ].
-    enResources := perLanguageResources at:#en ifAbsent:[perLanguageResources at:#en_us].
-
-    enLanguages := listOfLanguages 
+    enResources := perLanguageResources at:#en ifAbsent:[perLanguageResources at:#'en_us'].
+
+    enLanguages := listOfLanguageKeys 
                                 collect:[:lang | |item|
                                         item := enResources at:('LANG_' , lang) default:nil.
                                         item isNil ifTrue:[
@@ -4270,7 +4282,7 @@
                                         ]
                                 ].
 
-    nativeLanguages := listOfLanguages 
+    nativeLanguages := listOfLanguageKeys 
                                 collect:[:lang | |item enLang|
                                         item := enResources at:('LANG_' , lang) default:nil.
                                         item isNil ifTrue:[ 
@@ -4290,7 +4302,7 @@
                                         item := resources at:enLang default:enLang.
                                 ].
 
-    flags := listOfLanguages collect:[:lang | |item coll|
+    flags := listOfLanguageKeys collect:[:lang | |item coll|
                                         item := resources at:('FLAG_' , lang) default:nil.
                                         item notNil ifTrue:[
                                             item
@@ -4338,7 +4350,8 @@
                                 s   
                             ].
 
-    languageList := translatedLanguages with:flags 
+    languageList := translatedLanguages 
+                        with:flags 
                         collect:[:lang :flag | LabelAndIcon icon:flag string:lang.].
 ! !
 
@@ -11279,5 +11292,5 @@
 !AbstractSettingsApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.148 2004-03-15 09:41:24 ca Exp $'
-! !
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.149 2004-03-15 14:11:32 cg Exp $'
+! !