Adding new strings
Add new generated strings to your plug-in for the toolkit to include in your output.
Procedure
-
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
-
In your plug-in, edit strings.xml to contain references to the language files for
which you are providing custom strings.
The
en-US
language must be present; other language files are optional.<?xml version="1.0" encoding="UTF-8"?> <!-- Provide strings for my plug-in; this plug-in supports English, Icelandic, and Russian. --> <langlist> <lang xml:lang="en" filename="my-added-strings-en-us.xml"/> <lang xml:lang="en-US" filename="my-added-strings-en-us.xml"/> <lang xml:lang="is" filename="my-added-strings-is-is.xml"/> <lang xml:lang="is-IS" filename="my-added-strings-is-is.xml"/> <lang xml:lang="ru" filename="my-added-strings-ru-ru.xml"/> <lang xml:lang="ru-RU" filename="my-added-strings-ru-ru.xml"/> </langlist>
-
In xsl/common or cfg/common/vars, create a new file called
my-added-strings-en-us.xml.
<?xml version="1.0" encoding="UTF-8"?> <variables> </variables>
-
For each new string you want, add a
<variable>
element with an@id
attribute and the text you want the toolkit to use.The@id
attribute value must be unique in the file and should reflect the purpose of the generated text.The toolkit uses the text found inside the element when inserting generated text.
<?xml version="1.0" encoding="UTF-8"?> <variables> <variable id="String1">English generated text</variable> <variable id="Another String">Another string in English</variable> </variables>
- Repeat step 3 and step 4 for each language.
-
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 strings are available to your stylesheets. For example, if processing in a context where the@xml:lang
value isen-US
, the following call returns “Another string in English” because it was defined as the text for the variable with@id
value ofAnother String
in step 4.<xsl:call-template name="getVariable"> <xsl:with-param name="id" select="'Another String'"/> </xsl:call-template>
You can also use the same strings in multiple languages by assigning a file with common strings to each language in addition to the language-specific custom strings files.<?xml version="1.0" encoding="UTF-8"?> <langlist> <lang xml:lang="en" filename="my-added-strings-en-us.xml"/> <lang xml:lang="en-US" filename="my-added-strings-en-us.xml"/> <lang xml:lang="en" filename="my-added-strings-mul.xml"/> <lang xml:lang="en-US" filename="my-added-strings-mul.xml"/> <lang xml:lang="is" filename="my-added-strings-is-is.xml"/> <lang xml:lang="is-IS" filename="my-added-strings-is-is.xml"/> <lang xml:lang="is" filename="my-added-strings-mul.xml"/> <lang xml:lang="is-IS" filename="my-added-strings-mul.xml"/> <lang xml:lang="ru" filename="my-added-strings-ru-ru.xml"/> <lang xml:lang="ru-RU" filename="my-added-strings-ru-ru.xml"/> <lang xml:lang="ru" filename="my-added-strings-mul.xml"/> <lang xml:lang="ru-RU" filename="my-added-strings-mul.xml"/> </langlist>