Many of the translation po-files that can be downloaded from localize.drupal.org contain strings that cannot be imported due to the function
locale_string_is_safe() in locale.inc which sanitizes translation strings using a whitelist of allowed HTML tags. This results in error messages being displayed and logged during the importing of po-files. These error messages don't give any indication as to which specific strings could not be imported however. This is bad since it leaves the user completely in the dark.
The most recent patch in comment #20 does the following:
- it adds specific watchdog entries for each single string which could not be imported
- it amends the error messages to direct users who encounter these errors to the log at /admin/reports/dblog to find out what went wrong so they can act on this information.
Note: the most common reason for strings not being imported is not some actually nefarious HTML tags but stems from the usage of strings in core like
t('<Hidden>'). These strings get translated by translators to something like
<keine> in German, whereupon the import fails, since
<keine> is of course not valid HTML.
PASSED: [[SimpleTest]]: [MySQL] 33,654 pass(es). View
PASSED: [[SimpleTest]]: [MySQL] 33,656 pass(es). View
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch html-strings-1020842-14.patch. This may be a -p0 (old style) patch, which is no longer supported by the testbots. View