#UI_ENHANCEMENT by cg draft
authorClaus Gittinger <cg@exept.de>
Sat, 15 Sep 2018 12:43:15 +0200
changeset 3594 cfbc0a29b030
parent 3593 c7c138eb0d86
child 3595 ebf63823c259
#UI_ENHANCEMENT by cg class: Tools::InternationalLanguageTranslationEditor comment/format in: #languageEditorBuilt: #requestFilenameFor: #saveLanguage: changed: #requestLanguageToSave #update:with:from: class: Tools::InternationalLanguageTranslationEditor class changed: #windowSpec
Tools__InternationalLanguageTranslationEditor.st
--- a/Tools__InternationalLanguageTranslationEditor.st	Sat Aug 25 03:36:06 2018 +0000
+++ b/Tools__InternationalLanguageTranslationEditor.st	Sat Sep 15 12:43:15 2018 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "{ Package: 'stx:libtool2' }"
 
 "{ NameSpace: Tools }"
@@ -314,249 +316,276 @@
 
     <resource: #canvas>
 
-    ^
+    ^ 
     #(FullSpec
        name: windowSpec
-       window:
+       uuid: '37d7f37a-b8d0-11e8-aeef-b8f6b1108e05'
+       window: 
       (WindowSpec
-	 label: 'InternationalLanguageTranslationEditor'
-	 name: 'InternationalLanguageTranslationEditor'
-	 min: (Point 10 10)
-	 bounds: (Rectangle 0 0 774 610)
-	 menu: mainMenu
+         label: 'InternationalLanguageTranslationEditor'
+         name: 'InternationalLanguageTranslationEditor'
+         uuid: '37d7f60e-b8d0-11e8-aeef-b8f6b1108e05'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 774 610)
+         menu: mainMenu
        )
