diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po
index 858a6f9497052aa278c58387038dbb102db2add5..4c4697b0919278aa9ba8c79f026a6db2787d014f 100644
--- a/src/backoffice/locale/de/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/de/LC_MESSAGES/django.po
@@ -524,39 +524,6 @@ msgstr "Hiermit wird diese Veranstaltung gelöscht. Wenn du sie nur unsichtbar m
 msgid "Events"
 msgstr ""
 
-msgid "assembly_info_no_data"
-msgstr "Bisher keine Daten vorhanden"
-
-msgid "assembly_info_paginated"
-msgstr "Zeige _START_ bis _END_ von _TOTAL_ Einträgen"
-
-msgid "assembly_info_empty"
-msgstr "Zeige 0 Einträge"
-
-msgid "assembly_info_filtered"
-msgstr "(gefiltert, insgesamt _MAX_ Einträge)"
-
-msgid "assembly_paginate_menu"
-msgstr "Zeige _MENU_ Einträge"
-
-msgid "assembly_search"
-msgstr "Suche:"
-
-msgid "assembly_no_entries"
-msgstr "Keine Einträge."
-
-msgid "assembly_paginate_first"
-msgstr "Erste"
-
-msgid "assembly_paginate_last"
-msgstr "Letzte"
-
-msgid "assembly_paginate_next"
-msgstr "Nächste"
-
-msgid "assembly_paginate_previous"
-msgstr "Vorherige"
-
 msgid "Assemblies"
 msgstr ""
 
@@ -1487,6 +1454,51 @@ msgstr "Self-organized Session löschen"
 msgid "SoS__delete__introduction"
 msgstr "Hiermit wird diese Self-organized Session gelöscht. Wenn du sie nur unsichtbar machen möchtest gibt es weiter oben die Möglichkeit die Self-organized Session zurückzunehmen!"
 
+msgid "data_table__info__no_data"
+msgstr "Bisher keine Daten vorhanden"
+
+msgid "data_table__info__paginated"
+msgstr "Zeige _START_ bis _END_ von _TOTAL_ Einträgen"
+
+msgid "data_table__info__empty"
+msgstr "Zeige 0 Einträge"
+
+msgid "data_table__info__filtered"
+msgstr "(gefiltert, insgesamt _MAX_ Einträge)"
+
+msgid "data_table__paginate__menu"
+msgstr "Zeige _MENU_ Einträge"
+
+msgid "data_table__loading"
+msgstr "Laden im Gange..."
+
+msgid "data_table__processing"
+msgstr "Verarbeitung...."
+
+msgid "data_table_search"
+msgstr "Suche:"
+
+msgid "data_table__no_entries"
+msgstr "Keine Einträge."
+
+msgid "data_table__paginate__first"
+msgstr "Erste"
+
+msgid "data_table__paginate__last"
+msgstr "Letzte"
+
+msgid "data_table__paginate__next"
+msgstr "Nächste"
+
+msgid "data_table__paginate__previous"
+msgstr "Vorherige"
+
+msgid "data_table__aria__sort_ascending"
+msgstr "Aufsteigend nach dieser Spalte sortieren"
+
+msgid "data_table__aria__sort_descending"
+msgstr "Absteigend nach dieser Spalte sortieren"
+
 msgid "StaticPage-lock_drop"
 msgstr "Seitensperre aufheben"
 
diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po
index 4318daf34a38e5277aaac535ebe0e4f259eca252..fd34abffade13dd777c58f5a10232296c048e5cd 100644
--- a/src/backoffice/locale/en/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/en/LC_MESSAGES/django.po
@@ -524,39 +524,6 @@ msgstr "This deletes this event. If you only want to make it invisible, there is
 msgid "Events"
 msgstr ""
 
