File Coverage

tidy-html5.c
Criterion Covered Total %
statement 3056 13447 22.7
branch 1815 13296 13.6
condition n/a
subroutine n/a
pod n/a
total 4871 26743 18.2


line stmt bran cond sub pod time code
1             /*
2             This file was generated by
3              
4             ./tools/make-c-file.pl
5             */
6             #include
7             #include
8             #include
9             #include
10             #include "tidy-html5.h"
11             #ifndef __FORWARD_H__
12             #define __FORWARD_H__
13              
14             /* forward.h -- Forward declarations for major Tidy structures
15              
16             (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
17             See tidy.h for the copyright notice.
18              
19             Avoids many include file circular dependencies.
20              
21             Try to keep this file down to the minimum to avoid
22             cross-talk between modules.
23              
24             Header files include this file. C files include tidy-int.h.
25              
26             */
27              
28             /* #include "tidyplatform.h" */
29             /* #include "tidy.h" */
30              
31             /* Internal symbols are prefixed to avoid clashes with other libraries */
32             #define TYDYAPPEND(str1,str2) str1##str2
33             #define TY_(str) TYDYAPPEND(prvTidy,str)
34              
35             /* Internal symbols are prefixed with 'hidden' attr, to avoid exporting */
36             #if defined(_WIN32) || defined(__CYGWIN__)
37             #define TY_PRIVATE
38             #else
39             #define TY_PRIVATE __attribute__((__visibility__("hidden")))
40             #endif
41              
42             struct _StreamIn;
43             typedef struct _StreamIn StreamIn;
44              
45             struct _StreamOut;
46             typedef struct _StreamOut StreamOut;
47              
48             struct _TidyDocImpl;
49             typedef struct _TidyDocImpl TidyDocImpl;
50              
51             struct _TidyMessageImpl;
52             typedef struct _TidyMessageImpl TidyMessageImpl;
53              
54             /* @todo: this name isn't very instructive! */
55             struct _Dict;
56             typedef struct _Dict Dict;
57              
58             struct _Attribute;
59             typedef struct _Attribute Attribute;
60              
61             struct _AttVal;
62             typedef struct _AttVal AttVal;
63              
64             struct _Node;
65             typedef struct _Node Node;
66              
67             struct _IStack;
68             typedef struct _IStack IStack;
69              
70             struct _Lexer;
71             typedef struct _Lexer Lexer;
72              
73             TY_PRIVATE extern TidyAllocator TY_(g_default_allocator);
74              
75             /** Wrappers for easy memory allocation using an allocator */
76             #define TidyAlloc(allocator, size) ((allocator)->vtbl->alloc((allocator), (size)))
77             #define TidyRealloc(allocator, block, size) ((allocator)->vtbl->realloc((allocator), (block), (size)))
78             #define TidyFree(allocator, block) ((allocator)->vtbl->free((allocator), (block)))
79             #define TidyPanic(allocator, msg) ((allocator)->vtbl->panic((allocator), (msg)))
80             #define TidyClearMemory(block, size) memset((block), 0, (size))
81            
82              
83             #endif /* __FORWARD_H__ */
84             #ifndef __ACCESS_H__
85             #define __ACCESS_H__
86              
87             /*********************************************************************
88             * carry out accessibility checks
89             *
90             * This module carries out processes for all accessibility checks. It
91             * traverses through all the content within the tree and evaluates the
92             * tags for accessibility.
93             *
94             * To perform the following checks, 'AccessibilityChecks' must be
95             * called AFTER the tree structure has been formed.
96             *
97             * If, in the command prompt or configuration file, there is no
98             * specification of which accessibility priorities to check, then no
99             * accessibility checks will be performed.
100             *
101             * The accessibility checks to perform depending on user's desire:
102             * 1. priority 1
103             * 2. priority 1 & 2
104             * 3. priority 1, 2, & 3
105             *
106             * Reference document: http://www.w3.org/TR/WAI-WEBCONTENT/
107             *
108             * Copyright University of Toronto
109             * Portions (c) 1998-2006 (W3C) MIT, ERCIM, Keio University
110             * See `tidy.h` for the copyright notice.
111             * Programmed by: Mike Lam and Chris Ridpath
112             * Modifications by: Terry Teague (TRT)
113             * Further modifications: consult git log.
114             *********************************************************************/
115              
116             /* #include "forward.h" */
117              
118              
119             enum {
120             TEXTBUF_SIZE=128u
121             };
122              
123             struct _TidyAccessImpl;
124             typedef struct _TidyAccessImpl TidyAccessImpl;
125              
126             struct _TidyAccessImpl
127             {
128             /* gets set from Tidy variable AccessibilityCheckLevel */
129             int PRIORITYCHK; /**< */
130              
131             /* Number of characters that are found within the concatenated text */
132             int counter;
133              
134             /* list of characters in the text nodes found within a container element */
135             tmbchar textNode[ TEXTBUF_SIZE ];
136              
137             /* The list of characters found within one text node */
138             tmbchar text[ TEXTBUF_SIZE ];
139              
140             /* Number of frame elements found within a frameset */
141             int numFrames;
142              
143             /* Number of 'longdesc' attributes found within a frameset */
144             int HasCheckedLongDesc;
145              
146             int CheckedHeaders;
147             int ListElements;
148             int OtherListElements;
149              
150             /* For 'USEMAP' identifier */
151             Bool HasUseMap;
152             Bool HasName;
153             Bool HasMap;
154              
155             /* For tracking nodes that are deleted from the original parse tree - TRT */
156             /* Node *access_tree; */
157              
158             Bool HasTH;
159             Bool HasValidFor;
160             Bool HasValidId;
161             Bool HasValidRowHeaders;
162             Bool HasValidColumnHeaders;
163             Bool HasInvalidRowHeader;
164             Bool HasInvalidColumnHeader;
165             int ForID;
166              
167             };
168              
169              
170             TY_PRIVATE void TY_(AccessibilityChecks)( TidyDocImpl* doc );
171              
172              
173             #endif /* __ACCESS_H__ */
174             #ifndef __ATTRDICT_H__
175             #define __ATTRDICT_H__
176              
177             /* attrdict.h -- extended attribute information
178              
179             (c) 1998-2006 (W3C) MIT, ERCIM, Keio University
180             See tidy.h for the copyright notice.
181              
182             */
183              
184             /* #include "tidy.h" */
185              
186             typedef struct _AttrVersion
187             {
188             TidyAttrId attribute;
189             unsigned int versions;
190             } AttrVersion;
191              
192             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_A)[];
193             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ABBR)[];
194             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ACRONYM)[];
195             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ADDRESS)[];
196             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_APPLET)[];
197             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_AREA)[];
198             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_B)[];
199             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BASE)[];
200             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BASEFONT)[];
201             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BDO)[];
202             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BIG)[];
203             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BLOCKQUOTE)[];
204             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BODY)[];
205             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BR)[];
206             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BUTTON)[];
207             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_CAPTION)[];
208             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_CENTER)[];
209             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_CITE)[];
210             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_CODE)[];
211             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_COL)[];
212             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_COLGROUP)[];
213             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DD)[];
214             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DEL)[];
215             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DFN)[];
216             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DIR)[];
217             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DIV)[];
218             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DL)[];
219             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DT)[];
220             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_EM)[];
221             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FIELDSET)[];
222             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FONT)[];
223             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FORM)[];
224             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FRAME)[];
225             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FRAMESET)[];
226             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H1)[];
227             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H2)[];
228             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H3)[];
229             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H4)[];
230             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H5)[];
231             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_H6)[];
232             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_HEAD)[];
233             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_HR)[];
234             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_HTML)[];
235             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_I)[];
236             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_IFRAME)[];
237             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_IMG)[];
238             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_INPUT)[];
239             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_INS)[];
240             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ISINDEX)[];
241             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_KBD)[];
242             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_LABEL)[];
243             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_LEGEND)[];
244             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_LI)[];
245             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_LINK)[];
246             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_LISTING)[];
247             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MAP)[];
248             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MATHML)[]; /* [i_a]2 */
249             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MENU)[];
250             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_META)[];
251             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_NEXTID)[];
252             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_NOFRAMES)[];
253             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_NOSCRIPT)[];
254             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_OBJECT)[];
255             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_OL)[];
256             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_OPTGROUP)[];
257             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_OPTION)[];
258             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_P)[];
259             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_PARAM)[];
260             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_PICTURE)[]; /* Issue #151 - html5 */
261             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_PLAINTEXT)[];
262             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_PRE)[];
263             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_Q)[];
264             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RB)[];
265             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RBC)[];
266             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RP)[];
267             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RT)[];
268             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RTC)[];
269             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_RUBY)[];
270             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_S)[];
271             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SAMP)[];
272             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SCRIPT)[];
273             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SELECT)[];
274             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SMALL)[];
275             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SPAN)[];
276             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_STRIKE)[];
277             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_STRONG)[];
278             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_STYLE)[];
279             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SUB)[];
280             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SUP)[];
281             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SVG)[];
282             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TABLE)[];
283             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TBODY)[];
284             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TD)[];
285             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TEXTAREA)[];
286             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TFOOT)[];
287             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TH)[];
288             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_THEAD)[];
289             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TITLE)[];
290             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TR)[];
291             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TT)[];
292             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_U)[];
293             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_UL)[];
294             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_VAR)[];
295             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_XMP)[];
296              
297             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TRACK)[];
298             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SUMMARY)[];
299             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FIGCAPTION)[];
300             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_HGROUP)[];
301             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FIGURE)[];
302             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ARTICLE)[];
303             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_ASIDE)[];
304             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_BDI)[];
305             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_NAV)[];
306             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SECTION)[];
307             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_FOOTER)[];
308             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_HEADER)[];
309             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DETAILS)[];
310             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DIALOG)[];
311             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_COMMAND)[];
312             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MAIN)[];
313             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MARK)[];
314             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_OUTPUT)[];
315             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_MENUITEM)[];
316             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_METER)[];
317             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_PROGRESS)[];
318             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SLOT)[];
319             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TEMPLATE)[];
320             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_TIME)[];
321             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DATA)[];
322             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_DATALIST)[];
323             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_AUDIO)[];
324             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_VIDEO)[];
325             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_CANVAS)[];
326             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_SOURCE)[];
327             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_EMBED)[];
328             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_KEYGEN)[];
329             TY_PRIVATE extern const AttrVersion TY_(W3CAttrsFor_WBR)[];
330              
331             #endif /* __ATTRDICT_H__ */
332             #ifndef __ATTRS_H__
333             #define __ATTRS_H__
334              
335             /* attrs.h -- recognize HTML attributes
336              
337             (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
338             See tidy.h for the copyright notice.
339              
340             */
341              
342             /* #include "forward.h" */
343              
344             /* declaration for methods that check attribute values */
345             typedef void (AttrCheck)(TidyDocImpl* doc, Node *node, AttVal *attval);
346              
347             struct _Attribute
348             {
349             TidyAttrId id;
350             tmbstr name;
351             AttrCheck* attrchk;
352              
353             struct _Attribute* next;
354             };
355              
356              
357             /*
358             Anchor/Node linked list
359             */
360              
361             struct _Anchor
362             {
363             struct _Anchor *next;
364             Node *node;
365             char *name;
366             };
367              
368             typedef struct _Anchor Anchor;
369              
370             enum
371             {
372             ATTRIBUTE_HASH_SIZE=178u
373             };
374              
375             struct _AttrHash
376             {
377             Attribute const* attr;
378             struct _AttrHash* next;
379             };
380              
381             typedef struct _AttrHash AttrHash;
382              
383             enum
384             {
385             ANCHOR_HASH_SIZE=1021u
386             };
387              
388             /* Keeps a list of attributes that are sorted ahead of the others. */
389             typedef struct _priorityAttribs {
390             tmbstr* list;
391             unsigned int count;
392             unsigned int capacity;
393             } PriorityAttribs;
394              
395             struct _TidyAttribImpl
396             {
397             /* anchor/node lookup */
398             Anchor* anchor_hash[ANCHOR_HASH_SIZE];
399              
400             /* Declared literal attributes */
401             Attribute* declared_attr_list;
402              
403             /* Prioritized list of attributes to write */
404             PriorityAttribs priorityAttribs;
405              
406             AttrHash* hashtab[ATTRIBUTE_HASH_SIZE];
407             };
408              
409             typedef struct _TidyAttribImpl TidyAttribImpl;
410              
411             #define XHTML_NAMESPACE "http://www.w3.org/1999/xhtml"
412              
413             TY_PRIVATE AttrCheck TY_(CheckUrl);
414              
415             /* public method for finding attribute definition by name */
416             TY_PRIVATE const Attribute* TY_(CheckAttribute)( TidyDocImpl* doc, Node *node, AttVal *attval );
417              
418             TY_PRIVATE const Attribute* TY_(FindAttribute)( TidyDocImpl* doc, AttVal *attval );
419              
420             TY_PRIVATE AttVal* TY_(GetAttrByName)( Node *node, ctmbstr name );
421              
422             TY_PRIVATE void TY_(DropAttrByName)( TidyDocImpl* doc, Node *node, ctmbstr name );
423              
424             TY_PRIVATE AttVal* TY_(AddAttribute)( TidyDocImpl* doc,
425             Node *node, ctmbstr name, ctmbstr value );
426              
427             TY_PRIVATE AttVal* TY_(RepairAttrValue)(TidyDocImpl* doc, Node* node, ctmbstr name, ctmbstr value);
428              
429             /* Add an item to the list of priority attributes to write first. */
430             TY_PRIVATE void TY_(DefinePriorityAttribute)(TidyDocImpl* doc, ctmbstr name);
431              
432             /* Start an iterator for priority attributes. */
433             TY_PRIVATE TidyIterator TY_(getPriorityAttrList)( TidyDocImpl* doc );
434              
435             /* Get the next priority attribute. */
436             TY_PRIVATE ctmbstr TY_(getNextPriorityAttr)( TidyDocImpl* doc, TidyIterator* iter );
437              
438             TY_PRIVATE Bool TY_(IsUrl)( TidyDocImpl* doc, ctmbstr attrname );
439              
440             /* Bool IsBool( TidyDocImpl* doc, ctmbstr attrname ); */
441              
442             TY_PRIVATE Bool TY_(IsScript)( TidyDocImpl* doc, ctmbstr attrname );
443              
444             /* may id or name serve as anchor? */
445             TY_PRIVATE Bool TY_(IsAnchorElement)( TidyDocImpl* doc, Node* node );
446              
447             /*
448             In CSS1, selectors can contain only the characters A-Z, 0-9, and
449             Unicode characters 161-255, plus dash (-); they cannot start with
450             a dash or a digit; they can also contain escaped characters and any
451             Unicode character as a numeric code (see next item).
452              
453             The backslash followed by at most four hexadecimal digits (0..9A..F)
454             stands for the Unicode character with that number.
455              
456             Any character except a hexadecimal digit can be escaped to remove its
457             special meaning, by putting a backslash in front.
458              
459             #508936 - CSS class naming for -clean option
460             */
461             TY_PRIVATE Bool TY_(IsCSS1Selector)( ctmbstr buf );
462              
463             TY_PRIVATE Bool TY_(IsValidHTMLID)(ctmbstr id);
464             TY_PRIVATE Bool TY_(IsValidXMLID)(ctmbstr id);
465              
466             /* removes anchor for specific node */
467             TY_PRIVATE void TY_(RemoveAnchorByNode)( TidyDocImpl* doc, ctmbstr name, Node *node );
468              
469             /* free all anchors */
470             TY_PRIVATE void TY_(FreeAnchors)( TidyDocImpl* doc );
471              
472              
473             /* public methods for inititializing/freeing attribute dictionary */
474             TY_PRIVATE void TY_(InitAttrs)( TidyDocImpl* doc );
475             TY_PRIVATE void TY_(FreeAttrTable)( TidyDocImpl* doc );
476              
477             TY_PRIVATE void TY_(FreeAttrPriorityList)( TidyDocImpl* doc );
478              
479             TY_PRIVATE void TY_(AppendToClassAttr)( TidyDocImpl* doc, AttVal *classattr, ctmbstr classname );
480             /*
481             the same attribute name can't be used
482             more than once in each element
483             */
484             TY_PRIVATE void TY_(RepairDuplicateAttributes)( TidyDocImpl* doc, Node* node, Bool isXml );
485             TY_PRIVATE void TY_(SortAttributes)(TidyDocImpl* doc, Node* node, TidyAttrSortStrategy strat);
486              
487             TY_PRIVATE Bool TY_(IsBoolAttribute)( AttVal* attval );
488             TY_PRIVATE Bool TY_(attrIsEvent)( AttVal* attval );
489              
490             TY_PRIVATE AttVal* TY_(AttrGetById)( Node* node, TidyAttrId id );
491              
492             TY_PRIVATE unsigned int TY_(NodeAttributeVersions)( Node* node, TidyAttrId id );
493              
494             TY_PRIVATE Bool TY_(AttributeIsProprietary)(Node* node, AttVal* attval);
495             TY_PRIVATE Bool TY_(AttributeIsMismatched)(Node* node, AttVal* attval, TidyDocImpl* doc);
496              
497              
498             /* 0 == TidyAttr_UNKNOWN */
499             #define AttrId(av) ((av) && (av)->dict ? (av)->dict->id : TidyAttr_UNKNOWN)
500             #define AttrIsId(av, atid) ((av) && (av)->dict && ((av)->dict->id == atid))
501              
502             #define AttrHasValue(attr) ((attr) && (attr)->value)
503             #define AttrValueIs(attr, val) (AttrHasValue(attr) && \
504             TY_(tmbstrcasecmp)((attr)->value, val) == 0)
505             #define AttrContains(attr, val) (AttrHasValue(attr) && \
506             TY_(tmbsubstr)((attr)->value, val) != NULL)
507             #define AttrVersions(attr) ((attr) && (attr)->dict ? (attr)->dict->versions : VERS_PROPRIETARY)
508              
509             #define AttrsHaveSameId(a, b) (a && b && a->dict && b->dict && a->dict->id && \
510             b->dict->id && a->dict->id == b->dict->id)
511              
512             #define attrIsABBR(av) AttrIsId( av, TidyAttr_ABBR )
513             #define attrIsACCEPT(av) AttrIsId( av, TidyAttr_ACCEPT )
514             #define attrIsACCEPT_CHARSET(av) AttrIsId( av, TidyAttr_ACCEPT_CHARSET )
515             #define attrIsACCESSKEY(av) AttrIsId( av, TidyAttr_ACCESSKEY )
516             #define attrIsACTION(av) AttrIsId( av, TidyAttr_ACTION )
517             #define attrIsADD_DATE(av) AttrIsId( av, TidyAttr_ADD_DATE )
518             #define attrIsALIGN(av) AttrIsId( av, TidyAttr_ALIGN )
519             #define attrIsALINK(av) AttrIsId( av, TidyAttr_ALINK )
520             #define attrIsALT(av) AttrIsId( av, TidyAttr_ALT )
521             #define attrIsARCHIVE(av) AttrIsId( av, TidyAttr_ARCHIVE )
522             #define attrIsAXIS(av) AttrIsId( av, TidyAttr_AXIS )
523             #define attrIsBACKGROUND(av) AttrIsId( av, TidyAttr_BACKGROUND )
524             #define attrIsBGCOLOR(av) AttrIsId( av, TidyAttr_BGCOLOR )
525             #define attrIsBGPROPERTIES(av) AttrIsId( av, TidyAttr_BGPROPERTIES )
526             #define attrIsBORDER(av) AttrIsId( av, TidyAttr_BORDER )
527             #define attrIsBORDERCOLOR(av) AttrIsId( av, TidyAttr_BORDERCOLOR )
528             #define attrIsBOTTOMMARGIN(av) AttrIsId( av, TidyAttr_BOTTOMMARGIN )
529             #define attrIsCELLPADDING(av) AttrIsId( av, TidyAttr_CELLPADDING )
530             #define attrIsCELLSPACING(av) AttrIsId( av, TidyAttr_CELLSPACING )
531             #define attrIsCHARSET(av) AttrIsId( av, TidyAttr_CHARSET )
532             #define attrIsCHAR(av) AttrIsId( av, TidyAttr_CHAR )
533             #define attrIsCHAROFF(av) AttrIsId( av, TidyAttr_CHAROFF )
534             #define attrIsCHARSET(av) AttrIsId( av, TidyAttr_CHARSET )
535             #define attrIsCHECKED(av) AttrIsId( av, TidyAttr_CHECKED )
536             #define attrIsCITE(av) AttrIsId( av, TidyAttr_CITE )
537             #define attrIsCLASS(av) AttrIsId( av, TidyAttr_CLASS )
538             #define attrIsCLASSID(av) AttrIsId( av, TidyAttr_CLASSID )
539             #define attrIsCLEAR(av) AttrIsId( av, TidyAttr_CLEAR )
540             #define attrIsCODE(av) AttrIsId( av, TidyAttr_CODE )
541             #define attrIsCODEBASE(av) AttrIsId( av, TidyAttr_CODEBASE )
542             #define attrIsCODETYPE(av) AttrIsId( av, TidyAttr_CODETYPE )
543             #define attrIsCOLOR(av) AttrIsId( av, TidyAttr_COLOR )
544             #define attrIsCOLS(av) AttrIsId( av, TidyAttr_COLS )
545             #define attrIsCOLSPAN(av) AttrIsId( av, TidyAttr_COLSPAN )
546             #define attrIsCOMPACT(av) AttrIsId( av, TidyAttr_COMPACT )
547             #define attrIsCONTENT(av) AttrIsId( av, TidyAttr_CONTENT )
548             #define attrIsCOORDS(av) AttrIsId( av, TidyAttr_COORDS )
549             #define attrIsDATA(av) AttrIsId( av, TidyAttr_DATA )
550             #define attrIsDATAFLD(av) AttrIsId( av, TidyAttr_DATAFLD )
551             #define attrIsDATAFORMATAS(av) AttrIsId( av, TidyAttr_DATAFORMATAS )
552             #define attrIsDATAPAGESIZE(av) AttrIsId( av, TidyAttr_DATAPAGESIZE )
553             #define attrIsDATASRC(av) AttrIsId( av, TidyAttr_DATASRC )
554             #define attrIsDATETIME(av) AttrIsId( av, TidyAttr_DATETIME )
555             #define attrIsDECLARE(av) AttrIsId( av, TidyAttr_DECLARE )
556             #define attrIsDEFER(av) AttrIsId( av, TidyAttr_DEFER )
557             #define attrIsDIR(av) AttrIsId( av, TidyAttr_DIR )
558             #define attrIsDISABLED(av) AttrIsId( av, TidyAttr_DISABLED )
559             #define attrIsENCODING(av) AttrIsId( av, TidyAttr_ENCODING )
560             #define attrIsENCTYPE(av) AttrIsId( av, TidyAttr_ENCTYPE )
561             #define attrIsFACE(av) AttrIsId( av, TidyAttr_FACE )
562             #define attrIsFOR(av) AttrIsId( av, TidyAttr_FOR )
563             #define attrIsFRAME(av) AttrIsId( av, TidyAttr_FRAME )
564             #define attrIsFRAMEBORDER(av) AttrIsId( av, TidyAttr_FRAMEBORDER )
565             #define attrIsFRAMESPACING(av) AttrIsId( av, TidyAttr_FRAMESPACING )
566             #define attrIsGRIDX(av) AttrIsId( av, TidyAttr_GRIDX )
567             #define attrIsGRIDY(av) AttrIsId( av, TidyAttr_GRIDY )
568             #define attrIsHEADERS(av) AttrIsId( av, TidyAttr_HEADERS )
569             #define attrIsHEIGHT(av) AttrIsId( av, TidyAttr_HEIGHT )
570             #define attrIsHREF(av) AttrIsId( av, TidyAttr_HREF )
571             #define attrIsHREFLANG(av) AttrIsId( av, TidyAttr_HREFLANG )
572             #define attrIsHSPACE(av) AttrIsId( av, TidyAttr_HSPACE )
573             #define attrIsHTTP_EQUIV(av) AttrIsId( av, TidyAttr_HTTP_EQUIV )
574             #define attrIsID(av) AttrIsId( av, TidyAttr_ID )
575             #define attrIsISMAP(av) AttrIsId( av, TidyAttr_ISMAP )
576             #define attrIsITEMID(av) AttrIsId( av, TidyAttr_ITEMID )
577             #define attrIsITEMPROP(av) AttrIsId( av, TidyAttr_ITEMPROP )
578             #define attrIsITEMREF(av) AttrIsId( av, TidyAttr_ITEMREF )
579             #define attrIsITEMSCOPE(av) AttrIsId( av, TidyAttr_ITEMSCOPE )
580             #define attrIsITEMTYPE(av) AttrIsId( av, TidyAttr_ITEMTYPE )
581             #define attrIsLABEL(av) AttrIsId( av, TidyAttr_LABEL )
582             #define attrIsLANG(av) AttrIsId( av, TidyAttr_LANG )
583             #define attrIsLANGUAGE(av) AttrIsId( av, TidyAttr_LANGUAGE )
584             #define attrIsLAST_MODIFIED(av) AttrIsId( av, TidyAttr_LAST_MODIFIED )
585             #define attrIsLAST_VISIT(av) AttrIsId( av, TidyAttr_LAST_VISIT )
586             #define attrIsLEFTMARGIN(av) AttrIsId( av, TidyAttr_LEFTMARGIN )
587             #define attrIsLINK(av) AttrIsId( av, TidyAttr_LINK )
588             #define attrIsLONGDESC(av) AttrIsId( av, TidyAttr_LONGDESC )
589             #define attrIsLOWSRC(av) AttrIsId( av, TidyAttr_LOWSRC )
590             #define attrIsMARGINHEIGHT(av) AttrIsId( av, TidyAttr_MARGINHEIGHT )
591             #define attrIsMARGINWIDTH(av) AttrIsId( av, TidyAttr_MARGINWIDTH )
592             #define attrIsMAXLENGTH(av) AttrIsId( av, TidyAttr_MAXLENGTH )
593             #define attrIsMEDIA(av) AttrIsId( av, TidyAttr_MEDIA )
594             #define attrIsMETHOD(av) AttrIsId( av, TidyAttr_METHOD )
595             #define attrIsMULTIPLE(av) AttrIsId( av, TidyAttr_MULTIPLE )
596             #define attrIsNAME(av) AttrIsId( av, TidyAttr_NAME )
597             #define attrIsNOHREF(av) AttrIsId( av, TidyAttr_NOHREF )
598             #define attrIsNORESIZE(av) AttrIsId( av, TidyAttr_NORESIZE )
599             #define attrIsNOSHADE(av) AttrIsId( av, TidyAttr_NOSHADE )
600             #define attrIsNOWRAP(av) AttrIsId( av, TidyAttr_NOWRAP )
601             #define attrIsOBJECT(av) AttrIsId( av, TidyAttr_OBJECT )
602             #define attrIsOnAFTERUPDATE(av) AttrIsId( av, TidyAttr_OnAFTERUPDATE )
603             #define attrIsOnBEFOREUNLOAD(av) AttrIsId( av, TidyAttr_OnBEFOREUNLOAD )
604             #define attrIsOnBEFOREUPDATE(av) AttrIsId( av, TidyAttr_OnBEFOREUPDATE )
605             #define attrIsOnBLUR(av) AttrIsId( av, TidyAttr_OnBLUR )
606             #define attrIsOnCHANGE(av) AttrIsId( av, TidyAttr_OnCHANGE )
607             #define attrIsOnCLICK(av) AttrIsId( av, TidyAttr_OnCLICK )
608             #define attrIsOnDATAAVAILABLE(av) AttrIsId( av, TidyAttr_OnDATAAVAILABLE )
609             #define attrIsOnDATASETCHANGED(av) AttrIsId( av, TidyAttr_OnDATASETCHANGED )
610             #define attrIsOnDATASETCOMPLETE(av) AttrIsId( av, TidyAttr_OnDATASETCOMPLETE )
611             #define attrIsOnDBLCLICK(av) AttrIsId( av, TidyAttr_OnDBLCLICK )
612             #define attrIsOnERRORUPDATE(av) AttrIsId( av, TidyAttr_OnERRORUPDATE )
613             #define attrIsOnFOCUS(av) AttrIsId( av, TidyAttr_OnFOCUS )
614             #define attrIsOnKEYDOWN(av) AttrIsId( av, TidyAttr_OnKEYDOWN )
615             #define attrIsOnKEYPRESS(av) AttrIsId( av, TidyAttr_OnKEYPRESS )
616             #define attrIsOnKEYUP(av) AttrIsId( av, TidyAttr_OnKEYUP )
617             #define attrIsOnLOAD(av) AttrIsId( av, TidyAttr_OnLOAD )
618             #define attrIsOnMOUSEDOWN(av) AttrIsId( av, TidyAttr_OnMOUSEDOWN )
619             #define attrIsOnMOUSEMOVE(av) AttrIsId( av, TidyAttr_OnMOUSEMOVE )
620             #define attrIsOnMOUSEOUT(av) AttrIsId( av, TidyAttr_OnMOUSEOUT )
621             #define attrIsOnMOUSEOVER(av) AttrIsId( av, TidyAttr_OnMOUSEOVER )
622             #define attrIsOnMOUSEUP(av) AttrIsId( av, TidyAttr_OnMOUSEUP )
623             #define attrIsOnRESET(av) AttrIsId( av, TidyAttr_OnRESET )
624             #define attrIsOnROWENTER(av) AttrIsId( av, TidyAttr_OnROWENTER )
625             #define attrIsOnROWEXIT(av) AttrIsId( av, TidyAttr_OnROWEXIT )
626             #define attrIsOnSELECT(av) AttrIsId( av, TidyAttr_OnSELECT )
627             #define attrIsOnSUBMIT(av) AttrIsId( av, TidyAttr_OnSUBMIT )
628             #define attrIsOnUNLOAD(av) AttrIsId( av, TidyAttr_OnUNLOAD )
629             #define attrIsPROFILE(av) AttrIsId( av, TidyAttr_PROFILE )
630             #define attrIsPROMPT(av) AttrIsId( av, TidyAttr_PROMPT )
631             #define attrIsRBSPAN(av) AttrIsId( av, TidyAttr_RBSPAN )
632             #define attrIsREADONLY(av) AttrIsId( av, TidyAttr_READONLY )
633             #define attrIsREL(av) AttrIsId( av, TidyAttr_REL )
634             #define attrIsREV(av) AttrIsId( av, TidyAttr_REV )
635             #define attrIsRIGHTMARGIN(av) AttrIsId( av, TidyAttr_RIGHTMARGIN )
636             #define attrIsROLE(av) AttrIsId( av, TidyAttr_ROLE )
637             #define attrIsROWS(av) AttrIsId( av, TidyAttr_ROWS )
638             #define attrIsROWSPAN(av) AttrIsId( av, TidyAttr_ROWSPAN )
639             #define attrIsRULES(av) AttrIsId( av, TidyAttr_RULES )
640             #define attrIsSCHEME(av) AttrIsId( av, TidyAttr_SCHEME )
641             #define attrIsSCOPE(av) AttrIsId( av, TidyAttr_SCOPE )
642             #define attrIsSCROLLING(av) AttrIsId( av, TidyAttr_SCROLLING )
643             #define attrIsSELECTED(av) AttrIsId( av, TidyAttr_SELECTED )
644             #define attrIsSHAPE(av) AttrIsId( av, TidyAttr_SHAPE )
645             #define attrIsSHOWGRID(av) AttrIsId( av, TidyAttr_SHOWGRID )
646             #define attrIsSHOWGRIDX(av) AttrIsId( av, TidyAttr_SHOWGRIDX )
647             #define attrIsSHOWGRIDY(av) AttrIsId( av, TidyAttr_SHOWGRIDY )
648             #define attrIsSIZE(av) AttrIsId( av, TidyAttr_SIZE )
649             #define attrIsSLOT(av) AttrIsId( av, TidyAttr_SLOT )
650             #define attrIsSPAN(av) AttrIsId( av, TidyAttr_SPAN )
651             #define attrIsSRC(av) AttrIsId( av, TidyAttr_SRC )
652             #define attrIsSTANDBY(av) AttrIsId( av, TidyAttr_STANDBY )
653             #define attrIsSTART(av) AttrIsId( av, TidyAttr_START )
654             #define attrIsSTYLE(av) AttrIsId( av, TidyAttr_STYLE )
655             #define attrIsSUMMARY(av) AttrIsId( av, TidyAttr_SUMMARY )
656             #define attrIsTABINDEX(av) AttrIsId( av, TidyAttr_TABINDEX )
657             #define attrIsTARGET(av) AttrIsId( av, TidyAttr_TARGET )
658             #define attrIsTEXT(av) AttrIsId( av, TidyAttr_TEXT )
659             #define attrIsTITLE(av) AttrIsId( av, TidyAttr_TITLE )
660             #define attrIsTOPMARGIN(av) AttrIsId( av, TidyAttr_TOPMARGIN )
661             #define attrIsTYPE(av) AttrIsId( av, TidyAttr_TYPE )
662             #define attrIsUSEMAP(av) AttrIsId( av, TidyAttr_USEMAP )
663             #define attrIsVALIGN(av) AttrIsId( av, TidyAttr_VALIGN )
664             #define attrIsVALUE(av) AttrIsId( av, TidyAttr_VALUE )
665             #define attrIsVALUETYPE(av) AttrIsId( av, TidyAttr_VALUETYPE )
666             #define attrIsVERSION(av) AttrIsId( av, TidyAttr_VERSION )
667             #define attrIsVLINK(av) AttrIsId( av, TidyAttr_VLINK )
668             #define attrIsVSPACE(av) AttrIsId( av, TidyAttr_VSPACE )
669             #define attrIsWIDTH(av) AttrIsId( av, TidyAttr_WIDTH )
670             #define attrIsWRAP(av) AttrIsId( av, TidyAttr_WRAP )
671             #define attrIsXMLNS(av) AttrIsId( av, TidyAttr_XMLNS )
672             #define attrIsXML_LANG(av) AttrIsId( av, TidyAttr_XML_LANG )
673             #define attrIsXML_SPACE(av) AttrIsId( av, TidyAttr_XML_SPACE )
674             #define attrIsARIA_ACTIVEDESCENDANT(av) AttrIsId( av, TidyAttr_ARIA_ACTIVEDESCENDANT )
675             #define attrIsARIA_ATOMIC(av) AttrIsId( av, TidyAttr_ARIA_ATOMIC )
676             #define attrIsARIA_AUTOCOMPLETE(av) AttrIsId( av, TidyAttr_ARIA_AUTOCOMPLETE )
677             #define attrIsARIA_BUSY(av) AttrIsId( av, TidyAttr_ARIA_BUSY )
678             #define attrIsARIA_CHECKED(av) AttrIsId( av, TidyAttr_ARIA_CHECKED )
679             #define attrIsARIA_CONTROLS(av) AttrIsId( av, TidyAttr_ARIA_CONTROLS )
680             #define attrIsARIA_DESCRIBEDBY(av) AttrIsId( av, TidyAttr_ARIA_DESCRIBEDBY )
681             #define attrIsARIA_DISABLED(av) AttrIsId( av, TidyAttr_ARIA_DISABLED )
682             #define attrIsARIA_DROPEFFECT(av) AttrIsId( av, TidyAttr_ARIA_DROPEFFECT )
683             #define attrIsARIA_EXPANDED(av) AttrIsId( av, TidyAttr_ARIA_EXPANDED )
684             #define attrIsARIA_FLOWTO(av) AttrIsId( av, TidyAttr_ARIA_FLOWTO )
685             #define attrIsARIA_GRABBED(av) AttrIsId( av, TidyAttr_ARIA_GRABBED )
686             #define attrIsARIA_HASPOPUP(av) AttrIsId( av, TidyAttr_ARIA_HASPOPUP )
687             #define attrIsARIA_HIDDEN(av) AttrIsId( av, TidyAttr_ARIA_HIDDEN )
688             #define attrIsARIA_INVALID(av) AttrIsId( av, TidyAttr_ARIA_INVALID )
689             #define attrIsARIA_LABEL(av) AttrIsId( av, TidyAttr_ARIA_LABEL )
690             #define attrIsARIA_LABELLEDBY(av) AttrIsId( av, TidyAttr_ARIA_LABELLEDBY )
691             #define attrIsARIA_LEVEL(av) AttrIsId( av, TidyAttr_ARIA_LEVEL )
692             #define attrIsARIA_LIVE(av) AttrIsId( av, TidyAttr_ARIA_LIVE )
693             #define attrIsARIA_MULTILINE(av) AttrIsId( av, TidyAttr_ARIA_MULTILINE )
694             #define attrIsARIA_MULTISELECTABLE(av) AttrIsId( av, TidyAttr_ARIA_MULTISELECTABLE )
695             #define attrIsARIA_ORIENTATION(av) AttrIsId( av, TidyAttr_ARIA_ORIENTATION )
696             #define attrIsARIA_OWNS(av) AttrIsId( av, TidyAttr_ARIA_OWNS )
697             #define attrIsARIA_POSINSET(av) AttrIsId( av, TidyAttr_ARIA_POSINSET )
698             #define attrIsARIA_PRESSED(av) AttrIsId( av, TidyAttr_ARIA_PRESSED )
699             #define attrIsARIA_READONLY(av) AttrIsId( av, TidyAttr_ARIA_READONLY )
700             #define attrIsARIA_RELEVANT(av) AttrIsId( av, TidyAttr_ARIA_RELEVANT )
701             #define attrIsARIA_REQUIRED(av) AttrIsId( av, TidyAttr_ARIA_REQUIRED )
702             #define attrIsARIA_SELECTED(av) AttrIsId( av, TidyAttr_ARIA_SELECTED )
703             #define attrIsARIA_SETSIZE(av) AttrIsId( av, TidyAttr_ARIA_SETSIZE )
704             #define attrIsARIA_SORT(av) AttrIsId( av, TidyAttr_ARIA_SORT )
705             #define attrIsARIA_VALUEMAX(av) AttrIsId( av, TidyAttr_ARIA_VALUEMAX )
706             #define attrIsARIA_VALUEMIN(av) AttrIsId( av, TidyAttr_ARIA_VALUEMIN )
707             #define attrIsARIA_VALUENOW(av) AttrIsId( av, TidyAttr_ARIA_VALUENOW )
708             #define attrIsARIA_VALUETEXT(av) AttrIsId( av, TidyAttr_ARIA_VALUETEXT )
709             #define attrIsSVG_FILL(av) AttrIsId( av, TidyAttr_FILL )
710             #define attrIsSVG_FILLRULE(av) AttrIsId( av, TidyAttr_FILLRULE )
711             #define attrIsSVG_STROKE(av) AttrIsId( av, TidyAttr_STROKE )
712             #define attrIsSVG_STROKEDASHARRAY(av) AttrIsId( av, TidyAttr_STROKEDASHARRAY )
713             #define attrIsSVG_STROKEDASHOFFSET(av) AttrIsId( av, TidyAttr_STROKEDASHOFFSET )
714             #define attrIsSVG_STROKELINECAP(av) AttrIsId( av, TidyAttr_STROKELINECAP )
715             #define attrIsSVG_STROKELINEJOIN(av) AttrIsId( av, TidyAttr_STROKELINEJOIN )
716             #define attrIsSVG_STROKEMITERLIMIT(av) AttrIsId( av, TidyAttr_STROKEMITERLIMIT )
717             #define attrIsSVG_STROKEWIDTH(av) AttrIsId( av, TidyAttr_STROKEWIDTH )
718             #define attrIsSVG_COLORINTERPOLATION(a) AttrIsId( a, TidyAttr_COLORINTERPOLATION )
719             #define attrIsSVG_COLORRENDERING(av) AttrIsId( av, TidyAttr_COLORRENDERING )
720             #define attrIsSVG_OPACITY(av) AttrIsId( av, TidyAttr_OPACITY )
721             #define attrIsSVG_STROKEOPACITY(av) AttrIsId( av, TidyAttr_STROKEOPACITY )
722             #define attrIsSVG_FILLOPACITY(av) AttrIsId( av, TidyAttr_FILLOPACITY )
723              
724             /* Attribute Retrieval macros
725             */
726             #define attrGetHREF( nod ) TY_(AttrGetById)( nod, TidyAttr_HREF )
727             #define attrGetSRC( nod ) TY_(AttrGetById)( nod, TidyAttr_SRC )
728             #define attrGetID( nod ) TY_(AttrGetById)( nod, TidyAttr_ID )
729             #define attrGetNAME( nod ) TY_(AttrGetById)( nod, TidyAttr_NAME )
730             #define attrGetSUMMARY( nod ) TY_(AttrGetById)( nod, TidyAttr_SUMMARY )
731             #define attrGetALT( nod ) TY_(AttrGetById)( nod, TidyAttr_ALT )
732             #define attrGetLONGDESC( nod ) TY_(AttrGetById)( nod, TidyAttr_LONGDESC )
733             #define attrGetUSEMAP( nod ) TY_(AttrGetById)( nod, TidyAttr_USEMAP )
734             #define attrGetISMAP( nod ) TY_(AttrGetById)( nod, TidyAttr_ISMAP )
735             #define attrGetLANGUAGE( nod ) TY_(AttrGetById)( nod, TidyAttr_LANGUAGE )
736             #define attrGetTYPE( nod ) TY_(AttrGetById)( nod, TidyAttr_TYPE )
737             #define attrGetVALUE( nod ) TY_(AttrGetById)( nod, TidyAttr_VALUE )
738             #define attrGetCONTENT( nod ) TY_(AttrGetById)( nod, TidyAttr_CONTENT )
739             #define attrGetTITLE( nod ) TY_(AttrGetById)( nod, TidyAttr_TITLE )
740             #define attrGetXMLNS( nod ) TY_(AttrGetById)( nod, TidyAttr_XMLNS )
741             #define attrGetDATAFLD( nod ) TY_(AttrGetById)( nod, TidyAttr_DATAFLD )
742             #define attrGetWIDTH( nod ) TY_(AttrGetById)( nod, TidyAttr_WIDTH )
743             #define attrGetHEIGHT( nod ) TY_(AttrGetById)( nod, TidyAttr_HEIGHT )
744             #define attrGetFOR( nod ) TY_(AttrGetById)( nod, TidyAttr_FOR )
745             #define attrGetSELECTED( nod ) TY_(AttrGetById)( nod, TidyAttr_SELECTED )
746             #define attrGetCHARSET( nod ) TY_(AttrGetById)( nod, TidyAttr_CHARSET )
747             #define attrGetCHECKED( nod ) TY_(AttrGetById)( nod, TidyAttr_CHECKED )
748             #define attrGetLANG( nod ) TY_(AttrGetById)( nod, TidyAttr_LANG )
749             #define attrGetTARGET( nod ) TY_(AttrGetById)( nod, TidyAttr_TARGET )
750             #define attrGetHTTP_EQUIV( nod ) TY_(AttrGetById)( nod, TidyAttr_HTTP_EQUIV )
751             #define attrGetREL( nod ) TY_(AttrGetById)( nod, TidyAttr_REL )
752              
753             #define attrGetOnMOUSEMOVE( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEMOVE )
754             #define attrGetOnMOUSEDOWN( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEDOWN )
755             #define attrGetOnMOUSEUP( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEUP )
756             #define attrGetOnCLICK( nod ) TY_(AttrGetById)( nod, TidyAttr_OnCLICK )
757             #define attrGetOnMOUSEOVER( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEOVER )
758             #define attrGetOnMOUSEOUT( nod ) TY_(AttrGetById)( nod, TidyAttr_OnMOUSEOUT )
759             #define attrGetOnKEYDOWN( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYDOWN )
760             #define attrGetOnKEYUP( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYUP )
761             #define attrGetOnKEYPRESS( nod ) TY_(AttrGetById)( nod, TidyAttr_OnKEYPRESS )
762             #define attrGetOnFOCUS( nod ) TY_(AttrGetById)( nod, TidyAttr_OnFOCUS )
763             #define attrGetOnBLUR( nod ) TY_(AttrGetById)( nod, TidyAttr_OnBLUR )
764              
765             #define attrGetBGCOLOR( nod ) TY_(AttrGetById)( nod, TidyAttr_BGCOLOR )
766              
767             #define attrGetLINK( nod ) TY_(AttrGetById)( nod, TidyAttr_LINK )
768             #define attrGetALINK( nod ) TY_(AttrGetById)( nod, TidyAttr_ALINK )
769             #define attrGetVLINK( nod ) TY_(AttrGetById)( nod, TidyAttr_VLINK )
770              
771             #define attrGetTEXT( nod ) TY_(AttrGetById)( nod, TidyAttr_TEXT )
772             #define attrGetSTYLE( nod ) TY_(AttrGetById)( nod, TidyAttr_STYLE )
773             #define attrGetABBR( nod ) TY_(AttrGetById)( nod, TidyAttr_ABBR )
774             #define attrGetCOLSPAN( nod ) TY_(AttrGetById)( nod, TidyAttr_COLSPAN )
775             #define attrGetFONT( nod ) TY_(AttrGetById)( nod, TidyAttr_FONT )
776             #define attrGetBASEFONT( nod ) TY_(AttrGetById)( nod, TidyAttr_BASEFONT )
777             #define attrGetROWSPAN( nod ) TY_(AttrGetById)( nod, TidyAttr_ROWSPAN )
778              
779             #define attrGetROLE( nod ) TY_(AttrGetById)( nod, TidyAttr_ROLE )
780              
781             #define attrGetARIA_ACTIVEDESCENDANT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ACTIVEDESCENDANT )
782             #define attrGetARIA_ATOMIC( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ATOMIC )
783             #define attrGetARIA_AUTOCOMPLETE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_AUTOCOMPLETE )
784             #define attrGetARIA_BUSY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_BUSY )
785             #define attrGetARIA_CHECKED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_CHECKED )
786             #define attrGetARIA_CONTROLS( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_CONTROLS )
787             #define attrGetARIA_DESCRIBEDBY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DESCRIBEDBY )
788             #define attrGetARIA_DISABLED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DISABLED )
789             #define attrGetARIA_DROPEFFECT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_DROPEFFECT )
790             #define attrGetARIA_EXPANDED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_EXPANDED )
791             #define attrGetARIA_FLOWTO( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_FLOWTO )
792             #define attrGetARIA_GRABBED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_GRABBED )
793             #define attrGetARIA_HASPOPUP( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_HASPOPUP )
794             #define attrGetARIA_HIDDEN( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_HIDDEN )
795             #define attrGetARIA_INVALID( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_INVALID )
796             #define attrGetARIA_LABEL( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LABEL )
797             #define attrGetARIA_LABELLEDBY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LABELLEDBY )
798             #define attrGetARIA_LEVEL( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LEVEL )
799             #define attrGetARIA_LIVE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_LIVE )
800             #define attrGetARIA_MULTILINE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_MULTILINE )
801             #define attrGetARIA_MULTISELECTABLE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_MULTISELECTABLE )
802             #define attrGetARIA_ORIENTATION( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_ORIENTATION )
803             #define attrGetARIA_OWNS( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_OWNS )
804             #define attrGetARIA_POSINSET( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_POSINSET )
805             #define attrGetARIA_PRESSED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_PRESSED )
806             #define attrGetARIA_READONLY( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_READONLY )
807             #define attrGetARIA_RELEVANT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_RELEVANT )
808             #define attrGetARIA_REQUIRED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_REQUIRED )
809             #define attrGetARIA_SELECTED( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SELECTED )
810             #define attrGetARIA_SETSIZE( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SETSIZE )
811             #define attrGetARIA_SORT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_SORT )
812             #define attrGetARIA_VALUEMAX( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUEMAX )
813             #define attrGetARIA_VALUEMIN( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUEMIN )
814             #define attrGetARIA_VALUENOW( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUENOW )
815             #define attrGetARIA_VALUETEXT( nod ) TY_(AttrGetById)( nod, TidyAttr_ARIA_VALUETEXT )
816              
817             #endif /* __ATTRS_H__ */
818             #ifndef __CHARSETS_H__
819             #define __CHARSETS_H__
820              
821             /* charsets.h -- character set information and mappings
822              
823             (c) 1998-2021 (W3C) MIT, ERCIM, Keio University
824             See tidy.h for the copyright notice.
825              
826             */
827              
828             TY_PRIVATE unsigned int TY_(GetEncodingIdFromName)(ctmbstr name);
829             TY_PRIVATE unsigned int TY_(GetEncodingIdFromCodePage)(unsigned int cp);
830             TY_PRIVATE unsigned int TY_(GetEncodingCodePageFromName)(ctmbstr name);
831             TY_PRIVATE unsigned int TY_(GetEncodingCodePageFromId)(unsigned int id);
832             TY_PRIVATE ctmbstr TY_(GetEncodingNameFromId)(unsigned int id);
833             TY_PRIVATE ctmbstr TY_(GetEncodingNameFromCodePage)(unsigned int cp);
834              
835             #endif /* __CHARSETS_H__ */
836              
837             #ifndef __CLEAN_H__
838             #define __CLEAN_H__
839              
840             /* clean.h -- clean up misuse of presentation markup
841              
842             (c) 1998-2006 (W3C) MIT, ERCIM, Keio University
843             See tidy.h for the copyright notice.
844              
845             */
846              
847             TY_PRIVATE void TY_(FixNodeLinks)(Node *node);
848              
849             TY_PRIVATE void TY_(FreeStyles)( TidyDocImpl* doc );
850              
851             /* Add class="foo" to node
852             */
853             TY_PRIVATE void TY_(AddStyleAsClass)( TidyDocImpl* doc, Node *node, ctmbstr stylevalue );
854             TY_PRIVATE void TY_(AddStyleProperty)(TidyDocImpl* doc, Node *node, ctmbstr property );
855              
856             TY_PRIVATE void TY_(CleanDocument)( TidyDocImpl* doc );
857              
858             /* simplifies ... ... etc. */
859             TY_PRIVATE void TY_(NestedEmphasis)( TidyDocImpl* doc, Node* node );
860              
861             /* replace i by em and b by strong */
862             TY_PRIVATE void TY_(EmFromI)( TidyDocImpl* doc, Node* node );
863              
864             /*
865             Some people use dir or ul without an li
866             to indent the content. The pattern to
867             look for is a list with a single implicit
868             li. This is recursively replaced by an
869             implicit blockquote.
870             */
871             TY_PRIVATE void TY_(List2BQ)( TidyDocImpl* doc, Node* node );
872              
873             /*
874             Replace implicit blockquote by div with an indent
875             taking care to reduce nested blockquotes to a single
876             div with the indent set to match the nesting depth
877             */
878             TY_PRIVATE void TY_(BQ2Div)( TidyDocImpl* doc, Node* node );
879              
880              
881             TY_PRIVATE void TY_(DropSections)( TidyDocImpl* doc, Node* node );
882              
883              
884             /*
885             This is a major clean up to strip out all the extra stuff you get
886             when you save as web page from Word 2000. It doesn't yet know what
887             to do with VML tags, but these will appear as errors unless you
888             declare them as new tags, such as o:p which needs to be declared
889             as inline.
890             */
891             TY_PRIVATE void TY_(CleanWord2000)( TidyDocImpl* doc, Node *node);
892              
893             TY_PRIVATE Bool TY_(IsWord2000)( TidyDocImpl* doc );
894              
895             /* where appropriate move object elements from head to body */
896             TY_PRIVATE void TY_(BumpObject)( TidyDocImpl* doc, Node *html );
897              
898             TY_PRIVATE Bool TY_(TidyMetaCharset)(TidyDocImpl* doc);
899              
900             TY_PRIVATE void TY_(DropComments)(TidyDocImpl* doc, Node* node);
901             TY_PRIVATE void TY_(DropFontElements)(TidyDocImpl* doc, Node* node, Node **pnode);
902             TY_PRIVATE void TY_(WbrToSpace)(TidyDocImpl* doc, Node* node);
903             TY_PRIVATE void TY_(DowngradeTypography)(TidyDocImpl* doc, Node* node);
904             TY_PRIVATE void TY_(ReplacePreformattedSpaces)(TidyDocImpl* doc, Node* node);
905             TY_PRIVATE void TY_(NormalizeSpaces)(Lexer *lexer, Node *node);
906             TY_PRIVATE void TY_(ConvertCDATANodes)(TidyDocImpl* doc, Node* node);
907              
908             TY_PRIVATE void TY_(FixAnchors)(TidyDocImpl* doc, Node *node, Bool wantName, Bool wantId);
909             TY_PRIVATE void TY_(FixXhtmlNamespace)(TidyDocImpl* doc, Bool wantXmlns);
910             TY_PRIVATE void TY_(FixLanguageInformation)(TidyDocImpl* doc, Node* node, Bool wantXmlLang, Bool wantLang);
911              
912             /* Issue #567 - move style elements from body to head */
913             TY_PRIVATE void TY_(CleanStyle)(TidyDocImpl* doc, Node *html);
914             /* Issue #692 - discard multiple titles */
915             TY_PRIVATE void TY_(CleanHead)(TidyDocImpl* doc);
916              
917             #endif /* __CLEAN_H__ */
918             #ifndef __FILEIO_H__
919             #define __FILEIO_H__
920              
921             /** @file fileio.h - does standard C I/O
922              
923             Implementation of a FILE* based TidyInputSource and
924             TidyOutputSink.
925              
926             (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
927             See tidy.h for the copyright notice.
928              
929             */
930              
931             /* #include "tidybuffio.h" */
932             #ifdef __cplusplus
933             extern "C" {
934             #endif
935              
936             /** Allocate and initialize file input source */
937             TY_PRIVATE int TY_(initFileSource)( TidyAllocator *allocator, TidyInputSource* source, FILE* fp );
938              
939             /** Free file input source */
940             TY_PRIVATE void TY_(freeFileSource)( TidyInputSource* source, Bool closeIt );
941              
942             #if SUPPORT_POSIX_MAPPED_FILES
943             /** Allocate and initialize file input source using Standard C I/O */
944             TY_PRIVATE int TY_(initStdIOFileSource)( TidyAllocator *allocator, TidyInputSource* source, FILE* fp );
945              
946             /** Free file input source using Standard C I/O */
947             TY_PRIVATE void TY_(freeStdIOFileSource)( TidyInputSource* source, Bool closeIt );
948             #endif
949              
950             /** Initialize file output sink */
951             TY_PRIVATE void TY_(initFileSink)( TidyOutputSink* sink, FILE* fp );
952              
953             /* Needed for internal declarations */
954             TY_PRIVATE void TIDY_CALL TY_(filesink_putByte)( void* sinkData, byte bv );
955              
956             #ifdef __cplusplus
957             }
958             #endif
959             #endif /* __FILEIO_H__ */
960             #ifndef __STREAMIO_H__
961             #define __STREAMIO_H__
962              
963             /* streamio.h -- handles character stream I/O
964              
965             (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
966             See tidy.h for the copyright notice.
967              
968             Wrapper around Tidy input source and output sink
969             that calls appropriate interfaces, and applies
970             necessary char encoding transformations: to/from
971             ISO-10646 and/or UTF-8.
972              
973             */
974              
975             /* #include "forward.h" */
976             /* #include "tidybuffio.h" */
977             /* #include "fileio.h" */
978              
979             #ifdef __cplusplus
980             extern "C"
981             {
982             #endif
983             typedef enum
984             {
985             FileIO,
986             BufferIO,
987             UserIO
988             } IOType;
989              
990             /* states for ISO 2022
991              
992             A document in ISO-2022 based encoding uses some ESC sequences called
993             "designator" to switch character sets. The designators defined and
994             used in ISO-2022-JP are:
995              
996             "ESC" + "(" + ? for ISO646 variants
997              
998             "ESC" + "$" + ? and
999             "ESC" + "$" + "(" + ? for multibyte character sets
1000             */
1001             typedef enum
1002             {
1003             FSM_ASCII,
1004             FSM_ESC,
1005             FSM_ESCD,
1006             FSM_ESCDP,
1007             FSM_ESCP,
1008             FSM_NONASCII
1009             } ISO2022State;
1010              
1011             /************************
1012             ** Source
1013             ************************/
1014              
1015             enum
1016             {
1017             CHARBUF_SIZE=5,
1018             LASTPOS_SIZE=64
1019             };
1020              
1021             /* non-raw input is cleaned up*/
1022             struct _StreamIn
1023             {
1024             ISO2022State state; /* FSM for ISO2022 */
1025             Bool pushed;
1026             TidyAllocator *allocator;
1027             tchar* charbuf;
1028             unsigned int bufpos;
1029             unsigned int bufsize;
1030             int tabs;
1031             int lastcols[LASTPOS_SIZE];
1032             unsigned short curlastpos; /* current last position in lastcols */
1033             unsigned short firstlastpos; /* first valid last position in lastcols */
1034             int curcol;
1035             int curline;
1036             int encoding;
1037             IOType iotype;
1038              
1039             TidyInputSource source;
1040              
1041             /* Pointer back to document for error reporting */
1042             TidyDocImpl* doc;
1043             };
1044              
1045             TY_PRIVATE StreamIn* TY_(initStreamIn)( TidyDocImpl* doc, int encoding );
1046             TY_PRIVATE void TY_(freeStreamIn)(StreamIn* in);
1047              
1048             TY_PRIVATE StreamIn* TY_(FileInput)( TidyDocImpl* doc, FILE* fp, int encoding );
1049             TY_PRIVATE StreamIn* TY_(BufferInput)( TidyDocImpl* doc, TidyBuffer* content, int encoding );
1050             TY_PRIVATE StreamIn* TY_(UserInput)( TidyDocImpl* doc, TidyInputSource* source, int encoding );
1051              
1052             TY_PRIVATE int TY_(ReadBOMEncoding)(StreamIn *in);
1053             TY_PRIVATE unsigned int TY_(ReadChar)( StreamIn* in );
1054             TY_PRIVATE void TY_(UngetChar)( unsigned int c, StreamIn* in );
1055             TY_PRIVATE Bool TY_(IsEOF)( StreamIn* in );
1056              
1057              
1058             /************************
1059             ** Sink
1060             ************************/
1061              
1062             struct _StreamOut
1063             {
1064             int encoding;
1065             ISO2022State state; /* for ISO 2022 */
1066             unsigned int nl;
1067             IOType iotype;
1068             TidyOutputSink sink;
1069             };
1070              
1071             TY_PRIVATE StreamOut* TY_(FileOutput)( TidyDocImpl *doc, FILE* fp, int encoding, unsigned int newln );
1072             TY_PRIVATE StreamOut* TY_(BufferOutput)( TidyDocImpl *doc, TidyBuffer* buf, int encoding, unsigned int newln );
1073             TY_PRIVATE StreamOut* TY_(UserOutput)( TidyDocImpl *doc, TidyOutputSink* sink, int encoding, unsigned int newln );
1074              
1075             TY_PRIVATE StreamOut* TY_(StdErrOutput)(void);
1076             /* StreamOut* StdOutOutput(void); */
1077             TY_PRIVATE void TY_(ReleaseStreamOut)( TidyDocImpl *doc, StreamOut* out );
1078              
1079             TY_PRIVATE void TY_(WriteChar)( unsigned int c, StreamOut* out );
1080             TY_PRIVATE void TY_(outBOM)( StreamOut *out );
1081              
1082             TY_PRIVATE ctmbstr TY_(GetEncodingNameFromTidyId)(unsigned int id);
1083             TY_PRIVATE ctmbstr TY_(GetEncodingOptNameFromTidyId)(unsigned int id);
1084             TY_PRIVATE int TY_(GetCharEncodingFromOptName)(ctmbstr charenc);
1085              
1086             /************************
1087             ** Misc
1088             ************************/
1089              
1090             /* character encodings
1091             */
1092             #define RAW 0
1093             #define ASCII 1
1094             #define LATIN0 2
1095             #define LATIN1 3
1096             #define UTF8 4
1097             #define ISO2022 5
1098             #define MACROMAN 6
1099             #define WIN1252 7
1100             #define IBM858 8
1101             #define UTF16LE 9
1102             #define UTF16BE 10
1103             #define UTF16 11
1104             #define BIG5 12
1105             #define SHIFTJIS 13
1106              
1107             /* Function for conversion from Windows-1252 to Unicode */
1108             TY_PRIVATE unsigned int TY_(DecodeWin1252)(unsigned int c);
1109              
1110             /* Function to convert from MacRoman to Unicode */
1111             TY_PRIVATE unsigned int TY_(DecodeMacRoman)(unsigned int c);
1112              
1113             #ifdef __cplusplus
1114             }
1115             #endif
1116              
1117              
1118             /* Use numeric constants as opposed to escape chars (\r, \n)
1119             ** to avoid conflict Mac compilers that may re-define these.
1120             */
1121             /* #define '\r' 0xD */
1122             /* #define '\n' 0xA */
1123              
1124             #if defined(MAC_OS_CLASSIC)
1125             # define DEFAULT_NL_CONFIG TidyCR
1126             #elif defined(_WIN32) || defined(OS2_OS)
1127             # define DEFAULT_NL_CONFIG TidyCRLF
1128             #else
1129             # define DEFAULT_NL_CONFIG TidyLF
1130             #endif
1131              
1132              
1133             #endif /* __STREAMIO_H__ */
1134             #ifndef __CONFIG_H__
1135             #define __CONFIG_H__
1136              
1137             /**************************************************************************//**
1138             * @file
1139             * Read configuration files and manage configuration properties.
1140             *
1141             * Config files associate a property name with a value.
1142             *
1143             * // comments can start at the beginning of a line
1144             * # comments can start at the beginning of a line
1145             * name: short values fit onto one line
1146             * name: a really long value that
1147             * continues on the next line
1148             *
1149             * Property names are case insensitive and should be less than 60 characters
1150             * in length, and must start at the begining of the line, as whitespace at
1151             * the start of a line signifies a line continuation.
1152             *
1153             * @author HTACG, et al (consult git log)
1154             *
1155             * @copyright
1156             * Copyright (c) 1998-2017 World Wide Web Consortium (Massachusetts
1157             * Institute of Technology, European Research Consortium for Informatics
1158             * and Mathematics, Keio University) and HTACG.
1159             * @par
1160             * All Rights Reserved.
1161             * @par
1162             * See `tidy.h` for the complete license.
1163             *
1164             * @date Additional updates: consult git log
1165             *
1166             ******************************************************************************/
1167              
1168             /* #include "forward.h" */
1169             /* #include "tidy.h" */
1170             /* #include "streamio.h" */
1171              
1172             /** @addtogroup internal_api */
1173             /** @{ */
1174              
1175              
1176             /***************************************************************************//**
1177             ** @defgroup configuration_options Configuration Options
1178             **
1179             ** This module organizes all of Tidy's configuration options, including
1180             ** picklist management, option setting and retrieval, option file utilities,
1181             ** and so on.
1182             **
1183             ** @{
1184             ******************************************************************************/
1185              
1186              
1187             /** Determines the maximum number of items in an option's picklist. PickLists
1188             ** may have up to 16 items. For some reason, this limit has been hard-coded
1189             ** into Tidy for some time. Feel free to increase this as needed.
1190             */
1191             #define TIDY_PL_SIZE 16
1192              
1193              
1194             /** Structs of this type contain information needed in order to present
1195             ** picklists, relate picklist entries to public enum values, and parse
1196             ** strings that are accepted in order to assign the value.
1197             */
1198             typedef struct PickListItem {
1199             ctmbstr label; /**< PickList label for this item. */
1200             const int value; /**< The option value represented by this label. */
1201             ctmbstr inputs[10]; /**< String values that can select this value. */
1202             } PickListItem;
1203              
1204              
1205             /** An array of PickListItems, fixed in size for in-code declarations.
1206             ** Arrays must be populated in 0 to 10 order, as the option value is assigned
1207             ** based on this index and *not* on the structures' value field. It remains
1208             ** a best practice, however, to assign a public enum value with the proper
1209             ** index value.
1210             */
1211             typedef const PickListItem PickListItems[TIDY_PL_SIZE];
1212              
1213              
1214             struct _tidy_option; /* forward */
1215              
1216             /** The TidyOptionImpl type implements the `_tidy_option` structure.
1217             */
1218             typedef struct _tidy_option TidyOptionImpl;
1219              
1220              
1221             /** This typedef describes a function that is used for parsing the input
1222             ** given for a particular Tidy option.
1223             */
1224             typedef Bool (ParseProperty)( TidyDocImpl* doc, const TidyOptionImpl* opt );
1225              
1226              
1227             /** This structure defines the internal representation of a Tidy option.
1228             */
1229             struct _tidy_option
1230             {
1231             TidyOptionId id; /**< The unique identifier for this option. */
1232             TidyConfigCategory category; /**< The category of the option. */
1233             ctmbstr name; /**< The name of the option. */
1234             TidyOptionType type; /**< The date type for the option. */
1235             unsigned int dflt; /**< Default value for TidyInteger and TidyBoolean */
1236             ParseProperty* parser; /**< Function to parse input; read-only if NULL. */
1237             PickListItems* pickList; /**< The picklist of possible values for this option. */
1238             ctmbstr pdflt; /**< Default value for TidyString. */
1239             };
1240              
1241              
1242             /** Stored option values can be one of two internal types.
1243             */
1244             typedef union
1245             {
1246             unsigned int v; /**< Value for TidyInteger and TidyBoolean */
1247             char *p; /**< Value for TidyString */
1248             } TidyOptionValue;
1249              
1250              
1251             /** This type is used to define a structure for keeping track of the values
1252             ** for each option.
1253             */
1254             typedef struct _tidy_config
1255             {
1256             TidyOptionValue value[ N_TIDY_OPTIONS + 1 ]; /**< Current config values. */
1257             TidyOptionValue snapshot[ N_TIDY_OPTIONS + 1 ]; /**< Snapshot of values to be restored later. */
1258             unsigned int defined_tags; /**< Tracks user-defined tags. */
1259             unsigned int c; /**< Current char in input stream for reading options. */
1260             StreamIn* cfgIn; /**< Current input source for reading options.*/
1261             } TidyConfigImpl;
1262              
1263              
1264             /** Used to build a table of documentation cross-references.
1265             */
1266             typedef struct {
1267             TidyOptionId opt; /**< Identifier. */
1268             TidyOptionId const *links; /**< Cross references. Last element must be 'TidyUnknownOption'. */
1269             } TidyOptionDoc;
1270              
1271              
1272             /** Given an option name, return an instance of an option.
1273             ** @param optnam The option name to retrieve.
1274             ** @returns The instance of the requested option.
1275             */
1276             TY_PRIVATE const TidyOptionImpl* TY_(lookupOption)( ctmbstr optnam );
1277              
1278              
1279             /** Given an option ID, return an instance of an option.
1280             ** @param optId The option ID to retrieve.
1281             ** @returns The instance of the requested option.
1282             */
1283             TY_PRIVATE const TidyOptionImpl* TY_(getOption)( TidyOptionId optId );
1284              
1285             /** Given an option ID, indicates whether or not the option is a list.
1286             ** @param optId The option ID to check.
1287             ** @returns Returns yes if the option value is a list.
1288             */
1289             TY_PRIVATE const Bool TY_(getOptionIsList)( TidyOptionId optId );
1290              
1291             /** Initiates an iterator to cycle through all of the available options.
1292             ** @param doc The Tidy document to get options.
1293             ** @returns An iterator token to be used with TY_(getNextOption)().
1294             */
1295             TY_PRIVATE TidyIterator TY_(getOptionList)( TidyDocImpl* doc );
1296              
1297              
1298             /** Gets the next option provided by the iterator.
1299             ** @param doc The Tidy document to get options.
1300             ** @param iter The iterator token initialized by TY_(getOptionList)().
1301             ** @returns The instance of the next option.
1302             */
1303             TY_PRIVATE const TidyOptionImpl* TY_(getNextOption)( TidyDocImpl* doc, TidyIterator* iter );
1304              
1305              
1306             /** Initiates an iterator to cycle through all of the available picklist
1307             ** possibilities.
1308             ** @param option An instance of an option for which to iterate a picklist.
1309             ** @returns An interator token to be used with TY_(getNextOptionPick)().
1310             */
1311             TY_PRIVATE TidyIterator TY_(getOptionPickList)( const TidyOptionImpl* option );
1312              
1313              
1314             /** Gets the next picklist possibility provided by the iterator.
1315             ** @param option The instance of the option for which to iterate a picklist.
1316             ** @param iter The iterator token initialized by TY_(getOptionPickList)().
1317             ** @returns The next picklist entry.
1318             */
1319             TY_PRIVATE ctmbstr TY_(getNextOptionPick)( const TidyOptionImpl* option, TidyIterator* iter );
1320              
1321              
1322             #if SUPPORT_CONSOLE_APP
1323             /** Returns the cross-reference information structure for optID, which is
1324             ** used for generating documentation.
1325             ** @param optId The option ID to get cross-reference information for.
1326             ** @returns Cross reference information.
1327             */
1328             TY_PRIVATE const TidyOptionDoc* TY_(OptGetDocDesc)( TidyOptionId optId );
1329             #endif /* SUPPORT_CONSOLE_APP */
1330              
1331              
1332             /** Initialize the configuration for the given Tidy document.
1333             ** @param doc The Tidy document.
1334             */
1335             TY_PRIVATE void TY_(InitConfig)( TidyDocImpl* doc );
1336              
1337              
1338             /** Frees the configuration memory for the given Tidy document.
1339             ** @param doc The Tidy document.
1340             */
1341             TY_PRIVATE void TY_(FreeConfig)( TidyDocImpl* doc );
1342              
1343              
1344             /** Gets the picklist label for a given value.
1345             ** @param optId the option id having a picklist to check.
1346             ** @param pick the picklist item to retrieve.
1347             ** @returns The label for the pick.
1348             */
1349             TY_PRIVATE ctmbstr TY_(GetPickListLabelForPick)( TidyOptionId optId, unsigned int pick );
1350              
1351              
1352             /** Sets the integer value for the given option Id.
1353             ** @param doc The Tidy document.
1354             ** @param optId The option ID to set.
1355             ** @param val The value to set.
1356             ** @returns Success or failure.
1357             */
1358             TY_PRIVATE Bool TY_(SetOptionInt)( TidyDocImpl* doc, TidyOptionId optId, unsigned int val );
1359              
1360              
1361             /** Sets the bool value for the given option Id.
1362             ** @param doc The Tidy document.
1363             ** @param optId The option ID to set.
1364             ** @param val The value to set.
1365             ** @returns Success or failure.
1366             */
1367             TY_PRIVATE Bool TY_(SetOptionBool)( TidyDocImpl* doc, TidyOptionId optId, Bool val );
1368              
1369              
1370             /** Resets the given option to its default value.
1371             ** @param doc The Tidy document.
1372             ** @param optId The option ID to set.
1373             ** @returns Success or failure.
1374             */
1375             TY_PRIVATE Bool TY_(ResetOptionToDefault)( TidyDocImpl* doc, TidyOptionId optId );
1376              
1377              
1378             /** Resets all options in the document to their default values.
1379             ** @param doc The Tidy document.
1380             */
1381             TY_PRIVATE void TY_(ResetConfigToDefault)( TidyDocImpl* doc );
1382              
1383              
1384             /** Stores a snapshot of all of the configuration values that can be
1385             ** restored later.
1386             ** @param doc The Tidy document.
1387             */
1388             TY_PRIVATE void TY_(TakeConfigSnapshot)( TidyDocImpl* doc );
1389              
1390              
1391             /** Restores all of the configuration values to their snapshotted values.
1392             ** @param doc The Tidy document.
1393             */
1394             TY_PRIVATE void TY_(ResetConfigToSnapshot)( TidyDocImpl* doc );
1395              
1396              
1397             /** Copies the configuration from one document to another.
1398             ** @param docTo The destination Tidy document.
1399             ** @param docFrom The source Tidy document.
1400             */
1401             TY_PRIVATE void TY_(CopyConfig)( TidyDocImpl* docTo, TidyDocImpl* docFrom );
1402              
1403              
1404             /** Attempts to parse the given config file into the document.
1405             ** @param doc The Tidy document.
1406             ** @param cfgfil The file to load.
1407             ** @returns a file system error code.
1408             */
1409             TY_PRIVATE int TY_(ParseConfigFile)( TidyDocImpl* doc, ctmbstr cfgfil );
1410              
1411              
1412             /** Attempts to parse the given config file into the document, using
1413             ** the provided encoding.
1414             ** @param doc The Tidy document.
1415             ** @param cfgfil The file to load.
1416             ** @param charenc The name of the encoding to use for reading the file.
1417             ** @returns a file system error code.
1418             */
1419             TY_PRIVATE int TY_(ParseConfigFileEnc)( TidyDocImpl* doc,
1420             ctmbstr cfgfil, ctmbstr charenc );
1421              
1422              
1423             /** Saves the current configuration for options not having default values
1424             ** into the specified file.
1425             ** @param doc The Tidy document.
1426             ** @param cfgfil The file to save.
1427             ** @returns a file system error code.
1428             */
1429             TY_PRIVATE int TY_(SaveConfigFile)( TidyDocImpl* doc, ctmbstr cfgfil );
1430              
1431              
1432             /** Writes the current configuration for options not having default values
1433             ** into the specified sink.
1434             ** @param doc The Tidy document.
1435             ** @param sink The sink to save into.
1436             ** @returns a file system error code.
1437             */
1438             TY_PRIVATE int TY_(SaveConfigSink)( TidyDocImpl* doc, TidyOutputSink* sink );
1439              
1440              
1441             /** Attempts to parse the provided value for the given option name. Returns
1442             ** false if unknown option, missing parameter, or the option doesn't
1443             ** use the parameter.
1444             ** @param doc The Tidy document.
1445             ** @param optnam The name of the option to be set.
1446             ** @param optVal The string value to attempt to parse.
1447             ** @returns Success or failure.
1448             */
1449             TY_PRIVATE Bool TY_(ParseConfigOption)( TidyDocImpl* doc, ctmbstr optnam, ctmbstr optVal );
1450              
1451              
1452             /** Attempts to parse the provided value for the given option id. Returns
1453             ** false if unknown option, missing parameter, or the option doesn't
1454             ** use the parameter.
1455             ** @param doc The Tidy document.
1456             ** @param optId The ID of the option to be set.
1457             ** @param optVal The string value to attempt to parse.
1458             ** @returns Success or failure.
1459             */
1460             TY_PRIVATE Bool TY_(ParseConfigValue)( TidyDocImpl* doc, TidyOptionId optId, ctmbstr optVal );
1461              
1462              
1463             /** Ensure that char encodings are self consistent.
1464             ** @param doc The Tidy document to adjust.
1465             ** @param encoding The encoding being applied.
1466             ** @returns A bool indicating success or failure.
1467             */
1468             TY_PRIVATE Bool TY_(AdjustCharEncoding)( TidyDocImpl* doc, int encoding );
1469              
1470              
1471             /** Ensure that the configuration options are self consistent.
1472             ** THIS PROCESS IS DESTRUCTIVE TO THE USER STATE. It examines
1473             ** certain user-specified options and changes other options
1474             ** as a result. This means that documented API functions such
1475             ** as tidyOptGetValue() won't return the user-set values after
1476             ** this is used. As a result, *don't* just use this function
1477             ** at every opportunity, but only where needed, which is ONLY
1478             ** prior to parsing a stream, and again prior to saving a
1479             ** stream (because we reset after parsing.)
1480             ** @param doc The Tidy document to adjust.
1481             */
1482             void TY_(AdjustConfig)( TidyDocImpl* doc );
1483              
1484              
1485             /** Indicates whether or not the current configuration is completely default.
1486             ** @param doc The Tidy document.
1487             ** @returns The result.
1488             */
1489             TY_PRIVATE Bool TY_(ConfigDiffThanDefault)( TidyDocImpl* doc );
1490              
1491              
1492             /** Indicates whether or not the current configuration is different from the
1493             ** stored snapshot.
1494             ** @param doc The Tidy document.
1495             ** @returns The result.
1496             */
1497             TY_PRIVATE Bool TY_(ConfigDiffThanSnapshot)( TidyDocImpl* doc );
1498              
1499              
1500             /** Returns the character encoding ID for the given character encoding
1501             ** string.
1502             ** @param doc The Tidy document.
1503             ** @param charenc The name of the character encoding.
1504             ** @returns The Id of the character encoding.
1505             */
1506             TY_PRIVATE int TY_(CharEncodingId)( TidyDocImpl* doc, ctmbstr charenc );
1507              
1508              
1509             /** Returns the full name of the encoding for the given ID.
1510             ** @param encoding The Id of the encoding.
1511             ** @returns The name of the character encoding.
1512             */
1513             TY_PRIVATE ctmbstr TY_(CharEncodingName)( int encoding );
1514              
1515              
1516             /** Returns the Tidy command line option name of the encoding for the given ID.
1517             ** @param encoding The Id of the encoding.
1518             ** @returns The Tidy command line option representing the encoding.
1519             */
1520             TY_PRIVATE ctmbstr TY_(CharEncodingOptName)( int encoding );
1521              
1522              
1523             /** Coordinates Config update and list data.
1524             ** @param doc The Tidy document.
1525             ** @param opt The option the list item is intended for.
1526             ** @param name The name of the new list item.
1527             */
1528             TY_PRIVATE void TY_(DeclareListItem)( TidyDocImpl* doc, const TidyOptionImpl* opt, ctmbstr name );
1529              
1530             #ifdef _DEBUG
1531              
1532             /* Debug lookup functions will be type-safe and assert option type match */
1533             TY_PRIVATE unsigned int TY_(_cfgGet)( TidyDocImpl* doc, TidyOptionId optId );
1534             TY_PRIVATE Bool TY_(_cfgGetBool)( TidyDocImpl* doc, TidyOptionId optId );
1535             TY_PRIVATE TidyTriState TY_(_cfgGetAutoBool)( TidyDocImpl* doc, TidyOptionId optId );
1536             TY_PRIVATE ctmbstr TY_(_cfgGetString)( TidyDocImpl* doc, TidyOptionId optId );
1537              
1538             #define cfg(doc, id) TY_(_cfgGet)( (doc), (id) )
1539             #define cfgBool(doc, id) TY_(_cfgGetBool)( (doc), (id) )
1540             #define cfgAutoBool(doc, id) TY_(_cfgGetAutoBool)( (doc), (id) )
1541             #define cfgStr(doc, id) TY_(_cfgGetString)( (doc), (id) )
1542              
1543             #else
1544              
1545             /* Release build macros for speed */
1546              
1547             /** Access the raw, non-string unsigned int value of the given option ID. */
1548             #define cfg(doc, id) ((doc)->config.value[ (id) ].v)
1549              
1550             /** Access the Bool value of the given option ID. */
1551             #define cfgBool(doc, id) ((Bool) cfg(doc, id))
1552              
1553             /** Access the TidyTriState value of the given option ID. */
1554             #define cfgAutoBool(doc, id) ((TidyTriState) cfg(doc, id))
1555              
1556             /** Access the string value of the given option ID. */
1557             #define cfgStr(doc, id) ((ctmbstr) (doc)->config.value[ (id) ].p)
1558              
1559             #endif /* _DEBUG */
1560              
1561              
1562             /** @} configuration_options group */
1563             /** @} internal_api addtogroup */
1564              
1565              
1566             #endif /* __CONFIG_H__ */
1567             #ifndef __ENTITIES_H__
1568             #define __ENTITIES_H__
1569              
1570             /* entities.h -- recognize character entities
1571              
1572             (c) 1998-2006 (W3C) MIT, ERCIM, Keio University
1573             See tidy.h for the copyright notice.
1574              
1575             */
1576              
1577             /* #include "forward.h" */
1578              
1579             /* entity starting with "&" returns zero on error */
1580             /* unsigned int EntityCode( ctmbstr name, unsigned int versions ); */
1581             TY_PRIVATE ctmbstr TY_(EntityName)( unsigned int charCode, unsigned int versions );
1582             TY_PRIVATE Bool TY_(EntityInfo)( ctmbstr name, Bool isXml, unsigned int* code, unsigned int* versions );
1583              
1584             #endif /* __ENTITIES_H__ */
1585             #ifndef __GDOC_H__
1586             #define __GDOC_H__
1587              
1588             /* gdoc.h -- clean up html exported by Google Docs
1589              
1590             (c) 2012 (W3C) MIT, ERCIM, Keio University
1591             See tidy.h for the copyright notice.
1592              
1593             - strip the script element, as the style sheet is a mess
1594             - strip class attributes
1595             - strip span elements, leaving their content in place
1596             - replace by id on parent element
1597             - strip empty

elements

1598              
1599             */
1600              
1601             TY_PRIVATE void TY_(CleanGoogleDocument)( TidyDocImpl* doc );
1602              
1603             #endif /* __GDOC_H__ */
1604             #ifndef language_h
1605             #define language_h
1606              
1607             /*********************************************************************
1608             * Localization support for HTML Tidy.
1609             *
1610             * This header provides the public (within libtidy) interface to
1611             * basic localization support. To add your own localization, create
1612             * a new `language_xx.h` file and add it to the struct in
1613             * `language.c`.
1614             *
1615             * (c) 2015 HTACG
1616             * See `tidy.h` for the copyright notice.
1617             *********************************************************************/
1618              
1619             /* #include "forward.h" */
1620              
1621              
1622             /** @name Exposed Data Structures */
1623             /** @{ */
1624              
1625              
1626             /**
1627             * These enumerations are used within instances of `languageDefinition`
1628             * structures to provide additional metadata, and are localizable
1629             * therein.
1630             */
1631             typedef enum {
1632            
1633             /* Specifies the language code for a particular language. */
1634             TIDY_LANGUAGE = 400,
1635            
1636             /* Marker for the last key in the structure. */
1637             TIDY_MESSAGE_TYPE_LAST
1638            
1639             } tidyLanguage;
1640              
1641              
1642             /**
1643             * Describes a record for a localization string.
1644             * - key must correspond with one of Tidy's enums (see `tidyMessageTypes`
1645             * below)
1646             * - pluralForm corresponds to gettext plural forms case (not singularity).
1647             * Most entries should be case 0, representing the single case.:
1648             * https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
1649             */
1650             typedef struct languageDictionaryEntry {
1651             unsigned int key;
1652             unsigned int pluralForm;
1653             ctmbstr value;
1654             } languageDictionaryEntry;
1655              
1656              
1657             /**
1658             * For now we'll just use an array to hold all of the dictionary
1659             * entries. In the future we can convert this to a hash structure
1660             * which will make looking up strings faster.
1661             */
1662             typedef languageDictionaryEntry const languageDictionary[600];
1663              
1664              
1665             /**
1666             * Finally, a complete language definition. The item `pluralForm`
1667             * is a function pointer that will provide the correct plural
1668             * form given the value `n`. The actual function is present in
1669             * each language header and is language dependent.
1670             */
1671             typedef struct languageDefinition {
1672             unsigned int (*whichPluralForm)(unsigned int n);
1673             languageDictionary messages;
1674             } languageDefinition;
1675              
1676              
1677             /**
1678             * The function getNextWindowsLanguage() returns pointers to this type;
1679             * it gives LibTidy implementors the ability to determine how Windows
1680             * locale names are mapped to POSIX language codes.
1681             */
1682             typedef struct tidyLocaleMapItemImpl {
1683             ctmbstr winName;
1684             ctmbstr POSIXName;
1685             } tidyLocaleMapItemImpl;
1686              
1687              
1688             /** @} */
1689             /** @name Localization Related Functions */
1690             /** @{ */
1691              
1692              
1693             /**
1694             ** Determines the current locale without affecting the C locale.
1695             ** Tidy has always used the default C locale, and at this point
1696             ** in its development we're not going to tamper with that.
1697             ** @param result The buffer to use to return the string.
1698             ** Returns NULL on failure.
1699             ** @return The same buffer for convenience.
1700             */
1701             TY_PRIVATE tmbstr TY_(tidySystemLocale)(tmbstr result);
1702              
1703             /**
1704             * Tells Tidy to use a different language for output.
1705             * @param languageCode A Windows or POSIX language code, and must match
1706             * a TIDY_LANGUAGE for an installed language.
1707             * @result Indicates that a setting was applied, but not necessarily the
1708             * specific request, i.e., true indicates a language and/or region
1709             * was applied. If es_mx is requested but not installed, and es is
1710             * installed, then es will be selected and this function will return
1711             * true. However the opposite is not true; if es is requested but
1712             * not present, Tidy will not try to select from the es_XX variants.
1713             */
1714             TY_PRIVATE Bool TY_(tidySetLanguage)( ctmbstr languageCode );
1715              
1716             /**
1717             * Gets the current language used by Tidy.
1718             */
1719             TY_PRIVATE ctmbstr TY_(tidyGetLanguage)(void);
1720              
1721              
1722             /**
1723             * Indicates whether or not the current language was set by a
1724             * LibTidy user or internally by the library. This flag prevents
1725             * subsequently created instances of TidyDocument from changing the
1726             * user's language.
1727             * @returns Returns yes to indicate that the current language was
1728             * specified by an API user.
1729             */
1730             TY_PRIVATE Bool TY_(tidyGetLanguageSetByUser)(void);
1731              
1732              
1733             /**
1734             * Specifies to LibTidy that the user (rather than the library)
1735             * selected the current language. This flag prevents subsequently
1736             * created instances of TidyDocument from changing the user's language.
1737             */
1738             TY_PRIVATE void TY_(tidySetLanguageSetByUser)( void );
1739              
1740              
1741             /**
1742             * Provides a string given `messageType` in the current
1743             * localization for `quantity`.
1744             */
1745             TY_PRIVATE ctmbstr TY_(tidyLocalizedStringN)( unsigned int messageType, unsigned int quantity );
1746              
1747             /**
1748             * Provides a string given `messageType` in the current
1749             * localization for the single case.
1750             */
1751             TY_PRIVATE ctmbstr TY_(tidyLocalizedString)( unsigned int messageType );
1752              
1753              
1754             /** @} */
1755             /** @name Documentation Generation */
1756             /** @{ */
1757              
1758              
1759             /**
1760             * Provides a string given `messageType` in the default
1761             * localization (which is `en`).
1762             */
1763             TY_PRIVATE ctmbstr TY_(tidyDefaultString)( unsigned int messageType );
1764              
1765             /*
1766             * Initializes the TidyIterator to point to the first item
1767             * in Tidy's list of localization string keys. Note that
1768             * these are provided for documentation generation purposes
1769             * and probably aren't useful for LibTidy implementors.
1770             */
1771             TY_PRIVATE TidyIterator TY_(getStringKeyList)(void);
1772              
1773             /*
1774             * Provides the next key value in Tidy's list of localized
1775             * strings. Note that these are provided for documentation
1776             * generation purposes and probably aren't useful to
1777             * libtidy implementors.
1778             */
1779             TY_PRIVATE unsigned int TY_(getNextStringKey)( TidyIterator* iter );
1780              
1781             /**
1782             * Initializes the TidyIterator to point to the first item
1783             * in Tidy's structure of Windows<->POSIX local mapping.
1784             * Items can be retrieved with getNextWindowsLanguage();
1785             */
1786             TY_PRIVATE TidyIterator TY_(getWindowsLanguageList)(void);
1787              
1788             /**
1789             * Returns the next record of type `localeMapItem` in
1790             * Tidy's structure of Windows<->POSIX local mapping.
1791             */
1792             TY_PRIVATE const tidyLocaleMapItemImpl *TY_(getNextWindowsLanguage)( TidyIterator* iter );
1793              
1794             /**
1795             * Given a `tidyLocaleMapItemImpl, return the Windows name.
1796             */
1797             TY_PRIVATE ctmbstr TY_(TidyLangWindowsName)( const tidyLocaleMapItemImpl *item );
1798              
1799             /**
1800             * Given a `tidyLocaleMapItemImpl, return the POSIX name.
1801             */
1802             TY_PRIVATE ctmbstr TY_(TidyLangPosixName)( const tidyLocaleMapItemImpl *item );
1803              
1804             /**
1805             * Initializes the TidyIterator to point to the first item
1806             * in Tidy's list of installed language codes.
1807             * Items can be retrieved with getNextInstalledLanguage();
1808             */
1809             TY_PRIVATE TidyIterator TY_(getInstalledLanguageList)(void);
1810              
1811             /**
1812             * Returns the next installed language.
1813             */
1814             TY_PRIVATE ctmbstr TY_(getNextInstalledLanguage)( TidyIterator* iter );
1815              
1816              
1817             /** @} */
1818              
1819             #endif /* language_h */
1820             #ifndef language_de_h
1821             #define language_de_h
1822             /*
1823             * language_de.h
1824             * Localization support for HTML Tidy.
1825             *
1826             *
1827             * This file is a localization file for HTML Tidy. It will have been machine
1828             * generated or created and/or edited by hand. Both are valid options, but
1829             * please help keep our localization efforts simple to maintain by maintaining
1830             * the structure of this file, and changing the check box below if you make
1831             * changes (so others know the file origin):
1832             *
1833             * [ ] THIS FILE IS MACHINE GENERATED. It is a localization file for the
1834             * language (and maybe region) "de". The source of
1835             * these strings is a gettext PO file in Tidy's source, probably called
1836             * "language_de.po".
1837             *
1838             * [X] THIS FILE WAS HAND MODIFIED. Translators, please feel to edit this file
1839             * directly (and check this box). If you prefer to edit PO files then use
1840             * `poconvert.rb msgunfmt language_de.h` (our own
1841             * conversion tool) to generate a fresh PO from this file first!
1842             *
1843             * (©) 2020-2020 Michael Uplawski
1844             * See tidy.h and access.h for the copyright notice.
1845             *
1846             * Template Created by Jim Derry on 01/14/2016.
1847             *
1848             */
1849             #ifdef _MSC_VER
1850             #pragma execution_character_set("utf-8")
1851             #endif
1852              
1853              
1854             /**
1855             * This language-specific function returns the correct pluralForm
1856             * to use given n items, and is used as a member of each language
1857             * definition.
1858             */
1859 0           static unsigned int whichPluralForm_de(unsigned int n) {
1860             /* Plural-Forms: nplurals=2; */
1861 0           return (n > 1);
1862             }
1863              
1864              
1865             /**
1866             * This structure specifies all of the strings needed by Tidy for a
1867             * single language. Static definition in a header file makes it
1868             * easy to include and exclude languages without tinkering with
1869             * the build system.
1870             *
1871             * This file serves as the master template for generating `gettext`
1872             * PO and POT files using our `potool.rb` script. Certain comments
1873             * entered below will be included in the PO/POT files as developer
1874             * comments. To enable this, use only standard C-style comments that
1875             * begin immediately after the opening brace without whitespace.
1876             */
1877              
1878             static languageDefinition language_de = { whichPluralForm_de, {
1879             /***************************************
1880             ** This MUST be present and first.
1881             ** Specify the code for this language.
1882             ***************************************/
1883             {/* Specify the ll or ll_cc language code here. */
1884             TIDY_LANGUAGE, 0, "de"
1885             },
1886              
1887             /*********************************************************************
1888             ** Options Documentation
1889             ** As of 2016-January these descriptions are used uniquely by the
1890             ** console application but are made available for LibTidy users as
1891             ** well. Because we generate documentation from these descriptions
1892             ** it's important to use ONLY the following tags:
1893             ** , , ,
,

1894             ** Note that the xslt processor requires
to be self closing!
1895             ** @remark enum source is TidyOptionId
1896             *********************************************************************/
1897             {/* Important notes for translators:
1898             - Use only , , , , and
1899            
.
1900             - Entities, tags, attributes, etc., should be enclosed in .
1901             - Option values should be enclosed in .
1902             - It's very important that
be self-closing!
1903             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1904             be translated. */
1905             TidyAccessibilityCheckLevel, 0,
1906             "Diese Option bestimmt, wenn nötig, das Niveau der Überprüfungen der Barrierefreiheit, "
1907             "die Tidy durchführen soll. "
1908             "
"
1909             "Niveau 0 (Tiidy Classic) entsprichte dem Niveau der Prüfugen von Tidy Classic."
1910             "
"
1911             "Auf dieser Seite finden Sie weitere Informationen zur Prüfung der Barrierefreiheit mit Tidy: "
1912             "Barrierefreiheit mit Tidy. "
1913             },
1914             {/* Important notes for translators:
1915             - Use only , , , , and
1916            
.
1917             - Entities, tags, attributes, etc., should be enclosed in .
1918             - Option values should be enclosed in .
1919             - It's very important that
be self-closing!
1920             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1921             be translated. */
1922             TidyAltText, 0,
1923             "Diese Option bestimmt den Standardwert für das alt= Attribut, "
1924             "das von Tidy eingesetzt wird, wo es in <img> Tags fehlt. "
1925             "
"
1926             "Gehen Sie behutsam damit um; es liegt in Ihrer Verantwortung, Dokumente barrierefrei "
1927             " zu gestalten, für Leute die die Bilder nicht sehen können. "
1928             },
1929             {/* Important notes for translators:
1930             - Use only , , , , and
1931            
.
1932             - Entities, tags, attributes, etc., should be enclosed in .
1933             - Option values should be enclosed in .
1934             - It's very important that
be self-closing!
1935             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1936             be translated. */
1937             TidyAnchorAsName, 0,
1938             "Diese Option steuert das Entfernen oder Hinzufügen des name "
1939             "Attributs in solchen Elementen, die als Verweisanker dienen können. "
1940             "
"
1941             "Wenn hier yes gewählt wird und ein name Attribut "
1942             "bisher nicht vorhanden ist, wird es zusammen mit einem id Attribut "
1943             "ergänzt, soweit die DTD dies erlaubt. "
1944             "
"
1945             "Mit dem Wert no, wird ein vorhandenes name Attribut "
1946             "entfernt, sofern en id existiert oder hinzugefügt wurde."
1947             },
1948             {/* Important notes for translators:
1949             - Use only , , , , and
1950            
.
1951             - Entities, tags, attributes, etc., should be enclosed in .
1952             - Option values should be enclosed in .
1953             - It's very important that
be self-closing!
1954             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1955             be translated. */
1956             TidyAsciiChars, 0,
1957             "Kann verwendet werden, um die Wirkung der Option clean "
1958             "zu modifizieren, wenn der den Wert yes hat."
1959             "
"
1960             "Hier yes zusammen mit clean zu verwenden, "
1961             "hat zur Folge, dass &emdash;, &rdquo; "
1962             "und andere typografische Zeichen in ihre nächstliegenden ASCII-Äquivalente "
1963             "umgewandelt werden. "
1964             },
1965             {/* Important notes for translators:
1966             - Use only , , , , and
1967            
.
1968             - Entities, tags, attributes, etc., should be enclosed in .
1969             - Option values should be enclosed in .
1970             - It's very important that
be self-closing!
1971             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1972             be translated. */
1973             TidyBlockTags, 0,
1974             "Diese Option dient der Einführung neuer Block-Elemente. Der Wert muss "
1975             "eine Liste von leerzeichen- oder komma-separierten Tag-Namen sein."
1976             "
"
1977             "Solange Sie die neuen Tags nicht definieren, wird Tidy keine bereinigte "
1978             "Datei erzeugen, wenn die Eingabe bisher unbekannte Tags enthält. "
1979             "
"
1980             "Beachten Sie, dass Sie das Content Model für Elemente wie "
1981             "<table>, <ul>, "
1982             "<ol> and <dl> nicht ändern können. "
1983             "
"
1984             "Die Option wird im XML Modus ignoriert. "
1985             },
1986             {/* Important notes for translators:
1987             - Use only , , , , and
1988            
.
1989             - Entities, tags, attributes, etc., should be enclosed in .
1990             - Option values should be enclosed in .
1991             - It's very important that
be self-closing!
1992             - The strings "Tidy" and "HTML Tidy" are the program name and must not
1993             be translated. */
1994             TidyBodyOnly, 0,
1995             "Die Option legt fest, ob Tidy nur den Inhalt des body "
1996             "Elements als HTML-Fragment ausgeben soll. "
1997             "
"
1998             "Hier auto einzustellen hat zur Folge, dass die Wirkung nur "
1999             "eintritt, wenn das body Element hergeleitet wurde."
2000             "
"
2001             "Die Methode ist nützlich, um ganze Seiten als Teil einer anderen Seite auszugeben. "
2002             "
"
2003             "Die Option ist wirkungslos, wenn XML Ausgabe gefordert ist. "
2004             },
2005             {/* Important notes for translators:
2006             - Use only , , , , and
2007            
.
2008             - Entities, tags, attributes, etc., should be enclosed in .
2009             - Option values should be enclosed in .
2010             - It's very important that
be self-closing!
2011             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2012             be translated. */
2013             TidyBreakBeforeBR, 0,
2014             "Diese Option legt fest, ob Tidy einen Zeilenumbruch vor jedem "
2015             "<br> Element einfügen soll. "
2016             },
2017             {/* Important notes for translators:
2018             - Use only , , , , and
2019            
.
2020             - Entities, tags, attributes, etc., should be enclosed in .
2021             - Option values should be enclosed in .
2022             - It's very important that
be self-closing!
2023             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2024             be translated. */
2025             TidyCharEncoding, 0,
2026             "Diese Option bestimmt, welche Zeichenkodierung Tidy für Eingaben annehmen soll und, "
2027             "falls zutreffend, dass Tidy für Ausgaben automatisch eine geeignete Zeichenkodierung "
2028             "wählt. Die Kodierungen für Ein- und Ausgaben können sich unterscheiden. "
2029             "
"
2030             "Wird für die Eingabe eine der Kodierungen ascii, latin0, "
2031             "ibm858, mac oder win1252 gefordert, "
2032             "wird die Option output-encoding automatisch auf ascii "
2033             "eingestellt. Sie können dies verhindern, indem Sie den Wert für "
2034             "output-encoding selbst bestimmen. "
2035             "
"
2036             "Bei anders kodierten Eingaben wird die Option output-encoding "
2037             "automatisch auf den identischen Wert eingestellt. "
2038             "
"
2039             "Sie können den voreingestellten Wert für output-encoding "
2040             "überschreiben, indem Sie die Option selbst setzen. "
2041             "
"
2042             "Tidy ist kein Konverter für Zeichenkodierungen. Auch, wenn Latin- und "
2043             "UTF-Kodierungen frei vermischt sein können, ist es mit Tidy nicht möglich, "
2044             "asiatische Kodierungen nach Latin zu konvertieren."
2045             },
2046             {/* Important notes for translators:
2047             - Use only , , , , and
2048            
.
2049             - Entities, tags, attributes, etc., should be enclosed in .
2050             - Option values should be enclosed in .
2051             - It's very important that
be self-closing!
2052             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2053             be translated. */
2054             TidyCoerceEndTags, 0,
2055             "Diese Option bestimmt, ob Tidy ein Start-Tag in ein End-Tag umwandelt, "
2056             "wo es wahrscheinlich erscheint, dass ein solches End-Tag eigentlich "
2057             "gewünscht war; zum Beispiel kann die Eingabe "
2058             "
"
2059             "<span>ein <b>wichtiges<b> Wort</span> "
2060             "
"
2061             "von Tidy umgewandelt werden in "
2062             "
"
2063             "<span>ein <b>wichtiges</b> Wort</span> "
2064             },
2065             {/* Important notes for translators:
2066             - Use only , , , , and
2067            
.
2068             - Entities, tags, attributes, etc., should be enclosed in .
2069             - Option values should be enclosed in .
2070             - It's very important that
be self-closing!
2071             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2072             be translated. */
2073             TidyCSSPrefix, 0,
2074             "Diese Option setzt den Präfix, den Tidy für Style-Regeln verwendet. "
2075             "
"
2076             "Standardmäßig wird c verwendet. "
2077             },
2078             {/* Important notes for translators:
2079             - Use only , , , , and
2080            
.
2081             - Entities, tags, attributes, etc., should be enclosed in .
2082             - Option values should be enclosed in .
2083             - It's very important that
be self-closing!
2084             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2085             be translated. */
2086             TidyDecorateInferredUL, 0,
2087             "Diese Option legt fest, ob Tidy hergeleitete <ul> "
2088             "Elemente mit CSS-Auszeichnungen ausstatten soll, um Einrückungen nach "
2089             "rechts zu verhindern. "
2090             },
2091             {/* Important notes for translators:
2092             - Use only , , , , and
2093            
.
2094             - Entities, tags, attributes, etc., should be enclosed in .
2095             - Option values should be enclosed in .
2096             - It's very important that
be self-closing!
2097             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2098             be translated. */
2099             TidyDoctype, 0,
2100             "Diese Option setzt die DOCTYPE Deklaration, die von Tidy generiert wird. "
2101             "
"
2102             "Wenn hier omit eingestellt ist, enthält die Ausgabe keine "
2103             "DOCTYPE Deklaration. Beachten Sie, dass damit auch numeric-entities "
2104             "auf yes eingestellt wird. "
2105             "
"
2106             "Mit dem Wert html5 wird der DOCTYPE auf "
2107             "<!DOCTYPE html> festgelegt."
2108             "
"
2109             "Wird statt dessen auto (der Standard) verwendet, wird Tidy versuchen, "
2110             "einen aufgrund des Dokumentinhalts vermuteten DOCTYPE zu verwenden. "
2111             "Beachten Sie, dass auf diese Weise der DOCTYPE des aktuellen Dokuments "
2112             "nicht geändert wird. "
2113             "
"
2114             "Der Wert strict veranlasst Tidy, den DOCTYPE auf HTML4 oder "
2115             "XHTML1 strict DTD einzustellen. "
2116             "
"
2117             "Mit dem Wert loose wird der DOCTYPE HTML4 oder "
2118             "XHTML1 loose (transitional) DTD eingestellt. "
2119             "
"
2120             "Alternatif können Sie eine Zeichenkette für den Formal Public Identifier (FPI) "
2121             "angeben."
2122             "
"
2123             "Zum Beispiel: "
2124             "
"
2125             "doctype: \"-//ACME//DTD HTML 3.14159//EN\""
2126             "
"
2127             "Wenn Sie den FPI für ein XHTML Dokument angeben, erzeugt Tidy eine "
2128             "leere Zeichenkette für den System Identifyer. In HTML-Dokumenten "
2129             "fügt Tidy einen System Identifier nur dann ein, wenn er schon vorher "
2130             "vorhanden war, im Hinblick auf die Verarbeitungsmodi einiger Browser. "
2131             "Tidy lässt den DOCTYPE generischer XML-Dokumente unangetastet."
2132             "
"
2133             "Die Option bedingt keinerlei Überprüfung der Dokumentkonformität. "
2134             },
2135             {/* Important notes for translators:
2136             - Use only , , , , and
2137            
.
2138             - Entities, tags, attributes, etc., should be enclosed in .
2139             - Option values should be enclosed in .
2140             - It's very important that
be self-closing!
2141             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2142             be translated. */
2143             TidyDropEmptyElems, 0,
2144             "Diese Option legt fest, ob Tidy leere Elemente verwerfen soll. "
2145             },
2146             {/* Important notes for translators:
2147             - Use only , , , , and
2148            
.
2149             - Entities, tags, attributes, etc., should be enclosed in .
2150             - Option values should be enclosed in .
2151             - It's very important that
be self-closing!
2152             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2153             be translated. */
2154             TidyDropEmptyParas, 0,
2155             "Diese Option legt fest, ob Tidy leere Absätze verwerfen soll. "
2156             },
2157             {/* Important notes for translators:
2158             - Use only , , , , and
2159            
.
2160             - Entities, tags, attributes, etc., should be enclosed in .
2161             - Option values should be enclosed in .
2162             - It's very important that
be self-closing!
2163             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2164             be translated. */
2165             TidyDropPropAttrs, 0,
2166             "Mit dieser Option wird bestimmt, ob Tidy proprietäre Attribute "
2167             "entfernen soll, wie Microsoft data binding Attribute. Außerdem "
2168             "werden solche Attribute, die in der ausgegebenen Version des HTML-"
2169             "Codes nicht erlaubt sind, verworfen, wenn gleichzeitig strict-tags-attributes "
2170             "gesetzt wurde. "
2171             },
2172             {/* Important notes for translators:
2173             - Use only , , , , and
2174            
.
2175             - Entities, tags, attributes, etc., should be enclosed in .
2176             - Option values should be enclosed in .
2177             - It's very important that
be self-closing!
2178             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2179             be translated. */
2180             TidyDuplicateAttrs, 0,
2181             "Mit dieser Option wird festgelegt, ob Tidy das erste oder das letzte "
2182             "Vorkommen eines wiederholten Attributs übernehmen soll, z.B. bei "
2183             "aufeinanderfolgenden align Attributen im selben Tag. "
2184             },
2185             {/* Important notes for translators:
2186             - Use only , , , , and
2187            
.
2188             - Entities, tags, attributes, etc., should be enclosed in .
2189             - Option values should be enclosed in .
2190             - It's very important that
be self-closing!
2191             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2192             be translated. */
2193             TidyEmacs, 0,
2194             "Mit dieser Option ändert Tidy das Format von Fehler- und Warnmeldungen "
2195             "so, dass sie leichter von GNU Emacs und einigen anderen Programmen geparst "
2196             "werden. Aus dem standardmäßigen "
2197             "
"
2198             " Zeile <Zeilennummer> Spalte <Spaltennummer> - (Fehler|Warnung): <Meldung> "
2199             "
"
2200             "wird eine Ausgabe, die den Dateinamen der Eingabe enthält: "
2201             "
"
2202             " <Dateiname>:<Zeilennummer>:<Spaltennummer>: (Fehler|Warnung): <Meldung> "
2203             },
2204             {/* Important notes for translators:
2205             - Use only , , , , and
2206            
.
2207             - Entities, tags, attributes, etc., should be enclosed in .
2208             - Option values should be enclosed in .
2209             - It's very important that
be self-closing!
2210             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2211             be translated. */
2212             TidyEmptyTags, 0,
2213             "Diese Option führt neue, leere Inline-Elemente ein. Der Wert muss eine leerzeichen- "
2214             "oder komma-separierte Lste von Tagnamen sein. "
2215             "
"
2216             "Sollten Sie neue Elemente nicht deklarieren, verweigert Tidy das Generieren einer "
2217             "bereinigten Datei, wenn die Eingabe bisher unbekannte Elemente enthält. "
2218             "
"
2219             "Achten Sie darauf, auch leere Elemente als entweder Inline- oder Blockelemente "
2220             "zu deklarieren. "
2221             "
"
2222             "Diese Option wird im XML-Modus ignoriert. "
2223             },
2224             {/* Important notes for translators:
2225             - Use only , , , , and
2226            
.
2227             - Entities, tags, attributes, etc., should be enclosed in .
2228             - Option values should be enclosed in .
2229             - It's very important that
be self-closing!
2230             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2231             be translated. */
2232             TidyEncloseBlockText, 0,
2233             "Diese Option legt fest, ob Tidy ein <p> Element "
2234             "einfügen soll, um Text zu umschließen, den es in solchen Elementen findet, "
2235             "die gemischten Inhalt für HTML transitional, nicht aber für HTML strict "
2236             "erlauben. "
2237             },
2238             {/* Important notes for translators:
2239             - Use only , , , , and
2240            
.
2241             - Entities, tags, attributes, etc., should be enclosed in .
2242             - Option values should be enclosed in .
2243             - It's very important that
be self-closing!
2244             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2245             be translated. */
2246             TidyEncloseBodyText, 0,
2247             "Diese Option legt fest, ob Text, der im body Element "
2248             "gefunden wird, von einem <p> Element umschlossen "
2249             "werden soll. "
2250             "
"
2251             "Das ist sinnvoll, wenn Sie bereits vorhandenen HTML-Code mit einem "
2252             "Style-Sheet verwenden wollen. "
2253             },
2254             {/* Important notes for translators:
2255             - Use only , , , , and
2256            
.
2257             - Entities, tags, attributes, etc., should be enclosed in .
2258             - Option values should be enclosed in .
2259             - It's very important that
be self-closing!
2260             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2261             be translated. */
2262             TidyErrFile, 0,
2263             "Diese Option nennt die Fehlerdatei, in der Tidy Fehler und Warnungen "
2264             "vermerkt. "
2265             "Normalerweise werden Fehler und Warnungen auf stderr "
2266             "ausgegeben. "
2267             },
2268             {/* Important notes for translators:
2269             - Use only , , , , and
2270            
.
2271             - Entities, tags, attributes, etc., should be enclosed in .
2272             - Option values should be enclosed in .
2273             - It's very important that
be self-closing!
2274             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2275             be translated. */
2276             TidyEscapeCdata, 0,
2277             "Mit dieser Option bestimmen Sie, ob Tidy "
2278             "<![CDATA[]]> Abschnitte in normlen Text umwandeln "
2279             "soll. "
2280             },
2281             {/* Important notes for translators:
2282             - Use only , , , , and
2283            
.
2284             - Entities, tags, attributes, etc., should be enclosed in .
2285             - Option values should be enclosed in .
2286             - It's very important that
be self-closing!
2287             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2288             be translated. */
2289             TidyEscapeScripts, 0,
2290             "Diese Option bewirkt, dass Zeichen oder Zeichenketten, die wie "
2291             "schließende Tags aussehen, wie "
2292             "</g mit backslashes maskiert werden, wie in "
2293             "<\\/g. Setzen Sie en Wert no, um dies zu "
2294             "verhindern. "
2295             },
2296             {/* Important notes for translators:
2297             - Use only , , , , and
2298            
.
2299             - Entities, tags, attributes, etc., should be enclosed in .
2300             - Option values should be enclosed in .
2301             - It's very important that
be self-closing!
2302             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2303             be translated. */
2304             TidyFixBackslash, 0,
2305             "Diese Option bestimmt, ob Tidy Backslashes \\ in URLs "
2306             "durch normale Schrägstriche / ersetzen soll. "
2307             },
2308             {/* Important notes for translators:
2309             - Use only , , , , and
2310            
.
2311             - Entities, tags, attributes, etc., should be enclosed in .
2312             - Option values should be enclosed in .
2313             - It's very important that
be self-closing!
2314             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2315             be translated. */
2316             TidyFixComments, 0,
2317             "Diese Option bestimmt, ob Tidy unerwartete Bindestriche durch "
2318             "= Zeichen ersetzen soll, wenn Bindestriche aufeinanderfolgen. "
2319             "
"
2320             "Der Standard ist auto, was für HTML5 Dokumente das gleiche wie "
2321             "no bedeutet, für alle anderen aber yes. "
2322             "
"
2323             "Die SGML Kommentarsyntax wurde für HTML aufgegeben, alle Versionen von HTML "
2324             "erlauben aufeinanderfolgende Bindestriche, auch wenn das nicht für XML "
2325             "und XHTML gilt. Wenn Sie ältere Browser unterstützen wollen, die SGML "
2326             "Syntax verlangen, sollten Sie hier den Wert yes setzen."
2327             },
2328             {/* Important notes for translators:
2329             - Use only , , , , and
2330            
.
2331             - Entities, tags, attributes, etc., should be enclosed in .
2332             - Option values should be enclosed in .
2333             - It's very important that
be self-closing!
2334             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2335             be translated. */
2336             TidyFixUri, 0,
2337             "Diese Option legt fest, ob Tidy Attributwerte mit URIs auf ungültige "
2338             "Zeichen überprüft und sie, wenn solche gefunden werden, maskiert, wie "
2339             "von HTML4 empfohlen. "
2340             },
2341             {/* Important notes for translators:
2342             - Use only , , , , and
2343            
.
2344             - Entities, tags, attributes, etc., should be enclosed in .
2345             - Option values should be enclosed in .
2346             - It's very important that
be self-closing!
2347             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2348             be translated. */
2349             TidyForceOutput, 0,
2350             "Diese Option legt fest, ob Tidy auch dann eine Ausgabe erzeugt, "
2351             "wenn Fehler auftreten. "
2352             "
"
2353             "Verwenden Sie diese Einstellung mit Vorsicht; wenn Tidy einen Fehler "
2354             "meldet, heißt das, dass Tidy nicht (oder nicht sicher) in der Lage "
2355             "ist, den Fehler zu beheben. Die erzeugte Ausgabe kann darum Ihren "
2356             "Erwartungen widersprechen. "
2357             },
2358             {/* Important notes for translators:
2359             - Use only , , , , and
2360            
.
2361             - Entities, tags, attributes, etc., should be enclosed in .
2362             - Option values should be enclosed in .
2363             - It's very important that
be self-closing!
2364             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2365             be translated. */
2366             TidyGDocClean, 0,
2367             "Diese Option bestimmt, ob sich Tidy beim Bereinigen von HTML-Code, "
2368             "der aus Google Docs exportiert wurde, speziell verhalten soll. "
2369             },
2370             {/* Important notes for translators:
2371             - Use only , , , , and
2372            
.
2373             - Entities, tags, attributes, etc., should be enclosed in .
2374             - Option values should be enclosed in .
2375             - It's very important that
be self-closing!
2376             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2377             be translated. */
2378             TidyHideComments, 0,
2379             "Mit dieser Option bestimmen Sie, ob Tidy Kommentare aus der Ausgabe "
2380             "entfernt. "
2381             },
2382             {/* Important notes for translators:
2383             - Use only , , , , and
2384            
.
2385             - Entities, tags, attributes, etc., should be enclosed in .
2386             - Option values should be enclosed in .
2387             - It's very important that
be self-closing!
2388             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2389             be translated. */
2390             TidyHtmlOut, 0,
2391             "Diese Option bestimmt, ob Tidy eine formatierte Ausgabe als HTML "
2392             "schreiben soll. "
2393             },
2394             {/* Important notes for translators:
2395             - Use only , , , , and
2396            
.
2397             - Entities, tags, attributes, etc., should be enclosed in .
2398             - Option values should be enclosed in .
2399             - It's very important that
be self-closing!
2400             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2401             be translated. */
2402             TidyInCharEncoding, 0,
2403             "Diese Option legt die Zeichenkodierung fest, die Tidy für die Eingabe "
2404             "verwendet. "
2405             "Tidy geht bei manchen Eingabekodierungen von ein paar Annahmen aus. "
2406             "
"
2407             "Für ascii akzeptiert Tidy Latin-1 (ISO-8859-1) Zeichenwerte "
2408             "und konvertiert sie nötigenfalls in Entities. "
2409             "
"
2410             "Für raw stellt Tidy keinerlei Vermutungen über die "
2411             "Zeichenwerte an und reicht sie unverändert an die Ausgabe weiter. "
2412             "
"
2413             "Für mac und win1252 werden händlerspezifische "
2414             "Zeichenwerte akzeptiert und nötigenfalls in Entities umgewandelt. "
2415             "
"
2416             "Asiatische Zeichenkodierungen, wie iso2022, werden in "
2417             "geeigneter Weise behandelt, unter der Annahme, dass auch "
2418             "output-encoding entsprechend angegeben ist. "
2419             "
"
2420             "Tidy ist kein Konverter für Zeichenkodierungen. Auch, wenn Latin- und "
2421             "UTF-Kodierungen frei gemischt werden können, ist es nicht möglich, "
2422             "asiatische Kodierungen mit Tidy in Latin umzuwandeln. "
2423             },
2424             {/* Important notes for translators:
2425             - Use only , , , , and
2426            
.
2427             - Entities, tags, attributes, etc., should be enclosed in .
2428             - Option values should be enclosed in .
2429             - It's very important that
be self-closing!
2430             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2431             be translated. */
2432             TidyIndentAttributes, 0,
2433             "Mit dieser Option wird festgelegt, ob Tidy jedes Attribut auf einer "
2434             "neuen Zeile beginnen soll. "
2435             },
2436             {/* Important notes for translators:
2437             - Use only , , , , and
2438            
.
2439             - Entities, tags, attributes, etc., should be enclosed in .
2440             - Option values should be enclosed in .
2441             - It's very important that
be self-closing!
2442             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2443             be translated. */
2444             TidyIndentCdata, 0,
2445             "Diese Option bestimmt, ob Tidy "
2446             "<![CDATA[]]> Abschnitte einrücken soll. "
2447             },
2448             {/* Important notes for translators:
2449             - Use only , , , , and
2450            
.
2451             - Entities, tags, attributes, etc., should be enclosed in .
2452             - Option values should be enclosed in .
2453             - It's very important that
be self-closing!
2454             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2455             be translated. */
2456             /* option-name is “indent” */
2457             TidyIndentContent, 0,
2458             "Diese Option bestimmt, ob Tidy Blockelemente einrücken soll. "
2459             "
"
2460             "Die Einstellung auto bewirkt, dass Tidy selbst bestimmt, ob "
2461             "der Inhalt von Tags wie <title>, "
2462             "<h1>-<h6>, <li>, "
2463             "<td>, oder <p> eingerückt wird, "
2464             "abhängig vom Abschnitt der Inhaltsdaten, der solch ein Blockelement enthält. "
2465             "
"
2466             "Die Einstellung yes für indent kann Layoutfehler "
2467             "mancher Browser offenlegen. "
2468             "
"
2469             "Verwenden Sie die Option indent-spaces zur Kontrolle der "
2470             "Zahl auszugebender Leerzeichen oder Tabulatoren, je nach Einrückungsebene "
2471             "und indent-with-tabs um festzulegen, ob entweder Tabulatoren "
2472             "oder Leerzeichen verwendet werden."
2473             },
2474             {/* Important notes for translators:
2475             - Use only , , , , and
2476            
.
2477             - Entities, tags, attributes, etc., should be enclosed in .
2478             - Option values should be enclosed in .
2479             - It's very important that
be self-closing!
2480             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2481             be translated. */
2482             TidyIndentSpaces, 0,
2483             "Diese Option bestimmt die Anzahl von Leerzeichen oder Tabulatoren, "
2484             "mit denen Tidy Einrückungen vornimmt, wenn indent "
2485             "aktiviert ist. "
2486             "
"
2487             "Beachten Sie, dass der Standardwert für diese Option vom aktuellen Wert "
2488             "der Option indent-with-tabs abhängt (siehe dort). "
2489             },
2490             {/* Important notes for translators:
2491             - Use only , , , , and
2492            
.
2493             - Entities, tags, attributes, etc., should be enclosed in .
2494             - Option values should be enclosed in .
2495             - It's very important that
be self-closing!
2496             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2497             be translated. */
2498             /* option name is “new-inline-tags” */
2499             TidyInlineTags, 0,
2500             "Diese Option definiert neue nicht-leere Inline Elemente. Der Wert muss "
2501             "eine leerzeichen- oder kommaseparierte Liste von Tagnamen sein."
2502             "
"
2503             "Solange Sie neue Tags nicht deklarieren, verweigert Tidy die Erzeugung "
2504             "bereinigter Dateien, wenn die Eingabe bisher unbekannte Tags enthält. "
2505             "
"
2506             "Diese Option wird im XML-Modus ignoriert. "
2507             },
2508             {/* Important notes for translators:
2509             - Use only , , , , and
2510            
.
2511             - Entities, tags, attributes, etc., should be enclosed in .
2512             - Option values should be enclosed in .
2513             - It's very important that
be self-closing!
2514             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2515             be translated. */
2516             TidyJoinClasses, 0,
2517             "Diese Option bestimmt, ob Tidy mehrere CSS-Klassen zu einer einzigen "
2518             "neuen Klasse kombiniert, wo ein Element mit mehrere Klassennamen "
2519             "versehen wurde. "
2520             },
2521             {/* Important notes for translators:
2522             - Use only , , , , and
2523            
.
2524             - Entities, tags, attributes, etc., should be enclosed in .
2525             - Option values should be enclosed in .
2526             - It's very important that
be self-closing!
2527             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2528             be translated. */
2529             TidyJoinStyles, 0,
2530             "Diese Option bestimmt, ob Tidy mehrere style-Attribute zu einem einzigen "
2531             "kombiniert, wo ein Element mit mehreren style-Attributen versehen wurde. "
2532             },
2533             {/* Important notes for translators:
2534             - Use only , , , , and
2535            
.
2536             - Entities, tags, attributes, etc., should be enclosed in .
2537             - Option values should be enclosed in .
2538             - It's very important that
be self-closing!
2539             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2540             be translated. */
2541             /* option-name: keep-time */
2542             TidyKeepFileTimes, 0,
2543             "Diese option bestimmt, ob Tidy das Änderungsdatum der originalen Eingabedatei "
2544             "erhalten soll, wenn solche Dateien von Tidy mit der bereinigten Fassung "
2545             "überschrieben werden. "
2546             "
"
2547             "Das Setzen dieser Option mit dem Wert yes erlaubt es Ihnen, "
2548             "Dateien mit Tidy zu bereinigen, ohne das Änderungsdatum zu aktualisieren. "
2549             "Das kann nützlich sein, wenn andere Werkzeuge dieses Datum verwenden, zum "
2550             "Beispiel zum automatisierten Hochladen auf den Server. "
2551             "
"
2552             "Beachten Sie, dass diese Funktion nicht auf allen Systemen zur Verfügung steht. "
2553             },
2554             {/* Important notes for translators:
2555             - Use only , , , , and
2556            
.
2557             - Entities, tags, attributes, etc., should be enclosed in .
2558             - Option values should be enclosed in .
2559             - It's very important that
be self-closing!
2560             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2561             be translated. */
2562             TidyKeepTabs, 0,
2563             "Der Standardwert dieser Option ist no. Damit ersetzt Tidy alle "
2564             "Tabulatoren durch Leerzeichen, entsprechend der Option tab-size und "
2565             "dem aktuellen Zeileneinzug. "
2566             "Dieser Zwischenraum wird später natürlich auf nur ein Leerzeichen reduziert, mit "
2567             "Ausnahme der Abstände, die in den nachfolgend gelisteten Blöcken und Elementen auftreten. "
2568             "
"
2569             "Wenn der Wert auf yes eingestellt ist, lässt Tidy einige Tabulatoren "
2570             "unangetastet, aber nur in präformatierten Blöcken, wie "
2571             "<pre> und weiteren CDATA elementen, wie "
2572             "<script>, <style>, sowie Pseudo-Elementen "
2573             "wie <?php ... ?>. "
2574             "Wie immer werden alle anderen Tabulatoren und Tabulatorfolgen im Quelldokument durch "
2575             "Leerzeichen ersetzt."
2576             },
2577             {/* Important notes for translators:
2578             - Use only , , , , and
2579            
.
2580             - Entities, tags, attributes, etc., should be enclosed in .
2581             - Option values should be enclosed in .
2582             - It's very important that
be self-closing!
2583             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2584             be translated. */
2585             /* option-name: literal-attributes*/
2586             TidyLiteralAttribs, 0,
2587             "Diese Option bestimmt, wie Tidy mit Leerzeichen innerhalb von Attributwerten "
2588             "umgeht. "
2589             "
"
2590             "Wenn der Wert no ist, normalisiert Tidy Attributwerte indem es "
2591             "alle Zeilenumbrüche oder Tabulatoren durch ein einziges Leerzeichen ersetzt, "
2592             "und außerdem aufeinanderfolgende Leerzeichen auf ein einziges reduziert. "
2593             "
"
2594             "Um Tidy dazu zu bringen, die ursprünglichen Werte aller Attributwerte buchstabentreu "
2595             "zu erhalten und damit alle Leerzeichen innerhalb der Attributwerte unangetastet "
2596             "bleiben, setzen Sie diese Option auf yes. "
2597             },
2598             {/* Important notes for translators:
2599             - Use only , , , , and
2600            
.
2601             - Entities, tags, attributes, etc., should be enclosed in .
2602             - Option values should be enclosed in .
2603             - It's very important that
be self-closing!
2604             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2605             be translated. */
2606             TidyLogicalEmphasis, 0,
2607             "Diese Option bestimmt, ob Tidy jedes "
2608             "<i> durch <em> und jedes "
2609             "<b> durch <strong> ersetzen soll. "
2610             "Attribute dieser Tags bleiben unverändert erhalten. "
2611             "
"
2612             "Diese Option kann unabhängig von clean aktiviert werden. "
2613             },
2614             {/* Important notes for translators:
2615             - Use only , , , , and
2616            
.
2617             - Entities, tags, attributes, etc., should be enclosed in .
2618             - Option values should be enclosed in .
2619             - It's very important that
be self-closing!
2620             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2621             be translated. */
2622             TidyLowerLiterals, 0,
2623             "Diese Option legt fest, ob Tidy solche Attributwerte, die aus einer Liste "
2624             "vordefinierter Werte bestehen, in Kleinbuchstaben konvertieren soll. "
2625             "
"
2626             "Für XHTML-Dokumente ist das notwendig. "
2627             },
2628             {/* Important notes for translators:
2629             - Use only , , , , and
2630            
.
2631             - Entities, tags, attributes, etc., should be enclosed in .
2632             - Option values should be enclosed in .
2633             - It's very important that
be self-closing!
2634             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2635             be translated. */
2636             /* option-name: bare */
2637             TidyMakeBare, 0,
2638             "Diese Option legt fest, ob Tidy typografische Anführungsstriche und "
2639             "Geviertstriche duch ASCII-Zeichen ersetzen soll und eher normale Leerzeichen anstelle "
2640             "geschützter Leerzeichen ausgeben soll, wenn sie in der Eingabe "
2641             "gefunden werden. "
2642             },
2643             {/* Important notes for translators:
2644             - Use only , , , , and
2645            
.
2646             - Entities, tags, attributes, etc., should be enclosed in .
2647             - Option values should be enclosed in .
2648             - It's very important that
be self-closing!
2649             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2650             be translated. */
2651             /* option-name: clean */
2652             TidyMakeClean, 0,
2653             "Diese Option legt fest, wie Tidy mit einigen veralteten präsentationsbezogenen "
2654             "Tags umgehen soll (zur Zeit betrifft das <i>, "
2655             "<b>, <center> wenn es von "
2656             "geeigneten inline-Tags umschlossen ist und <font>). "
2657             "Wenn hier yes eingestellt ist, werden die betroffenen Tags "
2658             "durch CSS Formatierung und geeignete Textauszeichnung ersetzt. "
2659             },
2660             {/* Important notes for translators:
2661             - Use only , , , , and
2662            
.
2663             - Entities, tags, attributes, etc., should be enclosed in .
2664             - Option values should be enclosed in .
2665             - It's very important that
be self-closing!
2666             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2667             be translated. */
2668             /* option-name (in deed): tidy-mark */
2669             TidyMark, 0,
2670             "Diese Option legt fest, ob Tidy ein meta Element im "
2671             "Dokumentenkopf unterbringen soll, mit dem darauf hingewiesen wird, dass "
2672             "die Datei mit Tidy bereinigt worden ist. "
2673             "
"
2674             "Tidy erzeugt kein neues meta-Element, wenn bereits eines vorhanden ist. "
2675             },
2676             {/* Important notes for translators:
2677             - Use only , , , , and
2678            
.
2679             - Entities, tags, attributes, etc., should be enclosed in .
2680             - Option values should be enclosed in .
2681             - It's very important that
be self-closing!
2682             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2683             be translated. */
2684             TidyMergeDivs, 0,
2685             "Diese Option kann das Verhalten von clean beeinflussen, wenn "
2686             "ihr Wert auf yes gesetzt ist. "
2687             "
"
2688             "Tidy wird dann verschachtelte <div> zu einem einzigen verschmelzen, "
2689             "wie <div><div>...</div></div>. "
2690             "
"
2691             "Wenn der Wert statt dessen auto ist, werden die Attribute des innersten "
2692             "<div> ins äußerste verschoben. Verschachtelte "
2693             "<div> mit id-Attributen werden nicht "
2694             "verschmolzen. "
2695             "
"
2696             "Mit yes werden die Attribute des innersten "
2697             "<div> verworfen, mit Ausnahme von "
2698             "class und style. "
2699             },
2700             {/* Important notes for translators:
2701             - Use only , , , , and
2702            
.
2703             - Entities, tags, attributes, etc., should be enclosed in .
2704             - Option values should be enclosed in .
2705             - It's very important that
be self-closing!
2706             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2707             be translated. */
2708             TidyMergeEmphasis, 0,
2709             "Diese Option legt fest, ob Tidy verschachtelte <b> "
2710             "und <i>-Elemente verschmelzen soll; zum Beispiel würde im Falle von "
2711             "
"
2712             "<b class=\"rtop-2\">foo <b class=\"r2-2\">bar</b> baz</b>, "
2713             "
"
2714             "Tidy diese Ausgabe erzeugen: <b class=\"rtop-2\">foo bar baz</b>. "
2715             },
2716             {/* Important notes for translators:
2717             - Use only , , , , and
2718            
.
2719             - Entities, tags, attributes, etc., should be enclosed in .
2720             - Option values should be enclosed in .
2721             - It's very important that
be self-closing!
2722             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2723             be translated. */
2724             TidyMergeSpans, 0,
2725             "Diese Option kann das Verhalten von clean beeinflussen, wenn "
2726             "ihr Wert yes ist."
2727             "
"
2728             "Dann wird Tidy verschachtelte <span>, "
2729             "wie in <span><span>...</span></span> zu "
2730             "einem einzigen verschmelzen."
2731             "
"
2732             "Der Algorithmus ist identisch mit dem der Option merge-divs (siehe dort). "
2733             },
2734             {/* Important notes for translators:
2735             - Use only , , , , and
2736            
.
2737             - Entities, tags, attributes, etc., should be enclosed in .
2738             - Option values should be enclosed in .
2739             - It's very important that
be self-closing!
2740             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2741             be translated. */
2742             TidyNCR, 0,
2743             "Diese Option bestimmt, ob Tidy numerische Zeichenreferenzen akzeptieren soll. "
2744             },
2745             {/* Important notes for translators:
2746             - Use only , , , , and
2747            
.
2748             - Entities, tags, attributes, etc., should be enclosed in .
2749             - Option values should be enclosed in .
2750             - It's very important that
be self-closing!
2751             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2752             be translated. */
2753             /* option-name: newline */
2754             TidyNewline, 0,
2755             "Die Standardeinstellung ist für das aktuelle System geeignet. "
2756             "
"
2757             "Im Allgemeinen gelten CRLF auf PC-DOS, Windows und OS/2; '\r' "
2758             "auf klassischem Mac OS; und '\n' überall sonst (Linux, macOS, "
2759             "und Unix). "
2760             },
2761             {/* Important notes for translators:
2762             - Use only , , , , and
2763            
.
2764             - Entities, tags, attributes, etc., should be enclosed in .
2765             - Option values should be enclosed in .
2766             - It's very important that
be self-closing!
2767             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2768             be translated. */
2769             /* option-name: numeric-entities */
2770             TidyNumEntities, 0,
2771             "Dies Option bestimmt, ob Tidy andere als die HTML-eigenen Entitäten "
2772             "(&amp;, &lt;, "
2773             "&gt;, and &quot;) in numerischer "
2774             "anstelle der benannten Form ausgeben soll. "
2775             "
"
2776             "Es werden nur solche Entitäten verwendet, die mit der generierten DOCTYPE Deklaration kompatibel sind. "
2777             "
"
2778             "Entitäten, die in der Zeichenkodierung der Ausgabe repräsentiert werden können, "
2779             "werden entsprechend umgewandelt. "
2780             },
2781             {/* Important notes for translators:
2782             - Use only , , , , and
2783            
.
2784             - Entities, tags, attributes, etc., should be enclosed in .
2785             - Option values should be enclosed in .
2786             - It's very important that
be self-closing!
2787             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2788             be translated. */
2789             TidyOmitOptionalTags, 0,
2790             "Mit dieser Option können optionale Start- und End-Tags von der Ausgabe "
2791             "ausgenommen werden. "
2792             "
"
2793             "Ist diese Option aktiviert, werden alle Tags der Elemente <html>, "
2794             "<head>, und <body> für die Ausgabe verworfen, "
2795             "wie auch die End-Tags </p>, "
2796             "</li>, </dt>, "
2797             "</dd>, </option>, "
2798             "</tr>, </td>, und "
2799             "</th>. "
2800             "
"
2801             "Diese Option wird für XML-Ausgaben ignoriert. "
2802             },
2803             {/* Important notes for translators:
2804             - Use only , , , , and
2805            
.
2806             - Entities, tags, attributes, etc., should be enclosed in .
2807             - Option values should be enclosed in .
2808             - It's very important that
be self-closing!
2809             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2810             be translated. */
2811             /* option-name: output-encoding */
2812             TidyOutCharEncoding, 0,
2813             "Diese Option setzt die Zeichenkodierung für die Tidy-Ausgabe. "
2814             "Einige Kodierungen beeinflussen wie manche Symbole in Entities "
2815             "umgewandelt werden, wenn auch die Ausgabe einiger Entities "
2816             "immer von weiteren Konfigurationseinstellungen abhängt. "
2817             "
"
2818             "Mit den Kodierungen ascii, mac, und win1252 "
2819             "werden alle Zeichen mit Werten über 127 als Entities ausgegeben. "
2820             "
"
2821             "Wird raw eingestellt, übernimmt Tidy Werte über 127 ohne sie "
2822             "in Entities umzuwandeln. "
2823             "
"
2824             "latin1 veranlasst Tidy, Zeichen über 255 als Entities zu schreiben. "
2825             "
"
2826             "UTF wie utf8 bedingt die Ausgabe in der entsprechenden "
2827             "UTF-Kodierung"
2828             "
"
2829             "Asiatische Ausgabekodierungen, wie iso2022 erzeugen "
2830             "die adäquate Ausgabe unter der Annahme, dass auch "
2831             "input-encoding entsprechend gesetzt ist. "
2832             "
"
2833             "Tidy ist kein Konverter für Zeichenkodierungen. Wenn Latin und UTF-"
2834             "Kodierungen auch frei gemischt werden können, ist es doch nicht "
2835             "möglich, asiatische Kodierungen mit Tidy in Latin umzuwandeln. "
2836             },
2837             {/* Important notes for translators:
2838             - Use only , , , , and
2839            
.
2840             - Entities, tags, attributes, etc., should be enclosed in .
2841             - Option values should be enclosed in .
2842             - It's very important that
be self-closing!
2843             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2844             be translated. */
2845             /* option-name: output-file */
2846             TidyOutFile, 0,
2847             "Diese Option bestimmt welche Ausgabedatei von Tidy geschrieben wird. "
2848             "Normalerweise schreibt Tidy die Ausgabe auf die Standard-Ausgabe stdout."
2849             },
2850             {/* Important notes for translators:
2851             - Use only , , , , and
2852            
.
2853             - Entities, tags, attributes, etc., should be enclosed in .
2854             - Option values should be enclosed in .
2855             - It's very important that
be self-closing!
2856             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2857             be translated. */
2858             TidyOutputBOM, 0,
2859             "Diese Option bestimmt, ob Tidy eine Byte-Reihenfolge-Markierung (BOM) an den Anfang der Ausgabe schreiben soll. "
2860             "Dies betrifft nur UTF-8 und UTF-16 Ausgabekodierungen, wo das BOM-Zeichen entweder den Wert U+EFBBBF (UTF-8) oder "
2861             "U+FEFF (UTF-16) hat. "
2862             "
"
2863             "Wenn die Option den Wert auto hat, wird Tidy die BOM nur dann in die Ausgabe schreiben, "
2864             "wenn sie bereits zu Beginn der Eingabedaten vorhanden war. "
2865             "
"
2866             "XML/XMLHTML-Ausgaben in UTF-16 Kodierung erhalten immer eine BOM. "
2867             },
2868             {/* Important notes for translators:
2869             - Use only , , , , and
2870            
.
2871             - Entities, tags, attributes, etc., should be enclosed in .
2872             - Option values should be enclosed in .
2873             - It's very important that
be self-closing!
2874             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2875             be translated. */
2876             /* option-name: indent-with-tabs */
2877             TidyPPrintTabs, 0,
2878             "Diese Option bestimmt, ob Tidy Einrückungen mit Tabulatoren anstelle von "
2879             "Leerzeichen vornimmt, unter der Annahme, dass auch indent den "
2880             "Wert yes hat. "
2881             "
"
2882             "Setzen Sie den Wert yes, um mit Tabulatoren einzurücken, "
2883             "anstelle der standardmäßigen Leerzeichen. "
2884             "
"
2885             "Stellen Sie die Anzal der ausgegebenen Tabulatoren nach Einrückungstiefe "
2886             "mit der Option indent-spaces ein. "
2887             "Beachten Sie, dass das Setzen der Option indent-with-tabs "
2888             "zur Folge hat, dass der Standardwert für indent-spaces auf "
2889             "1 zurückgesetzt wird. "
2890             "
"
2891             "Beachten Sie auch, dass die Option tab-size steuert, wie "
2892             "Tabulatoren der Eingabe in Leerzeichen umgewandelt werden. "
2893             "Setzen Sie hier 0 ein, um die Tabulatoren der Eingabe beizubehalten. "
2894             },
2895             {/* Important notes for translators:
2896             - Use only , , , , and
2897            
.
2898             - Entities, tags, attributes, etc., should be enclosed in .
2899             - Option values should be enclosed in .
2900             - It's very important that
be self-closing!
2901             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2902             be translated. */
2903             TidyPreserveEntities, 0,
2904             "Diese Option bestimmt, ob Tidy wohlgeformte Entities, wie in der Eingabe vorgefunden, "
2905             "beibehält. "
2906             },
2907             {/* Important notes for translators:
2908             - Use only , , , , and
2909            
.
2910             - Entities, tags, attributes, etc., should be enclosed in .
2911             - Option values should be enclosed in .
2912             - It's very important that
be self-closing!
2913             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2914             be translated. */
2915             /* option-name: new-pre-tags*/
2916             TidyPreTags, 0,
2917             "Mit dieser Option werden neue Tags eingeführt, die in der exakt gleichen "
2918             "Weise verarbeitet werden, wie das <pre> Element von HTML. "
2919             "Der Wert der Option muss eine leerzeichen- oder kommaseparierte Liste von "
2920             "Tag-Namen sein. "
2921             "
"
2922             "Solange Sie neue Tags nicht deklarieren, verweigert Tidy das Generieren "
2923             "einer bereinigten Datei, wenn die Eingabe bisher unbekannte Tags enthält."
2924             "
"
2925             "Beachten Sie, dass Sie bis auf weiteres noch keine neuen CDATA-Elemente einführen können. "
2926             "
"
2927             "Diese Option wird im XML-Modus ignoriert."
2928             },
2929             {/* Important notes for translators:
2930             - Use only , , , , and
2931            
.
2932             - Entities, tags, attributes, etc., should be enclosed in .
2933             - Option values should be enclosed in .
2934             - It's very important that
be self-closing!
2935             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2936             be translated. */
2937             TidyPriorityAttributes, 0,
2938             "Mit dieser Option können Sie bestimmen, dass Attribute Vorrang vor anderen "
2939             "haben und, im Ausgabedokument, den anderen Attributen eines Elements "
2940             "vorangestellt werden. Zum Beispiel können Sie festlegen, dass id "
2941             "und name vor allen anderen Attributen genannt werden. "
2942             "
"
2943             "Die Option erwartet als Wert eine Liste von leerzeichen- oder kommaseparierten "
2944             "Attributnamen. "
2945             },
2946             {/* Important notes for translators:
2947             - Use only , , , , and
2948            
.
2949             - Entities, tags, attributes, etc., should be enclosed in .
2950             - Option values should be enclosed in .
2951             - It's very important that
be self-closing!
2952             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2953             be translated. */
2954             /* option-name: punctuation-wrap */
2955             TidyPunctWrap, 0,
2956             "Diese Option bestimmt, ob Tidy nach einigen Unicode- oder chinesischen "
2957             "Satzzeichen einen Zeilenumbruch vornimmt. "
2958             },
2959             {/* Important notes for translators:
2960             - Use only , , , , and
2961            
.
2962             - Entities, tags, attributes, etc., should be enclosed in .
2963             - Option values should be enclosed in .
2964             - It's very important that
be self-closing!
2965             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2966             be translated. */
2967             TidyQuiet, 0,
2968             "Wenn diese Option aktiv is, beschränkt Tidy andere Ausgaben als die des bereinigten Dokuments "
2969             "auf Fehler- und Warnmeldungen. "
2970             },
2971             {/* Important notes for translators:
2972             - Use only , , , , and
2973            
.
2974             - Entities, tags, attributes, etc., should be enclosed in .
2975             - Option values should be enclosed in .
2976             - It's very important that
be self-closing!
2977             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2978             be translated. */
2979             TidyQuoteAmpersand, 0,
2980             "Diese Option bestimmt, ob Tidy alleinstehende & "
2981             "als &amp; ausgeben soll. "
2982             },
2983             {/* Important notes for translators:
2984             - Use only , , , , and
2985            
.
2986             - Entities, tags, attributes, etc., should be enclosed in .
2987             - Option values should be enclosed in .
2988             - It's very important that
be self-closing!
2989             - The strings "Tidy" and "HTML Tidy" are the program name and must not
2990             be translated. */
2991             TidyQuoteMarks, 0,
2992             "Diese Option bestimmt, ob Tidy " Zeichen als "
2993             "&quot; ausgeben soll, wie es manche Redaktionssysteme "
2994             "bevorzugen. "
2995             "
"
2996             "Das Auslassungszeichen ' wird als &#39; "
2997             "ausgegeben, weil viele Web-Browser &apo; noch nicht "
2998             "unterstützen. "
2999             },
3000             {/* Important notes for translators:
3001             - Use only , , , , and
3002            
.
3003             - Entities, tags, attributes, etc., should be enclosed in .
3004             - Option values should be enclosed in .
3005             - It's very important that
be self-closing!
3006             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3007             be translated. */
3008             TidyQuoteNbsp, 0,
3009             "Diese Option bestimmt, ob Tidy geschützte Leerzeichen als Entities "
3010             "und nicht als Unicode-Zeichen 160 (dezimal) ausgeben soll. "
3011             },
3012             {/* Important notes for translators:
3013             - Use only , , , , and
3014            
.
3015             - Entities, tags, attributes, etc., should be enclosed in .
3016             - Option values should be enclosed in .
3017             - It's very important that
be self-closing!
3018             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3019             be translated. */
3020             TidyReplaceColor, 0,
3021             "Mit dieser Option können Sie Tidy auffordern, numerische Werte in "
3022             "Farb-Attributen durch HTML/XHTML Farbnamen zu ersetzen, so weit "
3023             "sie definiert sind. Zum Beispiel würde #ffffff zu "
3024             "white. "
3025             },
3026             {/* Important notes for translators:
3027             - Use only , , , , and
3028            
.
3029             - Entities, tags, attributes, etc., should be enclosed in .
3030             - Option values should be enclosed in .
3031             - It's very important that
be self-closing!
3032             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3033             be translated. */
3034             TidyShowErrors, 0,
3035             "Mit dem Wert dieser Option wird gesteuert, ob Tidy weitere Fehler "
3036             "meldet. Wenn der Wert 0 ist, werden gar keine Fehler "
3037             "gemeldet. "
3038             },
3039             {/* Important notes for translators:
3040             - Use only , , , , and
3041            
.
3042             - Entities, tags, attributes, etc., should be enclosed in .
3043             - Option values should be enclosed in .
3044             - It's very important that
be self-closing!
3045             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3046             be translated. */
3047             TidyShowFilename, 0,
3048             "Diese Option legt fest, ob Tidy den Dateinamen in Meldungen anzeigt. z.B.: "
3049             "
"
3050             " tidy -q -e --show-filename yes index.html
"
3051             " index.html: line 43 column 3 - Warning: replacing invalid UTF-8 bytes (char. code U+00A9) "
3052             },
3053              
3054             {/* Important notes for translators:
3055             - Use only , , , , and
3056            
.
3057             - Entities, tags, attributes, etc., should be enclosed in .
3058             - Option values should be enclosed in .
3059             - It's very important that
be self-closing!
3060             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3061             be translated. */
3062             TidyShowInfo, 0,
3063             "Mit dieser Option wird festgelegt, ob Tidy Protokollmeldungen auf dem "
3064             "Niveau INFO anzeigen soll."
3065             },
3066             {/* Important notes for translators:
3067             - Use only , , , , and
3068            
.
3069             - Entities, tags, attributes, etc., should be enclosed in .
3070             - Option values should be enclosed in .
3071             - It's very important that
be self-closing!
3072             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3073             be translated. */
3074             /* option-name: markup*/
3075             TidyShowMarkup, 0,
3076             "Mit dieser Option kann Tidy aufgefordert werden, eine formatierte Version "
3077             "der bereinigten Seite zu generieren. Beachten Sie, dass Tidy keine solche "
3078             "Formatierung vornimmt, wenn schwerwiegende Fehler gefunden werden "
3079             "(siehe auch: force-output). "
3080             },
3081             {/* Important notes for translators:
3082             - Use only , , , , and
3083            
.
3084             - Entities, tags, attributes, etc., should be enclosed in .
3085             - Option values should be enclosed in .
3086             - It's very important that
be self-closing!
3087             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3088             be translated. */
3089             TidyShowWarnings, 0,
3090             "Diese Option legt fest, ob Tidy Warnungen ausgeben soll oder nicht. "
3091             "Es kann nützlich sein, Warnungen zu deaktivieren, wenn wenige Fehler "
3092             "in einer Masse von Warnmeldungen untergehen. "
3093             },
3094             {/* Important notes for translators:
3095             - Use only , , , , and
3096            
.
3097             - Entities, tags, attributes, etc., should be enclosed in .
3098             - Option values should be enclosed in .
3099             - It's very important that
be self-closing!
3100             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3101             be translated. */
3102             TidySkipNested, 0,
3103             "Diese Option bestimmt, ob Tidy verschachtelte Elemente ausnehmen soll, "
3104             "wenn Script- und Style-Daten analysiert werden. "
3105             },
3106             {/* Important notes for translators:
3107             - Use only , , , , and
3108            
.
3109             - Entities, tags, attributes, etc., should be enclosed in .
3110             - Option values should be enclosed in .
3111             - It's very important that
be self-closing!
3112             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3113             be translated. */
3114             TidySortAttributes, 0,
3115             "Diese Option legt fest, dass Tidy Attribute innerhalb eines Elements "
3116             "anhand eines bestimmten Algorithmus sortieren soll. Wenn hier alpha "
3117             "gewählt wird, wird in aufsteigender, alphabetischer Reihenfolge sortiert. "
3118             "
"
3119             "Wenn dagegen gleichzeitig priority-attributes verwendet wird, "
3120             "werden zunächst die priorisierten Attribute ausgegeben, bevor die restlichen sortiert werden. "
3121             },
3122             {/* Important notes for translators:
3123             - Use only , , , , and
3124            
.
3125             - Entities, tags, attributes, etc., should be enclosed in .
3126             - Option values should be enclosed in .
3127             - It's very important that
be self-closing!
3128             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3129             be translated. */
3130             /* option-name: mute */
3131             TidyMuteReports, 0,
3132             "Verwenden Sie diese Option, um zu verhindern, dass Tidy bestimmte "
3133             "Meldungen ausgibt, beispielsweise für Situationen, die sie ignorieren möchten. "
3134             "
"
3135             "Der Wert der Option ist eine Liste von Meldungs-Schlüsseln. Ermitteln Sie "
3136             "die Meldungs-Schlüssel, indem Sie die Programmausgaben beobachten, während die "
3137             "Option mute-id aktiv ist. "
3138             },
3139             {/* Important notes for translators:
3140             - Use only , , , , and
3141            
.
3142             - Entities, tags, attributes, etc., should be enclosed in .
3143             - Option values should be enclosed in .
3144             - It's very important that
be self-closing!
3145             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3146             be translated. */
3147             /* option-name: mute-id */
3148             TidyMuteShow, 0,
3149             "Diese Option bestimmt, ob Tidy mit jedem seiner Fehler-Protokolle Meldungs-Schlüssel "
3150             "ausgeben soll. Das kann nützlich sein, wenn Sie mit Hilfe der Option mute "
3151             "einige Meldungen ausfiltern möchten. "
3152             },
3153             {/* Important notes for translators:
3154             - Use only , , , , and
3155            
.
3156             - Entities, tags, attributes, etc., should be enclosed in .
3157             - Option values should be enclosed in .
3158             - It's very important that
be self-closing!
3159             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3160             be translated. */
3161             /* option-name strict-tags-attributes */
3162             TidyStrictTagsAttr, 0,
3163             "Diese Option stellt sicher, dass Tags und Attribute für die HTML-Version, "
3164             "die Tidy ausgibt, geeignet sind. Wenn hier yes eingestellt ist "
3165             "und für das Ausgabedokument ein Doctype strict gilt, meldet Tidy Fehler. "
3166             "Ist der Dokumenttyp dagegen ein loose- oder transitional Doctype, werden "
3167             "Warnungen ausgegeben. "
3168             "
"
3169             "Wenn zusätzlich noch drop-proprietary-attributes aktiv ist, "
3170             "werden ungeeignete Attribute auch entfernt. "
3171             "
"
3172             "Ist der Wert der Option no, werden diese Prüfungen nicht durchgeführt. "
3173             },
3174             {/* Important notes for translators:
3175             - Use only , , , , and
3176            
.
3177             - Entities, tags, attributes, etc., should be enclosed in .
3178             - Option values should be enclosed in .
3179             - It's very important that
be self-closing!
3180             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3181             be translated. */
3182             TidyTabSize, 0,
3183             "Diese Option legt die Anzahl der Spalten fest, die Tidy zwischen aufeinanderfolgenden "
3184             "Tabulatorzeichen vorsieht. Damit werden beim Lesen der Eingabe Tabulatoren in Leerzeichen umgewandelt. "
3185             },
3186             {/* Important notes for translators:
3187             - Use only , , , , and
3188            
.
3189             - Entities, tags, attributes, etc., should be enclosed in .
3190             - Option values should be enclosed in .
3191             - It's very important that
be self-closing!
3192             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3193             be translated. */
3194             /* option-name: uppercase-attributes */
3195             TidyUpperCaseAttrs, 0,
3196             "Diese Option legt fest, ob Tidy Attributnamen groß oder klein schreiben "
3197             "soll. "
3198             "
"
3199             "Wenn der Wert no ist, werden Attributnamen klein geschrieben, "
3200             "mit ja dagegen groß; der Wert preserve bewirkt, dass "
3201             "an der aktuellen Schreibweise keine Änderung vorgenommen wird. "
3202             "
"
3203             "Bei XML-Ausgabe wird stets die ursprüngliche Schreibung bewahrt. "
3204             },
3205             {/* Important notes for translators:
3206             - Use only , , , , and
3207            
.
3208             - Entities, tags, attributes, etc., should be enclosed in .
3209             - Option values should be enclosed in .
3210             - It's very important that
be self-closing!
3211             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3212             be translated. */
3213             TidyUpperCaseTags, 0,
3214             "Diese Option legt fest, ob Tidy Tagnamen groß oder klein schreibt. "
3215             "
"
3216             "Der Standardwert ist no und setzt kleingeschriebene Tagnamen durch, "
3217             "außer für die XML-Ausgabe, wo die originale Schreibweise beibehalten wird. "
3218             },
3219             {/* Important notes for translators:
3220             - Use only , , , , and
3221            
.
3222             - Entities, tags, attributes, etc., should be enclosed in .
3223             - Option values should be enclosed in .
3224             - It's very important that
be self-closing!
3225             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3226             be translated. */
3227             /* option-name: custom-tags */
3228             TidyUseCustomTags, 0,
3229             "Diese Option aktiviert die Verwendung von Tags für autonome, benutzerdefinierte "
3230             "Elemente, z.B. <flag-icon> mit Tidy. Solche benutzerdefinierten "
3231             "Tags werden eliminiert, wenn der Wert der Option no lautet. "
3232             "Andere Einstellungen - "
3233             "blocklevel, empty, inline, und pre "
3234             "bewirken die entsprechende, einheitliche Behandlung aller benutzerdefinierten "
3235             "Tags. "
3236             "
"
3237             "Die Optionen "
3238             "new-blocklevel-tags, new-empty-tags, new-inline-tags "
3239             "oder new-pre-tags haben Vorrang vor dieser Option. Das kann nützlich sein, "
3240             "wenn Sie verschiedene Arten von benutzerdefinierten Tags einsetzen. "
3241             "
"
3242             "Bei Aktivierung dieser Option werden die betroffenen, öffnenden Tags in Ihrem Dokument "
3243             "während der Vorverarbeitungsphase erkannt, korrespondierende, schließende Tags entsprechend; "
3244             "unbekannte, schließende Tags werden beseitigt. "
3245             },
3246             {/* Important notes for translators:
3247             - Use only , , , , and
3248            
.
3249             - Entities, tags, attributes, etc., should be enclosed in .
3250             - Option values should be enclosed in .
3251             - It's very important that
be self-closing!
3252             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3253             be translated. */
3254             /* option-name: vertical-space */
3255             TidyVertSpace, 0,
3256             "Diese Option legt fest, ob Tidy einige zusätzliche Leerzeilen "
3257             "zur besseren Lesbarkeit einfügen soll. "
3258             "
"
3259             "Der Standardwert ist no. "
3260             "
"
3261             "Bei Verwendung von auto, eliminiert Tidy nahezu alle Zeilenumbrüche. "
3262             },
3263             {/* Important notes for translators:
3264             - Use only , , , , and
3265            
.
3266             - Entities, tags, attributes, etc., should be enclosed in .
3267             - Option values should be enclosed in .
3268             - It's very important that
be self-closing!
3269             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3270             be translated. */
3271             /* option-name: warn-proprietary-attributes */
3272             TidyWarnPropAttrs, 0,
3273             "Diese Option bestimmt, ob Tidy bei benutzerdefinierten Attributen Warnungen ausgibt. "
3274             },
3275             {/* Important notes for translators:
3276             - Use only , , , , and
3277            
.
3278             - Entities, tags, attributes, etc., should be enclosed in .
3279             - Option values should be enclosed in .
3280             - It's very important that
be self-closing!
3281             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3282             be translated. */
3283             TidyWord2000, 0,
3284             "Diese Option bestimmt, ob Tidy große Anstrengungen unternehmen soll, "
3285             "um all den zusätzlichen Code, den Microsoft Word 2000 beim Speichern als \"Web-Seite\" einfügt, "
3286             "wieder zu entfernen. Eingebettete Bilder oder VML werden nicht behandelt. "
3287             "
"
3288             "Sie sollten in Betracht ziehen, beim Auslösen der Funktion Speichern als..., "
3289             "dem Dateityp Web-Seite, gefiltert Vorrang zu geben."
3290             },
3291             {/* Important notes for translators:
3292             - Use only , , , , and
3293            
.
3294             - Entities, tags, attributes, etc., should be enclosed in .
3295             - Option values should be enclosed in .
3296             - It's very important that
be self-closing!
3297             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3298             be translated. */
3299             TidyWrapAsp, 0,
3300             "Mit dieser Option können Sie festlegen, ob Tidy Text innerhalb von "
3301             "ASP Pseudoelementen, wie <% ... %>, umbrechen soll. "
3302             },
3303             {/* Important notes for translators:
3304             - Use only , , , , and
3305            
.
3306             - Entities, tags, attributes, etc., should be enclosed in .
3307             - Option values should be enclosed in .
3308             - It's very important that
be self-closing!
3309             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3310             be translated. */
3311             /* option-name: wrap-attributes */
3312             TidyWrapAttVals, 0,
3313             "Diese Option legt fest, ob Tidy Attributwerte umbrechen soll, was bedeutet, "
3314             "dass Tidy Zeilenumbrüche einfügt, wo der Wert eines Attributs die Zeile so "
3315             "verlängert, dass sie über die Weite hinausragt, die mit wrap "
3316             "eingestellt wurde."
3317             "
"
3318             "Beachten Sie, dass diese Option unabhängig von "
3319             "wrap-script-literals eingesetzt werden kann. "
3320             "Standardmäßig ersetzt Tidy Zeilenumbrüche oder Tabulatoren durch einzelne Leerzeichen "
3321             "und aufeinanderfolgende Leerzeichen durch ein einziges. "
3322             "
"
3323             "Um Tidy dazu zu zwingen, die orginalen Literalwerte aller Attribute zu erhalten "
3324             "und sicherzustellen, dass Leerzeichen in Attributwerten unangetastet bleiben, "
3325             "setzen Sie den Wert von literal-attributes auf yes. "
3326             },
3327             {/* Important notes for translators:
3328             - Use only , , , , and
3329            
.
3330             - Entities, tags, attributes, etc., should be enclosed in .
3331             - Option values should be enclosed in .
3332             - It's very important that
be self-closing!
3333             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3334             be translated. */
3335             TidyWrapJste, 0,
3336             "Mit dieser Option wird bestimmt, ob Tidy den Text innerhalb von "
3337             "JSTE Peseudo-Elementen, wie <# ... #>, umbrechen soll. "
3338             },
3339             {/* Important notes for translators:
3340             - Use only , , , , and
3341            
.
3342             - Entities, tags, attributes, etc., should be enclosed in .
3343             - Option values should be enclosed in .
3344             - It's very important that
be self-closing!
3345             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3346             be translated. */
3347             TidyWrapLen, 0,
3348             /* option-name: wrap */
3349             "Diese Option legt den rechten Rand für Zeilenumbrüche fest. "
3350             "
"
3351             "Tidy wird versuchen, Zeilen so umzubrechen, dass sie diese Länge nicht überschreiten. "
3352             "
"
3353             "Setzen Sie wrap auf 0 (Null), wenn Sie Zeilenumbrüche unterbinden möchten. "
3354             },
3355             {/* Important notes for translators:
3356             - Use only , , , , and
3357            
.
3358             - Entities, tags, attributes, etc., should be enclosed in .
3359             - Option values should be enclosed in .
3360             - It's very important that
be self-closing!
3361             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3362             be translated. */
3363             TidyWrapPhp, 0,
3364             "Diese Option legt fest, ob Tidy nach PHP Pseudoelementen, "
3365             "wie <?php ... ?> einen Zeilenumbruch einfügen soll. "
3366             },
3367             {/* Important notes for translators:
3368             - Use only , , , , and
3369            
.
3370             - Entities, tags, attributes, etc., should be enclosed in .
3371             - Option values should be enclosed in .
3372             - It's very important that
be self-closing!
3373             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3374             be translated. */
3375             TidyWrapScriptlets, 0,
3376             /* option-name: wrap-script-literals */
3377             "Mit dieser Option wird bestimmt, ob Tidy Literale, die in Skript-Attributen "
3378             "auftauchen, umbrechen soll. "
3379             },
3380             {/* Important notes for translators:
3381             - Use only , , , , and
3382            
.
3383             - Entities, tags, attributes, etc., should be enclosed in .
3384             - Option values should be enclosed in .
3385             - It's very important that
be self-closing!
3386             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3387             be translated. */
3388             /* option-name: wrap-sections
3389             *
3390             * ATTN. A section-tag exists in maybe-HTML. (5)
3391             *
3392             */
3393             TidyWrapSection, 0,
3394             "Diese Option legt fest, ob Tidy Text in Datenbereichen wie "
3395             "<![ ... ]> umbrechen soll. "
3396             },
3397             {/* Important notes for translators:
3398             - Use only , , , , and
3399            
.
3400             - Entities, tags, attributes, etc., should be enclosed in .
3401             - Option values should be enclosed in .
3402             - It's very important that
be self-closing!
3403             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3404             be translated. */
3405             TidyWriteBack, 0,
3406             "Mit dieser Option wird bestimmt, ob Tidy den bereinigten Auszeichnungscode "
3407             "in die selbe Datei schreiben soll, aus der er gelesen worden ist. "
3408             "
"
3409             "Sie sollten Kopien wichtiger Dateien anlegen, bevor Sie sie bereinigen, da, "
3410             "in Ausnahmefällen, das Ergebnis nicht Ihren Erwartungen entsprechen kann. "
3411             },
3412             {/* Important notes for translators:
3413             - Use only , , , , and
3414            
.
3415             - Entities, tags, attributes, etc., should be enclosed in .
3416             - Option values should be enclosed in .
3417             - It's very important that
be self-closing!
3418             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3419             be translated. */
3420             /* option-name: output-xhtml */
3421             TidyXhtmlOut, 0,
3422             "Diese Option legt fest, ob Tidy die formatierte Ausgabe als XHTML schreiben "
3423             "soll. "
3424             "
"
3425             "Damit setzt Tidy den zu XHTML passenden DOCTYPE und Namensraum und wird "
3426             "eine korrigierte Ausgabe liefern, unabhängig von anderen Eingaben. "
3427             "
"
3428             "In XHTML können Entities benannt oder nummerisch sein, unabhängig von der "
3429             "Einstellung von numeric-entities. "
3430             "
"
3431             "Die Groß- und Kleinschreibung von Tags und Attributen im Eingangsdokument "
3432             "wird beibehalten, unabhängig von den Werten anderer Optionen. "
3433             },
3434             {/* Important notes for translators:
3435             - Use only , , , , and
3436            
.
3437             - Entities, tags, attributes, etc., should be enclosed in .
3438             - Option values should be enclosed in .
3439             - It's very important that
be self-closing!
3440             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3441             be translated. */
3442             /* option-name: add-xml-decl */
3443             TidyXmlDecl, 0,
3444             "Diese Option bestimmt, ob Tidy eine XML-Deklaration einfügen soll, "
3445             "wenn XML oder XHTML ausgegeben wird. "
3446             "
"
3447             "Beachten Sie, dass die Option ignoriert wird, wenn in der Eingabe bereits eine "
3448             "solche Deklaration <?xml ... ?> enthalten ist. "
3449             "
"
3450             "Sollte die Zeichenkodierung für die Ausgabe eine andere sein als "
3451             "ascii, keine aus der utf* Familie und auch nicht "
3452             "raw, wird die Deklaration ohnehin immer eingefügt, wie vom "
3453             "XML Standard gefordert. "
3454             },
3455             {/* Important notes for translators:
3456             - Use only , , , , and
3457            
.
3458             - Entities, tags, attributes, etc., should be enclosed in .
3459             - Option values should be enclosed in .
3460             - It's very important that
be self-closing!
3461             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3462             be translated. */
3463             /* option-name: output-xml */
3464             TidyXmlOut, 0,
3465             "Diese Option bestimmt, ob Tidy eine formatierte Ausgabe als XML schreiben "
3466             "soll. "
3467             "
"
3468             "Alle Entitäten, die in XML 1.0 nicht definiert sind, werden numerisch geschrieben, "
3469             "damit sie von einem XML Parser interpretiert werden können. "
3470             "
"
3471             "Die Groß- und Kleinschreibung von Tags und Attributen wird aus der Eingabe "
3472             "übernommen, unabhängig von anderen Einstellungen."
3473             },
3474             {/* Important notes for translators:
3475             - Use only , , , , and
3476            
.
3477             - Entities, tags, attributes, etc., should be enclosed in .
3478             - Option values should be enclosed in .
3479             - It's very important that
be self-closing!
3480             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3481             be translated. */
3482             /* option-name: assume-xml-procins */
3483             TidyXmlPIs, 0,
3484             "Diese Option bestimmt, ob Tidy bei der Auswertung von Verarbeitungsanweisungen "
3485             "auf ?> als Endezeichen bestehen soll, anstelle von >. "
3486             "
"
3487             "Diese Option wird automatisch gesetzt, wenn es sich bei der Eingabe um XML handelt. "
3488             },
3489             {/* Important notes for translators:
3490             - Use only , , , , and
3491            
.
3492             - Entities, tags, attributes, etc., should be enclosed in .
3493             - Option values should be enclosed in .
3494             - It's very important that
be self-closing!
3495             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3496             be translated. */
3497             /* option-name: add-xml-space */
3498             TidyXmlSpace, 0,
3499             "Diese Option bestimmt, ob Tidy beim Generieren von XML xml:space=\"preserve\" "
3500             "in Elementen wie <pre>, <style> und "
3501             "<script> einfügen soll. "
3502             "
"
3503             "Dies ist notwendig, wenn ohne Zugriff auf die DTD, Leerzeichen in solchen Elementen richtig interpretiert werden soll. "
3504             },
3505             {/* Important notes for translators:
3506             - Use only , , , , and
3507            
.
3508             - Entities, tags, attributes, etc., should be enclosed in .
3509             - Option values should be enclosed in .
3510             - It's very important that
be self-closing!
3511             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3512             be translated. */
3513             /* option-name: input-xml */
3514             TidyXmlTags, 0,
3515             "Diese Option legt fest, ob Tidy eher den XML-Parser als den fehlerkorrigierenden "
3516             "HTML-Parser einsetzen soll. "
3517             },
3518             {/* Important notes for translators:
3519             - Use only , , , , and
3520            
.
3521             - Entities, tags, attributes, etc., should be enclosed in .
3522             - Option values should be enclosed in .
3523             - It's very important that
be self-closing!
3524             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3525             be translated. */
3526             /* option-name: add-meta-charset */
3527             TidyMetaCharset, 0,
3528             "Mit diser Option werden ein <meta> Element "
3529             "und ein charset Attribut mit der Zeichenkodierung des Dokuments eingefügt. "
3530             "Setzen Sie die Option auf den Wert yes, um die Funktion zu aktivieren. "
3531             },
3532             {/* Important notes for translators:
3533             - Use only , , , , and
3534            
.
3535             - Entities, tags, attributes, etc., should be enclosed in .
3536             - Option values should be enclosed in .
3537             - It's very important that
be self-closing!
3538             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3539             be translated. */
3540             /* option-name: unknown */
3541             TidyShowMetaChange, 0,
3542             "Durch das Setzen dieser Option auf yes setzt Tidy eine Meldung ab, wann immer "
3543             "das content Attribut einer Zeichensatzdeklaration im Meta-Tag "
3544             "geändert wird, um sie der Kodierung des Dokuments anzupassen."
3545             },
3546             {/* Important notes for translators:
3547             - Use only , , , , and
3548            
.
3549             - Entities, tags, attributes, etc., should be enclosed in .
3550             - Option values should be enclosed in .
3551             - It's very important that
be self-closing!
3552             - The strings "Tidy" and "HTML Tidy" are the program name and must not
3553             be translated. */
3554             /* option-name: fix-style-tags */
3555             TidyStyleTags, 0,
3556             "Diese Option bestimmt, ob Tidy alle style-Tags in den Dokumentkopf "
3557             "verschieben soll. "
3558             "This option specifies if Tidy should move all style tags to the "
3559             "head of the document. "
3560             },
3561              
3562              
3563             /********************************************
3564             ** Message Severity Level
3565             ** @remark enum source TidyConfigCategory
3566             ********************************************/
3567             { TidyInfo, 0, "Info: " },
3568             { TidyWarning, 0, "Warnung: " },
3569             { TidyConfig, 0, "Config: " },
3570             { TidyAccess, 0, "Zugriff: " },
3571             { TidyError, 0, "Fehler: " },
3572             { TidyBadDocument, 0, "Dokument: " },
3573             { TidyFatal, 0, "Panik: " },
3574             { TidyDialogueSummary, 0, "Resümee: " },
3575             { TidyDialogueInfo, 0, "Information: " },
3576             { TidyDialogueFootnote, 0, "Fußnote: " },
3577            
3578            
3579             /********************************************
3580             ** Miscellaneous Strings
3581             ** @remark enum source TidyStrings
3582             ** @remark enum generator FOREACH_MSG_MISC
3583             ********************************************/
3584             { LINE_COLUMN_STRING, 0, "Zeile %d Spalte %d - " },
3585             { FN_LINE_COLUMN_STRING, 0, "%s: Zeile %d Spalte %d - " },
3586             {/* For example, "discarding invalid UTF-16 surrogate pair" */
3587             STRING_DISCARDING, 0, "verwerfe"
3588             },
3589             { STRING_ERROR_COUNT_ERROR, 0, "Fehler" },
3590             { STRING_ERROR_COUNT_ERROR, 1, "Fehler" },
3591             { STRING_ERROR_COUNT_WARNING, 0, "Warnung" },
3592             { STRING_ERROR_COUNT_WARNING, 1, "Warnungen" },
3593             { STRING_HELLO_ACCESS, 0, "\nTests der Barrierefreiheit:\n" },
3594             {/* This is not a formal name and can be translated. */
3595             STRING_HTML_PROPRIETARY, 0, "HTML Proprietär"
3596             },
3597             { STRING_XML_DECLARATION, 0, "XML Deklaration" },
3598             { STRING_PLAIN_TEXT, 0, "Klartext" },
3599             {/* For example, "replacing invalid UTF-8 bytes" */
3600             STRING_REPLACING, 0, "ersetze"
3601             },
3602             {/* For example, "you should avoid using the specified encoding." */
3603             STRING_SPECIFIED, 0, "genannte"
3604             },
3605             { TIDYCUSTOMNO_STRING, 0, "nein" },
3606             { TIDYCUSTOMBLOCKLEVEL_STRING, 0, "Blockniveau" },
3607             { TIDYCUSTOMEMPTY_STRING, 0, "leer" },
3608             { TIDYCUSTOMINLINE_STRING, 0, "inline" },
3609             { TIDYCUSTOMPRE_STRING, 0, "pre" },
3610            
3611            
3612             /********************************************
3613             ** Footnote Strings
3614             ** @remark enum source TidyStrings
3615             ** @rename enum generator FOREACH_FOOTNOTE_MSG
3616             ********************************************/
3617             {/* This console output should be limited to 78 characters per line. */
3618             TEXT_HTML_T_ALGORITHM, 0,
3619             "\n"
3620             " - Zunächst suche links von der Zellenposition nach weiteren Zeilenköpfen.\n"
3621             " - Dann suche oberhalb nach Spaltenköpfen.\n"
3622             " - Die Suche in der angegebenen Richtung wird am Tabellenrand beendet\n"
3623             " oder wenn eine Datenzelle hinter einer Kopfzelle gefunden wird\n"
3624             " - Zeilenköpfe werden in die Liste eingefügt in der Reihenfolge Ihres\n"
3625             " Erscheinens in der Tabelle. \n"
3626             " - Bei links-nach-rechts Tabellen werden Kopfzellen von links nach rechts\n"
3627             " eingefügt"
3628             " - Spaltenköpfe werden nach Zeilenköpfenn eingefügt, in der Reihenfolge\n"
3629             " ihres Erscheinens in der Tabelle, von Oben nach Unten. \n"
3630             " - Wenn eine Kopfzelle ein Attribut headers besitzt, dann werden die\n"
3631             " so bezeichneten Zellen in die Liste eingefügt und die Suche in der\n"
3632             " aktuellen Richtung eingestellt.\n"
3633             " TD-Zellen, die das Attribut axis besitzen, werden ebenfalls als\n"
3634             " Kopfzellen behandelt.\n"
3635             },
3636             {/* This console output should be limited to 78 characters per line.
3637             - %s represents a string-encoding name which may be localized in your language. */
3638             TEXT_VENDOR_CHARS, 0,
3639             "Es ist unwahrscheinlich, dass händlerspezifische, systemabhängige\n"
3640             "Zeichenkodierungen im World Wide Web ausreichend zuverlässig\n"
3641             "funktionieren; Sie sollten die Vewendung der Zeichenkodieriung %s\n"
3642             "vermeiden und statt dessen benannte Entitäten, z.B. ™\n"
3643             "verwenden.\n"
3644             },
3645             {/* This console output should be limited to 78 characters per line.
3646             - %s represents a string-encoding name which may be localized in your language.
3647             - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
3648             TEXT_SGML_CHARS, 0,
3649             "Die Zeichencodes zwischen 128 und 159 (U+0080 bis U+009F) sind in HTMl nicht\n"
3650             "erlaubt; selbst wenn sie es wären, wären sie wohl nicht-druckbare\n"
3651             "Steuerzeichen. Tidy vermutete dass Sie ein Zeichen mit dem gleichen Bytewert\n"
3652             "in der Kodierung %s meinten und hat darum die Ersetzung durch das\n"
3653             "Unicode-Äquivalent vorgenommen.\n"
3654             },
3655             {/* This console output should be limited to 78 characters per line. */
3656             TEXT_INVALID_UTF8, 0,
3657             "Zeichencodes für UTF-8 müssen zwischen U+000 und U+10FFFF liegen.\n"
3658             "Die UTF-8 Definition erlaubt im Anhang D zu ISO/IEC 10646-1:2000\n"
3659             "auch die Benutzung von 6-Byte Sequenzen für die Kodierung von\n"
3660             "Buchstaben die außerhalb des Unicode Zeichensatzes liegen;\n"
3661             "Diese fünf- und sechs Byte langen Sequencen sind unerlaubt für\n"
3662             "UTF-8 als Transformation von Unicode Zeichen. ISO/IEC 10646\n"
3663             "erlaubt kein Mapping nicht paarweise zugeordneter Ersatzzeichen,\n"
3664             "auch nicht U+FFFE oder U+FFFF (es erlaubt aber andere\n"
3665             "nichtdruckbare Zeichen). Mehr Informationen, erhalten Sie auf\n"
3666             "http://www.unicode.org/ und http://www.cl.cam.ac.uk/~mgk25/unicode.html\n"
3667             },
3668             {/* This console output should be limited to 78 characters per line. */
3669             TEXT_INVALID_UTF16, 0,
3670             "Zeichencodes für UTF-16 müssen im Breich U+0000 bis U+10FFFF liegen.\n"
3671             "Die UTF-16 Definition im Anhang C zu ISO/IEC 10646-1:2000 erlaubt\n"
3672             "kein Mapping nicht paarweise zugeordneter Ersatzzeichen. Weitere\n"
3673             "Informationen finden Sie auf\n"
3674             "http://www.unicode.org/ und http://www.cl.cam.ac.uk/~mgk25/unicode.html\n"
3675             },
3676             {/* This console output should be limited to 78 characters per line.
3677             - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
3678             TEXT_INVALID_URI, 0,
3679             "URIs müssen richtig mit Escape-Sequenzen ausgestatten werden\n"
3680             "und darf keine unmaskierten Zeichen unter U+0021 einschließlich,\n"
3681             "des Leerzeichens und keine Zeichen über U+007E. Tidy fügt,\n"
3682             "Escape-Sequenzen in URIs ein wie es von HTML 4.01 im Abschnitt\n"
3683             "B.2.1 der Spezifikation und XML 1.0 im Abschnitt 4.2.2 empfohlen\n"
3684             "ist. Einige Endbenutzerprogramme verwenden andere Algorithmen\n"
3685             "für Escape-Sequenzen in solchen URIs und die Funktion manche\n"
3686             "server-seitiger Skripte ist davon abhängig. Wenn Sie damit nicht\n"
3687             "einverstanden sind, müssen Sie die Escape-Sequenzuen selbst\n"
3688             "schreiben. Dazu gibt es mehr Informationen auf\n"
3689             "http://www.w3.org/International/O-URL-and-ident.html\n"
3690             },
3691             {/* This console output should be limited to 78 characters per line. */
3692             TEXT_BAD_FORM, 0,
3693             "Es ist vielleicht nötig eines-, oder beide Tags
und
\n"
3694             "zu verschieben. HTML-Elemente sollten richtig verschachtelt sein und\n"
3695             "form-Elemente sind keine Ausnahme. Zum Beispiel sollten Sie das\n"
3696             "
Tag nicht in eine Tabellenzelle und
in eine andere\n"
3697             "schreiben. Wenn
einer Tabelle vorangeht, kann
nicht\n"
3698             "innerhalb der Tabelle erscheinen! Bachten Sie auch, dass ein\n"
3699             "Formular nicht mit einem anderen verschachtelt werden kann."
3700             },
3701             {/* This console output should be limited to 78 characters per line. */
3702             TEXT_BAD_MAIN, 0,
3703             "Nur ein einziges
Element ist in einem Dokument erlaubt.\n"
3704             "Weitere
Elemente wurden verworfen, was das Dokument\n"
3705             "ungültig machen kann.\n"
3706             },
3707             {/* This console output should be limited to 78 characters per line. */
3708             TEXT_M_SUMMARY, 0,
3709             "Das summary-Attribut sollte in Tabellen verwendet werden, \n"
3710             "um die Tabellenstruktur zu beschreiben. Es ist sehr hilfreich\n"
3711             "für Leute, die nicht-optische Browser verwenden. Die Attribute\n"
3712             "scope und header in Tabellenzellen sind nützlich, um zu\n"
3713             "präzisieren, welcher Tabellenkopf zu welcher Tabellenzelle\n"
3714             "gehört, was nicht-optischen Browsern ermöglicht, sinnvollen\n"
3715             "Kontext zu jeder Zelle zu liefern.\n"
3716             },
3717             {/* This console output should be limited to 78 characters per line. */
3718             TEXT_M_IMAGE_ALT, 0,
3719             "Das alt-Attribut sollte für die Kurzbeschreibung eines Bildes\n"
3720             "verwendet werden; für längere Beschreibungen ist das longdesc-\n"
3721             "Attribut gedacht, das die URL zur Beschreibung enthält.\n"
3722             "Diese Details helfen Menschen, die nicht-grafische Browser verwenden.\n"
3723             },
3724             {/* This console output should be limited to 78 characters per line. */
3725             TEXT_M_IMAGE_MAP, 0,
3726             "Geben Sie client-seitigen Vorrang vor server-seitigen Image maps\n"
3727             "weil letztere für Menschen mit nicht-grafischen Browsern unzugänglich\n"
3728             "sind. Außerdem werden client-seitige maps leichter erzeugt und\n"
3729             "sind reaktiver."
3730             },
3731             {/* This console output should be limited to 78 characters per line. */
3732             TEXT_M_LINK_ALT, 0,
3733             "Im Zusammenhang mit client-seitigen Image Maps müssen Sie das\n"
3734             "alt-Attribut mit einer textuellen Beschreibung des Links\n"
3735             "verwenden, für Leute, die nicht-grafische Browser benutzen.\n"
3736             },
3737             {/* This console output should be limited to 78 characters per line. */
3738             TEXT_USING_FRAMES, 0,
3739             "Seiten, die mit Frames gestaltet werden, stellen ein Problem dar\n"
3740             "für Leute, die entweder blind sind oder Browser verwenden, die\n"
3741             "Frames gar nicht unterstützen. Eine Frame-basierte Seite sollte\n"
3742             "stets über ein alternatives Layout innerhalb des NOFRAMES\n"
3743             "Elements verfügen."
3744             },
3745             {/* This console output should be limited to 78 characters per line. */
3746             FOOTNOTE_TRIM_EMPTY_ELEMENT, 0,
3747             "Eines oder mehrere leere Elemente waren im Quelldokument vorhanden,\n"
3748             "wurden aber bei der Ausgabe verworfen. Sollten diese Element für Sie\n"
3749             "wichtig sein oder wenn Sie ein anderes Vorgehen wünschen,\n"
3750             "ziehen Sie in Betracht, die Option \"drop.empty-elements\" auf\n"
3751             "no zu setzen.\n"
3752             },
3753             {/* This console output should be limited to 78 characters per line.
3754             - The URL should not be translated unless you find a matching URL in your language. */
3755             TEXT_ACCESS_ADVICE1, 0,
3756             "Weitere Ratschläge zur Barrierefreiheit finden Sie auf\n"
3757             "http://www.w3.org/WAI/GL."
3758             },
3759             {/* This console output should be limited to 78 characters per line.
3760             - The URL should not be translated unless you find a matching URL in your language. */
3761             TEXT_ACCESS_ADVICE2, 0,
3762             "Weitere Ratschläge zur Barrierefreiheit finden Sie auf\n"
3763             "http://www.w3.org/WAI/GL und http://www.html-tidy.org/accessibility/."
3764             },
3765             {/* This console output should be limited to 78 characters per line. */
3766             TEXT_USING_LAYER, 0,
3767             "Es wird empfohlen, dem Positionierungsmechanismus von Cascading\n"
3768             "Style Sheets (CSS) Vorrang vor dem proprietären Element \n"
3769             "zu geben, weil LAYER nur beschränkt unterstützt wird."
3770             },
3771             {/* This console output should be limited to 78 characters per line. */
3772             TEXT_USING_SPACER, 0,
3773             "Es wird empfohlen, CSS zur Kontrolle von Leerraum zu verwenden,\n"
3774             "z.B. für Einrückungen, Ränder und Abständen.\n"
3775             "Das proprietäre Element wird nur beschränkt unterstützt.\n"
3776             },
3777             {/* This console output should be limited to 78 characters per line. */
3778             TEXT_USING_FONT, 0,
3779             "Es wird empfohlen, CSS zur Festlegung von Schriften und\n"
3780             "Schrifteigenschaften zu verwenden, sie Schriftgrad und -Farbe.\n"
3781             "Damit wird die Größe der HTML-Datei verringert und sie ist,\n"
3782             "verglichen zum -Element, leichter zu warten.\n"
3783             },
3784             {/* This console output should be limited to 78 characters per line. */
3785             TEXT_USING_NOBR, 0,
3786             "Es wird empfohlen, CSS zur Kontrolle der Zeilenumbrüche zu\n"
3787             "verwenden, insbesondere \"white-space: nowrap\" um Zeilenumbrüche\n"
3788             "in einem Element zu verhindern, anstelle von ....\n"
3789             },
3790             {/* This console output should be limited to 78 characters per line. */
3791             TEXT_USING_BODY, 0,
3792             "Es wird empfohlen, CSS zur Festlegung der Farben von Seiten und\n"
3793             "Links zu verwenden.\n"
3794             },
3795            
3796             /********************************************
3797             ** Miscellaneous Dialogue Strings
3798             ** @remark enum source TidyStrings
3799             ** @rename enum generator FOREACH_DIALOG_MSG
3800             ********************************************/
3801             { STRING_CONTENT_LOOKS, 0, "Dokumentinhalt scheint %s zu sein" },
3802             { STRING_DOCTYPE_GIVEN, 0, "angegebener Doctype ist \"%s\"" },
3803             {/* The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
3804             STRING_ERROR_COUNT, 0, "Tidy hat %u %s und %u %s gefunden!\n"
3805             },
3806             {/* This console output should be limited to 78 characters per line.
3807             - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
3808             STRING_NEEDS_INTERVENTION, 0,
3809             "Dieses Dokument hat Fehler, die korrigiert werden müssen,\n"
3810             "bevor HTML Tidy eine bereinigte Version generieren kann.\n"
3811             },
3812             { STRING_NO_ERRORS, 0, "Es wurden keine Warnungen oder Fehler gefunden.\n" },
3813             { STRING_NO_SYSID, 0, "Kein System-Identifikator im übermittelten doctype" },
3814             { STRING_NOT_ALL_SHOWN, 0, "Tidy hat %u %s und %u %s gefunden! \n"
3815             "Nicht alle Warnungen oder Fehler wurden angezeigt.\n" },
3816             {/* This console output should be limited to 78 characters per line.
3817             - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
3818             TEXT_GENERAL_INFO, 0,
3819             "Über HTML Tidy: https://github.com/htacg/tidy-html5\n"
3820             "Fehlerberichte und Kommentare (in English):\n"
3821             "\thttps://github.com/htacg/tidy-html5/issues\n"
3822             "Offizielle Mailing-Liste:\n"
3823             "\thttps://lists.w3.org/Archives/Public/public-htacg/\n"
3824             "Neueste HTML Spezifikation:\n"
3825             "\thttp://dev.w3.org/html5/spec-author-view/\n"
3826             "Validieren Sie Ihre HTML-Dokumente:\n"
3827             "\tttp://validator.w3.org/nu/\n"
3828             "Setzen Sie sich für den Eintritt Ihrer Firma ins W3C ein:\n"
3829             "\thttp://www.w3.org/Consortium\n"
3830             },
3831             {/* This console output should be limited to 78 characters per line.
3832             - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated.
3833             - Don't terminate the last line with a newline. */
3834             TEXT_GENERAL_INFO_PLEA, 0,
3835             "Sprechen Sie eine andere Sprache als Englisch oder eine andere Variante\n"
3836             "von Englisch? Überlegen Sie, ob Sie uns helfen möchten, HTML Tidy zu\n"
3837             "übersetzen. Details finden Sie auf\n"
3838             "https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md"
3839             },
3840            
3841              
3842             /********************************************
3843             ** Report Output
3844             ** @remark enum source TidyStrings
3845             ** @rename enum generator FOREACH_REPORT_MSG
3846             ********************************************/
3847             { ADDED_MISSING_CHARSET, 0, "Fehlendes wurde in %s hinzugefügt" },
3848             { ANCHOR_NOT_UNIQUE, 0, "%s Verweisanker \"%s\" ist bereits definiert" },
3849             { ANCHOR_DUPLICATED, 0, "impliziter %s Anker \"%s\" von Tidy dupliziert." },
3850             { APOS_UNDEFINED, 0, "benannte Entität ' nur in XML/XHTML definiert" },
3851             { ATTR_VALUE_NOT_LCASE, 0, "%s Attributwert \"%s\" muss für XHTML klein geschrieben sein" },
3852             { ATTRIBUTE_IS_NOT_ALLOWED, 0, "%s Attribut \"is\" nicht in autonomen, benutzerdefnierten Tags erlaubt." },
3853             { ATTRIBUTE_VALUE_REPLACED, 0, "%s Attribut \"%s\", falscher Wert \"%s\" ersetzt" },
3854             { BACKSLASH_IN_URI, 0, "%s URI Referenz enthält Backslash. Eingabefehler?" },
3855             { BAD_ATTRIBUTE_VALUE_REPLACED, 0, "%s Attribut \"%s\" hatte den ungültigen Wert \"%s\" und wurde ersetzt" },
3856             { BAD_ATTRIBUTE_VALUE, 0, "%s Attribut \"%s\" hat den ungültigen Wert \"%s\"" },
3857             { BAD_CDATA_CONTENT, 0, "'<' + '/' + Zeichen hier nicht erlaubt" },
3858             { BAD_SUMMARY_HTML5, 0, "Das summary Attribute im Element %s ist in HTML5 obsolet" },
3859             { BAD_SURROGATE_LEAD, 0, "Vorderes (niederes) Surrogat-Paar U+%04X, ohne vordere (obere) Entität, durch U+FFFD ersetzt." },
3860             { BAD_SURROGATE_PAIR, 0, "Unzulässiges Surrogat-Paar U+%04X:U+%04X wurde durch U+FFFD ersetzt." },
3861             { BAD_SURROGATE_TAIL, 0, "Vorangestelltes (oberes) Surrogat-Paar U+%04X, ohne anschließennde (niedere) Entität, durch U+FFFD ersetzt." },
3862             { CANT_BE_NESTED, 0, "%s kann nicht verschachtelt sein" },
3863             { COERCE_TO_ENDTAG, 0, "<%s> ist wahrscheinlich als gedacht" },
3864             { CONTENT_AFTER_BODY, 0, "Inhalt nach dem Ende von body" },
3865             { CUSTOM_TAG_DETECTED, 0, "Habe autonomes, benutzerdefiniertes Tag %s gefunden; Behandele als %s" },
3866             { DISCARDING_UNEXPECTED, 0, "Unerwartetes %s verworfen" },
3867             { DOCTYPE_AFTER_TAGS, 0, " ist nach Elementen nicht erlaubt" },
3868             { DUPLICATE_FRAMESET, 0, "Wiederholung des FRAMESET Elements" },
3869             { ELEMENT_NOT_EMPTY, 0, "%s Element nicht leer oder nicht geschlossen" },
3870             { ELEMENT_VERS_MISMATCH_ERROR, 0, "%s Element steht in %s nicht zur Verfügung" },
3871             { ELEMENT_VERS_MISMATCH_WARN, 0, "%s Element steht in %s nicht zur Verfügung" },
3872             { ENCODING_MISMATCH, 0, "genannte Eingabe-Kodierung (%s) stimmt nicht mit der vorgefundenen Kodierung überein (%s)" },
3873             { ESCAPED_ILLEGAL_URI, 0, "%s maskiere falsch formatierten URI Verweis" },
3874             { FILE_CANT_OPEN, 0, "Kann \"%s\" nicht öffnen\n" },
3875             { FILE_CANT_OPEN_CFG, 0, "Kann die Konfigurationsdatei \"%s\" nicht öffnen\n" },
3876             { FILE_NOT_FILE, 0, "\"%s\" ist keine Datei!\n" },
3877             { FIXED_BACKSLASH, 0, "%s Konvertiere einen Backslash im URI in Schrägstrich" },
3878             { FOUND_STYLE_IN_BODY, 0, "