tools/linguist/shared/ts.dtd
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 <!-- 
       
     2  ! 
       
     3  ! Some notes to the DTD:
       
     4  !
       
     5  ! The location element is set as optional since it was introduced first in Qt 4.2.
       
     6  ! The userdata element is set as optional since it was introduced first in Qt 4.4.
       
     7  ! The source and translation elements are optional starting with version 3.0
       
     8  ! (Qt 4.6) to support S60 blank messages.
       
     9  !
       
    10   -->
       
    11 <!-- 
       
    12  ! Macro used in order to escape byte entities not allowed in an xml document
       
    13  ! for instance, only #x9, #xA and #xD are allowed characters below #x20.
       
    14  -->
       
    15 <!ENTITY % evilstring '(#PCDATA | byte)*' >
       
    16 <!ELEMENT byte EMPTY>
       
    17 <!-- value contains decimal (e.g. 1000) or hex (e.g. x3e8) unicode encoding of one char -->
       
    18 <!ATTLIST byte
       
    19           value CDATA #REQUIRED>
       
    20 <!--
       
    21  ! This element wildcard is no valid DTD. No better solution available.
       
    22  ! extra elements may appear in TS and message elements. Each element may appear
       
    23  ! only once within each scope. The contents are preserved verbatim; any
       
    24  ! attributes are dropped. Currently recognized extra tags include:
       
    25  !   extra-po-msgid_plural, extra-po-old_msgid_plural
       
    26  !   extra-po-flags (comma-space separated list)
       
    27  !   extra-loc-layout_id
       
    28  !   extra-loc-feature
       
    29  !   extra-loc-blank
       
    30   -->
       
    31 <!ELEMENT extra-* %evilstring; >
       
    32 <!ELEMENT TS (defaultcodec?, extra-**, (context|message)+) > 
       
    33 <!ATTLIST TS
       
    34           version CDATA #IMPLIED
       
    35           sourcelanguage CDATA #IMPLIED
       
    36           language CDATA #IMPLIED>
       
    37 <!-- The encoding to use in the QM file by default. Default is ISO-8859-1. -->
       
    38 <!ELEMENT defaultcodec (#PCDATA) >
       
    39 <!ELEMENT context (name?, comment?, (context|message)+) >
       
    40 <!ATTLIST context
       
    41           encoding CDATA #IMPLIED>
       
    42 <!ELEMENT name %evilstring; >
       
    43 <!-- If "no", then the context nesting is for informational puposes only -->
       
    44 <!ATTLIST name
       
    45           nest (yes|no) "yes">
       
    46 <!-- This is "disambiguation" in the (new) API, or "msgctxt" in gettext speak -->
       
    47 <!ELEMENT comment %evilstring; >
       
    48 <!-- Previous content of comment (result of merge) -->
       
    49 <!ELEMENT oldcomment %evilstring; >
       
    50 <!-- The real comment (added by developer/designer) -->
       
    51 <!ELEMENT extracomment %evilstring; >
       
    52 <!-- Comment added by translator -->
       
    53 <!ELEMENT translatorcomment %evilstring; >
       
    54 <!ELEMENT message (location*, source?, oldsource?, comment?, oldcomment?, extracomment?, translatorcomment?, translation?, userdata?, extra-**) >
       
    55 <!--
       
    56  ! If utf8 is true, the defaultcodec is overridden and the message is encoded
       
    57  ! in UTF-8 in the QM file.
       
    58   -->
       
    59 <!ATTLIST message
       
    60           id CDATA #IMPLIED
       
    61           utf8 (true|false) "false"
       
    62           numerus (yes|no) "no">
       
    63 <!ELEMENT location EMPTY>
       
    64 <!--
       
    65  ! If the line is omitted, the location specifies only a file.
       
    66  !
       
    67  ! location supports relative specifications as well. Line numbers are
       
    68  ! relative (explicitly positive or negative) to the last reference to a
       
    69  ! given filename; each file starts with current line 0. If the filename
       
    70  ! is omitted, the "current" one is used. For the 1st location in a message,
       
    71  ! "current" is the filename used for the 1st location of the previous message.
       
    72  ! For subsequent locations, it is the filename used for the previous location.
       
    73  ! A single TS file has either all absolute or all relative locations.
       
    74   -->
       
    75 <!ATTLIST location 
       
    76           filename CDATA #IMPLIED
       
    77           line CDATA #IMPLIED>
       
    78 <!ELEMENT source %evilstring;>
       
    79 <!-- Previous content of source (result of merge) -->
       
    80 <!ELEMENT oldsource %evilstring;>
       
    81 <!--
       
    82  ! The following should really say one evilstring macro or several
       
    83  ! numerusform or lengthvariant elements, but the DTD can't express this.
       
    84   -->
       
    85 <!ELEMENT translation (#PCDATA|byte|numerusform|lengthvariant)* >
       
    86 <!--
       
    87  ! If no type is set, the message is "finished".
       
    88  ! Length variants must be ordered by falling display length.
       
    89  ! variants may not be yes if the message has numerus yes.
       
    90   -->
       
    91 <!ATTLIST translation
       
    92           type (unfinished|obsolete) #IMPLIED
       
    93           variants (yes|no) "no">
       
    94 <!-- Deprecated. Use extra-* -->
       
    95 <!ELEMENT userdata (#PCDATA)* >
       
    96 <!--
       
    97  ! The following should really say one evilstring macro or several
       
    98  ! lengthvariant elements, but the DTD can't express this.
       
    99  ! Length variants must be ordered by falling display length.
       
   100   -->
       
   101 <!ELEMENT numerusform (#PCDATA|byte|lengthvariant)* >
       
   102 <!ATTLIST numerusform
       
   103           plurality (nullar|singular|dual|trial|paucal|greaterpaucal|plural|greaterplural) #IMPLIED>
       
   104           variants (yes|no) "no">
       
   105 <!ELEMENT lengthvariant %evilstring; >
       
   106 <!--
       
   107  ! The translation variants have a priority between 1 ("highest") and 9 ("lowest")
       
   108  ! Typically longer translations get a higher priority.
       
   109  ! If omitted, the order of appearance of the variants in the TS files is used.
       
   110   -->
       
   111 <!ATTLIST lengthvariant
       
   112           priority (1|2|3|4|5|6|7|8|9) #IMPLIED>
       
   113