[ 
https://issues.apache.org/jira/browse/COCOON-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570795#action_12570795
 ] 

solprovider commented on COCOON-1529:
-------------------------------------

The i18n transformer requires users to add the transform to each pipeline.  In 
my experience, the i18n transformer is always called just before a Serializer.  
Resolving i18n tags should happen in two situations:
1) Translation during serialization before leaving an XMAP.  Unresolved i18n 
elements must remain for later processing.
2) Translation before presenting the information.  Unresolved i18n elements 
should translate to the default and be removed.  The i18n namespace should be 
removed.

The first case can be integrated into the XMLSerializer.
The second case can be integrated into final Serializers such as the 
HTMLSerializer.
Since the XMLSerializer can be used in both situations, an "i18n-finalize" 
parameter can decide if the defaults should be used and the i18n namespace be 
removed.  An "i18n-ignore" parameter could be used for when performance matters 
and the i18n functionality is not useful, but new users would benefit from the 
reduced code of the default functionality.

Each Serializer can have "i18n-catalog" parameters.  These catalog parameter 
could be made unnecessary by having a default catalog name related to the 
sitemap, e.g. sitemap.xmap defaults to using sitemap_i18n_xx.xml and 
sitemap_i18n.xml from the same directory.
 
Some people may argue against mixing Transformer functionality into 
Serializers.  Serialization is a transformation possibly resulting in a non-XML 
data format.  I18n functionality is ubiquitous and a major benefit of Cocoon.  
Integrating i18n into Serializers removes the need for building a comprehensive 
catalog for use in the final step before the final 
transformation/serialization; each XMAP handles its unique i18n translations 
and leaves unknown translations for later processing.

This suggestion does not expect the removal of the i18nTransformer.  Allowing 
the i18nTransformer to be called without serialization may prove useful and is 
necessary for backwards-compatibility.

As a non-integrated Transformer, the i18nTransformer should distinguish between 
interim transforms that translate only elements from the current catalogs and 
final transforms that resolve every i18n element/attribute and remove the i18n 
namespace.

> I18nTranformer should consume and stop propagating start/endPrefixMapping of 
> its namespace
> ------------------------------------------------------------------------------------------
>
>                 Key: COCOON-1529
>                 URL: https://issues.apache.org/jira/browse/COCOON-1529
>             Project: Cocoon
>          Issue Type: Bug
>          Components: - Components: Sitemap
>    Affects Versions: 2.1.8, 2.1.9, 2.2-dev (Current SVN)
>         Environment: Operating System: other
> Platform: Other
>            Reporter: Juan Jose Pablos
>            Priority: Minor
>         Attachments: I18nTransformer.java.diff
>
>
> This is a strage bug.
> on http://localhost:8888/samples/i18n/simple.xml around line 183:
>   <annotation xmlns:i18n="http://apache.org/cocoon/i18n/2.1";>
> This produces wrong xml output (extra xmlns:i18n attribute).
> now if you commented out the annotation element then the xmlns:i18n attribute
> goes to the next element:
>  <content xmlns:i18n="http://apache.org/cocoon/i18n/2.1";>
> It looks like it goes to the parent element always.
> I wish that I could have more information about how to resolve this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to