-msgid "assembly_info_no_data"
-msgstr "No data available in table"
-
-msgid "assembly_info_paginated"
-msgstr "Showing _START_ to _END_ of _TOTAL_ entries"
-
-msgid "assembly_info_empty"
-msgstr "Showing 0 out of 0 entries"
-
-msgid "assembly_info_filtered"
-msgstr "(filtered from _MAX_ total entries)"
-
-msgid "assembly_paginate_menu"
-msgstr "Show _MENU_ entries"
-
-msgid "assembly_search"
-msgstr "Search:"
-
-msgid "assembly_no_entries"
-msgstr "No entries."
-
-msgid "assembly_paginate_first"
-msgstr "First"
-
-msgid "assembly_paginate_last"
-msgstr "Last"
-
-msgid "assembly_paginate_next"
-msgstr "Next"
-
-msgid "assembly_paginate_previous"
-msgstr "Previous"
-
 msgid "Assemblies"
 msgstr ""
 
@@ -1492,6 +1459,51 @@ msgstr "Delete self-organized session"
 msgid "SoS__delete__introduction"
 msgstr "This removes this self-organized session. If you only want to make it invisible, there is an option above to recall the self-organized session above!"
 
+msgid "data_table__info__no_data"
+msgstr "No data available in table"
+
+msgid "data_table__info__paginated"
+msgstr "Showing _START_ to _END_ of _TOTAL_ entries"
+
+msgid "data_table__info__empty"
+msgstr "Showing 0 out of 0 entries"
+
+msgid "data_table__info__filtered"
+msgstr "(filtered from _MAX_ total entries)"
+
+msgid "data_table__paginate__menu"
+msgstr "Show _MENU_ entries"
+
+msgid "data_table__loading"
+msgstr "Loading..."
+
+msgid "data_table__processing"
+msgstr "Processing..."
+
+msgid "data_table_search"
+msgstr "Search:"
+
+msgid "data_table__no_entries"
+msgstr "No entries."
+
+msgid "data_table__paginate__first"
+msgstr "First"
+
+msgid "data_table__paginate__last"
+msgstr "Last"
+
+msgid "data_table__paginate__next"
+msgstr "Next"
+
+msgid "data_table__paginate__previous"
+msgstr "Previous"
+
+msgid "data_table__aria__sort_ascending"
+msgstr "activate to sort column ascending"
+
+msgid "data_table__aria__sort_descending"
+msgstr "activate to sort column descending"
+
 msgid "StaticPage-lock_drop"
 msgstr "drop page lock"
 