-       component:
+       component: 
       (SpecCollection
-	 collection: (
-	  (MenuPanelSpec
-	     name: 'ToolBar'
-	     layout: (LayoutFrame 0 0 0 0 0 1 30 0)
-	     menu: menuToolBar
-	     textDefault: true
-	   )
-	  (VariableVerticalPanelSpec
-	     name: 'TranslationsVariableVerticalPanel'
-	     layout: (LayoutFrame 0 0 30 0 0 1 -32 1)
-	     component:
-	    (SpecCollection
-	       collection: (
-		(DataSetSpec
-		   name: 'KeyStringAndLanguageSelectionTable'
-		   model: selectedKeyRow
-		   menu: keyStringAndLanguageSelectionTableMenu
-		   hasHorizontalScrollBar: true
-		   hasVerticalScrollBar: true
-		   dataList: keyStringAndLanguageSelectionTable
-		   columnHolder: keyStringAndLanguageSelectionTableColumnDescriptionHolder
-		   beDependentOfRows: true
-		   columnAdaptor: yourself
-		   postBuildCallback: postBuildDataSet:
-		 )
-		(VariableVerticalPanelSpec
-		   name: 'VariableVerticalPanel1'
-		   component:
-		  (SpecCollection
-		     collection: (
-		      (ViewSpec
-			 name: 'Box1'
-			 component:
-			(SpecCollection
-			   collection: (
-			    (LabelSpec
-			       label: 'Original String (Key):'
-			       name: 'Label2'
-			       layout: (LayoutFrame 0 0 -2 0 0 1 28 0)
-			       translateLabel: true
-			       adjust: left
-			     )
-			    (TextEditorSpec
-			       name: 'OriginalText'
-			       layout: (LayoutFrame 0 0 27 0 0 1 -2 1)
-			       model: originalTextHolder
-			       hasHorizontalScrollBar: true
-			       hasVerticalScrollBar: true
-			       modifiedChannel: originalTextModifiedHolder
-			       acceptCallBack: languageTextAccepted
-			       hasKeyboardFocusInitially: false
-			     )
-			    )
-
-			 )
-		       )
-		      (ViewSpec
-			 name: 'Box3'
-			 component:
-			(SpecCollection
-			   collection: (
-			    (LabelSpec
-			       label: 'Select Another Language as example:'
-			       name: 'Label3'
-			       layout: (LayoutFrame 0 0 -6 0 0 1 24 0)
-			       translateLabel: true
-			       adjust: left
-			     )
-			    (ComboBoxSpec
-			       name: 'ComboBox1'
-			       layout: (LayoutFrame 281 0 -2 0 406 0 18 0)
-			       model: exampleLanguageSelectionHolder
-			       immediateAccept: false
-			       acceptOnLeave: true
-			       acceptOnLostFocus: true
-			       acceptOnPointerLeave: false
-			       comboList: shownLanguages
-			       useIndex: false
-			     )
-			    (TextEditorSpec
-			       name: 'ExampleLanguageText'
-			       layout: (LayoutFrame 0 0 30 0 0 1 0 1)
-			       model: exampleLanguageTextHolder
-			       hasHorizontalScrollBar: true
-			       hasVerticalScrollBar: true
-			       isReadOnly: true
-			       hasKeyboardFocusInitially: false
-			     )
-			    )
-
-			 )
-		       )
-		      (ViewSpec
-			 name: 'Box2'
-			 component:
-			(SpecCollection
-			   collection: (
-			    (LabelSpec
-			       label: 'Translated String:'
-			       name: 'Label1'
-			       layout: (LayoutFrame 0 0 0 0 0 1 30 0)
-			       translateLabel: true
-			       adjust: left
-			     )
-			    (TextEditorSpec
-			       name: 'LanguageText'
-			       layout: (LayoutFrame 0 0 30 0 0 1 0 1)
-			       model: languageTextHolder
-			       hasHorizontalScrollBar: true
-			       hasVerticalScrollBar: true
-			       acceptChannel: languageTextAcceptHolder
-			       modifiedChannel: languageTextModifiedHolder
-			       acceptCallBack: languageTextAccepted
-			       hasKeyboardFocusInitially: false
-			       postBuildCallback: languageEditorBuilt:
-			     )
-			    (ActionButtonSpec
-			       label: 'Paste Previous'
-			       name: 'pastePreviousTranslation'
-			       layout: (LayoutOrigin 0 0.83085250338295003 0 0.034482758620689995)
-			       translateLabel: true
-			       model: pastePreviousTranslationInLanguageText
-			       enableChannel: pastePreviousTranslationEnableHolder
-			       disabledLogo: 'Paste Previous'
-			     )
-			    (ActionButtonSpec
-			       label: 'Paste Original'
-			       name: 'Button1'
-			       layout: (LayoutOrigin -95 0.83085250338295003 0 0.034482758620689995)
-			       translateLabel: true
-			       model: pasteOriginalInLanguageText
-			       enableChannel: pasteOriginalEnableHolder
-			       disabledLogo: 'Paste Original'
-			     )
-			    )
-
-			 )
-		       )
-		      )
-
-		   )
-		   handles: (Any 0.3333333333333301 0.66666666666667018 1.0)
-		 )
-		)
-
-	     )
-	     handles: (Any 0.5 1.0)
-	     postBuildCallback: postBuildTranslationsPanel:
-	   )
-	  (ViewSpec
-	     name: 'SearchBox'
-	     layout: (LayoutFrame 0 0 -32 1 0 1 0 1)
-	     level: -1
-	     visibilityChannel: searchBoxVisible
-	     component:
-	    (SpecCollection
-	       collection: (
-		(ActionButtonSpec
-		   label: 'closeSearchBarIcon'
-		   name: 'closeSearchBarButton'
-		   layout: (LayoutFrame 4 0 5 0 25 0 26 0)
-		   hasCharacterOrientedLabel: false
-		   translateLabel: true
-		   model: closeSearchBar
-		 )
-		(LabelSpec
-		   label: 'Search:'
-		   name: 'SearchLabel'
-		   layout: (LayoutFrame 30 0 5 0 100 0 27 0)
-		   translateLabel: true
-		   adjust: right
-		 )
-		(InputFieldSpec
-		   name: 'SearchEntryField'
-		   layout: (LayoutFrame 100 0 5 0 257 0 27 0)
-		   model: searchTextHolder
-		   immediateAccept: true
-		   acceptOnReturn: true
-		   acceptOnTab: true
-		   acceptOnLostFocus: true
-		   modifiedChannel: searchTextModifiedHolder
-		   acceptOnPointerLeave: false
-		   postBuildCallback: postBuildSearchTextView:
-		 )
-		(ActionButtonSpec
-		   label: 'searchNextIcon'
-		   name: 'SearchNextButton'
-		   layout: (LayoutFrame 264 0 5 0 285 0 26 0)
-		   hasCharacterOrientedLabel: false
-		   translateLabel: true
-		   model: searchNextText
-		 )
-		(ActionButtonSpec
-		   label: 'searchPreviousIcon'
-		   name: 'searchPreviousButton'
-		   layout: (LayoutFrame 292 0 5 0 313 0 26 0)
-		   hasCharacterOrientedLabel: false
-		   translateLabel: true
-		   model: searchPreviousText
-		 )
-		(CheckBoxSpec
-		   label: 'Ignore case'
-		   name: 'IgnoreCaseCheckBox'
-		   layout: (LayoutFrame 322 0 5 0 518 0 27 0)
-		   model: ignoreCaseHolder
-		   translateLabel: true
-		 )
-		(LabelSpec
-		   label: 'SearchBarImageInfoLabel'
-		   name: 'SearchBarImageInfoLabel'
-		   layout: (LayoutFrame 524 0 5 0 548 0 27 0)
-		   hasCharacterOrientedLabel: false
-		   translateLabel: true
-		   labelChannel: searchBarImageInfoLabelHolder
-		 )
-		(LabelSpec
-		   label: 'SearchBarInfoLabel'
-		   name: 'SearchBarInfoLabel'
-		   layout: (LayoutFrame 551 0 5 0 829 0 27 0)
-		   translateLabel: true
-		   labelChannel: searchBarInfoLabelHolder
-		   adjust: left
-		 )
-		)
-
-	     )
-	     postBuildCallback: postBuildSearchBoxView:
-	   )
-	  )
-
+         collection: (
+          (MenuPanelSpec
+             name: 'ToolBar'
+             layout: (LayoutFrame 0 0 0 0 0 1 30 0)
+             uuid: '37d7f820-b8d0-11e8-aeef-b8f6b1108e05'
+             menu: menuToolBar
+             textDefault: true
+           )
+          (VariableVerticalPanelSpec
+             name: 'TranslationsVariableVerticalPanel'
+             layout: (LayoutFrame 0 0 30 0 0 1 -32 1)
+             uuid: '37d7f9ce-b8d0-11e8-aeef-b8f6b1108e05'
+             component: 
+            (SpecCollection
+               collection: (
+                (DataSetSpec
+                   name: 'KeyStringAndLanguageSelectionTable'
+                   uuid: '37d7fb2c-b8d0-11e8-aeef-b8f6b1108e05'
+                   model: selectedKeyRow
+                   menu: keyStringAndLanguageSelectionTableMenu
+                   hasHorizontalScrollBar: true
+                   hasVerticalScrollBar: true
+                   dataList: keyStringAndLanguageSelectionTable
+                   columnHolder: keyStringAndLanguageSelectionTableColumnDescriptionHolder
+                   beDependentOfRows: true
+                   columnAdaptor: yourself
+                   postBuildCallback: postBuildDataSet:
+                 )
+                (VariableVerticalPanelSpec
+                   name: 'VariableVerticalPanel1'
+                   uuid: '37d7fd48-b8d0-11e8-aeef-b8f6b1108e05'
+                   component: 
+                  (SpecCollection
+                     collection: (
+                      (ViewSpec
+                         name: 'Box1'
+                         uuid: '37d7fe24-b8d0-11e8-aeef-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (LabelSpec
+                               label: 'Original String (Key):'
+                               name: 'Label2'
+                               layout: (LayoutFrame 0 0 -2 0 0 1 28 0)
+                               uuid: '37d7fee2-b8d0-11e8-aeef-b8f6b1108e05'
+                               translateLabel: true
+                               adjust: left
+                             )
+                            (TextEditorSpec
+                               name: 'OriginalText'
+                               layout: (LayoutFrame 0 0 27 0 0 1 -2 1)
+                               uuid: '37d8002c-b8d0-11e8-aeef-b8f6b1108e05'
+                               model: originalTextHolder
+                               hasHorizontalScrollBar: true
+                               hasVerticalScrollBar: true
+                               modifiedChannel: originalTextModifiedHolder
+                               acceptCallBack: languageTextAccepted
+                               hasKeyboardFocusInitially: false
+                             )
+                            )
+                          
+                         )
+                       )
+                      (ViewSpec
+                         name: 'Box3'
+                         uuid: '37d801bc-b8d0-11e8-aeef-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (LabelSpec
+                               label: 'Select Another Language as example:'
+                               name: 'Label3'
+                               layout: (LayoutFrame 0 0 -6 0 0 1 24 0)
+                               uuid: '37d80270-b8d0-11e8-aeef-b8f6b1108e05'
+                               translateLabel: true
+                               adjust: left
+                             )
+                            (ComboBoxSpec
+                               name: 'ComboBox1'
+                               layout: (LayoutFrame 281 0 -2 0 406 0 18 0)
+                               uuid: '37d80360-b8d0-11e8-aeef-b8f6b1108e05'
+                               model: exampleLanguageSelectionHolder
+                               immediateAccept: false
+                               acceptOnLeave: true
+                               acceptOnLostFocus: true
+                               acceptOnPointerLeave: false
+                               comboList: shownLanguages
+                               useIndex: false
+                             )
+                            (TextEditorSpec
+                               name: 'ExampleLanguageText'
+                               layout: (LayoutFrame 0 0 30 0 0 1 0 1)
+                               uuid: '37d805cc-b8d0-11e8-aeef-b8f6b1108e05'
+                               model: exampleLanguageTextHolder
+                               hasHorizontalScrollBar: true
+                               hasVerticalScrollBar: true
+                               isReadOnly: true
+                               hasKeyboardFocusInitially: false
+                             )
+                            )
+                          
+                         )
+                       )
+                      (ViewSpec
+                         name: 'Box2'
+                         uuid: '37d8070c-b8d0-11e8-aeef-b8f6b1108e05'
+                         component: 
+                        (SpecCollection
+                           collection: (
+                            (LabelSpec
+                               label: 'Translated String:'
+                               name: 'Label1'
+                               layout: (LayoutFrame 0 0 0 0 0 1 30 0)
+                               uuid: '37d807ca-b8d0-11e8-aeef-b8f6b1108e05'
+                               translateLabel: true
+                               adjust: left
+                             )
+                            (TextEditorSpec
+                               name: 'LanguageText'
+                               layout: (LayoutFrame 0 0 30 0 0 1 0 1)
+                               uuid: '37d808ba-b8d0-11e8-aeef-b8f6b1108e05'
+                               model: languageTextHolder
+                               hasHorizontalScrollBar: true
+                               hasVerticalScrollBar: true
+                               acceptChannel: languageTextAcceptHolder
+                               modifiedChannel: languageTextModifiedHolder
+                               acceptCallBack: languageTextAccepted
+                               hasKeyboardFocusInitially: false
+                               postBuildCallback: languageEditorBuilt:
+                             )
+                            (ActionButtonSpec
+                               label: 'Paste Original'
+                               name: 'Button1'
+                               layout: (LayoutFrame -186 0.83085250338295003 0 0 -64 0.83085250338295003 27 0)
+                               uuid: '37d809fa-b8d0-11e8-aeef-b8f6b1108e05'
+                               translateLabel: true
+                               model: pasteOriginalInLanguageText
+                               enableChannel: pasteOriginalEnableHolder
+                               disabledLogo: 'Paste Original'
+                             )
+                            (ActionButtonSpec
+                               label: 'Paste Previous'
+                               name: 'pastePreviousTranslation'
+                               layout: (LayoutFrame -42 0.83085250338295003 0 0 118 0.83085250338295003 27 0)
+                               uuid: '37d80b80-b8d0-11e8-aeef-b8f6b1108e05'
+                               translateLabel: true
+                               model: pastePreviousTranslationInLanguageText
+                               enableChannel: pastePreviousTranslationEnableHolder
+                               disabledLogo: 'Paste Previous'
+                             )
+                            )
+                          
+                         )
+                       )
+                      )
+                    
+                   )
+                   handles: (Any 0.33000000000000002 0.67000000000000004 1.0)
+                 )
+                )
+              
+             )
+             handles: (Any 0.5 1.0)
+             postBuildCallback: postBuildTranslationsPanel:
+           )
+          (ViewSpec
+             name: 'SearchBox'
+             layout: (LayoutFrame 0 0 -32 1 0 1 0 1)
+             uuid: '37d80cf2-b8d0-11e8-aeef-b8f6b1108e05'
+             level: -1
+             visibilityChannel: searchBoxVisible
+             component: 
+            (SpecCollection
+               collection: (
+                (ActionButtonSpec
+                   label: 'closeSearchBarIcon'
+                   name: 'closeSearchBarButton'
+                   layout: (LayoutFrame 4 0 5 0 25 0 26 0)
+                   uuid: '37d80dc4-b8d0-11e8-aeef-b8f6b1108e05'
+                   hasCharacterOrientedLabel: false
+                   translateLabel: true
+                   model: closeSearchBar
+                 )
+                (LabelSpec
+                   label: 'Search:'
+                   name: 'SearchLabel'
+                   layout: (LayoutFrame 30 0 5 0 100 0 27 0)
+                   uuid: '37d80ef0-b8d0-11e8-aeef-b8f6b1108e05'
+                   translateLabel: true
+                   adjust: right
+                 )
+                (InputFieldSpec
+                   name: 'SearchEntryField'
+                   layout: (LayoutFrame 100 0 5 0 257 0 27 0)
+                   uuid: '37d80fd6-b8d0-11e8-aeef-b8f6b1108e05'
+                   model: searchTextHolder
+                   immediateAccept: true
+                   acceptOnReturn: true
+                   acceptOnTab: true
+                   acceptOnLostFocus: true
+                   modifiedChannel: searchTextModifiedHolder
+                   acceptOnPointerLeave: false
+                   postBuildCallback: postBuildSearchTextView:
+                 )
+                (ActionButtonSpec
+                   label: 'searchNextIcon'
+                   name: 'SearchNextButton'
+                   layout: (LayoutFrame 264 0 5 0 285 0 26 0)
+                   uuid: '37d8117a-b8d0-11e8-aeef-b8f6b1108e05'
+                   hasCharacterOrientedLabel: false
+                   translateLabel: true
+                   model: searchNextText
+                 )
+                (ActionButtonSpec
+                   label: 'searchPreviousIcon'
+                   name: 'searchPreviousButton'
+                   layout: (LayoutFrame 292 0 5 0 313 0 26 0)
+                   uuid: '37d812b0-b8d0-11e8-aeef-b8f6b1108e05'
+                   hasCharacterOrientedLabel: false
+                   translateLabel: true
+                   model: searchPreviousText
+                 )
+                (CheckBoxSpec
+                   label: 'Ignore case'
+                   name: 'IgnoreCaseCheckBox'
+                   layout: (LayoutFrame 322 0 5 0 518 0 27 0)
+                   uuid: '37d813d2-b8d0-11e8-aeef-b8f6b1108e05'
+                   model: ignoreCaseHolder
+                   translateLabel: true
+                 )
+                (LabelSpec
+                   label: 'SearchBarImageInfoLabel'
+                   name: 'SearchBarImageInfoLabel'
+                   layout: (LayoutFrame 524 0 5 0 548 0 27 0)
+                   uuid: '37d81512-b8d0-11e8-aeef-b8f6b1108e05'
+                   hasCharacterOrientedLabel: false
+                   translateLabel: true
+                   labelChannel: searchBarImageInfoLabelHolder
+                 )
+                (LabelSpec
+                   label: 'SearchBarInfoLabel'
+                   name: 'SearchBarInfoLabel'
+                   layout: (LayoutFrame 551 0 5 0 829 0 27 0)
+                   uuid: '37d8160c-b8d0-11e8-aeef-b8f6b1108e05'
+                   translateLabel: true
+                   labelChannel: searchBarInfoLabelHolder
+                   adjust: left
+                 )
+                )
+              
+             )
+             postBuildCallback: postBuildSearchBoxView:
+           )
+          )
+        
        )
      )
 ! !
