CK editor 4, Google Translate также переводит мои формулы MATHJAX, даже после того, как не перевести - PullRequest
3 голосов
/ 14 февраля 2020

Привет всем, у меня есть большая проблема, которая долго не решалась.

я использую ck editor и плагин Mathjax для добавления математической формулы вот так

<script src="https://cdn.ckeditor.com/4.13.1/standard-all/ckeditor.js"></script>

<textarea name="desc" class="form-control" id="richtext" placeholder="About this category."></textarea>

<script>

var richtext = document.getElementById('richtext');
CKEDITOR.replace('richtext', {
      on : {
            change: function ( evt )  {
            $(richtext).html(evt.editor.getData().replace(/(\r\n|\n|\r)/gm,"") ) ;
            }
        },
      extraPlugins: 'mathjax,colorbutton,font,justify,print,tableresize,uploadimage,uploadfile,pastefromword,liststyle,pagebreak',
      mathJaxLib: 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_HTML',
      height: 320
    });

    if (CKEDITOR.env.ie && CKEDITOR.env.version == 8) {
      document.getElementById('ie8-warning').className = 'tip alert';
    }
                </script>

до этого все прекрасно работает.

сейчас, когда я публикую sh данные и использую гугл переводчик, чтобы перевести данные с английского sh на хинди вот так

require_once ('assets/vendor/autoload.php');
use \Statickidz\GoogleTranslate;
$source = 'en';
$target = 'hi';
$text = "<p>This is a test question. please do not translate this <span class="math-tex">\(x = {-b \pm \sqrt{b^2-4ac} \over 2a}\)</span>equation.</p>";  
// i know there is an issue of double quotes in the class math-tex, but this is what i get from ckeditor. even if i replace the double quotes with single it does not does the job.

$tex4444t=str_replace(array("\r\n", "\r", "\n"), " ", $text);
$trans232 = new GoogleTranslate();
$results3 = $trans232->translate($source, $target, $tex4444t);

я знаю, что существует проблема двойных кавычек в классе math- текс, но это то, что я получаю от ckeditor. даже если я заменю двойные кавычки одинарными, это не сделает работу. я также пытался использовать класс notranslate с math-tex, он все еще не работает.

я пробовал множество других альтернатив, но ни одна из них не работает, пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Это появилось в MathJax трекере проблем . Похоже, что php google translate , похоже, не обрабатывает класс notranslate. Вы можете отправить им сообщение об ошибке.

Тем временем основная проблема с математикой после того, как она была «переведена», состоит в том, что после обратной косой черты есть дополнительные пробелы. Так что, возможно, замена регулярного выражения, которая преобразует обратную косую черту sh с последующим пробелом в простую обратную косую черту sh, - это все, что нужно?

Существует также другая опция, предложенная . в системе отслеживания проблем MathJax, которая является более сложной, но, вероятно, будет самым безопасным подходом.

0 голосов
/ 22 февраля 2020
$text=str_replace('"', "'",$formula_text)
$results=str_replace("\ ","\\",$text);

Это решило проблему

...