Merge branch 'dev' into boosts

This commit is contained in:
mr. m
2026-04-11 12:05:20 +02:00
committed by GitHub
275 changed files with 3391 additions and 1080 deletions

View File

@@ -505,6 +505,20 @@ jobs:
run: |
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object --depth 1
- name: Download signmar-linux-x86_64 from artifacts
uses: actions/download-artifact@v4
with:
name: signmar-linux-x86_64
- name: Sign MAR files
env:
SIGNMAR: ${{ github.workspace }}/signmar-linux-x86_64/signmar
ZEN_MAR_SIGNING_PASSWORD: ${{ secrets.ZEN_MAR_SIGNING_PASSWORD }}
ZEN_SIGNING_CERT_PEM_BASE64: ${{ secrets.ZEN_SIGNING_CERT_PEM_BASE64 }}
ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64: ${{ secrets.ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64 }}
run: |
bash scripts/mar_sign.sh -s
- name: Copy update manifests
env:
RELEASE_BRANCH: ${{ inputs.update_branch }}
@@ -551,8 +565,6 @@ jobs:
./zen-x86_64.AppImage.zsync/*
./zen-aarch64.AppImage/*
./zen-aarch64.AppImage.zsync/*
./zen.win-x86_64.zip/*
./zen.win-arm64.zip/*
./linux.mar/*
./linux-aarch64.mar/*
./windows.mar/*
@@ -590,8 +602,6 @@ jobs:
./zen-x86_64.AppImage.zsync/*
./zen-aarch64.AppImage/*
./zen-aarch64.AppImage.zsync/*
./.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip
./.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip
./linux.mar/*
./linux-aarch64.mar/*
./.github/workflows/object/windows-x64-signed-x86_64/windows.mar

View File

@@ -42,7 +42,7 @@ jobs:
echo "last_month_year=$previous_year" >> "$GITHUB_ENV"
- name: Run issue-metrics tool
uses: github/issue-metrics@v2
uses: github-community-projects/issue-metrics@v2
env:
GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
HIDE_AUTHOR: true

View File

@@ -173,3 +173,11 @@ jobs:
retention-days: 5
name: linux_update_manifest_${{ matrix.arch }}
path: ./dist/update
- name: Upload signmar
if: ${{ matrix.arch == 'x86_64' }}
uses: actions/upload-artifact@v4
with:
retention-days: 2
name: signmar-linux-x86_64
path: engine/obj-x86_64-pc-linux-gnu/dist/bin/signmar

View File

@@ -128,7 +128,6 @@ jobs:
# Always exist with 0, even if bootstrap fails
./mach --no-interactive bootstrap --application-choice browser --exclude macos-sdk || true
cd ..
ls /Library/Developer/CommandLineTools/SDKs/MacOSX26.2.sdk
- name: Build language packs
run: sh scripts/download-language-packs.sh

View File

@@ -10,6 +10,8 @@ fi
. $HOME/.cargo/env
bash ./scripts/mar_sign.sh -i
ulimit -n 4096
if command -v Xvfb &> /dev/null; then

View File

@@ -103,6 +103,10 @@ jobs:
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Import external patches
if: steps.git-check.outputs.files_changed == 'true'
run: python3 scripts/update_external_patches.py || true
- name: Check if patches got applied
if: steps.git-check.outputs.files_changed == 'true'
id: check-patches
@@ -115,10 +119,6 @@ jobs:
if: steps.git-check.outputs.files_changed == 'true'
run: python3 scripts/import_external_tests.py || true
- name: Import external patches
if: steps.git-check.outputs.files_changed == 'true'
run: python3 scripts/update_external_patches.py || true
- name: Create pull request
uses: peter-evans/create-pull-request@v7
if: steps.git-check.outputs.files_changed == 'true'

9
.gitignore vendored
View File

@@ -25,3 +25,12 @@ locales/firefox-l10n/
!src/toolkit/themes/shared/design-system/dist/
.DS_Store
mozconfig
build/signing/env/
build/signing/nss_config/
build/signing/cert.pem
build/signing/private_key.pem
build/signing/private_key.p12

View File

@@ -34,8 +34,8 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
### Firefox Versions
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `148.0.2`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 149.0`!
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `149.0.2`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 149.0.2`!
### Contributing

View File

@@ -1 +1 @@
c10d7dc50d4b596942cce48f8b023b831a27480a
fc45ac45a16dd9312a3e678fdaef33aaa7e0e641

Binary file not shown.

View File

@@ -89,8 +89,6 @@ if test "$ZEN_RELEASE"; then
ac_add_options --enable-replace-malloc
fi
ac_add_options --enable-unverified-updates
ac_add_options --enable-jxl
ac_add_options --with-unsigned-addon-scopes=app,system

View File

@@ -43,10 +43,6 @@ else
fi
fi
if test "$ZEN_RELEASE"; then
ac_add_options --with-macos-sdk=/Library/Developer/CommandLineTools/SDKs/MacOSX26.2.sdk
fi
# Keep using ld64 on PGO/LTO builds because of performance regressions when using lld.
# Mozilla sets "MOZ_LD64_KNOWN_GOOD" to true when they do automated builds with PGO/LTO on macOS.
# See https://searchfox.org/firefox-main/rev/e61d59b5c9a651fd7bf28043f87c0dc669833496/build/moz.configure/lto-pgo.configure#261

View File

@@ -26,9 +26,6 @@ fi
# This line should be removed once the detection is fixed.
ac_add_options --without-ccache
ac_add_options --disable-maintenance-service
ac_add_options --disable-bits-download
if test "$SURFER_COMPAT" = "x86_64"; then
ac_add_options --target=x86_64-pc-windows-msvc
ac_add_options --enable-eme=widevine,wmfcdm

View File

@@ -6,9 +6,9 @@ zen-panel-ui-current-profile-text = الملف الشخصي الحالي
unified-extensions-description = تستخدم الإضافات لجلب المزيد من الوظائف الإضافية إلى { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
.label =
{$isEssential ->
[true] إعادة تعيين علامة التبويب الأساسية
*[false] إعادة تعيين التبويب المثبت
{ $isEssential ->
[true] إعادة تعيين علامة التبويب الأساسية
*[false] إعادة تعيين التبويب المثبت
}
.accesskey = ر
tab-context-zen-add-essential =
@@ -20,10 +20,11 @@ tab-context-zen-remove-essential =
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
.label =
{$isEssential ->
{ $isEssential ->
[true] استبدل الرابط الأساسي بـ
*[false] استبدل الرابط المثبت بـ
الحالي
*[false]
استبدل الرابط المثبت بـ
الحالي
}
.accesskey = C
tab-context-zen-edit-title =

View File

@@ -4,7 +4,7 @@
zen-menubar-toggle-pinned-tabs =
.label =
{$pinnedAreCollapsed ->
{ $pinnedAreCollapsed ->
[true] توسيع علامات التبويب المثبتة
*[false] طي علامات التبويب المثبتة
}

View File

@@ -26,19 +26,19 @@ sidebar-zen-create-new =
.label = إنشاء جديد...
tabbrowser-unload-tab-button =
.tooltiptext =
{$tabCount ->
{ $tabCount ->
[one] تفريغ والتبديل إلى علامة التبويب
*[other] تفريغ { $tabCount } علامات التبويب والتبديل إلى الأولى
}
tabbrowser-reset-pin-button =
.tooltiptext =
{$tabCount ->
{ $tabCount ->
[one] إعادة تعيين علامة التبويب وتثبيتها
*[other] إعادة تعيين وتثبيت { $tabCount}
*[other] إعادة تعيين وتثبيت { $tabCount }
}
zen-tab-sublabel =
{$tabSubtitle ->
{ $tabSubtitle ->
[zen-default-pinned] العودة إلى الرابط المثبت
[zen-default-pinned-cmd] فصل عن علامة التبويب المثبتة
*[other] { $tabSubtitle}
*[other] { $tabSubtitle }
}

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Afegeix als essencials
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } espais ocupats
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Elimina dels essencials
.accesskey = R

View File

@@ -5,8 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Pestanya dividida (calen diverses pestanyes seleccionades)
*[other] Divideix { $tabCount } pestanyes
[-1] Pestanya dividida
[1] Uneix pestanyes (calen diverses pestanyes seleccionades)
*[other] Uneix { $tabCount } pestanyes
}
.accesskey = S
zen-split-link =

View File

@@ -22,7 +22,7 @@ tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Amnewid URL Hanfodol gyda'r Cyfredol
*[false] Amnewid URL wedi'i binio gyda'r Cyfredol
*[false] Amnewid URL wedi'i binio gyda'r Cyfredol
}
.accesskey = P
tab-context-zen-edit-title =

View File

@@ -2,7 +2,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-panel-ui-workspaces-text = Gofodau Gwaith
zen-panel-ui-workspaces-text = Gofodau
zen-panel-ui-spaces-label =
.label = Gofodau
zen-panel-ui-workspaces-create =
@@ -10,7 +10,7 @@ zen-panel-ui-workspaces-create =
zen-panel-ui-folder-create =
.label = Creu Ffolder
zen-panel-ui-live-folder-create =
.label = Live Folder
.label = Ffolder Byw
zen-panel-ui-new-empty-split =
.label = Hollt Newydd
zen-workspaces-panel-context-delete =
@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = Dadlwytho Gofod
zen-workspaces-panel-unload-others =
.label = Unload All Other Spaces
.label = Dadlwytho Pob Gofod Arall
zen-workspaces-how-to-reorder-title = Sut i aildrefnu gofodau
zen-workspaces-how-to-reorder-desc = Llusgwch yr eiconau gofod ar waelod y bar ochr i'w haildrefnu
zen-workspaces-change-theme =

View File

@@ -8,9 +8,9 @@ category-zen-looks =
zen-warning-language = Das Ändern der Standardsprache könnte es Websites erleichtern, dich zu verfolgen.
zen-vertical-tabs-layout-header = Browser-Layout
zen-vertical-tabs-layout-description = Wähle das Layout, das am besten zu dir passt
zen-layout-single-toolbar = Einzelne Symbolleiste
zen-layout-multiple-toolbar = Mehrere Symbolleisten
zen-layout-collapsed-toolbar = Eingeklappte Symbolleiste
zen-layout-single-toolbar = Nur Seitenleiste
zen-layout-multiple-toolbar = Seitenleiste und obere Symbolleiste
zen-layout-collapsed-toolbar = Eingeklappte Seitenleiste
sync-currently-syncing-workspaces = Arbeitsbereiche
sync-engine-workspaces =
.label = Arbeitsbereiche
@@ -43,11 +43,11 @@ category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Arbeitsbereiche
zen-tabs-select-recently-used-on-close =
.label = When closing a tab, switch to the most recently used tab instead of the next tab
.label = Beim Schließen eines Tabs zum zuletzt verwendeten Tab wechseln statt zum nächsten
zen-tabs-close-on-back-with-no-history =
.label = Tab schließen und zum Besitzer-Tab (oder dem zuletzt benutzten Tab) wechseln, wenn kein Tab-Verlauf vorhanden ist
.label = Tab schließen und zum Besitzer-Tab (oder dem zuletzt verwendeten Tab) wechseln, wenn kein Verlauf vorhanden ist
zen-settings-workspaces-sync-unpinned-tabs =
.label = Sync only pinned tabs in workspaces
.label = Nur angeheftete Tabs in Arbeitsbereichen synchronisieren
zen-tabs-cycle-by-attribute =
.label = Strg+Tab wechselt nur zwischen Essential- oder Arbeitsbereich-Tabs
zen-tabs-cycle-ignore-pending-tabs =
@@ -57,11 +57,11 @@ zen-look-and-feel-compact-toolbar-themed =
.label = Theme-Hintergrund für kompakte Symbolleiste verwenden
zen-workspace-continue-where-left-off =
.label = Dort fortfahren, wo du aufgehört hast
pane-zen-pinned-tab-manager-title = Angepinnte Tabs
zen-pinned-tab-manager-header = Allgemeine Einstellungen für angepinnte Tabs
zen-pinned-tab-manager-description = Zusätzliches Verhalten von angepinnten Tabs verwalten
pane-zen-pinned-tab-manager-title = Angeheftete Tabs
zen-pinned-tab-manager-header = Allgemeine Einstellungen für angeheftete Tabs
zen-pinned-tab-manager-description = Zusätzliches Verhalten von angehefteten Tabs verwalten
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Angepinnte Tabs beim Start auf ihre ursprünglich angepinnte URL zurücksetzen
.label = Angeheftete Tabs beim Start auf ihre ursprüngliche URL zurücksetzen
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Container-spezifische Essentials aktivieren
zen-pinned-tab-manager-close-shortcut-behavior-label = Verhalten der Tastenkombination zum Schließen von Tabs
@@ -83,17 +83,17 @@ zen-settings-workspaces-description = Mit Arbeitsbereichen kannst du mehrere Bro
zen-settings-workspaces-enabled =
.label = Arbeitsbereiche aktivieren (experimentell)
zen-settings-workspaces-hide-default-container-indicator =
.label = Container-Indikator in der Tab-Leiste ausblenden
.label = Standard-Container-Indikator in der Tab-Leiste ausblenden
zen-key-unsaved = Nicht gespeichertes Tastenkürzel! Bitte speichere es, indem du nach der Eingabe die „Escape“-Taste drückst.
zen-key-conflict = Konflikt mit { $group } -> { $shortcut }
pane-zen-theme-title = Design-Einstellungen
zen-vertical-tabs-title = Seitenleiste und Tab-Layout
zen-vertical-tabs-header = Vertikale Tabs
zen-vertical-tabs-description = Verwalte die Ausrichtung der Tabs und andere Layout-Einstellungen
zen-vertical-tabs-description = Verwalte deine Tabs in einem vertikalen Layout
zen-vertical-tabs-show-expand-button =
.label = Erweitern-Schaltfläche anzeigen
zen-vertical-tabs-newtab-on-tab-list =
.label = "Neuer Tab"-Button in der Tab-Liste anzeigen
.label = Neuer Tab-Button in der Tab-Liste anzeigen
zen-vertical-tabs-newtab-top-button-up =
.label = Schaltfläche „Neuer Tab“ nach oben verschieben
zen-vertical-tabs-expand-tabs-by-default = Tabs standardmäßig erweitern
@@ -106,7 +106,7 @@ zen-theme-disable-all-enabled =
.title = Alle Mods deaktivieren
zen-theme-disable-all-disabled =
.title = Alle Mods aktivieren
zen-theme-marketplace-description = Finde und installiere Designs aus dem Store.
zen-theme-marketplace-description = Finde und installiere Mods aus dem Store.
zen-theme-marketplace-remove-button =
.label = Design entfernen
zen-theme-marketplace-check-for-updates-button =
@@ -119,27 +119,27 @@ zen-theme-marketplace-import-success = Mods erfolgreich importiert
zen-theme-marketplace-import-failure = Beim Importieren der Mods ist ein Fehler aufgetreten
zen-theme-marketplace-export-success = Mods erfolgreich exportiert
zen-theme-marketplace-export-failure = Beim Exportieren der Mods ist ein Fehler aufgetreten
zen-theme-marketplace-updates-success = Design erfolgreich aktualisiert
zen-theme-marketplace-updates-success = Mods erfolgreich aktualisiert
zen-theme-marketplace-updates-failure = Es konnten keine Updates gefunden werden!
zen-theme-marketplace-toggle-enabled-button =
.title = Design deaktivieren
zen-theme-marketplace-toggle-disabled-button =
.title = Design aktivieren
zen-theme-marketplace-remove-confirmation = Möchtest du dieses Mod wirklich entfernen?
zen-theme-marketplace-remove-confirmation = Möchtest du diesen Mod wirklich entfernen?
zen-theme-marketplace-close-modal = Schließen
zen-theme-marketplace-theme-header-title =
.title = CSS-Selektor: { $name }
zen-theme-marketplace-dropdown-default-label =
.label = Keine
zen-theme-marketplace-input-default-placeholder =
.placeholder = Gib etwas ein...
.placeholder = Etwas eingeben...
pane-zen-marketplace-title = Zen-Mods
zen-themes-auto-update =
.label = Installierte Mods beim Start automatisch aktualisieren
zen-settings-workspaces-force-container-tabs-to-workspace =
.label = Zum Arbeitsbereich wechseln, in dem Container als Standard gesetzt ist, wenn Container-Tabs geöffnet werden
zen-theme-marketplace-link = Store besuchen
zen-dark-theme-styles-header = Dunkles Design Stile
zen-dark-theme-styles-header = Dunkles Design
zen-dark-theme-styles-description = Passe das dunkle Design nach deinen Wünschen an
zen-dark-theme-styles-amoled = Nacht-Design
zen-dark-theme-styles-default = Standardmäßiges dunkles Design
@@ -149,7 +149,7 @@ zen-compact-mode-styles-top = Obere Leiste ausblenden
zen-compact-mode-styles-both = Beides ausblenden
zen-urlbar-title = Zen-Adressleiste
zen-urlbar-header = Allgemeine Einstellungen für die Adressleiste
zen-urlbar-description = Passen Sie die Adressleiste nach Ihren Wünschen an
zen-urlbar-description = Passe die Adressleiste nach deinen Wünschen an
zen-urlbar-behavior-label = Verhalten
zen-urlbar-behavior-normal =
.label = Normal
@@ -162,7 +162,7 @@ category-zen-CKS =
.tooltiptext = { pane-zen-CKS-title }
pane-settings-CKS-title = { -brand-short-name }-Tastenkürzel
category-zen-marketplace =
.tooltiptext = Zen Mods
.tooltiptext = Zen-Mods
zen-settings-CKS-header = Passen Sie Ihre Tastenkürzel an
zen-settings-CKS-description = Ändere die Standard-Tastenkürzel nach deinen Wünschen und verbessere dein Browser-Erlebnis
zen-settings-CKS-disable-firefox =
@@ -175,9 +175,9 @@ zenCKSOption-group-other = Sonstiges
zenCKSOption-group-windowAndTabManagement = Fenster- und Tab-Verwaltung
zenCKSOption-group-navigation = Navigation
zenCKSOption-group-searchAndFind = Suchen und Finden
zenCKSOption-group-pageOperations = Seitenoperationen
zenCKSOption-group-historyAndBookmarks = Verlauf & Lesezeichen
zenCKSOption-group-mediaAndDisplay = Medien & Anzeige
zenCKSOption-group-pageOperations = Seitenaktionen
zenCKSOption-group-historyAndBookmarks = Verlauf und Lesezeichen
zenCKSOption-group-mediaAndDisplay = Medien und Anzeige
zenCKSOption-group-zen-compact-mode = Kompaktmodus
zenCKSOption-group-zen-workspace = Zen-Arbeitsbereiche
zenCKSOption-group-zen-other = Andere Zen-Funktionen
@@ -245,7 +245,7 @@ zen-find-shortcut = Auf Seite suchen
zen-search-find-again-shortcut = Weitersuchen
zen-search-find-again-shortcut-prev = Vorheriges suchen
zen-search-find-again-shortcut-2 = Weitersuchen (Alt)
zen-bookmark-this-page-shortcut = Diese Seite zu Lesezeichen hinzufügen
zen-bookmark-this-page-shortcut = Diese Seite als Lesezeichen speichern
zen-bookmark-show-library-shortcut = Lesezeichen-Bibliothek anzeigen
zen-key-stop = Laden stoppen
zen-full-zoom-reduce-shortcut = Herauszoomen
@@ -256,7 +256,7 @@ zen-full-zoom-enlarge-shortcut-alt = Hineinzoomen (Alt)
zen-full-zoom-enlarge-shortcut-alt2 = Hineinzoomen (Alt 2)
zen-bidi-switch-direction-shortcut = Text-Richtung wechseln
zen-private-browsing-shortcut = Privaten Modus öffnen
zen-screenshot-shortcut = Screenshot machen
zen-screenshot-shortcut = Bildschirmfoto erstellen
zen-key-sanitize = Browser-Daten löschen
zen-quit-app-shortcut = Anwendung beenden
zen-key-wr-capture-cmd = WR-Aufnahme-Befehl
@@ -268,7 +268,7 @@ zen-close-tab-shortcut = Tab schließen
zen-compact-mode-shortcut-show-sidebar = Schwebende Seitenleiste umschalten
zen-compact-mode-shortcut-show-toolbar = Schwebende Symbolleiste umschalten
zen-compact-mode-shortcut-toggle = Kompaktmodus umschalten
zen-glance-expand = Glance erweitern
zen-glance-expand = Schnellansicht vergrößern
zen-workspace-shortcut-switch-1 = Zu Arbeitsbereich 1 wechseln
zen-workspace-shortcut-switch-2 = Zu Arbeitsbereich 2 wechseln
zen-workspace-shortcut-switch-3 = Zu Arbeitsbereich 3 wechseln
@@ -288,14 +288,14 @@ zen-split-view-shortcut-vertical = Vertikales Layout für geteilte Ansicht umsch
zen-split-view-shortcut-horizontal = Horizontales Layout für geteilte Ansicht umschalten
zen-split-view-shortcut-unsplit = Geteilte Ansicht schließen
zen-new-empty-split-view-shortcut = Neue leere geteilte Ansicht
zen-key-select-tab-1 = Tab #1 auswählen
zen-key-select-tab-2 = Tab #2 auswählen
zen-key-select-tab-3 = Tab #3 auswählen
zen-key-select-tab-4 = Tab #4 auswählen
zen-key-select-tab-5 = Tab #5 auswählen
zen-key-select-tab-6 = Tab #6 auswählen
zen-key-select-tab-7 = Tab #7 auswählen
zen-key-select-tab-8 = Tab #8 auswählen
zen-key-select-tab-1 = Tab 1 auswählen
zen-key-select-tab-2 = Tab 2 auswählen
zen-key-select-tab-3 = Tab 3 auswählen
zen-key-select-tab-4 = Tab 4 auswählen
zen-key-select-tab-5 = Tab 5 auswählen
zen-key-select-tab-6 = Tab 6 auswählen
zen-key-select-tab-7 = Tab 7 auswählen
zen-key-select-tab-8 = Tab 8 auswählen
zen-key-select-tab-last = Letzten Tab auswählen
zen-key-show-all-tabs = Alle Tabs anzeigen
zen-key-goto-history = Zum Verlauf gehen
@@ -316,4 +316,4 @@ zen-devtools-toggle-storage-shortcut = Speicher umschalten
zen-devtools-toggle-dom-shortcut = DOM umschalten
zen-devtools-toggle-accessibility-shortcut = Barrierefreiheit umschalten
zen-close-all-unpinned-tabs-shortcut = Alle nicht angehefteten Tabs schließen
zen-new-unsynced-window-shortcut = New Unsynced Window
zen-new-unsynced-window-shortcut = Neues leeres Fenster

View File

@@ -20,4 +20,4 @@ zen-folders-unload-all-tooltip =
.tooltiptext = Alle aktiven Tabs in diesem Ordner entladen
zen-folders-unload-folder =
.label = Alle Tabs entladen
zen-folders-search-no-results = Keine Tabs gefunden
zen-folders-search-no-results = Keine Tabs gefunden 🤔

View File

@@ -7,8 +7,8 @@ unified-extensions-description = Mit Erweiterungen kannst du { -brand-short-name
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Reset Essential Tab
*[false] Reset Pinned Tab
[true] Essential-Tab zurücksetzen
*[false] Angehefteten Tab zurücksetzen
}
.accesskey = R
tab-context-zen-add-essential =
@@ -21,15 +21,15 @@ tab-context-zen-remove-essential =
tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Replace Essential URL with Current
*[false] Replace Pinned URL with Current
[true] Essential-URL durch aktuelle ersetzen
*[false] Angeheftete URL durch aktuelle ersetzen
}
.accesskey = C
tab-context-zen-edit-title =
.label = Titel ändern...
tab-context-zen-edit-icon =
.label = Symbol ändern...
zen-themes-corrupted = Deine { -brand-short-name }-Mods-Datei ist beschädigt. Wir haben sie auf das Standard-Design zurückgesetzt.
zen-themes-corrupted = Deine { -brand-short-name }-Mods-Datei ist beschädigt. Sie wurde auf das Standard-Design zurückgesetzt.
zen-shortcuts-corrupted = Deine { -brand-short-name }-Tastenkombinationsdatei ist beschädigt. Sie wurde auf die Standard-Tastenkombinationen zurückgesetzt.
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification =
@@ -41,7 +41,7 @@ pictureinpicture-minimize-btn =
.tooltip = Minimieren
zen-panel-ui-gradient-generator-custom-color = Eigene Farbe
zen-copy-current-url-confirmation = URL kopiert!
zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
zen-copy-current-url-as-markdown-confirmation = URL als Markdown kopiert!
zen-general-cancel-label =
.label = Abbrechen
zen-general-confirm =
@@ -69,8 +69,8 @@ zen-site-data-settings = Einstellungen
zen-generic-manage = Verwalten
zen-generic-more = Mehr
zen-generic-next = Weiter
zen-essentials-promo-label = Hinzufügen zu Essentials
zen-essentials-promo-sublabel = Behalte deine Lieblings-Tabs nur einen Klick entfernt
zen-essentials-promo-label = Zu Essentials hinzufügen
zen-essentials-promo-sublabel = Deine Lieblings-Tabs, immer nur einen Klick entfernt
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Erlaubt
zen-site-data-setting-block = Blockiert
@@ -106,7 +106,7 @@ zen-site-data-setting-site-protection = Tracking-Schutz
zen-site-data-panel-feature-callout-title = Hier findest du Add-ons, Berechtigungen und mehr
zen-site-data-panel-feature-callout-subtitle = Klicke auf das Symbol, um Website-Einstellungen anzupassen, Sicherheitsinfos anzuzeigen, auf Erweiterungen zuzugreifen und häufige Aktionen auszuführen.
zen-open-link-in-glance =
.label = Link in Glance öffnen
.label = Link in Schnellansicht öffnen
.accesskey = G
zen-sidebar-notification-updated-heading = Update abgeschlossen!
@@ -123,4 +123,4 @@ zen-window-sync-migration-dialog-message = Zen synchronisiert jetzt Fenster auf
zen-window-sync-migration-dialog-learn-more = Mehr erfahren
zen-window-sync-migration-dialog-accept = Verstanden
zen-appmenu-new-blank-window =
.label = New blank window
.label = Neues leeres Fenster

View File

@@ -5,13 +5,13 @@
zen-menubar-toggle-pinned-tabs =
.label =
{ $pinnedAreCollapsed ->
[true] Fixierte Tabs ausklappen
*[false] Fixierte Tabs einklappen
[true] Angeheftete Tabs ausklappen
*[false] Angeheftete Tabs einklappen
}
zen-menubar-appearance =
.label = Erscheinungsbild
zen-menubar-appearance-description =
.label = Webseiten werden nutzen:
.label = Websites verwenden:
zen-menubar-appearance-auto =
.label = Automatisch
zen-menubar-appearance-light =
@@ -19,4 +19,4 @@ zen-menubar-appearance-light =
zen-menubar-appearance-dark =
.label = Dunkel
zen-menubar-new-blank-window =
.label = New Blank Window
.label = Neues leeres Fenster

View File

@@ -5,6 +5,7 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] Aufteilung aufheben
[1] Tab aufteilen (wähle mehrere Tabs aus)
*[other] { $tabCount } Tabs aufteilen
}

View File

@@ -27,7 +27,7 @@ sidebar-zen-create-new =
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
[one] Tab entladen und öffnen
[one] Tab entladen und wechseln
*[other] { $tabCount } Tabs entladen und zum ersten wechseln
}
tabbrowser-reset-pin-button =
@@ -38,7 +38,7 @@ tabbrowser-reset-pin-button =
}
zen-tab-sublabel =
{ $tabSubtitle ->
[zen-default-pinned] Back to pinned url
[zen-default-pinned-cmd] Separate from pinned tab
[zen-default-pinned] Zurück zur angehefteten URL
[zen-default-pinned-cmd] Vom angehefteten Tab lösen
*[other] { $tabSubtitle }
}

View File

@@ -17,7 +17,7 @@ zen-welcome-workspace-colors-title = Deine Arbeitsbereiche, deine Farben
zen-welcome-workspace-colors-description = Personalisiere deinen Browser, indem du jedem Arbeitsbereich eine eigene Farbidentität gibst.
zen-welcome-start-browsing-title =
Alles bereit?<br/>
Los gehts!
Los geht's!
zen-welcome-start-browsing-description-1 = Du bist startklar! Klicke auf den Button unten, um mit { -brand-short-name } loszulegen.
zen-welcome-start-browsing = Los geht's!
zen-welcome-default-search-title = Deine Standard-Suchmaschine

View File

@@ -10,7 +10,7 @@ zen-panel-ui-workspaces-create =
zen-panel-ui-folder-create =
.label = Ordner erstellen
zen-panel-ui-live-folder-create =
.label = Live Folder
.label = Live-Ordner
zen-panel-ui-new-empty-split =
.label = Neuen Split erstellen
zen-workspaces-panel-context-delete =
@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = Arbeitsbereich entladen
zen-workspaces-panel-unload-others =
.label = Unload All Other Spaces
.label = Alle anderen Arbeitsbereiche entladen
zen-workspaces-how-to-reorder-title = So ordnest du Arbeitsbereiche neu an
zen-workspaces-how-to-reorder-desc = Zieh die Arbeitsbereich-Symbole am unteren Rand der Seitenleiste, um sie neu anzuordnen
zen-workspaces-change-theme =
@@ -42,7 +42,7 @@ zen-bookmark-edit-panel-workspace-selector =
zen-panel-ui-gradient-generator-algo-complementary =
.label = Komplementär
zen-panel-ui-gradient-generator-algo-splitComplementary =
.label = Geteilt-Komplementär
.label = Split-Komplementär
zen-panel-ui-gradient-generator-algo-analogous =
.label = Analog
zen-panel-ui-gradient-generator-algo-triadic =

View File

@@ -10,7 +10,7 @@ zen-panel-ui-workspaces-create =
zen-panel-ui-folder-create =
.label = Δημιουργία Φακέλου
zen-panel-ui-live-folder-create =
.label = Live Folder
.label = Ζωντανός Φάκελος
zen-panel-ui-new-empty-split =
.label = Νέος Διαχωρισμός
zen-workspaces-panel-context-delete =
@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = Εκφόρτωση Χώρου Εργασίας
zen-workspaces-panel-unload-others =
.label = Unload All Other Spaces
.label = Εκφόρτωση Όλων Των Άλλων Χώρων
zen-workspaces-how-to-reorder-title = Πώς να αναδιατάξετε τους χώρους
zen-workspaces-how-to-reorder-desc = Σύρετε τα εικονίδια χώρου στο κάτω μέρος της πλαϊνής μπάρας για να τα αναδιατάξετε
zen-workspaces-change-theme =

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -357,3 +357,4 @@ zen-devtools-toggle-dom-shortcut = Toggle DOM
zen-devtools-toggle-accessibility-shortcut = Toggle Accessibility
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
zen-new-unsynced-window-shortcut = New Blank Window
zen-duplicate-tab-shortcut = Duplicate Tab

View File

@@ -15,7 +15,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Add to Essentials
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R

View File

@@ -5,9 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] Unsplit Tabs
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[-1] Split out tab
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S

View File

@@ -5,8 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Vista dividida (se necesitan varias pestañas seleccionadas)
*[other] Añadir { $tabCount } pestañas a vista dividida
[-1] Deshacer división
[1] Vista dividida (seleccione varias pestañas)
*[other] Añadir { $tabCount } pestañas a la vista dividida
}
.accesskey = S
zen-split-link =

View File

@@ -5,9 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] Unsplit Tabs
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[-1] Split out tab
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Ajouter aux Essentials
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } emplacements occupés
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Retirer des Essentials
.accesskey = R

View File

@@ -7,8 +7,8 @@ unified-extensions-description = Úsáidtear síntí chun níos mó feidhmiúlac
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Athshocraigh an Cluaisín Riachtanach
*[false] Athshocraigh an Cluaisín Priontáilte
[true] Athshocraigh an Cluaisín Riachtanach
*[false] Athshocraigh an Cluaisín Priontáilte
}
.accesskey = R
tab-context-zen-add-essential =
@@ -21,8 +21,8 @@ tab-context-zen-remove-essential =
tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Cuir an URL Riachtanach in ionad an URL Reatha
*[false] Cuir an URL Priontáilte in ionad an URL Reatha
[true] Cuir an URL Riachtanach in ionad an URL Reatha
*[false] Cuir an URL Priontáilte in ionad an URL Reatha
}
.accesskey = C
tab-context-zen-edit-title =

View File

@@ -38,7 +38,7 @@ tabbrowser-reset-pin-button =
}
zen-tab-sublabel =
{ $tabSubtitle ->
[zen-default-pinned] Ar ais go dtí an url bioráilte
[zen-default-pinned-cmd] Ar leithligh ón gcluaisín bioráilte
*[other] { $tabSubtitle }
[zen-default-pinned] Ar ais go dtí an url bioráilte
[zen-default-pinned-cmd] Ar leithligh ón gcluaisín bioráilte
*[other] { $tabSubtitle }
}

View File

@@ -43,13 +43,13 @@ category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Ruang Kerja
zen-tabs-select-recently-used-on-close =
.label = When closing a tab, switch to the most recently used tab instead of the next tab
.label = Saat menutup tab, beralih ke tab yang terakhir digunakan alih-alih tab berikutnya
zen-tabs-close-on-back-with-no-history =
.label = Tutup tab dan beralih ke tab pemiliknya (atau tab yang terakhir digunakan) saat kembali tanpa riwayat
.label = Tutup tab dan beralih ke tab asal (atau terakhir digunakan) saat kembali tanpa riwayat
zen-settings-workspaces-sync-unpinned-tabs =
.label = Sync only pinned tabs in workspaces
.label = (Window Sync) Hanya sinkronkan tab tersemat dalam ruang kerja
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab berputar hanya dalam tab Esensial atau Ruang Kerja
.label = Ctrl+Tab hanya beralih di antara tab Esensial atau Ruang Kerja
zen-tabs-cycle-ignore-pending-tabs =
.label = Lewati tab tak termuat saat beralih dengan Ctrl+Tab
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab akan beralih berdasarkan urutan terakhir digunakan
@@ -63,18 +63,18 @@ zen-pinned-tab-manager-description = Kelola perilaku tambahan dari tab yang dise
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Pulihkan tab yang disematkan ke URL awal saat mulai ulang
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Aktifkan kontainer-spesifik essentials
.label = Aktifkan pemisahan esensial per kontainer
zen-pinned-tab-manager-close-shortcut-behavior-label = Perilaku Pintasan Tutup Tab
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
.label = Setel Ulang URL, lepaskan, dan beralih ke tab berikutnya
.label = Setel ulang URL, lepaskan, dan beralih ke tab berikutnya
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
.label = Lepaskan dan beralih ke tab berikutnya
zen-pinned-tab-manager-reset-switch-close-shortcut-option =
.label = Setel Ulang URL dan beralih ke tab berikutnya
.label = Setel ulang URL dan beralih ke tab berikutnya
zen-pinned-tab-manager-switch-close-shortcut-option =
.label = Beralih ke tab berikutnya
zen-pinned-tab-manager-reset-close-shortcut-option =
.label = Setel Ulang URL
.label = Setel ulang URL
zen-pinned-tab-manager-close-close-shortcut-option =
.label = Tutup tab
pane-zen-workspaces-header = Ruang Kerja
@@ -137,7 +137,7 @@ pane-zen-marketplace-title = Zen Mods
zen-themes-auto-update =
.label = Otomatis perbarui mod yang terinstal saat startup
zen-settings-workspaces-force-container-tabs-to-workspace =
.label = Saat membuka tab kontainer, otomatis pindahkan ke ruang kerja default kontainer tab itu
.label = Otomatis pindahkan tab kontainer ke ruang kerja defaultnya saat dibuka
zen-theme-marketplace-link = Kunjungi Toko
zen-dark-theme-styles-header = Gaya Tema Gelap
zen-dark-theme-styles-description = Mengkustomisasi mode gelap sesuai kemauanmu
@@ -189,7 +189,7 @@ zen-tab-new-shortcut = Tab Baru
zen-key-redo = Ulangi
zen-restore-last-closed-tab-shortcut = Pulihkan Tab yang Terakhir Ditutup
zen-location-open-shortcut = Buka Lokasi
zen-location-open-shortcut-alt = Buka Lokasi
zen-location-open-shortcut-alt = Buka Lokasi (Alt)
zen-key-undo-close-window = Batalkan Tutup Jendela
zen-text-action-undo-shortcut = Batalkan
zen-text-action-redo-shortcut = Ulangi
@@ -246,7 +246,7 @@ zen-search-find-again-shortcut = Temukan Lagi
zen-search-find-again-shortcut-prev = Cari Sebelumnya
zen-search-find-again-shortcut-2 = Cari Lagi (Alt)
zen-bookmark-this-page-shortcut = Markahi Laman Ini
zen-bookmark-show-library-shortcut = Tampilkan Pustaka Bookmark
zen-bookmark-show-library-shortcut = Tampilkan Pustaka Markah
zen-key-stop = Berhenti Memuat
zen-full-zoom-reduce-shortcut = Perkecil
zen-full-zoom-enlarge-shortcut = Perbesar

View File

@@ -3,26 +3,26 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-panel-ui-current-profile-text = profil saat ini
unified-extensions-description = Ekstensi digunakan untuk menambahkan lebih banyak fungsi ekstra ke { -brand-short-name }.
unified-extensions-description = Ekstensi digunakan untuk menambahkan fungsi ekstra ke { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Reset Essential Tab
*[false] Reset Pinned Tab
[true] Reset Tab Esensial ke URL awal
*[false] Reset Tab Sematan ke URL awal
}
.accesskey = R
tab-context-zen-add-essential =
.label = Tambahkan ke Essentials
.label = Tambahkan ke Esensial
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slot terisi
tab-context-zen-remove-essential =
.label = Hapus dari Essentials
.label = Hapus dari Esensial
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Replace Essential URL with Current
*[false] Replace Pinned URL with Current
[true] Perbarui URL awal Tab Esensial
*[false] Perbarui URL awal Tab Sematan
}
.accesskey = C
tab-context-zen-edit-title =
@@ -41,7 +41,7 @@ pictureinpicture-minimize-btn =
.tooltip = Minimalkan
zen-panel-ui-gradient-generator-custom-color = Warna Kustom
zen-copy-current-url-confirmation = URL Disalin!
zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
zen-copy-current-url-as-markdown-confirmation = URL disalin sebagai Markdown!
zen-general-cancel-label =
.label = Batalkan
zen-general-confirm =
@@ -69,7 +69,7 @@ zen-site-data-settings = Pengaturan
zen-generic-manage = Kelola
zen-generic-more = Selengkapnya
zen-generic-next = Lanjut
zen-essentials-promo-label = Tambahkan ke Essentials
zen-essentials-promo-label = Tambahkan ke Esensial
zen-essentials-promo-sublabel = Akses tab favorit Anda hanya dengan sekali klik
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Diizinkan

View File

@@ -19,4 +19,4 @@ zen-menubar-appearance-light =
zen-menubar-appearance-dark =
.label = Gelap
zen-menubar-new-blank-window =
.label = New Blank Window
.label = Jendela Kosong Baru

View File

@@ -38,7 +38,7 @@ tabbrowser-reset-pin-button =
}
zen-tab-sublabel =
{ $tabSubtitle ->
[zen-default-pinned] Back to pinned url
[zen-default-pinned-cmd] Separate from pinned tab
[zen-default-pinned] Kembali ke URL Awal
[zen-default-pinned-cmd] Pisahkan dari tab tersemat
*[other] { $tabSubtitle }
}

View File

@@ -3,23 +3,23 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-welcome-title-line1 = Selamat datang di
zen-welcome-title-line2 = internet yang tenang
zen-welcome-title-line2 = internet yang lebih tenang
zen-welcome-import-title = Permulaan baru, Bookmark tetap sama
zen-welcome-import-description-1 = Bookmark, histori dan password anda adalah Jejak remah roti yang anda tinggalkan di internet--jangan tinggalkan begitu saja!
zen-welcome-import-description-2 = Semudah mengambil dari peramban lain dan melanjutkan dari yang anda tinggalkan.
zen-welcome-import-button = Impor sekarang
zen-welcome-set-default-browser = Atur { -brand-short-name } sebagai peramban bawaan
zen-welcome-dont-set-default-browser = Jangan membuat { -brand-short-name } sebagai peramban bawaan
zen-welcome-initial-essentials-title = Tab penting anda, akan selalu dalam genggaman
zen-welcome-initial-essentials-description-1 = Simpan tab penting anda mudah diakses dan berada dalam jangkauan anda, seberapapun anda membukanya.
zen-welcome-initial-essentials-description-2 = Tab penting selalu terlihat, dimanapun tempat kerja anda.
zen-welcome-workspace-colors-title = Ruang Kerja anda, Warna anda
zen-welcome-set-default-browser = Jadikan { -brand-short-name } sebagai peramban baku
zen-welcome-dont-set-default-browser = Jangan jadikan { -brand-short-name } sebagai peramban baku
zen-welcome-initial-essentials-title = Tab Penting Anda, Selalu dalam Jangkauan
zen-welcome-initial-essentials-description-1 = Pastikan tab terpenting Anda mudah diakses dan selalu tersedia, berapa pun jumlah tab yang Anda buka.
zen-welcome-initial-essentials-description-2 = Tab esensial selalu terlihat, di ruang kerja mana pun Anda berada.
zen-welcome-workspace-colors-title = Ruang Kerja Anda, Warna Anda
zen-welcome-workspace-colors-description = Atur peramban anda dengan memberikan warna tersendiri tiap ruang kerja.
zen-welcome-start-browsing-title =
Semua Pengaturan selesai?<br/>
Mari mulai menjelajah!
zen-welcome-start-browsing-description-1 = Anda selesai melakukan pengaturan dan siap untuk mulai. Klik tombol di bawah ini untuk mulai menjelajah dengan { -brand-short-name }.
zen-welcome-start-browsing = Penyelaman dimulai!
zen-welcome-start-browsing = Ayo, mulai!
zen-welcome-default-search-title = Mesin Pencari Default Anda
zen-welcome-default-search-description = Pilih mesin pencari default Anda. Anda selalu dapat mengubahnya nanti!
zen-welcome-skip-button = Lewati

View File

@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = Lepaskan Ruang
zen-workspaces-panel-unload-others =
.label = Unload All Other Spaces
.label = Lepaskan Ruang Lainnya
zen-workspaces-how-to-reorder-title = Cara Mengurutkan Ulang Ruang
zen-workspaces-how-to-reorder-desc = Seret ikon ruang di bagian bawah bilah sisi untuk menyusun ulang urutannya
zen-workspaces-change-theme =
@@ -61,7 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profil (Kontainer) digunakan untuk memisahkan cookie dan data situs antar Ruang.
zen-workspace-creation-header = Buat sebuah Ruang
zen-workspace-creation-label = Ruang digunakan untuk mengorganisasikan tab dan sesi Anda.
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-title = Hapus Ruang?
zen-workspaces-delete-workspace-body = Apakah Anda yakin ingin menghapus { $name }? Tindakan ini tidak bisa dibatalkan.
# Note that the html tag MUST not be changed or removed, as it is used to better
# display the shortcut in the toast notification.

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Bæta við þarfaflipa
.accesskey = F
tab-context-zen-add-essential-badge = { $num } / { $max } hólf fyllt
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Fjarlægja úr þarfaflipum
.accesskey = R

View File

@@ -6,7 +6,7 @@ tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (sono necessarie più schede selezionate)
*[other] Split { $tabCount } Tabs
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,7 +5,7 @@
pane-zen-looks-title = 外観
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }{ pane-zen-looks-title }
zen-warning-language = デフォルト言語を変更すると、ウェブサイトがあなたにトラッキングしやすいです。
zen-warning-language = デフォルト言語を変更すると、ウェブサイトにトラッキングされやすくなります。
zen-vertical-tabs-layout-header = ブラウザーのレイアウト
zen-vertical-tabs-layout-description = 自分に合ったレイアウトを選んでください
zen-layout-single-toolbar = サイドバーのみ
@@ -43,11 +43,11 @@ category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = ワークスペース
zen-tabs-select-recently-used-on-close =
.label = When closing a tab, switch to the most recently used tab instead of the next tab
.label = タブを閉じるときに、次のタブではなく最後に使用したタブに切り替える
zen-tabs-close-on-back-with-no-history =
.label = タブを閉じ、履歴がない状態で戻るときに所有者のタブ(または最近使用したタブ)に切り替えます
zen-settings-workspaces-sync-unpinned-tabs =
.label = Sync only pinned tabs in workspaces
.label = ワークスペースのタブのうちピン留めされているタブのみを同期する
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tabキーを押してワークスペースタブ内または重要なタブ内のサイクルを切り替えます
zen-tabs-cycle-ignore-pending-tabs =
@@ -57,11 +57,11 @@ zen-look-and-feel-compact-toolbar-themed =
.label = コンパクトツールバーにテーマの背景を使用する
zen-workspace-continue-where-left-off =
.label = 中断したところから再開する
pane-zen-pinned-tab-manager-title = 固定したタブ
zen-pinned-tab-manager-header = 固定したタブの一般的な設定
zen-pinned-tab-manager-description = 固定したタブの追加的な動作を管理する
pane-zen-pinned-tab-manager-title = ピン留めされたタブ
zen-pinned-tab-manager-header = ピン留めされたタブの設定
zen-pinned-tab-manager-description = ピン留めされたタブの追加的な動作を管理する
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = 固定したタブを起動時に元の固定したURLに復元します
.label = ピン留めされたタブを起動時に元のピン留めされた URL に復元します
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = コンテナ固有のEssentialsを有効にする
zen-pinned-tab-manager-close-shortcut-behavior-label = タブを閉じるショートカットの動作
@@ -79,7 +79,7 @@ zen-pinned-tab-manager-close-close-shortcut-option =
.label = タブを閉じる
pane-zen-workspaces-header = ワークスペース
zen-settings-workspaces-header = ワークスペースの一般的な設定
zen-settings-workspaces-description = ワークスペースを使用すると、一度に複数のブラウジングセッションがあるといいです!
zen-settings-workspaces-description = ワークスペースを使用すると、同時に複数のブラウジングセッションを行うことができます!
zen-settings-workspaces-enabled =
.label = ワークスペースを有効にする
zen-settings-workspaces-hide-default-container-indicator =
@@ -279,8 +279,8 @@ zen-workspace-shortcut-switch-7 = ワークスペース7に切り替える
zen-workspace-shortcut-switch-8 = ワークスペース8に切り替える
zen-workspace-shortcut-switch-9 = ワークスペース9に切り替える
zen-workspace-shortcut-switch-10 = ワークスペース10に切り替える
zen-workspace-shortcut-forward = ワークスペースを転送
zen-workspace-shortcut-backward = 後方ワークスペース
zen-workspace-shortcut-forward = 次のワークスペースに移動
zen-workspace-shortcut-backward = 前のワークスペースへ移動
zen-sidebar-shortcut-toggle = サイドバーの幅を切り替える
zen-pinned-tab-shortcut-reset = ピン留めされたタブをピン留めしたURLにリセット
zen-split-view-shortcut-grid = 分割表示グリッドの切り替え

View File

@@ -7,8 +7,8 @@ unified-extensions-description = 拡張機能は{ -brand-short-name }に多く
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Reset Essential Tab
*[false] Reset Pinned Tab
[true] Essentialタブの遷移をリセット
*[false] ピン留めされたタブの遷移をリセット
}
.accesskey = R
tab-context-zen-add-essential =
@@ -21,8 +21,8 @@ tab-context-zen-remove-essential =
tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Replace Essential URL with Current
*[false] Replace Pinned URL with Current
[true] EssentialタブのURLを今開いているURLで置き換える
*[false] ピン留めされたタブのURLを今開いているURLで置き換える
}
.accesskey = C
tab-context-zen-edit-title =
@@ -41,13 +41,13 @@ pictureinpicture-minimize-btn =
.tooltip = 最小化
zen-panel-ui-gradient-generator-custom-color = カスタムカラー
zen-copy-current-url-confirmation = URLをクリップボードにコピーしました
zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
zen-copy-current-url-as-markdown-confirmation = URLをMarkdownとしてコピーしました
zen-general-cancel-label =
.label = キャンセル
zen-general-confirm =
.label = 確定
zen-pinned-tab-replaced = 固定したタブのURLが現在のURLに置き換えられました
zen-tabs-renamed = タの名前は無事に変更されました!
zen-tabs-renamed = タの名前は無事に変更されました!
zen-background-tab-opened-toast = 新しい背景タブが開きました!
zen-workspace-renamed-toast = ワークスペースの名前が変更されました!
zen-toggle-compact-mode-button =

View File

@@ -33,12 +33,12 @@ tabbrowser-unload-tab-button =
tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
[one] タブをリセットして固定する
*[other] タブをリセットして{ $tabCount }つタブを固定する
[one] タブをリセットしてピン留め
*[other] タブをリセットして{ $tabCount }つタブをピン留め
}
zen-tab-sublabel =
{ $tabSubtitle ->
[zen-default-pinned] Back to pinned url
[zen-default-pinned-cmd] Separate from pinned tab
[zen-default-pinned] ピン止めされた URL に戻る
[zen-default-pinned-cmd] ピン止めされたタブから切り離す
*[other] { $tabSubtitle }
}

View File

@@ -2,7 +2,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-panel-ui-workspaces-text = スペース
zen-panel-ui-workspaces-text = ワークスペース
zen-panel-ui-spaces-label =
.label = スペース
zen-panel-ui-workspaces-create =
@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = スペースをアンロードする
zen-workspaces-panel-unload-others =
.label = Unload All Other Spaces
.label = 他のスペースをアンロードする
zen-workspaces-how-to-reorder-title = 並べ替える方法
zen-workspaces-how-to-reorder-desc = サイドバーの下部にあるスペースアイコンをドラッグして並べ替えます
zen-workspaces-change-theme =
@@ -68,7 +68,7 @@ zen-workspaces-delete-workspace-body = { $name }を削除してもよろしい
zen-workspaces-close-all-unpinned-tabs-toast = タブを閉じました!元に戻すには、 <span>{ $shortcut }</span>を使用してください。
zen-workspaces-close-all-unpinned-tabs-title =
.label = 削除する
.tooltiptext = すべての固定しなかったタブを閉じる
.tooltiptext = すべてのピン留めされていないタブを閉じる
zen-panel-ui-workspaces-change-forward =
.label = 次のスペースに移動
zen-panel-ui-workspaces-change-back =

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Legg til i essensielle
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } felt utfylt
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Fjern fra essensielle
.accesskey = R

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,9 +5,9 @@
pane-zen-looks-title = Wygląd i działanie
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }
zen-warning-language = Zmiana domyślnego języka może ułatwić śledzenie stron internetowych.
zen-vertical-tabs-layout-header = Wygląd przeglądarki
zen-vertical-tabs-layout-description = Wybierz wygląd, który pasuje Ci najbardziej
zen-warning-language = Zmiana domyślnego języka może ułatwić stronom internetowym śledzenie Twojej aktywności.
zen-vertical-tabs-layout-header = Układ przeglądarki
zen-vertical-tabs-layout-description = Wybierz układ, który najbardziej Ci odpowiada
zen-layout-single-toolbar = Tylko pasek boczny
zen-layout-multiple-toolbar = Pasek boczny i górny pasek narzędzi
zen-layout-collapsed-toolbar = Zwinięty pasek boczny
@@ -43,15 +43,15 @@ category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Obszary robocze
zen-tabs-select-recently-used-on-close =
.label = Podczas zamykania karty, przejdź do ostatnio używanej karty zamiast do następnej karty
.label = Podczas zamykania karty, przełącz na ostatnio używaną kartę zamiast na następną kartę
zen-tabs-close-on-back-with-no-history =
.label = Zamknij kartę i przejdź do karty głównej (lub ostatnio używanej karty) podczas powrotu bez historii
.label = Zamknij kartę i przełącz na kartę nadrzędną (lub ostatnio używaną kartę) podczas cofania bez historii
zen-settings-workspaces-sync-unpinned-tabs =
.label = Zsynchronizuj tylko przypięte karty w obszarach roboczych
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab przełącza tylko między kartami niezbędnymi lub kartami obszaru roboczego
zen-tabs-cycle-ignore-pending-tabs =
.label = Ignoruj oczekujące karty podczas przełączania mdzy kartami z Ctrl+Tab
.label = Ignoruj oczekujące karty podczas przełączania s za pomocą skrótu Ctrl+Tab
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab będzie przełączał karty według ostatnio używanej kolejności, ponieważ jest włączona
zen-look-and-feel-compact-toolbar-themed =
.label = Użyj tła motywu dla kompaktowego paska narzędzi
@@ -61,18 +61,18 @@ pane-zen-pinned-tab-manager-title = Przypięte karty
zen-pinned-tab-manager-header = Ogólne ustawienia przypiętych kart
zen-pinned-tab-manager-description = Zarządzaj dodatkowym zachowaniem przypiętych kart
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Przywróć przypięte karty do pierwotnie przypiętego adresu URL przy starcie
.label = Przywróć przypięte karty do ich pierwotnych adresów URL podczas uruchamiania
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Włącz podstawowe funkcje specyficzne dla kontenera
.label = Włącz niezbędne karty specyficzne dla kontenerów
zen-pinned-tab-manager-close-shortcut-behavior-label = Zachowanie skrótu zamykania karty
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
.label = Zresetuj adres URL, wyładuj i przejdź do następnej karty
.label = Zresetuj adres URL, wyładuj i przełącz na następną kartę
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
.label = Wyładuj i przejdź do następnej karty
.label = Wyładuj i przełącz na następną kartę
zen-pinned-tab-manager-reset-switch-close-shortcut-option =
.label = Zresetuj adres URL i przejdź do następnej karty
.label = Zresetuj adres URL i przełącz na następną kartę
zen-pinned-tab-manager-switch-close-shortcut-option =
.label = Przejdź do następnej karty
.label = Przełącz na następną kartę
zen-pinned-tab-manager-reset-close-shortcut-option =
.label = Zresetuj adres URL
zen-pinned-tab-manager-close-close-shortcut-option =
@@ -100,7 +100,7 @@ zen-vertical-tabs-expand-tabs-by-default = Rozwiń karty domyślnie
zen-vertical-tabs-dont-expand-tabs-by-default = Nie rozwijaj domyślnie kart
zen-vertical-tabs-expand-tabs-on-hover = Rozwiń zakładki po najechaniu kursorem (nie działa w trybie kompaktowym)
zen-vertical-tabs-expand-tabs-header = Jak rozwinąć karty
zen-vertical-tabs-expand-tabs-description = Wybierz jak rozwinąć karty na pasku bocznym
zen-vertical-tabs-expand-tabs-description = Wybierz sposób rozwijania kart na pasku bocznym
zen-theme-marketplace-header = Modyfikacje Zen
zen-theme-disable-all-enabled =
.title = Wyłącz wszystkie modyfikacje
@@ -137,7 +137,7 @@ pane-zen-marketplace-title = Modyfikacje Zen
zen-themes-auto-update =
.label = Automatycznie aktualizuj zainstalowane modyfikacje podczas startu przeglądarki
zen-settings-workspaces-force-container-tabs-to-workspace =
.label = Przełącz się do obszaru roboczego, w którym kontener jest ustawiony jako domyślny podczas otwierania kart kontenera
.label = Przełącz na obszar roboczy, w którym kontener jest ustawiony jako domyślny podczas otwierania kart kontenera
zen-theme-marketplace-link = Odwiedź sklep
zen-dark-theme-styles-header = Style ciemnego motywu
zen-dark-theme-styles-description = Dostosuj ciemny motyw do swoich upodobań
@@ -154,9 +154,9 @@ zen-urlbar-behavior-label = Zachowanie
zen-urlbar-behavior-normal =
.label = Normalne
zen-urlbar-behavior-floating-on-type =
.label = Widoczny podczas pisania
.label = Pływający tylko podczas pisania
zen-urlbar-behavior-float =
.label = Zawsze widoczny
.label = Zawsze pływający
pane-zen-CKS-title = Skróty klawiaturowe
category-zen-CKS =
.tooltiptext = { pane-zen-CKS-title }
@@ -166,7 +166,7 @@ category-zen-marketplace =
zen-settings-CKS-header = Dostosuj skróty klawiaturowe
zen-settings-CKS-description = Zmień domyślne skróty klawiaturowe zgodnie z własnymi preferencjami i popraw komfort przeglądania stron internetowych
zen-settings-CKS-disable-firefox =
.label = Wyłącz domyślne skróty klawiszowe { -brand-short-name }
.label = Wyłącz domyślne skróty klawiaturowe { -brand-short-name }
zen-settings-CKS-duplicate-shortcut =
.label = Duplikuj skrót
zen-settings-CKS-reset-shortcuts =
@@ -182,7 +182,7 @@ zenCKSOption-group-zen-compact-mode = Tryb kompaktowy
zenCKSOption-group-zen-workspace = Obszary robocze
zenCKSOption-group-zen-other = Inne funkcje Zen
zenCKSOption-group-zen-split-view = Podziel widok
zenCKSOption-group-devTools = Narzędzia developerskie
zenCKSOption-group-devTools = Narzędzia deweloperskie
zen-key-quick-restart = Szybkie ponowne uruchomienie
zen-window-new-shortcut = Nowe okno
zen-tab-new-shortcut = Nowa karta
@@ -214,7 +214,7 @@ zen-help-shortcut = Otwórz pomoc
zen-preferences-shortcut = Otwórz ustawienia
zen-hide-app-shortcut = Ukryj aplikację
zen-hide-other-apps-shortcut = Ukryj inne aplikacje
zen-search-focus-shortcut = Szukaj w centrum uwagi
zen-search-focus-shortcut = Przejdź do wyszukiwania
zen-search-focus-shortcut-alt = Przejdź do wyszukiwania (Alt)
zen-downloads-shortcut = Otwórz pobieranie
zen-addons-shortcut = Otwórz dodatki
@@ -223,7 +223,7 @@ zen-save-page-shortcut = Zapisz stronę
zen-print-shortcut = Wydrukuj stronę
zen-close-shortcut-2 = Zamknij kartę
zen-mute-toggle-shortcut = Przełącz wyciszenie
zen-key-delete = Usuń klucz
zen-key-delete = Klawisz Delete
zen-key-go-back = Powrót
zen-key-go-forward = Przejdź do przodu
zen-nav-back-shortcut-alt = Nawiguj wstecz (Alt)
@@ -281,13 +281,13 @@ zen-workspace-shortcut-switch-9 = Przełącz na obszar roboczy 9
zen-workspace-shortcut-switch-10 = Przełącz na obszar roboczy 10
zen-workspace-shortcut-forward = Następny obszar roboczy
zen-workspace-shortcut-backward = Poprzedni obszar roboczy
zen-sidebar-shortcut-toggle = Przełącz szerokość paska bocznego
zen-pinned-tab-shortcut-reset = Zresetuj przypiętą kartę do przypiętego adresu URL
zen-split-view-shortcut-grid = Przełącz siatkę widoku dzielonego
zen-sidebar-shortcut-toggle = Przełącz szerokość panelu bocznego
zen-pinned-tab-shortcut-reset = Przywróć przypiętą kartę do przypiętego adresu URL
zen-split-view-shortcut-grid = Przełącz widok podziału na siatkę
zen-split-view-shortcut-vertical = Przełącz podział ekranu w pionie
zen-split-view-shortcut-horizontal = Przełącz podział ekranu w poziomie
zen-split-view-shortcut-unsplit = Zamknij podział widoku
zen-new-empty-split-view-shortcut = Nowy pusty widok podziału
zen-new-empty-split-view-shortcut = Nowy pusty widok podzielony
zen-key-select-tab-1 = Wybierz kartę #1
zen-key-select-tab-2 = Wybierz kartę #2
zen-key-select-tab-3 = Wybierz kartę #3
@@ -302,17 +302,17 @@ zen-key-goto-history = Przejdź do historii
zen-key-go-home = Przejdź do strony głównej
zen-bookmark-show-sidebar-shortcut = Pokaż pasek boczny zakładek
zen-bookmark-show-toolbar-shortcut = Pokaż pasek zakładek
zen-devtools-toggle-shortcut = Włącz narzędzia developerskie
zen-devtools-toggle-shortcut = Przełącz narzędzia deweloperskie
zen-devtools-toggle-browser-toolbox-shortcut = Włącz narzędzia przeglądarki
zen-devtools-toggle-browser-console-shortcut = Włącz konsolę przeglądarki
zen-devtools-toggle-responsive-design-mode-shortcut = Włącz tryb responsywny
zen-devtools-toggle-inspector-shortcut = Włącz Inspektor
zen-devtools-toggle-web-console-shortcut = Włącz konsolę sieciową
zen-devtools-toggle-web-console-shortcut = Włącz konsolę
zen-devtools-toggle-js-debugger-shortcut = Włącz debugger JavaScript
zen-devtools-toggle-net-monitor-shortcut = Włącz monitor sieci
zen-devtools-toggle-style-editor-shortcut = Włącz edytor stylów
zen-devtools-toggle-performance-shortcut = Włącz Wydajność
zen-devtools-toggle-storage-shortcut = Włącz Pamięć
zen-devtools-toggle-storage-shortcut = Włącz Dane
zen-devtools-toggle-dom-shortcut = Włącz DOM
zen-devtools-toggle-accessibility-shortcut = Włącz Dostępność
zen-close-all-unpinned-tabs-shortcut = Zamknij wszystkie nieprzypięte karty

View File

@@ -9,13 +9,13 @@ zen-folders-panel-rename-folder =
zen-folders-panel-unpack-folder =
.label = Rozpakuj folder
zen-folders-new-subfolder =
.label = Nowy folder
.label = Nowy podfolder
zen-folders-panel-delete-folder =
.label = Usuń folder
zen-folders-panel-convert-folder-to-space =
.label = Konwertuj folder na przestrzeń
zen-folders-panel-change-folder-space =
.label = Zmień nazwę przestrzeni...
.label = Zmień przestrzeń...
zen-folders-unload-all-tooltip =
.tooltiptext = Wyładuj aktywne w tym folderze
zen-folders-unload-folder =

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = Dodaj do niezbędnych
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } zajętych miejsc
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Usuń z niezbędnych
.accesskey = R
@@ -47,7 +47,7 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Potwierdź
zen-pinned-tab-replaced = URL przypiętej karty został zastąpiony bieżącym adresem!
zen-tabs-renamed = Nazwa karty została z powodzeniem zmieniona!
zen-tabs-renamed = Nazwa karty została pomyślnie zmieniona!
zen-background-tab-opened-toast = Nowa karta została otworzona w tle!
zen-workspace-renamed-toast = Zmieniono nazwę przestrzeni roboczej!
zen-toggle-compact-mode-button =
@@ -92,7 +92,7 @@ zen-site-data-site-settings =
zen-site-data-header-share =
.tooltiptext = Udostępnij tę stronę
zen-site-data-header-reader-mode =
.tooltiptext = Wejdź do trybu czytnika
.tooltiptext = Przejdź do trybu czytania
zen-site-data-header-screenshot =
.tooltiptext = Zrzut ekranu
zen-site-data-header-bookmark =
@@ -119,7 +119,7 @@ zen-sidebar-notification-restart-safe-mode-label = Coś się zepsuło?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Zrestartuj w trybie bezpiecznym
zen-window-sync-migration-dialog-title = Utrzymuj synchronizację okien
zen-window-sync-migration-dialog-message = Zen synchronizuje okna na jednym urządzeniu, żeby zmiany w jednym oknie były natychmiast odzwierciedlone w pozostałych.
zen-window-sync-migration-dialog-message = Zen synchronizuje teraz okna na tym samym urządzeniu, dzięki czemu zmiany wprowadzone w jednym oknie natychmiast odzwierciedlane w pozostałych.
zen-window-sync-migration-dialog-learn-more = Dowiedz się więcej
zen-window-sync-migration-dialog-accept = Rozumiem
zen-appmenu-new-blank-window =

View File

@@ -5,13 +5,15 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Podziel zakładkę (potrzeba wielu wybranych kart)
*[other] Zakładki do podzielenia: { $tabCount }
[-1] Oddziel kartę
[1] Złącz kartę (wymagane jest zaznaczenie wielu kart)
[few] Złącz { $tabCount } karty
*[other] Złącz { $tabCount } kart
}
.accesskey = S
zen-split-link =
.label = Podziel link na nową kartę
.label = Otwórz link w widoku podzielonym
.accesskey = S
zen-split-view-modifier-header = Podziel widok
zen-split-view-modifier-header = Widok podzielony
zen-split-view-modifier-activate-reallocation =
.label = Aktywuj realokację

View File

@@ -27,14 +27,16 @@ sidebar-zen-create-new =
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
[one] Dezaktywuj i przełącz na kartę
*[other] Dezaktywuj { $tabCount } karty i przełącz na pierwszą
[one] Wyładuj i przełącz na kartę
[few] Wyładuj { $tabCount } karty i przełącz na pierwszą
*[other] Wyładuj { $tabCount } kart i przełącz na pierwszą
}
tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
[one] Zresetuj i przypnij kartę
*[other] Zresetuj i przypnij karty w liczbie: { $tabCount }
[few] Zresetuj i przypnij { $tabCount } karty
*[other] Zresetuj i przypnij { $tabCount } kart
}
zen-tab-sublabel =
{ $tabSubtitle ->

View File

@@ -10,7 +10,7 @@ zen-welcome-import-description-2 = Łatwo przenieś je z innej przeglądarki i k
zen-welcome-import-button = Zaimportuj teraz
zen-welcome-set-default-browser = Ustaw { -brand-short-name } jako swoją domyślną przeglądarkę
zen-welcome-dont-set-default-browser = NIE ustawiaj { -brand-short-name } jako swoja domyślna przeglądarka
zen-welcome-initial-essentials-title = Twoje kluczowe karty, zawsze w zasięgu
zen-welcome-initial-essentials-title = Twoje kluczowe karty, zawsze pod ręką
zen-welcome-initial-essentials-description-1 = Utrzymuj swoje najważniejsze karty zawsze pod ręką, niezależnie od tego, jak wiele masz ich otwartych.
zen-welcome-initial-essentials-description-2 = Niezbędne karty są zawsze widoczne, niezależnie od bieżącego obszaru roboczego.
zen-welcome-workspace-colors-title = Twój obszar roboczy, Twoje kolory

View File

@@ -5,8 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Dividir aba (é necessário várias abas selecionadas)
*[other] Dividir { $tabCount } Abas
[-1] Dividir aba
[1] Juntar Aba (necessário várias abas selecionadas)
*[other] Juntar { $tabCount } Abas
}
.accesskey = S.O.
zen-split-link =

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -5,6 +5,7 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] Avdela flikar
[1] Delad flik (flera valda flikar behövs)
*[other] Delad { $tabCount } flikar
}

View File

@@ -5,8 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Split Tab (multiple selected tabs needed)
*[other] Split { $tabCount } Tabs
[1] Join Tab (multiple selected tabs needed)
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =

View File

@@ -8,9 +8,9 @@ category-zen-looks =
zen-warning-language = Varsayılan dili değiştirmek, Websitesinin sizi izlemesini kolaylaştırabilir.
zen-vertical-tabs-layout-header = Tarayıcı Düzeni
zen-vertical-tabs-layout-description = Size en uygun düzeni seçin
zen-layout-single-toolbar = Tek Araç Çubuğu
zen-layout-single-toolbar = Sadece kenar çubuğu
zen-layout-multiple-toolbar = Kenar çubuğu ve üst araç çubuğu
zen-layout-collapsed-toolbar = Daraltılmış Araç Çubuğu
zen-layout-collapsed-toolbar = Daraltılmış kenar çubuğu
sync-currently-syncing-workspaces = Çalışma alanları
sync-engine-workspaces =
.label = Çalışma alanları
@@ -64,7 +64,7 @@ zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Sabitlenmiş sekmelerin URL'lerini tarayıcıılışında orjinaline döndür
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Kapsayıcıya özgü temel sekmeleri etkinleştir
zen-pinned-tab-manager-close-shortcut-behavior-label = Sekmeyi Kapatma Kısayolu Davranışı
zen-pinned-tab-manager-close-shortcut-behavior-label = Sekme kapatma kısayolu davranışı
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
.label = URL'yi sıfırla, yüklemesini kaldır ve sonraki sekmeye geç
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
@@ -78,7 +78,7 @@ zen-pinned-tab-manager-reset-close-shortcut-option =
zen-pinned-tab-manager-close-close-shortcut-option =
.label = Sekmeyi kapat
pane-zen-workspaces-header = Çalışma Alanları
zen-settings-workspaces-header = Çalışma alanları için genel ayarlar
zen-settings-workspaces-header = Çalışma Alanları Genel Ayarları
zen-settings-workspaces-description = Çalışma alanları sayesinde birden fazla göz atma oturumuna aynı anda sahip olabilirsin!
zen-settings-workspaces-enabled =
.label = Çalışma alanlarını aktif et
@@ -175,23 +175,23 @@ zenCKSOption-group-other = Diğer
zenCKSOption-group-windowAndTabManagement = Pencere ve Sekme Yönetimi
zenCKSOption-group-navigation = Navigasyon
zenCKSOption-group-searchAndFind = Ara ve Bul
zenCKSOption-group-pageOperations = Sayfa Eylemleri
zenCKSOption-group-pageOperations = Sayfa İşlemleri
zenCKSOption-group-historyAndBookmarks = Geçmiş ve Yer İmleri
zenCKSOption-group-mediaAndDisplay = Medya ve Görüntü
zenCKSOption-group-zen-compact-mode = Kompakt Mod
zenCKSOption-group-zen-workspace = Çalışma Alanları
zenCKSOption-group-zen-other = Diğer Zen Özellikleri
zenCKSOption-group-zen-split-view = Bölmeli Görünüm
zenCKSOption-group-zen-split-view = Bölünmüş Görünüm
zenCKSOption-group-devTools = Geliştirici Araçları
zen-key-quick-restart = Hızlı Yeniden Başlatma
zen-window-new-shortcut = Yeni Pencere
zen-tab-new-shortcut = Yeni Sekme
zen-key-redo = Geri Al
zen-key-quick-restart = Hızlı yeniden başlat
zen-window-new-shortcut = Yeni pencere
zen-tab-new-shortcut = Yeni sekme
zen-key-redo = Yinele
zen-restore-last-closed-tab-shortcut = Son kapatılan sekmeyi geri aç
zen-location-open-shortcut = Dizini aç
zen-location-open-shortcut-alt = Dizini aç (Alt)
zen-key-undo-close-window = Kapatılan pencereyi geri al
zen-text-action-undo-shortcut = Geri Al
zen-text-action-undo-shortcut = Geri al
zen-text-action-redo-shortcut = Yinele
zen-text-action-cut-shortcut = Kes
zen-text-action-copy-shortcut = Kopyala
@@ -233,9 +233,9 @@ zen-key-enter-full-screen = Tam ekrana gir
zen-key-exit-full-screen = Tam ekrandan çık
zen-ai-chatbot-sidebar-shortcut = Yapay zeka sohbet kenar çubuğunu aç/kapat
zen-key-inspector-mac = Denetleyi aç/kapat (Mac)
zen-toggle-sidebar-shortcut = Firefox kenar çubuğunu aktif et
zen-toggle-sidebar-shortcut = Firefox kenar çubuğunu aç/kapat
zen-toggle-pin-tab-shortcut = Sekme sabitlemeyi aç/kapat
zen-reader-mode-toggle-shortcut-other = Okuma modunu aktif et
zen-reader-mode-toggle-shortcut-other = Okuma modunu aç/kapat
zen-picture-in-picture-toggle-shortcut = Görsel içinde görseli (PiP) aç/kapat
zen-nav-reload-shortcut-2 = Sayfayı yenile
zen-key-about-processes = İşlemler Hakkında
@@ -269,41 +269,41 @@ zen-compact-mode-shortcut-show-sidebar = Kayan kenar çubuğunu aç/kapat
zen-compact-mode-shortcut-show-toolbar = Kayan alet çubuğunu aç/kapat
zen-compact-mode-shortcut-toggle = Kompakt modu aktifleştir
zen-glance-expand = Hızlı bakışı genişlet
zen-workspace-shortcut-switch-1 = 1. Çalışma Alanına G
zen-workspace-shortcut-switch-2 = 2. Çalışma Alanına G
zen-workspace-shortcut-switch-3 = 3. Çalışma Alanına G
zen-workspace-shortcut-switch-4 = 4. Çalışma Alanına G
zen-workspace-shortcut-switch-5 = 5. Çalışma Alanına G
zen-workspace-shortcut-switch-6 = 6. Çalışma Alanına G
zen-workspace-shortcut-switch-7 = 7. Çalışma Alanına G
zen-workspace-shortcut-switch-8 = 8. Çalışma Alanına G
zen-workspace-shortcut-switch-9 = 9. Çalışma Alanına G
zen-workspace-shortcut-switch-10 = 10. Çalışma Alanına G
zen-workspace-shortcut-switch-1 = 1. çalışma alanına g
zen-workspace-shortcut-switch-2 = 2. çalışma alanına g
zen-workspace-shortcut-switch-3 = 3. çalışma alanına g
zen-workspace-shortcut-switch-4 = 4. çalışma alanına g
zen-workspace-shortcut-switch-5 = 5. çalışma alanına g
zen-workspace-shortcut-switch-6 = 6. çalışma alanına g
zen-workspace-shortcut-switch-7 = 7. çalışma alanına g
zen-workspace-shortcut-switch-8 = 8. çalışma alanına g
zen-workspace-shortcut-switch-9 = 9. çalışma alanına g
zen-workspace-shortcut-switch-10 = 10. çalışma alanına g
zen-workspace-shortcut-forward = Sonraki çalışma alanı
zen-workspace-shortcut-backward = Önceki çalışma alanı
zen-sidebar-shortcut-toggle = Kenar çubuğunun genişliğini değiştir
zen-sidebar-shortcut-toggle = Kenar çubuğu genişliğini değiştir
zen-pinned-tab-shortcut-reset = Sabitlenen sekmeyi sabitlenen URL'ye sıfırla
zen-split-view-shortcut-grid = Izgaralı bölünmüş görünümü aç/kapat
zen-split-view-shortcut-vertical = Dikey bölünmüş görünümü aç/kapat
zen-split-view-shortcut-horizontal = Yatay Bölünmüş Görünümü Aç/Kapat
zen-split-view-shortcut-unsplit = Bölünmüş Görünümü Kapat
zen-new-empty-split-view-shortcut = Yeni BBölünmüş Görünüm
zen-key-select-tab-1 = 1. Sekmeyi S
zen-key-select-tab-2 = 2. Sekmeyi S
zen-key-select-tab-3 = 3. Sekmeyi S
zen-key-select-tab-4 = 4. Sekmeyi S
zen-key-select-tab-5 = 5. Sekmeyi S
zen-key-select-tab-6 = 6. Sekmeyi S
zen-key-select-tab-7 = 7. Sekmeyi S
zen-key-select-tab-8 = 8. Sekmeyi S
zen-key-select-tab-last = Son Sekmeyi S
zen-key-show-all-tabs = Tüm Sekmeleri Göster
zen-key-goto-history = Arama Geçmişine Git
zen-key-go-home = Ana Sayfaya Git
zen-bookmark-show-sidebar-shortcut = Yer İmlerini Kenar Çubuğunda Göster
zen-bookmark-show-toolbar-shortcut = Yer İmlerini Araç Çubuğunda Göster
zen-devtools-toggle-shortcut = Geliştirici Araçlarını Aç/Kapat
zen-devtools-toggle-browser-toolbox-shortcut = Tarayıcı Araç Kutusunu Aç/Kapat
zen-split-view-shortcut-unsplit = Bölünmüş görünümü kapat
zen-new-empty-split-view-shortcut = Yeni bbölünmüş görünüm
zen-key-select-tab-1 = 1. sekmeyi s
zen-key-select-tab-2 = 2. sekmeyi s
zen-key-select-tab-3 = 3. sekmeyi s
zen-key-select-tab-4 = 4. sekmeyi s
zen-key-select-tab-5 = 5. sekmeyi s
zen-key-select-tab-6 = 6. sekmeyi s
zen-key-select-tab-7 = 7. sekmeyi s
zen-key-select-tab-8 = 8. sekmeyi s
zen-key-select-tab-last = Son sekmeyi s
zen-key-show-all-tabs = Tüm sekmeleri göster
zen-key-goto-history = Arama geçmişine git
zen-key-go-home = Ana sayfaya git
zen-bookmark-show-sidebar-shortcut = Yer imlerini kenar çubuğunda göster
zen-bookmark-show-toolbar-shortcut = Yer imlerini araç çubuğunda göster
zen-devtools-toggle-shortcut = Geliştirici araçlarını aç/kapat
zen-devtools-toggle-browser-toolbox-shortcut = Tarayıcı araç kutusunu aç/kapat
zen-devtools-toggle-browser-console-shortcut = Tarayıcı konsolunu aç/kapat
zen-devtools-toggle-responsive-design-mode-shortcut = Uyumlu tasarım modunu aç/kapat
zen-devtools-toggle-inspector-shortcut = Denetleyiciyi aç/kapat

View File

@@ -7,22 +7,22 @@ unified-extensions-description = Uzantılar { -brand-short-name }'e daha fazla e
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Temel sekmeyi sıfırla
*[false] Sabitlenmiş sekmeyi sıfırla
[true] Temel sekmeyi sıfırla
*[false] Sabitlenmiş sekmeyi sıfırla
}
.accesskey = R
tab-context-zen-add-essential =
.label = Temel sekmelere ekle
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } yuva dolu
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Temel sekmelerden kaldır
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
.label =
{ $isEssential ->
[true] Temel sekmenin URLsini geçerli olanla değiştir
*[false] Sabitlenmiş sekme URLsini geçerli olanla değiştir
[true] Temel sekmenin URLsini geçerli olanla değiştir
*[false] Sabitlenmiş sekme URLsini geçerli olanla değiştir
}
.accesskey = C
tab-context-zen-edit-title =
@@ -88,7 +88,7 @@ zen-site-data-manage-addons =
zen-site-data-get-addons =
.label = Uzantı ekle
zen-site-data-site-settings =
.label = Tüm Site Ayarları
.label = Tüm site ayarları
zen-site-data-header-share =
.tooltiptext = Bu sayfayı paylaş
zen-site-data-header-reader-mode =

View File

@@ -5,7 +5,8 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[1] Bölünmüş Sekme (birden fazla seçilmiş sekme gerekir)
[-1] Sekmeleri birleştir
[1] Sekmeyi böl (birden fazla seçilmiş sekme gerekir)
*[other] { $tabCount } Sekmeyi Böl
}
.accesskey = S

View File

@@ -27,18 +27,18 @@ sidebar-zen-create-new =
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
[bir] Kapatın ve sekmeye geçin
[one] Kapatın ve sekmeye geçin
*[other] { $tabCount } sekmesini kaldır ve ilkine geç
}
tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
[bir] Sıfırlayın ve sabitleyin
[one] Sıfırlayın ve sabitleyin
*[other] { $tabCount } Sekmeyi sıfırla ve sabitle
}
zen-tab-sublabel =
{ $tabSubtitle ->
[zen-default-pinned] Sabitlenmiş URLye geri dön
[zen-default-pinned-cmd] Sabitlenmiş sekmeden ayır
*[other] { $tabSubtitle }
[zen-default-pinned] Sabitlenmiş URLye geri dön
[zen-default-pinned-cmd] Sabitlenmiş sekmeden ayır
*[other] { $tabSubtitle }
}

View File

@@ -31,7 +31,7 @@ zen-workspaces-how-to-reorder-desc = Alanları yeniden sıralamak için kenar ç
zen-workspaces-change-theme =
.label = Temayı düzenle
zen-workspaces-panel-context-open =
.label = Çalışma Alanı Aç
.label = Çalışma alanı aç
.accesskey = O
zen-workspaces-panel-context-edit =
.label = Çalışma alanını düzenle

View File

@@ -7,8 +7,8 @@ unified-extensions-description = Các tiện ích mở rộng được sử dụ
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
[true] Đặt lại thẻ chính
*[false] Đặt lại thẻ đã ghim
[true] Đặt lại thẻ chính
*[false] Đặt lại thẻ đã ghim
}
.accesskey = R
tab-context-zen-add-essential =

View File

@@ -121,4 +121,4 @@ zen-window-sync-migration-dialog-message = Zen 现已支持同一设备上的窗
zen-window-sync-migration-dialog-learn-more = 了解更多
zen-window-sync-migration-dialog-accept = 知道了
zen-appmenu-new-blank-window =
.label = 新空白窗口
.label = 新空白窗口

View File

@@ -5,6 +5,7 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] 取消分屏标签页
[1] 分屏标签页(需要选择多个标签页)
*[other] 分屏 { $tabCount } 个标签页
}

View File

@@ -14,7 +14,7 @@ tab-context-zen-reset-pinned-tab =
tab-context-zen-add-essential =
.label = 新增至 Essentials
.accesskey = E
tab-context-zen-add-essential-badge = 已使用 { $num } / { $max } 個位置
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = 從 Essentials 中移除
.accesskey = R

25
package-lock.json generated
View File

@@ -1005,15 +1005,15 @@
"license": "MIT"
},
"node_modules/axios": {
"version": "1.13.6",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
"integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz",
"integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.11",
"form-data": "^4.0.5",
"proxy-from-env": "^1.1.0"
"proxy-from-env": "^2.1.0"
}
},
"node_modules/b4a": {
@@ -3074,9 +3074,9 @@
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3254,11 +3254,14 @@
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
"integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
"dev": true,
"license": "MIT"
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/pump": {
"version": "3.0.2",

View File

@@ -23,7 +23,6 @@
"sync:l10n": "python3 scripts/update_ff.py --just-l10n",
"lint": "cd engine && ./mach lint zen",
"lint:fix": "npm run lint -- --fix",
"prepare": "husky",
"reset-ff": "surfer reset",
"surfer": "surfer",
"test": "python3 scripts/run_tests.py",
@@ -38,9 +37,6 @@
"type": "git",
"url": "git+https://github.com/zen-browser/desktop.git"
},
"hooks": {
"pre-commit": "npm run prepare"
},
"keywords": [],
"author": "",
"license": "MPL-2.0",

View File

@@ -86,3 +86,7 @@
- name: browser.tabs.splitView.enabled
value: false
locked: true
# See gh-12985 for details on the following preferences
- name: browser.search.widget.new
value: true

View File

@@ -16,3 +16,6 @@
- name: zen.glance.animation-duration
value: 350 # in milliseconds
- name: zen.glance.deactivate-docshell-during-animation
value: true

View File

@@ -27,3 +27,7 @@
- name: widget.macos.native-popovers
value: true
condition: "defined(XP_MACOSX)"
- name: zen.widget.macos.override-system-swipe-gestures
value: true
condition: "defined(XP_MACOSX)"

View File

@@ -8,4 +8,4 @@ packaging==24.2
pathspec==0.12.1
platformdirs==4.3.6
pycodestyle==2.12.1
requests==2.32.5
requests==2.33.0

167
scripts/mar_sign.sh Normal file
View File

@@ -0,0 +1,167 @@
#!/usr/bin/env bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
set -e
CERT_PATH_DIR=build/signing
UPDATER_CERT_DIR="engine/toolkit/mozapps/update/updater"
NSS_CONFIG_DIR="$CERT_PATH_DIR/nss_config"
generate_certs() {
mkdir temp
cd temp
# 1. Generate private key
openssl genrsa -out private_key.pem 4096
# 2. Generate self-signed certificate (required for PKCS#12 bundling)
openssl req -new -x509 \
-key private_key.pem \
-out cert.pem \
-subj "/CN=MAR Signing"
# 3. Export public key as SPKI DER (for embedding in updater)
openssl rsa -in private_key.pem -pubout -outform DER -out public_key.der
cd ..
mkdir -p "$CERT_PATH_DIR"
mv temp/private_key.pem "$CERT_PATH_DIR"/private_key.pem
mv temp/cert.pem "$CERT_PATH_DIR"/cert.pem
mv temp/public_key.der "$CERT_PATH_DIR"/public_key.der
mkdir -p "$CERT_PATH_DIR/env"
base64 -w 0 "$CERT_PATH_DIR"/cert.pem > "$CERT_PATH_DIR"/env/ZEN_SIGNING_CERT_PEM_BASE64
base64 -w 0 "$CERT_PATH_DIR"/private_key.pem > "$CERT_PATH_DIR"/env/ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64
# Verify public key
openssl rsa -in "$CERT_PATH_DIR"/public_key.der \
-pubin -inform DER -text -noout
rm -rf temp
}
import_cert() {
if [ ! -f "$CERT_PATH_DIR/public_key.der" ]; then
echo "Error: public_key.der not found. Run with -g first." >&2
exit 1
fi
echo "Importing certificate into $UPDATER_CERT_DIR/release_primary.der"
cp "$CERT_PATH_DIR/public_key.der" "$UPDATER_CERT_DIR/release_primary.der"
echo "Importing certificate into $UPDATER_CERT_DIR/release_secondary.der"
cp "$CERT_PATH_DIR/public_key.der" "$UPDATER_CERT_DIR/release_secondary.der"
echo "Done. Rebuild the updater to embed the new certificate."
}
create_nss_config_dir() {
rm -rf "$NSS_CONFIG_DIR"
mkdir "$NSS_CONFIG_DIR"
if [ -z "$ZEN_MAR_SIGNING_PASSWORD" ]; then
echo "Warning: ZEN_MAR_SIGNING_PASSWORD environment variable not set. Using empty password." >&2
ZEN_MAR_SIGNING_PASSWORD=""
fi
password_file="$NSS_CONFIG_DIR/password.txt"
echo "$ZEN_MAR_SIGNING_PASSWORD" > "$password_file"
if [ "$ZEN_SIGNING_CERT_PEM_BASE64" ]; then
echo "Decoding signing certificate from ZEN_SIGNING_CERT_PEM_BASE64 environment variable..."
echo "$ZEN_SIGNING_CERT_PEM_BASE64" | base64 -d > "$CERT_PATH_DIR/cert.pem"
fi
if [ "$ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64" ]; then
echo "Decoding signing private key from ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64 environment variable..."
echo "$ZEN_SIGNING_PRIVATE_KEY_PEM_BASE64" | base64 -d > "$CERT_PATH_DIR/private_key.pem"
fi
echo "Generating NSS config directory at $NSS_CONFIG_DIR"
certutil -N -d "$NSS_CONFIG_DIR" -f "$password_file"
echo "Wrapping private key into PKCS#12..."
echo "Wrapping key + cert into PKCS#12..."
openssl pkcs12 -export \
-inkey "$CERT_PATH_DIR/private_key.pem" \
-in "$CERT_PATH_DIR/cert.pem" \
-name "private_key" \
-passout pass:"$ZEN_MAR_SIGNING_PASSWORD" \
-out "$CERT_PATH_DIR/private_key.p12"
echo "Importing PKCS#12 into NSS database..."
pk12util \
-i "$CERT_PATH_DIR/private_key.p12" \
-d "$NSS_CONFIG_DIR" \
-W "$ZEN_MAR_SIGNING_PASSWORD" \
-K "$ZEN_MAR_SIGNING_PASSWORD"
}
cleanup_certs() {
rm -rf "$NSS_CONFIG_DIR"
rm -rf "$CERT_PATH_DIR/env"
rm -f "$CERT_PATH_DIR/private_key.p12"
rm -f "$CERT_PATH_DIR/private_key.pem"
rm -f "$CERT_PATH_DIR/cert.pem"
}
sign_mars() {
if [ ! -f "$SIGNMAR" ]; then
echo "Error: signmar not found at $SIGNMAR. Build the engine first." >&2
exit 1
fi
chmod +x "$SIGNMAR"
create_nss_config_dir
folders=(
linux.mar
linux-aarch64.mar
windows.mar
windows-arm64
macos.mar
)
# each folder will contain the .mar files for that platform, and the signature will be written in-place
for folder in "${folders[@]}"; do
if [ -d "$folder" ]; then
for mar_file in "$folder"/*.mar; do
if [ -f "$mar_file" ]; then
echo ""
echo "Signing $mar_file..."
# mar [-C workingDir] -d NSSConfigDir -n certname -s archive.mar out_signed_archive.mar
"$SIGNMAR" -d "$NSS_CONFIG_DIR" -n "private_key" -s "$mar_file" "$mar_file".signed
echo "Signed $mar_file. Verifying signature..."
"$SIGNMAR" -d "$NSS_CONFIG_DIR" -n "private_key" -v "$mar_file".signed
mv "$mar_file".signed "$mar_file"
echo "Successfully signed $mar_file"
else
echo "No .mar files found in $folder, skipping."
fi
done
else
echo "Directory $folder not found, skipping."
fi
done
cleanup_certs
}
case "$1" in
-g)
generate_certs
;;
-i)
import_cert
;;
-s)
sign_mars
;;
*)
echo "Usage: $0 [-g] [-i] [-s]" >&2
echo " -g Generate MAR signing certificates" >&2
echo " -i Import the certificate into the updater (release_primary.der)" >&2
echo " -s Sign *.mar files in the current directory in-place" >&2
exit 1
;;
esac

View File

@@ -55,7 +55,7 @@ def main():
name = patch.get("name")
if not phab_id or not name:
die(f"Patch entry missing 'id' or 'name': {patch}")
name = name.replace(" ", "_").lower()
name = name.replace(" ", "_").replace(".", "_").lower()
output_file = os.path.join(OUTPUT_DIR, "firefox", f"{name}.patch")
print(f"Processing Phabricator patch: {phab_id} -> {output_file}")
download_phab_patch(phab_id, output_file)

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
index 75ddd82c18979571f377dec94fe1883f1349cc16..58ae4d88f7f0b37187cb61fcaf4cf84a9af7991f 100644
index 75ddd82c18979571f377dec94fe1883f1349cc16..129d78214db53fc8dbd17d23b4a5a042ec297a41 100644
--- a/browser/base/content/browser-commands.js
+++ b/browser/base/content/browser-commands.js
@@ -14,6 +14,10 @@ var BrowserCommands = {
@@ -24,11 +24,14 @@ index 75ddd82c18979571f377dec94fe1883f1349cc16..58ae4d88f7f0b37187cb61fcaf4cf84a
// A notification intended to be useful for modular peformance tracking
// starting as close as is reasonably possible to the time when the user
// expressed the intent to open a new tab. Since there are a lot of
@@ -399,6 +407,11 @@ var BrowserCommands = {
@@ -399,6 +407,14 @@ var BrowserCommands = {
return;
}
+ if (gBrowser.selectedTab.hasAttribute("zen-empty-tab")) {
+ if (gBrowser.selectedTab.hasAttribute("split-view")) {
+ return;
+ }
+ gZenWorkspaces.handleTabCloseWindow();
+ return;
+ }
@@ -36,7 +39,7 @@ index 75ddd82c18979571f377dec94fe1883f1349cc16..58ae4d88f7f0b37187cb61fcaf4cf84a
// Keyboard shortcuts that would close a tab that is pinned select the first
// unpinned tab instead.
if (
@@ -406,8 +419,8 @@ var BrowserCommands = {
@@ -406,8 +422,8 @@ var BrowserCommands = {
(event.ctrlKey || event.metaKey || event.altKey) &&
gBrowser.selectedTab.pinned
) {

View File

@@ -1,8 +1,19 @@
diff --git a/browser/base/content/browser-gestureSupport.js b/browser/base/content/browser-gestureSupport.js
index a28d54bf72c0e6495b9586f220d1859aac794936..66154668b9f85ffbaacea1e8351370659260227b 100644
index a28d54bf72c0e6495b9586f220d1859aac794936..411d7255a68c48643617d77cc279a0a831fdf5c9 100644
--- a/browser/base/content/browser-gestureSupport.js
+++ b/browser/base/content/browser-gestureSupport.js
@@ -832,7 +832,7 @@ var gHistorySwipeAnimation = {
@@ -247,6 +247,10 @@ var gGestureSupport = {
: aEvent.DIRECTION_LEFT;
}
+ if (!gHistorySwipeAnimation._isSupported()) {
+ return;
+ }
+
return canGoBack || canGoForward;
},
@@ -832,7 +836,7 @@ var gHistorySwipeAnimation = {
* @return true if there is a previous page in history, false otherwise.
*/
canGoBack: function HSA_canGoBack() {

View File

@@ -66,4 +66,6 @@
<command id="cmd_zenNewNavigatorUnsynced" />
<command id="cmd_zenNewLiveFolder" />
<command id="cmd_zenDuplicateTab" />
</commandset>

View File

@@ -3,23 +3,6 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<menupopup id="zenCreateNewPopup">
<menu data-l10n-id="zen-panel-ui-live-folder-create" id="zen-panel-ui-live-folder-create">
<menupopup>
<menuitem
data-l10n-id="zen-live-folder-github-pull-requests"
command="cmd_zenNewLiveFolder"
image="chrome://browser/skin/zen-icons/selectable/logo-github.svg" />
<menuitem
data-l10n-id="zen-live-folder-github-issues"
command="cmd_zenNewLiveFolder"
image="chrome://browser/skin/zen-icons/selectable/logo-github.svg" />
<menuitem
data-l10n-id="zen-live-folder-type-rss"
command="cmd_zenNewLiveFolder"
image="chrome://browser/skin/zen-icons/selectable/logo-rss.svg"/>
</menupopup>
</menu>
<menuseparator/>
<menuitem data-l10n-id="zen-panel-ui-workspaces-create" command="cmd_zenOpenWorkspaceCreation" image="chrome://browser/skin/zen-icons/duplicate-tab.svg" />
<menuitem data-l10n-id="zen-panel-ui-folder-create" command="cmd_zenOpenFolderCreation" image="chrome://browser/skin/zen-icons/folder.svg" />
<menuseparator/>

View File

@@ -1,7 +1,16 @@
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
index d5fd707b98e4b163a624c97ff4a8f2574e0b0180..32360b11270d9dad4b83229428932e598f69e774 100644
index d5fd707b98e4b163a624c97ff4a8f2574e0b0180..b5d7e84c3567e83b95a6493e8333d3036dc88f36 100644
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
@@ -183,7 +183,7 @@ export var ToolbarContextMenu = {
let showTabStripItems = toolbarItem?.id == "tabbrowser-tabs";
let isVerticalTabStripMenu =
- showTabStripItems && toolbarItem.parentElement.id == "vertical-tabs";
+ showTabStripItems && toolbarItem.parentElement.id == "TabsToolbar-customization-target";
if (aInsertPoint) {
aInsertPoint.hidden = isVerticalTabStripMenu;
@@ -243,10 +243,7 @@ export var ToolbarContextMenu = {
// Show/hide sidebar and vertical tabs menu items
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
@@ -14,3 +23,11 @@ index d5fd707b98e4b163a624c97ff4a8f2574e0b0180..32360b11270d9dad4b83229428932e59
let toggleVerticalTabsItem = document.getElementById(
"toolbar-context-toggle-vertical-tabs"
@@ -267,6 +264,7 @@ export var ToolbarContextMenu = {
document.getElementById("sidebarRevampSeparator").hidden =
!showSidebarActions || isVerticalTabStripMenu;
document.getElementById("customizationMenuSeparator").hidden =
+ true ||
toolbarItem?.id == "tabbrowser-tabs" ||
(toolbarItem?.localName == "toolbarspring" &&
!CustomizationHandler.isCustomizing()) ||

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
index e77dfebdf3a15033182eeae6eccd44a63aae3740..4e25b3e1abaeeaec3e83e0e1b53bf578eba5587b 100644
index a5f2e4258942010ee61ed7a86497f51793366fcd..f01524a09512ec6cd1972a9fdb173ff427a0d753 100644
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
@@ -2652,6 +2652,11 @@ SettingGroupManager.registerGroups({

View File

@@ -1067,7 +1067,7 @@ var gZenCKSSettings = {
zenMissingKeyboardShortcutL10n[conflictShortcut.getID()] ??
conflictShortcut.getL10NID();
const [group] = await document.l10n.formatValues([
const [group, conflictName] = await document.l10n.formatValues([
{ id: `${ZEN_CKS_GROUP_PREFIX}-${conflictShortcut.getGroup()}` },
{ id: shortcutL10nKey },
]);
@@ -1082,7 +1082,7 @@ var gZenCKSSettings = {
document.l10n.setAttributes(input.nextElementSibling, "zen-key-conflict", {
group: group ?? "",
shortcut: shortcut ?? "",
shortcut: conflictName ?? shortcut ?? "",
});
}
} else {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
index ced2bfd88de2d16e2c028ca3f4d9d27516363575..aaf6e82782357c819ca875f05020723600e41e6b 100644
index ced2bfd88de2d16e2c028ca3f4d9d27516363575..69b45c7dad9d294e4290de4ce878d184925e5610 100644
--- a/browser/components/tabbrowser/content/drag-and-drop.js
+++ b/browser/components/tabbrowser/content/drag-and-drop.js
@@ -35,6 +35,9 @@
@@ -277,7 +277,11 @@ index ced2bfd88de2d16e2c028ca3f4d9d27516363575..aaf6e82782357c819ca875f050207236
tab.removeAttribute("small-stack");
tab.removeAttribute("big-stack");
}
@@ -2582,7 +2585,6 @@
@@ -2578,11 +2581,9 @@
)) {
label.style.width = "";
label.style.maxWidth = "";
- label.style.height = "";
label.style.left = "";
label.style.top = "";
label.style.pointerEvents = "";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e0474669fc15c20 100644
index e4266a159a0d5c42cc294602d00b8f66131f35d5..f3e362f062063ebe08bd26cc694f2d965ccffd84 100644
--- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@
@@ -52,7 +52,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
return;
}
@@ -225,11 +228,23 @@
@@ -225,11 +228,25 @@
}
get visible() {
@@ -74,14 +74,16 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
+ }
+ currentParent = currentParent.group;
+ }
+ if (this.pinned && !this.hasAttribute("zen-essential") && gZenWorkspaces.activeWorkspaceElement?.hasCollapsedPinnedTabs) {
+ if (this.pinned && !this.hasAttribute("zen-essential") &&
+ gZenWorkspaces.activeWorkspaceElement?.hasCollapsedPinnedTabs &&
+ !gZenWorkspaces.activeWorkspaceElement.collapsiblePins.activeTabs?.includes(this)) {
+ return false;
+ }
+ return true;
}
get hidden() {
@@ -308,7 +323,7 @@
@@ -308,7 +325,7 @@
return false;
}
@@ -90,7 +92,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
}
get lastAccessed() {
@@ -393,7 +408,18 @@
@@ -393,7 +410,18 @@
}
get group() {
@@ -110,7 +112,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
}
get splitview() {
@@ -475,6 +501,10 @@
@@ -475,6 +503,10 @@
}
}
@@ -121,7 +123,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
// If the previous target wasn't part of this tab then this is a mouseenter event.
if (!this.contains(event.relatedTarget)) {
this._mouseenter();
@@ -504,6 +534,7 @@
@@ -504,6 +536,7 @@
if (!this.contains(event.relatedTarget)) {
this._mouseleave();
}
@@ -129,7 +131,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
}
on_dragstart(event) {
@@ -538,6 +569,8 @@
@@ -538,6 +571,8 @@
this.style.MozUserFocus = "ignore";
} else if (
event.target.classList.contains("tab-close-button") ||
@@ -138,7 +140,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button")
) {
@@ -592,16 +625,21 @@
@@ -592,16 +627,21 @@
this.style.MozUserFocus = "";
}
@@ -161,7 +163,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
gBrowser.multiSelectedTabsCount > 0 &&
!event.target.classList.contains("tab-close-button") &&
!event.target.classList.contains("tab-icon-overlay") &&
@@ -613,8 +651,9 @@
@@ -613,8 +653,9 @@
}
if (
@@ -173,7 +175,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
) {
if (this.activeMediaBlocked) {
if (this.multiselected) {
@@ -632,7 +671,7 @@
@@ -632,7 +673,7 @@
return;
}
@@ -182,7 +184,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
if (this.multiselected) {
gBrowser.removeMultiSelectedTabs(
lazy.TabMetrics.userTriggeredContext(
@@ -652,6 +691,14 @@
@@ -652,6 +693,14 @@
// (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true;
}
@@ -197,7 +199,7 @@ index e4266a159a0d5c42cc294602d00b8f66131f35d5..88c321f05dabd948d06e155f6e047466
}
on_dblclick(event) {
@@ -675,6 +722,8 @@
@@ -675,6 +724,8 @@
animate: true,
triggeringEvent: event,
});

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c19d2c96fa 100644
index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..aed843d26eaf56d66883f95c373d40106d93dc08 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -413,6 +413,7 @@
@@ -186,6 +186,15 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// If focus is on the old tab, move it to the new tab.
if (activeEl == oldTab) {
newTab.focus();
@@ -1822,7 +1902,7 @@
// Focus the location bar if it was previously focused for that tab.
// In full screen mode, only bother making the location bar visible
// if the tab is a blank one.
- if (gURLBar.getBrowserState(newBrowser).urlbarFocused) {
+ if (gURLBar.getBrowserState(newBrowser).urlbarFocused && (!gZenVerticalTabsManager._hasSetSingleToolbar || isBlankPageURL(newBrowser.currentURI?.spec))) {
let selectURL = () => {
if (this._asyncTabSwitching) {
// Set _awaitingSetURI flag to suppress popup notification
@@ -2110,7 +2190,12 @@
return this._setTabLabel(aTab, aLabel);
}
@@ -473,10 +482,10 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
+ gZenWorkspaces._initialTab._shouldRemove = true;
+ }
+ }
+ }
}
+ else {
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
}
+ }
+ this._hasAlreadyInitializedZenSessionStore = true;
if (tabs.length > 1 || !tabs[0].selected) {
@@ -579,8 +588,8 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
} catch (e) {
console.error(e);
}
@@ -5524,6 +5679,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
@@ -5531,6 +5686,13 @@
return;
}
+ if (gZenWorkspaces.workspaceEnabled) {
@@ -589,10 +598,11 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
+ this.selectedTab = newTab;
+ }
+ }
// Handle requests for synchronously removing an already
// asynchronously closing tab.
if (!animate && aTab.closing) {
@@ -5538,6 +5699,9 @@
+
let isVisibleTab = aTab.visible;
// We have to sample the tab width now, since _beginRemoveTab might
// end up modifying the DOM in such a way that aTab gets a new
@@ -5538,6 +5700,9 @@
// state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab);
@@ -602,7 +612,23 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
if (
!this._beginRemoveTab(aTab, {
closeWindowFastpath: true,
@@ -5586,7 +5750,13 @@
@@ -5549,13 +5714,14 @@
telemetrySource,
})
) {
+ delete gZenWorkspaces._isClosingWindow;
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null;
Glean.browserTabclose.timeNoAnim.cancel(aTab._closeTimeNoAnimTimerId);
aTab._closeTimeNoAnimTimerId = null;
return;
}
-
+ gZenWorkspaces.handleTabBeforeRemove();
let lockTabSizing =
!this.tabContainer.verticalMode &&
!aTab.pinned &&
@@ -5586,7 +5752,13 @@
// We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null;
@@ -617,7 +643,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
return;
}
@@ -5720,7 +5890,7 @@
@@ -5720,7 +5892,7 @@
closeWindowWithLastTab != null
? closeWindowWithLastTab
: !window.toolbar.visible ||
@@ -626,7 +652,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here,
@@ -5744,6 +5914,7 @@
@@ -5744,6 +5916,7 @@
newTab = true;
}
@@ -634,7 +660,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -5784,13 +5955,7 @@
@@ -5784,13 +5957,7 @@
aTab._mouseleave();
if (newTab) {
@@ -649,7 +675,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
} else {
TabBarVisibility.update();
}
@@ -5923,6 +6088,7 @@
@@ -5923,6 +6090,7 @@
this.tabs[i]._tPos = i;
}
@@ -657,7 +683,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
if (!this._windowIsClosing) {
// update tab close buttons state
this.tabContainer._updateCloseButtons();
@@ -6153,6 +6319,7 @@
@@ -6153,6 +6321,7 @@
}
let excludeTabs = new Set(aExcludeTabs);
@@ -665,7 +691,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor.
@@ -6165,15 +6332,22 @@
@@ -6165,15 +6334,22 @@
!excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) {
@@ -690,7 +716,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
let tab = this.tabContainer.findNextTab(aTab, {
direction: 1,
filter: _tab => remainingTabs.includes(_tab),
@@ -6187,7 +6361,7 @@
@@ -6187,7 +6363,7 @@
}
if (tab) {
@@ -699,7 +725,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
// If no qualifying visible tab was found, see if there is a tab in
@@ -6208,7 +6382,7 @@
@@ -6208,7 +6384,7 @@
});
}
@@ -708,7 +734,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
_blurTab(aTab) {
@@ -6219,7 +6393,7 @@
@@ -6219,7 +6395,7 @@
* @returns {boolean}
* False if swapping isn't permitted, true otherwise.
*/
@@ -717,7 +743,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// Do not allow transfering a private tab to a non-private window
// and vice versa.
if (
@@ -6273,6 +6447,7 @@
@@ -6273,6 +6449,7 @@
// fire the beforeunload event in the process. Close the other
// window if this was its last tab.
if (
@@ -725,7 +751,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
!remoteBrowser._beginRemoveTab(aOtherTab, {
adoptedByTab: aOurTab,
closeWindowWithLastTab: true,
@@ -6284,7 +6459,7 @@
@@ -6284,7 +6461,7 @@
// If this is the last tab of the window, hide the window
// immediately without animation before the docshell swap, to avoid
// about:blank being painted.
@@ -734,7 +760,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
if (closeWindow) {
let win = aOtherTab.ownerGlobal;
win.windowUtils.suppressAnimation(true);
@@ -6412,11 +6587,13 @@
@@ -6412,11 +6589,13 @@
}
// Finish tearing down the tab that's going away.
@@ -748,7 +774,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
this.setTabTitle(aOurTab);
@@ -6618,10 +6795,10 @@
@@ -6618,10 +6797,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
}
@@ -761,7 +787,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
aTab.selected ||
aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -6681,7 +6858,8 @@
@@ -6681,7 +6860,8 @@
* @param {object} [aOptions={}]
* Key-value pairs that will be serialized into the features string.
*/
@@ -771,7 +797,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
if (this.tabs.length == 1) {
return null;
}
@@ -6698,7 +6876,7 @@
@@ -6698,7 +6878,7 @@
// tell a new window to take the "dropped" tab
let args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
args.appendElement(aTab.splitview ?? aTab);
@@ -780,7 +806,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
private: PrivateBrowsingUtils.isWindowPrivate(window),
features: Object.entries(aOptions)
.map(([key, value]) => `${key}=${value}`)
@@ -6706,6 +6884,8 @@
@@ -6706,6 +6886,8 @@
openerWindow: window,
args,
});
@@ -789,7 +815,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
/**
@@ -6818,7 +6998,7 @@
@@ -6818,7 +7000,7 @@
* `true` if element is a `<tab-group>`
*/
isTabGroup(element) {
@@ -798,7 +824,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
/**
@@ -6903,8 +7083,8 @@
@@ -6903,8 +7085,8 @@
}
// Don't allow mixing pinned and unpinned tabs.
@@ -809,7 +835,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
} else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
}
@@ -6933,13 +7113,19 @@
@@ -6933,13 +7115,19 @@
this.#handleTabMove(
element,
() => {
@@ -831,7 +857,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
let useAfter = false;
if (this.isTab(element)) {
useAfter = neighbor && tabIndex > element._tPos;
@@ -7004,23 +7190,31 @@
@@ -7004,23 +7192,31 @@
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group;
@@ -869,7 +895,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
} else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element
@@ -7033,12 +7227,35 @@
@@ -7033,12 +7229,35 @@
// move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group.
@@ -906,7 +932,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// We want to include the splitview wrapper if it's the targetElement, but
// not in the case where we want to reverse tabs within the same splitview.
@@ -7047,6 +7264,7 @@
@@ -7047,6 +7266,7 @@
}
let getContainer = () =>
@@ -914,7 +940,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
element.pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
@@ -7055,11 +7273,15 @@
@@ -7055,11 +7275,15 @@
element,
() => {
if (moveBefore) {
@@ -931,7 +957,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
},
metricsContext
@@ -7133,10 +7355,10 @@
@@ -7133,10 +7357,10 @@
* @param {TabMetricsContext} [metricsContext]
*/
moveTabToExistingGroup(aTab, aGroup, metricsContext) {
@@ -944,7 +970,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
return;
}
if (aTab.group && aTab.group.id === aGroup.id) {
@@ -7209,6 +7431,7 @@
@@ -7209,6 +7433,7 @@
let state = {
tabIndex: tab._tPos,
@@ -952,7 +978,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
};
if (tab.visible) {
state.elementIndex = tab.elementIndex;
@@ -7240,7 +7463,7 @@
@@ -7240,7 +7465,7 @@
let changedSplitView =
previousTabState.splitViewId != currentTabState.splitViewId;
@@ -961,7 +987,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
tab.dispatchEvent(
new CustomEvent("TabMove", {
bubbles: true,
@@ -7281,6 +7504,10 @@
@@ -7281,6 +7506,10 @@
moveActionCallback();
@@ -972,7 +998,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// Clear tabs cache after moving nodes because the order of tabs may have
// changed.
this.tabContainer._invalidateCachedTabs();
@@ -7331,7 +7558,22 @@
@@ -7331,7 +7560,22 @@
* @returns {object}
* The new tab in the current window, null if the tab couldn't be adopted.
*/
@@ -996,7 +1022,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
// Swap the dropped tab with a new one we create and then close
// it in the other window (making it seem to have moved between
// windows). We also ensure that the tab we create to swap into has
@@ -7374,6 +7616,8 @@
@@ -7374,6 +7618,8 @@
}
params.skipLoad = true;
let newTab = this.addWebTab("about:blank", params);
@@ -1005,7 +1031,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
aTab.container.tabDragAndDrop.finishAnimateTabMove();
@@ -8076,7 +8320,7 @@
@@ -8076,7 +8322,7 @@
// preventDefault(). It will still raise the window if appropriate.
return;
}
@@ -1014,7 +1040,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
window.focus();
aEvent.preventDefault();
}
@@ -8093,7 +8337,6 @@
@@ -8093,7 +8339,6 @@
on_TabGroupCollapse(aEvent) {
aEvent.target.tabs.forEach(tab => {
@@ -1022,7 +1048,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
});
}
@@ -8427,7 +8670,9 @@
@@ -8427,7 +8672,9 @@
let filter = this._tabFilters.get(tab);
if (filter) {
@@ -1032,7 +1058,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
let listener = this._tabListeners.get(tab);
if (listener) {
@@ -9233,6 +9478,7 @@
@@ -9233,6 +9480,7 @@
aWebProgress.isTopLevel
) {
this.mTab.setAttribute("busy", "true");
@@ -1040,7 +1066,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected;
}
@@ -9313,6 +9559,7 @@
@@ -9313,6 +9561,7 @@
// known defaults. Note we use the original URL since about:newtab
// redirects to a prerendered page.
const shouldRemoveFavicon =
@@ -1048,7 +1074,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
!this.mBrowser.mIconURL &&
!ignoreBlank &&
!(originalLocation.spec in FAVICON_DEFAULTS);
@@ -9487,13 +9734,6 @@
@@ -9487,13 +9736,6 @@
this.mBrowser.originalURI = aRequest.originalURI;
}
@@ -1062,7 +1088,7 @@ index d88bc0e5570c8fd428a84fdf5af0f6bab1e2a636..5bb791734fdf066c82de3975b74cf1c1
}
let userContextId = this.mBrowser.getAttribute("usercontextid") || 0;
@@ -10379,7 +10619,7 @@ var TabContextMenu = {
@@ -10379,7 +10621,7 @@ var TabContextMenu = {
);
contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938d6923f3e 100644
index 3ca119e8dc72fac652c98505211864483d98add2..b65307ee8df896488a4c51e3a25bf9ad9e1c8179 100644
--- a/browser/components/tabbrowser/content/tabgroup.js
+++ b/browser/components/tabbrowser/content/tabgroup.js
@@ -14,11 +14,11 @@
@@ -101,7 +101,13 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
resetDefaultGroupName = () => {
this.#defaultGroupName = "";
@@ -178,7 +201,9 @@
@@ -175,10 +198,15 @@
if (!this.#tabChangeObserver) {
this.#tabChangeObserver = new window.MutationObserver(mutations => {
if (!this.tabs.length) {
+ if (this.tagName === "zen-workspace-collapsible-pins") {
+ return;
+ }
this.dispatchEvent(
new CustomEvent("TabGroupRemoved", { bubbles: true })
);
@@ -111,7 +117,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
Services.obs.notifyObservers(
this,
"browser-tabgroup-removed-from-dom"
@@ -223,7 +248,10 @@
@@ -223,7 +251,10 @@
}
});
}
@@ -123,7 +129,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
}
get color() {
@@ -317,6 +345,9 @@
@@ -317,6 +348,9 @@
}
set collapsed(val) {
@@ -133,7 +139,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
if (!!val == this.collapsed) {
return;
}
@@ -403,7 +434,6 @@
@@ -403,7 +437,6 @@
tabGroupName,
})
.then(result => {
@@ -141,7 +147,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
});
}
@@ -478,13 +508,65 @@
@@ -478,13 +511,65 @@
* @returns {MozTabbrowserTab[]}
*/
get tabs() {
@@ -212,7 +218,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
}
/**
@@ -592,7 +674,6 @@
@@ -592,7 +677,6 @@
);
} else {
if (tabOrSplitView.pinned) {
@@ -220,7 +226,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
}
let tabToMove =
this.ownerGlobal === tabOrSplitView.ownerGlobal
@@ -661,7 +742,7 @@
@@ -661,7 +745,7 @@
*/
on_click(event) {
let isToggleElement =
@@ -229,7 +235,7 @@ index 3ca119e8dc72fac652c98505211864483d98add2..026b524be51170882e788a701095b938
event.target === this.#overflowCountLabel;
if (isToggleElement && event.button === 0) {
event.preventDefault();
@@ -740,5 +821,6 @@
@@ -740,5 +824,6 @@
}
}

View File

@@ -1,18 +1,8 @@
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 36eafe35063f02fe3d4acaab24a08dc1b7b0ae24..951889b156498f66118d67d4245aca649e27a3a2 100644
index 36eafe35063f02fe3d4acaab24a08dc1b7b0ae24..b6bf327bf286de5246e5c50d89519d16d5771caf 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -378,17 +378,17 @@ bin/libfreebl_64int_3.so
; [MaintenanceService]
;
#ifdef MOZ_MAINTENANCE_SERVICE
-@BINPATH@/maintenanceservice.exe
-@BINPATH@/maintenanceservice_installer.exe
+;@BINPATH@/maintenanceservice.exe
+;@BINPATH@/maintenanceservice_installer.exe
#endif
; [Crash Reporter]
@@ -386,9 +386,9 @@ bin/libfreebl_64int_3.so
;
#ifdef MOZ_CRASHREPORTER
#ifdef XP_MACOSX

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
index cbbf55f31ae5e456401172f79ddbbe41256025a4..8cab0f2809a43c0aa4249453732eb0e006c2c676 100644
index cbbf55f31ae5e456401172f79ddbbe41256025a4..dc471dfe30dedf7c4917322a5b2257a9ec9c4f90 100644
--- a/browser/themes/shared/urlbar-searchbar.css
+++ b/browser/themes/shared/urlbar-searchbar.css
@@ -10,7 +10,7 @@
@@ -25,7 +25,7 @@ index cbbf55f31ae5e456401172f79ddbbe41256025a4..8cab0f2809a43c0aa4249453732eb0e0
.urlbar[breakout][breakout-extend] {
height: auto;
+ align-items: center;
+ :root:not([zen-single-toolbar='true']) {
+ :root:not([zen-single-toolbar='true']) & {
margin-left: calc(-1 * var(--urlbar-margin-inline));
+ }
width: calc(var(--urlbar-width) + 2 * var(--urlbar-margin-inline));

View File

@@ -96,7 +96,9 @@
max-height: 16px;
}
#appMenu-translate-button {
#appMenu-translate-button,
#translations-button-icon {
--urlbar-icon-fill-opacity: 0.6;
list-style-image: url("translations.svg") !important;
}

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg fill="none" stroke="context-fill" stroke-width="1.5" stroke-opacity="context-fill-opacity" width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path class="nc-icon-wrapper" d="M 9,7.25 C 10.2426,7.25 11.25,6.24264 11.25,5 11.25,3.75736 10.2426,2.75 9,2.75 7.75736,2.75 6.75,3.75736 6.75,5 6.75,6.24264 7.75736,7.25 9,7.25 Z m 4.25,8 c 1.2426,0 2.25,-1.0074 2.25,-2.25 0,-1.2426 -1.0074,-2.25 -2.25,-2.25 -1.2426,0 -2.25,1.0074 -2.25,2.25 0,1.2426 1.0074,2.25 2.25,2.25 z m -8.5,0 C 5.99264,15.25 7,14.2426 7,13 7,11.7574 5.99264,10.75 4.75,10.75 3.50736,10.75 2.5,11.7574 2.5,13 c 0,1.2426 1.00736,2.25 2.25,2.25 z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 18 18"><path d="M4.75 10a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m8.5-1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 2a3 3 0 1 1 0 6 3 3 0 0 1 0-6m0 1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg fill="none" stroke="context-fill" stroke-width="1.5" stroke-opacity="context-fill-opacity" height="18" width="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path class="nc-icon-wrapper" d="M 15.25,6.5 9,12.75 2.75,6.5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 18 18"><path d="M14.72 5.97a.75.75 0 1 1 1.06 1.06l-6.25 6.25a.75.75 0 0 1-1.06 0L2.22 7.03a.75.75 0 1 1 1.06-1.06L9 11.69z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg fill="none" stroke="context-fill" stroke-width="1.5" stroke-opacity="context-fill-opacity" height="18" width="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path class="nc-icon-wrapper" d="M 11.5,15.25 5.25,9 11.5,2.75"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 18 18"><path d="M10.97 2.22a.75.75 0 1 1 1.06 1.06L6.31 9l5.72 5.72a.75.75 0 1 1-1.06 1.06L4.72 9.53a.75.75 0 0 1 0-1.06z"/></svg>

Some files were not shown because too many files have changed in this diff Show More