@@ -1122,7 +1151,7 @@
 	    selectedAssociation value sameAs: association value] ifNone:[collection add: association].
 	collection].
     selectedTranslation := Dialog
-	choose:'Choose one if you consider it┤s usefull to translate:
+	choose:'Choose one if you consider it┬┤s usefull to translate:
     ',
 	'<', key, '>  ', (self currentExampleLanguageText ifNil:[''])
 	fromList: (similarTranslationsAssociations collect:[:each |  '<', each key, '>  ', each value])
@@ -1380,22 +1409,27 @@
 !
 
 update:something with:aParameter from:changedObject
+    languageEditor modified ifTrue:[
+        languageEditor accept
+    ].    
     changedObject == shownLanguages ifTrue:[
-	 self shownLanguagesChanged.
-	 ^ self.
+         self shownLanguagesChanged.
+         ^ self.
     ].
     changedObject == languageTextAcceptHolder ifTrue:[
-	 self updateLanguageTextModification.
-	 ^ self.
+         self updateLanguageTextModification.
+         ^ self.
     ].
     changedObject == exampleLanguageSelectionHolder ifTrue:[
-	self updateExampleLanguageText.
-	^ self.
+        self updateExampleLanguageText.
+        ^ self.
     ].
     changedObject == showMissingTranslationsOnly ifTrue:[
-	self showMissingTranslationsOnlyChanged.
-	^ self.
+        self showMissingTranslationsOnlyChanged.
+        ^ self.
     ].
