mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 05:26:47 +00:00
feat(plugins): denser browse grid + prominent install-risk disclaimer
Four cards per row on desktop with tighter card padding, and a full-width warning banner above the browse grid: installs are at the admin's own risk, a prior quick review does not rule out harmful content, inspect a plugin yourself when in doubt — TREK accepts no responsibility. All 22 locales.
This commit is contained in:
@@ -221,8 +221,17 @@ export default function AdminPluginsPanel() {
|
||||
) : error ? (
|
||||
<div className="py-10 text-center text-sm text-rose-600">{t('admin.plugins.loadError')}</div>
|
||||
) : view === 'browse' ? (
|
||||
<RegistryGrid items={registry} busy={busy} t={t} installedIds={installedIds}
|
||||
onInstall={install} onOpenDetail={setDetailFor} />
|
||||
<>
|
||||
<div className="mb-4 p-4 rounded-xl border-2 border-amber-500/60 bg-amber-500/10 flex items-start gap-3">
|
||||
<AlertTriangle size={22} className="text-amber-600 mt-0.5 shrink-0" />
|
||||
<div>
|
||||
<p className="text-sm font-bold uppercase tracking-wide text-amber-700">{t('admin.plugins.riskTitle')}</p>
|
||||
<p className="text-xs text-amber-700/90 mt-1 leading-relaxed">{t('admin.plugins.riskBody')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<RegistryGrid items={registry} busy={busy} t={t} installedIds={installedIds}
|
||||
onInstall={install} onOpenDetail={setDetailFor} />
|
||||
</>
|
||||
) : plugins.length === 0 ? (
|
||||
<div className="py-14 text-center">
|
||||
<div className="w-14 h-14 rounded-2xl bg-surface-tertiary grid place-items-center mx-auto mb-4">
|
||||
@@ -401,29 +410,31 @@ function RegistryGrid({ items, onInstall, onOpenDetail, busy, t, installedIds }:
|
||||
if (!items) return <div className="py-10 text-center text-sm text-content-faint">{t('common.loading')}</div>
|
||||
if (items.length === 0) return <div className="py-10 text-center text-sm text-content-faint">{t('admin.plugins.registryEmpty')}</div>
|
||||
return (
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3">
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3">
|
||||
{items.map(item => {
|
||||
const installed = installedIds.has(item.id)
|
||||
return (
|
||||
<div key={item.id} role="button" tabIndex={0} onClick={() => onOpenDetail(item)}
|
||||
onKeyDown={e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onOpenDetail(item) } }}
|
||||
className="border border-edge rounded-xl bg-surface-secondary/40 overflow-hidden flex flex-col cursor-pointer hover:border-accent/50 transition-colors">
|
||||
<Screenshot url={item.screenshotUrl} className="aspect-video" />
|
||||
<div className="p-4 flex flex-col flex-1">
|
||||
<div className="flex items-center gap-2 flex-wrap">
|
||||
<span className="text-sm font-semibold text-content truncate">{item.name}</span>
|
||||
<Screenshot url={item.screenshotUrl} className="aspect-video" iconSize={22} />
|
||||
<div className="p-3 flex flex-col flex-1">
|
||||
<div className="flex items-center gap-1.5 flex-wrap">
|
||||
<span className="text-[13px] font-semibold text-content truncate">{item.name}</span>
|
||||
{item.latest && <span className="text-[10px] text-content-faint">v{item.latest}</span>}
|
||||
</div>
|
||||
<div className="flex items-center gap-1.5 flex-wrap mt-1">
|
||||
<TypeBadge type={item.type} t={t} />
|
||||
{item.reviewedAt && <ReviewedBadge t={t} />}
|
||||
</div>
|
||||
<span className="text-[11px] text-content-faint mt-0.5">{item.author}</span>
|
||||
<p className="text-xs text-content-faint mt-2 line-clamp-2 flex-1">{item.description}</p>
|
||||
<div className="flex items-center justify-between mt-3">
|
||||
<span className="text-[11px] text-content-faint mt-1">{item.author}</span>
|
||||
<p className="text-xs text-content-faint mt-1.5 line-clamp-2 flex-1">{item.description}</p>
|
||||
<div className="flex items-center justify-between gap-2 mt-2.5">
|
||||
<span className="inline-flex items-center gap-0.5 text-[11px] font-medium text-accent">
|
||||
{t('admin.plugins.details')} <ChevronRight size={12} />
|
||||
</span>
|
||||
<button onClick={e => { e.stopPropagation(); onInstall(item.id) }} disabled={busy === item.id || installed}
|
||||
className="text-xs font-semibold px-3.5 py-1.5 rounded-lg bg-accent text-accent-text disabled:opacity-50 disabled:bg-surface-tertiary disabled:text-content-faint">
|
||||
className="text-[11px] font-semibold px-2.5 py-1 rounded-lg bg-accent text-accent-text disabled:opacity-50 disabled:bg-surface-tertiary disabled:text-content-faint">
|
||||
{installed ? t('admin.plugins.installed') : t('admin.plugins.install')}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -240,6 +240,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'توفير الصور لميزة الذكريات',
|
||||
'admin.plugins.perm.hook:calendar-source': 'توفير الأحداث للتقويم',
|
||||
'admin.plugins.perm.http:outbound': 'إجراء طلبات صادرة إلى المضيفات المُعلنة الخاصة بها',
|
||||
'admin.plugins.riskTitle': 'التثبيت على مسؤوليتك الخاصة',
|
||||
'admin.plugins.riskBody': 'الإضافات هي شيفرة برمجية من جهات خارجية. وحتى مع مراجعة سريعة مسبقة، قد تظل الإضافة تحتوي على محتوى ضار — وعند الشك، افحص الإضافة بنفسك قبل تثبيتها. لا يتحمل TREK أي مسؤولية على الإطلاق.',
|
||||
'admin.addons.title': 'الإضافات',
|
||||
'admin.addons.subtitle': 'فعّل أو عطّل الميزات لتخصيص تجربة TREK.',
|
||||
'admin.addons.catalog.packing.name': 'القوائم',
|
||||
|
||||
@@ -219,6 +219,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fornecer fotos para as Memórias',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Fornecer eventos para o calendário',
|
||||
'admin.plugins.perm.http:outbound': 'Fazer requisições de saída para os hosts declarados',
|
||||
'admin.plugins.riskTitle': 'Instale por sua conta e risco',
|
||||
'admin.plugins.riskBody': 'Plugins são código de terceiros. Mesmo com uma revisão rápida prévia, um plugin ainda pode conter conteúdo malicioso — em caso de dúvida, inspecione o plugin você mesmo antes de instalar. O TREK não assume nenhuma responsabilidade.',
|
||||
'admin.addons.title': 'Complementos',
|
||||
'admin.addons.subtitle': 'Ative ou desative recursos para personalizar sua experiência no TREK.',
|
||||
'admin.addons.catalog.memories.name': 'Memórias',
|
||||
|
||||
@@ -220,6 +220,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Poskytovat fotky do sekce Fotky',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Poskytovat události do kalendáře',
|
||||
'admin.plugins.perm.http:outbound': 'Odesílat odchozí požadavky na deklarované hostitele',
|
||||
'admin.plugins.riskTitle': 'Instalace na vlastní riziko',
|
||||
'admin.plugins.riskBody': 'Pluginy jsou kód třetích stran. I po předchozí rychlé kontrole může plugin stále obsahovat škodlivý obsah — v případě pochybností si plugin před instalací sami prohlédněte. TREK nenese žádnou odpovědnost.',
|
||||
'admin.addons.title': 'Doplňky',
|
||||
'admin.addons.subtitle': 'Zapněte nebo vypněte funkce a přizpůsobte si TREK.',
|
||||
'admin.addons.catalog.memories.name': 'Fotky (Immich)',
|
||||
|
||||
@@ -222,6 +222,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fotos für Erinnerungen bereitstellen',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Termine für den Kalender bereitstellen',
|
||||
'admin.plugins.perm.http:outbound': 'Ausgehende Anfragen an deklarierte Hosts stellen',
|
||||
'admin.plugins.riskTitle': 'Installation auf eigene Gefahr',
|
||||
'admin.plugins.riskBody': 'Plugins sind Fremdcode. Auch nach einer vorherigen Schnellüberprüfung können Plugins schädliche Inhalte enthalten — prüfe ein Plugin im Zweifel vor der Installation selbst. TREK übernimmt keinerlei Verantwortung.',
|
||||
'admin.addons.title': 'Addons',
|
||||
'admin.addons.subtitle': 'Aktiviere oder deaktiviere Funktionen, um TREK nach deinen Wünschen anzupassen.',
|
||||
'admin.addons.catalog.packing.name': 'Listen',
|
||||
|
||||
@@ -274,6 +274,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Provide photos to Memories',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Provide events to the calendar',
|
||||
'admin.plugins.perm.http:outbound': 'Make outbound requests to its declared hosts',
|
||||
'admin.plugins.riskTitle': 'Install at your own risk',
|
||||
'admin.plugins.riskBody': 'Plugins are third-party code. Even with a prior quick review, a plugin can still contain harmful content — when in doubt, inspect a plugin yourself before installing. TREK accepts no responsibility whatsoever.',
|
||||
'admin.addons.title': 'Addons',
|
||||
'admin.addons.subtitle': 'Enable or disable features to customize your TREK experience.',
|
||||
'admin.addons.catalog.packing.name': 'Lists',
|
||||
|
||||
@@ -221,6 +221,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Proporcionar fotos a la sección Fotos',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Proporcionar eventos al calendario',
|
||||
'admin.plugins.perm.http:outbound': 'Realizar solicitudes salientes a sus hosts declarados',
|
||||
'admin.plugins.riskTitle': 'Instala bajo tu propio riesgo',
|
||||
'admin.plugins.riskBody': 'Los plugins son código de terceros. Incluso con una revisión rápida previa, un plugin puede contener contenido dañino — en caso de duda, inspecciona el plugin tú mismo antes de instalarlo. TREK no asume ninguna responsabilidad.',
|
||||
'admin.addons.title': 'Complementos',
|
||||
'admin.addons.subtitle': 'Activa o desactiva funciones para personalizar tu experiencia en TREK.',
|
||||
'admin.addons.subtitleBefore': 'Activa o desactiva funciones para personalizar tu experiencia en ',
|
||||
|
||||
@@ -223,6 +223,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fournir des photos à Photos',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Fournir des événements au calendrier',
|
||||
'admin.plugins.perm.http:outbound': 'Effectuer des requêtes sortantes vers ses hôtes déclarés',
|
||||
'admin.plugins.riskTitle': 'Installation à vos risques et périls',
|
||||
'admin.plugins.riskBody': "Les plugins sont du code tiers. Même après un examen rapide préalable, un plugin peut toujours contenir du contenu malveillant — en cas de doute, inspectez vous-même un plugin avant de l'installer. TREK décline toute responsabilité.",
|
||||
'admin.addons.title': 'Extensions',
|
||||
'admin.addons.subtitle': 'Activez ou désactivez des fonctionnalités pour personnaliser votre expérience TREK.',
|
||||
'admin.addons.catalog.memories.name': 'Photos (Immich)',
|
||||
|
||||
@@ -268,6 +268,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Παροχή φωτογραφιών στις Αναμνήσεις',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Παροχή συμβάντων στο ημερολόγιο',
|
||||
'admin.plugins.perm.http:outbound': 'Εκτέλεση εξερχόμενων αιτημάτων προς τους δηλωμένους hosts του',
|
||||
'admin.plugins.riskTitle': 'Εγκατάσταση με δική σας ευθύνη',
|
||||
'admin.plugins.riskBody': 'Τα plugins είναι κώδικας τρίτων. Ακόμη και μετά από έναν προηγούμενο σύντομο έλεγχο, ένα plugin μπορεί να περιέχει επιβλαβές περιεχόμενο — σε περίπτωση αμφιβολίας, ελέγξτε ένα plugin μόνοι σας πριν την εγκατάσταση. Το TREK δεν αναλαμβάνει καμία απολύτως ευθύνη.',
|
||||
'admin.addons.title': 'Πρόσθετα',
|
||||
'admin.addons.subtitle':
|
||||
'Ενεργοποιήστε ή απενεργοποιήστε λειτουργίες για να εξατομικεύσετε την εμπειρία σας στο TREK.',
|
||||
|
||||
@@ -222,6 +222,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fotók biztosítása az Emlékek funkcióhoz',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Események biztosítása a naptárhoz',
|
||||
'admin.plugins.perm.http:outbound': 'Kimenő kérések küldése a bejelentett kiszolgálók felé',
|
||||
'admin.plugins.riskTitle': 'Telepítés csak saját felelősségre',
|
||||
'admin.plugins.riskBody': 'A pluginok harmadik féltől származó kódok. Egy plugin még előzetes gyors ellenőrzés után is tartalmazhat káros tartalmat — kétség esetén telepítés előtt vizsgáld meg magad a plugint. A TREK semmilyen felelősséget nem vállal.',
|
||||
'admin.addons.title': 'Bővítmények',
|
||||
'admin.addons.subtitle': 'Funkciók engedélyezése vagy letiltása a TREK testreszabásához.',
|
||||
'admin.addons.catalog.packing.name': 'Listák',
|
||||
|
||||
@@ -264,6 +264,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Menyediakan foto untuk Memories',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Menyediakan acara untuk kalender',
|
||||
'admin.plugins.perm.http:outbound': 'Membuat permintaan keluar ke host yang telah dideklarasikannya',
|
||||
'admin.plugins.riskTitle': 'Pasang dengan risiko ditanggung sendiri',
|
||||
'admin.plugins.riskBody': 'Plugin adalah kode pihak ketiga. Meskipun sudah melewati tinjauan singkat sebelumnya, sebuah plugin tetap bisa mengandung konten berbahaya — jika ragu, periksa sendiri plugin tersebut sebelum memasangnya. TREK sama sekali tidak bertanggung jawab.',
|
||||
'admin.addons.title': 'Addon',
|
||||
'admin.addons.subtitle': 'Aktifkan atau nonaktifkan fitur untuk menyesuaikan pengalaman TREK kamu.',
|
||||
'admin.addons.catalog.packing.name': 'Daftar',
|
||||
|
||||
@@ -221,6 +221,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fornire foto alla sezione Foto',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Fornire eventi al calendario',
|
||||
'admin.plugins.perm.http:outbound': 'Effettuare richieste in uscita verso gli host dichiarati',
|
||||
'admin.plugins.riskTitle': 'Installazione a proprio rischio',
|
||||
'admin.plugins.riskBody': 'I plugin sono codice di terze parti. Anche dopo una rapida revisione preliminare, un plugin può comunque contenere contenuti dannosi — in caso di dubbio, ispeziona personalmente il plugin prima di installarlo. TREK non si assume alcuna responsabilità.',
|
||||
'admin.addons.title': 'Moduli',
|
||||
'admin.addons.subtitle': 'Abilita o disabilita le funzionalità per personalizzare la tua esperienza TREK.',
|
||||
'admin.addons.catalog.packing.name': 'Liste',
|
||||
|
||||
@@ -253,6 +253,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': '「写真」機能への写真の提供',
|
||||
'admin.plugins.perm.hook:calendar-source': 'カレンダーへの予定の提供',
|
||||
'admin.plugins.perm.http:outbound': '宣言済みホストへの外部リクエストの送信',
|
||||
'admin.plugins.riskTitle': 'インストールは自己責任で行ってください',
|
||||
'admin.plugins.riskBody': 'プラグインはサードパーティ製のコードです。事前に簡易レビューが行われていても、プラグインに有害な内容が含まれている可能性は残ります。少しでも疑わしい場合は、インストール前にご自身でプラグインの内容を確認してください。TREKは一切の責任を負いません。',
|
||||
'admin.addons.title': 'アドオン',
|
||||
'admin.addons.subtitle': '機能を有効/無効にしてTREKをカスタマイズします。',
|
||||
'admin.addons.catalog.packing.name': 'リスト',
|
||||
|
||||
@@ -259,6 +259,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': '사진 기능에 사진 제공',
|
||||
'admin.plugins.perm.hook:calendar-source': '캘린더에 일정 제공',
|
||||
'admin.plugins.perm.http:outbound': '선언된 호스트로 아웃바운드 요청 전송',
|
||||
'admin.plugins.riskTitle': '설치에 따른 위험은 본인 부담입니다',
|
||||
'admin.plugins.riskBody': '플러그인은 서드파티 코드입니다. 사전에 간단한 검토를 거쳤더라도 플러그인에 유해한 내용이 포함되어 있을 수 있습니다 — 의심스러운 경우 설치하기 전에 직접 플러그인을 확인하세요. TREK은 어떠한 책임도 지지 않습니다.',
|
||||
'admin.addons.title': '애드온',
|
||||
'admin.addons.subtitle': '기능을 활성화 또는 비활성화하여 TREK 경험을 맞춤 설정하세요.',
|
||||
'admin.addons.catalog.packing.name': '목록',
|
||||
|
||||
@@ -222,6 +222,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': "Foto's aanleveren voor de Foto's-sectie",
|
||||
'admin.plugins.perm.hook:calendar-source': 'Evenementen aanleveren voor de kalender',
|
||||
'admin.plugins.perm.http:outbound': 'Uitgaande verzoeken doen naar de opgegeven hosts',
|
||||
'admin.plugins.riskTitle': 'Installeren op eigen risico',
|
||||
'admin.plugins.riskBody': 'Plugins zijn code van derden. Ook na een eerdere korte beoordeling kan een plugin nog steeds schadelijke inhoud bevatten — controleer een plugin bij twijfel zelf voordat je deze installeert. TREK aanvaardt geen enkele verantwoordelijkheid.',
|
||||
'admin.addons.title': 'Add-ons',
|
||||
'admin.addons.subtitle': 'Schakel functies in of uit om je TREK-ervaring aan te passen.',
|
||||
'admin.addons.catalog.memories.name': "Foto's (Immich)",
|
||||
|
||||
@@ -215,6 +215,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Dostarczanie zdjęć do sekcji Zdjęcia',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Dostarczanie wydarzeń do kalendarza',
|
||||
'admin.plugins.perm.http:outbound': 'Wykonywanie wychodzących zapytań do zadeklarowanych hostów',
|
||||
'admin.plugins.riskTitle': 'Instalujesz na własne ryzyko',
|
||||
'admin.plugins.riskBody': 'Wtyczki to kod stron trzecich. Nawet po wcześniejszym pobieżnym przeglądzie wtyczka może nadal zawierać szkodliwą zawartość — w razie wątpliwości samodzielnie sprawdź wtyczkę przed instalacją. TREK nie ponosi żadnej odpowiedzialności.',
|
||||
'admin.addons.title': 'Dodatki',
|
||||
'admin.addons.subtitle': 'Włączaj lub wyłączaj funkcje, aby dostosować swoje doświadczenie w TREK.',
|
||||
'admin.addons.catalog.packing.name': 'Listy',
|
||||
|
||||
@@ -222,6 +222,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Предоставлять фотографии для «Воспоминаний»',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Предоставлять события для календаря',
|
||||
'admin.plugins.perm.http:outbound': 'Выполнять исходящие запросы к заявленным хостам',
|
||||
'admin.plugins.riskTitle': 'Установка на свой страх и риск',
|
||||
'admin.plugins.riskBody': 'Плагины — это сторонний код. Даже после предварительной беглой проверки плагин всё равно может содержать вредоносное содержимое — при сомнениях проверьте плагин самостоятельно перед установкой. TREK не несёт никакой ответственности.',
|
||||
'admin.addons.title': 'Дополнения',
|
||||
'admin.addons.subtitle': 'Включайте или отключайте функции для настройки TREK под себя.',
|
||||
'admin.addons.catalog.memories.name': 'Фото (Immich)',
|
||||
|
||||
@@ -274,6 +274,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Tillhandahålla foton till Minnen',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Tillhandahålla händelser till kalendern',
|
||||
'admin.plugins.perm.http:outbound': 'Göra utgående anrop till sina deklarerade värdar',
|
||||
'admin.plugins.riskTitle': 'Installera på egen risk',
|
||||
'admin.plugins.riskBody': 'Plugins är tredjepartskod. Även efter en tidigare snabbgranskning kan ett plugin fortfarande innehålla skadligt innehåll – granska vid tveksamhet pluginet själv innan du installerar. TREK tar inget som helst ansvar.',
|
||||
'admin.addons.title': 'Tillägg',
|
||||
'admin.addons.subtitle': 'Aktivera eller inaktivera funktioner för att anpassa din TREK-upplevelse.',
|
||||
'admin.addons.catalog.packing.name': 'Listor',
|
||||
|
||||
@@ -266,6 +266,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Fotoğraflar bölümüne fotoğraf sağlar',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Takvime etkinlik sağlar',
|
||||
'admin.plugins.perm.http:outbound': 'Bildirdiği ana bilgisayarlara giden istekler yapar',
|
||||
'admin.plugins.riskTitle': 'Riski size ait olmak üzere yükleyin',
|
||||
'admin.plugins.riskBody': 'Eklentiler üçüncü taraf kodlardır. Önceden yapılan hızlı bir incelemeye rağmen bir eklenti yine de zararlı içerik barındırabilir — şüpheye düştüğünüzde, yüklemeden önce eklentiyi kendiniz inceleyin. TREK hiçbir sorumluluk kabul etmez.',
|
||||
'admin.addons.title': 'Eklentiler',
|
||||
'admin.addons.subtitle': 'TREK deneyiminizi özelleştirmek için özellikleri etkinleştirin veya devre dışı bırakın.',
|
||||
'admin.addons.catalog.packing.name': 'Listeler',
|
||||
|
||||
@@ -222,6 +222,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Надавати фотографії для Спогадів',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Надавати події для календаря',
|
||||
'admin.plugins.perm.http:outbound': 'Виконувати вихідні запити до заявлених хостів',
|
||||
'admin.plugins.riskTitle': 'Встановлюйте на власний ризик',
|
||||
'admin.plugins.riskBody': 'Плагіни — це сторонній код. Навіть після попередньої швидкої перевірки плагін усе ще може містити шкідливий вміст — у разі сумнівів перевірте плагін самостійно перед встановленням. TREK не несе жодної відповідальності.',
|
||||
'admin.addons.title': 'Доповнення',
|
||||
'admin.addons.subtitle': 'Увімкніть або вимкніть функції, щоб налаштувати TREK під себе.',
|
||||
'admin.addons.catalog.memories.name': 'Фото (Immich)',
|
||||
|
||||
@@ -274,6 +274,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': 'Cung cấp ảnh cho tính năng Ảnh',
|
||||
'admin.plugins.perm.hook:calendar-source': 'Cung cấp sự kiện cho lịch',
|
||||
'admin.plugins.perm.http:outbound': 'Gửi yêu cầu ra ngoài đến các máy chủ đã khai báo',
|
||||
'admin.plugins.riskTitle': 'Cài đặt và tự chịu rủi ro',
|
||||
'admin.plugins.riskBody': 'Plugin là mã của bên thứ ba. Ngay cả khi đã được xem xét sơ bộ trước đó, một plugin vẫn có thể chứa nội dung độc hại — nếu nghi ngờ, hãy tự kiểm tra plugin trước khi cài đặt. TREK hoàn toàn không chịu bất kỳ trách nhiệm nào.',
|
||||
'admin.addons.title': 'Tiện ích bổ sung',
|
||||
'admin.addons.subtitle': 'Bật hoặc tắt các tính năng để tùy chỉnh trải nghiệm TREK của bạn.',
|
||||
'admin.addons.catalog.packing.name': 'Danh sách',
|
||||
|
||||
@@ -256,6 +256,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': '為「回憶」提供照片',
|
||||
'admin.plugins.perm.hook:calendar-source': '為行事曆提供事件',
|
||||
'admin.plugins.perm.http:outbound': '向其宣告的主機發出對外請求',
|
||||
'admin.plugins.riskTitle': '安裝風險自負',
|
||||
'admin.plugins.riskBody': '外掛屬於第三方程式碼。即使事先經過快速審核,外掛仍可能包含有害內容——如有疑慮,請在安裝前自行檢查外掛。TREK 概不承擔任何責任。',
|
||||
'admin.addons.title': '擴充套件',
|
||||
'admin.addons.subtitle': '啟用或停用功能以自定義你的 TREK 體驗。',
|
||||
'admin.addons.catalog.memories.name': '照片 (Immich)',
|
||||
|
||||
@@ -217,6 +217,8 @@ const admin: TranslationStrings = {
|
||||
'admin.plugins.perm.hook:photo-provider': '为回忆提供照片',
|
||||
'admin.plugins.perm.hook:calendar-source': '为日历提供事件',
|
||||
'admin.plugins.perm.http:outbound': '向其声明的主机发出出站请求',
|
||||
'admin.plugins.riskTitle': '安装风险自负',
|
||||
'admin.plugins.riskBody': '插件是第三方代码。即使经过事先的快速审核,插件仍可能包含有害内容——如有疑虑,请在安装前自行检查插件。TREK 不承担任何责任。',
|
||||
'admin.addons.title': '扩展',
|
||||
'admin.addons.subtitle': '启用或禁用功能以自定义你的 TREK 体验。',
|
||||
'admin.addons.catalog.memories.name': '照片 (Immich)',
|
||||
|
||||
Reference in New Issue
Block a user