XSLT I18N
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="directory_es.xslt"?> <directory> <employee category="manager"> <name>Joe S</name> <phone>4-1111</phone> </employee> <employee category="programmer"> <name>A B</name> <phone>4-2222</phone> </employee> <employee category="programmer"> <name>C D</name> <phone>4-3333</phone> </employee> </directory> //directory_en.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8"/> <!-- Isolate locale-specific content --> <xsl:variable name="lang.pageTitle" select="'Employee Directory'"/> <xsl:variable name="lang.nameHeading" select="'Name'"/> <xsl:variable name="lang.categoryHeading" select="'Category'"/> <xsl:variable name="lang.phoneHeading" select="'Phone'"/> <xsl:variable name="lang.manager" select="'Manager'"/> <xsl:variable name="lang.programmer" select="'Programmer'"/> <xsl:variable name="lang.other" select="'Other'"/> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="$lang.pageTitle"/></title> </head> <body> <h1><xsl:value-of select="$lang.pageTitle"/></h1> <table cellpadding="4" cellspacing="0" border="1"> <tr> <th><xsl:value-of select="$lang.nameHeading"/></th> <th><xsl:value-of select="$lang.categoryHeading"/></th> <th><xsl:value-of select="$lang.phoneHeading"/></th> </tr> <xsl:for-each select="directory/employee"> <tr> <td> <xsl:value-of select="name"/> </td> <td> <xsl:choose> <xsl:when test="@category='manager'"> <xsl:value-of select="$lang.manager"/> </xsl:when> <xsl:when test="@category='programmer'"> <xsl:value-of select="$lang.programmer"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$lang.other"/> </xsl:otherwise> </xsl:choose> </td> <td> <xsl:value-of select="phone"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> //directory_basic.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8"/> <xsl:template match="/"> <html> <head> <title>Employee Directory</title> </head> <body> <h1>Employee Directory</h1> <table cellpadding="4" cellspacing="0" border="1"> <tr> <th>Name</th> <th>Category</th> <th>Phone</th> </tr> <xsl:for-each select="directory/employee"> <tr> <td> <xsl:value-of select="name"/> </td> <td> <xsl:choose> <xsl:when test="@category='manager'"> <xsl:text>Manager</xsl:text> </xsl:when> <xsl:when test="@category='programmer'"> <xsl:text>Programmer</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>Other</xsl:text> </xsl:otherwise> </xsl:choose> </td> <td> <xsl:value-of select="phone"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> //directory_es.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="directory_en.xslt"/> <xsl:output method="html" encoding="UTF-8"/> <!-- Isolate locale-specific content --> <xsl:variable name="lang.pageTitle" select="'Empleado guia telefonica'"/> <xsl:variable name="lang.nameHeading" select="'Nombre'"/> <xsl:variable name="lang.categoryHeading" select="'Categoria'"/> <xsl:variable name="lang.phoneHeading" select="'Telefono'"/> <xsl:variable name="lang.manager" select="'Gerente'"/> <xsl:variable name="lang.programmer" select="'Programador'"/> <xsl:variable name="lang.other" select="'Otro'"/> </xsl:stylesheet>