This article is for Developers using the Global Delivery Network.
The Smartling Global Delivery Network (GDN) expects source content to meet basic coding standards for HTML, XML, and JSON content-types to deliver well-formed responses. Unbalanced or invalid HTML may display properly on your source site in a browser, which has less-strict HTML validation requirements, but can cause unexpected layout changes on a localized site running through the GDN.
If a page is displaying properly on your source site, but not on the localized site, use an HTML validation tool like the W3C Markup Validation Service to check for invalid HTML on the source page.
Accurate Content-Type Headers and Attributes
The GDN uses Content-Type headers and script tag attributes to determine the format of a response or embedded script. To parse content correctly, content should display the correct Content-Type so that the appropriate parser can be used automatically by the Smartling GDN. For less common or custom Content-Types, the parser type can be assigned by advanced rules or by contacting Smartling Support.
If you notice snippets of code, or partial strings being captured in your Smartling Project, it may be a sign of an incorrect Content-Type.
Note on Content Capture
While the Smartling GDN will automatically extract most translatable content from HTML, some content types will require integration tagging or custom GDN rules in order to be captured.
It is important to note that the GDN HTML parser has a limit on tag size. The default value is 1M. If a tag on the site exceeds this size, all content from this tag below will fail to be parsed. This could cause pages to appear in English instead of the target language.
The tag size limit can be changed with advanced GDN rule rps_max_allowed_tag_size.
Contact your Customer Success Manager about increasing tag size limits using advanced rules.
Use Localization Best Practices
Whenever possible, create source websites which keep localization in mind, allowing elements containing text to expand or contract with different translation lengths, avoiding logic which relies on string text which may change during translation, and avoiding concatenation or other splitting of strings which may prevent correct parsing or accurate translation.