diff options
Diffstat (limited to 'tools/linguist/shared/ts.dtd')
-rw-r--r-- | tools/linguist/shared/ts.dtd | 93 |
1 files changed, 78 insertions, 15 deletions
diff --git a/tools/linguist/shared/ts.dtd b/tools/linguist/shared/ts.dtd index d979f0b..ab77f64 100644 --- a/tools/linguist/shared/ts.dtd +++ b/tools/linguist/shared/ts.dtd @@ -4,6 +4,8 @@ ! ! The location element is set as optional since it was introduced first in Qt 4.2. ! The userdata element is set as optional since it was introduced first in Qt 4.4. + ! The source and translation elements are optional starting with version 3.0 + ! (Qt 4.6) to support S60 blank messages. ! --> <!-- @@ -12,39 +14,100 @@ --> <!ENTITY % evilstring '(#PCDATA | byte)*' > <!ELEMENT byte EMPTY> +<!-- value contains decimal (e.g. 1000) or hex (e.g. x3e8) unicode encoding of one char --> <!ATTLIST byte value CDATA #REQUIRED> -<!ELEMENT TS (defaultcodec?, context+) > +<!-- + ! This element wildcard is no valid DTD. No better solution available. + ! extra elements may appear in TS and message elements. Each element may appear + ! only once within each scope. The contents are preserved verbatim; any + ! attributes are dropped. Currently recognized extra tags include: + ! extra-po-msgid_plural, extra-po-old_msgid_plural + ! extra-po-flags (comma-space separated list) + ! extra-loc-layout_id + ! extra-loc-feature + ! extra-loc-blank + --> +<!ELEMENT extra-* %evilstring; > +<!ELEMENT TS (defaultcodec?, extra-**, (context|message)+) > <!ATTLIST TS version CDATA #IMPLIED + sourcelanguage CDATA #IMPLIED language CDATA #IMPLIED> +<!-- The encoding to use in the .qm file by default. Default is ISO-8859-1. --> <!ELEMENT defaultcodec (#PCDATA) > -<!ELEMENT context (name, comment?, extracomment?, message+) > +<!ELEMENT context (name?, comment?, (context|message)+) > <!ATTLIST context encoding CDATA #IMPLIED> <!ELEMENT name %evilstring; > +<!-- If "no", then the context nesting is for informational puposes only --> +<!ATTLIST name + nest (yes|no) "yes"> +<!-- This is "disambiguation" in the (new) API, or "msgctxt" in gettext speak --> <!ELEMENT comment %evilstring; > +<!-- Previous content of comment (result of merge) --> <!ELEMENT oldcomment %evilstring; > -<!ELEMENT translatorcomment %evilstring; > +<!-- The real comment (added by developer/designer) --> <!ELEMENT extracomment %evilstring; > -<!ELEMENT message (location*, source, oldsource?, comment?, oldcomment?, extracomment?, translatorcomment?, translation, userdata?) > +<!-- Comment added by translator --> +<!ELEMENT translatorcomment %evilstring; > +<!ELEMENT message (location*, source?, oldsource?, comment?, oldcomment?, extracomment?, translatorcomment?, translation?, userdata?, extra-**) > +<!-- + ! If utf8 is true, the defaultcodec is overridden and the message is encoded + ! in UTF-8 in the .qm file. + --> <!ATTLIST message - encoding CDATA #IMPLIED + id CDATA #IMPLIED + utf8 (true|false) "false" numerus (yes|no) "no"> <!ELEMENT location EMPTY> +<!-- + ! If the line is omitted, the location specifies only a file. + ! + ! location supports relative specifications as well. Line numbers are + ! relative (explicitly positive or negative) to the last reference to a + ! given filename; each file starts with current line 0. If the filename + ! is omitted, the "current" one is used. For the 1st location in a message, + ! "current" is the filename used for the 1st location of the previous message. + ! For subsequent locations, it is the filename used for the previous location. + ! A single .ts file has either all absolute or all relative locations. + --> <!ATTLIST location - filename CDATA #REQUIRED - line CDATA #REQUIRED> + filename CDATA #IMPLIED + line CDATA #IMPLIED> <!ELEMENT source %evilstring;> -<!-- - ! The following should really say one evilstring macro or several numerusform elements, - ! but the DTD can't express this. +<!-- Previous content of source (result of merge) --> +<!ELEMENT oldsource %evilstring;> +<!-- + ! The following should really say one evilstring macro or several + ! numerusform or lengthvariant elements, but the DTD can't express this. + --> +<!ELEMENT translation (#PCDATA|byte|numerusform|lengthvariant)* > +<!-- + ! If no type is set, the message is "finished". + ! Length variants must be ordered by falling display length. + ! variants may not be yes if the message has numerus yes. --> -<!ELEMENT translation (#PCDATA|byte|numerusform)* > <!ATTLIST translation type (unfinished|obsolete) #IMPLIED - encoding CDATA #IMPLIED> + variants (yes|no) "no"> +<!-- Deprecated. Use extra-* --> <!ELEMENT userdata (#PCDATA)* > -<!ELEMENT numerusform %evilstring; > - - +<!-- + ! The following should really say one evilstring macro or several + ! lengthvariant elements, but the DTD can't express this. + ! Length variants must be ordered by falling display length. + --> +<!ELEMENT numerusform (#PCDATA|byte|lengthvariant)* > +<!ATTLIST numerusform + plurality (nullar|singular|dual|trial|paucal|greaterpaucal|plural|greaterplural) #IMPLIED> + variants (yes|no) "no"> +<!ELEMENT lengthvariant %evilstring; > +<!-- + ! The translation variants have a priority between 1 ("highest") and 9 ("lowest") + ! Typically longer translations get a higher priority. + ! If omitted, the order of appearance of the variants in the .ts files is used. + --> +<!ATTLIST lengthvariant + priority (1|2|3|4|5|6|7|8|9) #IMPLIED> + |