.. _lang: ==== lang ==== Testa o idioma de um nó Descrição ~~~~~~~~~ A função fn:lang testa o idioma de um nó, que é dado por um atributo xml:lang no próprio nó ou num ancestral. Funciona com qualquer nó, e não só com os que contêm strings. É muito usada em predicados de caminhos, para filtrar os dados de um idioma. O argumento $testLang é o idioma a testar. A função devolve true se o atributo xml:lang que vale para o $node tiver um valor que corresponde a $testLang. Devolve false se esse atributo não corresponder a $testLang, ou se não houver atributo xml:lang que valha. O atributo xml:lang que vale é o do próprio nó de contexto ou de um ancestral. Se houver mais de um entre o nó e os ancestrais, vale o mais próximo. A comparação não diferencia maiúsculas de minúsculas: se $testLang for en, casa com o xml:lang EN, e vice-versa. Além disso, o valor de xml:lang pode ser uma variante do idioma de $testLang. Por exemplo, en-US, en-UK e en-US-UK são variantes de en. Então, se $testLang for en e xml:lang for en-US, o nó casa. O contrário não vale: se $testLang for en-US e xml:lang for en, não casa. .. list-table:: :widths: 40 60 :header-rows: 1 * - **Parâmetros** - **Descrição** * - testlang:string() - o idioma a testar * - node:node() - o nó a testar; se omitido, o nó de contexto Exemplos ~~~~~~~~ Os exemplos abaixo usam este documento de entrada: .. code-block:: xml A line of text. Une ligne de texte. .. list-table:: :widths: 50 50 :header-rows: 1 * - **XPath** - **Resultado** * - $in-xml// desc[lang('en')] - A line of text. * - $in-xml// desc[lang('en-US')] - A line of text. * - $in-xml// desc[lang('fr')] - Une ligne de texte. * - $in-xml// desc/line[lang('en')] - A line of text. * - $in-xml[lang('en-US')] - () * - $in-xml// desc[lang('FR')] - Une ligne de texte.