Making WordPress.org

Ticket #2919: 2919.2.patch

File 2919.2.patch, 1.4 KB (added by SergeyBiryukov, 8 years ago)
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-i18n.php

     
    406406         * @return mixed
    407407         */
    408408        public function translate_gp_original( $original, $translation, $content ) {
     409                $original = preg_quote( $original, '/' );
     410
    409411                if ( false === strpos( $content, '<' ) ) {
    410                         $content = str_replace( $original, $translation, $content );
     412                        // Don't use $translation, it may contain backreference-like characters.
     413                        $content = preg_replace( "/\b{$original}\b/", '___TRANSLATION___', $content );
    411414                } else {
    412                         $original = preg_quote( $original, '/' );
    413                         $content  = preg_replace( "/(<([a-z0-9]*)\b[^>]*>){$original}(<\/\\2>)/m", '${1}___TRANSLATION___${3}', $content ); // Don't use $translation, it may contain backreference-like characters.
    414                         $content  = str_replace( '___TRANSLATION___', $translation, $content );
     415                        // Don't use $translation, it may contain backreference-like characters.
     416                        $content = preg_replace( "/(<([a-z0-9]*)\b[^>]*>){$original}(<\/\\2>)/m", '${1}___TRANSLATION___${3}', $content );
    415417                }
    416418
     419                $content = str_replace( '___TRANSLATION___', $translation, $content );
     420
    417421                return $content;
    418422        }
    419423