'From etoys2.2 of 27 September 2007 [latest update: #1726] on 24 October 2007 at 1:19:22 pm'! "Change Set: cleanupMOSupport3-tak Date: 24 October 2007 Author: Takashi Yamamiya Keep backward compatibility. I happened to break backward compatibility about GetTextImporter, sorry. Because .mo overrides the internal translation dictionary, still you can't see translation without remove lang/ (You might think this is still a bug though...). But DrGeoII.sar can be loaded anyway. "! !GetTextImporter commentStamp: 'tak 10/24/2007 11:23' prior: 0! GetTextImporter load gettext po file into a InternalTranslator. GetTextImporter new importID: (LocaleID isoString: 'lang-name') fileNamed: 'lang.po' ! !GetTextImporter methodsFor: 'importing' stamp: 'tak 10/24/2007 12:46'! importID: localeID fileNamed: fileName | currentPlatform | language := InternalTranslator newLocaleID: localeID. currentPlatform := Locale currentPlatform. [Locale currentPlatform: (Locale localeID: localeID). [stream := FileStream readOnlyFileNamed: fileName. stream text. self parse] ensure: [stream notNil ifTrue: [stream close]]] ensure: [Locale currentPlatform: currentPlatform]. NaturalLanguageTranslator privateStartUp "Actually it is not private no more...".! ! !GetTextImporter methodsFor: 'importing' stamp: 'tak 10/24/2007 11:03'! import: aLanguage fileNamed: fileName self importID: aLanguage localeID fileNamed: fileName! ! !GetTextTranslator class methodsFor: 'accessing' stamp: 'tak 10/24/2007 12:35'! availableLanguageLocaleIDs "GetTextTranslator availableLanguageLocaleIDs" | ids dirs localeDirForLang directoryNames | ids := Set new. dirs := Set new. dirs addAll: LocaleDirsForDomain values. dirs addAll: self defaultLocaleDirs. dirs do: [:dir | | localesDir | localesDir := FileDirectory on: dir. directoryNames := [localesDir directoryNames] on: InvalidDirectoryError do: [:e | #()]. directoryNames do: [:langDirName | | localeID | localeID := LocaleID posixName: langDirName. localeDirForLang := localesDir directoryNamed: (self langDirNameForLocaleID: localeID). localeDirForLang ifNotNil: [ (localeDirForLang fileNamesMatching: '*.mo') ifNotEmpty: [ids add: localeID] ] ]. ]. ^ids! ! !InternalTranslator class methodsFor: 'accessing' stamp: 'tak 10/24/2007 12:46'! removeLocaleID: localeID "self removeLocaleID: (LocaleID isoString: 'ja-kids')" self cachedTranslations removeKey: localeID ifAbsent: []. NaturalLanguageTranslator privateStartUp! !