Hilaire Fernandes a écrit :
How should I proceed?

Do I update directly the related package in PharoInbox?


In latest 1.1, I started to file in NaturalLanguageTranslator.st as it looks like a root class. The image frooze.

I guess it is related to Smalltalk registry or so...

How should I proceed?

Hilaire

PS: File in attachment
'From etoys4.0 of 9 October 2008 [dernière mise à jour: #2336] on 29 April 
2010 at 5:02:21 pm'!
Object subclass: #NaturalLanguageTranslator
        instanceVariableNames: 'id'
        classVariableNames: 'Translators'
        poolDictionaries: ''
        category: 'System-Localization'!
!NaturalLanguageTranslator commentStamp: '<historical>' prior: 0!
abstract class of natural language translator.
Class side manages and holds loaded instances of concrete classes.!


!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'yo 8/27/2008 13:10'!
atRandom

        self subclassResponsibility.
! !

!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'KR 10/23/2007 18:40'!
domainRegistered: aDomainName
        "notify that new TextDomain is registered.  Concrete subclass can 
responds to this event if needed"! !

!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'KR 10/23/2007 18:40'!
domainUnregistered: aDomainName
        "notify that new TextDomain is unregistered.  Concrete subclass can 
responds to this event if needed"! !

!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'KR 10/30/2007 18:41'!
isDomainLoaded: aDomainName
        "ask if translation dictionary for the domain has been loaded and 
available now for use"
        self subclassResponsibility.! !

!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'KR 10/15/2007 12:48'!
localeID
        ^id! !

!NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'KR 10/15/2007 12:50'!
localeID: anID
        id := anID! !


!NaturalLanguageTranslator methodsFor: 'language switching' stamp: 'KR 
10/17/2007 01:57'!
setCurrent
        "notify locale of the translator become current"
! !


!NaturalLanguageTranslator methodsFor: 'printing' stamp: 'tak 10/19/2007 13:59'!
printOn: aStream
        aStream nextPutAll: self class name; nextPut: $(; print: self localeID; 
nextPut: $)! !


!NaturalLanguageTranslator methodsFor: 'translation' stamp: 'KR 10/17/2007 
01:34'!
translate: aString
        ^self translate: aString 
                inDomain: TextDomainManager defaultDomain! !

!NaturalLanguageTranslator methodsFor: 'translation' stamp: 'tak 10/19/2007 
13:38'!
translate: aString inDomain: aDomainName
        ^ aString! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

NaturalLanguageTranslator class
        instanceVariableNames: ''!

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'tak 10/19/2007 
11:20'!
availableForLocaleID: localeID 
        "Answer available locale ID.
        If translator is not found for correct locale ID, then isoLanguage is
        attempted for the key."
        ^ self translators
                at: localeID
                ifAbsent: [localeID hasParent
                                ifTrue: [self translators
                                                at: localeID parent
                                                ifAbsent: [self default]]
                                ifFalse: [self default]]! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'tak 10/19/2007 
13:47'!
availableLanguageLocaleIDs
        "Return the locale ids for the currently available languages.  
        Meaning those which either internally or externally have  
        translations available."
        "NaturalLanguageTranslator availableLanguageLocaleIDs"
        ^ self translators values collect:[:each | each localeID]! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'KR 10/15/2007 
12:58'!
current
        ^ self availableForLocaleID: LocaleID current! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'KR 10/15/2007 
12:59'!
default
        "Answer translator for backstop"
        "self default translate: 'test'"
        ^ self new
                localeID: (LocaleID isoLanguage: 'en')! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'KR 10/23/2007 
18:41'!
domainRegistered: aDomainName
        "notify that new TextDomain is registered"
        self translators do: [:each | each domainRegistered: aDomainName]! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'KR 10/23/2007 
18:41'!
domainUnregistered: aDomainName
        "notify that new TextDomain is unregistered"
        self translators do: [:each | each domainUnregistered: aDomainName]! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'KR 10/23/2007 
19:42'!
localeChanged
        "notify some project starts to use this locale.
         this facility may use the event to load translation data dynamically" 
        self current setCurrent
! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'tak 10/19/2007 
11:21'!
removeLocaleID: localeID 
        "self removeLocaleID: (LocaleID isoString: 'ja-kids')"
        ^ self translators
                removeKey: localeID
                ifAbsent: []! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'tak 10/19/2007 
11:18'!
resetCaches
        Translators := nil.! !

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'tak 10/19/2007 
11:15'!
translators
        ^ Translators ifNil: [Translators := Dictionary new]    ! !


!NaturalLanguageTranslator class methodsFor: 'class initialization' stamp: 'tak 
10/19/2007 15:25'!
initialize
        Smalltalk addToStartUpList: NaturalLanguageTranslator after: 
FileDirectory.
! !

!NaturalLanguageTranslator class methodsFor: 'class initialization' stamp: 'KR 
10/23/2007 19:43'!
privateStartUp
        self resetCaches.
        GetTextTranslator privateStartUp.
        InternalTranslator privateStartUp.
        self localeChanged.! !

!NaturalLanguageTranslator class methodsFor: 'class initialization' stamp: 'tak 
10/19/2007 15:29'!
startUp: resuming 
        resuming
                ifFalse: [^ self].
        self privateStartUp.! !


!NaturalLanguageTranslator class methodsFor: 'translation' stamp: 'KR 
10/30/2007 18:59'!
translateWithoutLoading: aString toLocaleID: localeID
        "translate for default domain"
        ^self translateWithoutLoading: aString toLocaleID: localeID inDomain: 
TextDomainManager defaultDomain.
! !

!NaturalLanguageTranslator class methodsFor: 'translation' stamp: 'KR 
10/30/2007 18:50'!
translateWithoutLoading: aString toLocaleID: localeID inDomain: aDomainName
        "try to translate with small footprint:
                if GetTextTranslator hasn't loaded MO, try to use 
InternalTranslator.
                if InternalTranslator isn't available, then actually load MO 
and use it"
        | translator |
        translator := self availableForLocaleID: localeID.
        (translator isDomainLoaded: aDomainName) ifFalse: [
                (InternalTranslator availableLanguageLocaleIDs includes: 
localeID)
                        ifTrue:  [translator := InternalTranslator localeID: 
localeID].
        ].
        ^translator translate: aString inDomain: aDomainName! !

!NaturalLanguageTranslator class methodsFor: 'translation' stamp: 'KR 
10/30/2007 18:33'!
translate: aString toLocaleID: localeID
        "translate for default domain"
        ^ (self availableForLocaleID: localeID)
                translate: aString! !

!NaturalLanguageTranslator class methodsFor: 'translation' stamp: 'KR 
10/15/2007 14:00'!
translate: aString toLocaleID: localeID inDomain: aDomainName
        ^ (self availableForLocaleID: localeID)
                translate: aString inDomain: aDomainName! !


NaturalLanguageTranslator initialize!
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to