+
+    "Modified: / 15-09-2018 / 12:17:07 / Claus Gittinger"
 !
 
 updateCopyPreviousTranslationButtonEnabled
@@ -1507,17 +1541,20 @@
 !
 
 requestFilenameFor: lang
-  "Returns a filename to save the language resource and updates the language's info"
+    "Returns a filename to save the language resource and updates the language's info"
+
     |aFilename|
 
     aFilename := Dialog
-	requestFileName:(resources string:'Name of resource file to save %1:' with:lang asString)
-	default:nil
-	pattern:'*.rs'.
+        requestFileName:(resources string:'Name of resource file to save %1:' with:lang asString)
+        default:nil
+        pattern:'*.rs'.
 
     aFilename isEmptyOrNil ifTrue:[^ nil ].
     keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename.
     ^aFilename asFilename
+
+    "Modified (format): / 15-09-2018 / 12:28:28 / Claus Gittinger"
 !
 
 requestLanguage
@@ -1528,10 +1565,26 @@
 !
 
 requestLanguageToSave
+    |question filename|
+
+    question := resources string:'Which language do you want to save?'.
+    
+    lastLanguage notNil ifTrue:[
+        filename := keyStringsToLanguageMappings filenameAt:lastLanguage.
+        filename notNil ifTrue:[
+            question := question , Character cr , 
+                        (resources string:'(Last was "%1" in "%2")'
+                                   with:lastLanguage
+                                   with:(filename asFilename pathName)).
+        ].    
+    ].    
+
     ^ Dialog
