W3C home > Mailing lists > Public > public-multilingualweb-lt@w3.org > July 2012

Re: [ACTION 107] Locale Filter

From: Felix Sasaki <fsasaki@w3.org>
Date: Wed, 25 Jul 2012 18:22:59 +0200
Message-ID: <CAL58czpfYw6ZS6BpCAWAjUgrK5bMSTvpzmiwsaTSuPSeZz-yxg@mail.gmail.com>
To: Yves Savourel <ysavourel@enlaso.com>
Cc: Shaun McCance <shaunm@gnome.org>, public-multilingualweb-lt@w3.org
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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:31:47 UTC