Adding new languages

Extend the toolkit’s generated text capabilities by adding new language files.

Procedure

  1. Copy this file to your plug-in.
    • non-PDF output: plugins/org.dita.base/xsl/common/strings.xml
    • PDF output: plugins/org.dita.pdf2/cfg/common/vars/strings.xml
  2. In your plug-in, edit strings.xml to contain references to the language files for which you are providing custom strings.
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Provide new languages for Gaelic and Vietnamese. -->
    <langlist>
      <lang xml:lang="ga"     filename="strings-ga-ga.xml"/>
      <lang xml:lang="ga-GA"  filename="strings-ga-ga.xml"/>
      <lang xml:lang="vi"     filename="strings-vi-vn.xml"/>
      <lang xml:lang="vi-VN"  filename="strings-vi-vn.xml"/>
    </langlist>
  3. Copy this file to your plug-in into the same directory as step 1.
    • non-PDF output: plugins/org.dita.base/xsl/common/strings-en-us.xml
    • PDF output: plugins/org.dita.pdf2/cfg/common/vars/en.xml
  4. Rename the file to match the language you wish to add (for instance, strings-vi-vn.xml).
  5. Without changing the @id value, replace the generated text string for each variable.
    <variables>
       <variable id="Figure">Hình</variable>
       <variable id="Table">Bảng</variable>
       <variable id="Next topic">Chủ đề tiếp theo</variable>
         [...]
       <variable id="Copyright">Bản quyền</variable>
       <variable id="a11y.and-then"/>
    </variables>
  6. Repeat step 3 to step 5 for each language.
  7. Update your plugin.xml file to extend the strings available.
    <plugin id="com.example.your-plugin">
      <feature extension="dita.xsl.strings" file="xsl/common/strings.xml"/>
    </plugin>
    Your custom language strings are available to your stylesheets. For example, if processing in a context where the @xml:lang value is vi-VN, the following call returns “Chủ đề tiếp theo” because it was defined as the text for the variable with @id value of Next topic in step 5.
    <xsl:call-template name="getVariable">
      <xsl:with-param name="id" select="'Next topic'"/>
    </xsl:call-template>