'From etoys2.3 of 1 December 2007 [latest update: #1852] on 19 December 2007 at 12:43:43 pm'! "Change Set: moPath-KR Date: 19 December 2007 Author: Korakurider Search path for translation data (*.mo) can be specified by startup parameter 'MO_PATH'. With this each activity bundle can provide private translation in its directory tree. e.g. etoys -document proj.pr MO_PATH $SUGAR_ACTIVITY_ROOT/lang $args Note that in this case MO has to be under: $SUGAR_ACTIVITY_ROOT/lang//LC_MESSAGES "! NaturalLanguageTranslator subclass: #GetTextTranslator instanceVariableNames: 'moFiles ' classVariableNames: 'LocaleDirsForDomain UserDefaultLocaleDirs SystemDefaultLocaleDirs ' poolDictionaries: '' category: 'System-Localization'! !GetTextTranslator class methodsFor: 'class initialization' stamp: 'KR 12/19/2007 12:29'! initialize SystemDefaultLocaleDirs _ OrderedCollection new. UserDefaultLocaleDirs _ OrderedCollection new. LocaleDirsForDomain _ Dictionary new.! ! !GetTextTranslator class methodsFor: 'class initialization' stamp: 'KR 12/19/2007 12:32'! privateStartUp self setupLocaleDirs. self availableLanguageLocaleIDs do: [ :localeID | NaturalLanguageTranslator translators at: localeID put: (self newForLocaleID: localeID). ]! ! !GetTextTranslator class methodsFor: 'translation data layout' stamp: 'KR 12/19/2007 11:46'! addSystemDefaultLocaleDir: dir "new dir will be put as first" self systemDefaultLocaleDirs addFirst: dir! ! !GetTextTranslator class methodsFor: 'translation data layout' stamp: 'KR 12/19/2007 12:43'! setupLocaleDirs | dirs sepa localesDirName | sepa := FileDirectory slash. SystemDefaultLocaleDirs := nil. dirs := self systemDefaultLocaleDirs. localesDirName := 'lang'. dirs add: (SmalltalkImage current imagePath) , sepa , localesDirName. dirs add: (SmalltalkImage current vmPath) , sepa , localesDirName. ^dirs! ! !GetTextTranslator class methodsFor: 'translation data layout' stamp: 'KR 12/19/2007 12:31'! systemDefaultLocaleDirs ^SystemDefaultLocaleDirs ifNil: [SystemDefaultLocaleDirs := OrderedCollection new] ! ! !ProjectLauncher methodsFor: 'running' stamp: 'KR 12/19/2007 12:23'! startUpAfterLogin | scriptName loader isUrl | self setupMOPath. self setupFlaps. Preferences readDocumentAtStartup ifTrue: [ HTTPClient isRunningInBrowser ifTrue:[ self setupFromParameters. scriptName _ self parameterAt: 'src'. CodeLoader defaultBaseURL: (self parameterAt: 'Base'). ] ifFalse:[ scriptName _ (SmalltalkImage current getSystemAttribute: 2) ifNil:['']. scriptName _ scriptName convertFromSystemString. scriptName isEmpty ifFalse:[ "figure out if script name is a URL by itself" isUrl _ (scriptName asLowercase beginsWith:'http://') or:[ (scriptName asLowercase beginsWith:'file://') or:[ (scriptName asLowercase beginsWith:'ftp://')]]. isUrl ifFalse:[scriptName _ 'file:',scriptName]]. ]. ] ifFalse: [ scriptName := '' ]. scriptName isEmptyOrNil ifTrue:[^Preferences eToyFriendly ifTrue: [self currentWorld addGlobalFlaps]]. loader _ CodeLoader new. loader loadSourceFiles: (Array with: scriptName). (scriptName asLowercase endsWith: '.pr') ifTrue:[self installProjectFrom: loader] ifFalse:[loader installSourceFiles]. ! ! !ProjectLauncher methodsFor: 'initialization' stamp: 'KR 12/19/2007 12:23'! setupMOPath (self includesParameter: 'MO_PATH') ifTrue: [GetTextTranslator addSystemDefaultLocaleDir: (self parameterAt: 'MO_PATH')]. ! ! GetTextTranslator class removeSelector: #addSymtemDefaultLocaleDirs:! GetTextTranslator class removeSelector: #addSymtemDefaultLocaleDir:! GetTextTranslator initialize! NaturalLanguageTranslator subclass: #GetTextTranslator instanceVariableNames: 'moFiles' classVariableNames: 'LocaleDirsForDomain SystemDefaultLocaleDirs UserDefaultLocaleDirs' poolDictionaries: '' category: 'System-Localization'! "Postscript: " GetTextTranslator initialize; privateStartUp. !