source: scripts/xml-stats/format.xsl@ 2613

Last change on this file since 2613 was 2613, checked in by Александър Шопов, 14 years ago

По-добро форматиране

File size: 7.8 KB
RevLine 
[2250]1<?xml version="1.0" encoding="UTF-8" ?>
2<xsl:stylesheet version="1.0"
3xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4xmlns:math="http://exslt.org/math"
5xmlns:dyn="http://exslt.org/dynamic"
6xmlns:str="http://exslt.org/strings"
7
8extension-element-prefixes="math dyn str">
9
10<xsl:variable name="nl">
11<xsl:text>
12</xsl:text>
13</xsl:variable>
14<xsl:variable name="dot" select="' • '"/>
15<xsl:variable name="po-prefix" select="'po-'"/>
16<xsl:variable name="true-false-replace" select="'truefals'"/>
17
18
19<xsl:output encoding="UTF-8" method="text"/>
20<xsl:variable name="maxNameLength" select="dyn:max(//domain, 'string-length(concat(../@id,translate(boolean(substring-after(@id,$po-prefix)),$true-false-replace,$dot),substring-after(@id,$po-prefix)))')" />
21<xsl:variable name="maxTranslatedLength" select="string-length(dyn:sum(//domain/translated,'.'))" />
22<xsl:variable name="maxFuzzzyLength" select="string-length(dyn:sum(//domain/fuzzy,'.'))" />
23<xsl:variable name="maxUntranslatedLength" select="string-length(dyn:sum(//domain/untranslated,'.'))" />
24<xsl:variable name="maxAllLength" select="string-length(dyn:sum(//domain/translated,'.')+dyn:sum(//domain/fuzzy,'.')+dyn:sum(//domain/untranslated,'.'))" />
25<xsl:variable name="maxTodoLength" select="string-length(dyn:sum(//domain/fuzzy,'.')+dyn:sum(//domain/untranslated,'.'))" />
26
27
28
29<xsl:template match="/">
[2613]30<!-- DEBUG -->
[2250]31<!--
32<xsl:value-of select="$maxNameLength"/>@maxNameLength
33<xsl:value-of select="$maxTranslatedLength" />@maxTranslatedLength
34<xsl:value-of select="$maxFuzzzyLength"/>@maxFuzzzyLength
35<xsl:value-of select="$maxUntranslatedLength"/>@maxUntranslatedLength
36<xsl:value-of select="$maxAllLength"/>@maxAllLength
37<xsl:value-of select="$maxTodoLength"/>@maxTodoLength
38-->
39
[2613]40
[2250]41<xsl:call-template name="draw-heading"/>
42<xsl:call-template name="draw-separator"/>
43
44<xsl:for-each select="//domain">
45<xsl:sort order="descending" select="fuzzy + untranslated" data-type="number"/>
46<xsl:sort order="descending" select="untranslated" data-type="number"/>
47<xsl:sort order="descending" select="translated + fuzzy + untranslated" data-type="number"/>
48<xsl:sort order="ascending" select="../@id"/>
49
50
51<xsl:call-template name="draw-line">
52<xsl:with-param name="name" select="concat(../@id,translate(boolean(substring-after(@id,$po-prefix)),$true-false-replace,$dot),substring-after(@id,$po-prefix))"/>
53<xsl:with-param name="nameLength" select="$maxNameLength"/>
54<xsl:with-param name="translated" select="translated"/>
55<xsl:with-param name="translatedLength" select="$maxTranslatedLength"/>
56<xsl:with-param name="fuzzy" select="fuzzy"/>
57<xsl:with-param name="fuzzyLength" select="$maxFuzzzyLength"/>
58<xsl:with-param name="untranslated" select="untranslated"/>
59<xsl:with-param name="untranslatedLength" select="$maxUntranslatedLength"/>
60<xsl:with-param name="all" select="translated+fuzzy+untranslated"/>
61<xsl:with-param name="allLength" select="$maxAllLength"/>
62<xsl:with-param name="todo" select="fuzzy+untranslated"/>
63<xsl:with-param name="todoLength" select="$maxTodoLength"/>
64<xsl:with-param name="separator" select="'|'"/>
65<xsl:with-param name="pad" select="' '"/>
66</xsl:call-template>
67
68
69</xsl:for-each>
70
71<xsl:call-template name="draw-separator"/>
72<xsl:call-template name="draw-footer"/>
73</xsl:template>
74
75<xsl:template name="draw-line">
76<xsl:param name="name"/>
77<xsl:param name="nameLength"/>
78<xsl:param name="translated"/>
79<xsl:param name="translatedLength"/>
80<xsl:param name="fuzzy"/>
81<xsl:param name="fuzzyLength"/>
82<xsl:param name="untranslated"/>
83<xsl:param name="untranslatedLength"/>
84<xsl:param name="all"/>
85<xsl:param name="allLength"/>
86<xsl:param name="todo"/>
87<xsl:param name="todoLength"/>
88<xsl:param name="separator"/>
89<xsl:param name="pad"/>
90
[2613]91<!-- DEBUG -->
[2250]92<!--
93<xsl:value-of select="$name"/>#name
94<xsl:value-of select="$nameLength"/>#nameLength
95<xsl:value-of select="$translated"/>#translated
96<xsl:value-of select="$translatedLength"/>#translatedLength
97<xsl:value-of select="$fuzzy"/>#fuzzy
98<xsl:value-of select="$fuzzyLength"/>#fuzzyLength
99<xsl:value-of select="$untranslated"/>#untranslated
100<xsl:value-of select="$untranslatedLength"/>#untranslatedLength
101<xsl:value-of select="$all"/>#all
102<xsl:value-of select="$allLength"/>#allLength
103<xsl:value-of select="$todo"/>#todo
104<xsl:value-of select="$todoLength"/>#todoLength
105<xsl:value-of select="$separator"/>#separator
106<xsl:value-of select="$pad"/>#pad
107-->
108
109
110<xsl:value-of select="str:align($name,str:padding($nameLength+2,$pad),'left')"/>
111<xsl:value-of select="$separator"/>
112<xsl:value-of select="str:align($todo,str:padding($todoLength+2,$pad),'right')"/>
113<xsl:value-of select="$separator"/>
114<xsl:value-of select="str:align($untranslated,str:padding($untranslatedLength+2,$pad),'right')"/>
115<xsl:value-of select="$separator"/>
116<xsl:value-of select="str:align($fuzzy,str:padding($fuzzyLength+2,$pad),'right')"/>
117<xsl:value-of select="$separator"/>
118<xsl:value-of select="str:align($translated,str:padding($translatedLength+2,$pad),'right')"/>
119<xsl:value-of select="$separator"/>
120<xsl:value-of select="str:align($all,str:padding($allLength+2,$pad),'right')"/>
121<xsl:value-of select="$nl"/>
122
123
124</xsl:template>
[2613]125
126
[2250]127<xsl:template name="draw-separator">
128<xsl:call-template name="draw-line">
129<xsl:with-param name="name" select="''"/>
130<xsl:with-param name="nameLength" select="$maxNameLength"/>
131<xsl:with-param name="translated" select="''"/>
132<xsl:with-param name="translatedLength" select="$maxTranslatedLength"/>
133<xsl:with-param name="fuzzy" select="''"/>
134<xsl:with-param name="fuzzyLength" select="$maxFuzzzyLength"/>
135<xsl:with-param name="untranslated" select="''"/>
136<xsl:with-param name="untranslatedLength" select="$maxUntranslatedLength"/>
137<xsl:with-param name="all" select="''"/>
138<xsl:with-param name="allLength" select="$maxAllLength"/>
139<xsl:with-param name="todo" select="''"/>
140<xsl:with-param name="todoLength" select="$maxTodoLength"/>
141<xsl:with-param name="separator" select="'+'"/>
142<xsl:with-param name="pad" select="'-'"/>
143</xsl:call-template>
144</xsl:template>
145
146<xsl:template name="draw-heading">
147<xsl:call-template name="draw-line">
148<xsl:with-param name="name" select="'Име'"/>
149<xsl:with-param name="nameLength" select="$maxNameLength"/>
150<xsl:with-param name="translated" select="'Преведени'"/>
151<xsl:with-param name="translatedLength" select="$maxTranslatedLength"/>
152<xsl:with-param name="fuzzy" select="'Мъгляви'"/>
153<xsl:with-param name="fuzzyLength" select="$maxFuzzzyLength"/>
154<xsl:with-param name="untranslated" select="'Непреведени'"/>
155<xsl:with-param name="untranslatedLength" select="$maxUntranslatedLength"/>
156<xsl:with-param name="all" select="'Всичко'"/>
157<xsl:with-param name="allLength" select="$maxAllLength"/>
158<xsl:with-param name="todo" select="'Работа'"/>
159<xsl:with-param name="todoLength" select="$maxTodoLength"/>
160<xsl:with-param name="separator" select="'|'"/>
161<xsl:with-param name="pad" select="' '"/>
162</xsl:call-template>
163</xsl:template>
164
165
166<xsl:template name="draw-footer">
167<xsl:call-template name="draw-line">
168<xsl:with-param name="name" select="'Общо'"/>
169<xsl:with-param name="nameLength" select="$maxNameLength"/>
170<xsl:with-param name="translated" select="dyn:sum(//domain/translated,'.')"/>
171<xsl:with-param name="translatedLength" select="$maxTranslatedLength"/>
172<xsl:with-param name="fuzzy" select="dyn:sum(//domain/fuzzy,'.')"/>
173<xsl:with-param name="fuzzyLength" select="$maxFuzzzyLength"/>
174<xsl:with-param name="untranslated" select="dyn:sum(//domain/untranslated,'.')"/>
175<xsl:with-param name="untranslatedLength" select="$maxUntranslatedLength"/>
176<xsl:with-param name="all" select="dyn:sum(//domain/translated,'.')+dyn:sum(//domain/fuzzy,'.')+dyn:sum(//domain/untranslated,'.')"/>
177<xsl:with-param name="allLength" select="$maxAllLength"/>
178<xsl:with-param name="todo" select="dyn:sum(//domain/fuzzy,'.')+dyn:sum(//domain/untranslated,'.')"/>
179<xsl:with-param name="todoLength" select="$maxTodoLength"/>
180<xsl:with-param name="separator" select="'|'"/>
181<xsl:with-param name="pad" select="' '"/>
182</xsl:call-template>
183</xsl:template>
184
185</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.