RE: Question about selector scope and rule order

Oops... Syntaxt correction. It should be:

<its:translateRule its:selector="//entry[@localize='no']/text" its:translate="no"/>

Not:

<its:translateRule its:selector="//text[@localize='no']" its:translate="yes"/>

And:

<its:translateRule its:selector="//entry[@localize='no']/text" its:translate="no"/>
<its:translateRule its:selector="//entry[@localize='no']/text/*" its:translate="no"/>

Not:

<its:translateRule its:selector="//text[@localize='no']" its:translate="yes"/>
<its:translateRule its:selector="//text[@localize='no']/*" its:translate="yes"/>

(and I used the potential new names for elements and attributes, just to see how it would look like).
-ys



-----Original Message-----
From: public-i18n-its-request@w3.org [mailto:public-i18n-its-request@w3.org] On Behalf Of Yves Savourel
Sent: Saturday, March 11, 2006 9:52 PM
To: public-i18n-its@w3.org
Subject: Question about selector scope and rule order


Hi all,

I'm running into a question about what exactly the scope of the selector is, and I can't find the answer in the specification. This
happens when you want to override rules.

<myDoc>
 <!-- all element not translatable except <text> -->  ...
 <entry id="1">
  <text>TEXT <code>code</code> TEXT <code>code <sub>TEXT INSIDE CODE</sub> mode code</code> TEXT.</text>  </entry>  <entry id="2"
localize="no">
  <text>TEXT <code>code</code> TEXT <code>code <sub>TEXT INSIDE CODE</sub> mode code</code> TEXT.</text>  </entry> </myDoc>

In the document above imagine that none of the elements are translatable except <text>, inside <text> the element <code> is not
translatable, inside <code> the element <sub> is translatable. This gives us:

<its:translateRule its:selector="//*" its:translate="no"/> <its:translateRule its:selector="//text" its:translate="yes"/>
<its:translateRule its:selector="//code" its:translate="no"/> <its:translateRule its:selector="//sub" its:translate="yes"/>

No problem so far.

Then I have to take in account a flag on the <text> element: if the attribute localize='no' then that <text> element is not
transltable. So can I do simply this:

<its:translateRule its:selector="//text" its:translate="yes"/> <its:translateRule its:selector="//code" its:translate="no"/>
<its:translateRule its:selector="//sub" its:translate="yes"/> <its:translateRule its:selector="//text[@localize='no']"
its:translate="yes"/>

Or do I need to explicitely re-override all child elements of non-translatable <text> to be sure the <sub> elements do not get
translated in such <text>?

<its:translateRule its:selector="//text" its:translate="yes"/> <its:translateRule its:selector="//code" its:translate="no"/>
<its:translateRule its:selector="//sub" its:translate="yes"/> <its:translateRule its:selector="//text[@localize='no']"
its:translate="yes"/> <its:translateRule its:selector="//text[@localize='no']/*" its:translate="yes"/>

In other words: the selector points to one or more nodes, we apply the ITS property there. If there are already ITS properties
applied in some children of these nodes are they overriden or not?

In some other words: When you do a selection which has its default that include child elements (like translatability) does it
override any selection done before at the child elements level?

Is this the precedence problem you talked about at Mandelieu and for which there is the Proposal 09?

Cheers,
-yves

Received on Sunday, 12 March 2006 05:03:34 UTC