[squeak-dev] GetTextTranslator shouldn't return a NaturalLanguageTranslator, but a subclass

Bert Freudenberg bert at freudenbergs.de
Tue May 22 16:52:49 UTC 2012


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 -




More information about the Squeak-dev mailing list