Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/slash-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ for its available flags.
| `/compact` | Force context compaction for the current conversation |
| `/verbose` | Toggle verbose/compact tool display |
| `/reset` | Clear the conversation and all per-conversation flags |
| `/print` | Open the current page's native print dialog |
| `/screenshot [--full-page]` | Capture the visible tab, or the full scrollable page with `--full-page` (Chrome only) |
| `/record [--full-screen] [--hide-recording-indicator] [--transcribe]` | Record the current tab, or a selected screen/window with `--full-screen` (Chrome only); add `--hide-recording-indicator` to hide the banner or `--transcribe` to save a transcript after stop |
| `/export [--traces \| --config]` | Download version-stamped conversation Markdown, export the version-stamped tool chain with `--traces`, or export a Settings snapshot with `--config` |
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'فتح مربع حوار الطباعة الأصلي للصفحة الحالية',
'sp.print.error': 'تعذر فتح مربع حوار الطباعة: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'انقطع بث الاستجابة؛ تتم إعادة محاولة دور Ask هذا بدون بث.',
'sp.providers.no_setup_group': 'لا يتطلب إعدادًا',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/bn.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'বর্তমান পৃষ্ঠার নেটিভ প্রিন্ট ডায়ালগ খুলুন',
'sp.print.error': 'প্রিন্ট ডায়ালগ খোলা যায়নি: {msg}',
'sp.streaming.fallback': 'প্রতিক্রিয়া স্ট্রিম বাধাগ্রস্ত হয়েছে; স্ট্রিমিং ছাড়া এই Ask পালাটি আবার চেষ্টা করা হচ্ছে।',
'sp.providers.no_setup_group': "কোন সেটআপ প্রয়োজন",
'sp.providers.no_setup': "কোনো সেটআপ নেই",
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Nativen Druckdialog der aktuellen Seite öffnen',
'sp.print.error': 'Druckdialog konnte nicht geöffnet werden: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Der Antwortstream wurde unterbrochen; dieser Ask-Durchgang wird ohne Streaming erneut versucht.',
'sp.providers.no_setup_group': 'Keine Einrichtung erforderlich',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import apocalypseModeCopy from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Open the current page’s native print dialog',
'sp.print.error': 'Could not open the print dialog: {msg}',
'sp.streaming.fallback': 'Response streaming was interrupted; retrying this Ask turn without streaming.',
'sp.providers.no_setup_group': 'No setup required',
'sp.providers.no_setup': 'No setup',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Abrir el diálogo de impresión nativo de la página actual',
'sp.print.error': 'No se pudo abrir el diálogo de impresión: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Se interrumpió la transmisión de la respuesta; reintentando este turno de Ask sin transmisión.',
'sp.providers.no_setup_group': 'Sin configuración',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/fa.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'باز کردن گفت‌وگوی چاپ بومی صفحهٔ فعلی',
'sp.print.error': 'گفت‌وگوی چاپ باز نشد: {msg}',
'sp.streaming.fallback': 'جریان پاسخ قطع شد؛ این نوبت Ask بدون پخش جریانی دوباره امتحان می‌شود.',
'sp.providers.no_setup_group': "بدون نیاز به راه اندازی",
'sp.providers.no_setup': "بدون راه اندازی",
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/fr.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Ouvrir la boîte de dialogue d’impression native de la page actuelle',
'sp.print.error': 'Impossible d’ouvrir la boîte de dialogue d’impression : {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Le flux de réponse a été interrompu ; nouvelle tentative de ce tour Ask sans streaming.',
'sp.providers.no_setup_group': 'Sans configuration',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/he.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'פתיחת תיבת הדו־שיח המקורית להדפסת הדף הנוכחי',
'sp.print.error': 'לא ניתן לפתוח את תיבת הדו־שיח להדפסה: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'הזרמת התשובה נקטעה; מתבצע ניסיון חוזר לתור Ask הזה ללא הזרמה.',
'sp.providers.no_setup_group': 'ללא הגדרה',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/hi.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'वर्तमान पृष्ठ का मूल प्रिंट संवाद खोलें',
'sp.print.error': 'प्रिंट संवाद नहीं खुल सका: {msg}',
'sp.streaming.fallback': 'प्रतिक्रिया स्ट्रीम बाधित हुई; इस Ask टर्न को बिना स्ट्रीमिंग के फिर से आज़माया जा रहा है।',
'sp.providers.no_setup_group': "किसी सेटअप की आवश्यकता नहीं है",
'sp.providers.no_setup': "कोई सेटअप नहीं",
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/id.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Buka dialog cetak bawaan halaman saat ini',
'sp.print.error': 'Tidak dapat membuka dialog cetak: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Streaming respons terputus; mencoba kembali giliran Ask ini tanpa streaming.',
'sp.providers.no_setup_group': 'Tanpa penyiapan',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/ja.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': '現在のページのネイティブ印刷ダイアログを開く',
'sp.print.error': '印刷ダイアログを開けませんでした: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': '応答ストリームが中断されました。この Ask ターンをストリーミングなしで再試行します。',
'sp.providers.no_setup_group': '設定不要',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/ko.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': '현재 페이지의 기본 인쇄 대화상자 열기',
'sp.print.error': '인쇄 대화상자를 열 수 없습니다: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': '응답 스트리밍이 중단되었습니다. 이 Ask 요청을 스트리밍 없이 다시 시도합니다.',
'sp.providers.no_setup_group': '설정 필요 없음',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/ms.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Buka dialog cetak asli halaman semasa',
'sp.print.error': 'Tidak dapat membuka dialog cetak: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Penstriman respons terganggu; mencuba semula giliran Ask ini tanpa penstriman.',
'sp.providers.no_setup_group': 'Tanpa persediaan',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/nl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Het systeemeigen afdrukvenster van de huidige pagina openen',
'sp.print.error': 'Het afdrukvenster kon niet worden geopend: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'De antwoordstream is onderbroken; deze Ask-beurt wordt opnieuw geprobeerd zonder streaming.',
'sp.providers.no_setup_group': 'Geen configuratie nodig',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/pl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Otwórz natywne okno drukowania bieżącej strony',
'sp.print.error': 'Nie udało się otworzyć okna drukowania: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Strumieniowanie odpowiedzi zostało przerwane; ponawiam tę turę Ask bez strumieniowania.',
'sp.providers.no_setup_group': 'Bez konfiguracji',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/pt.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Abrir a caixa de diálogo de impressão nativa da página atual',
'sp.print.error': 'Não foi possível abrir a caixa de diálogo de impressão: {msg}',
'sp.streaming.fallback': 'A transmissão da resposta foi interrompida; tentando novamente esta interação Ask sem transmissão.',
'sp.providers.no_setup_group': "Nenhuma configuração necessária",
'sp.providers.no_setup': "Sem configuração",
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/ru.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Открыть системное диалоговое окно печати текущей страницы',
'sp.print.error': 'Не удалось открыть диалоговое окно печати: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Поток ответа был прерван; этот запрос Ask повторяется без потоковой передачи.',
'sp.providers.no_setup_group': 'Без настройки',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/th.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'เปิดกล่องโต้ตอบการพิมพ์ดั้งเดิมของหน้าปัจจุบัน',
'sp.print.error': 'ไม่สามารถเปิดกล่องโต้ตอบการพิมพ์ได้: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'การสตรีมคำตอบถูกขัดจังหวะ กำลังลอง Ask รอบนี้อีกครั้งโดยไม่ใช้สตรีม',
'sp.providers.no_setup_group': 'ไม่ต้องตั้งค่า',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/tl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Buksan ang native na dialog ng pag-print ng kasalukuyang pahina',
'sp.print.error': 'Hindi mabuksan ang dialog ng pag-print: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Naputol ang pag-stream ng tugon; sinusubukang muli ang Ask turn na ito nang walang streaming.',
'sp.providers.no_setup_group': 'Walang setup',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/tr.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Geçerli sayfanın yerel yazdırma iletişim kutusunu aç',
'sp.print.error': 'Yazdırma iletişim kutusu açılamadı: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Yanıt akışı kesildi; bu Ask turu akış olmadan yeniden deneniyor.',
'sp.providers.no_setup_group': 'Kurulum gerektirmez',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/uk.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Відкрити системне діалогове вікно друку поточної сторінки',
'sp.print.error': 'Не вдалося відкрити діалогове вікно друку: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Потік відповіді перервано; цей запит Ask повторюється без потокової передачі.',
'sp.providers.no_setup_group': 'Без налаштування',
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/vi.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Mở hộp thoại in gốc của trang hiện tại',
'sp.print.error': 'Không thể mở hộp thoại in: {msg}',
'sp.streaming.fallback': 'Luồng phản hồi bị gián đoạn; đang thử lại lượt Ask này mà không phát trực tuyến.',
'sp.providers.no_setup_group': "Không cần thiết lập",
'sp.providers.no_setup': "Không cần thiết lập",
Expand Down
2 changes: 2 additions & 0 deletions src/chrome/src/ui/locales/zh.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': '打开当前页面的原生打印对话框',
'sp.print.error': '无法打开打印对话框:{msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': '响应流已中断;正在以非流式方式重试本次 Ask。',
'sp.providers.no_setup_group': '无需配置',
Expand Down
21 changes: 19 additions & 2 deletions src/chrome/src/ui/sidepanel.js
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,7 @@ const SLASH_COMMANDS = [
{ value: '/compact', usage: '/compact [prompt]', descriptionKey: 'sp.slash.compact', action: 'compact', acceptsPayload: true },
{ value: '/verbose', usage: '/verbose', descriptionKey: 'sp.slash.verbose', action: 'toggle', outOfBand: true },
{ value: '/reset', usage: '/reset', descriptionKey: 'sp.slash.reset', action: 'reset' },
{ value: '/print', usage: '/print', descriptionKey: 'sp.slash.print', action: 'print' },
{
value: '/screenshot',
usage: '/screenshot [--full-page]',
Expand Down Expand Up @@ -7276,7 +7277,7 @@ async function parseSlashCommands(text, tabId = currentTabId, options = {}) {
return '';
}

if ((command.value === '/screenshot' || command.value === '/record')
if ((command.value === '/screenshot' || command.value === '/record' || command.value === '/print')
&& isSelectionGroundedForTab(tabId)) {
showComposerToast(t('sp.selection_scope.description'), { duration: 5000 });
return '';
Expand Down Expand Up @@ -7439,6 +7440,22 @@ async function parseSlashCommands(text, tabId = currentTabId, options = {}) {
return '';
}

if (command.value === '/print') {
try {
const tab = tabId == null ? null : await chrome.tabs.get(tabId);
if (currentTabId !== tabId || !tab?.active) return '';
await chrome.scripting.executeScript({
target: { tabId },
func: () => window.print(),
});
} catch (error) {
if (currentTabId === tabId) {
showComposerToast(t('sp.print.error', { msg: error?.message || 'unknown error' }), { duration: 5000 });
}
}
return '';
}

if (command.value === '/screenshot' && action === 'viewport') {
try {
const tab = tabId == null ? null : await chrome.tabs.get(tabId);
Expand Down Expand Up @@ -7899,7 +7916,7 @@ async function sendMessage(extraChatParams = {}) {
}
let runCaptureDirective = null;
if (!retryOptions) {
if (sourceGrounding && /^\s*\/(?:screenshot|record)(?:\s|$)/i.test(text)) {
if (sourceGrounding && /^\s*\/(?:screenshot|record|print)(?:\s|$)/i.test(text)) {
showComposerToast(t('sp.selection_scope.description'), { duration: 5000 });
return false;
}
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'فتح مربع حوار الطباعة الأصلي للصفحة الحالية',
'sp.print.error': 'تعذر فتح مربع حوار الطباعة: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'انقطع بث الاستجابة؛ تتم إعادة محاولة دور Ask هذا بدون بث.',
'sp.providers.no_setup_group': 'لا يتطلب إعدادًا',
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/bn.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'বর্তমান পৃষ্ঠার নেটিভ প্রিন্ট ডায়ালগ খুলুন',
'sp.print.error': 'প্রিন্ট ডায়ালগ খোলা যায়নি: {msg}',
'sp.streaming.fallback': 'প্রতিক্রিয়া স্ট্রিম বাধাগ্রস্ত হয়েছে; স্ট্রিমিং ছাড়া এই Ask পালাটি আবার চেষ্টা করা হচ্ছে।',
'sp.providers.no_setup_group': "কোন সেটআপ প্রয়োজন",
'sp.providers.no_setup': "কোনো সেটআপ নেই",
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Nativen Druckdialog der aktuellen Seite öffnen',
'sp.print.error': 'Druckdialog konnte nicht geöffnet werden: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Der Antwortstream wurde unterbrochen; dieser Ask-Durchgang wird ohne Streaming erneut versucht.',
'sp.providers.no_setup_group': 'Keine Einrichtung erforderlich',
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import apocalypseModeCopy from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Open the current page’s native print dialog',
'sp.print.error': 'Could not open the print dialog: {msg}',
'sp.streaming.fallback': 'Response streaming was interrupted; retrying this Ask turn without streaming.',
'sp.providers.no_setup_group': 'No setup required',
'sp.providers.no_setup': 'No setup',
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Abrir el diálogo de impresión nativo de la página actual',
'sp.print.error': 'No se pudo abrir el diálogo de impresión: {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Se interrumpió la transmisión de la respuesta; reintentando este turno de Ask sin transmisión.',
'sp.providers.no_setup_group': 'Sin configuración',
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/fa.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'باز کردن گفت‌وگوی چاپ بومی صفحهٔ فعلی',
'sp.print.error': 'گفت‌وگوی چاپ باز نشد: {msg}',
'sp.streaming.fallback': 'جریان پاسخ قطع شد؛ این نوبت Ask بدون پخش جریانی دوباره امتحان می‌شود.',
'sp.providers.no_setup_group': "بدون نیاز به راه اندازی",
'sp.providers.no_setup': "بدون راه اندازی",
Expand Down
2 changes: 2 additions & 0 deletions src/firefox/src/ui/locales/fr.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import chromeWebStoreLocale from './chrome-web-store.mjs';
import { getApocalypseModeCopy } from './apocalypse-copy.mjs';

export default {
'sp.slash.print': 'Ouvrir la boîte de dialogue d’impression native de la page actuelle',
'sp.print.error': 'Impossible d’ouvrir la boîte de dialogue d’impression : {msg}',
...chromeWebStoreLocale,
'sp.streaming.fallback': 'Le flux de réponse a été interrompu ; nouvelle tentative de ce tour Ask sans streaming.',
'sp.providers.no_setup_group': 'Sans configuration',
Expand Down
Loading
Loading