From 97026bc0a1f1c4d551096ccd140d307d70cf1515 Mon Sep 17 00:00:00 2001
From: Chris
Date: Mon, 21 Sep 2026 23:07:04 +0100
Subject: [PATCH] Allow opening in the side panel as well as the popup (#134)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Allow opening in the side panel as well as the popup (#121)
The popup closes the moment anything else takes focus, so clicking into the
page to check a replacement dismisses it and the terms have to be typed again.
Settings now offers "Open in: Popup | Side panel".
Both surfaces load the same assets/popup.html, popup.js and style.css — there
is no second copy of the UI. background/surface.ts registers the side panel
with ?surface=sidepanel, and that query string is the only thing popup.ts keys
its layout off: the panel fills the width it is given, pins the action buttons
to the bottom of the window, and drops the history list's height cap, which
only exists to keep the popup inside Chrome's 600px.
Clearing default_popup is the part that makes the toolbar button work: while a
popup is registered Chrome opens it and never fires action.onClicked, so
openPanelOnActionClick has nothing to act on. Neither that nor the panel
behaviour survives a browser restart, so both are reapplied on startup as well
as on install and whenever the preference changes.
side_panel.default_path in the manifest stays a plain path. A manifest Chrome
rejects stops the extension loading at all, and --load-extension does not work
in this environment to prove a query string there is accepted — the unmodified
manifest fails to install identically — so the query is applied through
sidePanel.setOptions instead, which runs before the panel can ever be opened.
The panel outlives a tab, unlike the popup, so it recounts when the user
switches tab or navigates; a count left over from a tab they have since moved
away from is worse than no count.
Also:
- chrome.sidePanel needs Chrome 114. Rather than setting
minimum_chrome_version and cutting older browsers off from updates, the
preference is hidden where the API is missing.
- The toggle-popup command had no handler, so Ctrl+Shift+S has never done
anything. It now opens whichever surface is configured.
- Switching to the side panel from inside the popup opens the panel there and
then, rather than leaving the user to work out they must click the toolbar
button again.
Documented in the help page, and translated into all ten locales.
Co-Authored-By: Claude Opus 5 (1M context)
* Add a side panel open/close button to the header
The preference under the cog is for choosing a default; this is for switching
surface there and then. In the popup the icon opens the side panel and closes
the popup behind it; in the panel it closes the panel. There is no
sidePanel.close(), so the panel closes its own window, which is also how the
popup dismisses itself once the panel has taken over.
The window id is looked up on load rather than in the click handler:
sidePanel.open has to be called while the user gesture is still in effect, and
awaiting windows.getCurrent() inside the handler risks spending it.
The sixth icon exposed a rule that has never worked. #header form set
flex-wrap: nowrap, but the markup carried bootstrap's .flex-wrap, whose
!important beat it — with five icons they happened to fit, so nobody noticed.
The class is gone, the form no longer shrinks, and the gap is 4px, so all six
icons and the full title fit across 320px.
Co-Authored-By: Claude Opus 5 (1M context)
* Move the header icons onto their own row
Six icons and the title were fighting over 320px: the icons ended up crowded
together and the title was trimmed to "Search and Repl...". The icons now sit
on a row of their own beneath the title, with the full width to spread across.
That row costs about 27px, which took every section back over the 600px at
which Chrome scrolls the whole popup, so the header padding drops to py-2, the
gap above the icons is 6px, and the history list cap comes down to 340px.
Measured across all ten locales: the tallest is now Russian at exactly 600.
Co-Authored-By: Claude Opus 5 (1M context)
* Group the header icons instead of putting them on their own row
A row of six evenly spaced glyphs under the title read as undifferentiated.
They are back on the title row, in two groups with a divider between them: the
two that only tell you something (help, about) and the four that do something
(history, settings, saved rules, side panel).
Fitting all six and the untruncated title across 320px needed the width back:
the icons are 16px rather than 18px, the gap within a group is 3px, and the
title span loses a redundant .mx-1 that doubled up with the flex gap. Title
renders in full at 320px.
Back on one row, every section has room again: the tallest is Russian at 575
against Chrome's 600px cap, so the history list cap returns to 380px.
Co-Authored-By: Claude Opus 5 (1M context)
* Split the header into a title line and a tab strip
Help and about only ever open documentation; history, settings, saved rules and
the side panel toggle change what you are looking at. The first pair now sits
on the title line, and the other four form a full-bleed tab strip beneath it,
sharing the width equally. The underline marking the open panel spans the whole
tab rather than just the glyph.
The strip costs about 26px, so the body panel's vertical padding drops to 12px
and the history list cap to 330px. Measured across all ten locales: the tallest
is Russian at 593 against Chrome's 600px cap.
Co-Authored-By: Claude Opus 5 (1M context)
---------
Co-authored-by: Claude Opus 5 (1M context)
---
_locales/ar/messages.json | 40 ++
_locales/de/messages.json | 40 ++
_locales/en/messages.json | 40 ++
_locales/es/messages.json | 40 ++
_locales/hi/messages.json | 40 ++
_locales/ja/messages.json | 40 ++
_locales/ko/messages.json | 40 ++
_locales/pt_PT/messages.json | 40 ++
_locales/ru/messages.json | 40 ++
_locales/zh_CN/messages.json | 40 ++
assets/help.html | 29 +
assets/popup-overview.png | Bin 26802 -> 27071 bytes
assets/popup-overview@2x.png | Bin 70024 -> 70802 bytes
assets/popup.html | 556 ++++++++--------
assets/setup-hidden-content.png | Bin 27269 -> 27536 bytes
assets/setup-hidden-content@2x.png | Bin 70487 -> 71225 bytes
assets/setup-input-fields.png | Bin 27273 -> 27553 bytes
assets/setup-input-fields@2x.png | Bin 70350 -> 71087 bytes
assets/setup-match-case.png | Bin 27142 -> 27412 bytes
assets/setup-match-case@2x.png | Bin 70435 -> 71181 bytes
assets/setup-regex.png | Bin 25870 -> 26147 bytes
assets/setup-regex@2x.png | Bin 67245 -> 68029 bytes
assets/setup-replace-html.png | Bin 27971 -> 28250 bytes
assets/setup-replace-html@2x.png | Bin 73092 -> 73836 bytes
assets/setup-save-rule.png | Bin 27046 -> 27319 bytes
assets/setup-save-rule@2x.png | Bin 70318 -> 71099 bytes
assets/setup-side-panel.png | Bin 0 -> 17306 bytes
assets/setup-side-panel@2x.png | Bin 0 -> 44116 bytes
assets/setup-whole-word.png | Bin 27056 -> 27341 bytes
assets/setup-whole-word@2x.png | Bin 69913 -> 70688 bytes
assets/setup-wordpress.png | Bin 27859 -> 28129 bytes
assets/setup-wordpress@2x.png | Bin 72536 -> 73274 bytes
assets/style.css | 985 ++++++++++++++++-------------
manifest.json | 7 +-
scripts/screenshots.mjs | 40 ++
src/background.ts | 24 +
src/background/surface.test.ts | 143 +++++
src/background/surface.ts | 103 +++
src/popup.ts | 140 ++++
src/testing/chromeMock.ts | 57 ++
src/types/types.ts | 3 +
41 files changed, 1779 insertions(+), 708 deletions(-)
create mode 100644 assets/setup-side-panel.png
create mode 100644 assets/setup-side-panel@2x.png
create mode 100644 src/background/surface.test.ts
create mode 100644 src/background/surface.ts
diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json
index beeb3eb..bf1ce4a 100644
--- a/_locales/ar/messages.json
+++ b/_locales/ar/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(محذوف)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "الفتح في",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "نافذة منبثقة",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "اللوحة الجانبية",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "تظل اللوحة الجانبية مفتوحة أثناء عملك على الصفحة.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "نافذة منبثقة أم لوحة جانبية",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "افتراضيًا تفتح الإضافة كنافذة منبثقة أسفل زر شريط الأدوات. وتُغلق النافذة المنبثقة بمجرد انتقال التركيز إلى شيء آخر، فالنقر داخل الصفحة للتحقق من الاستبدال يُخفيها ويضطرك إلى كتابة الكلمات من جديد.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "اختر اللوحة الجانبية أسفل أيقونة الترس لتفتح الإضافة في اللوحة الجانبية لكروم بدلًا من ذلك. تظل مفتوحة أثناء عملك على الصفحة، وتنتقل معك من تبويب إلى آخر، ويمكن توسيعها بالسحب. وكل ما عدا ذلك يعمل تمامًا كما في النافذة المنبثقة.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "يتبع هذا الإعداد ملفك الشخصي في كروم، ويفتح اختصار لوحة المفاتيح Ctrl+Shift+S ما اخترته منهما. وتتطلب اللوحة الجانبية كروم 114 أو أحدث؛ ولا يظهر الإعداد في الإصدارات الأقدم.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "الفتح في اللوحة الجانبية",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "إغلاق اللوحة الجانبية",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/de/messages.json b/_locales/de/messages.json
index c425f12..4235665 100644
--- a/_locales/de/messages.json
+++ b/_locales/de/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(entfernt)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "Öffnen in",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "Popup",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "Seitenleiste",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "Die Seitenleiste bleibt geöffnet, während Sie auf der Seite arbeiten.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "Popup oder Seitenleiste",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "Standardmäßig öffnet sich die Erweiterung als Popup unter der Symbolleisten-Schaltfläche. Ein Popup schließt sich, sobald etwas anderes den Fokus erhält: Ein Klick in die Seite, um eine Ersetzung zu prüfen, lässt es verschwinden, und die Begriffe müssen erneut eingegeben werden.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "Wählen Sie unter dem Zahnradsymbol Seitenleiste, um die Erweiterung stattdessen in der Seitenleiste von Chrome zu öffnen. Sie bleibt geöffnet, während Sie auf der Seite arbeiten, folgt Ihnen von Tab zu Tab und lässt sich breiter ziehen. Alles andere funktioniert genau wie im Popup.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "Die Einstellung folgt Ihrem Chrome-Profil, und das Tastenkürzel Strg+Umschalt+S öffnet jeweils die gewählte Variante. Die Seitenleiste erfordert Chrome 114 oder neuer; in älteren Versionen wird die Einstellung nicht angezeigt.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "In der Seitenleiste öffnen",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "Seitenleiste schließen",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 1530a9f..92596ba 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(removed)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "Open in",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "Popup",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "Side panel",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "The side panel stays open while you work on the page.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "Popup or side panel",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "By default the extension opens as a popup under the toolbar button. A popup closes as soon as anything else takes the focus, so clicking into the page to check a replacement dismisses it and the terms have to be typed again.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "Choose Side panel under the cog icon to open in Chrome's side panel instead. It stays open while you work on the page, follows you from tab to tab, and can be dragged wider. Everything else works exactly as it does in the popup.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "The setting follows your Chrome profile, and the keyboard shortcut Ctrl+Shift+S opens whichever one you have chosen. The side panel needs Chrome 114 or newer; on anything older the setting is not shown.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "Open in the side panel",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "Close the side panel",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/es/messages.json b/_locales/es/messages.json
index d732685..95eeed3 100644
--- a/_locales/es/messages.json
+++ b/_locales/es/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(eliminado)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "Abrir en",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "Ventana emergente",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "Panel lateral",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "El panel lateral permanece abierto mientras trabaja en la página.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "Ventana emergente o panel lateral",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "De forma predeterminada la extensión se abre como una ventana emergente bajo el botón de la barra de herramientas. Una ventana emergente se cierra en cuanto cualquier otra cosa recibe el foco, así que hacer clic en la página para comprobar una sustitución la descarta y hay que volver a escribir los términos.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "Elija Panel lateral bajo el icono del engranaje para abrirla en el panel lateral de Chrome. Permanece abierto mientras trabaja en la página, le sigue de pestaña en pestaña y se puede ensanchar. Todo lo demás funciona exactamente igual que en la ventana emergente.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "El ajuste sigue a su perfil de Chrome, y el atajo de teclado Ctrl+Mayús+S abre el que haya elegido. El panel lateral necesita Chrome 114 o posterior; en versiones anteriores el ajuste no se muestra.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "Abrir en el panel lateral",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "Cerrar el panel lateral",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json
index f0745ff..f914e43 100644
--- a/_locales/hi/messages.json
+++ b/_locales/hi/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(हटाया गया)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "इसमें खोलें",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "पॉपअप",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "साइड पैनल",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "जब आप पृष्ठ पर काम करते हैं, साइड पैनल खुला रहता है।",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "पॉपअप या साइड पैनल",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "डिफ़ॉल्ट रूप से यह एक्सटेंशन टूलबार बटन के नीचे पॉपअप के रूप में खुलता है। जैसे ही फ़ोकस कहीं और जाता है पॉपअप बंद हो जाता है, इसलिए बदलाव जाँचने के लिए पृष्ठ पर क्लिक करते ही वह गायब हो जाता है और शब्द फिर से लिखने पड़ते हैं।",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "इसके बजाय Chrome के साइड पैनल में खोलने के लिए गियर आइकन के नीचे साइड पैनल चुनें। जब आप पृष्ठ पर काम करते हैं यह खुला रहता है, टैब बदलने पर साथ चलता है, और इसे चौड़ा खींचा जा सकता है। बाकी सब कुछ ठीक वैसे ही काम करता है जैसे पॉपअप में।",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "यह सेटिंग आपकी Chrome प्रोफ़ाइल के साथ चलती है, और कीबोर्ड शॉर्टकट Ctrl+Shift+S वही खोलता है जो आपने चुना है। साइड पैनल के लिए Chrome 114 या नया चाहिए; उससे पुराने में यह सेटिंग नहीं दिखती।",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "साइड पैनल में खोलें",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "साइड पैनल बंद करें",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json
index 088c69b..d53577b 100644
--- a/_locales/ja/messages.json
+++ b/_locales/ja/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(削除)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "開く場所",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "ポップアップ",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "サイドパネル",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "サイドパネルはページでの作業中も開いたままになります。",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "ポップアップかサイドパネルか",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "既定では、この拡張機能はツールバーのボタンの下にポップアップとして開きます。ポップアップは他のものにフォーカスが移った時点で閉じるため、置換を確認しようとページをクリックすると消えてしまい、検索語を入力し直すことになります。",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "歯車アイコンの下でサイドパネルを選ぶと、代わりに Chrome のサイドパネルで開きます。ページでの作業中も開いたままで、タブを切り替えても付いてきて、幅を広げることもできます。それ以外はポップアップとまったく同じように動作します。",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "この設定は Chrome のプロファイルに従い、キーボードショートカット Ctrl+Shift+S は選んだ方を開きます。サイドパネルには Chrome 114 以降が必要で、それより古い場合この設定は表示されません。",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "サイドパネルで開く",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "サイドパネルを閉じる",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json
index 34f01d6..3204c8c 100644
--- a/_locales/ko/messages.json
+++ b/_locales/ko/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(삭제됨)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "열기 위치",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "팝업",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "사이드 패널",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "사이드 패널은 페이지에서 작업하는 동안 계속 열려 있습니다.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "팝업 또는 사이드 패널",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "기본적으로 이 확장 프로그램은 도구 모음 버튼 아래에 팝업으로 열립니다. 팝업은 다른 곳으로 포커스가 옮겨가는 순간 닫히므로, 바꾼 결과를 확인하려고 페이지를 클릭하면 사라지고 검색어를 다시 입력해야 합니다.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "톱니바퀴 아이콘 아래에서 사이드 패널을 선택하면 Chrome의 사이드 패널에서 열립니다. 페이지에서 작업하는 동안 계속 열려 있고, 탭을 옮겨도 따라오며, 넓게 늘릴 수도 있습니다. 그 밖의 모든 것은 팝업과 똑같이 동작합니다.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "이 설정은 Chrome 프로필을 따라가며, 키보드 단축키 Ctrl+Shift+S는 선택한 쪽을 엽니다. 사이드 패널은 Chrome 114 이상이 필요하고, 그보다 낮은 버전에서는 이 설정이 표시되지 않습니다.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "사이드 패널에서 열기",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "사이드 패널 닫기",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/pt_PT/messages.json b/_locales/pt_PT/messages.json
index d01da4a..372e75a 100644
--- a/_locales/pt_PT/messages.json
+++ b/_locales/pt_PT/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(removido)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "Abrir em",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "Janela pop-up",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "Painel lateral",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "O painel lateral permanece aberto enquanto trabalha na página.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "Janela pop-up ou painel lateral",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "Por predefinição a extensão abre como uma janela pop-up por baixo do botão da barra de ferramentas. Uma pop-up fecha assim que outra coisa recebe o foco, por isso clicar na página para verificar uma substituição fá-la desaparecer e os termos têm de ser escritos de novo.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "Escolha Painel lateral sob o ícone da roda dentada para abrir no painel lateral do Chrome. Fica aberto enquanto trabalha na página, acompanha-o de separador em separador e pode ser alargado. Tudo o resto funciona exatamente como na pop-up.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "A definição acompanha o seu perfil do Chrome, e o atalho de teclado Ctrl+Shift+S abre aquele que tiver escolhido. O painel lateral requer o Chrome 114 ou mais recente; em versões anteriores a definição não é apresentada.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "Abrir no painel lateral",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "Fechar o painel lateral",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json
index f51687c..ba40787 100644
--- a/_locales/ru/messages.json
+++ b/_locales/ru/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(удалено)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "Открывать в",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "Всплывающем окне",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "Боковой панели",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "Боковая панель остаётся открытой, пока вы работаете со страницей.",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "Всплывающее окно или боковая панель",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "По умолчанию расширение открывается во всплывающем окне под кнопкой на панели инструментов. Такое окно закрывается, как только фокус переходит на что-то другое: щелчок по странице, чтобы проверить замену, закрывает его, и слова приходится вводить заново.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "Выберите Боковая панель под значком шестерёнки, чтобы расширение открывалось в боковой панели Chrome. Она остаётся открытой, пока вы работаете со страницей, следует за вами при переключении вкладок, и её можно растянуть шире. Всё остальное работает точно так же, как во всплывающем окне.",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "Настройка привязана к вашему профилю Chrome, а сочетание клавиш Ctrl+Shift+S открывает выбранный вариант. Боковая панель требует Chrome 114 или новее; в более старых версиях настройка не отображается.",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "Открыть в боковой панели",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "Закрыть боковую панель",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json
index 3f8c533..80a517c 100644
--- a/_locales/zh_CN/messages.json
+++ b/_locales/zh_CN/messages.json
@@ -522,5 +522,45 @@
"history_removed": {
"message": "(已删除)",
"description": "Shown in the History panel when the replacement term is empty"
+ },
+ "open_in": {
+ "message": "打开方式",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_popup": {
+ "message": "弹出窗口",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_side_panel": {
+ "message": "侧边栏",
+ "description": "Settings: popup or side panel"
+ },
+ "open_in_hint": {
+ "message": "你在页面上操作时,侧边栏会一直保持打开。",
+ "description": "Settings: popup or side panel"
+ },
+ "sidebar_title": {
+ "message": "弹出窗口还是侧边栏",
+ "description": "Help section title"
+ },
+ "sidebar_p1": {
+ "message": "默认情况下,扩展会在工具栏按钮下方以弹出窗口的形式打开。只要焦点转到别处,弹出窗口就会关闭——点击页面查看替换结果会让它消失,搜索词也得重新输入。",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p2": {
+ "message": "在齿轮图标下选择侧边栏,扩展就会改在 Chrome 的侧边栏中打开。你在页面上操作时它会一直开着,切换标签页时也会跟随,还可以拖宽。其余一切都和弹出窗口中完全一样。",
+ "description": "Help section on the side panel"
+ },
+ "sidebar_p3": {
+ "message": "该设置随你的 Chrome 配置文件同步,键盘快捷键 Ctrl+Shift+S 会打开你所选择的那一种。侧边栏需要 Chrome 114 或更高版本;更早的版本不会显示此设置。",
+ "description": "Help section on the side panel"
+ },
+ "open_side_panel": {
+ "message": "在侧边栏中打开",
+ "description": "Tooltip on the side panel icon in the popup"
+ },
+ "close_side_panel": {
+ "message": "关闭侧边栏",
+ "description": "Tooltip on the side panel icon when shown in the panel"
}
}
diff --git a/assets/help.html b/assets/help.html
index 8359982..df4694b 100644
--- a/assets/help.html
+++ b/assets/help.html
@@ -51,6 +51,7 @@ Help
Expressions
Replacing text in WordPress
Save and apply on page reload
+ Popup or side panel
History, Swap and language
Reporting Issues
@@ -411,6 +412,34 @@ Multiple Matching Rules
+
+
History, Swap and language
diff --git a/assets/popup-overview.png b/assets/popup-overview.png
index 1ba7b117ba73d5ddcef47bc28f5af224f363ff4c..5666404373fa712238a6e056d9e9f893f128f6ba 100644
GIT binary patch
literal 27071
zcmbrmbySsY*DtCF(t;o<(jg5J(nv^1i8KgEhop21f`YV2NH<7#cS?sKNQcth&6zxV
zd}r+MjPHHU9_Kh5>kn3Nuj{(*Ie#??cquQ5iAIce>((tyX({nnw{G2jcIy@b6AA+S
z1cPZ=*2TvxwQg7fvseYo{ogoDT+@aE_qQ=uG6#
zWqI{qGc)~BjAT$rwfeL@U0Z2A+u*#r@V7sKUoMtYvzP7due|-`fyV2r^D0zL44c*A
zjMbl6`xddBX8N*?u7?bjftbR=jSuKwQOn1x+XZr%^ankB%A$}cK<0UpLMt9u{&r0M
z+Y=gU>U7t`HUFcl%X8C>o%vR^g4bq~70eP+ZufVr6ykYor)wNkSK%_wR?n`eU8;
z&v@m8?~(2H{&WovzGOB|Htd$nP+iScE94exWYQ?H-C-9
zsTaNb+b#C#9ws5%Ga88q=h(o(?RL9+*J}0iQC=zcC;G6Nb>5^Zf3vf>RHR>CXb;SO
z>azD|)_otdqWDd-56z3OgU3Ry2U6Q_)&<~+gVmo{WI|>D!^@5r7XthVky5_Gk%b=>$U;K^M
zg_GK$Gu5w}ulctpI&?FfO7iORcy?`E)DNxPdNvWc$%Bm3^ktev@J?&7_ai?0CaPFC
zO__3WBhx9Di;CaVb}qV(PIedJztj4!zHYf>#kP5uow?hSA|fL3(W&EBKQl2$_jh-B
zZRT!~eeX3%^625pL+1sOAp)}R<8^`VUq1;q&fdyq0=Zav=?|uZpB+zQsOqHufxN6x>-59
zr!)L|=s88bda?dVlCIY!*F#gYzF4k_M%t~)Sx+&-1Cy%rT;`W2%Sm23)$feX*3O7j
zu$IfmbkZ(MH@_M7MCHG(ekY(9EBiz?mQ%X2RXOylg777$N{+Hc?h=tC%HbZHRHqex
z^{YIx;f%(nidR%Rx2E4cXs;cvvR%yAs=R_7Pp2}zN}a)H)_m!r!xQwu(%aG6ZyMdn
zoeXPV2An*|wXZl(b-eRJ-o%j3ZD$x_eh5gM?%P3dd~%V$9?1S+AYBX6K;S0#Vp^
zezY4%pU5o0{{0w`kxmXoH)bU()UM4WcrLcHKOk(-X1cS|VH&l?$^4jtEUh^upgp@J
z&{C^wXlsWj99v;%c9zU(4vN~Dj)fc4Fc$`kpN~eFHlKP4pUmA!e46F>E~Cm4Zt3Sy
z+33|@L@{(r1)dX=Q}^Zb*e>`cCP`{lSp5E#uZ4_=IH)5oF0PJedaOFGQxy?+YTiQS
ze0ex_7%ISzP+%S>nXJJ_zP9+#x=ti6w;Bn{=lpe=1g3$$7JA2n4NNS*Xx%_kmfFE8
z61q^*{!>l%#$@qpyAC8=nWs>Wan+S>%45+p$$0VLZWv>Y+QAj7em_{}TRFtEoBbvxC*(
z00{z3@6IfZ4%YbN#>7B=gbo7jMt8;H&!afhav8bDXQxVZl?CL(H`V4Vy^@d
8<>tdYc35W8;q3oHMQSLz6Webp^h6;NI^`8^U#2
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
literal 26802
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