- From: Felix Sasaki <fsasaki@w3.org>
- Date: Mon, 27 Mar 2006 14:11:47 +0900
- To: Yves Savourel <yves@opentag.com>
- Cc: public-i18n-its@w3.org
- Message-ID: <44277413.9060401@w3.org>
Yves Savourel wrote: > Hi felix, all, > >> I think there is a way to achieve what you want, just >> by going for 2) and by saying: >> <its:documentRules xmlns:its="http://www.w3.org/2005/11/its"> >> 1 <its:translateRule its:translate="yes" its:selector="//textInCode"/> >> 2 <its:translateRule its:translate="no" its:selector="//code"/> >> 3 <its:translateRule its:translate="yes" >> its:selector="//*[@trans='true']/descendant-or-self::*"/> >> 4 <its:translateRule its:translate="no" >> its:selector="//*[@trans='false']/descendant-or-self::*"/> >> </its:documentRules> > > My understanding is (was) that when we apply the its:selector expression of a rule, it selects a node, and from that node we apply > the data category information to the same scope described for the equivalent locale rule. that is what you called 2), right? > > In http://lists.w3.org/Archives/Public/public-i18n-its/2006JanMar/0290.html you said: > >> ...In my XQuery implementation, XPath expressions like "//text[@localize='no']" >> are interpreted as "//text[@localize='no']/descendant-or-self::*". > > To me that means its:selector="//code" is really its:selector="//code/descendant-or-self::*", so why would we need to specify it? Because I was wrong in that mail :( . we cannot just interpret //text[@localize='no'] as //text[@localize='no']/descendant-or-self::*, but should say //text[@localize='no'] attaches (virtually) its:translate="no" to all nodes //text[@localize='no'] , and then as a second step the inheritance comes into play. Only in this way we have 100% parallelism with local ITS, that is the functionality you called 2). For a document <text localize="no"> <p>...</p> </text> the rule <its:translateRule its:select="//text[@localize='no']" its:translate="no"/> would mean <text its:global-rule-1="no" localize="no"> <p>...</p> </text> whereas <its:translateRule its:select="//text[@localize='no']/descendant-or-self::*" its:translate="no"/> would mean <text its:global-rule-1="no" localize="no"> <p its:global-rule-1="no">...</p> </text> Here it does not make a difference. The difference is in the following: global rule 1: <its:translateRule its:select="//p" its:translate="yes"/> global rule 2: <its:translateRule its:select="//text[@localize='no']" its:translate="no"/> In the case above, <p> would be translated, the document would "look" like: <text its:global-rule-2="no" localize="no"> <p its:global-rule-1="yes" its:inherited-translatability="no">...</p> </text> In the case below, <p> wouldn't be translated: <its:translateRule its:select="//text[@localize='no']/descendant-or-self::*" its:translate="no"/> <its:translateRule its:select="//p" its:translate="yes"/> The document would look like: <text its:global-rule-2="no" localize="no"> <p its:global-rule-1="yes" its:global-rule-2="no" its:inherited-translatability="no">...</p> </text> Cheers, Felix
Received on Monday, 27 March 2006 05:11:58 UTC