Specifications

225
CHAPTER 19
Data Translators
Data translators translate specialized markupserver-side includes, conditional JavaScript
statements, or other code such as PHP3, JSP, CFML, or ASPinto code that can be read and
displayed by Dreamweaver. In Dreamweaver, you can translate attributes within tags as well as
entire tags or blocks of code. All data translatorsblock/tag or attributeare HTML files.
Translated tags or blocks of code must be enclosed in locked regions to preserve the original
markup. Translated attributes do not require locks, which makes inspecting the tags that contain
them a simple process.
Data translationespecially for entire tags or blocks of codemight involve complex operations
that either cannot be done with JavaScript or that can be done more efficiently using C. If you are
familiar with C or C++, you should also read C-Level Extensibility on page 251.
How data translators work
Dreamweaver handles all translator files the same way, regardless of whether they translate entire
tags or only attributes. At startup, Dreamweaver reads all the files in the Configuration/
Translators folder and calls the
getTranslatorInfo() function to obtain information about the
translator. Dreamweaver ignores any file in which
getTranslatorInfo() does not exist or
contains an error that causes it to be undefined.
Note: To prevent JavaScript errors from interfering with startup, errors in any translator file are reported only after
all translators are loaded. For more information on debugging translators, see “Finding bugs in your translator” on
page 241.
Dreamweaver also calls the translateMarkup() function in all applicable translator files (as
specified in the Translation preferences) whenever the user might have added new or changed
existing content that needs translation. Dreamweaver calls
translateMarkup() when the user
performs one of the following actions:
Opens a file in Dreamweaver
Switches back to Design view after making changes in the HTML panel or in Code view
Changes the properties of an object in the current document
Inserts an object (using either the Objects panel or the Insert menu)
Refreshes the current document after making changes to it in another application
Applies a template to the document
Pastes or drags content into or within the Document window
Saves changes to a dependent file