'From etoys2.2 of 27 September 2007 [latest update: #1715] on 19 October 2007 at 10:00:46 pm'! "Change Set: cleanupMOSupport2-tak Date: 19 October 2007 Author: Takashi Yamamiya - Rename NaturalLanguageTranslator2 to NaturalLanguageTranslator. - InternalTranslator becames a subclass of NaturalLanguageTranslator. - Cleanup startup process of NaturalLanguageTranslator. "! TestCase subclass: #GetTextTranslatorTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'System-Localization'! TestCase subclass: #GettextTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Multilingual-Editor'! TestCase subclass: #LocaleTest instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'System-Localization'! Smalltalk renameClassNamed: #NaturalLanguageTranslator2 as: #NaturalLanguageTranslator! NaturalLanguageTranslator subclass: #InternalTranslator instanceVariableNames: 'generics ' classVariableNames: 'AllKnownPhrases CachedTranslations ' poolDictionaries: '' category: 'System-Localization'! Object subclass: #TextDomainManager instanceVariableNames: '' classVariableNames: 'ClassCategories DefaultDomain' poolDictionaries: '' category: 'System-Localization'! !GetTextTranslatorTest methodsFor: 'testing' stamp: 'tak 10/19/2007 14:53'! testTranslateAll | translator legacy trn1 trn2| GetTextTranslator availableLanguageLocaleIDs do: [:localeID | Transcript show: 'switching to ', (localeID isoString); cr. translator _ GetTextTranslator newForLocaleID: localeID. legacy _ InternalTranslator localeID: localeID. legacy translations keys do: [:each | trn1 _ translator translate: each. trn2 _ legacy translate: each. trn1 = each ifFalse: [ "skip phrases not translated yet" "ignore enclosing blanks for now" trn1 _ trn1 withBlanksTrimmed. trn2 _ trn2 withBlanksTrimmed. self assert: (trn1 = trn2). ]. ]. ].! ! !GettextTest methodsFor: 'testing' stamp: 'tak 10/19/2007 22:00'! testHeader "self debug: #testHeader" self assert: '' translated = ''! ! !LanguageEditor methodsFor: 'gui methods' stamp: 'tak 10/19/2007 13:37'! searchTranslation: aString | results index | results := self translations select: [:each | "" ('*' , aString , '*' match: each) or: ['*' , aString , '*' match: (self translator translate: each)]]. "" results isEmpty ifTrue: ["" self inform: 'no matches for' translated , ' ''' , aString , ''''. ^ self]. "" results size = 1 ifTrue: ["" self selectTranslationPhrase: results first. ^ self]. "" index := (PopUpMenu labelArray: (results collect: [:each | "" (each copy replaceAll: Character cr with: $\) , ' -> ' , ((self translator translate: each) copy replaceAll: Character cr with: $\)])) startUpWithCaption: 'select the translation...' translated. "" index isZero ifTrue: ["" self beep. ^ self]. "" self selectTranslationPhrase: (results at: index)! ! !LanguageEditor methodsFor: 'accessing' stamp: 'tak 10/19/2007 13:37'! translation "answer the translation for the selected phrase" self selectedTranslation isZero ifTrue: [^ '