diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/docs/Makefile.am | 1 | ||||
-rwxr-xr-x | tests/docs/bug-142.xml | 65 | ||||
-rw-r--r-- | tests/general/Makefile.am | 1 | ||||
-rw-r--r-- | tests/general/bug-142.out | 35 | ||||
-rwxr-xr-x | tests/general/bug-142.xsl | 85 |
5 files changed, 187 insertions, 0 deletions
diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am index 467bd50a..cabb0077 100644 --- a/tests/docs/Makefile.am +++ b/tests/docs/Makefile.am @@ -141,6 +141,7 @@ EXTRA_DIST = \ bug-139.xml \ bug-140.xml \ bug-141.xml \ + bug-142.xml \ character.xml \ array.xml \ items.xml diff --git a/tests/docs/bug-142.xml b/tests/docs/bug-142.xml new file mode 100755 index 00000000..295bb03a --- /dev/null +++ b/tests/docs/bug-142.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<posts xmlns:日本語="http://glandium.org/nihongo/" xmlns="http://glandium.org/" xml:lang="fr"> + <post xml:lang="ja" id="6"> + <title 日本語:翻訳="Un autre message en japonais" 日本語:読方="ほかのにほんごのでんごん">他の日本語の伝言</title> + <date weekday="0">20040126</date> + <section>ウェブサイト</section> + <content> + <para 日本語:翻訳="Ce message est écrit en japonais et a une traduction" 日本語:読方="このでんごんはにほんごでかいて、ほんやくがある">この伝言は日本語で書いて、翻訳がある。<span xml:lang="fr">couhin ?</span></para> + <para xml:lang="fr">Et on a une petite phrase en français.</para> + </content> + </post> + <post id="5"> + <title>Test</title> + </post> + <post xml:lang="ja" id="4"> + <title>日本語の伝言</title> + <date weekday="0">20040125</date> + <section>ウェブサイト</section> + <content> + <para>この伝言は日本語で書いて、翻訳がない。<span 日本語:翻訳="En fait, juste un peu (et c'est une erreur)" 日本語:読方="じつはすこしだけ">実は少しだけ</span>。</para> + <para>あいうえおかきくけこさしすせそ…</para> + </content> + </post> + <post id="3"> + <date weekday="5">20050812</date> + </post> + <post id="2"> + <!-- Titre d'un post qui n'est pas en japonais non traduit ? -> erreur ! --> + <title>間違い</title> + <date weekday="0">20040125</date> + <section>部門は間違い</section> + <content> + <para>Quelques <item href="plop">tests</item> d'erreurs :</para> + <list> + <para>Un paragraphe dans la liste</para> + <item href="http://www.google.com/">un lien externe sans hreflang,</item> + <item></item> + <item><span><list><item>un couac</item></list></span>,</item> + <item><para><list><item>un autre</item></list></para>,</item> + <item>une <span 日本語:翻訳="traduction">翻訳</span> sans xml:lang="ja"</item> + <item xml:lang="ja" 日本語:翻訳="une date dans un bloc traduit"><date>20040125</date></item> + </list> + </content> + </post> + <post id="1"> + <title xml:lang="ja">サンプル</title> + <date weekday="0">20040125</date> + <section xml:lang="ja">ウェブサイト</section> + <content> + <para>Ceci est un <span xml:lang="ja" 日本語:翻訳="test" 日本語:読方="てすと">テスト</span>.</para> + <list> + <item>Voici une liste,</item> + <item>un splendide test de <span href="http://www.google.com/" hreflang="en">lien extérieur</span>,</item> + <item>un autre test de lien, mais <span href="glandium.png">interne, cette fois</span>,</item> + <item xml:lang="ja" 日本語:翻訳="Item en japonais" 日本語:読方="にほんごのあいてむ">日本語のアイテム、</item> + <item xml:lang="ja" href="http://www.google.com" 日本語:翻訳="Item en japonais avec un lien" 日本語:読方="リンクがあるにほんごのあいてむ">リンクがある日本語のアイテム、</item> + <item href="http://www.google.com" hreflang="en">un item lien.</item> + <item>Un <span xml:lang="ja">テスト</span> d'auto-traduction (le mot est présent plus haut dans le post, pas la peine de tout répéter...</item> + <item>une date en ligne : <date weekday="1">20040301</date> et <list><item>une liste dans la liste</item></list></item> + <item>un <span href="glandium.png">lien avec du <span xml:lang="ja" 日本語:翻訳="japonais" 日本語:読方="にほんご">日本語</span> dedans</span></item> + </list> + <para href="http://www.google.com" hreflang="en">un paragraphe lien.</para> + </content> + </post> +</posts> diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am index 64f6a99d..6199da92 100644 --- a/tests/general/Makefile.am +++ b/tests/general/Makefile.am @@ -147,6 +147,7 @@ EXTRA_DIST = \ bug-139.out bug-139.xsl \ bug-140.out bug-140.xsl \ bug-141.out bug-141.xsl \ + bug-142.out bug-142.xsl \ character.out character.xsl \ character2.out character2.xsl \ itemschoose.out itemschoose.xsl \ diff --git a/tests/general/bug-142.out b/tests/general/bug-142.out new file mode 100644 index 00000000..6d71a1a9 --- /dev/null +++ b/tests/general/bug-142.out @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><body><div id="post6" xml:lang="ja"><h3><a href="2004/01/26/6">他の日本語の伝言</a></h3> + <p>この伝言は日本語で書いて、翻訳がある。<span xml:lang="fr">couhin ?</span></p> + <p>Et on a une petite phrase en français.</p> + </div> + Test + <div id="post4" xml:lang="ja"><h3><a href="2004/01/25/4">日本語の伝言</a></h3> + <p>この伝言は日本語で書いて、翻訳がない。実は少しだけ。</p> + <p>あいうえおかきくけこさしすせそ…</p> + </div><div id="post3" xml:lang="ja"><h3><a href="2005/08/12/3"/></h3></div><div id="post2" xml:lang="ja"><h3><a href="2004/01/25/2">間違い</a></h3> + <p>Quelques tests d'erreurs :</p> + <ul> + Un paragraphe dans la liste + <li><a href="http://www.google.com/">un lien externe sans hreflang,</a></li> + <li/> + <li><span xml:lang="fr"><li>un couac</li></span>,</li> + <li><li>un autre</li>,</li> + <li>une <span xml:lang="fr">翻訳</span> sans xml:lang="ja"</li> + <li>20040125</li> + </ul> + </div><div id="post1" xml:lang="ja"><h3><a href="2004/01/25/1">サンプル</a></h3> + <p>Ceci est un <span xml:lang="ja">テスト</span>.</p> + <ul> + <li>Voici une liste,</li> + <li>un splendide test de <a href="http://www.google.com/">lien extérieur</a>,</li> + <li>un autre test de lien, mais <a href="glandium.png">interne, cette fois</a>,</li> + <li>日本語のアイテム、</li> + <li><a href="http://www.google.com">リンクがある日本語のアイテム、</a></li> + <li><a href="http://www.google.com">un item lien.</a></li> + <li>Un <span xml:lang="ja">テスト</span> d'auto-traduction (le mot est présent plus haut dans le post, pas la peine de tout répéter...</li> + <li>une date en ligne : 20040301 et <ul><li>une liste dans la liste</li></ul></li> + <li>un <a href="glandium.png">lien avec du <span xml:lang="ja">日本語</span> dedans</a></li> + </ul> + <p><a href="http://www.google.com">un paragraphe lien.</a></p> + </div></body></html> diff --git a/tests/general/bug-142.xsl b/tests/general/bug-142.xsl new file mode 100755 index 00000000..8e1a6ac0 --- /dev/null +++ b/tests/general/bug-142.xsl @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:g="http://glandium.org/" xmlns:日本語="http://glandium.org/nihongo/" xmlns:date="http://exslt.org/dates-and-times" exclude-result-prefixes="g 日本語 date"> + + <xsl:template match="g:posts"> + <html xml:lang="fr"> + <body> + <xsl:apply-templates select="*"/> + </body> + </html> + </xsl:template> + + <xsl:template match="g:posts/g:post[g:date]"> + <xsl:variable name="id" select="@id"/> + <xsl:variable name="date" select="concat(substring(g:date,1,4),'/',substring(g:date,5,2),'/',substring(g:date,7,2))"/> + + <div id="post{$id}"> + <xsl:if test="lang(ja)"> + <xsl:attribute name="xml:lang">ja</xsl:attribute> + </xsl:if> + <h3><a href="{$date}/{$id}"> + <xsl:apply-templates select="g:title"/> + </a></h3> + <xsl:apply-templates select="g:content"/> + </div> + </xsl:template> + + <xsl:template match="g:post/g:title"> + <xsl:apply-templates mode="日本語" select="."/> + </xsl:template> + + <xsl:template match="g:post/g:content"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="g:content/g:para"> + <p><xsl:apply-templates mode="link" select="."/></p> + </xsl:template> + + <xsl:template match="g:para/g:span|g:item/g:span|g:span/g:span"> + <xsl:apply-templates mode="link" select="."/> + </xsl:template> + + <xsl:template match="g:content/g:list|g:item/g:list"> + <ul><xsl:apply-templates mode="link" select="."/></ul> + </xsl:template> + + <xsl:template match="g:list/g:item"> + <li><xsl:apply-templates mode="link" select="."/></li> + </xsl:template> + + <xsl:template match="g:span[@href]|g:para[@href]|g:item[@href]" mode="link"> + <a href="{@href}"> + <xsl:apply-templates mode="日本語" select="."/> + </a> + </xsl:template> + + <xsl:template match="*" mode="link"> + <xsl:apply-templates mode="日本語" select="."/> + </xsl:template> + + <xsl:template match="*" mode="日本語"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="*[lang('ja') and not(ancestor::*[@xml:lang='ja'])]" mode="日本語"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="g:span[lang('ja') and not (ancestor::*[@xml:lang='ja'])][not(@href)]" mode="日本語"> + <span xml:lang="ja"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="*[lang('fr')]" mode="日本語"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="g:span[lang('fr')][not(@href)]" mode="日本語"> + <span xml:lang="fr"> + <xsl:apply-templates/> + </span> + </xsl:template> + +</xsl:stylesheet> |