- From: Felix Sasaki <fsasaki@w3.org>
- Date: Wed, 25 Jul 2012 18:22:59 +0200
- To: Yves Savourel <ysavourel@enlaso.com>
- Cc: Shaun McCance <shaunm@gnome.org>, public-multilingualweb-lt@w3.org
- Message-ID: <CAL58czpfYw6ZS6BpCAWAjUgrK5bMSTvpzmiwsaTSuPSeZz-yxg@mail.gmail.com>
Ups, yes, sorry. Felix 2012/7/25 Yves Savourel <ysavourel@enlaso.com> > > <its:localeFilterRule selector="//legalnotice" > localeFilterType="exclude" localeFilterList=""/> > > don't add the legalnotice to all locals > > Shouldn't that be: > > Add the legalnotice to all locales? (none is excluded) > > -ys > > > From: Felix Sasaki [mailto:fsasaki@w3.org] > Sent: Wednesday, July 25, 2012 5:21 PM > To: Shaun McCance > Cc: public-multilingualweb-lt@w3.org > Subject: Re: [ACTION 107] Locale Filter > > Hi Shaun, all, > > a question, or rather proposal on this. > > It seems it is possible to express the meaning of "all" and "none" at > > http://www.w3.org/International/multilingualweb/lt/drafts/its20/its20.html#LocaleFilter > via "include" and "exclude", with just the language range list. > > <its:localeFilterRule selector="//legalnotice" localeFilterType="include" > localeFilterList=""/> > > = don't add the legalnotice to any local > > <its:localeFilterRule selector="//legalnotice" localeFilterType="include" > localeFilterList="*"/> > > = add the legalnotice to all locals > > <its:localeFilterRule selector="//legalnotice" localeFilterType="exclude" > localeFilterList="*"/> > > = don't add the legalnotice to any local > > <its:localeFilterRule selector="//legalnotice" localeFilterType="exclude" > localeFilterList=""/> > > = don't add the legalnotice to all locals > > > The basic language range in BCP47 > http://tools.ietf.org/html/bcp47#section-2.1 > contains the "*" anyway. So if we keep "all" and "none", the interaction > between the four values "all", "none", "inlcude" and "exclude" with "*" or > the empty list or ranges gets messy. > > So the idea would be > - get rid of "all" and "none" > - make clear in a note that the list may be empty and that languages > ranges can be just "*", with the effects described above. > > I'm happy to draft that if you and others are OK with this. > > Felix > > 2012/7/16 Shaun McCance <shaunm@gnome.org> > Here's a second take on locale filter. Felix recommended using > a language range from RFC 4647. In fact, we want a priority > list of language ranges. RFC 4647 does not define the syntax > for these, but it defines semantics. [Section 2.3] It uses > a comma-separated list as an example syntax. I used that. > > http://tools.ietf.org/html/rfc4647 > > Also, I've decided to use basic language ranges rather than > extended language ranges. [Sections 2.1, 2.2, 3.3.1, 3.3.2] > Basic ranges either match exactly or match initial substrings > with a hyphen. You can use '*' to mean "anything", but you > can't use it as a subtag, e.g. '*-CH'. If you want to filter > for a region, you'll have to enumerate the languages, e.g. > 'de-CH, fr-CH, it-CH'. > > I chose basic filtering because I think the algorithm for > extended filtering is tricky (but not impossible) to do in > XSLT 1.0, at least without EXSLT. Basic filtering is easy. > If anybody feels strongly that we should use extended > filtering, speak up. I'm not really opposed. > > If there's no objections, I'll put together some examples > and add this to the ODD file. > > > = Locale Filter > > == Definition > > The Locale Filter data category specifies that a node is only > applicable to certain locales, or that it is not applicable > to certain locales. > > This data category can be used for several purposes, including, > but not limited to: > > * Include a legal notice only in locales for certain regions. > * Drop editorial notes from all localized output. > The Locale Filter data category associates with each selected > node a filter type and a language priority list conforming to > RFC 4647. The language priority list is a comma-separated list > of basic language ranges. Whitespace surrounding language ranges > is ignored. > > The locale filter type can take the following values: > > * "all": The node is included in all locales. > * "none": The node is included in no locales. > * "include": The node is only included in locales that match > at least one language range in the language priority list > using basic filtering. > * "exclude": The node is included in all locales except those > that match at least one language range in the language priority > list using basic filtering. > > > If the locale filter type is "all" or "none", a language priority > list SHOULD NOT be provided. If one is, it MUST be ignored. If the > locale filter type is "include" or "exclude", a language priority > list SHOULD be provided. If one is not, it MUST default to the > empty list. > > == Implementation > > The Locale Filter data category can be expressed with global > rules, or locally on an individual element. The information > applies to the textual content of the element, including child > elements and attributes. The default is that the locale filter > type is "all". > Implementations MUST NOT combine language priority lists from > multiple rules or local attributes. > > GLOBAL: The localeFilterRule element contains the following: > > * A required selector attribute. It contains an XPath expression > which selects the nodes to which this rule applies. > > * A required localeFilterType attribute with the value "all", > "none", "include", or "exclude". > > * An optional localeFilterList attribute with a comma-separated > language priority list. > > LOCAL: The following local markup is available for the Locale > Filter data category: > > * A localeFilterType attribute with the value "all", "none", > "include", or "exclude". > * A localFilterList attribute with a comma-separated language > priority list. > > > > > > > > -- > Felix Sasaki > DFKI / W3C Fellow > > > > -- Felix Sasaki DFKI / W3C Fellow
Received on Wednesday, 25 July 2012 16:23:24 UTC