diff --git a/layouts/partials/stylesheet.html b/layouts/partials/stylesheet.html
index dd9e6b5306..9c87abd35e 100644
--- a/layouts/partials/stylesheet.html
+++ b/layouts/partials/stylesheet.html
@@ -42,21 +42,22 @@
     {{- end }}
       var root_url="/";
       var baseUri=root_url.replace(/\/$/, '');
-      {{ "// translations" | safeJS }}
-      window.T_Copy_to_clipboard = '{{ T "Copy-to-clipboard" | safeJS }}';
-      window.T_Copied_to_clipboard = '{{ T "Copied-to-clipboard" | safeJS }}';
-      window.T_Copy_link_to_clipboard = '{{ T "Copy-link-to-clipboard" | safeJS }}';
-      window.T_Link_copied_to_clipboard = '{{ T "Link-copied-to-clipboard" | safeJS }}';
-      window.T_Reset_view = '{{ T "Reset-view" | safeJS }}';
-      window.T_View_reset = '{{ T "View-reset" | safeJS }}';
-      window.T_No_results_found = '{{ T "No-results-found" | safeJS }}';
-      window.T_N_results_found = '{{ T "N-results-found" | safeJS }}';
-      {{ "// some further base stuff" | safeJS }}
-      var baseUriFull='{{ trim .Site.BaseURL "/" | safeJS }}/';
+      window.relearn = window.relearn || {};
+      window.relearn.baseUriFull='{{ trim .Site.BaseURL "/" | safeJS }}/';
+      {{ "// variant stuff" | safeJS }}
       {{- $quotedthemevariants := slice }}
       {{- range $themevariants }}
         {{- $quotedthemevariants = $quotedthemevariants | append (printf "'%s'" .) }}
       {{- end }}
       window.variants && variants.init( [ {{ delimit $quotedthemevariants ", " | safeJS }} ] );
+      {{ "// translations" | safeJS }}
+      {{ printf "window.T_Copy_to_clipboard = `%s`;" (T `Copy-to-clipboard`) | safeJS }}
+      {{ printf "window.T_Copied_to_clipboard = `%s`;" (T `Copied-to-clipboard`) | safeJS }}
+      {{ printf "window.T_Copy_link_to_clipboard = `%s`;" (T `Copy-link-to-clipboard`) | safeJS }}
+      {{ printf "window.T_Link_copied_to_clipboard = `%s`;" (T `Link-copied-to-clipboard`) | safeJS }}
+      {{ printf "window.T_Reset_view = `%s`;" (T `Reset-view`) | safeJS }}
+      {{ printf "window.T_View_reset = `%s`;" (T `View-reset`) | safeJS }}
+      {{ printf "window.T_No_results_found = `%s`;" (T "No-results-found") | safeJS }}
+      {{ printf "window.T_N_results_found = `%s`;" (T "N-results-found") | safeJS }}
     </script>
   {{- end }}
