diff -r 88fbe1703c31 -r 6ad1f853d2e9 Tools__InternationalLanguageTranslationEditor.st --- a/Tools__InternationalLanguageTranslationEditor.st Fri Nov 14 14:35:11 2008 +0100 +++ b/Tools__InternationalLanguageTranslationEditor.st Sat Nov 15 13:16:45 2008 +0100 @@ -63,7 +63,7 @@ documentation to be added. [author:] - cg (cg@FUSI) + cg (cg@FUSI) [instance variables:] @@ -77,16 +77,16 @@ examples " Starting the application: - [exBegin] + [exBegin] InternationalLanguageTranslationEditor open - [exEnd] + [exEnd] more examples to be added: - [exBegin] - ... add code fragment for + [exBegin] + ... add code fragment for ... executable example here ... - [exEnd] + [exEnd] " ! @@ -112,8 +112,8 @@ ^Icon - constantNamed:#'Psiware::SystemManagement class closeSearchBar' - ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class closeSearchBar' + ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GQ\SD1LSD1LSD1LSD1LWGP@@@@@@ @ATGA@HA@PDA@PDA@PHDA1T@@@@@@@@TAENG!!(VB XA?_''57QPPT@@@@@@@@E NJ^V)&X%)UTT5IV7 KE @@@@@@@A A"7Q,#&9VS%^MQ$ER$9JR$9ION''(PF0@@@@@@@A ^Icon - constantNamed:#'Psiware::SystemManagement class restartSearchBarIcon' - ifAbsentPut:[(Depth24Image new) width: 20; height: 20; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class restartSearchBarIcon' + ifAbsentPut:[(Depth24Image new) width: 20; height: 20; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@?>SX?>''V?>;)?>O!!?>G]?>WY@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?=3\:[>''5;JF/Y-.+XY),(U. 6JZK?=J1?>V<>.+I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?>?'':+:!!19]U6*-Q?]Y/?>RC?>*!!?>F_>+=939UL2Y!!L>MJT??W[@@@@@@@@@@@@@@@@@@@@ @@@@??[-=\^&1IEP=1/?=5$?=52?>NT?=^Q?>BP?>FG>;1]6JEO8;^H?]3I@@@@@@@@@@@@@@@@@@@@?\*95Y-)<+!!$??.F?>)17+-U8,E40Y-.09I) @@ -174,8 +174,8 @@ ^Icon - constantNamed:#'Psiware::SystemManagement class searchNextIcon' - ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class searchNextIcon' + ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZE)ZZ@@@@@@@@@@@@@@@ @@@@@@AFF XA@PXUQ @@@@@@@@@@@@@@@@@*@Q5G^WX6E0D*@@@@@@@@@@@@@@@,AVQ?\&1#W&X8@20@@@@@@@@@@@A[@U==\F-"VUQOUSLAV0@@@@@@@@@@ G19-D ^Icon - constantNamed:#'Psiware::SystemManagement class searchPreviousIcon' - ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class searchPreviousIcon' + ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%)^W% @@@@@@@@@@@@@@ @@@@@@BMJ0$A@P$+#P@@@@@@@@@@@@@@@@AQ@Q$4XU 0E@EQ@@@@@@@@@@@@@@ALAD-.XE]VS$(/@$0@@@@@@@@@@@BD@UA/YU4&IT%EP28A!!@@@@@@@@@@@ I11:Z&\)NS$"QC=ADRD@@@@@@@@@# !!H]F$N2 H# @@@@@@@H,A GE\FI"Y&Y VMS)@@X,@@@@@@@BG@XE3HIJY&Y&Y$!!,=P FG@@@@@@@@ ]M @@ -226,8 +226,8 @@ ^Icon - constantNamed:#'Psiware::SystemManagement class searchToolBarIcon' - ifAbsentPut:[(Depth24Image new) width: 22; height: 22; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class searchToolBarIcon' + ifAbsentPut:[(Depth24Image new) width: 22; height: 22; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4][>4][>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -263,8 +263,8 @@ ^Icon - constantNamed:#'Psiware::SystemManagement class warningSearchBarIcon' - ifAbsentPut:[(Depth24Image new) width: 22; height: 19; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' + constantNamed:#'Psiware::SystemManagement class warningSearchBarIcon' + ifAbsentPut:[(Depth24Image new) width: 22; height: 19; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?:.+_;?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@?]SZ)5]X.6!! -HM2??''*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?>39-7*B4H&G>[N+%%MJ>\#A@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<+R?*U1&?=CN?>W^4HJ@+FY$?>+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -298,247 +298,247 @@ - ^ + ^ #(FullSpec - name: windowSpec - window: + name: windowSpec + window: (WindowSpec - label: 'InternationalLanguageTranslationEditor' - name: 'InternationalLanguageTranslationEditor' - min: (Point 10 10) - bounds: (Rectangle 0 0 774 610) - menu: mainMenu - ) - component: + label: 'InternationalLanguageTranslationEditor' + name: 'InternationalLanguageTranslationEditor' + min: (Point 10 10) + bounds: (Rectangle 0 0 774 610) + menu: mainMenu + ) + 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 - ) - ) - - ) - ) - (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 197 0 -2 0 322 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 - ) - ) - - ) - ) - (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 - postBuildCallback: languageEditorBuilt: - ) - (ActionButtonSpec - label: 'Paste Previous' - name: 'pastePreviousTranslation' - layout: (LayoutOrigin 0 0.83085250338295 0 0.03448275862069) - translateLabel: true - model: pastePreviousTranslationInLanguageText - enableChannel: pastePreviousTranslationEnableHolder - disabledLogo: 'Paste Previous' - ) - (ActionButtonSpec - label: 'Paste Original' - name: 'Button1' - layout: (LayoutOrigin -95 0.83085250338295 0 0.03448275862069) - translateLabel: true - model: pasteOriginalInLanguageText - enableChannel: pasteOriginalEnableHolder - disabledLogo: 'Paste Original' - ) - ) - - ) - ) - ) - - ) - handles: (Any 0.33333333333333 0.66666666666667 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 81 0 27 0) - translateLabel: true - adjust: right - ) - (InputFieldSpec - name: 'SearchEntryField' - layout: (LayoutFrame 87 0 5 0 244 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 251 0 5 0 272 0 26 0) - hasCharacterOrientedLabel: false - translateLabel: true - model: searchNextText - ) - (ActionButtonSpec - label: 'searchPreviousIcon' - name: 'searchPreviousButton' - layout: (LayoutFrame 279 0 5 0 300 0 26 0) - hasCharacterOrientedLabel: false - translateLabel: true - model: searchPreviousText - ) - (CheckBoxSpec - label: 'Ignore case' - name: 'IgnoreCaseCheckBox' - layout: (LayoutFrame 309 0 5 0 505 0 27 0) - model: ignoreCaseHolder - translateLabel: true - ) - (LabelSpec - label: 'SearchBarImageInfoLabel' - name: 'SearchBarImageInfoLabel' - layout: (LayoutFrame 511 0 5 0 535 0 27 0) - hasCharacterOrientedLabel: false - translateLabel: true - labelChannel: searchBarImageInfoLabelHolder - ) - (LabelSpec - label: 'SearchBarInfoLabel' - name: 'SearchBarInfoLabel' - layout: (LayoutFrame 538 0 5 0 816 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) + 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 + ) + ) + + ) + ) + (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 197 0 -2 0 322 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 + ) + ) + + ) + ) + (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 + postBuildCallback: languageEditorBuilt: + ) + (ActionButtonSpec + label: 'Paste Previous' + name: 'pastePreviousTranslation' + layout: (LayoutOrigin 0 0.83085250338295 0 0.03448275862069) + translateLabel: true + model: pastePreviousTranslationInLanguageText + enableChannel: pastePreviousTranslationEnableHolder + disabledLogo: 'Paste Previous' + ) + (ActionButtonSpec + label: 'Paste Original' + name: 'Button1' + layout: (LayoutOrigin -95 0.83085250338295 0 0.03448275862069) + translateLabel: true + model: pasteOriginalInLanguageText + enableChannel: pasteOriginalEnableHolder + disabledLogo: 'Paste Original' + ) + ) + + ) + ) + ) + + ) + handles: (Any 0.33333333333333 0.66666666666667 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 81 0 27 0) + translateLabel: true + adjust: right + ) + (InputFieldSpec + name: 'SearchEntryField' + layout: (LayoutFrame 87 0 5 0 244 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 251 0 5 0 272 0 26 0) + hasCharacterOrientedLabel: false + translateLabel: true + model: searchNextText + ) + (ActionButtonSpec + label: 'searchPreviousIcon' + name: 'searchPreviousButton' + layout: (LayoutFrame 279 0 5 0 300 0 26 0) + hasCharacterOrientedLabel: false + translateLabel: true + model: searchPreviousText + ) + (CheckBoxSpec + label: 'Ignore case' + name: 'IgnoreCaseCheckBox' + layout: (LayoutFrame 309 0 5 0 505 0 27 0) + model: ignoreCaseHolder + translateLabel: true + ) + (LabelSpec + label: 'SearchBarImageInfoLabel' + name: 'SearchBarImageInfoLabel' + layout: (LayoutFrame 511 0 5 0 535 0 27 0) + hasCharacterOrientedLabel: false + translateLabel: true + labelChannel: searchBarImageInfoLabelHolder + ) + (LabelSpec + label: 'SearchBarInfoLabel' + name: 'SearchBarInfoLabel' + layout: (LayoutFrame 538 0 5 0 816 0 27 0) + translateLabel: true + labelChannel: searchBarInfoLabelHolder + adjust: left + ) + ) + + ) + postBuildCallback: postBuildSearchBoxView: + ) + ) + + ) ) ! ! @@ -558,38 +558,38 @@ - ^ + ^ #(Menu - ( - (MenuItem - label: 'Set Current NameSpace' - itemValue: changeLastNameSpace - translateLabel: true - ) - (MenuItem - label: 'Search String in Current NameSpace' - itemValue: searchStringInLastNameSpace - translateLabel: true - ) - (MenuItem - label: '-' - isVisible: #false - ) - (MenuItem - label: 'Set Current Package' - itemValue: changeLastPackage - translateLabel: true - isVisible: #false - ) - (MenuItem - label: 'Search String in Current Package' - itemValue: searchStringInLastPackage - translateLabel: true - isVisible: #false - ) - ) - nil - nil + ( + (MenuItem + label: 'Set Current NameSpace' + itemValue: changeLastNameSpace + translateLabel: true + ) + (MenuItem + label: 'Search String in Current NameSpace' + itemValue: searchStringInLastNameSpace + translateLabel: true + ) + (MenuItem + label: '-' + isVisible: #false + ) + (MenuItem + label: 'Set Current Package' + itemValue: changeLastPackage + translateLabel: true + isVisible: #false + ) + (MenuItem + label: 'Search String in Current Package' + itemValue: searchStringInLastPackage + translateLabel: true + isVisible: #false + ) + ) + nil + nil ) ! @@ -607,232 +607,232 @@ - ^ + ^ #(Menu - ( - (MenuItem - label: 'File' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - label: 'New' - itemValue: menuNew - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Open Resources for Package or Project...' - itemValue: menuOpenByPackage - translateLabel: true - ) - (MenuItem - label: 'Open Resource File...' - itemValue: menuOpen - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Save All Resource Files' - itemValue: menuSaveAll - translateLabel: true - ) - (MenuItem - label: 'Save Resource File' - itemValue: menuSave - translateLabel: true - ) - (MenuItem - label: 'Save Resource File As...' - itemValue: menuSaveAs - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Import existing translations from file...' - itemValue: importExistingTranslationsFromFile - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Set Current NameSpace' - itemValue: changeLastNameSpace - translateLabel: true - ) - (MenuItem - label: 'Set Current Package' - itemValue: changeLastPackage - translateLabel: true - isVisible: #false - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Exit' - itemValue: closeRequest - translateLabel: true - ) - ) - nil - nil - ) - ) - (MenuItem - label: 'View' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - label: 'Show Missing Translations Only' - translateLabel: true - indication: showMissingTranslationsOnly - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Shown Languages' - translateLabel: true - submenuChannel: shownLanguagesMenu - ) - ) - nil - nil - ) - ) - (MenuItem - label: 'Languages' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - label: 'Add Language...' - itemValue: addLanguage - translateLabel: true - ) - (MenuItem - label: 'Remove Language...' - itemValue: removeLanguage - translateLabel: true - ) - ) - nil - nil - ) - ) - (MenuItem - label: 'Translations' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - label: 'Add Translation...' - itemValue: addTranslation - translateLabel: true - ) - (MenuItem - label: 'Remove Translation...' - itemValue: removeTranslation - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Extract from Class...' - itemValue: extractTranslationsFromClass - translateLabel: true - ) - (MenuItem - label: 'Extract from Project...' - itemValue: extractTranslationsFromProject - translateLabel: true - ) - (MenuItem - label: 'Extract from NameSpace...' - itemValue: extractTranslationsFromNameSpace - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Run Application and Collect Translations...' - itemValue: runApplicationAndCollectTranslations - translateLabel: true - ) - ) - nil - nil - ) - ) - (MenuItem - label: 'Preferences' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - label: 'Auto Accept Changes' - translateLabel: true - indication: autoAcceptHolder - ) - (MenuItem - label: 'Search For Similar Translations' - translateLabel: true - indication: searchForSimilarTranslationEnableHolder - ) - (MenuItem - label: 'Always Write UTF8' - translateLabel: true - indication: alwaysWriteUTF8Holder - ) - ) - nil - nil - ) - ) - (MenuItem - label: 'Help' - translateLabel: true - startGroup: right - submenu: - (Menu - ( - (MenuItem - label: 'Documentation' - itemValue: openDocumentation - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'About this Application...' - itemValue: openAboutThisApplication - translateLabel: true - ) - ) - nil - nil - ) - ) - ) - nil - nil + ( + (MenuItem + label: 'File' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + label: 'New' + itemValue: menuNew + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Open Resources for Package or Project...' + itemValue: menuOpenByPackage + translateLabel: true + ) + (MenuItem + label: 'Open Resource File...' + itemValue: menuOpen + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Save All Resource Files' + itemValue: menuSaveAll + translateLabel: true + ) + (MenuItem + label: 'Save Resource File' + itemValue: menuSave + translateLabel: true + ) + (MenuItem + label: 'Save Resource File As...' + itemValue: menuSaveAs + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Import existing translations from file...' + itemValue: importExistingTranslationsFromFile + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Set Current NameSpace' + itemValue: changeLastNameSpace + translateLabel: true + ) + (MenuItem + label: 'Set Current Package' + itemValue: changeLastPackage + translateLabel: true + isVisible: #false + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Exit' + itemValue: closeRequest + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem + label: 'View' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + label: 'Show Missing Translations Only' + translateLabel: true + indication: showMissingTranslationsOnly + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Shown Languages' + translateLabel: true + submenuChannel: shownLanguagesMenu + ) + ) + nil + nil + ) + ) + (MenuItem + label: 'Languages' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + label: 'Add Language...' + itemValue: addLanguage + translateLabel: true + ) + (MenuItem + label: 'Remove Language...' + itemValue: removeLanguage + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem + label: 'Translations' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + label: 'Add Translation...' + itemValue: addTranslation + translateLabel: true + ) + (MenuItem + label: 'Remove Translation...' + itemValue: removeTranslation + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Extract from Class...' + itemValue: extractTranslationsFromClass + translateLabel: true + ) + (MenuItem + label: 'Extract from Project...' + itemValue: extractTranslationsFromProject + translateLabel: true + ) + (MenuItem + label: 'Extract from NameSpace...' + itemValue: extractTranslationsFromNameSpace + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Run Application and Collect Translations...' + itemValue: runApplicationAndCollectTranslations + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem + label: 'Preferences' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + label: 'Auto Accept Changes' + translateLabel: true + indication: autoAcceptHolder + ) + (MenuItem + label: 'Search For Similar Translations' + translateLabel: true + indication: searchForSimilarTranslationEnableHolder + ) + (MenuItem + label: 'Always Write UTF8' + translateLabel: true + indication: alwaysWriteUTF8Holder + ) + ) + nil + nil + ) + ) + (MenuItem + label: 'Help' + translateLabel: true + startGroup: right + submenu: + (Menu + ( + (MenuItem + label: 'Documentation' + itemValue: openDocumentation + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'About this Application...' + itemValue: openAboutThisApplication + translateLabel: true + ) + ) + nil + nil + ) + ) + ) + nil + nil ) ! @@ -850,19 +850,19 @@ - ^ + ^ #(Menu - ( - (MenuItem - enabled: pastePreviousTranslationEnableHolder - label: 'Paste Previous Translation' - itemValue: pastePreviousTranslationInLanguageText - nameKey: pastePreviousTranslationInLanguageText - translateLabel: true - ) - ) - nil - nil + ( + (MenuItem + enabled: pastePreviousTranslationEnableHolder + label: 'Paste Previous Translation' + itemValue: pastePreviousTranslationInLanguageText + nameKey: pastePreviousTranslationInLanguageText + translateLabel: true + ) + ) + nil + nil ) ! @@ -880,53 +880,53 @@ - ^ + ^ #(Menu - ( - (MenuItem - label: 'Save' - itemValue: menuSave - translateLabel: true - labelImage: (ResourceRetriever XPToolbarIconLibrary saveImageIcon) - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Add Translation' - itemValue: addTranslation - translateLabel: true - labelImage: (ResourceRetriever XPToolbarIconLibrary newRowIcon) - ) - (MenuItem - label: 'Remove Translation' - itemValue: removeTranslation - translateLabel: true - labelImage: (ResourceRetriever XPToolbarIconLibrary removeRowIcon) - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Search' - itemValue: search - translateLabel: true - shortcutKey: Ctrlf - labelImage: (ResourceRetriever #'Tools::InternationalLanguageTranslationEditor' searchToolBarIcon) - ) - (MenuItem - label: '' - ) - (MenuItem - label: 'Stop Application' - itemValue: stopApplication - translateLabel: true - isVisible: stopApplicationIconVisibleHolder - labelImage: (ResourceRetriever XPToolbarIconLibrary stop16x16Icon) - ) - ) - nil - nil + ( + (MenuItem + label: 'Save' + itemValue: menuSave + translateLabel: true + labelImage: (ResourceRetriever XPToolbarIconLibrary saveImageIcon) + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Add Translation' + itemValue: addTranslation + translateLabel: true + labelImage: (ResourceRetriever XPToolbarIconLibrary newRowIcon) + ) + (MenuItem + label: 'Remove Translation' + itemValue: removeTranslation + translateLabel: true + labelImage: (ResourceRetriever XPToolbarIconLibrary removeRowIcon) + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Search' + itemValue: search + translateLabel: true + shortcutKey: Ctrlf + labelImage: (ResourceRetriever #'Tools::InternationalLanguageTranslationEditor' searchToolBarIcon) + ) + (MenuItem + label: '' + ) + (MenuItem + label: 'Stop Application' + itemValue: stopApplication + translateLabel: true + isVisible: stopApplicationIconVisibleHolder + labelImage: (ResourceRetriever XPToolbarIconLibrary stop16x16Icon) + ) + ) + nil + nil ) ! ! @@ -938,9 +938,9 @@ fn := aFilename asFilename. self new - allButOpen; - readResourceFile:fn asLanguage:fn withoutSuffix baseName; - openWindow. + allButOpen; + readResourceFile:fn asLanguage:fn withoutSuffix baseName; + openWindow. ! ! !InternationalLanguageTranslationEditor class methodsFor:'tableColumns specs'! @@ -960,10 +960,10 @@ ^#( (DataSetColumnSpec - label: 'Key' - labelButtonType: Button - minWidth: 50 - model: keyStringInRow: + label: 'Key' + labelButtonType: Button + minWidth: 50 + model: keyStringInRow: ) ) ! @@ -983,19 +983,19 @@ ^#( (DataSetColumnSpec - label: lang - labelButtonType: Button - minWidth: 50 - editorType: None - model: columnInRow:at: - backgroundSelector: getBackgroundForRow:rowNr:col: + label: lang + labelButtonType: Button + minWidth: 50 + editorType: None + model: columnInRow:at: + backgroundSelector: getBackgroundForRow:rowNr:col: ) ) ! ! !InternationalLanguageTranslationEditor methodsFor:'accessing'! -currentSelectionIndex +currentSelectionIndex ^ self selectedKeyRow value @@ -1019,14 +1019,14 @@ newLanguageText "/ languageEditor accept - ^self languageTextHolder value isNil - ifTrue:[''] - ifFalse:[self languageTextHolder value asCollectionOfLines first.] + ^self languageTextHolder value isNil + ifTrue:[''] + ifFalse:[self languageTextHolder value asCollectionOfLines first.] ! objectsList - ^ keyStringsToLanguageMappings + ^ keyStringsToLanguageMappings ! selectListIndex: rowIndex @@ -1040,7 +1040,7 @@ "Modified: / 22-06-2007 / 13:45:54 / Administrador" ! -selectedKey +selectedKey "Returns the current selected key if there is one row seleted. Otherwise, returns nil" |rowSelectionIndex | @@ -1064,52 +1064,52 @@ "Looks for a quite similar translation for the key and display a dialog with available options" |similarTranslationsAssociations selectedTranslation key| - self shouldSearchForSimilarTranslation ifFalse:[^self]. + self shouldSearchForSimilarTranslation ifFalse:[^self]. key := self selectedKey. key isNil ifTrue:[^ self.]. similarTranslationsAssociations := keyStringsToLanguageMappings searchForSimilarTranslation: key in: self currentLanguage. - similarTranslationsAssociations isEmpty ifTrue:[^self]. + similarTranslationsAssociations isEmpty ifTrue:[^self]. similarTranslationsAssociations := similarTranslationsAssociations associations inject: OrderedCollection new into:[:collection :association | - collection detect:[:selectedAssociation | - selectedAssociation value sameAs: association value] ifNone:[collection add: association]. - collection]. - selectedTranslation := Dialog - choose:'Choose one if you consider it´s usefull to translate: - ', - '<', key, '> ', (self currentExampleLanguageText ifNil:['']) - fromList: (similarTranslationsAssociations collect:[:each | '<', each key, '> ', each value]) - values: (similarTranslationsAssociations collect:[:each | each value]) - lines:10 - cancel: nil. - - selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. + collection detect:[:selectedAssociation | + selectedAssociation value sameAs: association value] ifNone:[collection add: association]. + collection]. + selectedTranslation := Dialog + choose:'Choose one if you consider it´s usefull to translate: + ', + '<', key, '> ', (self currentExampleLanguageText ifNil:['']) + fromList: (similarTranslationsAssociations collect:[:each | '<', each key, '> ', each value]) + values: (similarTranslationsAssociations collect:[:each | each value]) + lines:10 + cancel: nil. + + selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. ! ! !InternationalLanguageTranslationEditor methodsFor:'aspects'! alwaysWriteUTF8Holder - alwaysWriteUTF8Holder isNil ifTrue:[alwaysWriteUTF8Holder := true asValue]. + alwaysWriteUTF8Holder isNil ifTrue:[alwaysWriteUTF8Holder := true asValue]. ^ alwaysWriteUTF8Holder ! autoAcceptHolder - autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. + autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. ^ autoAcceptHolder ! exampleLanguageSelectionHolder exampleLanguageSelectionHolder isNil ifTrue:[ - exampleLanguageSelectionHolder := self exampleLanguageByDefault asValue. - exampleLanguageSelectionHolder addDependent:self. - ]. + exampleLanguageSelectionHolder := self exampleLanguageByDefault asValue. + exampleLanguageSelectionHolder addDependent:self. + ]. ^ exampleLanguageSelectionHolder ! exampleLanguageTextHolder exampleLanguageTextHolder isNil ifTrue:[ - exampleLanguageTextHolder := '' asValue. + exampleLanguageTextHolder := '' asValue. ]. ^ exampleLanguageTextHolder. ! @@ -1117,10 +1117,10 @@ ignoreCaseHolder ignoreCaseHolder isNil ifTrue:[ - ignoreCaseHolder := false asValue. + ignoreCaseHolder := false asValue. "/ if your app needs to be notified of changes, uncomment one of the lines below: "/ ignoreCaseHolder addDependent:self. - ignoreCaseHolder onChangeSend:#ignoreCaseHolderChanged to:self. + ignoreCaseHolder onChangeSend:#ignoreCaseHolderChanged to:self. ]. ^ ignoreCaseHolder. @@ -1131,15 +1131,15 @@ keyStringAndLanguageSelectionTable keyStringsToLanguageMappings isNil ifTrue:[ - keyStringsToLanguageMappings := KeyStringsToLanguageMappings new. + keyStringsToLanguageMappings := KeyStringsToLanguageMappings new. ]. ^ keyStringsToLanguageMappings. ! keyStringAndLanguageSelectionTableColumnDescriptionHolder keyStringAndLanguageSelectionTableColumnDescriptionHolder isNil ifTrue:[ - keyStringAndLanguageSelectionTableColumnDescriptionHolder := ValueHolder new. - keyStringAndLanguageSelectionTableColumnDescriptionHolder value:(self keyStringAndLanguageSelectionTableColumnDescription). + keyStringAndLanguageSelectionTableColumnDescriptionHolder := ValueHolder new. + keyStringAndLanguageSelectionTableColumnDescriptionHolder value:(self keyStringAndLanguageSelectionTableColumnDescription). ]. ^ keyStringAndLanguageSelectionTableColumnDescriptionHolder. ! @@ -1152,82 +1152,82 @@ |holder| languageShownHolders isNil ifTrue:[ - languageShownHolders := Dictionary new + languageShownHolders := Dictionary new ]. - holder := languageShownHolders - at:lang - ifAbsentPut:[ - |h| - - h := true asValue. - h onChangeEvaluate:[ - h value ifTrue:[ - self enableLanguageDisplayFor:lang - ] ifFalse:[ - self disableLanguageDisplayFor:lang - ]. - ]. - h - ]. + holder := languageShownHolders + at:lang + ifAbsentPut:[ + |h| + + h := true asValue. + h onChangeEvaluate:[ + h value ifTrue:[ + self enableLanguageDisplayFor:lang + ] ifFalse:[ + self disableLanguageDisplayFor:lang + ]. + ]. + h + ]. ^ holder. ! languageTextAcceptHolder languageTextAcceptHolder isNil ifTrue:[ - languageTextAcceptHolder := false asValue. + languageTextAcceptHolder := false asValue. ]. ^ languageTextAcceptHolder. ! languageTextHolder languageTextHolder isNil ifTrue:[ - languageTextHolder := '' asValue. + languageTextHolder := '' asValue. ]. ^ languageTextHolder. ! languageTextModifiedHolder languageTextModifiedHolder isNil ifTrue:[ - languageTextModifiedHolder := false asValue. + languageTextModifiedHolder := false asValue. ]. ^ languageTextModifiedHolder. ! languagesList languagesList isNil ifTrue:[ - languagesList := List withAll:(self keyStringAndLanguageSelectionTable languages). + languagesList := List withAll:(self keyStringAndLanguageSelectionTable languages). ]. ^ languagesList. ! originalTextHolder originalTextHolder isNil ifTrue:[ - originalTextHolder := '' asValue. + originalTextHolder := '' asValue. ]. ^ originalTextHolder. ! originalTextModifiedHolder originalTextModifiedHolder isNil ifTrue:[ - originalTextModifiedHolder := false asValue. + originalTextModifiedHolder := false asValue. ]. ^ originalTextModifiedHolder. ! pasteOriginalEnableHolder - pasteOriginalEnableHolder isNil ifTrue:[pasteOriginalEnableHolder := false asValue]. + pasteOriginalEnableHolder isNil ifTrue:[pasteOriginalEnableHolder := false asValue]. ^ pasteOriginalEnableHolder ! pastePreviousTranslationEnableHolder - pastePreviousTranslationEnableHolder isNil ifTrue:[pastePreviousTranslationEnableHolder := false asValue]. + pastePreviousTranslationEnableHolder isNil ifTrue:[pastePreviousTranslationEnableHolder := false asValue]. ^ pastePreviousTranslationEnableHolder ! searchBarImageInfoLabelHolder searchBarImageInfoLabelHolder isNil ifTrue:[ - searchBarImageInfoLabelHolder := nil asValue . + searchBarImageInfoLabelHolder := nil asValue . ]. ^ searchBarImageInfoLabelHolder. @@ -1237,7 +1237,7 @@ searchBarInfoLabelHolder searchBarInfoLabelHolder isNil ifTrue:[ - searchBarInfoLabelHolder := '' asValue . + searchBarInfoLabelHolder := '' asValue . ]. ^ searchBarInfoLabelHolder. @@ -1247,7 +1247,7 @@ searchBoxVisible searchBoxVisible isNil ifTrue:[ - searchBoxVisible := false asValue. + searchBoxVisible := false asValue. ]. ^ searchBoxVisible. @@ -1255,15 +1255,15 @@ ! searchForSimilarTranslationEnableHolder - searchForSimilarTranslationEnableHolder isNil - ifTrue:[searchForSimilarTranslationEnableHolder := true asValue]. + searchForSimilarTranslationEnableHolder isNil + ifTrue:[searchForSimilarTranslationEnableHolder := true asValue]. ^ searchForSimilarTranslationEnableHolder ! searchTextHolder searchTextHolder isNil ifTrue:[ - searchTextHolder := ValueHolder new. + searchTextHolder := ValueHolder new. "/ if your app needs to be notified of changes, uncomment one of the lines below: "/ userSelectedHolder addDependent:self. "/ userSelectedHolder onChangeSend:#searchTextHolderChanged to:self. @@ -1276,7 +1276,7 @@ searchTextModifiedHolder searchTextModifiedHolder isNil ifTrue:[ - searchTextModifiedHolder := false asValue . + searchTextModifiedHolder := false asValue . "/ if your app needs to be notified of changes, uncomment one of the lines below: "/ searchTextModifiedHolder addDependent:self. searchTextModifiedHolder onChangeSend:#searchTextModifiedHolderChanged to:self. @@ -1288,32 +1288,32 @@ selectedKeyRow selectedKeyRow isNil ifTrue:[ - selectedKeyRow := ValueHolder new. - selectedKeyRow onChangeSend:#selectionChanged to:self. + selectedKeyRow := ValueHolder new. + selectedKeyRow onChangeSend:#selectionChanged to:self. ]. ^ selectedKeyRow. ! showMissingTranslationsOnly showMissingTranslationsOnly isNil ifTrue:[ - showMissingTranslationsOnly := false asValue. - showMissingTranslationsOnly onChangeSend:#showMissingTranslationsOnlyChanged to:self. + showMissingTranslationsOnly := false asValue. + showMissingTranslationsOnly onChangeSend:#showMissingTranslationsOnlyChanged to:self. ]. ^ showMissingTranslationsOnly. ! shownLanguages shownLanguages isNil ifTrue:[ - shownLanguages := List new. - shownLanguages addAll:(self languagesList). - shownLanguages onChangeSend:#shownLanguagesChanged to:self. + shownLanguages := List new. + shownLanguages addAll:(self languagesList). + shownLanguages onChangeSend:#shownLanguagesChanged to:self. ]. ^ shownLanguages. ! stopApplicationIconVisibleHolder stopApplicationIconVisibleHolder isNil ifTrue:[ - stopApplicationIconVisibleHolder := false asValue. + stopApplicationIconVisibleHolder := false asValue. ]. ^ stopApplicationIconVisibleHolder. ! ! @@ -1328,21 +1328,21 @@ update:something with:aParameter from:changedObject 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. + ]. ! updateCopyPreviousTranslationButtonEnabled @@ -1356,12 +1356,12 @@ self exampleLanguageTextHolder value:self currentExampleLanguageText ! -updateKeyStringsToLanguageMappings - - keyStringsToLanguageMappings - at:lastSelectedKey - language:lastLanguage - put: self newLanguageText. +updateKeyStringsToLanguageMappings + + keyStringsToLanguageMappings + at:lastSelectedKey + language:lastLanguage + put: self newLanguageText. ! updateLanguageAndKeySelection @@ -1369,16 +1369,16 @@ self originalTextHolder value: self selectedKey. self languageTextHolder value: (self languageTextFromSelectedKeyFor: self currentLanguage). lastLanguage := self currentLanguage. - lastSelectedKey := self selectedKey. + lastSelectedKey := self selectedKey. ! -updateLanguageTextModification - self languageTextModifiedHolder value ifTrue:[ - (self autoAccept or:[Dialog confirm:'Accept changed translation ?']) ifTrue:[ - self languageTextModifiedHolder value:false. - self languageTextHolder value:languageEditor contents. - lastLanguage notNil ifTrue:[self updateKeyStringsToLanguageMappings.] - ] +updateLanguageTextModification + self languageTextModifiedHolder value ifTrue:[ + (self autoAccept or:[Dialog confirm:'Accept changed translation ?']) ifTrue:[ + self languageTextModifiedHolder value:false. + self languageTextHolder value:languageEditor contents. + lastLanguage notNil ifTrue:[self updateKeyStringsToLanguageMappings.] + ] ]. ! @@ -1386,21 +1386,21 @@ |answer| - self originalTextModifiedHolder value ifTrue:[ - answer := OptionBox - request:'Accept changed original text (key) ?' - label:'Original text (key) changed' - image:(WarningBox iconBitmap) - buttonLabels:#('Cancel' 'Accept' 'Accept As New') - values:#(nil #accept #acceptAsNew) - default:#acceptAsNew. - - answer isNil ifTrue:[^ self originalTextModifiedHolder value:false. ]. - answer == #accept ifTrue:[ + self originalTextModifiedHolder value ifTrue:[ + answer := OptionBox + request:'Accept changed original text (key) ?' + label:'Original text (key) changed' + image:(WarningBox iconBitmap) + buttonLabels:#('Cancel' 'Accept' 'Accept As New') + values:#(nil #accept #acceptAsNew) + default:#acceptAsNew. + + answer isNil ifTrue:[^ self originalTextModifiedHolder value:false. ]. + answer == #accept ifTrue:[ self halt. ]. - answer == #acceptAsNew ifTrue:[ + answer == #acceptAsNew ifTrue:[ self halt. ]. - ]. + ]. ! updatePasteOriginalButtonEnabled @@ -1418,11 +1418,11 @@ box := Dialog new. (box addTextLabel:'Select or write the encoder') adjust:#left. box addVerticalSpace. - characterCollection := CharacterEncoder supportedExternalEncodings - inject: OrderedCollection new - into:[:collection :each | - collection add: each first; - yourself]. + characterCollection := CharacterEncoder supportedExternalEncodings + inject: OrderedCollection new + into:[:collection :each | + collection add: each first; + yourself]. (box addComboBoxOn:val) list: characterCollection. box addOkButton. box open. @@ -1434,33 +1434,33 @@ |encoderString encoder| encoderString := self requestEncoderDialog. encoderString notEmpty ifTrue:[ - encoder := CharacterEncoder encoderFor: encoderString ifAbsent:nil. - encoder notNil ifTrue:[keyStringsToLanguageMappings atLanguage: lang putEncoder: encoder.]. + encoder := CharacterEncoder encoderFor: encoderString ifAbsent:nil. + encoder notNil ifTrue:[keyStringsToLanguageMappings atLanguage: lang putEncoder: encoder.]. ]. ^encoderString ! -requestFilename +requestFilename |aFilename| - aFilename := Dialog - requestFileName:(resources string:'Name of resource file:') - default:nil - pattern:'*.rs'. + aFilename := Dialog + requestFileName:(resources string:'Name of resource file:') + default:nil + pattern:'*.rs'. aFilename isEmptyOrNil ifTrue:[^ nil ]. ^aFilename asFilename ! -requestFilenameFor: lang +requestFilenameFor: lang "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'. + aFilename := Dialog + 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. @@ -1468,17 +1468,17 @@ ! requestLanguage - ^ Dialog - choose:(resources string:'For which language ?') - fromList:languagesList - lines:10. + ^ Dialog + choose:(resources string:'For which language ?') + fromList:languagesList + lines:10. ! requestLanguageToSave - ^ Dialog - choose:'Which language do you want to save?' - fromList:languagesList - lines:10 + ^ Dialog + choose:'Which language do you want to save?' + fromList:languagesList + lines:10 ! requestPackage @@ -1486,17 +1486,17 @@ allProjects := Smalltalk allProjectIDs. projectsWithResources := allProjects - select:[:pID | - |dir| - dir := Smalltalk projectDirectoryForPackage:pID. - (dir asFilename construct:'resources') exists - ]. + select:[:pID | + |dir| + dir := Smalltalk projectDirectoryForPackage:pID. + (dir asFilename construct:'resources') exists + ]. package := Dialog - requestProject:(resources string:'Name of Package:') - from:projectsWithResources - initialAnswer:LastProject - suggestions:nil. + requestProject:(resources string:'Name of Package:') + from:projectsWithResources + initialAnswer:LastProject + suggestions:nil. package isEmptyOrNil ifTrue:[^ nil ]. LastProject := package. @@ -1521,11 +1521,11 @@ "asks for permission before closing" self hasUnsavedChanges ifTrue:[ - (Dialog - confirm:(resources string:'Close without saving ?') - default:false) ifFalse:[ - ^ self - ] + (Dialog + confirm:(resources string:'Close without saving ?') + default:false) ifFalse:[ + ^ self + ] ]. super closeRequest @@ -1601,8 +1601,8 @@ key := Dialog request:'New Key:'. key isEmpty ifTrue:[^self]. (self includesKey:key) ifFalse:[ - keyStringsToLanguageMappings addKey:key. - modified := true. + keyStringsToLanguageMappings addKey:key. + modified := true. ]. index := keyStringsToLanguageMappings indexOfKey:key. self selectedKeyRow value:index @@ -1617,7 +1617,7 @@ nameSpace isNil ifTrue:[^self]. nameSpace := Smalltalk at:nameSpace asSymbol. nameSpace isNil ifTrue:[ - ^Dialog information:(resources string:'No such nameSpace exists.') + ^Dialog information:(resources string:'No such nameSpace exists.') ]. lastNameSpace := nameSpace. ! @@ -1628,11 +1628,11 @@ lastPackage notNil ifTrue:[defaultPackage := lastPackage]. package := Dialog - requestProject:'Package:' - initialAnswer:defaultPackage - suggestions:#('foo' 'bar' 'baz'). + requestProject:'Package:' + initialAnswer:defaultPackage + suggestions:#('foo' 'bar' 'baz'). package isNil ifTrue:[ - ^ self "/ Dialog information:(resources string:'No such package exists.') + ^ self "/ Dialog information:(resources string:'No such package exists.') ]. lastPackage := package. ! @@ -1640,10 +1640,10 @@ extractTranslationsFromClass |aClass newTranslations| - aClass := Dialog - requestClass:'Class to extract translations from:' - okLabel:'OK' - initialAnswer:(lastExtractedClass ? LastExtractedClass). + aClass := Dialog + requestClass:'Class to extract translations from:' + okLabel:'OK' + initialAnswer:(lastExtractedClass ? LastExtractedClass). aClass isNil ifTrue:[^ self ]. lastExtractedClass := LastExtractedClass := aClass. @@ -1660,7 +1660,7 @@ lastNameSpace isNil ifTrue:[^self.]. newTranslations := OrderedCollection new. lastNameSpace allClassesDo:[:eachClass | - newTranslations addAll:( self extractTranslationsFromClass:eachClass theNonMetaclass). + newTranslations addAll:( self extractTranslationsFromClass:eachClass theNonMetaclass). ]. self addAllTranslations:newTranslations. ! @@ -1679,7 +1679,7 @@ box showAtPointer. projectID notNil ifTrue:[ - projectID := projectID withoutSeparators asSymbol. + projectID := projectID withoutSeparators asSymbol. ]. projectID isEmptyOrNil ifTrue:[^ self ]. @@ -1688,10 +1688,10 @@ newTranslations := Set new. Smalltalk allClassesDo:[:eachClass | - eachClass theNonMetaclass package == projectID ifTrue:[ + eachClass theNonMetaclass package == projectID ifTrue:[ "/ eachClass isLoaded ifTrue:[ self halt. ]. - newTranslations addAll:( self extractTranslationsFromClass:eachClass theNonMetaclass). - ] + newTranslations addAll:( self extractTranslationsFromClass:eachClass theNonMetaclass). + ] ]. self addAllTranslations:newTranslations. @@ -1709,32 +1709,32 @@ nameSpace := Dialog requestNameSpace:'NameSpace:' title:'Specify NameSpace to look for missing strings' initialAnswer:nil. nameSpace := Smalltalk at:nameSpace asSymbol. nameSpace isNil ifTrue:[ - ^Dialog information:(resources string:'No such nameSpace exists.?') + ^Dialog information:(resources string:'No such nameSpace exists.?') ]. nameSpace allClassesDo:[:cls | - cls theMetaclass methodsDo:[:m | - m hasResource ifTrue:[ - (m resources includesKey:#canvas) ifTrue:[ - spec := (cls perform:m selector) decodeAsLiteralArray. - spec do:[:eachComponent | - eachComponent translationKeysDo:[:k | - (self includesKey: k) ifFalse:[ - missingStrings add: k. - Transcript showCR: k storeString, ' ', m printString]] - ] - ] - ] - ] + cls theMetaclass methodsDo:[:m | + m hasResource ifTrue:[ + (m resources includesKey:#canvas) ifTrue:[ + spec := (cls perform:m selector) decodeAsLiteralArray. + spec do:[:eachComponent | + eachComponent translationKeysDo:[:k | + (self includesKey: k) ifFalse:[ + missingStrings add: k. + Transcript showCR: k storeString, ' ', m printString]] + ] + ] + ] + ] ]. missingStrings asSet inspect ! menuNew modified ifTrue:[ - (Dialog - confirm:(resources stringWithCRs:'Modified translations have not been changed.\\Create new translations set anyway ?') - default:false) ifFalse:[^ self]. + (Dialog + confirm:(resources stringWithCRs:'Modified translations have not been changed.\\Create new translations set anyway ?') + default:false) ifFalse:[^ self]. ]. keyStringsToLanguageMappings initialize. @@ -1749,9 +1749,9 @@ |aFilename| self withWaitCursorDo:[ - aFilename := self requestFilename. - aFilename isNil ifTrue:[^ self ]. - self readResourceFile:aFilename. + aFilename := self requestFilename. + aFilename isNil ifTrue:[^ self ]. + self readResourceFile:aFilename. ] ! @@ -1759,9 +1759,9 @@ |package| self withWaitCursorDo:[ - package := self requestPackage. - package isNil ifTrue:[^ self ]. - self readResourceFileForPackage:package. + package := self requestPackage. + package isNil ifTrue:[^ self ]. + self readResourceFileForPackage:package. ] ! @@ -1776,7 +1776,7 @@ menuSaveAll "Saves all the languages in the fileName from where the language resource was obtained." - keyStringsToLanguageMappings languagesInUse do:[:each | self saveLanguage: each]. + keyStringsToLanguageMappings languagesInUse do:[:each | self saveLanguage: each]. ! menuSaveAs @@ -1784,7 +1784,7 @@ |lang aFilename| lang := self requestLanguageToSave. - lang isNil ifTrue:[^ self]. + lang isNil ifTrue:[^ self]. aFilename := self requestFilenameFor:lang. aFilename isNil ifTrue:[^ self]. self saveResourceFile:aFilename for:lang asSymbol @@ -1829,37 +1829,37 @@ allLanguages := Set new. resourceDir directoryContentsAsFilenamesDo:[:eachFile | - eachFile suffix = 'rs' ifTrue:[ - (('##.rs' match:eachFile baseName) - or:[('##-##.rs' match:eachFile baseName)]) ifTrue:[ - allLanguages add:(eachFile withoutSuffix baseName) - ]. - ]. + eachFile suffix = 'rs' ifTrue:[ + (('##.rs' match:eachFile baseName) + or:[('##-##.rs' match:eachFile baseName)]) ifTrue:[ + allLanguages add:(eachFile withoutSuffix baseName) + ]. + ]. ]. allLanguages addAll:languagesList. allLanguages := allLanguages asSortedCollection. - lang := Dialog - choose:(resources string:'For which language ?') - fromList:allLanguages - values:allLanguages - buttons:(resources array:#('All')) - values:#(all) - lines:10 - cancel:nil. + lang := Dialog + choose:(resources string:'For which language ?') + fromList:allLanguages + values:allLanguages + buttons:(resources array:#('All')) + values:#(all) + lines:10 + cancel:nil. lang isNil ifTrue:[^ self ]. langFile := resourceDir construct:lang,'.rs'. lang == #all ifTrue:[ - allLanguages do:[:lang | - self addLanguage:lang. - self readResourceFile:(resourceDir construct:lang,'.rs') asLanguage:lang. - ]. + allLanguages do:[:lang | + self addLanguage:lang. + self readResourceFile:(resourceDir construct:lang,'.rs') asLanguage:lang. + ]. ] ifFalse:[ - self readResourceFile:langFile asLanguage:lang asSymbol + self readResourceFile:langFile asLanguage:lang asSymbol ]. ! @@ -1869,9 +1869,9 @@ lang := Dialog choose:'Which language do you want to remove?' fromList:languagesList lines:10. lang isNil ifTrue:[^ self ]. (Dialog confirm: 'Are you sure to remove the language ', lang ) ifTrue:[ - self languagesList remove:lang. - self shownLanguages remove:lang. - ]. + self languagesList remove:lang. + self shownLanguages remove:lang. + ]. ! removeTranslation @@ -1880,11 +1880,11 @@ rowSelectionIndex := self selectedKeyRow value. rowSelectionIndex isNil ifTrue:[^self]. rowSelectionIndex ~~ 0 ifTrue:[ - selectedKey := keyStringsToLanguageMappings keyAt:rowSelectionIndex ifAbsent:nil. - selectedKey isNil ifTrue:[^self]. - (Dialog confirm:(resources string:'Really remove key %1' with:selectedKey)) ifTrue:[ - keyStringsToLanguageMappings removeKey:selectedKey. - ]. + selectedKey := keyStringsToLanguageMappings keyAt:rowSelectionIndex ifAbsent:nil. + selectedKey isNil ifTrue:[^self]. + (Dialog confirm:(resources string:'Really remove key %1' with:selectedKey)) ifTrue:[ + keyStringsToLanguageMappings removeKey:selectedKey. + ]. ]. ! @@ -1892,36 +1892,36 @@ |applicationClass newTranslations pseudoPack app startSelector| monitoredApplication notNil ifTrue:[ - monitoredApplication terminate. - [monitoredApplication notNil] whileTrue:[ - Delay waitForSeconds:0.1 - ]. + monitoredApplication terminate. + [monitoredApplication notNil] whileTrue:[ + Delay waitForSeconds:0.1 + ]. ]. - applicationClass := Dialog - requestClass:'Application class to start and collect translations from:' - okLabel:'OK' - initialAnswer:(lastExtractedApplicationClass ? LastExtractedApplicationClass ). + applicationClass := Dialog + requestClass:'Application class to start and collect translations from:' + okLabel:'OK' + initialAnswer:(lastExtractedApplicationClass ? LastExtractedApplicationClass ). applicationClass isNil ifTrue:[^ self ]. applicationClass isNamespace ifTrue:[ - Dialog warn:'Entered class is a NameSpace'. - ^ self. + Dialog warn:'Entered class is a NameSpace'. + ^ self. ]. applicationClass isVisualStartable ifTrue:[ - startSelector := #open + startSelector := #open ] ifFalse:[ - startSelector := Dialog - request:'Entered class seems to be no application class. Ok to start using selector:' - initialAnswer:((applicationClass respondsTo:#'start') - ifTrue:#'start' - ifFalse:#'new') - okLabel:'START' - title:'Start Application'. - startSelector isNil ifTrue:[ - ^ self - ]. - startSelector := startSelector asSymbol. + startSelector := Dialog + request:'Entered class seems to be no application class. Ok to start using selector:' + initialAnswer:((applicationClass respondsTo:#'start') + ifTrue:#'start' + ifFalse:#'new') + okLabel:'START' + title:'Start Application'. + startSelector isNil ifTrue:[ + ^ self + ]. + startSelector := startSelector asSymbol. ]. lastExtractedApplicationClass := LastExtractedApplicationClass := applicationClass. @@ -1934,16 +1934,16 @@ self stopApplicationIconVisibleHolder value:true. monitoredApplication := [ - [ - app := applicationClass new. - app perform:startSelector. - app window waitUntilVisible. - app window waitUntilClosed. - ] ensure:[ - app closeRequest. - self stopApplicationIconVisibleHolder value:false. - monitoredApplication := nil. - ]. + [ + app := applicationClass new. + app perform:startSelector. + app window waitUntilVisible. + app window waitUntilClosed. + ] ensure:[ + app closeRequest. + self stopApplicationIconVisibleHolder value:false. + monitoredApplication := nil. + ]. ] fork. ! @@ -1957,19 +1957,19 @@ browser allButOpen. lastSearchPatterns := browser lastSearchPatterns. (lastSearchPatterns notNil and:[lastSearchPatterns first ~= selectedKey]) ifTrue:[ - browser lastSearchPatterns addFirst: selectedKey + browser lastSearchPatterns addFirst: selectedKey ]. SearchDialog lastStringSearchArea: #currentNameSpace. lastNameSpace isNil ifTrue:[ - self changeLastNameSpace. + self changeLastNameSpace. ]. lastNameSpace notNil ifTrue:[ "/ browser navigationState selectedClasses value: lastNameSpace allClasses. - browser navigationState nameSpaceFilter value: (OrderedCollection with:lastNameSpace name). - browser navigationState selectedNamespaces value: (OrderedCollection with:lastNameSpace name). + browser navigationState nameSpaceFilter value: (OrderedCollection with:lastNameSpace name). + browser navigationState selectedNamespaces value: (OrderedCollection with:lastNameSpace name). ]. self withWaitCursorDo:[ - browser browseMenuMethodsWithString + browser browseMenuMethodsWithString ]. ! @@ -1983,19 +1983,19 @@ browser allButOpen. lastSearchPatterns := browser lastSearchPatterns. (lastSearchPatterns notNil and:[lastSearchPatterns first ~= selectedKey]) ifTrue:[ - browser lastSearchPatterns addFirst: selectedKey + browser lastSearchPatterns addFirst: selectedKey ]. SearchDialog lastStringSearchArea: #currentPackage. lastPackage isNil ifTrue:[ - self changeLastPackage. + self changeLastPackage. ]. lastPackage notNil ifTrue:[ "/ browser navigationState selectedClasses value: lastNameSpace allClasses. - browser navigationState packageFilter value: (OrderedCollection with:lastPackage). - browser navigationState selectedProjects value: (OrderedCollection with:lastPackage). + browser navigationState packageFilter value: (OrderedCollection with:lastPackage). + browser navigationState selectedProjects value: (OrderedCollection with:lastPackage). ]. self withWaitCursorDo:[ - browser browseMenuMethodsWithString + browser browseMenuMethodsWithString ]. ! ! @@ -2013,7 +2013,7 @@ "/ select:[:lang | (self shownLanguages includes:lang) "/ or:[ lang = newLang ]]. "/ self shownLanguages contents:shownLanguagesInOrder. - self shownLanguages add:newLang. + self shownLanguages add:newLang. ] ! @@ -2025,27 +2025,27 @@ ^ [ - |m selected| - - m := Menu new. - - self languagesList do:[:lang | - |item| - - item := MenuItem label:lang. - item indication:(self languageShownHolderFor:lang). - item hideMenuOnActivated:false. - m addItem:item. - ]. - m + |m selected| + + m := Menu new. + + self languagesList do:[:lang | + |item| + + item := MenuItem label:lang. + item indication:(self languageShownHolderFor:lang). + item hideMenuOnActivated:false. + m addItem:item. + ]. + m ]. ! toggleLanguageDisplayFor:lang (self shownLanguages includes:lang) ifTrue:[ - self disableLanguageDisplayFor:lang + self disableLanguageDisplayFor:lang ] ifFalse:[ - self enableLanguageDisplayFor:lang + self enableLanguageDisplayFor:lang ]. ! ! @@ -2056,26 +2056,26 @@ newTranslationKeys := newTranslations select:[:k | k notEmpty and:[k isString not or:[k isBlank not]]]. newTranslationKeys := newTranslationKeys select:[:k | (keyStringsToLanguageMappings includesKey:k) not]. - newTranslationKeys := newTranslationKeys - collect:[:k | - (k endsWith:'...') ifTrue:[ - k copyWithoutLast:3. - ] ifFalse:[ - ('.:?' includes:k last) ifTrue:[ - k copyWithoutLast:1. - ] ifFalse:[ - k - ]]]. + newTranslationKeys := newTranslationKeys + collect:[:k | + (k endsWith:'...') ifTrue:[ + k copyWithoutLast:3. + ] ifFalse:[ + ('.:?' includes:k last) ifTrue:[ + k copyWithoutLast:1. + ] ifFalse:[ + k + ]]]. newTranslationKeys := newTranslationKeys asSet. newTranslationKeys notEmpty ifTrue:[ - stringKeys := newTranslationKeys select:[:k | k isString]. - nonStringKeys := newTranslationKeys select:[:k | k isString not]. - - stringKeys := stringKeys asSortedCollection. - keyStringsToLanguageMappings addKeys:stringKeys. - keyStringsToLanguageMappings addKeys:nonStringKeys. - modified := true. + stringKeys := newTranslationKeys select:[:k | k isString]. + nonStringKeys := newTranslationKeys select:[:k | k isString not]. + + stringKeys := stringKeys asSortedCollection. + keyStringsToLanguageMappings addKeys:stringKeys. + keyStringsToLanguageMappings addKeys:nonStringKeys. + modified := true. ]. ! @@ -2085,12 +2085,12 @@ newTranslations := Set new. self withWaitCursorDo:[ - "/ now, the hard part: - "/ possible translations are in the specs, - "/ and all arguments to (resources string:) messages. - aClass instAndClassMethodsDo:[:eachMethod | - newTranslations addAll:( self extractTranslationsFromMethod:eachMethod ). - ]. + "/ now, the hard part: + "/ possible translations are in the specs, + "/ and all arguments to (resources string:) messages. + aClass instAndClassMethodsDo:[:eachMethod | + newTranslations addAll:( self extractTranslationsFromMethod:eachMethod ). + ]. ]. ^ newTranslations ! @@ -2098,55 +2098,55 @@ extractTranslationsFromHelpSpecMethod:aMethod |codeStrings matcher parseTree resourceKeys| - parseTree := RBParser - parseMethod:aMethod source - onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos. - nil]. + parseTree := RBParser + parseMethod:aMethod source + onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos. + nil]. parseTree isNil ifTrue:[^ #() ]. - codeStrings := - #( - '`@dict addPairsFrom: `#helpKeysAndStrings' - ). + codeStrings := + #( + '`@dict addPairsFrom: `#helpKeysAndStrings' + ). resourceKeys := Set new. matcher := ParseTreeSearcher new. - matcher - matchesAnyOf: codeStrings - do: [:aNode :answer | - |sel argNode arg| - - sel := aNode selector. - (sel startsWith:'addPairsFrom:') ifTrue:[ - argNode := aNode arguments at:1. - argNode isLiteral ifTrue:[ - arg := argNode value. - arg isArray ifTrue:[ - arg doWithIndex:[:el :index | - index even ifTrue:[ - el isString ifTrue:[ - resourceKeys add:el. - ] - ]. - ]. - ] ifFalse:[ - Transcript - showCR:(resources - string:'Cannot derive resourceKey from non-array in %1 in %2' - with:argNode formattedCode - with:aMethod selector). - ]. - ] ifFalse:[ - Transcript - showCR:(resources - string:'Cannot derive resourceKey from non-literal: %1 in %2' - with:argNode formattedCode - with:aMethod selector). - ]. - ]. - aNode - ]. + matcher + matchesAnyOf: codeStrings + do: [:aNode :answer | + |sel argNode arg| + + sel := aNode selector. + (sel startsWith:'addPairsFrom:') ifTrue:[ + argNode := aNode arguments at:1. + argNode isLiteral ifTrue:[ + arg := argNode value. + arg isArray ifTrue:[ + arg doWithIndex:[:el :index | + index even ifTrue:[ + el isString ifTrue:[ + resourceKeys add:el. + ] + ]. + ]. + ] ifFalse:[ + Transcript + showCR:(resources + string:'Cannot derive resourceKey from non-array in %1 in %2' + with:argNode formattedCode + with:aMethod selector). + ]. + ] ifFalse:[ + Transcript + showCR:(resources + string:'Cannot derive resourceKey from non-literal: %1 in %2' + with:argNode formattedCode + with:aMethod selector). + ]. + ]. + aNode + ]. matcher executeTree: parseTree initialAnswer: nil. ^ resourceKeys @@ -2159,16 +2159,16 @@ menu isNil ifTrue:[ ^ #() ]. (menu isKindOf:Menu) ifFalse:[ - menu := Menu new fromLiteralArrayEncoding:menu + menu := Menu new fromLiteralArrayEncoding:menu ]. resourceKeys := Set new. menu allItemsDo:[:aMenuItem | - aMenuItem translateLabel ifTrue:[ - aMenuItem isSeparatorItem ifFalse:[ - resourceKeys add:aMenuItem label. - ] - ] + aMenuItem translateLabel ifTrue:[ + aMenuItem isSeparatorItem ifFalse:[ + resourceKeys add:aMenuItem label. + ] + ] ]. ^ resourceKeys ! @@ -2178,20 +2178,20 @@ mResources := aMethod resources. mResources notNil ifTrue:[ - (mResources includesKey:#menu) ifTrue:[ - ^ self extractTranslationsFromMenuSpecMethod:aMethod. - ]. - (mResources includesKey:#canvas) ifTrue:[ - ^ self extractTranslationsFromUISpecMethod:aMethod. - ]. - (mResources includesKey:#help) ifTrue:[ - ^ self extractTranslationsFromHelpSpecMethod:aMethod. - ]. - (mResources includesKey:#tableColumns) ifTrue:[ - ^ self extractTranslationsFromTableColumnsSpecMethod:aMethod. - ]. - - ^ self extractTranslationsFromSpecMethod:aMethod. + (mResources includesKey:#menu) ifTrue:[ + ^ self extractTranslationsFromMenuSpecMethod:aMethod. + ]. + (mResources includesKey:#canvas) ifTrue:[ + ^ self extractTranslationsFromUISpecMethod:aMethod. + ]. + (mResources includesKey:#help) ifTrue:[ + ^ self extractTranslationsFromHelpSpecMethod:aMethod. + ]. + (mResources includesKey:#tableColumns) ifTrue:[ + ^ self extractTranslationsFromTableColumnsSpecMethod:aMethod. + ]. + + ^ self extractTranslationsFromSpecMethod:aMethod. ]. ^ self extractTranslationsFromMethodsCode:aMethod ! @@ -2200,52 +2200,52 @@ "/method:mthd selector:sel inClass:cls matchesParseTreeMatcher:aMatcher |codeStrings matcher parseTree resourceKeys| - parseTree := RBParser - parseMethod:aMethod source - onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos. - nil]. + parseTree := RBParser + parseMethod:aMethod source + onError: [:str :pos | Transcript showCR:str. Transcript showCR:pos. + nil]. parseTree isNil ifTrue:[^ #() ]. - codeStrings := - #( - 'resources `@msg: `@args' - 'self resources `@msg: `@args' - 'self class resources `@msg: `@args' - 'self classResources `@msg: `@args' - ). + codeStrings := + #( + 'resources `@msg: `@args' + 'self resources `@msg: `@args' + 'self class resources `@msg: `@args' + 'self classResources `@msg: `@args' + ). resourceKeys := Set new. matcher := ParseTreeSearcher new. - matcher - matchesAnyOf: codeStrings - do: [:aNode :answer | - |sel keyStringArgNode keyStringArg| - - sel := aNode selector. - ((sel startsWith:'string:') or:[(sel startsWith:'at:')]) ifTrue:[ - keyStringArgNode := aNode arguments at:1. - keyStringArgNode isLiteral ifTrue:[ - keyStringArg := keyStringArgNode value. - keyStringArg isString ifTrue:[ - resourceKeys add:keyStringArg. - ] ifFalse:[ - Transcript - showCR:(resources - string:'Cannot derive resourceKey from non-string: %1 in %2' - with:keyStringArgNode formattedCode - with:aMethod selector). - ]. - ] ifFalse:[ - Transcript - showCR:(resources - string:'Cannot derive resourceKey from non-literal: %1 in %2' - with:keyStringArgNode formattedCode - with:aMethod selector). - ]. - ]. - aNode - ]. + matcher + matchesAnyOf: codeStrings + do: [:aNode :answer | + |sel keyStringArgNode keyStringArg| + + sel := aNode selector. + ((sel startsWith:'string:') or:[(sel startsWith:'at:')]) ifTrue:[ + keyStringArgNode := aNode arguments at:1. + keyStringArgNode isLiteral ifTrue:[ + keyStringArg := keyStringArgNode value. + keyStringArg isString ifTrue:[ + resourceKeys add:keyStringArg. + ] ifFalse:[ + Transcript + showCR:(resources + string:'Cannot derive resourceKey from non-string: %1 in %2' + with:keyStringArgNode formattedCode + with:aMethod selector). + ]. + ] ifFalse:[ + Transcript + showCR:(resources + string:'Cannot derive resourceKey from non-literal: %1 in %2' + with:keyStringArgNode formattedCode + with:aMethod selector). + ]. + ]. + aNode + ]. matcher executeTree: parseTree initialAnswer: nil. ^ resourceKeys @@ -2262,14 +2262,14 @@ columnDescription isNil ifTrue:[ ^ #() ]. (columnDescription first isKindOf:DataSetColumnSpec) ifFalse:[ - columnDescription := columnDescription collect:[:el | DataSetColumnSpec new fromLiteralArrayEncoding:el]. + columnDescription := columnDescription collect:[:el | DataSetColumnSpec new fromLiteralArrayEncoding:el]. ]. resourceKeys := Set new. columnDescription do:[:aColumnSpec | - aColumnSpec translateLabel ifTrue:[ - resourceKeys add:aColumnSpec label. - ] + aColumnSpec translateLabel ifTrue:[ + resourceKeys add:aColumnSpec label. + ] ]. ^ resourceKeys ! @@ -2281,7 +2281,7 @@ spec isNil ifTrue:[ ^ #() ]. (spec isKindOf:UISpecification) ifFalse:[ - spec := UISpecification from:spec + spec := UISpecification from:spec ]. resourceKeys := Set new. @@ -2294,12 +2294,12 @@ !InternationalLanguageTranslationEditor methodsFor:'queries'! -autoAccept +autoAccept ^ self autoAcceptHolder value ! -currentExampleLanguageText +currentExampleLanguageText "Returns the language text corresponding for the current selected key and the example language selection" ^self languageTextFromSelectedKeyFor: self exampleLanguageSelectionHolder value @@ -2316,8 +2316,8 @@ exampleLanguageByDefault ^self shownLanguages isEmpty - ifTrue:[nil] - ifFalse:[self shownLanguages first] + ifTrue:[nil] + ifFalse:[self shownLanguages first] ! hasFirstRowSelection @@ -2345,26 +2345,26 @@ ! languageTextFromKey: aKeyIndex for: language - "Returns the language text corresponding for the aKeyIndex and the received language" + "Returns the language text corresponding for the aKeyIndex and the received language" language isNil ifTrue:[^'']. - ^keyStringsToLanguageMappings at: aKeyIndex language:language. + ^keyStringsToLanguageMappings at: aKeyIndex language:language. ! languageTextFromSelectedKeyFor: language - "Returns the language text corresponding for the current selected key and the received language" - - ^self languageTextFromKey: self selectedKey for: language + "Returns the language text corresponding for the current selected key and the received language" + + ^self languageTextFromKey: self selectedKey for: language ! shouldCopyPreviousTranslationButtonBeEnabled - ^ self hasLanguageSelection - and:[self hasFirstRowSelection] + ^ self hasLanguageSelection + and:[self hasFirstRowSelection] ! shouldPasteOriginalButtonBeEnabled - ^ self hasLanguageSelection - and:[self hasFirstRowSelection] + ^ self hasLanguageSelection + and:[self hasFirstRowSelection] ! shouldSearchForSimilarTranslation @@ -2386,31 +2386,31 @@ printEditingWarningOn: aStream aStream nextPutAll: ';'; - cr; - nextPutAll: '; WARNING:'; - cr; - nextPutAll: '; this file contains national characters'; - cr; - nextPutAll: '; DONT EDIT this file with an old vi !!'; - cr; - nextPutAll: ';'; - cr; - cr. + cr; + nextPutAll: '; WARNING:'; + cr; + nextPutAll: '; this file contains national characters'; + cr; + nextPutAll: '; DONT EDIT this file with an old vi !!'; + cr; + nextPutAll: ';'; + cr; + cr. ! printEncoderFor: lang on: aStream |characterEncoder encoderString| characterEncoder := self encoderAt: lang. - encoderString := characterEncoder isNil - ifTrue:[self requestEncoderStringFor: lang] - ifFalse:[characterEncoder nameOfEncoding printString]. + encoderString := characterEncoder isNil + ifTrue:[self requestEncoderStringFor: lang] + ifFalse:[characterEncoder nameOfEncoding printString]. aStream nextPutAll: '#encoding'; - space; - nextPutAll: encoderString; - cr; - cr. + space; + nextPutAll: encoderString; + cr; + cr. ! printLanguage: lang on: aStream @@ -2422,55 +2422,55 @@ printLanguageMappingsFor: lang on: aStream - |orderedAssociations maxKeySize characterEncoder| + |orderedAssociations maxKeySize characterEncoder| characterEncoder := self encoderAt: lang. characterEncoder isNil ifTrue:[ characterEncoder := CharacterEncoder::NullEncoder ]. - orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. - - maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. + orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. + + maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. orderedAssociations do:[:association | - aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; - nextPutAll: (String new: 10); - nextPutAll: (characterEncoder encodeString: association value) storeString; - cr. - ]. + aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; + nextPutAll: (String new: 10); + nextPutAll: (characterEncoder encodeString: association value) storeString; + cr. + ]. ! readResourceFile:aFilename asLanguage:lang |resourcePack inStream lineString encoding decoder sortedKeys remainingKeys| aFilename exists ifFalse:[ - Dialog information:(resources string:'Language file: "%1" does not exist' with:aFilename baseName). - ^ self + Dialog information:(resources string:'Language file: "%1" does not exist' with:aFilename baseName). + ^ self ]. resourcePack := ResourcePack new. inStream := aFilename readStream. [inStream atEnd] whileFalse:[ - lineString := inStream nextLine. - (lineString notEmpty - and:[ (lineString startsWith:';') not ]) ifTrue:[ - ((lineString startsWith:'#') and:[(lineString startsWith:'#(') not]) ifTrue:[ - lineString := (lineString copyFrom:2) withoutSeparators. - (lineString startsWith:'encoding ') ifTrue:[ - encoding := ResourcePack extractEncodingFromLine:lineString. - decoder := CharacterEncoder encoderFor:encoding ifAbsent:nil. - ]. - ] ifFalse:[ - ResourcePack - processResourceLine:lineString - encoding:decoder - file:aFilename pathName - printErrorWith:[:msg | Transcript showCR:msg ] - for:resourcePack - keepUselessTranslations:true. - ]. - ]. + lineString := inStream nextLine. + (lineString notEmpty + and:[ (lineString startsWith:';') not ]) ifTrue:[ + ((lineString startsWith:'#') and:[(lineString startsWith:'#(') not]) ifTrue:[ + lineString := (lineString copyFrom:2) withoutSeparators. + (lineString startsWith:'encoding ') ifTrue:[ + encoding := ResourcePack extractEncodingFromLine:lineString. + decoder := CharacterEncoder encoderFor:encoding ifAbsent:nil. + ]. + ] ifFalse:[ + ResourcePack + processResourceLine:lineString + encoding:decoder + file:aFilename pathName + printErrorWith:[:msg | Transcript showCR:msg ] + for:resourcePack + keepUselessTranslations:true. + ]. + ]. ]. - inStream close. + inStream close. sortedKeys := (resourcePack keys select:[:k | k isString]) asSortedCollection. remainingKeys := resourcePack keys select:[:k | k isString not]. @@ -2479,10 +2479,10 @@ keyStringsToLanguageMappings atLanguage: lang putEncoder: decoder. sortedKeys do:[:k | - keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false + keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false ]. remainingKeys do:[:k | - keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false + keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false ]. keyStringsToLanguageMappings changed. ! @@ -2494,8 +2494,8 @@ lang isNil ifTrue:[^ self]. aFilename := keyStringsToLanguageMappings filenameAt:lang. aFilename isNil ifTrue:[ - aFilename := self requestFilenameFor: lang. - aFilename isNil ifTrue:[^ self]. + aFilename := self requestFilenameFor: lang. + aFilename isNil ifTrue:[^ self]. ]. self saveResourceFile:aFilename for:lang asSymbol ! @@ -2505,10 +2505,10 @@ |aStream | keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. - aStream := FileStream newFileNamed: aFilename. + aStream := FileStream newFileNamed: aFilename. self printLanguage: lang on: aStream. aStream flush; - close. + close. DialogBox information: 'The resource file for the language ', lang printString storeString, ' was saved in the file: ', aFilename nameString ! ! @@ -2534,13 +2534,13 @@ searchText := searchTextView contents. searchText isEmptyOrNil ifTrue:[^self]. self objectsList isEmpty ifTrue:[^self]. - rowFoundIndex := self tableView findFirstRowWithString: searchText - from:1 - to:self objectsList size - ignoreCase:self ignoreCaseHolder value. + rowFoundIndex := self tableView findFirstRowWithString: searchText + from:1 + to:self objectsList size + ignoreCase:self ignoreCaseHolder value. rowFoundIndex isNil ifTrue:[ - self searchTextNotFound. - ^self + self searchTextNotFound. + ^self ]. self selectListIndex: rowFoundIndex @@ -2557,24 +2557,24 @@ self objectsList isEmpty ifTrue:[^self]. currentSelectionIndex := self currentSelectionIndex. (currentSelectionIndex isNil or:[currentSelectionIndex == 0]) ifTrue:[ - self searchNextTextFromBeginning. - ^self. + self searchNextTextFromBeginning. + ^self. ]. listSize := self objectsList size. (currentSelectionIndex == listSize and:[includeCurrentSelection not]) ifTrue:[ - self searchNextTextReachEnd. - ^self. + self searchNextTextReachEnd. + ^self. ]. fromIndex := includeCurrentSelection - ifTrue:[currentSelectionIndex] - ifFalse:[currentSelectionIndex + 1]. - rowFoundIndex := self tableView findFirstRowWithString: searchText - from:fromIndex - to:listSize - ignoreCase:self ignoreCaseHolder value. + ifTrue:[currentSelectionIndex] + ifFalse:[currentSelectionIndex + 1]. + rowFoundIndex := self tableView findFirstRowWithString: searchText + from:fromIndex + to:listSize + ignoreCase:self ignoreCaseHolder value. rowFoundIndex isNil ifTrue:[ - self searchNextTextReachEnd. - ^self + self searchNextTextReachEnd. + ^self ]. self selectListIndex: rowFoundIndex @@ -2602,23 +2602,23 @@ self objectsList isEmpty ifTrue:[^self]. currentSelectionIndex := self currentSelectionIndex. currentSelectionIndex == 1 ifTrue:[ - self searchPreviousTextReachBeginning. - ^self. + self searchPreviousTextReachBeginning. + ^self. ]. (currentSelectionIndex isNil or:[currentSelectionIndex == 0]) - ifTrue:[ - self searchPreviousTextFromEnd. - ^self. - ] - ifFalse:[fromIndex := currentSelectionIndex - 1]. - rowFoundIndex := self tableView findFirstRowWithString: searchText - from: fromIndex - to: 1 - by: -1 - ignoreCase:self ignoreCaseHolder value. + ifTrue:[ + self searchPreviousTextFromEnd. + ^self. + ] + ifFalse:[fromIndex := currentSelectionIndex - 1]. + rowFoundIndex := self tableView findFirstRowWithString: searchText + from: fromIndex + to: 1 + by: -1 + ignoreCase:self ignoreCaseHolder value. rowFoundIndex isNil ifTrue:[ - self searchPreviousTextReachBeginning. - ^self + self searchPreviousTextReachBeginning. + ^self ]. self selectListIndex: rowFoundIndex. @@ -2632,14 +2632,14 @@ searchText := searchTextView contents. searchText isEmptyOrNil ifTrue:[^self]. self objectsList isEmpty ifTrue:[^self]. - rowFoundIndex := self tableView findFirstRowWithString: searchText - from: self objectsList size - to: 1 - by: -1 - ignoreCase:self ignoreCaseHolder value. + rowFoundIndex := self tableView findFirstRowWithString: searchText + from: self objectsList size + to: 1 + by: -1 + ignoreCase:self ignoreCaseHolder value. rowFoundIndex isNil ifTrue:[ - self searchTextNotFound. - ^self + self searchTextNotFound. + ^self ]. self selectListIndex: rowFoundIndex. @@ -2740,11 +2740,11 @@ spec add:(self class keyTableColumn first). self shownLanguages do:[:lang | - |entry| - - entry := self class languageTableColumn first. - entry := entry copy replaceAll:#lang with:lang. - spec add: entry + |entry| + + entry := self class languageTableColumn first. + entry := entry copy replaceAll:#lang with:lang. + spec add: entry ]. ^ spec ! @@ -2762,11 +2762,11 @@ searchBarVisible := self searchBoxVisible value. searchBarVisible ifTrue:[ - bottomOffset := bottomOffset - searchBoxView height. + bottomOffset := bottomOffset - searchBoxView height. ]. translationsPanel layout bottomOffset:bottomOffset-1. translationsPanel container notNil ifTrue:[ - translationsPanel containerChangedSize. + translationsPanel containerChangedSize. ]. "Created: / 16-06-2007 / 11:58:25 / Administrador" @@ -2788,16 +2788,16 @@ self updateExampleLanguageText. ! -languageTextAccepted +languageTextAccepted |nextRowIndex selRow| selRow := self selectedKeyRow value. selRow notNil ifTrue:[ - keyStringsToLanguageMappings size = selRow - ifTrue:[ self updateLanguageTextModification.] - ifFalse:[ - nextRowIndex := selRow + 1. - self selectedKeyRow value: nextRowIndex] + keyStringsToLanguageMappings size = selRow + ifTrue:[ self updateLanguageTextModification.] + ifFalse:[ + nextRowIndex := selRow + 1. + self selectedKeyRow value: nextRowIndex] ]. ! @@ -2814,11 +2814,11 @@ pastePreviousTranslationInLanguageText "Obtain the text from the previous translation and paste it into the languageTextEditor" - + | previousLanguageText previousLanguageRow| previousLanguageRow := dataSetView at:self selectedKeyRow value - 1 - ifAbsent:[^self]. + ifAbsent:[^self]. previousLanguageText := previousLanguageRow atLanguage: self currentLanguage. languageEditor selectAll. languageEditor pasteOrReplace:previousLanguageText. @@ -2834,7 +2834,7 @@ "Modified: / 16-06-2007 / 11:58:44 / Administrador" ! -selectionChanged +selectionChanged self updateOriginalTextModification. self updateLanguageTextModification. @@ -2854,15 +2854,15 @@ ! shownLanguagesChanged - self keyStringAndLanguageSelectionTableColumnDescriptionHolder - value:(self keyStringAndLanguageSelectionTableColumnDescription). + self keyStringAndLanguageSelectionTableColumnDescriptionHolder + value:(self keyStringAndLanguageSelectionTableColumnDescription). ! stopApplication |p| (p := monitoredApplication) notNil ifTrue:[ - p terminate. + p terminate. ]. ! ! @@ -2886,8 +2886,8 @@ addKey:aKey sendChange:aBoolean (keys includes:aKey) ifFalse:[ - keys add:aKey. - aBoolean ifTrue:[ self changed ]. + keys add:aKey. + aBoolean ifTrue:[ self changed ]. ] ! @@ -2898,8 +2898,8 @@ addLanguage:lang (languages includes:lang) ifFalse:[ - languages add:lang. - perLanguageMappings at:lang put:(OrderedDictionary new). + languages add:lang. + perLanguageMappings at:lang put:(OrderedDictionary new). ] ! @@ -2933,7 +2933,7 @@ ^#decoder ! -encoderAt:lang +encoderAt:lang ^ (self languageInfoAt:lang) at: self encoderKey ifAbsent:[nil] ! @@ -2945,7 +2945,7 @@ ^ #filename ! -filenameAt:lang +filenameAt:lang ^ (self languageInfoAt:lang) at: self fileNameKey ifAbsent:[nil] ! @@ -2961,7 +2961,7 @@ ^ keys ! -languageInfoAt: lang +languageInfoAt: lang ^self perLanguageInfo at: lang ifAbsentPut:[Dictionary new] ! @@ -2992,16 +2992,16 @@ removeKey:aKey keys remove:aKey ifAbsent:[]. perLanguageMappings do:[:eachMapping | - eachMapping removeKey:aKey ifAbsent:[]. + eachMapping removeKey:aKey ifAbsent:[]. ]. self changed. ! rowForKey:aKey - ^ rowPerKey - at:aKey - ifAbsentPut:[InternationalLanguageTranslationEditor::LanguageMappingRow new - key:aKey; mappings:self]. + ^ rowPerKey + at:aKey + ifAbsentPut:[InternationalLanguageTranslationEditor::LanguageMappingRow new + key:aKey; mappings:self]. ! size @@ -3012,7 +3012,7 @@ do:aBlock keys do:[:eachKey | - aBlock value:(self rowForKey:eachKey). + aBlock value:(self rowForKey:eachKey). ]. ! ! @@ -3024,7 +3024,7 @@ keys := OrderedSet new. languages := OrderedCollection new. perLanguageMappings := Dictionary new. - perLanguageInfo := Dictionary new. + perLanguageInfo := Dictionary new. rowPerKey := Dictionary new. self addLanguage:#'de'. @@ -3044,16 +3044,16 @@ self addLanguage:#'de'. self addLanguage:#'fr'. - self at:'open' language:#'de' put:'öffnen'. - self at:'close' language:#'de' put:'schliessen'. - self at:'yes' language:#'de' put:'ja'. - self at:'no' language:#'de' put:'nein'. - self at:'cancel' language:#'de' put:'abbrechen'. - - self at:'open' language:#'fr' put:'ouvrir'. - self at:'close' language:#'fr' put:'fermer'. - self at:'yes' language:#'fr' put:'oui'. - self at:'no' language:#'fr' put:'non'. + 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'. + + self at:'open' language:#'fr' put:'ouvrir'. + self at:'close' language:#'fr' put:'fermer'. + self at:'yes' language:#'fr' put:'oui'. + self at:'no' language:#'fr' put:'non'. ! ! !InternationalLanguageTranslationEditor::KeyStringsToLanguageMappings methodsFor:'private'! @@ -3098,23 +3098,23 @@ ^(self atLanguage: lang) keys inject: 0 into:[:maxSize :each | (maxSize < each size and:[each size < 100]) - ifTrue:[each size] - ifFalse:[maxSize].]. + ifTrue:[each size] + ifFalse:[maxSize].]. ! searchForSimilarTranslation: aKey in: language "Returns a collection of translation associations that corresponds to a quite similar key comparing with aKey" |similarAssociations| - - similarAssociations:= + + similarAssociations:= (self mappingAtLanguage: language) associationsSelect:[:each | - ((each key sameAs: aKey) - or:[(aKey asUppercase startsWith: each key asUppercase) - or:[((each key asUppercase levenshteinTo: aKey asUppercase)/ each key size) < 0.3 - ]]) - and:[each value notNil - and:[each value notEmpty]] + ((each key sameAs: aKey) + or:[(aKey asUppercase startsWith: each key asUppercase) + or:[((each key asUppercase levenshteinTo: aKey asUppercase)/ each key size) < 0.3 + ]]) + and:[each value notNil + and:[each value notEmpty]] ]. ^similarAssociations ! ! @@ -3156,17 +3156,17 @@ |l| (anObject isKindOf:UISpecification) ifTrue:[ - (anObject respondsTo:#translateLabel) ifTrue:[ - anObject translateLabel == true ifTrue:[ - translatedLabels isNil ifTrue:[ - translatedLabels := Set new. - ]. - l := anObject perform:#label ifNotUnderstood:nil. - l notNil ifTrue:[ - translatedLabels add:l. - ]. - ]. - ]. + (anObject respondsTo:#translateLabel) ifTrue:[ + anObject translateLabel == true ifTrue:[ + translatedLabels isNil ifTrue:[ + translatedLabels := Set new. + ]. + l := anObject perform:#label ifNotUnderstood:nil. + l notNil ifTrue:[ + translatedLabels add:l. + ]. + ]. + ]. ]. self visitChildrenOf:anObject. ! !