From 23145e1463f32cf3194d85f1d41abec95a5e9c24 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 12:31:00 +0200
Subject: [PATCH 01/15] Update fr.json
---
i18n/fr.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index 17b93f7a..ad71679e 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -224,7 +224,7 @@
"Error decompressing document, your browser does not support WebAssembly. Please use another browser to view this document.": "Erreur lors de la décompression du document, votre navigateur ne supporte pas WebAssembly. Veuillez utiliser un autre navigateur pour voir ce document.",
"Start over": "Recommencer",
"Document copied to clipboard": "Document copié dans le presse-papier",
- "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier-coller appuyer sur le bouton To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c",
+ "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier appuyer sur le bouton Copier le lien ou utiliser le raccourci Ctrl+c/Cmd+c",
"Copy link": "Copier le lien",
"Link copied to clipboard": "Lien copié dans le presse-papier",
"Document text": "Texte du document",
From 656a56826d59d73c7d4227e2186154282c26cead Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 12:42:52 +0200
Subject: [PATCH 02/15] Update fr.json
---
i18n/fr.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index ad71679e..bdbe1112 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -229,5 +229,6 @@
"Link copied to clipboard": "Lien copié dans le presse-papier",
"Document text": "Texte du document",
"Tabulator key serves as character (Hit Ctrl+m or Esc to toggle)": "La touche de tabulation sert de caractère (Presser Ctrl+m ou Esc pour basculer)",
- "Theme": "Thème"
+ "Theme": "Thème",
+ "Decrypting paste…": "Déchiffrement du document…"
}
From 640d400a32df5694192d8e17913db0baf774986d Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 13:18:50 +0200
Subject: [PATCH 03/15] Update fr.json
---
i18n/fr.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index bdbe1112..a0ce1461 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -150,7 +150,7 @@
"unknown status": "Statut inconnu",
"server error or not responding": "Le serveur ne répond pas ou a rencontré une erreur",
"Could not post comment: %s": "Impossible de poster le commentaire : %s",
- "Sending document…": "Envoi du document…",
+ "Sending paste…": "Envoi du document…",
"Your document is %s (Hit Ctrl+c to copy)": "Votre document est disponible à l'adresse %s (Appuyez sur Ctrl+c/Cmd+c pour copier)",
"Delete data": "Supprimer les données du document",
"Could not create document: %s": "Impossible de créer le document : %s",
@@ -230,5 +230,6 @@
"Document text": "Texte du document",
"Tabulator key serves as character (Hit Ctrl+m or Esc to toggle)": "La touche de tabulation sert de caractère (Presser Ctrl+m ou Esc pour basculer)",
"Theme": "Thème",
- "Decrypting paste…": "Déchiffrement du document…"
+ "Decrypting paste…": "Déchiffrement du document…",
+ "Preparing new paste…": "Préparation du nouveau document…"
}
From 1967c05a88ca6b1274a7b698e879b7a53b898e6f Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 18:31:54 +0200
Subject: [PATCH 04/15] Update privatebin.js
---
js/privatebin.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/js/privatebin.js b/js/privatebin.js
index 2ee9ad7e..53a29a4b 100644
--- a/js/privatebin.js
+++ b/js/privatebin.js
@@ -930,7 +930,7 @@ jQuery.PrivateBin = (function($) {
}
// load strings from JSON
- $.getJSON('i18n/' + newLanguage + '.json', function(data) {
+ $.getJSON('i18n/' + newLanguage + '.json' + new URL(document.currentScript.src).search, function(data) {
language = newLanguage;
translations = data;
$(document).triggerHandler(languageLoadedEvent);
@@ -5160,7 +5160,7 @@ jQuery.PrivateBin = (function($) {
// UI loading state
TopNav.hideAllButtons();
- Alert.showLoading('Sending paste…', 'cloud-upload');
+ Alert.showLoading('Sending document…', 'cloud-upload');
TopNav.collapseBar();
// get data
@@ -5431,7 +5431,7 @@ jQuery.PrivateBin = (function($) {
{
Alert.hideMessages();
Alert.setCustomHandler(null);
- Alert.showLoading('Decrypting paste…', 'cloud-download');
+ Alert.showLoading('Decrypting document…', 'cloud-download');
if (typeof paste === 'undefined' || paste.type === 'click') {
// get cipher data and wait until it is available
@@ -5709,7 +5709,7 @@ jQuery.PrivateBin = (function($) {
// Important: This *must not* run Alert.hideMessages() as previous
// errors from viewing a document should be shown.
TopNav.hideAllButtons();
- Alert.showLoading('Preparing new paste…', 'time');
+ Alert.showLoading('Preparing new document…', 'time');
PasteStatus.hideMessages();
PasteViewer.hide();
From ba42cdbe62a8be3c7062e4c9a4be2969117af850 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 18:34:06 +0200
Subject: [PATCH 05/15] Update Configuration.php
---
lib/Configuration.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Configuration.php b/lib/Configuration.php
index b139903e..58fc064a 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -121,7 +121,7 @@ class Configuration
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
'js/legacy.js' => 'sha512-08+subq1Lo+r+la5ENqeXiMgNJcVaaTtBIFGkrjziSpvtgCId3Jtin4/OkSdHYSoeztwwIab8uvCzPKHta6puQ==',
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
- 'js/privatebin.js' => 'sha512-Cor4acli/veLhX81YVTGQNkQ+poXsz0gRQUmLeJ6WebIXUlUi7ZQZ6lk1oIYesnBG3cV/stVT07cdVsByXoaJA==',
+ 'js/privatebin.js' => 'sha512-r18/FpRkITqGWMcvU8FjmqRHFrFBZmMoUoZW8KQvut0nwGVflz7jDjoEkwnRrvMzWRJCQwoFy5a4Z+iHIDrsfg==',
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
From cb5ee94fe5bf1159ff6af8ca8d635aade12d27b7 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 18:35:32 +0200
Subject: [PATCH 06/15] Update fr.json
---
i18n/fr.json | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index a0ce1461..0c504550 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -150,7 +150,7 @@
"unknown status": "Statut inconnu",
"server error or not responding": "Le serveur ne répond pas ou a rencontré une erreur",
"Could not post comment: %s": "Impossible de poster le commentaire : %s",
- "Sending paste…": "Envoi du document…",
+ "Sending document…": "Envoi du document…",
"Your document is %s (Hit Ctrl+c to copy)": "Votre document est disponible à l'adresse %s (Appuyez sur Ctrl+c/Cmd+c pour copier)",
"Delete data": "Supprimer les données du document",
"Could not create document: %s": "Impossible de créer le document : %s",
@@ -172,7 +172,7 @@
"Cloned: '%s'": "Cloner '%s'",
"The cloned file '%s' was attached to this document.": "Le fichier cloné '%s' a été attaché à ce document.",
"Attach a file": "Attacher un fichier",
- "alternatively drag & drop a file or paste an image from the clipboard": "au choix, glisser & déposer un fichier ou coller une image à partir du presse-papiers",
+ "alternatively drag & drop a file or document an image from the clipboard": "au choix, glisser & déposer un fichier ou coller une image à partir du presse-papiers",
"File too large, to display a preview. Please download the attachment.": "Fichier trop volumineux, pour afficher un aperçu. Veuillez télécharger la pièce jointe.",
"Remove attachment": "Enlever la pièce jointe",
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Votre navigateur ne supporte pas l'envoi de fichiers chiffrés. Merci d'utiliser un navigateur plus récent.",
@@ -210,13 +210,11 @@
"Encrypted note on %s": "Message chiffré sur %s",
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visiter ce lien pour voir la note. Donner l'URL à une autre personne lui permet également d'accéder à la note.",
"URL shortener may expose your decrypt key in URL.": "Raccourcir l'URL peut exposer votre clé de déchiffrement dans l'URL.",
- "URL shortener is enabled by default.": "URL shortener is enabled by default.",
"Save document": "Sauver le document",
"Your IP is not authorized to create documents.": "Votre adresse IP n'est pas autorisée à créer des documents.",
"Trying to shorten a URL that isn't pointing at our instance.": "Tentative de raccourcir une URL qui ne pointe pas vers notre instance.",
- "Proxy error: Proxy URL is empty. This can be a configuration issue, like wrong or missing config keys.": "Erreur lors de l'appel de YOURLS. Peut-être un problème de configuration, comme \"apiurl\" ou \"signature\" manquant.",
- "Proxy error: Error parsing proxy response. This can be a configuration issue, like wrong or missing config keys.": "Erreur d'analyse de la réponse YOURLS.",
- "Proxy error: Bad response. This can be a configuration issue, like wrong or missing config keys or a temporary outage.": "Proxy error: Bad response. This can be a configuration issue, like wrong or missing config keys or a temporary outage.",
+ "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Erreur lors de l'appel de YOURLS. Peut-être un problème de configuration, comme \"apiurl\" ou \"signature\" manquant.",
+ "Error parsing YOURLS response.": "Erreur d'analyse de la réponse YOURLS.",
"This secret message can only be displayed once. Would you like to see it now?": "Les documents de type \"Effacer après la lecture\" ne peuvent être affichés qu'une seule fois. Voulez-vous le voir maintenant ?",
"Yes, see it": "Oui, le voir",
"Dark Mode": "Mode Sombre",
@@ -229,7 +227,5 @@
"Link copied to clipboard": "Lien copié dans le presse-papier",
"Document text": "Texte du document",
"Tabulator key serves as character (Hit Ctrl+m or Esc to toggle)": "La touche de tabulation sert de caractère (Presser Ctrl+m ou Esc pour basculer)",
- "Theme": "Thème",
- "Decrypting paste…": "Déchiffrement du document…",
- "Preparing new paste…": "Préparation du nouveau document…"
+ "Theme": "Thème"
}
From 279d4d5c22a6bc8210f7cdd65dda30ace738900c Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 18:37:06 +0200
Subject: [PATCH 07/15] Update fr.json
---
i18n/fr.json | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index 0c504550..17b93f7a 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -172,7 +172,7 @@
"Cloned: '%s'": "Cloner '%s'",
"The cloned file '%s' was attached to this document.": "Le fichier cloné '%s' a été attaché à ce document.",
"Attach a file": "Attacher un fichier",
- "alternatively drag & drop a file or document an image from the clipboard": "au choix, glisser & déposer un fichier ou coller une image à partir du presse-papiers",
+ "alternatively drag & drop a file or paste an image from the clipboard": "au choix, glisser & déposer un fichier ou coller une image à partir du presse-papiers",
"File too large, to display a preview. Please download the attachment.": "Fichier trop volumineux, pour afficher un aperçu. Veuillez télécharger la pièce jointe.",
"Remove attachment": "Enlever la pièce jointe",
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Votre navigateur ne supporte pas l'envoi de fichiers chiffrés. Merci d'utiliser un navigateur plus récent.",
@@ -210,11 +210,13 @@
"Encrypted note on %s": "Message chiffré sur %s",
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visiter ce lien pour voir la note. Donner l'URL à une autre personne lui permet également d'accéder à la note.",
"URL shortener may expose your decrypt key in URL.": "Raccourcir l'URL peut exposer votre clé de déchiffrement dans l'URL.",
+ "URL shortener is enabled by default.": "URL shortener is enabled by default.",
"Save document": "Sauver le document",
"Your IP is not authorized to create documents.": "Votre adresse IP n'est pas autorisée à créer des documents.",
"Trying to shorten a URL that isn't pointing at our instance.": "Tentative de raccourcir une URL qui ne pointe pas vers notre instance.",
- "Error calling YOURLS. Probably a configuration issue, like wrong or missing \"apiurl\" or \"signature\".": "Erreur lors de l'appel de YOURLS. Peut-être un problème de configuration, comme \"apiurl\" ou \"signature\" manquant.",
- "Error parsing YOURLS response.": "Erreur d'analyse de la réponse YOURLS.",
+ "Proxy error: Proxy URL is empty. This can be a configuration issue, like wrong or missing config keys.": "Erreur lors de l'appel de YOURLS. Peut-être un problème de configuration, comme \"apiurl\" ou \"signature\" manquant.",
+ "Proxy error: Error parsing proxy response. This can be a configuration issue, like wrong or missing config keys.": "Erreur d'analyse de la réponse YOURLS.",
+ "Proxy error: Bad response. This can be a configuration issue, like wrong or missing config keys or a temporary outage.": "Proxy error: Bad response. This can be a configuration issue, like wrong or missing config keys or a temporary outage.",
"This secret message can only be displayed once. Would you like to see it now?": "Les documents de type \"Effacer après la lecture\" ne peuvent être affichés qu'une seule fois. Voulez-vous le voir maintenant ?",
"Yes, see it": "Oui, le voir",
"Dark Mode": "Mode Sombre",
@@ -222,7 +224,7 @@
"Error decompressing document, your browser does not support WebAssembly. Please use another browser to view this document.": "Erreur lors de la décompression du document, votre navigateur ne supporte pas WebAssembly. Veuillez utiliser un autre navigateur pour voir ce document.",
"Start over": "Recommencer",
"Document copied to clipboard": "Document copié dans le presse-papier",
- "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier appuyer sur le bouton Copier le lien ou utiliser le raccourci Ctrl+c/Cmd+c",
+ "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier-coller appuyer sur le bouton To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c",
"Copy link": "Copier le lien",
"Link copied to clipboard": "Lien copié dans le presse-papier",
"Document text": "Texte du document",
From 493d848c83fa5644a9157a0ef7ad1997d5dae9a5 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 18:37:52 +0200
Subject: [PATCH 08/15] Update fr.json
---
i18n/fr.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/fr.json b/i18n/fr.json
index 17b93f7a..ad71679e 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -224,7 +224,7 @@
"Error decompressing document, your browser does not support WebAssembly. Please use another browser to view this document.": "Erreur lors de la décompression du document, votre navigateur ne supporte pas WebAssembly. Veuillez utiliser un autre navigateur pour voir ce document.",
"Start over": "Recommencer",
"Document copied to clipboard": "Document copié dans le presse-papier",
- "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier-coller appuyer sur le bouton To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c",
+ "To copy document press on the copy button or use the clipboard shortcut Ctrl+c/Cmd+c": "Pour copier appuyer sur le bouton Copier le lien ou utiliser le raccourci Ctrl+c/Cmd+c",
"Copy link": "Copier le lien",
"Link copied to clipboard": "Lien copié dans le presse-papier",
"Document text": "Texte du document",
From b0df8e10f512939e43f65c7a4ea59091d08d5cc5 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 19:01:30 +0200
Subject: [PATCH 09/15] Update privatebin.js
---
js/privatebin.js | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/js/privatebin.js b/js/privatebin.js
index 53a29a4b..a0e0831c 100644
--- a/js/privatebin.js
+++ b/js/privatebin.js
@@ -930,7 +930,15 @@ jQuery.PrivateBin = (function($) {
}
// load strings from JSON
- $.getJSON('i18n/' + newLanguage + '.json' + new URL(document.currentScript.src).search, function(data) {
+ let main_script = document.querySelector('script[src^="js/privatebin.js"]');
+
+ if (main_script) {
+ let privatebin_version = main_script.getAttribute("src").split("?")[1] || null;
+ } else {
+ let privatebin_version = Math.floor(Date.now() / 60000);
+ }
+
+ $.getJSON('i18n/' + newLanguage + '.json?v=' + privatebin_version, function(data) {
language = newLanguage;
translations = data;
$(document).triggerHandler(languageLoadedEvent);
From 9b496acde5a7e545a2a4133897d20f037d1f4305 Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 19:02:12 +0200
Subject: [PATCH 10/15] Update privatebin.js
---
js/privatebin.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/js/privatebin.js b/js/privatebin.js
index a0e0831c..acb3f4a0 100644
--- a/js/privatebin.js
+++ b/js/privatebin.js
@@ -931,11 +931,12 @@ jQuery.PrivateBin = (function($) {
// load strings from JSON
let main_script = document.querySelector('script[src^="js/privatebin.js"]');
+ let privatebin_version;
if (main_script) {
- let privatebin_version = main_script.getAttribute("src").split("?")[1] || null;
+ privatebin_version = main_script.getAttribute("src").split("?")[1] || null;
} else {
- let privatebin_version = Math.floor(Date.now() / 60000);
+ privatebin_version = Math.floor(Date.now() / 60000);
}
$.getJSON('i18n/' + newLanguage + '.json?v=' + privatebin_version, function(data) {
From fd664dd5779e1e279d35e9083fc34ea922d0453f Mon Sep 17 00:00:00 2001
From: TW - Vincent <315173+touchweb-vincent@users.noreply.github.com>
Date: Sun, 21 Sep 2025 19:02:49 +0200
Subject: [PATCH 11/15] Update Configuration.php
---
lib/Configuration.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Configuration.php b/lib/Configuration.php
index 58fc064a..4e4befad 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -121,7 +121,7 @@ class Configuration
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
'js/legacy.js' => 'sha512-08+subq1Lo+r+la5ENqeXiMgNJcVaaTtBIFGkrjziSpvtgCId3Jtin4/OkSdHYSoeztwwIab8uvCzPKHta6puQ==',
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
- 'js/privatebin.js' => 'sha512-r18/FpRkITqGWMcvU8FjmqRHFrFBZmMoUoZW8KQvut0nwGVflz7jDjoEkwnRrvMzWRJCQwoFy5a4Z+iHIDrsfg==',
+ 'js/privatebin.js' => 'sha512-8LoAQt1Vh/P7KssjSADoK79ndleOIvyRXIuG0JgYsQULw7feo8oO5Labu4a1AhxrdiLu+uZFUj3Th22HYGvD8A==',
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
From 0befe7e3ccaae90ca6b6e3900827a0fb346db4f5 Mon Sep 17 00:00:00 2001
From: El RIDO
Date: Wed, 24 Sep 2025 12:38:50 +0200
Subject: [PATCH 12/15] update SRI hash
---
lib/Configuration.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Configuration.php b/lib/Configuration.php
index 4e4befad..e0e5982a 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -121,7 +121,7 @@ class Configuration
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
'js/legacy.js' => 'sha512-08+subq1Lo+r+la5ENqeXiMgNJcVaaTtBIFGkrjziSpvtgCId3Jtin4/OkSdHYSoeztwwIab8uvCzPKHta6puQ==',
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
- 'js/privatebin.js' => 'sha512-8LoAQt1Vh/P7KssjSADoK79ndleOIvyRXIuG0JgYsQULw7feo8oO5Labu4a1AhxrdiLu+uZFUj3Th22HYGvD8A==',
+ 'js/privatebin.js' => 'sha512-mqzsqmoDJRcSQCjIU3TiE4vNqgpmjrwxhscCATiHwlAaMaat2J1epLUK7995vX7UW6CfkpOWhz2dvwLQO/NQFg==',
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
From f03f2bf28d3ab2917487fee7b02f1e6c23a977d2 Mon Sep 17 00:00:00 2001
From: El RIDO
Date: Thu, 25 Sep 2025 22:06:38 +0200
Subject: [PATCH 13/15] simplify cache breaker extraction
---
js/privatebin.js | 14 +++-----------
lib/Configuration.php | 2 +-
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/js/privatebin.js b/js/privatebin.js
index acb3f4a0..4e765db3 100644
--- a/js/privatebin.js
+++ b/js/privatebin.js
@@ -930,16 +930,8 @@ jQuery.PrivateBin = (function($) {
}
// load strings from JSON
- let main_script = document.querySelector('script[src^="js/privatebin.js"]');
- let privatebin_version;
-
- if (main_script) {
- privatebin_version = main_script.getAttribute("src").split("?")[1] || null;
- } else {
- privatebin_version = Math.floor(Date.now() / 60000);
- }
-
- $.getJSON('i18n/' + newLanguage + '.json?v=' + privatebin_version, function(data) {
+ const cacheBreaker = document.querySelector('script[src^="js/privatebin.js"]').getAttribute("src").split(".js")[1] || "";
+ $.getJSON('i18n/' + newLanguage + '.json' + cacheBreaker, function(data) {
language = newLanguage;
translations = data;
$(document).triggerHandler(languageLoadedEvent);
@@ -2141,7 +2133,7 @@ jQuery.PrivateBin = (function($) {
// if so, we send the link to the shortener
// we do not remove the button, in case shortener fails
sendToShortener();
- }
+ }
}
/**
diff --git a/lib/Configuration.php b/lib/Configuration.php
index e0e5982a..a4cc7013 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -121,7 +121,7 @@ class Configuration
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
'js/legacy.js' => 'sha512-08+subq1Lo+r+la5ENqeXiMgNJcVaaTtBIFGkrjziSpvtgCId3Jtin4/OkSdHYSoeztwwIab8uvCzPKHta6puQ==',
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
- 'js/privatebin.js' => 'sha512-mqzsqmoDJRcSQCjIU3TiE4vNqgpmjrwxhscCATiHwlAaMaat2J1epLUK7995vX7UW6CfkpOWhz2dvwLQO/NQFg==',
+ 'js/privatebin.js' => 'sha512-Id47n8ZPz6j93KoR7DkaS48MxtwKftVq3RyZw9WRGpRT+6bYKP/ZkU84RscbcW3icxBTS9fQKQpdnmZ3rr00dQ==',
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
From a0c0d3d37b852e4ea06c670a4d8c0b612ebe1ce9 Mon Sep 17 00:00:00 2001
From: rugk
Date: Tue, 30 Sep 2025 14:21:17 +0200
Subject: [PATCH 14/15] Make sure legacy check returns true only on HTTPS (not
like ftp or whatever)
I am not sure why it was expressed so convoluted before?
Found that in https://github.com/orgs/PrivateBin/discussions/1657
---
js/legacy.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/js/legacy.js b/js/legacy.js
index 5d6dbc0b..1f27107b 100644
--- a/js/legacy.js
+++ b/js/legacy.js
@@ -106,8 +106,8 @@
return window.isSecureContext;
}
- // HTTP is obviously insecure
- if (window.location.protocol !== 'http:') {
+ // HTTPS is considered secure
+ if (window.location.protocol === 'https:') {
return true;
}
From 7ca49d13631417d07ef3ac6dfc45fb72f654f6be Mon Sep 17 00:00:00 2001
From: El RIDO
Date: Tue, 30 Sep 2025 20:45:24 +0200
Subject: [PATCH 15/15] chore: update SRI hashes
---
lib/Configuration.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Configuration.php b/lib/Configuration.php
index a4cc7013..b5ee90b5 100644
--- a/lib/Configuration.php
+++ b/lib/Configuration.php
@@ -119,7 +119,7 @@ class Configuration
'js/dark-mode-switch.js' => 'sha512-BhY7dNU14aDN5L+muoUmA66x0CkYUWkQT0nxhKBLP/o2d7jE025+dvWJa4OiYffBGEFgmhrD/Sp+QMkxGMTz2g==',
'js/jquery-3.7.1.js' => 'sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==',
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
- 'js/legacy.js' => 'sha512-08+subq1Lo+r+la5ENqeXiMgNJcVaaTtBIFGkrjziSpvtgCId3Jtin4/OkSdHYSoeztwwIab8uvCzPKHta6puQ==',
+ 'js/legacy.js' => 'sha512-mXAgFn/DonfPANvPO6Kf08zRKCeQ75jXK69gcUUOpPLFkp3KHnDhnvij8nEJxlutD/670Bfi4RNMG6uEjA4nNQ==',
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
'js/privatebin.js' => 'sha512-Id47n8ZPz6j93KoR7DkaS48MxtwKftVq3RyZw9WRGpRT+6bYKP/ZkU84RscbcW3icxBTS9fQKQpdnmZ3rr00dQ==',
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',