Title: Error translating Woocommerce plugin
Last modified: August 7, 2018

---

# Error translating Woocommerce plugin

 *  Resolved [juliman](https://wordpress.org/support/users/juliman/)
 * (@juliman)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/)
 * Hello guys, thanks for your help.
 * This is my configuration:
 * -Twenty Seventeen 1.7 theme (It happens with another themes also)
    -Only woocommerce
   plugin 3.4.4 and Loco Translate last versión.
 * Loco translate seems to work ok when I translate the theme files, but in Woocommerce,
   when I click on Save button, it’s reporting this message:
 * Error: (function(html){html.className = html.className.replace(/\bno-js\b/,’js’)})(
   document.documentElement);. Comprueba la salida de la consola para información
   de depuración
 * Then, I check the debug mode on the Chrome browser and the error log is this 
   one:
 * JQMIGRATE: Migrate is installed with logging active, version 1.4.1
    VM3360:1 
   POST [https://feeltattoo.com/wp-admin/admin-ajax.php](https://feeltattoo.com/wp-admin/admin-ajax.php)
   404 () (anonymous) @ VM3360:1 send @ jquery.js?ver=1.12.4:4 ajax @ jquery.js?
   ver=1.12.4:4 c @ admin.js?ver=2.1.4:99 d.post @ admin.js?ver=2.1.4:101 doSaveAction
   @ editor.js?ver=2.1.4:123 (anonymous) @ editor.js?ver=2.1.4:172 dispatch @ jquery.
   js?ver=1.12.4:3 r.handle @ jquery.js?ver=1.12.4:3 admin.js?ver=2.1.4:96 Loco 
   Error: Ajax failure for save d.debug @ admin.js?ver=2.1.4:96 r @ admin.js?ver
   =2.1.4:98 i @ jquery.js?ver=1.12.4:2 fireWith @ jquery.js?ver=1.12.4:2 y @ jquery.
   js?ver=1.12.4:4 c @ jquery.js?ver=1.12.4:4 XMLHttpRequest.send (async) (anonymous)
   @ VM3360:1 send @ jquery.js?ver=1.12.4:4 ajax @ jquery.js?ver=1.12.4:4 c @ admin.
   js?ver=2.1.4:99 d.post @ admin.js?ver=2.1.4:101 doSaveAction @ editor.js?ver=
   2.1.4:123 (anonymous) @ editor.js?ver=2.1.4:172 dispatch @ jquery.js?ver=1.12.4:
   3 r.handle @ jquery.js?ver=1.12.4:3 admin.js?ver=2.1.4:96 Proporciona el siguiente
   texto cuando informes un problema: —- Status 404 “Error desconocido” (text/html;
   charset=UTF-8 66405 bytes) (function(html){html.className = html.className.replace(/\
   bno-js\b/,’js’)})(document.documentElement); No se encontró la página – Feel 
   Tattoo window._wpemojiSettings = {“baseUrl”:”https:\/\/s.w.org\/images\/core\/
   emoji\/11\/72×72\/”,”ext”:”.png”,”svgUrl”:”https:\/\/s.w.org\/images\/core\/emoji\/
   11\/svg\/”,”svgExt”:”.svg”,”source”:{“wpemoji”:”https:\/\/feeltattoo.com\/wp-
   includes\/js\/wp-emoji.js?ver=4.9.8″,”twemoji”:”https:\/\/feeltattoo.com\/wp-
   includes\/js\/twemoji.js?ver=4.9.8″}}; ( function( window, document, settings){
   var src, ready, ii, tests; /* * Create a canvas element for testing native browser
   support * of emoji. */ var canvas = document.createElement( ‘canvas’ ); var context
   = canvas.getContext && canvas.getContext( ‘2d’ ); /** * Check if two sets of 
   Emoji characters render the same. * * [@param](https://wordpress.org/support/users/param/)
   set1 array Set of Emoji characters. * [@param](https://wordpress.org/support/users/param/)
   set2 array Set of Emoji characters. * @returns {boolean} True if the two sets
   render the same. */ function emojiSetsRenderIdentically( set1, set2 ) { var stringFromCharCode
   = String.fromCharCode; // Cleanup from previous test. context.clearRect( 0, 0,
   canvas.width, canvas.height ); context.fillText( stringFromCharCode.apply( this,
   set1 ), 0, 0 ); var rendered1 = canvas.toDataURL(); // Cleanup from previous 
   test. context.clearRect( 0, 0, canvas.width, canvas.height ); context.fillText(
   stringFromCharCode.apply( this, set2 ), 0, 0 ); var rendered2 = canvas.toDataURL();
   return rendered1 === rendered2; } /** * Detect if the browser supports rendering
   emoji or flag emoji. Flag emoji are a single glyph * made of two characters, 
   so some browsers (notably, Firefox OS X) don’t support them. * * [@since](https://wordpress.org/support/users/since/)
   4.2.0 * * [@param](https://wordpress.org/support/users/param/) type {String} 
   Whether to test for support of “flag” or “emoji”. * [@return](https://wordpress.org/support/users/return/){
   Boolean} True if the browser can render emoji, false if it cannot. */ function
   browserSupportsEmoji( type ) { var isIdentical; if ( ! context || ! context.fillText){
   return false; } /* * Chrome on OS X added native emoji rendering in M41. Unfortunately,*
   it doesn’t work when the font is bolder than 500 weight. So, we * check for bold
   rendering support to avoid invisible emoji in Chrome. */ context.textBaseline
   = ‘top’; context.font = ‘600 32px Arial’; switch ( type ) { case ‘flag’: /* *
   Test for UN flag compatibility. This is the least supported of the letter locale
   flags, * so gives us an easy test for full support. * * To test for support, 
   we try to render it, and compare the rendering to how it would look if * the 
   browser doesn’t render it correctly ([U] + [N]). */ isIdentical = emojiSetsRenderIdentically([
   55356, 56826, 55356, 56819 ], [ 55356, 56826, 8203, 55356, 56819 ] ); if ( isIdentical){
   return false; } /* * Test for English flag compatibility. England is a country
   in the United Kingdom, it * does not have a two letter locale code but rather
   an five letter sub-division code. * * To test for support, we try to render it,
   and compare the rendering to how it would look if * the browser doesn’t render
   it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical
   = emojiSetsRenderIdentically( [ 55356, 57332, 56128, 56423, 56128, 56418, 56128,
   56421, 56128, 56430, 56128, 56423, 56128, 56447 ], [ 55356, 57332, 8203, 56128,
   56423, 8203, 56128, 56418, 8203, 56128, 56421, 8203, 56128, 56430, 8203, 56128,
   56423, 8203, 56128, 56447 ] ); return ! isIdentical; case ’emoji’: /* * She’s
   the hero Emoji deserves, but not the one it needs right now. * * To test for 
   support, try to render a new emoji (female superhero), * then compare it to how
   it would look if the browser doesn’t render it correctly * (superhero + female
   sign). */ isIdentical = emojiSetsRenderIdentically( [55358, 56760, 9792, 65039],[
   55358, 56760, 8203, 9792, 65039] ); return ! isIdentical; } return false; } function
   addScript( src ) { var script = document.createElement( ‘script’ ); script.src
   = src; script.defer = script.type = ‘text/javascript’; document.getElementsByTagName(‘
   head’ )[0].appendChild( script ); } tests = Array( ‘flag’, ’emoji’ ); settings.
   supports = { everything: true, everythingExceptFlag: true }; for( ii = 0; ii 
   < tests.length; ii++ ) { settings.supports[ tests[ ii ] ] = browserSupportsEmoji(
   tests[ ii ] ); settings.supports.everything = settings.supports.everything &&
   settings.supports[ tests[ ii ] ]; if ( ‘flag’ !== tests[ ii ] ) { settings.supports.
   everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[
   tests[ ii ] ]; } } settings.supports.everythingExceptFlag = settings.supports.
   everythingExceptFlag && ! settings.supports.flag; settings.DOMReady = false; 
   settings.readyCallback = function() { settings.DOMReady = true; }; if ( ! settings.
   supports.everything ) { ready = function() { settings.readyCallback(); }; if (
   document.addEventListener ) { document.addEventListener( ‘DOMContentLoaded’, 
   ready, false ); window.addEventListener( ‘load’, ready, false ); } else { window.
   attachEvent( ‘onload’, ready ); document.attachEvent( ‘onreadystatechange’, function(){
   if ( ‘complete’ === document.readyState ) { settings.readyCallback(); } } ); }
   src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji);}
   else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript(
   src.wpemoji ); } } } )( window, document, window._wpemojiSettings ); img.wp-smiley,
   img.emoji { display: inline !important; border: none !important; box-shadow: 
   none !important; height: 1em !important; width: 1em !important; margin: 0 .07em!
   important; vertical-align: -0.1em !important; background: none !important; padding:
   0 !important; } .woocommerce form .form-row .required { visibility: visible; }
   <style>.woocommerce-product-gallery{ opacity: 1 !important; }</style> #wpadminbar{
   display:none; } html { margin-top: 32px !important; } * html body { margin-top:
   32px !important; } [@media](https://wordpress.org/support/users/media/) screen
   and ( max-width: 782px ) { html { margin-top: 46px !important; } * html body {
   margin-top: 46px !important; } } Ir al contenido Feel Tattoo Look is not permanent
   Menú Tienda Consejos Quiénes somos ¡Vaya! Esta página no se encuentra. Parece
   que no hay nada en esa ubicación ¿quieres probar a buscar? Buscar por: Buscar
   Creado con WordPress var c = document.body.className; c = c.replace(/woocommerce-
   no-js/, ‘woocommerce-js’); document.body.className = c; /* <![CDATA[ */ var wc_add_to_cart_params
   = {“ajax_url”:”\/wp-admin\/admin-ajax.php”,”wc_ajax_url”:”\/?wc-ajax=%%endpoint%%”,”
   i18n_view_cart”:”Ver carrito”,”cart_url”:”https:\/\/feeltattoo.com\/carrito\/”,”
   is_cart”:””,”cart_redirect_after_add”:”no”}; /* ]]> */ /* <![CDATA[ */ var woocommerce_params
   = {“ajax_url”:”\/wp-admin\/admin-ajax.php”,”wc_ajax_url”:”\/?wc-ajax=%%endpoint%%”};/*]]
   > */ /* <![CDATA[ */ var wc_cart_fragments_params = {“ajax_url”:”\/wp-admin\/
   admin-ajax.php”,”wc_ajax_url”:”\/?wc-ajax=%%endpoint%%”,”cart_hash_key”:”wc_cart_hash_f0026dac7fae5015854996f0a8fa6482″,”
   fragment_name”:”wc_fragments_f0026dac7fae5015854996f0a8fa6482″}; /* ]]> */ /*
   <![CDATA[ */ var twentyseventeenScreenReaderText = {“quote”:”<svg class=\”icon
   icon-quote-right\” aria-hidden=\”true\” role=\”img\”> <use href=\”#icon-quote-
   right\” xlink:href=\”#icon-quote-right\”><\/use> <\/svg>”,”expand”:”Expande el
   men\u00fa inferior”,”collapse”:”Plegar men\u00fa inferior”,”icon”:”<svg class
   =\”icon icon-angle-down\” aria-hidden=\”true\” role=\”img\”> <use href=\”#icon-
   angle-down\” xlink:href=\”#icon-angle-down\”><\/use> <span class=\”svg-fallback
   icon-angle-down\”><\/span><\/svg>”}; /* ]]> */ (function() { var request, b =
   document.body, c = ‘className’, cs = ‘customize-support’, rcs = new RegExp(‘(
   ^|\\s+)(no-)?’+cs+'(\\s+|$)’); request = true; b[c] = b[c].replace( rcs, ‘ ‘ );//
   The customizer requires postMessage and CORS (if the site is cross domain) b[
   c] += ( window.postMessage && request ? ‘ ‘ : ‘ no-‘ ) + cs; }());
 * I’ve also activated the debug mode and this the report of the file:
 * [07-Aug-2018 05:18:36 UTC] [Loco.warning] “Fallo al crear copia de seguridad 
   del fichero en “langs”. Compruebe los permisos del fichero o desactive las copias
   de seguridad.” in src/ajax/SaveController.php:68
 * I’ve checked with my hosting in order to be sure before posting that there is
   no security rules or any barrier that is causing the problem. They told me everything
   is fine and it seems that the bug is not in their side.
 * Can you help me please to resolve the issue?
 * Thanks 🙂

Viewing 7 replies - 1 through 7 (of 7 total)

 *  Plugin Author [Tim W](https://wordpress.org/support/users/timwhitlock/)
 * (@timwhitlock)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10566321)
 * The warning about not being able to write a backup file is probably unrelated,
   but you should fix your file permissions so that backups work. If you can’t do
   that then disable backups in settings to avoid the warning.
 * As for what’s causing your 404, I cannot possibly say. Dozens of people have 
   reported this (very often with woocommerce) and it always turns out to be an 
   issue external to my plugin. I can only refer you to the FAQ about blocked Ajax
   requests: [https://localise.biz/wordpress/plugin/faqs/ajax-errors](https://localise.biz/wordpress/plugin/faqs/ajax-errors)
 *  Thread Starter [juliman](https://wordpress.org/support/users/juliman/)
 * (@juliman)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10566542)
 * Ey Tim, thanks for your quick reply.
 * Yes, I’ve checked the Ajax errors FAQ and I’ve talking with my hosting in order
   to be sure that there is not a server proble before submitting the request in
   the forum.
 * 1) I don’t have security problems or barriers.
    2) I’m following the recommendations
   of saving files for Woocommerce (selecting the OTHER option in order to provide
   the specific path for Woocommerce) 3) I’ve talking with my hosting. No security
   no barries, everything seems fine. (Also, other woocommerce works OK in the same
   server)
 * So, I don’t have more bullets to shoot here.
 * Hope not sound rude Tim but, if this is happening to so many people… Don’t you
   think is worth it to take a deeper look to see what is happening?
 * Besides if the plugin code fault or not. At the end we only want to use your 
   plugin in our sites, and the result is that we can not 🙁
 * Thanks.
 *  Plugin Author [Tim W](https://wordpress.org/support/users/timwhitlock/)
 * (@timwhitlock)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10566758)
 * > Hope not sound rude Tim but, if this is happening to so many people… Don’t 
   > you think is worth it to take a deeper look to see what is happening?
 * I have spent countless hours over several years speaking to people with every
   conceivable server issue you can imagine. If I could fix this issue in my plugin
   I would have. Please don’t imply that I haven’t taken a deeper look.
 * Every person who has solved this problem has found it to be an external issue.
   As for everybody else – nobody has ever been able to provide steps to reproduce
   the problem. Perhaps you will be the first, but as it stands your issue is the
   same one I see every week. Something is blocking Ajax requests with no reason
   as to what or why.
 * If you can’t provide evidence of a bug or at least steps to reliably reproduce
   the error I can only leave you to look at other people’s solutions on this forum.
 * Here’s one from yesterday:
    [https://wordpress.org/support/topic/error-cdata-with-woocommerce/](https://wordpress.org/support/topic/error-cdata-with-woocommerce/)
   > Currently unsolved.
 * Here’s one from a couple of weeks earlier:
    [https://wordpress.org/support/topic/error-document-documentelement-classname/#post-10468846](https://wordpress.org/support/topic/error-document-documentelement-classname/#post-10468846)
   > Solved by disabling gzip compression.
 * Here’s another:
    [https://wordpress.org/support/topic/error-403-error-forbidden-check-console-output-for-debugging-information/](https://wordpress.org/support/topic/error-403-error-forbidden-check-console-output-for-debugging-information/)
   > Solved by altering Web Application Firewall settings.
 * There are many more.
 *  Plugin Author [Tim W](https://wordpress.org/support/users/timwhitlock/)
 * (@timwhitlock)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10566778)
 * Also, if you intend to investigate further. Please install the latest dev version
   as it may contain changes that fix the issue. [https://localise.biz/wordpress/plugin/developers](https://localise.biz/wordpress/plugin/developers)
 *  Thread Starter [juliman](https://wordpress.org/support/users/juliman/)
 * (@juliman)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10567328)
 * Thanks Tim.
 * I’m talking again with my hosting but I don’t have much hope…
 * I’ve installed the Loco dev versión but the issue is still there.
 * I would like to deep on this, but I don’t have the technical skills to go much
   further.
 * If the plugin is OK, there is an Ajax problem but the hosting says everything
   is fine … I don’t know what else I can do, but thanks anyway, your support is
   very helpful.
 * Hope in the future someone find out which is the problem and we can work with
   your plugin again.
 * Thanks!
 *  Thread Starter [juliman](https://wordpress.org/support/users/juliman/)
 * (@juliman)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10569866)
 * Ey Tim, solved!
 * Guess what: The hosting had a security rule that was limiting the access to admin-
   ajax.php
 * If someone has the same problem please be sure:
 * -Your hosting is checking the specific domain where the problem is. (The rule
   applies to the domains and not the entire server, so you can have another domain
   with wordpress where everything works -also my hosting was applying rules to 
   other domain, so please check with your hosting that they are working in the 
   right domain)
 * -Push your hosting to fix it. At the beginning they were telling me is not their
   problem, it was.
 * Thanks Tim for your help!
    -  This reply was modified 7 years, 8 months ago by [juliman](https://wordpress.org/support/users/juliman/).
 *  Plugin Author [Tim W](https://wordpress.org/support/users/timwhitlock/)
 * (@timwhitlock)
 * [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10570063)
 * The most common cause. Thanks for posting back.
 * > Push your hosting to fix it. At the beginning they were telling me is not their
   > problem, it was.
 * Yes, this.
 * If you mention a specific plugin they will always refer you back to the author,
   because that’s the easiest way for them to offload responsibility and save themselves
   some work.

Viewing 7 replies - 1 through 7 (of 7 total)

The topic ‘Error translating Woocommerce plugin’ is closed to new replies.

 * ![](https://ps.w.org/loco-translate/assets/icon-256x256.png?rev=1000676)
 * [Loco Translate](https://wordpress.org/plugins/loco-translate/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/loco-translate/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/loco-translate/)
 * [Active Topics](https://wordpress.org/support/plugin/loco-translate/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/loco-translate/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/loco-translate/reviews/)

 * 7 replies
 * 2 participants
 * Last reply from: [Tim W](https://wordpress.org/support/users/timwhitlock/)
 * Last activity: [7 years, 8 months ago](https://wordpress.org/support/topic/error-translating-woocommerce-plugin/#post-10570063)
 * Status: resolved