\ No newline at end of file
diff --git a/static/js/theme.js b/static/js/theme.js
index 84740437b9..7e1b0623a0 100644
--- a/static/js/theme.js
+++ b/static/js/theme.js
@@ -127,21 +127,21 @@ function switchTab(tabGroup, tabId) {
 
       // Store the selection to make it persistent
       if(window.localStorage){
-          var selectionsJSON = window.localStorage.getItem(baseUriFull+"tab-selections");
+          var selectionsJSON = window.localStorage.getItem(window.relearn.baseUriFull+"tab-selections");
           if(selectionsJSON){
             var tabSelections = JSON.parse(selectionsJSON);
           }else{
             var tabSelections = {};
           }
           tabSelections[tabGroup] = tabId;
-          window.localStorage.setItem(baseUriFull+"tab-selections", JSON.stringify(tabSelections));
+          window.localStorage.setItem(window.relearn.baseUriFull+"tab-selections", JSON.stringify(tabSelections));
       }
     }
 }
 
 function restoreTabSelections() {
     if(window.localStorage){
-        var selectionsJSON = window.localStorage.getItem(baseUriFull+"tab-selections");
+        var selectionsJSON = window.localStorage.getItem(window.relearn.baseUriFull+"tab-selections");
         if(selectionsJSON){
           var tabSelections = JSON.parse(selectionsJSON);
         }else{
@@ -304,7 +304,7 @@ function initMermaid( update, attrs ) {
 
     var search;
     if( update ){
-        search = sessionStorage.getItem( baseUriFull+'search-value' );
+        search = sessionStorage.getItem( window.relearn.baseUriFull+'search-value' );
         unmark();
     }
     var is_initialized = ( update ? update_func( attrs ) : init_func( attrs ) );
@@ -352,7 +352,7 @@ function initMermaid( update, attrs ) {
         });
     }
     if( update && search && search.length ){
-        sessionStorage.setItem( baseUriFull+'search-value', search );
+        sessionStorage.setItem( window.relearn.baseUriFull+'search-value', search );
         mark();
     }
 }
@@ -1121,7 +1121,7 @@ function initExpand(){
 }
 
 function clearHistory() {
-    var visitedItem = baseUriFull + 'visited-url/'
+    var visitedItem = window.relearn.baseUriFull + 'visited-url/'
     for( var item in sessionStorage ){
         if( item.substring( 0, visitedItem.length ) === visitedItem ){
             sessionStorage.removeItem( item );
@@ -1137,7 +1137,7 @@ function clearHistory() {
 }
 
 function initHistory() {
-    var visitedItem = baseUriFull + 'visited-url/'
+    var visitedItem = window.relearn.baseUriFull + 'visited-url/'
     sessionStorage.setItem( visitedItem+document.querySelector( 'body' ).dataset.url, 1);
 
     // loop through the sessionStorage and see if something should be marked as visited
@@ -1192,7 +1192,7 @@ function scrollToPositions() {
         return;
     }
 
-    var search = sessionStorage.getItem( baseUriFull+'search-value' );
+    var search = sessionStorage.getItem( window.relearn.baseUriFull+'search-value' );
     if( search && search.length ){
         search = regexEscape( search );
         var found = elementContains( search, elc );
@@ -1229,7 +1229,7 @@ function mark() {
 		bodyInnerLinks[i].classList.add( 'highlight' );
 	}
 
-	var value = sessionStorage.getItem( baseUriFull + 'search-value' );
+	var value = sessionStorage.getItem( window.relearn.baseUriFull + 'search-value' );
     var highlightableElements = document.querySelectorAll( '.highlightable' );
     highlight( highlightableElements, value, { element: 'mark' } );
 
@@ -1317,7 +1317,7 @@ function highlightNode( node, re, nodeName, className ){
 };
 
 function unmark() {
-	sessionStorage.removeItem( baseUriFull + 'search-value' );
+	sessionStorage.removeItem( window.relearn.baseUriFull + 'search-value' );
 	var markedElements = document.querySelectorAll( 'mark' );
 	for( var i = 0; i < markedElements.length; i++ ){
 		var parent = markedElements[i].parentNode;
@@ -1383,7 +1383,7 @@ function elementContains( txt, e ){
 function searchInputHandler( value ){
     unmark();
     if( value.length ){
-        sessionStorage.setItem( baseUriFull+'search-value', value );
+        sessionStorage.setItem( window.relearn.baseUriFull+'search-value', value );
         mark();
     }
 }
@@ -1395,7 +1395,7 @@ function initSearch() {
         e.addEventListener( 'keydown', function( event ){
             if( event.key == 'Escape' ){
                 var input = event.target;
-                var search = sessionStorage.getItem( baseUriFull+'search-value' );
+                var search = sessionStorage.getItem( window.relearn.baseUriFull+'search-value' );
                 if( !search || !search.length ){
                     input.blur();
                 }
@@ -1435,13 +1435,13 @@ function initSearch() {
     var urlParams = new URLSearchParams( window.location.search );
     var value = urlParams.get( 'search-by' );
     if( value ){
-        sessionStorage.setItem( baseUriFull+'search-value', value );
+        sessionStorage.setItem( window.relearn.baseUriFull+'search-value', value );
     }
     mark();
 
     // set initial search value for inputs on page load
-    if( sessionStorage.getItem( baseUriFull+'search-value' ) ){
-        var search = sessionStorage.getItem( baseUriFull+'search-value' );
+    if( sessionStorage.getItem( window.relearn.baseUriFull+'search-value' ) ){
+        var search = sessionStorage.getItem( window.relearn.baseUriFull+'search-value' );
         inputs.forEach( function( e ){
             e.value = search;
             var event = document.createEvent( 'Event' );
diff --git a/static/js/variant.js b/static/js/variant.js
index 15d75f1509..33a274b921 100644
--- a/static/js/variant.js
+++ b/static/js/variant.js
@@ -1,3 +1,5 @@
+window.relearn = window.relearn || {};
+
 // we need to load this script in the html head to avoid flickering
 // on page load if the user has selected a non default variant
 
@@ -40,7 +42,7 @@ var variants = {
 
 	init: function( variants ){
 		this.variants = variants;
-		var variant = window.localStorage.getItem( baseUriFull+'variant' ) || ( this.variants.length ? this.variants[0] : '' );
+		var variant = window.localStorage.getItem( window.relearn.baseUriFull+'variant' ) || ( this.variants.length ? this.variants[0] : '' );
 		this.changeVariant( variant );
 		document.addEventListener( 'readystatechange', function(){
 			if( document.readyState == 'interactive' ){
@@ -55,7 +57,7 @@ var variants = {
 
 	setVariant: function( variant ){
 		this.variant = variant;
-		window.localStorage.setItem( baseUriFull+'variant', variant );
+		window.localStorage.setItem( window.relearn.baseUriFull+'variant', variant );
 	},
 
 	isVariantLoaded: function(){
@@ -92,11 +94,11 @@ var variants = {
 	},
 
 	addCustomVariantOption: function(){
-		var variantbase = window.localStorage.getItem( baseUriFull+'customvariantbase' );
+		var variantbase = window.localStorage.getItem( window.relearn.baseUriFull+'customvariantbase' );
 		if( this.variants.indexOf( variantbase ) < 0 ){
 			variantbase = '';
 		}
-		if( !window.localStorage.getItem( baseUriFull+'customvariant' ) ){
+		if( !window.localStorage.getItem( window.relearn.baseUriFull+'customvariant' ) ){
 			variantbase = '';
 		}
 		if( !variantbase ){
@@ -133,15 +135,15 @@ var variants = {
 
 	saveCustomVariant: function(){
 		if( this.getVariant() != this.customvariantname ){
-			window.localStorage.setItem( baseUriFull+'customvariantbase', this.getVariant() );
+			window.localStorage.setItem( window.relearn.baseUriFull+'customvariantbase', this.getVariant() );
 		}
-		window.localStorage.setItem( baseUriFull+'customvariant', this.generateStylesheet() );
+		window.localStorage.setItem( window.relearn.baseUriFull+'customvariant', this.generateStylesheet() );
 		this.setVariant( this.customvariantname );
 		this.markSelectedVariant();
 	},
 
 	loadCustomVariant: function(){
-		var stylesheet = window.localStorage.getItem( baseUriFull+'customvariant' );
+		var stylesheet = window.localStorage.getItem( window.relearn.baseUriFull+'customvariant' );
 
 		// temp styles to document
 		var head = document.querySelector( 'head' );
@@ -167,10 +169,10 @@ var variants = {
 	},
 
 	resetVariant: function(){
-		var variantbase = window.localStorage.getItem( baseUriFull+'customvariantbase' );
+		var variantbase = window.localStorage.getItem( window.relearn.baseUriFull+'customvariantbase' );
 		if( variantbase && confirm( 'You have made changes to your custom variant. Are you sure you want to reset all changes?' ) ){
-			window.localStorage.removeItem( baseUriFull+'customvariantbase' );
-			window.localStorage.removeItem( baseUriFull+'customvariant' );
+			window.localStorage.removeItem( window.relearn.baseUriFull+'customvariantbase' );
+			window.localStorage.removeItem( window.relearn.baseUriFull+'customvariant' );
 			this.removeCustomVariantOption();
 			if( this.getVariant() == this.customvariantname ){
 				this.changeVariant( variantbase );
@@ -202,11 +204,11 @@ var variants = {
 
 	changeVariant: function( variant ){
 		if( variant == this.customvariantname ){
-			var variantbase = window.localStorage.getItem( baseUriFull+'customvariantbase' );
+			var variantbase = window.localStorage.getItem( window.relearn.baseUriFull+'customvariantbase' );
 			if( this.variants.indexOf( variantbase ) < 0 ){
 				variant = '';
 			}
-			if( !window.localStorage.getItem( baseUriFull+'customvariant' ) ){
+			if( !window.localStorage.getItem( window.relearn.baseUriFull+'customvariant' ) ){
 				variant = '';
 			}
 			this.setVariant( variant );