/* * 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.