'From Squeak3.7-m17n of 21 July 2004 [latest update: #0] on 21 July 2004 at 7:42:29 pm'! "Change Set: localeFixes Date: 21 July 2004 Author: Michael Rueger A few fixes to make the LanguageEditor work. Also removes the SpanishEnvironment, the check mechanism is now implemented in the LanguageEditor."! !LanguageEnvironment methodsFor: 'utilities' stamp: 'mir 7/21/2004 18:05'! checkPhrase: phrase translation: translation "check the translation. Answer a string with a comment or meaning no-comments" ^nil! ! !LanguageEnvironment class methodsFor: 'class initialization' stamp: 'mir 7/21/2004 19:10'! resetKnownEnvironments "LanguageEnvironment resetKnownEnvironments" KnownEnvironments := nil! ! !LanguageEnvironment class methodsFor: 'private' stamp: 'mir 7/21/2004 19:08'! initKnownEnvironments "LanguageEnvironment initKnownEnvironments" | env known | known := Dictionary new. self allSubclassesDo: [:subClass | subClass supportedLanguages do: [:language | env := subClass new. env localeID: (LocaleID isoString: language). known at: env localeID put: env]]. ^known! ! !JapaneseEnvironment class methodsFor: 'subclass responsibilities' stamp: 'mir 7/21/2004 19:09'! supportedLanguages "Return the languages that this class supports. Any translations for those languages will use this class as their environment." ^#('ja' 'ja-etoys' )! ! !Latin1Environment class methodsFor: 'subclass responsibilities' stamp: 'mir 7/21/2004 19:01'! supportedLanguages "Return the languages that this class supports. Any translations for those languages will use this class as their environment." ^#('en' 'de' 'es' 'fr' 'no' 'sv' 'nl')! ! !LocaleID methodsFor: 'accessing' stamp: 'mir 7/21/2004 19:17'! isoString ^self asString! ! !NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'mir 7/21/2004 17:00'! translations ^self generics! ! !NaturalLanguageTranslator methodsFor: 'accessing' stamp: 'mir 7/21/2004 17:03'! untranslated | translations | translations := self translations. ^self class allKnownPhrases reject: [:each | translations includesKey: each]! ! !NaturalLanguageTranslator methodsFor: 'translation' stamp: 'mir 7/21/2004 18:02'! checkPhrase: phrase translation: translation! ! !NaturalLanguageTranslator methodsFor: 'private store-retrieve' stamp: 'mir 7/21/2004 19:13'! loadFromFileNamed: fileNameString "Load translations from an external file" | stream | [stream := FileStream readOnlyFileNamed: fileNameString. self loadFromStream: stream] ensure: [stream close]! ! !NaturalLanguageTranslator methodsFor: 'private store-retrieve' stamp: 'mir 7/21/2004 17:02'! saveToFileNamed: fileNameString "save the receiver's translations to a file named fileNameString" | stream | stream := ReferenceStream fileNamed: fileNameString. stream nextPut: {self translations. self untranslated}. stream close! ! !Project methodsFor: 'language' stamp: 'mir 7/21/2004 16:54'! localeChanged "Set the project's natural language as indicated" | | self localeID = LocaleID current ifTrue: [^self]. self projectParameterAt: #localeID put: LocaleID current. self updateLocaleDependents! ! !Project methodsFor: 'language' stamp: 'mir 7/21/2004 16:54'! updateLocaleDependents "Set the project's natural language as indicated" ActiveWorld allTileScriptingElements do: [:viewerOrScriptor | viewerOrScriptor localeChanged]. Flaps disableGlobalFlaps: false. Flaps enableGlobalFlaps. (Project current isFlapIDEnabled: 'Navigator' translated) ifFalse: [Flaps enableDisableGlobalFlapWithID: 'Navigator' translated]. ParagraphEditor initializeTextEditorMenus. Utilities emptyScrapsBook. MenuIcons initializeTranslations. LanguageEnvironment localeChanged. #(PartsBin ParagraphEditor BitEditor FormEditor StandardSystemController) do: [ :key | Smalltalk at: key ifPresent: [ :class | class initialize ]]. "self setFlaps. self setPaletteFor: aLanguageSymbol." ! ! !LanguageEnvironment reorganize! ('initialize-release' beCurrentNaturalLanguage localeID:) ('accessing' isoCountry isoLanguage leadingChar localeID) ('utilities' checkPhrase:translation:) ! Smalltalk removeClassNamed: #SpanishEnvironment!