💋 Sync 2026-10-04 04:16:09

This commit is contained in:
github-actions[bot] committed 2026-10-04 04:16:09 +08:00
1 parent f6b2df73ec
commit f62992fd80
745 files changed
+212416 -1173

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-theme-fluent
PKG_VERSION:=1.0.9
PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0
LUCI_TITLE:=Fluent Theme for LuCI
LUCI_DEPENDS:=+luci-base
LUCI_MINIFY_CSS:=0
define Package/$(PKG_NAME)/conffiles
/etc/config/fluent
endef
define Package/$(PKG_NAME)/preinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
if command -v apk >/dev/null 2>&1 && apk info -e luci-theme-fluent-lite >/dev/null 2>&1; then
echo "luci-theme-fluent-lite is installed; remove it before installing luci-theme-fluent" >&2
exit 1
fi
if command -v opkg >/dev/null 2>&1 && opkg list-installed luci-theme-fluent-lite 2>/dev/null | grep -q '^luci-theme-fluent-lite '; then
echo "luci-theme-fluent-lite is installed; remove it before installing luci-theme-fluent" >&2
exit 1
fi
}
endef
define Package/$(PKG_NAME)/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
uci batch <<-EOF
set luci.themes.Fluent=/luci-static/fluent
commit luci
EOF
/etc/init.d/rpcd restart
}
endef
# call BuildPackage - OpenWrt buildroot signature
include $(TOPDIR)/feeds/luci/luci.mk
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,10 @@
{
"name": "OpenWrt",
"icons": [
{
"src": "/luci-static/fluent/icon/icon-192.png",
"sizes": "192x192",
"type": "image/png"
}
]
}
@@ -0,0 +1,100 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
<title>Fluent</title>
<defs>
<linearGradient id="bgGrad1" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#00F5FF" />
<stop offset="40%" stop-color="#0072FF" />
<stop offset="100%" stop-color="#001B36" />
</linearGradient>
<filter id="shadow1" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="16" stdDeviation="24" flood-color="#001224" flood-opacity="0.5" />
</filter>
<filter id="micaSim" x="-50%" y="-50%" width="200%" height="200%">
<feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="1"
stitchTiles="stitch" result="noise" />
<feColorMatrix in="noise" type="colorMatrix"
values="0 0 0 0 0.9 0 0 0 0 0.9 0 0 0 0 0.9 0 0 0 0.5 0" result="desaturatedNoise" />
<feGaussianBlur in="desaturatedNoise" stdDeviation="2" result="blurredNoise" />
<feComposite in="blurredNoise" in2="SourceGraphic" operator="in" />
</filter>
<linearGradient id="borderGrad1" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.7" />
<stop offset="50%" stop-color="#ffffff" stop-opacity="0.3" />
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.0" />
</linearGradient>
<linearGradient id="panelBorderGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.45" />
<stop offset="100%" stop-color="#ffffff" stop-opacity="0.1" />
</linearGradient>
<filter id="panelShadow" x="-30%" y="-30%" width="160%" height="160%">
<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#000914"
flood-opacity="0.45" />
</filter>
<filter id="neonGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="8" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
<filter id="terminalBadgeGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="4" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<rect x="44" y="44" width="424" height="424" rx="96" fill="url(#bgGrad1)" filter="url(#shadow1)" />
<rect x="44" y="44" width="424" height="424" rx="96" fill="#FFFFFF" fill-opacity="0.2"
filter="url(#micaSim)" />
<rect x="44" y="44" width="424" height="424" rx="96" fill="none" stroke="url(#borderGrad1)"
stroke-width="3" />
<g id="OpenWrt-Waves" filter="url(#neonGlow)">
<circle cx="256" cy="350" r="22" fill="#E0E0E0" opacity="0.8" />
<path d="M 199.4 293.4 A 80 80 0 0 1 312.6 293.4" fill="none" stroke="#E0E0E0"
stroke-width="24" stroke-linecap="round" opacity="0.7" />
<path d="M 157.0 251.0 A 140 140 0 0 1 355.0 251.0" fill="none" stroke="#E0E0E0"
stroke-width="24" stroke-linecap="round" opacity="0.5" />
<path d="M 114.6 208.6 A 200 200 0 0 1 397.4 208.6" fill="none" stroke="#E0E0E0"
stroke-width="24" stroke-linecap="round" opacity="0.3" />
</g>
<g id="Terminal-Window-Box" filter="url(#panelShadow)">
<rect x="105" y="105" width="300" height="300" rx="24" fill="#ffffff" fill-opacity="0.5"
filter="url(#micaSim)" />
<rect x="105" y="105" width="300" height="300" rx="24" fill="#0055ff" fill-opacity="0.3" />
<rect x="105" y="105" width="300" height="300" rx="24" fill="none"
stroke="url(#panelBorderGrad)" stroke-width="2" />
<circle cx="136" cy="156" r="4.5" fill="#FFFFFF" opacity=".5" />
<circle cx="152" cy="156" r="4.5" fill="#FFFFFF" opacity=".5" />
<circle cx="168" cy="156" r="4.5" fill="#FFFFFF" opacity=".5" />
</g>
<g id="Centered-Terminal-Badge" filter="url(#terminalBadgeGlow)">
<path d="M 146 165 L 221 240 L 146 315"
fill="none"
stroke="#ffeeaa"
stroke-width="22"
stroke-linecap="round"
stroke-linejoin="round"
stroke-opacity="1.0" />
<line x1="256" y1="315" x2="366" y2="315"
stroke="#ffeeaa"
stroke-width="22"
stroke-linecap="round"
stroke-opacity="1.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+778
View File
@@ -0,0 +1,778 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d Untermenüs"
msgid "A new version is available!"
msgstr "Eine neue Version ist verfügbar!"
msgid "About"
msgstr "Über"
msgid "Above bar, end"
msgstr "Über dem Balken, Ende"
msgid "Above bar, start"
msgstr "Über dem Balken, Anfang"
msgid "Accent color"
msgstr "Akzentfarbe"
msgid "Add primary menu"
msgstr "Hauptmenü hinzufügen"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Passen Sie Layout, Typografie, Übergangszeiten, Schatten an und fügen Sie "
"benutzerdefinierte CSS-Variablen oder -regeln hinzu, wenn die integrierten "
"Steuerelemente nicht ausreichen."
msgid "Advanced"
msgstr "Erweitert"
msgid "Advanced MAC Selector"
msgstr "Erweiterter MAC-Auswahler"
msgid "and %d more..."
msgstr "und %d weitere..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Animieren Sie die aktive Unterlinie beim Wechsel zwischen nativen LuCI-Tabs "
"und thematischen Tab-Menüs."
msgid "Animation"
msgstr "Animation"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"API-Ratenlimit überschritten. Bitte geben Sie ein GitHub-Token ein, um "
"fortzufahren. Dieses Token wird nur für Frontend-Anfragen verwendet und "
"nicht im Router-Backend gespeichert."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Gilt für Standard-Buttons, Eingabefelder, Auswahlmenüs und ähnliche "
"Formularsteuerelemente innerhalb des Themes."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Möchten Sie wirklich %d ungültige oder deinstallierte Menüpunkte oder Regeln "
"entfernen?"
msgid "Author"
msgstr "Autor"
msgid "Auto-scroll"
msgstr "Automatisches Scrollen"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Automatisch (nur für arabische/persische Regionen)"
msgid "Backdrop blur radius"
msgstr "Radius der Hintergrundunschärfe"
msgid "Backend (GHProxy Acceleration)"
msgstr "Backend (GHProxy-Beschleunigung)"
msgid "Backend (Official GitHub)"
msgstr "Backend (Offizielles GitHub)"
msgid "Base font size"
msgstr "Grundschriftgröße"
msgid "Below bar, end"
msgstr "Unterhalb des Balkens, Ende"
msgid "Below bar, start"
msgstr "Unterhalb des Balkens, Anfang"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Unschärferadius in Pixeln hinter der Anmeldekarte im dunklen Modus. "
"Verwenden Sie 0, um die Unschärfe zu deaktivieren."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Unschärferadius in Pixeln hinter der Anmeldekarte im hellen Modus. Verwenden "
"Sie 0, um die Unschärfe zu deaktivieren."
msgid "Cancel"
msgstr "Abbrechen"
msgid "Card background"
msgstr "Kartenhintergrund"
msgid "Card shadow"
msgstr "Kartenschatten"
msgid "Check for updates"
msgstr "Nach Updates suchen"
msgid "Checking for updates..."
msgstr "Suche nach Updates..."
msgid "Choose color"
msgstr "Farbe auswählen"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Wählen Sie die Dokumentrichtung für authentifizierte Seiten und "
"Anmeldeseiten. Der automatische Modus löst arabische und persische "
"Ländercodes (ar, ar_*, ar-*, fa, fa_*, fa-*) in RTL auf und verwendet "
"standardmäßig LTR für fehlende oder nicht erkannte Ländercodes."
msgid "Clean up"
msgstr "Bereinigen"
msgid "Clean up invalid items"
msgstr "Ungültige Elemente bereinigen"
msgid "Clean up invalid items (%d)"
msgstr "Ungültige Elemente bereinigen (%d)"
msgid "Close"
msgstr "Schließen"
msgid "Color mode"
msgstr "Farbmodus"
msgid "Colors"
msgstr "Farben"
msgid "Comfortable (42px)"
msgstr "Komfortabel (42px)"
msgid "Compact (32px)"
msgstr "Kompakt (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Konfigurieren Sie den Farbmodus, Akzentfarben, Layout-Größen, "
"Animationsverhalten, das Erscheinungsbild der Anmeldeseite und erweiterte "
"CSS-Überschreibungen für luci-theme-fluent."
msgid "Confirm"
msgstr "Bestätigen"
msgid "Confirm Installation"
msgstr "Installation bestätigen"
msgid "Continue"
msgstr "Fortfahren"
msgid "Control height"
msgstr "Steuerelementhöhe"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Steuert die Schriftstärke, die für Hauptnavigationsbezeichnungen und "
"zugehörige Theme-Textelemente verwendet wird."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Steuert die gemeinsamen Fluent-Eckenradien, die von Karten, Schaltflächen, "
"Eingabefeldern und verwandten UI-Elementen verwendet werden."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Steuert das gemeinsame Fluent-Übergangsverhalten, das für Menüs, Header und "
"andere Theme-Animationen verwendet wird."
msgid "Copied"
msgstr "Kopiert"
msgid "Copy log"
msgstr "Protokoll kopieren"
msgid "Corner radius"
msgstr "Eckenradius"
msgid "Current / Pending MAC Address"
msgstr "Aktuelle / Stehende MAC-Adresse"
msgid "Custom CSS"
msgstr "Benutzerdefiniertes CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Passen Sie den Hintergrund der Anmeldeseite, die Deckkraft von Karten und "
"den Unschärferadius für helle und dunkle Designs an."
msgid "Dark mode"
msgstr "Dunkles Design"
msgid "Delete primary menu"
msgstr "Hauptmenü löschen"
msgid "Disabled"
msgstr "Deaktiviert"
msgid "Disconnects"
msgstr "Verbindungsabbrüche"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Zeigt den themenbezogenen Ladeindikator am oberen Rand während des "
"Seitenladens und der Übergänge an."
msgid "Download and Install"
msgstr "Herunterladen und Installieren"
msgid "Download log"
msgstr "Protokoll herunterladen"
msgid "Downloaded"
msgstr "Heruntergeladen"
msgid "Downloading on router"
msgstr "Herunterladen auf dem Router"
msgid "Drag to move second-level menu"
msgstr "Verschieben, um das Untermenü zu ändern"
msgid "Drag to reorder primary menu"
msgstr "Verschieben, um die Reihenfolge des Hauptmenüs zu ändern"
msgid "Drop second-level menus here"
msgstr "Hier können Sie Untermenüs einfügen."
msgid "Edit"
msgstr "Bearbeiten"
msgid "Enable page transition animation"
msgstr "Seitenübergangsanimation aktivieren"
msgid "Enable tab underline animation"
msgstr "Tab-Unterstreichungsanimation aktivieren"
msgid "Errors"
msgstr "Fehler"
msgid "Expecting: %s"
msgstr "Erwartet: %s"
msgid "Extra large (12px)"
msgstr "Sehr groß (12px)"
msgid "Failed to check for updates"
msgstr "Fehler beim Prüfen auf Updates"
msgid "Failed to fetch current theme version."
msgstr "Fehler beim Abrufen der aktuellen Theme-Version."
msgid "Fast"
msgstr "Schnell"
msgid "Finished"
msgstr "Fertig"
msgid "Fix primary menu title errors before saving."
msgstr "Fehler im Titel des Hauptmenüs beheben, bevor Sie speichern."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Fluent Design 2 Theme für LuCI"
msgid "Fluent Theme"
msgstr "Fluent-Theme"
msgid "Fluent theme settings"
msgstr "Fluent Theme Einstellungen"
msgid "Follow system"
msgstr "Systemeinstellungen übernehmen"
msgid "Force dark mode"
msgstr "Dunkles Design erzwingen"
msgid "Force light mode"
msgstr "Helles Design erzwingen"
msgid "Force LTR"
msgstr "LTR erzwingen"
msgid "Force RTL"
msgstr "RTL erzwingen"
msgid "General"
msgstr "Allgemein"
msgid "GitHub Token Required"
msgstr "GitHub-Token erforderlich"
msgid "Header height"
msgstr "Höhe der Kopfzeile"
msgid "Height of the top header bar in pixels."
msgstr "Höhe der oberen Kopfleiste in Pixeln."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"HEX-Farbe, die als primäre Fluent-Akzentfarbe verwendet wird, wenn die "
"Oberfläche im dunklen Modus dargestellt wird."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"HEX-Farbe, die als primäre Fluent-Akzentfarbe verwendet wird, wenn die "
"Oberfläche im hellen Modus dargestellt wird."
msgid "HEX color used for container/card elements in dark mode."
msgstr "HEX-Farbe für Container-/Kartenelemente im dunklen Modus."
msgid "HEX color used for container/card elements in light mode."
msgstr "HEX-Farbe für Container-/Kartenelemente im hellen Modus."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"HEX-Farbe für Fortschrittsbalkenbeschriftungen, wenn die Oberfläche im "
"dunklen Modus dargestellt wird."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"HEX-Farbe für Fortschrittsbalkenbeschriftungen, wenn die Oberfläche im "
"hellen Modus dargestellt wird."
msgid "HEX color used for the main page background in dark mode."
msgstr "HEX-Farbe für den Hauptseitenhintergrund im dunklen Modus."
msgid "HEX color used for the main page background in light mode."
msgstr "HEX-Farbe für den Hauptseitenhintergrund im hellen Modus."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "HEX-Farbe für die Navigationsleiste im dunklen Modus."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "HEX-Farbe für die Navigationsleiste im hellen Modus."
msgid "Installation cancelled by user."
msgstr "Installation durch Benutzer abgebrochen."
msgid "Installed version"
msgstr "Installierte Version"
msgid "Installing package"
msgstr "Paket wird installiert"
msgid "Keep action bar visible while scrolling"
msgstr "Aktionen während des Scrollens sichtbar halten"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Speichern, Anwenden und Zurücksetzen: Aktionen am unteren Bildschirmrand "
"fixieren, auch beim Scrollen."
msgid "Large"
msgstr "Groß"
msgid "Large (8px)"
msgstr "Groß (8px)"
msgid "Light mode"
msgstr "Helles Design"
msgid "Line %d"
msgstr "Zeile %d"
msgid "Lines"
msgstr "Zeilen"
msgid "Login"
msgstr "Anmelden"
msgid "Login card opacity"
msgstr "Deckkraft der Anmeldekarte"
msgid "Login page"
msgstr "Anmeldeseite"
msgid "Medium"
msgstr "Mittel"
msgid "Medium (4px)"
msgstr "Mittel (4px)"
msgid "Menu"
msgstr "Menü"
msgid "Menu title cannot be empty."
msgstr "Der Menütitel darf nicht leer sein."
msgid "Navigation font weight"
msgstr "Schriftstärke der Navigation"
msgid "New primary menu"
msgstr "Neues Hauptmenü"
msgid "New primary menu %d"
msgstr "Neues Hauptmenü %d"
msgid "Next"
msgstr "Weiter"
msgid "Nightly build available (reinstallation check)."
msgstr "Nightly-Build verfügbar (Prüfung auf Neuinstallation)."
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly-Kanal (Vorabversion)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"Keine passende Paketdatei für Ihre Systemarchitektur in dieser Version "
"gefunden."
msgid "None"
msgstr "Kein"
msgid "Normal"
msgstr "Normal"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Deckkraft der Anmeldekarte im dunklen Modus. 0 ist vollständig transparent, "
"1 ist vollständig undurchsichtig."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Deckkraft der Anmeldekarte im hellen Modus. 0 ist vollständig transparent, 1 "
"ist vollständig undurchsichtig."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Optionales CSS, das in die Fluent-Header-Vorlage eingefügt wird. Verwenden "
"Sie dies für zusätzliche Überschreibungen von `--fluent-*`-Variablen oder "
"seitenbezogene Anpassungen, die nicht als dedizierte Optionen verfügbar "
"sind."
msgid "Package format"
msgstr "Paketformat"
msgid "Page background"
msgstr "Hintergrundfarbe der Seite"
msgid "Please enter your password."
msgstr "Bitte geben Sie Ihr Passwort ein."
msgid "Please enter your username."
msgstr "Bitte geben Sie Ihren Benutzernamen ein."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Position der Fortschrittsbalken-Beschriftungen relativ zum Balken. Die "
"Ausrichtung (Anfang/Ende) folgt der Textrichtung (LTR oder RTL)."
msgid "Preset Vendor / Generator"
msgstr "Vordefinierter Anbieter / Generator"
msgid "Primary menu title"
msgstr "Titel des Hauptmenüs"
msgid "Primary menu titles cannot be empty."
msgstr "Die Titel im Hauptmenü dürfen nicht leer sein."
msgid "Primary menu titles must be unique."
msgstr "Die Titel im Hauptmenü müssen eindeutig sein."
msgid "Progress bar text color"
msgstr "Textfarbe der Fortschrittsanzeige"
msgid "Progress bar text position"
msgstr "Textposition des Fortschrittsbalkens"
msgid "Random Local MAC"
msgstr "Zufällige lokale MAC-Adresse"
msgid "Randomize MAC"
msgstr "MAC-Adresse zufällig generieren"
msgid "Reload Web Interface"
msgstr "Weboberfläche neu laden"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Native Select-Elemente durch das benutzerdefinierte Dropdown-Widget des "
"Themes ersetzen."
msgid "Respect reduced-motion preference"
msgstr "Reduzierte Bewegungseffekte berücksichtigen"
msgid "Restore %s to its original menu name"
msgstr "%s auf den ursprünglichen Menünamen zurücksetzen"
msgid "Restore %s to its original menu position"
msgstr "%s auf die ursprüngliche Menüposition zurücksetzen"
msgid "Restore defaults"
msgstr "Standardwerte wiederherstellen"
msgid "Restore to original title"
msgstr "Auf ursprünglichen Titel zurücksetzen"
msgid "Retrying with token..."
msgstr "Erneuter Versuch mit Token..."
msgid "Rounded (6px)"
msgstr "Abgerundet (6px)"
msgid "Save"
msgstr "Speichern"
msgid "Scroll to bottom"
msgstr "Zum Ende scrollen"
msgid "Scroll to top"
msgstr "Zum Anfang scrollen"
msgid "Search menu items"
msgstr "Menüpunkte suchen"
msgid "Search menu..."
msgstr "Menü suchen..."
msgid "Second-level menu title"
msgstr "Titel des Untermenüs"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Wählen Sie die Schattenintensität für thematisierte Karten und Panels."
msgid "Select vendor prefix..."
msgstr "Hersteller-Präfix auswählen..."
msgid "Semibold"
msgstr "Halbfett"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Legt die Basisschriftgröße der Benutzeroberfläche in Pixeln fest. Die "
"meisten Texte des Themes werden über die Fluent CSS-Variablen von diesem "
"Wert aus skaliert. Empfohlener Bereich: 12-18px."
msgid "Show %s in the menu"
msgstr "%s im Menü anzeigen"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Zeigt ausstehende UCI-Änderungen in der oberen Statusmeldung an, bis die "
"Konfigurationsänderung abgeschlossen ist."
msgid "Show top loading bar"
msgstr "Ladebalken oben anzeigen"
msgid "Show UCI changes while applying configuration"
msgstr "UCI-Änderungen während des Konfigurationsvorgangs anzeigen"
msgid "Sidebar background"
msgstr "Hintergrund der Seitenleiste"
msgid "Sidebar width"
msgstr "Breite der Seitenleiste"
msgid "Slow"
msgstr "Langsam"
msgid "Small"
msgstr "Klein"
msgid "Small (2px)"
msgstr "Klein (2px)"
msgid "Software Update"
msgstr "Software-Update"
msgid "Source code"
msgstr "Quellcode"
msgid "Square (0px)"
msgstr "Quadratisch (0px)"
msgid "Stable Channel"
msgstr "Stabiler Kanal"
msgid "Starting backend download..."
msgstr "Backend-Download wird gestartet..."
msgid "Starting update process..."
msgstr "Update-Prozess wird gestartet..."
msgid "Submit"
msgstr "Absenden"
msgid "Switch theme mode"
msgstr "Theme-Modus wechseln"
msgid "Text direction"
msgstr "Textrichtung"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Das gespeicherte Menülayout ist ungültig. Wählen Sie „Standardwerte "
"wiederherstellen“ oder nehmen Sie eine Änderung vor, bevor Sie speichern."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Das gespeicherte Menülayout ist ungültig. Stellen Sie die Standardwerte "
"wieder her oder bearbeiten Sie das Layout, bevor Sie speichern."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Das Theme wird auf Ihrem Router installiert. Die Protokolle werden unten "
"angezeigt. Durch Neuladen der Weboberfläche werden die Änderungen "
"angewendet, sobald RPCD neu gestartet ist."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr ""
"Das Theme-Paket ist bereit. Sind Sie sicher, dass Sie mit der Installation "
"fortfahren möchten?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Der Token benötigt KEINE Berechtigungen/Scopes (ein schreibgeschützter "
"öffentlicher Zugriff ist ausreichend)."
msgid "Theme settings"
msgstr "Theme-Einstellungen"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Theme erfolgreich aktualisiert! RPC-Dienst wird neu geladen, bitte Seite in "
"5 Sekunden aktualisieren."
msgid "Theme transition speed"
msgstr "Übergangsgeschwindigkeit des Themes"
msgid "Toggle fullscreen"
msgstr "Vollbildmodus umschalten"
msgid "Triggering installation on router..."
msgstr "Installation auf dem Router wird gestartet..."
msgid "Update channel"
msgstr "Aktualisierungskanal"
msgid "Update failed"
msgstr "Update fehlgeschlagen"
msgid "Upgrade Successful!"
msgstr "Upgrade erfolgreich!"
msgid "Use Fluent custom select dropdowns"
msgstr "Benutze benutzerdefinierte Fluent-Auswahllisten"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Verwende die Browser-View-Transition-API, um Navigationen zwischen "
"LuCI-Seiten zu animieren, sofern unterstützt."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Verwende die Systemeinstellung/Browserpräferenz oder zeige das Fluent-Theme "
"immer in einer festen hellen oder dunklen Farbpalette an."
msgid "Username is required."
msgstr "Benutzername ist erforderlich."
msgid "valid HEX color value"
msgstr "gültiger HEX-Farbwert"
msgid "Warnings"
msgstr "Warnungen"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Wenn aktiviert, folgen Fluent-Animationen der Browser- oder "
"Betriebssystempräferenz für reduzierte Bewegung."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Breite der Hauptnavigationsleiste in Pixeln."
msgid "Word wrap"
msgstr "Textumbruch"
msgid "You can create a new token at"
msgstr "Sie können einen neuen Token erstellen unter:"
msgid "Your theme is up to date!"
msgstr "Ihr Theme ist auf dem neuesten Stand!"
+781
View File
@@ -0,0 +1,781 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: castillofrancodamian\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d menús de segundo nivel"
msgid "A new version is available!"
msgstr "¡Ya está disponible una nueva versión!"
msgid "About"
msgstr "Acerca de"
msgid "Above bar, end"
msgstr "Arriba de la barra, fin"
msgid "Above bar, start"
msgstr "Arriba de la barra, inicio"
msgid "Accent color"
msgstr "Color de acento"
msgid "Add primary menu"
msgstr "Añadir menú principal"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Ajuste el diseño, la tipografía, la sincronización de las transiciones, las "
"sombras e inserte variables o reglas CSS personalizadas cuando los controles "
"integrados no sean suficientes."
msgid "Advanced"
msgstr "Avanzado"
msgid "Advanced MAC Selector"
msgstr "Selector avanzado de dirección MAC"
msgid "and %d more..."
msgstr "y %d más..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Animar el subrayado activo al cambiar entre las pestañas nativas de LuCI y "
"los menús de pestañas con temas."
msgid "Animation"
msgstr "Animación"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Se ha superado el límite de solicitudes de la API. Ingrese un token de "
"GitHub para continuar. Este token solo se utiliza para las solicitudes del "
"frontend y no se guardará en el backend del enrutador."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Se aplica a botones, campos de entrada, menús desplegables y controles de "
"formulario similares estándar en todo el tema."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"¿Está seguro de que desea eliminar %d elementos o reglas de menú "
"inválidos/no instalados?"
msgid "Author"
msgstr "Autor"
msgid "Auto-scroll"
msgstr "Desplazamiento automático"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Automático (solo para configuraciones regionales árabe/persa)"
msgid "Backdrop blur radius"
msgstr "Radio de desenfoque del fondo"
msgid "Backend (GHProxy Acceleration)"
msgstr "Backend (Aceleración GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Backend (GitHub oficial)"
msgid "Base font size"
msgstr "Tamaño de fuente base"
msgid "Below bar, end"
msgstr "Abajo de la barra, fin"
msgid "Below bar, start"
msgstr "Abajo de la barra, inicio"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Radio de desenfoque en píxeles detrás de la tarjeta de inicio de sesión en "
"modo oscuro. Use 0 para desactivar el desenfoque."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Radio de desenfoque en píxeles detrás de la tarjeta de inicio de sesión en "
"modo claro. Use 0 para desactivar el desenfoque."
msgid "Cancel"
msgstr "Cancelar"
msgid "Card background"
msgstr "Fondo de tarjeta"
msgid "Card shadow"
msgstr "Sombra de la tarjeta"
msgid "Check for updates"
msgstr "Verificar si hay actualizaciones"
msgid "Checking for updates..."
msgstr "Buscando actualizaciones..."
msgid "Choose color"
msgstr "Elegir color"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Seleccione la dirección de los documentos para las páginas autenticadas y de "
"inicio de sesión. El modo automático resuelve los códigos de configuración "
"regional árabe y persa (ar, ar_*, ar-*, fa, fa_*, fa-*) a RTL y recurre a "
"LTR en caso de que falten o no se reconozcan las configuraciones regionales."
msgid "Clean up"
msgstr "Limpiar"
msgid "Clean up invalid items"
msgstr "Limpiar elementos inválidos"
msgid "Clean up invalid items (%d)"
msgstr "Limpiar elementos inválidos (%d)"
msgid "Close"
msgstr "Cerrar"
msgid "Color mode"
msgstr "Modo de color"
msgid "Colors"
msgstr "Colores"
msgid "Comfortable (42px)"
msgstr "Cómodo (42px)"
msgid "Compact (32px)"
msgstr "Compacto (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Configure el modo de color, los colores de acento, el tamaño del diseño, el "
"comportamiento de la animación, la apariencia de la página de inicio de "
"sesión y las anulaciones CSS avanzadas para luci-theme-fluent."
msgid "Confirm"
msgstr "Confirmar"
msgid "Confirm Installation"
msgstr "Confirmar instalación"
msgid "Continue"
msgstr "Continuar"
msgid "Control height"
msgstr "Altura de control"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Controla el grosor de la fuente utilizada por las etiquetas de navegación "
"principales y los acentos de texto del tema relacionados."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Controla los tokens de radio de esquina compartidos de Fluent que utilizan "
"las tarjetas, los botones, los campos de entrada y las superficies de la "
"interfaz de usuario relacionadas."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Controla la sincronización de transición compartida de Fluent utilizada por "
"las animaciones de menú, encabezado y otros temas."
msgid "Copied"
msgstr "Copiado"
msgid "Copy log"
msgstr "Copiar registro"
msgid "Corner radius"
msgstr "Radio de esquina"
msgid "Current / Pending MAC Address"
msgstr "Dirección MAC actual / pendiente"
msgid "Custom CSS"
msgstr "CSS personalizado"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Personalice el fondo de la página de inicio de sesión, la opacidad de la "
"tarjeta y el radio de desenfoque para los modos claro y oscuro."
msgid "Dark mode"
msgstr "Modo oscuro"
msgid "Delete primary menu"
msgstr "Eliminar menú principal"
msgid "Disabled"
msgstr "Desactivado"
msgid "Disconnects"
msgstr "Desconexiones"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Muestra el indicador de carga con el tema correspondiente en el borde "
"superior durante la carga y las transiciones de la página."
msgid "Download and Install"
msgstr "Descargar e instalar"
msgid "Download log"
msgstr "Descargar registro"
msgid "Downloaded"
msgstr "Descargado"
msgid "Downloading on router"
msgstr "Descargando en el enrutador"
msgid "Drag to move second-level menu"
msgstr "Arrastrar para mover menú de segundo nivel"
msgid "Drag to reorder primary menu"
msgstr "Arrastrar para reordenar menú principal"
msgid "Drop second-level menus here"
msgstr "Soltar menús de segundo nivel aquí"
msgid "Edit"
msgstr "Editar"
msgid "Enable page transition animation"
msgstr "Activar la animación de transición de página"
msgid "Enable tab underline animation"
msgstr "Activar la animación de subrayado de la pestaña"
msgid "Errors"
msgstr "Errores"
msgid "Expecting: %s"
msgstr "Esperando: %s"
msgid "Extra large (12px)"
msgstr "Extra grande (12 píxeles)"
msgid "Failed to check for updates"
msgstr "Error al comprobar si hay actualizaciones"
msgid "Failed to fetch current theme version."
msgstr "Error al obtener la versión actual del tema."
msgid "Fast"
msgstr "Rápido"
msgid "Finished"
msgstr "Finalizado"
msgid "Fix primary menu title errors before saving."
msgstr "Corregir errores en el título del menú principal antes de guardar."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Tema Fluent Design 2 para LuCI"
msgid "Fluent Theme"
msgstr "Tema Fluent"
msgid "Fluent theme settings"
msgstr "Configuración del tema Fluent"
msgid "Follow system"
msgstr "Seguir el sistema"
msgid "Force dark mode"
msgstr "Forzar modo oscuro"
msgid "Force light mode"
msgstr "Forzar modo claro"
msgid "Force LTR"
msgstr "Forzar LTR"
msgid "Force RTL"
msgstr "Forzar RTL"
msgid "General"
msgstr "General"
msgid "GitHub Token Required"
msgstr "Se requiere token de GitHub"
msgid "Header height"
msgstr "Altura del encabezado"
msgid "Height of the top header bar in pixels."
msgstr "Altura de la barra de encabezado superior en píxeles."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Se utiliza un color HEX como acento principal de Fluent cuando la interfaz "
"se muestra en modo oscuro."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Se utiliza un color HEX como acento principal de Fluent cuando la interfaz "
"se muestra en modo claro."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Color HEX utilizado para los elementos de contenedor/tarjeta en modo oscuro."
msgid "HEX color used for container/card elements in light mode."
msgstr "Color HEX utilizado para los elementos de contenedor/tarjeta en modo claro."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Se utiliza un código de color hexadecimal para las etiquetas de la barra de "
"progreso cuando la interfaz se muestra en modo oscuro."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Se utiliza un código de color hexadecimal para las etiquetas de la barra de "
"progreso cuando la interfaz se muestra en modo claro."
msgid "HEX color used for the main page background in dark mode."
msgstr "Color HEX utilizado para el fondo de la página principal en modo oscuro."
msgid "HEX color used for the main page background in light mode."
msgstr "Color HEX utilizado para el fondo de la página principal en modo claro."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "Color HEX utilizado para la barra lateral de navegación en modo oscuro."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "Color HEX utilizado para la barra lateral de navegación en modo claro."
msgid "Installation cancelled by user."
msgstr "Instalación cancelada por el usuario."
msgid "Installed version"
msgstr "Versión instalada"
msgid "Installing package"
msgstr "Instalando paquete"
msgid "Keep action bar visible while scrolling"
msgstr "Mantener la barra de acciones visible al hacer desplazamiento."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Mantener los botones Guardar, Aplicar y Restablecer fijos en la parte "
"inferior de la pantalla al hacer desplazamiento."
msgid "Large"
msgstr "Grande"
msgid "Large (8px)"
msgstr "Grande (8 píxeles)"
msgid "Light mode"
msgstr "Modo claro"
msgid "Line %d"
msgstr "Línea %d"
msgid "Lines"
msgstr "Líneas"
msgid "Login"
msgstr "Acceso"
msgid "Login card opacity"
msgstr "Opacidad de la tarjeta de inicio de sesión"
msgid "Login page"
msgstr "Página de inicio de sesión"
msgid "Medium"
msgstr "Mediano"
msgid "Medium (4px)"
msgstr "Mediano (4px)"
msgid "Menu"
msgstr "Menú"
msgid "Menu title cannot be empty."
msgstr "El título del menú no puede estar vacío."
msgid "Navigation font weight"
msgstr "Peso de la fuente de navegación"
msgid "New primary menu"
msgstr "Nuevo menú principal"
msgid "New primary menu %d"
msgstr "Nuevo menú principal %d"
msgid "Next"
msgstr "Siguiente"
msgid "Nightly build available (reinstallation check)."
msgstr "Versión Nightly disponible (comprobación de reinstalación)."
msgid "Nightly Channel (Prerelease)"
msgstr "Canal Nightly (Lanzamiento anticipado)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"No se encontró ningún paquete compatible con la arquitectura de su sistema "
"en esta versión."
msgid "None"
msgstr "Ninguno"
msgid "Normal"
msgstr "Normal"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacidad de la tarjeta de inicio de sesión en modo oscuro. 0 es totalmente "
"transparente y 1 es totalmente opaco."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacidad de la tarjeta de inicio de sesión en modo claro. 0 es totalmente "
"transparente y 1 es totalmente opaco."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"CSS sin formato opcional que se inyecta en la plantilla de encabezado de "
"Fluent. Úselo para anular variables adicionales de --fluent-* o para "
"realizar ajustes específicos de la página que no estén disponibles como "
"opciones dedicadas."
msgid "Package format"
msgstr "Formato del paquete"
msgid "Page background"
msgstr "Fondo de página"
msgid "Please enter your password."
msgstr "Por favor, ingrese su contraseña."
msgid "Please enter your username."
msgstr "Por favor, ingrese su nombre de usuario."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Posición de las etiquetas de la barra de progreso en relación con la barra. "
"La alineación de inicio/fin sigue la dirección del texto (LTR o RTL)."
msgid "Preset Vendor / Generator"
msgstr "Generador/preajuste de fabricante"
msgid "Primary menu title"
msgstr "Título del menú principal"
msgid "Primary menu titles cannot be empty."
msgstr "Los títulos del menú principal no pueden estar vacíos."
msgid "Primary menu titles must be unique."
msgstr "Los títulos del menú principal deben ser únicos."
msgid "Progress bar text color"
msgstr "Color del texto de la barra de progreso"
msgid "Progress bar text position"
msgstr "Posición del texto de la barra de progreso"
msgid "Random Local MAC"
msgstr "MAC local aleatorio"
msgid "Randomize MAC"
msgstr "Aleatorizar MAC"
msgid "Reload Web Interface"
msgstr "Recargar la interfaz web"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Reemplazar los elementos select nativos con el widget desplegable "
"personalizado del tema."
msgid "Respect reduced-motion preference"
msgstr "Respetar la preferencia por movimientos reducidos"
msgid "Restore %s to its original menu name"
msgstr "Restaurar %s a su nombre de menú original"
msgid "Restore %s to its original menu position"
msgstr "Restaurar %s a su posición original en el menú"
msgid "Restore defaults"
msgstr "Restablecer valores predeterminados"
msgid "Restore to original title"
msgstr "Restaurar al título original"
msgid "Retrying with token..."
msgstr "Reintentando con token..."
msgid "Rounded (6px)"
msgstr "Redondeado (6px)"
msgid "Save"
msgstr "Guardar"
msgid "Scroll to bottom"
msgstr "Desplazarse al final"
msgid "Scroll to top"
msgstr "Desplazarse a la parte superior"
msgid "Search menu items"
msgstr "Buscar elementos del menú"
msgid "Search menu..."
msgstr "Menú de búsqueda..."
msgid "Second-level menu title"
msgstr "Título de menú secundario"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr ""
"Seleccione la profundidad de sombra que se aplicará a las tarjetas y paneles "
"temáticos."
msgid "Select vendor prefix..."
msgstr "Seleccionar prefijo de fabricante..."
msgid "Semibold"
msgstr "Seminegrita"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Establezca el tamaño de fuente base de la interfaz en píxeles. La mayoría "
"del texto del tema se ajusta a partir de este valor mediante las variables "
"CSS de Fluent. Rango recomendado: 12-18 píxeles."
msgid "Show %s in the menu"
msgstr "Mostrar %s en el menú"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Mostrar cambios de UCI pendientes en el mensaje superior de estado de "
"aplicación hasta que se complete la aplicación de la configuración."
msgid "Show top loading bar"
msgstr "Mostrar barra de carga superior"
msgid "Show UCI changes while applying configuration"
msgstr "Mostrar cambios de UCI durante la aplicación de la configuración."
msgid "Sidebar background"
msgstr "Fondo de la barra lateral"
msgid "Sidebar width"
msgstr "Ancho de la barra lateral"
msgid "Slow"
msgstr "Lento"
msgid "Small"
msgstr "Pequeño"
msgid "Small (2px)"
msgstr "Pequeño (2px)"
msgid "Software Update"
msgstr "Actualización de software"
msgid "Source code"
msgstr "Código fuente"
msgid "Square (0px)"
msgstr "Cuadrado (0px)"
msgid "Stable Channel"
msgstr "Canal estable"
msgid "Starting backend download..."
msgstr "Iniciando la descarga del servidor..."
msgid "Starting update process..."
msgstr "Iniciando el proceso de actualización..."
msgid "Submit"
msgstr "Enviar"
msgid "Switch theme mode"
msgstr "Cambiar modo del tema"
msgid "Text direction"
msgstr "Dirección del texto"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"La disposición del menú almacenada no es válida. Elija \"Restablecer valores "
"predeterminados\" o realice una edición antes de guardar."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"La disposición del menú almacenada no es válida. Restablezca los valores "
"predeterminados o edite la disposición antes de guardar."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"El tema se está instalando en su enrutador. Los registros se muestran a "
"continuación. Al reiniciar RPCD, se aplicarán los cambios a la interfaz web."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr ""
"El paquete de temas está listo. ¿Está seguro que desea continuar con la "
"instalación?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"El token NO requiere que se otorguen permisos/ámbitos (el acceso público de "
"solo lectura es suficiente)."
msgid "Theme settings"
msgstr "Configuración del tema"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"¡Tema actualizado correctamente! Recargando el servicio RPC, y actualice la "
"página en 5 segundos."
msgid "Theme transition speed"
msgstr "Velocidad de transición del tema"
msgid "Toggle fullscreen"
msgstr "Alternar pantalla completa"
msgid "Triggering installation on router..."
msgstr "Iniciando la instalación en el enrutador..."
msgid "Update channel"
msgstr "Canal de actualización"
msgid "Update failed"
msgstr "La actualización falló"
msgid "Upgrade Successful!"
msgstr "¡Actualización exitosa!"
msgid "Use Fluent custom select dropdowns"
msgstr "Utilizar menús desplegables de selección personalizada de Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Utiliza la API de transición de vista del navegador para animar la "
"navegación entre páginas de LuCI cuando sea compatible."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Se utiliza la preferencia del sistema/navegador o configure que el tema "
"Fluent se muestre siempre con una paleta de colores fija, ya sea clara u "
"oscura."
msgid "Username is required."
msgstr "Se requiere nombre de usuario."
msgid "valid HEX color value"
msgstr "valor de color HEX válido"
msgid "Warnings"
msgstr "Advertencias"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Cuando están activadas, las animaciones Fluent respetan la preferencia de "
"movimiento reducido del navegador o del sistema operativo."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Ancho de la barra lateral de navegación principal en píxeles."
msgid "Word wrap"
msgstr "Ajuste de línea"
msgid "You can create a new token at"
msgstr "Puedes crear un nuevo token en:"
msgid "Your theme is up to date!"
msgstr "¡Tu tema está actualizado!"
+761
View File
@@ -0,0 +1,761 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d منوی سطح دوم"
msgid "A new version is available!"
msgstr "نسخه جدیدی در دسترس است!"
msgid "About"
msgstr "درباره"
msgid "Above bar, end"
msgstr "بالای نوار، پایان"
msgid "Above bar, start"
msgstr "بالای نوار، شروع"
msgid "Accent color"
msgstr "رنگ تأکیدی"
msgid "Add primary menu"
msgstr "افزودن منوی اصلی"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"چیدمان، تایپوگرافی، زمان‌بندی گذارها و سایه‌ها را تنظیم کنید و وقتی "
"کنترل‌های داخلی کافی نیستند، متغیرها یا قوانین CSS سفارشی اضافه کنید."
msgid "Advanced"
msgstr "پیشرفته"
msgid "Advanced MAC Selector"
msgstr "انتخابگر پیشرفته آدرس MAC"
msgid "and %d more..."
msgstr "و %d مورد دیگر..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"هنگام جابه‌جایی بین زبانه‌های بومی LuCI و منوهای زبانه‌ای پوسته، زیرخط فعال "
"را متحرک کنید."
msgid "Animation"
msgstr "انیمیشن"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"محدودیت نرخ API پر شده است. برای ادامه، یک توکن GitHub وارد کنید. این توکن "
"فقط برای درخواست‌های فرانت‌اند استفاده می‌شود و در سمت روتر ذخیره نخواهد شد."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"برای دکمه‌ها، ورودی‌ها، فهرست‌های انتخاب و کنترل‌های مشابه فرم در سراسر "
"پوسته اعمال می‌شود."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"آیا مطمئن هستید که می‌خواهید %d مورد نامعتبر یا غیرنصب‌شده از منوها یا "
"قوانین را حذف کنید؟"
msgid "Author"
msgstr "نویسنده"
msgid "Auto-scroll"
msgstr "اسکرول خودکار"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "خودکار (فقط برای زبان‌های عربی/پارسی)"
msgid "Backdrop blur radius"
msgstr "شعاع تاری پس‌زمینه"
msgid "Backend (GHProxy Acceleration)"
msgstr "بک‌اند (شتاب‌دهی GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "بک‌اند (GitHub رسمی)"
msgid "Base font size"
msgstr "اندازه پایه فونت"
msgid "Below bar, end"
msgstr "زیر نوار، پایان"
msgid "Below bar, start"
msgstr "زیر نوار، شروع"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"شعاع تاری بر حسب پیکسل پشت کارت ورود در حالت تیره. برای غیرفعال کردن تاری از "
"0 استفاده کنید."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"شعاع تاری بر حسب پیکسل پشت کارت ورود در حالت روشن. برای غیرفعال کردن تاری از "
"0 استفاده کنید."
msgid "Cancel"
msgstr "انصراف"
msgid "Card background"
msgstr "پس‌زمینه کارت"
msgid "Card shadow"
msgstr "سایه کارت"
msgid "Check for updates"
msgstr "بررسی به‌روزرسانی‌ها"
msgid "Checking for updates..."
msgstr "در حال بررسی به‌روزرسانی‌ها..."
msgid "Choose color"
msgstr "انتخاب رنگ"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"جهت متن را برای صفحات احراز هویت و ورود انتخاب کنید. حالت خودکار، کدهای زبان "
"عربی و پارسی (ar, ar_*, ar-*, fa, fa_*, fa-*) را شناسایی کرده و آن‌ها را به "
"راست به چپ (RTL) تنظیم می‌کند و در صورت عدم وجود یا نامشخص بودن کد زبان، به "
"چپ به راست (LTR) بازمی‌گردد."
msgid "Clean up"
msgstr "پاکسازی"
msgid "Clean up invalid items"
msgstr "پاکسازی موارد نامعتبر"
msgid "Clean up invalid items (%d)"
msgstr "پاکسازی موارد نامعتبر (%d)"
msgid "Close"
msgstr "بستن"
msgid "Color mode"
msgstr "حالت رنگ"
msgid "Colors"
msgstr "رنگ‌ها"
msgid "Comfortable (42px)"
msgstr "راحت (42px)"
msgid "Compact (32px)"
msgstr "فشرده (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"حالت رنگ، رنگ‌های تأکیدی، اندازه‌بندی چیدمان، رفتار انیمیشن، ظاهر صفحه ورود "
"و بازنویسی‌های پیشرفته CSS برای luci-theme-fluent را پیکربندی کنید."
msgid "Confirm"
msgstr "تایید"
msgid "Confirm Installation"
msgstr "تأیید نصب"
msgid "Continue"
msgstr "ادامه"
msgid "Control height"
msgstr "ارتفاع کنترل‌ها"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"ضخامت فونت مورد استفاده برای برچسب‌های اصلی ناوبری و متن‌های تأکیدی مرتبط با "
"پوسته را کنترل می‌کند."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"مقادیر مشترک شعاع گوشه Fluent را که در کارت‌ها، دکمه‌ها، ورودی‌ها و سطوح "
"مرتبط رابط کاربری استفاده می‌شوند کنترل می‌کند."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"زمان‌بندی گذار مشترک Fluent را که در منو، سربرگ و دیگر انیمیشن‌های پوسته "
"استفاده می‌شود کنترل می‌کند."
msgid "Copied"
msgstr "کپی شد"
msgid "Copy log"
msgstr "کپی لاگ"
msgid "Corner radius"
msgstr "شعاع گوشه"
msgid "Current / Pending MAC Address"
msgstr "آدرس MAC فعلی / در انتظار"
msgid "Custom CSS"
msgstr "CSS سفارشی"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"پس‌زمینه صفحه ورود، شفافیت کارت و شعاع تاری را برای حالت‌های روشن و تیره "
"سفارشی کنید."
msgid "Dark mode"
msgstr "حالت تیره"
msgid "Delete primary menu"
msgstr "حذف منوی اصلی"
msgid "Disabled"
msgstr "غیرفعال"
msgid "Disconnects"
msgstr "قطع شدن‌ها"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"هنگام بارگذاری و گذار صفحات، نشانگر بارگذاری پوسته را در لبه بالایی نمایش "
"می‌دهد."
msgid "Download and Install"
msgstr "دانلود و نصب"
msgid "Download log"
msgstr "دانلود لاگ"
msgid "Downloaded"
msgstr "دانلود شد"
msgid "Downloading on router"
msgstr "در حال دانلود روی روتر"
msgid "Drag to move second-level menu"
msgstr "برای جابجایی، منوی سطح دوم را بکشید"
msgid "Drag to reorder primary menu"
msgstr "برای تغییر ترتیب، منوی اصلی را بکشید"
msgid "Drop second-level menus here"
msgstr "منوهای سطح دوم را در اینجا رها کنید"
msgid "Edit"
msgstr "ویرایش"
msgid "Enable page transition animation"
msgstr "فعال‌سازی انیمیشن گذار صفحه"
msgid "Enable tab underline animation"
msgstr "فعال‌سازی انیمیشن زیرخط زبانه"
msgid "Errors"
msgstr "خطاها"
msgid "Expecting: %s"
msgstr "مورد انتظار: %s"
msgid "Extra large (12px)"
msgstr "بسیار بزرگ (12px)"
msgid "Failed to check for updates"
msgstr "بررسی به‌روزرسانی‌ها ناموفق بود"
msgid "Failed to fetch current theme version."
msgstr "واکشی نسخه فعلی پوسته ناموفق بود."
msgid "Fast"
msgstr "سریع"
msgid "Finished"
msgstr "تکمیل شد"
msgid "Fix primary menu title errors before saving."
msgstr "قبل از ذخیره، خطاهای عنوان منوی اصلی را برطرف کنید."
msgid "Fluent Design 2 theme for LuCI"
msgstr "پوسته Fluent Design 2 برای LuCI"
msgid "Fluent Theme"
msgstr "پوسته Fluent"
msgid "Fluent theme settings"
msgstr "تنظیمات پوسته Fluent"
msgid "Follow system"
msgstr "پیروی از سیستم"
msgid "Force dark mode"
msgstr "اجبار به حالت تیره"
msgid "Force light mode"
msgstr "اجبار به حالت روشن"
msgid "Force LTR"
msgstr "اجبار به چپ به راست (LTR)"
msgid "Force RTL"
msgstr "اجبار به راست به چپ (RTL)"
msgid "General"
msgstr "عمومی"
msgid "GitHub Token Required"
msgstr "توکن GitHub لازم است"
msgid "Header height"
msgstr "ارتفاع سربرگ"
msgid "Height of the top header bar in pixels."
msgstr "ارتفاع نوار سربرگ بالا بر حسب پیکسل."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"رنگ HEX که هنگام نمایش رابط در حالت تیره به‌عنوان رنگ تأکیدی اصلی Fluent "
"استفاده می‌شود."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"رنگ HEX که هنگام نمایش رابط در حالت روشن به‌عنوان رنگ تأکیدی اصلی Fluent "
"استفاده می‌شود."
msgid "HEX color used for container/card elements in dark mode."
msgstr "رنگ HEX مورد استفاده برای عناصر ظرف/کارت در حالت تیره."
msgid "HEX color used for container/card elements in light mode."
msgstr "رنگ HEX مورد استفاده برای عناصر ظرف/کارت در حالت روشن."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"رنگ HEX مورد استفاده برای برچسب‌های نوار پیشرفت هنگام نمایش رابط در حالت "
"تیره."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"رنگ HEX مورد استفاده برای برچسب‌های نوار پیشرفت هنگام نمایش رابط در حالت "
"روشن."
msgid "HEX color used for the main page background in dark mode."
msgstr "رنگ HEX مورد استفاده برای پس‌زمینه صفحه اصلی در حالت تیره."
msgid "HEX color used for the main page background in light mode."
msgstr "رنگ HEX مورد استفاده برای پس‌زمینه صفحه اصلی در حالت روشن."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "رنگ HEX مورد استفاده برای نوار کناری ناوبری در حالت تیره."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "رنگ HEX مورد استفاده برای نوار کناری ناوبری در حالت روشن."
msgid "Installation cancelled by user."
msgstr "نصب توسط کاربر لغو شد."
msgid "Installed version"
msgstr "نسخه نصب‌شده"
msgid "Installing package"
msgstr "در حال نصب بسته"
msgid "Keep action bar visible while scrolling"
msgstr "نوار عملگرها را هنگام پیمایش، قابل مشاهده نگه دارید."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"دکمه‌های ذخیره، اعمال و بازنشانی را در پایین صفحه ثابت نگه دارید تا هنگام "
"پیمایش همیشه قابل دسترس باشند."
msgid "Large"
msgstr "بزرگ"
msgid "Large (8px)"
msgstr "بزرگ (8px)"
msgid "Light mode"
msgstr "حالت روشن"
msgid "Line %d"
msgstr "سطر %d"
msgid "Lines"
msgstr "سطرها"
msgid "Login"
msgstr "ورود"
msgid "Login card opacity"
msgstr "شفافیت کارت ورود"
msgid "Login page"
msgstr "صفحه ورود"
msgid "Medium"
msgstr "متوسط"
msgid "Medium (4px)"
msgstr "متوسط (4px)"
msgid "Menu"
msgstr "منو"
msgid "Menu title cannot be empty."
msgstr "عنوان منو نمی‌تواند خالی باشد."
msgid "Navigation font weight"
msgstr "ضخامت فونت ناوبری"
msgid "New primary menu"
msgstr "منوی اصلی جدید"
msgid "New primary menu %d"
msgstr "منوی اصلی جدید %d"
msgid "Next"
msgstr "بعدی"
msgid "Nightly build available (reinstallation check)."
msgstr "بیلد Nightly در دسترس است (بررسی نیاز به نصب مجدد)."
msgid "Nightly Channel (Prerelease)"
msgstr "کانال Nightly (پیش‌انتشار)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "هیچ بسته سازگار با معماری سیستم شما در این انتشار پیدا نشد."
msgid "None"
msgstr "هیچ‌کدام"
msgid "Normal"
msgstr "عادی"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "شفافیت کارت ورود در حالت تیره. 0 یعنی کاملاً شفاف و 1 یعنی کاملاً مات."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "شفافیت کارت ورود در حالت روشن. 0 یعنی کاملاً شفاف و 1 یعنی کاملاً مات."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"CSS خام اختیاری که به قالب سربرگ Fluent تزریق می‌شود. از آن برای "
"بازنویسی‌های اضافی متغیرهای --fluent-* یا تنظیمات مخصوص صفحه که به‌صورت "
"گزینه جداگانه ارائه نشده‌اند استفاده کنید."
msgid "Package format"
msgstr "قالب بسته"
msgid "Page background"
msgstr "پس‌زمینه صفحه"
msgid "Please enter your password."
msgstr "لطفاً گذرواژه خود را وارد کنید."
msgid "Please enter your username."
msgstr "لطفاً نام کاربری خود را وارد کنید."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"موقعیت برچسب‌های نوار پیشرفت نسبت به نوار. تراز شروع/پایان از جهت متن (LTR "
"یا RTL) پیروی می‌کند."
msgid "Preset Vendor / Generator"
msgstr "تنظیمات پیش‌فرض فروشنده / تولیدکننده"
msgid "Primary menu title"
msgstr "عنوان منوی اصلی"
msgid "Primary menu titles cannot be empty."
msgstr "عنوان‌های منوی اصلی نمی‌توانند خالی باشند."
msgid "Primary menu titles must be unique."
msgstr "عنوان‌های منوی اصلی باید منحصر به فرد باشند."
msgid "Progress bar text color"
msgstr "رنگ متن نوار پیشرفت"
msgid "Progress bar text position"
msgstr "موقعیت متن نوار پیشرفت"
msgid "Random Local MAC"
msgstr "آدرس MAC محلی تصادفی"
msgid "Randomize MAC"
msgstr "تغییر تصادفی آدرس MAC"
msgid "Reload Web Interface"
msgstr "بارگذاری مجدد رابط وب"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "عناصر انتخاب بومی را با ابزارک فهرست کشویی سفارشی پوسته جایگزین می‌کند."
msgid "Respect reduced-motion preference"
msgstr "رعایت ترجیح کاهش حرکت"
msgid "Restore %s to its original menu name"
msgstr "بازگرداندن %s به نام منوی پیش‌فرض"
msgid "Restore %s to its original menu position"
msgstr "بازگرداندن %s به موقعیت منوی پیش‌فرض"
msgid "Restore defaults"
msgstr "بازیابی تنظیمات پیش‌فرض"
msgid "Restore to original title"
msgstr "بازگرداندن به عنوان اصلی"
msgid "Retrying with token..."
msgstr "تلاش دوباره با توکن..."
msgid "Rounded (6px)"
msgstr "گرد (6px)"
msgid "Save"
msgstr "ذخیره"
msgid "Scroll to bottom"
msgstr "رفتن به پایین"
msgid "Scroll to top"
msgstr "رفتن به بالا"
msgid "Search menu items"
msgstr "جست‌وجوی موارد منو"
msgid "Search menu..."
msgstr "جست‌وجو در منو..."
msgid "Second-level menu title"
msgstr "عنوان منوی سطح دوم"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "عمق سایه اعمال‌شده به کارت‌ها و پنل‌های پوسته را انتخاب کنید."
msgid "Select vendor prefix..."
msgstr "انتخاب پیشوند سازنده..."
msgid "Semibold"
msgstr "نیمه‌پررنگ"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"اندازه پایه فونت رابط را بر حسب پیکسل تنظیم می‌کند. بیشتر متن‌های پوسته از "
"این مقدار از طریق متغیرهای CSS مربوط به Fluent مقیاس می‌گیرند. بازه "
"پیشنهادی: 12-18px."
msgid "Show %s in the menu"
msgstr "نمایش %s در منو"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr "نمایش تغییرات تنظیمات باقی‌مانده در پیام وضعیت اصلی تا تکمیل اعمال پیکربندی."
msgid "Show top loading bar"
msgstr "نمایش نوار بارگذاری بالا"
msgid "Show UCI changes while applying configuration"
msgstr "نمایش تغییرات تنظیمات در حین اعمال پیکربندی"
msgid "Sidebar background"
msgstr "پس‌زمینه نوار کناری"
msgid "Sidebar width"
msgstr "عرض نوار کناری"
msgid "Slow"
msgstr "کند"
msgid "Small"
msgstr "کوچک"
msgid "Small (2px)"
msgstr "کوچک (2px)"
msgid "Software Update"
msgstr "به‌روزرسانی نرم‌افزار"
msgid "Source code"
msgstr "کد منبع"
msgid "Square (0px)"
msgstr "مربع (0px)"
msgid "Stable Channel"
msgstr "کانال پایدار"
msgid "Starting backend download..."
msgstr "شروع دانلود در بک‌اند..."
msgid "Starting update process..."
msgstr "شروع فرایند به‌روزرسانی..."
msgid "Submit"
msgstr "ارسال"
msgid "Switch theme mode"
msgstr "تغییر حالت پوسته"
msgid "Text direction"
msgstr "جهت متن"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"چیدمان منوی ذخیره شده نامعتبر است. از «بازیابی تنظیمات پیش‌فرض» استفاده کنید "
"یا قبل از ذخیره، ویرایشی انجام دهید."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"چیدمان منوی ذخیره شده نامعتبر است. تنظیمات پیش‌فرض را بازیابی کنید یا قبل از "
"ذخیره، چیدمان را ویرایش کنید."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"پوسته در حال نصب روی روتر شما است. گزارش‌ها در پایین نمایش داده می‌شوند. پس "
"از راه‌اندازی مجدد RPCD، با بارگذاری مجدد رابط وب تغییرات اعمال می‌شوند."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "بسته پوسته آماده است. آیا مطمئن هستید که می‌خواهید نصب را ادامه دهید؟"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"این توکن به هیچ مجوز یا محدوده دسترسی اضافه‌ای نیاز ندارد (دسترسی عمومی "
"فقط‌خواندنی کافی است)."
msgid "Theme settings"
msgstr "تنظیمات پوسته"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"پوسته با موفقیت به‌روزرسانی شد! سرویس RPC در حال بارگذاری مجدد است، لطفاً 5 "
"ثانیه دیگر صفحه را تازه‌سازی کنید."
msgid "Theme transition speed"
msgstr "سرعت گذار پوسته"
msgid "Toggle fullscreen"
msgstr "تغییر وضعیت تمام صفحه"
msgid "Triggering installation on router..."
msgstr "در حال آغاز نصب روی روتر..."
msgid "Update channel"
msgstr "کانال به‌روزرسانی"
msgid "Update failed"
msgstr "به‌روزرسانی ناموفق بود"
msgid "Upgrade Successful!"
msgstr "ارتقا با موفقیت انجام شد!"
msgid "Use Fluent custom select dropdowns"
msgstr "استفاده از فهرست‌های کشویی سفارشی Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"در صورت پشتیبانی، از View Transition API مرورگر برای انیمیشن ناوبری بین "
"صفحات LuCI استفاده کنید."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"از ترجیح سیستم/مرورگر استفاده کنید یا همیشه پوسته Fluent را با یک پالت ثابت "
"روشن یا تیره نمایش دهید."
msgid "Username is required."
msgstr "نام کاربری الزامی است."
msgid "valid HEX color value"
msgstr "مقدار معتبر رنگ HEX"
msgid "Warnings"
msgstr "هشدارها"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"اگر فعال باشد، انیمیشن‌های Fluent از ترجیح کاهش حرکت مرورگر یا سیستم‌عامل "
"پیروی می‌کنند."
msgid "Width of the main navigation sidebar in pixels."
msgstr "عرض نوار کناری اصلی ناوبری بر حسب پیکسل."
msgid "Word wrap"
msgstr "پیچش متن"
msgid "You can create a new token at"
msgstr "می‌توانید یک توکن جدید در اینجا ایجاد کنید:"
msgid "Your theme is up to date!"
msgstr "پوسته شما به‌روز است!"
+781
View File
@@ -0,0 +1,781 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d menus de second niveau"
msgid "A new version is available!"
msgstr "Une nouvelle version est disponible !"
msgid "About"
msgstr "À propos"
msgid "Above bar, end"
msgstr "Fin de la barre, en haut"
msgid "Above bar, start"
msgstr "Début de la barre, en haut"
msgid "Accent color"
msgstr "Couleur d'accentuation"
msgid "Add primary menu"
msgstr "Ajouter un menu principal"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Ajustez la mise en page, la typographie, les animations, les ombres et "
"injectez des variables CSS personnalisées ou des règles lorsque les "
"contrôles intégrés ne suffisent pas."
msgid "Advanced"
msgstr "Avancé"
msgid "Advanced MAC Selector"
msgstr "Sélectionneur MAC avancé"
msgid "and %d more..."
msgstr "et %d autres..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Animez le soulignement actif lors du passage entre les onglets natifs de "
"LuCI et les menus d'onglets thématiques."
msgid "Animation"
msgstr "Animation"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Limite de requêtes API dépassée. Veuillez entrer un jeton GitHub pour "
"continuer. Ce jeton est utilisé uniquement pour les requêtes du frontend et "
"ne sera pas enregistré sur le serveur du routeur."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"S'applique aux boutons, champs de saisie, menus déroulants et autres "
"éléments de formulaire standard dans le thème."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Êtes-vous sûr de vouloir supprimer %d éléments de menu ou règles "
"invalides/non installés ?"
msgid "Author"
msgstr "Auteur"
msgid "Auto-scroll"
msgstr "Défilement automatique"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Automatique (uniquement pour les langues arabes/persanes)"
msgid "Backdrop blur radius"
msgstr "Rayon du flou d'arrière-plan"
msgid "Backend (GHProxy Acceleration)"
msgstr "Serveur (Accélération GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Backend (GitHub officiel)"
msgid "Base font size"
msgstr "Taille de police de base"
msgid "Below bar, end"
msgstr "Fin de la barre, en bas"
msgid "Below bar, start"
msgstr "Début de la barre, en bas"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Rayon du flou en pixels derrière la carte de connexion en mode sombre. "
"Utilisez 0 pour désactiver le flou."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Rayon du flou en pixels derrière la carte de connexion en mode clair. "
"Utilisez 0 pour désactiver le flou."
msgid "Cancel"
msgstr "Annuler"
msgid "Card background"
msgstr "Arrière-plan de la carte"
msgid "Card shadow"
msgstr "Ombre de la carte"
msgid "Check for updates"
msgstr "Vérifier les mises à jour"
msgid "Checking for updates..."
msgstr "Recherche des mises à jour..."
msgid "Choose color"
msgstr "Choisir une couleur"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Sélectionner la direction du texte pour les pages d'authentification et de "
"connexion. Le mode automatique résout les codes de langue arabe et persan "
"(ar, ar_*, ar-*, fa, fa_*, fa-*) en RTL et revient à LTR pour les langues "
"manquantes ou non reconnues."
msgid "Clean up"
msgstr "Nettoyer"
msgid "Clean up invalid items"
msgstr "Supprimer les éléments invalides"
msgid "Clean up invalid items (%d)"
msgstr "Supprimer les éléments invalides (%d)"
msgid "Close"
msgstr "Fermer"
msgid "Color mode"
msgstr "Mode de couleur"
msgid "Colors"
msgstr "Couleurs"
msgid "Comfortable (42px)"
msgstr "Confortable (42px)"
msgid "Compact (32px)"
msgstr "Compact (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Configurez le mode de couleur, les couleurs d'accentuation, la taille de "
"l'interface, le comportement des animations, l'apparence de la page de "
"connexion et les surcharges CSS avancées pour luci-theme-fluent."
msgid "Confirm"
msgstr "Confirmer"
msgid "Confirm Installation"
msgstr "Confirmer l'installation"
msgid "Continue"
msgstr "Continuer"
msgid "Control height"
msgstr "Hauteur des commandes"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Contrôle la graisse de police utilisée par les étiquettes de navigation "
"principales et les éléments textuels du thème associés."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Contrôle les tokens Fluent communs pour le rayon des coins utilisés par les "
"cartes, les boutons, les champs de saisie et autres éléments d'interface "
"utilisateur."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Contrôle la durée des transitions Fluent partagées utilisées par les menus, "
"les en-têtes et autres animations du thème."
msgid "Copied"
msgstr "Copié"
msgid "Copy log"
msgstr "Copier le journal"
msgid "Corner radius"
msgstr "Rayon des coins"
msgid "Current / Pending MAC Address"
msgstr "Adresse MAC actuelle / En attente"
msgid "Custom CSS"
msgstr "CSS personnalisé"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Personnalisez l'arrière-plan de la page de connexion, l'opacité des cartes "
"et le rayon de flou pour les modes clair et sombre."
msgid "Dark mode"
msgstr "Mode sombre"
msgid "Delete primary menu"
msgstr "Supprimer le menu principal"
msgid "Disabled"
msgstr "Désactivé"
msgid "Disconnects"
msgstr "Déconnexions"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Afficher l'indicateur de chargement thématique en haut pendant le chargement "
"des pages et les transitions."
msgid "Download and Install"
msgstr "Télécharger et installer"
msgid "Download log"
msgstr "Télécharger le journal"
msgid "Downloaded"
msgstr "Téléchargement terminé"
msgid "Downloading on router"
msgstr "Téléchargement sur le routeur"
msgid "Drag to move second-level menu"
msgstr "Faire glisser pour déplacer un menu de second niveau"
msgid "Drag to reorder primary menu"
msgstr "Faire glisser pour réorganiser les menus principaux"
msgid "Drop second-level menus here"
msgstr "Déposer les menus de second niveau ici"
msgid "Edit"
msgstr "Modifier"
msgid "Enable page transition animation"
msgstr "Activer l'animation de transition de page"
msgid "Enable tab underline animation"
msgstr "Activer l'animation du soulignement des onglets"
msgid "Errors"
msgstr "Erreurs"
msgid "Expecting: %s"
msgstr "Attendu : %s"
msgid "Extra large (12px)"
msgstr "Très grand (12px)"
msgid "Failed to check for updates"
msgstr "Échec de la vérification des mises à jour"
msgid "Failed to fetch current theme version."
msgstr "Impossible de récupérer la version actuelle du thème."
msgid "Fast"
msgstr "Rapide"
msgid "Finished"
msgstr "Terminé"
msgid "Fix primary menu title errors before saving."
msgstr "Corriger les erreurs dans le titre du menu principal avant d'enregistrer."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Thème Fluent Design 2 pour LuCI"
msgid "Fluent Theme"
msgstr "Thème Fluent"
msgid "Fluent theme settings"
msgstr "Paramètres du thème Fluent"
msgid "Follow system"
msgstr "Suivre le système"
msgid "Force dark mode"
msgstr "Forcer le mode sombre"
msgid "Force light mode"
msgstr "Forcer le mode clair"
msgid "Force LTR"
msgstr "Forcer l'orientation gauche à droite (LTR)"
msgid "Force RTL"
msgstr "Forcer l'orientation droite à gauche (RTL)"
msgid "General"
msgstr "Général"
msgid "GitHub Token Required"
msgstr "Un jeton GitHub est requis"
msgid "Header height"
msgstr "Hauteur de l'en-tête"
msgid "Height of the top header bar in pixels."
msgstr "Hauteur de la barre d'en-tête supérieure en pixels."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Couleur HEX utilisée comme couleur d'accentuation principale Fluent lorsque "
"l'interface est affichée en mode sombre."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Couleur HEX utilisée comme couleur d'accentuation principale Fluent lorsque "
"l'interface est affichée en mode clair."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Couleur HEX utilisée pour les éléments conteneur/carte en mode sombre."
msgid "HEX color used for container/card elements in light mode."
msgstr "Couleur HEX utilisée pour les éléments conteneur/carte en mode clair."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Couleur HEX utilisée pour les étiquettes des barres de progression lorsque "
"l'interface est affichée en mode sombre."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Couleur HEX utilisée pour les étiquettes des barres de progression lorsque "
"l'interface est affichée en mode clair."
msgid "HEX color used for the main page background in dark mode."
msgstr "Couleur HEX utilisée pour le fond de la page principale en mode sombre."
msgid "HEX color used for the main page background in light mode."
msgstr "Couleur HEX utilisée pour le fond de la page principale en mode clair."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "Couleur HEX utilisée pour la barre latérale de navigation en mode sombre."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "Couleur HEX utilisée pour la barre latérale de navigation en mode clair."
msgid "Installation cancelled by user."
msgstr "Installation annulée par l'utilisateur."
msgid "Installed version"
msgstr "Version installée"
msgid "Installing package"
msgstr "Installation du paquet"
msgid "Keep action bar visible while scrolling"
msgstr "Garder la barre d'actions visible pendant le défilement"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Afficher les boutons Enregistrer, Appliquer et Réinitialiser en bas de "
"l'écran pendant le défilement."
msgid "Large"
msgstr "Grand"
msgid "Large (8px)"
msgstr "Grand (8px)"
msgid "Light mode"
msgstr "Mode clair"
msgid "Line %d"
msgstr "Ligne %d"
msgid "Lines"
msgstr "Lignes"
msgid "Login"
msgstr "Connexion"
msgid "Login card opacity"
msgstr "Opacité de la carte de connexion"
msgid "Login page"
msgstr "Page de connexion"
msgid "Medium"
msgstr "Moyen"
msgid "Medium (4px)"
msgstr "Moyen (4px)"
msgid "Menu"
msgstr "Menu"
msgid "Menu title cannot be empty."
msgstr "Le titre du menu ne peut pas être vide."
msgid "Navigation font weight"
msgstr "Poids de la police de navigation"
msgid "New primary menu"
msgstr "Nouveau menu principal"
msgid "New primary menu %d"
msgstr "Nouveau menu principal %d"
msgid "Next"
msgstr "Suivant"
msgid "Nightly build available (reinstallation check)."
msgstr "Build Nightly disponible (vérification de réinstallation)."
msgid "Nightly Channel (Prerelease)"
msgstr "Canal Nightly (pré-version)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"Aucun fichier du paquet correspondant à l'architecture de votre système n'a "
"été trouvé dans cette version."
msgid "None"
msgstr "Aucun"
msgid "Normal"
msgstr "Normal"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacité de la carte de connexion en mode sombre. 0 est totalement "
"transparent et 1 est totalement opaque."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacité de la carte de connexion en mode clair. 0 est totalement transparent "
"et 1 est totalement opaque."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"CSS brut optionnel injecté dans le modèle d'en-tête Fluent. Utilisez ceci "
"pour des remplacements supplémentaires de variables --fluent-* ou des "
"ajustements spécifiques à une page qui ne sont pas exposés en tant "
"qu'options dédiées."
msgid "Package format"
msgstr "Format du paquet"
msgid "Page background"
msgstr "Arrière-plan de la page"
msgid "Please enter your password."
msgstr "Veuillez entrer votre mot de passe."
msgid "Please enter your username."
msgstr "Veuillez entrer votre nom d'utilisateur."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Position des étiquettes de la barre de progression par rapport à la barre. "
"L'alignement du début/de la fin suit la direction du texte (LTR ou RTL)."
msgid "Preset Vendor / Generator"
msgstr "Fournisseur / Générateur par défaut"
msgid "Primary menu title"
msgstr "Titre du menu principal"
msgid "Primary menu titles cannot be empty."
msgstr "Les titres du menu principal ne peuvent pas être vides."
msgid "Primary menu titles must be unique."
msgstr "Les titres du menu principal doivent être uniques."
msgid "Progress bar text color"
msgstr "Couleur du texte de la barre de progression"
msgid "Progress bar text position"
msgstr "Position du texte de la barre de progression"
msgid "Random Local MAC"
msgstr "MAC local aléatoire"
msgid "Randomize MAC"
msgstr "Aléatoire de l'adresse MAC"
msgid "Reload Web Interface"
msgstr "Recharger l'interface web"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Remplacer les éléments de sélection natifs par le widget déroulant "
"personnalisé du thème."
msgid "Respect reduced-motion preference"
msgstr "Respecter la préférence de réduction des animations."
msgid "Restore %s to its original menu name"
msgstr "Restaurer le nom original de %s"
msgid "Restore %s to its original menu position"
msgstr "Restaurer la position originale de %s"
msgid "Restore defaults"
msgstr "Restaurer les paramètres par défaut"
msgid "Restore to original title"
msgstr "Restaurer le titre original"
msgid "Retrying with token..."
msgstr "Tentative avec le token..."
msgid "Rounded (6px)"
msgstr "Arrondi (6px)"
msgid "Save"
msgstr "Enregistrer"
msgid "Scroll to bottom"
msgstr "Aller à la fin"
msgid "Scroll to top"
msgstr "Retour en haut"
msgid "Search menu items"
msgstr "Rechercher dans les éléments du menu"
msgid "Search menu..."
msgstr "Rechercher dans le menu..."
msgid "Second-level menu title"
msgstr "Titre du sous-menu"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr ""
"Sélectionner la profondeur de l'ombre appliquée aux cartes et panneaux "
"thématiques."
msgid "Select vendor prefix..."
msgstr "Sélectionner le préfixe du fournisseur..."
msgid "Semibold"
msgstr "Semi-gras"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Définit la taille de base de la police de l'interface en pixels. La plupart "
"des textes du thème sont mis à l'échelle à partir de cette valeur via les "
"variables CSS Fluent. Plage recommandée : 12-18px."
msgid "Show %s in the menu"
msgstr "Afficher %s dans le menu"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Afficher les modifications UCI en attente dans le message d'état principal "
"jusqu'à la fin de l'application de la configuration."
msgid "Show top loading bar"
msgstr "Afficher la barre de chargement supérieure"
msgid "Show UCI changes while applying configuration"
msgstr "Afficher les modifications UCI pendant l'application de la configuration."
msgid "Sidebar background"
msgstr "Arrière-plan de la barre latérale"
msgid "Sidebar width"
msgstr "Largeur de la barre latérale"
msgid "Slow"
msgstr "Lent"
msgid "Small"
msgstr "Petit"
msgid "Small (2px)"
msgstr "Petit (2px)"
msgid "Software Update"
msgstr "Mise à jour du logiciel"
msgid "Source code"
msgstr "Code source"
msgid "Square (0px)"
msgstr "Carré (0px)"
msgid "Stable Channel"
msgstr "Canal stable"
msgid "Starting backend download..."
msgstr "Début du téléchargement de l'arrière-plan..."
msgid "Starting update process..."
msgstr "Début du processus de mise à jour..."
msgid "Submit"
msgstr "Envoyer"
msgid "Switch theme mode"
msgstr "Changer le mode du thème"
msgid "Text direction"
msgstr "Direction du texte"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"La configuration du menu enregistée est invalide. Choisissez \"Restaurer les "
"paramètres par défaut\" ou effectuez une modification avant d'enregistrer."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"La configuration du menu enregistée est invalide. Restaurez les paramètres "
"par défaut ou modifiez la configuration avant d'enregistrer."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Le thème est en cours d'installation sur votre routeur. Les journaux sont "
"affichés ci-dessous. Le rechargement de l'interface web appliquera les "
"modifications une fois que RPCD redémarrera."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr ""
"Le paquet du thème est prêt. Êtes-vous sûr de vouloir procéder à "
"l'installation ?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Ce jeton ne nécessite aucune autorisation/portée particulière (un accès "
"public en lecture seule est suffisant)."
msgid "Theme settings"
msgstr "Paramètres du thème"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Thème mis à jour avec succès ! Rechargement du service RPC, veuillez "
"actualiser la page dans 5 secondes."
msgid "Theme transition speed"
msgstr "Vitesse de transition du thème"
msgid "Toggle fullscreen"
msgstr "Basculer en plein écran"
msgid "Triggering installation on router..."
msgstr "Installation en cours sur le routeur..."
msgid "Update channel"
msgstr "Canal de mise à jour"
msgid "Update failed"
msgstr "Mise à jour échouée"
msgid "Upgrade Successful!"
msgstr "Mise à niveau réussie !"
msgid "Use Fluent custom select dropdowns"
msgstr "Utiliser les menus déroulants personnalisés Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Utiliser l'API View Transition du navigateur pour animer la navigation entre "
"les pages LuCI, si prise en charge."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Utiliser la préférence système/navigateur, ou afficher toujours le thème "
"Fluent avec une palette claire ou sombre fixe."
msgid "Username is required."
msgstr "Le nom d'utilisateur est requis."
msgid "valid HEX color value"
msgstr "valeur de couleur HEX valide"
msgid "Warnings"
msgstr "Avertissements"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Si activé, les animations Fluent respectent la préférence de réduction des "
"mouvements du navigateur ou du système d'exploitation."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Largeur de la barre latérale de navigation principale en pixels."
msgid "Word wrap"
msgstr "Retour à la ligne"
msgid "You can create a new token at"
msgstr "Vous pouvez créer un nouveau jeton sur :"
msgid "Your theme is up to date!"
msgstr "Votre thème est à jour !"
+790
View File
@@ -0,0 +1,790 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d sottomenu"
msgid "A new version is available!"
msgstr "È disponibile una nuova versione!"
msgid "About"
msgstr "Informazioni"
msgid "Above bar, end"
msgstr "Fine barra, estremità"
msgid "Above bar, start"
msgstr "Inizio barra"
msgid "Accent color"
msgstr "Colore accento"
msgid "Add primary menu"
msgstr "Aggiungi menu principale"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Regola il layout, la tipografia, i tempi di transizione, le ombre e aggiungi "
"variabili CSS personalizzate o regole quando i controlli integrati non sono "
"sufficienti."
msgid "Advanced"
msgstr "Avanzate"
msgid "Advanced MAC Selector"
msgstr "Selettore MAC avanzato"
msgid "and %d more..."
msgstr "e %d altri..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Anima la sottolineatura attiva quando si passa tra le schede native di LuCI "
"e i menu a schede tematici."
msgid "Animation"
msgstr "Animazione"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Limite di richieste API superato. Inserisci un token GitHub per continuare. "
"Questo token viene utilizzato solo per le richieste del frontend e non verrà "
"salvato sul backend del router."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Si applica a pulsanti, campi di input, menu a tendina e controlli modulo "
"simili in tutto il tema."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Sei sicuro di voler eliminare %d voci o regole del menu non valide/non "
"installate?"
msgid "Author"
msgstr "Autore"
msgid "Auto-scroll"
msgstr "Scorrimento automatico"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Automatico (solo per le impostazioni locali arabo/persiano)"
msgid "Backdrop blur radius"
msgstr "Raggio di sfocatura dello sfondo"
msgid "Backend (GHProxy Acceleration)"
msgstr "Backend (Accelerazione GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Backend (GitHub ufficiale)"
msgid "Base font size"
msgstr "Dimensione base del font"
msgid "Below bar, end"
msgstr "Fine barra"
msgid "Below bar, start"
msgstr "Inizio barra"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Raggio di sfocatura in pixel dietro la scheda di accesso in modalità scura. "
"Usare 0 per disabilitare la sfocatura."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Raggio di sfocatura in pixel dietro la scheda di accesso in modalità chiara. "
"Usare 0 per disabilitare la sfocatura."
msgid "Cancel"
msgstr "Annulla"
msgid "Card background"
msgstr "Sfondo della scheda"
msgid "Card shadow"
msgstr "Ombra della scheda"
msgid "Check for updates"
msgstr "Verifica aggiornamenti"
msgid "Checking for updates..."
msgstr "Controllo aggiornamenti..."
msgid "Choose color"
msgstr "Scegli colore"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Seleziona la direzione del testo per le pagine di autenticazione e accesso. "
"La modalità automatica risolve i codici lingua araba e persiana (ar, ar_*, "
"ar-*, fa, fa_*, fa-*) in RTL e ricade su LTR per lingue mancanti o non "
"riconosciute."
msgid "Clean up"
msgstr "Pulisci"
msgid "Clean up invalid items"
msgstr "Elimina elementi non validi"
msgid "Clean up invalid items (%d)"
msgstr "Elimina elementi non validi (%d)"
msgid "Close"
msgstr "Chiudi"
msgid "Color mode"
msgstr "Modalità colore"
msgid "Colors"
msgstr "Colori"
msgid "Comfortable (42px)"
msgstr "Comodo (42px)"
msgid "Compact (32px)"
msgstr "Compatto (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Configura la modalità colore, i colori di accento, le dimensioni del layout, "
"il comportamento delle animazioni, l'aspetto della pagina di accesso e le "
"personalizzazioni CSS avanzate per luci-theme-fluent."
msgid "Confirm"
msgstr "Conferma"
msgid "Confirm Installation"
msgstr "Conferma installazione"
msgid "Continue"
msgstr "Continua"
msgid "Control height"
msgstr "Altezza dei controlli"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Controlla lo spessore del carattere utilizzato per le etichette della "
"navigazione principale e i testi di accento del tema."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Controlla il raggio d'angolo Fluent condiviso, utilizzato da schede, "
"pulsanti, campi di input e altre superfici dell'interfaccia utente."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Controlla la temporizzazione delle transizioni Fluent condivisa, utilizzata "
"per i menu, le intestazioni e altre animazioni del tema."
msgid "Copied"
msgstr "Copiato"
msgid "Copy log"
msgstr "Copia registro"
msgid "Corner radius"
msgstr "Raggio d'angolo"
msgid "Current / Pending MAC Address"
msgstr "Indirizzo MAC corrente / in attesa"
msgid "Custom CSS"
msgstr "CSS personalizzato"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Personalizza lo sfondo della pagina di accesso, l'opacità delle schede e il "
"raggio di sfocatura per le modalità chiara e scura."
msgid "Dark mode"
msgstr "Modalità scura"
msgid "Delete primary menu"
msgstr "Elimina menu principale"
msgid "Disabled"
msgstr "Disabilitato"
msgid "Disconnects"
msgstr "Disconnessioni"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Mostra l'indicatore di caricamento a tema sul bordo superiore durante il "
"caricamento delle pagine e le transizioni."
msgid "Download and Install"
msgstr "Scarica e Installa"
msgid "Download log"
msgstr "Scarica registro"
msgid "Downloaded"
msgstr "Scaricato"
msgid "Downloading on router"
msgstr "Scaricamento in corso sul router"
msgid "Drag to move second-level menu"
msgstr "Trascina per spostare il sottomenu"
msgid "Drag to reorder primary menu"
msgstr "Trascina per riordinare i menu principali"
msgid "Drop second-level menus here"
msgstr "Rilascia i sottomenu qui"
msgid "Edit"
msgstr "Modifica"
msgid "Enable page transition animation"
msgstr "Abilita l'animazione di transizione della pagina"
msgid "Enable tab underline animation"
msgstr "Abilita l'animazione della sottolineatura delle schede"
msgid "Errors"
msgstr "Errori"
msgid "Expecting: %s"
msgstr "Atteso: %s"
msgid "Extra large (12px)"
msgstr "Molto grande (12px)"
msgid "Failed to check for updates"
msgstr "Impossibile verificare la presenza di aggiornamenti"
msgid "Failed to fetch current theme version."
msgstr "Impossibile recuperare la versione corrente del tema."
msgid "Fast"
msgstr "Veloce"
msgid "Finished"
msgstr "Completato"
msgid "Fix primary menu title errors before saving."
msgstr "Correggere gli errori nei titoli dei menu principali prima di salvare."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Tema Fluent Design 2 per LuCI"
msgid "Fluent Theme"
msgstr "Tema Fluent"
msgid "Fluent theme settings"
msgstr "Impostazioni del tema Fluent"
msgid "Follow system"
msgstr "Segui il sistema"
msgid "Force dark mode"
msgstr "Forza la modalità scura"
msgid "Force light mode"
msgstr "Forza la modalità chiara"
msgid "Force LTR"
msgstr "Forza l'orientamento da sinistra a destra (LTR)"
msgid "Force RTL"
msgstr "Forza l'orientamento da destra a sinistra (RTL)"
msgid "General"
msgstr "Generale"
msgid "GitHub Token Required"
msgstr "Richiede un token GitHub"
msgid "Header height"
msgstr "Altezza dell'intestazione"
msgid "Height of the top header bar in pixels."
msgstr "Altezza della barra di intestazione superiore in pixel."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Colore esadecimale utilizzato come colore accento principale di Fluent "
"quando l'interfaccia è visualizzata in modalità scura."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Colore esadecimale utilizzato come colore accento principale di Fluent "
"quando l'interfaccia è visualizzata in modalità chiara."
msgid "HEX color used for container/card elements in dark mode."
msgstr ""
"Colore esadecimale utilizzato per gli elementi contenitore/scheda in "
"modalità scura."
msgid "HEX color used for container/card elements in light mode."
msgstr ""
"Colore esadecimale utilizzato per gli elementi contenitore/scheda in "
"modalità chiara."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Colore esadecimale utilizzato per le etichette delle barre di avanzamento "
"quando l'interfaccia è visualizzata in modalità scura."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Colore esadecimale utilizzato per le etichette delle barre di avanzamento "
"quando l'interfaccia è visualizzata in modalità chiara."
msgid "HEX color used for the main page background in dark mode."
msgstr ""
"Colore esadecimale utilizzato per lo sfondo della pagina principale in "
"modalità scura."
msgid "HEX color used for the main page background in light mode."
msgstr ""
"Colore esadecimale utilizzato per lo sfondo della pagina principale in "
"modalità chiara."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr ""
"Colore esadecimale utilizzato per la barra laterale di navigazione in "
"modalità scura."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr ""
"Colore esadecimale utilizzato per la barra laterale di navigazione in "
"modalità chiara."
msgid "Installation cancelled by user."
msgstr "Installazione annullata dall'utente."
msgid "Installed version"
msgstr "Versione installata"
msgid "Installing package"
msgstr "Installazione del pacchetto"
msgid "Keep action bar visible while scrolling"
msgstr "Mantieni la barra degli strumenti visibile durante lo scorrimento."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Mantieni i pulsanti Salva, Applica e Ripristina fissi in basso durante lo "
"scorrimento."
msgid "Large"
msgstr "Grande"
msgid "Large (8px)"
msgstr "Grande (8px)"
msgid "Light mode"
msgstr "Modalità chiara"
msgid "Line %d"
msgstr "Riga %d"
msgid "Lines"
msgstr "Righe"
msgid "Login"
msgstr "Accesso"
msgid "Login card opacity"
msgstr "Opacità della scheda di accesso"
msgid "Login page"
msgstr "Pagina di accesso"
msgid "Medium"
msgstr "Media"
msgid "Medium (4px)"
msgstr "Media (4px)"
msgid "Menu"
msgstr "Menu"
msgid "Menu title cannot be empty."
msgstr "Il titolo del menu non può essere vuoto."
msgid "Navigation font weight"
msgstr "Peso del carattere della navigazione"
msgid "New primary menu"
msgstr "Nuovo menu principale"
msgid "New primary menu %d"
msgstr "Nuovo menu principale %d"
msgid "Next"
msgstr "Avanti"
msgid "Nightly build available (reinstallation check)."
msgstr "Build Nightly disponibile (controllo reinstallazione)."
msgid "Nightly Channel (Prerelease)"
msgstr "Canale Nightly (Anteprima)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "Nessun pacchetto disponibile per la tua architettura in questa versione."
msgid "None"
msgstr "Nessuno"
msgid "Normal"
msgstr "Normale"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacità della scheda di accesso in modalità scura. 0 è completamente "
"trasparente e 1 è completamente opaco."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Opacità della scheda di accesso in modalità chiara. 0 è completamente "
"trasparente e 1 è completamente opaco."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"CSS grezzo facoltativo iniettato nel template dell'header Fluent. Usare per "
"sovrascrivere variabili --fluent-* aggiuntive o modifiche specifiche della "
"pagina che non sono esposte come opzioni dedicate."
msgid "Package format"
msgstr "Formato pacchetto"
msgid "Page background"
msgstr "Sfondo pagina"
msgid "Please enter your password."
msgstr "Inserisci la tua password."
msgid "Please enter your username."
msgstr "Inserisci il tuo nome utente."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Posizione delle etichette della barra di avanzamento rispetto alla barra. "
"L'allineamento inizio/fine segue la direzione del testo (da sinistra a "
"destra o da destra a sinistra)."
msgid "Preset Vendor / Generator"
msgstr "Produttore / Generatore predefinito"
msgid "Primary menu title"
msgstr "Titolo del menu principale"
msgid "Primary menu titles cannot be empty."
msgstr "I titoli del menu principale non possono essere vuoti."
msgid "Primary menu titles must be unique."
msgstr "I titoli del menu principale devono essere univoci."
msgid "Progress bar text color"
msgstr "Colore del testo della barra di avanzamento"
msgid "Progress bar text position"
msgstr "Posizione del testo nella barra di avanzamento"
msgid "Random Local MAC"
msgstr "MAC locale casuale"
msgid "Randomize MAC"
msgstr "Randomizza MAC"
msgid "Reload Web Interface"
msgstr "Ricarica interfaccia web"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Sostituisci gli elementi select nativi con il widget dropdown personalizzato "
"del tema."
msgid "Respect reduced-motion preference"
msgstr "Rispetta la preferenza per ridotta animazione."
msgid "Restore %s to its original menu name"
msgstr "Ripristina %s al nome del menu originale"
msgid "Restore %s to its original menu position"
msgstr "Ripristina %s alla posizione originale nel menu"
msgid "Restore defaults"
msgstr "Ripristina le impostazioni predefinite"
msgid "Restore to original title"
msgstr "Ripristina il titolo originale"
msgid "Retrying with token..."
msgstr "Riprovo con token..."
msgid "Rounded (6px)"
msgstr "Arrotondato (6px)"
msgid "Save"
msgstr "Salva"
msgid "Scroll to bottom"
msgstr "Scorri in fondo"
msgid "Scroll to top"
msgstr "Torna in alto"
msgid "Search menu items"
msgstr "Cerca elementi del menu"
msgid "Search menu..."
msgstr "Cerca nel menu..."
msgid "Second-level menu title"
msgstr "Titolo del sottomenu"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr ""
"Seleziona la profondità dell'ombra applicata alle schede e ai pannelli "
"tematici."
msgid "Select vendor prefix..."
msgstr "Seleziona il prefisso del fornitore..."
msgid "Semibold"
msgstr "Semi-grassetto"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Imposta la dimensione base del font dell'interfaccia in pixel. La maggior "
"parte del testo del tema scala da questo valore tramite le variabili CSS di "
"Fluent. Intervallo consigliato: 12-18px."
msgid "Show %s in the menu"
msgstr "Mostra %s nel menu"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Mostra le modifiche UCI in sospeso nel messaggio di stato superiore finché "
"l'applicazione della configurazione non è completata."
msgid "Show top loading bar"
msgstr "Mostra la barra di caricamento superiore"
msgid "Show UCI changes while applying configuration"
msgstr "Mostra le modifiche UCI durante l'applicazione della configurazione."
msgid "Sidebar background"
msgstr "Sfondo della barra laterale"
msgid "Sidebar width"
msgstr "Larghezza della barra laterale"
msgid "Slow"
msgstr "Lento"
msgid "Small"
msgstr "Piccolo"
msgid "Small (2px)"
msgstr "Piccolo (2px)"
msgid "Software Update"
msgstr "Aggiornamento software"
msgid "Source code"
msgstr "Codice sorgente"
msgid "Square (0px)"
msgstr "Quadrato (0px)"
msgid "Stable Channel"
msgstr "Canale stabile"
msgid "Starting backend download..."
msgstr "Avvio del download dal server..."
msgid "Starting update process..."
msgstr "Avvio del processo di aggiornamento..."
msgid "Submit"
msgstr "Invia"
msgid "Switch theme mode"
msgstr "Cambia modalità tema"
msgid "Text direction"
msgstr "Direzione testo"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"La disposizione del menu salvata non è valida. Scegli \"Ripristina le "
"impostazioni predefinite\" o modifica prima di salvare."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"La disposizione del menu salvata non è valida. Ripristina le impostazioni "
"predefinite o modifica la disposizione prima di salvare."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Il tema è in fase di installazione sul router. I log sono visualizzati qui "
"sotto. Il caricamento della web interface applicherà le modifiche una volta "
"riavviato RPCD."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr ""
"Il pacchetto del tema è pronto. Sei sicuro di voler procedere con "
"l'installazione?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Il token NON richiede alcuna autorizzazione/ambito (l'accesso pubblico in "
"sola lettura è sufficiente)."
msgid "Theme settings"
msgstr "Impostazioni del tema"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Tema aggiornato con successo! Ricaricamento del servizio RPC, si prega di "
"aggiornare la pagina tra 5 secondi."
msgid "Theme transition speed"
msgstr "Velocità di transizione del tema"
msgid "Toggle fullscreen"
msgstr "Attiva/disattiva schermo intero"
msgid "Triggering installation on router..."
msgstr "Avvio dell'installazione sul router..."
msgid "Update channel"
msgstr "Canale di aggiornamento"
msgid "Update failed"
msgstr "Aggiornamento fallito"
msgid "Upgrade Successful!"
msgstr "Aggiornamento completato!"
msgid "Use Fluent custom select dropdowns"
msgstr "Utilizza i menu a tendina personalizzati di Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Utilizza la View Transition API del browser per animare la navigazione tra "
"le pagine di LuCI, quando supportata."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Utilizza le preferenze del sistema/browser, oppure visualizza sempre il tema "
"Fluent con una palette fissa (chiara o scura)."
msgid "Username is required."
msgstr "È necessario specificare un nome utente."
msgid "valid HEX color value"
msgstr "valore esadecimale di colore valido"
msgid "Warnings"
msgstr "Avvisi"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Se abilitato, le animazioni di Fluent seguono le preferenze del browser o "
"del sistema operativo relative alla riduzione dei movimenti."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Larghezza della barra laterale principale di navigazione in pixel."
msgid "Word wrap"
msgstr "Ritorno a capo"
msgid "You can create a new token at"
msgstr "È possibile creare un nuovo token su:"
msgid "Your theme is up to date!"
msgstr "Il tuo tema è aggiornato."
+707
View File
@@ -0,0 +1,707 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d 個のセカンドレベルメニュー"
msgid "A new version is available!"
msgstr "新しいバージョンが利用可能です!"
msgid "About"
msgstr "情報"
msgid "Above bar, end"
msgstr "バーの上、終了"
msgid "Above bar, start"
msgstr "バーの上、開始"
msgid "Accent color"
msgstr "アクセントカラー"
msgid "Add primary menu"
msgstr "プライマリメニューを追加"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr "レイアウト、タイポグラフィ、トランジションのタイミング、影を調整し、組み込みコントロールが不十分な場合に、カスタムCSS変数やルールを挿入できます。"
msgid "Advanced"
msgstr "詳細設定"
msgid "Advanced MAC Selector"
msgstr "高度なMACアドレス選択"
msgid "and %d more..."
msgstr "および%d個以上..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr "LuCIの標準タブとテーマ付きタブメニュー間を切り替える際に、アクティブなアンダーラインのアニメーションを表示します。"
msgid "Animation"
msgstr "アニメーション"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"APIレート制限を超えました。続行するには、GitHubトークンを入力してください。このトークンはフロントエンドのリクエストのみに使用され、ルーターのバ"
"ックエンドには保存されません。"
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr "テーマ全体で、標準ボタン、入力フィールド、選択肢などのフォームコントロールに適用されます。"
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr "%d個の無効または未インストールのメニュー項目やルールを削除しますか?"
msgid "Author"
msgstr "作者"
msgid "Auto-scroll"
msgstr "自動スクロール"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "自動 (アラビア語/ペルシャ語ロケールのみ)"
msgid "Backdrop blur radius"
msgstr "背景のぼかし半径"
msgid "Backend (GHProxy Acceleration)"
msgstr "バックエンド (GHProxyによる高速化)"
msgid "Backend (Official GitHub)"
msgstr "バックエンド (公式GitHub)"
msgid "Base font size"
msgstr "ベースフォントサイズ"
msgid "Below bar, end"
msgstr "バーの下、終了"
msgid "Below bar, start"
msgstr "バーの下、開始"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr "ダークモード時のログインカード背面のぼかし半径(ピクセル)。ぼかしを無効にするには0を使用してください。"
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr "ライトモード時のログインカード背面のぼかし半径(ピクセル)。ぼかしを無効にするには0を使用してください。"
msgid "Cancel"
msgstr "キャンセル"
msgid "Card background"
msgstr "カード背景色"
msgid "Card shadow"
msgstr "カードの影"
msgid "Check for updates"
msgstr "アップデートを確認"
msgid "Checking for updates..."
msgstr "アップデートをチェック中..."
msgid "Choose color"
msgstr "色を選択"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"認証ページとログインページのドキュメント方向を選択します。自動モードでは、アラビア語およびペルシャ語のロケールコード (ar, ar_*, ar-*, "
"fa, fa_*, fa-*) が RTL に解決され、不明または認識されないロケールの場合は LTR にフォールバックされます。"
msgid "Clean up"
msgstr "クリーンアップ"
msgid "Clean up invalid items"
msgstr "無効な項目を削除"
msgid "Clean up invalid items (%d)"
msgstr "無効な項目を削除 (%d)"
msgid "Close"
msgstr "閉じる"
msgid "Color mode"
msgstr "カラーモード"
msgid "Colors"
msgstr "色"
msgid "Comfortable (42px)"
msgstr "快適 (42px)"
msgid "Compact (32px)"
msgstr "コンパクト (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"カラーモード、アクセントカラー、レイアウトサイズ、アニメーション設定、ログインページの外観、および luci-theme-fluent の高度な CSS "
"上書きを設定します。"
msgid "Confirm"
msgstr "確認"
msgid "Confirm Installation"
msgstr "インストールを確認"
msgid "Continue"
msgstr "続行"
msgid "Control height"
msgstr "コントロールの高さ"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr "メインナビゲーションラベルおよび関連するテーマテキストの装飾に使用されるフォントウェイトを制御します。"
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr "カード、ボタン、入力フィールド、および関連する UI 要素で使用される共通 Fluent コーナー半径値を制御します。"
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr "メニュー、ヘッダー、その他のテーマアニメーションで使用される共通 Fluent トランジションタイミングを制御します。"
msgid "Copied"
msgstr "コピー済み"
msgid "Copy log"
msgstr "ログをコピー"
msgid "Corner radius"
msgstr "コーナー半径"
msgid "Current / Pending MAC Address"
msgstr "現在の / 待機中の MAC アドレス"
msgid "Custom CSS"
msgstr "カスタム CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr "ライトモードとダークモードのログインページ背景、カードの不透明度、およびぼかし半径をカスタマイズします。"
msgid "Dark mode"
msgstr "ダークモード"
msgid "Delete primary menu"
msgstr "プライマリメニューを削除"
msgid "Disabled"
msgstr "無効"
msgid "Disconnects"
msgstr "切断回数"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr "ページ読み込みおよび遷移中に、テーマ適用されたローディングインジケータを画面上部に表示します。"
msgid "Download and Install"
msgstr "ダウンロードとインストール"
msgid "Download log"
msgstr "ログのダウンロード"
msgid "Downloaded"
msgstr "ダウンロード完了"
msgid "Downloading on router"
msgstr "ルーターでのダウンロード中"
msgid "Drag to move second-level menu"
msgstr "セカンドレベルメニューをドラッグして移動"
msgid "Drag to reorder primary menu"
msgstr "プライマリメニューの順序を入れ替えるためにドラッグ"
msgid "Drop second-level menus here"
msgstr "ここにセカンドレベルメニューをドロップ"
msgid "Edit"
msgstr "編集"
msgid "Enable page transition animation"
msgstr "ページ遷移アニメーションを有効にする"
msgid "Enable tab underline animation"
msgstr "タブのアンダーラインアニメーションを有効にする"
msgid "Errors"
msgstr "エラー"
msgid "Expecting: %s"
msgstr "期待値: %s"
msgid "Extra large (12px)"
msgstr "非常に大きい (12px)"
msgid "Failed to check for updates"
msgstr "アップデートの確認に失敗しました"
msgid "Failed to fetch current theme version."
msgstr "現在のテーマバージョンの取得に失敗しました。"
msgid "Fast"
msgstr "高速"
msgid "Finished"
msgstr "完了"
msgid "Fix primary menu title errors before saving."
msgstr "保存する前に、プライマリメニューのタイトルエラーを修正してください。"
msgid "Fluent Design 2 theme for LuCI"
msgstr "LuCI用のFluent Design 2テーマ"
msgid "Fluent Theme"
msgstr "Fluentテーマ"
msgid "Fluent theme settings"
msgstr "Fluentテーマの設定"
msgid "Follow system"
msgstr "システムに合わせる"
msgid "Force dark mode"
msgstr "ダークモードを強制"
msgid "Force light mode"
msgstr "ライトモードを強制"
msgid "Force LTR"
msgstr "左から右 (LTR) を強制"
msgid "Force RTL"
msgstr "右から左 (RTL) を強制"
msgid "General"
msgstr "基本設定"
msgid "GitHub Token Required"
msgstr "GitHub トークンが必要です"
msgid "Header height"
msgstr "ヘッダーの高さ"
msgid "Height of the top header bar in pixels."
msgstr "上部のヘッダーバーの高さをピクセル単位で指定します。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr "インターフェースがダークモードで表示される際の、主要な Fluent アクセントカラー (HEX 形式)。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr "インターフェースがライトモードで表示される際の、主要な Fluent アクセントカラー (HEX 形式)。"
msgid "HEX color used for container/card elements in dark mode."
msgstr "ダークモードでコンテナ/カード要素に使用する HEX カラー。"
msgid "HEX color used for container/card elements in light mode."
msgstr "ライトモードでコンテナ/カード要素に使用する HEX カラー。"
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "ダークモードでインターフェースが表示される際の、プログレスバーのラベルに使用する HEX カラー。"
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr "ライトモードでインターフェースが表示される際の、プログレスバーのラベルに使用する HEX カラー。"
msgid "HEX color used for the main page background in dark mode."
msgstr "ダークモードでメインページの背景に使用する HEX カラー。"
msgid "HEX color used for the main page background in light mode."
msgstr "ライトモードでメインページの背景に使用する HEX カラー。"
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "ダークモード時のナビゲーションサイドバーで使用するHEXカラー。"
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "ライトモード時のナビゲーションサイドバーで使用するHEXカラー。"
msgid "Installation cancelled by user."
msgstr "ユーザーによるインストールの中止。"
msgid "Installed version"
msgstr "インストール済みバージョン"
msgid "Installing package"
msgstr "パッケージのインストール中"
msgid "Keep action bar visible while scrolling"
msgstr "スクロール中にアクションバーを表示する"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr "保存、適用、およびリセットのアクションを、スクロール中に画面下部に固定表示します。"
msgid "Large"
msgstr "大"
msgid "Large (8px)"
msgstr "大 (8px)"
msgid "Light mode"
msgstr "ライトモード"
msgid "Line %d"
msgstr "%d 行目"
msgid "Lines"
msgstr "行数"
msgid "Login"
msgstr "ログイン"
msgid "Login card opacity"
msgstr "ログインカードの不透明度"
msgid "Login page"
msgstr "ログインページ"
msgid "Medium"
msgstr "中"
msgid "Medium (4px)"
msgstr "中 (4px)"
msgid "Menu"
msgstr "メニュー"
msgid "Menu title cannot be empty."
msgstr "メニューのタイトルは空にできません。"
msgid "Navigation font weight"
msgstr "ナビゲーションフォントの太さ"
msgid "New primary menu"
msgstr "新しいプライマリメニュー"
msgid "New primary menu %d"
msgstr "新しいプライマリメニュー %d"
msgid "Next"
msgstr "次へ"
msgid "Nightly build available (reinstallation check)."
msgstr "Nightly ビルドが利用可能です (再インストール確認)。"
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly チャンネル (プレリリース)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "このリリースで、お客様のシステムアーキテクチャに一致するパッケージが見つかりませんでした。"
msgid "None"
msgstr "なし"
msgid "Normal"
msgstr "通常"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "ダークモード時のログインカードの不透明度。0は完全に透明、1は完全に不透明です。"
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "ライトモード時のログインカードの不透明度。0は完全に透明、1は完全に不透明です。"
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Fluentヘッダーテンプレートに挿入されるオプションの生のCSS。追加の--fluent-*変数のオーバーライドや、専用のオプションとして公開されてい"
"ないページ固有の調整に使用します。"
msgid "Package format"
msgstr "パッケージ形式"
msgid "Page background"
msgstr "ページの背景"
msgid "Please enter your password."
msgstr "パスワードを入力してください。"
msgid "Please enter your username."
msgstr "ユーザー名を入力してください。"
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr "プログレスバーのラベルの位置は、バーに対して相対的に設定されます。開始/終了位置は、テキスト方向(LTRまたはRTL)に従います。"
msgid "Preset Vendor / Generator"
msgstr "プリセットのベンダー/ジェネレーター"
msgid "Primary menu title"
msgstr "メインメニューのタイトル"
msgid "Primary menu titles cannot be empty."
msgstr "メインメニューのタイトルは空にできません。"
msgid "Primary menu titles must be unique."
msgstr "メインメニューのタイトルは一意である必要があります。"
msgid "Progress bar text color"
msgstr "プログレスバーのテキストの色"
msgid "Progress bar text position"
msgstr "プログレスバーのテキスト位置"
msgid "Random Local MAC"
msgstr "ランダムなローカルMACアドレス"
msgid "Randomize MAC"
msgstr "MACアドレスをランダム化"
msgid "Reload Web Interface"
msgstr "Webインターフェースを再読み込み"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "ネイティブの選択要素を、テーマ独自のドロップダウンウィジェットに置き換えます。"
msgid "Respect reduced-motion preference"
msgstr "アニメーションの抑制設定を尊重します"
msgid "Restore %s to its original menu name"
msgstr "%s を元のメニュー名に戻す"
msgid "Restore %s to its original menu position"
msgstr "%s を元の位置に戻す"
msgid "Restore defaults"
msgstr "デフォルトを復元"
msgid "Restore to original title"
msgstr "元のタイトルに戻す"
msgid "Retrying with token..."
msgstr "トークンを使って再試行中..."
msgid "Rounded (6px)"
msgstr "角丸 (6px)"
msgid "Save"
msgstr "保存"
msgid "Scroll to bottom"
msgstr "下部にスクロール"
msgid "Scroll to top"
msgstr "上部へスクロール"
msgid "Search menu items"
msgstr "メニュー項目を検索"
msgid "Search menu..."
msgstr "メニューを検索..."
msgid "Second-level menu title"
msgstr "セカンドレベルメニューのタイトル"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "テーマ適用カードやパネルに適用する影の深さを選択します。"
msgid "Select vendor prefix..."
msgstr "ベンダープレフィックスを選択..."
msgid "Semibold"
msgstr "セミボールド"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"ベースとなるインターフェースのフォントサイズをピクセル単位で設定します。ほとんどのテーマテキストは、Fluent "
"CSS変数を通じてこの値からスケールされます。推奨範囲: 12-18px。"
msgid "Show %s in the menu"
msgstr "%s をメニューに表示"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr "設定適用が完了するまで、未適用のUCI変更をトップの適用状況メッセージに表示します。"
msgid "Show top loading bar"
msgstr "上部のローディングバーを表示"
msgid "Show UCI changes while applying configuration"
msgstr "設定適用中のUCI変更を表示します。"
msgid "Sidebar background"
msgstr "サイドバーの背景"
msgid "Sidebar width"
msgstr "サイドバーの幅"
msgid "Slow"
msgstr "遅い"
msgid "Small"
msgstr "小さい"
msgid "Small (2px)"
msgstr "小さく (2px)"
msgid "Software Update"
msgstr "ソフトウェア更新"
msgid "Source code"
msgstr "ソースコード"
msgid "Square (0px)"
msgstr "正方形 (0px)"
msgid "Stable Channel"
msgstr "安定版チャンネル"
msgid "Starting backend download..."
msgstr "バックエンドのダウンロードを開始します..."
msgid "Starting update process..."
msgstr "更新プロセスを開始します..."
msgid "Submit"
msgstr "送信"
msgid "Switch theme mode"
msgstr "テーマモードを切り替える"
msgid "Text direction"
msgstr "テキスト方向"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr "保存されたメニューレイアウトが無効です。「デフォルトを復元」を選択するか、保存する前に編集してください。"
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr "保存されたメニューレイアウトが無効です。デフォルトを復元するか、保存する前にレイアウトを編集してください。"
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr "テーマがルーターにインストールされています。ログは下記に表示されます。Webインターフェースを再読み込みすると、RPCDの再起動後に変更が適用されます。"
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "テーマパッケージの準備が完了しました。インストールを実行しますか?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr "このトークンには、権限/スコープは必要ありません (読み取り専用の公開アクセスで十分です)。"
msgid "Theme settings"
msgstr "テーマ設定"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr "テーマの更新に成功しました!RPCサービスを再読み込みします。5秒後にページをリフレッシュしてください。"
msgid "Theme transition speed"
msgstr "テーマの遷移速度"
msgid "Toggle fullscreen"
msgstr "全画面表示を切り替え"
msgid "Triggering installation on router..."
msgstr "ルーターへのインストールを開始します..."
msgid "Update channel"
msgstr "更新チャンネル"
msgid "Update failed"
msgstr "更新に失敗しました"
msgid "Upgrade Successful!"
msgstr "アップグレード成功!"
msgid "Use Fluent custom select dropdowns"
msgstr "Fluentカスタムセレクトドロップダウンを使用する"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr "対応している場合、ブラウザのView Transition APIを使用してLuCIページのナビゲーションをアニメーション表示します。"
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr "システム/ブラウザの設定に従うか、常にFluentテーマを固定されたライトまたはダークパレットでレンダリングします。"
msgid "Username is required."
msgstr "ユーザー名は必須です。"
msgid "valid HEX color value"
msgstr "有効なHEXカラー値"
msgid "Warnings"
msgstr "警告"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr "有効にすると、Fluentのアニメーションはブラウザまたはオペレーティングシステムの低減モーション設定に従います。"
msgid "Width of the main navigation sidebar in pixels."
msgstr "メインナビゲーションサイドバーの幅をピクセル単位で指定します。"
msgid "Word wrap"
msgstr "折り返し表示"
msgid "You can create a new token at"
msgstr "新しいトークンは以下で作成できます:"
msgid "Your theme is up to date!"
msgstr "テーマは最新です!"
+709
View File
@@ -0,0 +1,709 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d 개의 하위 메뉴"
msgid "A new version is available!"
msgstr "새 버전이 있습니다!"
msgid "About"
msgstr "정보"
msgid "Above bar, end"
msgstr "막대 위, 끝"
msgid "Above bar, start"
msgstr "막대 위, 시작"
msgid "Accent color"
msgstr "강조 색상"
msgid "Add primary menu"
msgstr "기본 메뉴 추가"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"내장 컨트롤로 충분하지 않은 경우, 레이아웃, 타이포그래피, 전환 시간, 그림자 등을 조정하고 사용자 정의 CSS 변수 또는 규칙을 "
"추가합니다."
msgid "Advanced"
msgstr "고급 설정"
msgid "Advanced MAC Selector"
msgstr "고급 MAC 선택기"
msgid "and %d more..."
msgstr "및 %d개 더..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr "네이티브 LuCI 탭과 테마 적용된 탭 메뉴 간 전환 시 활성 밑줄 애니메이션을 표시합니다."
msgid "Animation"
msgstr "애니메이션"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"API 요청 제한 초과. 계속하려면 GitHub 토큰을 입력하세요. 이 토큰은 프런트엔드 요청에만 사용되며 라우터 백엔드에 저장되지 "
"않습니다."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr "표준 버튼, 입력 필드, 선택 상자 및 유사한 폼 컨트롤에 적용됩니다."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr "%d개의 잘못되었거나 설치되지 않은 메뉴 항목 또는 규칙을 정리하시겠습니까?"
msgid "Author"
msgstr "작성자"
msgid "Auto-scroll"
msgstr "자동 스크롤"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "자동 (아랍어/페르시아어 지역 설정만 해당)"
msgid "Backdrop blur radius"
msgstr "배경 블러 반경"
msgid "Backend (GHProxy Acceleration)"
msgstr "백엔드 (GHProxy 가속)"
msgid "Backend (Official GitHub)"
msgstr "백엔드 (공식 GitHub)"
msgid "Base font size"
msgstr "기본 글꼴 크기"
msgid "Below bar, end"
msgstr "막대 아래, 끝"
msgid "Below bar, start"
msgstr "막대 아래, 시작"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr "다크 모드에서 로그인 카드 뒤쪽의 블러 반경 (픽셀). 블러를 사용하지 않으려면 0을 입력하세요."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr "라이트 모드에서 로그인 카드 뒤쪽의 블러 반경 (픽셀). 블러를 사용하지 않으려면 0을 입력하세요."
msgid "Cancel"
msgstr "취소"
msgid "Card background"
msgstr "카드 배경"
msgid "Card shadow"
msgstr "카드 그림자"
msgid "Check for updates"
msgstr "업데이트 확인"
msgid "Checking for updates..."
msgstr "업데이트 확인 중..."
msgid "Choose color"
msgstr "색상 선택"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"인증 및 로그인 페이지의 문서 방향을 선택합니다. 자동 모드는 아랍어 및 페르시아어 로케일 코드(ar, ar_*, ar-*, fa, "
"fa_*, fa-*)를 RTL로 처리하고, 누락되거나 인식되지 않는 로케일에 대해서는 LTR로 기본 설정됩니다."
msgid "Clean up"
msgstr "정리하기"
msgid "Clean up invalid items"
msgstr "잘못된 항목 정리"
msgid "Clean up invalid items (%d)"
msgstr "잘못된 항목 정리 (%d)"
msgid "Close"
msgstr "닫기"
msgid "Color mode"
msgstr "색상 모드"
msgid "Colors"
msgstr "색상"
msgid "Comfortable (42px)"
msgstr "편안함 (42px)"
msgid "Compact (32px)"
msgstr "압축 (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"색상 모드, 강조 색상, 레이아웃 크기 조정, 애니메이션 동작, 로그인 페이지 모양 및 luci-theme-fluent용 고급 CSS "
"설정을 구성합니다."
msgid "Confirm"
msgstr "확인"
msgid "Confirm Installation"
msgstr "설치 확인"
msgid "Continue"
msgstr "계속"
msgid "Control height"
msgstr "컨트롤 높이"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr "메인 탐색 레이블 및 관련 테마 텍스트 강조에 사용되는 글꼴 두께를 제어합니다."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr "카드, 버튼, 입력 필드 등 Fluent UI 요소에 사용되는 공통 코너 반경 값을 제어합니다."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr "메뉴, 헤더 등 테마 애니메이션에 사용되는 공통 Fluent 전환 시간을 제어합니다."
msgid "Copied"
msgstr "복사됨"
msgid "Copy log"
msgstr "로그 복사"
msgid "Corner radius"
msgstr "코너 반경"
msgid "Current / Pending MAC Address"
msgstr "현재 / 대기 중인 MAC 주소"
msgid "Custom CSS"
msgstr "사용자 정의 CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr "로그인 페이지 배경, 카드 불투명도 및 라이트 모드 및 다크 모드의 블러 반경을 사용자 정의합니다."
msgid "Dark mode"
msgstr "다크 모드"
msgid "Delete primary menu"
msgstr "기본 메뉴 삭제"
msgid "Disabled"
msgstr "사용 안 함"
msgid "Disconnects"
msgstr "연결 끊김"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr "페이지 로딩 및 전환 시, 테마 적용된 로딩 표시기를 화면 상단에 표시합니다."
msgid "Download and Install"
msgstr "다운로드 및 설치"
msgid "Download log"
msgstr "로그 다운로드"
msgid "Downloaded"
msgstr "다운로드 완료"
msgid "Downloading on router"
msgstr "라우터에서 다운로드 중"
msgid "Drag to move second-level menu"
msgstr "하위 메뉴를 드래그하여 이동"
msgid "Drag to reorder primary menu"
msgstr "기본 메뉴 순서를 변경하려면 드래그"
msgid "Drop second-level menus here"
msgstr "여기에 하위 메뉴를 추가합니다."
msgid "Edit"
msgstr "편집"
msgid "Enable page transition animation"
msgstr "페이지 전환 애니메이션 활성화"
msgid "Enable tab underline animation"
msgstr "탭 하단 선 애니메이션 활성화"
msgid "Errors"
msgstr "오류"
msgid "Expecting: %s"
msgstr "예상 값: %s"
msgid "Extra large (12px)"
msgstr "매우 큼 (12px)"
msgid "Failed to check for updates"
msgstr "업데이트 확인 실패"
msgid "Failed to fetch current theme version."
msgstr "현재 테마 버전 정보를 가져오는데 실패했습니다."
msgid "Fast"
msgstr "빠름"
msgid "Finished"
msgstr "완료"
msgid "Fix primary menu title errors before saving."
msgstr "저장하기 전에 기본 메뉴 제목 오류를 수정하십시오."
msgid "Fluent Design 2 theme for LuCI"
msgstr "LuCI용 Fluent Design 2 테마"
msgid "Fluent Theme"
msgstr "Fluent 테마"
msgid "Fluent theme settings"
msgstr "Fluent 테마 설정"
msgid "Follow system"
msgstr "시스템 설정 따르기"
msgid "Force dark mode"
msgstr "다크 모드 강제 적용"
msgid "Force light mode"
msgstr "라이트 모드 강제 적용"
msgid "Force LTR"
msgstr "왼쪽에서 오른쪽으로 (LTR) 강제 적용"
msgid "Force RTL"
msgstr "오른쪽에서 왼쪽으로 (RTL) 강제 적용"
msgid "General"
msgstr "일반 설정"
msgid "GitHub Token Required"
msgstr "GitHub 토큰 필요"
msgid "Header height"
msgstr "헤더 높이"
msgid "Height of the top header bar in pixels."
msgstr "상단 헤더 바의 높이를 픽셀 단위로 지정합니다."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr "다크 모드에서 인터페이스가 표시될 때 사용되는 주요 Fluent 강조 색상의 HEX 코드입니다."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr "라이트 모드에서 인터페이스가 표시될 때 사용되는 주요 Fluent 강조 색상의 HEX 코드입니다."
msgid "HEX color used for container/card elements in dark mode."
msgstr "다크 모드에서 컨테이너/카드 요소에 사용되는 HEX 색상입니다."
msgid "HEX color used for container/card elements in light mode."
msgstr "라이트 모드에서 컨테이너/카드 요소에 사용되는 HEX 색상입니다."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "다크 모드에서 인터페이스가 표시될 때 진행률 표시줄 레이블에 사용되는 HEX 색상입니다."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr "라이트 모드에서 인터페이스가 표시될 때 진행률 표시줄 레이블에 사용되는 HEX 색상입니다."
msgid "HEX color used for the main page background in dark mode."
msgstr "다크 모드에서 메인 페이지 배경에 사용되는 HEX 색상입니다."
msgid "HEX color used for the main page background in light mode."
msgstr "라이트 모드에서 메인 페이지 배경에 사용되는 HEX 색상입니다."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "다크 모드에서 탐색 사이드바에 사용되는 HEX 색상."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "라이트 모드에서 탐색 사이드바에 사용되는 HEX 색상."
msgid "Installation cancelled by user."
msgstr "사용자에 의해 설치가 취소되었습니다."
msgid "Installed version"
msgstr "설치된 버전"
msgid "Installing package"
msgstr "패키지 설치 중"
msgid "Keep action bar visible while scrolling"
msgstr "스크롤 시 작업 표시줄을 계속 보이게 합니다."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr "스크롤 시 저장, 적용 및 초기화 작업을 화면 하단에 고정합니다."
msgid "Large"
msgstr "큼"
msgid "Large (8px)"
msgstr "큼 (8px)"
msgid "Light mode"
msgstr "라이트 모드"
msgid "Line %d"
msgstr "%d번째 줄"
msgid "Lines"
msgstr "줄 수"
msgid "Login"
msgstr "로그인"
msgid "Login card opacity"
msgstr "로그인 카드 불투명도"
msgid "Login page"
msgstr "로그인 페이지"
msgid "Medium"
msgstr "중간 크기"
msgid "Medium (4px)"
msgstr "중간 크기 (4px)"
msgid "Menu"
msgstr "메뉴"
msgid "Menu title cannot be empty."
msgstr "메뉴 제목은 비워둘 수 없습니다."
msgid "Navigation font weight"
msgstr "탐색 글꼴 두께"
msgid "New primary menu"
msgstr "새로운 기본 메뉴"
msgid "New primary menu %d"
msgstr "새로운 기본 메뉴 %d"
msgid "Next"
msgstr "다음"
msgid "Nightly build available (reinstallation check)."
msgstr "Nightly 빌드를 사용할 수 있습니다 (재설치 확인)."
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly 채널 (사전 공개)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "이 릴리스에서 시스템 아키텍처에 맞는 패키지 파일을 찾을 수 없습니다."
msgid "None"
msgstr "없음"
msgid "Normal"
msgstr "일반"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "다크 모드에서 로그인 카드 불투명도. 0은 완전히 투명하고 1은 완전히 불투명합니다."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "라이트 모드에서 로그인 카드 불투명도. 0은 완전히 투명하고 1은 완전히 불투명합니다."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Fluent 헤더 템플릿에 추가되는 CSS입니다. --fluent-* 변수 재정의 또는 별도의 옵션으로 제공되지 않는 페이지별 수정 "
"사항을 위해 사용하십시오."
msgid "Package format"
msgstr "패키지 형식"
msgid "Page background"
msgstr "페이지 배경"
msgid "Please enter your password."
msgstr "비밀번호를 입력하세요."
msgid "Please enter your username."
msgstr "사용자 이름을 입력하세요."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr "진행률 표시 막대의 레이블 위치는 막대에 상대적입니다. 시작/끝 정렬은 텍스트 방향(LTR 또는 RTL)을 따릅니다."
msgid "Preset Vendor / Generator"
msgstr "미리 설정된 공급업체 / 생성기"
msgid "Primary menu title"
msgstr "메인 메뉴 제목"
msgid "Primary menu titles cannot be empty."
msgstr "메인 메뉴 제목은 비워둘 수 없습니다."
msgid "Primary menu titles must be unique."
msgstr "메인 메뉴 제목은 고유해야 합니다."
msgid "Progress bar text color"
msgstr "진행률 표시줄 텍스트 색상"
msgid "Progress bar text position"
msgstr "진행률 표시 막대 텍스트 위치"
msgid "Random Local MAC"
msgstr "임의 로컬 MAC 주소"
msgid "Randomize MAC"
msgstr "MAC 주소 무작위 변경"
msgid "Reload Web Interface"
msgstr "웹 인터페이스 새로 고침"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "네이티브 선택 요소를 테마의 사용자 정의 드롭다운 위젯으로 대체합니다."
msgid "Respect reduced-motion preference"
msgstr "화면 전환 효과 감소 옵션을 준수합니다."
msgid "Restore %s to its original menu name"
msgstr "%s를 원래 메뉴 이름으로 복원합니다."
msgid "Restore %s to its original menu position"
msgstr "%s를 원래 위치로 복원합니다."
msgid "Restore defaults"
msgstr "기본값 복원"
msgid "Restore to original title"
msgstr "원래 제목으로 복원"
msgid "Retrying with token..."
msgstr "토큰을 사용하여 다시 시도 중..."
msgid "Rounded (6px)"
msgstr "둥글게 (6px)"
msgid "Save"
msgstr "저장"
msgid "Scroll to bottom"
msgstr "맨 아래로 스크롤"
msgid "Scroll to top"
msgstr "맨 위로 이동"
msgid "Search menu items"
msgstr "메뉴 항목 검색"
msgid "Search menu..."
msgstr "메뉴 검색..."
msgid "Second-level menu title"
msgstr "세부 메뉴 제목"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "테마 적용된 카드 및 패널에 적용되는 그림자 깊이를 선택합니다."
msgid "Select vendor prefix..."
msgstr "벤더 접두사 선택..."
msgid "Semibold"
msgstr "세미볼드"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"기본 인터페이스 글꼴 크기를 픽셀 단위로 설정합니다. 대부분의 테마 텍스트는 Fluent CSS 변수를 통해 이 값에서 조정됩니다. 권장 "
"범위: 12-18px."
msgid "Show %s in the menu"
msgstr "%s를 메뉴에 표시합니다."
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr "구성 적용이 완료될 때까지 최상단 적용 상태 메시지에 대기 중인 UCI 변경 사항을 표시합니다."
msgid "Show top loading bar"
msgstr "상단 로딩 표시줄 표시"
msgid "Show UCI changes while applying configuration"
msgstr "구성을 적용하는 동안 UCI 변경 사항을 표시합니다."
msgid "Sidebar background"
msgstr "사이드바 배경"
msgid "Sidebar width"
msgstr "사이드바 너비"
msgid "Slow"
msgstr "느림"
msgid "Small"
msgstr "작게"
msgid "Small (2px)"
msgstr "작게 (2px)"
msgid "Software Update"
msgstr "소프트웨어 업데이트"
msgid "Source code"
msgstr "소스 코드"
msgid "Square (0px)"
msgstr "정사각형 (0px)"
msgid "Stable Channel"
msgstr "안정 채널"
msgid "Starting backend download..."
msgstr "백엔드 다운로드 시작..."
msgid "Starting update process..."
msgstr "업데이트 프로세스 시작..."
msgid "Submit"
msgstr "제출"
msgid "Switch theme mode"
msgstr "테마 모드 전환"
msgid "Text direction"
msgstr "텍스트 방향"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr "저장된 메뉴 레이아웃이 유효하지 않습니다. \"기본값 복원\"을 선택하거나 저장하기 전에 편집하십시오."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr "저장된 메뉴 레이아웃이 유효하지 않습니다. 기본값을 복원하거나 저장하기 전에 레이아웃을 편집하십시오."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr "테마가 라우터에 설치 중입니다. 로그는 아래에 표시됩니다. 웹 인터페이스를 다시 로드하면 RPCD가 재시작된 후 변경 사항이 적용됩니다."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "테마 패키지가 준비되었습니다. 설치를 진행하시겠습니까?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr "토큰은 권한/범위 부여가 필요하지 않습니다 (읽기 전용 공개 액세스가 충분합니다)."
msgid "Theme settings"
msgstr "테마 설정"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr "테마 업데이트 성공! RPC 서비스를 다시 로드합니다. 페이지를 5초 후에 새로 고쳐주세요."
msgid "Theme transition speed"
msgstr "테마 전환 속도"
msgid "Toggle fullscreen"
msgstr "전체 화면 전환"
msgid "Triggering installation on router..."
msgstr "라우터에서 설치를 시작합니다..."
msgid "Update channel"
msgstr "업데이트 채널"
msgid "Update failed"
msgstr "업데이트 실패"
msgid "Upgrade Successful!"
msgstr "업그레이드 성공!"
msgid "Use Fluent custom select dropdowns"
msgstr "Fluent 사용자 정의 선택 드롭다운 사용"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr "지원되는 경우, LuCI 페이지 간 탐색 시 브라우저의 View Transition API를 사용하여 애니메이션을 적용합니다."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr "시스템/브라우저 설정을 사용하거나, 항상 Fluent 테마를 고정된 밝은 또는 어두운 색상으로 표시합니다."
msgid "Username is required."
msgstr "사용자 이름이 필요합니다."
msgid "valid HEX color value"
msgstr "유효한 HEX 색상 값"
msgid "Warnings"
msgstr "경고"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr "활성화하면, Fluent 애니메이션은 브라우저 또는 운영 체제의 움직임 감소 설정을 따릅니다."
msgid "Width of the main navigation sidebar in pixels."
msgstr "주요 탐색 사이드바의 너비 (픽셀 단위)."
msgid "Word wrap"
msgstr "단어 줄 바꿈"
msgid "You can create a new token at"
msgstr "새 토큰은 다음에서 생성할 수 있습니다:"
msgid "Your theme is up to date!"
msgstr "귀하의 테마는 최신 버전입니다!"
+771
View File
@@ -0,0 +1,771 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d podmenu"
msgid "A new version is available!"
msgstr "Dostępna jest nowa wersja!"
msgid "About"
msgstr "O programie"
msgid "Above bar, end"
msgstr "Powyżej paska, koniec"
msgid "Above bar, start"
msgstr "Powyżej paska, początek"
msgid "Accent color"
msgstr "Kolor akcentu"
msgid "Add primary menu"
msgstr "Dodaj główne menu"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Dostosuj układ, typografię, czas trwania animacji, cienie oraz dodawaj "
"własne zmienne CSS lub reguły, gdy wbudowane opcje są niewystarczające."
msgid "Advanced"
msgstr "Zaawansowane"
msgid "Advanced MAC Selector"
msgstr "Zaawansowany wybór adresów MAC"
msgid "and %d more..."
msgstr "i %d więcej..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Animuj podświetlenie aktywnej zakładki podczas przełączania między natywnymi "
"zakładkami LuCI a menu zakładek z motywem."
msgid "Animation"
msgstr "Animacja"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Osiągnięto limit szybkości wywołań API. Wprowadź token GitHub, aby "
"kontynuować. Ten token jest używany tylko do żądań frontendowych i nie "
"zostanie zapisany w backendzie routera."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Dotyczy standardowych przycisków, pól wprowadzania, list wyboru oraz "
"podobnych elementów sterujących formularzami w całym motywie."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Czy na pewno chcesz usunąć %d nieprawidłowych/niezainstalowanych elementów "
"menu lub reguł?"
msgid "Author"
msgstr "Autor"
msgid "Auto-scroll"
msgstr "Automatyczne przewijanie"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Automatyczne (tylko dla lokalizacji arabskich/perskich)"
msgid "Backdrop blur radius"
msgstr "Promień rozmycia tła"
msgid "Backend (GHProxy Acceleration)"
msgstr "Backend (Przyspieszenie GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Backend (Oficjalny GitHub)"
msgid "Base font size"
msgstr "Podstawowy rozmiar czcionki"
msgid "Below bar, end"
msgstr "Poniżej paska, koniec"
msgid "Below bar, start"
msgstr "Poniżej paska, początek"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Promień rozmycia w pikselach za kartą logowania w trybie ciemnym. Użyj 0, "
"aby wyłączyć rozmycie."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Promień rozmycia w pikselach za kartą logowania w trybie jasnym. Użyj 0, aby "
"wyłączyć rozmycie."
msgid "Cancel"
msgstr "Anuluj"
msgid "Card background"
msgstr "Tło karty"
msgid "Card shadow"
msgstr "Cień karty"
msgid "Check for updates"
msgstr "Sprawdź aktualizacje"
msgid "Checking for updates..."
msgstr "Sprawdzanie dostępności aktualizacji..."
msgid "Choose color"
msgstr "Wybierz kolor"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Wybierz kierunek tekstu dla stron uwierzytelniania i logowania. Tryb "
"automatyczny rozpoznaje kody języków arabskiego i perskiego (ar, ar_*, ar-*, "
"fa, fa_*, fa-*) i ustawia układ RTL, a w przypadku brakujących lub "
"nieznanych lokalizacji przełącza się na LTR."
msgid "Clean up"
msgstr "Oczyść"
msgid "Clean up invalid items"
msgstr "Usuń nieprawidłowe elementy"
msgid "Clean up invalid items (%d)"
msgstr "Usuń nieprawidłowe elementy (%d)"
msgid "Close"
msgstr "Zamknij"
msgid "Color mode"
msgstr "Tryb koloru"
msgid "Colors"
msgstr "Kolory"
msgid "Comfortable (42px)"
msgstr "Wygodny (42px)"
msgid "Compact (32px)"
msgstr "Kompaktowy (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Konfiguruj tryb koloru, kolory akcentu, rozmiar układu, zachowanie animacji, "
"wygląd strony logowania oraz zaawansowane nadpisy CSS dla luci-theme-fluent."
msgid "Confirm"
msgstr "Potwierdź"
msgid "Confirm Installation"
msgstr "Potwierdź instalację"
msgid "Continue"
msgstr "Kontynuuj"
msgid "Control height"
msgstr "Wysokość elementów sterujących"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Określa grubość czcionki używaną przez etykiety nawigacji głównej i "
"powiązane elementy tekstowe motywu."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Kontroluje współdzielone tokeny promienia narożnika Fluent, używane przez "
"karty, przyciski, pola wprowadzania i inne elementy interfejsu użytkownika."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Kontroluje współdzielone czasy trwania animacji Fluent, używane przez menu, "
"nagłówek i inne animacje motywu."
msgid "Copied"
msgstr "Skopiowano"
msgid "Copy log"
msgstr "Kopiuj log"
msgid "Corner radius"
msgstr "Promień narożnika"
msgid "Current / Pending MAC Address"
msgstr "Aktualny / Oczekujący adres MAC"
msgid "Custom CSS"
msgstr "Własny CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Dostosuj tło strony logowania, przezroczystość kart i promień rozmycia dla "
"trybów jasnego i ciemnego."
msgid "Dark mode"
msgstr "Tryb ciemny"
msgid "Delete primary menu"
msgstr "Usuń główne menu"
msgid "Disabled"
msgstr "Wyłączone"
msgid "Disconnects"
msgstr "Rozłączenia"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Wyświetl motywowany wskaźnik ładowania na górnej krawędzi podczas ładowania "
"stron i przejść."
msgid "Download and Install"
msgstr "Pobierz i zainstaluj"
msgid "Download log"
msgstr "Pobierz log"
msgid "Downloaded"
msgstr "Pobrane"
msgid "Downloading on router"
msgstr "Pobieranie na routerze"
msgid "Drag to move second-level menu"
msgstr "Przeciągnij, aby przenieść podmenu"
msgid "Drag to reorder primary menu"
msgstr "Przeciągnij, aby zmienić kolejność głównych menu"
msgid "Drop second-level menus here"
msgstr "Upuść tutaj podmenu"
msgid "Edit"
msgstr "Edytuj"
msgid "Enable page transition animation"
msgstr "Włącz animację przejścia między stronami"
msgid "Enable tab underline animation"
msgstr "Włącz animację podkreślenia zakładki"
msgid "Errors"
msgstr "Błędy"
msgid "Expecting: %s"
msgstr "Oczekiwane: %s"
msgid "Extra large (12px)"
msgstr "Bardzo duże (12px)"
msgid "Failed to check for updates"
msgstr "Nie udało się sprawdzić dostępności aktualizacji"
msgid "Failed to fetch current theme version."
msgstr "Nie udało się pobrać bieżącej wersji motywu."
msgid "Fast"
msgstr "Szybko"
msgid "Finished"
msgstr "Zakończono"
msgid "Fix primary menu title errors before saving."
msgstr "Napraw błędy tytułów głównych menu przed zapisaniem."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Motyw Fluent Design 2 dla LuCI"
msgid "Fluent Theme"
msgstr "Motyw Fluent"
msgid "Fluent theme settings"
msgstr "Ustawienia motywu Fluent"
msgid "Follow system"
msgstr "Dostosuj do systemu"
msgid "Force dark mode"
msgstr "Wymuś tryb ciemny"
msgid "Force light mode"
msgstr "Wymuś tryb jasny"
msgid "Force LTR"
msgstr "Wymuś układ lewo-do-prawo (LTR)"
msgid "Force RTL"
msgstr "Wymuś układ prawo-do-lewo (RTL)"
msgid "General"
msgstr "Ogólne"
msgid "GitHub Token Required"
msgstr "Wymagany token GitHub"
msgid "Header height"
msgstr "Wysokość nagłówka"
msgid "Height of the top header bar in pixels."
msgstr "Wysokość górnego paska nagłówka w pikselach."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Kolor HEX używany jako główny akcent Fluent, gdy interfejs jest wyświetlany "
"w trybie ciemnym."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Kolor HEX używany jako główny akcent Fluent, gdy interfejs jest wyświetlany "
"w trybie jasnym."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Kolor HEX używany dla elementów kontenerów/kart w trybie ciemnym."
msgid "HEX color used for container/card elements in light mode."
msgstr "Kolor HEX używany dla elementów kontenerów/kart w trybie jasnym."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Kolor HEX używany dla etykiet pasków postępu, gdy interfejs jest wyświetlany "
"w trybie ciemnym."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Kolor HEX używany dla etykiet pasków postępu, gdy interfejs jest wyświetlany "
"w trybie jasnym."
msgid "HEX color used for the main page background in dark mode."
msgstr "Kolor HEX używany jako tło głównej strony w trybie ciemnym."
msgid "HEX color used for the main page background in light mode."
msgstr "Kolor HEX używany jako tło głównej strony w trybie jasnym."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "Kolor HEX używany dla paska nawigacji w trybie ciemnym."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "Kolor HEX używany dla paska nawigacji w trybie jasnym."
msgid "Installation cancelled by user."
msgstr "Instalacja anulowana przez użytkownika."
msgid "Installed version"
msgstr "Zainstalowana wersja"
msgid "Installing package"
msgstr "Instalowanie pakietu"
msgid "Keep action bar visible while scrolling"
msgstr "Zachowaj pasek akcji podczas przewijania."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Utrzymuj przyciski Zapisz, Zastosuj i Reset na dole okna podczas "
"przewijania."
msgid "Large"
msgstr "Duży"
msgid "Large (8px)"
msgstr "Duży (8px)"
msgid "Light mode"
msgstr "Tryb jasny"
msgid "Line %d"
msgstr "Linia %d"
msgid "Lines"
msgstr "Linii"
msgid "Login"
msgstr "Logowanie"
msgid "Login card opacity"
msgstr "Przezroczystość karty logowania"
msgid "Login page"
msgstr "Strona logowania"
msgid "Medium"
msgstr "Średni"
msgid "Medium (4px)"
msgstr "Średni (4px)"
msgid "Menu"
msgstr "Menu"
msgid "Menu title cannot be empty."
msgstr "Tytuł menu nie może być pusty."
msgid "Navigation font weight"
msgstr "Waga czcionki nawigacji"
msgid "New primary menu"
msgstr "Nowe główne menu"
msgid "New primary menu %d"
msgstr "Nowe główne menu %d"
msgid "Next"
msgstr "Następny"
msgid "Nightly build available (reinstallation check)."
msgstr "Dostępna wersja Nightly (sprawdzenie konieczności ponownej instalacji)."
msgid "Nightly Channel (Prerelease)"
msgstr "Kanał Nightly (wersja przedpremierowa)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"Nie znaleziono odpowiedniego pakietu dla architektury Twojego systemu w tej "
"wersji."
msgid "None"
msgstr "Brak"
msgid "Normal"
msgstr "Normalny"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Przezroczystość karty logowania w trybie ciemnym. 0 to całkowita "
"przezroczystość, a 1 to całkowita nieprzezroczystość."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Przezroczystość karty logowania w trybie jasnym. 0 to całkowita "
"przezroczystość, a 1 to całkowita nieprzezroczystość."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Opcjonalny surowy CSS wstrzykiwany do szablonu nagłówka Fluent. Użyj tego do "
"dodatkowych nadpisywań zmiennych --fluent-* lub modyfikacji specyficznych "
"dla strony, które nie są dostępne jako dedykowane opcje."
msgid "Package format"
msgstr "Format pakietu"
msgid "Page background"
msgstr "Tło strony"
msgid "Please enter your password."
msgstr "Wprowadź swoje hasło."
msgid "Please enter your username."
msgstr "Wprowadź swoją nazwę użytkownika."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Położenie etykiet paska postępu względem paska. Wyjustowanie początku/końca "
"podąża za kierunkiem tekstu (LTR lub RTL)."
msgid "Preset Vendor / Generator"
msgstr "Gotowy zestaw dostawcy / generatora"
msgid "Primary menu title"
msgstr "Tytuł głównego menu"
msgid "Primary menu titles cannot be empty."
msgstr "Tytuły w głównym menu nie mogą być puste."
msgid "Primary menu titles must be unique."
msgstr "Tytuły w głównym menu muszą być unikalne."
msgid "Progress bar text color"
msgstr "Kolor tekstu paska postępu"
msgid "Progress bar text position"
msgstr "Pozycja tekstu na pasku postępu"
msgid "Random Local MAC"
msgstr "Losowy lokalny adres MAC"
msgid "Randomize MAC"
msgstr "Losuj adres MAC"
msgid "Reload Web Interface"
msgstr "Przeładuj interfejs webowy"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "Zastąp natywne elementy wyboru niestandardowym elementem rozwijanym motywu."
msgid "Respect reduced-motion preference"
msgstr "Uwzględnij preferencje dotyczące ograniczenia animacji."
msgid "Restore %s to its original menu name"
msgstr "Przywróć %s do oryginalnej nazwy menu"
msgid "Restore %s to its original menu position"
msgstr "Przywróć %s do oryginalnej pozycji w menu"
msgid "Restore defaults"
msgstr "Przywróć domyślne ustawienia"
msgid "Restore to original title"
msgstr "Przywróć oryginalny tytuł"
msgid "Retrying with token..."
msgstr "Ponawianie próby z tokenem..."
msgid "Rounded (6px)"
msgstr "Zaokrąglone (6px)"
msgid "Save"
msgstr "Zapisz"
msgid "Scroll to bottom"
msgstr "Przewiń na dół"
msgid "Scroll to top"
msgstr "Przewiń do góry"
msgid "Search menu items"
msgstr "Wyszukaj pozycje menu"
msgid "Search menu..."
msgstr "Wyszukuj w menu..."
msgid "Second-level menu title"
msgstr "Tytuł podmenu"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Wybierz głębokość cienia stosowaną do kart i paneli motywu."
msgid "Select vendor prefix..."
msgstr "Wybierz prefiks dostawcy..."
msgid "Semibold"
msgstr "Półpogrubienie"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Ustawia podstawowy rozmiar czcionki interfejsu w pikselach. Większość tekstu "
"motywu skaluje się od tej wartości za pomocą zmiennych CSS Fluent. Zalecany "
"zakres: 12-18px."
msgid "Show %s in the menu"
msgstr "Pokaż %s w menu"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Wyświetlaj oczekujące zmiany UCI w górnym komunikacie o statusie, aż do "
"zakończenia zastosowania konfiguracji."
msgid "Show top loading bar"
msgstr "Pokaż pasek ładowania na górze"
msgid "Show UCI changes while applying configuration"
msgstr "Wyświetlaj zmiany UCI podczas stosowania konfiguracji."
msgid "Sidebar background"
msgstr "Tło paska bocznego"
msgid "Sidebar width"
msgstr "Szerokość paska bocznego"
msgid "Slow"
msgstr "Wolno"
msgid "Small"
msgstr "Mały"
msgid "Small (2px)"
msgstr "Mały (2px)"
msgid "Software Update"
msgstr "Aktualizacja oprogramowania"
msgid "Source code"
msgstr "Kod źródłowy"
msgid "Square (0px)"
msgstr "Kwadrat (0px)"
msgid "Stable Channel"
msgstr "Kanał stabilny"
msgid "Starting backend download..."
msgstr "Rozpoczyna pobieranie pakietu..."
msgid "Starting update process..."
msgstr "Rozpoczyna proces aktualizacji..."
msgid "Submit"
msgstr "Zatwierdź"
msgid "Switch theme mode"
msgstr "Zmień tryb motywu"
msgid "Text direction"
msgstr "Kierunek tekstu"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Zapisany układ menu jest nieprawidłowy. Wybierz \"Przywróć domyślne "
"ustawienia\" lub dokonaj edycji przed zapisaniem."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Zapisany układ menu jest nieprawidłowy. Przywróć domyślne ustawienia lub "
"edytuj układ przed zapisaniem."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Motyw jest instalowany na routerze. Logi są wyświetlane poniżej. Ponowne "
"załadowanie interfejsu webowego zastosuje zmiany po ponownym uruchomieniu "
"RPCD."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "Pakiet motywu jest gotowy. Czy chcesz kontynuować instalację?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Token NIE wymaga żadnych uprawnień/zakresów (wystarczy dostęp publiczny "
"tylko do odczytu)."
msgid "Theme settings"
msgstr "Ustawienia motywu"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Motyw został pomyślnie zaktualizowany! Próba ponownego uruchomienia usługi "
"RPC, odśwież stronę za 5 sekund."
msgid "Theme transition speed"
msgstr "Prędkość animacji zmiany motywu"
msgid "Toggle fullscreen"
msgstr "Przełącz tryb pełnoekranowy"
msgid "Triggering installation on router..."
msgstr "Rozpoczyna instalację na routerze..."
msgid "Update channel"
msgstr "Kanał aktualizacji"
msgid "Update failed"
msgstr "Aktualizacja nie powiodła się"
msgid "Upgrade Successful!"
msgstr "Aktualizacja zakończona pomyślnie!"
msgid "Use Fluent custom select dropdowns"
msgstr "Używaj niestandardowych list wyboru Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Wykorzystaj wbudowaną w przeglądarkę View Transition API do animowania "
"przejść między stronami LuCI, jeśli jest obsługiwana."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Użyj preferencji systemu/przeglądarki lub zawsze renderuj motyw Fluent z "
"ustaloną paletą kolorów (jasną lub ciemną)."
msgid "Username is required."
msgstr "Nazwa użytkownika jest wymagana."
msgid "valid HEX color value"
msgstr "poprawna wartość koloru w formacie HEX"
msgid "Warnings"
msgstr "Ostrzeżenia"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Po włączeniu animacje Fluent uwzględniają preferencje dotyczące ograniczenia "
"ruchu ustawione w przeglądarce lub systemie operacyjnym."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Szerokość głównego paska nawigacyjnego w pikselach."
msgid "Word wrap"
msgstr "Zawijanie tekstu"
msgid "You can create a new token at"
msgstr "Możesz utworzyć nowy token pod adresem:"
msgid "Your theme is up to date!"
msgstr "Twój motyw jest aktualny!"
+764
View File
@@ -0,0 +1,764 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d меню второго уровня"
msgid "A new version is available!"
msgstr "Доступна новая версия!"
msgid "About"
msgstr "О теме"
msgid "Above bar, end"
msgstr "Над полосой, конец"
msgid "Above bar, start"
msgstr "Над полосой, начало"
msgid "Accent color"
msgstr "Акцентный цвет"
msgid "Add primary menu"
msgstr "Добавить главное меню"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Настройте компоновку, типографику, длительность переходов, тени, а также "
"добавьте собственные CSS-переменные или правила, если встроенных параметров "
"недостаточно."
msgid "Advanced"
msgstr "Дополнительно"
msgid "Advanced MAC Selector"
msgstr "Расширенный выбор MAC-адресов"
msgid "and %d more..."
msgstr "и ещё %d..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Анимировать активное подчёркивание при переключении между стандартными "
"вкладками LuCI и тематическими меню вкладок."
msgid "Animation"
msgstr "Анимация"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Превышен лимит запросов API. Введите токен GitHub, чтобы продолжить. Этот "
"токен используется только для запросов фронтенда и не будет сохранён на "
"стороне роутера."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Применяется к стандартным кнопкам, полям ввода, спискам выбора и похожим "
"элементам формы во всей теме."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Вы уверены, что хотите удалить %d недействительных/неустановленных пунктов "
"меню или правил?"
msgid "Author"
msgstr "Автор"
msgid "Auto-scroll"
msgstr "Автопрокрутка"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Автоматически (только для арабских и персидских локалей)"
msgid "Backdrop blur radius"
msgstr "Радиус размытия фона"
msgid "Backend (GHProxy Acceleration)"
msgstr "Серверная часть (ускорение через GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Серверная часть (официальный GitHub)"
msgid "Base font size"
msgstr "Базовый размер шрифта"
msgid "Below bar, end"
msgstr "Под полосой, конец"
msgid "Below bar, start"
msgstr "Под полосой, начало"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Радиус размытия в пикселях за карточкой входа в тёмном режиме. Используйте "
"0, чтобы отключить размытие."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Радиус размытия в пикселях за карточкой входа в светлом режиме. Используйте "
"0, чтобы отключить размытие."
msgid "Cancel"
msgstr "Отмена"
msgid "Card background"
msgstr "Фон карточки"
msgid "Card shadow"
msgstr "Тень карточки"
msgid "Check for updates"
msgstr "Проверить обновления"
msgid "Checking for updates..."
msgstr "Проверка обновлений..."
msgid "Choose color"
msgstr "Выбрать цвет"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Выберите направление текста для страниц аутентификации и входа. В "
"автоматическом режиме коды локалей арабского и персидского языков (ar, ar_*, "
"ar-*, fa, fa_*, fa-*) определяются как RTL, а для отсутствующих или "
"нераспознанных локалей используется LTR."
msgid "Clean up"
msgstr "Очистить"
msgid "Clean up invalid items"
msgstr "Очистить недействительные элементы"
msgid "Clean up invalid items (%d)"
msgstr "Очистить недействительные элементы (%d)"
msgid "Close"
msgstr "Закрыть"
msgid "Color mode"
msgstr "Цветовой режим"
msgid "Colors"
msgstr "Цвета"
msgid "Comfortable (42px)"
msgstr "Удобный (42px)"
msgid "Compact (32px)"
msgstr "Компактный (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Настройте цветовой режим, акцентные цвета, размеры интерфейса, поведение "
"анимации, внешний вид страницы входа и расширенные CSS-переопределения для "
"luci-theme-fluent."
msgid "Confirm"
msgstr "Подтвердить"
msgid "Confirm Installation"
msgstr "Подтвердить установку"
msgid "Continue"
msgstr "Продолжить"
msgid "Control height"
msgstr "Высота элементов управления"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Определяет насыщенность шрифта для основных навигационных подписей и "
"связанных акцентных текстов темы."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Определяет общие значения скругления Fluent, используемые карточками, "
"кнопками, полями ввода и другими элементами интерфейса."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Определяет общую длительность переходов Fluent для меню, верхней панели и "
"других анимаций темы."
msgid "Copied"
msgstr "Скопировано"
msgid "Copy log"
msgstr "Копировать журнал"
msgid "Corner radius"
msgstr "Радиус скругления"
msgid "Current / Pending MAC Address"
msgstr "Текущий / ожидающий MAC-адрес"
msgid "Custom CSS"
msgstr "Пользовательский CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Настройте фон страницы входа, непрозрачность карточки и радиус размытия для "
"светлого и тёмного режимов."
msgid "Dark mode"
msgstr "Тёмный режим"
msgid "Delete primary menu"
msgstr "Удалить главное меню"
msgid "Disabled"
msgstr "Отключено"
msgid "Disconnects"
msgstr "Отключения"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Показывать тематический индикатор загрузки в верхней части страницы во время "
"загрузки и переходов."
msgid "Download and Install"
msgstr "Скачать и установить"
msgid "Download log"
msgstr "Загрузить журнал"
msgid "Downloaded"
msgstr "Загружено"
msgid "Downloading on router"
msgstr "Загрузка на роутере"
msgid "Drag to move second-level menu"
msgstr "Перетащите для перемещения меню второго уровня"
msgid "Drag to reorder primary menu"
msgstr "Перетащите для изменения порядка главного меню"
msgid "Drop second-level menus here"
msgstr "Перетащите сюда меню второго уровня"
msgid "Edit"
msgstr "Редактировать"
msgid "Enable page transition animation"
msgstr "Включить анимацию переходов между страницами"
msgid "Enable tab underline animation"
msgstr "Включить анимацию подчёркивания вкладок"
msgid "Errors"
msgstr "Ошибки"
msgid "Expecting: %s"
msgstr "Ожидается: %s"
msgid "Extra large (12px)"
msgstr "Очень большой (12px)"
msgid "Failed to check for updates"
msgstr "Не удалось проверить обновления"
msgid "Failed to fetch current theme version."
msgstr "Не удалось получить текущую версию темы."
msgid "Fast"
msgstr "Быстро"
msgid "Finished"
msgstr "Завершено"
msgid "Fix primary menu title errors before saving."
msgstr "Исправьте ошибки в заголовках главных меню перед сохранением."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Тема Fluent Design 2 для LuCI"
msgid "Fluent Theme"
msgstr "Тема Fluent"
msgid "Fluent theme settings"
msgstr "Настройки темы Fluent"
msgid "Follow system"
msgstr "Следовать системе"
msgid "Force dark mode"
msgstr "Всегда тёмный режим"
msgid "Force light mode"
msgstr "Всегда светлый режим"
msgid "Force LTR"
msgstr "Принудительно LTR"
msgid "Force RTL"
msgstr "Принудительно RTL"
msgid "General"
msgstr "Общие"
msgid "GitHub Token Required"
msgstr "Требуется токен GitHub"
msgid "Header height"
msgstr "Высота верхней панели"
msgid "Height of the top header bar in pixels."
msgstr "Высота верхней панели в пикселях."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr "HEX-цвет, используемый как основной акцентный цвет Fluent в тёмном режиме."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr "HEX-цвет, используемый как основной акцентный цвет Fluent в светлом режиме."
msgid "HEX color used for container/card elements in dark mode."
msgstr "HEX-цвет для элементов контейнеров и карточек в тёмном режиме."
msgid "HEX color used for container/card elements in light mode."
msgstr "HEX-цвет для элементов контейнеров и карточек в светлом режиме."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "HEX-цвет текста индикатора прогресса в тёмном режиме."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr "HEX-цвет текста индикатора прогресса в светлом режиме."
msgid "HEX color used for the main page background in dark mode."
msgstr "HEX-цвет фона основной страницы в тёмном режиме."
msgid "HEX color used for the main page background in light mode."
msgstr "HEX-цвет фона основной страницы в светлом режиме."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "HEX-цвет боковой панели навигации в тёмном режиме."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "HEX-цвет боковой панели навигации в светлом режиме."
msgid "Installation cancelled by user."
msgstr "Установка отменена пользователем."
msgid "Installed version"
msgstr "Установленная версия"
msgid "Installing package"
msgstr "Установка пакета"
msgid "Keep action bar visible while scrolling"
msgstr "Оставлять панель действий видимой при прокрутке"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Фиксировать кнопки 'Сохранить', 'Применить' и 'Сброс' внизу экрана во время "
"прокрутки."
msgid "Large"
msgstr "Большой"
msgid "Large (8px)"
msgstr "Большой (8px)"
msgid "Light mode"
msgstr "Светлый режим"
msgid "Line %d"
msgstr "Строка %d"
msgid "Lines"
msgstr "Строки"
msgid "Login"
msgstr "Вход"
msgid "Login card opacity"
msgstr "Непрозрачность карточки входа"
msgid "Login page"
msgstr "Страница входа"
msgid "Medium"
msgstr "Средний"
msgid "Medium (4px)"
msgstr "Средний (4px)"
msgid "Menu"
msgstr "Меню"
msgid "Menu title cannot be empty."
msgstr "Название пункта меню не может быть пустым."
msgid "Navigation font weight"
msgstr "Насыщенность шрифта навигации"
msgid "New primary menu"
msgstr "Новое главное меню"
msgid "New primary menu %d"
msgstr "Новое главное меню %d"
msgid "Next"
msgstr "Далее"
msgid "Nightly build available (reinstallation check)."
msgstr "Доступна nightly-сборка (проверка необходимости переустановки)."
msgid "Nightly Channel (Prerelease)"
msgstr "Канал Nightly (предварительный выпуск)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "В этом выпуске не найден подходящий пакет для архитектуры вашей системы."
msgid "None"
msgstr "Нет"
msgid "Normal"
msgstr "Обычно"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Непрозрачность карточки входа в тёмном режиме. 0 означает полностью "
"прозрачную карточку, 1 — полностью непрозрачную."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Непрозрачность карточки входа в светлом режиме. 0 означает полностью "
"прозрачную карточку, 1 — полностью непрозрачную."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Необязательный необработанный CSS, внедряемый в шаблон заголовка Fluent. "
"Используйте его для дополнительных переопределений переменных --fluent-* или "
"точечных настроек страниц, для которых нет отдельных параметров."
msgid "Package format"
msgstr "Формат пакета"
msgid "Page background"
msgstr "Фон страницы"
msgid "Please enter your password."
msgstr "Введите пароль."
msgid "Please enter your username."
msgstr "Введите имя пользователя."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Положение текста индикатора прогресса относительно полосы. Выравнивание "
"начала/конца следует направлению текста (слева направо или справа налево)."
msgid "Preset Vendor / Generator"
msgstr "Предустановленный производитель / генератор"
msgid "Primary menu title"
msgstr "Заголовок основного меню"
msgid "Primary menu titles cannot be empty."
msgstr "Заголовки основного меню не могут быть пустыми."
msgid "Primary menu titles must be unique."
msgstr "Заголовки основного меню должны быть уникальными."
msgid "Progress bar text color"
msgstr "Цвет текста индикатора прогресса"
msgid "Progress bar text position"
msgstr "Положение текста полосы прогресса"
msgid "Random Local MAC"
msgstr "Случайный локальный MAC-адрес"
msgid "Randomize MAC"
msgstr "Случайный MAC-адрес"
msgid "Reload Web Interface"
msgstr "Перезагрузить веб-интерфейс"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Заменить стандартные списки выбора пользовательским выпадающим компонентом "
"темы."
msgid "Respect reduced-motion preference"
msgstr "Учитывать настройку уменьшения анимации"
msgid "Restore %s to its original menu name"
msgstr "Восстановить исходное имя меню для %s"
msgid "Restore %s to its original menu position"
msgstr "Восстановить исходное положение меню для %s"
msgid "Restore defaults"
msgstr "Восстановить настройки по умолчанию"
msgid "Restore to original title"
msgstr "Восстановить исходное название"
msgid "Retrying with token..."
msgstr "Повторная попытка с токеном..."
msgid "Rounded (6px)"
msgstr "Скруглённый (6px)"
msgid "Save"
msgstr "Сохранить"
msgid "Scroll to bottom"
msgstr "Прокрутить вниз"
msgid "Scroll to top"
msgstr "Прокрутить вверх"
msgid "Search menu items"
msgstr "Поиск по пунктам меню"
msgid "Search menu..."
msgstr "Искать в меню..."
msgid "Second-level menu title"
msgstr "Название второго уровня меню"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Выберите глубину тени для тематических карточек и панелей."
msgid "Select vendor prefix..."
msgstr "Выбрать префикс производителя..."
msgid "Semibold"
msgstr "Полужирный"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Задаёт базовый размер шрифта интерфейса в пикселях. Большинство текстовых "
"элементов темы масштабируются от этого значения через CSS-переменные Fluent. "
"Рекомендуемый диапазон: 12-18px."
msgid "Show %s in the menu"
msgstr "Показать %s в меню"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Отображать ожидающие изменения UCI в главном сообщении о статусе применения, "
"пока процесс применения конфигурации не завершится."
msgid "Show top loading bar"
msgstr "Показывать верхнюю полосу загрузки"
msgid "Show UCI changes while applying configuration"
msgstr "Показывать изменения UCI во время применения конфигурации"
msgid "Sidebar background"
msgstr "Фон боковой панели"
msgid "Sidebar width"
msgstr "Ширина боковой панели"
msgid "Slow"
msgstr "Медленно"
msgid "Small"
msgstr "Маленький"
msgid "Small (2px)"
msgstr "Маленький (2px)"
msgid "Software Update"
msgstr "Обновление ПО"
msgid "Source code"
msgstr "Исходный код"
msgid "Square (0px)"
msgstr "Квадрат (0px)"
msgid "Stable Channel"
msgstr "Стабильный канал"
msgid "Starting backend download..."
msgstr "Запуск загрузки на стороне роутера..."
msgid "Starting update process..."
msgstr "Запуск процесса обновления..."
msgid "Submit"
msgstr "Отправить"
msgid "Switch theme mode"
msgstr "Переключить режим темы"
msgid "Text direction"
msgstr "Направление текста"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Сохраненная структура меню недействительна. Выберите \"Восстановить настройки "
"по умолчанию\" или внесите изменения перед сохранением."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Сохраненная структура меню недействительна. Восстановите настройки по "
"умолчанию или отредактируйте структуру перед сохранением."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Тема устанавливается на ваш роутер. Журнал показан ниже. После перезапуска "
"RPCD перезагрузка веб-интерфейса применит изменения."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "Пакет темы готов. Продолжить установку?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Токену НЕ требуются дополнительные разрешения или области доступа "
"(достаточно публичного доступа только для чтения)."
msgid "Theme settings"
msgstr "Настройки темы"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Тема успешно обновлена! Выполняется перезагрузка службы RPC, обновите "
"страницу через 5 секунд."
msgid "Theme transition speed"
msgstr "Скорость переходов темы"
msgid "Toggle fullscreen"
msgstr "Переключить полноэкранный режим"
msgid "Triggering installation on router..."
msgstr "Запуск установки на роутере..."
msgid "Update channel"
msgstr "Канал обновлений"
msgid "Update failed"
msgstr "Обновление не удалось"
msgid "Upgrade Successful!"
msgstr "Обновление прошло успешно!"
msgid "Use Fluent custom select dropdowns"
msgstr "Использовать пользовательские выпадающие списки Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Использовать View Transition API браузера для анимации переходов между "
"страницами LuCI, если это поддерживается."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Использовать системные или браузерные предпочтения либо всегда отображать "
"тему Fluent в фиксированной светлой или тёмной палитре."
msgid "Username is required."
msgstr "Требуется имя пользователя."
msgid "valid HEX color value"
msgstr "корректное значение HEX-цвета"
msgid "Warnings"
msgstr "Предупреждения"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Если включено, анимации Fluent будут учитывать настройку уменьшения анимации "
"в браузере или операционной системе."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Ширина основной боковой панели навигации в пикселях."
msgid "Word wrap"
msgstr "Перенос слов"
msgid "You can create a new token at"
msgstr "Новый токен можно создать здесь:"
msgid "Your theme is up to date!"
msgstr "У вас уже установлена последняя версия темы!"
+697
View File
@@ -0,0 +1,697 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:35+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr ""
msgid "A new version is available!"
msgstr ""
msgid "About"
msgstr ""
msgid "Above bar, end"
msgstr ""
msgid "Above bar, start"
msgstr ""
msgid "Accent color"
msgstr ""
msgid "Add primary menu"
msgstr ""
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
msgid "Advanced"
msgstr ""
msgid "Advanced MAC Selector"
msgstr ""
msgid "and %d more..."
msgstr ""
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
msgid "Animation"
msgstr ""
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
msgid "Author"
msgstr ""
msgid "Auto-scroll"
msgstr ""
msgid "Automatic (Arabic/Persian locales only)"
msgstr ""
msgid "Backdrop blur radius"
msgstr ""
msgid "Backend (GHProxy Acceleration)"
msgstr ""
msgid "Backend (Official GitHub)"
msgstr ""
msgid "Base font size"
msgstr ""
msgid "Below bar, end"
msgstr ""
msgid "Below bar, start"
msgstr ""
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Card background"
msgstr ""
msgid "Card shadow"
msgstr ""
msgid "Check for updates"
msgstr ""
msgid "Checking for updates..."
msgstr ""
msgid "Choose color"
msgstr ""
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
msgid "Clean up"
msgstr ""
msgid "Clean up invalid items"
msgstr ""
msgid "Clean up invalid items (%d)"
msgstr ""
msgid "Close"
msgstr ""
msgid "Color mode"
msgstr ""
msgid "Colors"
msgstr ""
msgid "Comfortable (42px)"
msgstr ""
msgid "Compact (32px)"
msgstr ""
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
msgid "Confirm"
msgstr ""
msgid "Confirm Installation"
msgstr ""
msgid "Continue"
msgstr ""
msgid "Control height"
msgstr ""
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
msgid "Copied"
msgstr ""
msgid "Copy log"
msgstr ""
msgid "Corner radius"
msgstr ""
msgid "Current / Pending MAC Address"
msgstr ""
msgid "Custom CSS"
msgstr ""
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
msgid "Dark mode"
msgstr ""
msgid "Delete primary menu"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Disconnects"
msgstr ""
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
msgid "Download and Install"
msgstr ""
msgid "Download log"
msgstr ""
msgid "Downloaded"
msgstr ""
msgid "Downloading on router"
msgstr ""
msgid "Drag to move second-level menu"
msgstr ""
msgid "Drag to reorder primary menu"
msgstr ""
msgid "Drop second-level menus here"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Enable page transition animation"
msgstr ""
msgid "Enable tab underline animation"
msgstr ""
msgid "Errors"
msgstr ""
msgid "Expecting: %s"
msgstr ""
msgid "Extra large (12px)"
msgstr ""
msgid "Failed to check for updates"
msgstr ""
msgid "Failed to fetch current theme version."
msgstr ""
msgid "Fast"
msgstr ""
msgid "Finished"
msgstr ""
msgid "Fix primary menu title errors before saving."
msgstr ""
msgid "Fluent Design 2 theme for LuCI"
msgstr ""
msgid "Fluent Theme"
msgstr ""
msgid "Fluent theme settings"
msgstr ""
msgid "Follow system"
msgstr ""
msgid "Force dark mode"
msgstr ""
msgid "Force light mode"
msgstr ""
msgid "Force LTR"
msgstr ""
msgid "Force RTL"
msgstr ""
msgid "General"
msgstr ""
msgid "GitHub Token Required"
msgstr ""
msgid "Header height"
msgstr ""
msgid "Height of the top header bar in pixels."
msgstr ""
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
msgid "HEX color used for container/card elements in dark mode."
msgstr ""
msgid "HEX color used for container/card elements in light mode."
msgstr ""
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
msgid "HEX color used for the main page background in dark mode."
msgstr ""
msgid "HEX color used for the main page background in light mode."
msgstr ""
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr ""
msgid "HEX color used for the navigation sidebar in light mode."
msgstr ""
msgid "Installation cancelled by user."
msgstr ""
msgid "Installed version"
msgstr ""
msgid "Installing package"
msgstr ""
msgid "Keep action bar visible while scrolling"
msgstr ""
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
msgid "Large"
msgstr ""
msgid "Large (8px)"
msgstr ""
msgid "Light mode"
msgstr ""
msgid "Line %d"
msgstr ""
msgid "Lines"
msgstr ""
msgid "Login"
msgstr ""
msgid "Login card opacity"
msgstr ""
msgid "Login page"
msgstr ""
msgid "Medium"
msgstr ""
msgid "Medium (4px)"
msgstr ""
msgid "Menu"
msgstr ""
msgid "Menu title cannot be empty."
msgstr ""
msgid "Navigation font weight"
msgstr ""
msgid "New primary menu"
msgstr ""
msgid "New primary menu %d"
msgstr ""
msgid "Next"
msgstr ""
msgid "Nightly build available (reinstallation check)."
msgstr ""
msgid "Nightly Channel (Prerelease)"
msgstr ""
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
msgid "None"
msgstr ""
msgid "Normal"
msgstr ""
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
msgid "Package format"
msgstr ""
msgid "Page background"
msgstr ""
msgid "Please enter your password."
msgstr ""
msgid "Please enter your username."
msgstr ""
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
msgid "Preset Vendor / Generator"
msgstr ""
msgid "Primary menu title"
msgstr ""
msgid "Primary menu titles cannot be empty."
msgstr ""
msgid "Primary menu titles must be unique."
msgstr ""
msgid "Progress bar text color"
msgstr ""
msgid "Progress bar text position"
msgstr ""
msgid "Random Local MAC"
msgstr ""
msgid "Randomize MAC"
msgstr ""
msgid "Reload Web Interface"
msgstr ""
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
msgid "Respect reduced-motion preference"
msgstr ""
msgid "Restore %s to its original menu name"
msgstr ""
msgid "Restore %s to its original menu position"
msgstr ""
msgid "Restore defaults"
msgstr ""
msgid "Restore to original title"
msgstr ""
msgid "Retrying with token..."
msgstr ""
msgid "Rounded (6px)"
msgstr ""
msgid "Save"
msgstr ""
msgid "Scroll to bottom"
msgstr ""
msgid "Scroll to top"
msgstr ""
msgid "Search menu items"
msgstr ""
msgid "Search menu..."
msgstr ""
msgid "Second-level menu title"
msgstr ""
msgid "Select the shadow depth applied to themed cards and panels."
msgstr ""
msgid "Select vendor prefix..."
msgstr ""
msgid "Semibold"
msgstr ""
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
msgid "Show %s in the menu"
msgstr ""
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
msgid "Show top loading bar"
msgstr ""
msgid "Show UCI changes while applying configuration"
msgstr ""
msgid "Sidebar background"
msgstr ""
msgid "Sidebar width"
msgstr ""
msgid "Slow"
msgstr ""
msgid "Small"
msgstr ""
msgid "Small (2px)"
msgstr ""
msgid "Software Update"
msgstr ""
msgid "Source code"
msgstr ""
msgid "Square (0px)"
msgstr ""
msgid "Stable Channel"
msgstr ""
msgid "Starting backend download..."
msgstr ""
msgid "Starting update process..."
msgstr ""
msgid "Submit"
msgstr ""
msgid "Switch theme mode"
msgstr ""
msgid "Text direction"
msgstr ""
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr ""
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
msgid "Theme settings"
msgstr ""
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
msgid "Theme transition speed"
msgstr ""
msgid "Toggle fullscreen"
msgstr ""
msgid "Triggering installation on router..."
msgstr ""
msgid "Update channel"
msgstr ""
msgid "Update failed"
msgstr ""
msgid "Upgrade Successful!"
msgstr ""
msgid "Use Fluent custom select dropdowns"
msgstr ""
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
msgid "Username is required."
msgstr ""
msgid "valid HEX color value"
msgstr ""
msgid "Warnings"
msgstr ""
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
msgid "Width of the main navigation sidebar in pixels."
msgstr ""
msgid "Word wrap"
msgstr ""
msgid "You can create a new token at"
msgstr ""
msgid "Your theme is up to date!"
msgstr ""
+771
View File
@@ -0,0 +1,771 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d alt seviye menü"
msgid "A new version is available!"
msgstr "Yeni bir sürüm mevcut!"
msgid "About"
msgstr "Hakkında"
msgid "Above bar, end"
msgstr "Çubuk üzerindeki son kısım"
msgid "Above bar, start"
msgstr "Çubuk üzerindeki başlangıç kısmı"
msgid "Accent color"
msgstr "Vurgu rengi"
msgid "Add primary menu"
msgstr "Birincil menü ekle"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Yerleşim, tipografi, geçiş zamanlaması, gölgeler gibi ayarları yapın ve "
"yerleşik kontroller yeterli olmadığında özel CSS değişkenleri veya kurallar "
"ekleyin."
msgid "Advanced"
msgstr "Gelişmiş"
msgid "Advanced MAC Selector"
msgstr "Gelişmiş MAC Seçici"
msgid "and %d more..."
msgstr "ve %d daha fazla..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Yerel LuCI sekmeleri ve temalı sekme menüleri arasında geçiş yaparken, etkin "
"alt çizginin animasyonunu sağlayın."
msgid "Animation"
msgstr "Animasyon"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"API hız sınırı aşıldı. Devam etmek için bir GitHub Token girin. Bu token "
"yalnızca ön uç istekleri için kullanılır ve yönlendirici arka ucunda "
"kaydedilmez."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Standart düğmeler, giriş alanları, seçim kutuları ve tema genelindeki benzer "
"form kontrollerine uygulanır."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"%d geçersiz/yüklü olmayan menü öğesini veya kuralı temizlemek istediğinizden "
"emin misiniz?"
msgid "Author"
msgstr "Yazar"
msgid "Auto-scroll"
msgstr "Otomatik kaydırma"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Otomatik (yalnızca Arapça/Farsça yerel ayarlar)"
msgid "Backdrop blur radius"
msgstr "Arka plan bulanıklık yarıçapı"
msgid "Backend (GHProxy Acceleration)"
msgstr "Arka Uç (GHProxy Hızlandırma)"
msgid "Backend (Official GitHub)"
msgstr "Arka Uç (Resmi GitHub)"
msgid "Base font size"
msgstr "Temel yazı boyutu"
msgid "Below bar, end"
msgstr "Çubuğun altındaki son kısım"
msgid "Below bar, start"
msgstr "Çubuğun altındaki başlangıç kısmı"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Karanlık modda, giriş kartının arkasındaki bulanıklık yarıçapı (piksel). "
"Bulanıklığı devre dışı bırakmak için 0 kullanın."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Açık modda, giriş kartının arkasındaki bulanıklık yarıçapı (piksel). "
"Bulanıklığı devre dışı bırakmak için 0 kullanın."
msgid "Cancel"
msgstr "İptal"
msgid "Card background"
msgstr "Kart arka planı"
msgid "Card shadow"
msgstr "Kart gölgelendirmesi"
msgid "Check for updates"
msgstr "Güncellemeleri kontrol et"
msgid "Checking for updates..."
msgstr "Güncellemeler aranıyor..."
msgid "Choose color"
msgstr "Renk seç"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Kimlik doğrulama ve giriş sayfaları için belge yönünü seçin. Otomatik mod, "
"Arapça ve Farsça dil kodlarını (ar, ar_*, ar-*, fa, fa_*, fa-*) sağdan sola "
"(RTL) olarak çözer ve eksik veya tanınmayan yerel ayarlar için soldan sağa "
"(LTR) olarak geri döner."
msgid "Clean up"
msgstr "Temizle"
msgid "Clean up invalid items"
msgstr "Geçersiz öğeleri temizle"
msgid "Clean up invalid items (%d)"
msgstr "Geçersiz öğeleri temizle (%d)"
msgid "Close"
msgstr "Kapat"
msgid "Color mode"
msgstr "Renk modu"
msgid "Colors"
msgstr "Renkler"
msgid "Comfortable (42px)"
msgstr "Rahat (42px)"
msgid "Compact (32px)"
msgstr "Kompakt (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Renk modunu, vurgu renklerini, düzen boyutlandırmasını, animasyon "
"davranışını, giriş sayfası görünümünü ve luci-theme-fluent için gelişmiş CSS "
"geçersiz kılmalarını yapılandırın."
msgid "Confirm"
msgstr "Onayla"
msgid "Confirm Installation"
msgstr "Yüklemeyi Onayla"
msgid "Continue"
msgstr "Devam Et"
msgid "Control height"
msgstr "Denetim yüksekliği"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Ana gezinme etiketleri ve ilgili tema metin vurguları tarafından kullanılan "
"yazı tipi kalınlığını kontrol eder."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Kartlar, düğmeler, giriş alanları ve ilgili kullanıcı arayüzü öğeleri "
"tarafından paylaşılan Fluent köşe yarıçapı belirteçlerini kontrol eder."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Menü, başlık ve diğer tema animasyonları tarafından paylaşılan Fluent geçiş "
"zamanlamasını kontrol eder."
msgid "Copied"
msgstr "Kopyalandı"
msgid "Copy log"
msgstr "Günlük kaydı kopyala"
msgid "Corner radius"
msgstr "Köşe yarıçapı"
msgid "Current / Pending MAC Address"
msgstr "Mevcut / Bekleyen MAC Adresi"
msgid "Custom CSS"
msgstr "Özel CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Giriş sayfası arka planını, kart opaklığını ve açık ve karanlık modlar için "
"bulanıklık yarıçapını özelleştirin."
msgid "Dark mode"
msgstr "Karanlık mod"
msgid "Delete primary menu"
msgstr "Birincil menüyü sil"
msgid "Disabled"
msgstr "Devre Dışı"
msgid "Disconnects"
msgstr "Ayrılanlar"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Sayfa yüklenmeleri ve geçişler sırasında temalı yükleme göstergesini en üst "
"kenarda görüntüle."
msgid "Download and Install"
msgstr "İndir ve Yükle"
msgid "Download log"
msgstr "Günlük kaydını indir"
msgid "Downloaded"
msgstr "İndirildi"
msgid "Downloading on router"
msgstr "Router'da indirme yapılıyor"
msgid "Drag to move second-level menu"
msgstr "Alt seviye menüyü taşımak için sürükleyin"
msgid "Drag to reorder primary menu"
msgstr "Birincil menüyü yeniden sıralamak için sürükleyin"
msgid "Drop second-level menus here"
msgstr "Alt seviye menüleri buraya bırakın"
msgid "Edit"
msgstr "Düzenle"
msgid "Enable page transition animation"
msgstr "Sayfa geçiş animasyonunu etkinleştir"
msgid "Enable tab underline animation"
msgstr "Sekme alt çizgi animasyonunu etkinleştir"
msgid "Errors"
msgstr "Hatalar"
msgid "Expecting: %s"
msgstr "Bekleniyor: %s"
msgid "Extra large (12px)"
msgstr "Çok büyük (12px)"
msgid "Failed to check for updates"
msgstr "Güncelleme kontrolü başarısız oldu"
msgid "Failed to fetch current theme version."
msgstr "Mevcut tema sürümü alınamadı."
msgid "Fast"
msgstr "Hızlı"
msgid "Finished"
msgstr "Tamamlandı"
msgid "Fix primary menu title errors before saving."
msgstr "Kaydetmeden önce birincil menü başlığındaki hataları düzeltin."
msgid "Fluent Design 2 theme for LuCI"
msgstr "LuCI için Fluent Design 2 teması"
msgid "Fluent Theme"
msgstr "Fluent Teması"
msgid "Fluent theme settings"
msgstr "Fluent tema ayarları"
msgid "Follow system"
msgstr "Sistem ayarlarını uygula"
msgid "Force dark mode"
msgstr "Karanlık modu zorla etkinleştir"
msgid "Force light mode"
msgstr "Açık modu zorla etkinleştir"
msgid "Force LTR"
msgstr "Soldan sağa yönlendirmeyi (LTR) zorla kullan"
msgid "Force RTL"
msgstr "Sağdan sola yönlendirmeyi (RTL) zorla kullan"
msgid "General"
msgstr "Genel"
msgid "GitHub Token Required"
msgstr "GitHub belirteci gereklidir"
msgid "Header height"
msgstr "Üst başlık yüksekliği"
msgid "Height of the top header bar in pixels."
msgstr "En üstteki başlık çubuğunun piksel cinsinden yüksekliği."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Arayüz karanlık modda görüntülendiğinde kullanılan birincil Fluent vurgu "
"rengi (HEX)."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Arayüz açık modda görüntülendiğinde kullanılan birincil Fluent vurgu rengi "
"(HEX)."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Karanlık modda kullanılan konteyner/kart elemanları için HEX renk."
msgid "HEX color used for container/card elements in light mode."
msgstr "Açık modda kullanılan konteyner/kart elemanları için HEX renk."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Arayüz karanlık modda görüntülendiğinde kullanılan ilerleme çubuğu "
"etiketleri için HEX renk."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Arayüz açık modda görüntülendiğinde kullanılan ilerleme çubuğu etiketleri "
"için HEX renk."
msgid "HEX color used for the main page background in dark mode."
msgstr "Karanlık modda ana sayfa arka planı için kullanılan HEX renk."
msgid "HEX color used for the main page background in light mode."
msgstr "Açık modda ana sayfa arka planı için kullanılan HEX renk."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "Karanlık modda navigasyon yan çubuğu için kullanılan HEX rengi."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "Açık modda navigasyon yan çubuğu için kullanılan HEX rengi."
msgid "Installation cancelled by user."
msgstr "Kurulum kullanıcı tarafından iptal edildi."
msgid "Installed version"
msgstr "Yüklenen sürüm"
msgid "Installing package"
msgstr "Paket yükleniyor"
msgid "Keep action bar visible while scrolling"
msgstr "Kaydırma sırasında işlem çubuğunu görünür tutun"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Kaydırma sırasında Kaydet, Uygula ve Sıfırla işlemlerini, ekranın alt "
"kısmında sabit tutun."
msgid "Large"
msgstr "Büyük"
msgid "Large (8px)"
msgstr "Büyük (8px)"
msgid "Light mode"
msgstr "Açık mod"
msgid "Line %d"
msgstr "%d. satır"
msgid "Lines"
msgstr "Satırlar"
msgid "Login"
msgstr "Giriş"
msgid "Login card opacity"
msgstr "Giriş kartı opaklığı"
msgid "Login page"
msgstr "Giriş sayfası"
msgid "Medium"
msgstr "Orta"
msgid "Medium (4px)"
msgstr "Orta (4px)"
msgid "Menu"
msgstr "Menü"
msgid "Menu title cannot be empty."
msgstr "Menü başlığı boş olamaz."
msgid "Navigation font weight"
msgstr "Navigasyon yazı tipi kalınlığı"
msgid "New primary menu"
msgstr "Yeni birincil menü"
msgid "New primary menu %d"
msgstr "Yeni birincil menü %d"
msgid "Next"
msgstr "İleri"
msgid "Nightly build available (reinstallation check)."
msgstr "Nightly derlemesi mevcut (yeniden yükleme kontrolü)."
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly Kanalı (Ön Sürüm)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "Bu sürümde sistem mimariniz için uygun paket dosyası bulunamadı."
msgid "None"
msgstr "Yok"
msgid "Normal"
msgstr "Normal"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Karanlık modda giriş kartının opaklığı. 0 tamamen şeffaf, 1 ise tamamen opak "
"anlamına gelir."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Açık modda giriş kartının opaklığı. 0 tamamen şeffaf, 1 ise tamamen opak "
"anlamına gelir."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Fluent başlık şablonuna eklenen ham CSS. Ek --fluent-* değişkeni geçersiz "
"kılmaları veya özel seçenekler olarak sunulmayan sayfa özelindeki "
"ayarlamalar için kullanın."
msgid "Package format"
msgstr "Paket formatı"
msgid "Page background"
msgstr "Sayfa arka planı"
msgid "Please enter your password."
msgstr "Lütfen şifrenizi girin."
msgid "Please enter your username."
msgstr "Lütfen kullanıcı adınızı girin."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"İlerleme çubuğu etiketlerinin, çubukla ilişkili konumu. Başlangıç/bitiş "
"hizalaması metin yönüne (SOL-SAĞ veya SAĞ-SOL) göre belirlenir."
msgid "Preset Vendor / Generator"
msgstr "Önceden Ayarlanmış Satıcı / Oluşturucu"
msgid "Primary menu title"
msgstr "Ana menü başlığı"
msgid "Primary menu titles cannot be empty."
msgstr "Ana menü başlıkları boş olamaz."
msgid "Primary menu titles must be unique."
msgstr "Ana menü başlıkları benzersiz olmalıdır."
msgid "Progress bar text color"
msgstr "İlerleme çubuğu metin rengi"
msgid "Progress bar text position"
msgstr "İlerleme çubuğu metni konumu"
msgid "Random Local MAC"
msgstr "Rastgele Yerel MAC Adresi"
msgid "Randomize MAC"
msgstr "MAC Adresini Rastgeleleştir"
msgid "Reload Web Interface"
msgstr "Web Arayüzünü Yeniden Yükle"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "Yerleşik seçim öğelerini, temanın özel açılır menü bileşeniyle değiştir."
msgid "Respect reduced-motion preference"
msgstr "Azaltılmış hareket tercihine saygı göster"
msgid "Restore %s to its original menu name"
msgstr "%s'i orijinal menü adına geri yükle"
msgid "Restore %s to its original menu position"
msgstr "%s'i orijinal menü konumuna geri yükle"
msgid "Restore defaults"
msgstr "Varsayılanlara geri yükle"
msgid "Restore to original title"
msgstr "Orijinal başlığa geri yükle"
msgid "Retrying with token..."
msgstr "Token ile yeniden deniyor..."
msgid "Rounded (6px)"
msgstr "Yuvarlak (6px)"
msgid "Save"
msgstr "Kaydet"
msgid "Scroll to bottom"
msgstr "Aşağıya kaydır"
msgid "Scroll to top"
msgstr "Yukarı kaydır"
msgid "Search menu items"
msgstr "Menü öğelerini ara"
msgid "Search menu..."
msgstr "Menüyü ara..."
msgid "Second-level menu title"
msgstr "İkinci seviye menü başlığı"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Temalı kartlara ve panellere uygulanan gölge derinliğini seçin."
msgid "Select vendor prefix..."
msgstr "Satıcı önekini seç..."
msgid "Semibold"
msgstr "Yarı Kalın"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Arayüzün temel yazı tipi boyutunu piksel cinsinden ayarlar. Çoğu tema metni, "
"Fluent CSS değişkenleri aracılığıyla bu değerden ölçeklenir. Önerilen "
"aralık: 12-18px."
msgid "Show %s in the menu"
msgstr "%s'i menüde göster"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Yapılandırma uygulanana kadar, üst kısımda bekleyen UCI değişikliklerini "
"gösterin."
msgid "Show top loading bar"
msgstr "Üst yükleme çubuğunu göster"
msgid "Show UCI changes while applying configuration"
msgstr "Yapılandırma uygulanırken UCI değişikliklerini göster."
msgid "Sidebar background"
msgstr "Yan çubuk arka planı"
msgid "Sidebar width"
msgstr "Yan çubuk genişliği"
msgid "Slow"
msgstr "Yavaş"
msgid "Small"
msgstr "Küçük"
msgid "Small (2px)"
msgstr "Küçük (2px)"
msgid "Software Update"
msgstr "Yazılım Güncellemesi"
msgid "Source code"
msgstr "Kaynak kodu"
msgid "Square (0px)"
msgstr "Kare (0px)"
msgid "Stable Channel"
msgstr "Kararlı Kanal"
msgid "Starting backend download..."
msgstr "Arka uç indirme başlatılıyor..."
msgid "Starting update process..."
msgstr "Güncelleme işlemi başlatılıyor..."
msgid "Submit"
msgstr "Gönder"
msgid "Switch theme mode"
msgstr "Tema modunu değiştir"
msgid "Text direction"
msgstr "Metin yönü"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Kaydedilen menü düzeni geçersiz. \"Varsayılanlara geri yükle\" seçeneğini "
"kullanın veya kaydetmeden önce bir düzenleme yapın."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Kaydedilen menü düzeni geçersiz. Varsayılanlara geri yükleyin veya "
"kaydetmeden önce düzeni düzenleyin."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Tema, yönlendiricinize kuruluyor. Günlükler aşağıda görüntüleniyor. Web "
"arayüzünü yeniden yüklemek, RPCD yeniden başlatıldığında değişiklikleri "
"uygulayacaktır."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "Tema paketi hazır. Kurulumu gerçekten devam etmek istiyorsunuz?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Bu token için herhangi bir izin/erişim yetkisi verilmesine gerek YOK (sadece "
"okuma erişimi yeterlidir)."
msgid "Theme settings"
msgstr "Tema ayarları"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Tema başarıyla güncellendi! RPC hizmeti yeniden yükleniyor, lütfen sayfayı 5 "
"saniye içinde yenileyin."
msgid "Theme transition speed"
msgstr "Tema geçiş hızı"
msgid "Toggle fullscreen"
msgstr "Tam ekranı aç/kapat"
msgid "Triggering installation on router..."
msgstr "Kurulum yönlendiricide başlatılıyor..."
msgid "Update channel"
msgstr "Güncelleme kanalı"
msgid "Update failed"
msgstr "Güncelleme başarısız oldu"
msgid "Upgrade Successful!"
msgstr "Yükseltme başarılı!"
msgid "Use Fluent custom select dropdowns"
msgstr "Fluent özel açılır menüleri kullan"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"LuCI sayfaları arasında gezinirken animasyonlar için tarayıcı View "
"Transition API'sini kullanın (destekleniyorsa)."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Sistem/tarayıcı tercihini kullanın veya Fluent temasını her zaman sabit bir "
"açık veya karanlık paletle görüntüleyin."
msgid "Username is required."
msgstr "Kullanıcı adı gereklidir."
msgid "valid HEX color value"
msgstr "Geçerli HEX renk değeri"
msgid "Warnings"
msgstr "Uyarılar"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Etkinleştirildiğinde, Fluent animasyonları tarayıcı veya işletim sisteminin "
"hareket azaltma tercihini takip eder."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Ana gezinme yan çubuğunun genişliği (piksel cinsinden)."
msgid "Word wrap"
msgstr "Metin kaydırma"
msgid "You can create a new token at"
msgstr "Yeni bir belirteç oluşturabileceğiniz adres:"
msgid "Your theme is up to date!"
msgstr "Temanız güncel."
+773
View File
@@ -0,0 +1,773 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d другорядні меню"
msgid "A new version is available!"
msgstr "Доступна нова версія!"
msgid "About"
msgstr "Про"
msgid "Above bar, end"
msgstr "Кінець над смужкою"
msgid "Above bar, start"
msgstr "Початок над смужкою"
msgid "Accent color"
msgstr "Акцентний колір"
msgid "Add primary menu"
msgstr "Додати головне меню"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Налаштуйте макет, типографіку, час переходу, тіні та додавайте власні "
"CSS-змінні або правила, якщо вбудованих елементів керування недостатньо."
msgid "Advanced"
msgstr "Розширені"
msgid "Advanced MAC Selector"
msgstr "Розширений вибір MAC-адрес"
msgid "and %d more..."
msgstr "і ще %d..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Анімуйте активну підкреслену лінію при перемиканні між стандартними "
"вкладками LuCI та тематичними меню."
msgid "Animation"
msgstr "Анімація"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Досягнуто обмеження швидкості API. Будь ласка, введіть токен GitHub, щоб "
"продовжити. Цей токен використовується лише для запитів інтерфейсу та не "
"зберігається на сервері маршрутизатора."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Застосовується до стандартних кнопок, полів введення, випадаючих списків та "
"інших елементів керування формами в темі."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Ви впевнені, що хочете видалити %d недійсних/неінстальованих пунктів меню "
"або правил?"
msgid "Author"
msgstr "Автор"
msgid "Auto-scroll"
msgstr "Автоматична прокрутка"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Автоматично (лише для локалей арабською/перською мовами)"
msgid "Backdrop blur radius"
msgstr "Радіус розмиття фону"
msgid "Backend (GHProxy Acceleration)"
msgstr "Серверна частина (прискорення через GHProxy)"
msgid "Backend (Official GitHub)"
msgstr "Backend (Офіційний GitHub)"
msgid "Base font size"
msgstr "Розмір базового шрифту"
msgid "Below bar, end"
msgstr "Кінець під смужкою"
msgid "Below bar, start"
msgstr "Початок під смужкою"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Радіус розмиття в пікселях за карткою входу в темному режимі. Використовуйте "
"0, щоб вимкнути розмиття."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Радіус розмиття в пікселях за карткою входу в світлому режимі. "
"Використовуйте 0, щоб вимкнути розмиття."
msgid "Cancel"
msgstr "Скасувати"
msgid "Card background"
msgstr "Фон картки"
msgid "Card shadow"
msgstr "Тінь картки"
msgid "Check for updates"
msgstr "Перевірити наявність оновлень"
msgid "Checking for updates..."
msgstr "Перевірка наявності оновлень..."
msgid "Choose color"
msgstr "Вибрати колір"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Оберіть напрямок тексту для аутентифікованих сторінок та сторінки входу. "
"Автоматичний режим визначає арабські та перські локалі (ar, ar_*, ar-*, fa, "
"fa_*, fa-*) як RTL і автоматично перемикається на LTR для відсутніх або "
"нерозпізнаних локалей."
msgid "Clean up"
msgstr "Очистити"
msgid "Clean up invalid items"
msgstr "Очистити недійсні елементи"
msgid "Clean up invalid items (%d)"
msgstr "Очистити недійсні елементи (%d)"
msgid "Close"
msgstr "Закрити"
msgid "Color mode"
msgstr "Колірний режим"
msgid "Colors"
msgstr "Кольори"
msgid "Comfortable (42px)"
msgstr "Зручний (42px)"
msgid "Compact (32px)"
msgstr "Компактний (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Налаштуйте колірний режим, акцентні кольори, розміри макету, поведінку "
"анімації, зовнішній вигляд сторінки входу та розширені CSS-налаштування для "
"luci-theme-fluent."
msgid "Confirm"
msgstr "Підтвердити"
msgid "Confirm Installation"
msgstr "Підтвердити встановлення"
msgid "Continue"
msgstr "Продовжити"
msgid "Control height"
msgstr "Висота елементів керування"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Встановлює товщину шрифту, що використовується для міток головної навігації "
"та пов'язаних елементів оформлення теми."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Встановлює спільні значення радіуса кутів Fluent, які використовуються для "
"карток, кнопок, полів введення та інших елементів інтерфейсу."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Встановлює спільне значення часу переходу Fluent, яке використовується для "
"меню, заголовка та інших анімацій теми."
msgid "Copied"
msgstr "Скопіровано"
msgid "Copy log"
msgstr "Копіювати журнал"
msgid "Corner radius"
msgstr "Радіус кутів"
msgid "Current / Pending MAC Address"
msgstr "Поточна / Очікувана MAC-адреса"
msgid "Custom CSS"
msgstr "Власні CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Налаштуйте фон сторінки входу, непрозорість карток і радіус розмиття для "
"світлого та темного режимів."
msgid "Dark mode"
msgstr "Темний режим"
msgid "Delete primary menu"
msgstr "Видалити головне меню"
msgid "Disabled"
msgstr "Вимкнено"
msgid "Disconnects"
msgstr "Відключення"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Відображати тематичний індикатор завантаження у верхній частині під час "
"завантаження сторінок та переходів."
msgid "Download and Install"
msgstr "Завантажити та встановити"
msgid "Download log"
msgstr "Завантажити журнал"
msgid "Downloaded"
msgstr "Завантажено"
msgid "Downloading on router"
msgstr "Завантаження на роутері"
msgid "Drag to move second-level menu"
msgstr "Перетягніть для переміщення другорядного меню"
msgid "Drag to reorder primary menu"
msgstr "Перетягніть для зміни порядку головних меню"
msgid "Drop second-level menus here"
msgstr "Тут можна розмістити другорядні меню"
msgid "Edit"
msgstr "Редагувати"
msgid "Enable page transition animation"
msgstr "Увімкнути анімацію переходу між сторінками"
msgid "Enable tab underline animation"
msgstr "Увімкнути анімацію підкреслення вкладок"
msgid "Errors"
msgstr "Помилки"
msgid "Expecting: %s"
msgstr "Очікується: %s"
msgid "Extra large (12px)"
msgstr "Дуже великий (12px)"
msgid "Failed to check for updates"
msgstr "Не вдалося перевірити наявність оновлень"
msgid "Failed to fetch current theme version."
msgstr "Не вдалося отримати поточну версію теми."
msgid "Fast"
msgstr "Швидко"
msgid "Finished"
msgstr "Завершено"
msgid "Fix primary menu title errors before saving."
msgstr "Виправте помилки заголовків головних меню перед збереженням."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Тема Fluent Design 2 для LuCI"
msgid "Fluent Theme"
msgstr "Тема Fluent"
msgid "Fluent theme settings"
msgstr "Налаштування теми Fluent"
msgid "Follow system"
msgstr "Використовувати системні налаштування"
msgid "Force dark mode"
msgstr "Примусово увімкнути темний режим"
msgid "Force light mode"
msgstr "Примусово увімкнути світлий режим"
msgid "Force LTR"
msgstr "Примусово LTR (зліва направо)"
msgid "Force RTL"
msgstr "Примусово RTL (справа наліво)"
msgid "General"
msgstr "Загальні налаштування"
msgid "GitHub Token Required"
msgstr "Потрібен токен GitHub"
msgid "Header height"
msgstr "Висота заголовка"
msgid "Height of the top header bar in pixels."
msgstr "Висота верхньої панелі заголовка в пікселях."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Шестнадцятковий код кольору, що використовується як основний акцент Fluent у "
"темному режимі."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Шестнадцятковий код кольору, що використовується як основний акцент Fluent у "
"світлому режимі."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Шестнадцятковий код кольору для контейнерів/карток у темному режимі."
msgid "HEX color used for container/card elements in light mode."
msgstr "Шестнадцятковий код кольору для контейнерів/карток у світлому режимі."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "Шестнадцятковий код кольору для міток індикаторів прогресу в темному режимі."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Шестнадцятковий код кольору для міток індикаторів прогресу у світлому "
"режимі."
msgid "HEX color used for the main page background in dark mode."
msgstr "Шестнадцятковий код кольору для фону головної сторінки в темному режимі."
msgid "HEX color used for the main page background in light mode."
msgstr "Шестнадцятковий код кольору для фону головної сторінки у світлому режимі."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr ""
"Шестнадцятковий код кольору, що використовується для навігаційної бічної "
"панелі в темному режимі."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr ""
"Шестнадцятковий код кольору, що використовується для навігаційної бічної "
"панелі у світлому режимі."
msgid "Installation cancelled by user."
msgstr "Встановлення скасовано користувачем."
msgid "Installed version"
msgstr "Встановлена версія"
msgid "Installing package"
msgstr "Встановлення пакета"
msgid "Keep action bar visible while scrolling"
msgstr "Залишати панель дій видимою під час прокручування."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr ""
"Фіксувати кнопки Зберегти, Застосувати та Скинути внизу вікна при "
"прокручуванні."
msgid "Large"
msgstr "Великий"
msgid "Large (8px)"
msgstr "Великий (8px)"
msgid "Light mode"
msgstr "Світлий режим"
msgid "Line %d"
msgstr "Рядок %d"
msgid "Lines"
msgstr "Рядки"
msgid "Login"
msgstr "Увійти"
msgid "Login card opacity"
msgstr "Непрозорість картки входу"
msgid "Login page"
msgstr "Сторінка входу"
msgid "Medium"
msgstr "Середній"
msgid "Medium (4px)"
msgstr "Середній (4px)"
msgid "Menu"
msgstr "Меню"
msgid "Menu title cannot be empty."
msgstr "Назва меню не може бути порожньою."
msgid "Navigation font weight"
msgstr "Товщина шрифту навігації"
msgid "New primary menu"
msgstr "Нове головне меню"
msgid "New primary menu %d"
msgstr "Нове головне меню %d"
msgid "Next"
msgstr "Далі"
msgid "Nightly build available (reinstallation check)."
msgstr "Доступна збірка Nightly (перевірка потреби перевстановлення)."
msgid "Nightly Channel (Prerelease)"
msgstr "Канал Nightly (попередній випуск)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"Не знайдено відповідного файлу пакета для вашої архітектури системи в цій "
"версії."
msgid "None"
msgstr "Відсутнє"
msgid "Normal"
msgstr "Звичайний"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Непрозорість картки входу в темному режимі. 0 – повністю прозора, 1 – "
"повністю непрозора."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Непрозорість картки входу в світлому режимі. 0 – повністю прозора, 1 – "
"повністю непрозора."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"Додатковий CSS-код, який вставляється у шаблон заголовка Fluent. "
"Використовуйте це для додаткових перевизначень змінних --fluent-* або для "
"внесення змін на конкретній сторінці, які не доступні як окремі параметри."
msgid "Package format"
msgstr "Формат пакета"
msgid "Page background"
msgstr "Фон сторінки"
msgid "Please enter your password."
msgstr "Будь ласка, введіть ваш пароль."
msgid "Please enter your username."
msgstr "Будь ласка, введіть ваше ім'я користувача."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Розташування міток прогрес-бару відносно смужки. Вирівнювання початку/кінця "
"відповідає напрямку тексту (зліва направо або справа наліво)."
msgid "Preset Vendor / Generator"
msgstr "Попередньо заданий виробник / генератор"
msgid "Primary menu title"
msgstr "Заголовок основного меню"
msgid "Primary menu titles cannot be empty."
msgstr "Заголовки основного меню не можуть бути порожніми."
msgid "Primary menu titles must be unique."
msgstr "Заголовки основного меню повинні бути унікальними."
msgid "Progress bar text color"
msgstr "Колір тексту індикатора прогресу"
msgid "Progress bar text position"
msgstr "Позиція тексту прогрес-бару"
msgid "Random Local MAC"
msgstr "Випадкова локальна MAC-адреса"
msgid "Randomize MAC"
msgstr "Випадково змінити MAC-адресу"
msgid "Reload Web Interface"
msgstr "Перезавантажити веб-інтерфейс"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "Замінити стандартні елементи вибору на спеціальний випадаючий список теми."
msgid "Respect reduced-motion preference"
msgstr "Враховувати налаштування зменшення анімації."
msgid "Restore %s to its original menu name"
msgstr "Відновити назву меню \"%s\" до початкової"
msgid "Restore %s to its original menu position"
msgstr "Відновити позицію меню \"%s\" до початкової"
msgid "Restore defaults"
msgstr "Відновити налаштування за замовчуванням"
msgid "Restore to original title"
msgstr "Відновити оригінальну назву"
msgid "Retrying with token..."
msgstr "Повторний запуск з токеном..."
msgid "Rounded (6px)"
msgstr "З округленням (6px)"
msgid "Save"
msgstr "Зберегти"
msgid "Scroll to bottom"
msgstr "Прокрутити до низу"
msgid "Scroll to top"
msgstr "Прокрутка до верху"
msgid "Search menu items"
msgstr "Пошук по пунктах меню"
msgid "Search menu..."
msgstr "Пошук у меню..."
msgid "Second-level menu title"
msgstr "Назва підменю"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Виберіть глибину тіні, що застосовується до карток і панелей теми."
msgid "Select vendor prefix..."
msgstr "Вибрати префікс постачальника..."
msgid "Semibold"
msgstr "Напівжирний"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Встановлює базовий розмір шрифту інтерфейсу в пікселях. Більшість тексту "
"теми масштабується від цього значення за допомогою CSS-змінних Fluent. "
"Рекомендований діапазон: 12-18px."
msgid "Show %s in the menu"
msgstr "Показати \"%s\" у меню"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Показувати очікувані зміни конфігурації в повідомленні про стан застосування "
"у верхній частині, доки не завершиться застосування."
msgid "Show top loading bar"
msgstr "Показати верхню смугу завантаження"
msgid "Show UCI changes while applying configuration"
msgstr "Показувати зміни конфігурації під час її застосування."
msgid "Sidebar background"
msgstr "Фон бічної панелі"
msgid "Sidebar width"
msgstr "Ширина бічної панелі"
msgid "Slow"
msgstr "Повільно"
msgid "Small"
msgstr "Малий"
msgid "Small (2px)"
msgstr "Малий (2 пікселі)"
msgid "Software Update"
msgstr "Оновлення програмного забезпечення"
msgid "Source code"
msgstr "Вихідний код"
msgid "Square (0px)"
msgstr "Квадрат (0 пікселів)"
msgid "Stable Channel"
msgstr "Стабільний канал"
msgid "Starting backend download..."
msgstr "Початок завантаження бекенду..."
msgid "Starting update process..."
msgstr "Початок процесу оновлення..."
msgid "Submit"
msgstr "Надіслати"
msgid "Switch theme mode"
msgstr "Змінити тему"
msgid "Text direction"
msgstr "Напрямок тексту"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Збережене розташування меню недійсне. Оберіть \"Відновити налаштування за "
"замовчуванням\" або внесіть зміни перед збереженням."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Збережене розташування меню недійсне. Відновіть налаштування за "
"замовчуванням або відредагуйте розташування перед збереженням."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Тема встановлюється на вашому роутері. Журнали відображаються нижче. "
"Перезавантаження веб-інтерфейсу застосує зміни після перезапуску RPCD."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "Пакет теми готовий. Ви впевнені, що хочете продовжити встановлення?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Цей токен НЕ потребує жодних дозволів/областей (достатньо публічного доступу "
"лише для читання)."
msgid "Theme settings"
msgstr "Налаштування теми"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Тема успішно оновлена! Перезавантаження RPC-сервісу, будь ласка, оновіть "
"сторінку через 5 секунд."
msgid "Theme transition speed"
msgstr "Швидкість переходів теми"
msgid "Toggle fullscreen"
msgstr "Перемкнути повноекранний режим"
msgid "Triggering installation on router..."
msgstr "Запуск встановлення на роутері..."
msgid "Update channel"
msgstr "Канал оновлень"
msgid "Update failed"
msgstr "Оновлення не вдалося"
msgid "Upgrade Successful!"
msgstr "Оновлення успішно завершено!"
msgid "Use Fluent custom select dropdowns"
msgstr "Використовувати спеціальні випадаючі списки Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Використовуйте View Transition API браузера для анімації навігації між "
"сторінками LuCI, якщо це підтримується."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Використовуйте системні/налаштування браузера або завжди відображайте тему "
"Fluent у фіксованій світлій або темній колірній схемі."
msgid "Username is required."
msgstr "Ім'я користувача обов'язкове."
msgid "valid HEX color value"
msgstr "дійсне значення кольору в HEX"
msgid "Warnings"
msgstr "Попередження"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Якщо увімкнено, анімація Fluent враховує налаштування зменшення руху "
"браузера або операційної системи."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Ширина основної навігаційної бічної панелі в пікселях."
msgid "Word wrap"
msgstr "Перенос слів"
msgid "You can create a new token at"
msgstr "Ви можете створити новий токен за адресою:"
msgid "Your theme is up to date!"
msgstr "Ваша тема актуальна!"
+770
View File
@@ -0,0 +1,770 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:38+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d mục phụ"
msgid "A new version is available!"
msgstr "Một phiên bản mới đã có!"
msgid "About"
msgstr "Giới thiệu"
msgid "Above bar, end"
msgstr "Cuối thanh."
msgid "Above bar, start"
msgstr "Đầu thanh."
msgid "Accent color"
msgstr "Màu điểm nhấn"
msgid "Add primary menu"
msgstr "Thêm mục chính"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr ""
"Điều chỉnh bố cục, kiểu chữ, thời gian chuyển đổi, đổ bóng, và thêm các biến "
"CSS hoặc quy tắc tùy chỉnh khi các điều khiển tích hợp không đủ."
msgid "Advanced"
msgstr "Nâng cao"
msgid "Advanced MAC Selector"
msgstr "Bộ chọn MAC nâng cao"
msgid "and %d more..."
msgstr "và %d mục khác..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr ""
"Hoạt ảnh đường gạch chân khi chuyển đổi giữa các tab LuCI gốc và menu tab "
"theo chủ đề."
msgid "Animation"
msgstr "Hoạt ảnh"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr ""
"Vượt quá giới hạn tốc độ API. Vui lòng nhập một Token GitHub để tiếp tục. "
"Token này chỉ được sử dụng cho các yêu cầu giao diện người dùng và sẽ không "
"được lưu trên hệ thống của router."
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr ""
"Áp dụng cho các nút, ô nhập liệu, trình chọn và các điều khiển biểu mẫu "
"tương tự trong toàn bộ chủ đề."
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr ""
"Bạn có chắc chắn muốn xóa %d mục hoặc quy tắc không hợp lệ/không được cài "
"đặt?"
msgid "Author"
msgstr "Tác giả"
msgid "Auto-scroll"
msgstr "Tự động cuộn"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "Tự động (chỉ dành cho ngôn ngữ Ả Rập/Ba Tư)"
msgid "Backdrop blur radius"
msgstr "Bán kính làm mờ nền"
msgid "Backend (GHProxy Acceleration)"
msgstr "Hệ thống phía sau (GHProxy Acceleration)"
msgid "Backend (Official GitHub)"
msgstr "Phần nền (GitHub chính thức)"
msgid "Base font size"
msgstr "Kích thước phông chữ cơ bản"
msgid "Below bar, end"
msgstr "Kết thúc dưới thanh."
msgid "Below bar, start"
msgstr "Bắt đầu dưới thanh."
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr ""
"Bán kính làm mờ (pixel) phía sau thẻ đăng nhập ở chế độ tối. Sử dụng 0 để "
"tắt tính năng làm mờ."
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr ""
"Bán kính làm mờ (pixel) phía sau thẻ đăng nhập ở chế độ sáng. Sử dụng 0 để "
"tắt tính năng làm mờ."
msgid "Cancel"
msgstr "Hủy"
msgid "Card background"
msgstr "Nền thẻ"
msgid "Card shadow"
msgstr "Bóng đổ thẻ"
msgid "Check for updates"
msgstr "Kiểm tra bản cập nhật"
msgid "Checking for updates..."
msgstr "Đang kiểm tra bản cập nhật..."
msgid "Choose color"
msgstr "Chọn màu"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"Chọn hướng văn bản cho các trang xác thực và đăng nhập. Chế độ tự động sẽ "
"chuyển đổi mã ngôn ngữ Ả Rập và Ba Tư (ar, ar_*, ar-*, fa, fa_*, fa-*) sang "
"RTL và sử dụng LTR nếu không tìm thấy hoặc không nhận dạng được."
msgid "Clean up"
msgstr "Làm sạch"
msgid "Clean up invalid items"
msgstr "Làm sạch các mục không hợp lệ"
msgid "Clean up invalid items (%d)"
msgstr "Làm sạch các mục không hợp lệ (%d)"
msgid "Close"
msgstr "Đóng"
msgid "Color mode"
msgstr "Chế độ màu"
msgid "Colors"
msgstr "Màu sắc"
msgid "Comfortable (42px)"
msgstr "Thoải mái (42px)"
msgid "Compact (32px)"
msgstr "Ngắn gọn (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr ""
"Cấu hình chế độ màu, màu điểm nhấn, kích thước bố cục, hành vi hoạt ảnh, "
"giao diện trang đăng nhập và các tùy chỉnh CSS nâng cao cho "
"luci-theme-fluent."
msgid "Confirm"
msgstr "Xác nhận"
msgid "Confirm Installation"
msgstr "Xác nhận cài đặt"
msgid "Continue"
msgstr "Tiếp tục"
msgid "Control height"
msgstr "Chiều cao điều khiển"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr ""
"Điều khiển độ đậm của phông chữ được sử dụng bởi các nhãn điều hướng chính "
"và các yếu tố văn bản chủ đề liên quan."
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr ""
"Điều khiển bán kính góc chung của Fluent được sử dụng bởi thẻ, nút, ô nhập "
"liệu và các thành phần giao diện người dùng liên quan."
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr ""
"Điều khiển thời gian chuyển đổi chung của Fluent được sử dụng bởi menu, tiêu "
"đề và các hoạt ảnh chủ đề khác."
msgid "Copied"
msgstr "Đã sao chép"
msgid "Copy log"
msgstr "Sao chép nhật ký"
msgid "Corner radius"
msgstr "Bán kính góc"
msgid "Current / Pending MAC Address"
msgstr "Địa chỉ MAC hiện tại / Đang chờ xử lý"
msgid "Custom CSS"
msgstr "CSS tùy chỉnh"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr ""
"Tùy chỉnh nền trang đăng nhập, độ mờ của thẻ và bán kính làm mờ cho chế độ "
"sáng và chế độ tối."
msgid "Dark mode"
msgstr "Chế độ tối"
msgid "Delete primary menu"
msgstr "Xóa mục chính"
msgid "Disabled"
msgstr "Đã vô hiệu hóa"
msgid "Disconnects"
msgstr "Ngắt kết nối"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr ""
"Hiển thị bộ tải (loading indicator) theo chủ đề ở cạnh trên trong quá trình "
"tải trang và chuyển đổi."
msgid "Download and Install"
msgstr "Tải xuống và Cài đặt"
msgid "Download log"
msgstr "Tải xuống nhật ký"
msgid "Downloaded"
msgstr "Đã tải xuống"
msgid "Downloading on router"
msgstr "Đang tải trên router"
msgid "Drag to move second-level menu"
msgstr "Kéo để sắp xếp mục phụ"
msgid "Drag to reorder primary menu"
msgstr "Kéo để thay đổi thứ tự mục chính"
msgid "Drop second-level menus here"
msgstr "Thả các mục phụ vào đây"
msgid "Edit"
msgstr "Chỉnh sửa"
msgid "Enable page transition animation"
msgstr "Bật hiệu ứng hoạt ảnh khi chuyển trang"
msgid "Enable tab underline animation"
msgstr "Bật hiệu ứng hoạt ảnh đường gạch dưới tab"
msgid "Errors"
msgstr "Lỗi"
msgid "Expecting: %s"
msgstr "Dự kiến: %s"
msgid "Extra large (12px)"
msgstr "Rất lớn (12px)"
msgid "Failed to check for updates"
msgstr "Không thể kiểm tra bản cập nhật."
msgid "Failed to fetch current theme version."
msgstr "Không thể lấy phiên bản chủ đề hiện tại."
msgid "Fast"
msgstr "Nhanh"
msgid "Finished"
msgstr "Hoàn tất"
msgid "Fix primary menu title errors before saving."
msgstr "Sửa lỗi tiêu đề mục chính trước khi lưu."
msgid "Fluent Design 2 theme for LuCI"
msgstr "Chủ đề Fluent Design 2 cho LuCI"
msgid "Fluent Theme"
msgstr "Giao diện Fluent"
msgid "Fluent theme settings"
msgstr "Cài đặt chủ đề Fluent"
msgid "Follow system"
msgstr "Theo hệ thống"
msgid "Force dark mode"
msgstr "Buộc sử dụng chế độ tối"
msgid "Force light mode"
msgstr "Buộc sử dụng chế độ sáng"
msgid "Force LTR"
msgstr "Buộc sử dụng hướng từ trái sang phải (LTR)"
msgid "Force RTL"
msgstr "Buộc sử dụng hướng từ phải sang trái (RTL)"
msgid "General"
msgstr "Chung"
msgid "GitHub Token Required"
msgstr "Yêu cầu Token GitHub"
msgid "Header height"
msgstr "Chiều cao tiêu đề"
msgid "Height of the top header bar in pixels."
msgstr "Chiều cao của thanh tiêu đề phía trên, tính bằng pixel."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr ""
"Màu HEX được sử dụng làm màu nhấn chính của Fluent khi giao diện hiển thị ở "
"chế độ tối."
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr ""
"Màu HEX được sử dụng làm màu nhấn chính của Fluent khi giao diện hiển thị ở "
"chế độ sáng."
msgid "HEX color used for container/card elements in dark mode."
msgstr "Màu HEX được sử dụng cho các thành phần/thẻ trong chế độ tối."
msgid "HEX color used for container/card elements in light mode."
msgstr "Màu HEX được sử dụng cho các thành phần/thẻ trong chế độ sáng."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr ""
"Màu HEX được sử dụng cho nhãn thanh tiến trình khi giao diện hiển thị ở chế "
"độ tối."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr ""
"Màu HEX được sử dụng cho nhãn thanh tiến trình khi giao diện hiển thị ở chế "
"độ sáng."
msgid "HEX color used for the main page background in dark mode."
msgstr "Màu HEX được sử dụng cho nền trang chính trong chế độ tối."
msgid "HEX color used for the main page background in light mode."
msgstr "Màu HEX được sử dụng cho nền trang chính trong chế độ sáng."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "Màu HEX được sử dụng cho thanh bên điều hướng ở chế độ tối."
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "Màu HEX được sử dụng cho thanh bên điều hướng ở chế độ sáng."
msgid "Installation cancelled by user."
msgstr "Cài đặt bị hủy bởi người dùng."
msgid "Installed version"
msgstr "Phiên bản đã cài đặt"
msgid "Installing package"
msgstr "Đang cài đặt gói"
msgid "Keep action bar visible while scrolling"
msgstr "Giữ thanh điều khiển hiển thị khi cuộn trang."
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr "Giữ các nút Lưu, Áp dụng và Khôi phục cố định ở cuối màn hình khi cuộn."
msgid "Large"
msgstr "Lớn"
msgid "Large (8px)"
msgstr "Lớn (8px)"
msgid "Light mode"
msgstr "Chế độ sáng"
msgid "Line %d"
msgstr "Dòng %d"
msgid "Lines"
msgstr "Các dòng"
msgid "Login"
msgstr "Đăng nhập"
msgid "Login card opacity"
msgstr "Độ mờ của thẻ đăng nhập"
msgid "Login page"
msgstr "Trang đăng nhập"
msgid "Medium"
msgstr "Trung bình"
msgid "Medium (4px)"
msgstr "Trung bình (4px)"
msgid "Menu"
msgstr "Menu"
msgid "Menu title cannot be empty."
msgstr "Tiêu đề menu không được để trống."
msgid "Navigation font weight"
msgstr "Độ đậm của phông chữ điều hướng"
msgid "New primary menu"
msgstr "Mục chính mới"
msgid "New primary menu %d"
msgstr "Mục chính mới %d"
msgid "Next"
msgstr "Tiếp theo"
msgid "Nightly build available (reinstallation check)."
msgstr "Có bản dựng Nightly (kiểm tra việc cài đặt lại)."
msgid "Nightly Channel (Prerelease)"
msgstr "Kênh Nightly (Bản xem trước)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr ""
"Không tìm thấy gói phù hợp cho kiến trúc hệ thống của bạn trong bản phát "
"hành này."
msgid "None"
msgstr "Không"
msgid "Normal"
msgstr "Bình thường"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Độ mờ của thẻ đăng nhập ở chế độ tối. 0 là hoàn toàn trong suốt và 1 là hoàn "
"toàn không xuyên thấu."
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr ""
"Độ mờ của thẻ đăng nhập ở chế độ sáng. 0 là hoàn toàn trong suốt và 1 là "
"hoàn toàn không xuyên thấu."
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr ""
"CSS thô tùy chọn được chèn vào mẫu tiêu đề Fluent. Sử dụng điều này để ghi "
"đè các biến --fluent-* bổ sung hoặc tinh chỉnh cụ thể cho trang mà không "
"được hiển thị dưới dạng các tùy chọn chuyên dụng."
msgid "Package format"
msgstr "Định dạng gói"
msgid "Page background"
msgstr "Nền trang"
msgid "Please enter your password."
msgstr "Vui lòng nhập mật khẩu của bạn."
msgid "Please enter your username."
msgstr "Vui lòng nhập tên người dùng của bạn."
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr ""
"Vị trí nhãn của thanh tiến trình so với thanh. Căn chỉnh bắt đầu/kết thúc "
"theo hướng văn bản (trái-phải hoặc phải-trái)."
msgid "Preset Vendor / Generator"
msgstr "Nhà cung cấp / Trình tạo mặc định"
msgid "Primary menu title"
msgstr "Tiêu đề menu chính"
msgid "Primary menu titles cannot be empty."
msgstr "Tiêu đề menu chính không được để trống."
msgid "Primary menu titles must be unique."
msgstr "Tiêu đề menu chính phải là duy nhất."
msgid "Progress bar text color"
msgstr "Màu chữ thanh tiến trình"
msgid "Progress bar text position"
msgstr "Vị trí văn bản trên thanh tiến trình."
msgid "Random Local MAC"
msgstr "MAC địa phương ngẫu nhiên"
msgid "Randomize MAC"
msgstr "Ngẫu nhiên hóa MAC"
msgid "Reload Web Interface"
msgstr "Tải lại giao diện web"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr ""
"Thay thế các phần tử select mặc định bằng widget dropdown tùy chỉnh của chủ "
"đề."
msgid "Respect reduced-motion preference"
msgstr "Tuân thủ cài đặt giảm hiệu ứng chuyển động"
msgid "Restore %s to its original menu name"
msgstr "Khôi phục %s về tên menu ban đầu"
msgid "Restore %s to its original menu position"
msgstr "Khôi phục %s về vị trí menu ban đầu"
msgid "Restore defaults"
msgstr "Khôi phục cài đặt mặc định"
msgid "Restore to original title"
msgstr "Khôi phục tiêu đề gốc"
msgid "Retrying with token..."
msgstr "Đang thử lại với token..."
msgid "Rounded (6px)"
msgstr "Bo tròn (6px)"
msgid "Save"
msgstr "Lưu"
msgid "Scroll to bottom"
msgstr "Cuộn đến cuối"
msgid "Scroll to top"
msgstr "Cuộn lên đầu trang"
msgid "Search menu items"
msgstr "Tìm kiếm mục menu"
msgid "Search menu..."
msgstr "Tìm kiếm trong menu..."
msgid "Second-level menu title"
msgstr "Tiêu đề menu cấp hai"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "Chọn độ sâu bóng áp dụng cho các thẻ và bảng điều khiển theo chủ đề."
msgid "Select vendor prefix..."
msgstr "Chọn tiền tố nhà cung cấp..."
msgid "Semibold"
msgstr "Bán đậm"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr ""
"Đặt kích thước phông chữ cơ sở của giao diện tính bằng pixel. Hầu hết văn "
"bản của chủ đề được điều chỉnh dựa trên giá trị này thông qua các biến CSS "
"Fluent. Phạm vi khuyến nghị: 12-18px."
msgid "Show %s in the menu"
msgstr "Hiển thị %s trong menu"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr ""
"Hiển thị các thay đổi UCI đang chờ xử lý trong thông báo trạng thái áp dụng "
"ở đầu trang cho đến khi quá trình cấu hình hoàn tất."
msgid "Show top loading bar"
msgstr "Hiển thị thanh tải ở trên"
msgid "Show UCI changes while applying configuration"
msgstr "Hiển thị các thay đổi UCI trong khi đang áp dụng cấu hình."
msgid "Sidebar background"
msgstr "Nền thanh bên"
msgid "Sidebar width"
msgstr "Chiều rộng thanh bên"
msgid "Slow"
msgstr "Chậm"
msgid "Small"
msgstr "Nhỏ"
msgid "Small (2px)"
msgstr "Nhỏ (2px)"
msgid "Software Update"
msgstr "Cập nhật phần mềm"
msgid "Source code"
msgstr "Mã nguồn"
msgid "Square (0px)"
msgstr "Vuông (0px)"
msgid "Stable Channel"
msgstr "Kênh ổn định"
msgid "Starting backend download..."
msgstr "Bắt đầu tải xuống phần mềm nền..."
msgid "Starting update process..."
msgstr "Bắt đầu quá trình cập nhật..."
msgid "Submit"
msgstr "Gửi"
msgid "Switch theme mode"
msgstr "Chuyển đổi chế độ giao diện"
msgid "Text direction"
msgstr "Hướng văn bản"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr ""
"Bố cục menu đã lưu không hợp lệ. Chọn \"Khôi phục cài đặt mặc định\" hoặc "
"chỉnh sửa trước khi lưu."
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr ""
"Bố cục menu đã lưu không hợp lệ. Khôi phục cài đặt mặc định hoặc chỉnh sửa "
"bố cục trước khi lưu."
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr ""
"Giao diện đang được cài đặt trên router của bạn. Nhật ký hiển thị bên dưới. "
"Tải lại giao diện web sẽ áp dụng các thay đổi sau khi RPCD khởi động lại."
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "Gói giao diện đã sẵn sàng. Bạn có chắc chắn muốn tiếp tục cài đặt không?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr ""
"Token này KHÔNG yêu cầu bất kỳ quyền/phạm vi nào (truy cập công khai chỉ đọc "
"là đủ)."
msgid "Theme settings"
msgstr "Cài đặt giao diện"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr ""
"Giao diện đã được cập nhật thành công! Đang tải lại dịch vụ RPC, vui lòng "
"làm mới trang sau 5 giây."
msgid "Theme transition speed"
msgstr "Tốc độ chuyển tiếp của giao diện"
msgid "Toggle fullscreen"
msgstr "Chuyển đổi toàn màn hình"
msgid "Triggering installation on router..."
msgstr "Đang cài đặt trên router..."
msgid "Update channel"
msgstr "Kênh cập nhật"
msgid "Update failed"
msgstr "Cập nhật thất bại"
msgid "Upgrade Successful!"
msgstr "Nâng cấp thành công!"
msgid "Use Fluent custom select dropdowns"
msgstr "Sử dụng các hộp chọn tùy chỉnh của Fluent"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr ""
"Sử dụng View Transition API của trình duyệt để tạo hiệu ứng động khi chuyển "
"giữa các trang LuCI, nếu được hỗ trợ."
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr ""
"Sử dụng cài đặt ưu tiên của hệ thống/trình duyệt, hoặc luôn hiển thị giao "
"diện Fluent với bảng màu sáng hoặc tối cố định."
msgid "Username is required."
msgstr "Tên người dùng là bắt buộc."
msgid "valid HEX color value"
msgstr "Giá trị màu HEX hợp lệ"
msgid "Warnings"
msgstr "Cảnh báo"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr ""
"Khi bật, các hiệu ứng động của Fluent sẽ tuân theo cài đặt giảm chuyển động "
"của trình duyệt hoặc hệ điều hành."
msgid "Width of the main navigation sidebar in pixels."
msgstr "Độ rộng của thanh bên điều hướng chính tính bằng pixel."
msgid "Word wrap"
msgstr "Ngắt dòng chữ"
msgid "You can create a new token at"
msgstr "Bạn có thể tạo một token mới tại:"
msgid "Your theme is up to date!"
msgstr "Giao diện của bạn đã ở phiên bản mới nhất."
+1
View File
@@ -0,0 +1 @@
zh_Hans
+699
View File
@@ -0,0 +1,699 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: LazuliKao\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d 个二级菜单"
msgid "A new version is available!"
msgstr "发现有新版本!"
msgid "About"
msgstr "关于"
msgid "Above bar, end"
msgstr "上方末尾"
msgid "Above bar, start"
msgstr "上方起始位置"
msgid "Accent color"
msgstr "强调色"
msgid "Add primary menu"
msgstr "添加主菜单"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr "调整布局、排版、过渡动画时间、阴影,并在内置控件不足时注入自定义 CSS 变量或规则。"
msgid "Advanced"
msgstr "高级"
msgid "Advanced MAC Selector"
msgstr "高级 MAC 选择器"
msgid "and %d more..."
msgstr "和更多 %d 个..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr "在切换原生 LuCI 标签页和主题化标签菜单时,为活动下划线添加动画。"
msgid "Animation"
msgstr "动画"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr "API 调用频率已达上限。请输入 GitHub Token 以继续。此 token 只用于前端请求,不会保存在路由器后端。"
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr "适用于整个主题中的标准按钮、输入框、选择框及类似表单控件。"
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr "您确定要清除 %d 个无效/已卸载的菜单项或规则吗?"
msgid "Author"
msgstr "作者"
msgid "Auto-scroll"
msgstr "自动滚动"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "自动(仅阿拉伯语/波斯语语言环境)"
msgid "Backdrop blur radius"
msgstr "背景模糊半径"
msgid "Backend (GHProxy Acceleration)"
msgstr "后端 (GHProxy 加速)"
msgid "Backend (Official GitHub)"
msgstr "后端 (官方 GitHub)"
msgid "Base font size"
msgstr "基础字体大小"
msgid "Below bar, end"
msgstr "下方末尾"
msgid "Below bar, start"
msgstr "下方起始位置"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr "深色模式下,登录卡片背后的模糊半径(单位:像素)。使用 0 可禁用模糊效果。"
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr "亮色模式下,登录卡片背后的模糊半径(单位:像素)。使用 0 可禁用模糊效果。"
msgid "Cancel"
msgstr "取消"
msgid "Card background"
msgstr "卡片背景"
msgid "Card shadow"
msgstr "卡片阴影"
msgid "Check for updates"
msgstr "检查更新"
msgid "Checking for updates..."
msgstr "正在检查更新..."
msgid "Choose color"
msgstr "选择颜色"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"为已登录页面和登录页面选择文档方向。自动模式会将阿拉伯语和波斯语语言环境代码(ar、ar_*、ar-*、fa、fa_*、fa-*)解析为 "
"RTL,对于缺失或无法识别的语言环境则回退为 LTR。"
msgid "Clean up"
msgstr "清除"
msgid "Clean up invalid items"
msgstr "清除无效项"
msgid "Clean up invalid items (%d)"
msgstr "清除无效项 (%d)"
msgid "Close"
msgstr "关闭"
msgid "Color mode"
msgstr "色彩模式"
msgid "Colors"
msgstr "颜色"
msgid "Comfortable (42px)"
msgstr "舒适(42px)"
msgid "Compact (32px)"
msgstr "紧凑(32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr "配置色彩模式、强调色、布局尺寸、动画行为、登录页面外观,以及用于 `luci-theme-fluent` 的高级 CSS 覆盖。"
msgid "Confirm"
msgstr "确认"
msgid "Confirm Installation"
msgstr "确认安装"
msgid "Continue"
msgstr "继续"
msgid "Control height"
msgstr "控件高度"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr "控制主导航标签及相关主题强调文本的字体粗细。"
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr "控制卡片、按钮、输入框及相关 UI 元素共享的 Fluent 圆角半径值。"
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr "控制菜单、头部和其他主题动画中使用的共享 Fluent 过渡时间。"
msgid "Copied"
msgstr "已复制"
msgid "Copy log"
msgstr "复制日志"
msgid "Corner radius"
msgstr "圆角半径"
msgid "Current / Pending MAC Address"
msgstr "当前 / 待定 MAC 地址"
msgid "Custom CSS"
msgstr "自定义 CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr "自定义亮色模式和深色模式下登录页面的背景、卡片不透明度和模糊半径。"
msgid "Dark mode"
msgstr "深色模式"
msgid "Delete primary menu"
msgstr "删除主菜单"
msgid "Disabled"
msgstr "禁用"
msgid "Disconnects"
msgstr "断开"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr "在页面加载和过渡期间,在顶部边缘显示主题化的加载指示器。"
msgid "Download and Install"
msgstr "下载并安装"
msgid "Download log"
msgstr "下载日志"
msgid "Downloaded"
msgstr "已下载"
msgid "Downloading on router"
msgstr "正在路由器上下载..."
msgid "Drag to move second-level menu"
msgstr "拖动以移动二级菜单"
msgid "Drag to reorder primary menu"
msgstr "拖动以重新排序主菜单"
msgid "Drop second-level menus here"
msgstr "将二级菜单拖放到此处"
msgid "Edit"
msgstr "编辑"
msgid "Enable page transition animation"
msgstr "启用页面过渡动画"
msgid "Enable tab underline animation"
msgstr "启用标签页下划线动画"
msgid "Errors"
msgstr "错误"
msgid "Expecting: %s"
msgstr "预期:%s"
msgid "Extra large (12px)"
msgstr "超大 (12像素)"
msgid "Failed to check for updates"
msgstr "检查更新失败"
msgid "Failed to fetch current theme version."
msgstr "未能获取当前主题版本。"
msgid "Fast"
msgstr "快速"
msgid "Finished"
msgstr "完成"
msgid "Fix primary menu title errors before saving."
msgstr "保存前,请修复主菜单标题中的错误。"
msgid "Fluent Design 2 theme for LuCI"
msgstr "适用于 LuCI 的 Fluent Design 2 主题"
msgid "Fluent Theme"
msgstr "Fluent 主题"
msgid "Fluent theme settings"
msgstr "Fluent 主题设置"
msgid "Follow system"
msgstr "跟随系统"
msgid "Force dark mode"
msgstr "强制深色模式"
msgid "Force light mode"
msgstr "强制亮色模式"
msgid "Force LTR"
msgstr "强制 LTR"
msgid "Force RTL"
msgstr "强制 RTL"
msgid "General"
msgstr "常规"
msgid "GitHub Token Required"
msgstr "需要 GitHub Token"
msgid "Header height"
msgstr "头部高度"
msgid "Height of the top header bar in pixels."
msgstr "顶部标题栏的高度,单位为像素。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr "在界面以深色模式渲染时,用作 Fluent 主要强调色的十六进制颜色。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr "在界面以亮色模式渲染时,用作 Fluent 主要强调色的十六进制颜色。"
msgid "HEX color used for container/card elements in dark mode."
msgstr "在深色模式下,用于容器/卡片元素的十六进制颜色。"
msgid "HEX color used for container/card elements in light mode."
msgstr "在亮色模式下,用于容器/卡片元素的十六进制颜色。"
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "在界面以深色模式渲染时,用于进度条标签的十六进制颜色。"
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr "在界面以亮色模式渲染时,用于进度条标签的十六进制颜色。"
msgid "HEX color used for the main page background in dark mode."
msgstr "在深色模式下,用于主页面的背景的十六进制颜色。"
msgid "HEX color used for the main page background in light mode."
msgstr "在亮色模式下,用于主页面的背景的十六进制颜色。"
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "深色模式下导航侧边栏使用的十六进制颜色。"
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "亮色模式下导航侧边栏使用的十六进制颜色。"
msgid "Installation cancelled by user."
msgstr "用户已取消安装。"
msgid "Installed version"
msgstr "已安装版本"
msgid "Installing package"
msgstr "正在安装软件包"
msgid "Keep action bar visible while scrolling"
msgstr "滚动时保持操作栏可见"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr "滚动时,将“保存”、“应用”和“重置”操作固定在视口底部。"
msgid "Large"
msgstr "大号"
msgid "Large (8px)"
msgstr "大号 (8px)"
msgid "Light mode"
msgstr "亮色模式"
msgid "Line %d"
msgstr "第 %d 行"
msgid "Lines"
msgstr "行"
msgid "Login"
msgstr "登录"
msgid "Login card opacity"
msgstr "登录卡片不透明度"
msgid "Login page"
msgstr "登录页"
msgid "Medium"
msgstr "中号"
msgid "Medium (4px)"
msgstr "中号 (4px)"
msgid "Menu"
msgstr "菜单"
msgid "Menu title cannot be empty."
msgstr "菜单标题不能为空。"
msgid "Navigation font weight"
msgstr "导航字体粗细"
msgid "New primary menu"
msgstr "新建主菜单"
msgid "New primary menu %d"
msgstr "新建主菜单 %d"
msgid "Next"
msgstr "下一步"
msgid "Nightly build available (reinstallation check)."
msgstr "有 Nightly 构建可用(检查是否需要重新安装)。"
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly 通道 (预发布)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "在此版本中,未找到适用于您系统架构的软件包资源。"
msgid "None"
msgstr "无"
msgid "Normal"
msgstr "常规"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "深色模式下登录卡片的不透明度。0 表示完全透明,1 表示完全不透明。"
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "亮色模式下登录卡片的不透明度。0 表示完全透明,1 表示完全不透明。"
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr "在 Fluent 头部模板中注入可选的原始 CSS。用于额外的 `--fluent-*` 变量覆盖,或页面特定的调整,这些调整没有作为专门的选项暴露。"
msgid "Package format"
msgstr "软件包格式"
msgid "Page background"
msgstr "页面背景"
msgid "Please enter your password."
msgstr "请输入您的密码。"
msgid "Please enter your username."
msgstr "请输入您的用户名。"
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr "进度条标签相对于进度条的位置。起始/末尾对齐方式会跟随文本方向(从左往右或从右往左)。"
msgid "Preset Vendor / Generator"
msgstr "预设厂商 / 生成器"
msgid "Primary menu title"
msgstr "主菜单标题"
msgid "Primary menu titles cannot be empty."
msgstr "主菜单标题不能为空。"
msgid "Primary menu titles must be unique."
msgstr "主菜单标题必须唯一。"
msgid "Progress bar text color"
msgstr "进度条文本颜色"
msgid "Progress bar text position"
msgstr "进度条文本位置"
msgid "Random Local MAC"
msgstr "随机本地 MAC"
msgid "Randomize MAC"
msgstr "随机化 MAC"
msgid "Reload Web Interface"
msgstr "重新加载网页界面"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "使用主题的自定义下拉组件替换原生的选择元素。"
msgid "Respect reduced-motion preference"
msgstr "遵循减少动态效果偏好设置"
msgid "Restore %s to its original menu name"
msgstr "恢复 %s 为其原始菜单名称"
msgid "Restore %s to its original menu position"
msgstr "恢复 %s 为其原始菜单位置"
msgid "Restore defaults"
msgstr "恢复默认设置"
msgid "Restore to original title"
msgstr "恢复为原始标题"
msgid "Retrying with token..."
msgstr "正在使用令牌重试..."
msgid "Rounded (6px)"
msgstr "圆角 (6px)"
msgid "Save"
msgstr "保存"
msgid "Scroll to bottom"
msgstr "滚动到底部"
msgid "Scroll to top"
msgstr "滚动到顶部"
msgid "Search menu items"
msgstr "搜索菜单项"
msgid "Search menu..."
msgstr "搜索菜单..."
msgid "Second-level menu title"
msgstr "二级菜单标题"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "选择应用于主题卡片和面板的阴影深度。"
msgid "Select vendor prefix..."
msgstr "选择厂商前缀..."
msgid "Semibold"
msgstr "半粗体"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr "设置基础界面字体大小(像素)。大多数主题文本会根据 Fluent CSS 变量从该值进行缩放。建议范围:12-18px。"
msgid "Show %s in the menu"
msgstr "在菜单中显示 %s"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr "在应用配置完成前,在顶部应用状态消息中显示待处理的 UCI 变更。"
msgid "Show top loading bar"
msgstr "显示顶部加载条"
msgid "Show UCI changes while applying configuration"
msgstr "在应用配置时显示 UCI 变更"
msgid "Sidebar background"
msgstr "侧边栏背景"
msgid "Sidebar width"
msgstr "侧边栏宽度"
msgid "Slow"
msgstr "慢速"
msgid "Small"
msgstr "小号"
msgid "Small (2px)"
msgstr "小号 (2px)"
msgid "Software Update"
msgstr "软件更新"
msgid "Source code"
msgstr "源代码"
msgid "Square (0px)"
msgstr "方形 (0px)"
msgid "Stable Channel"
msgstr "稳定版本通道"
msgid "Starting backend download..."
msgstr "开始后端下载..."
msgid "Starting update process..."
msgstr "启动更新过程..."
msgid "Submit"
msgstr "提交"
msgid "Switch theme mode"
msgstr "切换主题模式"
msgid "Text direction"
msgstr "文本方向"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr "已存储的菜单布局无效。请选择“恢复默认设置”或编辑后再保存。"
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr "已存储的菜单布局无效。恢复默认设置或编辑布局后再保存。"
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr "主题正在安装到您的路由器。日志显示在下方。重新加载网页界面将在 RPCD 重启后应用更改。"
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "主题软件包已准备好。您确定要继续安装吗?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr "该令牌不需要授予任何权限/范围(只读公开访问权限即可)。"
msgid "Theme settings"
msgstr "主题设置"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr "主题更新成功!正在重新加载 RPC 服务,请在 5 秒后刷新页面。"
msgid "Theme transition speed"
msgstr "主题过渡速度"
msgid "Toggle fullscreen"
msgstr "切换全屏"
msgid "Triggering installation on router..."
msgstr "触发路由器上的安装..."
msgid "Update channel"
msgstr "更新通道"
msgid "Update failed"
msgstr "更新失败"
msgid "Upgrade Successful!"
msgstr "升级成功!"
msgid "Use Fluent custom select dropdowns"
msgstr "使用 Fluent 自定义下拉选择框"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr "当浏览器支持时,使用浏览器的 View Transition API 为 LuCI 页面之间的导航添加过渡动画。"
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr "使用系统/浏览器的偏好设置,或始终以固定的亮色或深色配色渲染 Fluent 主题。"
msgid "Username is required."
msgstr "必须输入用户名。"
msgid "valid HEX color value"
msgstr "有效的十六进制颜色值"
msgid "Warnings"
msgstr "警告"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr "启用后,Fluent 动画将遵循浏览器或操作系统的减少动态效果偏好设置。"
msgid "Width of the main navigation sidebar in pixels."
msgstr "主导航侧边栏的宽度(像素)。"
msgid "Word wrap"
msgstr "自动换行"
msgid "You can create a new token at"
msgstr "您可以在这里创建新的令牌:"
msgid "Your theme is up to date!"
msgstr "您的主题已是最新版本!"
+699
View File
@@ -0,0 +1,699 @@
msgid ""
msgstr ""
"Project-Id-Version: luci-theme-fluent\n"
"POT-Creation-Date: 2026-09-05 23:37+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: TranslateGemma\n"
"Language-Team: LuCI Theme Fluent\n"
"Language: zh_Hant\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "%d second-level menus"
msgstr "%d 個次選單"
msgid "A new version is available!"
msgstr "已發布新版本!"
msgid "About"
msgstr "關於"
msgid "Above bar, end"
msgstr "上方末尾"
msgid "Above bar, start"
msgstr "上方起始位置"
msgid "Accent color"
msgstr "強調色"
msgid "Add primary menu"
msgstr "新增主選單"
msgid ""
"Adjust layout, typography, transition timing, shadows, and inject custom CSS "
"variables or rules when the built-in controls are not enough."
msgstr "調整版面配置、字體樣式、轉場時機、陰影,以及在內建控制不夠的情況下,注入自訂 CSS 變數或規則。"
msgid "Advanced"
msgstr "進階"
msgid "Advanced MAC Selector"
msgstr "進階 MAC 位址選擇器"
msgid "and %d more..."
msgstr "及更多 %d 項..."
msgid ""
"Animate the active underline when switching between native LuCI tabs and "
"themed tab menus."
msgstr "在切換原生 LuCI 標籤和主題化標籤菜單時,動態顯示活動底線。"
msgid "Animation"
msgstr "動畫"
msgid ""
"API rate limit exceeded. Please enter a GitHub Token to continue. This token "
"is only used for frontend requests and will not be saved on the router "
"backend."
msgstr "API 速率限制已達到。請輸入 GitHub Token 以繼續。此 Token僅用於前端請求,不會儲存在路由器後端。"
msgid ""
"Applies to standard buttons, inputs, selects, and similar form controls "
"across the theme."
msgstr "適用於標準按鈕、輸入框、選取元件以及主題中類似的表單控制項。"
msgid ""
"Are you sure you want to clean up %d invalid/uninstalled menu items or "
"rules?"
msgstr "您確定要清除 %d 個無效或未安裝的選單項目或規則嗎?"
msgid "Author"
msgstr "作者"
msgid "Auto-scroll"
msgstr "自動滾動"
msgid "Automatic (Arabic/Persian locales only)"
msgstr "自動 (僅限阿拉伯語/波斯語地區設定)"
msgid "Backdrop blur radius"
msgstr "背景模糊半徑"
msgid "Backend (GHProxy Acceleration)"
msgstr "後端 (GHProxy 加速)"
msgid "Backend (Official GitHub)"
msgstr "後端 (官方 GitHub)"
msgid "Base font size"
msgstr "基礎字體大小"
msgid "Below bar, end"
msgstr "下方末尾"
msgid "Below bar, start"
msgstr "下方起始位置"
msgid ""
"Blur radius in pixels behind the login card in dark mode. Use 0 to disable "
"blur."
msgstr "深色模式下,登入卡片背後的模糊半徑(以像素為單位)。使用 0 關閉模糊效果。"
msgid ""
"Blur radius in pixels behind the login card in light mode. Use 0 to disable "
"blur."
msgstr "淺色模式下,登入卡片背後的模糊半徑(以像素為單位)。使用 0 關閉模糊效果。"
msgid "Cancel"
msgstr "取消"
msgid "Card background"
msgstr "卡片背景"
msgid "Card shadow"
msgstr "卡片陰影"
msgid "Check for updates"
msgstr "檢查更新"
msgid "Checking for updates..."
msgstr "正在檢查更新..."
msgid "Choose color"
msgstr "選擇顏色"
msgid ""
"Choose the document direction for authenticated and login pages. Automatic "
"mode resolves Arabic and Persian locale codes (ar, ar_*, ar-*, fa, fa_*, "
"fa-*) to RTL and falls back to LTR for missing or unrecognized locales."
msgstr ""
"為驗證和登入頁面選擇文件方向。自動模式會將阿拉伯語和波斯語的地區代碼 (ar, ar_*, ar-*, fa, fa_*, fa-*) 解析為從右到左 "
"(RTL),如果缺少或無法識別,則回退為從左到右 (LTR)。"
msgid "Clean up"
msgstr "清理"
msgid "Clean up invalid items"
msgstr "清除無效項目"
msgid "Clean up invalid items (%d)"
msgstr "清除無效項目 (%d)"
msgid "Close"
msgstr "關閉"
msgid "Color mode"
msgstr "色彩模式"
msgid "Colors"
msgstr "顏色"
msgid "Comfortable (42px)"
msgstr "舒適 (42px)"
msgid "Compact (32px)"
msgstr "緊湊型 (32px)"
msgid ""
"Configure color mode, accent colors, layout sizing, animation behavior, "
"login-page appearance, and advanced CSS overrides for luci-theme-fluent."
msgstr "設定色彩模式、強調色、版面配置大小、動畫行為、登入頁面外觀,以及針對 luci-theme-fluent 的進階 CSS 覆寫。"
msgid "Confirm"
msgstr "確認"
msgid "Confirm Installation"
msgstr "確認安裝"
msgid "Continue"
msgstr "繼續"
msgid "Control height"
msgstr "控制項高度"
msgid ""
"Controls the font weight used by main navigation labels and related theme "
"text accents."
msgstr "控制用於主要導航標籤以及相關主題文字強調的字體粗細。"
msgid ""
"Controls the shared Fluent corner radius tokens used by cards, buttons, "
"inputs, and related UI surfaces."
msgstr "控制卡片、按鈕、輸入框和其他 UI 元素的 Fluent 角落圓角值。"
msgid ""
"Controls the shared Fluent transition timing used by menu, header, and other "
"theme animations."
msgstr "控制菜單、頁首和其他主題動畫使用的 Fluent 過渡時長。"
msgid "Copied"
msgstr "已複製"
msgid "Copy log"
msgstr "複製日誌"
msgid "Corner radius"
msgstr "圓角半徑"
msgid "Current / Pending MAC Address"
msgstr "目前 / 待處理 MAC 位址"
msgid "Custom CSS"
msgstr "自訂 CSS"
msgid ""
"Customize the login page background, card opacity, and blur radius for light "
"and dark modes."
msgstr "自訂登入頁面背景、卡片不透明度,以及淺色和深色模式下的模糊半徑。"
msgid "Dark mode"
msgstr "深色模式"
msgid "Delete primary menu"
msgstr "刪除主選單"
msgid "Disabled"
msgstr "已停用"
msgid "Disconnects"
msgstr "斷線次數"
msgid ""
"Display the themed loading indicator at the top edge during page loads and "
"transitions."
msgstr "在頁面載入和轉場時,顯示主題化的載入指示器於頂端。"
msgid "Download and Install"
msgstr "下載與安裝"
msgid "Download log"
msgstr "下載日誌"
msgid "Downloaded"
msgstr "已下載"
msgid "Downloading on router"
msgstr "正在路由器上下載..."
msgid "Drag to move second-level menu"
msgstr "拖曳以移動次選單"
msgid "Drag to reorder primary menu"
msgstr "拖曳以重新排序主選單"
msgid "Drop second-level menus here"
msgstr "在此處放置次選單"
msgid "Edit"
msgstr "編輯"
msgid "Enable page transition animation"
msgstr "啟用頁面轉場動畫"
msgid "Enable tab underline animation"
msgstr "啟用分頁下劃線動畫"
msgid "Errors"
msgstr "錯誤"
msgid "Expecting: %s"
msgstr "預期值: %s"
msgid "Extra large (12px)"
msgstr "超大 (12px)"
msgid "Failed to check for updates"
msgstr "檢查更新失敗"
msgid "Failed to fetch current theme version."
msgstr "無法取得目前主題版本。"
msgid "Fast"
msgstr "快速"
msgid "Finished"
msgstr "完成"
msgid "Fix primary menu title errors before saving."
msgstr "儲存前,請修正主選單標題的錯誤。"
msgid "Fluent Design 2 theme for LuCI"
msgstr "適用於 LuCI 的 Fluent Design 2 主題"
msgid "Fluent Theme"
msgstr "Fluent 主題"
msgid "Fluent theme settings"
msgstr "Fluent 主題設定"
msgid "Follow system"
msgstr "遵循系統設定"
msgid "Force dark mode"
msgstr "強制深色模式"
msgid "Force light mode"
msgstr "強制啟用淺色模式"
msgid "Force LTR"
msgstr "強制左向右 (LTR)"
msgid "Force RTL"
msgstr "強制從右向左 (RTL)"
msgid "General"
msgstr "一般"
msgid "GitHub Token Required"
msgstr "需要 GitHub 令牌"
msgid "Header height"
msgstr "頁首高度"
msgid "Height of the top header bar in pixels."
msgstr "頂部標題欄的高度,單位為像素。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in dark mode."
msgstr "在深色模式下使用的主要 Fluent 強調色(HEX)。"
msgid ""
"HEX color used as the primary Fluent accent when the interface is rendered "
"in light mode."
msgstr "在淺色模式下使用的主要 Fluent 強調色(HEX)。"
msgid "HEX color used for container/card elements in dark mode."
msgstr "在深色模式下用於容器/卡片的顏色 (HEX)."
msgid "HEX color used for container/card elements in light mode."
msgstr "在淺色模式下用於容器/卡片的顏色 (HEX)."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"dark mode."
msgstr "在深色模式下用於進度條標籤的顏色 (HEX)."
msgid ""
"HEX color used for progress-bar labels while the interface is rendered in "
"light mode."
msgstr "在淺色模式下用於進度條標籤的顏色 (HEX)."
msgid "HEX color used for the main page background in dark mode."
msgstr "在深色模式下使用的主要頁面背景顏色 (HEX)."
msgid "HEX color used for the main page background in light mode."
msgstr "在淺色模式下使用的主要頁面背景顏色 (HEX)."
msgid "HEX color used for the navigation sidebar in dark mode."
msgstr "深色模式下,導航側邊欄使用的十六進位顏色。"
msgid "HEX color used for the navigation sidebar in light mode."
msgstr "淺色模式下,導航側邊欄使用的十六進位顏色。"
msgid "Installation cancelled by user."
msgstr "使用者已取消安裝。"
msgid "Installed version"
msgstr "已安裝版本"
msgid "Installing package"
msgstr "正在安裝套件"
msgid "Keep action bar visible while scrolling"
msgstr "在捲動時保持動作列可見。"
msgid ""
"Keep Save, Apply, and Reset actions fixed at the bottom of the viewport "
"while scrolling."
msgstr "在捲動時,將「儲存」、「套用」和「重設」動作固定在視窗底端。"
msgid "Large"
msgstr "大"
msgid "Large (8px)"
msgstr "大 (8px)"
msgid "Light mode"
msgstr "淺色模式"
msgid "Line %d"
msgstr "第 %d 行"
msgid "Lines"
msgstr "行數"
msgid "Login"
msgstr "登入"
msgid "Login card opacity"
msgstr "登入卡片的不透明度"
msgid "Login page"
msgstr "登入頁面"
msgid "Medium"
msgstr "中等"
msgid "Medium (4px)"
msgstr "中等 (4px)"
msgid "Menu"
msgstr "選單"
msgid "Menu title cannot be empty."
msgstr "選單標題不能為空。"
msgid "Navigation font weight"
msgstr "導航字體粗細"
msgid "New primary menu"
msgstr "新增主選單"
msgid "New primary menu %d"
msgstr "新增主選單 %d"
msgid "Next"
msgstr "下一步"
msgid "Nightly build available (reinstallation check)."
msgstr "有可用的 Nightly 建置版本(檢查是否需要重新安裝)。"
msgid "Nightly Channel (Prerelease)"
msgstr "Nightly 頻道 (預發布)"
msgid ""
"No matching package asset found for your system architecture in this "
"release."
msgstr "此版本中未找到與您的系統架構相符的套件資源。"
msgid "None"
msgstr "無"
msgid "Normal"
msgstr "正常"
msgid ""
"Opacity of the login card in dark mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "深色模式下登入卡片的不透明度。0 為完全透明,1 為完全不透明。"
msgid ""
"Opacity of the login card in light mode. 0 is fully transparent and 1 is "
"fully opaque."
msgstr "淺色模式下登入卡片的不透明度。0 為完全透明,1 為完全不透明。"
msgid ""
"Optional raw CSS injected into the Fluent header template. Use this for "
"extra --fluent-* variable overrides or page-specific tweaks that are not "
"exposed as dedicated options."
msgstr "可選的原始 CSS,會注入到 Fluent 頁首範本中。 用於額外的 `--fluent-*` 變數覆寫或特定頁面的調整,這些調整沒有提供專用的選項。"
msgid "Package format"
msgstr "套件格式"
msgid "Page background"
msgstr "頁面背景"
msgid "Please enter your password."
msgstr "請輸入您的密碼。"
msgid "Please enter your username."
msgstr "請輸入您的使用者名稱。"
msgid ""
"Position of progress-bar labels relative to the bar. Start/end alignment "
"follows the text direction (LTR or RTL)."
msgstr "進度條標籤相對於進度條的位置。起始/末尾對齊方式會隨文字方向(從左往右或從右往左)調整。"
msgid "Preset Vendor / Generator"
msgstr "預設供應商 / 產生器"
msgid "Primary menu title"
msgstr "主要選單標題"
msgid "Primary menu titles cannot be empty."
msgstr "主要選單標題不能為空。"
msgid "Primary menu titles must be unique."
msgstr "主要選單標題必須唯一。"
msgid "Progress bar text color"
msgstr "進度條文字顏色"
msgid "Progress bar text position"
msgstr "進度條文字位置"
msgid "Random Local MAC"
msgstr "隨機本機 MAC 位址"
msgid "Randomize MAC"
msgstr "隨機 MAC 位址"
msgid "Reload Web Interface"
msgstr "重新載入網頁介面"
msgid "Replace native select elements with the theme's custom dropdown widget."
msgstr "使用主題自訂的下拉式元件,取代原生選取元素。"
msgid "Respect reduced-motion preference"
msgstr "尊重減少動畫的設定"
msgid "Restore %s to its original menu name"
msgstr "將 %s 恢復為原始選單名稱"
msgid "Restore %s to its original menu position"
msgstr "將 %s 恢復為原始選單位置"
msgid "Restore defaults"
msgstr "還原預設值"
msgid "Restore to original title"
msgstr "還原為原始標題"
msgid "Retrying with token..."
msgstr "正在使用 Token 重新嘗試..."
msgid "Rounded (6px)"
msgstr "圓角 (6px)"
msgid "Save"
msgstr "儲存"
msgid "Scroll to bottom"
msgstr "滾動至底部"
msgid "Scroll to top"
msgstr "滾動至頂部"
msgid "Search menu items"
msgstr "搜尋選單項目"
msgid "Search menu..."
msgstr "搜尋選單..."
msgid "Second-level menu title"
msgstr "第二層選單標題"
msgid "Select the shadow depth applied to themed cards and panels."
msgstr "選擇套用在主題卡片和面板上的陰影深度。"
msgid "Select vendor prefix..."
msgstr "選擇供應商前綴..."
msgid "Semibold"
msgstr "半粗體"
msgid ""
"Sets the base interface font size in pixels. Most theme text scales from "
"this value through the Fluent CSS variables. Recommended range: 12-18px."
msgstr "設定介面基本字體大小(以像素為單位)。大部分主題文字會透過 Fluent CSS 變數從此值進行縮放。建議範圍:12-18px。"
msgid "Show %s in the menu"
msgstr "在選單中顯示 %s"
msgid ""
"Show pending UCI changes in the top apply-status message until the "
"configuration apply completes."
msgstr "在配置應用完成前,於頂端的狀態訊息中顯示所有擱置的 UCI 變更。"
msgid "Show top loading bar"
msgstr "顯示頂部載入條"
msgid "Show UCI changes while applying configuration"
msgstr "正在應用配置時,顯示 UCI 變更。"
msgid "Sidebar background"
msgstr "側邊欄背景"
msgid "Sidebar width"
msgstr "側邊欄寬度"
msgid "Slow"
msgstr "慢速"
msgid "Small"
msgstr "小"
msgid "Small (2px)"
msgstr "小 (2px)"
msgid "Software Update"
msgstr "軟體更新"
msgid "Source code"
msgstr "原始碼"
msgid "Square (0px)"
msgstr "方形 (0px)"
msgid "Stable Channel"
msgstr "穩定版本通道"
msgid "Starting backend download..."
msgstr "正在開始後端下載..."
msgid "Starting update process..."
msgstr "正在開始更新程序..."
msgid "Submit"
msgstr "提交"
msgid "Switch theme mode"
msgstr "切換主題模式"
msgid "Text direction"
msgstr "文字方向"
msgid ""
"The stored menu layout is invalid. Choose \"Restore defaults\" or make an edit "
"before saving."
msgstr "儲存的選單配置無效。請選擇「還原預設值」或編輯後再儲存。"
msgid ""
"The stored menu layout is invalid. Restore defaults or edit the layout "
"before saving."
msgstr "儲存的選單配置無效。還原預設值或編輯配置後再儲存。"
msgid ""
"The theme is being installed on your router. The logs are displayed below. "
"Reloading the web interface will apply the changes once RPCD restarts."
msgstr "該主題正在安裝到您的路由器。 日誌顯示在下方。 重新載入網頁介面將在 RPCD 重啟後應用更改。"
msgid ""
"The theme package is ready. Are you sure you want to proceed with the "
"installation?"
msgstr "主題套件已準備好。 您確定要繼續安裝嗎?"
msgid ""
"The token does NOT require any permissions/scopes to be granted (read-only "
"public access is sufficient)."
msgstr "此權杖不需要任何權限/範圍(僅讀取的公開存取權限即可)。"
msgid "Theme settings"
msgstr "主題設定"
msgid ""
"Theme successfully updated! Reloading RPC service, please refresh the page "
"in 5 seconds."
msgstr "主題已成功更新!正在重新載入 RPC 服務,請在 5 秒後刷新頁面。"
msgid "Theme transition speed"
msgstr "主題轉場速度"
msgid "Toggle fullscreen"
msgstr "切換全螢幕"
msgid "Triggering installation on router..."
msgstr "正在路由器上安裝..."
msgid "Update channel"
msgstr "更新頻道"
msgid "Update failed"
msgstr "更新失敗"
msgid "Upgrade Successful!"
msgstr "升級成功!"
msgid "Use Fluent custom select dropdowns"
msgstr "使用 Fluent 自訂選取式下拉清單"
msgid ""
"Use the browser View Transition API to animate navigation between LuCI pages "
"when supported."
msgstr "當支援時,使用瀏覽器的 View Transition API 動畫化 LuCI 頁面之間的導航。"
msgid ""
"Use the system/browser preference, or always render the Fluent theme in a "
"fixed light or dark palette."
msgstr "使用系統/瀏覽器偏好設定,或強制以固定淺色或深色調配色顯示 Fluent 主題。"
msgid "Username is required."
msgstr "使用者名稱是必填欄位。"
msgid "valid HEX color value"
msgstr "有效的 HEX 色彩值"
msgid "Warnings"
msgstr "警告"
msgid ""
"When enabled, Fluent animations follow the browser or operating system "
"reduced-motion preference."
msgstr "啟用時,Fluent 動畫會遵循瀏覽器或作業系統的減少動畫偏好設定。"
msgid "Width of the main navigation sidebar in pixels."
msgstr "主要導航側邊欄的寬度(以像素為單位)。"
msgid "Word wrap"
msgstr "自動換行"
msgid "You can create a new token at"
msgstr "您可以在這裡建立新的 Token:"
msgid "Your theme is up to date!"
msgstr "您的主題已是最新版本!"
+1
View File
@@ -0,0 +1 @@
config global
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
uci batch <<EOF
set luci.themes.Fluent=/luci-static/fluent
commit luci
EOF
if ! uci -q get fluent.@global[0] >/dev/null 2>&1; then
uci set fluent.global=global
uci commit fluent
fi
mkdir -p /www/luci-static/fluent/background
chmod 0755 /www/luci-static/fluent/background
exit 0
+58
View File
@@ -0,0 +1,58 @@
#!/bin/sh
# author jjm2473, customized for fluent
WEB_PIC_SRC=$(uci -q get fluent.@global[0].login_bg || echo 'bing')
if [ "$WEB_PIC_SRC" != "bing" ]; then
exit 0
fi
CACHE=/var/run/fluent_${WEB_PIC_SRC}.url
WRLOCK=/var/lock/fluent_${WEB_PIC_SRC}.lock
fetch_pic_url() {
local picpath=$(curl -fks --max-time 3 \
"https://www.bing.com/HPImageArchive.aspx?format=js&n=1" |
jsonfilter -qe '@.images[0].url')
[ -n "${picpath}" ] && echo "https://www.bing.com${picpath}"
}
try_update() {
local lock="$WRLOCK"
exec 200>$lock
if flock -n 200 >/dev/null 2>&1; then
local picurl=$(fetch_pic_url)
if [ -n "$picurl" ]; then
echo "${picurl}" | tee "$CACHE"
else
if [ -s "$CACHE" ]; then
cat "$CACHE"
else
touch "$CACHE"
fi
fi
flock -u 200 >/dev/null 2>&1
elif [ -s "$CACHE" ]; then
cat "$CACHE"
fi
}
get_url() {
if [ -f "$CACHE" ]; then
local idle_t=$(($(date '+%s') - $(date -r "$CACHE" '+%s' 2>/dev/null || echo '0')))
if [ -s "$CACHE" ]; then
if [ $idle_t -le 43200 ]; then
cat "$CACHE"
return
fi
else
if [ $idle_t -le 120 ]; then
return
fi
fi
fi
try_update
}
get_url
+274
View File
@@ -0,0 +1,274 @@
#!/bin/sh
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
if command -v apk >/dev/null 2>&1; then
PKG_EXT=".apk"
else
PKG_EXT=".ipk"
fi
readonly bg_path="/www/luci-static/fluent/background"
readonly tmp_path="/tmp/fluent_background.tmp"
readonly update_pkg="/tmp/fluent-update${PKG_EXT}"
readonly i18n_pkg="/tmp/fluent-i18n-update${PKG_EXT}"
case "$1" in
"list")
json_init
json_add_object "avail"
json_close_object
json_add_object "remove"
json_add_string "filename" "filename"
json_close_object
json_add_object "rename"
json_add_string "newname" "filename"
json_close_object
json_add_object "set_mode"
json_add_string "mode" "mode"
json_close_object
json_add_object "get_version"
json_close_object
json_add_object "start_download"
json_add_string "url" "url"
json_add_string "i18n_url" "i18n_url"
json_add_string "i18n_urls" "i18n_urls"
json_close_object
json_add_object "check_download"
json_close_object
json_add_object "do_install"
json_add_string "hash" "hash"
json_add_string "i18n_hash" "i18n_hash"
json_add_string "i18n_hashes" "i18n_hashes"
json_close_object
json_add_object "get_install_log"
json_close_object
json_dump
json_cleanup
;;
"call")
case "$2" in
"avail")
json_init
json_add_int "avail" "$(df | grep -E '/$' | awk '{print $4}')"
json_dump
json_cleanup
;;
"remove")
read -r input
json_load "$input"
json_get_var filename "filename"
json_cleanup
if dirname "$filename" | grep -q ".."; then
echo '{ "result": 255 }'
exit 255
fi
rm -f "$bg_path/$filename"
echo '{ "result": 0 }'
;;
"rename")
read -r input
json_load "$input"
json_get_var newname "newname"
json_cleanup
if dirname "$newname" | grep -q ".."; then
echo '{ "result": 255 }'
exit 255
fi
mkdir -p "$bg_path"
if mv "$tmp_path" "$bg_path/$newname" 2>"/dev/null"; then
chmod 0644 "$bg_path/$newname"
echo '{ "result": 0 }'
else
echo '{ "result": 1 }'
fi
;;
"set_mode")
read -r input
json_load "$input"
json_get_var mode "mode"
json_cleanup
case "$mode" in
light|dark|auto) ;;
*)
echo '{ "result": 255 }'
exit 255
;;
esac
if uci -q set fluent.@global[0].mode="$mode" && uci -q commit fluent; then
echo '{ "result": 0 }'
else
echo '{ "result": 1 }'
fi
;;
"get_version")
version=""
pkg_type="ipk"
i18n_installed=0
installed_i18n=""
if command -v apk >/dev/null 2>&1; then
pkg_type="apk"
version=$(apk list -I luci-theme-fluent 2>/dev/null | awk '{print $1}' | sed 's/^luci-theme-fluent-//' | head -1)
installed_i18n=$(apk list -I 2>/dev/null | grep -E '^luci-i18n-fluent-' | awk '{print $1}' | sed 's/^luci-i18n-fluent-//')
else
version=$(opkg status luci-theme-fluent 2>/dev/null | grep -m1 'Version:' | awk '{print $2}')
installed_i18n=$(opkg list-installed 2>/dev/null | grep -E '^luci-i18n-fluent-' | awk '{print $1}' | sed 's/^luci-i18n-fluent-//')
fi
if echo "$installed_i18n" | grep -q "^zh-cn$"; then
i18n_installed=1
fi
if [ -z "$version" ]; then
version="1.0.1-dev"
fi
json_init
json_add_string "version" "$version"
json_add_string "pkg_type" "$pkg_type"
json_add_boolean "i18n_zh_cn_installed" "$i18n_installed"
json_add_array "installed_i18n"
for lang in $installed_i18n; do
json_add_string "" "$lang"
done
json_close_array
json_dump
json_cleanup
;;
"start_download")
read -r input
json_load "$input"
json_get_var url "url"
json_get_var i18n_url "i18n_url"
json_get_var i18n_urls "i18n_urls"
json_cleanup
rm -f "$update_pkg"
rm -f /tmp/fluent-i18n-*
rm -f /tmp/fluent-update.log
if [ -n "$url" ]; then
download_cmd=""
if command -v uclient-fetch >/dev/null 2>&1; then
download_cmd="uclient-fetch -O $update_pkg \"$url\""
urls_to_dl="${i18n_urls:-$i18n_url}"
idx=1
for u in $urls_to_dl; do
download_cmd="$download_cmd && uclient-fetch -O /tmp/fluent-i18n-${idx}${PKG_EXT} \"$u\""
idx=$((idx + 1))
done
else
download_cmd="wget -O $update_pkg \"$url\""
urls_to_dl="${i18n_urls:-$i18n_url}"
idx=1
for u in $urls_to_dl; do
download_cmd="$download_cmd && wget -O /tmp/fluent-i18n-${idx}${PKG_EXT} \"$u\""
idx=$((idx + 1))
done
fi
nohup sh -c "$download_cmd >/tmp/fluent-update.log 2>&1" >/dev/null 2>&1 &
echo '{ "result": 0 }'
else
echo '{ "result": 255, "message": "Missing URL" }'
fi
;;
"check_download")
json_init
size1=$(ls -l $update_pkg 2>/dev/null | awk '{print $5}')
size2=$(ls -l /tmp/fluent-i18n-* 2>/dev/null | awk '{sum+=$5} END {print sum}')
size=$(( ${size1:-0} + ${size2:-0} ))
json_add_int "size" "$size"
if pgrep -f "fluent-update" >/dev/null; then
json_add_boolean "running" 1
else
json_add_boolean "running" 0
if [ "$size" -eq 0 ]; then
# If process exited and size is 0, download failed
json_add_int "code" 255
else
json_add_int "code" 0
fi
fi
json_dump
json_cleanup
;;
"do_install")
read -r input
json_load "$input"
json_get_var hash "hash"
json_get_var i18n_hash "i18n_hash"
json_get_var i18n_hashes "i18n_hashes"
json_cleanup
if [ -z "$hash" ]; then
echo '{ "result": 255, "message": "Missing hash parameter" }'
exit 255
fi
if [ ! -f "$update_pkg" ]; then
echo '{ "result": 255, "message": "Package file not found" }'
exit 255
fi
if [ "$hash" != "skip" ]; then
if ! echo "$hash" | grep -qE '^[0-9a-fA-F]{64}$'; then
echo '{ "result": 255, "message": "Invalid hash parameter" }'
exit 255
fi
actual_hash=$(sha256sum "$update_pkg" | awk '{print $1}')
if [ "$actual_hash" != "$hash" ]; then
echo '{ "result": 255, "message": "Hash verification failed" }'
exit 255
fi
fi
hashes_to_check="${i18n_hashes:-$i18n_hash}"
if [ -n "$hashes_to_check" ]; then
idx=1
for h in $hashes_to_check; do
target_i18n_pkg="/tmp/fluent-i18n-${idx}${PKG_EXT}"
if [ -f "$target_i18n_pkg" ] && [ "$h" != "skip" ]; then
if ! echo "$h" | grep -qE '^[0-9a-fA-F]{64}$'; then
echo '{ "result": 255, "message": "Invalid i18n hash parameter" }'
exit 255
fi
actual_i18n_hash=$(sha256sum "$target_i18n_pkg" | awk '{print $1}')
if [ "$actual_i18n_hash" != "$h" ]; then
echo '{ "result": 255, "message": "i18n Hash verification failed" }'
exit 255
fi
fi
idx=$((idx + 1))
done
fi
install_cmd=""
pkgs="$update_pkg"
i18n_files=$(ls /tmp/fluent-i18n-* 2>/dev/null)
if [ -n "$i18n_files" ]; then
pkgs="$pkgs $i18n_files"
fi
if command -v apk >/dev/null 2>&1; then
install_cmd="apk add --allow-untrusted $pkgs"
else
install_cmd="opkg install $pkgs"
fi
nohup sh -c "sleep 1 && $install_cmd > /tmp/fluent-install.log 2>&1 ; rm -f $pkgs ; /etc/init.d/rpcd restart" >/dev/null 2>&1 &
echo '{ "result": 0 }'
;;
"get_install_log")
json_init
if [ -f "/tmp/fluent-install.log" ]; then
json_add_string "log" "$(cat /tmp/fluent-install.log)"
else
json_add_string "log" ""
fi
json_dump
json_cleanup
;;
esac
;;
esac
@@ -0,0 +1,14 @@
{
"admin/system/fluent-config": {
"title": "Fluent Theme",
"order": 90,
"action": {
"type": "view",
"path": "fluent-config"
},
"depends": {
"acl": [ "luci-theme-fluent" ],
"uci": { "fluent": true }
}
}
}
@@ -0,0 +1,25 @@
{
"luci-theme-fluent": {
"description": "Grant UCI and file access for luci-theme-fluent config view",
"read": {
"file": {
"/www/luci-static/fluent/background/*": [ "list" ]
},
"ubus": {
"luci.fluent": [ "avail", "remove", "rename", "set_mode", "get_version", "check_download", "get_install_log" ]
},
"uci": [ "fluent" ]
},
"write": {
"file": {
"/tmp/fluent_background.tmp": [ "write" ],
"/tmp/fluent-update.ipk": [ "write" ],
"/tmp/fluent-update.apk": [ "write" ]
},
"ubus": {
"luci.fluent": [ "set_mode", "do_install", "start_download" ]
},
"uci": [ "fluent" ]
}
}
}
@@ -0,0 +1,36 @@
{%
defaults.mode = "auto";
defaults.primary = "#0078d4";
defaults.dark_primary = "#4da6ff";
defaults.progressbar_font = "#2e2b60";
defaults.dark_progressbar_font = "#d6d9e5";
defaults.page_bg = "#fafafa";
defaults.card_bg = "#ffffff";
defaults.sidebar_bg = "#f3f3f3";
defaults.dark_page_bg = "#1b1b1b";
defaults.dark_card_bg = "#2d2d2d";
defaults.dark_sidebar_bg = "#1f1f1f";
defaults.font_weight = "normal";
defaults.font_size = "14";
defaults.border_radius = "4";
defaults.control_height = "32";
defaults.sidebar_width = "260";
defaults.header_height = "48";
defaults.login_bg = "microsoft";
defaults.blur = "40";
defaults.transparency = "0.8";
defaults.blur_dark = "20";
defaults.transparency_dark = "0.8";
defaults.card_shadow = "small";
defaults.transition_speed = "normal";
defaults.custom_css = "";
defaults.custom_select = "1";
defaults.view_transition = "1";
defaults.tab_animation = "1";
defaults.prefers_reduced_motion = "1";
defaults.loading_bar = "1";
defaults.sticky_action_bar = "1";
defaults.uci_changes_preview = "1";
defaults.direction_mode = "auto";
defaults.progressbar_text_position = "top-start";
%}
@@ -0,0 +1,25 @@
{%
let configured_direction_mode = cfg.get_first('fluent', 'global', 'direction_mode') || defaults.direction_mode;
let direction_mode = configured_direction_mode;
if (direction_mode !== 'rtl' && direction_mode !== 'ltr' && direction_mode !== 'auto') {
direction_mode = defaults.direction_mode;
}
let locale = dispatcher.lang || '';
let resolved_direction = 'ltr';
if (direction_mode === 'rtl') {
resolved_direction = 'rtl';
} else if (direction_mode === 'auto') {
if (locale === 'ar' || locale === 'fa' ||
index(locale, 'ar_') === 0 || index(locale, 'ar-') === 0 ||
index(locale, 'fa_') === 0 || index(locale, 'fa-') === 0) {
resolved_direction = 'rtl';
}
}
direction.mode = direction_mode;
direction.locale = locale;
direction.resolved = resolved_direction;
%}
@@ -0,0 +1,39 @@
{#
Fluent Theme for LuCI - Footer
Licensed to the public under the Apache License 2.0
#}
{% if (!ctx._fluent_login_shown) { %}
</div>
{% if (!ctx.authsession) { %}
<footer>
<div class="mobile-hide">
<a class="luci-link" href="https://github.com/openwrt/luci">Powered by {{ version.luciname }} ({{ version.luciversion }})</a> /
{{ version.distversion }}
<ul class="breadcrumb pull-right" id="modemenu" style="display:none"></ul>
</div>
</footer>
{% } %}
</div>
</div>
<script>
// thanks for Jo-Philipp Wich <jow@openwrt.org>
var luciLocation = {{ ctx.path }};
var winHeight = window.innerHeight;
window.addEventListener('resize', function () {
var winWidth = window.innerWidth;
if(winWidth < 600){
var newHeight = window.innerHeight;
var keyboradHeight = newHeight - winHeight;
var ftcElement = document.querySelector(".ftc");
if (ftcElement) {
ftcElement.style.bottom = (keyboradHeight + 30) + "px";
}
}
});
</script>
<script type="text/javascript">L.require('menu-fluent')</script>
</body>
</html>
{% } %}
@@ -0,0 +1,17 @@
{#
Fluent Theme for LuCI - Login Footer
Licensed to the public under the Apache License 2.0
#}
</div>
<footer class="mobile-hide">
<div>
<a class="luci-link" href="https://github.com/openwrt/luci">Powered by {{ version.luciname }} ({{ version.luciversion }})</a> /
{{ version.distversion }}
<ul class="breadcrumb pull-right" id="modemenu" style="display:none"></ul>
</div>
</footer>
</div>
</div>
</body>
</html>
@@ -0,0 +1,496 @@
{#
Fluent Theme for LuCI
Based on luci-theme-argon patterns, translated to ucode syntax
Licensed to the public under the Apache License 2.0
#}
{%
import { access } from 'fs';
import { cursor } from 'uci';
import { getuid, getspnam } from 'luci.core';
import { srand } from 'math';
//send as HTML5
http.prepare_content('text/html; charset=UTF-8');
srand(+substr(reverse(time() + ""), 0, 8));
// System info
let boardinfo = ubus.call('system', 'board');
let hostname = boardinfo && boardinfo.hostname ? boardinfo.hostname : '?';
let model = boardinfo && boardinfo.model ? boardinfo.model : (boardinfo && boardinfo.board_name ? boardinfo.board_name : '?');
let cfg = cursor();
let defaults = {};
include('themes/fluent/defaults', { defaults });
let mode = defaults.mode;
let primary = defaults.primary;
let dark_primary = defaults.dark_primary;
let blur_radius = defaults.blur;
let blur_radius_dark = defaults.blur_dark;
let blur_opacity = defaults.transparency;
let blur_opacity_dark = defaults.transparency_dark;
let font_weight = defaults.font_weight;
let font_size = defaults.font_size;
let progressbar_font = defaults.progressbar_font;
let dark_progressbar_font = defaults.dark_progressbar_font;
let main_left_font_color = '#69758c';
let bar_color = primary;
let sidebar_width = defaults.sidebar_width;
let header_height = defaults.header_height;
let border_radius = defaults.border_radius;
let card_shadow = defaults.card_shadow;
let control_height = defaults.control_height;
let transition_speed = defaults.transition_speed;
let custom_css = defaults.custom_css;
let custom_select = defaults.custom_select;
let view_transition = defaults.view_transition;
let tab_animation = defaults.tab_animation;
let prefers_reduced_motion = defaults.prefers_reduced_motion;
let loading_bar = defaults.loading_bar;
let sticky_action_bar = defaults.sticky_action_bar;
let page_bg = defaults.page_bg;
let card_bg = defaults.card_bg;
let sidebar_bg = defaults.sidebar_bg;
let dark_page_bg = defaults.dark_page_bg;
let dark_card_bg = defaults.dark_card_bg;
let dark_sidebar_bg = defaults.dark_sidebar_bg;
let progressbar_text_position = defaults.progressbar_text_position;
let menu_layout = defaults.menu_layout || null;
let direction = {};
include('themes/fluent/direction', { cfg, defaults, direction });
// Transition speed mapping
let transition_map = {
'fast': '100ms',
'normal': '150ms',
'slow': '250ms',
'none': '0ms'
};
// Shadow mapping (utilizing CSS variables for dynamic mode-aware soft shadows)
let shadow_map = {
'none': 'none',
'small': 'var(--fluent-shadow-sm)',
'medium': 'var(--fluent-shadow-md)',
'large': 'var(--fluent-shadow-lg)'
};
if (access('/etc/config/fluent')) {
mode = cfg.get_first('fluent', 'global', 'mode') || mode;
primary = cfg.get_first('fluent', 'global', 'primary') || primary;
dark_primary = cfg.get_first('fluent', 'global', 'dark_primary') || dark_primary;
font_weight = cfg.get_first('fluent', 'global', 'font_weight') || font_weight;
font_size = cfg.get_first('fluent', 'global', 'font_size') || font_size;
blur_radius = cfg.get_first('fluent', 'global', 'blur') || blur_radius;
blur_radius_dark = cfg.get_first('fluent', 'global', 'blur_dark') || blur_radius_dark;
blur_opacity = cfg.get_first('fluent', 'global', 'transparency') || blur_opacity;
blur_opacity_dark = cfg.get_first('fluent', 'global', 'transparency_dark') || blur_opacity_dark;
progressbar_font = cfg.get_first('fluent', 'global', 'progressbar_font') || progressbar_font;
dark_progressbar_font = cfg.get_first('fluent', 'global', 'dark_progressbar_font') || dark_progressbar_font;
sidebar_width = cfg.get_first('fluent', 'global', 'sidebar_width') || sidebar_width;
header_height = cfg.get_first('fluent', 'global', 'header_height') || header_height;
border_radius = cfg.get_first('fluent', 'global', 'border_radius') || border_radius;
card_shadow = cfg.get_first('fluent', 'global', 'card_shadow') || card_shadow;
control_height = cfg.get_first('fluent', 'global', 'control_height') || control_height;
transition_speed = cfg.get_first('fluent', 'global', 'transition_speed') || transition_speed;
custom_css = cfg.get_first('fluent', 'global', 'custom_css') || custom_css;
page_bg = cfg.get_first('fluent', 'global', 'page_bg') || page_bg;
card_bg = cfg.get_first('fluent', 'global', 'card_bg') || card_bg;
sidebar_bg = cfg.get_first('fluent', 'global', 'sidebar_bg') || sidebar_bg;
dark_page_bg = cfg.get_first('fluent', 'global', 'dark_page_bg') || dark_page_bg;
dark_card_bg = cfg.get_first('fluent', 'global', 'dark_card_bg') || dark_card_bg;
dark_sidebar_bg = cfg.get_first('fluent', 'global', 'dark_sidebar_bg') || dark_sidebar_bg;
custom_select = cfg.get_first('fluent', 'global', 'custom_select') || custom_select;
view_transition = cfg.get_first('fluent', 'global', 'view_transition') || view_transition;
tab_animation = cfg.get_first('fluent', 'global', 'tab_animation') || tab_animation;
prefers_reduced_motion = cfg.get_first('fluent', 'global', 'prefers_reduced_motion') || prefers_reduced_motion;
loading_bar = cfg.get_first('fluent', 'global', 'loading_bar') || loading_bar;
sticky_action_bar = cfg.get_first('fluent', 'global', 'sticky_action_bar') || sticky_action_bar;
progressbar_text_position = cfg.get_first('fluent', 'global', 'progressbar_text_position') || progressbar_text_position;
menu_layout = cfg.get_first('fluent', 'global', 'menu_layout') || null;
bar_color = mode === 'dark' ? dark_primary : primary;
main_left_font_color = font_weight === 'normal' ? '#5f6368' : '#69758c';
}
// Computed values
let transition_duration = transition_map[transition_speed] || '150ms';
let card_shadow_value = shadow_map[card_shadow] || shadow_map['small'];
let brand_name = hostname;
let page_title = striptags(hostname + (node && node.title ? ' - ' + _(node.title) : ''));
%} {% if (ctx.authsession) { %}
<!DOCTYPE html>
<html lang="{{ dispatcher.lang }}" dir="{{ direction.resolved }}">
<head>
<meta charset="utf-8">
<title>{{ page_title }} - LuCI</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta name="format-detection" content="telephone=no, email=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="x5-fullscreen" content="true">
<meta name="full-screen" content="yes">
<meta name="x5-page-mode" content="app">
<meta name="browsermode" content="application">
<meta name="msapplication-tap-highlight" content="no">
<meta name="msapplication-TileColor" content="{{ bar_color }}">
<meta name="application-name" content="{{ hostname }} - LuCI">
<meta name="apple-mobile-web-app-title" content="{{ hostname }} - LuCI">
<link rel="apple-touch-icon" href="{{ media }}/icon/icon-192.png">
<link rel="icon" type="image/png" sizes="192x192" href="{{ media }}/icon/icon-192.png">
<link rel="icon" type="image/png" sizes="32x32" href="{{ media }}/icon/favicon-32.png">
<link rel="icon" type="image/svg+xml" href="{{ media }}/img/fluent.svg">
<link rel="manifest" href="{{ media }}/icon/manifest.json" crossorigin="use-credentials">
<meta name="msapplication-TileColor" content="{{ bar_color }}">
<meta name="msapplication-TileImage" content="{{ media }}/icon/icon-192.png">
{% if (mode === 'auto') { %}
<meta name="theme-color" content="{{ bar_color }}">
<script type="text/javascript">
let prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
if (prefersDarkMode) {
viewport = document.querySelector("meta[name=theme-color]");
viewport.setAttribute('content', '#444950');
}
</script>
{% } else if (mode === 'dark') { %}
<meta name="theme-color" content="#444950">
{% } else if (mode === 'light') { %}
<meta name="theme-color" content="{{ bar_color }}">
{% } %}
{% if (access('/www/luci-static/fluent/css/fluent.css.gz')) { %}
<style id="fluent-compressed-css"></style>
<script>
(function () {
const style = document.getElementById('fluent-compressed-css');
if (!style || typeof DecompressionStream === 'undefined') return;
fetch('{{ media }}/css/fluent.css.gz?v={# PKG_VERSION #}').then((response) => {
if (!response.ok || !response.body) throw new Error('Unable to load Fluent CSS');
return new Response(response.body.pipeThrough(new DecompressionStream('gzip'))).text();
}).then((css) => {
style.textContent = css;
}).catch(() => {
style.remove();
});
})();
</script>
{% } else { %}
<link rel="stylesheet" href="{{ media }}/css/fluent.css">
{% } %}
<style title="text/css">
{# Default light values #}
:root {
--fluent-primary: {{ primary }};
--fluent-bg: {{ page_bg }};
--fluent-bg-card: {{ card_bg }};
--fluent-sidebar-bg: {{ sidebar_bg }};
--fluent-font-weight: {{ font_weight }};
--fluent-font-size: {{ font_size }}px;
--fluent-sidebar-width: {{ sidebar_width }}px;
--fluent-header-height: {{ header_height }}px;
--fluent-radius-sm: {{ border_radius / 2 }}px;
--fluent-control-height: {{ control_height }}px;
--fluent-radius-md: {{ border_radius }}px;
--fluent-card-shadow: {{ card_shadow_value }};
--fluent-transition-fast: {{ transition_duration }} ease;
--fluent-transition-normal: {{ transition_duration }} ease;
--fluent-progressbar-font-color: {{ progressbar_font }};
--fluent-blur-radius: {{ blur_radius }}px;
--fluent-blur-opacity: {{ blur_opacity }};
--fluent-blur-radius-dark: {{ blur_radius_dark }}px;
--fluent-blur-opacity-dark: {{ blur_opacity_dark }};
--fluent-main-left-font-color: {{ main_left_font_color }};
}
{# Dark mode overrides #}
:root[data-theme="dark"] {
--fluent-primary: {{ dark_primary }};
--fluent-bg: {{ dark_page_bg }};
--fluent-bg-card: {{ dark_card_bg }};
--fluent-sidebar-bg: {{ dark_sidebar_bg }};
--fluent-text: #f3f2f1;
--fluent-text-secondary: #a0a0a0;
--fluent-border: #404040;
--fluent-progressbar-font-color: {{ dark_progressbar_font }};
}
{# Font size on body #}
body {
font-size: {{ font_size }}px;
}
{# Custom CSS injection #}
{% if (custom_css) { %}
{{ custom_css }}
{% } %}
</style>
{% if (view_transition == '1') { %}
<style>
@view-transition {
navigation: auto;
}
/* Smooth fade-over page transition without dimming unchanged areas */
::view-transition-old(root) {
animation: none;
}
::view-transition-new(root) {
animation: 180ms cubic-bezier(0, 0, 0.2, 1) both fade-in;
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
::view-transition-old(root),
::view-transition-new(root) {
animation: none !important;
}
}
</style>
{% } %}
{% if (loading_bar == '1') { %}
<style>
.fluent-loading-bar {
position: fixed;
top: 0;
inset-inline-start: 0;
width: 100%;
height: 3px;
background-color: transparent;
z-index: 99999;
pointer-events: none;
overflow: hidden;
opacity: 1;
transition: opacity 150ms ease;
}
.fluent-loading-bar.loaded {
opacity: 0;
}
.fluent-loading-bar-indicator {
position: absolute;
top: 0;
bottom: 0;
inset-inline-start: 0;
width: 100%;
background-color: var(--fluent-primary, #0078d4);
transform-origin: left;
animation: fluent-indeterminate-bar 1.8s infinite cubic-bezier(0.4, 0, 0.2, 1);
}
html[dir="rtl"] .fluent-loading-bar-indicator,
body[data-fluent-dir="rtl"] .fluent-loading-bar-indicator {
transform-origin: right;
}
@keyframes fluent-indeterminate-bar {
0% {
transform: translateX(-100%) scaleX(0.1);
}
50% {
transform: translateX(-30%) scaleX(0.6);
}
100% {
transform: translateX(100%) scaleX(0.1);
}
}
</style>
{% } %}
<link rel="shortcut icon" type="image/ico" href="{{ media }}/favicon.ico">
{% if (node && node.css) { %}
<link rel="stylesheet" href="{{ resource }}/{{ node.css }}">
{% } %}
{% if (css) { %}
<style title="text/css">
{{ css }}
</style>
{% } %}
<script src="{{ dispatcher.build_url('admin/translations', dispatcher.lang) }}?v={{ version.luciversion }}"></script>
<script src="{{ resource }}/cbi.js?v={{ version.luciversion }}"></script>
<script src="{{ resource }}/luci.js?v={{ version.luciversion }}"></script>
<script>
// Dark mode logic
(function() {
var mode = '{{ mode }}';
var isDark = (mode === 'dark');
if (mode === 'auto') {
isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
}
document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');
})();
</script>
</head>
<body
class="lang_{{ dispatcher.lang }} {{ node ? entityencode(node.title, true) : '' }} {{ ctx.authsession ? 'logged-in' : '' }}"
data-page="{{ entityencode(join('-', ctx.request_path), true) }}"
data-theme-mode="{{ mode }}"
data-menu-layout="{{ entityencode(menu_layout ? sprintf('%J', menu_layout) : '', true) }}"
data-menu-cache-scope="{{ entityencode(ctx.authsession, true) }}"
data-tab-cache-path="{{ entityencode(sprintf('%J', ctx.request_path), true) }}"
data-fluent-dir="{{ direction.resolved }}"
data-theme-custom-select="{{ custom_select }}"
data-view-transition="{{ view_transition }}"
data-tab-animation="{{ tab_animation }}"
data-prefers-reduced-motion="{{ prefers_reduced_motion }}"
data-loading-bar="{{ loading_bar }}"
data-sticky-action-bar="{{ sticky_action_bar }}"
data-progressbar-text="{{ progressbar_text_position }}"
data-sidebar-state="expanded">
{% if (ctx.authsession) { %}
<script>
(function() {
if (window.innerWidth <= 768) return;
try {
var sidebarState = localStorage.getItem('fluent-sidebar-state');
if (sidebarState === 'collapsed' || sidebarState === 'expanded') {
document.body.setAttribute('data-sidebar-state', sidebarState);
}
} catch (_) {}
})();
</script>
{% } %}
{% if (loading_bar == '1') { %}
<div id="fluent-top-loading" class="fluent-loading-bar" aria-hidden="true">
<div class="fluent-loading-bar-indicator"></div>
</div>
{% } %}
<div class="main">
{% if (ctx.authsession) { %}
<div class="main-left" id="mainmenu" style="display:none">
<div class="sidebar__search-slot" aria-hidden="true"></div>
</div>
<script>
(function() {
try {
var cacheScope = document.body.getAttribute('data-menu-cache-scope');
if (!cacheScope) return;
var cached = sessionStorage.getItem('fluent_sidebar_html_' + cacheScope);
if (cached) {
var m = document.getElementById('mainmenu');
m.innerHTML = cached;
m.style.display = '';
var currentPath = location.pathname;
var links = m.querySelectorAll('a[href]');
var matched = null;
var maxLen = -1;
for (var i = 0; i < links.length; i++) {
var href = links[i].getAttribute('href');
if (href && href !== '#' && href.indexOf('javascript:') !== 0) {
if (currentPath === href || currentPath.indexOf(href) === 0) {
if (href.length > maxLen) {
matched = links[i];
maxLen = href.length;
}
}
}
}
if (matched) {
var actives = m.querySelectorAll('.active');
for (var j = 0; j < actives.length; j++) {
actives[j].classList.remove('active');
}
matched.classList.add('active');
if (matched.parentElement) {
matched.parentElement.classList.add('active');
}
var parentSubmenu = matched.closest('ul.slide-menu');
if (parentSubmenu) {
parentSubmenu.classList.add('active');
var parentLi = parentSubmenu.parentElement;
if (parentLi) {
parentLi.classList.add('active');
var parentA = parentLi.querySelector(':scope > a');
if (parentA) parentA.classList.add('active');
}
}
}
}
} catch (_) {}
})();
</script>
{% } %}
<div class="main-right">
<header class="header">
<div class="header__brand">
<button type="button" class="sidebar-collapse-toggle desktop-toggle"></button>
<a class="header__toggle showSide mobile-toggle"></a>
<a class="header__title brand" href="/">
<img src="{{ media }}/img/fluent.svg" class="icon" alt="">
<span>{{ brand_name }}</span>
</a>
</div>
{% if (ctx.authsession) { %}
<div class="header__search-slot" aria-hidden="true"><div class="header__search-placeholder"></div></div>
<div class="header-actions">
<button class="theme-toggle" id="theme-toggle" title="{{ _('Switch theme mode') }}" aria-label="{{ _('Switch theme mode') }}"></button>
<div class="status" id="indicators"></div>
</div>
{% } %}
</header>
<div class="darkMask"></div>
<div id="maincontent">
<div class="container">
{% if (getuid() == 0 && getspnam('root') && getspnam('root').pwdp === '' && join('-', ctx.request_path) != 'admin-system-admin') { %}
<div class="alert-message error">
<h4>{{ _('No password set!') }}</h4>
<p>{{ _('There is no password set on this router. Please configure a root password to protect the web interface.') }}</p>
{% if (dispatcher.lookup('admin/system/admin')) { %}
<div class="right"><a class="btn"
href="{{ dispatcher.build_url('admin/system/admin') }}">{{ _('Go to password configuration...') }}</a></div>
{% } %}
</div>
{% } %}
<noscript>
<div class="alert-message error">
<h4>{{ _('JavaScript required!') }}</h4>
<p>{{ _('You must enable JavaScript in your browser or LuCI will not work properly.') }}</p>
</div>
</noscript>
<div id="tabmenu" style="display:none"></div>
<script>
(function() {
try {
var cacheScope = document.body.getAttribute('data-menu-cache-scope');
if (!cacheScope) return;
var encodedPath = document.body.getAttribute('data-tab-cache-path');
var pathParts = encodedPath ? JSON.parse(encodedPath) : [];
if (!Array.isArray(pathParts) || pathParts.length < 3) return;
var pathKey = JSON.stringify(pathParts);
var cachedTabs = sessionStorage.getItem('fluent_tabmenu_html_' + cacheScope + '_' + pathKey);
if (cachedTabs) {
var t = document.getElementById('tabmenu');
t.innerHTML = cachedTabs;
t.style.display = '';
}
} catch (_) {}
})();
</script>
{% } else { %}
{% include("themes/fluent/out_header_login"); %}
{% include("themes/fluent/sysauth"); %}
{% ctx._fluent_login_shown = true; %}
{% } %}
@@ -0,0 +1,145 @@
{#
Fluent Theme for LuCI - Login Page Header
Licensed to the public under the Apache License 2.0
#}
{%
import { access } from 'fs';
import { cursor } from 'uci';
import { srand } from 'math';
// System info
let boardinfo = ubus.call('system', 'board');
let hostname = boardinfo && boardinfo.hostname ? boardinfo.hostname : '?';
let cfg = cursor();
let defaults = {};
include('themes/fluent/defaults', { defaults });
http.prepare_content('text/html; charset=UTF-8');
srand(+substr(reverse(time() + ""), 0, 8));
let mode = defaults.mode;
let primary = defaults.primary;
let dark_primary = defaults.dark_primary;
let blur_radius = defaults.blur;
let blur_radius_dark = defaults.blur_dark;
let blur_opacity = defaults.transparency;
let blur_opacity_dark = defaults.transparency_dark;
let bar_color = primary;
let direction = {};
include('themes/fluent/direction', { cfg, defaults, direction });
if (access('/etc/config/fluent')) {
primary = cfg.get_first('fluent', 'global', 'primary') || primary;
dark_primary = cfg.get_first('fluent', 'global', 'dark_primary') || dark_primary;
mode = cfg.get_first('fluent', 'global', 'mode') || mode;
blur_radius = cfg.get_first('fluent', 'global', 'blur') || blur_radius;
blur_radius_dark = cfg.get_first('fluent', 'global', 'blur_dark') || blur_radius_dark;
blur_opacity = cfg.get_first('fluent', 'global', 'transparency') || blur_opacity;
blur_opacity_dark = cfg.get_first('fluent', 'global', 'transparency_dark') || blur_opacity_dark;
bar_color = (mode === 'dark') ? dark_primary : primary;
}
%}
<!DOCTYPE html>
<html lang="{{ dispatcher.lang }}" dir="{{ direction.resolved }}">
<head>
<meta charset="utf-8">
<title>{{ hostname }} - LuCI</title>
<!-- SEO and Description -->
<meta name="robots" content="noindex, nofollow">
<!-- Security -->
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="X-XSS-Protection" content="1; mode=block">
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta name="format-detection" content="telephone=no, email=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="x5-fullscreen" content="true">
<meta name="full-screen" content="yes">
<meta name="x5-page-mode" content="app">
<meta name="browsermode" content="application">
<meta name="msapplication-tap-highlight" content="no">
<meta name="msapplication-TileColor" content="{{ bar_color }}">
<meta name="application-name" content="{{ hostname }} - LuCI">
<meta name="apple-mobile-web-app-title" content="{{ hostname }} - LuCI">
<link rel="apple-touch-icon" href="{{ media }}/icon/icon-192.png">
<link rel="icon" type="image/png" sizes="192x192" href="{{ media }}/icon/icon-192.png">
<link rel="icon" type="image/png" sizes="32x32" href="{{ media }}/icon/favicon-32.png">
<link rel="icon" type="image/svg+xml" href="{{ media }}/img/fluent.svg">
<link rel="manifest" href="{{ media }}/icon/manifest.json" crossorigin="use-credentials">
<meta name="msapplication-TileColor" content="{{ bar_color }}">
<meta name="msapplication-TileImage" content="{{ media }}/icon/icon-192.png">
{% if (mode === 'auto') { %}
<meta name="theme-color" content="{{ bar_color }}">
<script type="text/javascript">
(function() {
let isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
document.documentElement.setAttribute('data-theme', isDark ? 'dark' : 'light');
document.querySelector("meta[name=theme-color]")?.setAttribute('content', isDark ? '#444950' : '{{ bar_color }}');
})();
</script>
{% } else if (mode === 'dark') { %}
<meta name="theme-color" content="#444950">
<script type="text/javascript">document.documentElement.setAttribute('data-theme', 'dark');</script>
{% } else if (mode === 'light') { %}
<meta name="theme-color" content="{{ bar_color }}">
<script type="text/javascript">document.documentElement.setAttribute('data-theme', 'light');</script>
{% } %}
{% if (access('/www/luci-static/fluent/css/fluent.css.gz')) { %}
<style id="fluent-compressed-css"></style>
<script>
(function () {
const style = document.getElementById('fluent-compressed-css');
if (!style || typeof DecompressionStream === 'undefined') return;
fetch('{{ media }}/css/fluent.css.gz?v={# PKG_VERSION #}').then((response) => {
if (!response.ok || !response.body) throw new Error('Unable to load Fluent CSS');
return new Response(response.body.pipeThrough(new DecompressionStream('gzip'))).text();
}).then((css) => {
style.textContent = css;
}).catch(() => {
style.remove();
});
})();
</script>
{% } else { %}
<link rel="stylesheet" href="{{ media }}/css/fluent.css">
{% } %}
<style title="text/css">
{# Default light values - must come FIRST so dark overrides can take precedence #}
:root {
--fluent-primary: {{ primary }};
--fluent-blur-radius: {{ blur_radius }}px;
--fluent-blur-opacity: {{ blur_opacity }};
--fluent-blur-radius-dark: {{ blur_radius_dark }}px;
--fluent-blur-opacity-dark: {{ blur_opacity_dark }};
}
{# Dark mode overrides - must come AFTER default values #}
{% if (mode === 'auto') { %}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--fluent-primary: {{ dark_primary }};
}
}
{% } else if (mode === 'dark') { %}
:root {
--fluent-primary: {{ dark_primary }};
}
{% } %}
</style>
<link rel="shortcut icon" type="image/ico" href="{{ media }}/favicon.ico">
<script src="{{ resource }}/luci.js?v={{ version.luciversion }}"></script>
<script src="{{ resource }}/cbi.js?v={{ version.luciversion }}"></script>
</head>
<body class="lang_{{ dispatcher.lang }} login-page" data-theme-mode="{{ mode }}" data-fluent-dir="{{ direction.resolved }}">
@@ -0,0 +1,11 @@
{#
Fluent Theme for LuCI - Login Header Wrapper
Licensed to the public under the Apache License 2.0
#}
{%
if (!ctx.template_header_sent) {
include("themes/fluent/header_login");
ctx.template_header_sent = true;
}
%}
@@ -0,0 +1,565 @@
{% include('themes/fluent/out_header_login'); %}
{#
Fluent Theme for LuCI - Login Page
Licensed to the public under the Apache License 2.0
#}
{%
import { access, glob, popen } from 'fs';
import { cursor } from 'uci';
// System info
let boardinfo = ubus.call('system', 'board');
let hostname = boardinfo && boardinfo.hostname ? boardinfo.hostname : '?';
let cfg = cursor();
let defaults = {};
include('themes/fluent/defaults', { defaults });
let mode = defaults.mode;
let primary = defaults.primary;
let dark_primary = defaults.dark_primary;
let blur_radius = defaults.blur;
let blur_radius_dark = defaults.blur_dark;
let blur_opacity = defaults.transparency;
let blur_opacity_dark = defaults.transparency_dark;
let bar_color = primary;
if (access('/etc/config/fluent')) {
mode = cfg.get_first('fluent', 'global', 'mode') || mode;
primary = cfg.get_first('fluent', 'global', 'primary') || primary;
dark_primary = cfg.get_first('fluent', 'global', 'dark_primary') || dark_primary;
blur_radius = cfg.get_first('fluent', 'global', 'blur') || blur_radius;
blur_radius_dark = cfg.get_first('fluent', 'global', 'blur_dark') || blur_radius_dark;
blur_opacity = cfg.get_first('fluent', 'global', 'transparency') || blur_opacity;
blur_opacity_dark = cfg.get_first('fluent', 'global', 'transparency_dark') || blur_opacity_dark;
bar_color = mode === 'dark' ? dark_primary : primary;
}
// Background image handling
let imageTypes = {
jpg: true, png: true, gif: true, webp: true
};
let videoTypes = {
mp4: true, webm: true
};
function fetchMedia(path, themeDir) {
let backgroundTable = [];
let backgroundCount = 0;
try {
let files = glob(path);
for (let f in files) {
let m = match(f, regexp('.+\\.([A-Za-z0-9]+)$'));
let ext = m ? m[1] : null;
if (ext in imageTypes || ext in videoTypes) {
let parts = split(f, '/');
let filename = parts[length(parts) - 1];
push(backgroundTable, {
type: ext,
is_video: ext in videoTypes,
url: themeDir + filename
});
backgroundCount++;
}
}
} catch (e) {}
return [backgroundTable, backgroundCount];
}
function selectBackground(themeDir) {
let bgUrl = '';
let backgroundType = 'None';
let mimeType = '';
let login_bg = defaults.login_bg;
if (access('/etc/config/fluent')) {
login_bg = cfg.get_first('fluent', 'global', 'login_bg') || login_bg;
}
if (login_bg === 'microsoft') {
return ['', 'MicrosoftDynamic', ''];
}
if (login_bg === 'bing') {
try {
let proc = popen('/usr/libexec/fluent/online_wallpaper');
let picurl = proc ? trim(proc.read('all')) : '';
if (proc)
proc.close();
if (picurl) {
return [picurl, 'Image', ''];
}
} catch (e) {}
}
if (login_bg !== 'custom') {
return ['', 'None', ''];
}
// Custom mode: rotate uploaded media from the background directory
let mediaFiles = fetchMedia('/www' + themeDir + '*', themeDir);
let backgroundTable = mediaFiles[0];
let backgroundCount = mediaFiles[1];
if (backgroundCount > 0) {
let currentBg = backgroundTable[time() % backgroundCount];
bgUrl = currentBg.url;
if (currentBg.is_video) {
backgroundType = 'Video';
mimeType = 'video/' + currentBg.type;
}
}
return [bgUrl, backgroundType, mimeType];
}
let themeDir = media + '/background/';
let selectedBg = selectBackground(themeDir);
let bgUrl = selectedBg[0];
let backgroundType = selectedBg[1];
let mimeType = selectedBg[2];
%}
<!-- Login Page Start -->
<div class="login-page">
{% if (backgroundType === 'Video') { %}
<!-- Video Player Start -->
<div class="video">
<video autoplay loop muted id="video">
<source src="{{ bgUrl }}" type="{{ mimeType }}">
</video>
</div>
<div class="volume-control mute"></div>
<script>
document.querySelector(".volume-control").addEventListener("click", function(){
var video = document.getElementById("video");
if(this.classList.contains("mute")){
this.classList.remove("mute");
video.muted = false;
} else {
this.classList.add("mute");
video.muted = true;
}
});
</script>
<!-- Video Player End -->
{% } else if (backgroundType === 'MicrosoftDynamic') { %}
<!-- Microsoft-style Dynamic Canvas Background -->
<canvas id="login-canvas" class="main-bg"></canvas>
<script type="text/javascript">//<![CDATA[
(function() {
const canvas = document.getElementById('login-canvas');
if (!canvas) return;
const ctx = canvas.getContext('2d');
let w = canvas.width = window.innerWidth;
let h = canvas.height = window.innerHeight;
const isDark = document.documentElement.getAttribute('data-theme') === 'dark';
// Dynamic color options based on theme
const colors = isDark ? {
bgStart: '#090a10',
bgEnd: '#030406',
ribbons: [
{
y1: 0.6, y2: 0.1, thicknessStart: 0.35, thicknessEnd: 0.3, thicknessMid: 0.5,
cp1x: 0.3, cp1y: 0.4, cp2x: 0.7, cp2y: 0.2, speed: 0.0004, phase: 0,
c1: 'rgba(10, 24, 72, 0.45)', c2: 'rgba(3, 8, 28, 0)'
},
{
y1: 0.75, y2: 0.2, thicknessStart: 0.25, thicknessEnd: 0.2, thicknessMid: 0.4,
cp1x: 0.4, cp1y: 0.55, cp2x: 0.8, cp2y: 0.35, speed: 0.0006, phase: 1.8,
c1: 'rgba(0, 72, 160, 0.35)', c2: 'rgba(0, 10, 40, 0)'
},
{
y1: 0.5, y2: 0.35, thicknessStart: 0.15, thicknessEnd: 0.15, thicknessMid: 0.3,
cp1x: 0.2, cp1y: 0.65, cp2x: 0.6, cp2y: 0.45, speed: 0.0005, phase: 3.5,
c1: 'rgba(84, 32, 140, 0.25)', c2: 'rgba(12, 4, 28, 0)'
},
{
y1: 0.5, y2: 0.35, thicknessStart: 0.02, thicknessEnd: 0.02, thicknessMid: 0.04,
cp1x: 0.2, cp1y: 0.65, cp2x: 0.6, cp2y: 0.45, speed: 0.0005, phase: 3.5,
c1: 'rgba(0, 180, 255, 0.25)', c2: 'rgba(0, 0, 0, 0)'
}
]
} : {
bgStart: '#eef3fa',
bgEnd: '#f4f6f9',
ribbons: [
{
y1: 0.6, y2: 0.1, thicknessStart: 0.35, thicknessEnd: 0.3, thicknessMid: 0.5,
cp1x: 0.3, cp1y: 0.4, cp2x: 0.7, cp2y: 0.2, speed: 0.0004, phase: 0,
c1: 'rgba(0, 120, 215, 0.08)', c2: 'rgba(0, 120, 215, 0)'
},
{
y1: 0.75, y2: 0.2, thicknessStart: 0.25, thicknessEnd: 0.2, thicknessMid: 0.4,
cp1x: 0.4, cp1y: 0.55, cp2x: 0.8, cp2y: 0.35, speed: 0.0006, phase: 1.8,
c1: 'rgba(112, 48, 160, 0.06)', c2: 'rgba(112, 48, 160, 0)'
},
{
y1: 0.5, y2: 0.35, thicknessStart: 0.15, thicknessEnd: 0.15, thicknessMid: 0.3,
cp1x: 0.2, cp1y: 0.65, cp2x: 0.6, cp2y: 0.45, speed: 0.0005, phase: 3.5,
c1: 'rgba(0, 130, 114, 0.07)', c2: 'rgba(0, 130, 114, 0)'
},
{
y1: 0.5, y2: 0.35, thicknessStart: 0.02, thicknessEnd: 0.02, thicknessMid: 0.04,
cp1x: 0.2, cp1y: 0.65, cp2x: 0.6, cp2y: 0.45, speed: 0.0005, phase: 3.5,
c1: 'rgba(255, 255, 255, 0.65)', c2: 'rgba(255, 255, 255, 0)'
}
]
};
// Random particles (stardust / micro-particles)
let particles = [];
const particleCount = isDark ? 65 : 30;
function initParticles() {
particles = [];
for (let i = 0; i < particleCount; i++) {
particles.push({
x: Math.random() * w,
y: Math.random() * h,
size: Math.random() * 1.5 + 0.4,
alpha: Math.random() * 0.7 + 0.1,
targetAlpha: Math.random() * 0.7 + 0.1,
dx: (Math.random() - 0.5) * 0.06,
dy: (Math.random() - 0.5) * 0.06,
flicker: Math.random() * 0.008 + 0.002
});
}
}
initParticles();
window.addEventListener('resize', () => {
w = canvas.width = window.innerWidth;
h = canvas.height = window.innerHeight;
initParticles();
});
function drawRibbon(time, opt) {
ctx.beginPath();
// Calculate dynamic start/end points using sine/cosine waves for gentle floating motion
const startX1 = -w * 0.2;
const startY1 = h * (opt.y1 + Math.sin(time * opt.speed + opt.phase) * 0.04);
const cp1x = w * (opt.cp1x + Math.cos(time * opt.speed * 0.8 + opt.phase) * 0.04);
const cp1y = h * (opt.cp1y + Math.sin(time * opt.speed * 1.1 + opt.phase) * 0.05);
const cp2x = w * (opt.cp2x + Math.sin(time * opt.speed * 0.9 + opt.phase * 1.5) * 0.04);
const cp2y = h * (opt.cp2y + Math.cos(time * opt.speed * 1.2 + opt.phase * 1.5) * 0.04);
const endX1 = w * 1.2;
const endY1 = h * (opt.y2 + Math.cos(time * opt.speed * 0.7 + opt.phase * 2) * 0.04);
ctx.moveTo(startX1, startY1);
ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, endX1, endY1);
// Line down to start of bottom edge of the ribbon
const endX2 = w * 1.2;
const endY2 = endY1 + h * opt.thicknessEnd;
ctx.lineTo(endX2, endY2);
// Bezier curves back to left side
const cp3x = cp2x;
const cp3y = cp2y + h * opt.thicknessMid;
const cp4x = cp1x;
const cp4y = cp1y + h * opt.thicknessMid;
const startX2 = startX1;
const startY2 = startY1 + h * opt.thicknessStart;
ctx.bezierCurveTo(cp3x, cp3y, cp4x, cp4y, startX2, startY2);
ctx.closePath();
const grad = ctx.createLinearGradient(0, h * opt.y1, w, h * opt.y2);
grad.addColorStop(0, opt.c1);
grad.addColorStop(1, opt.c2);
ctx.fillStyle = grad;
ctx.fill();
}
function animate(time) {
// 1. Draw base gradient background
const bgGrad = ctx.createLinearGradient(0, 0, w, h);
bgGrad.addColorStop(0, colors.bgStart);
bgGrad.addColorStop(1, colors.bgEnd);
ctx.fillStyle = bgGrad;
ctx.fillRect(0, 0, w, h);
// 2. Draw dynamic ribbons/waves
colors.ribbons.forEach(opt => {
drawRibbon(time, opt);
});
// 3. Draw particles
particles.forEach(p => {
// Update position
p.x += p.dx;
p.y += p.dy;
// Loop screen edges
if (p.x < 0) p.x = w;
if (p.x > w) p.x = 0;
if (p.y < 0) p.y = h;
if (p.y > h) p.y = 0;
// Twinkle/Flicker alpha
if (Math.abs(p.alpha - p.targetAlpha) < 0.02) {
p.targetAlpha = Math.random() * (isDark ? 0.7 : 0.4) + 0.1;
}
p.alpha += (p.targetAlpha - p.alpha) * p.flicker;
// Draw
ctx.beginPath();
ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
ctx.fillStyle = isDark ? `rgba(255, 255, 255, ${p.alpha})` : `rgba(0, 120, 215, ${p.alpha * 0.7})`;
ctx.fill();
});
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);
})();
//]]></script>
{% } else if (bgUrl) { %}
<!-- Image Background Start -->
<div class="main-bg" id="main-bg" style="background-image:url({{ bgUrl }})"></div>
<!-- Image Background End -->
{% } %}
<!-- Login Container Start -->
<div class="login-container">
<div class="login-form">
<!-- Card Header Start -->
<div class="ms-card-header">
<button type="button" class="ms-back-button" id="ms-back-btn" style="display: none;" aria-label="Back">
<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
<line x1="17" y1="12" x2="7" y2="12"></line>
<polyline points="11 17 6 12 11 7"></polyline>
</svg>
</button>
<a class="brand" href="/">
<img src="{{ media }}/img/fluent.svg" class="icon" />
<span class="brand-text">{{ hostname }}</span>
</a>
</div>
<!-- Card Header End -->
<!-- Login Form Start -->
<form class="form-login" method="post" action="">
<!-- Step 1: Username -->
<div id="step-username" class="step-container">
<h2 class="login-title">{{ _('Authorization Required') }}</h2>
<p class="login-subtitle">{{ _('Please enter your username.') }}</p>
<div class="input-container">
<div class="ms-input-wrapper">
<input class="ms-input{% if (fuser) { %} cbi-input-invalid{% } %}" id="cbi-input-user" type="text" name="luci_username" value="{{ entityencode(duser, true) }}" placeholder=" " />
<label class="ms-label" for="cbi-input-user">{{ _('Username') }}</label>
<div class="ms-input-underline"></div>
</div>
</div>
<div class="button-container">
<button type="button" class="ms-button" id="btn-next">{{ _('Next') }}</button>
</div>
</div>
<!-- Step 2: Password -->
<div id="step-password" class="step-container">
<div class="login-account-pill-wrapper">
<div class="login-account-pill" id="login-account-pill">
<span class="login-account-pill__text" id="login-account-pill-text"></span>
</div>
</div>
<h2 class="login-title">{{ _('Authorization Required') }}</h2>
<p class="login-subtitle">{{ _('Please enter your password.') }}</p>
<div class="input-container">
<div class="ms-input-wrapper password-wrapper">
<input class="ms-input{% if (fuser) { %} cbi-input-invalid{% } %}" id="cbi-input-password" type="password" name="luci_password" placeholder=" " />
<label class="ms-label" for="cbi-input-password">{{ _('Password') }}</label>
<button type="button" class="ms-password-toggle" id="ms-password-toggle" tabindex="-1" aria-label="Toggle password visibility">
<svg class="eye-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
<circle cx="12" cy="12" r="3"></circle>
</svg>
</button>
<div class="ms-input-underline"></div>
</div>
{%- if (fuser) { %}
<div class="errorbox">{{ _('Invalid username and/or password! Please try again.') }}</div>
{%- } %}
</div>
<div class="button-container">
<input type="submit" value="{{ _('Login') }}" class="ms-button" id="btn-login" />
</div>
</div>
</form>
<!-- Login Form End -->
<script type="text/javascript">//<![CDATA[
(function() {
var userInput = document.getElementById('cbi-input-user');
var passInput = document.getElementById('cbi-input-password');
var stepUsername = document.getElementById('step-username');
var stepPassword = document.getElementById('step-password');
var backBtn = document.getElementById('ms-back-btn');
var btnNext = document.getElementById('btn-next');
var accountPillText = document.getElementById('login-account-pill-text');
var passwordToggle = document.getElementById('ms-password-toggle');
var errorBox = document.querySelector('.errorbox');
var loginFormEl = document.querySelector('.form-login');
function getCurrentHost() {
if (window.location && window.location.host) {
return window.location.host;
}
return '{{ entityencode(hostname, true) }}';
}
function formatAccountPill(username) {
var normalizedUsername = username ? username.trim() : '';
if (!normalizedUsername) {
return '';
}
var currentHost = getCurrentHost();
return currentHost ? normalizedUsername + '@' + currentHost : normalizedUsername;
}
function syncAccountPill() {
if (accountPillText && userInput) {
accountPillText.textContent = formatAccountPill(userInput.value);
}
}
function clearError() {
if (errorBox) errorBox.style.display = 'none';
if (userInput) userInput.classList.remove('cbi-input-invalid');
if (passInput) passInput.classList.remove('cbi-input-invalid');
}
if (userInput) {
userInput.addEventListener('input', clearError);
}
if (passInput) {
passInput.addEventListener('input', clearError);
}
function showStep2() {
if (loginFormEl) loginFormEl.classList.add('show-step2');
if (backBtn) backBtn.style.display = 'flex';
if (passInput) {
setTimeout(function() {
passInput.focus();
}, 50);
}
}
function showStep1() {
if (loginFormEl) loginFormEl.classList.remove('show-step2');
if (backBtn) backBtn.style.display = 'none';
if (userInput) {
setTimeout(function() {
userInput.focus();
}, 50);
}
}
if (btnNext && userInput) {
btnNext.addEventListener('click', function(e) {
e.preventDefault();
if (userInput.value.trim() !== '') {
syncAccountPill();
showStep2();
} else {
if (typeof userInput.reportValidity === 'function') {
userInput.reportValidity();
} else {
alert('{{ _('Username is required.') }}');
}
}
});
userInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter') {
e.preventDefault();
btnNext.click();
}
});
}
if (backBtn) {
backBtn.addEventListener('click', function(e) {
e.preventDefault();
showStep1();
});
}
if (passwordToggle && passInput) {
passwordToggle.addEventListener('click', function(e) {
e.preventDefault();
if (passInput.type === 'password') {
passInput.type = 'text';
passwordToggle.innerHTML = '<svg class="eye-off-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>';
} else {
passInput.type = 'password';
passwordToggle.innerHTML = '<svg class="eye-icon" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>';
}
});
}
// Initial router: If username is already populated, go straight to Step 2.
if (userInput && userInput.value.trim() !== '') {
syncAccountPill();
if (loginFormEl) {
loginFormEl.classList.add('no-transition');
showStep2();
// Force reflow to flush styles before removing no-transition
var reflow = loginFormEl.offsetHeight;
loginFormEl.classList.remove('no-transition');
} else {
showStep2();
}
} else {
showStep1();
}
})();
//]]></script>
{%
let https_key = cfg.get('uhttpd', 'main', 'key');
let https_port = cfg.get('uhttpd', 'main', 'listen_https');
if (type(https_port) === 'object') {
https_port = https_port[0];
}
if (https_port && access(https_key)) {
let m = match(https_port, regexp('(\\d+)$'));
https_port = m ? m[1] : null;
%}
<script type="text/javascript">//<![CDATA[
if (document.location.protocol != 'https:') {
var url = 'https://' + window.location.hostname + ':' + '{{ https_port }}' + window.location.pathname;
var img = new Image;
img.onload = function () { window.location = url };
img.src = 'https://' + window.location.hostname + ':' + '{{ https_port }}' + '{{ resource }}/cbi/up.gif?' + Math.random();
setTimeout(function () {
img.src = ''
}, 5000);
}
//]]></script>
{% } %}
{% include('themes/fluent/footer_login'); %}
<!-- Login Page End -->