#7164 closed enhancement (fixed)
Automatic text replacements should be localized
Reported by: | nico.r | Owned by: | |
---|---|---|---|
Milestone: | 2.8 | Priority: | low |
Severity: | minor | Version: | 2.6 |
Component: | I18N | Keywords: | needs-patch wptexturize |
Focuses: | Cc: |
Description
In wp-includes/formatting.php
, function wptexturize(string)
does some text replacing, like replacement of straight quotes (U+0022
) into curly quotes (U+201C
and U+201D
), but the replacements are specific to the en_US
locale. For example, the correct quotation marks in de_DE
are U+201E and U+201C.
As the replacement arrays can AFAIK not be expressed (or only with difficulties) in PO translation files, there is some need for providing a means of adding a language-specific script file.
Attached patch adds a function get_lang_php()
to wp-includes/l10n.php
which returns the name of a locale-specific PHP script. This new function is used in wp-includes/formatting.php
in order to retrieve the script name; then this script is included.
The patch also adds two locale-specific script files, one for en_US
, and one for de_DE
. The en_US
file simply contains the replacement patterns and strings which are currently present in wp-includes/formatting.php
(they are moved by the patch). The de_DE
file contains almost the same arrays, but adapted a little bit for German. Please note that the directory wp-content/languages/
, in which these two files are placed, is currently not present on the trunk in the WordPress SVN repository.
It is expected that translators are going to provide language-specific PHP scripts, or (if they do not know PHP scripting or regular expressions) information about what replacements should be included in these, so that developers can add the appropriate regular expressions and replacement texts.
It is further expected that the new get_lang_php()
mechanism will be used in other parts of the WordPress code or by new code parts or modules. It is useful in all cases in which locale-specific scripting is needed (i.e. when things cannot be expressed in PO translation files).
The patch applies to r8152
(current HEAD
of trunk
) in the WordPress SVN repository.
The function comment for get_lang_php()
in wp-includes/l10n.php
should be changed (fix “@since
” comment) before the file is committed.
Attached patch is currently running on a production system with WordPress 2.5.1.
Attachments (1)
Change History (6)
#2
@
15 years ago
- Keywords needs-patch added; has-patch tested removed
We already load locale specific php files from wp-content/languages.
The arrays could be moved into WP_Locale. All locales should use the current defaults unless overridden.
Patch providing support for per-locale PHP scripts