Nicolas Cellier uploaded a new version of GetText to project The Trunk:
http://source.squeak.org/trunk/GetText-nice.23.mcz ==================== Summary ==================== Name: GetText-nice.23 Author: nice Time: 31 March 2012, 3:01:23.958 pm UUID: 45328fae-3176-4dab-b10f-f008856d3d8b Ancestors: GetText-edc.22 Remove 2 underscore assignment. They were not detected automatically because not separated by space. Apply this minimal formatting rule : indent the method body. Whithout this, reading code really hurts my feeling. =============== Diff against GetText-edc.22 =============== Item was changed: ----- Method: MOFile>>load1:localeID: (in category 'experimental') ----- load1: aFileName localeID: id "CASE1: all of strings are loaded. translation strings are converted to Squeak format on load time. original-string/index pairs are registerd to Dictionary on load time. hash search can't be used" | strm originalTable translatedTable | localeID := id. + strm := FileStream readOnlyFileNamed: aFileName. - strm_ FileStream readOnlyFileNamed: aFileName. fileName := aFileName. [ self loadHeader: strm. originalTable := self loadStringPointers: strm offset: originalTableOffset. originalStrings := self loadStrings: strm pointers: originalTable. translatedTable := self loadStringPointers: strm offset: translatedTableOffset. translatedStrings := self loadStrings: strm pointers: translatedTable encoding: 'utf8' languageEnvironment: (Locale localeID: localeID) languageEnvironment . translations := Dictionary new. 1 to: nStrings do: [:index | | key | key := originalStrings at: index. translations at: key put: index. ]. originalTable := nil. ] ensure: [strm close].! Item was changed: ----- Method: MOFile>>load4:localeID: (in category 'experimental') ----- load4: aFileName localeID: id "CASE4: all of strings are loaded. loading and conversion of translation strings to Squeak format is executed on initialization time. only hash search can be used" | strm originalTable translatedTable | localeID := id. + strm := FileStream readOnlyFileNamed: aFileName. - strm_ FileStream readOnlyFileNamed: aFileName. fileName := aFileName. [ self loadHeader: strm. self loadHashTable: strm. originalTable := self loadStringPointers: strm offset: originalTableOffset. originalStrings := self loadStrings: strm pointers: originalTable. translatedTable := self loadStringPointers: strm offset: translatedTableOffset. translatedStrings := self loadStrings: strm pointers: translatedTable encoding: 'utf-8' languageEnvironment: (Locale localeID: localeID) languageEnvironment . ] ensure: [strm close].! Item was changed: ----- Method: MOFile>>load:localeID: (in category 'public') ----- load: aFileName localeID: id "all of original/translated strings are loaded. but conversion of translation string (in utf-8 bytestring) to Squeak format will be defered. original-string/index pairs are registerd to Dictionary on load time. hash search can't be used" | strm originalTable translatedTable | localeID := id. + strm := FileStream readOnlyFileNamed: aFileName. - strm_ FileStream readOnlyFileNamed: aFileName. fileName := aFileName. [ self loadHeader: strm. originalTable := self loadStringPointers: strm offset: originalTableOffset. originalStrings := self loadStrings: strm pointers: originalTable. translatedTable := self loadStringPointers: strm offset: translatedTableOffset. translatedStrings := self loadStrings: strm pointers: translatedTable. translations := Dictionary new: nStrings * 2. "make too enough room to avoid #grow" 1 to: nStrings do: [:index | | key | key := originalStrings at: index. translations at: key put: index. ]. originalStrings := nil. ] ensure: [strm close].! Item was changed: ----- Method: TextDomainManager class>>allKnownDomains (in category 'accessing') ----- allKnownDomains + "Every package has it's own text domain now so it's not necessary to keep a registry of all domains, we can simply return all the packages in the image. + PROBLEM: If a package doesn't contain translations, it won't have a mo file but the GetTextTranslator will try to load it anyway. This happens when we switch languages. So far I tested it briefly and it seems to work..." + ^PackageOrganizer default packageNames , {'Etoys-Tiles'}! - "Every package has it's own text domain now so it's not necessary to keep a registry of all domains, we can simply return all the packages in the image. - PROBLEM: If a package doesn't contain translations, it won't have a mo file but the GetTextTranslator will try to load it anyway. This happens when we switch languages. So far I tested it briefly and it seems to work..." - ^PackageOrganizer default packageNames , {'Etoys-Tiles'}! Item was changed: ----- Method: TextDomainManager class>>allMethodsWithTranslations (in category 'accessing') ----- allMethodsWithTranslations + "Look for #translated calls" + | methodsWithTranslations | + methodsWithTranslations := TranslatedReceiverFinder new stringReceiversWithContext: #translated. + methodsWithTranslations := methodsWithTranslations , + (TranslatedReceiverFinder new stringReceiversWithContext: #translatedNoop). - "Look for #translated calls" - | methodsWithTranslations | - methodsWithTranslations := TranslatedReceiverFinder new stringReceiversWithContext: #translated. - methodsWithTranslations := methodsWithTranslations, (TranslatedReceiverFinder new - stringReceiversWithContext: #translatedNoop). + methodsWithTranslations := methodsWithTranslations collect: [:each | each key compiledMethod]. - methodsWithTranslations := methodsWithTranslations collect: [:each | each key compiledMethod]. + "Look for Etoys tiles and vocabularies" + methodsWithTranslations := methodsWithTranslations , (EToyVocabulary allPhrasesWithContextToTranslate collect: [:r | + (MethodReference new setStandardClass: r second methodSymbol: r third) compiledMethod]). - "Look for Etoys tiles and vocabularies" - methodsWithTranslations := methodsWithTranslations, (EToyVocabulary allPhrasesWithContextToTranslate collect: [:r | - (MethodReference new setStandardClass: r second methodSymbol: r third) compiledMethod. - ]). + ^methodsWithTranslations! - ^methodsWithTranslations! Item was changed: ----- Method: TextDomainManager class>>defaultDomain (in category 'accessing') ----- defaultDomain + "I'm not sure we still need a default domain, AFAIK the default domain will only be used when no domain is found. In that case, wouldn't it be better to just look for a translation in all domains?" - "I'm not sure we still need a default domain, AFAIK the default domain will only be used when no domain is found. In that case, wouldn't it be better to just look for a translation in all domains?" ^defaultDomain! Item was changed: ----- Method: TextDomainManager class>>domainForClass: (in category 'accessing') ----- domainForClass: aClass + ^'etoys'! - ^'etoys'! Item was changed: ----- Method: TextDomainManager class>>domainForPackage: (in category 'accessing') ----- domainForPackage: aPackageInfo + "Package names and text domains are synonyms now" - "Package names and text domains are synonyms now" ^aPackageInfo name! Item was changed: ----- Method: TextDomainManager class>>textDomainProperty (in category 'private') ----- textDomainProperty + ^#textDomain! - ^#textDomain! Item was changed: ----- Method: TextDomainManager class>>updateDomainOfAllMethodsWithTranslations (in category 'private') ----- updateDomainOfAllMethodsWithTranslations + self allMethodsWithTranslations do: [:each | + self updateDomainOfMethod: each]! - self allMethodsWithTranslations do: [:each| - self updateDomainOfMethod: each - ]! |
Free forum by Nabble | Edit this page |