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

Re: [ACTION-107] Locale Filter

From: Felix Sasaki <fsasaki@w3.org>
Date: Fri, 3 Aug 2012 11:56:47 +0200
Message-ID: <CAL58czqYjy8wkyXRbPtfs-hZTjFFxUM3+ShoW8WWQ8bePgq9Kg@mail.gmail.com>
To: Shaun McCance <shaunm@gnome.org>, public-multilingualweb-lt@w3.org
Hi Shaun, all,

one more aspect about the locale filter data category. Currently we specify
basic filtering
http://tools.ietf.org/html/rfc4647#section-3.3.1
as the method to match locales in the localeFilter rule and in the content.
Would it make sense to use extended filtering
http://tools.ietf.org/html/rfc4647#section-3.3.2
and extended language ranges
http://tools.ietf.org/html/rfc4647#section-2.2
instead?

This allows you to specify a language range like de-*-DE , which matches
e.g. de-latn-DE.

I have an action item from the i18n core working group to check this.

Thanks,

Felix

2012/8/1 Felix Sasaki <fsasaki@w3.org>

> 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
>
>


-- 
Felix Sasaki
DFKI / W3C Fellow
Received on Friday, 3 August 2012 09:57:18 UTC

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