CKEditor 4: Uncaught TypeError: Cannot read property 'langEntries' of null

I’m using the Ruby gem for CK Editor (https://github.com/galetahub/ckeditor) and I’m getting this error:

Uncaught TypeError: Cannot read property 'langEntries' of null

Here’s where it’s occurring in the code:

  • Inline CKEditor with toolbar on generated code
  • Modify CKEditor link dialog to add custom attribute to links
  • ckeditor removing empty span automatically
  • In CKEditor, how can I add a “text” label to a button?
  • Can 'Send to the Server' button functionality be by-passed in CKEDITOR image plugin?
  • resize ckeditor for responsive design
  • CKEDITOR.plugins.load = CKEDITOR.tools.override(CKEDITOR.plugins.load, function (a) {
    var d = {};
    return function (b, c, e) {
        var i = {},
            g = function (b) {
                a.call(this, b, function (a) {
                    CKEDITOR.tools.extend(i, a);
                    var b = [],
                        l;
                    for (l in a) {
                        var s = a[l],
                            q = s && s.requires;
                        if (!d[l]) {
                            if (s.icons)
                                for (var u = s.icons.split(","), f = u.length; f--;) CKEDITOR.skin.addIcon(u[f], s.path + "icons/" + (CKEDITOR.env.hidpi && s.hidpi ? "hidpi/" : "") + u[f] + ".png");
                            d[l] = 1
                        }
                        if (q) {
                            q.split && (q = q.split(","));
                            for (s = 0; s < q.length; s++) i[q[s]] || b.push(q[s])
                        }
                    }
                    if (b.length) g.call(this,
                        b);
                    else { *ERRORING HERE*
                        for (l in i) {
                            s = i[l];
                            if (s.onLoad && !s.onLoad._called) {
                                s.onLoad() === false && delete i[l];
                                s.onLoad._called = 1
                            }
                        }
                        c && c.call(e || window, i)
                    }
                }, this)
            };
        g.call(this, b)
    }
    });
    CKEDITOR.plugins.setLang = function (a, d, b) {
    var c = this.get(a),
        a = c.langEntries || (c.langEntries = {}),
        c = c.lang || (c.lang = []);
    c.split && (c = c.split(","));
    CKEDITOR.tools.indexOf(c, d) == -1 && c.push(d);
    a[d] = b
    };
    CKEDITOR.ui = function (a) {
     if (a.ui) return a.ui;
    this.items = {};
    this.instances = {};
    this.editor = a;
    this._ = {
        handlers: {}
    };
    return this
    };
    

    I’m trying to use this Simple Uploads plugin and it has a whole bunch of languages. My directory structure is like this:
    enter image description here

    Here’s the documentation for CK Editor for this error:

    http://docs.ckeditor.com/#!/api/CKEDITOR.plugins-method-setLang

    All of my plugin’s language files are formatted correctly, so struggling to find what the issue is.

    Any help with resolving this would be greatly appreciated

    EDIT: Here’s the English lang file –

    CKEDITOR.plugins.setLang( 'simpleuploads', 'en',
    {
        // Tooltip for the "add file" toolbar button
        addFile : 'Add a file',
        // Tooltip for the "add image" toolbar button
        addImage: 'Add an image',
    
        // Shown after the data has been sent to the server and we're waiting for the response
        processing: 'Processing...',
    
        // File size is over config.simpleuploads_maxFileSize OR the server returns HTTP status 413
        fileTooBig : 'The file is too big, please use a smaller one.',
    
        // The extension matches one of the blacklisted ones in config.simpleuploads_invalidExtensions
        invalidExtension : 'Invalid file type, please use only valid files.',
    
        // The extension isn't included in config.simpleuploads_acceptedExtensions
        nonAcceptedExtension: 'The file type is not valid, please use only valid files:\r\n%0',
    
        // The file isn't an accepted type for images
        nonImageExtension: 'You must select an image',
    
        // The width of the image is over the allowed maximum
        imageTooWide: 'The image is too wide',
    
        // The height of the image is over the allowed maximum
        imageTooTall: 'The image is too tall'
    });
    

  • How can CKEditor be used with React.js in a way that allows React to recognize it?
  • How to use inline CKEditor in an iframe correctly?
  • setData command is not setting my data to CKEDITOR everytime
  • How do I set a value in CKEditor with Javascript?
  • ckeditor plugin dialog select get the description from the selected one
  • Firefox allows desktop image files to be dragged in to CKEditor
  • 3 Solutions collect form web for “CKEditor 4: Uncaught TypeError: Cannot read property 'langEntries' of null”

    Remove the following line from application.js

    // = require_tree ./ckeditor
    

    The problem comes from the way rails compiles the assets. It generates one big js file and if your plugin.js code does not load before the files in the /lang it throws an error and stops the execution of the generated by rails big js file. This means if you have any js code past the point where the error occurred it won’t be executed as well. Here is what helped me solve the problem:

    //= require ckeditor/init
    //= require ckeditor/config
    //= require ckeditor/plugins/YOUR_PLUGIN/plugin    // plugin.js in folder
    //= require ckeditor/plugins/YOUR_PLUGIN/lang/en   // en.js in folder
    //= require_directory .
    

    If you are using ckeditor-rails
    In app/assets/javascripts/application.js, add:

    //= require ckeditor-jquery
    

    and ensure that language value is like this:

    config.language = 'en';
    config.language_list = [ 'en:English', 'es:Spanish' ];