feat(custom-geo): refresh index UI

Split the single ext-snippet column into Alias / URL / Routing /
Last-updated, with the alias surfaced next to a colored type tag,
the URL ellipsized with a tooltip + open-in-new-tab, and the
ext:file.dat:tag snippet click-to-copy via ClipboardManager.

Switch Last-updated to a relative time ("2 hours ago") with the
absolute timestamp on hover, add a friendly empty state, and show
a result toast when "Update All" finishes with partial failures.

customGeoEmpty translated for all 13 locales.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
MHSanaei
2026-05-08 10:09:33 +02:00
parent 2fd2cd0af1
commit 12c10dbd98
14 changed files with 176 additions and 22 deletions
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "مصدر geo المخصص غير موجود"
"customGeoErrDownload" = "فشل التنزيل"
"customGeoErrUpdateAllIncomplete" = "تعذر تحديث مصدر واحد أو أكثر من مصادر geo المخصصة"
"customGeoEmpty" = "لا توجد مصادر geo مخصصة بعد — انقر على «إضافة» لإنشاء واحد"
[pages.inbounds]
"allTimeTraffic" = "إجمالي حركة المرور"
+1
View File
@@ -204,6 +204,7 @@
"customGeoErrNotFound" = "Custom geo source not found"
"customGeoErrDownload" = "Download failed"
"customGeoErrUpdateAllIncomplete" = "One or more custom geo sources failed to update"
"customGeoEmpty" = "No custom geo sources yet — click Add to create one"
"dontRefresh" = "Installation is in progress, please do not refresh this page"
"logs" = "Logs"
"config" = "Config"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Fuente geo personalizada no encontrada"
"customGeoErrDownload" = "Error de descarga"
"customGeoErrUpdateAllIncomplete" = "No se pudieron actualizar una o más fuentes geo personalizadas"
"customGeoEmpty" = "Aún no hay fuentes geo personalizadas — haz clic en Añadir para crear una"
[pages.inbounds]
"allTimeTraffic" = "Tráfico Total"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "منبع geo سفارشی یافت نشد"
"customGeoErrDownload" = "بارگیری ناموفق بود"
"customGeoErrUpdateAllIncomplete" = "به‌روزرسانی یک یا چند منبع geo سفارشی ناموفق بود"
"customGeoEmpty" = "هنوز منبع geo سفارشی‌ای ثبت نشده — برای ایجاد روی «افزودن» کلیک کنید"
[pages.inbounds]
"allTimeTraffic" = "کل ترافیک"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Sumber geo kustom tidak ditemukan"
"customGeoErrDownload" = "Unduh gagal"
"customGeoErrUpdateAllIncomplete" = "Satu atau lebih sumber geo kustom gagal diperbarui"
"customGeoEmpty" = "Belum ada sumber geo kustom — klik Tambah untuk membuatnya"
[pages.inbounds]
"allTimeTraffic" = "Total Lalu Lintas"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "カスタム geo ソースが見つかりません"
"customGeoErrDownload" = "ダウンロードに失敗しました"
"customGeoErrUpdateAllIncomplete" = "カスタム geo ソースの 1 件以上を更新できませんでした"
"customGeoEmpty" = "カスタム geo ソースはまだありません — 「追加」をクリックして作成してください"
[pages.inbounds]
"allTimeTraffic" = "総トラフィック"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Fonte geo personalizada não encontrada"
"customGeoErrDownload" = "Falha no download"
"customGeoErrUpdateAllIncomplete" = "Falha ao atualizar uma ou mais fontes geo personalizadas"
"customGeoEmpty" = "Ainda não há fontes geo personalizadas — clique em Adicionar para criar uma"
[pages.inbounds]
"allTimeTraffic" = "Tráfego Total"
+1
View File
@@ -204,6 +204,7 @@
"customGeoErrNotFound" = "Источник не найден"
"customGeoErrDownload" = "Ошибка загрузки"
"customGeoErrUpdateAllIncomplete" = "Не удалось обновить один или несколько пользовательских источников"
"customGeoEmpty" = "Пользовательских источников geo пока нет — нажмите «Добавить», чтобы создать"
"dontRefresh" = "Установка в процессе. Не обновляйте страницу"
"logs" = "Журнал"
"config" = "Конфигурация"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Özel geo kaynağı bulunamadı"
"customGeoErrDownload" = "İndirme başarısız"
"customGeoErrUpdateAllIncomplete" = "Bir veya daha fazla özel geo kaynağı güncellenemedi"
"customGeoEmpty" = "Henüz özel geo kaynağı yok — oluşturmak için Ekle'ye tıklayın"
[pages.inbounds]
"allTimeTraffic" = "Toplam Trafik"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Джерело geo не знайдено"
"customGeoErrDownload" = "Помилка завантаження"
"customGeoErrUpdateAllIncomplete" = "Не вдалося оновити один або кілька користувацьких джерел"
"customGeoEmpty" = "Користувацьких джерел geo поки немає — натисніть «Додати», щоб створити"
[pages.inbounds]
"allTimeTraffic" = "Загальний трафік"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "Không tìm thấy nguồn geo tùy chỉnh"
"customGeoErrDownload" = "Tải xuống thất bại"
"customGeoErrUpdateAllIncomplete" = "Một hoặc nhiều nguồn geo tùy chỉnh không cập nhật được"
"customGeoEmpty" = "Chưa có nguồn geo tùy chỉnh nào — nhấp Thêm để tạo"
[pages.inbounds]
"allTimeTraffic" = "Tổng Lưu Lượng"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "未找到自定义 geo 源"
"customGeoErrDownload" = "下载失败"
"customGeoErrUpdateAllIncomplete" = "有一个或多个自定义 geo 源更新失败"
"customGeoEmpty" = "暂无自定义 geo 源 — 点击「添加」以创建"
[pages.inbounds]
"allTimeTraffic" = "累计总流量"
+1
View File
@@ -218,6 +218,7 @@
"customGeoErrNotFound" = "找不到自訂 geo 來源"
"customGeoErrDownload" = "下載失敗"
"customGeoErrUpdateAllIncomplete" = "有一個或多個自訂 geo 來源更新失敗"
"customGeoEmpty" = "尚無自訂 geo 來源 — 點擊「新增」以建立"
[pages.inbounds]
"allTimeTraffic" = "累計總流量"