[etoys-dev] Etoys: GetText-bf.15.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jun 24 12:19:50 EDT 2012

Bert Freudenberg uploaded a new version of GetText to project Etoys:

==================== Summary ====================

Name: GetText-bf.15
Author: bf
Time: 24 June 2012, 6:19:43 pm
UUID: 094ae43c-61bb-4f27-a5c4-40d7f39a9a94
Ancestors: GetText-Richo.14

If a literal was marked as translatable, but no strings are found in it, then export the symbols. Normally, only strings are exported, not symbols.

=============== Diff against GetText-Richo.14 ===============

Item was changed:
  ----- Method: TranslatedReceiverFinder>>findWordsWith:in: (in category 'accessing') -----
  findWordsWith: aSymbol in: aMethodReference 
  	"Find words for translation with the symbol in a method. See
  	LanguageEditorTest >>testFindTranslatedWords"
  	"| message | 
  	message := MethodReference new setStandardClass: Morph class
  	methodSymbol: #supplementaryPartsDescriptions.
+ 	self new findWordsWith: #translatedNoop in: message"
- 	self new findWordsWIth: #translatedNoop in: message"
  	| messages keywords aParseNode |
  	aParseNode := aMethodReference decompile.
  	"Find from string literal"
  	messages := Set new.
  		search: aSymbol
  		messageNode: aParseNode
  		addTo: messages.
  	keywords := OrderedCollection new.
  		select: [:aMessageNode | aMessageNode receiver isMemberOf: LiteralNode]
+ 		thenDo: [:aMessageNode |
+ 			(self stringsIn: aMessageNode receiver key addTo: keywords)
+ 				ifFalse: [self symbolsIn: aMessageNode receiver key addTo: keywords]].
- 		thenDo: [:aMessageNode | aMessageNode receiver key
- 				literalStringsDo: [:literal | keywords add: literal]].
  	"Find from array literal"
  		arraySearch: aSymbol
  		messageNode: aParseNode
  		addTo: keywords.
  	^ keywords!

Item was added:
+ ----- Method: TranslatedReceiverFinder>>stringsIn:addTo: (in category 'private') -----
+ stringsIn: aLiteral addTo: aCollection
+ 	"deeply find strings in aLiteral, add them to aCollection, answer true if any found"
+ 	| found |
+ 	found := false.
+ 	aLiteral literalStringsDo: [:literal |
+ 		found := true. 
+ 		aCollection add: literal].
+ 	^found!

Item was added:
+ ----- Method: TranslatedReceiverFinder>>symbolsIn:addTo: (in category 'private') -----
+ symbolsIn: aLiteral addTo: aCollection
+ 	"if no strings were found in aLiteral, but it was marked as translatable, use the symbols"
+ 	aLiteral isSymbol ifTrue: [aCollection add: aLiteral].
+ 	aLiteral isArray ifTrue: [
+ 		aLiteral do: [:each | self symbolsIn: each addTo: aCollection]].
+ !

More information about the etoys-dev mailing list