/*
* Copyright (c) 2009, 2010 and 2011 Frank G. Bennett, Jr. All Rights
* Reserved.
*
* The contents of this file are subject to the Common Public
* Attribution License Version 1.0 (the “License”); you may not use
* this file except in compliance with the License. You may obtain a
* copy of the License at:
*
* http://bitbucket.org/fbennett/citeproc-js/src/tip/LICENSE.
*
* The License is based on the Mozilla Public License Version 1.1 but
* Sections 14 and 15 have been added to cover use of software over a
* computer network and provide for limited attribution for the
* Original Developer. In addition, Exhibit A has been modified to be
* consistent with Exhibit B.
*
* Software distributed under the License is distributed on an “AS IS”
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is the citation formatting software known as
* "citeproc-js" (an implementation of the Citation Style Language
* [CSL]), including the original test fixtures and software located
* under the ./std subdirectory of the distribution archive.
*
* The Original Developer is not the Initial Developer and is
* __________. If left blank, the Original Developer is the Initial
* Developer.
*
* The Initial Developer of the Original Code is Frank G. Bennett,
* Jr. All portions of the code written by Frank G. Bennett, Jr. are
* Copyright (c) 2009 and 2010 Frank G. Bennett, Jr. All Rights Reserved.
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU Affero General Public License (the [AGPLv3]
* License), in which case the provisions of [AGPLv3] License are
* applicable instead of those above. If you wish to allow use of your
* version of this file only under the terms of the [AGPLv3] License
* and not to allow others to use your version of this file under the
* CPAL, indicate your decision by deleting the provisions above and
* replace them with the notice and other provisions required by the
* [AGPLv3] License. If you do not delete the provisions above, a
* recipient may use your version of this file under either the CPAL
* or the [AGPLv3] License.”
*/
@1385
``language``
Tests whether the ``language`` field of the item to be
rendered matches any of the given locales. This is
treated as a single test for all values of purposes of
the ``match`` attribute ("none", "any", or "all").
When the test succeeds, the locale is changed to the
tested value for all child nodes called via the test.
See `The language test attribute`_ below for details
on the locale selection.
@1398
The language test attribute
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``language`` test attribute accepts a list of locale
specifiers. Specifiers may be either a two-character
language code (e.g. "en", for English), or a two-character language code
and a two-character region code separated by a hyphen
(e.g. "de-CH", or the variant of German spoken in Switzerland).
Testing and locale assignment are performed as follows:
1. The test succeeds if any of the given language specifiers match
against the ``language`` field of the item to be rendered;
2. Two-character language specifiers (those without a region code)
match any item ``language`` value for that language, regardless
of the region tag;
3. The first language specifier in the list determines the
locale to be set on children of the condition statement.
The following examples illustrate this behavior:
.. sourcecode:: xml
In the example above, the "cite" macro will be executed with the
base locale of Portuguese ("pt-PT") for any item with a ``language``
field value of Portuguese (e.g. "pt", "pt-BR", or "pt-PT"). For
all other items, the "cite" macro will be executed with the default
locale of the style.
.. sourcecode:: xml
In the example above, the "cite" macro will be executed with
the mainland (simplified) Chinese locale for items that have the
specifier "zh-CH" set in the ``language`` field. Items
that have the specifier for the non-simplified version of
Chinese used in Taiwan set in the ``language`` field ("zh-TW") will be
rendered with that locale. All other items will be rendered with
the default locale of the style.
.. sourcecode:: xml
In the example above, the "cite" macro will be executed
with the Austrian locale ("de-AT") for all items that have
German set in the item ``language`` field, regardless of
region code.