mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
feat: enhance settings page with community links and support options
Entire-Checkpoint: c6e522b4276c
This commit is contained in:
1 parent
4c6e65be9b
commit
d3231151e7
5 files changed
+556
-7
No files matched your search
@@ -801,7 +801,7 @@
|
||||
</div>
|
||||
<div class="settings-group__header-text">
|
||||
<h3>{{ 'SETTINGS.ABOUT' | translate }}</h3>
|
||||
<p>{{ 'SETTINGS.VERSION_DESCRIPTION' | translate }}</p>
|
||||
<p>{{ 'SETTINGS.ABOUT_SUBTITLE' | translate }}</p>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -815,6 +815,170 @@
|
||||
<small>{{ updateMessage }}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item setting-item--full-control">
|
||||
<div class="setting-item__meta">
|
||||
<h4>{{ 'SETTINGS.COMMUNITY' | translate }}</h4>
|
||||
<p>
|
||||
{{ 'SETTINGS.COMMUNITY_DESCRIPTION' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="setting-item__control">
|
||||
<div class="link-cards">
|
||||
<a
|
||||
class="link-card link-card--github"
|
||||
href="https://github.com/4gray/iptvnator"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener"
|
||||
data-test-id="link-github"
|
||||
>
|
||||
<span class="link-card__glyph">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
aria-hidden="true"
|
||||
focusable="false"
|
||||
>
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.6.112.793-.26.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.52 11.52 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.565 21.796 24 17.3 24 12c0-6.627-5.373-12-12-12z"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="link-card__text">
|
||||
<strong>GitHub</strong>
|
||||
<span>{{
|
||||
'SETTINGS.LINK_GITHUB_DESCRIPTION'
|
||||
| translate
|
||||
}}</span>
|
||||
</span>
|
||||
<mat-icon class="link-card__arrow"
|
||||
>arrow_outward</mat-icon
|
||||
>
|
||||
</a>
|
||||
<a
|
||||
class="link-card link-card--blog"
|
||||
href="https://4gray.github.io/iptvnator/"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener"
|
||||
data-test-id="link-blog"
|
||||
>
|
||||
<span class="link-card__glyph">
|
||||
<mat-icon>menu_book</mat-icon>
|
||||
</span>
|
||||
<span class="link-card__text">
|
||||
<strong>{{
|
||||
'SETTINGS.LINK_BLOG' | translate
|
||||
}}</strong>
|
||||
<span>{{
|
||||
'SETTINGS.LINK_BLOG_DESCRIPTION'
|
||||
| translate
|
||||
}}</span>
|
||||
</span>
|
||||
<mat-icon class="link-card__arrow"
|
||||
>arrow_outward</mat-icon
|
||||
>
|
||||
</a>
|
||||
<a
|
||||
class="link-card link-card--telegram"
|
||||
href="https://t.me/iptvnator"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener"
|
||||
data-test-id="link-telegram"
|
||||
>
|
||||
<span class="link-card__glyph">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
aria-hidden="true"
|
||||
focusable="false"
|
||||
>
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M9.78 18.65l.28-4.23 7.68-6.92c.34-.31-.07-.46-.52-.19L7.74 13.3 3.64 12c-.88-.25-.89-.86.2-1.3l15.97-6.16c.73-.33 1.43.18 1.15 1.3l-2.72 12.81c-.19.91-.74 1.13-1.5.71L12.6 16.3l-1.99 1.93c-.23.23-.42.42-.83.42z"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="link-card__text">
|
||||
<strong>Telegram</strong>
|
||||
<span>{{
|
||||
'SETTINGS.LINK_TELEGRAM_DESCRIPTION'
|
||||
| translate
|
||||
}}</span>
|
||||
</span>
|
||||
<mat-icon class="link-card__arrow"
|
||||
>arrow_outward</mat-icon
|
||||
>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item setting-item--full-control">
|
||||
<div class="support-card" data-test-id="support-card">
|
||||
<div class="support-card__intro">
|
||||
<div class="support-card__emblem">
|
||||
<mat-icon>favorite</mat-icon>
|
||||
</div>
|
||||
<div class="support-card__copy">
|
||||
<h4>
|
||||
{{ 'SETTINGS.SUPPORT_TITLE' | translate }}
|
||||
</h4>
|
||||
<p>
|
||||
{{
|
||||
'SETTINGS.SUPPORT_DESCRIPTION'
|
||||
| translate
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="support-card__actions">
|
||||
<a
|
||||
class="support-btn support-btn--sponsors"
|
||||
href="https://github.com/sponsors/4gray"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener"
|
||||
data-test-id="support-sponsors"
|
||||
>
|
||||
<span class="support-btn__glyph">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
aria-hidden="true"
|
||||
focusable="false"
|
||||
>
|
||||
<path
|
||||
fill="currentColor"
|
||||
d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span class="support-btn__text">
|
||||
<strong>GitHub Sponsors</strong>
|
||||
<small>{{
|
||||
'SETTINGS.SUPPORT_SPONSORS_HINT'
|
||||
| translate
|
||||
}}</small>
|
||||
</span>
|
||||
</a>
|
||||
<a
|
||||
class="support-btn support-btn--kofi"
|
||||
href="https://ko-fi.com/4gray"
|
||||
target="_blank"
|
||||
rel="noreferrer noopener"
|
||||
data-test-id="support-kofi"
|
||||
>
|
||||
<span class="support-btn__glyph">
|
||||
<mat-icon>local_cafe</mat-icon>
|
||||
</span>
|
||||
<span class="support-btn__text">
|
||||
<strong>Ko-fi</strong>
|
||||
<small>{{
|
||||
'SETTINGS.SUPPORT_KOFI_HINT'
|
||||
| translate
|
||||
}}</small>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="action-bar" data-test-id="settings-action-bar">
|
||||
|
||||
@@ -510,6 +510,329 @@
|
||||
}
|
||||
}
|
||||
|
||||
.link-cards {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.link-card {
|
||||
box-sizing: border-box;
|
||||
display: grid;
|
||||
grid-template-columns: 40px minmax(0, 1fr) 20px;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 12px 14px;
|
||||
border: 1px solid color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-outline-variant) 70%,
|
||||
transparent
|
||||
);
|
||||
border-radius: 16px;
|
||||
background: color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-surface-container-low) 88%,
|
||||
transparent
|
||||
);
|
||||
color: var(--mat-sys-on-surface);
|
||||
text-decoration: none;
|
||||
transition:
|
||||
border-color 0.18s ease,
|
||||
background 0.18s ease,
|
||||
transform 0.18s ease,
|
||||
box-shadow 0.18s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: color-mix(
|
||||
in srgb,
|
||||
var(--app-selection-border) 54%,
|
||||
var(--mat-sys-outline-variant)
|
||||
);
|
||||
background: color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-surface-container-high) 92%,
|
||||
transparent
|
||||
);
|
||||
box-shadow: 0 10px 20px -22px rgba(15, 23, 42, 0.5);
|
||||
|
||||
.link-card__arrow {
|
||||
opacity: 1;
|
||||
transform: translate(2px, -2px);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: none;
|
||||
box-shadow:
|
||||
0 0 0 2px var(--mat-sys-surface),
|
||||
0 0 0 4px
|
||||
color-mix(in srgb, var(--app-selection-color) 40%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
.link-card__glyph {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 12px;
|
||||
background: color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-surface-container-high) 82%,
|
||||
transparent
|
||||
);
|
||||
color: var(--mat-sys-on-surface-variant);
|
||||
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
font-size: 20px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.link-card--github .link-card__glyph {
|
||||
background: color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-on-surface) 10%,
|
||||
transparent
|
||||
);
|
||||
color: var(--mat-sys-on-surface);
|
||||
}
|
||||
|
||||
.link-card--blog .link-card__glyph {
|
||||
background: color-mix(in srgb, #ff7849 18%, transparent);
|
||||
color: #ff8a5b;
|
||||
}
|
||||
|
||||
.link-card--telegram .link-card__glyph {
|
||||
background: color-mix(in srgb, #229ed9 22%, transparent);
|
||||
color: #38b0e3;
|
||||
}
|
||||
|
||||
.link-card__text {
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
|
||||
strong {
|
||||
font-size: 0.92rem;
|
||||
font-weight: 650;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
span {
|
||||
color: var(--settings-muted);
|
||||
font-size: 0.78rem;
|
||||
line-height: 1.35;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
}
|
||||
|
||||
.link-card__arrow {
|
||||
font-size: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
color: var(--settings-muted);
|
||||
opacity: 0.6;
|
||||
transition:
|
||||
opacity 0.18s ease,
|
||||
transform 0.18s ease;
|
||||
}
|
||||
|
||||
.support-card {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 14px;
|
||||
padding: 18px;
|
||||
border-radius: 18px;
|
||||
border: 1px solid color-mix(in srgb, #ff4d6d 26%, transparent);
|
||||
background:
|
||||
radial-gradient(
|
||||
120% 140% at 0% 0%,
|
||||
color-mix(in srgb, #ff4d6d 16%, transparent) 0%,
|
||||
transparent 55%
|
||||
),
|
||||
radial-gradient(
|
||||
120% 140% at 100% 100%,
|
||||
color-mix(in srgb, #ffb347 14%, transparent) 0%,
|
||||
transparent 60%
|
||||
),
|
||||
color-mix(
|
||||
in srgb,
|
||||
var(--mat-sys-surface-container-low) 92%,
|
||||
transparent
|
||||
);
|
||||
overflow: hidden;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
pointer-events: none;
|
||||
background: radial-gradient(
|
||||
80% 100% at 50% -10%,
|
||||
color-mix(in srgb, #ff4d6d 12%, transparent) 0%,
|
||||
transparent 70%
|
||||
);
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
.support-card__intro {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 14px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.support-card__emblem {
|
||||
flex: 0 0 auto;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
border-radius: 14px;
|
||||
background: linear-gradient(135deg, #ff4d6d, #ff8b5e);
|
||||
color: #fff;
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.35),
|
||||
0 10px 18px -10px rgba(255, 77, 109, 0.55);
|
||||
|
||||
mat-icon {
|
||||
font-size: 22px;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.support-card__copy {
|
||||
min-width: 0;
|
||||
flex: 1 1 auto;
|
||||
|
||||
h4 {
|
||||
margin: 0;
|
||||
font-size: 1rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 4px 0 0;
|
||||
color: var(--settings-muted);
|
||||
font-size: 0.86rem;
|
||||
line-height: 1.5;
|
||||
max-width: 64ch;
|
||||
}
|
||||
}
|
||||
|
||||
.support-card__actions {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.support-btn {
|
||||
flex: 1 1 220px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 10px 14px;
|
||||
border-radius: 14px;
|
||||
border: 1px solid transparent;
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
transition:
|
||||
transform 0.18s ease,
|
||||
box-shadow 0.18s ease,
|
||||
filter 0.18s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-1px);
|
||||
filter: brightness(1.04);
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: none;
|
||||
box-shadow:
|
||||
0 0 0 2px var(--mat-sys-surface),
|
||||
0 0 0 4px
|
||||
color-mix(in srgb, var(--app-selection-color) 40%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
.support-btn__glyph {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 10px;
|
||||
background: rgba(255, 255, 255, 0.18);
|
||||
color: #fff;
|
||||
flex: 0 0 auto;
|
||||
|
||||
svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
font-size: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.support-btn__text {
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
|
||||
strong {
|
||||
font-size: 0.92rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
small {
|
||||
color: rgba(255, 255, 255, 0.82);
|
||||
font-size: 0.75rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
}
|
||||
|
||||
.support-btn--sponsors {
|
||||
background: linear-gradient(135deg, #d4337a, #ff4d6d);
|
||||
box-shadow: 0 12px 22px -18px rgba(212, 51, 122, 0.7);
|
||||
}
|
||||
|
||||
.support-btn--kofi {
|
||||
background: linear-gradient(135deg, #13c3ff, #29abe0);
|
||||
box-shadow: 0 12px 22px -18px rgba(19, 195, 255, 0.7);
|
||||
}
|
||||
|
||||
.settings-note {
|
||||
margin: 12px 18px 18px;
|
||||
padding: 10px 12px;
|
||||
@@ -610,6 +933,14 @@
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.link-cards {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.support-btn {
|
||||
flex: 1 1 100%;
|
||||
}
|
||||
|
||||
.url-row {
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
|
||||
@@ -274,6 +274,17 @@
|
||||
"LANGUAGE_DESCRIPTION": "Wählen Sie die Sprache der Anwendung aus",
|
||||
"PLAYLISTS_REMOVED": "Alle Playlists wurden entfernt.",
|
||||
"VERSION_DESCRIPTION": "Aktuelle Version der Anwendung",
|
||||
"ABOUT_SUBTITLE": "Version, Projekt-Links und Möglichkeiten, IPTVnator zu unterstützen.",
|
||||
"COMMUNITY": "Projekt & Community",
|
||||
"COMMUNITY_DESCRIPTION": "Gib dem Repository einen Stern, lies den Blog oder tritt der Telegram-Gruppe für Updates und Hilfe bei.",
|
||||
"LINK_BLOG": "Blog",
|
||||
"LINK_GITHUB_DESCRIPTION": "Stern vergeben, Issues melden oder beitragen",
|
||||
"LINK_BLOG_DESCRIPTION": "Release Notes, Tipps und Projekt-Updates",
|
||||
"LINK_TELEGRAM_DESCRIPTION": "Ankündigungen, Community und Support",
|
||||
"SUPPORT_TITLE": "Projekt unterstützen",
|
||||
"SUPPORT_DESCRIPTION": "IPTVnator ist kostenlose Open-Source-Software, die im Offenen entwickelt wird. Wenn sie Teil deines Alltags ist, hilft ein kleiner Beitrag, das Projekt am Leben zu halten und die nächsten Schritte zu gestalten — danke!",
|
||||
"SUPPORT_SPONSORS_HINT": "Wiederkehrend oder einmalig",
|
||||
"SUPPORT_KOFI_HINT": "Spendiere einen Kaffee",
|
||||
"REMOVE_ALL_DESCRIPTION": "Dadurch werden alle vorhandenen Wiedergabelisten aus der Anwendung entfernt.",
|
||||
"MPV_PLAYER_PATH": "MPV-Player-Pfad",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Untertitel standardmäßig ein- oder ausblenden",
|
||||
@@ -532,6 +543,7 @@
|
||||
},
|
||||
"WORKSPACE": {
|
||||
"FAVORITES_ONLY": "Nur Favoriten",
|
||||
"SORT_CUSTOM": "Eigene Reihenfolge",
|
||||
"SORT_DATE_DESC": "Datum (Neueste zuerst)",
|
||||
"SORT_DATE_ASC": "Datum (Älteste zuerst)",
|
||||
"SORT_NAME_ASC": "Name A-Z",
|
||||
@@ -670,8 +682,14 @@
|
||||
"CLEAR_COMPLETED_DOWNLOADS_THIS_PLAYLIST_ARIA": "Abgeschlossene Downloads für diese Playlist löschen",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION": "Zuletzt angesehen löschen",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION_ARIA": "Zuletzt angesehen für diesen Abschnitt löschen",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Zuletzt angesehen löschen?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE": "Alle zuletzt angesehenen Einträge in diesem Abschnitt werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"CLEAR_RECENTLY_VIEWED_TYPE": "Zuletzt angesehen ({{type}}) löschen",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Zuletzt angesehen ({{type}}) löschen?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_PLAYLIST": "Alle {{type}}-Einträge aus dieser Playlist werden aus dem Verlauf entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_ALL": "Alle {{type}}-Einträge aus allen Playlists werden aus dem Verlauf entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"CLEAR_FAVORITES_TYPE": "Favoriten ({{type}}) löschen",
|
||||
"CLEAR_FAVORITES_DIALOG_TITLE": "Alle {{type}}-Favoriten entfernen?",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_PLAYLIST": "Alle {{type}}-Favoriten aus dieser Playlist werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_ALL": "Alle {{type}}-Favoriten aus allen Playlists werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"XTREAM_CODE": "Xtream Code",
|
||||
"STALKER_PORTAL": "Stalker-Portal",
|
||||
"CHANNELS_COUNT": "{{count}} Sender",
|
||||
|
||||
@@ -226,6 +226,17 @@
|
||||
"SHOW_EXTERNAL_PLAYBACK_BAR": "Show now playing footer",
|
||||
"SHOW_EXTERNAL_PLAYBACK_BAR_DESCRIPTION": "Keep the external-player status bar visible at the bottom of the workspace on desktop.",
|
||||
"VERSION_DESCRIPTION": "Current version of the application",
|
||||
"ABOUT_SUBTITLE": "Version, project links and ways to support IPTVnator.",
|
||||
"COMMUNITY": "Project & community",
|
||||
"COMMUNITY_DESCRIPTION": "Star the repository, read the blog or join the Telegram group for updates and help.",
|
||||
"LINK_BLOG": "Blog",
|
||||
"LINK_GITHUB_DESCRIPTION": "Star the repo, open an issue or contribute",
|
||||
"LINK_BLOG_DESCRIPTION": "Release notes, tips and project updates",
|
||||
"LINK_TELEGRAM_DESCRIPTION": "Announcements, community and support",
|
||||
"SUPPORT_TITLE": "Support the project",
|
||||
"SUPPORT_DESCRIPTION": "IPTVnator is free and open source, built in the open. If it is part of your daily routine, a small contribution helps keep the project alive and shape what comes next — thank you.",
|
||||
"SUPPORT_SPONSORS_HINT": "Recurring or one-time",
|
||||
"SUPPORT_KOFI_HINT": "Buy me a coffee",
|
||||
"EPG_NOTE": "Currently EPG is available only in the electron-based version of IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Check it here",
|
||||
"IMPORT_EXPORT_DATA": "Import/export playlists",
|
||||
@@ -644,6 +655,7 @@
|
||||
},
|
||||
"WORKSPACE": {
|
||||
"FAVORITES_ONLY": "Favorites only",
|
||||
"SORT_CUSTOM": "Custom order",
|
||||
"SORT_DATE_DESC": "Date Added (Latest First)",
|
||||
"SORT_DATE_ASC": "Date Added (Oldest First)",
|
||||
"SORT_NAME_ASC": "Name A-Z",
|
||||
@@ -782,8 +794,14 @@
|
||||
"CLEAR_COMPLETED_DOWNLOADS_THIS_PLAYLIST_ARIA": "Clear completed downloads for this playlist",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION": "Clear recently viewed",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION_ARIA": "Clear recently viewed for this section",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Clear recently viewed?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE": "All recently viewed items in this section will be removed. This action cannot be undone.",
|
||||
"CLEAR_RECENTLY_VIEWED_TYPE": "Clear recently viewed {{type}}",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Clear recently viewed {{type}}?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_PLAYLIST": "All {{type}} items from this playlist will be removed from your recently viewed history. This action cannot be undone.",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_ALL": "All {{type}} items across all playlists will be removed from your recently viewed history. This action cannot be undone.",
|
||||
"CLEAR_FAVORITES_TYPE": "Clear {{type}} favorites",
|
||||
"CLEAR_FAVORITES_DIALOG_TITLE": "Remove all {{type}} favorites?",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_PLAYLIST": "All {{type}} favorites from this playlist will be removed. This action cannot be undone.",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_ALL": "All {{type}} favorites across all playlists will be removed. This action cannot be undone.",
|
||||
"XTREAM_CODE": "Xtream Code",
|
||||
"STALKER_PORTAL": "Stalker Portal",
|
||||
"CHANNELS_COUNT": "{{count}} channels",
|
||||
|
||||
@@ -201,6 +201,17 @@
|
||||
"STARTUP_BEHAVIOR_RESTORE_LAST_VIEW": "Восстановить последний экран",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Показать или скрыть субтитры по умолчанию.",
|
||||
"VERSION_DESCRIPTION": "Текущая версия приложения",
|
||||
"ABOUT_SUBTITLE": "Версия, ссылки на проект и способы поддержать IPTVnator.",
|
||||
"COMMUNITY": "Проект и сообщество",
|
||||
"COMMUNITY_DESCRIPTION": "Поставьте звезду репозиторию, читайте блог или присоединяйтесь к Telegram-группе для новостей и поддержки.",
|
||||
"LINK_BLOG": "Блог",
|
||||
"LINK_GITHUB_DESCRIPTION": "Звезда, issues и возможность поучаствовать",
|
||||
"LINK_BLOG_DESCRIPTION": "Новости релизов, советы и обновления проекта",
|
||||
"LINK_TELEGRAM_DESCRIPTION": "Анонсы, сообщество и поддержка",
|
||||
"SUPPORT_TITLE": "Поддержать проект",
|
||||
"SUPPORT_DESCRIPTION": "IPTVnator — бесплатный open source проект, разработка ведётся открыто. Если он стал частью вашего дня, небольшая поддержка помогает продолжать развитие — спасибо!",
|
||||
"SUPPORT_SPONSORS_HINT": "Регулярно или однократно",
|
||||
"SUPPORT_KOFI_HINT": "Купить кофе",
|
||||
"EPG_NOTE": "На данный момент EPG доступен только в нативной версии IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Подробнее здесь",
|
||||
"IMPORT_EXPORT_DATA": "Импорт/экспорт плейлистов",
|
||||
@@ -488,6 +499,7 @@
|
||||
},
|
||||
"WORKSPACE": {
|
||||
"FAVORITES_ONLY": "Только избранное",
|
||||
"SORT_CUSTOM": "Пользовательский порядок",
|
||||
"SORT_DATE_DESC": "Дата добавления (Сначала новые)",
|
||||
"SORT_DATE_ASC": "Дата добавления (Сначала старые)",
|
||||
"SORT_NAME_ASC": "Имя (А-Я)",
|
||||
@@ -626,8 +638,14 @@
|
||||
"CLEAR_COMPLETED_DOWNLOADS_THIS_PLAYLIST_ARIA": "Очистить завершенные загрузки для этого плейлиста",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION": "Очистить недавно просмотренное",
|
||||
"CLEAR_RECENTLY_VIEWED_SECTION_ARIA": "Очистить недавно просмотренное для этого раздела",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Очистить недавно просмотренное?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE": "Все недавно просмотренные элементы в этом разделе будут удалены. Это действие нельзя отменить.",
|
||||
"CLEAR_RECENTLY_VIEWED_TYPE": "Очистить недавно просмотренное ({{type}})",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_TITLE": "Очистить недавно просмотренное ({{type}})?",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_PLAYLIST": "Все элементы «{{type}}» из этого плейлиста будут удалены из истории просмотров. Это действие нельзя отменить.",
|
||||
"CLEAR_RECENTLY_VIEWED_DIALOG_MESSAGE_ALL": "Все элементы «{{type}}» из всех плейлистов будут удалены из истории просмотров. Это действие нельзя отменить.",
|
||||
"CLEAR_FAVORITES_TYPE": "Удалить избранное ({{type}})",
|
||||
"CLEAR_FAVORITES_DIALOG_TITLE": "Удалить все избранное «{{type}}»?",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_PLAYLIST": "Все избранное «{{type}}» из этого плейлиста будет удалено. Это действие нельзя отменить.",
|
||||
"CLEAR_FAVORITES_DIALOG_MESSAGE_ALL": "Все избранное «{{type}}» из всех плейлистов будет удалено. Это действие нельзя отменить.",
|
||||
"XTREAM_CODE": "Xtream Code",
|
||||
"STALKER_PORTAL": "Портал Stalker",
|
||||
"CHANNELS_COUNT": "{{count}} каналов",
|
||||
|
||||
Reference in new issue
Block a user