- From: Felix Sasaki <fsasaki@w3.org>
- Date: Wed, 1 Aug 2012 18:25:53 +0200
- To: Shaun McCance <shaunm@gnome.org>
- Cc: public-multilingualweb-lt@w3.org
- Message-ID: <CAL58czobJZTEKmiDuW3VE9Ats8Z2eWcm+BPvm5hNzoinqZJ+wg@mail.gmail.com>
Hi Shaun, that would work for me - let's just see what others think. Felix 2012/8/1 Shaun McCance <shaunm@gnome.org> > Hi Felix, > > Sorry I've been away this past week. I actually have an alternate > proposal to simplify things even further: Drop the filter type > entirely. I asked back in April if anybody had a use case for the > "negative"/"exclude" type: > > > http://lists.w3.org/Archives/Public/public-multilingualweb-lt/2012Apr/0148.html > > I still haven't seen one, and I've had a hard time coming up with > one for the examples. If we don't need "exclude", and if "all" and > "none" can be accomplished otherwise, we could just drop the extra > attribute and instead have this: > > <its:localeFilterRule selector="//legalnotice" > localeFilter="en-CA,fr-CA"/> > > <legalnotice its:localeFilter="en-CA,fr-CA"/> > > So does anybody actually need to enumerate locales where content > must be dropped? > > -- > Shaun > > On Tue, 2012-07-31 at 22:40 +0200, Felix Sasaki wrote: > > Hi Shaun, all, > > > > > > since there wasn't any further feedback on this, I implemented my > > change proposal on ACTION-107, see > > > http://www.w3.org/International/multilingualweb/lt/drafts/its20/its20.html#LocaleFilter > > this means: only two values for filterType ("include" or "exclude"), > > the language range list is mandatory, and it may contain the wildcard > > "*". Comments very welcome. If people disagree with the change I'll > > revert the edits. > > > > > > Best, > > > > > > Felix > > > > > > 2012/7/25 Felix Sasaki <fsasaki@w3.org> > > 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 > > > > > > > > -- Felix Sasaki DFKI / W3C Fellow
Received on Wednesday, 1 August 2012 16:26:19 UTC