Sorry to bother again with this, but I really need it.

I need to internationalize Pier components. I am doing a site with Pier for Spanish people. The final user has access to Pier components. For example, it can leave comments or even post. But pier components have the html outputs in English. For example when you are going to create a post you have "author, publish, tags, ..." and I want "autor, publicacion, etiquetas...".

I think Pier give CMS a new and higher level to CMS. I think there is a field in websites that can start being done with Pier, but they are no "CMS traditional". For example, in my case, I am making a tourism website with Pier. This sounds strange isn't it ? However It give me lots of features:

1) Do a lot with very little time and code
2) Dynamism: I can modify my website at any moment just using a browser.
3) The website can be built with business people. For example my friend (Tourisim graduated). Hi doesn't now anything about computer neither wiki. I explained few things: edit a page, add a page, links and now, he is building the website with me. Ok, not all of it, but parts.
4) I am making the first tourism website I know where the final user can be part of.

I think Pier+Seaside+Magritte has all the power and capabilities to spread about this new field. But, for this, is very important to have int18.

Ok, after said that, I want to add int18 to my website but I don't want to touch Pier code. So, the solution I thought is this:

override String #printOn: or Object #printString     (which one could be better?)  to something like this:
(suppose I override printOn:)

printOn: aStream
    "Print inside string quotes, doubling inbedded quotes."
     self size < 100
         ifTrue: [ self localize storeOn: aStream ]
        ifFalse: [ self storeOn: aStream ]


Then I define localize like this:

localize
    ^ WACurrentSession value ifNotNilDo: [ :session | session language localize: self ].


And then the Langauge # localize could be something like this:

localize: aString
    ^self localizationMap at: aString ifAbsent: [ aString ].

Obviously all of this methods will be with category *MiApp (an extension).

Could this be a good idea? Any other solution ?

Thanks in advance,

Mariano