翻訳対象を切り出す、の第一歩
ディスク不足でOLPC etoys環境を消してしまったので、SqL2005J上で書きました。
要はこれをgettext用に書き出せばいいんですよね?(確認)
しかし、#searchMethodNode:addTo: の結果をながめていると、明らかに #translatedのレシーバーのリテラルを集められていない箇所があります(たとえば FreeCellStatistic>>printStreaksOn:)。コンパイラ出力の構造を勉強する必要がありそうですね。
!TranslatedReceiverFinder methodsFor: 'as yet unclassified' stamp: 'KR 7/9/2007 12:59'! analyzeSenders | mrs results rr cls mn t o oe | mrs _ SystemNavigation default allCallsOn: #translated. results _ OrderedCollection new. mrs do: [:mr | rr _ OrderedCollection new. cls _ Smalltalk at: mr classSymbol. rr add: cls category. rr add: mr classSymbol. rr add: mr methodSymbol. mr classIsMeta ifTrue: [ mn _ cls class decompile: mr methodSymbol. ] ifFalse: [ mn _ cls decompile: mr methodSymbol. ]. o _ OrderedCollection new. t _ SortedCollection new. self searchMethodNode: mn addTo: t. t do: [ :te | oe _ OrderedCollection new. oe add: te. oe add: te translated. o add: oe. ]. rr add: o. results add: rr. ]. ^ results. ! !