diff --git a/assets/patches.txt b/assets/patches.txt
index 6f50bfd..aee47e0 100644
--- a/assets/patches.txt
+++ b/assets/patches.txt
@@ -8,6 +8,7 @@ patches/devtools-bypass.patch
patches/disable-data-reporting-at-compile-time.patch
patches/flatpak-autoconf.patch
patches/fullpage-translations.patch
+patches/fullpage-translations-customization.patch
patches/hide-passwordmgr.patch
patches/librewolf-prefs.patch
patches/mozilla_dirs.patch
diff --git a/patches/fullpage-translations-customization.patch b/patches/fullpage-translations-customization.patch
new file mode 100644
index 0000000..9093dcc
--- /dev/null
+++ b/patches/fullpage-translations-customization.patch
@@ -0,0 +1,193 @@
+diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
+--- a/browser/base/content/main-popupset.inc.xhtml
++++ b/browser/base/content/main-popupset.inc.xhtml
+@@ -654,6 +654,8 @@
+ checked="false"
+ autocheck="false"
+ oncommand="TranslationsPanel.onNeverTranslateSite()"/>
++
+
+
+
+
+-
++
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
+diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
+--- a/browser/components/preferences/main.js
++++ b/browser/components/preferences/main.js
+@@ -141,6 +141,10 @@ Preferences.addAll([
+ { id: "dom.ipc.processCount.web", type: "int" },
+ { id: "layers.acceleration.disabled", type: "bool", inverted: true },
+
++ /* Fullpage Translations */
++ { id: "browser.translations.enable", type: "bool" },
++ { id: "browser.translations.automaticallyPopup", type: "bool" },
++
+ // Files and Applications
+ { id: "pref.downloads.disable_button.edit_actions", type: "bool" },
+
+@@ -323,6 +327,17 @@ var gMainPane = {
+
+ gMainPane.initTranslations();
+
++ Preferences.get("browser.translations.enable").on("change", () => {
++ if(!Preferences.get("browser.translations.enable").value)
++ confirmRestartPrompt(false, 1, true, false).then(buttonIndex => {
++ if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) {
++ Services.startup.quit(
++ Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart
++ );
++ }
++ });
++ });
++
+ if (
+ Services.prefs.getBoolPref(
+ "media.videocontrols.picture-in-picture.enabled"
+@@ -784,6 +799,10 @@ var gMainPane = {
+ () => this.writeCheckSpelling()
+ );
+ Preferences.addSyncFromPrefListener(
++ document.getElementById("translations-manage-enable"),
++ () => this.readEnableTranslations()
++ );
++ Preferences.addSyncFromPrefListener(
+ document.getElementById("alwaysAsk"),
+ () => this.readUseDownloadDir()
+ );
+@@ -1010,24 +1029,33 @@ var gMainPane = {
+ document.getElementById("zoomBox").hidden = false;
+ },
+
++ readEnableTranslations(skipInit = false) {
++ const translationsEnabled = Preferences.get("browser.translations.enable").value;
++ document.getElementById("innerTranslationsGroup").hidden = !translationsEnabled;
++ if (!this._translationsInitialized && !skipInit)
++ this.initTranslations();
++ },
++
++ _translationsInitialized: false,
++
+ /**
+ * Initialize the translations view.
+ */
+ async initTranslations() {
++ this.readEnableTranslations(true);
++
+ if (!Services.prefs.getBoolPref("browser.translations.enable")) {
+ return;
+ }
+
++ this._translationsInitialized = true;
++
+ /**
+ * Which phase a language download is in.
+ *
+ * @typedef {"downloaded" | "loading" | "uninstalled"} DownloadPhase
+ */
+
+- // Immediately show the group so that the async load of the component does
+- // not cause the layout to jump. The group will be empty initially.
+- document.getElementById("translationsGroup").hidden = false;
+-
+ class TranslationsState {
+ /**
+ * The fully initialized state.
+diff --git a/browser/components/translations/content/translationsPanel.js b/browser/components/translations/content/translationsPanel.js
+--- a/browser/components/translations/content/translationsPanel.js
++++ b/browser/components/translations/content/translationsPanel.js
+@@ -1322,6 +1322,12 @@ var TranslationsPanel = new (class {
+ );
+ }
+
++ openDisableTranslations() {
++ const window =
++ gBrowser.selectedBrowser.browsingContext.top.embedderElement.ownerGlobal;
++ window.openTrustedLinkIn("about:preferences#general-translations-enable", "tab");
++ }
++
+ /**
+ * Redirect the user to about:preferences
+ */
+diff --git a/browser/locales/en-US/browser/translations.ftl b/browser/locales/en-US/browser/translations.ftl
+--- a/browser/locales/en-US/browser/translations.ftl
++++ b/browser/locales/en-US/browser/translations.ftl
+@@ -58,6 +58,9 @@ translations-panel-settings-never-transl
+ translations-panel-settings-never-translate-site =
+ .label = Never translate this site
+
++translations-panel-disable-translations =
++ .label = Disable translations completely
++
+ ## The translation panel appears from the url bar, and this view is the default
+ ## translation view.
+
+@@ -123,6 +126,10 @@ translations-manage-header = Translation
+ translations-manage-settings-button =
+ .label = Settings…
+ .accesskey = t
++translations-manage-enable =
++ .label = Enable fullpage translations
++translations-manage-autopopup =
++ .label = Prompt to translate pages that aren’t in the browser’s configured language
+ translations-manage-intro = Set your language and site translation preferences and manage languages installed for offline translation.
+ translations-manage-install-description = Install languages for offline translation
+ translations-manage-language-install-button =