diff --git a/composer.json b/composer.json
index a492e3ab522f4ff2f8e0288edbb53a648f067ac4..dfa7427e3cbd9c3f098b6c490c0ab92aea67f365 100644
--- a/composer.json
+++ b/composer.json
@@ -93,6 +93,7 @@
         "drupal/admin_toolbar": "1.26",
         "drupal/administerusersbyrole": "2.0-alpha6",
         "drupal/allowed_formats": "1.1",
+        "drupal/anchor_link": "^1.6",
         "drupal/better_exposed_filters": "3.0-alpha6",
         "drupal/bigmenu": "^1.0@alpha",
         "drupal/block_field": "^1.0@alpha",
diff --git a/composer.lock b/composer.lock
index b2bf2a137c6583baf8045b88ca4f78fa396e13c3..ce1586a6b1d182507e5b9e8c82cd418fe8c19826 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "d22068b38fe15ec6cf412c8f1f8fcbe8",
+    "content-hash": "62411bfecca962974f1d45e84a4e66f4",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -1278,7 +1278,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/address",
+                "url": "https://git.drupalcode.org/project/address.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -1335,7 +1335,7 @@
             "version": "3.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/addtocalendar",
+                "url": "https://git.drupalcode.org/project/addtocalendar.git",
                 "reference": "8.x-3.1"
             },
             "dist": {
@@ -1405,7 +1405,7 @@
             "version": "1.26.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/admin_toolbar",
+                "url": "https://git.drupalcode.org/project/admin_toolbar.git",
                 "reference": "8.x-1.26"
             },
             "dist": {
@@ -1486,7 +1486,7 @@
             "version": "2.0.0-alpha6",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/administerusersbyrole",
+                "url": "https://git.drupalcode.org/project/administerusersbyrole.git",
                 "reference": "8.x-2.0-alpha6"
             },
             "dist": {
@@ -1541,7 +1541,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/allowed_formats",
+                "url": "https://git.drupalcode.org/project/allowed_formats.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -1583,12 +1583,63 @@
                 "source": "http://cgit.drupalcode.org/allowed_formats"
             }
         },
+        {
+            "name": "drupal/anchor_link",
+            "version": "1.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://git.drupalcode.org/project/anchor_link.git",
+                "reference": "8.x-1.6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://ftp.drupal.org/files/projects/anchor_link-8.x-1.6.zip",
+                "reference": "8.x-1.6",
+                "shasum": "89c436f459e62dbdfdaf52a92f9f9265eec1df13"
+            },
+            "require": {
+                "drupal/core": "*"
+            },
+            "type": "drupal-module",
+            "extra": {
+                "branch-alias": {
+                    "dev-1.x": "1.x-dev"
+                },
+                "drupal": {
+                    "version": "8.x-1.6",
+                    "datestamp": "1509961084",
+                    "security-coverage": {
+                        "status": "covered",
+                        "message": "Covered by Drupal's security advisory policy"
+                    }
+                }
+            },
+            "notification-url": "https://packages.drupal.org/8/downloads",
+            "license": [
+                "GPL-2.0-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "Mohammed J. Razem",
+                    "homepage": "https://www.drupal.org/user/255384"
+                },
+                {
+                    "name": "RajabNatshah",
+                    "homepage": "https://www.drupal.org/user/1414312"
+                }
+            ],
+            "description": "This plugin module adds the better link dialog and anchor related features to CKEditor in Drupal 8",
+            "homepage": "https://www.drupal.org/project/anchor_link",
+            "support": {
+                "source": "https://git.drupalcode.org/project/anchor_link"
+            }
+        },
         {
             "name": "drupal/better_exposed_filters",
             "version": "3.0.0-alpha6",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/better_exposed_filters",
+                "url": "https://git.drupalcode.org/project/better_exposed_filters.git",
                 "reference": "8.x-3.0-alpha6"
             },
             "dist": {
@@ -1654,7 +1705,7 @@
             "version": "1.0.0-alpha1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/bigmenu",
+                "url": "https://git.drupalcode.org/project/bigmenu.git",
                 "reference": "8.x-1.0-alpha1"
             },
             "dist": {
@@ -1705,7 +1756,7 @@
             "version": "1.0.0-alpha8",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/block_field",
+                "url": "https://git.drupalcode.org/project/block_field.git",
                 "reference": "8.x-1.0-alpha8"
             },
             "dist": {
@@ -1760,7 +1811,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/block_permissions",
+                "url": "https://git.drupalcode.org/project/block_permissions.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -1814,7 +1865,7 @@
             "version": "1.2.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/block_region_permissions",
+                "url": "https://git.drupalcode.org/project/block_region_permissions.git",
                 "reference": "8.x-1.2"
             },
             "dist": {
@@ -1861,7 +1912,7 @@
             "version": "3.16.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/bootstrap",
+                "url": "https://git.drupalcode.org/project/bootstrap.git",
                 "reference": "8.x-3.16"
             },
             "dist": {
@@ -1926,7 +1977,7 @@
             "version": "1.0.0-beta1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/ckeditor_indentblock",
+                "url": "https://git.drupalcode.org/project/ckeditor_indentblock.git",
                 "reference": "8.x-1.0-beta1"
             },
             "dist": {
@@ -1980,7 +2031,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/config_direct_save",
+                "url": "https://git.drupalcode.org/project/config_direct_save.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -2027,7 +2078,7 @@
             "version": "1.3.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/config_filter",
+                "url": "https://git.drupalcode.org/project/config_filter.git",
                 "reference": "8.x-1.3"
             },
             "dist": {
@@ -2096,7 +2147,7 @@
             "version": "2.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/config_ignore",
+                "url": "https://git.drupalcode.org/project/config_ignore.git",
                 "reference": "8.x-2.1"
             },
             "dist": {
@@ -2153,7 +2204,7 @@
             "version": "1.8.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/config_installer",
+                "url": "https://git.drupalcode.org/project/config_installer.git",
                 "reference": "8.x-1.8"
             },
             "dist": {
@@ -2199,7 +2250,7 @@
             "version": "1.5.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/config_update",
+                "url": "https://git.drupalcode.org/project/config_update.git",
                 "reference": "8.x-1.5"
             },
             "dist": {
@@ -2506,7 +2557,7 @@
             "version": "1.0.0-alpha1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/content_access",
+                "url": "https://git.drupalcode.org/project/content_access.git",
                 "reference": "8.x-1.0-alpha1"
             },
             "dist": {
@@ -2803,7 +2854,7 @@
             "version": "2.0.0-rc1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/crop",
+                "url": "https://git.drupalcode.org/project/crop.git",
                 "reference": "8.x-2.0-rc1"
             },
             "dist": {
@@ -2859,7 +2910,7 @@
             "version": "3.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/ctools",
+                "url": "https://git.drupalcode.org/project/ctools.git",
                 "reference": "8.x-3.0"
             },
             "dist": {
@@ -3029,7 +3080,7 @@
             "version": "2.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/devel",
+                "url": "https://git.drupalcode.org/project/devel.git",
                 "reference": "8.x-2.0"
             },
             "dist": {
@@ -3114,7 +3165,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/draggableviews",
+                "url": "https://git.drupalcode.org/project/draggableviews.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -3181,7 +3232,7 @@
             "version": "2.0.0-alpha3",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/dropzonejs",
+                "url": "https://git.drupalcode.org/project/dropzonejs.git",
                 "reference": "8.x-2.0-alpha3"
             },
             "dist": {
@@ -3330,7 +3381,7 @@
             "version": "1.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/editor_advanced_link",
+                "url": "https://git.drupalcode.org/project/editor_advanced_link.git",
                 "reference": "8.x-1.4"
             },
             "dist": {
@@ -3377,7 +3428,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/embed",
+                "url": "https://git.drupalcode.org/project/embed.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -3442,7 +3493,7 @@
             "version": "1.0.0-beta1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/entity",
+                "url": "https://git.drupalcode.org/project/entity.git",
                 "reference": "8.x-1.0-beta1"
             },
             "dist": {
@@ -3505,7 +3556,7 @@
             "version": "1.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/entity_browser",
+                "url": "https://git.drupalcode.org/project/entity_browser.git",
                 "reference": "8.x-1.4"
             },
             "dist": {
@@ -3589,7 +3640,7 @@
             "version": "1.0.0-beta1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/entity_clone",
+                "url": "https://git.drupalcode.org/project/entity_clone.git",
                 "reference": "8.x-1.0-beta1"
             },
             "dist": {
@@ -3636,7 +3687,7 @@
             "version": "1.0.0-beta2",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/entity_embed",
+                "url": "https://git.drupalcode.org/project/entity_embed.git",
                 "reference": "8.x-1.0-beta2"
             },
             "dist": {
@@ -3704,7 +3755,7 @@
             "description": "Allows any entity to be embedded within a text area using a WYSIWYG editor.",
             "homepage": "https://www.drupal.org/project/entity_embed",
             "support": {
-                "source": "http://cgit.drupalcode.org/entity_embed",
+                "source": "https://git.drupalcode.org/project/entity_embed",
                 "issues": "https://www.drupal.org/project/issues/entity_embed",
                 "irc": "irc://irc.freenode.org/drupal-media"
             }
@@ -3714,7 +3765,7 @@
             "version": "1.3.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/entity_reference_revisions",
+                "url": "https://git.drupalcode.org/project/entity_reference_revisions.git",
                 "reference": "8.x-1.3"
             },
             "dist": {
@@ -3772,7 +3823,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/externalauth",
+                "url": "https://git.drupalcode.org/project/externalauth.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -3827,7 +3878,7 @@
             "version": "3.8.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/features",
+                "url": "https://git.drupalcode.org/project/features.git",
                 "reference": "8.x-3.8"
             },
             "dist": {
@@ -3904,7 +3955,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/field_group",
+                "url": "https://git.drupalcode.org/project/field_group.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -3967,7 +4018,7 @@
             "version": "1.0.0-beta1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/field_permissions",
+                "url": "https://git.drupalcode.org/project/field_permissions.git",
                 "reference": "8.x-1.0-beta1"
             },
             "dist": {
@@ -4027,7 +4078,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/file_browser",
+                "url": "https://git.drupalcode.org/project/file_browser.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -4081,7 +4132,7 @@
             "version": "1.0.0-beta6",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/focal_point",
+                "url": "https://git.drupalcode.org/project/focal_point.git",
                 "reference": "8.x-1.0-beta6"
             },
             "dist": {
@@ -4132,7 +4183,7 @@
             "version": "1.10.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/geolocation",
+                "url": "https://git.drupalcode.org/project/geolocation.git",
                 "reference": "8.x-1.10"
             },
             "dist": {
@@ -4183,7 +4234,7 @@
             "version": "2.2.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/google_analytics",
+                "url": "https://git.drupalcode.org/project/google_analytics.git",
                 "reference": "8.x-2.2"
             },
             "dist": {
@@ -4239,7 +4290,7 @@
             "version": "1.28.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/honeypot",
+                "url": "https://git.drupalcode.org/project/honeypot.git",
                 "reference": "8.x-1.28"
             },
             "dist": {
@@ -4295,7 +4346,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/image_popup",
+                "url": "https://git.drupalcode.org/project/image_popup.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -4350,7 +4401,7 @@
             "version": "1.0.0-rc1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/inline_entity_form",
+                "url": "https://git.drupalcode.org/project/inline_entity_form.git",
                 "reference": "8.x-1.0-rc1"
             },
             "dist": {
@@ -4416,7 +4467,7 @@
             "version": "3.0.0-alpha1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/libraries",
+                "url": "https://git.drupalcode.org/project/libraries.git",
                 "reference": "8.x-3.0-alpha1"
             },
             "dist": {
@@ -4477,7 +4528,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/link_attributes",
+                "url": "https://git.drupalcode.org/project/link_attributes.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -4524,7 +4575,7 @@
             "version": "5.0.0-beta6",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/linkit",
+                "url": "https://git.drupalcode.org/project/linkit.git",
                 "reference": "8.x-5.0-beta6"
             },
             "dist": {
@@ -4577,7 +4628,7 @@
             "version": "1.3.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/magnific_popup",
+                "url": "https://git.drupalcode.org/project/magnific_popup.git",
                 "reference": "8.x-1.3"
             },
             "dist": {
@@ -4640,7 +4691,7 @@
             "version": "2.7.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/mathjax",
+                "url": "https://git.drupalcode.org/project/mathjax.git",
                 "reference": "8.x-2.7"
             },
             "dist": {
@@ -4691,7 +4742,7 @@
             "version": "2.0.0-alpha1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/media_entity_browser",
+                "url": "https://git.drupalcode.org/project/media_entity_browser.git",
                 "reference": "8.x-2.0-alpha1"
             },
             "dist": {
@@ -4756,7 +4807,7 @@
             "version": "2.0.0-alpha2",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/media_entity_twitter",
+                "url": "https://git.drupalcode.org/project/media_entity_twitter.git",
                 "reference": "8.x-2.0-alpha2"
             },
             "dist": {
@@ -4816,7 +4867,7 @@
             "version": "1.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/menu_block",
+                "url": "https://git.drupalcode.org/project/menu_block.git",
                 "reference": "8.x-1.4"
             },
             "dist": {
@@ -4883,7 +4934,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/menu_block_title",
+                "url": "https://git.drupalcode.org/project/menu_block_title.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -4937,7 +4988,7 @@
             "version": "1.7.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/menu_breadcrumb",
+                "url": "https://git.drupalcode.org/project/menu_breadcrumb.git",
                 "reference": "8.x-1.7"
             },
             "dist": {
@@ -5004,7 +5055,7 @@
             "version": "1.8.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/metatag",
+                "url": "https://git.drupalcode.org/project/metatag.git",
                 "reference": "8.x-1.8"
             },
             "dist": {
@@ -5072,7 +5123,7 @@
             "version": "dev-1.x",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/migrate_devel",
+                "url": "https://git.drupalcode.org/project/migrate_devel.git",
                 "reference": "d56b84fe79621199305f36c707bbb5d209ee1b6b"
             },
             "require": {
@@ -5106,15 +5157,14 @@
             "homepage": "https://www.drupal.org/project/migrate_devel",
             "support": {
                 "source": "http://cgit.drupalcode.org/migrate_devel"
-            },
-            "time": "2017-06-25T23:46:13+00:00"
+            }
         },
         {
             "name": "drupal/migrate_plus",
             "version": "4.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/migrate_plus",
+                "url": "https://git.drupalcode.org/project/migrate_plus.git",
                 "reference": "8.x-4.0"
             },
             "dist": {
@@ -5176,7 +5226,7 @@
             "version": "4.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/migrate_tools",
+                "url": "https://git.drupalcode.org/project/migrate_tools.git",
                 "reference": "8.x-4.0"
             },
             "dist": {
@@ -5243,7 +5293,7 @@
             "version": "3.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/module_filter",
+                "url": "https://git.drupalcode.org/project/module_filter.git",
                 "reference": "8.x-3.1"
             },
             "dist": {
@@ -5298,7 +5348,7 @@
             "version": "1.6.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/paragraphs",
+                "url": "https://git.drupalcode.org/project/paragraphs.git",
                 "reference": "8.x-1.6"
             },
             "dist": {
@@ -5378,7 +5428,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/pathauto",
+                "url": "https://git.drupalcode.org/project/pathauto.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -5439,7 +5489,7 @@
             "version": "1.0.0-rc2",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/realname",
+                "url": "https://git.drupalcode.org/project/realname.git",
                 "reference": "8.x-1.0-rc2"
             },
             "dist": {
@@ -5516,7 +5566,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/redis",
+                "url": "https://git.drupalcode.org/project/redis.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -5575,7 +5625,7 @@
             "version": "1.0.0-alpha2",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/roleassign",
+                "url": "https://git.drupalcode.org/project/roleassign.git",
                 "reference": "8.x-1.0-alpha2"
             },
             "dist": {
@@ -5622,7 +5672,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/scheduler",
+                "url": "https://git.drupalcode.org/project/scheduler.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -5690,7 +5740,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/search_api",
+                "url": "https://git.drupalcode.org/project/search_api.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -5791,7 +5841,7 @@
             "version": "3.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/search_api_glossary",
+                "url": "https://git.drupalcode.org/project/search_api_glossary.git",
                 "reference": "8.x-3.4"
             },
             "dist": {
@@ -5843,7 +5893,7 @@
             "version": "1.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/simple_gmap",
+                "url": "https://git.drupalcode.org/project/simple_gmap.git",
                 "reference": "8.x-1.4"
             },
             "dist": {
@@ -5894,7 +5944,7 @@
             "version": "1.0.0-beta3",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/simple_megamenu",
+                "url": "https://git.drupalcode.org/project/simple_megamenu.git",
                 "reference": "8.x-1.0-beta3"
             },
             "dist": {
@@ -5945,7 +5995,7 @@
             "version": "3.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/simple_sitemap",
+                "url": "https://git.drupalcode.org/project/simple_sitemap.git",
                 "reference": "8.x-3.0"
             },
             "dist": {
@@ -6006,7 +6056,7 @@
             "version": "3.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/simplesamlphp_auth",
+                "url": "https://git.drupalcode.org/project/simplesamlphp_auth.git",
                 "reference": "8.x-3.0"
             },
             "dist": {
@@ -6071,7 +6121,7 @@
             "version": "dev-1.x",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/smtp",
+                "url": "https://git.drupalcode.org/project/smtp.git",
                 "reference": "84f789cbba894290cf82ed2558c8a4e7e24f3c89"
             },
             "require": {
@@ -6136,7 +6186,7 @@
             "version": "1.3.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/social_media",
+                "url": "https://git.drupalcode.org/project/social_media.git",
                 "reference": "8.x-1.3"
             },
             "dist": {
@@ -6185,7 +6235,7 @@
             "version": "2.6.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/social_media_links",
+                "url": "https://git.drupalcode.org/project/social_media_links.git",
                 "reference": "8.x-2.6"
             },
             "dist": {
@@ -6233,7 +6283,7 @@
             "version": "1.2.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/superfish",
+                "url": "https://git.drupalcode.org/project/superfish.git",
                 "reference": "8.x-1.2"
             },
             "dist": {
@@ -6283,7 +6333,7 @@
             "version": "1.8.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/svg_image",
+                "url": "https://git.drupalcode.org/project/svg_image.git",
                 "reference": "8.x-1.8"
             },
             "dist": {
@@ -6330,7 +6380,7 @@
             "version": "1.5.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/token",
+                "url": "https://git.drupalcode.org/project/token.git",
                 "reference": "8.x-1.5"
             },
             "dist": {
@@ -6397,7 +6447,7 @@
             "version": "3.0.0-alpha0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/twitter_block",
+                "url": "https://git.drupalcode.org/project/twitter_block.git",
                 "reference": "8.x-3.0-alpha0"
             },
             "dist": {
@@ -6460,7 +6510,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/userprotect",
+                "url": "https://git.drupalcode.org/project/userprotect.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -6516,7 +6566,7 @@
             "version": "2.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/video_embed_field",
+                "url": "https://git.drupalcode.org/project/video_embed_field.git",
                 "reference": "8.x-2.0"
             },
             "dist": {
@@ -6577,7 +6627,7 @@
             "version": "1.0.0-alpha1",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/view_unpublished",
+                "url": "https://git.drupalcode.org/project/view_unpublished.git",
                 "reference": "8.x-1.0-alpha1"
             },
             "dist": {
@@ -6636,7 +6686,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_accordion",
+                "url": "https://git.drupalcode.org/project/views_accordion.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -6684,7 +6734,7 @@
             "version": "1.0.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_ajax_history",
+                "url": "https://git.drupalcode.org/project/views_ajax_history.git",
                 "reference": "8.x-1.0"
             },
             "dist": {
@@ -6743,7 +6793,7 @@
             "version": "1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_autocomplete_filters",
+                "url": "https://git.drupalcode.org/project/views_autocomplete_filters.git",
                 "reference": "8.x-1.1"
             },
             "dist": {
@@ -6794,7 +6844,7 @@
             "version": "3.1.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_bootstrap",
+                "url": "https://git.drupalcode.org/project/views_bootstrap.git",
                 "reference": "8.x-3.1"
             },
             "dist": {
@@ -6856,7 +6906,7 @@
             "version": "2.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_bulk_operations",
+                "url": "https://git.drupalcode.org/project/views_bulk_operations.git",
                 "reference": "8.x-2.4"
             },
             "dist": {
@@ -6926,7 +6976,7 @@
             "version": "3.3.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_fieldsets",
+                "url": "https://git.drupalcode.org/project/views_fieldsets.git",
                 "reference": "8.x-3.3"
             },
             "dist": {
@@ -6981,7 +7031,7 @@
             "version": "1.5.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_infinite_scroll",
+                "url": "https://git.drupalcode.org/project/views_infinite_scroll.git",
                 "reference": "8.x-1.5"
             },
             "dist": {
@@ -7032,7 +7082,7 @@
             "version": "4.4.0",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/views_slideshow",
+                "url": "https://git.drupalcode.org/project/views_slideshow.git",
                 "reference": "8.x-4.4"
             },
             "dist": {
@@ -7093,7 +7143,7 @@
             "version": "5.0.0-rc12",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/webform",
+                "url": "https://git.drupalcode.org/project/webform.git",
                 "reference": "8.x-5.0-rc12"
             },
             "dist": {
@@ -7192,7 +7242,7 @@
             "version": "5.0.0-alpha2",
             "source": {
                 "type": "git",
-                "url": "https://git.drupal.org/project/webform_views",
+                "url": "https://git.drupalcode.org/project/webform_views.git",
                 "reference": "8.x-5.0-alpha2"
             },
             "dist": {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index de40e2763a5a612f69837e3020486b2c62cc3a68..9247e6efe47d3d8cdb7e4e893d45b5c664a0514b 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1322,7 +1322,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/address",
+            "url": "https://git.drupalcode.org/project/address.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -1381,7 +1381,7 @@
         "version_normalized": "3.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/addtocalendar",
+            "url": "https://git.drupalcode.org/project/addtocalendar.git",
             "reference": "8.x-3.1"
         },
         "dist": {
@@ -1453,7 +1453,7 @@
         "version_normalized": "1.26.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/admin_toolbar",
+            "url": "https://git.drupalcode.org/project/admin_toolbar.git",
             "reference": "8.x-1.26"
         },
         "dist": {
@@ -1536,7 +1536,7 @@
         "version_normalized": "2.0.0.0-alpha6",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/administerusersbyrole",
+            "url": "https://git.drupalcode.org/project/administerusersbyrole.git",
             "reference": "8.x-2.0-alpha6"
         },
         "dist": {
@@ -1593,7 +1593,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/allowed_formats",
+            "url": "https://git.drupalcode.org/project/allowed_formats.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -1636,13 +1636,66 @@
             "source": "http://cgit.drupalcode.org/allowed_formats"
         }
     },
+    {
+        "name": "drupal/anchor_link",
+        "version": "1.6.0",
+        "version_normalized": "1.6.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://git.drupalcode.org/project/anchor_link.git",
+            "reference": "8.x-1.6"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://ftp.drupal.org/files/projects/anchor_link-8.x-1.6.zip",
+            "reference": "8.x-1.6",
+            "shasum": "89c436f459e62dbdfdaf52a92f9f9265eec1df13"
+        },
+        "require": {
+            "drupal/core": "*"
+        },
+        "type": "drupal-module",
+        "extra": {
+            "branch-alias": {
+                "dev-1.x": "1.x-dev"
+            },
+            "drupal": {
+                "version": "8.x-1.6",
+                "datestamp": "1509961084",
+                "security-coverage": {
+                    "status": "covered",
+                    "message": "Covered by Drupal's security advisory policy"
+                }
+            }
+        },
+        "installation-source": "dist",
+        "notification-url": "https://packages.drupal.org/8/downloads",
+        "license": [
+            "GPL-2.0-or-later"
+        ],
+        "authors": [
+            {
+                "name": "Mohammed J. Razem",
+                "homepage": "https://www.drupal.org/user/255384"
+            },
+            {
+                "name": "RajabNatshah",
+                "homepage": "https://www.drupal.org/user/1414312"
+            }
+        ],
+        "description": "This plugin module adds the better link dialog and anchor related features to CKEditor in Drupal 8",
+        "homepage": "https://www.drupal.org/project/anchor_link",
+        "support": {
+            "source": "https://git.drupalcode.org/project/anchor_link"
+        }
+    },
     {
         "name": "drupal/better_exposed_filters",
         "version": "3.0.0-alpha6",
         "version_normalized": "3.0.0.0-alpha6",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/better_exposed_filters",
+            "url": "https://git.drupalcode.org/project/better_exposed_filters.git",
             "reference": "8.x-3.0-alpha6"
         },
         "dist": {
@@ -1710,7 +1763,7 @@
         "version_normalized": "1.0.0.0-alpha1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/bigmenu",
+            "url": "https://git.drupalcode.org/project/bigmenu.git",
             "reference": "8.x-1.0-alpha1"
         },
         "dist": {
@@ -1763,7 +1816,7 @@
         "version_normalized": "1.0.0.0-alpha8",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/block_field",
+            "url": "https://git.drupalcode.org/project/block_field.git",
             "reference": "8.x-1.0-alpha8"
         },
         "dist": {
@@ -1820,7 +1873,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/block_permissions",
+            "url": "https://git.drupalcode.org/project/block_permissions.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -1876,7 +1929,7 @@
         "version_normalized": "1.2.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/block_region_permissions",
+            "url": "https://git.drupalcode.org/project/block_region_permissions.git",
             "reference": "8.x-1.2"
         },
         "dist": {
@@ -1925,7 +1978,7 @@
         "version_normalized": "3.16.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/bootstrap",
+            "url": "https://git.drupalcode.org/project/bootstrap.git",
             "reference": "8.x-3.16"
         },
         "dist": {
@@ -1992,7 +2045,7 @@
         "version_normalized": "1.0.0.0-beta1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/ckeditor_indentblock",
+            "url": "https://git.drupalcode.org/project/ckeditor_indentblock.git",
             "reference": "8.x-1.0-beta1"
         },
         "dist": {
@@ -2048,7 +2101,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/config_direct_save",
+            "url": "https://git.drupalcode.org/project/config_direct_save.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -2097,7 +2150,7 @@
         "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/config_filter",
+            "url": "https://git.drupalcode.org/project/config_filter.git",
             "reference": "8.x-1.3"
         },
         "dist": {
@@ -2168,7 +2221,7 @@
         "version_normalized": "2.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/config_ignore",
+            "url": "https://git.drupalcode.org/project/config_ignore.git",
             "reference": "8.x-2.1"
         },
         "dist": {
@@ -2227,7 +2280,7 @@
         "version_normalized": "1.8.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/config_installer",
+            "url": "https://git.drupalcode.org/project/config_installer.git",
             "reference": "8.x-1.8"
         },
         "dist": {
@@ -2275,7 +2328,7 @@
         "version_normalized": "1.5.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/config_update",
+            "url": "https://git.drupalcode.org/project/config_update.git",
             "reference": "8.x-1.5"
         },
         "dist": {
@@ -2592,7 +2645,7 @@
         "version_normalized": "1.0.0.0-alpha1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/content_access",
+            "url": "https://git.drupalcode.org/project/content_access.git",
             "reference": "8.x-1.0-alpha1"
         },
         "dist": {
@@ -2893,7 +2946,7 @@
         "version_normalized": "2.0.0.0-RC1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/crop",
+            "url": "https://git.drupalcode.org/project/crop.git",
             "reference": "8.x-2.0-rc1"
         },
         "dist": {
@@ -2951,7 +3004,7 @@
         "version_normalized": "3.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/ctools",
+            "url": "https://git.drupalcode.org/project/ctools.git",
             "reference": "8.x-3.0"
         },
         "dist": {
@@ -3124,7 +3177,7 @@
         "version_normalized": "2.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/devel",
+            "url": "https://git.drupalcode.org/project/devel.git",
             "reference": "8.x-2.0"
         },
         "dist": {
@@ -3211,7 +3264,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/draggableviews",
+            "url": "https://git.drupalcode.org/project/draggableviews.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -3280,7 +3333,7 @@
         "version_normalized": "2.0.0.0-alpha3",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/dropzonejs",
+            "url": "https://git.drupalcode.org/project/dropzonejs.git",
             "reference": "8.x-2.0-alpha3"
         },
         "dist": {
@@ -3432,7 +3485,7 @@
         "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/editor_advanced_link",
+            "url": "https://git.drupalcode.org/project/editor_advanced_link.git",
             "reference": "8.x-1.4"
         },
         "dist": {
@@ -3481,7 +3534,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/embed",
+            "url": "https://git.drupalcode.org/project/embed.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -3548,7 +3601,7 @@
         "version_normalized": "1.0.0.0-beta1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/entity",
+            "url": "https://git.drupalcode.org/project/entity.git",
             "reference": "8.x-1.0-beta1"
         },
         "dist": {
@@ -3613,7 +3666,7 @@
         "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/entity_browser",
+            "url": "https://git.drupalcode.org/project/entity_browser.git",
             "reference": "8.x-1.4"
         },
         "dist": {
@@ -3699,7 +3752,7 @@
         "version_normalized": "1.0.0.0-beta1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/entity_clone",
+            "url": "https://git.drupalcode.org/project/entity_clone.git",
             "reference": "8.x-1.0-beta1"
         },
         "dist": {
@@ -3748,7 +3801,7 @@
         "version_normalized": "1.0.0.0-beta2",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/entity_embed",
+            "url": "https://git.drupalcode.org/project/entity_embed.git",
             "reference": "8.x-1.0-beta2"
         },
         "dist": {
@@ -3817,7 +3870,7 @@
         "description": "Allows any entity to be embedded within a text area using a WYSIWYG editor.",
         "homepage": "https://www.drupal.org/project/entity_embed",
         "support": {
-            "source": "http://cgit.drupalcode.org/entity_embed",
+            "source": "https://git.drupalcode.org/project/entity_embed",
             "issues": "https://www.drupal.org/project/issues/entity_embed",
             "irc": "irc://irc.freenode.org/drupal-media"
         }
@@ -3828,7 +3881,7 @@
         "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/entity_reference_revisions",
+            "url": "https://git.drupalcode.org/project/entity_reference_revisions.git",
             "reference": "8.x-1.3"
         },
         "dist": {
@@ -3888,7 +3941,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/externalauth",
+            "url": "https://git.drupalcode.org/project/externalauth.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -3945,7 +3998,7 @@
         "version_normalized": "3.8.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/features",
+            "url": "https://git.drupalcode.org/project/features.git",
             "reference": "8.x-3.8"
         },
         "dist": {
@@ -4024,7 +4077,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/field_group",
+            "url": "https://git.drupalcode.org/project/field_group.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -4089,7 +4142,7 @@
         "version_normalized": "1.0.0.0-beta1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/field_permissions",
+            "url": "https://git.drupalcode.org/project/field_permissions.git",
             "reference": "8.x-1.0-beta1"
         },
         "dist": {
@@ -4151,7 +4204,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/file_browser",
+            "url": "https://git.drupalcode.org/project/file_browser.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -4207,7 +4260,7 @@
         "version_normalized": "1.0.0.0-beta6",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/focal_point",
+            "url": "https://git.drupalcode.org/project/focal_point.git",
             "reference": "8.x-1.0-beta6"
         },
         "dist": {
@@ -4260,7 +4313,7 @@
         "version_normalized": "1.10.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/geolocation",
+            "url": "https://git.drupalcode.org/project/geolocation.git",
             "reference": "8.x-1.10"
         },
         "dist": {
@@ -4313,7 +4366,7 @@
         "version_normalized": "2.2.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/google_analytics",
+            "url": "https://git.drupalcode.org/project/google_analytics.git",
             "reference": "8.x-2.2"
         },
         "dist": {
@@ -4371,7 +4424,7 @@
         "version_normalized": "1.28.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/honeypot",
+            "url": "https://git.drupalcode.org/project/honeypot.git",
             "reference": "8.x-1.28"
         },
         "dist": {
@@ -4429,7 +4482,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/image_popup",
+            "url": "https://git.drupalcode.org/project/image_popup.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -4486,7 +4539,7 @@
         "version_normalized": "1.0.0.0-RC1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/inline_entity_form",
+            "url": "https://git.drupalcode.org/project/inline_entity_form.git",
             "reference": "8.x-1.0-rc1"
         },
         "dist": {
@@ -4554,7 +4607,7 @@
         "version_normalized": "3.0.0.0-alpha1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/libraries",
+            "url": "https://git.drupalcode.org/project/libraries.git",
             "reference": "8.x-3.0-alpha1"
         },
         "dist": {
@@ -4617,7 +4670,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/link_attributes",
+            "url": "https://git.drupalcode.org/project/link_attributes.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -4666,7 +4719,7 @@
         "version_normalized": "5.0.0.0-beta6",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/linkit",
+            "url": "https://git.drupalcode.org/project/linkit.git",
             "reference": "8.x-5.0-beta6"
         },
         "dist": {
@@ -4721,7 +4774,7 @@
         "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/magnific_popup",
+            "url": "https://git.drupalcode.org/project/magnific_popup.git",
             "reference": "8.x-1.3"
         },
         "dist": {
@@ -4786,7 +4839,7 @@
         "version_normalized": "2.7.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/mathjax",
+            "url": "https://git.drupalcode.org/project/mathjax.git",
             "reference": "8.x-2.7"
         },
         "dist": {
@@ -4839,7 +4892,7 @@
         "version_normalized": "2.0.0.0-alpha1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/media_entity_browser",
+            "url": "https://git.drupalcode.org/project/media_entity_browser.git",
             "reference": "8.x-2.0-alpha1"
         },
         "dist": {
@@ -4906,7 +4959,7 @@
         "version_normalized": "2.0.0.0-alpha2",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/media_entity_twitter",
+            "url": "https://git.drupalcode.org/project/media_entity_twitter.git",
             "reference": "8.x-2.0-alpha2"
         },
         "dist": {
@@ -4968,7 +5021,7 @@
         "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/menu_block",
+            "url": "https://git.drupalcode.org/project/menu_block.git",
             "reference": "8.x-1.4"
         },
         "dist": {
@@ -5037,7 +5090,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/menu_block_title",
+            "url": "https://git.drupalcode.org/project/menu_block_title.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -5093,7 +5146,7 @@
         "version_normalized": "1.7.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/menu_breadcrumb",
+            "url": "https://git.drupalcode.org/project/menu_breadcrumb.git",
             "reference": "8.x-1.7"
         },
         "dist": {
@@ -5162,7 +5215,7 @@
         "version_normalized": "1.8.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/metatag",
+            "url": "https://git.drupalcode.org/project/metatag.git",
             "reference": "8.x-1.8"
         },
         "dist": {
@@ -5232,7 +5285,7 @@
         "version_normalized": "dev-1.x",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/migrate_devel",
+            "url": "https://git.drupalcode.org/project/migrate_devel.git",
             "reference": "d56b84fe79621199305f36c707bbb5d209ee1b6b"
         },
         "require": {
@@ -5275,7 +5328,7 @@
         "version_normalized": "4.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/migrate_plus",
+            "url": "https://git.drupalcode.org/project/migrate_plus.git",
             "reference": "8.x-4.0"
         },
         "dist": {
@@ -5339,7 +5392,7 @@
         "version_normalized": "4.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/migrate_tools",
+            "url": "https://git.drupalcode.org/project/migrate_tools.git",
             "reference": "8.x-4.0"
         },
         "dist": {
@@ -5408,7 +5461,7 @@
         "version_normalized": "3.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/module_filter",
+            "url": "https://git.drupalcode.org/project/module_filter.git",
             "reference": "8.x-3.1"
         },
         "dist": {
@@ -5465,7 +5518,7 @@
         "version_normalized": "1.6.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/paragraphs",
+            "url": "https://git.drupalcode.org/project/paragraphs.git",
             "reference": "8.x-1.6"
         },
         "dist": {
@@ -5547,7 +5600,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/pathauto",
+            "url": "https://git.drupalcode.org/project/pathauto.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -5610,7 +5663,7 @@
         "version_normalized": "1.0.0.0-RC2",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/realname",
+            "url": "https://git.drupalcode.org/project/realname.git",
             "reference": "8.x-1.0-rc2"
         },
         "dist": {
@@ -5689,7 +5742,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/redis",
+            "url": "https://git.drupalcode.org/project/redis.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -5750,7 +5803,7 @@
         "version_normalized": "1.0.0.0-alpha2",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/roleassign",
+            "url": "https://git.drupalcode.org/project/roleassign.git",
             "reference": "8.x-1.0-alpha2"
         },
         "dist": {
@@ -5799,7 +5852,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/scheduler",
+            "url": "https://git.drupalcode.org/project/scheduler.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -5869,7 +5922,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/search_api",
+            "url": "https://git.drupalcode.org/project/search_api.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -5973,7 +6026,7 @@
         "version_normalized": "3.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/search_api_glossary",
+            "url": "https://git.drupalcode.org/project/search_api_glossary.git",
             "reference": "8.x-3.4"
         },
         "dist": {
@@ -6027,7 +6080,7 @@
         "version_normalized": "1.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/simple_gmap",
+            "url": "https://git.drupalcode.org/project/simple_gmap.git",
             "reference": "8.x-1.4"
         },
         "dist": {
@@ -6080,7 +6133,7 @@
         "version_normalized": "1.0.0.0-beta3",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/simple_megamenu",
+            "url": "https://git.drupalcode.org/project/simple_megamenu.git",
             "reference": "8.x-1.0-beta3"
         },
         "dist": {
@@ -6133,7 +6186,7 @@
         "version_normalized": "3.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/simple_sitemap",
+            "url": "https://git.drupalcode.org/project/simple_sitemap.git",
             "reference": "8.x-3.0"
         },
         "dist": {
@@ -6196,7 +6249,7 @@
         "version_normalized": "3.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/simplesamlphp_auth",
+            "url": "https://git.drupalcode.org/project/simplesamlphp_auth.git",
             "reference": "8.x-3.0"
         },
         "dist": {
@@ -6263,7 +6316,7 @@
         "version_normalized": "dev-1.x",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/smtp",
+            "url": "https://git.drupalcode.org/project/smtp.git",
             "reference": "84f789cbba894290cf82ed2558c8a4e7e24f3c89"
         },
         "require": {
@@ -6330,7 +6383,7 @@
         "version_normalized": "1.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/social_media",
+            "url": "https://git.drupalcode.org/project/social_media.git",
             "reference": "8.x-1.3"
         },
         "dist": {
@@ -6381,7 +6434,7 @@
         "version_normalized": "2.6.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/social_media_links",
+            "url": "https://git.drupalcode.org/project/social_media_links.git",
             "reference": "8.x-2.6"
         },
         "dist": {
@@ -6431,7 +6484,7 @@
         "version_normalized": "1.2.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/superfish",
+            "url": "https://git.drupalcode.org/project/superfish.git",
             "reference": "8.x-1.2"
         },
         "dist": {
@@ -6483,7 +6536,7 @@
         "version_normalized": "1.8.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/svg_image",
+            "url": "https://git.drupalcode.org/project/svg_image.git",
             "reference": "8.x-1.8"
         },
         "dist": {
@@ -6532,7 +6585,7 @@
         "version_normalized": "1.5.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/token",
+            "url": "https://git.drupalcode.org/project/token.git",
             "reference": "8.x-1.5"
         },
         "dist": {
@@ -6601,7 +6654,7 @@
         "version_normalized": "3.0.0.0-alpha",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/twitter_block",
+            "url": "https://git.drupalcode.org/project/twitter_block.git",
             "reference": "8.x-3.0-alpha0"
         },
         "dist": {
@@ -6666,7 +6719,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/userprotect",
+            "url": "https://git.drupalcode.org/project/userprotect.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -6724,7 +6777,7 @@
         "version_normalized": "2.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/video_embed_field",
+            "url": "https://git.drupalcode.org/project/video_embed_field.git",
             "reference": "8.x-2.0"
         },
         "dist": {
@@ -6787,7 +6840,7 @@
         "version_normalized": "1.0.0.0-alpha1",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/view_unpublished",
+            "url": "https://git.drupalcode.org/project/view_unpublished.git",
             "reference": "8.x-1.0-alpha1"
         },
         "dist": {
@@ -6848,7 +6901,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_accordion",
+            "url": "https://git.drupalcode.org/project/views_accordion.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -6898,7 +6951,7 @@
         "version_normalized": "1.0.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_ajax_history",
+            "url": "https://git.drupalcode.org/project/views_ajax_history.git",
             "reference": "8.x-1.0"
         },
         "dist": {
@@ -6959,7 +7012,7 @@
         "version_normalized": "1.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_autocomplete_filters",
+            "url": "https://git.drupalcode.org/project/views_autocomplete_filters.git",
             "reference": "8.x-1.1"
         },
         "dist": {
@@ -7012,7 +7065,7 @@
         "version_normalized": "3.1.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_bootstrap",
+            "url": "https://git.drupalcode.org/project/views_bootstrap.git",
             "reference": "8.x-3.1"
         },
         "dist": {
@@ -7076,7 +7129,7 @@
         "version_normalized": "2.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_bulk_operations",
+            "url": "https://git.drupalcode.org/project/views_bulk_operations.git",
             "reference": "8.x-2.4"
         },
         "dist": {
@@ -7148,7 +7201,7 @@
         "version_normalized": "3.3.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_fieldsets",
+            "url": "https://git.drupalcode.org/project/views_fieldsets.git",
             "reference": "8.x-3.3"
         },
         "dist": {
@@ -7205,7 +7258,7 @@
         "version_normalized": "1.5.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_infinite_scroll",
+            "url": "https://git.drupalcode.org/project/views_infinite_scroll.git",
             "reference": "8.x-1.5"
         },
         "dist": {
@@ -7258,7 +7311,7 @@
         "version_normalized": "4.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/views_slideshow",
+            "url": "https://git.drupalcode.org/project/views_slideshow.git",
             "reference": "8.x-4.4"
         },
         "dist": {
@@ -7321,7 +7374,7 @@
         "version_normalized": "5.0.0.0-RC12",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/webform",
+            "url": "https://git.drupalcode.org/project/webform.git",
             "reference": "8.x-5.0-rc12"
         },
         "dist": {
@@ -7422,7 +7475,7 @@
         "version_normalized": "5.0.0.0-alpha2",
         "source": {
             "type": "git",
-            "url": "https://git.drupal.org/project/webform_views",
+            "url": "https://git.drupalcode.org/project/webform_views.git",
             "reference": "8.x-5.0-alpha2"
         },
         "dist": {
diff --git a/web/modules/anchor_link/LICENSE.txt b/web/modules/anchor_link/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d159169d1050894d3ea3b98e1c965c4058208fe1
--- /dev/null
+++ b/web/modules/anchor_link/LICENSE.txt
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/web/modules/anchor_link/README.txt b/web/modules/anchor_link/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ebfc2eec764096a2328f81848789e599d9c122f5
--- /dev/null
+++ b/web/modules/anchor_link/README.txt
@@ -0,0 +1,12 @@
+CKEditor Anchor Link
+--------------------------------------------------------------------------------
+
+This plugin module adds the better link dialog and anchor related features
+to CKEditor in Drupal 8:
+
+- Dialog to insert links and anchors with some properties.
+- Context menu option to edit or remove links and anchors.
+- Ability to insert a link with the URL using multiple protocols, including an
+  external file if a file manager is integrated.
+
+http://ckeditor.com/addon/link
diff --git a/web/modules/anchor_link/anchor_link.info.yml b/web/modules/anchor_link/anchor_link.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a2f9bf5db0a2e7de45a6a4c63042e2decc57373d
--- /dev/null
+++ b/web/modules/anchor_link/anchor_link.info.yml
@@ -0,0 +1,14 @@
+name: CKEditor Anchor Link
+type: module
+description: This plugin module adds the better link dialog and anchor related features to CKEditor in Drupal 8
+# core: 8.x
+package: CKEditor
+# version: 1.1
+dependencies:
+  - ckeditor
+  - editor
+# Information added by Drupal.org packaging script on 2017-11-06
+version: '8.x-1.6'
+core: '8.x'
+project: 'anchor_link'
+datestamp: 1509961086
diff --git a/web/modules/anchor_link/anchor_link.libraries.yml b/web/modules/anchor_link/anchor_link.libraries.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a30aace88dae1cdadbb33a53bc90d2d4ed3ad430
--- /dev/null
+++ b/web/modules/anchor_link/anchor_link.libraries.yml
@@ -0,0 +1,8 @@
+drupal.anchor_link:
+  version: VERSION
+  css:
+    theme:
+      css/anchor_link.css: { every_page: 1 }
+  dependencies:
+    - core/drupal
+    - core/drupalSettings
\ No newline at end of file
diff --git a/web/modules/anchor_link/anchor_link.module b/web/modules/anchor_link/anchor_link.module
new file mode 100644
index 0000000000000000000000000000000000000000..5728d641d1b1a6f68877d0000e07bbfc2d92d17f
--- /dev/null
+++ b/web/modules/anchor_link/anchor_link.module
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * Contains anchor_link.module.
+ */
+
+use Drupal\Core\Routing\RouteMatchInterface;
+
+/**
+ * Implements hook_help().
+ */
+function anchor_link_help($route_name, RouteMatchInterface $route_match) {
+  switch ($route_name) {
+    // Main module help for the entity_link module.
+    case 'help.page.anchor_link':
+      $output = '';
+      $output .= '<h3>' . t('About') . '</h3>';
+      $output .= '<p>' . t('This plugin module adds the better link dialog and anchor related features to CKEditor in Drupal 8') . '</p>';
+      $output .= '<p><ul>';
+      $output .= '  <li>Dialog to insert links and anchors with some properties.</li>';
+      $output .= '  <li>Context menu option to edit or remove links and anchors.</li>';
+      $output .= '  <li>Ability to insert a link with the URL using multiple protocols, including an external file if a file manager is integrated.</li>';
+      $output .= '</ul></p>';
+      $output .= '<p><a href="http://ckeditor.com/addon/link">http://ckeditor.com/addon/link</a></p>';
+      return $output;
+
+    default:
+  }
+}
+
+/**
+ * Implements hook_theme().
+ */
+function anchor_link_theme() {
+  $theme = [];
+
+  return $theme;
+}
+
+/**
+ * Implements hook_page_attachments().
+ */
+function anchor_link_page_attachments(array &$attachments) {
+  $config = \Drupal::config('anchor_link.settings');
+  $attachments['#attached']['library'][] = 'anchor_link/drupal.anchor_link';
+}
\ No newline at end of file
diff --git a/web/modules/anchor_link/css/anchor_link.css b/web/modules/anchor_link/css/anchor_link.css
new file mode 100644
index 0000000000000000000000000000000000000000..7aa5cd3a54540041fc8cf823ba527450e0ce8498
--- /dev/null
+++ b/web/modules/anchor_link/css/anchor_link.css
@@ -0,0 +1,3 @@
+.cke_reset_all .cke_dialog_body fieldset:not(.fieldgroup) > legend {
+  position: relative;
+}
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/af.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/af.js
new file mode 100644
index 0000000000000000000000000000000000000000..27e151cf2a18682d79e2476ddf9037ebbfd2771d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/af.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'af', {
+	anchor: 'Anker',
+	flash: 'Flash animasie',
+	hiddenfield: 'Verborge veld',
+	iframe: 'IFrame',
+	unknown: 'Onbekende objek'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ar.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ar.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4b3fed3c1fbc6cd3ff3253a42f78548fad8e0f4
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ar.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ar', {
+	anchor: 'إرساء',
+	flash: 'رسم متحرك بالفلاش',
+	hiddenfield: 'إدراج حقل خفي',
+	iframe: 'iframe',
+	unknown: 'عنصر غير معروف'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/az.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/az.js
new file mode 100644
index 0000000000000000000000000000000000000000..b31c6cb1ab335d1e1dda4d8a968d170af519a3e3
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/az.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'az', {
+	anchor: 'Lövbər',
+	flash: 'Flash animasiya',
+	hiddenfield: 'Gizli xana',
+	iframe: 'IFrame',
+	unknown: 'Tanımamış obyekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/bg.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bg.js
new file mode 100644
index 0000000000000000000000000000000000000000..11d6e3a3d1b6390788eedcbfd20b8be0af847de9
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bg.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bg', {
+	anchor: 'Кука',
+	flash: 'Флаш анимация',
+	hiddenfield: 'Скрито поле',
+	iframe: 'IFrame',
+	unknown: 'Неизвестен обект'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/bn.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bn.js
new file mode 100644
index 0000000000000000000000000000000000000000..248fc5e2d033f98ffc2a0d376bdc31197a546f72
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bn', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/bs.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bs.js
new file mode 100644
index 0000000000000000000000000000000000000000..77de4c2ab8c7f3b4f882e59af553ab42a1f4e060
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/bs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bs', {
+	anchor: 'Anchor',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ca.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..85af29d1c9dc6bf49efa206cabc8305b22bfc1d1
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ca', {
+	anchor: 'Àncora',
+	flash: 'Animació Flash',
+	hiddenfield: 'Camp ocult',
+	iframe: 'IFrame',
+	unknown: 'Objecte desconegut'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/cs.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..aeb9be4b7a697c3aae95a3d822f4cc346a4a7a3a
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/cs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'cs', {
+	anchor: 'Záložka',
+	flash: 'Flash animace',
+	hiddenfield: 'Skryté pole',
+	iframe: 'IFrame',
+	unknown: 'Neznámý objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/cy.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..3405f1685685d524761ad4d05af29a6ae7650e52
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/cy.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'cy', {
+	anchor: 'Angor',
+	flash: 'Animeiddiant Flash',
+	hiddenfield: 'Maes Cudd',
+	iframe: 'IFrame',
+	unknown: 'Gwrthrych Anhysbys'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/da.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..d54846ea3227876de942a03012277fae1893b08a
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/da.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'da', {
+	anchor: 'Anker',
+	flash: 'Flashanimation',
+	hiddenfield: 'Skjult felt',
+	iframe: 'Iframe',
+	unknown: 'Ukendt objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/de-ch.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/de-ch.js
new file mode 100644
index 0000000000000000000000000000000000000000..c51ba5abdabcb9b1da32655c526f3e341aed0e9d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/de-ch.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'de-ch', {
+	anchor: 'Anker',
+	flash: 'Flash-Animation',
+	hiddenfield: 'Verstecktes Feld',
+	iframe: 'IFrame',
+	unknown: 'Unbekanntes Objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/de.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..671e4dd59547a284c773b4e6f8ddd379140b07a4
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/de.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'de', {
+	anchor: 'Anker',
+	flash: 'Flash-Animation',
+	hiddenfield: 'Verstecktes Feld',
+	iframe: 'IFrame',
+	unknown: 'Unbekanntes Objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/el.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..90e005d81e4eb599dfb14bc59dfef5f4aa8bac73
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/el.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'el', {
+	anchor: 'Άγκυρα',
+	flash: 'Ταινία Flash',
+	hiddenfield: 'Κρυφό Πεδίο',
+	iframe: 'IFrame',
+	unknown: 'Άγνωστο Αντικείμενο'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-au.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-au.js
new file mode 100644
index 0000000000000000000000000000000000000000..3eacb2f214d67b34f7243e54317dba5b8bf68eb6
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-au.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-au', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-ca.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a0d321c191a736368930b4af1d71bfb930856cf
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-ca', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-gb.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-gb.js
new file mode 100644
index 0000000000000000000000000000000000000000..2273955c2ff9051e50d6d0a426d2200ffa55471b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en-gb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-gb', {
+	anchor: 'Anchor',
+	flash: 'Flash Animation',
+	hiddenfield: 'Hidden Field',
+	iframe: 'IFrame',
+	unknown: 'Unknown Object'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/en.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..17c27b14fbd409d071065935d484d79300d1eeed
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/en.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en', {
+	anchor: 'Anchor',
+	flash: 'Flash Animation',
+	hiddenfield: 'Hidden Field',
+	iframe: 'IFrame',
+	unknown: 'Unknown Object'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/eo.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/eo.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6f04325b5018aae95447c65a63f68f3edc015dd
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/eo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'eo', {
+	anchor: 'Ankro',
+	flash: 'FlaŝAnimacio',
+	hiddenfield: 'Kaŝita kampo',
+	iframe: 'Enlinia Kadro (IFrame)',
+	unknown: 'Nekonata objekto'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/es-mx.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/es-mx.js
new file mode 100644
index 0000000000000000000000000000000000000000..6fb115c86213c241026052455d51397e0a0485ae
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/es-mx.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'es-mx', {
+	anchor: 'Ancla',
+	flash: 'Animación flash',
+	hiddenfield: 'Campo oculto',
+	iframe: 'IFrame',
+	unknown: 'Objeto desconocido'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/es.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..73d007c12baa390e7adf20fca4fe58c746242baa
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/es.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'es', {
+	anchor: 'Ancla',
+	flash: 'Animación flash',
+	hiddenfield: 'Campo oculto',
+	iframe: 'IFrame',
+	unknown: 'Objeto desconocido'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/et.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/et.js
new file mode 100644
index 0000000000000000000000000000000000000000..88793067cc7f7b8beba5fcd4cfb3b5fb3cc65bfb
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/et.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'et', {
+	anchor: 'Ankur',
+	flash: 'Flashi animatsioon',
+	hiddenfield: 'Varjatud väli',
+	iframe: 'IFrame',
+	unknown: 'Tundmatu objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/eu.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/eu.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd6cfd8cb0981d1b6c5ca8e23993fbd2d378ce20
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/eu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'eu', {
+	anchor: 'Aingura',
+	flash: 'Flash animazioa',
+	hiddenfield: 'Ezkutuko eremua',
+	iframe: 'IFrame-a',
+	unknown: 'Objektu ezezaguna'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/fa.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..669facc77aa3143bf5d6f6cc127bf167465f947f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fa.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fa', {
+	anchor: 'لنگر',
+	flash: 'انیمشن فلش',
+	hiddenfield: 'فیلد پنهان',
+	iframe: 'IFrame',
+	unknown: 'شیء ناشناخته'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/fi.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..fcee9a7c2d306bfd58b65bd4bbfc65339245316c
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fi', {
+	anchor: 'Ankkuri',
+	flash: 'Flash animaatio',
+	hiddenfield: 'Piilokenttä',
+	iframe: 'IFrame-kehys',
+	unknown: 'Tuntematon objekti'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/fo.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fo.js
new file mode 100644
index 0000000000000000000000000000000000000000..c475dd3e1a1117d56290e494760f06fcceee0a72
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fo', {
+	anchor: 'Anchor',
+	flash: 'Flash Animation',
+	hiddenfield: 'Fjaldur teigur',
+	iframe: 'IFrame',
+	unknown: 'Ókent Object'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr-ca.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr-ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..577fa8e5f10ae99275e14d09e01d6eaac5381aa6
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fr-ca', {
+	anchor: 'Ancre',
+	flash: 'Animation Flash',
+	hiddenfield: 'Champ caché',
+	iframe: 'IFrame',
+	unknown: 'Objet inconnu'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..27c23bc717f32cac500df2a915ed8de40a4a8714
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fr', {
+	anchor: 'Ancre',
+	flash: 'Animation Flash',
+	hiddenfield: 'Champ invisible',
+	iframe: 'Cadre de contenu incorporé',
+	unknown: 'Objet inconnu'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/gl.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/gl.js
new file mode 100644
index 0000000000000000000000000000000000000000..907ba229f32201016c88208d98fc878adf854846
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/gl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'gl', {
+	anchor: 'Ancoraxe',
+	flash: 'Animación «Flash»',
+	hiddenfield: 'Campo agochado',
+	iframe: 'IFrame',
+	unknown: 'Obxecto descoñecido'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/gu.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/gu.js
new file mode 100644
index 0000000000000000000000000000000000000000..03e1f43c751213f05400c3054be6b154ff291cb2
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/gu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'gu', {
+	anchor: 'અનકર',
+	flash: 'ફ્લેશ ',
+	hiddenfield: 'હિડન ',
+	iframe: 'IFrame',
+	unknown: 'અનનોન ઓબ્જેક્ટ'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/he.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..88b8d45577f172a68a8201c692a0fd6c45bf4de1
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/he.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'he', {
+	anchor: 'עוגן',
+	flash: 'סרטון פלאש',
+	hiddenfield: 'שדה חבוי',
+	iframe: 'חלון פנימי (iframe)',
+	unknown: 'אובייקט לא ידוע'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/hi.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hi.js
new file mode 100644
index 0000000000000000000000000000000000000000..6854dc25b23588ab1706a9ab0829870e5344d1b4
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hi', {
+	anchor: 'ऐंकर इन्सर्ट/संपादन',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'गुप्त फ़ील्ड',
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/hr.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hr.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb779d44e10f3cc6007a865266bc9938561b5e4e
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hr', {
+	anchor: 'Sidro',
+	flash: 'Flash animacija',
+	hiddenfield: 'Sakriveno polje',
+	iframe: 'IFrame',
+	unknown: 'Nepoznati objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/hu.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..10c2dec2fc03c7dad3d82bcea876b4072a8e5f0b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/hu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hu', {
+	anchor: 'Horgony',
+	flash: 'Flash animáció',
+	hiddenfield: 'Rejtett mezõ',
+	iframe: 'IFrame',
+	unknown: 'Ismeretlen objektum'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/id.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/id.js
new file mode 100644
index 0000000000000000000000000000000000000000..46324b083d3bf4a0a384d716749c954b57667e57
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/id.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'id', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Animasi Flash',
+	hiddenfield: 'Kolom Tersembunyi',
+	iframe: 'IFrame',
+	unknown: 'Obyek Tak Dikenal'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/is.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..078558543de40ca63e104a9ae621e317ae411fba
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/is.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'is', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/it.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..44caa04dfa7ca24c8ad918e26e7cec50094060e7
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/it.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'it', {
+	anchor: 'Ancora',
+	flash: 'Animazione Flash',
+	hiddenfield: 'Campo Nascosto',
+	iframe: 'IFrame',
+	unknown: 'Oggetto sconosciuto'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ja.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d7bceb965afab94d14c30df08a4fb5101cf0f35
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ja.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ja', {
+	anchor: 'アンカー',
+	flash: 'Flash Animation',
+	hiddenfield: '不可視フィールド',
+	iframe: 'IFrame',
+	unknown: 'Unknown Object'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ka.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ka.js
new file mode 100644
index 0000000000000000000000000000000000000000..45075d204bb33e0b4799fd051fa4c10560226bb8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ka.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ka', {
+	anchor: 'ღუზა',
+	flash: 'Flash ანიმაცია',
+	hiddenfield: 'მალული ველი',
+	iframe: 'IFrame',
+	unknown: 'უცნობი ობიექტი'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/km.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/km.js
new file mode 100644
index 0000000000000000000000000000000000000000..404bab6fb68dbf4ed4c25df1aa8a97fc76d6c03e
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/km.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'km', {
+	anchor: 'យុថ្កា',
+	flash: 'Flash មាន​ចលនា',
+	hiddenfield: 'វាល​កំបាំង',
+	iframe: 'IFrame',
+	unknown: 'វត្ថុ​មិន​ស្គាល់'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ko.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..e677ccffd6d6f310e10da4858c32c9dce7f22df8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ko.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ko', {
+	anchor: '책갈피',
+	flash: '플래시 애니메이션',
+	hiddenfield: '숨은 입력 칸',
+	iframe: '아이프레임',
+	unknown: '알 수 없는 객체'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ku.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ku.js
new file mode 100644
index 0000000000000000000000000000000000000000..72eba2386ec52a3c5b6fdddf7eb60627f603f824
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ku.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ku', {
+	anchor: 'لەنگەر',
+	flash: 'فلاش',
+	hiddenfield: 'شاردنەوەی خانه',
+	iframe: 'لەچوارچێوە',
+	unknown: 'بەرکارێکی نەناسراو'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/lt.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/lt.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4d0574741f61f6f93c0432d08d6700ef028c8e1
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/lt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'lt', {
+	anchor: 'Žymė',
+	flash: 'Flash animacija',
+	hiddenfield: 'Paslėptas laukas',
+	iframe: 'IFrame',
+	unknown: 'Nežinomas objektas'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/lv.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/lv.js
new file mode 100644
index 0000000000000000000000000000000000000000..96233f45c451b52bddb24bf197aa21c7f2e4ea66
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/lv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'lv', {
+	anchor: 'Iezīme',
+	flash: 'Flash animācija',
+	hiddenfield: 'Slēpts lauks',
+	iframe: 'Iframe',
+	unknown: 'Nezināms objekts'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/mk.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/mk.js
new file mode 100644
index 0000000000000000000000000000000000000000..39b51e2f4bfbe8b7237ec16fc0873b9f89d6962c
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/mk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'mk', {
+	anchor: 'Anchor',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Скриено поле',
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/mn.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/mn.js
new file mode 100644
index 0000000000000000000000000000000000000000..507e3167979fb2854e0023efb413522ced4ff446
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/mn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'mn', {
+	anchor: 'Зангуу',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Нууц талбар',
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ms.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ms.js
new file mode 100644
index 0000000000000000000000000000000000000000..900cf391a2446b84ae782ae63f3cc60390cd9663
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ms.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ms', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/nb.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..6548eedb7416816dc13a9cd36a9a0fc5e76cce9d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'nb', {
+	anchor: 'Anker',
+	flash: 'Flash-animasjon',
+	hiddenfield: 'Skjult felt',
+	iframe: 'IFrame',
+	unknown: 'Ukjent objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/nl.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4a78cbc1203fbf5af9e3f812da87d06650eed3d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/nl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'nl', {
+	anchor: 'Interne link',
+	flash: 'Flash animatie',
+	hiddenfield: 'Verborgen veld',
+	iframe: 'IFrame',
+	unknown: 'Onbekend object'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/no.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/no.js
new file mode 100644
index 0000000000000000000000000000000000000000..a140e3d410e0b9255950c2103f74908e5cea4f97
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/no.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'no', {
+	anchor: 'Anker',
+	flash: 'Flash-animasjon',
+	hiddenfield: 'Skjult felt',
+	iframe: 'IFrame',
+	unknown: 'Ukjent objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/oc.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/oc.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e3d0cda9589d21e5c220ea514440e3eac9e6b7f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/oc.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'oc', {
+	anchor: 'Ancòra',
+	flash: 'Animacion Flash',
+	hiddenfield: 'Camp invisible',
+	iframe: 'Quadre de contengut incorporat',
+	unknown: 'Objècte desconegut'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/pl.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..fa0828bfb6e317f4bf29b0abf97c749ec91864fb
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pl', {
+	anchor: 'Kotwica',
+	flash: 'Animacja Flash',
+	hiddenfield: 'Pole ukryte',
+	iframe: 'IFrame',
+	unknown: 'Nieznany obiekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt-br.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt-br.js
new file mode 100644
index 0000000000000000000000000000000000000000..ca6694ce7bb41b27561ca1a3b90bb969030755b3
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pt-br', {
+	anchor: 'Âncora',
+	flash: 'Animação em Flash',
+	hiddenfield: 'Campo Oculto',
+	iframe: 'IFrame',
+	unknown: 'Objeto desconhecido'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6766c5e7cbe3004001e5fc04df4e5ae05acbf63
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/pt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pt', {
+	anchor: ' Inserir/Editar âncora',
+	flash: 'Animação Flash',
+	hiddenfield: 'Campo oculto',
+	iframe: 'IFrame',
+	unknown: 'Objeto desconhecido'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ro.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..470d9912f1cae6a52f69452ad592f302e9078200
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ro.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ro', {
+	anchor: 'Inserează/Editează ancoră',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Câmp ascuns (HiddenField)',
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ru.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..4744b6ec117c665817a317734a0dd54d5c6cfc48
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ru.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ru', {
+	anchor: 'Якорь',
+	flash: 'Flash анимация',
+	hiddenfield: 'Скрытое поле',
+	iframe: 'iFrame',
+	unknown: 'Неизвестный объект'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/si.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..139dee05d33826b5d3320be27ac69f4ce3f0185f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/si.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'si', {
+	anchor: 'ආධාරය',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'සැඟවුණු ප්‍රදේශය',
+	iframe: 'IFrame',
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sk.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..1b7c43f3a900212a0e4e01b533873e2f592001f8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sk', {
+	anchor: 'Kotva',
+	flash: 'Flash animácia',
+	hiddenfield: 'Skryté pole',
+	iframe: 'IFrame',
+	unknown: 'Neznámy objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sl.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sl.js
new file mode 100644
index 0000000000000000000000000000000000000000..3760a04948d97ed8a547d54e635d610504327a95
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sl', {
+	anchor: 'Sidro',
+	flash: 'Animacija flash',
+	hiddenfield: 'Skrito polje',
+	iframe: 'IFrame',
+	unknown: 'Neznan objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sq.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6c0d1cc308de06ff9a70b4894b069dd78ca09b8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sq.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sq', {
+	anchor: 'Spirancë',
+	flash: 'Objekt flash',
+	hiddenfield: 'Fushë e fshehur',
+	iframe: 'IFrame',
+	unknown: 'Objekt i Panjohur'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr-latn.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr-latn.js
new file mode 100644
index 0000000000000000000000000000000000000000..c9db381e9a0f0c04dd5d26ca212143aa4c53f427
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr-latn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sr-latn', {
+	anchor: 'Unesi/izmeni sidro',
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Skriveno polje',
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..ce55c96f5dfec2df9a5c2851c8c367b60335e967
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sr', {
+	anchor: 'Anchor', // MISSING
+	flash: 'Flash Animation', // MISSING
+	hiddenfield: 'Hidden Field', // MISSING
+	iframe: 'IFrame', // MISSING
+	unknown: 'Unknown Object' // MISSING
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/sv.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..e97dc6d80d8576368dbe839163e5f004efebe449
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sv', {
+	anchor: 'Ankare',
+	flash: 'Flashanimation',
+	hiddenfield: 'Gömt fält',
+	iframe: 'iFrame',
+	unknown: 'Okänt objekt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/th.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/th.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4fcda9de3ca33647b68822bc35132a17e37c748
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/th.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'th', {
+	anchor: 'แทรก/แก้ไข Anchor',
+	flash: 'ภาพอนิเมชั่นแฟลช',
+	hiddenfield: 'ฮิดเดนฟิลด์',
+	iframe: 'IFrame',
+	unknown: 'วัตถุไม่ทราบชนิด'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/tr.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6a1043eb97cd7f2a11d0dd4c5717ed3155ee961
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/tr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'tr', {
+	anchor: 'Bağlantı',
+	flash: 'Flash Animasyonu',
+	hiddenfield: 'Gizli Alan',
+	iframe: 'IFrame',
+	unknown: 'Bilinmeyen Nesne'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/tt.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/tt.js
new file mode 100644
index 0000000000000000000000000000000000000000..202f7b11ec1e2e4077d46d8732a755495bf1556a
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/tt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'tt', {
+	anchor: 'Якорь',
+	flash: 'Флеш анимациясы',
+	hiddenfield: 'Яшерен кыр',
+	iframe: 'IFrame',
+	unknown: 'Танылмаган объект'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/ug.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ug.js
new file mode 100644
index 0000000000000000000000000000000000000000..b454d4435c180b418906309b124027fae1a7e000
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/ug.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ug', {
+	anchor: 'لەڭگەرلىك نۇقتا',
+	flash: 'Flash جانلاندۇرۇم',
+	hiddenfield: 'يوشۇرۇن دائىرە',
+	iframe: 'IFrame',
+	unknown: 'يوچۇن نەڭ'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/uk.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..651c06cc3e384637f96153000a68e744ae35454f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/uk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'uk', {
+	anchor: 'Якір',
+	flash: 'Flash-анімація',
+	hiddenfield: 'Приховані Поля',
+	iframe: 'IFrame',
+	unknown: 'Невідомий об\'єкт'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/vi.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..7cd26ce3416e59c2138fef25f49487bcad13ac0d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/vi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'vi', {
+	anchor: 'Điểm neo',
+	flash: 'Flash',
+	hiddenfield: 'Trường ẩn',
+	iframe: 'IFrame',
+	unknown: 'Đối tượng không rõ ràng'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh-cn.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh-cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..1349054c12fbff4b46aeed66b415836d8577f482
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh-cn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'zh-cn', {
+	anchor: '锚点',
+	flash: 'Flash 动画',
+	hiddenfield: '隐藏域',
+	iframe: 'IFrame',
+	unknown: '未知对象'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh.js b/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh.js
new file mode 100644
index 0000000000000000000000000000000000000000..d2257ca7d00b34728f3e320592ab393cf53a7039
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/lang/zh.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'zh', {
+	anchor: '錨點',
+	flash: 'Flash 動畫',
+	hiddenfield: '隱藏欄位',
+	iframe: 'IFrame',
+	unknown: '無法辨識的物件'
+} );
diff --git a/web/modules/anchor_link/js/plugins/fakeobjects/plugin.js b/web/modules/anchor_link/js/plugins/fakeobjects/plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..945999ef2c58c12dd6e7c70000248ef6c6e1b41b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/fakeobjects/plugin.js
@@ -0,0 +1,199 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+( function() {
+	var cssStyle = CKEDITOR.htmlParser.cssStyle,
+		cssLength = CKEDITOR.tools.cssLength;
+
+	var cssLengthRegex = /^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i;
+
+	// Replacing the former CSS length value with the later one, with
+	// adjustment to the length  unit.
+	function replaceCssLength( length1, length2 ) {
+		var parts1 = cssLengthRegex.exec( length1 ),
+			parts2 = cssLengthRegex.exec( length2 );
+
+		// Omit pixel length unit when necessary,
+		// e.g. replaceCssLength( 10, '20px' ) -> 20
+		if ( parts1 ) {
+			if ( !parts1[ 2 ] && parts2[ 2 ] == 'px' )
+				return parts2[ 1 ];
+			if ( parts1[ 2 ] == 'px' && !parts2[ 2 ] )
+				return parts2[ 1 ] + 'px';
+		}
+
+		return length2;
+	}
+
+	var htmlFilterRules = {
+		elements: {
+			$: function( element ) {
+				var attributes = element.attributes,
+					realHtml = attributes && attributes[ 'data-cke-realelement' ],
+					realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ),
+					realElement = realFragment && realFragment.children[ 0 ];
+
+				// Width/height in the fake object are subjected to clone into the real element.
+				if ( realElement && element.attributes[ 'data-cke-resizable' ] ) {
+					var styles = new cssStyle( element ).rules,
+						realAttrs = realElement.attributes,
+						width = styles.width,
+						height = styles.height;
+
+					width && ( realAttrs.width = replaceCssLength( realAttrs.width, width ) );
+					height && ( realAttrs.height = replaceCssLength( realAttrs.height, height ) );
+				}
+
+				return realElement;
+			}
+		}
+	};
+
+	CKEDITOR.plugins.add( 'fakeobjects', {
+		// jscs:disable maximumLineLength
+		lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%
+		// jscs:enable maximumLineLength
+
+		init: function( editor ) {
+			// Allow image with all styles and classes plus src, alt and title attributes.
+			// We need them when fakeobject is pasted.
+			editor.filter.allow( 'img[!data-cke-realelement,src,alt,title](*){*}', 'fakeobjects' );
+		},
+
+		afterInit: function( editor ) {
+			var dataProcessor = editor.dataProcessor,
+				htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+			if ( htmlFilter ) {
+				htmlFilter.addRules( htmlFilterRules, {
+					applyToAll: true
+				} );
+			}
+		}
+	} );
+
+	/**
+	 * Creates fake {@link CKEDITOR.dom.element} based on real element.
+	 * Fake element is an img with special attributes, which keep real element properties.
+	 *
+	 * @member CKEDITOR.editor
+	 * @param {CKEDITOR.dom.element} realElement Real element to transform.
+	 * @param {String} className Class name which will be used as class of fake element.
+	 * @param {String} realElementType Stores type of fake element.
+	 * @param {Boolean} isResizable Keeps information if element is resizable.
+	 * @returns {CKEDITOR.dom.element} Fake element.
+	 */
+	CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable ) {
+		var lang = this.lang.fakeobjects,
+			label = lang[ realElementType ] || lang.unknown;
+
+		var attributes = {
+			'class': className,
+			'data-cke-realelement': encodeURIComponent( realElement.getOuterHtml() ),
+			'data-cke-real-node-type': realElement.type,
+			alt: label,
+			title: label,
+			align: realElement.getAttribute( 'align' ) || ''
+		};
+
+		// Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)
+		if ( !CKEDITOR.env.hc )
+			attributes.src = CKEDITOR.tools.transparentImageData;
+
+		if ( realElementType )
+			attributes[ 'data-cke-real-element-type' ] = realElementType;
+
+		if ( isResizable ) {
+			attributes[ 'data-cke-resizable' ] = isResizable;
+
+			var fakeStyle = new cssStyle();
+
+			var width = realElement.getAttribute( 'width' ),
+				height = realElement.getAttribute( 'height' );
+
+			width && ( fakeStyle.rules.width = cssLength( width ) );
+			height && ( fakeStyle.rules.height = cssLength( height ) );
+			fakeStyle.populate( attributes );
+		}
+
+		return this.document.createElement( 'img', { attributes: attributes } );
+	};
+
+	/**
+	 * Creates fake {@link CKEDITOR.htmlParser.element} based on real element.
+	 *
+	 * @member CKEDITOR.editor
+	 * @param {CKEDITOR.dom.element} realElement Real element to transform.
+	 * @param {String} className Class name which will be used as class of fake element.
+	 * @param {String} realElementType Store type of fake element.
+	 * @param {Boolean} isResizable Keep information if element is resizable.
+	 * @returns {CKEDITOR.htmlParser.element} Fake htmlParser element.
+	 */
+	CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable ) {
+		var lang = this.lang.fakeobjects,
+			label = lang[ realElementType ] || lang.unknown,
+			html;
+
+		var writer = new CKEDITOR.htmlParser.basicWriter();
+		realElement.writeHtml( writer );
+		html = writer.getHtml();
+
+		var attributes = {
+			'class': className,
+			'data-cke-realelement': encodeURIComponent( html ),
+			'data-cke-real-node-type': realElement.type,
+			alt: label,
+			title: label,
+			align: realElement.attributes.align || ''
+		};
+
+		// Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)
+		if ( !CKEDITOR.env.hc )
+			attributes.src = CKEDITOR.tools.transparentImageData;
+
+		if ( realElementType )
+			attributes[ 'data-cke-real-element-type' ] = realElementType;
+
+		if ( isResizable ) {
+			attributes[ 'data-cke-resizable' ] = isResizable;
+			var realAttrs = realElement.attributes,
+				fakeStyle = new cssStyle();
+
+			var width = realAttrs.width,
+				height = realAttrs.height;
+
+			width !== undefined && ( fakeStyle.rules.width = cssLength( width ) );
+			height !== undefined && ( fakeStyle.rules.height = cssLength( height ) );
+			fakeStyle.populate( attributes );
+		}
+
+		return new CKEDITOR.htmlParser.element( 'img', attributes );
+	};
+
+	/**
+	 * Creates {@link CKEDITOR.dom.element} from fake element.
+	 *
+	 * @member CKEDITOR.editor
+	 * @param {CKEDITOR.dom.element} fakeElement Fake element to transform.
+	 * @returns {CKEDITOR.dom.element/null} Returns real element or `null` if transformed element wasn't fake.
+	 */
+	CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) {
+		if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )
+			return null;
+
+		var element = CKEDITOR.dom.element.createFromHtml( decodeURIComponent( fakeElement.data( 'cke-realelement' ) ), this.document );
+
+		if ( fakeElement.data( 'cke-resizable' ) ) {
+			var width = fakeElement.getStyle( 'width' ),
+				height = fakeElement.getStyle( 'height' );
+
+			width && element.setAttribute( 'width', replaceCssLength( element.getAttribute( 'width' ), width ) );
+			height && element.setAttribute( 'height', replaceCssLength( element.getAttribute( 'height' ), height ) );
+		}
+
+		return element;
+	};
+
+} )();
diff --git a/web/modules/anchor_link/js/plugins/link/dialogs/anchor.js b/web/modules/anchor_link/js/plugins/link/dialogs/anchor.js
new file mode 100644
index 0000000000000000000000000000000000000000..06ea90d0f162a177a42fc29e551d2003dedff594
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/dialogs/anchor.js
@@ -0,0 +1,122 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+CKEDITOR.dialog.add( 'anchor', function( editor ) {
+	// Function called in onShow to load selected element.
+	var loadElements = function( element ) {
+			this._.selectedElement = element;
+
+			var attributeValue = element.data( 'cke-saved-name' );
+			this.setValueOf( 'info', 'txtName', attributeValue || '' );
+		};
+
+	function createFakeAnchor( editor, attributes ) {
+		return editor.createFakeElement( editor.document.createElement( 'a', {
+			attributes: attributes
+		} ), 'cke_anchor', 'anchor' );
+	}
+
+
+	function getSelectedAnchor( selection ) {
+		var range = selection.getRanges()[ 0 ],
+			element = selection.getSelectedElement();
+
+		// In case of table cell selection, we want to shrink selection from td to a element.
+		range.shrink( CKEDITOR.SHRINK_ELEMENT );
+		element = range.getEnclosedNode();
+
+		if ( element && element.type === CKEDITOR.NODE_ELEMENT &&
+			( element.data( 'cke-real-element-type' ) === 'anchor' || element.is( 'a' ) ) ) {
+			return element;
+		}
+	}
+
+	return {
+		title: editor.lang.link.anchor.title,
+		minWidth: 300,
+		minHeight: 60,
+		onOk: function() {
+			var name = CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtName' ) );
+			var attributes = {
+				id: name,
+				name: name,
+				'data-cke-saved-name': name
+			};
+
+			if ( this._.selectedElement ) {
+				if ( this._.selectedElement.data( 'cke-realelement' ) ) {
+					var newFake = createFakeAnchor( editor, attributes );
+					newFake.replace( this._.selectedElement );
+
+					// Selecting fake element for IE. (http://dev.ckeditor.com/ticket/11377)
+					if ( CKEDITOR.env.ie ) {
+						editor.getSelection().selectElement( newFake );
+					}
+				} else {
+					this._.selectedElement.setAttributes( attributes );
+				}
+			} else {
+				var sel = editor.getSelection(),
+					range = sel && sel.getRanges()[ 0 ];
+
+				// Empty anchor
+				if ( range.collapsed ) {
+					var anchor = createFakeAnchor( editor, attributes );
+					range.insertNode( anchor );
+				} else {
+					if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
+						attributes[ 'class' ] = 'cke_anchor';
+
+					// Apply style.
+					var style = new CKEDITOR.style( { element: 'a', attributes: attributes } );
+					style.type = CKEDITOR.STYLE_INLINE;
+					style.applyToRange( range );
+				}
+			}
+		},
+
+		onHide: function() {
+			delete this._.selectedElement;
+		},
+
+		onShow: function() {
+			var sel = editor.getSelection(),
+				fullySelected = getSelectedAnchor( sel ),
+				fakeSelected = fullySelected && fullySelected.data( 'cke-realelement' ),
+				linkElement = fakeSelected ?
+					CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected ) :
+					CKEDITOR.plugins.link.getSelectedLink( editor );
+
+			if ( linkElement ) {
+				loadElements.call( this, linkElement );
+				!fakeSelected && sel.selectElement( linkElement );
+
+				if ( fullySelected ) {
+					this._.selectedElement = fullySelected;
+				}
+			}
+
+			this.getContentElement( 'info', 'txtName' ).focus();
+		},
+		contents: [ {
+			id: 'info',
+			label: editor.lang.link.anchor.title,
+			accessKey: 'I',
+			elements: [ {
+				type: 'text',
+				id: 'txtName',
+				label: editor.lang.link.anchor.name,
+				required: true,
+				validate: function() {
+					if ( !this.getValue() ) {
+						alert( editor.lang.link.anchor.errorName ); // jshint ignore:line
+						return false;
+					}
+					return true;
+				}
+			} ]
+		} ]
+	};
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/dialogs/link.js b/web/modules/anchor_link/js/plugins/link/dialogs/link.js
new file mode 100644
index 0000000000000000000000000000000000000000..78cc6478317a4e6cabde7591796df0a195afde5b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/dialogs/link.js
@@ -0,0 +1,1015 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+'use strict';
+
+( function() {
+	CKEDITOR.dialog.add( 'link', function( editor ) {
+		var plugin = CKEDITOR.plugins.link,
+			initialLinkText;
+
+		function createRangeForLink( editor, link ) {
+			var range = editor.createRange();
+
+			range.setStartBefore( link );
+			range.setEndAfter( link );
+
+			return range;
+		}
+
+		function insertLinksIntoSelection( editor, data ) {
+			var attributes = plugin.getLinkAttributes( editor, data ),
+				ranges = editor.getSelection().getRanges(),
+				style = new CKEDITOR.style( {
+					element: 'a',
+					attributes: attributes.set
+				} ),
+				rangesToSelect = [],
+				range,
+				text,
+				nestedLinks,
+				i,
+				j;
+
+			style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.
+
+			for ( i = 0; i < ranges.length; i++ ) {
+				range = ranges[ i ];
+
+				// Use link URL as text with a collapsed cursor.
+				if ( range.collapsed ) {
+					// Short mailto link text view (http://dev.ckeditor.com/ticket/5736).
+					text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ?
+						data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document );
+					range.insertNode( text );
+					range.selectNodeContents( text );
+				} else if ( initialLinkText !== data.linkText ) {
+					text = new CKEDITOR.dom.text( data.linkText, editor.document );
+
+					// Shrink range to preserve block element.
+					range.shrink( CKEDITOR.SHRINK_TEXT );
+
+					// Use extractHtmlFromRange to remove markup within the selection. Also this method is a little
+					// smarter than range#deleteContents as it plays better e.g. with table cells.
+					editor.editable().extractHtmlFromRange( range );
+
+					range.insertNode( text );
+				}
+
+				// Editable links nested within current range should be removed, so that the link is applied to whole selection.
+				nestedLinks = range._find( 'a' );
+
+				for	( j = 0; j < nestedLinks.length; j++ ) {
+					nestedLinks[ j ].remove( true );
+				}
+
+
+				// Apply style.
+				style.applyToRange( range, editor );
+
+				rangesToSelect.push( range );
+			}
+
+			editor.getSelection().selectRanges( rangesToSelect );
+		}
+
+		function editLinksInSelection( editor, selectedElements, data ) {
+			var attributes = plugin.getLinkAttributes( editor, data ),
+				ranges = [],
+				element,
+				href,
+				textView,
+				newText,
+				i;
+
+			for ( i = 0; i < selectedElements.length; i++ ) {
+				// We're only editing an existing link, so just overwrite the attributes.
+				element = selectedElements[ i ];
+				href = element.data( 'cke-saved-href' );
+				textView = element.getHtml();
+
+				element.setAttributes( attributes.set );
+				element.removeAttributes( attributes.removed );
+
+
+				if ( data.linkText && initialLinkText != data.linkText ) {
+					// Display text has been changed.
+					newText = data.linkText;
+				} else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
+					// Update text view when user changes protocol (http://dev.ckeditor.com/ticket/4612).
+					// Short mailto link text view (http://dev.ckeditor.com/ticket/5736).
+					newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ];
+				}
+
+				if ( newText ) {
+					element.setText( newText );
+				}
+
+				ranges.push( createRangeForLink( editor, element ) );
+			}
+
+			// We changed the content, so need to select it again.
+			editor.getSelection().selectRanges( ranges );
+		}
+
+		// Handles the event when the "Target" selection box is changed.
+		var targetChanged = function() {
+				var dialog = this.getDialog(),
+					popupFeatures = dialog.getContentElement( 'target', 'popupFeatures' ),
+					targetName = dialog.getContentElement( 'target', 'linkTargetName' ),
+					value = this.getValue();
+
+				if ( !popupFeatures || !targetName )
+					return;
+
+				popupFeatures = popupFeatures.getElement();
+				popupFeatures.hide();
+				targetName.setValue( '' );
+
+				switch ( value ) {
+					case 'frame':
+						targetName.setLabel( editor.lang.link.targetFrameName );
+						targetName.getElement().show();
+						break;
+					case 'popup':
+						popupFeatures.show();
+						targetName.setLabel( editor.lang.link.targetPopupName );
+						targetName.getElement().show();
+						break;
+					default:
+						targetName.setValue( value );
+						targetName.getElement().hide();
+						break;
+				}
+
+			};
+
+		// Handles the event when the "Type" selection box is changed.
+		var linkTypeChanged = function() {
+				var dialog = this.getDialog(),
+					partIds = [ 'urlOptions', 'anchorOptions', 'emailOptions' ],
+					typeValue = this.getValue(),
+					uploadTab = dialog.definition.getContents( 'upload' ),
+					uploadInitiallyHidden = uploadTab && uploadTab.hidden;
+
+				if ( typeValue == 'url' ) {
+					if ( editor.config.linkShowTargetTab )
+						dialog.showPage( 'target' );
+					if ( !uploadInitiallyHidden )
+						dialog.showPage( 'upload' );
+				} else {
+					dialog.hidePage( 'target' );
+					if ( !uploadInitiallyHidden )
+						dialog.hidePage( 'upload' );
+				}
+
+				for ( var i = 0; i < partIds.length; i++ ) {
+					var element = dialog.getContentElement( 'info', partIds[ i ] );
+					if ( !element )
+						continue;
+
+					element = element.getElement().getParent().getParent();
+					if ( partIds[ i ] == typeValue + 'Options' )
+						element.show();
+					else
+						element.hide();
+				}
+
+				dialog.layout();
+			};
+
+		var setupParams = function( page, data ) {
+				if ( data[ page ] )
+					this.setValue( data[ page ][ this.id ] || '' );
+			};
+
+		var setupPopupParams = function( data ) {
+				return setupParams.call( this, 'target', data );
+			};
+
+		var setupAdvParams = function( data ) {
+				return setupParams.call( this, 'advanced', data );
+			};
+
+		var commitParams = function( page, data ) {
+				if ( !data[ page ] )
+					data[ page ] = {};
+
+				data[ page ][ this.id ] = this.getValue() || '';
+			};
+
+		var commitPopupParams = function( data ) {
+				return commitParams.call( this, 'target', data );
+			};
+
+		var commitAdvParams = function( data ) {
+				return commitParams.call( this, 'advanced', data );
+			};
+
+		var commonLang = editor.lang.common,
+			linkLang = editor.lang.link,
+			anchors;
+
+		return {
+			title: linkLang.title,
+			minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 450 : 350,
+			minHeight: 240,
+			contents: [ {
+				id: 'info',
+				label: linkLang.info,
+				title: linkLang.info,
+				elements: [ {
+					type: 'text',
+					id: 'linkDisplayText',
+					label: linkLang.displayText,
+					setup: function() {
+						this.enable();
+
+						this.setValue( editor.getSelection().getSelectedText() );
+
+						// Keep inner text so that it can be compared in commit function. By obtaining value from getData()
+						// we get value stripped from new line chars which is important when comparing the value later on.
+						initialLinkText = this.getValue();
+					},
+					commit: function( data ) {
+						data.linkText = this.isEnabled() ? this.getValue() : '';
+					}
+				},
+				{
+					id: 'linkType',
+					type: 'select',
+					label: linkLang.type,
+					'default': 'url',
+					items: [
+						[ linkLang.toUrl, 'url' ],
+						[ linkLang.toAnchor, 'anchor' ],
+						[ linkLang.toEmail, 'email' ]
+					],
+					onChange: linkTypeChanged,
+					setup: function( data ) {
+						this.setValue( data.type || 'url' );
+					},
+					commit: function( data ) {
+						data.type = this.getValue();
+					}
+				},
+				{
+					type: 'vbox',
+					id: 'urlOptions',
+					children: [ {
+						type: 'hbox',
+						widths: [ '25%', '75%' ],
+						children: [ {
+							id: 'protocol',
+							type: 'select',
+							label: commonLang.protocol,
+							'default': 'http://',
+							items: [
+								// Force 'ltr' for protocol names in BIDI. (http://dev.ckeditor.com/ticket/5433)
+								[ 'http://\u200E', 'http://' ],
+								[ 'https://\u200E', 'https://' ],
+								[ 'ftp://\u200E', 'ftp://' ],
+								[ 'news://\u200E', 'news://' ],
+								[ linkLang.other, '' ]
+							],
+							setup: function( data ) {
+								if ( data.url )
+									this.setValue( data.url.protocol || '' );
+							},
+							commit: function( data ) {
+								if ( !data.url )
+									data.url = {};
+
+								data.url.protocol = this.getValue();
+							}
+						},
+						{
+							type: 'text',
+							id: 'url',
+							label: commonLang.url,
+							required: true,
+							onLoad: function() {
+								this.allowOnChange = true;
+							},
+							onKeyUp: function() {
+								this.allowOnChange = false;
+								var protocolCmb = this.getDialog().getContentElement( 'info', 'protocol' ),
+									url = this.getValue(),
+									urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/i,
+									urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/i;
+
+								var protocol = urlOnChangeProtocol.exec( url );
+								if ( protocol ) {
+									this.setValue( url.substr( protocol[ 0 ].length ) );
+									protocolCmb.setValue( protocol[ 0 ].toLowerCase() );
+								} else if ( urlOnChangeTestOther.test( url ) ) {
+									protocolCmb.setValue( '' );
+								}
+
+								this.allowOnChange = true;
+							},
+							onChange: function() {
+								if ( this.allowOnChange ) // Dont't call on dialog load.
+								this.onKeyUp();
+							},
+							validate: function() {
+								var dialog = this.getDialog();
+
+								if ( dialog.getContentElement( 'info', 'linkType' ) && dialog.getValueOf( 'info', 'linkType' ) != 'url' )
+									return true;
+
+								if ( !editor.config.linkJavaScriptLinksAllowed && ( /javascript\:/ ).test( this.getValue() ) ) {
+									alert( commonLang.invalidValue ); // jshint ignore:line
+									return false;
+								}
+
+								if ( this.getDialog().fakeObj ) // Edit Anchor.
+								return true;
+
+								var func = CKEDITOR.dialog.validate.notEmpty( linkLang.noUrl );
+								return func.apply( this );
+							},
+							setup: function( data ) {
+								this.allowOnChange = false;
+								if ( data.url )
+									this.setValue( data.url.url );
+								this.allowOnChange = true;
+
+							},
+							commit: function( data ) {
+								// IE will not trigger the onChange event if the mouse has been used
+								// to carry all the operations http://dev.ckeditor.com/ticket/4724
+								this.onChange();
+
+								if ( !data.url )
+									data.url = {};
+
+								data.url.url = this.getValue();
+								this.allowOnChange = false;
+							}
+						} ],
+						setup: function() {
+							if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+								this.getElement().show();
+						}
+					},
+					{
+						type: 'button',
+						id: 'browse',
+						hidden: 'true',
+						filebrowser: 'info:url',
+						label: commonLang.browseServer
+					} ]
+				},
+				{
+					type: 'vbox',
+					id: 'anchorOptions',
+					width: 260,
+					align: 'center',
+					padding: 0,
+					children: [ {
+						type: 'fieldset',
+						id: 'selectAnchorText',
+						label: linkLang.selectAnchor,
+						setup: function() {
+							anchors = plugin.getEditorAnchors( editor );
+
+							this.getElement()[ anchors && anchors.length ? 'show' : 'hide' ]();
+						},
+						children: [ {
+							type: 'hbox',
+							id: 'selectAnchor',
+							children: [ {
+								type: 'select',
+								id: 'anchorName',
+								'default': '',
+								label: linkLang.anchorName,
+								style: 'width: 100%;',
+								items: [
+									[ '' ]
+								],
+								setup: function( data ) {
+									this.clear();
+									this.add( '' );
+
+									if ( anchors ) {
+										for ( var i = 0; i < anchors.length; i++ ) {
+											if ( anchors[ i ].name )
+												this.add( anchors[ i ].name );
+										}
+									}
+
+									if ( data.anchor )
+										this.setValue( data.anchor.name );
+
+									var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
+									if ( linkType && linkType.getValue() == 'email' )
+										this.focus();
+								},
+								commit: function( data ) {
+									if ( !data.anchor )
+										data.anchor = {};
+
+									data.anchor.name = this.getValue();
+								}
+							},
+							{
+								type: 'select',
+								id: 'anchorId',
+								'default': '',
+								label: linkLang.anchorId,
+								style: 'width: 100%;',
+								items: [
+									[ '' ]
+								],
+								setup: function( data ) {
+									this.clear();
+									this.add( '' );
+
+									if ( anchors ) {
+										for ( var i = 0; i < anchors.length; i++ ) {
+											if ( anchors[ i ].id )
+												this.add( anchors[ i ].id );
+										}
+									}
+
+									if ( data.anchor )
+										this.setValue( data.anchor.id );
+								},
+								commit: function( data ) {
+									if ( !data.anchor )
+										data.anchor = {};
+
+									data.anchor.id = this.getValue();
+								}
+							} ],
+							setup: function() {
+								this.getElement()[ anchors && anchors.length ? 'show' : 'hide' ]();
+							}
+						} ]
+					},
+					{
+						type: 'html',
+						id: 'noAnchors',
+						style: 'text-align: center;',
+						html: '<div role="note" tabIndex="-1">' + CKEDITOR.tools.htmlEncode( linkLang.noAnchors ) + '</div>',
+						// Focus the first element defined in above html.
+						focus: true,
+						setup: function() {
+							this.getElement()[ anchors && anchors.length ? 'hide' : 'show' ]();
+						}
+					} ],
+					setup: function() {
+						if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+							this.getElement().hide();
+					}
+				},
+				{
+					type: 'vbox',
+					id: 'emailOptions',
+					padding: 1,
+					children: [ {
+						type: 'text',
+						id: 'emailAddress',
+						label: linkLang.emailAddress,
+						required: true,
+						validate: function() {
+							var dialog = this.getDialog();
+
+							if ( !dialog.getContentElement( 'info', 'linkType' ) || dialog.getValueOf( 'info', 'linkType' ) != 'email' )
+								return true;
+
+							var func = CKEDITOR.dialog.validate.notEmpty( linkLang.noEmail );
+							return func.apply( this );
+						},
+						setup: function( data ) {
+							if ( data.email )
+								this.setValue( data.email.address );
+
+							var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
+							if ( linkType && linkType.getValue() == 'email' )
+								this.select();
+						},
+						commit: function( data ) {
+							if ( !data.email )
+								data.email = {};
+
+							data.email.address = this.getValue();
+						}
+					},
+					{
+						type: 'text',
+						id: 'emailSubject',
+						label: linkLang.emailSubject,
+						setup: function( data ) {
+							if ( data.email )
+								this.setValue( data.email.subject );
+						},
+						commit: function( data ) {
+							if ( !data.email )
+								data.email = {};
+
+							data.email.subject = this.getValue();
+						}
+					},
+					{
+						type: 'textarea',
+						id: 'emailBody',
+						label: linkLang.emailBody,
+						rows: 3,
+						'default': '',
+						setup: function( data ) {
+							if ( data.email )
+								this.setValue( data.email.body );
+						},
+						commit: function( data ) {
+							if ( !data.email )
+								data.email = {};
+
+							data.email.body = this.getValue();
+						}
+					} ],
+					setup: function() {
+						if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+							this.getElement().hide();
+					}
+				} ]
+			},
+			{
+				id: 'target',
+				requiredContent: 'a[target]', // This is not fully correct, because some target option requires JS.
+				label: linkLang.target,
+				title: linkLang.target,
+				elements: [ {
+					type: 'hbox',
+					widths: [ '50%', '50%' ],
+					children: [ {
+						type: 'select',
+						id: 'linkTargetType',
+						label: commonLang.target,
+						'default': 'notSet',
+						style: 'width : 100%;',
+						'items': [
+							[ commonLang.notSet, 'notSet' ],
+							[ linkLang.targetFrame, 'frame' ],
+							[ linkLang.targetPopup, 'popup' ],
+							[ commonLang.targetNew, '_blank' ],
+							[ commonLang.targetTop, '_top' ],
+							[ commonLang.targetSelf, '_self' ],
+							[ commonLang.targetParent, '_parent' ]
+						],
+						onChange: targetChanged,
+						setup: function( data ) {
+							if ( data.target )
+								this.setValue( data.target.type || 'notSet' );
+							targetChanged.call( this );
+						},
+						commit: function( data ) {
+							if ( !data.target )
+								data.target = {};
+
+							data.target.type = this.getValue();
+						}
+					},
+					{
+						type: 'text',
+						id: 'linkTargetName',
+						label: linkLang.targetFrameName,
+						'default': '',
+						setup: function( data ) {
+							if ( data.target )
+								this.setValue( data.target.name );
+						},
+						commit: function( data ) {
+							if ( !data.target )
+								data.target = {};
+
+							data.target.name = this.getValue().replace( /([^\x00-\x7F]|\s)/gi, '' );
+						}
+					} ]
+				},
+				{
+					type: 'vbox',
+					width: '100%',
+					align: 'center',
+					padding: 2,
+					id: 'popupFeatures',
+					children: [ {
+						type: 'fieldset',
+						label: linkLang.popupFeatures,
+						children: [ {
+							type: 'hbox',
+							children: [ {
+								type: 'checkbox',
+								id: 'resizable',
+								label: linkLang.popupResizable,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+							},
+							{
+								type: 'checkbox',
+								id: 'status',
+								label: linkLang.popupStatusBar,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						},
+						{
+							type: 'hbox',
+							children: [ {
+								type: 'checkbox',
+								id: 'location',
+								label: linkLang.popupLocationBar,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							},
+							{
+								type: 'checkbox',
+								id: 'toolbar',
+								label: linkLang.popupToolbar,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						},
+						{
+							type: 'hbox',
+							children: [ {
+								type: 'checkbox',
+								id: 'menubar',
+								label: linkLang.popupMenuBar,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							},
+							{
+								type: 'checkbox',
+								id: 'fullscreen',
+								label: linkLang.popupFullScreen,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						},
+						{
+							type: 'hbox',
+							children: [ {
+								type: 'checkbox',
+								id: 'scrollbars',
+								label: linkLang.popupScrollBars,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							},
+							{
+								type: 'checkbox',
+								id: 'dependent',
+								label: linkLang.popupDependent,
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						},
+						{
+							type: 'hbox',
+							children: [ {
+								type: 'text',
+								widths: [ '50%', '50%' ],
+								labelLayout: 'horizontal',
+								label: commonLang.width,
+								id: 'width',
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							},
+							{
+								type: 'text',
+								labelLayout: 'horizontal',
+								widths: [ '50%', '50%' ],
+								label: linkLang.popupLeft,
+								id: 'left',
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						},
+						{
+							type: 'hbox',
+							children: [ {
+								type: 'text',
+								labelLayout: 'horizontal',
+								widths: [ '50%', '50%' ],
+								label: commonLang.height,
+								id: 'height',
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							},
+							{
+								type: 'text',
+								labelLayout: 'horizontal',
+								label: linkLang.popupTop,
+								widths: [ '50%', '50%' ],
+								id: 'top',
+								setup: setupPopupParams,
+								commit: commitPopupParams
+
+							} ]
+						} ]
+					} ]
+				} ]
+			},
+			{
+				id: 'upload',
+				label: linkLang.upload,
+				title: linkLang.upload,
+				hidden: true,
+				filebrowser: 'uploadButton',
+				elements: [ {
+					type: 'file',
+					id: 'upload',
+					label: commonLang.upload,
+					style: 'height:40px',
+					size: 29
+				},
+				{
+					type: 'fileButton',
+					id: 'uploadButton',
+					label: commonLang.uploadSubmit,
+					filebrowser: 'info:url',
+					'for': [ 'upload', 'upload' ]
+				} ]
+			},
+			{
+				id: 'advanced',
+				label: linkLang.advanced,
+				title: linkLang.advanced,
+				elements: [ {
+					type: 'vbox',
+					padding: 1,
+					children: [ {
+						type: 'hbox',
+						widths: [ '45%', '35%', '20%' ],
+						children: [ {
+							type: 'text',
+							id: 'advId',
+							requiredContent: 'a[id]',
+							label: linkLang.id,
+							setup: setupAdvParams,
+							commit: commitAdvParams
+						},
+						{
+							type: 'select',
+							id: 'advLangDir',
+							requiredContent: 'a[dir]',
+							label: linkLang.langDir,
+							'default': '',
+							style: 'width:110px',
+							items: [
+								[ commonLang.notSet, '' ],
+								[ linkLang.langDirLTR, 'ltr' ],
+								[ linkLang.langDirRTL, 'rtl' ]
+							],
+							setup: setupAdvParams,
+							commit: commitAdvParams
+						},
+						{
+							type: 'text',
+							id: 'advAccessKey',
+							requiredContent: 'a[accesskey]',
+							width: '80px',
+							label: linkLang.acccessKey,
+							maxLength: 1,
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						} ]
+					},
+					{
+						type: 'hbox',
+						widths: [ '45%', '35%', '20%' ],
+						children: [ {
+							type: 'text',
+							label: linkLang.name,
+							id: 'advName',
+							requiredContent: 'a[name]',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						},
+						{
+							type: 'text',
+							label: linkLang.langCode,
+							id: 'advLangCode',
+							requiredContent: 'a[lang]',
+							width: '110px',
+							'default': '',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						},
+						{
+							type: 'text',
+							label: linkLang.tabIndex,
+							id: 'advTabIndex',
+							requiredContent: 'a[tabindex]',
+							width: '80px',
+							maxLength: 5,
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						} ]
+					} ]
+				},
+				{
+					type: 'vbox',
+					padding: 1,
+					children: [ {
+						type: 'hbox',
+						widths: [ '45%', '55%' ],
+						children: [ {
+							type: 'text',
+							label: linkLang.advisoryTitle,
+							requiredContent: 'a[title]',
+							'default': '',
+							id: 'advTitle',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						},
+						{
+							type: 'text',
+							label: linkLang.advisoryContentType,
+							requiredContent: 'a[type]',
+							'default': '',
+							id: 'advContentType',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						} ]
+					},
+					{
+						type: 'hbox',
+						widths: [ '45%', '55%' ],
+						children: [ {
+							type: 'text',
+							label: linkLang.cssClasses,
+							requiredContent: 'a(cke-xyz)', // Random text like 'xyz' will check if all are allowed.
+							'default': '',
+							id: 'advCSSClasses',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						},
+						{
+							type: 'text',
+							label: linkLang.charset,
+							requiredContent: 'a[charset]',
+							'default': '',
+							id: 'advCharset',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+
+						} ]
+					},
+					{
+						type: 'hbox',
+						widths: [ '45%', '55%' ],
+						children: [ {
+							type: 'text',
+							label: linkLang.rel,
+							requiredContent: 'a[rel]',
+							'default': '',
+							id: 'advRel',
+							setup: setupAdvParams,
+							commit: commitAdvParams
+						},
+						{
+							type: 'text',
+							label: linkLang.styles,
+							requiredContent: 'a{cke-xyz}', // Random text like 'xyz' will check if all are allowed.
+							'default': '',
+							id: 'advStyles',
+							validate: CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),
+							setup: setupAdvParams,
+							commit: commitAdvParams
+						} ]
+					},
+					{
+						type: 'hbox',
+						widths: [ '45%', '55%' ],
+						children: [ {
+							type: 'checkbox',
+							id: 'download',
+							requiredContent: 'a[download]',
+							label: linkLang.download,
+							setup: function( data ) {
+								if ( data.download !== undefined )
+									this.setValue( 'checked', 'checked' );
+							},
+							commit: function( data ) {
+								if ( this.getValue() ) {
+									data.download = this.getValue();
+								}
+							}
+						} ]
+					} ]
+				} ]
+			} ],
+			onShow: function() {
+				var editor = this.getParentEditor(),
+					selection = editor.getSelection(),
+					displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(),
+					elements = plugin.getSelectedLink( editor, true ),
+					firstLink = elements[ 0 ] || null;
+
+				// Fill in all the relevant fields if there's already one link selected.
+				if ( firstLink && firstLink.hasAttribute( 'href' ) ) {
+					// Don't change selection if some element is already selected.
+					// For example - don't destroy fake selection.
+					if ( !selection.getSelectedElement() && !selection.isInTable() ) {
+						selection.selectElement( firstLink );
+					}
+				}
+
+				var data = plugin.parseLinkAttributes( editor, firstLink );
+
+				// Here we'll decide whether or not we want to show Display Text field.
+				if ( elements.length <= 1 && plugin.showDisplayTextForElement( firstLink, editor ) ) {
+					displayTextField.show();
+				} else {
+					displayTextField.hide();
+				}
+
+				// Record down the selected element in the dialog.
+				this._.selectedElements = elements;
+
+				this.setupContent( data );
+			},
+			onOk: function() {
+				var data = {};
+
+				// Collect data from fields.
+				this.commitContent( data );
+
+				if ( !this._.selectedElements.length ) {
+					insertLinksIntoSelection( editor, data );
+				} else {
+					editLinksInSelection( editor, this._.selectedElements, data );
+
+					delete this._.selectedElements;
+				}
+			},
+			onLoad: function() {
+				if ( !editor.config.linkShowAdvancedTab )
+					this.hidePage( 'advanced' ); //Hide Advanded tab.
+
+				if ( !editor.config.linkShowTargetTab )
+					this.hidePage( 'target' ); //Hide Target tab.
+			},
+			// Inital focus on 'url' field if link is of type URL.
+			onFocus: function() {
+				var linkType = this.getContentElement( 'info', 'linkType' ),
+					urlField;
+
+				if ( linkType && linkType.getValue() == 'url' ) {
+					urlField = this.getContentElement( 'info', 'url' );
+					urlField.select();
+				}
+			}
+		};
+	} );
+} )();
+// jscs:disable maximumLineLength
+/**
+ * The e-mail address anti-spam protection option. The protection will be
+ * applied when creating or modifying e-mail links through the editor interface.
+ *
+ * Two methods of protection can be chosen:
+ *
+ * 1. The e-mail parts (name, domain, and any other query string) are
+ *     assembled into a function call pattern. Such function must be
+ *     provided by the developer in the pages that will use the contents.
+ * 2. Only the e-mail address is obfuscated into a special string that
+ *     has no meaning for humans or spam bots, but which is properly
+ *     rendered and accepted by the browser.
+ *
+ * Both approaches require JavaScript to be enabled.
+ *
+ *		// href="mailto:tester@ckeditor.com?subject=subject&body=body"
+ *		config.emailProtection = '';
+ *
+ *		// href="<a href=\"javascript:void(location.href=\'mailto:\'+String.fromCharCode(116,101,115,116,101,114,64,99,107,101,100,105,116,111,114,46,99,111,109)+\'?subject=subject&body=body\')\">e-mail</a>"
+ *		config.emailProtection = 'encode';
+ *
+ *		// href="javascript:mt('tester','ckeditor.com','subject','body')"
+ *		config.emailProtection = 'mt(NAME,DOMAIN,SUBJECT,BODY)';
+ *
+ * @since 3.1
+ * @cfg {String} [emailProtection='' (empty string = disabled)]
+ * @member CKEDITOR.config
+ */
diff --git a/web/modules/anchor_link/js/plugins/link/icons/anchor-rtl.png b/web/modules/anchor_link/js/plugins/link/icons/anchor-rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..b06885589c82a0c5d2cf628d19f6f8a9ecdbeead
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/anchor-rtl.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->�����IDAT8��R1n�@�1K�H�tt����F��UW'M�4yR�B��uX��K.u���㱽6۶�T5�y�?�j���kQ��l�8����=T��@�y~�޿Xk���Z��4
vrW�
+��)?�~�O�*@$?I~�&�t��"�c$�;��!�|��6w���CY���^�jY��Y��c���$�QT�۝�e�$�%�"k���IdY�KZb��1&���k8�0�iJE"��s�[�m�������sK������%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/anchor.png b/web/modules/anchor_link/js/plugins/link/icons/anchor.png
new file mode 100644
index 0000000000000000000000000000000000000000..e50d6cd83e79f6b9ba1a49fe3bb0c9b23cfcb3c3
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/anchor.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->�����IDAT8�ݒ1N�0D�l~~�X�(P.�(s�=8Pjj*j(�M�DJa˦����%S�׳��^�i��D��TUu/��޿/ﶰE�.���,S��{�v�?�y~B�`G�@	�$�$��L��K,��F����$$}H����������;�6�(3{��]�#������0�uu]�e��-)�4��ڹ$�s8�V��^���/�oW� ƈ�!	3����ѡ�@QsA�����|>S�J���ڶ�'|��c���;Q���%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor-rtl.png b/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor-rtl.png
new file mode 100644
index 0000000000000000000000000000000000000000..3533c38876719c02b9e4c779d90043c67dab5e40
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor-rtl.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!������IDATX��V?kTA���&&��Ҩ ����J�88��,������&v��q`a/�m����TA��{�c�汷��ޙ(�����7;�gvi9�j�UUQ��yLk�u���"�x���ADB@�b^7&�	677w��f���13�!�	�2����9�N��R+U��D���j�����3�_����D�ιlj�Z���z�{�ιG"2'�(
+�Z�=U�����"�*�h��(�x��!�^���������
"���%0��}]¨*�"r���օ�̰X���W��ey��҄V�KA�f��V�,},��S�����su�MD�67�rt�4�xYiŌ����Ճ�L��*r
+�y�O*�*��.��u�%�c�!H�Tz��9�9�Y��k�����K
Ȕ�� �8ݫ����7s����[�r'\&кZS�n��F��{?!�:���8!tr�B�7>}�8�EqXw�&L>��l6;�ާV��?T�V�#fC "owww�9�SmK�f~B �]U=���Y�)��6}I�g�1�h4����d����������E�3-\����}K�4�@�""���:D�S�:Xͧ��,�!H�n/G�C�݆��{8��n���`��,MJ��f������t���e�Ͼ�팪b�s�߯4lzl���R�t��tk�M���K"�@����@�+�
ӊ��s)��)~{�`=��b���%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor.png b/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor.png
new file mode 100644
index 0000000000000000000000000000000000000000..99eeaddcbc7031abc2adf2367a37c623b23c6140
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/hidpi/anchor.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!������IDATX��V��A���,�-.px��@��J�pI�_`��v���`gq�`)�!\c)��h#v��.;�Y���Nf7Q������}�{�f���1�@Dך����v�AK03�1�E��o��$"�vwwo_^^BD3����l6����$Y��k�C"f~���a�����f��,˄�����5�*C������\��x�(��*(��{�2�s�wY�EQ!὇���9'��2��P�)��
+D9�,�{J&��'����wB����|�^�����
+W��J�W�ګR�S�ur1���ZF���M���?�F���%C��آ:us)�>� T+
Cz��؆�H��C�%��DT��Z&]T�۸3"��K&��=�saM�kö���꾩r�=�"���B�[��m��r��cf�f����ck��0�a_7��e�]D�ּ)��q�e"r,"���1V�sT�M��Q�},�b?�#4�s��"22�<!"�Q�����2Ƽ.���t-tW�%ZW����1�.��;�Κ��!�
�Q�-�sa>�ș���B�o�Pyx��	��9�E�"��^7gR�V:簳��~���d��r��b�C�l���1����V�F������I�s�
����w����V��������_X�8n� '���%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/hidpi/link.png b/web/modules/anchor_link/js/plugins/link/icons/hidpi/link.png
new file mode 100644
index 0000000000000000000000000000000000000000..43ce99ed22e2ef55dd6084e98edaf349c034aa43
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/hidpi/link.png
@@ -0,0 +1,5 @@
+�PNG
+
+���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!������IDATX��V;N#A}���h@ ����p��N�����R	�	���j��$F�T��-��|���RR��{�TUW��i�S�w!�t:��}L���EL���<88@!���>2�����ٛ�G}$�Y�Ì�B����cWD�����s�e��P�e���W�Fr
+��}$e"��a0�����v|�$g`Ws� ywr�ʤ��A�������<�ۣш�hf���CP�sUM�٤�шy��#f'��3 i����5�3�t:�d2�-�b.]��Z$T�(
+L&������tӷ�����2>��,C�eߚj��0׺MHkEQ|�h��^���߯7����,�$-u�"���0K��(��D���]`f(˲n�8>>�f6�Xc��F�����/��]�>z��$eY>��M�S677�b�{{{5�$��!766\Y_NyS�q������-��� �3H�����ݘ���1|qG�`�N'�z�$����������׵A�"_��	?�~��c�j���@U�̬B@Q����,�΂eU����yn�^_U�������-�}U���s *D�DDNRM*"F����ݵ�O�lmm�d+��#_�&��Y�"�p!"g/dJhmoo��d��Y����k/%�2��4i�RܭH�8]e>�"2k'�?���U�������6�)����K����c����%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/hidpi/unlink.png b/web/modules/anchor_link/js/plugins/link/icons/hidpi/unlink.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ace29df161a8e0e3117aa52b0aa9d83adf65d12
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/hidpi/unlink.png
@@ -0,0 +1,6 @@
+�PNG
+
+���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!�����)IDATX��V�k$E�^Uu7=ab~��?���{7&〆������$�E��Q�Y��e]���AeQ<n��Y��d�L��^=���tf�k�����~�����^U��]�����
ADN�����vA������{�����A)5"r!��J#���S5|����3�gG)�F�"�3�c���� "!"�c�A��E�^�f�O�K�����g��{������������fek�b�$IV��! ��a�3���&��pHI���:K%F�^��Y8��Z�0˲�t���$�,�`�}轧r}I)�	���蜻]�W�10Ƽ8�Ө�ZwR
��,�^PJ�
+�0���Z�V���D$�C�50����`�>��}�y.J)�T�w�� ��E�`ssӌl�D����׉�666���F�1f{��z���|*DZ^�c6vvvt��R��83���Z���>���D���r��e��D���#$I"1D�#�V���?PJm�
+�����2�K�*<���Ed�����z�9�D�'fn��7�s0�lU�kkk#.��0�]"BQ���i��4�������}��ϋ� M��EQl��<:x>�������[�0�W"��G�e��WB�M���~��������EQ<�Z_RJUu������������9��{{{��v�D�+��\�Zϖ�?��{�h4�/�~�?����+�����h9I���������9w���8��x�qxx�;�{�nD�s�4M�;�����u�Q�8D���f}S�Zc���$��*p=���Z�Z;[��~s�]�Z��q"�+]QH��˸�� �����@3�Z��p8��F���qx<��Dԙtw(�^��?�����$�=�T��޿���сR�齇R
+Z�W�����:�X�5���2�o�sc�yVDlT�?+�ު��uG�1_G��;��4����$��6��"dY����=�A�s�����l[k�0� �_�4Ey�����3����*����Z�c�R���&Cf>V�QQ�<I�u� pw�$'�F�J��������%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/link.png b/web/modules/anchor_link/js/plugins/link/icons/link.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2c450f7f42cf1e33e9304fc8c22a4e77d545a0b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/link.png
@@ -0,0 +1,3 @@
+�PNG
+
+���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->���IDAT8˭R�m�0#/���.�]�8[�95K�G�G"�M�Ѻ%p�p�'��8����$a
���4of��a��)�}ζ�ILr� 9�:������$��3$�%!�4��^k���E�z�v{�Z+"�R�$���Xk�0������0�R�KD�|U���<�tw<�<�pw�{o�Ћ��<���}���"y.�,�N$Oq�[{f�k�����Iҍ �|L)M}���n��p�����>��S��+��޴����f���'�	����-����%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/icons/unlink.png b/web/modules/anchor_link/js/plugins/link/icons/unlink.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2f3f648e2b6199d371f96a7e7c00eadb2ccdf8f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/icons/unlink.png
@@ -0,0 +1,4 @@
+�PNG
+
+���
IHDR�����������a���gAMA�����a��� cHRM��z%��������������u0���`��:���o�_�F���bKGD�������������	pHYs����������tIME�
*->����IDAT8˥S��A���͐��RgHHdd����� G:� BB_@��	 ����̬��������Jji�z�z��ͦi "�*�A�/�$�1G�¨�d��0ƙ����H)����ٕ���9Or�R��©*��ڈ��R
+C'I����D)!����kUm�PKSJa��^L�v<����$�-T��p8�9�)t]�o�=�9g��]��|�uD��^���۶E۶$	3�ua�s^��E��r��BP��S���r6�i]ןRJkç�I��sq��f�_���@�1FIb>��I‘DUUP��y�"�#J)��s_D�-���{�H��]}��x6�뺾�$��9��ú��$��'ɭ��3Ƽ0�L���b�����b1��"���/�y2a#V�՝k=��}�U�%�o���%tEXtdate:create�2016-07-19T13:30:42+02:00�wx���%tEXtdate:modify�2016-07-19T13:30:42+02:00i�������IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/images/anchor.png b/web/modules/anchor_link/js/plugins/link/images/anchor.png
new file mode 100644
index 0000000000000000000000000000000000000000..d94adb41306ffd96741ae5e5ca1e8d749853f3fb
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/images/anchor.png
@@ -0,0 +1,8 @@
+�PNG
+
+���
IHDR�����������a���gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
n�"T���IDAT8˕��JA�������N�e��p� � � ����l��>E �2��KY$�D3.�B��I����E��qぢn�:u���k�8&�c��;�_\�za��s�1p����b��V��I./y47'e����I|�>:RgmM?����`y�˽=���7��׃��s$	
+��Ԕڠw���6�����
�J��c���	���2� �7�P
+�@V�*G�H\��y��ʃ�X[�*�������pL9{��R����'�A	K�4��f����*��1��������F�$Z҇E�����@BQ�!���v��$)=X_���.���H��t(I�76F����&�:L��eff榑>��g���4%��"��Q���gvk+��j�}���o6�4��w��驙j4�@��'	�zd�A��k4pQD��Z�6a��T0�a���c�8�V��iZ�aHP�c*\Ee
+�(�{����{���j$���
+�9�	&ǚ�n����%tEXtdate:create�2016-11-02T13:29:07+01:00�
+�j���%tEXtdate:modify�2016-11-02T13:29:07+01:00�We�����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/images/hidpi/anchor.png b/web/modules/anchor_link/js/plugins/link/images/hidpi/anchor.png
new file mode 100644
index 0000000000000000000000000000000000000000..186c3e916512175f0d6ab12d8eacfe9f320314db
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/images/hidpi/anchor.png
@@ -0,0 +1,8 @@
+�PNG
+
+���
IHDR��� ��� ���szz����gAMA�����a��� cHRM��z&��������������u0���`��:���p��Q<���bKGD�������������tIME�
!�����YIDATX�ݗ͋E��=;a{�5H�-�iYDo
+^��%�K�ك� "�\�7!���{HD�K jY�|y$,�8;�]�x��ꏝav�|����~���U]�O#���9���4-4Y���_l�)�(�t�a��Z��[��������$�)ɪ��Lи�� �P����<覤#n0(��s�Z�p���J1c���������G�������Y�ܻW�ꅤ�l��q�!i����k���#�@P�y|�n��m��
����ʕ:��%�v���8������q It;��;���	��"2	p����U�Z_�f�P����iy�g��HY����q`aa�����4�׀��x�$�0���KKD�&��b�|���1qL�������+`��
���~�|�+��_ߨK*�UƷ�h�Hթ��#��)�k��
+lE8i�S@�X��Up�x��_#EѾ��K8�)���0�>�෼>�����1���ȶ�|����T�pR�K��/��q����߽�W�����d���a���y���0�
+E6��o���Ν;�뎝>�ҥK�v�_ϟ�ɭ[D$ �/�N^�V�l��49�V������O�
+=�}I��^v O._�M�u�W�]m�v�>
/])8�
+@��9�m�?v��!��Eһފ�d{=��}[mn����piʬ�'GAa�V�HzUҷ\�i�MX� I��χ���ہ�v���^/����T-�^o�%k�Zch����0�?��쎲喿U�����.�zG��gz=��u C��*#���� �~a��r�2�)�۴�}���;:h�i�����l\Q�R�����%tEXtdate:create�2016-11-02T13:33:00+01:00������%tEXtdate:modify�2016-11-02T13:33:00+01:00�\Q����IEND�B`�
\ No newline at end of file
diff --git a/web/modules/anchor_link/js/plugins/link/lang/af.js b/web/modules/anchor_link/js/plugins/link/lang/af.js
new file mode 100644
index 0000000000000000000000000000000000000000..1e3f943c8b5a636ad6d1a064a9e05b725b252847
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/af.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'af', {
+	acccessKey: 'Toegangsleutel',
+	advanced: 'Gevorderd',
+	advisoryContentType: 'Aanbevole inhoudstipe',
+	advisoryTitle: 'Aanbevole titel',
+	anchor: {
+		toolbar: 'Anker byvoeg/verander',
+		menu: 'Anker-eienskappe',
+		title: 'Anker-eienskappe',
+		name: 'Ankernaam',
+		errorName: 'Voltooi die ankernaam asseblief',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'Op element Id',
+	anchorName: 'Op ankernaam',
+	charset: 'Karakterstel van geskakelde bron',
+	cssClasses: 'CSS klasse',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-posadres',
+	emailBody: 'Berig-inhoud',
+	emailSubject: 'Berig-onderwerp',
+	id: 'Id',
+	info: 'Skakel informasie',
+	langCode: 'Taalkode',
+	langDir: 'Skryfrigting',
+	langDirLTR: 'Links na regs (LTR)',
+	langDirRTL: 'Regs na links (RTL)',
+	menu: 'Wysig skakel',
+	name: 'Naam',
+	noAnchors: '(Geen ankers beskikbaar in dokument)',
+	noEmail: 'Gee die e-posadres',
+	noUrl: 'Gee die skakel se URL',
+	other: '<ander>',
+	popupDependent: 'Afhanklik (Netscape)',
+	popupFeatures: 'Eienskappe van opspringvenster',
+	popupFullScreen: 'Volskerm (IE)',
+	popupLeft: 'Posisie links',
+	popupLocationBar: 'Adresbalk',
+	popupMenuBar: 'Spyskaartbalk',
+	popupResizable: 'Herskaalbaar',
+	popupScrollBars: 'Skuifbalke',
+	popupStatusBar: 'Statusbalk',
+	popupToolbar: 'Werkbalk',
+	popupTop: 'Posisie bo',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Kies \'n anker',
+	styles: 'Styl',
+	tabIndex: 'Tab indeks',
+	target: 'Doel',
+	targetFrame: '<raam>',
+	targetFrameName: 'Naam van doelraam',
+	targetPopup: '<opspringvenster>',
+	targetPopupName: 'Naam van opspringvenster',
+	title: 'Skakel',
+	toAnchor: 'Anker in bladsy',
+	toEmail: 'E-pos',
+	toUrl: 'URL',
+	toolbar: 'Skakel invoeg/wysig',
+	type: 'Skakelsoort',
+	unlink: 'Verwyder skakel',
+	upload: 'Oplaai'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ar.js b/web/modules/anchor_link/js/plugins/link/lang/ar.js
new file mode 100644
index 0000000000000000000000000000000000000000..cfd0b486b1690a16d431f62c546ca730e48f08cf
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ar.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ar', {
+	acccessKey: 'مفاتيح الإختصار',
+	advanced: 'متقدم',
+	advisoryContentType: 'نوع التقرير',
+	advisoryTitle: 'عنوان التقرير',
+	anchor: {
+		toolbar: 'إشارة مرجعية',
+		menu: 'تحرير الإشارة المرجعية',
+		title: 'خصائص الإشارة المرجعية',
+		name: 'اسم الإشارة المرجعية',
+		errorName: 'الرجاء كتابة اسم الإشارة المرجعية',
+		remove: 'إزالة الإشارة المرجعية'
+	},
+	anchorId: 'حسب رقم العنصر',
+	anchorName: 'حسب إسم الإشارة المرجعية',
+	charset: 'ترميز المادة المطلوبة',
+	cssClasses: 'فئات التنسيق',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'البريد الإلكتروني',
+	emailBody: 'محتوى الرسالة',
+	emailSubject: 'موضوع الرسالة',
+	id: 'هوية',
+	info: 'معلومات الرابط',
+	langCode: 'رمز اللغة',
+	langDir: 'إتجاه نص اللغة',
+	langDirLTR: 'اليسار لليمين (LTR)',
+	langDirRTL: 'اليمين لليسار (RTL)',
+	menu: 'تحرير الرابط',
+	name: 'إسم',
+	noAnchors: '(لا توجد علامات مرجعية في هذا المستند)',
+	noEmail: 'الرجاء كتابة الريد الإلكتروني',
+	noUrl: 'الرجاء كتابة رابط الموقع',
+	other: '<أخرى>',
+	popupDependent: 'تابع (Netscape)',
+	popupFeatures: 'خصائص النافذة المنبثقة',
+	popupFullScreen: 'ملئ الشاشة (IE)',
+	popupLeft: 'التمركز لليسار',
+	popupLocationBar: 'شريط العنوان',
+	popupMenuBar: 'القوائم الرئيسية',
+	popupResizable: 'قابلة التشكيل',
+	popupScrollBars: 'أشرطة التمرير',
+	popupStatusBar: 'شريط الحالة',
+	popupToolbar: 'شريط الأدوات',
+	popupTop: 'التمركز للأعلى',
+	rel: 'العلاقة',
+	selectAnchor: 'اختر علامة مرجعية',
+	styles: 'نمط',
+	tabIndex: 'الترتيب',
+	target: 'هدف الرابط',
+	targetFrame: '<إطار>',
+	targetFrameName: 'اسم الإطار المستهدف',
+	targetPopup: '<نافذة منبثقة>',
+	targetPopupName: 'اسم النافذة المنبثقة',
+	title: 'رابط',
+	toAnchor: 'مكان في هذا المستند',
+	toEmail: 'بريد إلكتروني',
+	toUrl: 'الرابط',
+	toolbar: 'رابط',
+	type: 'نوع الربط',
+	unlink: 'إزالة رابط',
+	upload: 'رفع'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/az.js b/web/modules/anchor_link/js/plugins/link/lang/az.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff78d0e9c752eae3061dc667f42fb87f4a28edbd
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/az.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'az', {
+	acccessKey: 'Qısayol düyməsi',
+	advanced: 'Geniş seçimləri',
+	advisoryContentType: 'Məsləhətli məzmunun növü',
+	advisoryTitle: 'Məsləhətli başlıq',
+	anchor: {
+		toolbar: 'Xeş',
+		menu: 'Xeşi redaktə et',
+		title: 'Xeşin seçimləri',
+		name: 'Xeşin adı',
+		errorName: 'Xeşin adı yanlışdır',
+		remove: 'Xeşin adı sil'
+	},
+	anchorId: 'ID görə',
+	anchorName: 'Xeşin adına görə',
+	charset: 'Hədəfin kodlaşdırması',
+	cssClasses: 'Üslub klası',
+	download: 'Məcburi yükləmə',
+	displayText: 'Göstərilən mətn',
+	emailAddress: 'E-poçt ünvanı',
+	emailBody: 'Mesajın məzmunu',
+	emailSubject: 'Mesajın başlığı',
+	id: 'ID',
+	info: 'Linkin xüsusiyyətləri',
+	langCode: 'Dilin kodu',
+	langDir: 'Yaziların istiqaməti',
+	langDirLTR: 'Soldan sağa (LTR)',
+	langDirRTL: 'Sağdan sola (RTL)',
+	menu: 'Linki redaktə et',
+	name: 'Ad',
+	noAnchors: '(heç bir xeş tapılmayıb)',
+	noEmail: 'E-poçt ünvanı daxil edin',
+	noUrl: 'Linkin URL-ı daxil edin',
+	other: '<digər>',
+	popupDependent: 'Asılı (Netscape)',
+	popupFeatures: 'Pəncərənin xüsusiyyətləri',
+	popupFullScreen: 'Tam ekran rejimi (IE)',
+	popupLeft: 'Solda',
+	popupLocationBar: 'Ünvan paneli',
+	popupMenuBar: 'Menyu paneli',
+	popupResizable: 'Olçülər dəyişilir',
+	popupScrollBars: 'Sürüşdürmələr göstər',
+	popupStatusBar: 'Bildirişlərin paneli',
+	popupToolbar: 'Alətlərin paneli',
+	popupTop: 'Yuxarıda',
+	rel: 'Münasibət',
+	selectAnchor: 'Xeşi seçin',
+	styles: 'Üslub',
+	tabIndex: 'Tabın nömrəsi',
+	target: 'Hədəf çərçivə',
+	targetFrame: '<freym>',
+	targetFrameName: 'Freymin adı',
+	targetPopup: '<yeni pəncərə>',
+	targetPopupName: 'Pəncərənin adı',
+	title: 'Link',
+	toAnchor: 'Xeş',
+	toEmail: 'E-poçt',
+	toUrl: 'URL',
+	toolbar: 'Link',
+	type: 'Linkin növü',
+	unlink: 'Linki sil',
+	upload: 'Serverə yüklə'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/bg.js b/web/modules/anchor_link/js/plugins/link/lang/bg.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0db4c462ef8fe8b895dc09d4ca2cf386d20501f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/bg.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bg', {
+	acccessKey: 'Ключ за достъп',
+	advanced: 'Разширено',
+	advisoryContentType: 'Препоръчителен тип на съдържанието',
+	advisoryTitle: 'Препоръчително заглавие',
+	anchor: {
+		toolbar: 'Котва',
+		menu: 'Промяна на котва',
+		title: 'Настройки на котва',
+		name: 'Име на котва',
+		errorName: 'Моля въведете име на котвата',
+		remove: 'Премахване на котва'
+	},
+	anchorId: 'По ID на елемент',
+	anchorName: 'По име на котва',
+	charset: 'Тип на свързания ресурс',
+	cssClasses: 'Класове за CSS',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-mail aдрес',
+	emailBody: 'Съдържание',
+	emailSubject: 'Тема',
+	id: 'ID',
+	info: 'Инфо за връзката',
+	langCode: 'Код за езика',
+	langDir: 'Посока на езика',
+	langDirLTR: 'Ляво на Дясно (ЛнД)',
+	langDirRTL: 'Дясно на Ляво (ДнЛ)',
+	menu: 'Промяна на връзка',
+	name: 'Име',
+	noAnchors: '(Няма котви в текущия документ)',
+	noEmail: 'Моля въведете e-mail aдрес',
+	noUrl: 'Моля въведете URL адреса',
+	other: '<друго>',
+	popupDependent: 'Зависимост (Netscape)',
+	popupFeatures: 'Функции на изкачащ прозорец',
+	popupFullScreen: 'Цял екран (IE)',
+	popupLeft: 'Лява позиция',
+	popupLocationBar: 'Лента с локацията',
+	popupMenuBar: 'Лента за меню',
+	popupResizable: 'Оразмеряем',
+	popupScrollBars: 'Скролери',
+	popupStatusBar: 'Статусна лента',
+	popupToolbar: 'Лента с инструменти',
+	popupTop: 'Горна позиция',
+	rel: 'Връзка',
+	selectAnchor: 'Изберете котва',
+	styles: 'Стил',
+	tabIndex: 'Ред на достъп',
+	target: 'Цел',
+	targetFrame: '<frame>',
+	targetFrameName: 'Име на целевият прозорец',
+	targetPopup: '<изкачащ прозорец>',
+	targetPopupName: 'Име на изкачащ прозорец',
+	title: 'Връзка',
+	toAnchor: 'Връзка към котва в текста',
+	toEmail: 'E-mail',
+	toUrl: 'Уеб адрес',
+	toolbar: 'Връзка',
+	type: 'Тип на връзката',
+	unlink: 'Премахни връзката',
+	upload: 'Качване'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/bn.js b/web/modules/anchor_link/js/plugins/link/lang/bn.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e81bc31c043fc6e5f082aafc8dc275485862ef1
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/bn.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bn', {
+	acccessKey: 'প্রবেশ কী',
+	advanced: 'এডভান্সড',
+	advisoryContentType: 'পরামর্শ কন্টেন্টের প্রকার',
+	advisoryTitle: 'পরামর্শ শীর্ষক',
+	anchor: {
+		toolbar: 'নোঙ্গর',
+		menu: 'নোঙর প্রোপার্টি',
+		title: 'নোঙর প্রোপার্টি',
+		name: 'নোঙরের নাম',
+		errorName: 'নোঙরের নাম টাইপ করুন',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'নোঙরের আইডি দিয়ে',
+	anchorName: 'নোঙরের নাম দিয়ে',
+	charset: 'লিংক রিসোর্স ক্যারেক্টর সেট',
+	cssClasses: 'স্টাইল-শীট ক্লাস',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'ইমেইল ঠিকানা',
+	emailBody: 'মেসেজের দেহ',
+	emailSubject: 'মেসেজের বিষয়',
+	id: 'আইডি',
+	info: 'লিংক তথ্য',
+	langCode: 'ভাষা লেখার দিক',
+	langDir: 'ভাষা লেখার দিক',
+	langDirLTR: 'বাম থেকে ডান (LTR)',
+	langDirRTL: 'ডান থেকে বাম (RTL)',
+	menu: 'লিংক সম্পাদন',
+	name: 'নাম',
+	noAnchors: '(No anchors available in the document)', // MISSING
+	noEmail: 'অনুগ্রহ করে ইমেইল এড্রেস টাইপ করুন',
+	noUrl: 'অনুগ্রহ করে URL লিংক টাইপ করুন',
+	other: '<other>', // MISSING
+	popupDependent: 'ডিপেন্ডেন্ট (Netscape)',
+	popupFeatures: 'পপআপ উইন্ডো ফীচার সমূহ',
+	popupFullScreen: 'পূর্ণ পর্দা জুড়ে (IE)',
+	popupLeft: 'বামের পজিশন',
+	popupLocationBar: 'লোকেশন বার',
+	popupMenuBar: 'মেন্যু বার',
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'স্ক্রল বার',
+	popupStatusBar: 'স্ট্যাটাস বার',
+	popupToolbar: 'টুল বার',
+	popupTop: 'ডানের পজিশন',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'নোঙর বাছাই',
+	styles: 'স্টাইল',
+	tabIndex: 'ট্যাব ইন্ডেক্স',
+	target: 'টার্গেট',
+	targetFrame: '<ফ্রেম>',
+	targetFrameName: 'টার্গেট ফ্রেমের নাম',
+	targetPopup: '<পপআপ উইন্ডো>',
+	targetPopupName: 'পপআপ উইন্ডোর নাম',
+	title: 'লিংক',
+	toAnchor: 'এই পেজে নোঙর কর',
+	toEmail: 'ইমেইল',
+	toUrl: 'URL',
+	toolbar: 'লিংক যুক্ত কর',
+	type: 'লিংক প্রকার',
+	unlink: 'লিংক সরাও',
+	upload: 'আপলোড'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/bs.js b/web/modules/anchor_link/js/plugins/link/lang/bs.js
new file mode 100644
index 0000000000000000000000000000000000000000..70b8e4e972d8644a7552cf64459a6b026dd53c7e
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/bs.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bs', {
+	acccessKey: 'Pristupna tipka',
+	advanced: 'Naprednije',
+	advisoryContentType: 'Advisory vrsta sadržaja',
+	advisoryTitle: 'Advisory title',
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'Po Id-u elementa',
+	anchorName: 'Po nazivu sidra',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Klase CSS stilova',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Adresa',
+	emailBody: 'Poruka',
+	emailSubject: 'Subjekt poruke',
+	id: 'Id',
+	info: 'Link info',
+	langCode: 'Smjer pisanja',
+	langDir: 'Smjer pisanja',
+	langDirLTR: 'S lijeva na desno (LTR)',
+	langDirRTL: 'S desna na lijevo (RTL)',
+	menu: 'Izmjeni link',
+	name: 'Naziv',
+	noAnchors: '(Nema dostupnih sidra na stranici)',
+	noEmail: 'Molimo ukucajte e-mail adresu',
+	noUrl: 'Molimo ukucajte URL link',
+	other: '<other>', // MISSING
+	popupDependent: 'Ovisno (Netscape)',
+	popupFeatures: 'Moguænosti popup prozora',
+	popupFullScreen: 'Cijeli ekran (IE)',
+	popupLeft: 'Lijeva pozicija',
+	popupLocationBar: 'Traka za lokaciju',
+	popupMenuBar: 'Izborna traka',
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Scroll traka',
+	popupStatusBar: 'Statusna traka',
+	popupToolbar: 'Traka sa alatima',
+	popupTop: 'Gornja pozicija',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Izaberi sidro',
+	styles: 'Stil',
+	tabIndex: 'Tab indeks',
+	target: 'Prozor',
+	targetFrame: '<frejm>',
+	targetFrameName: 'Target Frame Name', // MISSING
+	targetPopup: '<popup prozor>',
+	targetPopupName: 'Naziv popup prozora',
+	title: 'Link',
+	toAnchor: 'Sidro na ovoj stranici',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Ubaci/Izmjeni link',
+	type: 'Tip linka',
+	unlink: 'Izbriši link',
+	upload: 'Šalji'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ca.js b/web/modules/anchor_link/js/plugins/link/lang/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..120ca4b61b038e8f8e89ac6a1dad2b63582bde26
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ca.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ca', {
+	acccessKey: 'Clau d\'accés',
+	advanced: 'Avançat',
+	advisoryContentType: 'Tipus de contingut consultiu',
+	advisoryTitle: 'Títol consultiu',
+	anchor: {
+		toolbar: 'Insereix/Edita àncora',
+		menu: 'Propietats de l\'àncora',
+		title: 'Propietats de l\'àncora',
+		name: 'Nom de l\'àncora',
+		errorName: 'Si us plau, escriviu el nom de l\'ancora',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'Per Id d\'element',
+	anchorName: 'Per nom d\'àncora',
+	charset: 'Conjunt de caràcters font enllaçat',
+	cssClasses: 'Classes del full d\'estil',
+	download: 'Force Download', // MISSING
+	displayText: 'Text a mostrar',
+	emailAddress: 'Adreça de correu electrònic',
+	emailBody: 'Cos del missatge',
+	emailSubject: 'Assumpte del missatge',
+	id: 'Id',
+	info: 'Informació de l\'enllaç',
+	langCode: 'Direcció de l\'idioma',
+	langDir: 'Direcció de l\'idioma',
+	langDirLTR: 'D\'esquerra a dreta (LTR)',
+	langDirRTL: 'De dreta a esquerra (RTL)',
+	menu: 'Edita l\'enllaç',
+	name: 'Nom',
+	noAnchors: '(No hi ha àncores disponibles en aquest document)',
+	noEmail: 'Si us plau, escrigui l\'adreça correu electrònic',
+	noUrl: 'Si us plau, escrigui l\'enllaç URL',
+	other: '<altre>',
+	popupDependent: 'Depenent (Netscape)',
+	popupFeatures: 'Característiques finestra popup',
+	popupFullScreen: 'Pantalla completa (IE)',
+	popupLeft: 'Posició esquerra',
+	popupLocationBar: 'Barra d\'adreça',
+	popupMenuBar: 'Barra de menú',
+	popupResizable: 'Redimensionable',
+	popupScrollBars: 'Barres d\'scroll',
+	popupStatusBar: 'Barra d\'estat',
+	popupToolbar: 'Barra d\'eines',
+	popupTop: 'Posició dalt',
+	rel: 'Relació',
+	selectAnchor: 'Selecciona una àncora',
+	styles: 'Estil',
+	tabIndex: 'Index de Tab',
+	target: 'Destí',
+	targetFrame: '<marc>',
+	targetFrameName: 'Nom del marc de destí',
+	targetPopup: '<finestra emergent>',
+	targetPopupName: 'Nom finestra popup',
+	title: 'Enllaç',
+	toAnchor: 'Àncora en aquesta pàgina',
+	toEmail: 'Correu electrònic',
+	toUrl: 'URL',
+	toolbar: 'Insereix/Edita enllaç',
+	type: 'Tipus d\'enllaç',
+	unlink: 'Elimina l\'enllaç',
+	upload: 'Puja'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/cs.js b/web/modules/anchor_link/js/plugins/link/lang/cs.js
new file mode 100644
index 0000000000000000000000000000000000000000..db0b5d4f4cc9da49adc8a1e6c841bb604a0bc8c0
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/cs.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'cs', {
+	acccessKey: 'Přístupový klíč',
+	advanced: 'Rozšířené',
+	advisoryContentType: 'Pomocný typ obsahu',
+	advisoryTitle: 'Pomocný titulek',
+	anchor: {
+		toolbar: 'Záložka',
+		menu: 'Vlastnosti záložky',
+		title: 'Vlastnosti záložky',
+		name: 'Název záložky',
+		errorName: 'Zadejte prosím název záložky',
+		remove: 'Odstranit záložku'
+	},
+	anchorId: 'Podle Id objektu',
+	anchorName: 'Podle jména kotvy',
+	charset: 'Přiřazená znaková sada',
+	cssClasses: 'Třída stylu',
+	download: 'Force Download', // MISSING
+	displayText: 'Zobrazit text',
+	emailAddress: 'E-mailová adresa',
+	emailBody: 'Tělo zprávy',
+	emailSubject: 'Předmět zprávy',
+	id: 'Id',
+	info: 'Informace o odkazu',
+	langCode: 'Kód jazyka',
+	langDir: 'Směr jazyka',
+	langDirLTR: 'Zleva doprava (LTR)',
+	langDirRTL: 'Zprava doleva (RTL)',
+	menu: 'Změnit odkaz',
+	name: 'Jméno',
+	noAnchors: '(Ve stránce není definována žádná kotva!)',
+	noEmail: 'Zadejte prosím e-mailovou adresu',
+	noUrl: 'Zadejte prosím URL odkazu',
+	other: '<jiný>',
+	popupDependent: 'Závislost (Netscape)',
+	popupFeatures: 'Vlastnosti vyskakovacího okna',
+	popupFullScreen: 'Celá obrazovka (IE)',
+	popupLeft: 'Levý okraj',
+	popupLocationBar: 'Panel umístění',
+	popupMenuBar: 'Panel nabídky',
+	popupResizable: 'Umožňující měnit velikost',
+	popupScrollBars: 'Posuvníky',
+	popupStatusBar: 'Stavový řádek',
+	popupToolbar: 'Panel nástrojů',
+	popupTop: 'Horní okraj',
+	rel: 'Vztah',
+	selectAnchor: 'Vybrat kotvu',
+	styles: 'Styl',
+	tabIndex: 'Pořadí prvku',
+	target: 'Cíl',
+	targetFrame: '<rámec>',
+	targetFrameName: 'Název cílového rámu',
+	targetPopup: '<vyskakovací okno>',
+	targetPopupName: 'Název vyskakovacího okna',
+	title: 'Odkaz',
+	toAnchor: 'Kotva v této stránce',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Odkaz',
+	type: 'Typ odkazu',
+	unlink: 'Odstranit odkaz',
+	upload: 'Odeslat'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/cy.js b/web/modules/anchor_link/js/plugins/link/lang/cy.js
new file mode 100644
index 0000000000000000000000000000000000000000..f47c54e5ae61d1021734bff72dbff3257f0d4fca
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/cy.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'cy', {
+	acccessKey: 'Allwedd Mynediad',
+	advanced: 'Uwch',
+	advisoryContentType: 'Math y Cynnwys Cynghorol',
+	advisoryTitle: 'Teitl Cynghorol',
+	anchor: {
+		toolbar: 'Angor',
+		menu: 'Golygu\'r Angor',
+		title: 'Priodweddau\'r Angor',
+		name: 'Enw\'r Angor',
+		errorName: 'Teipiwch enw\'r angor',
+		remove: 'Tynnwch yr Angor'
+	},
+	anchorId: 'Gan Id yr Elfen',
+	anchorName: 'Gan Enw\'r Angor',
+	charset: 'Set Nodau\'r Adnodd Cysylltiedig',
+	cssClasses: 'Dosbarthiadau Dalen Arddull',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Cyfeiriad E-Bost',
+	emailBody: 'Corff y Neges',
+	emailSubject: 'Testun y Neges',
+	id: 'Id',
+	info: 'Gwyb y Ddolen',
+	langCode: 'Cod Iaith',
+	langDir: 'Cyfeiriad Iaith',
+	langDirLTR: 'Chwith i\'r Dde (LTR)',
+	langDirRTL: 'Dde i\'r Chwith (RTL)',
+	menu: 'Golygu Dolen',
+	name: 'Enw',
+	noAnchors: '(Dim angorau ar gael yn y ddogfen)',
+	noEmail: 'Teipiwch gyfeiriad yr e-bost',
+	noUrl: 'Teipiwch URL y ddolen',
+	other: '<eraill>',
+	popupDependent: 'Dibynnol (Netscape)',
+	popupFeatures: 'Nodweddion Ffenestr Bop',
+	popupFullScreen: 'Sgrin Llawn (IE)',
+	popupLeft: 'Safle Chwith',
+	popupLocationBar: 'Bar Safle',
+	popupMenuBar: 'Dewislen',
+	popupResizable: 'Ailfeintiol',
+	popupScrollBars: 'Barrau Sgrolio',
+	popupStatusBar: 'Bar Statws',
+	popupToolbar: 'Bar Offer',
+	popupTop: 'Safle Top',
+	rel: 'Perthynas',
+	selectAnchor: 'Dewiswch Angor',
+	styles: 'Arddull',
+	tabIndex: 'Indecs Tab',
+	target: 'Targed',
+	targetFrame: '<ffrâm>',
+	targetFrameName: 'Enw Ffrâm y Targed',
+	targetPopup: '<ffenestr bop>',
+	targetPopupName: 'Enw Ffenestr Bop',
+	title: 'Dolen',
+	toAnchor: 'Dolen at angor yn y testun',
+	toEmail: 'E-bost',
+	toUrl: 'URL',
+	toolbar: 'Dolen',
+	type: 'Math y Ddolen',
+	unlink: 'Datgysylltu',
+	upload: 'Lanlwytho'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/da.js b/web/modules/anchor_link/js/plugins/link/lang/da.js
new file mode 100644
index 0000000000000000000000000000000000000000..5350263c040e70632a1cb371b48daf66e4c68ba0
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/da.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'da', {
+	acccessKey: 'Genvejstast',
+	advanced: 'Avanceret',
+	advisoryContentType: 'Indholdstype',
+	advisoryTitle: 'Titel',
+	anchor: {
+		toolbar: 'Indsæt/redigér bogmærke',
+		menu: 'Egenskaber for bogmærke',
+		title: 'Egenskaber for bogmærke',
+		name: 'Bogmærkenavn',
+		errorName: 'Indtast bogmærkenavn',
+		remove: 'Fjern bogmærke'
+	},
+	anchorId: 'Efter element-Id',
+	anchorName: 'Efter ankernavn',
+	charset: 'Tegnsæt',
+	cssClasses: 'Typografiark',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-mailadresse',
+	emailBody: 'Besked',
+	emailSubject: 'Emne',
+	id: 'Id',
+	info: 'Generelt',
+	langCode: 'Tekstretning',
+	langDir: 'Tekstretning',
+	langDirLTR: 'Fra venstre mod højre (LTR)',
+	langDirRTL: 'Fra højre mod venstre (RTL)',
+	menu: 'Redigér hyperlink',
+	name: 'Navn',
+	noAnchors: '(Ingen bogmærker i dokumentet)',
+	noEmail: 'Indtast e-mailadresse!',
+	noUrl: 'Indtast hyperlink-URL!',
+	other: '<anden>',
+	popupDependent: 'Koblet/dependent (Netscape)',
+	popupFeatures: 'Egenskaber for popup',
+	popupFullScreen: 'Fuld skærm (IE)',
+	popupLeft: 'Position fra venstre',
+	popupLocationBar: 'Adresselinje',
+	popupMenuBar: 'Menulinje',
+	popupResizable: 'Justérbar',
+	popupScrollBars: 'Scrollbar',
+	popupStatusBar: 'Statuslinje',
+	popupToolbar: 'Værktøjslinje',
+	popupTop: 'Position fra toppen',
+	rel: 'Relation',
+	selectAnchor: 'Vælg et anker',
+	styles: 'Typografi',
+	tabIndex: 'Tabulatorindeks',
+	target: 'Mål',
+	targetFrame: '<ramme>',
+	targetFrameName: 'Destinationsvinduets navn',
+	targetPopup: '<popup vindue>',
+	targetPopupName: 'Popupvinduets navn',
+	title: 'Egenskaber for hyperlink',
+	toAnchor: 'Bogmærke på denne side',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Indsæt/redigér hyperlink',
+	type: 'Type',
+	unlink: 'Fjern hyperlink',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/de-ch.js b/web/modules/anchor_link/js/plugins/link/lang/de-ch.js
new file mode 100644
index 0000000000000000000000000000000000000000..1575303f766afa8d89f548816e85f7198dbd75ef
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/de-ch.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'de-ch', {
+	acccessKey: 'Zugriffstaste',
+	advanced: 'Erweitert',
+	advisoryContentType: 'Inhaltstyp',
+	advisoryTitle: 'Titel Beschreibung',
+	anchor: {
+		toolbar: 'Anker',
+		menu: 'Anker bearbeiten',
+		title: 'Ankereigenschaften',
+		name: 'Ankername',
+		errorName: 'Bitte geben Sie den Namen des Ankers ein',
+		remove: 'Anker entfernen'
+	},
+	anchorId: 'Nach Elementkennung',
+	anchorName: 'Nach Ankername',
+	charset: 'Verknüpfter Ressourcenzeichensatz',
+	cssClasses: 'Formatvorlagenklasse',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail-Adresse',
+	emailBody: 'Nachrichtentext',
+	emailSubject: 'Betreffzeile',
+	id: 'Kennung',
+	info: 'Linkinfo',
+	langCode: 'Sprachcode',
+	langDir: 'Schreibrichtung',
+	langDirLTR: 'Links nach Rechts (LTR)',
+	langDirRTL: 'Rechts nach Links (RTL)',
+	menu: 'Link bearbeiten',
+	name: 'Name',
+	noAnchors: '(Keine Anker im Dokument vorhanden)',
+	noEmail: 'Bitte geben Sie E-Mail-Adresse an',
+	noUrl: 'Bitte geben Sie die Link-URL an',
+	other: '<andere>',
+	popupDependent: 'Abhängig (Netscape)',
+	popupFeatures: 'Pop-up Fenstereigenschaften',
+	popupFullScreen: 'Vollbild (IE)',
+	popupLeft: 'Linke Position',
+	popupLocationBar: 'Adressleiste',
+	popupMenuBar: 'Menüleiste',
+	popupResizable: 'Grösse änderbar',
+	popupScrollBars: 'Rollbalken',
+	popupStatusBar: 'Statusleiste',
+	popupToolbar: 'Werkzeugleiste',
+	popupTop: 'Obere Position',
+	rel: 'Beziehung',
+	selectAnchor: 'Anker auswählen',
+	styles: 'Style',
+	tabIndex: 'Tab-Index',
+	target: 'Zielseite',
+	targetFrame: '<Frame>',
+	targetFrameName: 'Ziel-Fenster-Name',
+	targetPopup: '<Pop-up Fenster>',
+	targetPopupName: 'Pop-up Fenster-Name',
+	title: 'Link',
+	toAnchor: 'Anker in dieser Seite',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Link einfügen/editieren',
+	type: 'Link-Typ',
+	unlink: 'Link entfernen',
+	upload: 'Hochladen'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/de.js b/web/modules/anchor_link/js/plugins/link/lang/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..4a48db0e355d78b802434bb91f049cfe321adafc
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/de.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'de', {
+	acccessKey: 'Zugriffstaste',
+	advanced: 'Erweitert',
+	advisoryContentType: 'Inhaltstyp',
+	advisoryTitle: 'Titel Beschreibung',
+	anchor: {
+		toolbar: 'Anker',
+		menu: 'Anker bearbeiten',
+		title: 'Ankereigenschaften',
+		name: 'Ankername',
+		errorName: 'Bitte geben Sie den Namen des Ankers ein',
+		remove: 'Anker entfernen'
+	},
+	anchorId: 'Nach Elementkennung',
+	anchorName: 'Nach Ankername',
+	charset: 'Verknüpfter Ressourcenzeichensatz',
+	cssClasses: 'Formatvorlagenklasse',
+	download: 'Herunterladen erzwingen',
+	displayText: 'Anzeigetext',
+	emailAddress: 'E-Mail-Adresse',
+	emailBody: 'Nachrichtentext',
+	emailSubject: 'Betreffzeile',
+	id: 'Kennung',
+	info: 'Linkinfo',
+	langCode: 'Sprachcode',
+	langDir: 'Schreibrichtung',
+	langDirLTR: 'Links nach Rechts (LTR)',
+	langDirRTL: 'Rechts nach Links (RTL)',
+	menu: 'Link bearbeiten',
+	name: 'Name',
+	noAnchors: '(Keine Anker im Dokument vorhanden)',
+	noEmail: 'Bitte geben Sie E-Mail-Adresse an',
+	noUrl: 'Bitte geben Sie die Link-URL an',
+	other: '<andere>',
+	popupDependent: 'Abhängig (Netscape)',
+	popupFeatures: 'Pop-up Fenstereigenschaften',
+	popupFullScreen: 'Vollbild (IE)',
+	popupLeft: 'Linke Position',
+	popupLocationBar: 'Adressleiste',
+	popupMenuBar: 'Menüleiste',
+	popupResizable: 'Größe änderbar',
+	popupScrollBars: 'Rollbalken',
+	popupStatusBar: 'Statusleiste',
+	popupToolbar: 'Werkzeugleiste',
+	popupTop: 'Obere Position',
+	rel: 'Beziehung',
+	selectAnchor: 'Anker auswählen',
+	styles: 'Style',
+	tabIndex: 'Tab-Index',
+	target: 'Zielseite',
+	targetFrame: '<Frame>',
+	targetFrameName: 'Ziel-Fenster-Name',
+	targetPopup: '<Pop-up Fenster>',
+	targetPopupName: 'Pop-up Fenster-Name',
+	title: 'Link',
+	toAnchor: 'Anker in dieser Seite',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Link einfügen/editieren',
+	type: 'Link-Typ',
+	unlink: 'Link entfernen',
+	upload: 'Hochladen'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/el.js b/web/modules/anchor_link/js/plugins/link/lang/el.js
new file mode 100644
index 0000000000000000000000000000000000000000..30fa7feee963574a829a846aefc2256c32a3fbb3
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/el.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'el', {
+	acccessKey: 'Συντόμευση',
+	advanced: 'Για Προχωρημένους',
+	advisoryContentType: 'Ενδεικτικός Τύπος Περιεχομένου',
+	advisoryTitle: 'Ενδεικτικός Τίτλος',
+	anchor: {
+		toolbar: 'Εισαγωγή/επεξεργασία Άγκυρας',
+		menu: 'Ιδιότητες άγκυρας',
+		title: 'Ιδιότητες άγκυρας',
+		name: 'Όνομα άγκυρας',
+		errorName: 'Παρακαλούμε εισάγετε όνομα άγκυρας',
+		remove: 'Αφαίρεση Άγκυρας'
+	},
+	anchorId: 'Βάσει του Element Id',
+	anchorName: 'Βάσει του Ονόματος Άγκυρας',
+	charset: 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής',
+	cssClasses: 'Κλάσεις Φύλλων Στυλ',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Διεύθυνση E-mail',
+	emailBody: 'Κείμενο Μηνύματος',
+	emailSubject: 'Θέμα Μηνύματος',
+	id: 'Id',
+	info: 'Πληροφορίες Συνδέσμου',
+	langCode: 'Κατεύθυνση Κειμένου',
+	langDir: 'Κατεύθυνση Κειμένου',
+	langDirLTR: 'Αριστερά προς Δεξιά (LTR)',
+	langDirRTL: 'Δεξιά προς Αριστερά (RTL)',
+	menu: 'Επεξεργασία Συνδέσμου',
+	name: 'Όνομα',
+	noAnchors: '(Δεν υπάρχουν άγκυρες στο κείμενο)',
+	noEmail: 'Εισάγετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου',
+	noUrl: 'Εισάγετε την τοποθεσία (URL) του συνδέσμου',
+	other: '<άλλο>',
+	popupDependent: 'Εξαρτημένο (Netscape)',
+	popupFeatures: 'Επιλογές Αναδυόμενου Παραθύρου',
+	popupFullScreen: 'Πλήρης Οθόνη (IE)',
+	popupLeft: 'Θέση Αριστερά',
+	popupLocationBar: 'Γραμμή Τοποθεσίας',
+	popupMenuBar: 'Γραμμή Επιλογών',
+	popupResizable: 'Προσαρμοζόμενο Μέγεθος',
+	popupScrollBars: 'Μπάρες Κύλισης',
+	popupStatusBar: 'Γραμμή Κατάστασης',
+	popupToolbar: 'Εργαλειοθήκη',
+	popupTop: 'Θέση Πάνω',
+	rel: 'Σχέση',
+	selectAnchor: 'Επιλέξτε μια Άγκυρα',
+	styles: 'Μορφή',
+	tabIndex: 'Σειρά Μεταπήδησης',
+	target: 'Παράθυρο Προορισμού',
+	targetFrame: '<πλαίσιο>',
+	targetFrameName: 'Όνομα Πλαισίου Προορισμού',
+	targetPopup: '<αναδυόμενο παράθυρο>',
+	targetPopupName: 'Όνομα Αναδυόμενου Παραθύρου',
+	title: 'Σύνδεσμος',
+	toAnchor: 'Άγκυρα σε αυτήν τη σελίδα',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Σύνδεσμος',
+	type: 'Τύπος Συνδέσμου',
+	unlink: 'Αφαίρεση Συνδέσμου',
+	upload: 'Αποστολή'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/en-au.js b/web/modules/anchor_link/js/plugins/link/lang/en-au.js
new file mode 100644
index 0000000000000000000000000000000000000000..508a1ec284635e3c978ef3cd2ddbea9107c49415
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/en-au.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-au', {
+	acccessKey: 'Access Key',
+	advanced: 'Advanced',
+	advisoryContentType: 'Advisory Content Type',
+	advisoryTitle: 'Advisory Title',
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'By Element Id',
+	anchorName: 'By Anchor Name',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet Classes',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Address',
+	emailBody: 'Message Body',
+	emailSubject: 'Message Subject',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Language Code',
+	langDir: 'Language Direction',
+	langDirLTR: 'Left to Right (LTR)',
+	langDirRTL: 'Right to Left (RTL)',
+	menu: 'Edit Link',
+	name: 'Name',
+	noAnchors: '(No anchors available in the document)',
+	noEmail: 'Please type the e-mail address',
+	noUrl: 'Please type the link URL',
+	other: '<other>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'Popup Window Features',
+	popupFullScreen: 'Full Screen (IE)',
+	popupLeft: 'Left Position',
+	popupLocationBar: 'Location Bar',
+	popupMenuBar: 'Menu Bar',
+	popupResizable: 'Resizable',
+	popupScrollBars: 'Scroll Bars',
+	popupStatusBar: 'Status Bar',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Top Position',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Select an Anchor',
+	styles: 'Style',
+	tabIndex: 'Tab Index',
+	target: 'Target',
+	targetFrame: '<frame>',
+	targetFrameName: 'Target Frame Name',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Popup Window Name',
+	title: 'Link',
+	toAnchor: 'Link to anchor in the text',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Link',
+	type: 'Link Type',
+	unlink: 'Unlink',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/en-ca.js b/web/modules/anchor_link/js/plugins/link/lang/en-ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..e281ab0996dbeed11dcf7890f4e91005ec749153
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/en-ca.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-ca', {
+	acccessKey: 'Access Key',
+	advanced: 'Advanced',
+	advisoryContentType: 'Advisory Content Type',
+	advisoryTitle: 'Advisory Title',
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'By Element Id',
+	anchorName: 'By Anchor Name',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet Classes',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Address',
+	emailBody: 'Message Body',
+	emailSubject: 'Message Subject',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Language Code',
+	langDir: 'Language Direction',
+	langDirLTR: 'Left to Right (LTR)',
+	langDirRTL: 'Right to Left (RTL)',
+	menu: 'Edit Link',
+	name: 'Name',
+	noAnchors: '(No anchors available in the document)',
+	noEmail: 'Please type the e-mail address',
+	noUrl: 'Please type the link URL',
+	other: '<other>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'Popup Window Features',
+	popupFullScreen: 'Full Screen (IE)',
+	popupLeft: 'Left Position',
+	popupLocationBar: 'Location Bar',
+	popupMenuBar: 'Menu Bar',
+	popupResizable: 'Resizable',
+	popupScrollBars: 'Scroll Bars',
+	popupStatusBar: 'Status Bar',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Top Position',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Select an Anchor',
+	styles: 'Style',
+	tabIndex: 'Tab Index',
+	target: 'Target',
+	targetFrame: '<frame>',
+	targetFrameName: 'Target Frame Name',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Popup Window Name',
+	title: 'Link',
+	toAnchor: 'Link to anchor in the text',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Link',
+	type: 'Link Type',
+	unlink: 'Unlink',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/en-gb.js b/web/modules/anchor_link/js/plugins/link/lang/en-gb.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdf0290f21418da60bf2998388f2816f4cb5cbe7
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/en-gb.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-gb', {
+	acccessKey: 'Access Key',
+	advanced: 'Advanced',
+	advisoryContentType: 'Advisory Content Type',
+	advisoryTitle: 'Advisory Title',
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'By Element Id',
+	anchorName: 'By Anchor Name',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet Classes',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Address',
+	emailBody: 'Message Body',
+	emailSubject: 'Message Subject',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Language Code',
+	langDir: 'Language Direction',
+	langDirLTR: 'Left to Right (LTR)',
+	langDirRTL: 'Right to Left (RTL)',
+	menu: 'Edit Link',
+	name: 'Name',
+	noAnchors: '(No anchors available in the document)',
+	noEmail: 'Please type the e-mail address',
+	noUrl: 'Please type the link URL',
+	other: '<other>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'Popup Window Features',
+	popupFullScreen: 'Full Screen (IE)',
+	popupLeft: 'Left Position',
+	popupLocationBar: 'Location Bar',
+	popupMenuBar: 'Menu Bar',
+	popupResizable: 'Resizable',
+	popupScrollBars: 'Scroll Bars',
+	popupStatusBar: 'Status Bar',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Top Position',
+	rel: 'Relationship',
+	selectAnchor: 'Select an Anchor',
+	styles: 'Style',
+	tabIndex: 'Tab Index',
+	target: 'Target',
+	targetFrame: '<frame>',
+	targetFrameName: 'Target Frame Name',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Popup Window Name',
+	title: 'Link',
+	toAnchor: 'Link to anchor in the text',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Link',
+	type: 'Link Type',
+	unlink: 'Unlink',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/en.js b/web/modules/anchor_link/js/plugins/link/lang/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..555f3624cd5eb22bcae728fa3c430563d572913e
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/en.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en', {
+	acccessKey: 'Access Key',
+	advanced: 'Advanced',
+	advisoryContentType: 'Advisory Content Type',
+	advisoryTitle: 'Advisory Title',
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'By Element Id',
+	anchorName: 'By Anchor Name',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet Classes',
+	download: 'Force Download',
+	displayText: 'Display Text',
+	emailAddress: 'E-Mail Address',
+	emailBody: 'Message Body',
+	emailSubject: 'Message Subject',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Language Code',
+	langDir: 'Language Direction',
+	langDirLTR: 'Left to Right (LTR)',
+	langDirRTL: 'Right to Left (RTL)',
+	menu: 'Edit Link',
+	name: 'Name',
+	noAnchors: '(No anchors available in the document)',
+	noEmail: 'Please type the e-mail address',
+	noUrl: 'Please type the link URL',
+	other: '<other>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'Popup Window Features',
+	popupFullScreen: 'Full Screen (IE)',
+	popupLeft: 'Left Position',
+	popupLocationBar: 'Location Bar',
+	popupMenuBar: 'Menu Bar',
+	popupResizable: 'Resizable',
+	popupScrollBars: 'Scroll Bars',
+	popupStatusBar: 'Status Bar',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Top Position',
+	rel: 'Relationship',
+	selectAnchor: 'Select an Anchor',
+	styles: 'Style',
+	tabIndex: 'Tab Index',
+	target: 'Target',
+	targetFrame: '<frame>',
+	targetFrameName: 'Target Frame Name',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Popup Window Name',
+	title: 'Link',
+	toAnchor: 'Link to anchor in the text',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Link',
+	type: 'Link Type',
+	unlink: 'Unlink',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/eo.js b/web/modules/anchor_link/js/plugins/link/lang/eo.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bcd8395d6e6554a76431a118d4800e7a003217d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/eo.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'eo', {
+	acccessKey: 'Fulmoklavo',
+	advanced: 'Speciala',
+	advisoryContentType: 'Enhavotipo',
+	advisoryTitle: 'Priskriba Titolo',
+	anchor: {
+		toolbar: 'Ankro',
+		menu: 'Enmeti/Ŝanĝi Ankron',
+		title: 'Ankraj Atributoj',
+		name: 'Ankra Nomo',
+		errorName: 'Bv entajpi la ankran nomon',
+		remove: 'Forigi Ankron'
+	},
+	anchorId: 'Per Elementidentigilo',
+	anchorName: 'Per Ankronomo',
+	charset: 'Signaro de la Ligita Rimedo',
+	cssClasses: 'Klasoj de Stilfolioj',
+	download: 'Altrudi Elŝuton',
+	displayText: 'Vidigi Tekston',
+	emailAddress: 'Retpoŝto',
+	emailBody: 'Mesaĝa korpo',
+	emailSubject: 'Mesaĝa Temo',
+	id: 'Id',
+	info: 'Informoj pri la Ligilo',
+	langCode: 'Lingva Kodo',
+	langDir: 'Skribdirekto',
+	langDirLTR: 'De maldekstro dekstren (LTR)',
+	langDirRTL: 'De dekstro maldekstren (RTL)',
+	menu: 'Ŝanĝi Ligilon',
+	name: 'Nomo',
+	noAnchors: '<Ne disponeblas ankroj en la dokumento>',
+	noEmail: 'Bonvolu entajpi la retpoŝtadreson',
+	noUrl: 'Bonvolu entajpi la URL-on',
+	other: '<alia>',
+	popupDependent: 'Dependa (Netscape)',
+	popupFeatures: 'Atributoj de la Ŝprucfenestro',
+	popupFullScreen: 'Tutekrane (IE)',
+	popupLeft: 'Maldekstra Pozicio',
+	popupLocationBar: 'Adresobreto',
+	popupMenuBar: 'Menubreto',
+	popupResizable: 'Dimensiŝanĝebla',
+	popupScrollBars: 'Rulumskaloj',
+	popupStatusBar: 'Statobreto',
+	popupToolbar: 'Ilobreto',
+	popupTop: 'Supra Pozicio',
+	rel: 'Rilato',
+	selectAnchor: 'Elekti Ankron',
+	styles: 'Stilo',
+	tabIndex: 'Taba Indekso',
+	target: 'Celo',
+	targetFrame: '<kadro>',
+	targetFrameName: 'Nomo de CelKadro',
+	targetPopup: '<ŝprucfenestro>',
+	targetPopupName: 'Nomo de Ŝprucfenestro',
+	title: 'Ligilo',
+	toAnchor: 'Ankri en tiu ĉi paĝo',
+	toEmail: 'Retpoŝto',
+	toUrl: 'URL',
+	toolbar: 'Enmeti/Ŝanĝi Ligilon',
+	type: 'Tipo de Ligilo',
+	unlink: 'Forigi Ligilon',
+	upload: 'Alŝuti'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/es-mx.js b/web/modules/anchor_link/js/plugins/link/lang/es-mx.js
new file mode 100644
index 0000000000000000000000000000000000000000..f378cbf031763ca4253520f224041eca728fe278
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/es-mx.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'es-mx', {
+	acccessKey: 'Llave de acceso',
+	advanced: 'Avanzada',
+	advisoryContentType: 'Tipo de contenido consultivo',
+	advisoryTitle: 'Título asesor',
+	anchor: {
+		toolbar: 'Ancla',
+		menu: 'Editar ancla',
+		title: 'Propiedades del ancla',
+		name: 'Nombre del ancla',
+		errorName: 'Escriba el nombre del ancla',
+		remove: 'Remover ancla'
+	},
+	anchorId: 'Por Id del elemento',
+	anchorName: 'Por nombre del ancla',
+	charset: 'Recurso relacionado Charset',
+	cssClasses: 'Clases de estilo de hoja',
+	download: 'Forzar la descarga',
+	displayText: 'Mostrar texto',
+	emailAddress: 'Dirección de correo electrónico',
+	emailBody: 'Cuerpo del mensaje',
+	emailSubject: 'Asunto del mensaje',
+	id: 'Id',
+	info: 'Información del enlace',
+	langCode: 'Código del idioma',
+	langDir: 'Dirección del idioma',
+	langDirLTR: 'Izquierda a Derecha (LTR)',
+	langDirRTL: 'Derecha a Izquierda (RTL)',
+	menu: 'Editar enlace',
+	name: 'Nombre',
+	noAnchors: '(No hay anclas disponibles en el documento)',
+	noEmail: 'Escriba la dirección de correo electrónico',
+	noUrl: 'Escriba la URL del enlace',
+	other: '<other>',
+	popupDependent: 'Dependiente (Netscape)',
+	popupFeatures: 'Ventana emergente',
+	popupFullScreen: 'Pantalla completa (IE)',
+	popupLeft: 'Posición Izquierda',
+	popupLocationBar: 'Ubicación de la barra',
+	popupMenuBar: 'Barra de menú',
+	popupResizable: 'Redimensionable',
+	popupScrollBars: 'Barras de desplazamiento',
+	popupStatusBar: 'Barra de estado',
+	popupToolbar: 'Barra de herramienta',
+	popupTop: 'Posición superior',
+	rel: 'Relación',
+	selectAnchor: 'Selecciona un ancla',
+	styles: 'Estilo',
+	tabIndex: 'Indice de tabulación',
+	target: 'Objetivo',
+	targetFrame: '<frame>',
+	targetFrameName: 'Nombre del marco de destino',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Nombre de ventana emergente',
+	title: 'Enlace',
+	toAnchor: 'Enlace al ancla en el texto',
+	toEmail: 'Correo electrónico',
+	toUrl: 'URL',
+	toolbar: 'Enlace',
+	type: 'Tipo de enlace',
+	unlink: 'Desconectar',
+	upload: 'Subir'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/es.js b/web/modules/anchor_link/js/plugins/link/lang/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..d151c7d79cc7cb7bb46f65461e95cf0317a6c2e4
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/es.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'es', {
+	acccessKey: 'Tecla de Acceso',
+	advanced: 'Avanzado',
+	advisoryContentType: 'Tipo de Contenido',
+	advisoryTitle: 'Título',
+	anchor: {
+		toolbar: 'Referencia',
+		menu: 'Propiedades de Referencia',
+		title: 'Propiedades de Referencia',
+		name: 'Nombre de la Referencia',
+		errorName: 'Por favor, complete el nombre de la Referencia',
+		remove: 'Quitar Referencia'
+	},
+	anchorId: 'Por ID de elemento',
+	anchorName: 'Por Nombre de Referencia',
+	charset: 'Fuente de caracteres vinculado',
+	cssClasses: 'Clases de hojas de estilo',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Dirección de E-Mail',
+	emailBody: 'Cuerpo del Mensaje',
+	emailSubject: 'Título del Mensaje',
+	id: 'Id',
+	info: 'Información de Vínculo',
+	langCode: 'Código idioma',
+	langDir: 'Orientación',
+	langDirLTR: 'Izquierda a Derecha (LTR)',
+	langDirRTL: 'Derecha a Izquierda (RTL)',
+	menu: 'Editar Vínculo',
+	name: 'Nombre',
+	noAnchors: '(No hay referencias disponibles en el documento)',
+	noEmail: 'Por favor escriba la dirección de e-mail',
+	noUrl: 'Por favor escriba el vínculo URL',
+	other: '<otro>',
+	popupDependent: 'Dependiente (Netscape)',
+	popupFeatures: 'Características de Ventana Emergente',
+	popupFullScreen: 'Pantalla Completa (IE)',
+	popupLeft: 'Posición Izquierda',
+	popupLocationBar: 'Barra de ubicación',
+	popupMenuBar: 'Barra de Menú',
+	popupResizable: 'Redimensionable',
+	popupScrollBars: 'Barras de desplazamiento',
+	popupStatusBar: 'Barra de Estado',
+	popupToolbar: 'Barra de Herramientas',
+	popupTop: 'Posición Derecha',
+	rel: 'Relación',
+	selectAnchor: 'Seleccionar una referencia',
+	styles: 'Estilo',
+	tabIndex: 'Indice de tabulación',
+	target: 'Destino',
+	targetFrame: '<marco>',
+	targetFrameName: 'Nombre del Marco Destino',
+	targetPopup: '<ventana emergente>',
+	targetPopupName: 'Nombre de Ventana Emergente',
+	title: 'Vínculo',
+	toAnchor: 'Referencia en esta página',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Insertar/Editar Vínculo',
+	type: 'Tipo de vínculo',
+	unlink: 'Eliminar Vínculo',
+	upload: 'Cargar'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/et.js b/web/modules/anchor_link/js/plugins/link/lang/et.js
new file mode 100644
index 0000000000000000000000000000000000000000..94353ead9b5d6090efe753f945cc7447b560bf94
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/et.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'et', {
+	acccessKey: 'Juurdepääsu võti',
+	advanced: 'Täpsemalt',
+	advisoryContentType: 'Juhendava sisu tüüp',
+	advisoryTitle: 'Juhendav tiitel',
+	anchor: {
+		toolbar: 'Ankru sisestamine/muutmine',
+		menu: 'Ankru omadused',
+		title: 'Ankru omadused',
+		name: 'Ankru nimi',
+		errorName: 'Palun sisesta ankru nimi',
+		remove: 'Eemalda ankur'
+	},
+	anchorId: 'Elemendi id järgi',
+	anchorName: 'Ankru nime järgi',
+	charset: 'Lingitud ressursi märgistik',
+	cssClasses: 'Stiilistiku klassid',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-posti aadress',
+	emailBody: 'Sõnumi tekst',
+	emailSubject: 'Sõnumi teema',
+	id: 'ID',
+	info: 'Lingi info',
+	langCode: 'Keele suund',
+	langDir: 'Keele suund',
+	langDirLTR: 'Vasakult paremale (LTR)',
+	langDirRTL: 'Paremalt vasakule (RTL)',
+	menu: 'Muuda linki',
+	name: 'Nimi',
+	noAnchors: '(Selles dokumendis pole ankruid)',
+	noEmail: 'Palun kirjuta e-posti aadress',
+	noUrl: 'Palun kirjuta lingi URL',
+	other: '<muu>',
+	popupDependent: 'Sõltuv (Netscape)',
+	popupFeatures: 'Hüpikakna omadused',
+	popupFullScreen: 'Täisekraan (IE)',
+	popupLeft: 'Vasak asukoht',
+	popupLocationBar: 'Aadressiriba',
+	popupMenuBar: 'Menüüriba',
+	popupResizable: 'Suurust saab muuta',
+	popupScrollBars: 'Kerimisribad',
+	popupStatusBar: 'Olekuriba',
+	popupToolbar: 'Tööriistariba',
+	popupTop: 'Ülemine asukoht',
+	rel: 'Suhe',
+	selectAnchor: 'Vali ankur',
+	styles: 'Laad',
+	tabIndex: 'Tab indeks',
+	target: 'Sihtkoht',
+	targetFrame: '<raam>',
+	targetFrameName: 'Sihtmärk raami nimi',
+	targetPopup: '<hüpikaken>',
+	targetPopupName: 'Hüpikakna nimi',
+	title: 'Link',
+	toAnchor: 'Ankur sellel lehel',
+	toEmail: 'E-post',
+	toUrl: 'URL',
+	toolbar: 'Lingi lisamine/muutmine',
+	type: 'Lingi liik',
+	unlink: 'Lingi eemaldamine',
+	upload: 'Lae üles'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/eu.js b/web/modules/anchor_link/js/plugins/link/lang/eu.js
new file mode 100644
index 0000000000000000000000000000000000000000..345241ea48bfe5dee1ce5378bd5f9d482895284e
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/eu.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'eu', {
+	acccessKey: 'Sarbide-tekla',
+	advanced: 'Aurreratua',
+	advisoryContentType: 'Aholkatutako eduki-mota',
+	advisoryTitle: 'Aholkatutako izenburua',
+	anchor: {
+		toolbar: 'Aingura',
+		menu: 'Editatu aingura',
+		title: 'Ainguraren propietateak',
+		name: 'Ainguraren izena',
+		errorName: 'Idatzi ainguraren izena',
+		remove: 'Kendu aingura'
+	},
+	anchorId: 'Elementuaren Id-aren arabera',
+	anchorName: 'Aingura-izenaren arabera',
+	charset: 'Estekatutako baliabide karaktere-jokoa',
+	cssClasses: 'Estilo-orriko klaseak',
+	download: 'Force Download', // MISSING
+	displayText: 'Bistaratu testua',
+	emailAddress: 'E-posta helbidea',
+	emailBody: 'Mezuaren gorputza',
+	emailSubject: 'Mezuaren gaia',
+	id: 'Id',
+	info: 'Estekaren informazioa',
+	langCode: 'Hizkuntzaren kodea',
+	langDir: 'Hizkuntzaren norabidea',
+	langDirLTR: 'Ezkerretik eskuinera (LTR)',
+	langDirRTL: 'Eskuinetik ezkerrera (RTL)',
+	menu: 'Editatu esteka',
+	name: 'Izena',
+	noAnchors: '(Ez dago aingurarik erabilgarri dokumentuan)',
+	noEmail: 'Mesedez idatzi e-posta helbidea',
+	noUrl: 'Mesedez idatzi estekaren URLa',
+	other: '<bestelakoa>',
+	popupDependent: 'Menpekoa (Netscape)',
+	popupFeatures: 'Laster-leihoaren ezaugarriak',
+	popupFullScreen: 'Pantaila osoa (IE)',
+	popupLeft: 'Ezkerreko posizioa',
+	popupLocationBar: 'Kokaleku-barra',
+	popupMenuBar: 'Menu-barra',
+	popupResizable: 'Tamaina aldakorra',
+	popupScrollBars: 'Korritze-barrak',
+	popupStatusBar: 'Egoera-barra',
+	popupToolbar: 'Tresna-barra',
+	popupTop: 'Goiko posizioa',
+	rel: 'Erlazioa',
+	selectAnchor: 'Hautatu aingura',
+	styles: 'Estiloa',
+	tabIndex: 'Tabulazio indizea',
+	target: 'Helburua',
+	targetFrame: '<frame>',
+	targetFrameName: 'Helburuko markoaren izena',
+	targetPopup: '<laster-leihoa>',
+	targetPopupName: 'Laster-leihoaren izena',
+	title: 'Esteka',
+	toAnchor: 'Estekatu testuko aingurara',
+	toEmail: 'E-posta',
+	toUrl: 'URLa',
+	toolbar: 'Esteka',
+	type: 'Esteka-mota',
+	unlink: 'Kendu esteka',
+	upload: 'Kargatu'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/fa.js b/web/modules/anchor_link/js/plugins/link/lang/fa.js
new file mode 100644
index 0000000000000000000000000000000000000000..4722d084da3ab4b0cfc4a107e1f23b11561bbb7b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/fa.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fa', {
+	acccessKey: 'کلید دستیابی',
+	advanced: 'پیشرفته',
+	advisoryContentType: 'نوع محتوای کمکی',
+	advisoryTitle: 'عنوان کمکی',
+	anchor: {
+		toolbar: 'گنجاندن/ویرایش لنگر',
+		menu: 'ویژگی​های لنگر',
+		title: 'ویژگی​های لنگر',
+		name: 'نام لنگر',
+		errorName: 'لطفا نام لنگر را بنویسید',
+		remove: 'حذف لنگر'
+	},
+	anchorId: 'با شناسهٴ المان',
+	anchorName: 'با نام لنگر',
+	charset: 'نویسه​گان منبع پیوند شده',
+	cssClasses: 'کلاس​های شیوه​نامه(Stylesheet)',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'نشانی پست الکترونیکی',
+	emailBody: 'متن پیام',
+	emailSubject: 'موضوع پیام',
+	id: 'شناسه',
+	info: 'اطلاعات پیوند',
+	langCode: 'جهت​نمای زبان',
+	langDir: 'جهت​نمای زبان',
+	langDirLTR: 'چپ به راست (LTR)',
+	langDirRTL: 'راست به چپ (RTL)',
+	menu: 'ویرایش پیوند',
+	name: 'نام',
+	noAnchors: '(در این سند لنگری دردسترس نیست)',
+	noEmail: 'لطفا نشانی پست الکترونیکی را بنویسید',
+	noUrl: 'لطفا URL پیوند را بنویسید',
+	other: '<سایر>',
+	popupDependent: 'وابسته (Netscape)',
+	popupFeatures: 'ویژگی​های پنجرهٴ پاپاپ',
+	popupFullScreen: 'تمام صفحه (IE)',
+	popupLeft: 'موقعیت چپ',
+	popupLocationBar: 'نوار موقعیت',
+	popupMenuBar: 'نوار منو',
+	popupResizable: 'قابل تغییر اندازه',
+	popupScrollBars: 'میله​های پیمایش',
+	popupStatusBar: 'نوار وضعیت',
+	popupToolbar: 'نوار ابزار',
+	popupTop: 'موقعیت بالا',
+	rel: 'وابستگی',
+	selectAnchor: 'یک لنگر برگزینید',
+	styles: 'شیوه (style)',
+	tabIndex: 'نمایهٴ دسترسی با برگه',
+	target: 'مقصد',
+	targetFrame: '<فریم>',
+	targetFrameName: 'نام فریم مقصد',
+	targetPopup: '<پنجرهٴ پاپاپ>',
+	targetPopupName: 'نام پنجرهٴ پاپاپ',
+	title: 'پیوند',
+	toAnchor: 'لنگر در همین صفحه',
+	toEmail: 'پست الکترونیکی',
+	toUrl: 'URL',
+	toolbar: 'گنجاندن/ویرایش پیوند',
+	type: 'نوع پیوند',
+	unlink: 'برداشتن پیوند',
+	upload: 'انتقال به سرور'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/fi.js b/web/modules/anchor_link/js/plugins/link/lang/fi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c53c3c093a051ff1fff33fa180a055e0be27bc7
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/fi.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fi', {
+	acccessKey: 'Pikanäppäin',
+	advanced: 'Lisäominaisuudet',
+	advisoryContentType: 'Avustava sisällön tyyppi',
+	advisoryTitle: 'Avustava otsikko',
+	anchor: {
+		toolbar: 'Lisää ankkuri/muokkaa ankkuria',
+		menu: 'Ankkurin ominaisuudet',
+		title: 'Ankkurin ominaisuudet',
+		name: 'Nimi',
+		errorName: 'Ankkurille on kirjoitettava nimi',
+		remove: 'Poista ankkuri'
+	},
+	anchorId: 'Ankkurin ID:n mukaan',
+	anchorName: 'Ankkurin nimen mukaan',
+	charset: 'Linkitetty kirjaimisto',
+	cssClasses: 'Tyyliluokat',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Sähköpostiosoite',
+	emailBody: 'Viesti',
+	emailSubject: 'Aihe',
+	id: 'Tunniste',
+	info: 'Linkin tiedot',
+	langCode: 'Kielen suunta',
+	langDir: 'Kielen suunta',
+	langDirLTR: 'Vasemmalta oikealle (LTR)',
+	langDirRTL: 'Oikealta vasemmalle (RTL)',
+	menu: 'Muokkaa linkkiä',
+	name: 'Nimi',
+	noAnchors: '(Ei ankkureita tässä dokumentissa)',
+	noEmail: 'Kirjoita sähköpostiosoite',
+	noUrl: 'Linkille on kirjoitettava URL',
+	other: '<muu>',
+	popupDependent: 'Riippuva (Netscape)',
+	popupFeatures: 'Popup ikkunan ominaisuudet',
+	popupFullScreen: 'Täysi ikkuna (IE)',
+	popupLeft: 'Vasemmalta (px)',
+	popupLocationBar: 'Osoiterivi',
+	popupMenuBar: 'Valikkorivi',
+	popupResizable: 'Venytettävä',
+	popupScrollBars: 'Vierityspalkit',
+	popupStatusBar: 'Tilarivi',
+	popupToolbar: 'Vakiopainikkeet',
+	popupTop: 'Ylhäältä (px)',
+	rel: 'Suhde',
+	selectAnchor: 'Valitse ankkuri',
+	styles: 'Tyyli',
+	tabIndex: 'Tabulaattori indeksi',
+	target: 'Kohde',
+	targetFrame: '<kehys>',
+	targetFrameName: 'Kohdekehyksen nimi',
+	targetPopup: '<popup ikkuna>',
+	targetPopupName: 'Popup ikkunan nimi',
+	title: 'Linkki',
+	toAnchor: 'Ankkuri tässä sivussa',
+	toEmail: 'Sähköposti',
+	toUrl: 'Osoite',
+	toolbar: 'Lisää linkki/muokkaa linkkiä',
+	type: 'Linkkityyppi',
+	unlink: 'Poista linkki',
+	upload: 'Lisää tiedosto'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/fo.js b/web/modules/anchor_link/js/plugins/link/lang/fo.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4584590273b13b29ac79504860af2e2ee42581c
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/fo.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fo', {
+	acccessKey: 'Snarvegisknöttur',
+	advanced: 'Fjølbroytt',
+	advisoryContentType: 'Vegleiðandi innihaldsslag',
+	advisoryTitle: 'Vegleiðandi heiti',
+	anchor: {
+		toolbar: 'Ger/broyt marknastein',
+		menu: 'Eginleikar fyri marknastein',
+		title: 'Eginleikar fyri marknastein',
+		name: 'Heiti marknasteinsins',
+		errorName: 'Vinarliga rita marknasteinsins heiti',
+		remove: 'Strika marknastein'
+	},
+	anchorId: 'Eftir element Id',
+	anchorName: 'Eftir navni á marknasteini',
+	charset: 'Atknýtt teknsett',
+	cssClasses: 'Typografi klassar',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Teldupost-adressa',
+	emailBody: 'Breyðtekstur',
+	emailSubject: 'Evni',
+	id: 'Id',
+	info: 'Tilknýtis upplýsingar',
+	langCode: 'Tekstkós',
+	langDir: 'Tekstkós',
+	langDirLTR: 'Frá vinstru til høgru (LTR)',
+	langDirRTL: 'Frá høgru til vinstru (RTL)',
+	menu: 'Broyt tilknýti',
+	name: 'Navn',
+	noAnchors: '(Eingir marknasteinar eru í hesum dokumentið)',
+	noEmail: 'Vinarliga skriva teldupost-adressu',
+	noUrl: 'Vinarliga skriva tilknýti (URL)',
+	other: '<annað>',
+	popupDependent: 'Bundið (Netscape)',
+	popupFeatures: 'Popup vindeygans víðkaðu eginleikar',
+	popupFullScreen: 'Fullur skermur (IE)',
+	popupLeft: 'Frástøða frá vinstru',
+	popupLocationBar: 'Adressulinja',
+	popupMenuBar: 'Skrábjálki',
+	popupResizable: 'Stødd kann broytast',
+	popupScrollBars: 'Rullibjálki',
+	popupStatusBar: 'Støðufrágreiðingarbjálki',
+	popupToolbar: 'Amboðsbjálki',
+	popupTop: 'Frástøða frá íerva',
+	rel: 'Relatión',
+	selectAnchor: 'Vel ein marknastein',
+	styles: 'Typografi',
+	tabIndex: 'Tabulator indeks',
+	target: 'Target',
+	targetFrame: '<ramma>',
+	targetFrameName: 'Vís navn vindeygans',
+	targetPopup: '<popup vindeyga>',
+	targetPopupName: 'Popup vindeygans navn',
+	title: 'Tilknýti',
+	toAnchor: 'Tilknýti til marknastein í tekstinum',
+	toEmail: 'Teldupostur',
+	toUrl: 'URL',
+	toolbar: 'Ger/broyt tilknýti',
+	type: 'Tilknýtisslag',
+	unlink: 'Strika tilknýti',
+	upload: 'Send til ambætaran'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/fr-ca.js b/web/modules/anchor_link/js/plugins/link/lang/fr-ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..70f5c2b46099d82a2f025384447d1595117c3ae0
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/fr-ca.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fr-ca', {
+	acccessKey: 'Touche d\'accessibilité',
+	advanced: 'Avancé',
+	advisoryContentType: 'Type de contenu',
+	advisoryTitle: 'Description',
+	anchor: {
+		toolbar: 'Ancre',
+		menu: 'Modifier l\'ancre',
+		title: 'Propriétés de l\'ancre',
+		name: 'Nom de l\'ancre',
+		errorName: 'Veuillez saisir le nom de l\'ancre',
+		remove: 'Supprimer l\'ancre'
+	},
+	anchorId: 'Par ID',
+	anchorName: 'Par nom',
+	charset: 'Encodage de la cible',
+	cssClasses: 'Classes CSS',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Courriel',
+	emailBody: 'Corps du message',
+	emailSubject: 'Objet du message',
+	id: 'ID',
+	info: 'Informations sur le lien',
+	langCode: 'Code de langue',
+	langDir: 'Sens d\'écriture',
+	langDirLTR: 'De gauche à droite (LTR)',
+	langDirRTL: 'De droite à gauche (RTL)',
+	menu: 'Modifier le lien',
+	name: 'Nom',
+	noAnchors: '(Pas d\'ancre disponible dans le document)',
+	noEmail: 'Veuillez saisir le courriel',
+	noUrl: 'Veuillez saisir l\'URL',
+	other: '<autre>',
+	popupDependent: 'Dépendante (Netscape)',
+	popupFeatures: 'Caractéristiques de la fenêtre popup',
+	popupFullScreen: 'Plein écran (IE)',
+	popupLeft: 'Position de la gauche',
+	popupLocationBar: 'Barre d\'adresse',
+	popupMenuBar: 'Barre de menu',
+	popupResizable: 'Redimensionnable',
+	popupScrollBars: 'Barres de défilement',
+	popupStatusBar: 'Barre d\'état',
+	popupToolbar: 'Barre d\'outils',
+	popupTop: 'Position à partir du haut',
+	rel: 'Relation',
+	selectAnchor: 'Sélectionner une ancre',
+	styles: 'Style',
+	tabIndex: 'Ordre de tabulation',
+	target: 'Destination',
+	targetFrame: '<Cadre>',
+	targetFrameName: 'Nom du cadre de destination',
+	targetPopup: '<fenêtre popup>',
+	targetPopupName: 'Nom de la fenêtre popup',
+	title: 'Lien',
+	toAnchor: 'Ancre dans cette page',
+	toEmail: 'Courriel',
+	toUrl: 'URL',
+	toolbar: 'Lien',
+	type: 'Type de lien',
+	unlink: 'Supprimer le lien',
+	upload: 'Téléverser'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/fr.js b/web/modules/anchor_link/js/plugins/link/lang/fr.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6a6c36b840d9ca45e96d6547947d92903cd2b77
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/fr.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fr', {
+	acccessKey: 'Touche d\'accessibilité',
+	advanced: 'Avancé',
+	advisoryContentType: 'Type de contenu (indicatif)',
+	advisoryTitle: 'Infobulle',
+	anchor: {
+		toolbar: 'Ancre',
+		menu: 'Modifier l\'ancre',
+		title: 'Propriétés de l\'ancre',
+		name: 'Nom de l\'ancre',
+		errorName: 'Veuillez entrer le nom de l\'ancre.',
+		remove: 'Supprimer l\'ancre'
+	},
+	anchorId: 'Par ID d\'élément',
+	anchorName: 'Par nom d\'ancre',
+	charset: 'Encodage de la ressource liée',
+	cssClasses: 'Classes de style',
+	download: 'Forcer le téléchargement',
+	displayText: 'Afficher le texte',
+	emailAddress: 'Adresse électronique',
+	emailBody: 'Corps du message',
+	emailSubject: 'Sujet du message',
+	id: 'ID',
+	info: 'Informations sur le lien',
+	langCode: 'Code de langue',
+	langDir: 'Sens d\'écriture',
+	langDirLTR: 'Gauche à droite',
+	langDirRTL: 'Droite à gauche (RTL)',
+	menu: 'Modifier le lien',
+	name: 'Nom',
+	noAnchors: '(Aucune ancre disponible dans ce document)',
+	noEmail: 'Veuillez entrer l\'adresse électronique',
+	noUrl: 'Veuillez entrer l\'URL du lien',
+	other: '<autre>',
+	popupDependent: 'Dépendante (Netscape)',
+	popupFeatures: 'Caractéristiques de la fenêtre surgissante',
+	popupFullScreen: 'Plein écran (IE)',
+	popupLeft: 'À gauche',
+	popupLocationBar: 'Barre d\'adresse',
+	popupMenuBar: 'Barre de menu',
+	popupResizable: 'Redimensionnable',
+	popupScrollBars: 'Barres de défilement',
+	popupStatusBar: 'Barre d\'état',
+	popupToolbar: 'Barre d\'outils',
+	popupTop: 'En haut',
+	rel: 'Relation',
+	selectAnchor: 'Sélectionner une ancre',
+	styles: 'Style',
+	tabIndex: 'Indice de tabulation',
+	target: 'Cible',
+	targetFrame: '<cadre>',
+	targetFrameName: 'Nom du cadre affecté',
+	targetPopup: '<fenêtre surgissante>',
+	targetPopupName: 'Nom de la fenêtre surgissante',
+	title: 'Lien',
+	toAnchor: 'Ancre',
+	toEmail: 'Courriel',
+	toUrl: 'URL',
+	toolbar: 'Lien',
+	type: 'Type de lien',
+	unlink: 'Supprimer le lien',
+	upload: 'Téléverser'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/gl.js b/web/modules/anchor_link/js/plugins/link/lang/gl.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d8062b97d427894c4ac38c3173f9f9685e0fd90
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/gl.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'gl', {
+	acccessKey: 'Chave de acceso',
+	advanced: 'Avanzado',
+	advisoryContentType: 'Tipo de contido informativo',
+	advisoryTitle: 'Título',
+	anchor: {
+		toolbar: 'Ancoraxe',
+		menu: 'Editar a ancoraxe',
+		title: 'Propiedades da ancoraxe',
+		name: 'Nome da ancoraxe',
+		errorName: 'Escriba o nome da ancoraxe',
+		remove: 'Retirar a ancoraxe'
+	},
+	anchorId: 'Polo ID do elemento',
+	anchorName: 'Polo nome da ancoraxe',
+	charset: 'Codificación do recurso ligado',
+	cssClasses: 'Clases da folla de estilos',
+	download: 'Forzar a descarga',
+	displayText: 'Amosar o texto',
+	emailAddress: 'Enderezo de correo',
+	emailBody: 'Corpo da mensaxe',
+	emailSubject: 'Asunto da mensaxe',
+	id: 'ID',
+	info: 'Información da ligazón',
+	langCode: 'Código do idioma',
+	langDir: 'Dirección de escritura do idioma',
+	langDirLTR: 'Esquerda a dereita (LTR)',
+	langDirRTL: 'Dereita a esquerda (RTL)',
+	menu: 'Editar a ligazón',
+	name: 'Nome',
+	noAnchors: '(Non hai ancoraxes dispoñíbeis no documento)',
+	noEmail: 'Escriba o enderezo de correo',
+	noUrl: 'Escriba a ligazón URL',
+	other: '<outro>',
+	popupDependent: 'Dependente (Netscape)',
+	popupFeatures: 'Características da xanela emerxente',
+	popupFullScreen: 'Pantalla completa (IE)',
+	popupLeft: 'Posición esquerda',
+	popupLocationBar: 'Barra de localización',
+	popupMenuBar: 'Barra do menú',
+	popupResizable: 'Redimensionábel',
+	popupScrollBars: 'Barras de desprazamento',
+	popupStatusBar: 'Barra de estado',
+	popupToolbar: 'Barra de ferramentas',
+	popupTop: 'Posición superior',
+	rel: 'Relación',
+	selectAnchor: 'Seleccionar unha ancoraxe',
+	styles: 'Estilo',
+	tabIndex: 'Índice de tabulación',
+	target: 'Destino',
+	targetFrame: '<marco>',
+	targetFrameName: 'Nome do marco de destino',
+	targetPopup: '<xanela emerxente>',
+	targetPopupName: 'Nome da xanela emerxente',
+	title: 'Ligazón',
+	toAnchor: 'Ligar coa ancoraxe no testo',
+	toEmail: 'Correo',
+	toUrl: 'URL',
+	toolbar: 'Ligazón',
+	type: 'Tipo de ligazón',
+	unlink: 'Eliminar a ligazón',
+	upload: 'Enviar'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/gu.js b/web/modules/anchor_link/js/plugins/link/lang/gu.js
new file mode 100644
index 0000000000000000000000000000000000000000..f42672b1d9896d1fd912b45961ea55ca01a6fe20
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/gu.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'gu', {
+	acccessKey: 'ઍક્સેસ કી',
+	advanced: 'અડ્વાન્સડ',
+	advisoryContentType: 'મુખ્ય કન્ટેન્ટ પ્રકાર',
+	advisoryTitle: 'મુખ્ય મથાળું',
+	anchor: {
+		toolbar: 'ઍંકર ઇન્સર્ટ/દાખલ કરવી',
+		menu: 'ઍંકરના ગુણ',
+		title: 'ઍંકરના ગુણ',
+		name: 'ઍંકરનું નામ',
+		errorName: 'ઍંકરનું નામ ટાઈપ કરો',
+		remove: 'સ્થિર નકરવું'
+	},
+	anchorId: 'ઍંકર એલિમન્ટ Id થી પસંદ કરો',
+	anchorName: 'ઍંકર નામથી પસંદ કરો',
+	charset: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',
+	cssClasses: 'સ્ટાઇલ-શીટ ક્લાસ',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'ઈ-મેલ સરનામું',
+	emailBody: 'સંદેશ',
+	emailSubject: 'ઈ-મેલ વિષય',
+	id: 'Id',
+	info: 'લિંક ઇન્ફૉ ટૅબ',
+	langCode: 'ભાષા લેખવાની પદ્ધતિ',
+	langDir: 'ભાષા લેખવાની પદ્ધતિ',
+	langDirLTR: 'ડાબે થી જમણે (LTR)',
+	langDirRTL: 'જમણે થી ડાબે (RTL)',
+	menu: ' લિંક એડિટ/માં ફેરફાર કરવો',
+	name: 'નામ',
+	noAnchors: '(ડૉક્યુમન્ટમાં ઍંકરની સંખ્યા)',
+	noEmail: 'ઈ-મેલ સરનામું ટાઇપ કરો',
+	noUrl: 'લિંક  URL ટાઇપ કરો',
+	other: '<other> <અન્ય>',
+	popupDependent: 'ડિપેન્ડન્ટ (Netscape)',
+	popupFeatures: 'પૉપ-અપ વિન્ડો ફીચરસૅ',
+	popupFullScreen: 'ફુલ સ્ક્રીન (IE)',
+	popupLeft: 'ડાબી બાજુ',
+	popupLocationBar: 'લોકેશન બાર',
+	popupMenuBar: 'મેન્યૂ બાર',
+	popupResizable: 'રીસાઈઝએબલ',
+	popupScrollBars: 'સ્ક્રોલ બાર',
+	popupStatusBar: 'સ્ટૅટસ બાર',
+	popupToolbar: 'ટૂલ બાર',
+	popupTop: 'જમણી બાજુ',
+	rel: 'સંબંધની સ્થિતિ',
+	selectAnchor: 'ઍંકર પસંદ કરો',
+	styles: 'સ્ટાઇલ',
+	tabIndex: 'ટૅબ ઇન્ડેક્સ',
+	target: 'ટાર્ગેટ/લક્ષ્ય',
+	targetFrame: '<ફ્રેમ>',
+	targetFrameName: 'ટાર્ગેટ ફ્રેમ નું નામ',
+	targetPopup: '<પૉપ-અપ વિન્ડો>',
+	targetPopupName: 'પૉપ-અપ વિન્ડો નું નામ',
+	title: 'લિંક',
+	toAnchor: 'આ પેજનો ઍંકર',
+	toEmail: 'ઈ-મેલ',
+	toUrl: 'URL',
+	toolbar: 'લિંક ઇન્સર્ટ/દાખલ કરવી',
+	type: 'લિંક પ્રકાર',
+	unlink: 'લિંક કાઢવી',
+	upload: 'અપલોડ'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/he.js b/web/modules/anchor_link/js/plugins/link/lang/he.js
new file mode 100644
index 0000000000000000000000000000000000000000..f98bd48a18794b037cbd065bd11f311f86279d09
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/he.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'he', {
+	acccessKey: 'מקש גישה',
+	advanced: 'אפשרויות מתקדמות',
+	advisoryContentType: 'Content Type מוצע',
+	advisoryTitle: 'כותרת מוצעת',
+	anchor: {
+		toolbar: 'הוספת/עריכת נקודת עיגון',
+		menu: 'מאפייני נקודת עיגון',
+		title: 'מאפייני נקודת עיגון',
+		name: 'שם לנקודת עיגון',
+		errorName: 'יש להקליד שם לנקודת עיגון',
+		remove: 'מחיקת נקודת עיגון'
+	},
+	anchorId: 'עפ"י זיהוי (ID) האלמנט',
+	anchorName: 'עפ"י שם העוגן',
+	charset: 'קידוד המשאב המקושר',
+	cssClasses: 'גיליונות עיצוב קבוצות',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'כתובת הדוא"ל',
+	emailBody: 'גוף ההודעה',
+	emailSubject: 'נושא ההודעה',
+	id: 'זיהוי (ID)',
+	info: 'מידע על הקישור',
+	langCode: 'קוד שפה',
+	langDir: 'כיוון שפה',
+	langDirLTR: 'שמאל לימין (LTR)',
+	langDirRTL: 'ימין לשמאל (RTL)',
+	menu: 'מאפייני קישור',
+	name: 'שם',
+	noAnchors: '(אין עוגנים זמינים בדף)',
+	noEmail: 'יש להקליד את כתובת הדוא"ל',
+	noUrl: 'יש להקליד את כתובת הקישור (URL)',
+	other: '<אחר>',
+	popupDependent: 'תלוי (Netscape)',
+	popupFeatures: 'תכונות החלון הקופץ',
+	popupFullScreen: 'מסך מלא (IE)',
+	popupLeft: 'מיקום צד שמאל',
+	popupLocationBar: 'סרגל כתובת',
+	popupMenuBar: 'סרגל תפריט',
+	popupResizable: 'שינוי גודל',
+	popupScrollBars: 'ניתן לגלילה',
+	popupStatusBar: 'סרגל חיווי',
+	popupToolbar: 'סרגל הכלים',
+	popupTop: 'מיקום צד עליון',
+	rel: 'קשר גומלין',
+	selectAnchor: 'בחירת עוגן',
+	styles: 'סגנון',
+	tabIndex: 'מספר טאב',
+	target: 'מטרה',
+	targetFrame: '<מסגרת>',
+	targetFrameName: 'שם מסגרת היעד',
+	targetPopup: '<חלון קופץ>',
+	targetPopupName: 'שם החלון הקופץ',
+	title: 'קישור',
+	toAnchor: 'עוגן בעמוד זה',
+	toEmail: 'דוא"ל',
+	toUrl: 'כתובת (URL)',
+	toolbar: 'הוספת/עריכת קישור',
+	type: 'סוג קישור',
+	unlink: 'הסרת הקישור',
+	upload: 'העלאה'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/hi.js b/web/modules/anchor_link/js/plugins/link/lang/hi.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e1866c059e219bfb619e6f4d954580f64da5cb5
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/hi.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hi', {
+	acccessKey: 'ऍक्सॅस की',
+	advanced: 'ऍड्वान्स्ड',
+	advisoryContentType: 'परामर्श कन्टॅन्ट प्रकार',
+	advisoryTitle: 'परामर्श शीर्शक',
+	anchor: {
+		toolbar: 'ऐंकर इन्सर्ट/संपादन',
+		menu: 'ऐंकर प्रॉपर्टीज़',
+		title: 'ऐंकर प्रॉपर्टीज़',
+		name: 'ऐंकर का नाम',
+		errorName: 'ऐंकर का नाम टाइप करें',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'ऍलीमॅन्ट Id से',
+	anchorName: 'ऐंकर नाम से',
+	charset: 'लिंक रिसोर्स करॅक्टर सॅट',
+	cssClasses: 'स्टाइल-शीट क्लास',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'ई-मेल पता',
+	emailBody: 'संदेश',
+	emailSubject: 'संदेश विषय',
+	id: 'Id',
+	info: 'लिंक  ',
+	langCode: 'भाषा लिखने की दिशा',
+	langDir: 'भाषा लिखने की दिशा',
+	langDirLTR: 'बायें से दायें (LTR)',
+	langDirRTL: 'दायें से बायें (RTL)',
+	menu: 'लिंक संपादन',
+	name: 'नाम',
+	noAnchors: '(डॉक्यूमॅन्ट में ऐंकर्स की संख्या)',
+	noEmail: 'ई-मेल पता टाइप करें',
+	noUrl: 'लिंक URL टाइप करें',
+	other: '<अन्य>',
+	popupDependent: 'डिपेन्डॅन्ट (Netscape)',
+	popupFeatures: 'पॉप-अप विन्डो फ़ीचर्स',
+	popupFullScreen: 'फ़ुल स्क्रीन (IE)',
+	popupLeft: 'बायीं तरफ',
+	popupLocationBar: 'लोकेशन बार',
+	popupMenuBar: 'मॅन्यू बार',
+	popupResizable: 'आकार बदलने लायक',
+	popupScrollBars: 'स्क्रॉल बार',
+	popupStatusBar: 'स्टेटस बार',
+	popupToolbar: 'टूल बार',
+	popupTop: 'दायीं तरफ',
+	rel: 'संबंध',
+	selectAnchor: 'ऐंकर चुनें',
+	styles: 'स्टाइल',
+	tabIndex: 'टैब इन्डॅक्स',
+	target: 'टार्गेट',
+	targetFrame: '<फ़्रेम>',
+	targetFrameName: 'टार्गेट फ़्रेम का नाम',
+	targetPopup: '<पॉप-अप विन्डो>',
+	targetPopupName: 'पॉप-अप विन्डो का नाम',
+	title: 'लिंक',
+	toAnchor: 'इस पेज का ऐंकर',
+	toEmail: 'ई-मेल',
+	toUrl: 'URL',
+	toolbar: 'लिंक इन्सर्ट/संपादन',
+	type: 'लिंक प्रकार',
+	unlink: 'लिंक हटायें',
+	upload: 'अपलोड'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/hr.js b/web/modules/anchor_link/js/plugins/link/lang/hr.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf54d0f05c251699a7a51f240cef3549b1a81503
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/hr.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hr', {
+	acccessKey: 'Pristupna tipka',
+	advanced: 'Napredno',
+	advisoryContentType: 'Savjetodavna vrsta sadržaja',
+	advisoryTitle: 'Savjetodavni naslov',
+	anchor: {
+		toolbar: 'Ubaci/promijeni sidro',
+		menu: 'Svojstva sidra',
+		title: 'Svojstva sidra',
+		name: 'Ime sidra',
+		errorName: 'Molimo unesite ime sidra',
+		remove: 'Ukloni sidro'
+	},
+	anchorId: 'Po Id elementa',
+	anchorName: 'Po nazivu sidra',
+	charset: 'Kodna stranica povezanih resursa',
+	cssClasses: 'Stylesheet klase',
+	download: 'Preuzmi na silu',
+	displayText: 'Prikaži tekst',
+	emailAddress: 'E-Mail adresa',
+	emailBody: 'Sadržaj poruke',
+	emailSubject: 'Naslov',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Smjer jezika',
+	langDir: 'Smjer jezika',
+	langDirLTR: 'S lijeva na desno (LTR)',
+	langDirRTL: 'S desna na lijevo (RTL)',
+	menu: 'Promijeni link',
+	name: 'Naziv',
+	noAnchors: '(Nema dostupnih sidra)',
+	noEmail: 'Molimo upišite e-mail adresu',
+	noUrl: 'Molimo upišite URL link',
+	other: '<drugi>',
+	popupDependent: 'Ovisno (Netscape)',
+	popupFeatures: 'Mogućnosti popup prozora',
+	popupFullScreen: 'Cijeli ekran (IE)',
+	popupLeft: 'Lijeva pozicija',
+	popupLocationBar: 'Traka za lokaciju',
+	popupMenuBar: 'Izborna traka',
+	popupResizable: 'Promjenjiva veličina',
+	popupScrollBars: 'Scroll traka',
+	popupStatusBar: 'Statusna traka',
+	popupToolbar: 'Traka s alatima',
+	popupTop: 'Gornja pozicija',
+	rel: 'Veza',
+	selectAnchor: 'Odaberi sidro',
+	styles: 'Stil',
+	tabIndex: 'Tab Indeks',
+	target: 'Meta',
+	targetFrame: '<okvir>',
+	targetFrameName: 'Ime ciljnog okvira',
+	targetPopup: '<popup prozor>',
+	targetPopupName: 'Naziv popup prozora',
+	title: 'Veza',
+	toAnchor: 'Sidro na ovoj stranici',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Ubaci/promijeni vezu',
+	type: 'Vrsta veze',
+	unlink: 'Ukloni vezu',
+	upload: 'Pošalji'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/hu.js b/web/modules/anchor_link/js/plugins/link/lang/hu.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9b798e66da82ac1e5e651d69b31905bd6b517a8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/hu.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hu', {
+	acccessKey: 'Billentyűkombináció',
+	advanced: 'További opciók',
+	advisoryContentType: 'Súgó tartalomtípusa',
+	advisoryTitle: 'Súgócimke',
+	anchor: {
+		toolbar: 'Horgony beillesztése/szerkesztése',
+		menu: 'Horgony tulajdonságai',
+		title: 'Horgony tulajdonságai',
+		name: 'Horgony neve',
+		errorName: 'Kérem adja meg a horgony nevét',
+		remove: 'Horgony eltávolítása'
+	},
+	anchorId: 'Azonosító szerint',
+	anchorName: 'Horgony név szerint',
+	charset: 'Hivatkozott tartalom kódlapja',
+	cssClasses: 'Stíluskészlet',
+	download: 'Kötelező letöltés',
+	displayText: 'Megjelenített szöveg',
+	emailAddress: 'E-Mail cím',
+	emailBody: 'Üzenet',
+	emailSubject: 'Üzenet tárgya',
+	id: 'Id',
+	info: 'Alaptulajdonságok',
+	langCode: 'Írás iránya',
+	langDir: 'Írás iránya',
+	langDirLTR: 'Balról jobbra',
+	langDirRTL: 'Jobbról balra',
+	menu: 'Hivatkozás módosítása',
+	name: 'Név',
+	noAnchors: '(Nincs horgony a dokumentumban)',
+	noEmail: 'Adja meg az E-Mail címet',
+	noUrl: 'Adja meg a hivatkozás webcímét',
+	other: '<más>',
+	popupDependent: 'Szülőhöz kapcsolt (csak Netscape)',
+	popupFeatures: 'Felugró ablak jellemzői',
+	popupFullScreen: 'Teljes képernyő (csak IE)',
+	popupLeft: 'Bal pozíció',
+	popupLocationBar: 'Címsor',
+	popupMenuBar: 'Menü sor',
+	popupResizable: 'Átméretezés',
+	popupScrollBars: 'Gördítősáv',
+	popupStatusBar: 'Állapotsor',
+	popupToolbar: 'Eszköztár',
+	popupTop: 'Felső pozíció',
+	rel: 'Kapcsolat típusa',
+	selectAnchor: 'Horgony választása',
+	styles: 'Stílus',
+	tabIndex: 'Tabulátor index',
+	target: 'Tartalom megjelenítése',
+	targetFrame: '<keretben>',
+	targetFrameName: 'Keret neve',
+	targetPopup: '<felugró ablakban>',
+	targetPopupName: 'Felugró ablak neve',
+	title: 'Hivatkozás tulajdonságai',
+	toAnchor: 'Horgony az oldalon',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Hivatkozás beillesztése/módosítása',
+	type: 'Hivatkozás típusa',
+	unlink: 'Hivatkozás törlése',
+	upload: 'Feltöltés'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/id.js b/web/modules/anchor_link/js/plugins/link/lang/id.js
new file mode 100644
index 0000000000000000000000000000000000000000..a92758ecfffc54addb9b4991098076a56393c53a
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/id.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'id', {
+	acccessKey: 'Access Key', // MISSING
+	advanced: 'Advanced', // MISSING
+	advisoryContentType: 'Advisory Content Type', // MISSING
+	advisoryTitle: 'Penasehat Judul',
+	anchor: {
+		toolbar: 'Anchor', // MISSING
+		menu: 'Edit Anchor', // MISSING
+		title: 'Anchor Properties', // MISSING
+		name: 'Anchor Name', // MISSING
+		errorName: 'Please type the anchor name', // MISSING
+		remove: 'Remove Anchor' // MISSING
+	},
+	anchorId: 'By Element Id', // MISSING
+	anchorName: 'By Anchor Name', // MISSING
+	charset: 'Linked Resource Charset', // MISSING
+	cssClasses: 'Kelas Stylesheet',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Alamat E-mail',
+	emailBody: 'Message Body', // MISSING
+	emailSubject: 'Judul Pesan',
+	id: 'Id',
+	info: 'Link Info', // MISSING
+	langCode: 'Kode Bahasa',
+	langDir: 'Arah Bahasa',
+	langDirLTR: 'Kiri ke Kanan (LTR)',
+	langDirRTL: 'Kanan ke Kiri (RTL)',
+	menu: 'Sunting Tautan',
+	name: 'Nama',
+	noAnchors: '(No anchors available in the document)', // MISSING
+	noEmail: 'Silahkan ketikkan alamat e-mail',
+	noUrl: 'Silahkan ketik URL tautan',
+	other: '<lainnya>',
+	popupDependent: 'Dependent (Netscape)', // MISSING
+	popupFeatures: 'Popup Window Features', // MISSING
+	popupFullScreen: 'Full Screen (IE)', // MISSING
+	popupLeft: 'Left Position', // MISSING
+	popupLocationBar: 'Location Bar', // MISSING
+	popupMenuBar: 'Menu Bar', // MISSING
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Scroll Bars', // MISSING
+	popupStatusBar: 'Status Bar', // MISSING
+	popupToolbar: 'Toolbar', // MISSING
+	popupTop: 'Top Position', // MISSING
+	rel: 'Hubungan',
+	selectAnchor: 'Select an Anchor', // MISSING
+	styles: 'Gaya',
+	tabIndex: 'Tab Index', // MISSING
+	target: 'Sasaran',
+	targetFrame: '<frame>', // MISSING
+	targetFrameName: 'Target Frame Name', // MISSING
+	targetPopup: '<popup window>', // MISSING
+	targetPopupName: 'Popup Window Name', // MISSING
+	title: 'Tautan',
+	toAnchor: 'Link to anchor in the text', // MISSING
+	toEmail: 'E-mail', // MISSING
+	toUrl: 'URL',
+	toolbar: 'Tautan',
+	type: 'Link Type', // MISSING
+	unlink: 'Unlink', // MISSING
+	upload: 'Unggah'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/is.js b/web/modules/anchor_link/js/plugins/link/lang/is.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee9f3af43123d41af7e40eaef13a487af9683cb3
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/is.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'is', {
+	acccessKey: 'Skammvalshnappur',
+	advanced: 'Tæknilegt',
+	advisoryContentType: 'Tegund innihalds',
+	advisoryTitle: 'Titill',
+	anchor: {
+		toolbar: 'Stofna/breyta kaflamerki',
+		menu: 'Eigindi kaflamerkis',
+		title: 'Eigindi kaflamerkis',
+		name: 'Nafn bókamerkis',
+		errorName: 'Sláðu inn nafn bókamerkis!',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'Eftir auðkenni einingar',
+	anchorName: 'Eftir akkerisnafni',
+	charset: 'Táknróf',
+	cssClasses: 'Stílsniðsflokkur',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Netfang',
+	emailBody: 'Meginmál',
+	emailSubject: 'Efni',
+	id: 'Auðkenni',
+	info: 'Almennt',
+	langCode: 'Lesstefna',
+	langDir: 'Lesstefna',
+	langDirLTR: 'Frá vinstri til hægri (LTR)',
+	langDirRTL: 'Frá hægri til vinstri (RTL)',
+	menu: 'Breyta stiklu',
+	name: 'Nafn',
+	noAnchors: '<Engin bókamerki á skrá>',
+	noEmail: 'Sláðu inn netfang!',
+	noUrl: 'Sláðu inn veffang stiklunnar!',
+	other: '<annar>',
+	popupDependent: 'Háð venslum (Netscape)',
+	popupFeatures: 'Eigindi sprettiglugga',
+	popupFullScreen: 'Heilskjár (IE)',
+	popupLeft: 'Fjarlægð frá vinstri',
+	popupLocationBar: 'Fanglína',
+	popupMenuBar: 'Vallína',
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Skrunstikur',
+	popupStatusBar: 'Stöðustika',
+	popupToolbar: 'Verkfærastika',
+	popupTop: 'Fjarlægð frá efri brún',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Veldu akkeri',
+	styles: 'Stíll',
+	tabIndex: 'Raðnúmer innsláttarreits',
+	target: 'Mark',
+	targetFrame: '<rammi>',
+	targetFrameName: 'Nafn markglugga',
+	targetPopup: '<sprettigluggi>',
+	targetPopupName: 'Nafn sprettiglugga',
+	title: 'Stikla',
+	toAnchor: 'Bókamerki á þessari síðu',
+	toEmail: 'Netfang',
+	toUrl: 'Vefslóð',
+	toolbar: 'Stofna/breyta stiklu',
+	type: 'Stikluflokkur',
+	unlink: 'Fjarlægja stiklu',
+	upload: 'Senda upp'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/it.js b/web/modules/anchor_link/js/plugins/link/lang/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..582e3caaf7a89329ea81cbe18a174de0abc36d5b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/it.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'it', {
+	acccessKey: 'Scorciatoia da tastiera',
+	advanced: 'Avanzate',
+	advisoryContentType: 'Tipo della risorsa collegata',
+	advisoryTitle: 'Titolo',
+	anchor: {
+		toolbar: 'Inserisci/Modifica Ancora',
+		menu: 'Proprietà ancora',
+		title: 'Proprietà ancora',
+		name: 'Nome ancora',
+		errorName: 'Inserici il nome dell\'ancora',
+		remove: 'Rimuovi l\'ancora'
+	},
+	anchorId: 'Per id elemento',
+	anchorName: 'Per Nome',
+	charset: 'Set di caretteri della risorsa collegata',
+	cssClasses: 'Nome classe CSS',
+	download: 'Forza scaricamento',
+	displayText: 'Mostra testo',
+	emailAddress: 'Indirizzo E-Mail',
+	emailBody: 'Corpo del messaggio',
+	emailSubject: 'Oggetto del messaggio',
+	id: 'Id',
+	info: 'Informazioni collegamento',
+	langCode: 'Direzione scrittura',
+	langDir: 'Direzione scrittura',
+	langDirLTR: 'Da Sinistra a Destra (LTR)',
+	langDirRTL: 'Da Destra a Sinistra (RTL)',
+	menu: 'Modifica collegamento',
+	name: 'Nome',
+	noAnchors: '(Nessuna ancora disponibile nel documento)',
+	noEmail: 'Devi inserire un\'indirizzo e-mail',
+	noUrl: 'Devi inserire l\'URL del collegamento',
+	other: '<altro>',
+	popupDependent: 'Dipendente (Netscape)',
+	popupFeatures: 'Caratteristiche finestra popup',
+	popupFullScreen: 'A tutto schermo (IE)',
+	popupLeft: 'Posizione da sinistra',
+	popupLocationBar: 'Barra degli indirizzi',
+	popupMenuBar: 'Barra del menu',
+	popupResizable: 'Ridimensionabile',
+	popupScrollBars: 'Barre di scorrimento',
+	popupStatusBar: 'Barra di stato',
+	popupToolbar: 'Barra degli strumenti',
+	popupTop: 'Posizione dall\'alto',
+	rel: 'Relazioni',
+	selectAnchor: 'Scegli Ancora',
+	styles: 'Stile',
+	tabIndex: 'Ordine di tabulazione',
+	target: 'Destinazione',
+	targetFrame: '<riquadro>',
+	targetFrameName: 'Nome del riquadro di destinazione',
+	targetPopup: '<finestra popup>',
+	targetPopupName: 'Nome finestra popup',
+	title: 'Collegamento',
+	toAnchor: 'Ancora nel testo',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Collegamento',
+	type: 'Tipo di Collegamento',
+	unlink: 'Elimina collegamento',
+	upload: 'Carica'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ja.js b/web/modules/anchor_link/js/plugins/link/lang/ja.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e573cc0222c3ac1dce18f9ed76a1309560b1255
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ja.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ja', {
+	acccessKey: 'アクセスキー',
+	advanced: '高度な設定',
+	advisoryContentType: 'Content Type属性',
+	advisoryTitle: 'Title属性',
+	anchor: {
+		toolbar: 'アンカー挿入/編集',
+		menu: 'アンカーの編集',
+		title: 'アンカーのプロパティ',
+		name: 'アンカー名',
+		errorName: 'アンカー名を入力してください。',
+		remove: 'アンカーを削除'
+	},
+	anchorId: 'エレメントID',
+	anchorName: 'アンカー名',
+	charset: 'リンク先のcharset',
+	cssClasses: 'スタイルシートクラス',
+	download: '強制的にダウンロード',
+	displayText: '表示文字',
+	emailAddress: 'E-Mail アドレス',
+	emailBody: '本文',
+	emailSubject: '件名',
+	id: 'Id',
+	info: 'ハイパーリンク情報',
+	langCode: '言語コード',
+	langDir: '文字表記の方向',
+	langDirLTR: '左から右 (LTR)',
+	langDirRTL: '右から左 (RTL)',
+	menu: 'リンクを編集',
+	name: 'Name属性',
+	noAnchors: '(このドキュメント内にアンカーはありません)',
+	noEmail: 'メールアドレスを入力してください。',
+	noUrl: 'リンクURLを入力してください。',
+	other: '<その他の>',
+	popupDependent: '開いたウィンドウに連動して閉じる (Netscape)',
+	popupFeatures: 'ポップアップウィンドウ特徴',
+	popupFullScreen: '全画面モード(IE)',
+	popupLeft: '左端からの座標で指定',
+	popupLocationBar: 'ロケーションバー',
+	popupMenuBar: 'メニューバー',
+	popupResizable: 'サイズ可変',
+	popupScrollBars: 'スクロールバー',
+	popupStatusBar: 'ステータスバー',
+	popupToolbar: 'ツールバー',
+	popupTop: '上端からの座標で指定',
+	rel: '関連リンク',
+	selectAnchor: 'アンカーを選択',
+	styles: 'スタイルシート',
+	tabIndex: 'タブインデックス',
+	target: 'ターゲット',
+	targetFrame: '<フレーム>',
+	targetFrameName: 'ターゲットのフレーム名',
+	targetPopup: '<ポップアップウィンドウ>',
+	targetPopupName: 'ポップアップウィンドウ名',
+	title: 'ハイパーリンク',
+	toAnchor: 'ページ内のアンカー',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'リンク挿入/編集',
+	type: 'リンクタイプ',
+	unlink: 'リンクを削除',
+	upload: 'アップロード'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ka.js b/web/modules/anchor_link/js/plugins/link/lang/ka.js
new file mode 100644
index 0000000000000000000000000000000000000000..4daf90d12fd0d3f7c160b4c36b3608dc2f2a00a6
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ka.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ka', {
+	acccessKey: 'წვდომის ღილაკი',
+	advanced: 'დაწვრილებით',
+	advisoryContentType: 'შიგთავსის ტიპი',
+	advisoryTitle: 'სათაური',
+	anchor: {
+		toolbar: 'ღუზა',
+		menu: 'ღუზის რედაქტირება',
+		title: 'ღუზის პარამეტრები',
+		name: 'ღუზუს სახელი',
+		errorName: 'აკრიფეთ ღუზის სახელი',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'ელემენტის Id-თ',
+	anchorName: 'ღუზის სახელით',
+	charset: 'კოდირება',
+	cssClasses: 'CSS კლასი',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'ელფოსტის მისამართები',
+	emailBody: 'წერილის ტექსტი',
+	emailSubject: 'წერილის სათაური',
+	id: 'Id',
+	info: 'ბმულის ინფორმაცია',
+	langCode: 'ენის კოდი',
+	langDir: 'ენის მიმართულება',
+	langDirLTR: 'მარცხნიდან მარჯვნივ (LTR)',
+	langDirRTL: 'მარჯვნიდან მარცხნივ (RTL)',
+	menu: 'ბმულის რედაქტირება',
+	name: 'სახელი',
+	noAnchors: '(ამ დოკუმენტში ღუზა არაა)',
+	noEmail: 'აკრიფეთ ელფოსტის მისამართი',
+	noUrl: 'აკრიფეთ ბმულის URL',
+	other: '<სხვა>',
+	popupDependent: 'დამოკიდებული (Netscape)',
+	popupFeatures: 'Popup ფანჯრის პარამეტრები',
+	popupFullScreen: 'მთელი ეკრანი (IE)',
+	popupLeft: 'მარცხენა პოზიცია',
+	popupLocationBar: 'ნავიგაციის ზოლი',
+	popupMenuBar: 'მენიუს ზოლი',
+	popupResizable: 'ცვალებადი ზომით',
+	popupScrollBars: 'გადახვევის ზოლები',
+	popupStatusBar: 'სტატუსის ზოლი',
+	popupToolbar: 'ხელსაწყოთა ზოლი',
+	popupTop: 'ზედა პოზიცია',
+	rel: 'კავშირი',
+	selectAnchor: 'აირჩიეთ ღუზა',
+	styles: 'CSS სტილი',
+	tabIndex: 'Tab-ის ინდექსი',
+	target: 'გახსნის ადგილი',
+	targetFrame: '<frame>',
+	targetFrameName: 'Frame-ის სახელი',
+	targetPopup: '<popup ფანჯარა>',
+	targetPopupName: 'Popup ფანჯრის სახელი',
+	title: 'ბმული',
+	toAnchor: 'ბმული ტექსტში ღუზაზე',
+	toEmail: 'ელფოსტა',
+	toUrl: 'URL',
+	toolbar: 'ბმული',
+	type: 'ბმულის ტიპი',
+	unlink: 'ბმულის მოხსნა',
+	upload: 'აქაჩვა'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/km.js b/web/modules/anchor_link/js/plugins/link/lang/km.js
new file mode 100644
index 0000000000000000000000000000000000000000..5db758b81f6bc472ca225fd5009d9a4abf86b252
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/km.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'km', {
+	acccessKey: 'សោរ​ចូល',
+	advanced: 'កម្រិត​ខ្ពស់',
+	advisoryContentType: 'ប្រភេទអត្ថបទ​ប្រឹក្សា',
+	advisoryTitle: 'ចំណងជើង​ប្រឹក្សា',
+	anchor: {
+		toolbar: 'យុថ្កា',
+		menu: 'កែ​យុថ្កា',
+		title: 'លក្ខណៈ​យុថ្កា',
+		name: 'ឈ្មោះ​យុថ្កា',
+		errorName: 'សូម​បញ្ចូល​ឈ្មោះ​យុថ្កា',
+		remove: 'ដក​យុថ្កា​ចេញ'
+	},
+	anchorId: 'តាម ID ធាតុ',
+	anchorName: 'តាម​ឈ្មោះ​យុថ្កា',
+	charset: 'លេខកូតអក្សររបស់ឈ្នាប់',
+	cssClasses: 'Stylesheet Classes',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'អាសយដ្ឋាន​អ៊ីមែល',
+	emailBody: 'តួ​អត្ថបទ',
+	emailSubject: 'ប្រធានបទ​សារ',
+	id: 'Id',
+	info: 'ព័ត៌មាន​ពី​តំណ',
+	langCode: 'កូដ​ភាសា',
+	langDir: 'ទិសដៅភាសា',
+	langDirLTR: 'ពីឆ្វេងទៅស្តាំ(LTR)',
+	langDirRTL: 'ពីស្តាំទៅឆ្វេង(RTL)',
+	menu: 'កែ​តំណ',
+	name: 'ឈ្មោះ',
+	noAnchors: '(មិន​មាន​យុថ្កា​នៅ​ក្នុង​ឯកសារ​អត្ថថបទ​ទេ)',
+	noEmail: 'សូម​បញ្ចូល​អាសយដ្ឋាន​អ៊ីមែល',
+	noUrl: 'សូម​បញ្ចូល​តំណ URL',
+	other: '<ផ្សេង​ទៀត>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'មុខ​ងារ​ផុស​ផ្ទាំង​វីនដូ​ឡើង',
+	popupFullScreen: 'ពេញ​អេក្រង់ (IE)',
+	popupLeft: 'ទីតាំងខាងឆ្វេង',
+	popupLocationBar: 'របារ​ទីតាំង',
+	popupMenuBar: 'របារ​ម៉ឺនុយ',
+	popupResizable: 'អាច​ប្ដូរ​ទំហំ',
+	popupScrollBars: 'របារ​រំកិល',
+	popupStatusBar: 'របារ​ស្ថានភាព',
+	popupToolbar: 'របារ​ឧបករណ៍',
+	popupTop: 'ទីតាំង​កំពូល',
+	rel: 'សម្ពន្ធ​ភាព',
+	selectAnchor: 'រើស​យក​យុថ្កា​មួយ',
+	styles: 'ស្ទីល',
+	tabIndex: 'លេខ Tab',
+	target: 'គោលដៅ',
+	targetFrame: '<ស៊ុម>',
+	targetFrameName: 'ឈ្មោះ​ស៊ុម​ជា​គោល​ដៅ',
+	targetPopup: '<វីនដូ​ផុស​ឡើង>',
+	targetPopupName: 'ឈ្មោះ​វីនដូត​ផុស​ឡើង',
+	title: 'តំណ',
+	toAnchor: 'ត​ភ្ជាប់​ទៅ​យុថ្កា​ក្នុង​អត្ថបទ',
+	toEmail: 'អ៊ីមែល',
+	toUrl: 'URL',
+	toolbar: 'តំណ',
+	type: 'ប្រភេទ​តំណ',
+	unlink: 'ផ្ដាច់​តំណ',
+	upload: 'ផ្ទុក​ឡើង'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ko.js b/web/modules/anchor_link/js/plugins/link/lang/ko.js
new file mode 100644
index 0000000000000000000000000000000000000000..e0641f6df367c377f92502ad4acd842881b3e994
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ko.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ko', {
+	acccessKey: '액세스 키',
+	advanced: '고급',
+	advisoryContentType: '보조 콘텐츠 유형',
+	advisoryTitle: '보조 제목',
+	anchor: {
+		toolbar: '책갈피',
+		menu: '책갈피 편집',
+		title: '책갈피 속성',
+		name: '책갈피 이름',
+		errorName: '책갈피 이름을 입력하십시오',
+		remove: '책갈피 제거'
+	},
+	anchorId: '책갈피 ID',
+	anchorName: '책갈피 이름',
+	charset: '링크된 자료 문자열 인코딩',
+	cssClasses: '스타일시트 클래스',
+	download: '강제 다운로드',
+	displayText: '보이는 글자',
+	emailAddress: '이메일 주소',
+	emailBody: '메시지 내용',
+	emailSubject: '메시지 제목',
+	id: 'ID',
+	info: '링크 정보',
+	langCode: '언어 코드',
+	langDir: '언어 방향',
+	langDirLTR: '왼쪽에서 오른쪽 (LTR)',
+	langDirRTL: '오른쪽에서 왼쪽 (RTL)',
+	menu: '링크 수정',
+	name: '이름',
+	noAnchors: '(문서에 책갈피가 없습니다.)',
+	noEmail: '이메일 주소를 입력하십시오',
+	noUrl: '링크 주소(URL)를 입력하십시오',
+	other: '<기타>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: '팝업창 속성',
+	popupFullScreen: '전체화면 (IE)',
+	popupLeft: '왼쪽 위치',
+	popupLocationBar: '주소 표시줄',
+	popupMenuBar: '메뉴 바',
+	popupResizable: '크기 조절 가능',
+	popupScrollBars: '스크롤 바',
+	popupStatusBar: '상태 바',
+	popupToolbar: '툴바',
+	popupTop: '위쪽 위치',
+	rel: '관계',
+	selectAnchor: '책갈피 선택',
+	styles: '스타일',
+	tabIndex: '탭 순서',
+	target: '타겟',
+	targetFrame: '<프레임>',
+	targetFrameName: '타겟 프레임 이름',
+	targetPopup: '<팝업 창>',
+	targetPopupName: '팝업 창 이름',
+	title: '링크',
+	toAnchor: '책갈피',
+	toEmail: '이메일',
+	toUrl: '주소(URL)',
+	toolbar: '링크 삽입/변경',
+	type: '링크 종류',
+	unlink: '링크 지우기',
+	upload: '업로드'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ku.js b/web/modules/anchor_link/js/plugins/link/lang/ku.js
new file mode 100644
index 0000000000000000000000000000000000000000..1ac6a07bd56b2d4b7aee1d3d4979591aa8108aa9
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ku.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ku', {
+	acccessKey: 'کلیلی دەستپێگەیشتن',
+	advanced: 'پێشکەوتوو',
+	advisoryContentType: 'جۆری ناوەڕۆکی ڕاویژکار',
+	advisoryTitle: 'ڕاوێژکاری سەردێڕ',
+	anchor: {
+		toolbar: 'دانان/چاکسازی لەنگەر',
+		menu: 'چاکسازی لەنگەر',
+		title: 'خاسیەتی لەنگەر',
+		name: 'ناوی لەنگەر',
+		errorName: 'تکایه ناوی لەنگەر بنووسه',
+		remove: 'لابردنی لەنگەر'
+	},
+	anchorId: 'بەپێی ناسنامەی توخم',
+	anchorName: 'بەپێی ناوی لەنگەر',
+	charset: 'بەستەری سەرچاوەی نووسە',
+	cssClasses: 'شێوازی چینی پەڕه',
+	download: 'داگرتنی بەهێز',
+	displayText: 'پیشاندانی دەق',
+	emailAddress: 'ناونیشانی ئیمەیل',
+	emailBody: 'ناوەڕۆکی نامە',
+	emailSubject: 'بابەتی نامە',
+	id: 'ناسنامە',
+	info: 'زانیاری بەستەر',
+	langCode: 'هێمای زمان',
+	langDir: 'ئاراستەی زمان',
+	langDirLTR: 'چەپ بۆ ڕاست (LTR)',
+	langDirRTL: 'ڕاست بۆ چەپ (RTL)',
+	menu: 'چاکسازی بەستەر',
+	name: 'ناو',
+	noAnchors: '(هیچ جۆرێکی لەنگەر ئامادە نیە لەم پەڕەیه)',
+	noEmail: 'تکایە ناونیشانی ئیمەیل بنووسە',
+	noUrl: 'تکایە ناونیشانی بەستەر بنووسە',
+	other: '<هیتر>',
+	popupDependent: 'پێوەبەستراو (Netscape)',
+	popupFeatures: 'خاسیەتی پەنجەرەی سەرهەڵدەر',
+	popupFullScreen: 'پڕ بەپڕی شاشە (IE)',
+	popupLeft: 'جێگای چەپ',
+	popupLocationBar: 'هێڵی ناونیشانی بەستەر',
+	popupMenuBar: 'هێڵی لیسته',
+	popupResizable: 'توانای گۆڕینی قەباره',
+	popupScrollBars: 'هێڵی هاتووچۆپێکردن',
+	popupStatusBar: 'هێڵی دۆخ',
+	popupToolbar: 'هێڵی تووڵامراز',
+	popupTop: 'جێگای سەرەوە',
+	rel: 'پەیوەندی',
+	selectAnchor: 'هەڵبژاردنی لەنگەرێك',
+	styles: 'شێواز',
+	tabIndex: 'بازدەری تابی  ئیندێکس',
+	target: 'ئامانج',
+	targetFrame: '<چووارچێوە>',
+	targetFrameName: 'ناوی ئامانجی چووارچێوە',
+	targetPopup: '<پەنجەرەی سەرهەڵدەر>',
+	targetPopupName: 'ناوی پەنجەرەی سەرهەڵدەر',
+	title: 'بەستەر',
+	toAnchor: 'بەستەر بۆ لەنگەر له دەق',
+	toEmail: 'ئیمەیل',
+	toUrl: 'ناونیشانی بەستەر',
+	toolbar: 'دانان/ڕێکخستنی بەستەر',
+	type: 'جۆری بەستەر',
+	unlink: 'لابردنی بەستەر',
+	upload: 'بارکردن'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/lt.js b/web/modules/anchor_link/js/plugins/link/lang/lt.js
new file mode 100644
index 0000000000000000000000000000000000000000..6dbddc48a956a0e1d81f78df65d8f2acb2d0b91d
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/lt.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'lt', {
+	acccessKey: 'Prieigos raktas',
+	advanced: 'Papildomas',
+	advisoryContentType: 'Konsultacinio turinio tipas',
+	advisoryTitle: 'Konsultacinė antraštė',
+	anchor: {
+		toolbar: 'Įterpti/modifikuoti žymę',
+		menu: 'Žymės savybės',
+		title: 'Žymės savybės',
+		name: 'Žymės vardas',
+		errorName: 'Prašome įvesti žymės vardą',
+		remove: 'Pašalinti žymę'
+	},
+	anchorId: 'Pagal žymės Id',
+	anchorName: 'Pagal žymės vardą',
+	charset: 'Susietų išteklių simbolių lentelė',
+	cssClasses: 'Stilių lentelės klasės',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'El.pašto adresas',
+	emailBody: 'Žinutės turinys',
+	emailSubject: 'Žinutės tema',
+	id: 'Id',
+	info: 'Nuorodos informacija',
+	langCode: 'Teksto kryptis',
+	langDir: 'Teksto kryptis',
+	langDirLTR: 'Iš kairės į dešinę (LTR)',
+	langDirRTL: 'Iš dešinės į kairę (RTL)',
+	menu: 'Taisyti nuorodą',
+	name: 'Vardas',
+	noAnchors: '(Šiame dokumente žymių nėra)',
+	noEmail: 'Prašome įvesti el.pašto adresą',
+	noUrl: 'Prašome įvesti nuorodos URL',
+	other: '<kitas>',
+	popupDependent: 'Priklausomas (Netscape)',
+	popupFeatures: 'Išskleidžiamo lango savybės',
+	popupFullScreen: 'Visas ekranas (IE)',
+	popupLeft: 'Kairė pozicija',
+	popupLocationBar: 'Adreso juosta',
+	popupMenuBar: 'Meniu juosta',
+	popupResizable: 'Kintamas dydis',
+	popupScrollBars: 'Slinkties juostos',
+	popupStatusBar: 'Būsenos juosta',
+	popupToolbar: 'Mygtukų juosta',
+	popupTop: 'Viršutinė pozicija',
+	rel: 'Sąsajos',
+	selectAnchor: 'Pasirinkite žymę',
+	styles: 'Stilius',
+	tabIndex: 'Tabuliavimo indeksas',
+	target: 'Paskirties vieta',
+	targetFrame: '<kadras>',
+	targetFrameName: 'Paskirties kadro vardas',
+	targetPopup: '<išskleidžiamas langas>',
+	targetPopupName: 'Paskirties lango vardas',
+	title: 'Nuoroda',
+	toAnchor: 'Žymė šiame puslapyje',
+	toEmail: 'El.paštas',
+	toUrl: 'Nuoroda',
+	toolbar: 'Įterpti/taisyti nuorodą',
+	type: 'Nuorodos tipas',
+	unlink: 'Panaikinti nuorodą',
+	upload: 'Siųsti'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/lv.js b/web/modules/anchor_link/js/plugins/link/lang/lv.js
new file mode 100644
index 0000000000000000000000000000000000000000..c33e014a3432b6ea304f7a89304fd1f6ea814895
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/lv.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'lv', {
+	acccessKey: 'Pieejas taustiņš',
+	advanced: 'Izvērstais',
+	advisoryContentType: 'Konsultatīvs satura tips',
+	advisoryTitle: 'Konsultatīvs virsraksts',
+	anchor: {
+		toolbar: 'Ievietot/Labot iezīmi',
+		menu: 'Labot iezīmi',
+		title: 'Iezīmes uzstādījumi',
+		name: 'Iezīmes nosaukums',
+		errorName: 'Lūdzu norādiet iezīmes nosaukumu',
+		remove: 'Noņemt iezīmi'
+	},
+	anchorId: 'Pēc elementa ID',
+	anchorName: 'Pēc iezīmes nosaukuma',
+	charset: 'Pievienotā resursa kodējums',
+	cssClasses: 'Stilu saraksta klases',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-pasta adrese',
+	emailBody: 'Ziņas saturs',
+	emailSubject: 'Ziņas tēma',
+	id: 'ID',
+	info: 'Hipersaites informācija',
+	langCode: 'Valodas kods',
+	langDir: 'Valodas lasīšanas virziens',
+	langDirLTR: 'No kreisās uz labo (LTR)',
+	langDirRTL: 'No labās uz kreiso (RTL)',
+	menu: 'Labot hipersaiti',
+	name: 'Nosaukums',
+	noAnchors: '(Šajā dokumentā nav iezīmju)',
+	noEmail: 'Lūdzu norādi e-pasta adresi',
+	noUrl: 'Lūdzu norādi hipersaiti',
+	other: '<cits>',
+	popupDependent: 'Atkarīgs (Netscape)',
+	popupFeatures: 'Uznirstošā loga nosaukums īpašības',
+	popupFullScreen: 'Pilnā ekrānā (IE)',
+	popupLeft: 'Kreisā koordināte',
+	popupLocationBar: 'Atrašanās vietas josla',
+	popupMenuBar: 'Izvēlnes josla',
+	popupResizable: 'Mērogojams',
+	popupScrollBars: 'Ritjoslas',
+	popupStatusBar: 'Statusa josla',
+	popupToolbar: 'Rīku josla',
+	popupTop: 'Augšējā koordināte',
+	rel: 'Relācija',
+	selectAnchor: 'Izvēlēties iezīmi',
+	styles: 'Stils',
+	tabIndex: 'Ciļņu indekss',
+	target: 'Mērķis',
+	targetFrame: '<ietvars>',
+	targetFrameName: 'Mērķa ietvara nosaukums',
+	targetPopup: '<uznirstošā logā>',
+	targetPopupName: 'Uznirstošā loga nosaukums',
+	title: 'Hipersaite',
+	toAnchor: 'Iezīme šajā lapā',
+	toEmail: 'E-pasts',
+	toUrl: 'Adrese',
+	toolbar: 'Ievietot/Labot hipersaiti',
+	type: 'Hipersaites tips',
+	unlink: 'Noņemt hipersaiti',
+	upload: 'Augšupielādēt'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/mk.js b/web/modules/anchor_link/js/plugins/link/lang/mk.js
new file mode 100644
index 0000000000000000000000000000000000000000..1667e254d49a15eab2a31ac31b65e55b7d02c540
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/mk.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'mk', {
+	acccessKey: 'Access Key', // MISSING
+	advanced: 'Advanced', // MISSING
+	advisoryContentType: 'Advisory Content Type', // MISSING
+	advisoryTitle: 'Advisory Title', // MISSING
+	anchor: {
+		toolbar: 'Anchor',
+		menu: 'Edit Anchor',
+		title: 'Anchor Properties',
+		name: 'Anchor Name',
+		errorName: 'Please type the anchor name',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'By Element Id', // MISSING
+	anchorName: 'By Anchor Name', // MISSING
+	charset: 'Linked Resource Charset', // MISSING
+	cssClasses: 'Stylesheet Classes', // MISSING
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Address', // MISSING
+	emailBody: 'Message Body', // MISSING
+	emailSubject: 'Message Subject', // MISSING
+	id: 'Id',
+	info: 'Link Info', // MISSING
+	langCode: 'Код на јазик',
+	langDir: 'Насока на јазик',
+	langDirLTR: 'Лево кон десно',
+	langDirRTL: 'Десно кон лево',
+	menu: 'Edit Link', // MISSING
+	name: 'Name',
+	noAnchors: '(No anchors available in the document)', // MISSING
+	noEmail: 'Please type the e-mail address', // MISSING
+	noUrl: 'Please type the link URL', // MISSING
+	other: '<other>', // MISSING
+	popupDependent: 'Dependent (Netscape)', // MISSING
+	popupFeatures: 'Popup Window Features', // MISSING
+	popupFullScreen: 'Full Screen (IE)', // MISSING
+	popupLeft: 'Left Position', // MISSING
+	popupLocationBar: 'Location Bar', // MISSING
+	popupMenuBar: 'Menu Bar', // MISSING
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Scroll Bars', // MISSING
+	popupStatusBar: 'Status Bar', // MISSING
+	popupToolbar: 'Toolbar', // MISSING
+	popupTop: 'Top Position', // MISSING
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Select an Anchor', // MISSING
+	styles: 'Стил',
+	tabIndex: 'Tab Index', // MISSING
+	target: 'Target', // MISSING
+	targetFrame: '<frame>', // MISSING
+	targetFrameName: 'Target Frame Name', // MISSING
+	targetPopup: '<popup window>', // MISSING
+	targetPopupName: 'Popup Window Name', // MISSING
+	title: 'Врска',
+	toAnchor: 'Link to anchor in the text', // MISSING
+	toEmail: 'E-mail', // MISSING
+	toUrl: 'URL',
+	toolbar: 'Врска',
+	type: 'Link Type', // MISSING
+	unlink: 'Unlink', // MISSING
+	upload: 'Прикачи'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/mn.js b/web/modules/anchor_link/js/plugins/link/lang/mn.js
new file mode 100644
index 0000000000000000000000000000000000000000..a5c0324b1e62b5630db24f63477c62485db4b60c
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/mn.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'mn', {
+	acccessKey: 'Холбох түлхүүр',
+	advanced: 'Нэмэлт',
+	advisoryContentType: 'Зөвлөлдөх төрлийн агуулга',
+	advisoryTitle: 'Зөвлөлдөх гарчиг',
+	anchor: {
+		toolbar: 'Зангуу',
+		menu: 'Зангууг болосруулах',
+		title: 'Зангуугийн шинж чанар',
+		name: 'Зангуугийн нэр',
+		errorName: 'Зангуугийн нэрийг оруулна уу',
+		remove: 'Зангууг устгах'
+	},
+	anchorId: 'Элемэнтйн Id нэрээр',
+	anchorName: 'Зангуугийн нэрээр',
+	charset: 'Тэмдэгт оноох нөөцөд холбогдсон',
+	cssClasses: 'Stylesheet классууд',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Э-шуудангийн хаяг',
+	emailBody: 'Зурвасны их бие',
+	emailSubject: 'Зурвасны гарчиг',
+	id: 'Id',
+	info: 'Холбоосын тухай мэдээлэл',
+	langCode: 'Хэлний код',
+	langDir: 'Хэлний чиглэл',
+	langDirLTR: 'Зүүнээс баруун (LTR)',
+	langDirRTL: 'Баруунаас зүүн (RTL)',
+	menu: 'Холбоос засварлах',
+	name: 'Нэр',
+	noAnchors: '(Баримт бичиг зангуугүй байна)',
+	noEmail: 'Э-шуудангий хаягаа шивнэ үү',
+	noUrl: 'Холбоосны URL хаягийг шивнэ үү',
+	other: '<other>', // MISSING
+	popupDependent: 'Хамаатай (Netscape)',
+	popupFeatures: 'Popup цонхны онцлог',
+	popupFullScreen: 'Цонх дүүргэх (Internet Explorer)',
+	popupLeft: 'Зүүн байрлал',
+	popupLocationBar: 'Location хэсэг',
+	popupMenuBar: 'Цэсний самбар',
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Скрол хэсэгүүд',
+	popupStatusBar: 'Статус хэсэг',
+	popupToolbar: 'Багажны самбар',
+	popupTop: 'Дээд байрлал',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Нэг зангууг сонгоно уу',
+	styles: 'Загвар',
+	tabIndex: 'Tab индекс',
+	target: 'Байрлал',
+	targetFrame: '<Агуулах хүрээ>',
+	targetFrameName: 'Очих фремын нэр',
+	targetPopup: '<popup цонх>',
+	targetPopupName: 'Popup цонхны нэр',
+	title: 'Холбоос',
+	toAnchor: 'Энэ бичвэр дэх зангуу руу очих холбоос',
+	toEmail: 'Э-захиа',
+	toUrl: 'цахим хуудасны хаяг (URL)',
+	toolbar: 'Холбоос',
+	type: 'Линкийн төрөл',
+	unlink: 'Холбоос авч хаях',
+	upload: 'Хуулах'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ms.js b/web/modules/anchor_link/js/plugins/link/lang/ms.js
new file mode 100644
index 0000000000000000000000000000000000000000..1cebe16d83f88f1d651a649e345c97b4642a7845
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ms.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ms', {
+	acccessKey: 'Kunci Akses',
+	advanced: 'Advanced',
+	advisoryContentType: 'Jenis Kandungan Makluman',
+	advisoryTitle: 'Tajuk Makluman',
+	anchor: {
+		toolbar: 'Masukkan/Sunting Pautan',
+		menu: 'Ciri-ciri Pautan',
+		title: 'Ciri-ciri Pautan',
+		name: 'Nama Pautan',
+		errorName: 'Sila taip nama pautan',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'dengan menggunakan ID elemen',
+	anchorName: 'dengan menggunakan nama pautan',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Kelas-kelas Stylesheet',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Alamat E-Mail',
+	emailBody: 'Isi Kandungan Mesej',
+	emailSubject: 'Subjek Mesej',
+	id: 'Id',
+	info: 'Butiran Sambungan',
+	langCode: 'Arah Tulisan',
+	langDir: 'Arah Tulisan',
+	langDirLTR: 'Kiri ke Kanan (LTR)',
+	langDirRTL: 'Kanan ke Kiri (RTL)',
+	menu: 'Sunting Sambungan',
+	name: 'Nama',
+	noAnchors: '(Tiada pautan terdapat dalam dokumen ini)',
+	noEmail: 'Sila taip alamat e-mail',
+	noUrl: 'Sila taip sambungan URL',
+	other: '<lain>',
+	popupDependent: 'Bergantungan (Netscape)',
+	popupFeatures: 'Ciri Tetingkap Popup',
+	popupFullScreen: 'Skrin Penuh (IE)',
+	popupLeft: 'Posisi Kiri',
+	popupLocationBar: 'Bar Lokasi',
+	popupMenuBar: 'Bar Menu',
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Bar-bar skrol',
+	popupStatusBar: 'Bar Status',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Posisi Atas',
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Sila pilih pautan',
+	styles: 'Stail',
+	tabIndex: 'Indeks Tab ',
+	target: 'Sasaran',
+	targetFrame: '<bingkai>',
+	targetFrameName: 'Nama Bingkai Sasaran',
+	targetPopup: '<tetingkap popup>',
+	targetPopupName: 'Nama Tetingkap Popup',
+	title: 'Sambungan',
+	toAnchor: 'Pautan dalam muka surat ini',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Masukkan/Sunting Sambungan',
+	type: 'Jenis Sambungan',
+	unlink: 'Buang Sambungan',
+	upload: 'Muat Naik'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/nb.js b/web/modules/anchor_link/js/plugins/link/lang/nb.js
new file mode 100644
index 0000000000000000000000000000000000000000..c829d2aec9e20078f47fd53753a250488eda46dc
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/nb.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'nb', {
+	acccessKey: 'Aksessknapp',
+	advanced: 'Avansert',
+	advisoryContentType: 'Type',
+	advisoryTitle: 'Tittel',
+	anchor: {
+		toolbar: 'Anker',
+		menu: 'Rediger anker',
+		title: 'Egenskaper for anker',
+		name: 'Ankernavn',
+		errorName: 'Vennligst skriv inn ankernavnet',
+		remove: 'Fjern anker'
+	},
+	anchorId: 'Element etter ID',
+	anchorName: 'Anker etter navn',
+	charset: 'Lenket tegnsett',
+	cssClasses: 'Stilarkklasser',
+	download: 'Tving nedlasting',
+	displayText: 'Tekst som skal vises',
+	emailAddress: 'E-postadresse',
+	emailBody: 'Melding',
+	emailSubject: 'Meldingsemne',
+	id: 'Id',
+	info: 'Lenkeinfo',
+	langCode: 'Språkkode',
+	langDir: 'Språkretning',
+	langDirLTR: 'Venstre til høyre (LTR)',
+	langDirRTL: 'Høyre til venstre (RTL)',
+	menu: 'Rediger lenke',
+	name: 'Navn',
+	noAnchors: '(Ingen anker i dokumentet)',
+	noEmail: 'Vennligst skriv inn e-postadressen',
+	noUrl: 'Vennligst skriv inn lenkens URL',
+	other: '<annen>',
+	popupDependent: 'Avhenging (Netscape)',
+	popupFeatures: 'Egenskaper for popup-vindu',
+	popupFullScreen: 'Fullskjerm (IE)',
+	popupLeft: 'Venstre posisjon',
+	popupLocationBar: 'Adresselinje',
+	popupMenuBar: 'Menylinje',
+	popupResizable: 'Skalerbar',
+	popupScrollBars: 'Scrollbar',
+	popupStatusBar: 'Statuslinje',
+	popupToolbar: 'Verktøylinje',
+	popupTop: 'Topp-posisjon',
+	rel: 'Relasjon (rel)',
+	selectAnchor: 'Velg et anker',
+	styles: 'Stil',
+	tabIndex: 'Tabindeks',
+	target: 'Mål',
+	targetFrame: '<ramme>',
+	targetFrameName: 'Målramme',
+	targetPopup: '<popup-vindu>',
+	targetPopupName: 'Navn på popup-vindu',
+	title: 'Lenke',
+	toAnchor: 'Lenke til anker i teksten',
+	toEmail: 'E-post',
+	toUrl: 'URL',
+	toolbar: 'Lenke',
+	type: 'Lenketype',
+	unlink: 'Fjern lenke',
+	upload: 'Last opp'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/nl.js b/web/modules/anchor_link/js/plugins/link/lang/nl.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c6f3656d4076507d4fe4c03cb067fdf07abc8e8
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/nl.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'nl', {
+	acccessKey: 'Toegangstoets',
+	advanced: 'Geavanceerd',
+	advisoryContentType: 'Aanbevolen content-type',
+	advisoryTitle: 'Adviserende titel',
+	anchor: {
+		toolbar: 'Interne link',
+		menu: 'Eigenschappen interne link',
+		title: 'Eigenschappen interne link',
+		name: 'Naam interne link',
+		errorName: 'Geef de naam van de interne link op',
+		remove: 'Interne link verwijderen'
+	},
+	anchorId: 'Op kenmerk interne link',
+	anchorName: 'Op naam interne link',
+	charset: 'Karakterset van gelinkte bron',
+	cssClasses: 'Stylesheet-klassen',
+	download: 'Download forceren',
+	displayText: 'Weergavetekst',
+	emailAddress: 'E-mailadres',
+	emailBody: 'Inhoud bericht',
+	emailSubject: 'Onderwerp bericht',
+	id: 'Id',
+	info: 'Linkomschrijving',
+	langCode: 'Taalcode',
+	langDir: 'Schrijfrichting',
+	langDirLTR: 'Links naar rechts (LTR)',
+	langDirRTL: 'Rechts naar links (RTL)',
+	menu: 'Link wijzigen',
+	name: 'Naam',
+	noAnchors: '(Geen interne links in document gevonden)',
+	noEmail: 'Geef een e-mailadres',
+	noUrl: 'Geef de link van de URL',
+	other: '<ander>',
+	popupDependent: 'Afhankelijk (Netscape)',
+	popupFeatures: 'Instellingen popupvenster',
+	popupFullScreen: 'Volledig scherm (IE)',
+	popupLeft: 'Positie links',
+	popupLocationBar: 'Locatiemenu',
+	popupMenuBar: 'Menubalk',
+	popupResizable: 'Herschaalbaar',
+	popupScrollBars: 'Schuifbalken',
+	popupStatusBar: 'Statusbalk',
+	popupToolbar: 'Werkbalk',
+	popupTop: 'Positie boven',
+	rel: 'Relatie',
+	selectAnchor: 'Kies een interne link',
+	styles: 'Stijl',
+	tabIndex: 'Tabvolgorde',
+	target: 'Doelvenster',
+	targetFrame: '<frame>',
+	targetFrameName: 'Naam doelframe',
+	targetPopup: '<popupvenster>',
+	targetPopupName: 'Naam popupvenster',
+	title: 'Link',
+	toAnchor: 'Interne link in pagina',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Link invoegen/wijzigen',
+	type: 'Linktype',
+	unlink: 'Link verwijderen',
+	upload: 'Upload'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/no.js b/web/modules/anchor_link/js/plugins/link/lang/no.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7fd06301b822f2de4182b504c6c2fce4a0bb7fd
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/no.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'no', {
+	acccessKey: 'Aksessknapp',
+	advanced: 'Avansert',
+	advisoryContentType: 'Type',
+	advisoryTitle: 'Tittel',
+	anchor: {
+		toolbar: 'Sett inn/Rediger anker',
+		menu: 'Egenskaper for anker',
+		title: 'Egenskaper for anker',
+		name: 'Ankernavn',
+		errorName: 'Vennligst skriv inn ankernavnet',
+		remove: 'Fjern anker'
+	},
+	anchorId: 'Element etter ID',
+	anchorName: 'Anker etter navn',
+	charset: 'Lenket tegnsett',
+	cssClasses: 'Stilarkklasser',
+	download: 'Force Download', // MISSING
+	displayText: 'Tekst som skal vises',
+	emailAddress: 'E-postadresse',
+	emailBody: 'Melding',
+	emailSubject: 'Meldingsemne',
+	id: 'Id',
+	info: 'Lenkeinfo',
+	langCode: 'Språkkode',
+	langDir: 'Språkretning',
+	langDirLTR: 'Venstre til høyre (VTH)',
+	langDirRTL: 'Høyre til venstre (HTV)',
+	menu: 'Rediger lenke',
+	name: 'Navn',
+	noAnchors: '(Ingen anker i dokumentet)',
+	noEmail: 'Vennligst skriv inn e-postadressen',
+	noUrl: 'Vennligst skriv inn lenkens URL',
+	other: '<annen>',
+	popupDependent: 'Avhenging (Netscape)',
+	popupFeatures: 'Egenskaper for popup-vindu',
+	popupFullScreen: 'Fullskjerm (IE)',
+	popupLeft: 'Venstre posisjon',
+	popupLocationBar: 'Adresselinje',
+	popupMenuBar: 'Menylinje',
+	popupResizable: 'Skalerbar',
+	popupScrollBars: 'Scrollbar',
+	popupStatusBar: 'Statuslinje',
+	popupToolbar: 'Verktøylinje',
+	popupTop: 'Topp-posisjon',
+	rel: 'Relasjon (rel)',
+	selectAnchor: 'Velg et anker',
+	styles: 'Stil',
+	tabIndex: 'Tabindeks',
+	target: 'Mål',
+	targetFrame: '<ramme>',
+	targetFrameName: 'Målramme',
+	targetPopup: '<popup-vindu>',
+	targetPopupName: 'Navn på popup-vindu',
+	title: 'Lenke',
+	toAnchor: 'Lenke til anker i teksten',
+	toEmail: 'E-post',
+	toUrl: 'URL',
+	toolbar: 'Sett inn/Rediger lenke',
+	type: 'Lenketype',
+	unlink: 'Fjern lenke',
+	upload: 'Last opp'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/oc.js b/web/modules/anchor_link/js/plugins/link/lang/oc.js
new file mode 100644
index 0000000000000000000000000000000000000000..2995878adaede28faa7577e49e11f14f6b48edb5
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/oc.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'oc', {
+	acccessKey: 'Tòca d\'accessibilitat',
+	advanced: 'Avançat',
+	advisoryContentType: 'Tipe de contengut (indicatiu)',
+	advisoryTitle: 'Infobulla',
+	anchor: {
+		toolbar: 'Ancòra',
+		menu: 'Modificar l\'ancòra',
+		title: 'Proprietats de l\'ancòra',
+		name: 'Nom de l\'ancòra',
+		errorName: 'Entratz lo nom de l\'ancòra',
+		remove: 'Suprimir l\'ancòra'
+	},
+	anchorId: 'Per ID d\'element',
+	anchorName: 'Per nom d\'ancòra',
+	charset: 'Encodatge de la ressorsa ligada',
+	cssClasses: 'Classas d\'estil',
+	download: 'Forçar lo telecargament',
+	displayText: 'Afichar lo tèxte',
+	emailAddress: 'Adreça electronica',
+	emailBody: 'Còs del messatge',
+	emailSubject: 'Subjècte del messatge',
+	id: 'Id',
+	info: 'Informacions sul ligam',
+	langCode: 'Còdi de lenga',
+	langDir: 'Sens d\'escritura',
+	langDirLTR: 'Esquèrra a dreita (LTR)',
+	langDirRTL: 'Dreita a esquèrra (RTL)',
+	menu: 'Modificar lo ligam',
+	name: 'Nom',
+	noAnchors: '(Cap d\'ancòra pas disponibla dins aqueste document)',
+	noEmail: 'Entratz l\'adreça electronica',
+	noUrl: 'Entratz l\'URL del ligam',
+	other: '<autre>',
+	popupDependent: 'Dependenta (Netscape)',
+	popupFeatures: 'Caracteristicas de la fenèstra sorgissenta',
+	popupFullScreen: 'Ecran complet (IE)',
+	popupLeft: 'A esquèrra',
+	popupLocationBar: 'Barra d\'adreça',
+	popupMenuBar: 'Barra de menú',
+	popupResizable: 'Redimensionable',
+	popupScrollBars: 'Barras de desfilament',
+	popupStatusBar: 'Barra d\'estat',
+	popupToolbar: 'Barra d\'aisinas',
+	popupTop: 'Amont',
+	rel: 'Relacion',
+	selectAnchor: 'Seleccionar una ancòra',
+	styles: 'Estil',
+	tabIndex: 'Indici de tabulacion',
+	target: 'Cibla',
+	targetFrame: '<quadre>',
+	targetFrameName: 'Nom del quadre afectat',
+	targetPopup: '<fenèstra sorgissenta>',
+	targetPopupName: 'Nom de la fenèstra sorgissenta',
+	title: 'Ligam',
+	toAnchor: 'Ancòra',
+	toEmail: 'Corrièl',
+	toUrl: 'URL',
+	toolbar: 'Ligam',
+	type: 'Tipe de ligam',
+	unlink: 'Suprimir lo ligam',
+	upload: 'Mandar'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/pl.js b/web/modules/anchor_link/js/plugins/link/lang/pl.js
new file mode 100644
index 0000000000000000000000000000000000000000..2527b3ef3a5d2be0e9c34ec5bfa73f51eb2f4922
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/pl.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pl', {
+	acccessKey: 'Klawisz dostępu',
+	advanced: 'Zaawansowane',
+	advisoryContentType: 'Typ MIME obiektu docelowego',
+	advisoryTitle: 'Opis obiektu docelowego',
+	anchor: {
+		toolbar: 'Wstaw/edytuj kotwicę',
+		menu: 'Właściwości kotwicy',
+		title: 'Właściwości kotwicy',
+		name: 'Nazwa kotwicy',
+		errorName: 'Wpisz nazwę kotwicy',
+		remove: 'Usuń kotwicę'
+	},
+	anchorId: 'Wg identyfikatora',
+	anchorName: 'Wg nazwy',
+	charset: 'Kodowanie znaków obiektu docelowego',
+	cssClasses: 'Nazwa klasy CSS',
+	download: 'Wymuś pobieranie',
+	displayText: 'Wyświetlany tekst',
+	emailAddress: 'Adres e-mail',
+	emailBody: 'Treść',
+	emailSubject: 'Temat',
+	id: 'Id',
+	info: 'Informacje ',
+	langCode: 'Kod języka',
+	langDir: 'Kierunek tekstu',
+	langDirLTR: 'Od lewej do prawej (LTR)',
+	langDirRTL: 'Od prawej do lewej (RTL)',
+	menu: 'Edytuj odnośnik',
+	name: 'Nazwa',
+	noAnchors: '(W dokumencie nie zdefiniowano żadnych kotwic)',
+	noEmail: 'Podaj adres e-mail',
+	noUrl: 'Podaj adres URL',
+	other: '<inny>',
+	popupDependent: 'Okno zależne (Netscape)',
+	popupFeatures: 'Właściwości wyskakującego okna',
+	popupFullScreen: 'Pełny ekran (IE)',
+	popupLeft: 'Pozycja w poziomie',
+	popupLocationBar: 'Pasek adresu',
+	popupMenuBar: 'Pasek menu',
+	popupResizable: 'Skalowalny',
+	popupScrollBars: 'Paski przewijania',
+	popupStatusBar: 'Pasek statusu',
+	popupToolbar: 'Pasek narzędzi',
+	popupTop: 'Pozycja w pionie',
+	rel: 'Relacja',
+	selectAnchor: 'Wybierz kotwicę',
+	styles: 'Styl',
+	tabIndex: 'Indeks kolejności',
+	target: 'Obiekt docelowy',
+	targetFrame: '<ramka>',
+	targetFrameName: 'Nazwa ramki docelowej',
+	targetPopup: '<wyskakujące okno>',
+	targetPopupName: 'Nazwa wyskakującego okna',
+	title: 'Odnośnik',
+	toAnchor: 'Odnośnik wewnątrz strony (kotwica)',
+	toEmail: 'Adres e-mail',
+	toUrl: 'Adres URL',
+	toolbar: 'Wstaw/edytuj odnośnik',
+	type: 'Typ odnośnika',
+	unlink: 'Usuń odnośnik',
+	upload: 'Wyślij'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/pt-br.js b/web/modules/anchor_link/js/plugins/link/lang/pt-br.js
new file mode 100644
index 0000000000000000000000000000000000000000..c693d5d32c506484cb0b560b10118dc3f3758a34
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/pt-br.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pt-br', {
+	acccessKey: 'Chave de Acesso',
+	advanced: 'Avançado',
+	advisoryContentType: 'Tipo de Conteúdo',
+	advisoryTitle: 'Título',
+	anchor: {
+		toolbar: 'Inserir/Editar Âncora',
+		menu: 'Formatar Âncora',
+		title: 'Formatar Âncora',
+		name: 'Nome da Âncora',
+		errorName: 'Por favor, digite o nome da âncora',
+		remove: 'Remover Âncora'
+	},
+	anchorId: 'Id da âncora',
+	anchorName: 'Nome da âncora',
+	charset: 'Charset do Link',
+	cssClasses: 'Classe de CSS',
+	download: 'Forçar Download',
+	displayText: 'Exibir Texto',
+	emailAddress: 'Endereço E-Mail',
+	emailBody: 'Corpo da Mensagem',
+	emailSubject: 'Assunto da Mensagem',
+	id: 'Id',
+	info: 'Informações',
+	langCode: 'Direção do idioma',
+	langDir: 'Direção do idioma',
+	langDirLTR: 'Esquerda para Direita (LTR)',
+	langDirRTL: 'Direita para Esquerda (RTL)',
+	menu: 'Editar Link',
+	name: 'Nome',
+	noAnchors: '(Não há âncoras no documento)',
+	noEmail: 'Por favor, digite o endereço de e-mail',
+	noUrl: 'Por favor, digite o endereço do Link',
+	other: '<outro>',
+	popupDependent: 'Dependente (Netscape)',
+	popupFeatures: 'Propriedades da Janela Pop-up',
+	popupFullScreen: 'Modo Tela Cheia (IE)',
+	popupLeft: 'Esquerda',
+	popupLocationBar: 'Barra de Endereços',
+	popupMenuBar: 'Barra de Menus',
+	popupResizable: 'Redimensionável',
+	popupScrollBars: 'Barras de Rolagem',
+	popupStatusBar: 'Barra de Status',
+	popupToolbar: 'Barra de Ferramentas',
+	popupTop: 'Topo',
+	rel: 'Tipo de Relação',
+	selectAnchor: 'Selecione uma âncora',
+	styles: 'Estilos',
+	tabIndex: 'Índice de Tabulação',
+	target: 'Destino',
+	targetFrame: '<frame>',
+	targetFrameName: 'Nome do Frame de Destino',
+	targetPopup: '<janela popup>',
+	targetPopupName: 'Nome da Janela Pop-up',
+	title: 'Editar Link',
+	toAnchor: 'Âncora nesta página',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Inserir/Editar Link',
+	type: 'Tipo de hiperlink',
+	unlink: 'Remover Link',
+	upload: 'Enviar ao Servidor'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/pt.js b/web/modules/anchor_link/js/plugins/link/lang/pt.js
new file mode 100644
index 0000000000000000000000000000000000000000..8002099dc2277f67bea4fb088340824f0bfc97c4
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/pt.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pt', {
+	acccessKey: 'Chave de acesso',
+	advanced: 'Avançado',
+	advisoryContentType: 'Tipo de conteúdo',
+	advisoryTitle: 'Título',
+	anchor: {
+		toolbar: ' Inserir/Editar âncora',
+		menu: 'Propriedades da âncora',
+		title: 'Propriedades da âncora',
+		name: 'Nome da âncora',
+		errorName: 'Por favor, introduza o nome da âncora',
+		remove: 'Remover âncora'
+	},
+	anchorId: 'Por ID do elemento',
+	anchorName: 'Por Nome de Referência',
+	charset: 'Fonte de caracteres vinculado',
+	cssClasses: 'Classes de Estilo',
+	download: 'Force Download', // MISSING
+	displayText: 'Mostrar texto',
+	emailAddress: 'Endereço de email',
+	emailBody: 'Corpo da mensagem',
+	emailSubject: 'Título de mensagem',
+	id: 'ID',
+	info: 'Informação da hiperligação',
+	langCode: 'Código de idioma',
+	langDir: 'Orientação de idioma',
+	langDirLTR: 'Esquerda para a Direita (EPD)',
+	langDirRTL: 'Direita para a Esquerda (DPE)',
+	menu: 'Editar hiperligação',
+	name: 'Nome',
+	noAnchors: '(Não existem âncoras no documento)',
+	noEmail: 'Por favor, escreva o endereço de email',
+	noUrl: 'Por favor, introduza o endereço URL',
+	other: '<outro>',
+	popupDependent: 'Dependente (Netscape)',
+	popupFeatures: 'Características de janela flutuante',
+	popupFullScreen: 'Janela completa (IE)',
+	popupLeft: 'Posição esquerda',
+	popupLocationBar: 'Barra de localização',
+	popupMenuBar: 'Barra de menu',
+	popupResizable: 'Redimensionável',
+	popupScrollBars: 'Barras de deslocamento',
+	popupStatusBar: 'Barra de estado',
+	popupToolbar: 'Barra de ferramentas',
+	popupTop: 'Posição topo',
+	rel: 'Relação',
+	selectAnchor: 'Selecionar âncora',
+	styles: 'Estilo',
+	tabIndex: 'Índice de tabulação',
+	target: 'Alvo',
+	targetFrame: '<frame>',
+	targetFrameName: 'Nome da janela de destino',
+	targetPopup: '<janela de popup>',
+	targetPopupName: 'Nome da janela flutuante',
+	title: 'Hiperligação',
+	toAnchor: 'Ligar a âncora no texto',
+	toEmail: 'Email',
+	toUrl: 'URL',
+	toolbar: 'Hiperligação',
+	type: 'Tipo de hiperligação',
+	unlink: 'Eliminar hiperligação',
+	upload: 'Carregar'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ro.js b/web/modules/anchor_link/js/plugins/link/lang/ro.js
new file mode 100644
index 0000000000000000000000000000000000000000..396a44e71600f1d11fec7d78c511d51df4b7bb25
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ro.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ro', {
+	acccessKey: 'Tasta de acces',
+	advanced: 'Avansat',
+	advisoryContentType: 'Tipul consultativ al titlului',
+	advisoryTitle: 'Titlul consultativ',
+	anchor: {
+		toolbar: 'Inserează/Editează ancoră',
+		menu: 'Proprietăţi ancoră',
+		title: 'Proprietăţi ancoră',
+		name: 'Numele ancorei',
+		errorName: 'Vă rugăm scrieţi numele ancorei',
+		remove: 'Elimină ancora'
+	},
+	anchorId: 'după Id-ul elementului',
+	anchorName: 'după numele ancorei',
+	charset: 'Setul de caractere al resursei legate',
+	cssClasses: 'Clasele cu stilul paginii (CSS)',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Adresă de e-mail',
+	emailBody: 'Opțiuni Meniu Contextual',
+	emailSubject: 'Subiectul mesajului',
+	id: 'Id',
+	info: 'Informaţii despre link (Legătură web)',
+	langCode: 'Direcţia cuvintelor',
+	langDir: 'Direcţia cuvintelor',
+	langDirLTR: 'stânga-dreapta (LTR)',
+	langDirRTL: 'dreapta-stânga (RTL)',
+	menu: 'Editează Link',
+	name: 'Nume',
+	noAnchors: '(Nicio ancoră disponibilă în document)',
+	noEmail: 'Vă rugăm să scrieţi adresa de e-mail',
+	noUrl: 'Vă rugăm să scrieţi URL-ul',
+	other: '<alt>',
+	popupDependent: 'Dependent (Netscape)',
+	popupFeatures: 'Proprietăţile ferestrei popup',
+	popupFullScreen: 'Tot ecranul (Full Screen)(IE)',
+	popupLeft: 'Poziţia la stânga',
+	popupLocationBar: 'Bara de locaţie',
+	popupMenuBar: 'Bara de meniu',
+	popupResizable: 'Redimensionabil',
+	popupScrollBars: 'Bare de derulare',
+	popupStatusBar: 'Bara de status',
+	popupToolbar: 'Bara de opţiuni',
+	popupTop: 'Poziţia la dreapta',
+	rel: 'Relație',
+	selectAnchor: 'Selectaţi o ancoră',
+	styles: 'Stil',
+	tabIndex: 'Indexul tabului',
+	target: 'Ţintă (Target)',
+	targetFrame: '<frame>',
+	targetFrameName: 'Numele frameului ţintă',
+	targetPopup: '<fereastra popup>',
+	targetPopupName: 'Numele ferestrei popup',
+	title: 'Link (Legătură web)',
+	toAnchor: 'Ancoră în această pagină',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Inserează/Editează link (legătură web)',
+	type: 'Tipul link-ului (al legăturii web)',
+	unlink: 'Înlătură link (legătură web)',
+	upload: 'Încarcă'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ru.js b/web/modules/anchor_link/js/plugins/link/lang/ru.js
new file mode 100644
index 0000000000000000000000000000000000000000..b862b91573bc896226d5566455ba348acb313d5f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ru.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ru', {
+	acccessKey: 'Клавиша доступа',
+	advanced: 'Дополнительно',
+	advisoryContentType: 'Тип содержимого',
+	advisoryTitle: 'Заголовок',
+	anchor: {
+		toolbar: 'Вставить / редактировать якорь',
+		menu: 'Изменить якорь',
+		title: 'Свойства якоря',
+		name: 'Имя якоря',
+		errorName: 'Пожалуйста, введите имя якоря',
+		remove: 'Удалить якорь'
+	},
+	anchorId: 'По идентификатору',
+	anchorName: 'По имени',
+	charset: 'Кодировка ресурса',
+	cssClasses: 'Классы CSS',
+	download: 'Скачать как файл',
+	displayText: 'Отображаемый текст',
+	emailAddress: 'Email адрес',
+	emailBody: 'Текст сообщения',
+	emailSubject: 'Тема сообщения',
+	id: 'Идентификатор',
+	info: 'Информация о ссылке',
+	langCode: 'Код языка',
+	langDir: 'Направление текста',
+	langDirLTR: 'Слева направо (LTR)',
+	langDirRTL: 'Справа налево (RTL)',
+	menu: 'Редактировать ссылку',
+	name: 'Имя',
+	noAnchors: '(В документе нет ни одного якоря)',
+	noEmail: 'Пожалуйста, введите email адрес',
+	noUrl: 'Пожалуйста, введите ссылку',
+	other: '<другой>',
+	popupDependent: 'Зависимое (Netscape)',
+	popupFeatures: 'Параметры всплывающего окна',
+	popupFullScreen: 'Полноэкранное (IE)',
+	popupLeft: 'Отступ слева',
+	popupLocationBar: 'Панель адреса',
+	popupMenuBar: 'Панель меню',
+	popupResizable: 'Изменяемый размер',
+	popupScrollBars: 'Полосы прокрутки',
+	popupStatusBar: 'Строка состояния',
+	popupToolbar: 'Панель инструментов',
+	popupTop: 'Отступ сверху',
+	rel: 'Отношение',
+	selectAnchor: 'Выберите якорь',
+	styles: 'Стиль',
+	tabIndex: 'Последовательность перехода',
+	target: 'Цель',
+	targetFrame: '<фрейм>',
+	targetFrameName: 'Имя целевого фрейма',
+	targetPopup: '<всплывающее окно>',
+	targetPopupName: 'Имя всплывающего окна',
+	title: 'Ссылка',
+	toAnchor: 'Ссылка на якорь в тексте',
+	toEmail: 'Email',
+	toUrl: 'Ссылка',
+	toolbar: 'Вставить/Редактировать ссылку',
+	type: 'Тип ссылки',
+	unlink: 'Убрать ссылку',
+	upload: 'Загрузка'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/si.js b/web/modules/anchor_link/js/plugins/link/lang/si.js
new file mode 100644
index 0000000000000000000000000000000000000000..948574bdfe48d6700628f11eb763c0960edb7bea
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/si.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'si', {
+	acccessKey: 'ප්‍රවේශ  යතුර',
+	advanced: 'දීය',
+	advisoryContentType: 'උපදේශාත්මක අන්තර්ගත ආකාරය',
+	advisoryTitle: 'උපදේශාත්මක නාමය',
+	anchor: {
+		toolbar: 'ආධාරය',
+		menu: 'ආධාරය වෙනස් කිරීම',
+		title: 'ආධාරක ',
+		name: 'ආධාරකයේ නාමය',
+		errorName: 'කරුණාකර ආධාරකයේ නාමය ඇතුල් කරන්න',
+		remove: 'ආධාරකය ඉවත් කිරීම'
+	},
+	anchorId: 'By Element Id', // MISSING
+	anchorName: 'By Anchor Name', // MISSING
+	charset: 'Linked Resource Charset', // MISSING
+	cssClasses: 'විලාසපත්‍ර පන්තිය',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail Address', // MISSING
+	emailBody: 'Message Body', // MISSING
+	emailSubject: 'Message Subject', // MISSING
+	id: 'අංකය',
+	info: 'Link Info', // MISSING
+	langCode: 'භාෂා කේතය',
+	langDir: 'භාෂා දිශාව',
+	langDirLTR: 'වමේසිට දකුණුට',
+	langDirRTL: 'දකුණේ සිට වමට',
+	menu: 'Edit Link', // MISSING
+	name: 'නම',
+	noAnchors: '(No anchors available in the document)', // MISSING
+	noEmail: 'Please type the e-mail address', // MISSING
+	noUrl: 'Please type the link URL', // MISSING
+	other: '<other>', // MISSING
+	popupDependent: 'Dependent (Netscape)', // MISSING
+	popupFeatures: 'Popup Window Features', // MISSING
+	popupFullScreen: 'Full Screen (IE)', // MISSING
+	popupLeft: 'Left Position', // MISSING
+	popupLocationBar: 'Location Bar', // MISSING
+	popupMenuBar: 'Menu Bar', // MISSING
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Scroll Bars', // MISSING
+	popupStatusBar: 'Status Bar', // MISSING
+	popupToolbar: 'Toolbar', // MISSING
+	popupTop: 'Top Position', // MISSING
+	rel: 'Relationship', // MISSING
+	selectAnchor: 'Select an Anchor', // MISSING
+	styles: 'විලාසය',
+	tabIndex: 'Tab Index', // MISSING
+	target: 'අරමුණ',
+	targetFrame: '<frame>', // MISSING
+	targetFrameName: 'Target Frame Name', // MISSING
+	targetPopup: '<popup window>', // MISSING
+	targetPopupName: 'Popup Window Name', // MISSING
+	title: 'සබැඳිය',
+	toAnchor: 'Link to anchor in the text', // MISSING
+	toEmail: 'E-mail', // MISSING
+	toUrl: 'URL',
+	toolbar: 'සබැඳිය',
+	type: 'Link Type', // MISSING
+	unlink: 'Unlink', // MISSING
+	upload: 'උඩුගතකිරීම'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sk.js b/web/modules/anchor_link/js/plugins/link/lang/sk.js
new file mode 100644
index 0000000000000000000000000000000000000000..c2498f493186d614e7c1301ed0f4922aab5da664
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sk.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sk', {
+	acccessKey: 'Prístupový kľúč',
+	advanced: 'Rozšírené',
+	advisoryContentType: 'Pomocný typ obsahu',
+	advisoryTitle: 'Pomocný titulok',
+	anchor: {
+		toolbar: 'Kotva',
+		menu: 'Upraviť kotvu',
+		title: 'Vlastnosti kotvy',
+		name: 'Názov kotvy',
+		errorName: 'Zadajte prosím názov kotvy',
+		remove: 'Odstrániť kotvu'
+	},
+	anchorId: 'Podľa Id objektu',
+	anchorName: 'Podľa mena kotvy',
+	charset: 'Priradená znaková sada',
+	cssClasses: 'Triedy štýlu',
+	download: 'Vynútené sťahovanie.',
+	displayText: 'Zobraziť text',
+	emailAddress: 'E-Mailová adresa',
+	emailBody: 'Telo správy',
+	emailSubject: 'Predmet správy',
+	id: 'Id',
+	info: 'Informácie o odkaze',
+	langCode: 'Orientácia jazyka',
+	langDir: 'Orientácia jazyka',
+	langDirLTR: 'Zľava doprava (LTR)',
+	langDirRTL: 'Sprava doľava (RTL)',
+	menu: 'Upraviť odkaz',
+	name: 'Názov',
+	noAnchors: '(V dokumente nie sú dostupné žiadne kotvy)',
+	noEmail: 'Zadajte prosím e-mailovú adresu',
+	noUrl: 'Zadajte prosím URL odkazu',
+	other: '<iný>',
+	popupDependent: 'Závislosť (Netscape)',
+	popupFeatures: 'Vlastnosti vyskakovacieho okna',
+	popupFullScreen: 'Celá obrazovka (IE)',
+	popupLeft: 'Ľavý okraj',
+	popupLocationBar: 'Panel umiestnenia (location bar)',
+	popupMenuBar: 'Panel ponuky (menu bar)',
+	popupResizable: 'Meniteľná veľkosť (resizable)',
+	popupScrollBars: 'Posuvníky (scroll bars)',
+	popupStatusBar: 'Stavový riadok (status bar)',
+	popupToolbar: 'Panel nástrojov (toolbar)',
+	popupTop: 'Horný okraj',
+	rel: 'Vzťah (rel)',
+	selectAnchor: 'Vybrať kotvu',
+	styles: 'Štýl',
+	tabIndex: 'Poradie prvku (tab index)',
+	target: 'Cieľ',
+	targetFrame: '<rámec>',
+	targetFrameName: 'Názov rámu cieľa',
+	targetPopup: '<vyskakovacie okno>',
+	targetPopupName: 'Názov vyskakovacieho okna',
+	title: 'Odkaz',
+	toAnchor: 'Odkaz na kotvu v texte',
+	toEmail: 'E-mail',
+	toUrl: 'URL',
+	toolbar: 'Odkaz',
+	type: 'Typ odkazu',
+	unlink: 'Odstrániť odkaz',
+	upload: 'Nahrať'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sl.js b/web/modules/anchor_link/js/plugins/link/lang/sl.js
new file mode 100644
index 0000000000000000000000000000000000000000..fdacc40d4003e351a327cc8f705258c8c29aa407
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sl.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sl', {
+	acccessKey: 'Tipka za dostop',
+	advanced: 'Napredno',
+	advisoryContentType: 'Predlagana vrsta vsebine',
+	advisoryTitle: 'Predlagani naslov',
+	anchor: {
+		toolbar: 'Sidro',
+		menu: 'Uredi sidro',
+		title: 'Lastnosti sidra',
+		name: 'Ime sidra',
+		errorName: 'Prosimo, vnesite ime sidra',
+		remove: 'Odstrani sidro'
+	},
+	anchorId: 'Po ID-ju elementa',
+	anchorName: 'Po imenu sidra',
+	charset: 'Nabor znakov povezanega vira',
+	cssClasses: 'Razredi slogovne predloge',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-poštni naslov',
+	emailBody: 'Telo sporočila',
+	emailSubject: 'Zadeva sporočila',
+	id: 'Id',
+	info: 'Podatki o povezavi',
+	langCode: 'Koda jezika',
+	langDir: 'Smer jezika',
+	langDirLTR: 'Od leve proti desni (LTR)',
+	langDirRTL: 'Od desne proti levi (RTL)',
+	menu: 'Uredi povezavo',
+	name: 'Ime',
+	noAnchors: '(V tem dokumentu ni sider)',
+	noEmail: 'Vnesite e-poštni naslov',
+	noUrl: 'Vnesite URL povezave',
+	other: '<drugo>',
+	popupDependent: 'Podokno (Netscape)',
+	popupFeatures: 'Značilnosti pojavnega okna',
+	popupFullScreen: 'Celozaslonsko (IE)',
+	popupLeft: 'Lega levo',
+	popupLocationBar: 'Naslovna vrstica',
+	popupMenuBar: 'Menijska vrstica',
+	popupResizable: 'Spremenljive velikosti',
+	popupScrollBars: 'Drsniki',
+	popupStatusBar: 'Vrstica stanja',
+	popupToolbar: 'Orodna vrstica',
+	popupTop: 'Lega na vrhu',
+	rel: 'Odnos',
+	selectAnchor: 'Izberite sidro',
+	styles: 'Slog',
+	tabIndex: 'Številka tabulatorja',
+	target: 'Cilj',
+	targetFrame: '<okvir>',
+	targetFrameName: 'Ime ciljnega okvirja',
+	targetPopup: '<pojavno okno>',
+	targetPopupName: 'Ime pojavnega okna',
+	title: 'Povezava',
+	toAnchor: 'Sidro na tej strani',
+	toEmail: 'E-pošta',
+	toUrl: 'URL',
+	toolbar: 'Vstavi/uredi povezavo',
+	type: 'Vrsta povezave',
+	unlink: 'Odstrani povezavo',
+	upload: 'Naloži'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sq.js b/web/modules/anchor_link/js/plugins/link/lang/sq.js
new file mode 100644
index 0000000000000000000000000000000000000000..00bd453794a9eb7c45041d169c8badbd664a1882
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sq.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sq', {
+	acccessKey: 'Sipas ID-së së Elementit',
+	advanced: 'Të përparuara',
+	advisoryContentType: 'Lloji i Përmbajtjes Këshillimore',
+	advisoryTitle: 'Titull',
+	anchor: {
+		toolbar: 'Spirancë',
+		menu: 'Redakto Spirancën',
+		title: 'Anchor Properties', // MISSING
+		name: 'Emri i Spirancës',
+		errorName: 'Ju lutemi shkruani emrin e spirancës',
+		remove: 'Largo Spirancën'
+	},
+	anchorId: 'Sipas ID-së së Elementit',
+	anchorName: 'Sipas Emrit të Spirancës',
+	charset: 'Seti i Karaktereve të Burimeve të Nëdlidhura',
+	cssClasses: 'Klasa stili CSS',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Posta Elektronike',
+	emailBody: 'Trupi i Porosisë',
+	emailSubject: 'Titulli i Porosisë',
+	id: 'Id',
+	info: 'Informacione të Nyjes',
+	langCode: 'Kod gjuhe',
+	langDir: 'Drejtim teksti',
+	langDirLTR: 'Nga e majta në të djathë (LTR)',
+	langDirRTL: 'Nga e djathta në të majtë (RTL)',
+	menu: 'Redakto Nyjen',
+	name: 'Emër',
+	noAnchors: '(Nuk ka asnjë spirancë në dokument)',
+	noEmail: 'Ju lutemi shkruani postën elektronike',
+	noUrl: 'Ju lutemi shkruani URL-në e nyjes',
+	other: '<tjetër>',
+	popupDependent: 'E Varur (Netscape)',
+	popupFeatures: 'Karakteristikat e Dritares së Dialogut',
+	popupFullScreen: 'Ekran i Plotë  (IE)',
+	popupLeft: 'Pozita Majtas',
+	popupLocationBar: 'Shiriti i Lokacionit',
+	popupMenuBar: 'Shiriti i Menysë',
+	popupResizable: 'I ndryshueshëm',
+	popupScrollBars: 'Shiritat zvarritës',
+	popupStatusBar: 'Shiriti i Statutit',
+	popupToolbar: 'Shiriti i Mejteve',
+	popupTop: 'Top Pozita',
+	rel: 'Marrëdhëniet',
+	selectAnchor: 'Përzgjidh një Spirancë',
+	styles: 'Stil',
+	tabIndex: 'Indeksi i fletave',
+	target: 'Objektivi',
+	targetFrame: '<frame>',
+	targetFrameName: 'Emri i Kornizës së Synuar',
+	targetPopup: '<popup window>',
+	targetPopupName: 'Emri i Dritares së Dialogut',
+	title: 'Nyja',
+	toAnchor: 'Lidhu me spirancën në tekst',
+	toEmail: 'Posta Elektronike',
+	toUrl: 'URL',
+	toolbar: 'Nyja',
+	type: 'Lloji i Nyjes',
+	unlink: 'Largo Nyjen',
+	upload: 'Ngarko'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sr-latn.js b/web/modules/anchor_link/js/plugins/link/lang/sr-latn.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1f3ea6fbda18843b42767791f47954dd196baac
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sr-latn.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sr-latn', {
+	acccessKey: 'Pristupni taster',
+	advanced: 'Napredni tagovi',
+	advisoryContentType: 'Advisory vrsta sadržaja',
+	advisoryTitle: 'Advisory naslov',
+	anchor: {
+		toolbar: 'Unesi/izmeni sidro',
+		menu: 'Osobine sidra',
+		title: 'Osobine sidra',
+		name: 'Naziv sidra',
+		errorName: 'Unesite naziv sidra',
+		remove: 'Ukloni sidro'
+	},
+	anchorId: 'Po Id-u elementa',
+	anchorName: 'Po nazivu sidra',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet klase',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'E-Mail adresa',
+	emailBody: 'Sadržaj poruke',
+	emailSubject: 'Naslov',
+	id: 'Id',
+	info: 'Link Info',
+	langCode: 'Smer jezika',
+	langDir: 'Smer jezika',
+	langDirLTR: 'S leva na desno (LTR)',
+	langDirRTL: 'S desna na levo (RTL)',
+	menu: 'Izmeni link',
+	name: 'Naziv',
+	noAnchors: '(Nema dostupnih sidra)',
+	noEmail: 'Otkucajte adresu elektronske pote',
+	noUrl: 'Unesite URL linka',
+	other: '<остало>',
+	popupDependent: 'Zavisno (Netscape)',
+	popupFeatures: 'Mogućnosti popup prozora',
+	popupFullScreen: 'Prikaz preko celog ekrana (IE)',
+	popupLeft: 'Od leve ivice ekrana (px)',
+	popupLocationBar: 'Lokacija',
+	popupMenuBar: 'Kontekstni meni',
+	popupResizable: 'Promenljive veličine',
+	popupScrollBars: 'Scroll bar',
+	popupStatusBar: 'Statusna linija',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Od vrha ekrana (px)',
+	rel: 'Odnos',
+	selectAnchor: 'Odaberi sidro',
+	styles: 'Stil',
+	tabIndex: 'Tab indeks',
+	target: 'Meta',
+	targetFrame: '<okvir>',
+	targetFrameName: 'Naziv odredišnog frejma',
+	targetPopup: '<popup prozor>',
+	targetPopupName: 'Naziv popup prozora',
+	title: 'Link',
+	toAnchor: 'Sidro na ovoj stranici',
+	toEmail: 'E-Mail',
+	toUrl: 'URL',
+	toolbar: 'Unesi/izmeni link',
+	type: 'Vrsta linka',
+	unlink: 'Ukloni link',
+	upload: 'Pošalji'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sr.js b/web/modules/anchor_link/js/plugins/link/lang/sr.js
new file mode 100644
index 0000000000000000000000000000000000000000..73ad0b13fb59d5bed83d9b728b1d67ec61eaec0f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sr.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sr', {
+	acccessKey: 'Приступни тастер',
+	advanced: 'Напредни тагови',
+	advisoryContentType: 'Advisory врста садржаја',
+	advisoryTitle: 'Advisory наслов',
+	anchor: {
+		toolbar: 'Унеси/измени сидро',
+		menu: 'Особине сидра',
+		title: 'Особине сидра',
+		name: 'Име сидра',
+		errorName: 'Молимо Вас да унесете име сидра',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'Пo Ид-jу елемента',
+	anchorName: 'По називу сидра',
+	charset: 'Linked Resource Charset',
+	cssClasses: 'Stylesheet класе',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Адреса електронске поште',
+	emailBody: 'Садржај поруке',
+	emailSubject: 'Наслов',
+	id: 'Ид',
+	info: 'Линк инфо',
+	langCode: 'Смер језика',
+	langDir: 'Смер језика',
+	langDirLTR: 'С лева на десно (LTR)',
+	langDirRTL: 'С десна на лево (RTL)',
+	menu: 'Промени линк',
+	name: 'Назив',
+	noAnchors: '(Нема доступних сидра)',
+	noEmail: 'Откуцајте адресу електронске поште',
+	noUrl: 'Унесите УРЛ линка',
+	other: '<друго>',
+	popupDependent: 'Зависно (Netscape)',
+	popupFeatures: 'Могућности искачућег прозора',
+	popupFullScreen: 'Приказ преко целог екрана (ИE)',
+	popupLeft: 'Од леве ивице екрана (пиксела)',
+	popupLocationBar: 'Локација',
+	popupMenuBar: 'Контекстни мени',
+	popupResizable: 'Величина се мења',
+	popupScrollBars: 'Скрол бар',
+	popupStatusBar: 'Статусна линија',
+	popupToolbar: 'Toolbar',
+	popupTop: 'Од врха екрана (пиксела)',
+	rel: 'Однос',
+	selectAnchor: 'Одабери сидро',
+	styles: 'Стил',
+	tabIndex: 'Таб индекс',
+	target: 'Meтa',
+	targetFrame: '<оквир>',
+	targetFrameName: 'Назив одредишног фрејма',
+	targetPopup: '<искачући прозор>',
+	targetPopupName: 'Назив искачућег прозора',
+	title: 'Линк',
+	toAnchor: 'Сидро на овој страници',
+	toEmail: 'Eлектронска пошта',
+	toUrl: 'УРЛ',
+	toolbar: 'Унеси/измени линк',
+	type: 'Врста линка',
+	unlink: 'Уклони линк',
+	upload: 'Пошаљи'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/sv.js b/web/modules/anchor_link/js/plugins/link/lang/sv.js
new file mode 100644
index 0000000000000000000000000000000000000000..67b7dcfd5095bbef5525aaf5b64bb99ee7b3b56f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/sv.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sv', {
+	acccessKey: 'Behörighetsnyckel',
+	advanced: 'Avancerad',
+	advisoryContentType: 'Innehållstyp',
+	advisoryTitle: 'Titel',
+	anchor: {
+		toolbar: 'Infoga/Redigera ankarlänk',
+		menu: 'Egenskaper för ankarlänk',
+		title: 'Egenskaper för ankarlänk',
+		name: 'Ankarnamn',
+		errorName: 'Var god ange ett ankarnamn',
+		remove: 'Radera ankare'
+	},
+	anchorId: 'Efter element-id',
+	anchorName: 'Efter ankarnamn',
+	charset: 'Teckenuppställning',
+	cssClasses: 'Stilmall',
+	download: 'Tvinga nerladdning',
+	displayText: 'Visningstext',
+	emailAddress: 'E-postadress',
+	emailBody: 'Innehåll',
+	emailSubject: 'Ämne',
+	id: 'Id',
+	info: 'Länkinformation',
+	langCode: 'Språkkod',
+	langDir: 'Språkriktning',
+	langDirLTR: 'Vänster till höger (VTH)',
+	langDirRTL: 'Höger till vänster (HTV)',
+	menu: 'Redigera länk',
+	name: 'Namn',
+	noAnchors: '(Inga ankare kunde hittas)',
+	noEmail: 'Var god ange e-postadress',
+	noUrl: 'Var god ange länkens URL',
+	other: '<annan>',
+	popupDependent: 'Beroende (endast Netscape)',
+	popupFeatures: 'Popup-fönstrets egenskaper',
+	popupFullScreen: 'Helskärm (endast IE)',
+	popupLeft: 'Position från vänster',
+	popupLocationBar: 'Adressfält',
+	popupMenuBar: 'Menyfält',
+	popupResizable: 'Skalbart',
+	popupScrollBars: 'Scrolllista',
+	popupStatusBar: 'Statusfält',
+	popupToolbar: 'Verktygsfält',
+	popupTop: 'Position från sidans topp',
+	rel: 'Förhållande',
+	selectAnchor: 'Välj ett ankare',
+	styles: 'Stilmall',
+	tabIndex: 'Tabindex',
+	target: 'Mål',
+	targetFrame: '<ram>',
+	targetFrameName: 'Målets ramnamn',
+	targetPopup: '<popup-fönster>',
+	targetPopupName: 'Popup-fönstrets namn',
+	title: 'Länk',
+	toAnchor: 'Länk till ankare i texten',
+	toEmail: 'E-post',
+	toUrl: 'URL',
+	toolbar: 'Infoga/Redigera länk',
+	type: 'Länktyp',
+	unlink: 'Radera länk',
+	upload: 'Ladda upp'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/th.js b/web/modules/anchor_link/js/plugins/link/lang/th.js
new file mode 100644
index 0000000000000000000000000000000000000000..b27ff84917ac1446f049608eda65c0f73c59a3dd
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/th.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'th', {
+	acccessKey: 'แอคเซส คีย์',
+	advanced: 'ขั้นสูง',
+	advisoryContentType: 'ชนิดของคำเกริ่นนำ',
+	advisoryTitle: 'คำเกริ่นนำ',
+	anchor: {
+		toolbar: 'แทรก/แก้ไข Anchor',
+		menu: 'รายละเอียด Anchor',
+		title: 'รายละเอียด Anchor',
+		name: 'ชื่อ Anchor',
+		errorName: 'กรุณาระบุชื่อของ Anchor',
+		remove: 'Remove Anchor'
+	},
+	anchorId: 'ไอดี',
+	anchorName: 'ชื่อ',
+	charset: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',
+	cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'อีเมล์ (E-Mail)',
+	emailBody: 'ข้อความ',
+	emailSubject: 'หัวเรื่อง',
+	id: 'ไอดี',
+	info: 'รายละเอียด',
+	langCode: 'การเขียน-อ่านภาษา',
+	langDir: 'การเขียน-อ่านภาษา',
+	langDirLTR: 'จากซ้ายไปขวา (LTR)',
+	langDirRTL: 'จากขวามาซ้าย (RTL)',
+	menu: 'แก้ไข ลิงค์',
+	name: 'ชื่อ',
+	noAnchors: '(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)',
+	noEmail: 'กรุณาระบุอีเมล์ (E-mail)',
+	noUrl: 'กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)',
+	other: '<อื่น ๆ>',
+	popupDependent: 'แสดงเต็มหน้าจอ (Netscape)',
+	popupFeatures: 'คุณสมบัติของหน้าจอเล็ก (Pop-up)',
+	popupFullScreen: 'แสดงเต็มหน้าจอ (IE5.5++ เท่านั้น)',
+	popupLeft: 'พิกัดซ้าย (Left Position)',
+	popupLocationBar: 'แสดงที่อยู่ของไฟล์',
+	popupMenuBar: 'แสดงแถบเมนู',
+	popupResizable: 'สามารถปรับขนาดได้',
+	popupScrollBars: 'แสดงแถบเลื่อน',
+	popupStatusBar: 'แสดงแถบสถานะ',
+	popupToolbar: 'แสดงแถบเครื่องมือ',
+	popupTop: 'พิกัดบน (Top Position)',
+	rel: 'ความสัมพันธ์',
+	selectAnchor: 'ระบุข้อมูลของจุดเชื่อมโยง (Anchor)',
+	styles: 'ลักษณะการแสดงผล',
+	tabIndex: 'ลำดับของ แท็บ',
+	target: 'การเปิดหน้าลิงค์',
+	targetFrame: '<เปิดในเฟรม>',
+	targetFrameName: 'ชื่อทาร์เก็ตเฟรม',
+	targetPopup: '<เปิดหน้าจอเล็ก (Pop-up)>',
+	targetPopupName: 'ระบุชื่อหน้าจอเล็ก (Pop-up)',
+	title: 'ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ',
+	toAnchor: 'จุดเชื่อมโยง (Anchor)',
+	toEmail: 'ส่งอีเมล์ (E-Mail)',
+	toUrl: 'ที่อยู่อ้างอิง URL',
+	toolbar: 'แทรก/แก้ไข ลิงค์',
+	type: 'ประเภทของลิงค์',
+	unlink: 'ลบ ลิงค์',
+	upload: 'อัพโหลดไฟล์'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/tr.js b/web/modules/anchor_link/js/plugins/link/lang/tr.js
new file mode 100644
index 0000000000000000000000000000000000000000..378accaabf07246a19af4d38a7ef729b8261871f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/tr.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'tr', {
+	acccessKey: 'Erişim Tuşu',
+	advanced: 'Gelişmiş',
+	advisoryContentType: 'Danışma İçerik Türü',
+	advisoryTitle: 'Danışma Başlığı',
+	anchor: {
+		toolbar: 'Bağlantı Ekle/Düzenle',
+		menu: 'Bağlantı Özellikleri',
+		title: 'Bağlantı Özellikleri',
+		name: 'Bağlantı Adı',
+		errorName: 'Lütfen bağlantı için ad giriniz',
+		remove: 'Bağlantıyı Kaldır'
+	},
+	anchorId: 'Eleman Kimlik Numarası ile',
+	anchorName: 'Bağlantı Adı ile',
+	charset: 'Bağlı Kaynak Karakter Gurubu',
+	cssClasses: 'Biçem Sayfası Sınıfları',
+	download: 'İndirmeye Zorla',
+	displayText: 'Gösterim Metni',
+	emailAddress: 'E-Posta Adresi',
+	emailBody: 'İleti Gövdesi',
+	emailSubject: 'İleti Konusu',
+	id: 'Id',
+	info: 'Link Bilgisi',
+	langCode: 'Dil Yönü',
+	langDir: 'Dil Yönü',
+	langDirLTR: 'Soldan Sağa (LTR)',
+	langDirRTL: 'Sağdan Sola (RTL)',
+	menu: 'Link Düzenle',
+	name: 'Ad',
+	noAnchors: '(Bu belgede hiç çapa yok)',
+	noEmail: 'Lütfen E-posta adresini yazın',
+	noUrl: 'Lütfen Link URL\'sini yazın',
+	other: '<diğer>',
+	popupDependent: 'Bağımlı (Netscape)',
+	popupFeatures: 'Yeni Açılan Pencere Özellikleri',
+	popupFullScreen: 'Tam Ekran (IE)',
+	popupLeft: 'Sola Göre Konum',
+	popupLocationBar: 'Yer Çubuğu',
+	popupMenuBar: 'Menü Çubuğu',
+	popupResizable: 'Resizable',
+	popupScrollBars: 'Kaydırma Çubukları',
+	popupStatusBar: 'Durum Çubuğu',
+	popupToolbar: 'Araç Çubuğu',
+	popupTop: 'Yukarıya Göre Konum',
+	rel: 'İlişki',
+	selectAnchor: 'Bağlantı Seç',
+	styles: 'Biçem',
+	tabIndex: 'Sekme İndeksi',
+	target: 'Hedef',
+	targetFrame: '<çerçeve>',
+	targetFrameName: 'Hedef Çerçeve Adı',
+	targetPopup: '<yeni açılan pencere>',
+	targetPopupName: 'Yeni Açılan Pencere Adı',
+	title: 'Link',
+	toAnchor: 'Bu sayfada çapa',
+	toEmail: 'E-Posta',
+	toUrl: 'URL',
+	toolbar: 'Link Ekle/Düzenle',
+	type: 'Link Türü',
+	unlink: 'Köprü Kaldır',
+	upload: 'Karşıya Yükle'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/tt.js b/web/modules/anchor_link/js/plugins/link/lang/tt.js
new file mode 100644
index 0000000000000000000000000000000000000000..046248359b33874a11269a24a29efa28fa0fe4b6
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/tt.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'tt', {
+	acccessKey: 'Access Key', // MISSING
+	advanced: 'Киңәйтелгән көйләүләр',
+	advisoryContentType: 'Advisory Content Type', // MISSING
+	advisoryTitle: 'Киңәш исем',
+	anchor: {
+		toolbar: 'Якорь',
+		menu: 'Якорьне үзгәртү',
+		title: 'Якорь үзлекләре',
+		name: 'Якорь исеме',
+		errorName: 'Якорьнең исемен языгыз',
+		remove: 'Якорьне бетерү'
+	},
+	anchorId: 'Элемент идентификаторы буенча',
+	anchorName: 'Якорь исеме буенча',
+	charset: 'Linked Resource Charset', // MISSING
+	cssClasses: 'Стильләр класслары',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Электрон почта адресы',
+	emailBody: 'Хат эчтәлеге',
+	emailSubject: 'Хат темасы',
+	id: 'Идентификатор',
+	info: 'Сылталама тасвирламасы',
+	langCode: 'Тел коды',
+	langDir: 'Язылыш юнəлеше',
+	langDirLTR: 'Сулдан уңга язылыш (LTR)',
+	langDirRTL: 'Уңнан сулга язылыш (RTL)',
+	menu: 'Сылталамаyны үзгәртү',
+	name: 'Исем',
+	noAnchors: '(Әлеге документта якорьләр табылмады)',
+	noEmail: 'Электрон почта адресын языгыз',
+	noUrl: 'Сылталаманы языгыз',
+	other: '<бүтән>',
+	popupDependent: 'Бәйле (Netscape)',
+	popupFeatures: 'Popup Window Features', // MISSING
+	popupFullScreen: 'Тулы экран (IE)',
+	popupLeft: 'Left Position', // MISSING
+	popupLocationBar: 'Location Bar', // MISSING
+	popupMenuBar: 'Menu Bar', // MISSING
+	popupResizable: 'Resizable', // MISSING
+	popupScrollBars: 'Scroll Bars', // MISSING
+	popupStatusBar: 'Status Bar', // MISSING
+	popupToolbar: 'Toolbar', // MISSING
+	popupTop: 'Top Position', // MISSING
+	rel: 'Бәйләнеш',
+	selectAnchor: 'Якорьне сайлау',
+	styles: 'Стиль',
+	tabIndex: 'Tab Index', // MISSING
+	target: 'Максат',
+	targetFrame: '<frame>',
+	targetFrameName: 'Target Frame Name', // MISSING
+	targetPopup: '<popup window>',
+	targetPopupName: 'Попап тәрәзәсе исеме',
+	title: 'Сылталама',
+	toAnchor: 'Якорьне текст белән бәйләү',
+	toEmail: 'Электрон почта',
+	toUrl: 'Сылталама',
+	toolbar: 'Сылталама',
+	type: 'Сылталама төре',
+	unlink: 'Сылталаманы бетерү',
+	upload: 'Йөкләү'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/ug.js b/web/modules/anchor_link/js/plugins/link/lang/ug.js
new file mode 100644
index 0000000000000000000000000000000000000000..e7487876099be1271c370bda5192b66fd548c9ac
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/ug.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ug', {
+	acccessKey: 'زىيارەت كۇنۇپكا',
+	advanced: 'ئالىي',
+	advisoryContentType: 'مەزمۇن تىپى',
+	advisoryTitle: 'ماۋزۇ',
+	anchor: {
+		toolbar: 'لەڭگەرلىك نۇقتا ئۇلانمىسى قىستۇر/تەھرىرلە',
+		menu: 'لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى',
+		title: 'لەڭگەرلىك نۇقتا ئۇلانما خاسلىقى',
+		name: 'لەڭگەرلىك نۇقتا ئاتى',
+		errorName: 'لەڭگەرلىك نۇقتا ئاتىنى كىرگۈزۈڭ',
+		remove: 'لەڭگەرلىك نۇقتا ئۆچۈر'
+	},
+	anchorId: 'لەڭگەرلىك نۇقتا ID سى بويىچە',
+	anchorName: 'لەڭگەرلىك نۇقتا ئاتى بويىچە',
+	charset: 'ھەرپ كودلىنىشى',
+	cssClasses: 'ئۇسلۇب خىلى ئاتى',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'ئادرېس',
+	emailBody: 'مەزمۇن',
+	emailSubject: 'ماۋزۇ',
+	id: 'ID',
+	info: 'ئۇلانما ئۇچۇرى',
+	langCode: 'تىل كودى',
+	langDir: 'تىل يۆنىلىشى',
+	langDirLTR: 'سولدىن ئوڭغا (LTR)',
+	langDirRTL: 'ئوڭدىن سولغا (RTL)',
+	menu: 'ئۇلانما تەھرىر',
+	name: 'ئات',
+	noAnchors: '(بۇ پۈتۈكتە ئىشلەتكىلى بولىدىغان لەڭگەرلىك نۇقتا يوق)',
+	noEmail: 'ئېلخەت ئادرېسىنى كىرگۈزۈڭ',
+	noUrl: 'ئۇلانما ئادرېسىنى كىرگۈزۈڭ',
+	other: '‹باشقا›',
+	popupDependent: 'تەۋە (NS)',
+	popupFeatures: 'قاڭقىش كۆزنەك خاسلىقى',
+	popupFullScreen: 'پۈتۈن ئېكران (IE)',
+	popupLeft: 'سول',
+	popupLocationBar: 'ئادرېس بالداق',
+	popupMenuBar: 'تىزىملىك بالداق',
+	popupResizable: 'چوڭلۇقى ئۆزگەرتىشچان',
+	popupScrollBars: 'دومىلىما سۈرگۈچ',
+	popupStatusBar: 'ھالەت بالداق',
+	popupToolbar: 'قورال بالداق',
+	popupTop: 'ئوڭ',
+	rel: 'باغلىنىش',
+	selectAnchor: 'بىر لەڭگەرلىك نۇقتا تاللاڭ',
+	styles: 'قۇر ئىچىدىكى ئۇسلۇبى',
+	tabIndex: 'Tab تەرتىپى',
+	target: 'نىشان',
+	targetFrame: '‹كاندۇك›',
+	targetFrameName: 'نىشان كاندۇك ئاتى',
+	targetPopup: '‹قاڭقىش كۆزنەك›',
+	targetPopupName: 'قاڭقىش كۆزنەك ئاتى',
+	title: 'ئۇلانما',
+	toAnchor: 'بەت ئىچىدىكى لەڭگەرلىك نۇقتا ئۇلانمىسى',
+	toEmail: 'ئېلخەت',
+	toUrl: 'ئادرېس',
+	toolbar: 'ئۇلانما قىستۇر/تەھرىرلە',
+	type: 'ئۇلانما تىپى',
+	unlink: 'ئۇلانما بىكار قىل',
+	upload: 'يۈكلە'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/uk.js b/web/modules/anchor_link/js/plugins/link/lang/uk.js
new file mode 100644
index 0000000000000000000000000000000000000000..189957d5f76e971ece63cd2e2e3be7d7a8b1a863
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/uk.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'uk', {
+	acccessKey: 'Гаряча клавіша',
+	advanced: 'Додаткове',
+	advisoryContentType: 'Тип вмісту',
+	advisoryTitle: 'Заголовок',
+	anchor: {
+		toolbar: 'Вставити/Редагувати якір',
+		menu: 'Властивості якоря',
+		title: 'Властивості якоря',
+		name: 'Ім\'я якоря',
+		errorName: 'Будь ласка, вкажіть ім\'я якоря',
+		remove: 'Прибрати якір'
+	},
+	anchorId: 'За ідентифікатором елементу',
+	anchorName: 'За ім\'ям елементу',
+	charset: 'Кодування',
+	cssClasses: 'Клас CSS',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Адреса ел. пошти',
+	emailBody: 'Тіло повідомлення',
+	emailSubject: 'Тема листа',
+	id: 'Ідентифікатор',
+	info: 'Інформація посилання',
+	langCode: 'Код мови',
+	langDir: 'Напрямок мови',
+	langDirLTR: 'Зліва направо (LTR)',
+	langDirRTL: 'Справа наліво (RTL)',
+	menu: 'Вставити посилання',
+	name: 'Ім\'я',
+	noAnchors: '(В цьому документі немає якорів)',
+	noEmail: 'Будь ласка, вкажіть адрес ел. пошти',
+	noUrl: 'Будь ласка, вкажіть URL посилання',
+	other: '<інший>',
+	popupDependent: 'Залежний (Netscape)',
+	popupFeatures: 'Властивості випливаючого вікна',
+	popupFullScreen: 'Повний екран (IE)',
+	popupLeft: 'Позиція зліва',
+	popupLocationBar: 'Панель локації',
+	popupMenuBar: 'Панель меню',
+	popupResizable: 'Масштабоване',
+	popupScrollBars: 'Стрічки прокрутки',
+	popupStatusBar: 'Рядок статусу',
+	popupToolbar: 'Панель інструментів',
+	popupTop: 'Позиція зверху',
+	rel: 'Зв\'язок',
+	selectAnchor: 'Оберіть якір',
+	styles: 'Стиль CSS',
+	tabIndex: 'Послідовність переходу',
+	target: 'Ціль',
+	targetFrame: '<фрейм>',
+	targetFrameName: 'Ім\'я цільового фрейму',
+	targetPopup: '<випливаюче вікно>',
+	targetPopupName: 'Ім\'я випливаючого вікна',
+	title: 'Посилання',
+	toAnchor: 'Якір на цю сторінку',
+	toEmail: 'Ел. пошта',
+	toUrl: 'URL',
+	toolbar: 'Вставити/Редагувати посилання',
+	type: 'Тип посилання',
+	unlink: 'Видалити посилання',
+	upload: 'Надіслати'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/vi.js b/web/modules/anchor_link/js/plugins/link/lang/vi.js
new file mode 100644
index 0000000000000000000000000000000000000000..a079e3a170d864b89b7c1713cb067b9a9d14e90b
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/vi.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'vi', {
+	acccessKey: 'Phím hỗ trợ truy cập',
+	advanced: 'Mở rộng',
+	advisoryContentType: 'Nội dung hướng dẫn',
+	advisoryTitle: 'Nhan đề hướng dẫn',
+	anchor: {
+		toolbar: 'Chèn/Sửa điểm neo',
+		menu: 'Thuộc tính điểm neo',
+		title: 'Thuộc tính điểm neo',
+		name: 'Tên của điểm neo',
+		errorName: 'Hãy nhập vào tên của điểm neo',
+		remove: 'Xóa neo'
+	},
+	anchorId: 'Theo định danh thành phần',
+	anchorName: 'Theo tên điểm neo',
+	charset: 'Bảng mã của tài nguyên được liên kết đến',
+	cssClasses: 'Lớp Stylesheet',
+	download: 'Force Download', // MISSING
+	displayText: 'Display Text', // MISSING
+	emailAddress: 'Thư điện tử',
+	emailBody: 'Nội dung thông điệp',
+	emailSubject: 'Tiêu đề thông điệp',
+	id: 'Định danh',
+	info: 'Thông tin liên kết',
+	langCode: 'Mã ngôn ngữ',
+	langDir: 'Hướng ngôn ngữ',
+	langDirLTR: 'Trái sang phải (LTR)',
+	langDirRTL: 'Phải sang trái (RTL)',
+	menu: 'Sửa liên kết',
+	name: 'Tên',
+	noAnchors: '(Không có điểm neo nào trong tài liệu)',
+	noEmail: 'Hãy đưa vào địa chỉ thư điện tử',
+	noUrl: 'Hãy đưa vào đường dẫn liên kết (URL)',
+	other: '<khác>',
+	popupDependent: 'Phụ thuộc (Netscape)',
+	popupFeatures: 'Đặc điểm của cửa sổ Popup',
+	popupFullScreen: 'Toàn màn hình (IE)',
+	popupLeft: 'Vị trí bên trái',
+	popupLocationBar: 'Thanh vị trí',
+	popupMenuBar: 'Thanh Menu',
+	popupResizable: 'Có thể thay đổi kích cỡ',
+	popupScrollBars: 'Thanh cuộn',
+	popupStatusBar: 'Thanh trạng thái',
+	popupToolbar: 'Thanh công cụ',
+	popupTop: 'Vị trí phía trên',
+	rel: 'Quan hệ',
+	selectAnchor: 'Chọn một điểm neo',
+	styles: 'Kiểu (style)',
+	tabIndex: 'Chỉ số của Tab',
+	target: 'Đích',
+	targetFrame: '<khung>',
+	targetFrameName: 'Tên khung đích',
+	targetPopup: '<cửa sổ popup>',
+	targetPopupName: 'Tên cửa sổ Popup',
+	title: 'Liên kết',
+	toAnchor: 'Neo trong trang này',
+	toEmail: 'Thư điện tử',
+	toUrl: 'URL',
+	toolbar: 'Chèn/Sửa liên kết',
+	type: 'Kiểu liên kết',
+	unlink: 'Xoá liên kết',
+	upload: 'Tải lên'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/zh-cn.js b/web/modules/anchor_link/js/plugins/link/lang/zh-cn.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b706d6988c8f87ac44c00b9ad1a2ceddd72c613
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/zh-cn.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'zh-cn', {
+	acccessKey: '访问键',
+	advanced: '高级',
+	advisoryContentType: '内容类型',
+	advisoryTitle: '标题',
+	anchor: {
+		toolbar: '插入/编辑锚点链接',
+		menu: '锚点链接属性',
+		title: '锚点链接属性',
+		name: '锚点名称',
+		errorName: '请输入锚点名称',
+		remove: '删除锚点'
+	},
+	anchorId: '按锚点 ID',
+	anchorName: '按锚点名称',
+	charset: '字符编码',
+	cssClasses: '样式类名称',
+	download: '强制下载',
+	displayText: '显示文本',
+	emailAddress: '地址',
+	emailBody: '内容',
+	emailSubject: '主题',
+	id: 'ID',
+	info: '超链接信息',
+	langCode: '语言代码',
+	langDir: '语言方向',
+	langDirLTR: '从左到右 (LTR)',
+	langDirRTL: '从右到左 (RTL)',
+	menu: '编辑超链接',
+	name: '名称',
+	noAnchors: '(此文档没有可用的锚点)',
+	noEmail: '请输入电子邮件地址',
+	noUrl: '请输入超链接地址',
+	other: '<其他>',
+	popupDependent: '依附 (NS)',
+	popupFeatures: '弹出窗口属性',
+	popupFullScreen: '全屏 (IE)',
+	popupLeft: '左',
+	popupLocationBar: '地址栏',
+	popupMenuBar: '菜单栏',
+	popupResizable: '可缩放',
+	popupScrollBars: '滚动条',
+	popupStatusBar: '状态栏',
+	popupToolbar: '工具栏',
+	popupTop: '右',
+	rel: '关联',
+	selectAnchor: '选择一个锚点',
+	styles: '行内样式',
+	tabIndex: 'Tab 键次序',
+	target: '目标',
+	targetFrame: '<框架>',
+	targetFrameName: '目标框架名称',
+	targetPopup: '<弹出窗口>',
+	targetPopupName: '弹出窗口名称',
+	title: '超链接',
+	toAnchor: '页内锚点链接',
+	toEmail: '电子邮件',
+	toUrl: '地址',
+	toolbar: '插入/编辑超链接',
+	type: '超链接类型',
+	unlink: '取消超链接',
+	upload: '上传'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/lang/zh.js b/web/modules/anchor_link/js/plugins/link/lang/zh.js
new file mode 100644
index 0000000000000000000000000000000000000000..3b8c407c0a7b5d2af6e3051b28177a3bd8980b53
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/lang/zh.js
@@ -0,0 +1,67 @@
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'zh', {
+	acccessKey: '便捷鍵',
+	advanced: '進階',
+	advisoryContentType: '建議內容類型',
+	advisoryTitle: '標題',
+	anchor: {
+		toolbar: '錨點',
+		menu: '編輯錨點',
+		title: '錨點內容',
+		name: '錨點名稱',
+		errorName: '請輸入錨點名稱',
+		remove: '移除錨點'
+	},
+	anchorId: '依元件編號',
+	anchorName: '依錨點名稱',
+	charset: '連結資源的字元集',
+	cssClasses: '樣式表類別',
+	download: '強制下載',
+	displayText: '顯示文字',
+	emailAddress: '電子郵件地址',
+	emailBody: '郵件本文',
+	emailSubject: '郵件主旨',
+	id: 'ID',
+	info: '連結資訊',
+	langCode: '語言碼',
+	langDir: '語言方向',
+	langDirLTR: '由左至右 (LTR)',
+	langDirRTL: '由右至左 (RTL)',
+	menu: '編輯連結',
+	name: '名稱',
+	noAnchors: '(本文件中無可用之錨點)',
+	noEmail: '請輸入電子郵件',
+	noUrl: '請輸入連結 URL',
+	other: '<其他>',
+	popupDependent: '獨立 (Netscape)',
+	popupFeatures: '快顯視窗功能',
+	popupFullScreen: '全螢幕 (IE)',
+	popupLeft: '左側位置',
+	popupLocationBar: '位置列',
+	popupMenuBar: '功能表列',
+	popupResizable: '可調大小',
+	popupScrollBars: '捲軸',
+	popupStatusBar: '狀態列',
+	popupToolbar: '工具列',
+	popupTop: '頂端位置',
+	rel: '關係',
+	selectAnchor: '選取一個錨點',
+	styles: '樣式',
+	tabIndex: '定位順序',
+	target: '目標',
+	targetFrame: '<框架>',
+	targetFrameName: '目標框架名稱',
+	targetPopup: '<快顯視窗>',
+	targetPopupName: '快顯視窗名稱',
+	title: '連結',
+	toAnchor: '文字中的錨點連結',
+	toEmail: '電子郵件',
+	toUrl: '網址',
+	toolbar: '連結',
+	type: '連結類型',
+	unlink: '取消連結',
+	upload: '上傳'
+} );
diff --git a/web/modules/anchor_link/js/plugins/link/plugin.js b/web/modules/anchor_link/js/plugins/link/plugin.js
new file mode 100644
index 0000000000000000000000000000000000000000..fce564c41d18b968eb75ebfb42030d259b5bf73f
--- /dev/null
+++ b/web/modules/anchor_link/js/plugins/link/plugin.js
@@ -0,0 +1,835 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+'use strict';
+
+( function() {
+	CKEDITOR.plugins.add( 'link', {
+		requires: 'dialog,fakeobjects',
+		// jscs:disable maximumLineLength
+		lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%
+		// jscs:enable maximumLineLength
+		icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE%
+		hidpi: true, // %REMOVE_LINE_CORE%
+		onLoad: function() {
+			// Add the CSS styles for anchor placeholders.
+			var iconPath = CKEDITOR.getUrl( this.path + 'images' + ( CKEDITOR.env.hidpi ? '/hidpi' : '' ) + '/anchor.png' ),
+				baseStyle = 'background:url(' + iconPath + ') no-repeat %1 center;border:1px dotted #00f;background-size:16px;';
+
+			var template = '.%2 a.cke_anchor,' +
+				'.%2 a.cke_anchor_empty' +
+				',.cke_editable.%2 a[name]' +
+				',.cke_editable.%2 a[data-cke-saved-name]' +
+				'{' +
+					baseStyle +
+					'padding-%1:18px;' +
+					// Show the arrow cursor for the anchor image (FF at least).
+					'cursor:auto;' +
+				'}' +
+				'.%2 img.cke_anchor' +
+				'{' +
+					baseStyle +
+					'width:16px;' +
+					'min-height:15px;' +
+					// The default line-height on IE.
+					'height:1.15em;' +
+					// Opera works better with "middle" (even if not perfect)
+					'vertical-align:text-bottom;' +
+				'}';
+
+			// Styles with contents direction awareness.
+			function cssWithDir( dir ) {
+				return template.replace( /%1/g, dir == 'rtl' ? 'right' : 'left' ).replace( /%2/g, 'cke_contents_' + dir );
+			}
+
+			CKEDITOR.addCss( cssWithDir( 'ltr' ) + cssWithDir( 'rtl' ) );
+		},
+
+		init: function( editor ) {
+			var allowed = 'a[!href]',
+				required = 'a[href]';
+
+			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) )
+				allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' );
+			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) )
+				allowed = allowed.replace( ']', ',target,onclick]' );
+
+			// Add the link and unlink buttons.
+			editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link', {
+				allowedContent: allowed,
+				requiredContent: required
+			} ) );
+			editor.addCommand( 'anchor', new CKEDITOR.dialogCommand( 'anchor', {
+				allowedContent: 'a[!name,id]',
+				requiredContent: 'a[name]'
+			} ) );
+			editor.addCommand( 'unlink', new CKEDITOR.unlinkCommand() );
+			editor.addCommand( 'removeAnchor', new CKEDITOR.removeAnchorCommand() );
+
+			editor.setKeystroke( CKEDITOR.CTRL + 76 /*L*/, 'link' );
+
+			if ( editor.ui.addButton ) {
+				editor.ui.addButton( 'Link', {
+					label: editor.lang.link.toolbar,
+					command: 'link',
+					toolbar: 'links,10'
+				} );
+				editor.ui.addButton( 'Unlink', {
+					label: editor.lang.link.unlink,
+					command: 'unlink',
+					toolbar: 'links,20'
+				} );
+				editor.ui.addButton( 'Anchor', {
+					label: editor.lang.link.anchor.toolbar,
+					command: 'anchor',
+					toolbar: 'links,30'
+				} );
+			}
+
+			CKEDITOR.dialog.add( 'link', this.path + 'dialogs/link.js' );
+			CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' );
+
+			// If the "menu" plugin is loaded, register the menu items.
+			if ( editor.addMenuItems ) {
+				editor.addMenuItems( {
+					anchor: {
+						label: editor.lang.link.anchor.menu,
+						command: 'anchor',
+						group: 'anchor',
+						order: 1
+					},
+
+					removeAnchor: {
+						label: editor.lang.link.anchor.remove,
+						command: 'removeAnchor',
+						group: 'anchor',
+						order: 5
+					},
+
+				} );
+			}
+
+			// If the "contextmenu" plugin is loaded, register the listeners.
+			if ( editor.contextMenu ) {
+				editor.contextMenu.addListener( function( element ) {
+					if ( !element || element.isReadOnly() )
+						return null;
+
+					var anchor = CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element );
+
+					if ( !anchor && !( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) )
+						return null;
+
+					var menu = {};
+
+					if ( anchor && anchor.hasAttribute( 'name' ) )
+						menu.anchor = menu.removeAnchor = CKEDITOR.TRISTATE_OFF;
+
+					return menu;
+				} );
+			}
+
+			this.compiledProtectionFunction = getCompiledProtectionFunction( editor );
+		},
+
+		afterInit: function( editor ) {
+			// Empty anchors upcasting to fake objects.
+			editor.dataProcessor.dataFilter.addRules( {
+				elements: {
+					a: function( element ) {
+						if ( !element.attributes.name )
+							return null;
+
+						if ( !element.children.length )
+							return editor.createFakeParserElement( element, 'cke_anchor', 'anchor' );
+
+						return null;
+					}
+				}
+			} );
+
+			var pathFilters = editor._.elementsPath && editor._.elementsPath.filters;
+			if ( pathFilters ) {
+				pathFilters.push( function( element, name ) {
+					if ( name == 'a' ) {
+						if ( CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ) || ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) )
+							return 'anchor';
+					}
+				} );
+			}
+		}
+	} );
+
+	// Loads the parameters in a selected link to the link dialog fields.
+	var javascriptProtocolRegex = /^javascript:/,
+		emailRegex = /^mailto:([^?]+)(?:\?(.+))?$/,
+		emailSubjectRegex = /subject=([^;?:@&=$,\/]*)/i,
+		emailBodyRegex = /body=([^;?:@&=$,\/]*)/i,
+		anchorRegex = /^#(.*)$/,
+		urlRegex = /^((?:http|https|ftp|news):\/\/)?(.*)$/,
+		selectableTargets = /^(_(?:self|top|parent|blank))$/,
+		encodedEmailLinkRegex = /^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,
+		functionCallProtectedEmailLinkRegex = /^javascript:([^(]+)\(([^)]+)\)$/,
+		popupRegex = /\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,
+		popupFeaturesRegex = /(?:^|,)([^=]+)=(\d+|yes|no)/gi;
+
+	var advAttrNames = {
+		id: 'advId',
+		dir: 'advLangDir',
+		accessKey: 'advAccessKey',
+		// 'data-cke-saved-name': 'advName',
+		name: 'advName',
+		lang: 'advLangCode',
+		tabindex: 'advTabIndex',
+		title: 'advTitle',
+		type: 'advContentType',
+		'class': 'advCSSClasses',
+		charset: 'advCharset',
+		style: 'advStyles',
+		rel: 'advRel'
+	};
+
+	function unescapeSingleQuote( str ) {
+		return str.replace( /\\'/g, '\'' );
+	}
+
+	function escapeSingleQuote( str ) {
+		return str.replace( /'/g, '\\$&' );
+	}
+
+	function protectEmailAddressAsEncodedString( address ) {
+		var charCode,
+			length = address.length,
+			encodedChars = [];
+
+		for ( var i = 0; i < length; i++ ) {
+			charCode = address.charCodeAt( i );
+			encodedChars.push( charCode );
+		}
+
+		return 'String.fromCharCode(' + encodedChars.join( ',' ) + ')';
+	}
+
+	function protectEmailLinkAsFunction( editor, email ) {
+		var plugin = editor.plugins.link,
+			name = plugin.compiledProtectionFunction.name,
+			params = plugin.compiledProtectionFunction.params,
+			paramName, paramValue, retval;
+
+		retval = [ name, '(' ];
+		for ( var i = 0; i < params.length; i++ ) {
+			paramName = params[ i ].toLowerCase();
+			paramValue = email[ paramName ];
+
+			i > 0 && retval.push( ',' );
+			retval.push( '\'', paramValue ? escapeSingleQuote( encodeURIComponent( email[ paramName ] ) ) : '', '\'' );
+		}
+		retval.push( ')' );
+		return retval.join( '' );
+	}
+
+	function getCompiledProtectionFunction( editor ) {
+		var emailProtection = editor.config.emailProtection || '',
+			compiledProtectionFunction;
+
+		// Compile the protection function pattern.
+		if ( emailProtection && emailProtection != 'encode' ) {
+			compiledProtectionFunction = {};
+
+			emailProtection.replace( /^([^(]+)\(([^)]+)\)$/, function( match, funcName, params ) {
+				compiledProtectionFunction.name = funcName;
+				compiledProtectionFunction.params = [];
+				params.replace( /[^,\s]+/g, function( param ) {
+					compiledProtectionFunction.params.push( param );
+				} );
+			} );
+		}
+
+		return compiledProtectionFunction;
+	}
+
+	/**
+	 * Set of Link plugin helpers.
+	 *
+	 * @class
+	 * @singleton
+	 */
+	CKEDITOR.plugins.link = {
+		/**
+		 * Get the surrounding link element of the current selection.
+		 *
+		 *		CKEDITOR.plugins.link.getSelectedLink( editor );
+		 *
+		 *		// The following selections will all return the link element.
+		 *
+		 *		<a href="#">li^nk</a>
+		 *		<a href="#">[link]</a>
+		 *		text[<a href="#">link]</a>
+		 *		<a href="#">li[nk</a>]
+		 *		[<b><a href="#">li]nk</a></b>]
+		 *		[<a href="#"><b>li]nk</b></a>
+		 *
+		 * @since 3.2.1
+		 * @param {CKEDITOR.editor} editor
+		 * @param {Boolean} [returnMultiple=false] Indicates whether the function should return only the first selected link or all of them.
+		 * @returns {CKEDITOR.dom.element/CKEDITOR.dom.element[]/null} A single link element or an array of link
+		 * elements relevant to the current selection.
+		 */
+		getSelectedLink: function( editor, returnMultiple ) {
+			var selection = editor.getSelection(),
+				selectedElement = selection.getSelectedElement(),
+				ranges = selection.getRanges(),
+				links = [],
+				link,
+				range,
+				i;
+
+			if ( !returnMultiple && selectedElement && selectedElement.is( 'a' ) ) {
+				return selectedElement;
+			}
+
+			for ( i = 0; i < ranges.length; i++ ) {
+				range = selection.getRanges()[ i ];
+
+				// Skip bogus to cover cases of multiple selection inside tables (#tp2245).
+				range.shrink( CKEDITOR.SHRINK_TEXT, false, { skipBogus: true } );
+				link = editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );
+
+				if ( link && returnMultiple ) {
+					links.push( link );
+				} else if ( link ) {
+					return link;
+				}
+			}
+
+			return returnMultiple ? links : null;
+		},
+
+		/**
+		 * Collects anchors available in the editor (i.e. used by the Link plugin).
+		 * Note that the scope of search is different for inline (the "global" document) and
+		 * classic (`iframe`-based) editors (the "inner" document).
+		 *
+		 * @since 4.3.3
+		 * @param {CKEDITOR.editor} editor
+		 * @returns {CKEDITOR.dom.element[]} An array of anchor elements.
+		 */
+		getEditorAnchors: function( editor ) {
+			var editable = editor.editable(),
+
+				// The scope of search for anchors is the entire document for inline editors
+				// and editor's editable for classic editor/divarea (http://dev.ckeditor.com/ticket/11359).
+				scope = ( editable.isInline() && !editor.plugins.divarea ) ? editor.document : editable,
+
+				links = scope.getElementsByTag( 'a' ),
+				imgs = scope.getElementsByTag( 'img' ),
+				anchors = [],
+				i = 0,
+				item;
+
+			// Retrieve all anchors within the scope.
+			while ( ( item = links.getItem( i++ ) ) ) {
+				if ( item.data( 'cke-saved-name' ) || item.hasAttribute( 'name' ) ) {
+					anchors.push( {
+						name: item.data( 'cke-saved-name' ) || item.getAttribute( 'name' ),
+						id: item.getAttribute( 'id' )
+					} );
+				}
+			}
+			// Retrieve all "fake anchors" within the scope.
+			i = 0;
+
+			while ( ( item = imgs.getItem( i++ ) ) ) {
+				if ( ( item = this.tryRestoreFakeAnchor( editor, item ) ) ) {
+					anchors.push( {
+						name: item.getAttribute( 'name' ),
+						id: item.getAttribute( 'id' )
+					} );
+				}
+			}
+
+			return anchors;
+		},
+
+		/**
+		 * Opera and WebKit do not make it possible to select empty anchors. Fake
+		 * elements must be used for them.
+		 *
+		 * @readonly
+		 * @deprecated 4.3.3 It is set to `true` in every browser.
+		 * @property {Boolean}
+		 */
+		fakeAnchor: true,
+
+		/**
+		 * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of http://dev.ckeditor.com/ticket/7783.
+		 *
+		 * @readonly
+		 * @deprecated 4.3.3 It is set to `false` in every browser.
+		 * @property {Boolean} synAnchorSelector
+		 */
+
+		/**
+		 * For browsers that have editing issues with an empty anchor.
+		 *
+		 * @readonly
+		 * @deprecated 4.3.3 It is set to `false` in every browser.
+		 * @property {Boolean} emptyAnchorFix
+		 */
+
+		/**
+		 * Returns an element representing a real anchor restored from a fake anchor.
+		 *
+		 * @param {CKEDITOR.editor} editor
+		 * @param {CKEDITOR.dom.element} element
+		 * @returns {CKEDITOR.dom.element} Restored anchor element or nothing if the
+		 * passed element was not a fake anchor.
+		 */
+		tryRestoreFakeAnchor: function( editor, element ) {
+			if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'anchor' ) {
+				var link = editor.restoreRealElement( element );
+				if ( link.data( 'cke-saved-name' ) )
+					return link;
+			}
+		},
+
+		/**
+		 * Parses attributes of the link element and returns an object representing
+		 * the current state (data) of the link. This data format is a plain object accepted
+		 * e.g. by the Link dialog window and {@link #getLinkAttributes}.
+		 *
+		 * **Note:** Data model format produced by the parser must be compatible with the Link
+		 * plugin dialog because it is passed directly to {@link CKEDITOR.dialog#setupContent}.
+		 *
+		 * @since 4.4
+		 * @param {CKEDITOR.editor} editor
+		 * @param {CKEDITOR.dom.element} element
+		 * @returns {Object} An object of link data.
+		 */
+		parseLinkAttributes: function( editor, element ) {
+			var href = ( element && ( element.data( 'cke-saved-href' ) || element.getAttribute( 'href' ) ) ) || '',
+				compiledProtectionFunction = editor.plugins.link.compiledProtectionFunction,
+				emailProtection = editor.config.emailProtection,
+				javascriptMatch, emailMatch, anchorMatch, urlMatch,
+				retval = {};
+
+			if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) ) {
+				if ( emailProtection == 'encode' ) {
+					href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) {
+						// Without it 'undefined' is appended to e-mails without subject and body (http://dev.ckeditor.com/ticket/9192).
+						rest = rest || '';
+
+						return 'mailto:' +
+							String.fromCharCode.apply( String, protectedAddress.split( ',' ) ) +
+							unescapeSingleQuote( rest );
+					} );
+				}
+				// Protected email link as function call.
+				else if ( emailProtection ) {
+					href.replace( functionCallProtectedEmailLinkRegex, function( match, funcName, funcArgs ) {
+						if ( funcName == compiledProtectionFunction.name ) {
+							retval.type = 'email';
+							var email = retval.email = {};
+
+							var paramRegex = /[^,\s]+/g,
+								paramQuoteRegex = /(^')|('$)/g,
+								paramsMatch = funcArgs.match( paramRegex ),
+								paramsMatchLength = paramsMatch.length,
+								paramName, paramVal;
+
+							for ( var i = 0; i < paramsMatchLength; i++ ) {
+								paramVal = decodeURIComponent( unescapeSingleQuote( paramsMatch[ i ].replace( paramQuoteRegex, '' ) ) );
+								paramName = compiledProtectionFunction.params[ i ].toLowerCase();
+								email[ paramName ] = paramVal;
+							}
+							email.address = [ email.name, email.domain ].join( '@' );
+						}
+					} );
+				}
+			}
+
+			if ( !retval.type ) {
+				if ( ( anchorMatch = href.match( anchorRegex ) ) ) {
+					retval.type = 'anchor';
+					retval.anchor = {};
+					retval.anchor.name = retval.anchor.id = anchorMatch[ 1 ];
+				}
+				// Protected email link as encoded string.
+				else if ( ( emailMatch = href.match( emailRegex ) ) ) {
+					var subjectMatch = href.match( emailSubjectRegex ),
+						bodyMatch = href.match( emailBodyRegex );
+
+					retval.type = 'email';
+					var email = ( retval.email = {} );
+					email.address = emailMatch[ 1 ];
+					subjectMatch && ( email.subject = decodeURIComponent( subjectMatch[ 1 ] ) );
+					bodyMatch && ( email.body = decodeURIComponent( bodyMatch[ 1 ] ) );
+				}
+				// urlRegex matches empty strings, so need to check for href as well.
+				else if ( href && ( urlMatch = href.match( urlRegex ) ) ) {
+					retval.type = 'url';
+					retval.url = {};
+					retval.url.protocol = urlMatch[ 1 ];
+					retval.url.url = urlMatch[ 2 ];
+				}
+			}
+
+			// Load target and popup settings.
+			if ( element ) {
+				var target = element.getAttribute( 'target' );
+
+				// IE BUG: target attribute is an empty string instead of null in IE if it's not set.
+				if ( !target ) {
+					var onclick = element.data( 'cke-pa-onclick' ) || element.getAttribute( 'onclick' ),
+						onclickMatch = onclick && onclick.match( popupRegex );
+
+					if ( onclickMatch ) {
+						retval.target = {
+							type: 'popup',
+							name: onclickMatch[ 1 ]
+						};
+
+						var featureMatch;
+						while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) {
+							// Some values should remain numbers (http://dev.ckeditor.com/ticket/7300)
+							if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height: 1, width: 1, top: 1, left: 1 } ) )
+								retval.target[ featureMatch[ 1 ] ] = true;
+							else if ( isFinite( featureMatch[ 2 ] ) )
+								retval.target[ featureMatch[ 1 ] ] = featureMatch[ 2 ];
+						}
+					}
+				} else {
+					retval.target = {
+						type: target.match( selectableTargets ) ? target : 'frame',
+						name: target
+					};
+				}
+
+				var download = element.getAttribute( 'download' );
+				if ( download !== null ) {
+					retval.download = true;
+				}
+
+				var advanced = {};
+
+				for ( var a in advAttrNames ) {
+					var val = element.getAttribute( a );
+
+					if ( val )
+						advanced[ advAttrNames[ a ] ] = val;
+				}
+
+				var advName = element.data( 'cke-saved-name' ) || advanced.advName;
+
+				if ( advName )
+					advanced.advName = advName;
+
+				if ( !CKEDITOR.tools.isEmpty( advanced ) )
+					retval.advanced = advanced;
+			}
+
+			return retval;
+		},
+
+		/**
+		 * Converts link data produced by {@link #parseLinkAttributes} into an object which consists
+		 * of attributes to be set (with their values) and an array of attributes to be removed.
+		 * This method can be used to compose or to update any link element with the given data.
+		 *
+		 * @since 4.4
+		 * @param {CKEDITOR.editor} editor
+		 * @param {Object} data Data in {@link #parseLinkAttributes} format.
+		 * @returns {Object} An object consisting of two keys, i.e.:
+		 *
+		 *		{
+		 *			// Attributes to be set.
+		 *			set: {
+		 *				href: 'http://foo.bar',
+		 *				target: 'bang'
+		 *			},
+		 *			// Attributes to be removed.
+		 *			removed: [
+		 *				'id', 'style'
+		 *			]
+		 *		}
+		 *
+		 */
+		getLinkAttributes: function( editor, data ) {
+			var emailProtection = editor.config.emailProtection || '',
+				set = {};
+
+			// Compose the URL.
+			switch ( data.type ) {
+				case 'url':
+					var protocol = ( data.url && data.url.protocol !== undefined ) ? data.url.protocol : 'http://',
+						url = ( data.url && CKEDITOR.tools.trim( data.url.url ) ) || '';
+
+					set[ 'data-cke-saved-href' ] = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url;
+
+					break;
+				case 'anchor':
+					var name = ( data.anchor && data.anchor.name ),
+						id = ( data.anchor && data.anchor.id );
+
+					set[ 'data-cke-saved-href' ] = '#' + ( name || id || '' );
+
+					break;
+				case 'email':
+					var email = data.email,
+						address = email.address,
+						linkHref;
+
+					switch ( emailProtection ) {
+						case '':
+						case 'encode':
+							var subject = encodeURIComponent( email.subject || '' ),
+								body = encodeURIComponent( email.body || '' ),
+								argList = [];
+
+							// Build the e-mail parameters first.
+							subject && argList.push( 'subject=' + subject );
+							body && argList.push( 'body=' + body );
+							argList = argList.length ? '?' + argList.join( '&' ) : '';
+
+							if ( emailProtection == 'encode' ) {
+								linkHref = [
+									'javascript:void(location.href=\'mailto:\'+', // jshint ignore:line
+									protectEmailAddressAsEncodedString( address )
+								];
+								// parameters are optional.
+								argList && linkHref.push( '+\'', escapeSingleQuote( argList ), '\'' );
+
+								linkHref.push( ')' );
+							} else {
+								linkHref = [ 'mailto:', address, argList ];
+							}
+
+							break;
+						default:
+							// Separating name and domain.
+							var nameAndDomain = address.split( '@', 2 );
+							email.name = nameAndDomain[ 0 ];
+							email.domain = nameAndDomain[ 1 ];
+
+							linkHref = [ 'javascript:', protectEmailLinkAsFunction( editor, email ) ]; // jshint ignore:line
+					}
+
+					set[ 'data-cke-saved-href' ] = linkHref.join( '' );
+					break;
+			}
+
+			// Popups and target.
+			if ( data.target ) {
+				if ( data.target.type == 'popup' ) {
+					var onclickList = [
+							'window.open(this.href, \'', data.target.name || '', '\', \''
+						],
+						featureList = [
+							'resizable', 'status', 'location', 'toolbar', 'menubar', 'fullscreen', 'scrollbars', 'dependent'
+						],
+						featureLength = featureList.length,
+						addFeature = function( featureName ) {
+							if ( data.target[ featureName ] )
+								featureList.push( featureName + '=' + data.target[ featureName ] );
+						};
+
+					for ( var i = 0; i < featureLength; i++ )
+						featureList[ i ] = featureList[ i ] + ( data.target[ featureList[ i ] ] ? '=yes' : '=no' );
+
+					addFeature( 'width' );
+					addFeature( 'left' );
+					addFeature( 'height' );
+					addFeature( 'top' );
+
+					onclickList.push( featureList.join( ',' ), '\'); return false;' );
+					set[ 'data-cke-pa-onclick' ] = onclickList.join( '' );
+				}
+				else if ( data.target.type != 'notSet' && data.target.name ) {
+					set.target = data.target.name;
+				}
+			}
+
+			// Force download attribute.
+			if ( data.download ) {
+				set.download = '';
+			}
+
+			// Advanced attributes.
+			if ( data.advanced ) {
+				for ( var a in advAttrNames ) {
+					var val = data.advanced[ advAttrNames[ a ] ];
+
+					if ( val )
+						set[ a ] = val;
+				}
+
+				if ( set.name )
+					set[ 'data-cke-saved-name' ] = set.name;
+			}
+
+			// Browser need the "href" fro copy/paste link to work. (http://dev.ckeditor.com/ticket/6641)
+			if ( set[ 'data-cke-saved-href' ] )
+				set.href = set[ 'data-cke-saved-href' ];
+
+			var removed = {
+				target: 1,
+				onclick: 1,
+				'data-cke-pa-onclick': 1,
+				'data-cke-saved-name': 1,
+				'download': 1
+			};
+
+			if ( data.advanced )
+				CKEDITOR.tools.extend( removed, advAttrNames );
+
+			// Remove all attributes which are not currently set.
+			for ( var s in set )
+				delete removed[ s ];
+
+			return {
+				set: set,
+				removed: CKEDITOR.tools.objectKeys( removed )
+			};
+		},
+
+
+		/**
+		 * Determines whether an element should have a "Display Text" field in the Link dialog.
+		 *
+		 * @since 4.5.11
+		 * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection
+		 * is made.
+		 * @param {CKEDITOR.editor} editor The editor instance for which the check is performed.
+		 * @returns {Boolean}
+		 */
+		showDisplayTextForElement: function( element, editor ) {
+			var undesiredElements = {
+					img: 1,
+					table: 1,
+					tbody: 1,
+					thead: 1,
+					tfoot: 1,
+					input: 1,
+					select: 1,
+					textarea: 1
+				},
+				selection = editor.getSelection();
+
+			// Widget duck typing, we don't want to show display text for widgets.
+			if ( editor.widgets && editor.widgets.focused ) {
+				return false;
+			}
+
+			if ( selection && selection.getRanges().length > 1 ) {
+				return false;
+			}
+
+			return !element || !element.getName || !element.is( undesiredElements );
+		}
+	};
+
+	// TODO Much probably there's no need to expose these as public objects.
+
+	CKEDITOR.unlinkCommand = function() {};
+	CKEDITOR.unlinkCommand.prototype = {
+		exec: function( editor ) {
+			// IE/Edge removes link from selection while executing "unlink" command when cursor
+			// is right before/after link's text. Therefore whole link must be selected and the
+			// position of cursor must be restored to its initial state after unlinking. (http://dev.ckeditor.com/ticket/13062)
+			if ( CKEDITOR.env.ie ) {
+				var range = editor.getSelection().getRanges()[ 0 ],
+					link = ( range.getPreviousEditableNode() && range.getPreviousEditableNode().getAscendant( 'a', true ) ) ||
+							( range.getNextEditableNode() && range.getNextEditableNode().getAscendant( 'a', true ) ),
+					bookmark;
+
+				if ( range.collapsed && link ) {
+					bookmark = range.createBookmark();
+					range.selectNodeContents( link );
+					range.select();
+				}
+			}
+
+			var style = new CKEDITOR.style( { element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 } );
+			editor.removeStyle( style );
+
+			if ( bookmark ) {
+				range.moveToBookmark( bookmark );
+				range.select();
+			}
+		},
+
+		refresh: function( editor, path ) {
+			// Despite our initial hope, document.queryCommandEnabled() does not work
+			// for this in Firefox. So we must detect the state by element paths.
+
+			var element = path.lastElement && path.lastElement.getAscendant( 'a', true );
+
+			if ( element && element.getName() == 'a' && element.getAttribute( 'href' ) && element.getChildCount() )
+				this.setState( CKEDITOR.TRISTATE_OFF );
+			else
+				this.setState( CKEDITOR.TRISTATE_DISABLED );
+		},
+
+		contextSensitive: 1,
+		startDisabled: 1,
+		requiredContent: 'a[href]',
+		editorFocus: 1
+	};
+
+	CKEDITOR.removeAnchorCommand = function() {};
+	CKEDITOR.removeAnchorCommand.prototype = {
+		exec: function( editor ) {
+			var sel = editor.getSelection(),
+				bms = sel.createBookmarks(),
+				anchor;
+			if ( sel && ( anchor = sel.getSelectedElement() ) && ( !anchor.getChildCount() ? CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, anchor ) : anchor.is( 'a' ) ) )
+				anchor.remove( 1 );
+			else {
+				if ( ( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) ) {
+					if ( anchor.hasAttribute( 'href' ) ) {
+						anchor.removeAttributes( { name: 1, 'data-cke-saved-name': 1 } );
+						anchor.removeClass( 'cke_anchor' );
+					} else {
+						anchor.remove( 1 );
+					}
+				}
+			}
+			sel.selectBookmarks( bms );
+		},
+		requiredContent: 'a[name]'
+	};
+
+	CKEDITOR.tools.extend( CKEDITOR.config, {
+		/**
+		 * Whether to show the Advanced tab in the Link dialog window.
+		 *
+		 * @cfg {Boolean} [linkShowAdvancedTab=true]
+		 * @member CKEDITOR.config
+		 */
+		linkShowAdvancedTab: true,
+
+		/**
+		 * Whether to show the Target tab in the Link dialog window.
+		 *
+		 * @cfg {Boolean} [linkShowTargetTab=true]
+		 * @member CKEDITOR.config
+		 */
+		linkShowTargetTab: true
+
+		/**
+		 * Whether JavaScript code is allowed as a `href` attribute in an anchor tag.
+		 * With this option enabled it is possible to create links like:
+		 *
+		 *		<a href="javascript:alert('Hello world!')">hello world</a>
+		 *
+		 * By default JavaScript links are not allowed and will not pass
+		 * the Link dialog window validation.
+		 *
+		 * @since 4.4.1
+		 * @cfg {Boolean} [linkJavaScriptLinksAllowed=false]
+		 * @member CKEDITOR.config
+		 */
+	} );
+} )();
diff --git a/web/modules/anchor_link/src/Plugin/CKEditorPlugin/AnchorLink.php b/web/modules/anchor_link/src/Plugin/CKEditorPlugin/AnchorLink.php
new file mode 100644
index 0000000000000000000000000000000000000000..d2c245e4710a78a423e85f1d249c511b7a0979ab
--- /dev/null
+++ b/web/modules/anchor_link/src/Plugin/CKEditorPlugin/AnchorLink.php
@@ -0,0 +1,74 @@
+<?php
+
+namespace Drupal\anchor_link\Plugin\CKEditorPlugin;
+
+use Drupal\editor\Entity\Editor;
+use Drupal\ckeditor\CKEditorPluginBase;
+
+/**
+ * Defines the "link" plugin.
+ *
+ * @CKEditorPlugin(
+ *   id = "link",
+ *   label = @Translation("CKEditor Web link"),
+ *   module = "anchor_link"
+ * )
+ */
+class AnchorLink extends CKEditorPluginBase {
+
+  /**
+  * Implements \Drupal\ckeditor\Plugin\CKEditorPluginInterface::getFile().
+  */
+  function getFile() {
+    return drupal_get_path('module', 'anchor_link') . '/js/plugins/link/plugin.js';
+  }
+  
+  /**
+   * {@inheritdoc}
+   */
+  public function getDependencies(Editor $editor) {
+    return [
+      'fakeobjects',
+    ];
+  }
+  /**
+   * {@inheritdoc}
+   */
+  public function getLibraries(Editor $editor) {
+    return [];
+  }
+  
+    /**
+   * {@inheritdoc}
+   */
+  public function isInternal() {
+    return FALSE;
+  }
+
+  /**
+   * Implements \Drupal\ckeditor\Plugin\CKEditorPluginButtonsInterface::getButtons().
+   */
+  function getButtons() {
+    return [
+      'Link' => [
+        'label' => t('Link'),
+        'image' => drupal_get_path('module', 'anchor_link') . '/js/plugins/link/icons/link.png',
+      ],
+      'Unlink' => [
+        'label' => t('Unlink'),
+        'image' => drupal_get_path('module', 'anchor_link') . '/js/plugins/link/icons/unlink.png',
+      ],
+      'Anchor' => [
+        'label' => t('Anchor'),
+        'image' => drupal_get_path('module', 'anchor_link') . '/js/plugins/link/icons/anchor.png',
+      ]
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfig(Editor $editor) {
+    return [];
+  }
+}
diff --git a/web/modules/anchor_link/src/Plugin/CKEditorPlugin/FakeObjects.php b/web/modules/anchor_link/src/Plugin/CKEditorPlugin/FakeObjects.php
new file mode 100644
index 0000000000000000000000000000000000000000..ae69f8a9699acd944db260640e4922f0738e6c3e
--- /dev/null
+++ b/web/modules/anchor_link/src/Plugin/CKEditorPlugin/FakeObjects.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Drupal\anchor_link\Plugin\CKEditorPlugin;
+
+use Drupal\Core\Plugin\PluginBase;
+use Drupal\editor\Entity\Editor;
+use Drupal\ckeditor\CKEditorPluginInterface;
+
+/**
+ * Defines the "fakeobjects" plugin.
+ *
+ * @CKEditorPlugin(
+ *   id = "fakeobjects",
+ *   label = @Translation("CKEditor Fake Object"),
+ *   module = "anchor_link"
+ * )
+ */
+class FakeObjects extends PluginBase implements CKEditorPluginInterface {
+
+  /**
+  * Implements \Drupal\ckeditor\Plugin\CKEditorPluginInterface::getFile().
+  */
+  function getFile() {
+    return drupal_get_path('module', 'anchor_link') . '/js/plugins/fakeobjects/plugin.js';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDependencies(Editor $editor) {
+    return [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getLibraries(Editor $editor) {
+    return [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInternal() {
+    return FALSE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getConfig(Editor $editor) {
+    return [];
+  }
+}