| <?xml version="1.0" standalone="no"?> |
| <!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"> |
| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| --> |
| <!-- $Id$ --> |
| <s1 title="lang() function"> |
| |
| <ul> |
| <li><link anchor="functionality">Functionality</link></li> |
| <li><link anchor="implementation">Implementation</link></li> |
| </ul> |
| <anchor name="functionality"/> |
| <s2 title="Functionality"> |
| |
| <p>The <code>xml:lang</code> can be used to determine the language for a node or |
| a node-set. The attribute can be used to store language-specific data in an |
| XML document:</p> |
| |
| <source> |
| <phrases> |
| <greeting xml:lang="en">Hello!</greeting> |
| <greeting xml:lang="no">Hei!</greeting> |
| <greeting xml:lang="fr">Salut!</greeting> |
| <greeting xml:lang="es">Hola!</greeting> |
| <greeting xml:lang="de">Sweinhund!</greeting> |
| </phrases> |
| </source> |
| |
| <p>The XSL stylesheet can use the <code>lang()</code> function to select the |
| element with the desired language:</p> |
| |
| <source> |
| <xsl:template match="greeting"> |
| <xsl:if test="lang("de")> |
| <xsl:value-of select="."/> |
| <xsl:text> Grossglucklicher wunche!</xsl:text> |
| </xsl:if> |
| </xsl:template> |
| </source> |
| </s2> <anchor name="implementation"/> |
| <s2 title="Implementation"> |
| |
| <p>The DOM interface has been given a method that returns the language for |
| a given node. The language is returned as a string (on whatever format is |
| used in the XML document - should be iso), and may be null if no language is |
| defined.</p> |
| |
| <source> |
| public String DOM.getLanguage(int node); |
| </source> |
| |
| <p>The BasisLibrary class has a static method that will compare the language |
| of the context node with some other language and return the result as a |
| boolean.</p> |
| |
| <source> |
| public static boolean BasisLibrary.testLanguage(String language, DOM dom, int node); |
| </source> |
| |
| <p>The compiled code for the <code>lang()</code> method calls this method in the |
| BasisLibrary and leaves the result on the stack for the calling element.</p> |
| </s2> |
| </s1> |