Charles Muller wrote:
Wolfgang Laun wrote:
If this is NOT what you intend, please follow the suggestions of
others, and POST MORE INFO!
<xsl:template match="element()[(_at_)xml:lang]">
<xsl:choose>
<xsl:when test="@xml:lang='de'">
<span style="font-family: 'URW Gothic L'">
<xsl:copy-of select="."/>
</span>
</xsl:when>
This is exactly what I wanted to do. I will test this solution, as well
as that offered by Ken Holman, shortly.
Both Wolfgang's and Ken's suggested templates work, thank you!
I realize, now, though, after testing this, that this is probably not
the best way to achieve what I would like to do. This solution works
fine for inline elements, such as <gloss xml:lang="ja">haiku</gloss>
(let's say "haiku" was written in Japanese script), which would be
transformed into something like <span
style="font-family:Mincho">haiku</span>. In this case, <gloss> is
essentially being replaced by <span>
But if I have a block element, let's say <p>:
The way I have been handling paragraphs for years is with this kind of
structure:
<xsl:template match="p">
<xsl:choose>
<xsl:when test="@rend='indented'">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family: 'Times Ext
Roman', 'Times New Roman'">
<xsl:apply-templates/>
</p>
</xsl:when>
<xsl:when test="@rend='plain'">
<p style="margin-left:0; margin-top:0; margin-bottom:0;
text-indent:0mm; line-height:9mm;font-family: 'Times Ext Roman',
'Times New Roman'">
<xsl:apply-templates/>
</p>
</xsl:when>
...
... (etc.)
</xsl:choose>
This is fine as my standard way of writing in English.
But I also work with Japanese, Chinese, and Korean, and when I make
paragraphs in those languages, I want to apply different fonts (and in
some cases, different line heights, indents, etc., but for now, just
focusing on fonts is OK).
Up to now, the way I have been handling this is by making separate
attribute values for the same paragraph style in a different language.
For example, an indented Chinese paragraph would be transformed with
something like this:
<xsl:when test="@rend='indentedZH'">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family: 'MingLiU,
Mincho. Simsum'">
<xsl:apply-templates/>
</p>
</xsl:when>
(all the values remain the same except for the font-family name)
And Korean:
<xsl:when test="@rend='indentedKO'">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family: 'BatangChe,
Batang'">
<xsl:apply-templates/>
</p>
</xsl:when>
However, this begins to get unwieldy, since I basically need to
replicate all of my paragraph formatting styles four times over,
beyond the basic style I use for English. And so I recently thought
that it would be better to take advantage of xml:lang for handling
this, instead of creating an attribute value for each paragraph style
in each language. This is what motivated my original query.
I realize that I could create a sub-tree under each attribute name, like
<xsl:when test="@rend='indented'">
<xsl:choose>
<xsl:when test="lang=('en')">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family:
'Times New Roman'">
<xsl:apply-templates/>
</p>
</xsl:when>
<xsl:when test="lang=('ja')">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family:
Mincho">
<xsl:apply-templates/>
</p>
</xsl:when>
<xsl:when test="lang=('ko')">
<p style="text-indent:12mm; margin-top: 0;
margin-bottom: 0; line-height:9mm;font-family:
Batang">
<xsl:apply-templates/>
</p>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="@rend='plain'">
(etc.)
I could do this, but it certainly seems unwieldy. Or is this the way
people usually do it?
I can now use one of the templates kindly suggested by Ken and
Wolfgang (which, based on my original query, implemented the <span>
tag throughout). This is OK, but I wonder if it is appropriate or
sensible to have this kind of situation throughout the generated document:
<span style="..."><p style="...">Text text text.</p></span>
Or, is there a more efficient way of making some kind of declaration
for xml:lang that would work throughout the document, while inserting
(concatenating?) the style values *inside* the already existent style
values for <p>?
This is what I would like to check into.
I have both Jeni Tennison's and Michael Kay's thick books on XSL, but
I have not been able to locate a discussion that deals with this kind
of problem. Any advice would be appreciated.
Thank you,
Chuck
-------------------
A. Charles Muller
University of Tokyo
Graduate School of Humanities and Sociology, Faculty of Letters
Center for Evolving Humanities
Akamon kenkyū tō #722
7-3-1 Hongō, Bunkyō-ku
Tokyo 113-0033, Japan
Web Site: Resources for East Asian Language and Thought
http://www.acmuller.net
<acmuller[at]jj.em-net.ne.jp>
Mobile Phone: 090-9310-1787
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--