#12005 closed defect (bug) (fixed)
thousandsSeparator and decimalPoint are not being escaped
| Reported by: | Chionsas | Owned by: | nbachiyski |
|---|---|---|---|
| Priority: | low | Milestone: | 3.0 |
| Component: | I18N | Version: | 2.9.1 |
| Severity: | normal | Keywords: | thousandsSeparator decimalPoint javascript has-patch |
| Cc: | Focuses: |
Description
file: wp-admin/admin-header.php
line: 44
[..] thousandsSeparator = '<?php echo $wp_locale->number_format['thousands_sep']; ?>', decimalPoint = '<?php echo $wp_locale->number_format['decimal_point']; ?>';
When the translation file has "'" put in for thousands separator, you get JavaScript code:
thousandsSeparator = '''
which raises JS syntax error and therefore the media buttons (add-file/add-image while editing page/post and possibly some other places) do not work.
I suppose some languages could also have "'" as a decimal point, though it's more less likely than the thousands separator.
There can be several approaches to solving this problem:
- wrapping the variables in esc_js() before echo (clean, but wastes CPU cycles)
- changing the quotes from ' to " (double quotes), which are less likely to be used as a thousands separator. This could be used in combination with a comment in the translations (.pot) file for the translators to be aware of this problem and not use " in delimiters.
Attachments (1)
Change History (9)
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
As we only expect one character there the "usual" fix would be
echo addslashes(...).