-	choose:'Which language do you want to save?'
-	fromList:languagesList
-	lines:10
+        choose:question
+        fromList:languagesList
+        lines:10
+
+    "Modified: / 15-09-2018 / 12:39:30 / Claus Gittinger"
 !
 
 requestPackage
@@ -1594,6 +1647,8 @@
 
 languageEditorBuilt:aView
     languageEditor := aView.
+
+    "Modified: / 15-09-2018 / 12:16:22 / Claus Gittinger"
 !
 
 postBuildDataSet:aView
@@ -2705,16 +2760,19 @@
 !
 
 saveLanguage: lang
-"Saves the language in the fileName from where the language resource was obtained."
-    |aFilename|
+    "Saves the language in the fileName from where the language resource was obtained."
+    |filename|
 
     lang isNil ifTrue:[^ self].
-    aFilename := keyStringsToLanguageMappings filenameAt:lang.
-    aFilename isNil ifTrue:[
-	aFilename := self requestFilenameFor: lang.
-	aFilename isNil ifTrue:[^ self].
+    filename := keyStringsToLanguageMappings filenameAt:lang.
+    filename isNil ifTrue:[
+        "/ ask
+        filename := self requestFilenameFor: lang.
+        filename isNil ifTrue:[^ self].
     ].
-    self saveResourceFile:aFilename for:lang asSymbol
+    self saveResourceFile:filename for:lang asSymbol
+
+    "Modified (format): / 15-09-2018 / 12:29:59 / Claus Gittinger"
 !
 
 saveResourceFile: aFilename for: lang
@@ -3286,8 +3344,8 @@
     self addLanguage:#'de'.
     self addLanguage:#'fr'.
 
-    self at:'open' language:#'de' put:'÷ffnen'.
-    self at:'close' language:#'de' put:'schlie▀en'.
+    self at:'open' language:#'de' put:'├Âffnen'.
+    self at:'close' language:#'de' put:'schlie├čen'.
     self at:'yes' language:#'de' put:'ja'.
     self at:'no' language:#'de' put:'nein'.
     self at:'cancel' language:#'de' put:'abbrechen'.
@@ -3425,3 +3483,4 @@
 version_CVS
     ^ '$Header$'
 ! !
+