[Etoys] translation issue in addTranslatedList:
Scott Wallace
scott.wallace at squeakland.org
Thu Sep 27 05:19:18 EDT 2007
Hi, Korakurider,
This is getting closer, but it still would require changes to all of
those 25 methods that call #addTranslatedList:, and also would
spuriously grab literals from many other methods that happen to have
big literals in them but which have nothing to do with
#addTranslatedList:.
I'm still quite willing to append #translatedNoop calls to the array
literals in the 25 methods, but I think there's perhaps a better way
that requires writing only one new method and making a one-line
modification to one other method, and which might be more generally
useful in the translation regime in any case.
What I suggest is that one implement a method named something like:
GetTextExporter2 >>
appendStringsAtPositions:ofArgsInSendersOf:into:
whose first argument is an index-list and whose second argument is a
selector, and whose third argument is the categories dictionary
common to the protocol of all the appendXXX methods in GetTextExporter2.
The one guaranteed use-case of this method would be the addition of
the following line to the code for GetTextExporter2 >>
appendTranslations:categories:
self appendStringsAtPositions: #(1 3) ofArgsInSendersOf:
#addTranslatedList: into: categories.
The job of appendStringsAtPositions:ofArgsInSendersOf:into: would be
to retrieve all senders of the given selector, scan the parse tree of
each retrieved method, locate every send of the given selector within
the method node, find out if the argument of the send is an array
literal, and, if it is, iterate across that array, and for each
element of it which *itself* is an array, pick off the strings to be
translated from the index positions requested in the call, and
integrate them into the ongoing categories structure.
Isn't this feasible? Or am I missing something?
If we come across other situations where translatable strings are
buried within elements of complex literal arrays we could then handle
those calls in the same way.
Cheers,
-- Scott
On Sep 26, 2007, at 9:59 PM, korakurider wrote:
> Hi, Takashi, Scott.
>
> --- Takashi Yamamiya <tak at metatoys.org> wrote:
>> I think it will work well if you implement
>> TranslatedReceiverFinder correctly.
>
> Proposed patch is attached. But I am not sure whether
> this is good approach after writing down the patch:
> As tuple format of array is specific to each use case I
> had to assume only #addTranslatedList:, which I don't
> like.
>
> /Korakurider
>
> --------------------------------------
> Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
> http://pr.mail.yahoo.co.jp/toolbar/
> <ArrayTransNoop-KR.1.cs>
More information about the Etoys
mailing list