I don't understand all these removals.<br>Some methods were used no?<br>Try opening a FileList and select a file...<br>.st does not work for me at least.<br><br>Nicolas<br><br><div class="gmail_quote">Le 29 mars 2012 13:50, <span dir="ltr"><<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Edgar J. De Cleene uploaded a new version of System to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/System-edc.475.mcz" target="_blank">http://source.squeak.org/trunk/System-edc.475.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: System-edc.475<br>
Author: edc<br>
Time: 29 March 2012, 8:53:50.906 am<br>
UUID: 168c5525-e271-4c85-81ca-7256ccdfcf3d<br>
Ancestors: System-edc.474<br>
<br>
More cleanup.<br>
Several methods deleted of NaturalLanguageTranslator as implemented in subclass InternalTranslator.<br>
Needed for not Undeclared.<br>
I do all way from fresh 11860.image, no blows<br>
<br>
=============== Diff against System-edc.474 ===============<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>allKnownPhrases (in category 'private') -----<br>
- allKnownPhrases<br>
- ^AllKnownPhrases ifNil: [AllKnownPhrases := Dictionary new: 2051]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>availableLanguageLocaleIDs (in category 'accessing') -----<br>
- availableLanguageLocaleIDs<br>
- "Return the locale ids for the currently available languages.<br>
- Meaning those which either internally or externally have<br>
- translations available."<br>
- "NaturalLanguageTranslator availableLanguageLocaleIDs"<br>
- ^ self translators values collect:[:each | each localeID]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>cachedTranslations (in category 'private') -----<br>
- cachedTranslations<br>
- "CachedTranslations := nil"<br>
- ^CachedTranslations ifNil: [CachedTranslations := Dictionary new]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>cleanUp (in category 'class initialization') -----<br>
- cleanUp<br>
- "Flush caches"<br>
-<br>
- CachedTranslations := nil.<br>
- AllKnownPhrases := nil.!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>cleanUpCache (in category 'private') -----<br>
- cleanUpCache<br>
- "NaturalLanguageTranslator cleanUpCache"<br>
-<br>
- self cachedTranslations keys do: [:key |<br>
- key isoLanguage size > 2 ifTrue: [self cachedTranslations removeKey: key]]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>directoryForLanguage:country:create: (in category 'private loading') -----<br>
- directoryForLanguage: isoLanguage country: isoCountry create: createDir<br>
- "Try to locate the <prefs>/locale/<language>{/<country>} folder.<br>
- If createDir is set, create the path down to country or language, depending on wether it's specified..<br>
- Return the directory for country or language depending on specification.<br>
- If neither exists, nil"<br>
-<br>
- "NaturalLanguageTranslator directoryForLanguage: 'es' country: nil create: true"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'de' country: 'DE' create: true"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'en' country: 'US' create: false"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'en' country: nil create: true"<br>
-<br>
- "If this fails, there is nothing we can do about it here"<br>
- | localeDir countryDir languageDir |<br>
- localeDir := self localeDirCreate: createDir.<br>
- localeDir ifNil: [^nil].<br>
-<br>
- isoCountry ifNil: [<br>
- languageDir := localeDir directoryNamed: isoLanguage.<br>
- createDir<br>
- ifTrue: [languageDir assureExistence].<br>
- ^languageDir exists<br>
- ifTrue: [languageDir]<br>
- ifFalse: [nil]].<br>
-<br>
- countryDir := languageDir directoryNamed: isoCountry.<br>
- createDir<br>
- ifTrue: [countryDir assureExistence].<br>
-<br>
- ^countryDir exists<br>
- ifTrue: [countryDir]<br>
- ifFalse: [nil]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>directoryForLocaleID:create: (in category 'private loading') -----<br>
- directoryForLocaleID: localeID create: createDir<br>
- "Try to locate the <prefs>/locale/<language>{/<country>} folder.<br>
- If createDir is set, create the path down to country or language, depending on locale.<br>
- Return the directory for country or language depending on locale.<br>
- If neither exists, nil"<br>
-<br>
- "NaturalLanguageTranslator directoryForLanguage: 'de' country: nil readOnly: true"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'de' country: 'DE' readOnly: true"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'en' country: 'US' readOnly: false"<br>
- "NaturalLanguageTranslator directoryForLanguage: 'en' country: nil readOnly: true"<br>
-<br>
- ^self directoryForLanguage: localeID isoLanguage country: localeID isoCountry create: createDir!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>loadAvailableExternalLocales (in category 'private loading') -----<br>
- loadAvailableExternalLocales<br>
- "private - register locales IDs based on the content of the <prefs>/locale/ directory"<br>
- | localeDir |<br>
- localeDir := self localeDirCreate: false.<br>
- localeDir ifNil: [^ #()].<br>
- localeDir directoryNames<br>
- do: [:langDirName |<br>
- | langDir |<br>
- langDir := localeDir directoryNamed: langDirName.<br>
- (langDir fileNamesMatching: '*.' , self translationSuffix)<br>
- ifNotEmpty: [self loadTranslatorForIsoLanguage: langDirName isoCountry: nil].<br>
- langDir directoryNames<br>
- do: [:countryDirName |<br>
- | countryDir |<br>
- countryDir := langDir directoryNamed: countryDirName.<br>
- (countryDir fileNamesMatching: '*.' , self translationSuffix)<br>
- ifNotEmpty: [self loadTranslatorForIsoLanguage: langDirName isoCountry: countryDirName]<br>
- ]<br>
- ].<br>
- !<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>loadAvailableLocales (in category 'private loading') -----<br>
- loadAvailableLocales<br>
- "This loads the default locale and all external locales"<br>
-<br>
- | defaultID |<br>
- defaultID := LocaleID current.<br>
- self cachedTranslations at: defaultID ifAbsent: [self localeID: defaultID].<br>
- self loadAvailableExternalLocales.!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>loadExternalTranslationsFor: (in category 'private loading') -----<br>
- loadExternalTranslationsFor: translator<br>
- "Try to load translations from external external files.<br>
- The files are located in the <prefs>/locale/<language>{/<country>} folder.<br>
- There can be more than one file for each location, so applications can install their own partial translation tables. All files in the specific folder are loaded."<br>
-<br>
- | translationDir |<br>
- translationDir := self directoryForLocaleID: translator localeID create: false.<br>
- translationDir ifNil: [ ^nil ].<br>
- (translationDir fileNamesMatching: '*.' , self translationSuffix)<br>
- do: [:fileName | translator loadFromFileNamed: (translationDir fullNameFor: fileName)]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>loadTranslatorForIsoLanguage:isoCountry: (in category 'private loading') -----<br>
- loadTranslatorForIsoLanguage: isoLanguage isoCountry: isoCountry<br>
- "private - load the translations from <prefs>/locale/ directory<br>
- the procedure is to assure the existence of a translator for the<br>
- given language/country and then load the external translations for this translator"<br>
-<br>
- | translator |<br>
- translator := self localeID: (LocaleID isoLanguage: isoLanguage isoCountry: isoCountry).<br>
-<br>
- self loadExternalTranslationsFor: translator!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>localeDirCreate: (in category 'private loading') -----<br>
- localeDirCreate: createDir<br>
- "Try to locate the <prefs>/locale/ folder.<br>
- If createDir is set, try to create the path.<br>
- If it doesn't exist, return nil"<br>
-<br>
- "If this fails, there is nothing we can do about it here"<br>
- | prefDir localeDir |<br>
- (createDir not<br>
- and: [ExternalSettings preferenceDirectory isNil])<br>
- ifTrue: [^ nil].<br>
-<br>
- prefDir := ExternalSettings assuredPreferenceDirectory.<br>
- prefDir exists<br>
- ifFalse: [^nil].<br>
-<br>
-<br>
- localeDir := prefDir directoryNamed: 'locale'.<br>
- createDir<br>
- ifTrue: [localeDir assureExistence].<br>
- ^localeDir exists<br>
- ifTrue: [localeDir]<br>
- ifFalse: [nil]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>registerPhrase: (in category 'private') -----<br>
- registerPhrase: phrase<br>
- "Using a Dictionary so we can lookup existing string instead of creating needless copies when loading a translation."<br>
- self allKnownPhrases at: phrase put: phrase!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>registeredPhraseFor: (in category 'private') -----<br>
- registeredPhraseFor: phrase<br>
- "Using a Dictionary so we can lookup existing string instead of creating needless copies when loading a translation."<br>
- ^self allKnownPhrases at: phrase ifAbsentPut: [phrase]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator class>>translationSuffix (in category 'private') -----<br>
- translationSuffix<br>
- ^'translation'!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>fileOutOn:keys: (in category 'fileIn/fileOut') -----<br>
- fileOutOn: aStream keys: keys<br>
- "self current fileOutOn: Transcript. Transcript endEntry"<br>
- (keys<br>
- ifNil: [generics keys asArray sort])<br>
- do: [:key | self<br>
- nextChunkPut: (generics associationAt: key)<br>
- on: aStream].<br>
- keys<br>
- ifNil: [self untranslated<br>
- do: [:each | self nextChunkPut: each -> '' on: aStream]].<br>
- aStream nextPut: $!!;<br>
- cr!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>generics (in category 'private') -----<br>
- generics<br>
- ^generics ifNil: [generics := Dictionary new]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>loadFromFileNamed: (in category 'private store-retrieve') -----<br>
- loadFromFileNamed: fileNameString<br>
- "Load translations from an external file"<br>
-<br>
- FileStream readOnlyFileNamed: fileNameString do: [ :file |<br>
- self loadFromStream: file ].<br>
- self changed: #translations.<br>
- self changed: #untranslated.<br>
- !<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>loadFromRefStream: (in category 'private store-retrieve') -----<br>
- loadFromRefStream: stream<br>
- "Load translations from an external file"<br>
- | loadedArray refStream |<br>
- refStream := ReferenceStream on: stream.<br>
- [loadedArray := refStream next]<br>
- ensure: [refStream close].<br>
- self processExternalObject: loadedArray !<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>loadFromStream: (in category 'private store-retrieve') -----<br>
- loadFromStream: stream<br>
- "Load translations from an external file"<br>
- | header isFileIn |<br>
- header := '''Translation dictionary'''.<br>
- isFileIn := (stream next: header size)<br>
- = header.<br>
- stream reset.<br>
- isFileIn<br>
- ifTrue: [stream fileInAnnouncing: 'Loading ' translated, stream localName]<br>
- ifFalse: [self loadFromRefStream: stream]!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>mergeTranslations: (in category 'private store-retrieve') -----<br>
- mergeTranslations: newTranslations<br>
- "Merge a new set of translations into the exiting table.<br>
- Overwrites existing entries."<br>
-<br>
- newTranslations keysAndValuesDo: [:key :value |<br>
- self rawPhrase: (self class registeredPhraseFor: key) translation: value].<br>
- self changed: #translations.<br>
- self changed: #untranslated.!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>processExternalObject: (in category 'private store-retrieve') -----<br>
- processExternalObject: anArray<br>
- "pivate - process the external object"<br>
-<br>
- "new format -> {translations. untranslated}"<br>
-<br>
- anArray second do: [:each | self class registerPhrase: each].<br>
-<br>
- self mergeTranslations: anArray first!<br>
<br>
Item was removed:<br>
- ----- Method: NaturalLanguageTranslator>>saveToFileNamed: (in category 'private store-retrieve') -----<br>
- saveToFileNamed: fileNameString<br>
- "save the receiver's translations to a file named fileNameString"<br>
- | stream |<br>
- "Set true if you need to save as binary"<br>
- false<br>
- ifTrue: [stream := ReferenceStream fileNamed: fileNameString.<br>
- stream nextPut: {self translations. self untranslated}.<br>
- stream close.<br>
- ^ self].<br>
- stream := FileStream fileNamed: fileNameString.<br>
- [self fileOutOn: stream]<br>
- ensure: [stream close]!<br>
<br>
<br>
</blockquote></div><br>