GetTextTranslator shouldn't return a NaturalLanguageTranslator, but a subclass

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

GetTextTranslator shouldn't return a NaturalLanguageTranslator, but a subclass

Frank Shearar-3
GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'en')
returns a NaturalLanguageTranslator. NaturalLanguageTranslator has an
abstract implementation of #isDomainLoaded: so

    (GetTextTranslator availableForLocaleID: (LocaleID isoLanguage:
'en')) isDomainLoaded: 'Etoys'

raises a subclassResponsibility error.

I just had a Process fail because of this, but I don't know what
caused it: I just switched back to the (fully updated) image where I
was looking at Colin's Mirror implementation, and saw the debugger.

frank

Reply | Threaded
Open this post in threaded view
|

Re: GetTextTranslator shouldn't return a NaturalLanguageTranslator, but a subclass

Bert Freudenberg
On 22.05.2012, at 18:32, Frank Shearar wrote:

> GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'en')
> returns a NaturalLanguageTranslator. NaturalLanguageTranslator has an
> abstract implementation of #isDomainLoaded: so
>
>    (GetTextTranslator availableForLocaleID: (LocaleID isoLanguage:
> 'en')) isDomainLoaded: 'Etoys'
>
> raises a subclassResponsibility error.
>
> I just had a Process fail because of this, but I don't know what
> caused it: I just switched back to the (fully updated) image where I
> was looking at Colin's Mirror implementation, and saw the debugger.

If the language is not found, it should return an InternalTranslator. Here's what I get in Etoys:

GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'en')
        ==> GetTextTranslator(en)

GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'xx')
        ==> InternalTranslator(en)

You need this method:

!NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'bf 8/8/2010 13:17'!
default
        "Answer translator for backstop"
        "self default translate: 'test'"
        ^ InternalTranslator new
                localeID: (LocaleID isoLanguage: 'en')! !

(and when our source server is up again we should commit that)

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: GetTextTranslator shouldn't return a NaturalLanguageTranslator, but a subclass

Frank Shearar-3
On 22 May 2012 17:52, Bert Freudenberg <[hidden email]> wrote:

> On 22.05.2012, at 18:32, Frank Shearar wrote:
>
>> GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'en')
>> returns a NaturalLanguageTranslator. NaturalLanguageTranslator has an
>> abstract implementation of #isDomainLoaded: so
>>
>>    (GetTextTranslator availableForLocaleID: (LocaleID isoLanguage:
>> 'en')) isDomainLoaded: 'Etoys'
>>
>> raises a subclassResponsibility error.
>>
>> I just had a Process fail because of this, but I don't know what
>> caused it: I just switched back to the (fully updated) image where I
>> was looking at Colin's Mirror implementation, and saw the debugger.
>
> If the language is not found, it should return an InternalTranslator. Here's what I get in Etoys:
>
> GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'en')
>        ==> GetTextTranslator(en)
>
> GetTextTranslator availableForLocaleID: (LocaleID isoLanguage: 'xx')
>        ==> InternalTranslator(en)
>
> You need this method:
>
> !NaturalLanguageTranslator class methodsFor: 'accessing' stamp: 'bf 8/8/2010 13:17'!
> default
>        "Answer translator for backstop"
>        "self default translate: 'test'"
>        ^ InternalTranslator new
>                localeID: (LocaleID isoLanguage: 'en')! !
>
> (and when our source server is up again we should commit that)
>
> - Bert -

I was about to say "but I have that!" but actually I have

default
        "Answer translator for backstop"
        "self default translate: 'test'"
        ^ self new
                localeID: (LocaleID isoLanguage: 'en')

OK, well, I'm glad it's something that I don't need to write up on Mantis then!

Thanks!

frank