Фолбэк на кэш при недоступности PocketBase (Pricing/FAQ)

Pricing: при полном отказе всех запросов пробует localStorage-кэш
последнего успешного ответа вместо пустого состояния, пишет туда же при
успехе. Faq: отличает "в кэше правда пусто" от "не смогли загрузить" —
раньше оба случая показывали один и тот же текст "0 protocols found",
что вводило в заблуждение при обычном сетевом сбое.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 16:37:06 +07:00
parent b8bf9f7337
commit 0fa87e2d9a
13 changed files with 87 additions and 25 deletions
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "يُدفع دفعة واحدة:",
"period1m": "شهر واحد",
"period6m": "6 أشهر",
"period1y": "سنة واحدة"
"period1y": "سنة واحدة",
"offlineNotice": "يتم عرض آخر أسعار محفوظة — لا يتوفر اتصال بالخادم الآن."
},
"faq": {
"title": "استعلامات النظام (الأسئلة الشائعة)",
"empty": "لم يتم العثور على سجلات."
"empty": "لم يتم العثور على سجلات.",
"loadError": "فشل التحميل — حاول تحديث الصفحة."
},
"blog": {
"badge": "سجلات البيانات",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Спішацца адразу:",
"period1m": "1 месяц",
"period6m": "6 месяцаў",
"period1y": "1 год"
"period1y": "1 год",
"offlineNotice": "Паказаны апошнія захаваныя тарыфы — зараз няма сувязі з серверам."
},
"faq": {
"title": "Сістэмныя запыты (FAQ)",
"empty": "База ведаў пустая."
"empty": "База ведаў пустая.",
"loadError": "Не ўдалося загрузіць — паспрабуйце абнавіць старонку."
},
"blog": {
"badge": "Data Logs",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Billed once:",
"period1m": "1 month",
"period6m": "6 months",
"period1y": "1 year"
"period1y": "1 year",
"offlineNotice": "Showing last saved prices — live data unavailable right now."
},
"faq": {
"title": "System Queries (FAQ)",
"empty": "No records found."
"empty": "No records found.",
"loadError": "Failed to load — try refreshing the page."
},
"blog": {
"badge": "Data Logs",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "پرداخت یک‌باره:",
"period1m": "۱ ماه",
"period6m": "۶ ماه",
"period1y": "۱ سال"
"period1y": "۱ سال",
"offlineNotice": "قیمت‌های ذخیره‌شده قبلی نمایش داده می‌شود — اتصال به سرور اکنون برقرار نیست."
},
"faq": {
"title": "پرسش‌های سیستم (سوالات متداول)",
"empty": "هیچ رکوردی یافت نشد."
"empty": "هیچ رکوردی یافت نشد.",
"loadError": "بارگذاری ناموفق بود — صفحه را دوباره بارگذاری کنید."
},
"blog": {
"badge": "لاگ‌های داده",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Спишется разом:",
"period1m": "1 месяц",
"period6m": "6 месяцев",
"period1y": "1 год"
"period1y": "1 год",
"offlineNotice": "Показаны последние сохранённые тарифы — сейчас нет связи с сервером."
},
"faq": {
"title": "Системные запросы (FAQ)",
"empty": "База знаний пуста."
"empty": "База знаний пуста.",
"loadError": "Не удалось загрузить — попробуйте обновить страницу."
},
"blog": {
"badge": "Data Logs",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Tek seferlik ödeme:",
"period1m": "1 ay",
"period6m": "6 ay",
"period1y": "1 yıl"
"period1y": "1 yıl",
"offlineNotice": "Son kaydedilen fiyatlar gösteriliyor — şu anda sunucuya bağlanılamıyor."
},
"faq": {
"title": "Sistem Sorguları (SSS)",
"empty": "Kayıt bulunamadı."
"empty": "Kayıt bulunamadı.",
"loadError": "Yüklenemedi — sayfayı yenilemeyi deneyin."
},
"blog": {
"badge": "Veri Kayıtları",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Спишеться одразу:",
"period1m": "1 місяць",
"period6m": "6 місяців",
"period1y": "1 рік"
"period1y": "1 рік",
"offlineNotice": "Показано останні збережені тарифи — зараз немає зв'язку із сервером."
},
"faq": {
"title": "Системні запити (FAQ)",
"empty": "База знань порожня."
"empty": "База знань порожня.",
"loadError": "Не вдалося завантажити — спробуйте оновити сторінку."
},
"blog": {
"badge": "Data Logs",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Bir martalik to'lov:",
"period1m": "1 oy",
"period6m": "6 oy",
"period1y": "1 yil"
"period1y": "1 yil",
"offlineNotice": "Oxirgi saqlangan narxlar ko'rsatilmoqda — hozir serverga ulanib bo'lmayapti."
},
"faq": {
"title": "Tizim So'rovlari (Savollar)",
"empty": "Yozuvlar topilmadi."
"empty": "Yozuvlar topilmadi.",
"loadError": "Yuklab bo'lmadi — sahifani yangilashga urinib ko'ring."
},
"blog": {
"badge": "Ma'lumotlar Jurnali",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "Thanh toán một lần:",
"period1m": "1 tháng",
"period6m": "6 tháng",
"period1y": "1 năm"
"period1y": "1 năm",
"offlineNotice": "Đang hiển thị giá đã lưu gần nhất — hiện không thể kết nối máy chủ."
},
"faq": {
"title": "Truy Vấn Hệ Thống (Hỏi Đáp)",
"empty": "Không tìm thấy bản ghi nào."
"empty": "Không tìm thấy bản ghi nào.",
"loadError": "Không tải được — hãy thử tải lại trang."
},
"blog": {
"badge": "Nhật Ký Dữ Liệu",
+4 -2
View File
@@ -59,11 +59,13 @@
"billedOnce": "一次性扣款:",
"period1m": "1 个月",
"period6m": "6 个月",
"period1y": "1 年"
"period1y": "1 年",
"offlineNotice": "显示上次保存的价格——当前无法连接服务器。"
},
"faq": {
"title": "系统查询(常见问题)",
"empty": "未找到记录。"
"empty": "未找到记录。",
"loadError": "加载失败——请尝试刷新页面。"
},
"blog": {
"badge": "数据日志",