diff --git a/src/backoffice/templates/backoffice/assembly_events.html b/src/backoffice/templates/backoffice/assembly_events.html
index 414c99697a20b43978d60388e648cdca33887903..0d2ef37c901d9b77f5c640220041b3c2d0cce52a 100644
--- a/src/backoffice/templates/backoffice/assembly_events.html
+++ b/src/backoffice/templates/backoffice/assembly_events.html
@@ -13,37 +13,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#events').DataTable({
-            pageLength: 100,
-            language: {
-                "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='events' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/assembly_list.html b/src/backoffice/templates/backoffice/assembly_list.html
index 2105ce2f2bc488f5e32b3d43fc86239092c4e0c4..09acf28e259cc139c9ca0f6c8b81a2a8ba5528c0 100644
--- a/src/backoffice/templates/backoffice/assembly_list.html
+++ b/src/backoffice/templates/backoffice/assembly_list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#assemblies').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='assemblies' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/components/list_script.js b/src/backoffice/templates/backoffice/components/list_script.js
new file mode 100644
index 0000000000000000000000000000000000000000..5373e510cd27d51c37581c688a4ef35589f65482
--- /dev/null
+++ b/src/backoffice/templates/backoffice/components/list_script.js
@@ -0,0 +1,30 @@
+{% load i18n %}
+$(document).ready(function() {
+  $('#{{ table_id }}').DataTable({
+    pageLength: 100,
+    language: {
+      "decimal":        "",
+        "emptyTable":     "{% trans "data_table__info__no_data" %}",
+        "info":           "{% trans "data_table__info__paginated" %}",
+        "infoEmpty":      "{% trans "data_table__info__empty" %}",
+        "infoFiltered":   "{% trans "data_table__info__filtered" %}",
+        "infoPostFix":    "",
+        "thousands":      " ",
+        "lengthMenu":     "{% trans "data_table__paginate__menu" %}",
+        "loadingRecords": "{% trans "data_table__loading" %}",
+        "processing":     "{% trans "data_table__processing" %}",
+        "search":         "{% trans "data_table_search" %}",
+        "zeroRecords":    "{% trans "data_table__no_entries" %}",
+        "paginate": {
+            "first":      "{% trans "data_table__paginate__first" %}",
+            "last":       "{% trans "data_table__paginate__last" %}",
+            "next":       "{% trans "data_table__paginate__next" %}",
+            "previous":   "{% trans "data_table__paginate__previous" %}"
+        },
+        "aria": {
+            "sortAscending":  ": {% trans "data_table__aria__sort_ascending" %}", {#activate to sort column ascending#}
+            "sortDescending":  ": {% trans "data_table__aria__sort_descending" %}", {#activate to sort column descending#}
+        }
+    }
+  });
+});
diff --git a/src/backoffice/templates/backoffice/event/components/list_script.js b/src/backoffice/templates/backoffice/event/components/list_script.js
deleted file mode 100644
index 6fadf5dc7f6ed2a1b0072a475ffabca2e9b20e4c..0000000000000000000000000000000000000000
--- a/src/backoffice/templates/backoffice/event/components/list_script.js
+++ /dev/null
@@ -1,30 +0,0 @@
-{% load i18n %}
-$(document).ready(function() {
-  $('#events').DataTable({
-    pageLength: 100,
-    language: {
-      "decimal":        "",
-        "emptyTable":     "{% trans "assembly_info_no_data" %}",
-        "info":           "{% trans "assembly_info_paginated" %}",
-        "infoEmpty":      "{% trans "assembly_info_empty" %}",
-        "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-        "infoPostFix":    "",
-        "thousands":      " ",
-        "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-        "loadingRecords": "LOADING ...",
-        "processing":     "Processing...",
-        "search":         "{% trans "assembly_search" %}",
-        "zeroRecords":    "{% trans "assembly_no_entries" %}",
-        "paginate": {
-            "first":      "{% trans "assembly_paginate_first" %}",
-            "last":       "{% trans "assembly_paginate_last" %}",
-            "next":       "{% trans "assembly_paginate_next" %}",
-            "previous":   "{% trans "assembly_paginate_previous" %}"
-        },
-        "aria": {
-            "sortAscending":  ": activate to sort column ascending",
-            "sortDescending": ": activate to sort column descending"
-        }
-    }
-  });
-});
diff --git a/src/backoffice/templates/backoffice/event/list.html b/src/backoffice/templates/backoffice/event/list.html
index 14df4bad69f24ae365fffc5f8d2ad3f9b503e1ae..1a2021a8f8ff967dd03c88688f58687386b71ffc 100644
--- a/src/backoffice/templates/backoffice/event/list.html
+++ b/src/backoffice/templates/backoffice/event/list.html
@@ -10,7 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/event/components/list_script.js" %}</script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='events' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/map_floor_list.html b/src/backoffice/templates/backoffice/map_floor_list.html
index b487154244e033c3d7d4277b8b83e8d88784aa21..145670858fb77d7736b3cef4315789f3e96ea837 100644
--- a/src/backoffice/templates/backoffice/map_floor_list.html
+++ b/src/backoffice/templates/backoffice/map_floor_list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#pois').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='pois' %}</script>
 {% endblock title %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/map_poi_list.html b/src/backoffice/templates/backoffice/map_poi_list.html
index 9fb3218ae38ce3a84ed82490a974c9462d8cb9b6..b69330cfbe8bc19ab0fac944d60308a3120509d3 100644
--- a/src/backoffice/templates/backoffice/map_poi_list.html
+++ b/src/backoffice/templates/backoffice/map_poi_list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#pois').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='pois' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/moderation_assembly-list.html b/src/backoffice/templates/backoffice/moderation_assembly-list.html
index 42cbfceea7da652dd472f4842c16089122debaa8..a49612a1a1e939d46dfdc6d7f9b24b48058d759b 100644
--- a/src/backoffice/templates/backoffice/moderation_assembly-list.html
+++ b/src/backoffice/templates/backoffice/moderation_assembly-list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#assemblies').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='assemblies' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/moderation_badge-list.html b/src/backoffice/templates/backoffice/moderation_badge-list.html
index ee5f65b8e1fc71a46bba2d5b1c79f61b2f51e0c4..4203f50fb51ed5d0cea5f50436dc3f33312c54b6 100644
--- a/src/backoffice/templates/backoffice/moderation_badge-list.html
+++ b/src/backoffice/templates/backoffice/moderation_badge-list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#badges').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='badges' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/moderation_board-list.html b/src/backoffice/templates/backoffice/moderation_board-list.html
index 4ec666f2a065baeff5fec851fde2174912797fe8..b24f357df53a36fd0ea32a8726232eca41176e5e 100644
--- a/src/backoffice/templates/backoffice/moderation_board-list.html
+++ b/src/backoffice/templates/backoffice/moderation_board-list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#entries').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='entries' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/moderation_user-list.html b/src/backoffice/templates/backoffice/moderation_user-list.html
index cfbc6a49a69819690d3551f9d77cbd2901ca7b91..f44d3494d64a92585be65803ff64e97b667a1884 100644
--- a/src/backoffice/templates/backoffice/moderation_user-list.html
+++ b/src/backoffice/templates/backoffice/moderation_user-list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#users').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='users' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/moderation_wiki-list.html b/src/backoffice/templates/backoffice/moderation_wiki-list.html
index 2ff55a276adc4c7e5d5ddb5e9e105af025b0d631..352334cfab86f5d5359735c440f29733d17e2545 100644
--- a/src/backoffice/templates/backoffice/moderation_wiki-list.html
+++ b/src/backoffice/templates/backoffice/moderation_wiki-list.html
@@ -10,37 +10,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">
-      $(document).ready(function() {
-          $('#pages').DataTable({
-            pageLength: 100,
-            language: {
-              "decimal":        "",
-                "emptyTable":     "{% trans "assembly_info_no_data" %}",
-                "info":           "{% trans "assembly_info_paginated" %}",
-                "infoEmpty":      "{% trans "assembly_info_empty" %}",
-                "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-                "infoPostFix":    "",
-                "thousands":      " ",
-                "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-                "loadingRecords": "LOADING ...",
-                "processing":     "Processing...",
-                "search":         "{% trans "assembly_search" %}",
-                "zeroRecords":    "{% trans "assembly_no_entries" %}",
-                "paginate": {
-                    "first":      "{% trans "assembly_paginate_first" %}",
-                    "last":       "{% trans "assembly_paginate_last" %}",
-                    "next":       "{% trans "assembly_paginate_next" %}",
-                    "previous":   "{% trans "assembly_paginate_previous" %}"
-                },
-                "aria": {
-                    "sortAscending":  ": activate to sort column ascending",
-                    "sortDescending": ": activate to sort column descending"
-                }
-            }
-          });
-      });
-  </script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='pages' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/project/components/list_script.js b/src/backoffice/templates/backoffice/project/components/list_script.js
deleted file mode 100644
index 251081429c71981332649ef57a78a79eacdbf02f..0000000000000000000000000000000000000000
--- a/src/backoffice/templates/backoffice/project/components/list_script.js
+++ /dev/null
@@ -1,30 +0,0 @@
-{% load i18n %}
-$(document).ready(function() {
-  $('#projects').DataTable({
-    pageLength: 100,
-    language: {
-      "decimal":        "",
-        "emptyTable":     "{% trans "assembly_info_no_data" %}",
-        "info":           "{% trans "assembly_info_paginated" %}",
-        "infoEmpty":      "{% trans "assembly_info_empty" %}",
-        "infoFiltered":   "{% trans "assembly_info_filtered" %}",
-        "infoPostFix":    "",
-        "thousands":      " ",
-        "lengthMenu":     "{% trans "assembly_paginate_menu" %}",
-        "loadingRecords": "LOADING ...",
-        "processing":     "Processing...",
-        "search":         "{% trans "assembly_search" %}",
-        "zeroRecords":    "{% trans "assembly_no_entries" %}",
-        "paginate": {
-            "first":      "{% trans "assembly_paginate_first" %}",
-            "last":       "{% trans "assembly_paginate_last" %}",
-            "next":       "{% trans "assembly_paginate_next" %}",
-            "previous":   "{% trans "assembly_paginate_previous" %}"
-        },
-        "aria": {
-            "sortAscending":  ": activate to sort column ascending",
-            "sortDescending": ": activate to sort column descending"
-        }
-    }
-  });
-});
diff --git a/src/backoffice/templates/backoffice/project/list.html b/src/backoffice/templates/backoffice/project/list.html
index 868c9b2f7b0e5fde9ecf2e411f2a6220a3b27649..65a3dd54d5839bc1e752896994c0d795a9980671 100644
--- a/src/backoffice/templates/backoffice/project/list.html
+++ b/src/backoffice/templates/backoffice/project/list.html
@@ -16,7 +16,7 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/project/components/list_script.js" %}</script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" with table_id='projects' %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/sos.html b/src/backoffice/templates/backoffice/sos.html
index 1dcb9f2c312162083fa8d6f5e7d2f3d5dae4b686..e3499927e1d3e8d48ab9d34f063b36a48884b7be 100644
--- a/src/backoffice/templates/backoffice/sos.html
+++ b/src/backoffice/templates/backoffice/sos.html
@@ -13,8 +13,8 @@
 
 {% block scripts %}
   <script src="{% static 'vendor/datatables/datatables.min.js' %}"></script>
-  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/event/components/list_script.js" %}</script>
-  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/project/components/list_script.js" %}</script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" %}</script>
+  <script nonce="{{ request.csp_nonce }}">{% include "backoffice/components/list_script.js" %}</script>
 {% endblock scripts %}
 
 {% block content %}
diff --git a/src/backoffice/templates/backoffice/translation_stubs.html b/src/backoffice/templates/backoffice/translation_stubs.html
new file mode 100644
index 0000000000000000000000000000000000000000..d05d5df3ab1fae31d266ce02855691d3bfd3df96
--- /dev/null
+++ b/src/backoffice/templates/backoffice/translation_stubs.html
@@ -0,0 +1,17 @@
+{% load i18n %}
+
+{% trans "data_table__info__no_data" %}",
+{% trans "data_table__info__paginated" %}",
+{% trans "data_table__info__empty" %}",
+{% trans "data_table__info__filtered" %}",
+{% trans "data_table__paginate__menu" %}",
+{% trans "data_table__loading" %}",
+{% trans "data_table__processing" %}",
+{% trans "data_table_search" %}",
+{% trans "data_table__no_entries" %}",
+{% trans "data_table__paginate__first" %}",
+{% trans "data_table__paginate__last" %}",
+{% trans "data_table__paginate__next" %}",
+{% trans "data_table__paginate__previous" %}"
+{% trans "data_table__aria__sort_ascending" %}", {#activate to sort column ascending#}
+{% trans "data_table__aria__sort_descending" %}", {#activate to sort column descending#}