mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 17:06:15 -08:00
Merge pull request #672 from 4gray/style/improve-start-page
style/improve-start-page
This commit is contained in:
58 files changed
+5556
-3643
No files matched your search
@@ -144,6 +144,78 @@ This is an Nx monorepo with the following structure:
|
||||
- Same schema structure but implemented in IndexedDB
|
||||
- Limited by browser storage quotas
|
||||
|
||||
**Angular Coding Standards**:
|
||||
|
||||
This project uses modern Angular signal-based APIs and patterns. **ALWAYS** use the following:
|
||||
|
||||
- **Component Queries**: Use `viewChild()`, `viewChildren()`, `contentChild()`, `contentChildren()` instead of `@ViewChild`, `@ViewChildren`, `@ContentChild`, `@ContentChildren` decorators
|
||||
```typescript
|
||||
// ✅ Correct - Signal-based
|
||||
readonly menu = viewChild.required<MatMenu>('menuRef');
|
||||
readonly items = viewChildren<ElementRef>('item');
|
||||
|
||||
// ❌ Incorrect - Old decorator syntax
|
||||
@ViewChild('menuRef') menu!: MatMenu;
|
||||
@ViewChildren('item') items!: QueryList<ElementRef>;
|
||||
```
|
||||
|
||||
**Important**: When using signals in templates with properties that expect non-signal values, unwrap the signal by calling it:
|
||||
```html
|
||||
<!-- ✅ Correct - Unwrap the signal -->
|
||||
<button [matMenuTriggerFor]="menu()">Open Menu</button>
|
||||
|
||||
<!-- ❌ Incorrect - Signal not unwrapped -->
|
||||
<button [matMenuTriggerFor]="menu">Open Menu</button>
|
||||
```
|
||||
|
||||
- **Component Inputs/Outputs**: Use `input()` and `output()` functions instead of `@Input()` and `@Output()` decorators
|
||||
```typescript
|
||||
// ✅ Correct - Signal-based
|
||||
readonly title = input.required<string>();
|
||||
readonly size = input<number>(10); // with default value
|
||||
readonly clicked = output<string>();
|
||||
|
||||
// ❌ Incorrect - Old decorator syntax
|
||||
@Input({ required: true }) title!: string;
|
||||
@Input() size = 10;
|
||||
@Output() clicked = new EventEmitter<string>();
|
||||
```
|
||||
|
||||
- **Reactive State**: Use signal primitives for reactive state management
|
||||
```typescript
|
||||
// ✅ Use signal(), computed(), effect(), linkedSignal()
|
||||
readonly count = signal(0);
|
||||
readonly doubled = computed(() => this.count() * 2);
|
||||
|
||||
constructor() {
|
||||
effect(() => {
|
||||
console.log('Count changed:', this.count());
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
- **Host Bindings**: Use `@HostBinding()` and `@HostListener()` decorators (these don't have signal equivalents yet)
|
||||
```typescript
|
||||
@HostBinding('class.active') get isActive() { return this.active(); }
|
||||
@HostListener('click') onClick() { /* ... */ }
|
||||
```
|
||||
|
||||
- **Control Flow**: Use `@if`, `@for`, `@switch` instead of `*ngIf`, `*ngFor`, `*ngSwitch`
|
||||
```typescript
|
||||
// ✅ Correct - Modern syntax
|
||||
@if (isLoggedIn()) {
|
||||
<p>Welcome!</p>
|
||||
}
|
||||
|
||||
@for (item of items(); track item.id) {
|
||||
<li>{{ item.name }}</li>
|
||||
}
|
||||
|
||||
// ❌ Incorrect - Old syntax
|
||||
<p *ngIf="isLoggedIn">Welcome!</p>
|
||||
<li *ngFor="let item of items; trackBy: trackById">{{ item.name }}</li>
|
||||
```
|
||||
|
||||
### Backend Architecture (Electron)
|
||||
|
||||
**Main Entry**: `apps/electron-backend/src/main.ts`
|
||||
|
||||
@@ -137,4 +137,5 @@ contextBridge.exposeInMainWorld('electron', {
|
||||
dbGetContentByXtreamId: (xtreamId: number, playlistId: string) =>
|
||||
ipcRenderer.invoke('DB_GET_CONTENT_BY_XTREAM_ID', xtreamId, playlistId),
|
||||
dbDeleteAllPlaylists: () => ipcRenderer.invoke('DB_DELETE_ALL_PLAYLISTS'),
|
||||
getLocalIpAddresses: () => ipcRenderer.invoke('get-local-ip-addresses'),
|
||||
});
|
||||
@@ -79,6 +79,12 @@ export default class App {
|
||||
...savedWindowBounds,
|
||||
minHeight: 600,
|
||||
minWidth: 900,
|
||||
...(process.platform === 'darwin'
|
||||
? {
|
||||
titleBarStyle: 'hidden',
|
||||
titleBarOverlay: true,
|
||||
}
|
||||
: {}),
|
||||
});
|
||||
App.mainWindow.setMenu(null);
|
||||
if (!savedWindowBounds) {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
import { app, ipcMain } from 'electron';
|
||||
import * as os from 'os';
|
||||
import { environment } from '../../environments/environment';
|
||||
|
||||
export default class ElectronEvents {
|
||||
@@ -23,3 +24,20 @@ ipcMain.handle('get-app-version', (event) => {
|
||||
ipcMain.on('quit', (event, code) => {
|
||||
app.exit(code);
|
||||
});
|
||||
|
||||
// Get local IP addresses for remote control URL display
|
||||
ipcMain.handle('get-local-ip-addresses', () => {
|
||||
const interfaces = os.networkInterfaces();
|
||||
const addresses: string[] = [];
|
||||
|
||||
for (const name of Object.keys(interfaces)) {
|
||||
for (const iface of interfaces[name] || []) {
|
||||
// Skip internal (loopback) and non-IPv4 addresses
|
||||
if (iface.family === 'IPv4' && !iface.internal) {
|
||||
addresses.push(iface.address);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return addresses;
|
||||
});
|
||||
@@ -10,13 +10,21 @@ export class HttpServer {
|
||||
private server: http.Server | null = null;
|
||||
private port = 8765;
|
||||
private isEnabled = false;
|
||||
private distPath: string;
|
||||
private distPath: string | null = null;
|
||||
private remoteControlHandlers: Map<
|
||||
string,
|
||||
(req: http.IncomingMessage, res: http.ServerResponse) => void
|
||||
> = new Map();
|
||||
|
||||
constructor() {
|
||||
/**
|
||||
* Get the path to the remote-control-web static files.
|
||||
* Lazily computed to avoid calling Electron APIs before app is ready.
|
||||
*/
|
||||
private getDistPath(): string {
|
||||
if (this.distPath) {
|
||||
return this.distPath;
|
||||
}
|
||||
|
||||
// Path to the built remote-control-web app
|
||||
// In development: use workspace root
|
||||
// In production: use app path
|
||||
@@ -34,16 +42,16 @@ export class HttpServer {
|
||||
);
|
||||
} else {
|
||||
// Production mode - files are bundled with the app
|
||||
// electron-builder copies remote-control-web/**/* directly to app root
|
||||
this.distPath = path.join(
|
||||
appPath,
|
||||
'dist',
|
||||
'apps',
|
||||
'remote-control-web',
|
||||
'browser'
|
||||
);
|
||||
}
|
||||
|
||||
console.log('[HTTP Server] Serving from:', this.distPath);
|
||||
return this.distPath;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,7 +159,7 @@ export class HttpServer {
|
||||
// Security: prevent directory traversal
|
||||
filePath = path.normalize(filePath).replace(/^(\.\.[/\\])+/, '');
|
||||
|
||||
const fullPath = path.join(this.distPath, filePath);
|
||||
const fullPath = path.join(this.getDistPath(), filePath);
|
||||
|
||||
fs.readFile(fullPath, (err, data) => {
|
||||
if (err) {
|
||||
|
||||
+16
-4
@@ -40,10 +40,16 @@
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "4kb",
|
||||
"maximumError": "8kb"
|
||||
"maximumError": "10kb"
|
||||
}
|
||||
],
|
||||
"outputHashing": "all"
|
||||
"outputHashing": "all",
|
||||
"fileReplacements": [
|
||||
{
|
||||
"replace": "apps/web/src/environments/environment.ts",
|
||||
"with": "apps/web/src/environments/environment.prod.ts"
|
||||
}
|
||||
]
|
||||
},
|
||||
"pwa": {
|
||||
"baseHref": "/",
|
||||
@@ -56,13 +62,19 @@
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "4kb",
|
||||
"maximumError": "8kb"
|
||||
"maximumError": "10kb"
|
||||
}
|
||||
],
|
||||
"outputHashing": "all",
|
||||
"optimization": true,
|
||||
"extractLicenses": true,
|
||||
"sourceMap": false
|
||||
"sourceMap": false,
|
||||
"fileReplacements": [
|
||||
{
|
||||
"replace": "apps/web/src/environments/environment.ts",
|
||||
"with": "apps/web/src/environments/environment.prod.ts"
|
||||
}
|
||||
]
|
||||
},
|
||||
"development": {
|
||||
"optimization": false,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Component, inject, OnInit } from '@angular/core';
|
||||
import { Component, HostBinding, inject, OnInit } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { Router, RouterOutlet } from '@angular/router';
|
||||
import { Actions, ofType } from '@ngrx/effects';
|
||||
@@ -27,6 +27,9 @@ import { SearchResultsComponent } from './xtream-tauri/search-results/search-res
|
||||
imports: [RouterOutlet],
|
||||
})
|
||||
export class AppComponent implements OnInit {
|
||||
@HostBinding('class.macos-platform') get isMacOS() {
|
||||
return window.electron && navigator.platform.toLowerCase().includes('mac');
|
||||
}
|
||||
private actions$ = inject(Actions);
|
||||
private dataService = inject(DataService);
|
||||
private dialog = inject(MatDialog);
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<app-header
|
||||
[title]="'HOME.TITLE' | translate"
|
||||
[subtitle]="'HOME.SUBTITLE' | translate"
|
||||
(searchQuery)="onSearchQueryChange($event)"
|
||||
/>
|
||||
<app-recent-playlists
|
||||
class="recent-playlists"
|
||||
[searchQueryInput]="searchQuery()"
|
||||
(addPlaylistClicked)="onAddPlaylist($event)"
|
||||
/>
|
||||
<app-recent-playlists class="recent-playlists" />
|
||||
@@ -1,4 +1,4 @@
|
||||
.recent-playlists {
|
||||
height: calc(100vh - 100px);
|
||||
height: calc(100vh - 71px);
|
||||
overflow: auto;
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { Component, inject, signal } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
import { RecentPlaylistsComponent } from 'components';
|
||||
import { PlaylistType, RecentPlaylistsComponent } from 'components';
|
||||
import { AddPlaylistDialogComponent } from '../shared/components/add-playlist/add-playlist-dialog.component';
|
||||
import { HeaderComponent } from '../shared/components/header/header.component';
|
||||
|
||||
@Component({
|
||||
@@ -9,4 +11,22 @@ import { HeaderComponent } from '../shared/components/header/header.component';
|
||||
styleUrls: ['./home.component.scss'],
|
||||
imports: [HeaderComponent, RecentPlaylistsComponent, TranslatePipe],
|
||||
})
|
||||
export class HomeComponent {}
|
||||
export class HomeComponent {
|
||||
private readonly dialog = inject(MatDialog);
|
||||
|
||||
searchQuery = signal<string>('');
|
||||
|
||||
onSearchQueryChange(query: string): void {
|
||||
this.searchQuery.set(query);
|
||||
}
|
||||
|
||||
onAddPlaylist(playlistType: PlaylistType): void {
|
||||
this.dialog.open<AddPlaylistDialogComponent, { type: PlaylistType }>(
|
||||
AddPlaylistDialogComponent,
|
||||
{
|
||||
width: '600px',
|
||||
data: { type: playlistType },
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -326,6 +326,49 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@if (localIpAddresses().length > 0) {
|
||||
<mat-divider />
|
||||
<div class="row">
|
||||
<div class="column">
|
||||
{{ 'SETTINGS.REMOTE_CONTROL_URL' | translate }}
|
||||
<p>
|
||||
{{ 'SETTINGS.REMOTE_CONTROL_URL_DESCRIPTION' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="column margin-right remote-control-urls">
|
||||
@for (ip of localIpAddresses(); track ip) {
|
||||
<div class="remote-control-url-item">
|
||||
<div class="url-row">
|
||||
<a
|
||||
[href]="'http://' + ip + ':' + settingsForm.value.remoteControlPort"
|
||||
target="_blank"
|
||||
class="remote-control-url"
|
||||
>
|
||||
http://{{ ip }}:{{ settingsForm.value.remoteControlPort }}
|
||||
</a>
|
||||
<button
|
||||
mat-icon-button
|
||||
type="button"
|
||||
(click)="toggleQrCode(ip)"
|
||||
[matTooltip]="'SETTINGS.SHOW_QR_CODE' | translate"
|
||||
>
|
||||
<mat-icon>qr_code_2</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
@if (visibleQrCodeIp() === ip) {
|
||||
<div class="qr-code-container">
|
||||
<qrcode
|
||||
[qrdata]="'http://' + ip + ':' + settingsForm.value.remoteControlPort"
|
||||
[width]="150"
|
||||
errorCorrectionLevel="M"
|
||||
></qrcode>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
<mat-divider />
|
||||
<div class="row">
|
||||
|
||||
@@ -43,3 +43,34 @@ button {
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.remote-control-urls {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.remote-control-url-item {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.url-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.remote-control-url {
|
||||
font-family: monospace;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.qr-code-container {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: 8px 0;
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
Input,
|
||||
OnInit,
|
||||
Optional,
|
||||
signal,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
FormArray,
|
||||
@@ -32,6 +33,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { Router } from '@angular/router';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
import { QRCodeComponent } from 'angularx-qrcode';
|
||||
import { DialogService } from 'components';
|
||||
import * as PlaylistActions from 'm3u-state';
|
||||
import { selectIsEpgAvailable } from 'm3u-state';
|
||||
@@ -65,6 +67,7 @@ import { SettingsService } from './../services/settings.service';
|
||||
ReactiveFormsModule,
|
||||
TranslateModule,
|
||||
MatDialogModule,
|
||||
QRCodeComponent,
|
||||
],
|
||||
})
|
||||
export class SettingsComponent implements OnInit {
|
||||
@@ -158,6 +161,12 @@ export class SettingsComponent implements OnInit {
|
||||
/** Form array with epg sources */
|
||||
epgUrl = this.settingsForm.get('epgUrl') as FormArray;
|
||||
|
||||
/** Local IP addresses for remote control URL display */
|
||||
localIpAddresses = signal<string[]>([]);
|
||||
|
||||
/** Currently visible QR code IP (null = none visible) */
|
||||
visibleQrCodeIp = signal<string | null>(null);
|
||||
|
||||
private settingsStore = inject(SettingsStore);
|
||||
|
||||
constructor(
|
||||
@@ -175,6 +184,28 @@ export class SettingsComponent implements OnInit {
|
||||
await this.settingsStore.loadSettings();
|
||||
this.setSettings();
|
||||
this.checkAppVersion();
|
||||
this.fetchLocalIpAddresses();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches local IP addresses for remote control URL display
|
||||
*/
|
||||
async fetchLocalIpAddresses(): Promise<void> {
|
||||
if (window.electron?.getLocalIpAddresses) {
|
||||
const addresses = await window.electron.getLocalIpAddresses();
|
||||
this.localIpAddresses.set(addresses);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle QR code visibility for a given IP address
|
||||
*/
|
||||
toggleQrCode(ip: string): void {
|
||||
if (this.visibleQrCodeIp() === ip) {
|
||||
this.visibleQrCodeIp.set(null);
|
||||
} else {
|
||||
this.visibleQrCodeIp.set(ip);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,26 +1,39 @@
|
||||
<mat-toolbar>
|
||||
<div class="logo">
|
||||
<img
|
||||
src="./assets/icons/icon-tv-256.png"
|
||||
height="100"
|
||||
alt="iptvnator logo"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="title">{{ title() }}</div>
|
||||
<div class="subtitle">{{ subtitle() }}</div>
|
||||
<div class="modern-header">
|
||||
<div class="brand-block">
|
||||
<div class="logo-pulse">
|
||||
<img src="./assets/icons/icon-tv-256.png" alt="iptvnator logo" />
|
||||
</div>
|
||||
<div class="brand-text">
|
||||
<div class="title">{{ title() }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (isHome) {
|
||||
<div class="search-container">
|
||||
<mat-icon class="search-icon">search</mat-icon>
|
||||
<input
|
||||
#searchInput
|
||||
type="search"
|
||||
class="search-input"
|
||||
spellcheck="false"
|
||||
autocomplete="off"
|
||||
[placeholder]="'HOME.PLAYLISTS.SEARCH_PLAYLISTS' | translate"
|
||||
(input)="onSearchQueryUpdate(searchInput.value)"
|
||||
/>
|
||||
</div>
|
||||
<div class="menu">
|
||||
<button
|
||||
mat-icon-button
|
||||
class="add-playlist-btn"
|
||||
[matMenuTriggerFor]="addPlaylistMenu"
|
||||
[matMenuTriggerFor]="addPlaylistMenuComponent().menu()"
|
||||
[matTooltip]="'HOME.URL_UPLOAD.ADD_PLAYLIST' | translate"
|
||||
data-test-id="add-playlist"
|
||||
>
|
||||
<mat-icon>add</mat-icon>
|
||||
</button>
|
||||
<app-add-playlist-menu
|
||||
(playlistTypeSelected)="openAddPlaylistDialog($event)"
|
||||
/>
|
||||
<!-- Sort button -->
|
||||
<button
|
||||
mat-icon-button
|
||||
@@ -72,7 +85,7 @@
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'MENU.SUPPORT_ARIA' | translate"
|
||||
(click)="openUrl('https:///github.com/4gray/iptvnator')"
|
||||
(click)="openUrl('https://github.com/4gray/iptvnator')"
|
||||
>
|
||||
<mat-icon>recommend</mat-icon>
|
||||
<span>GitHub</span>
|
||||
@@ -181,53 +194,6 @@
|
||||
}
|
||||
</section>
|
||||
</mat-menu>
|
||||
<mat-menu #addPlaylistMenu="matMenu">
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.FILE_UPLOAD' | translate"
|
||||
(click)="opedAddPlaylistDialog('file')"
|
||||
>
|
||||
<mat-icon>attach_file</mat-icon>
|
||||
<span>{{ 'HOME.TABS.FILE_UPLOAD' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.URL_UPLOAD' | translate"
|
||||
(click)="opedAddPlaylistDialog('url')"
|
||||
>
|
||||
<mat-icon>link</mat-icon>
|
||||
<span>{{ 'HOME.TABS.URL_UPLOAD' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.TEXT_IMPORT' | translate"
|
||||
(click)="opedAddPlaylistDialog('text')"
|
||||
>
|
||||
<mat-icon>text_format</mat-icon>
|
||||
<span>{{ 'HOME.TABS.TEXT_IMPORT' | translate }}</span>
|
||||
</button>
|
||||
<mat-divider></mat-divider>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.XTREME_IMPORT' | translate"
|
||||
(click)="opedAddPlaylistDialog('xtream')"
|
||||
>
|
||||
<mat-icon>video_library</mat-icon>
|
||||
<span>{{ 'HOME.TABS.XTREME_IMPORT' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="
|
||||
'HOME.TABS.STALKER_PORTAL_IMPORT' | translate
|
||||
"
|
||||
(click)="opedAddPlaylistDialog('stalker')"
|
||||
>
|
||||
<mat-icon>dashboard</mat-icon>
|
||||
<span>{{
|
||||
'HOME.TABS.STALKER_PORTAL_IMPORT' | translate
|
||||
}}</span>
|
||||
</button>
|
||||
</mat-menu>
|
||||
</div>
|
||||
}
|
||||
</mat-toolbar>
|
||||
</div>
|
||||
@@ -1,44 +1,347 @@
|
||||
:host {
|
||||
background: #1b1c1c;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.modern-header {
|
||||
background: #131316;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
--mat-toolbar-standard-height: 100px;
|
||||
height: 70px;
|
||||
padding: 0 16px;
|
||||
app-region: drag;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.03);
|
||||
|
||||
// Subtle depth layer
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(255, 255, 255, 0.01) 0%,
|
||||
rgba(255, 255, 255, 0) 100%
|
||||
);
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.logo {
|
||||
flex: 1 1 100px;
|
||||
// Refined home page styling - seamless with #131316
|
||||
:host.home-header .modern-header {
|
||||
background: #131316;
|
||||
|
||||
// Elegant ambient glow
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 200%;
|
||||
background: radial-gradient(
|
||||
ellipse at 50% 0%,
|
||||
rgba(99, 102, 241, 0.04) 0%,
|
||||
rgba(139, 92, 246, 0.02) 30%,
|
||||
transparent 60%
|
||||
);
|
||||
animation: headerAmbience 20s ease-in-out infinite;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
// Refined bottom accent
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
transparent 0%,
|
||||
rgba(139, 92, 246, 0.15) 50%,
|
||||
transparent 100%
|
||||
);
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes headerAmbience {
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0.3;
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
opacity: 0.6;
|
||||
transform: translateY(-5%);
|
||||
}
|
||||
}
|
||||
|
||||
// Refined brand block with elegant glass effect
|
||||
.brand-block {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 0 16px 0 8px;
|
||||
background: rgba(255, 255, 255, 0.02);
|
||||
border-radius: 32px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.04);
|
||||
backdrop-filter: blur(12px);
|
||||
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
app-region: no-drag;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
box-shadow:
|
||||
0 2px 8px rgba(0, 0, 0, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.03);
|
||||
|
||||
&:hover {
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
border-color: rgba(255, 255, 255, 0.08);
|
||||
transform: translateY(-1px);
|
||||
box-shadow:
|
||||
0 4px 12px rgba(0, 0, 0, 0.15),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
}
|
||||
|
||||
// Enhanced brand block on home page - refined elegance
|
||||
:host.home-header .brand-block {
|
||||
background: rgba(139, 92, 246, 0.04);
|
||||
border-color: rgba(139, 92, 246, 0.08);
|
||||
box-shadow:
|
||||
0 2px 12px rgba(139, 92, 246, 0.06),
|
||||
inset 0 1px 0 rgba(139, 92, 246, 0.08);
|
||||
|
||||
&:hover {
|
||||
background: rgba(139, 92, 246, 0.08);
|
||||
border-color: rgba(139, 92, 246, 0.15);
|
||||
box-shadow:
|
||||
0 4px 16px rgba(139, 92, 246, 0.12),
|
||||
inset 0 1px 0 rgba(139, 92, 246, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
.logo-pulse {
|
||||
position: relative;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
img {
|
||||
height: 100px;
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
object-fit: contain;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
filter: drop-shadow(0 2px 6px rgba(255, 59, 48, 0.25));
|
||||
transition: filter 0.3s ease;
|
||||
}
|
||||
|
||||
// Subtle ambient glow
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(255, 59, 48, 0.15) 0%,
|
||||
rgba(255, 59, 48, 0.05) 50%,
|
||||
transparent 70%
|
||||
);
|
||||
border-radius: 50%;
|
||||
animation: logoGlow 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
||||
}
|
||||
|
||||
.brand-block:hover & img {
|
||||
filter: drop-shadow(0 2px 8px rgba(255, 59, 48, 0.4));
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
place-content: center flex-start;
|
||||
align-self: center;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
@keyframes logoGlow {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1);
|
||||
opacity: 0.6;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.15);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.brand-text {
|
||||
display: flex;
|
||||
flex: 1 1 100%;
|
||||
max-width: 100%;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
.title {
|
||||
font-size: 1em;
|
||||
font-size: 1.05rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.015em;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
transition: all 0.3s ease;
|
||||
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: #999;
|
||||
font-size: 0.7em;
|
||||
margin-top: 5px;
|
||||
text-wrap: pretty;
|
||||
.brand-block:hover & .title {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
// Enhanced brand text on home page
|
||||
:host.home-header .brand-text .title {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 255, 255, 0.95) 0%,
|
||||
rgba(139, 92, 246, 0.8) 100%
|
||||
);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
|
||||
.brand-block:hover & {
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(255, 255, 255, 1) 0%,
|
||||
rgba(139, 92, 246, 1) 100%
|
||||
);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
// Refined search field with elegant glass-morphism
|
||||
.search-container {
|
||||
flex: 1;
|
||||
max-width: 800px;
|
||||
margin: 0 24px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: rgba(255, 255, 255, 0.02);
|
||||
border: 1px solid rgba(255, 255, 255, 0.06);
|
||||
border-radius: 20px;
|
||||
padding: 0 18px;
|
||||
height: 46px;
|
||||
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
app-region: no-drag;
|
||||
z-index: 1;
|
||||
box-shadow:
|
||||
0 1px 3px rgba(0, 0, 0, 0.08),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.02);
|
||||
|
||||
&:focus-within {
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
border-color: rgba(139, 92, 246, 0.3);
|
||||
box-shadow:
|
||||
0 0 0 2px rgba(139, 92, 246, 0.08),
|
||||
0 2px 8px rgba(139, 92, 246, 0.12),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.04);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
&:hover:not(:focus-within) {
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
// Enhanced search field on home page - refined elegance
|
||||
:host.home-header .search-container {
|
||||
background: rgba(139, 92, 246, 0.03);
|
||||
border-color: rgba(139, 92, 246, 0.08);
|
||||
box-shadow:
|
||||
0 1px 4px rgba(139, 92, 246, 0.04),
|
||||
inset 0 1px 0 rgba(139, 92, 246, 0.04);
|
||||
|
||||
&:focus-within {
|
||||
background: rgba(139, 92, 246, 0.06);
|
||||
border-color: rgba(139, 92, 246, 0.3);
|
||||
box-shadow:
|
||||
0 0 0 2px rgba(139, 92, 246, 0.1),
|
||||
0 4px 16px rgba(139, 92, 246, 0.15),
|
||||
inset 0 1px 0 rgba(139, 92, 246, 0.08);
|
||||
}
|
||||
|
||||
&:hover:not(:focus-within) {
|
||||
background: rgba(139, 92, 246, 0.05);
|
||||
border-color: rgba(139, 92, 246, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
:host.home-header .search-icon {
|
||||
color: rgba(139, 92, 246, 0.5);
|
||||
|
||||
.search-container:focus-within & {
|
||||
color: rgba(139, 92, 246, 0.85);
|
||||
}
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
color: rgba(255, 255, 255, 0.35);
|
||||
margin-right: 12px;
|
||||
font-size: 20px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transition: color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
.search-container:focus-within & {
|
||||
color: rgba(139, 92, 246, 0.85);
|
||||
}
|
||||
}
|
||||
|
||||
.search-input {
|
||||
flex: 1;
|
||||
background: transparent;
|
||||
border: none;
|
||||
outline: none;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
font-size: 14.5px;
|
||||
font-weight: 400;
|
||||
letter-spacing: -0.005em;
|
||||
|
||||
&::placeholder {
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
font-weight: 400;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
&::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='rgba(255,255,255,0.35)'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
|
||||
cursor: pointer;
|
||||
opacity: 0.5;
|
||||
transition: all 0.3s ease;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu {
|
||||
place-content: center;
|
||||
align-self: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
app-region: no-drag; // Allow button interactions
|
||||
}
|
||||
|
||||
.filter-container {
|
||||
@@ -46,31 +349,174 @@
|
||||
}
|
||||
|
||||
.add-playlist-btn {
|
||||
background-color: #3f51b5;
|
||||
color: #fff;
|
||||
background-color: rgba(139, 92, 246, 0.12) !important;
|
||||
color: rgba(139, 92, 246, 1) !important;
|
||||
border: 1px solid rgba(139, 92, 246, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(139, 92, 246, 0.2) !important;
|
||||
border-color: rgba(139, 92, 246, 0.3);
|
||||
box-shadow: 0 2px 8px rgba(139, 92, 246, 0.15);
|
||||
}
|
||||
|
||||
.mat-icon {
|
||||
color: rgba(139, 92, 246, 1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu-header {
|
||||
padding: 0 16px;
|
||||
margin: 8px 0;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.active-sort {
|
||||
background-color: rgb(48 48 48);
|
||||
background-color: rgba(139, 92, 246, 0.12) !important;
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 3px;
|
||||
height: 60%;
|
||||
background: rgba(139, 92, 246, 0.8);
|
||||
border-radius: 0 2px 2px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.check-icon {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
@media (max-width: 599px) {
|
||||
.subtitle {
|
||||
display: none;
|
||||
// Refined Material button and icon overrides
|
||||
.modern-header {
|
||||
// Elegant icon styling
|
||||
::ng-deep .mat-icon {
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.logo > img {
|
||||
height: 48px;
|
||||
// Refined icon buttons with glass effect
|
||||
::ng-deep .mat-mdc-icon-button {
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.06) !important;
|
||||
|
||||
.mat-icon {
|
||||
color: rgba(255, 255, 255, 1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: rgba(255, 255, 255, 0.1) !important;
|
||||
transform: scale(0.96);
|
||||
}
|
||||
}
|
||||
|
||||
// Menu items
|
||||
::ng-deep .mat-mdc-menu-item {
|
||||
color: rgba(255, 255, 255, 0.9) !important;
|
||||
|
||||
.mat-icon {
|
||||
color: rgba(255, 255, 255, 0.8) !important;
|
||||
}
|
||||
|
||||
span {
|
||||
color: rgba(255, 255, 255, 0.9) !important;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.mat-icon {
|
||||
color: rgba(255, 255, 255, 1) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Checkbox styling
|
||||
::ng-deep .mat-mdc-checkbox {
|
||||
color: rgba(255, 255, 255, 0.9) !important;
|
||||
|
||||
.mdc-checkbox__background {
|
||||
border-color: rgba(255, 255, 255, 0.6) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Home page - refined purple accent for icons
|
||||
:host.home-header .modern-header {
|
||||
::ng-deep .mat-icon {
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
}
|
||||
|
||||
::ng-deep .mat-mdc-icon-button {
|
||||
&:hover {
|
||||
background-color: rgba(139, 92, 246, 0.1) !important;
|
||||
|
||||
.mat-icon {
|
||||
color: rgba(139, 92, 246, 1) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: rgba(139, 92, 246, 0.15) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Responsive design
|
||||
@media (max-width: 899px) {
|
||||
.search-container {
|
||||
max-width: 300px;
|
||||
margin: 0 16px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 599px) {
|
||||
.modern-header {
|
||||
height: 64px;
|
||||
padding-left: 70px; // Reduced padding for smaller screens
|
||||
}
|
||||
|
||||
.brand-block {
|
||||
padding: 6px 12px 6px 6px;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.logo-pulse {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
|
||||
img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
.brand-text .title {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.search-container {
|
||||
margin: 0 12px;
|
||||
height: 42px;
|
||||
padding: 0 16px;
|
||||
|
||||
.search-input {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.menu {
|
||||
gap: 2px;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,13 @@
|
||||
import { Component, OnInit, effect, inject, input } from '@angular/core';
|
||||
import {
|
||||
Component,
|
||||
HostBinding,
|
||||
OnInit,
|
||||
effect,
|
||||
inject,
|
||||
input,
|
||||
output,
|
||||
viewChild,
|
||||
} from '@angular/core';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||
@@ -6,39 +15,40 @@ import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatDividerModule } from '@angular/material/divider';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DataService, SortBy, SortOrder, SortService } from 'services';
|
||||
//import { shell } from 'electron';
|
||||
import { AddPlaylistMenuComponent, PlaylistType } from 'components';
|
||||
import { selectActiveTypeFilters, setSelectedFilters } from 'm3u-state';
|
||||
import { HomeComponent } from '../../../home/home.component';
|
||||
import { AboutDialogComponent } from '../about-dialog/about-dialog.component';
|
||||
import {
|
||||
AddPlaylistDialogComponent,
|
||||
PlaylistType,
|
||||
} from '../add-playlist/add-playlist-dialog.component';
|
||||
import { AddPlaylistDialogComponent } from '../add-playlist/add-playlist-dialog.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-header',
|
||||
templateUrl: './header.component.html',
|
||||
styleUrls: ['./header.component.scss'],
|
||||
imports: [
|
||||
AddPlaylistMenuComponent,
|
||||
FormsModule,
|
||||
MatButtonModule,
|
||||
MatCheckboxModule,
|
||||
MatDividerModule,
|
||||
MatIconModule,
|
||||
MatMenuModule,
|
||||
MatToolbarModule,
|
||||
MatTooltipModule,
|
||||
ReactiveFormsModule,
|
||||
TranslateModule,
|
||||
],
|
||||
})
|
||||
export class HeaderComponent implements OnInit {
|
||||
@HostBinding('class.home-header') get isHomeHeader() {
|
||||
return this.isHome;
|
||||
}
|
||||
|
||||
private activatedRoute = inject(ActivatedRoute);
|
||||
private dialog = inject(MatDialog);
|
||||
private dataService = inject(DataService);
|
||||
@@ -46,9 +56,13 @@ export class HeaderComponent implements OnInit {
|
||||
private store = inject(Store);
|
||||
private sortService = inject(SortService);
|
||||
|
||||
readonly addPlaylistMenuComponent = viewChild.required(
|
||||
AddPlaylistMenuComponent
|
||||
);
|
||||
readonly isDesktop = !!window.electron;
|
||||
readonly title = input.required<string>();
|
||||
readonly subtitle = input.required<string>();
|
||||
readonly searchQuery = output<string>();
|
||||
|
||||
isHome = true;
|
||||
|
||||
@@ -130,7 +144,7 @@ export class HeaderComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
opedAddPlaylistDialog(type: PlaylistType) {
|
||||
openAddPlaylistDialog(type: PlaylistType) {
|
||||
this.dialog.open<AddPlaylistDialogComponent, { type: PlaylistType }>(
|
||||
AddPlaylistDialogComponent,
|
||||
{
|
||||
@@ -160,4 +174,8 @@ export class HeaderComponent implements OnInit {
|
||||
this.currentSortOptions?.order === order
|
||||
);
|
||||
}
|
||||
|
||||
onSearchQueryUpdate(query: string): void {
|
||||
this.searchQuery.emit(query);
|
||||
}
|
||||
}
|
||||
@@ -31,9 +31,11 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
app-region: drag;
|
||||
|
||||
button {
|
||||
@include mat.form-field-density(-5);
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,9 +42,11 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
app-region: drag;
|
||||
|
||||
button {
|
||||
@include mat.form-field-density(-5);
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.portal-status-container {
|
||||
app-region: drag;
|
||||
}
|
||||
|
||||
.mat-nav-list {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
@@ -7,11 +7,16 @@
|
||||
.sidebar-header {
|
||||
padding: 16px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.12);
|
||||
app-region: drag;
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
button {
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,9 +12,11 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
app-region: drag;
|
||||
|
||||
button {
|
||||
@include mat.form-field-density(-5);
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +30,7 @@
|
||||
.content-header {
|
||||
padding: 16px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.12);
|
||||
app-region: drag;
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
@@ -37,6 +40,10 @@
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
button {
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
.scrollable-content {
|
||||
|
||||
@@ -11,6 +11,12 @@
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
app-region: drag;
|
||||
|
||||
button,
|
||||
mat-button-toggle-group {
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
#sub-panel {
|
||||
|
||||
+314
-306
@@ -1,318 +1,326 @@
|
||||
{
|
||||
"CLOSE": "إغلاق",
|
||||
"PLAYLISTS": "قوائم التشغيل",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "يرجى اختيار قائمة تشغيل من القائمة أو إضافة قائمة جديدة",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "قوائم التشغيل المضافة مؤخرًا",
|
||||
"FILE_UPLOAD": "إضافة عبر تحميل ملف",
|
||||
"URL_UPLOAD": "إضافة عبر رابط URL",
|
||||
"TEXT_IMPORT": "استيراد من نص",
|
||||
"XTREME_IMPORT": "إضافة Xtreme Code",
|
||||
"STALKER_PORTAL_IMPORT": "إضافة Stalker Portal"
|
||||
"CLOSE": "إغلاق",
|
||||
"PLAYLISTS": "قوائم التشغيل",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "يرجى اختيار قائمة تشغيل من القائمة أو إضافة قائمة جديدة",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "قوائم التشغيل المضافة مؤخرًا",
|
||||
"FILE_UPLOAD": "إضافة عبر تحميل ملف",
|
||||
"URL_UPLOAD": "إضافة عبر رابط URL",
|
||||
"TEXT_IMPORT": "استيراد من نص",
|
||||
"XTREME_IMPORT": "إضافة Xtreme Code",
|
||||
"STALKER_PORTAL_IMPORT": "إضافة Stalker Portal"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "لم تُضف أي قوائم تشغيل",
|
||||
"ADD_FIRST": "يرجى إضافة أول قائمة تشغيل",
|
||||
"WELCOME_TITLE": "مرحبًا بك في IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "ابدأ رحلة البث بإضافة قائمة التشغيل الأولى. اتصل بخدمة IPTV المفضلة لديك واستمتع بالتلفزيون المباشر والأفلام والمسلسلات.",
|
||||
"ADD_YOUR_FIRST": "أضف قائمة التشغيل الأولى",
|
||||
"FEATURE_M3U": "ملفات M3U/M3U8",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "بوابة Stalker",
|
||||
"NO_RESULTS_TITLE": "لم يتم العثور على قوائم تشغيل",
|
||||
"NO_RESULTS_DESCRIPTION": "لا توجد قوائم تشغيل تطابق بحثك. حاول تعديل مصطلحات البحث أو امسح الفلتر لرؤية جميع القوائم.",
|
||||
"ADDED_VIA_URL": "تمت الإضافة عبر رابط URL. الرابط:",
|
||||
"ADDED_VIA_FILE": "تمت الإضافة عبر تحميل ملف",
|
||||
"XTREAM_PLAYLIST": "قائمة تشغيل Xtream",
|
||||
"STALKER_PORTAL": "بوابة Stalker",
|
||||
"CHANNELS": "القنوات",
|
||||
"ADDED": "تمت الإضافة",
|
||||
"SHOW_DETAILS": "عرض تفاصيل القائمة",
|
||||
"REMOVE": "حذف القائمة",
|
||||
"SEARCH_PLAYLISTS": "البحث عن قوائم التشغيل حسب العنوان",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "تفاصيل قائمة التشغيل",
|
||||
"TITLE": "العنوان",
|
||||
"FROM_URL": "تمت الإضافة من الرابط",
|
||||
"IMPORT_DATE": "تاريخ الاستيراد",
|
||||
"CHANNELS": "عدد القنوات",
|
||||
"CLOSE": "إغلاق",
|
||||
"SAVE": "حفظ",
|
||||
"USER_AGENT": "وكيل المستخدم",
|
||||
"ORIGINAL_FILENAME": "اسم الملف الأصلي",
|
||||
"FILE_PATH": "مسار الملف",
|
||||
"UPDATE_FAILED": "فشل تحديث القائمة الأخيرة",
|
||||
"AUTO_UPDATE": "التحديث التلقائي",
|
||||
"AUTO_UPDATE_DESCRIPTION": "إذا تم تفعيل التحديث التلقائي، ستُحدَّث القائمة تلقائيًا عند كل تشغيل للتطبيق.",
|
||||
"CUSTOM_USER_AGENT": "قد تتطلب بعض خدمات IPTV وكيل مستخدم محدد لتشغيل قوائم التشغيل.",
|
||||
"EXPORT_PLAYLIST": "تصدير القائمة كملف M3U",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "تم تصدير القائمة بنجاح.",
|
||||
"PLAYLIST_EXPORT_ERROR": "خطأ: فشل تصدير القائمة."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حذف القائمة",
|
||||
"MESSAGE": "هل أنت متأكد من رغبتك في حذف هذه القائمة نهائيًا؟",
|
||||
"SUCCESS": "تم حذف القائمة بنجاح"
|
||||
},
|
||||
"UPDATED": "تم التحديث",
|
||||
"REFRESH": "تحديث القائمة",
|
||||
"GLOBAL_FAVORITES": "المفضلة العامة",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "قائمة تلقائية تجمع القنوات المفضلة من جميع القوائم",
|
||||
"MY_PLAYLISTS": "قوائم التشغيل الخاصة بي",
|
||||
"MY_PLAYLISTS_SUBTITLE": "جميع القوائم المتاحة",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "نجاح! تم تحديث القائمة.",
|
||||
"PLAYLIST_UPDATE_ERROR": "خطأ في تحديث تفاصيل القائمة."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "اسحب وأفلت الملفات هنا",
|
||||
"OR": "أو",
|
||||
"CHOOSE_PLAYLIST": "اختر قائمة تشغيل",
|
||||
"REJECTED": "تم رفض الملف، تنسيق غير مدعوم {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "رابط قائمة التشغيل (M3U/M3U8)",
|
||||
"ADD_PLAYLIST": "إضافة القائمة",
|
||||
"CORS_NOTE": "ملاحظة: لتجنب مشاكل CORS، يستخدم التطبيق خدمة بروكسي عامة. يُنصح باستيراد القوائم الحساسة عبر الملفات."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "إدراج قائمة تشغيل M3U(8) كنص",
|
||||
"BUTTON_LABEL": "استيراد"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "عنوان القائمة",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"ADD": "إضافة",
|
||||
"TEST_CREDENTIALS": "اختبار بيانات الاعتماد",
|
||||
"URL_VALIDATION_ERROR": "يجب أن يكون الرابط صالحًا مع بروتوكول (مثال: http://example.com)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "العنوان",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"URL_VALIDATION_ERROR": "يجب أن يكون الرابط صالحًا مع بروتوكول (مثال: http://example.com/stalker_portal)",
|
||||
"ADD": "إضافة"
|
||||
},
|
||||
"FILTER_BY_NAME": "التصفية حسب الاسم",
|
||||
"FILTER_BY_TYPE": "التصفية حسب النوع",
|
||||
"SORT_PLAYLISTS": "فرز القوائم",
|
||||
"SORT_BY": "ترتيب حسب",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "الاسم (أ-ي)",
|
||||
"NAME_DESC": "الاسم (ي-أ)",
|
||||
"NEWEST": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"OLDEST": "تاريخ الإضافة (الأقدم أولاً)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "مستوردة كنص",
|
||||
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "لم تُضف أي قوائم تشغيل",
|
||||
"ADD_FIRST": "يرجى إضافة أول قائمة تشغيل",
|
||||
"ADDED_VIA_URL": "تمت الإضافة عبر رابط URL. الرابط:",
|
||||
"ADDED_VIA_FILE": "تمت الإضافة عبر تحميل ملف",
|
||||
"XTREAM_PLAYLIST": "قائمة تشغيل Xtream",
|
||||
"STALKER_PORTAL": "بوابة Stalker",
|
||||
"CHANNELS": "القنوات",
|
||||
"ADDED": "تمت الإضافة",
|
||||
"SHOW_DETAILS": "عرض تفاصيل القائمة",
|
||||
"REMOVE": "حذف القائمة",
|
||||
"SEARCH_PLAYLISTS": "البحث عن قوائم التشغيل حسب العنوان",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "تفاصيل قائمة التشغيل",
|
||||
"TITLE": "العنوان",
|
||||
"FROM_URL": "تمت الإضافة من الرابط",
|
||||
"IMPORT_DATE": "تاريخ الاستيراد",
|
||||
"CHANNELS": "عدد القنوات",
|
||||
"CLOSE": "إغلاق",
|
||||
"SAVE": "حفظ",
|
||||
"USER_AGENT": "وكيل المستخدم",
|
||||
"ORIGINAL_FILENAME": "اسم الملف الأصلي",
|
||||
"FILE_PATH": "مسار الملف",
|
||||
"UPDATE_FAILED": "فشل تحديث القائمة الأخيرة",
|
||||
"AUTO_UPDATE": "التحديث التلقائي",
|
||||
"AUTO_UPDATE_DESCRIPTION": "إذا تم تفعيل التحديث التلقائي، ستُحدَّث القائمة تلقائيًا عند كل تشغيل للتطبيق.",
|
||||
"CUSTOM_USER_AGENT": "قد تتطلب بعض خدمات IPTV وكيل مستخدم محدد لتشغيل قوائم التشغيل.",
|
||||
"EXPORT_PLAYLIST": "تصدير القائمة كملف M3U",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "تم تصدير القائمة بنجاح.",
|
||||
"PLAYLIST_EXPORT_ERROR": "خطأ: فشل تصدير القائمة."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حذف القائمة",
|
||||
"MESSAGE": "هل أنت متأكد من رغبتك في حذف هذه القائمة نهائيًا؟",
|
||||
"SUCCESS": "تم حذف القائمة بنجاح"
|
||||
},
|
||||
"UPDATED": "تم التحديث",
|
||||
"REFRESH": "تحديث القائمة",
|
||||
"GLOBAL_FAVORITES": "المفضلة العامة",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "قائمة تلقائية تجمع القنوات المفضلة من جميع القوائم",
|
||||
"MY_PLAYLISTS": "قوائم التشغيل الخاصة بي",
|
||||
"MY_PLAYLISTS_SUBTITLE": "جميع القوائم المتاحة",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "نجاح! تم تحديث القائمة.",
|
||||
"PLAYLIST_UPDATE_ERROR": "خطأ في تحديث تفاصيل القائمة."
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات",
|
||||
"SUBTITLE": "تعديل تكوين التطبيق",
|
||||
"DESCRIPTION": "يرجى ضبط الخيارات أدناه ثم النقر على حفظ التغييرات",
|
||||
"EPG_URL_LABEL": "رابط EPG (XML/XML.GZ)",
|
||||
"EPG_URL_PLACEHOLDER": "أدخل رابطًا",
|
||||
"REFRESH_EPG": "تحديث EPG",
|
||||
"VIDEO_PLAYER_LABEL": "مشغل الفيديو",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "اختر خيارًا",
|
||||
"VERSION": "الإصدار",
|
||||
"SAVE_CHANGES": "حفظ التغييرات",
|
||||
"BACK_TO_HOME": "العودة للرئيسية",
|
||||
"NEW_VERSION_AVAILABLE": "إصدار جديد متاح",
|
||||
"LATEST_VERSION": "أنت تستخدم الإصدار الأحدث",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SETTINGS_SAVED": "نجاح! تم حفظ الإعدادات.",
|
||||
"THEME": "السمة البصرية",
|
||||
"SHOW_CAPTIONS": "عرض الترجمات",
|
||||
"ADD_EPG_SOURCE": "إضافة مصدر EPG",
|
||||
"EPG_URL_ERROR": "القيمة ليست رابطًا صالحًا",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "اختر مشغل الفيديو الافتراضي",
|
||||
"LANGUAGE_DESCRIPTION": "اختر لغة التطبيق",
|
||||
"THEME_DESCRIPTION": "اختر السمة البصرية للتطبيق",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "عرض أو إخفاء الترجمات افتراضيًا",
|
||||
"VERSION_DESCRIPTION": "الإصدار الحالي للتطبيق",
|
||||
"EPG_NOTE": "الـ EPG متاح فقط في نسخة Electron من التطبيق.",
|
||||
"EPG_NOTE_URL_TEXT": "تحقق من هنا",
|
||||
"IMPORT_EXPORT_DATA": "استيراد/تصدير القوائم",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "تصدير أو استيراد القوائم بتنسيق JSON.",
|
||||
"IMPORT_DATA": "استيراد",
|
||||
"EXPORT_DATA": "تصدير",
|
||||
"REMOVE_ALL": "حذف جميع القوائم",
|
||||
"REMOVE_ALL_BUTTON": "حذف",
|
||||
"REMOVE_ALL_DESCRIPTION": "سيتم حذف جميع القوائم من التطبيق.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حذف جميع القوائم",
|
||||
"MESSAGE": "هل أنت متأكد من رغبتك في حذف جميع القوائم؟"
|
||||
},
|
||||
"IMPORT_ERROR": "خطأ في الاستيراد، يرجى تجربة ملف آخر.",
|
||||
"PLAYLISTS_REMOVED": "تم حذف جميع القوائم.",
|
||||
"MPV_PLAYER_PATH_LABEL": "مسار مشغل MPV",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل MPV في نظامك.",
|
||||
"MPV_PLAYER_PATH": "مسار مشغل MPV",
|
||||
"VLC_PLAYER_PATH_LABEL": "مسار VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في نظامك.",
|
||||
"VLC_PLAYER_PATH": "مسار مشغل VLC",
|
||||
"REMOTE_CONTROL": "التحكم عن بعد",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "تمكين التحكم عن بعد للتطبيق.",
|
||||
"REMOTE_CONTROL_PORT": "منفذ التحكم عن بعد",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "المنفذ المستخدم للتحكم عن بعد (الافتراضي: 8765)."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "اسحب وأفلت الملفات هنا",
|
||||
"OR": "أو",
|
||||
"CHOOSE_PLAYLIST": "اختر قائمة تشغيل",
|
||||
"REJECTED": "تم رفض الملف، تنسيق غير مدعوم {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "السمة الداكنة",
|
||||
"LIGHT_THEME": "السمة الفاتحة"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "رابط قائمة التشغيل (M3U/M3U8)",
|
||||
"ADD_PLAYLIST": "إضافة القائمة",
|
||||
"CORS_NOTE": "ملاحظة: لتجنب مشاكل CORS، يستخدم التطبيق خدمة بروكسي عامة. يُنصح باستيراد القوائم الحساسة عبر الملفات."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "البحث عن قناة",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "تحميل أو اختيار قائمة أخرى",
|
||||
"ALL_CHANNELS": "جميع القنوات",
|
||||
"GROUPS": "المجموعات",
|
||||
"UNGROUPED": "غير مصنفة",
|
||||
"UNNAMED_CHANNEL": "قناة بدون اسم",
|
||||
"FAVORITES": "المفضلة",
|
||||
"NO_FAVORITES": "لا توجد قنوات مفضلة",
|
||||
"USE_STAR_TO_FAVORITE": "استخدم أيقونة النجمة لإضافة قنوات للمفضلة.",
|
||||
"REMOVE_FAVORITE": "إزالة من المفضلة",
|
||||
"FAVORITES_UPDATED": "تم تحديث المفضلة!",
|
||||
"SORT_BY": "ترتيب حسب",
|
||||
"SORT_BY_DATE": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"SORT_BY_RATING": "التقييم",
|
||||
"SORT_BY_NAME": "الاسم (أ-ي)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "إدراج قائمة تشغيل M3U(8) كنص",
|
||||
"BUTTON_LABEL": "استيراد"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "فتح قائمة القنوات",
|
||||
"TOGGLE_FAVORITE_FLAG": "تبديل حالة المفضلة",
|
||||
"OPEN_EPG_LIST": "فتح قائمة EPG",
|
||||
"OPEN_MULTI_EPG": "فتح عرض Multi-EPG"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "عنوان القائمة",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"ADD": "إضافة",
|
||||
"TEST_CREDENTIALS": "اختبار بيانات الاعتماد",
|
||||
"URL_VALIDATION_ERROR": "يجب أن يكون الرابط صالحًا مع بروتوكول (مثال: http://example.com)"
|
||||
"EPG": {
|
||||
"TITLE": "الدليل الإلكتروني للبرامج",
|
||||
"NEXT_DAY": "اليوم التالي",
|
||||
"PREVIOUS_DAY": "اليوم السابق",
|
||||
"LIVE_NOW": "يُبث الآن",
|
||||
"LIVE_STREAM": "بث مباشر",
|
||||
"TIMESHIFT_AVAILABLE": "التحريك الزمني متاح، انقر للتشغيل",
|
||||
"EPG_NOT_AVAILABLE_DATE": "عذراً، الدليل غير متاح لهذا التاريخ",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "عذراً، الدليل غير متاح لهذه القناة",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "يرجى إضافة/تعديل رابط EPG في إعدادات التطبيق.",
|
||||
"FETCH_EPG": "جارٍ جلب بيانات EPG...",
|
||||
"ERROR": "عذراً، فشل تحميل الدليل.",
|
||||
"DOWNLOAD_SUCCESS": "تم تنزيل الدليل بنجاح.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "تفاصيل البرنامج",
|
||||
"TITLE": "العنوان",
|
||||
"CATEGORY": "الفئة",
|
||||
"PARENTAL_RATING_SYSTEM": "نظام تقييم المحتوى",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SHOW_PROGRAM_DETAILS": "عرض تفاصيل البرنامج"
|
||||
},
|
||||
"FETCH_SUCCESS": "تم جلب الدليل بنجاح."
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "العنوان",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"URL_VALIDATION_ERROR": "يجب أن يكون الرابط صالحًا مع بروتوكول (مثال: http://example.com/stalker_portal)",
|
||||
"ADD": "إضافة"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "التصفية حسب الاسم",
|
||||
"FILTER_BY_TYPE": "التصفية حسب النوع",
|
||||
"SORT_PLAYLISTS": "فرز القوائم",
|
||||
"SORT_BY": "ترتيب حسب",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "الاسم (أ-ي)",
|
||||
"NAME_DESC": "الاسم (ي-أ)",
|
||||
"NEWEST": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"OLDEST": "تاريخ الإضافة (الأقدم أولاً)"
|
||||
"YES": "نعم",
|
||||
"NO": "لا",
|
||||
"MENU": {
|
||||
"OPEN": "فتح القائمة",
|
||||
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
|
||||
"SETTINGS": "الإعدادات",
|
||||
"SETTINGS_ARIA": "فتح الإعدادات",
|
||||
"BUG_REPORT": "ابلاغ عن خلل",
|
||||
"WHAT_IS_NEW": "ما الجديد",
|
||||
"ABOUT": "حول",
|
||||
"ABOUT_ARIA": "حول التطبيق",
|
||||
"SUPPORT_PROJECT": "دعم المشروع"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "مستوردة كنص",
|
||||
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات / IPTVnator",
|
||||
"SUBTITLE": "تعديل تكوين التطبيق",
|
||||
"DESCRIPTION": "يرجى ضبط الخيارات أدناه ثم النقر على حفظ التغييرات",
|
||||
"EPG_URL_LABEL": "رابط EPG (XML/XML.GZ)",
|
||||
"EPG_URL_PLACEHOLDER": "أدخل رابطًا",
|
||||
"REFRESH_EPG": "تحديث EPG",
|
||||
"VIDEO_PLAYER_LABEL": "مشغل الفيديو",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "اختر خيارًا",
|
||||
"VERSION": "الإصدار",
|
||||
"SAVE_CHANGES": "حفظ التغييرات",
|
||||
"BACK_TO_HOME": "العودة للرئيسية",
|
||||
"NEW_VERSION_AVAILABLE": "إصدار جديد متاح",
|
||||
"LATEST_VERSION": "أنت تستخدم الإصدار الأحدث",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SETTINGS_SAVED": "نجاح! تم حفظ الإعدادات.",
|
||||
"THEME": "السمة البصرية",
|
||||
"SHOW_CAPTIONS": "عرض الترجمات",
|
||||
"ADD_EPG_SOURCE": "إضافة مصدر EPG",
|
||||
"EPG_URL_ERROR": "القيمة ليست رابطًا صالحًا",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "اختر مشغل الفيديو الافتراضي",
|
||||
"LANGUAGE_DESCRIPTION": "اختر لغة التطبيق",
|
||||
"THEME_DESCRIPTION": "اختر السمة البصرية للتطبيق",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "عرض أو إخفاء الترجمات افتراضيًا",
|
||||
"VERSION_DESCRIPTION": "الإصدار الحالي للتطبيق",
|
||||
"EPG_NOTE": "الـ EPG متاح فقط في نسخة Electron من التطبيق.",
|
||||
"EPG_NOTE_URL_TEXT": "تحقق من هنا",
|
||||
"IMPORT_EXPORT_DATA": "استيراد/تصدير القوائم",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "تصدير أو استيراد القوائم بتنسيق JSON.",
|
||||
"IMPORT_DATA": "استيراد",
|
||||
"EXPORT_DATA": "تصدير",
|
||||
"REMOVE_ALL": "حذف جميع القوائم",
|
||||
"REMOVE_ALL_BUTTON": "حذف",
|
||||
"REMOVE_ALL_DESCRIPTION": "سيتم حذف جميع القوائم من التطبيق.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حذف جميع القوائم",
|
||||
"MESSAGE": "هل أنت متأكد من رغبتك في حذف جميع القوائم؟"
|
||||
"ABOUT": {
|
||||
"TITLE": "حول IPTVnator",
|
||||
"DESCRIPTION": "تطبيق مشغل IPTV متعدد المنصات مع ميزات مثل دعم قوائم M3U/M3U8، المفضلة، الدليل التلفزيوني، الأرشيف، والمزيد.",
|
||||
"VERSION": "الإصدار",
|
||||
"GITHUB_TOOLTIP": "مستودع IPTVnator على GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "اشتري لي قهوة",
|
||||
"TWITTER_TOOLTIP": "مشاركة على تويتر"
|
||||
},
|
||||
"IMPORT_ERROR": "خطأ في الاستيراد، يرجى تجربة ملف آخر.",
|
||||
"PLAYLISTS_REMOVED": "تم حذف جميع القوائم.",
|
||||
"MPV_PLAYER_PATH_LABEL": "مسار مشغل MPV",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل MPV في نظامك.",
|
||||
"MPV_PLAYER_PATH": "مسار مشغل MPV",
|
||||
"VLC_PLAYER_PATH_LABEL": "مسار VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في نظامك.",
|
||||
"VLC_PLAYER_PATH": "مسار مشغل VLC",
|
||||
"REMOTE_CONTROL": "التحكم عن بعد",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "تمكين التحكم عن بعد للتطبيق.",
|
||||
"REMOTE_CONTROL_PORT": "منفذ التحكم عن بعد",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "المنفذ المستخدم للتحكم عن بعد (الافتراضي: 3000)."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "السمة الداكنة",
|
||||
"LIGHT_THEME": "السمة الفاتحة"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "البحث عن قناة",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "تحميل أو اختيار قائمة أخرى",
|
||||
"ALL_CHANNELS": "جميع القنوات",
|
||||
"GROUPS": "المجموعات",
|
||||
"UNGROUPED": "غير مصنفة",
|
||||
"UNNAMED_CHANNEL": "قناة بدون اسم",
|
||||
"FAVORITES": "المفضلة",
|
||||
"NO_FAVORITES": "لا توجد قنوات مفضلة",
|
||||
"USE_STAR_TO_FAVORITE": "استخدم أيقونة النجمة لإضافة قنوات للمفضلة.",
|
||||
"REMOVE_FAVORITE": "إزالة من المفضلة",
|
||||
"FAVORITES_UPDATED": "تم تحديث المفضلة!",
|
||||
"SORT_BY": "ترتيب حسب",
|
||||
"SORT_BY_DATE": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"SORT_BY_RATING": "التقييم",
|
||||
"SORT_BY_NAME": "الاسم (أ-ي)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "فتح قائمة القنوات",
|
||||
"TOGGLE_FAVORITE_FLAG": "تبديل حالة المفضلة",
|
||||
"OPEN_EPG_LIST": "فتح قائمة EPG",
|
||||
"OPEN_MULTI_EPG": "فتح عرض Multi-EPG"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "الدليل الإلكتروني للبرامج",
|
||||
"NEXT_DAY": "اليوم التالي",
|
||||
"PREVIOUS_DAY": "اليوم السابق",
|
||||
"LIVE_NOW": "يُبث الآن",
|
||||
"LIVE_STREAM": "بث مباشر",
|
||||
"TIMESHIFT_AVAILABLE": "التحريك الزمني متاح، انقر للتشغيل",
|
||||
"EPG_NOT_AVAILABLE_DATE": "عذراً، الدليل غير متاح لهذا التاريخ",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "عذراً، الدليل غير متاح لهذه القناة",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "يرجى إضافة/تعديل رابط EPG في إعدادات التطبيق.",
|
||||
"FETCH_EPG": "جارٍ جلب بيانات EPG...",
|
||||
"ERROR": "عذراً، فشل تحميل الدليل.",
|
||||
"DOWNLOAD_SUCCESS": "تم تنزيل الدليل بنجاح.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "تفاصيل البرنامج",
|
||||
"TITLE": "العنوان",
|
||||
"CATEGORY": "الفئة",
|
||||
"PARENTAL_RATING_SYSTEM": "نظام تقييم المحتوى",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SHOW_PROGRAM_DETAILS": "عرض تفاصيل البرنامج"
|
||||
"UPDATE_AVAILABLE": "تحديث متاح",
|
||||
"REFRESH": "تحديث",
|
||||
"XTREAM": {
|
||||
"PLAY": "تشغيل",
|
||||
"NAME": "الاسم",
|
||||
"RELEASE_DATE": "تاريخ الإصدار",
|
||||
"GENRE": "النوع",
|
||||
"COUNTRY": "البلد",
|
||||
"ACTORS": "الممثلون",
|
||||
"DIRECTOR": "المخرج",
|
||||
"DURATION": "المدة",
|
||||
"CAST": "طاقم العمل",
|
||||
"EPISODE_RUN_TIME": "مدة الحلقة",
|
||||
"RATING": "التقييم",
|
||||
"IMDB_RATING": "تقييم IMDB",
|
||||
"KINOPOISK_RATING": "تقييم Kinopoisk",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"YEAR": "السنة",
|
||||
"AGE": "العمر",
|
||||
"YOUTUBE_TRAILER": "تريلر يوتيوب",
|
||||
"EPISODE": "الحلقة"
|
||||
},
|
||||
"FETCH_SUCCESS": "تم جلب الدليل بنجاح."
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "نعم",
|
||||
"NO": "لا",
|
||||
"MENU": {
|
||||
"OPEN": "فتح القائمة",
|
||||
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
|
||||
"SETTINGS": "الإعدادات",
|
||||
"SETTINGS_ARIA": "فتح الإعدادات",
|
||||
"BUG_REPORT": "ابلاغ عن خلل",
|
||||
"WHAT_IS_NEW": "ما الجديد",
|
||||
"ABOUT": "حول",
|
||||
"ABOUT_ARIA": "حول التطبيق",
|
||||
"SUPPORT_PROJECT": "دعم المشروع"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "حول IPTVnator",
|
||||
"DESCRIPTION": "تطبيق مشغل IPTV متعدد المنصات مع ميزات مثل دعم قوائم M3U/M3U8، المفضلة، الدليل التلفزيوني، الأرشيف، والمزيد.",
|
||||
"VERSION": "الإصدار",
|
||||
"GITHUB_TOOLTIP": "مستودع IPTVnator على GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "اشتري لي قهوة",
|
||||
"TWITTER_TOOLTIP": "مشاركة على تويتر"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "تحديث متاح",
|
||||
"REFRESH": "تحديث",
|
||||
"XTREAM": {
|
||||
"PLAY": "تشغيل",
|
||||
"NAME": "الاسم",
|
||||
"RELEASE_DATE": "تاريخ الإصدار",
|
||||
"GENRE": "النوع",
|
||||
"COUNTRY": "البلد",
|
||||
"ACTORS": "الممثلون",
|
||||
"DIRECTOR": "المخرج",
|
||||
"DURATION": "المدة",
|
||||
"CAST": "طاقم العمل",
|
||||
"EPISODE_RUN_TIME": "مدة الحلقة",
|
||||
"RATING": "التقييم",
|
||||
"IMDB_RATING": "تقييم IMDB",
|
||||
"KINOPOISK_RATING": "تقييم Kinopoisk",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"YEAR": "السنة",
|
||||
"AGE": "العمر",
|
||||
"YOUTUBE_TRAILER": "تريلر يوتيوب",
|
||||
"EPISODE": "الحلقة"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "جميع الفئات",
|
||||
"MY_FAVORITES": "المفضلة",
|
||||
"ADD_TO_FAVORITES": "إضافة للمفضلة",
|
||||
"REMOVE_FROM_FAVORITES": "إزالة من المفضلة",
|
||||
"REMOVED_FROM_FAVORITES": "تمت الإزالة من المفضلة",
|
||||
"ADDED_TO_FAVORITES": "تمت الإضافة للمفضلة",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "انتهاء صلاحية الحساب",
|
||||
"DESCRIPTION": "انتهت صلاحية هذا الحساب. يرجى التحقق من بيانات الاعتماد في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "غير مصرح",
|
||||
"DESCRIPTION": "يرجى التحقق من بيانات الاعتماد في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "البوابة غير موجودة",
|
||||
"DESCRIPTION": "يرجى التحقق من بيانات الاعتماد ورابط البوابة في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "فئة فارغة",
|
||||
"DESCRIPTION": "هذه الفئة لا تحتوي على محتوى، يرجى اختيار فئة أخرى أو تغيير نوع المحتوى."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "حدث خطأ",
|
||||
"DESCRIPTION": "خطأ غير معروف، يرجى المحاولة لاحقًا."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "إعدادات القائمة",
|
||||
"HOME": "الرئيسية",
|
||||
"DELETE": "حذف"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "جميع الفئات",
|
||||
"MY_FAVORITES": "المفضلة",
|
||||
"ADD_TO_FAVORITES": "إضافة للمفضلة",
|
||||
"REMOVE_FROM_FAVORITES": "إزالة من المفضلة",
|
||||
"REMOVED_FROM_FAVORITES": "تمت الإزالة من المفضلة",
|
||||
"ADDED_TO_FAVORITES": "تمت الإضافة للمفضلة",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "انتهاء صلاحية الحساب",
|
||||
"DESCRIPTION": "انتهت صلاحية هذا الحساب. يرجى التحقق من بيانات الاعتماد في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "غير مصرح",
|
||||
"DESCRIPTION": "يرجى التحقق من بيانات الاعتماد في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "البوابة غير موجودة",
|
||||
"DESCRIPTION": "يرجى التحقق من بيانات الاعتماد ورابط البوابة في إعدادات القائمة أو حذفها."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "فئة فارغة",
|
||||
"DESCRIPTION": "هذه الفئة لا تحتوي على محتوى، يرجى اختيار فئة أخرى أو تغيير نوع المحتوى."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "حدث خطأ",
|
||||
"DESCRIPTION": "خطأ غير معروف، يرجى المحاولة لاحقًا."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "إعدادات القائمة",
|
||||
"HOME": "الرئيسية",
|
||||
"DELETE": "حذف"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "لم يتم العثور على نتائج، حاول تغيير طلب البحث"
|
||||
},
|
||||
"STREAM_URL_COPIED": "تم نسخ رابط البث إلى الحافظة",
|
||||
"COPY_STREAM_URL": "نسخ رابط البث"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "لم يتم العثور على نتائج، حاول تغيير طلب البحث"
|
||||
},
|
||||
"STREAM_URL_COPIED": "تم نسخ رابط البث إلى الحافظة",
|
||||
"COPY_STREAM_URL": "نسخ رابط البث"
|
||||
},
|
||||
"INFORMATION": "معلومات",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "التحكم عن بعد",
|
||||
"UP_CHANNEL": "القناة السابقة",
|
||||
"DOWN_CHANNEL": "القناة التالية",
|
||||
"HEADER": "التحكم عن بعد في IPTVNator",
|
||||
"FOOTER": "التحكم عن بعد في IPTVNator"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "معلومات",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "التحكم عن بعد",
|
||||
"UP_CHANNEL": "القناة السابقة",
|
||||
"DOWN_CHANNEL": "القناة التالية",
|
||||
"HEADER": "التحكم عن بعد في IPTVNator",
|
||||
"FOOTER": "التحكم عن بعد في IPTVNator"
|
||||
}
|
||||
}
|
||||
+306
-306
@@ -1,318 +1,318 @@
|
||||
{
|
||||
"CLOSE": "سد",
|
||||
"PLAYLISTS": "قوائم التشغيل",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "عفاك اختار شي قائمة تشغيل من الليستا ولا زيد قائمة جديدة",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "قوائم التشغيل اللي تزادو مؤخراً",
|
||||
"FILE_UPLOAD": "زيد عن طريق رفع ملف",
|
||||
"URL_UPLOAD": "زيد عن طريق رابط",
|
||||
"TEXT_IMPORT": "استورد من نص",
|
||||
"XTREME_IMPORT": "زيد كود Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "زيد بوابة Stalker"
|
||||
"CLOSE": "سد",
|
||||
"PLAYLISTS": "قوائم التشغيل",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "عفاك اختار شي قائمة تشغيل من الليستا ولا زيد قائمة جديدة",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "قوائم التشغيل اللي تزادو مؤخراً",
|
||||
"FILE_UPLOAD": "زيد عن طريق رفع ملف",
|
||||
"URL_UPLOAD": "زيد عن طريق رابط",
|
||||
"TEXT_IMPORT": "استورد من نص",
|
||||
"XTREME_IMPORT": "زيد كود Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "زيد بوابة Stalker"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "ما تزادت حتى شي قائمة تشغيل",
|
||||
"ADD_FIRST": "عفاك زيد قائمة التشغيل الأولى ديالك",
|
||||
"ADDED_VIA_URL": "تزادت عن طريق رابط. رابط:",
|
||||
"ADDED_VIA_FILE": "تزادت عن طريق رفع ملف",
|
||||
"XTREAM_PLAYLIST": "قائمة تشغيل Xtream",
|
||||
"STALKER_PORTAL": "بوابة Stalker",
|
||||
"CHANNELS": "القنوات",
|
||||
"ADDED": "تزادت",
|
||||
"SHOW_DETAILS": "وري تفاصيل قائمة التشغيل",
|
||||
"REMOVE": "حيد قائمة التشغيل",
|
||||
"SEARCH_PLAYLISTS": "قلب على قوائم التشغيل بالعنوان",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "تفاصيل قائمة التشغيل",
|
||||
"TITLE": "العنوان",
|
||||
"FROM_URL": "تزادت من الرابط",
|
||||
"IMPORT_DATE": "تاريخ الاستيراد",
|
||||
"CHANNELS": "عدد القنوات",
|
||||
"CLOSE": "سد",
|
||||
"SAVE": "حفظ",
|
||||
"USER_AGENT": "وكيل المستخدم",
|
||||
"ORIGINAL_FILENAME": "اسم الملف الأصلي",
|
||||
"FILE_PATH": "مسار الملف",
|
||||
"UPDATE_FAILED": "التحديث الأخير ديال قائمة التشغيل فشل",
|
||||
"AUTO_UPDATE": "تحديث تلقائي",
|
||||
"AUTO_UPDATE_DESCRIPTION": "إلى كانت خاصية التحديث التلقائي مفعّلة، قائمة التشغيل غادي تتحدث أوتوماتيكياً كل مرة كيتحل التطبيق.",
|
||||
"CUSTOM_USER_AGENT": "بعض مزودي IPTV كيحتاجو وكيل مستخدم محدد باش يخدمو قائمة التشغيل ديالهم.",
|
||||
"EXPORT_PLAYLIST": "صدّر قائمة التشغيل على شكل m3u",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "قائمة التشغيل تصدرات بنجاح.",
|
||||
"PLAYLIST_EXPORT_ERROR": "خطأ: تصدير قائمة التشغيل فشل."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حيد قائمة التشغيل",
|
||||
"MESSAGE": "واش متأكد بغيتي تحيد قائمة التشغيل هادي بالكامل؟",
|
||||
"SUCCESS": "قائمة التشغيل تحيدات بنجاح"
|
||||
},
|
||||
"UPDATED": "تحدثات",
|
||||
"REFRESH": "حدث قائمة التشغيل",
|
||||
"GLOBAL_FAVORITES": "المفضلة العامة",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "قائمة تشغيل كتتولد أوتوماتيكياً فيها المفضلة المجمعة من جميع قوائم التشغيل",
|
||||
"MY_PLAYLISTS": "قوائم التشغيل ديالي",
|
||||
"MY_PLAYLISTS_SUBTITLE": "جميع قوائم التشغيل المتوفرة",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "نجاح! قائمة التشغيل تحدثات بنجاح.",
|
||||
"PLAYLIST_UPDATE_ERROR": "خطأ في تحديث تفاصيل قائمة التشغيل."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "جر وأفلت الملفات هنا",
|
||||
"OR": "أو",
|
||||
"CHOOSE_PLAYLIST": "اختار قائمة تشغيل",
|
||||
"REJECTED": "الملف ترفض، صيغة الملف غير مدعومة {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "رابط قائمة التشغيل (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "زيد قائمة التشغيل",
|
||||
"CORS_NOTE": "ملاحظة: باش نتفاداو مشاكل CORS فهاد المرحلة، التطبيق كيستعمل خدمة وكيل CORS عامة. إلى بغيتي ترفع قائمة تشغيل فيها بيانات حساسة، من الأحسن تستوردها من ملف."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "دخل قائمة تشغيل m3u(8) على شكل نص",
|
||||
"BUTTON_LABEL": "استورد"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "عنوان قائمة التشغيل",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"ADD": "زيد",
|
||||
"TEST_CREDENTIALS": "جرب بيانات الاعتماد",
|
||||
"URL_VALIDATION_ERROR": "خاص يكون رابط صحيح مع البروتوكول (مثلا http://example.com ولا https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "العنوان",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"URL_VALIDATION_ERROR": "خاص يكون رابط صحيح مع البروتوكول (مثلا http://example.com/c ولا https://example.com/stalker_portal/c)",
|
||||
"ADD": "زيد"
|
||||
},
|
||||
"FILTER_BY_NAME": "فلتر بالاسم",
|
||||
"FILTER_BY_TYPE": "فلتر بالنوع",
|
||||
"SORT_PLAYLISTS": "رتب قوائم التشغيل",
|
||||
"SORT_BY": "رتب بـ",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "الاسم (أ-ي)",
|
||||
"NAME_DESC": "الاسم (ي-أ)",
|
||||
"NEWEST": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"OLDEST": "تاريخ الإضافة (الأقدم أولاً)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "استورد كنص",
|
||||
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "ما تزادت حتى شي قائمة تشغيل",
|
||||
"ADD_FIRST": "عفاك زيد قائمة التشغيل الأولى ديالك",
|
||||
"ADDED_VIA_URL": "تزادت عن طريق رابط. رابط:",
|
||||
"ADDED_VIA_FILE": "تزادت عن طريق رفع ملف",
|
||||
"XTREAM_PLAYLIST": "قائمة تشغيل Xtream",
|
||||
"STALKER_PORTAL": "بوابة Stalker",
|
||||
"CHANNELS": "القنوات",
|
||||
"ADDED": "تزادت",
|
||||
"SHOW_DETAILS": "وري تفاصيل قائمة التشغيل",
|
||||
"REMOVE": "حيد قائمة التشغيل",
|
||||
"SEARCH_PLAYLISTS": "قلب على قوائم التشغيل بالعنوان",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "تفاصيل قائمة التشغيل",
|
||||
"TITLE": "العنوان",
|
||||
"FROM_URL": "تزادت من الرابط",
|
||||
"IMPORT_DATE": "تاريخ الاستيراد",
|
||||
"CHANNELS": "عدد القنوات",
|
||||
"CLOSE": "سد",
|
||||
"SAVE": "حفظ",
|
||||
"USER_AGENT": "وكيل المستخدم",
|
||||
"ORIGINAL_FILENAME": "اسم الملف الأصلي",
|
||||
"FILE_PATH": "مسار الملف",
|
||||
"UPDATE_FAILED": "التحديث الأخير ديال قائمة التشغيل فشل",
|
||||
"AUTO_UPDATE": "تحديث تلقائي",
|
||||
"AUTO_UPDATE_DESCRIPTION": "إلى كانت خاصية التحديث التلقائي مفعّلة، قائمة التشغيل غادي تتحدث أوتوماتيكياً كل مرة كيتحل التطبيق.",
|
||||
"CUSTOM_USER_AGENT": "بعض مزودي IPTV كيحتاجو وكيل مستخدم محدد باش يخدمو قائمة التشغيل ديالهم.",
|
||||
"EXPORT_PLAYLIST": "صدّر قائمة التشغيل على شكل m3u",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "قائمة التشغيل تصدرات بنجاح.",
|
||||
"PLAYLIST_EXPORT_ERROR": "خطأ: تصدير قائمة التشغيل فشل."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حيد قائمة التشغيل",
|
||||
"MESSAGE": "واش متأكد بغيتي تحيد قائمة التشغيل هادي بالكامل؟",
|
||||
"SUCCESS": "قائمة التشغيل تحيدات بنجاح"
|
||||
},
|
||||
"UPDATED": "تحدثات",
|
||||
"REFRESH": "حدث قائمة التشغيل",
|
||||
"GLOBAL_FAVORITES": "المفضلة العامة",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "قائمة تشغيل كتتولد أوتوماتيكياً فيها المفضلة المجمعة من جميع قوائم التشغيل",
|
||||
"MY_PLAYLISTS": "قوائم التشغيل ديالي",
|
||||
"MY_PLAYLISTS_SUBTITLE": "جميع قوائم التشغيل المتوفرة",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "نجاح! قائمة التشغيل تحدثات بنجاح.",
|
||||
"PLAYLIST_UPDATE_ERROR": "خطأ في تحديث تفاصيل قائمة التشغيل."
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات",
|
||||
"SUBTITLE": "بدل إعدادات التطبيق",
|
||||
"DESCRIPTION": "عفاك بدل الخيارات من الليستا لتحت وأكد بضغط على زر حفظ التغييرات",
|
||||
"EPG_URL_LABEL": "رابط EPG (*.xml ولا *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "دخل رابط",
|
||||
"REFRESH_EPG": "حدث EPG",
|
||||
"VIDEO_PLAYER_LABEL": "مشغل الفيديو",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "اختار خيار",
|
||||
"VERSION": "الإصدار",
|
||||
"SAVE_CHANGES": "حفظ التغييرات",
|
||||
"BACK_TO_HOME": "رجوع",
|
||||
"NEW_VERSION_AVAILABLE": "كاين إصدار جديد متوفر",
|
||||
"LATEST_VERSION": "راك تستعمل أحدث إصدار",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SETTINGS_SAVED": "نجاح! الإعدادات تحفضو.",
|
||||
"THEME": "المظهر المرئي",
|
||||
"SHOW_CAPTIONS": "وري الترجمة",
|
||||
"ADD_EPG_SOURCE": "زيد مصدر EPG",
|
||||
"EPG_URL_ERROR": "القيمة ماشي رابط صحيح",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "اختار مشغل الفيديو الافتراضي",
|
||||
"LANGUAGE_DESCRIPTION": "اختار لغة التطبيق",
|
||||
"THEME_DESCRIPTION": "اختار المظهر المرئي للتطبيق",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "وري ولا خفي الترجمة افتراضياً",
|
||||
"VERSION_DESCRIPTION": "الإصدار الحالي ديال التطبيق",
|
||||
"EPG_NOTE": "EPG متوفر حالياً غير في الإصدار اللي مبني على electron ديال IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "شوف هنا",
|
||||
"IMPORT_EXPORT_DATA": "استورد/صدّر قوائم التشغيل",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "صدّر ولا استورد قوائم التشغيل بصيغة JSON اللي كيستعملها التطبيق.",
|
||||
"IMPORT_DATA": "استورد",
|
||||
"EXPORT_DATA": "صدّر",
|
||||
"REMOVE_ALL": "حيد قوائم التشغيل",
|
||||
"REMOVE_ALL_BUTTON": "حيد",
|
||||
"REMOVE_ALL_DESCRIPTION": "غادي يحيد جميع قوائم التشغيل الموجودة من التطبيق.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حيد جميع قوائم التشغيل",
|
||||
"MESSAGE": "واش متأكد بغيتي تحيد جميع قوائم التشغيل من التطبيق؟"
|
||||
},
|
||||
"IMPORT_ERROR": "خطأ في الاستيراد، عفاك جرب بملف آخر.",
|
||||
"PLAYLISTS_REMOVED": "جميع قوائم التشغيل تحيدو.",
|
||||
"MPV_PLAYER_PATH_LABEL": "مسار mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل mpv في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف mpv بدل اللي كيتلقى في $PATH.",
|
||||
"MPV_PLAYER_PATH": "مسار مشغل mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "مسار VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف VLC بدل المسار الافتراضي ديال السيستيم ديالنا.",
|
||||
"VLC_PLAYER_PATH": "مسار مشغل VLC",
|
||||
"REMOTE_CONTROL": "التحكم عن بعد",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "فعل التحكم عن بعد للتطبيق.",
|
||||
"REMOTE_CONTROL_PORT": "منفذ التحكم عن بعد",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "المنفذ اللي كيتستعمل للتحكم عن بعد للتطبيق. المنفذ 3000 كيتستعمل افتراضياً."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "جر وأفلت الملفات هنا",
|
||||
"OR": "أو",
|
||||
"CHOOSE_PLAYLIST": "اختار قائمة تشغيل",
|
||||
"REJECTED": "الملف ترفض، صيغة الملف غير مدعومة {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "المظهر الداكن",
|
||||
"LIGHT_THEME": "المظهر الفاتح"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "رابط قائمة التشغيل (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "زيد قائمة التشغيل",
|
||||
"CORS_NOTE": "ملاحظة: باش نتفاداو مشاكل CORS فهاد المرحلة، التطبيق كيستعمل خدمة وكيل CORS عامة. إلى بغيتي ترفع قائمة تشغيل فيها بيانات حساسة، من الأحسن تستوردها من ملف."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "قلب على قناة",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "رفع ولا اختار قائمة تشغيل أخرى",
|
||||
"ALL_CHANNELS": "جميع القنوات",
|
||||
"GROUPS": "المجموعات",
|
||||
"UNGROUPED": "غير مجمعة",
|
||||
"UNNAMED_CHANNEL": "قناة بدون اسم",
|
||||
"FAVORITES": "المفضلة",
|
||||
"NO_FAVORITES": "مازال ما كاينش مفضلة",
|
||||
"USE_STAR_TO_FAVORITE": "عفاك استعمل رمز 'النجمة' باش تزيد قنوات للمفضلة ديالك.",
|
||||
"REMOVE_FAVORITE": "حيد من المفضلة",
|
||||
"FAVORITES_UPDATED": "المفضلة تحدثات!",
|
||||
"SORT_BY": "رتب بـ",
|
||||
"SORT_BY_DATE": "رتب بتاريخ الإضافة (الأحدث أولاً)",
|
||||
"SORT_BY_RATING": "رتب بالتقييم",
|
||||
"SORT_BY_NAME": "رتب بالاسم (أ-ي)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "دخل قائمة تشغيل m3u(8) على شكل نص",
|
||||
"BUTTON_LABEL": "استورد"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "حل قائمة القنوات",
|
||||
"TOGGLE_FAVORITE_FLAG": "بدل علامة المفضلة",
|
||||
"OPEN_EPG_LIST": "حل قائمة EPG",
|
||||
"OPEN_MULTI_EPG": "حل عرض EPG المتعدد"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "عنوان قائمة التشغيل",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة المرور",
|
||||
"ADD": "زيد",
|
||||
"TEST_CREDENTIALS": "جرب بيانات الاعتماد",
|
||||
"URL_VALIDATION_ERROR": "خاص يكون رابط صحيح مع البروتوكول (مثلا http://example.com ولا https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "دليل البرامج الإلكتروني",
|
||||
"NEXT_DAY": "اليوم التالي",
|
||||
"PREVIOUS_DAY": "اليوم السابق",
|
||||
"LIVE_NOW": "مباشر الآن",
|
||||
"LIVE_STREAM": "بث مباشر",
|
||||
"TIMESHIFT_AVAILABLE": "التأجيل الزمني متوفر، ضغط باش تلعب",
|
||||
"EPG_NOT_AVAILABLE_DATE": "أوه، EPG ما متوفرش للتاريخ اللي اختاريتيه",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "أوه، EPG ما متوفرش لهاد القناة.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "عفاك زيد/بدل رابط قائمة EPG في إعدادات التطبيق.",
|
||||
"FETCH_EPG": "جاري جلب بيانات EPG...",
|
||||
"ERROR": "أوه، EPG ما قدرش يتشارجا.",
|
||||
"DOWNLOAD_SUCCESS": "EPG تشارجا بنجاح.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "تفاصيل حول البرنامج التلفزيوني",
|
||||
"TITLE": "العنوان",
|
||||
"CATEGORY": "الفئة",
|
||||
"PARENTAL_RATING_SYSTEM": "نظام تقييم المحتوى التلفزيوني",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SHOW_PROGRAM_DETAILS": "وري تفاصيل حول هاد البرنامج"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG تجلب بنجاح"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "العنوان",
|
||||
"MAC_ADDRESS": "عنوان MAC",
|
||||
"SERVER_URL": "رابط الخادم",
|
||||
"URL_VALIDATION_ERROR": "خاص يكون رابط صحيح مع البروتوكول (مثلا http://example.com/c ولا https://example.com/stalker_portal/c)",
|
||||
"ADD": "زيد"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "فلتر بالاسم",
|
||||
"FILTER_BY_TYPE": "فلتر بالنوع",
|
||||
"SORT_PLAYLISTS": "رتب قوائم التشغيل",
|
||||
"SORT_BY": "رتب بـ",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "الاسم (أ-ي)",
|
||||
"NAME_DESC": "الاسم (ي-أ)",
|
||||
"NEWEST": "تاريخ الإضافة (الأحدث أولاً)",
|
||||
"OLDEST": "تاريخ الإضافة (الأقدم أولاً)"
|
||||
"YES": "آه",
|
||||
"NO": "لا",
|
||||
"MENU": {
|
||||
"OPEN": "حل القائمة",
|
||||
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
|
||||
"SETTINGS": "الإعدادات",
|
||||
"SETTINGS_ARIA": "حل الإعدادات",
|
||||
"BUG_REPORT": "بلغ على شي مشكل",
|
||||
"WHAT_IS_NEW": "شنو الجديد",
|
||||
"ABOUT": "حول",
|
||||
"ABOUT_ARIA": "حول التطبيق",
|
||||
"SUPPORT_PROJECT": "دعم المشروع"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "استورد كنص",
|
||||
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "الإعدادات / IPTVnator",
|
||||
"SUBTITLE": "بدل إعدادات التطبيق",
|
||||
"DESCRIPTION": "عفاك بدل الخيارات من الليستا لتحت وأكد بضغط على زر حفظ التغييرات",
|
||||
"EPG_URL_LABEL": "رابط EPG (*.xml ولا *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "دخل رابط",
|
||||
"REFRESH_EPG": "حدث EPG",
|
||||
"VIDEO_PLAYER_LABEL": "مشغل الفيديو",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "اختار خيار",
|
||||
"VERSION": "الإصدار",
|
||||
"SAVE_CHANGES": "حفظ التغييرات",
|
||||
"BACK_TO_HOME": "رجوع",
|
||||
"NEW_VERSION_AVAILABLE": "كاين إصدار جديد متوفر",
|
||||
"LATEST_VERSION": "راك تستعمل أحدث إصدار",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SETTINGS_SAVED": "نجاح! الإعدادات تحفضو.",
|
||||
"THEME": "المظهر المرئي",
|
||||
"SHOW_CAPTIONS": "وري الترجمة",
|
||||
"ADD_EPG_SOURCE": "زيد مصدر EPG",
|
||||
"EPG_URL_ERROR": "القيمة ماشي رابط صحيح",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "اختار مشغل الفيديو الافتراضي",
|
||||
"LANGUAGE_DESCRIPTION": "اختار لغة التطبيق",
|
||||
"THEME_DESCRIPTION": "اختار المظهر المرئي للتطبيق",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "وري ولا خفي الترجمة افتراضياً",
|
||||
"VERSION_DESCRIPTION": "الإصدار الحالي ديال التطبيق",
|
||||
"EPG_NOTE": "EPG متوفر حالياً غير في الإصدار اللي مبني على electron ديال IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "شوف هنا",
|
||||
"IMPORT_EXPORT_DATA": "استورد/صدّر قوائم التشغيل",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "صدّر ولا استورد قوائم التشغيل بصيغة JSON اللي كيستعملها التطبيق.",
|
||||
"IMPORT_DATA": "استورد",
|
||||
"EXPORT_DATA": "صدّر",
|
||||
"REMOVE_ALL": "حيد قوائم التشغيل",
|
||||
"REMOVE_ALL_BUTTON": "حيد",
|
||||
"REMOVE_ALL_DESCRIPTION": "غادي يحيد جميع قوائم التشغيل الموجودة من التطبيق.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "حيد جميع قوائم التشغيل",
|
||||
"MESSAGE": "واش متأكد بغيتي تحيد جميع قوائم التشغيل من التطبيق؟"
|
||||
"ABOUT": {
|
||||
"TITLE": "حول IPTVnator",
|
||||
"DESCRIPTION": "تطبيق مشغل IPTV متعدد المنصات فيه بزاف ديال الميزات، بحال دعم قوائم تشغيل m3u و m3u8، المفضلة، دليل التلفزيون، الأرشيف التلفزيوني/الإعادة والمزيد.",
|
||||
"VERSION": "الإصدار",
|
||||
"GITHUB_TOOLTIP": "مستودع IPTVnator على GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "شري ليا قهوة",
|
||||
"TWITTER_TOOLTIP": "شارك على تويتر"
|
||||
},
|
||||
"IMPORT_ERROR": "خطأ في الاستيراد، عفاك جرب بملف آخر.",
|
||||
"PLAYLISTS_REMOVED": "جميع قوائم التشغيل تحيدو.",
|
||||
"MPV_PLAYER_PATH_LABEL": "مسار mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل mpv في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف mpv بدل اللي كيتلقى في $PATH.",
|
||||
"MPV_PLAYER_PATH": "مسار مشغل mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "مسار VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "حدد مسار مشغل VLC في السيستيم ديالك. غادي يستعمل المسار اللي عطيتيه لملف VLC بدل المسار الافتراضي ديال السيستيم ديالنا.",
|
||||
"VLC_PLAYER_PATH": "مسار مشغل VLC",
|
||||
"REMOTE_CONTROL": "التحكم عن بعد",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "فعل التحكم عن بعد للتطبيق.",
|
||||
"REMOTE_CONTROL_PORT": "منفذ التحكم عن بعد",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "المنفذ اللي كيتستعمل للتحكم عن بعد للتطبيق. المنفذ 3000 كيتستعمل افتراضياً."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "المظهر الداكن",
|
||||
"LIGHT_THEME": "المظهر الفاتح"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "قلب على قناة",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "رفع ولا اختار قائمة تشغيل أخرى",
|
||||
"ALL_CHANNELS": "جميع القنوات",
|
||||
"GROUPS": "المجموعات",
|
||||
"UNGROUPED": "غير مجمعة",
|
||||
"UNNAMED_CHANNEL": "قناة بدون اسم",
|
||||
"FAVORITES": "المفضلة",
|
||||
"NO_FAVORITES": "مازال ما كاينش مفضلة",
|
||||
"USE_STAR_TO_FAVORITE": "عفاك استعمل رمز 'النجمة' باش تزيد قنوات للمفضلة ديالك.",
|
||||
"REMOVE_FAVORITE": "حيد من المفضلة",
|
||||
"FAVORITES_UPDATED": "المفضلة تحدثات!",
|
||||
"SORT_BY": "رتب بـ",
|
||||
"SORT_BY_DATE": "رتب بتاريخ الإضافة (الأحدث أولاً)",
|
||||
"SORT_BY_RATING": "رتب بالتقييم",
|
||||
"SORT_BY_NAME": "رتب بالاسم (أ-ي)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "حل قائمة القنوات",
|
||||
"TOGGLE_FAVORITE_FLAG": "بدل علامة المفضلة",
|
||||
"OPEN_EPG_LIST": "حل قائمة EPG",
|
||||
"OPEN_MULTI_EPG": "حل عرض EPG المتعدد"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "دليل البرامج الإلكتروني",
|
||||
"NEXT_DAY": "اليوم التالي",
|
||||
"PREVIOUS_DAY": "اليوم السابق",
|
||||
"LIVE_NOW": "مباشر الآن",
|
||||
"LIVE_STREAM": "بث مباشر",
|
||||
"TIMESHIFT_AVAILABLE": "التأجيل الزمني متوفر، ضغط باش تلعب",
|
||||
"EPG_NOT_AVAILABLE_DATE": "أوه، EPG ما متوفرش للتاريخ اللي اختاريتيه",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "أوه، EPG ما متوفرش لهاد القناة.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "عفاك زيد/بدل رابط قائمة EPG في إعدادات التطبيق.",
|
||||
"FETCH_EPG": "جاري جلب بيانات EPG...",
|
||||
"ERROR": "أوه، EPG ما قدرش يتشارجا.",
|
||||
"DOWNLOAD_SUCCESS": "EPG تشارجا بنجاح.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "تفاصيل حول البرنامج التلفزيوني",
|
||||
"TITLE": "العنوان",
|
||||
"CATEGORY": "الفئة",
|
||||
"PARENTAL_RATING_SYSTEM": "نظام تقييم المحتوى التلفزيوني",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"LANGUAGE": "اللغة",
|
||||
"SHOW_PROGRAM_DETAILS": "وري تفاصيل حول هاد البرنامج"
|
||||
"UPDATE_AVAILABLE": "تحديث متوفر",
|
||||
"REFRESH": "حدث",
|
||||
"XTREAM": {
|
||||
"PLAY": "لعب",
|
||||
"NAME": "الاسم",
|
||||
"RELEASE_DATE": "تاريخ الإصدار",
|
||||
"GENRE": "النوع",
|
||||
"COUNTRY": "البلد",
|
||||
"ACTORS": "الممثلون",
|
||||
"DIRECTOR": "المخرج",
|
||||
"DURATION": "المدة",
|
||||
"CAST": "طاقم التمثيل",
|
||||
"EPISODE_RUN_TIME": "مدة تشغيل الحلقة",
|
||||
"RATING": "التقييم",
|
||||
"IMDB_RATING": "تقييم IMDB",
|
||||
"KINOPOISK_RATING": "تقييم Kinopoisk",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"YEAR": "السنة",
|
||||
"AGE": "العمر",
|
||||
"YOUTUBE_TRAILER": "مقطع دعائي على يوتيوب",
|
||||
"EPISODE": "الحلقة"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG تجلب بنجاح"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "آه",
|
||||
"NO": "لا",
|
||||
"MENU": {
|
||||
"OPEN": "حل القائمة",
|
||||
"SUPPORT_ARIA": "دعم IPTVnator على GitHub",
|
||||
"SETTINGS": "الإعدادات",
|
||||
"SETTINGS_ARIA": "حل الإعدادات",
|
||||
"BUG_REPORT": "بلغ على شي مشكل",
|
||||
"WHAT_IS_NEW": "شنو الجديد",
|
||||
"ABOUT": "حول",
|
||||
"ABOUT_ARIA": "حول التطبيق",
|
||||
"SUPPORT_PROJECT": "دعم المشروع"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "حول IPTVnator",
|
||||
"DESCRIPTION": "تطبيق مشغل IPTV متعدد المنصات فيه بزاف ديال الميزات، بحال دعم قوائم تشغيل m3u و m3u8، المفضلة، دليل التلفزيون، الأرشيف التلفزيوني/الإعادة والمزيد.",
|
||||
"VERSION": "الإصدار",
|
||||
"GITHUB_TOOLTIP": "مستودع IPTVnator على GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "شري ليا قهوة",
|
||||
"TWITTER_TOOLTIP": "شارك على تويتر"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "تحديث متوفر",
|
||||
"REFRESH": "حدث",
|
||||
"XTREAM": {
|
||||
"PLAY": "لعب",
|
||||
"NAME": "الاسم",
|
||||
"RELEASE_DATE": "تاريخ الإصدار",
|
||||
"GENRE": "النوع",
|
||||
"COUNTRY": "البلد",
|
||||
"ACTORS": "الممثلون",
|
||||
"DIRECTOR": "المخرج",
|
||||
"DURATION": "المدة",
|
||||
"CAST": "طاقم التمثيل",
|
||||
"EPISODE_RUN_TIME": "مدة تشغيل الحلقة",
|
||||
"RATING": "التقييم",
|
||||
"IMDB_RATING": "تقييم IMDB",
|
||||
"KINOPOISK_RATING": "تقييم Kinopoisk",
|
||||
"DESCRIPTION": "الوصف",
|
||||
"YEAR": "السنة",
|
||||
"AGE": "العمر",
|
||||
"YOUTUBE_TRAILER": "مقطع دعائي على يوتيوب",
|
||||
"EPISODE": "الحلقة"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "جميع الفئات",
|
||||
"MY_FAVORITES": "المفضلة ديالي",
|
||||
"ADD_TO_FAVORITES": "زيد للمفضلة",
|
||||
"REMOVE_FROM_FAVORITES": "حيد من المفضلة",
|
||||
"REMOVED_FROM_FAVORITES": "تحيد من المفضلة",
|
||||
"ADDED_TO_FAVORITES": "تزاد للمفضلة",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "الحساب انتهى",
|
||||
"DESCRIPTION": "هاد الحساب انتهت صلاحيته. عفاك تحقق من بيانات الاعتماد في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "غير مصرح",
|
||||
"DESCRIPTION": "عفاك تحقق من بيانات الاعتماد في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "البوابة ما تلقاتش",
|
||||
"DESCRIPTION": "عفاك تحقق من بيانات الاعتماد ورابط البوابة في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "فئة فارغة",
|
||||
"DESCRIPTION": "هاد الفئة ما فيهاش محتوى، عفاك اختار فئة أخرى ولا بدل نوع المحتوى."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "وقع شي خطأ",
|
||||
"DESCRIPTION": "خطأ غير معروف، عفاك حاول مرة أخرى من بعد."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "إعدادات قائمة التشغيل",
|
||||
"HOME": "الرئيسية",
|
||||
"DELETE": "حذف"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "جميع الفئات",
|
||||
"MY_FAVORITES": "المفضلة ديالي",
|
||||
"ADD_TO_FAVORITES": "زيد للمفضلة",
|
||||
"REMOVE_FROM_FAVORITES": "حيد من المفضلة",
|
||||
"REMOVED_FROM_FAVORITES": "تحيد من المفضلة",
|
||||
"ADDED_TO_FAVORITES": "تزاد للمفضلة",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "الحساب انتهى",
|
||||
"DESCRIPTION": "هاد الحساب انتهت صلاحيته. عفاك تحقق من بيانات الاعتماد في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "غير مصرح",
|
||||
"DESCRIPTION": "عفاك تحقق من بيانات الاعتماد في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "البوابة ما تلقاتش",
|
||||
"DESCRIPTION": "عفاك تحقق من بيانات الاعتماد ورابط البوابة في إعدادات قائمة التشغيل ولا حيدها."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "فئة فارغة",
|
||||
"DESCRIPTION": "هاد الفئة ما فيهاش محتوى، عفاك اختار فئة أخرى ولا بدل نوع المحتوى."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "وقع شي خطأ",
|
||||
"DESCRIPTION": "خطأ غير معروف، عفاك حاول مرة أخرى من بعد."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "إعدادات قائمة التشغيل",
|
||||
"HOME": "الرئيسية",
|
||||
"DELETE": "حذف"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "ما تلقى والو، حاول تبدل طلب البحث ديالك"
|
||||
},
|
||||
"STREAM_URL_COPIED": "رابط البث تنقل للحافظة",
|
||||
"COPY_STREAM_URL": "نسخ رابط البث"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "ما تلقى والو، حاول تبدل طلب البحث ديالك"
|
||||
},
|
||||
"STREAM_URL_COPIED": "رابط البث تنقل للحافظة",
|
||||
"COPY_STREAM_URL": "نسخ رابط البث"
|
||||
},
|
||||
"INFORMATION": "معلومات",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "التحكم عن بعد",
|
||||
"UP_CHANNEL": "القناة الفوق",
|
||||
"DOWN_CHANNEL": "القناة لتحت",
|
||||
"HEADER": "التحكم عن بعد IPTVNator",
|
||||
"FOOTER": "التحكم عن بعد IPTVNator"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "معلومات",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "التحكم عن بعد",
|
||||
"UP_CHANNEL": "القناة الفوق",
|
||||
"DOWN_CHANNEL": "القناة لتحت",
|
||||
"HEADER": "التحكم عن بعد IPTVNator",
|
||||
"FOOTER": "التحكم عن بعد IPTVNator"
|
||||
}
|
||||
}
|
||||
+275
-275
@@ -1,286 +1,286 @@
|
||||
{
|
||||
"CLOSE": "Закрыць",
|
||||
"PLAYLISTS": "Плэйлісты",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Выберыце плэйліст са спісу, дадайце новы з камп'ютара або загрузіце па спасылцы",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Нядаўна дададзеныя плэйлісты",
|
||||
"FILE_UPLOAD": "Загрузіць з камп'ютара",
|
||||
"URL_UPLOAD": "Загрузіць па спасылцы",
|
||||
"TEXT_IMPORT": "Імпартаваць з тэксту",
|
||||
"STALKER_PORTAL_IMPORT": "Дадаць Stalker партал",
|
||||
"XTREME_IMPORT": "Дадаць Xtreme Code"
|
||||
"CLOSE": "Закрыць",
|
||||
"PLAYLISTS": "Плэйлісты",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Выберыце плэйліст са спісу, дадайце новы з камп'ютара або загрузіце па спасылцы",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Нядаўна дададзеныя плэйлісты",
|
||||
"FILE_UPLOAD": "Загрузіць з камп'ютара",
|
||||
"URL_UPLOAD": "Загрузіць па спасылцы",
|
||||
"TEXT_IMPORT": "Імпартаваць з тэксту",
|
||||
"STALKER_PORTAL_IMPORT": "Дадаць Stalker партал",
|
||||
"XTREME_IMPORT": "Дадаць Xtreme Code"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Пакуль яшчэ не было дададзена ніводнага плэйліста",
|
||||
"ADD_FIRST": "Вы можаце дадаць плэйлісты з суседніх укладак",
|
||||
"ADDED_VIA_URL": "Быў дададзены па спасылцы:",
|
||||
"ADDED_VIA_FILE": "Быў загружаны з камп'ютара",
|
||||
"CHANNELS": "Каналаў",
|
||||
"ADDED": "Дададзены",
|
||||
"SHOW_DETAILS": "Паказаць інфармацыю аб плэйлісце",
|
||||
"REMOVE": "Выдаліць плэйліст",
|
||||
"SEARCH_PLAYLISTS": "Пошук па назве плэйліста",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Падрабязная інфармацыя аб плэйлісце",
|
||||
"TITLE": "Назва",
|
||||
"FROM_URL": "Дададзены па спасылцы",
|
||||
"IMPORT_DATE": "Дата імпарту",
|
||||
"CHANNELS": "Колькасць каналаў",
|
||||
"CLOSE": "Закрыць",
|
||||
"SAVE": "Захаваць",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "Імя файла пры загрузцы",
|
||||
"FILE_PATH": "Шлях да файла",
|
||||
"UPDATE_FAILED": "Не ўдалося абнавіць плэйліст",
|
||||
"AUTO_UPDATE": "Аўтаабнаўленне",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Калі актываваная функцыя аўтаабнаўлення, спіс прайгравання будзе абнаўляцца аўтаматычна пры кожным запуску праграмы.",
|
||||
"CUSTOM_USER_AGENT": "Некаторыя IPTV правайдэры патрабуюць указанне пэўнага карыстальніцкага агента (User Agent) для прайгравання свайго плэйліста.",
|
||||
"EXPORT_PLAYLIST": "Экспартаваць плэйліст (m3u)",
|
||||
"PASSWORD": "Пароль",
|
||||
"SERVER_URL": "URL-адрас сервера",
|
||||
"USERNAME": "Імя карыстальніка",
|
||||
"MAC_ADDRESS": "MAC-адрас"
|
||||
},
|
||||
"UPDATED": "Абноўлены",
|
||||
"REFRESH": "Абнавіць плэйліст",
|
||||
"REMOVE_DIALOG": {
|
||||
"MESSAGE": "Вы ўпэўнены, што хочаце выдаліць гэты плэйліст?",
|
||||
"TITLE": "Выдаліць плэйліст"
|
||||
},
|
||||
"GLOBAL_FAVORITES": "Усе фаварыты",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Аўтаматычна згенераваны плэйліст, які ўключае ў сябе фаварыты з усіх плэйлістоў",
|
||||
"MY_PLAYLISTS": "Мае плэйлісты",
|
||||
"MY_PLAYLISTS_SUBTITLE": "Усе наяўныя плэйлісты",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Плэйліст быў паспяхова абноўлены!",
|
||||
"STALKER_PORTAL": "Stalker партал",
|
||||
"XTREAM_PLAYLIST": "Xtream плэйліст"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Перацягніце файл у гэтую вобласць",
|
||||
"OR": "або",
|
||||
"CHOOSE_PLAYLIST": "выберыце плэйліст",
|
||||
"REJECTED": "На жаль, гэты фармат файлаў не падтрымліваецца {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Спасылка на плэйліст (*.m3u або *.m3u8)",
|
||||
"ADD_PLAYLIST": "Дадаць плэйліст"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Устаўце плэйліст фармату m3u(8) у гэта поле",
|
||||
"BUTTON_LABEL": "Імпартаваць"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Назва плэйліста",
|
||||
"SERVER_URL": "Сервер URL",
|
||||
"USERNAME": "Карыстальнік",
|
||||
"PASSWORD": "Пароль",
|
||||
"ADD": "Дадаць",
|
||||
"TEST_CREDENTIALS": "Праверыць",
|
||||
"URL_VALIDATION_ERROR": "Павінен быць сапраўдны URL-адрас з пратаколам (напрыклад, http://example.com або https://example.com:4324)."
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Дадаць",
|
||||
"TITLE": "Назва",
|
||||
"MAC_ADDRESS": "MAC-адрас",
|
||||
"SERVER_URL": "URL сервера",
|
||||
"URL_VALIDATION_ERROR": "Павінен быць сапраўдны URL-адрас з пратаколам (напрыклад, http://example.com/c або https://example.com/stalker_portal/c)."
|
||||
},
|
||||
"FILTER_BY_TYPE": "Фільтраваць па тыпу",
|
||||
"IMPORTED_AS_TEXT": "Імпартавана як тэкст",
|
||||
"FILTER_BY_NAME": "Фільтраваць па імені",
|
||||
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Пакуль яшчэ не было дададзена ніводнага плэйліста",
|
||||
"ADD_FIRST": "Вы можаце дадаць плэйлісты з суседніх укладак",
|
||||
"ADDED_VIA_URL": "Быў дададзены па спасылцы:",
|
||||
"ADDED_VIA_FILE": "Быў загружаны з камп'ютара",
|
||||
"CHANNELS": "Каналаў",
|
||||
"ADDED": "Дададзены",
|
||||
"SHOW_DETAILS": "Паказаць інфармацыю аб плэйлісце",
|
||||
"REMOVE": "Выдаліць плэйліст",
|
||||
"SEARCH_PLAYLISTS": "Пошук па назве плэйліста",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Падрабязная інфармацыя аб плэйлісце",
|
||||
"TITLE": "Назва",
|
||||
"FROM_URL": "Дададзены па спасылцы",
|
||||
"IMPORT_DATE": "Дата імпарту",
|
||||
"CHANNELS": "Колькасць каналаў",
|
||||
"CLOSE": "Закрыць",
|
||||
"SAVE": "Захаваць",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "Імя файла пры загрузцы",
|
||||
"FILE_PATH": "Шлях да файла",
|
||||
"UPDATE_FAILED": "Не ўдалося абнавіць плэйліст",
|
||||
"AUTO_UPDATE": "Аўтаабнаўленне",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Калі актываваная функцыя аўтаабнаўлення, спіс прайгравання будзе абнаўляцца аўтаматычна пры кожным запуску праграмы.",
|
||||
"CUSTOM_USER_AGENT": "Некаторыя IPTV правайдэры патрабуюць указанне пэўнага карыстальніцкага агента (User Agent) для прайгравання свайго плэйліста.",
|
||||
"EXPORT_PLAYLIST": "Экспартаваць плэйліст (m3u)",
|
||||
"PASSWORD": "Пароль",
|
||||
"SERVER_URL": "URL-адрас сервера",
|
||||
"USERNAME": "Імя карыстальніка",
|
||||
"MAC_ADDRESS": "MAC-адрас"
|
||||
},
|
||||
"UPDATED": "Абноўлены",
|
||||
"REFRESH": "Абнавіць плэйліст",
|
||||
"REMOVE_DIALOG": {
|
||||
"MESSAGE": "Вы ўпэўнены, што хочаце выдаліць гэты плэйліст?",
|
||||
"TITLE": "Выдаліць плэйліст"
|
||||
},
|
||||
"GLOBAL_FAVORITES": "Усе фаварыты",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Аўтаматычна згенераваны плэйліст, які ўключае ў сябе фаварыты з усіх плэйлістоў",
|
||||
"MY_PLAYLISTS": "Мае плэйлісты",
|
||||
"MY_PLAYLISTS_SUBTITLE": "Усе наяўныя плэйлісты",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Плэйліст быў паспяхова абноўлены!",
|
||||
"STALKER_PORTAL": "Stalker партал",
|
||||
"XTREAM_PLAYLIST": "Xtream плэйліст"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Перацягніце файл у гэтую вобласць",
|
||||
"OR": "або",
|
||||
"CHOOSE_PLAYLIST": "выберыце плэйліст",
|
||||
"REJECTED": "На жаль, гэты фармат файлаў не падтрымліваецца {{filename}}."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Налады",
|
||||
"SUBTITLE": "Тут можна змяніць агульныя налады праграмы",
|
||||
"DESCRIPTION": "Скончыўшы наладу, не забудзьцеся пацвердзіць новыя налады кнопкай 'Захаваць'",
|
||||
"EPG_URL_LABEL": "Спасылка на праграму каналаў (EPG) (*.xml або *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Увядзіце спасылку",
|
||||
"REFRESH_EPG": "Абнавіць праграму каналаў (EPG)",
|
||||
"VIDEO_PLAYER_LABEL": "Відэапрайгравальнік",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Выберыце са спісу",
|
||||
"VERSION": "Версія праграмы",
|
||||
"SAVE_CHANGES": "Захаваць",
|
||||
"BACK_TO_HOME": "Назад",
|
||||
"NEW_VERSION_AVAILABLE": "Даступная новая версія праграмы",
|
||||
"LATEST_VERSION": "Вы выкарыстоўваеце апошнюю версію праграмы",
|
||||
"LANGUAGE": "Мова",
|
||||
"SETTINGS_SAVED": "Новыя налады былі паспяхова захаваны!",
|
||||
"THEME": "Тэма афармлення",
|
||||
"SHOW_CAPTIONS": "Адлюстроўваць субтытры",
|
||||
"ADD_EPG_SOURCE": "Дадаць крыніцу EPG",
|
||||
"EPG_URL_ERROR": "Уведзенае значэнне не з'яўляецца URL-адрасам.",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Выбраць стандартны відэапрайгравальнік",
|
||||
"LANGUAGE_DESCRIPTION": "Выбраць мову праграмы",
|
||||
"THEME_DESCRIPTION": "Выбраць візуальную тэму афармлення",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Паказаць або схаваць субтытры па змаўчанні.",
|
||||
"VERSION_DESCRIPTION": "Бягучая версія праграмы",
|
||||
"EPG_NOTE": "На гэты момант EPG даступны толькі ў натыўнай версіі IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Падрабязней тут",
|
||||
"IMPORT_EXPORT_DATA": "Імпарт/экспарт плэйлістоў",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Экспарт або імпарт плэйлістоў у фармаце JSON, які выкарыстоўваецца ў праграме.",
|
||||
"IMPORT_DATA": "Імпарт",
|
||||
"EXPORT_DATA": "Экспарт",
|
||||
"REMOVE_ALL": "Выдаліць плэйліст",
|
||||
"REMOVE_ALL_BUTTON": "Выдаліць",
|
||||
"REMOVE_ALL_DESCRIPTION": "Гэта дзеянне выдаліць усе існуючыя плэйлісты з праграмы.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Выдаліць усе плэйлісты",
|
||||
"MESSAGE": "Вы ўпэўнены, што хочаце выдаліць усе плэйлісты з праграмы?"
|
||||
},
|
||||
"IMPORT_ERROR": "Памылка імпарту, калі ласка, паспрабуйце імпартаваць іншы файл.",
|
||||
"PLAYLISTS_REMOVED": "Усе плэйлісты былі выдалены.",
|
||||
"VLC_PLAYER_PATH_LABEL": "Шлях да VLC прайгравальніка",
|
||||
"VLC_PLAYER_PATH": "Шлях да VLC прайгравальніка",
|
||||
"MPV_PLAYER_PATH_LABEL": "Шлях да mpv прайгравальніка",
|
||||
"MPV_PLAYER_PATH": "Шлях да mpv прайгравальніка",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Усталюйце шлях да прайгравальніка VLC у вашай сістэме. \nЁн будзе выкарыстоўваць прадастаўлены шлях да бінарнага файла VLC замест шляху па змаўчанні."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Спасылка на плэйліст (*.m3u або *.m3u8)",
|
||||
"ADD_PLAYLIST": "Дадаць плэйліст"
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Цёмная тэма",
|
||||
"LIGHT_THEME": "Светлая тэма"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Устаўце плэйліст фармату m3u(8) у гэта поле",
|
||||
"BUTTON_LABEL": "Імпартаваць"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Пошук каналаў",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Загрузіць або выбраць іншы плэйліст",
|
||||
"ALL_CHANNELS": "Усе каналы",
|
||||
"GROUPS": "Групы",
|
||||
"UNGROUPED": "Незагрупаваныя",
|
||||
"UNNAMED_CHANNEL": "Канал без назвы",
|
||||
"FAVORITES": "Выбраныя",
|
||||
"NO_FAVORITES": "Выбраных каналаў пакуль няма",
|
||||
"USE_STAR_TO_FAVORITE": "Выкарыстоўвайце значок зоркі, каб дадаваць каналы ў выбранае",
|
||||
"REMOVE_FAVORITE": "Выдаліць са спісу фаварытаў",
|
||||
"FAVORITES_UPDATED": "Спіс фаварытаў быў абноўлены!"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Назва плэйліста",
|
||||
"SERVER_URL": "Сервер URL",
|
||||
"USERNAME": "Карыстальнік",
|
||||
"PASSWORD": "Пароль",
|
||||
"ADD": "Дадаць",
|
||||
"TEST_CREDENTIALS": "Праверыць",
|
||||
"URL_VALIDATION_ERROR": "Павінен быць сапраўдны URL-адрас з пратаколам (напрыклад, http://example.com або https://example.com:4324)."
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Адкрыць спіс каналаў",
|
||||
"TOGGLE_FAVORITE_FLAG": "Выбраны",
|
||||
"OPEN_EPG_LIST": "Адкрыць праграму (EPG)",
|
||||
"OPEN_MULTI_EPG": "Адкрыць мульты-EPG прагляд"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Дадаць",
|
||||
"TITLE": "Назва",
|
||||
"MAC_ADDRESS": "MAC-адрас",
|
||||
"SERVER_URL": "URL сервера",
|
||||
"URL_VALIDATION_ERROR": "Павінен быць сапраўдны URL-адрас з пратаколам (напрыклад, http://example.com/c або https://example.com/stalker_portal/c)."
|
||||
"EPG": {
|
||||
"NEXT_DAY": "Наступны дзень",
|
||||
"PREVIOUS_DAY": "Папярэдні дзень",
|
||||
"LIVE_NOW": "Цяпер",
|
||||
"LIVE_STREAM": "Прамая трансляцыя",
|
||||
"TIMESHIFT_AVAILABLE": "Даступная функцыя архіва (timeshift). Націсніце на перадачу для прайгравання.",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ой, праграма на гэты дзень, на жаль, адсутнічае.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Праграма для гэтага канала недаступная.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Паспрабуйце змяніць або абнавіць спасылку на EPG у наладах праграмы.",
|
||||
"FETCH_EPG": "Загружаю праграму ТБ-перадач (EPG)...",
|
||||
"ERROR": "Ой, не ўдалося загрузіць праграму каналаў (EPG)",
|
||||
"DOWNLOAD_SUCCESS": "Праграма каналаў (EPG) была паспяхова загружана.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Падрабязнасці перадачы",
|
||||
"TITLE": "Назва",
|
||||
"CATEGORY": "Катэгорыя",
|
||||
"PARENTAL_RATING_SYSTEM": "Возраснае абмежаванне",
|
||||
"DESCRIPTION": "Апісанне",
|
||||
"LANGUAGE": "Мова",
|
||||
"SHOW_PROGRAM_DETAILS": "Паказаць падрабязнасці"
|
||||
}
|
||||
},
|
||||
"FILTER_BY_TYPE": "Фільтраваць па тыпу",
|
||||
"IMPORTED_AS_TEXT": "Імпартавана як тэкст",
|
||||
"FILTER_BY_NAME": "Фільтраваць па імені",
|
||||
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Налады / IPTVnator",
|
||||
"SUBTITLE": "Тут можна змяніць агульныя налады праграмы",
|
||||
"DESCRIPTION": "Скончыўшы наладу, не забудзьцеся пацвердзіць новыя налады кнопкай 'Захаваць'",
|
||||
"EPG_URL_LABEL": "Спасылка на праграму каналаў (EPG) (*.xml або *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Увядзіце спасылку",
|
||||
"REFRESH_EPG": "Абнавіць праграму каналаў (EPG)",
|
||||
"VIDEO_PLAYER_LABEL": "Відэапрайгравальнік",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Выберыце са спісу",
|
||||
"VERSION": "Версія праграмы",
|
||||
"SAVE_CHANGES": "Захаваць",
|
||||
"BACK_TO_HOME": "Назад",
|
||||
"NEW_VERSION_AVAILABLE": "Даступная новая версія праграмы",
|
||||
"LATEST_VERSION": "Вы выкарыстоўваеце апошнюю версію праграмы",
|
||||
"LANGUAGE": "Мова",
|
||||
"SETTINGS_SAVED": "Новыя налады былі паспяхова захаваны!",
|
||||
"THEME": "Тэма афармлення",
|
||||
"SHOW_CAPTIONS": "Адлюстроўваць субтытры",
|
||||
"ADD_EPG_SOURCE": "Дадаць крыніцу EPG",
|
||||
"EPG_URL_ERROR": "Уведзенае значэнне не з'яўляецца URL-адрасам.",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Выбраць стандартны відэапрайгравальнік",
|
||||
"LANGUAGE_DESCRIPTION": "Выбраць мову праграмы",
|
||||
"THEME_DESCRIPTION": "Выбраць візуальную тэму афармлення",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Паказаць або схаваць субтытры па змаўчанні.",
|
||||
"VERSION_DESCRIPTION": "Бягучая версія праграмы",
|
||||
"EPG_NOTE": "На гэты момант EPG даступны толькі ў натыўнай версіі IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Падрабязней тут",
|
||||
"IMPORT_EXPORT_DATA": "Імпарт/экспарт плэйлістоў",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Экспарт або імпарт плэйлістоў у фармаце JSON, які выкарыстоўваецца ў праграме.",
|
||||
"IMPORT_DATA": "Імпарт",
|
||||
"EXPORT_DATA": "Экспарт",
|
||||
"REMOVE_ALL": "Выдаліць плэйліст",
|
||||
"REMOVE_ALL_BUTTON": "Выдаліць",
|
||||
"REMOVE_ALL_DESCRIPTION": "Гэта дзеянне выдаліць усе існуючыя плэйлісты з праграмы.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Выдаліць усе плэйлісты",
|
||||
"MESSAGE": "Вы ўпэўнены, што хочаце выдаліць усе плэйлісты з праграмы?"
|
||||
"NO": "Не",
|
||||
"YES": "Так",
|
||||
"MENU": {
|
||||
"OPEN": "Адкрыць меню",
|
||||
"SUPPORT_ARIA": "Падтрымаць IPTVnator на GitHub",
|
||||
"SETTINGS": "Налады",
|
||||
"SETTINGS_ARIA": "Адкрыць налады",
|
||||
"BUG_REPORT": "Паведаміць аб памылцы",
|
||||
"WHAT_IS_NEW": "Што новага?",
|
||||
"ABOUT": "Аб праграме",
|
||||
"ABOUT_ARIA": "Аб праграме",
|
||||
"SUPPORT_PROJECT": "Падтрымаць праект"
|
||||
},
|
||||
"IMPORT_ERROR": "Памылка імпарту, калі ласка, паспрабуйце імпартаваць іншы файл.",
|
||||
"PLAYLISTS_REMOVED": "Усе плэйлісты былі выдалены.",
|
||||
"VLC_PLAYER_PATH_LABEL": "Шлях да VLC прайгравальніка",
|
||||
"VLC_PLAYER_PATH": "Шлях да VLC прайгравальніка",
|
||||
"MPV_PLAYER_PATH_LABEL": "Шлях да mpv прайгравальніка",
|
||||
"MPV_PLAYER_PATH": "Шлях да mpv прайгравальніка",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Усталюйце шлях да прайгравальніка VLC у вашай сістэме. \nЁн будзе выкарыстоўваць прадастаўлены шлях да бінарнага файла VLC замест шляху па змаўчанні."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Цёмная тэма",
|
||||
"LIGHT_THEME": "Светлая тэма"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Пошук каналаў",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Загрузіць або выбраць іншы плэйліст",
|
||||
"ALL_CHANNELS": "Усе каналы",
|
||||
"GROUPS": "Групы",
|
||||
"UNGROUPED": "Незагрупаваныя",
|
||||
"UNNAMED_CHANNEL": "Канал без назвы",
|
||||
"FAVORITES": "Выбраныя",
|
||||
"NO_FAVORITES": "Выбраных каналаў пакуль няма",
|
||||
"USE_STAR_TO_FAVORITE": "Выкарыстоўвайце значок зоркі, каб дадаваць каналы ў выбранае",
|
||||
"REMOVE_FAVORITE": "Выдаліць са спісу фаварытаў",
|
||||
"FAVORITES_UPDATED": "Спіс фаварытаў быў абноўлены!"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Адкрыць спіс каналаў",
|
||||
"TOGGLE_FAVORITE_FLAG": "Выбраны",
|
||||
"OPEN_EPG_LIST": "Адкрыць праграму (EPG)",
|
||||
"OPEN_MULTI_EPG": "Адкрыць мульты-EPG прагляд"
|
||||
},
|
||||
"EPG": {
|
||||
"NEXT_DAY": "Наступны дзень",
|
||||
"PREVIOUS_DAY": "Папярэдні дзень",
|
||||
"LIVE_NOW": "Цяпер",
|
||||
"LIVE_STREAM": "Прамая трансляцыя",
|
||||
"TIMESHIFT_AVAILABLE": "Даступная функцыя архіва (timeshift). Націсніце на перадачу для прайгравання.",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ой, праграма на гэты дзень, на жаль, адсутнічае.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Праграма для гэтага канала недаступная.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Паспрабуйце змяніць або абнавіць спасылку на EPG у наладах праграмы.",
|
||||
"FETCH_EPG": "Загружаю праграму ТБ-перадач (EPG)...",
|
||||
"ERROR": "Ой, не ўдалося загрузіць праграму каналаў (EPG)",
|
||||
"DOWNLOAD_SUCCESS": "Праграма каналаў (EPG) была паспяхова загружана.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Падрабязнасці перадачы",
|
||||
"TITLE": "Назва",
|
||||
"CATEGORY": "Катэгорыя",
|
||||
"PARENTAL_RATING_SYSTEM": "Возраснае абмежаванне",
|
||||
"DESCRIPTION": "Апісанне",
|
||||
"LANGUAGE": "Мова",
|
||||
"SHOW_PROGRAM_DETAILS": "Паказаць падрабязнасці"
|
||||
}
|
||||
},
|
||||
"NO": "Не",
|
||||
"YES": "Так",
|
||||
"MENU": {
|
||||
"OPEN": "Адкрыць меню",
|
||||
"SUPPORT_ARIA": "Падтрымаць IPTVnator на GitHub",
|
||||
"SETTINGS": "Налады",
|
||||
"SETTINGS_ARIA": "Адкрыць налады",
|
||||
"BUG_REPORT": "Паведаміць аб памылцы",
|
||||
"WHAT_IS_NEW": "Што новага?",
|
||||
"ABOUT": "Аб праграме",
|
||||
"ABOUT_ARIA": "Аб праграме",
|
||||
"SUPPORT_PROJECT": "Падтрымаць праект"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "Аб праграме",
|
||||
"DESCRIPTION": "Кросплатформавая праграма для прайгравання IPTV з мноствам функцый, такіх як падтрымка плэйлістоў m3u і m3u8, фаварыты, ТБ-гід, ТБ-архіў/даганянне і іншае.",
|
||||
"VERSION": "Версія",
|
||||
"GITHUB_TOOLTIP": "Рэпазітар праграмы на GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Падтрымаць распрацоўшчыка",
|
||||
"TWITTER_TOOLTIP": "Падзяліцца ў Twitter"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Даступна абнаўленне",
|
||||
"REFRESH": "Абнавіць",
|
||||
"XTREAM": {
|
||||
"RATING": "Рэйтынг",
|
||||
"RELEASE_DATE": "Дата выпуску",
|
||||
"ACTORS": "Акцёры",
|
||||
"PLAY": "Прайграць",
|
||||
"GENRE": "Жанр",
|
||||
"DURATION": "Працягласць",
|
||||
"COUNTRY": "Краіна",
|
||||
"NAME": "Назва",
|
||||
"DIRECTOR": "Рэжысёр",
|
||||
"CAST": "Акцёрскі склад",
|
||||
"EPISODE_RUN_TIME": "Працягласць эпізоду",
|
||||
"AGE": "Узрост",
|
||||
"EPISODE": "Эпізод",
|
||||
"YEAR": "Год",
|
||||
"YOUTUBE_TRAILER": "Трэйлер на YouTube",
|
||||
"DESCRIPTION": "Апісанне",
|
||||
"KINOPOISK_RATING": "Рэйтынг на Кінапоіск",
|
||||
"IMDB_RATING": "Рэйтынг на IMDB"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Усе катэгорыі",
|
||||
"ADD_TO_FAVORITES": "Дадаць у выбранае",
|
||||
"REMOVE_FROM_FAVORITES": "Выдаліць з выбранага",
|
||||
"MY_FAVORITES": "Выбранае",
|
||||
"COPY_STREAM_URL": "Капіраваць URL-адрас патоку",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "Выдаліць",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Тэрмін дзеяння ўліковага запісу скончыўся",
|
||||
"DESCRIPTION": "Тэрмін дзеяння гэтага ўліковага запісу скончыўся. \nКалі ласка, праверце ўліковыя дадзеныя ў наладах плэйліста або выдаліце яго."
|
||||
},
|
||||
"HOME": "На галоўную",
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Пустая катэгорыя",
|
||||
"DESCRIPTION": "У гэтай катэгорыі няма кантэнту. Выберыце іншую катэгорыю або зменіце тып кантэнту."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Несанкцыянаваны",
|
||||
"DESCRIPTION": "Калі ласка, праверце ўліковыя дадзеныя ў наладах плэйліста або выдаліце іх."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Партал не знойдзены"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Нешта пайшло не так",
|
||||
"DESCRIPTION": "Невядомая памылка. Паўтарыце спробу пазней."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Налады плэйліста"
|
||||
"ABOUT": {
|
||||
"TITLE": "Аб праграме",
|
||||
"DESCRIPTION": "Кросплатформавая праграма для прайгравання IPTV з мноствам функцый, такіх як падтрымка плэйлістоў m3u і m3u8, фаварыты, ТБ-гід, ТБ-архіў/даганянне і іншае.",
|
||||
"VERSION": "Версія",
|
||||
"GITHUB_TOOLTIP": "Рэпазітар праграмы на GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Падтрымаць распрацоўшчыка",
|
||||
"TWITTER_TOOLTIP": "Падзяліцца ў Twitter"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL-адрас патоку быў скапіяваны ў буфер абмену.",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Нічога не знойдзена, паспрабуйце змяніць пошукавы запыт"
|
||||
"UPDATE_AVAILABLE": "Даступна абнаўленне",
|
||||
"REFRESH": "Абнавіць",
|
||||
"XTREAM": {
|
||||
"RATING": "Рэйтынг",
|
||||
"RELEASE_DATE": "Дата выпуску",
|
||||
"ACTORS": "Акцёры",
|
||||
"PLAY": "Прайграць",
|
||||
"GENRE": "Жанр",
|
||||
"DURATION": "Працягласць",
|
||||
"COUNTRY": "Краіна",
|
||||
"NAME": "Назва",
|
||||
"DIRECTOR": "Рэжысёр",
|
||||
"CAST": "Акцёрскі склад",
|
||||
"EPISODE_RUN_TIME": "Працягласць эпізоду",
|
||||
"AGE": "Узрост",
|
||||
"EPISODE": "Эпізод",
|
||||
"YEAR": "Год",
|
||||
"YOUTUBE_TRAILER": "Трэйлер на YouTube",
|
||||
"DESCRIPTION": "Апісанне",
|
||||
"KINOPOISK_RATING": "Рэйтынг на Кінапоіск",
|
||||
"IMDB_RATING": "Рэйтынг на IMDB"
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Выдалена з выбранага",
|
||||
"ADDED_TO_FAVORITES": "Дададзена ў выбранае"
|
||||
},
|
||||
"INFORMATION": "Інфармацыя"
|
||||
}
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Усе катэгорыі",
|
||||
"ADD_TO_FAVORITES": "Дадаць у выбранае",
|
||||
"REMOVE_FROM_FAVORITES": "Выдаліць з выбранага",
|
||||
"MY_FAVORITES": "Выбранае",
|
||||
"COPY_STREAM_URL": "Капіраваць URL-адрас патоку",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "Выдаліць",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Тэрмін дзеяння ўліковага запісу скончыўся",
|
||||
"DESCRIPTION": "Тэрмін дзеяння гэтага ўліковага запісу скончыўся. \nКалі ласка, праверце ўліковыя дадзеныя ў наладах плэйліста або выдаліце яго."
|
||||
},
|
||||
"HOME": "На галоўную",
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Пустая катэгорыя",
|
||||
"DESCRIPTION": "У гэтай катэгорыі няма кантэнту. Выберыце іншую катэгорыю або зменіце тып кантэнту."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Несанкцыянаваны",
|
||||
"DESCRIPTION": "Калі ласка, праверце ўліковыя дадзеныя ў наладах плэйліста або выдаліце іх."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Партал не знойдзены"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Нешта пайшло не так",
|
||||
"DESCRIPTION": "Невядомая памылка. Паўтарыце спробу пазней."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Налады плэйліста"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL-адрас патоку быў скапіяваны ў буфер абмену.",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Нічога не знойдзена, паспрабуйце змяніць пошукавы запыт"
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Выдалена з выбранага",
|
||||
"ADDED_TO_FAVORITES": "Дададзена ў выбранае"
|
||||
},
|
||||
"INFORMATION": "Інфармацыя"
|
||||
}
|
||||
@@ -58,6 +58,14 @@
|
||||
"ADD_FIRST": "Bitte fügen Sie eine neue Playlist hinzu",
|
||||
"CHANNELS": "TV-Sender",
|
||||
"NO_PLAYLISTS": "Noch keine Playlisten hinzugefügt",
|
||||
"WELCOME_TITLE": "Willkommen bei IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Beginnen Sie Ihre Streaming-Reise, indem Sie Ihre erste Playlist hinzufügen. Verbinden Sie sich mit Ihrem bevorzugten IPTV-Dienst und genießen Sie Live-TV, Filme und Serien.",
|
||||
"ADD_YOUR_FIRST": "Ihre erste Playlist hinzufügen",
|
||||
"FEATURE_M3U": "M3U/M3U8-Dateien",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Stalker Portal",
|
||||
"NO_RESULTS_TITLE": "Keine Playlisten gefunden",
|
||||
"NO_RESULTS_DESCRIPTION": "Keine Playlisten entsprechen Ihrer Suche. Versuchen Sie, Ihre Suchbegriffe anzupassen oder löschen Sie den Filter, um alle Playlisten anzuzeigen.",
|
||||
"REMOVE": "Playlist entfernen",
|
||||
"SHOW_DETAILS": "Details anzeigen",
|
||||
"SEARCH_PLAYLISTS": "Suche nach Playlisten",
|
||||
@@ -185,7 +193,7 @@
|
||||
"REFRESH_EPG": "TV-Programm aktualisieren",
|
||||
"SAVE_CHANGES": "Änderungen speichern",
|
||||
"SUBTITLE": "Die App-Einstellungen ändern",
|
||||
"TITLE": "Einstellungen / IPTVnator",
|
||||
"TITLE": "Einstellungen",
|
||||
"VERSION": "Version",
|
||||
"VIDEO_PLAYER_LABEL": "Video player",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Option auswählen",
|
||||
|
||||
@@ -15,6 +15,14 @@
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "No playlists were added",
|
||||
"ADD_FIRST": "Please add your first playlist",
|
||||
"WELCOME_TITLE": "Welcome to IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Start your streaming journey by adding your first playlist. Connect to your favorite IPTV service and enjoy live TV, movies, and series.",
|
||||
"ADD_YOUR_FIRST": "Add Your First Playlist",
|
||||
"FEATURE_M3U": "M3U/M3U8 Files",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Stalker Portal",
|
||||
"NO_RESULTS_TITLE": "No playlists found",
|
||||
"NO_RESULTS_DESCRIPTION": "No playlists match your search. Try adjusting your search terms or clear the filter to see all playlists.",
|
||||
"ADDED_VIA_URL": "Added via URL upload. URL:",
|
||||
"ADDED_VIA_FILE": "Added via file upload",
|
||||
"XTREAM_PLAYLIST": "Xtream playlist",
|
||||
@@ -45,7 +53,9 @@
|
||||
"PASSWORD": "Password",
|
||||
"MAC_ADDRESS": "Mac Address",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Playlist was exported successfully.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Error: Playlist export failed."
|
||||
"PLAYLIST_EXPORT_ERROR": "Error: Playlist export failed.",
|
||||
"COPY_URL": "Copy URL to clipboard",
|
||||
"URL_COPIED": "URL copied to clipboard"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Remove playlist",
|
||||
@@ -115,7 +125,7 @@
|
||||
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Settings / IPTVnator",
|
||||
"TITLE": "Settings",
|
||||
"SUBTITLE": "Change the configuration of the application",
|
||||
"DESCRIPTION": "Please adapt the options from the list below and confirm with the save changes button",
|
||||
"EPG_URL_LABEL": "EPG Url (*.xml or *.xml.gz)",
|
||||
@@ -168,6 +178,9 @@
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Enable remote control of the application.",
|
||||
"REMOTE_CONTROL_PORT": "Remote control port",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Port used for remote control of the application. Port 8765 is used by default.",
|
||||
"REMOTE_CONTROL_URL": "Remote control URL",
|
||||
"REMOTE_CONTROL_URL_DESCRIPTION": "Access the remote control from another device on the same network.",
|
||||
"SHOW_QR_CODE": "Show QR code",
|
||||
"PORT_REQUIRED": "Port is required",
|
||||
"PORT_MIN": "Port must be at least 1",
|
||||
"PORT_MAX": "Port must be at most 65535",
|
||||
|
||||
+266
-258
@@ -1,268 +1,276 @@
|
||||
{
|
||||
"CLOSE": "Cerrar",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Selecciona una lista de reproducción del listado o añade una nueva lista al cargar archivos o por una url",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Listas añadidas recientemente",
|
||||
"FILE_UPLOAD": "Añadir y cargar archivo",
|
||||
"URL_UPLOAD": "Añadir por url",
|
||||
"TEXT_IMPORT": "Importar como texto",
|
||||
"STALKER_PORTAL_IMPORT": "Agregar portal de acosador"
|
||||
"CLOSE": "Cerrar",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Selecciona una lista de reproducción del listado o añade una nueva lista al cargar archivos o por una url",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Listas añadidas recientemente",
|
||||
"FILE_UPLOAD": "Añadir y cargar archivo",
|
||||
"URL_UPLOAD": "Añadir por url",
|
||||
"TEXT_IMPORT": "Importar como texto",
|
||||
"STALKER_PORTAL_IMPORT": "Agregar portal de acosador"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "No se añadieron listas de reproducción",
|
||||
"ADD_FIRST": "Por favor, añade tu primera lista de la otra pestaña",
|
||||
"WELCOME_TITLE": "Bienvenido a IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Comience su viaje de streaming agregando su primera lista de reproducción. Conéctese a su servicio IPTV favorito y disfrute de TV en vivo, películas y series.",
|
||||
"ADD_YOUR_FIRST": "Agregar su primera lista",
|
||||
"FEATURE_M3U": "Archivos M3U/M3U8",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Portal Stalker",
|
||||
"NO_RESULTS_TITLE": "No se encontraron listas",
|
||||
"NO_RESULTS_DESCRIPTION": "Ninguna lista coincide con su búsqueda. Intente ajustar los términos de búsqueda o borrar el filtro para ver todas las listas.",
|
||||
"ADDED_VIA_URL": "Añadido por carga de URL. URL:",
|
||||
"ADDED_VIA_FILE": "Añadido por carga de archivo",
|
||||
"CHANNELS": "Canales",
|
||||
"ADDED": "Añadido",
|
||||
"SHOW_DETAILS": "Mostrar detalles de la lista",
|
||||
"REMOVE": "Quitar lista",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Detalles de la lista",
|
||||
"TITLE": "Título",
|
||||
"FROM_URL": "Añadida desde la URL",
|
||||
"IMPORT_DATE": "Fecha de importación",
|
||||
"CHANNELS": "Número de canales",
|
||||
"CLOSE": "Cerrar",
|
||||
"SAVE": "Guardar",
|
||||
"USER_AGENT": "Agente de usuario",
|
||||
"ORIGINAL_FILENAME": "Nombre de archivo original",
|
||||
"FILE_PATH": "Ruta de archivo",
|
||||
"UPDATE_FAILED": "Última actualización de la lista fallida",
|
||||
"AUTO_UPDATE": "Auto-actualizar",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Si la función de auto-actualizar se activa, la lista de reproducción se refrescará automáticamente cada vez que se inicia la app.",
|
||||
"CUSTOM_USER_AGENT": "Algunos proveedores de IPTV necesitan especificar el agente de usuario para reproducir su lista de reproducción.",
|
||||
"PASSWORD": "Contraseña",
|
||||
"SERVER_URL": "URL del servidor",
|
||||
"USERNAME": "Nombre de usuario",
|
||||
"MAC_ADDRESS": "Dirección MAC"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Quitar lista de reproducción",
|
||||
"MESSAGE": "¿Estás seguro de quitar esta lista de reproducción por completo?"
|
||||
},
|
||||
"UPDATED": "Actualizado",
|
||||
"REFRESH": "Actualizar lista",
|
||||
"GLOBAL_FAVORITES": "Favoritos globales",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Lista autogenerada con los favoritos agregados de todas las listas",
|
||||
"MY_PLAYLISTS": "Mis listas",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "¡Éxito! La lista de reproducción se actualizó correctamente.",
|
||||
"STALKER_PORTAL": "Stalker Portal"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arrastre & suelte archivos aquí",
|
||||
"OR": "o",
|
||||
"CHOOSE_PLAYLIST": "Escoga una lista de reproducción",
|
||||
"REJECTED": "El archivo fue rechazado, formato de archivo no compatible {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Lista de reproducción (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Añadir lista"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Inserte la playlist m3u(8) como texto",
|
||||
"BUTTON_LABEL": "Importar"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Agregar",
|
||||
"TITLE": "Título",
|
||||
"SERVER_URL": "URL del servidor",
|
||||
"MAC_ADDRESS": "Dirección Mac",
|
||||
"URL_VALIDATION_ERROR": "Debe ser una URL válida con protocolo (por ejemplo, http://example.com/c o https://example.com/stalker_portal/c)."
|
||||
},
|
||||
"FILTER_BY_TYPE": "Filtrar por tipo",
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"FILTER_BY_NAME": "Filtrar por nombre",
|
||||
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:",
|
||||
"XTREAM_PLAYLIST": {
|
||||
"URL_VALIDATION_ERROR": "Debe ser una URL válida con protocolo (por ejemplo, http://example.com o https://example.com:4324)."
|
||||
}
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "No se añadieron listas de reproducción",
|
||||
"ADD_FIRST": "Por favor, añade tu primera lista de la otra pestaña",
|
||||
"ADDED_VIA_URL": "Añadido por carga de URL. URL:",
|
||||
"ADDED_VIA_FILE": "Añadido por carga de archivo",
|
||||
"CHANNELS": "Canales",
|
||||
"ADDED": "Añadido",
|
||||
"SHOW_DETAILS": "Mostrar detalles de la lista",
|
||||
"REMOVE": "Quitar lista",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Detalles de la lista",
|
||||
"TITLE": "Título",
|
||||
"FROM_URL": "Añadida desde la URL",
|
||||
"IMPORT_DATE": "Fecha de importación",
|
||||
"CHANNELS": "Número de canales",
|
||||
"CLOSE": "Cerrar",
|
||||
"SAVE": "Guardar",
|
||||
"USER_AGENT": "Agente de usuario",
|
||||
"ORIGINAL_FILENAME": "Nombre de archivo original",
|
||||
"FILE_PATH": "Ruta de archivo",
|
||||
"UPDATE_FAILED": "Última actualización de la lista fallida",
|
||||
"AUTO_UPDATE": "Auto-actualizar",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Si la función de auto-actualizar se activa, la lista de reproducción se refrescará automáticamente cada vez que se inicia la app.",
|
||||
"CUSTOM_USER_AGENT": "Algunos proveedores de IPTV necesitan especificar el agente de usuario para reproducir su lista de reproducción.",
|
||||
"PASSWORD": "Contraseña",
|
||||
"SERVER_URL": "URL del servidor",
|
||||
"USERNAME": "Nombre de usuario",
|
||||
"MAC_ADDRESS": "Dirección MAC"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Quitar lista de reproducción",
|
||||
"MESSAGE": "¿Estás seguro de quitar esta lista de reproducción por completo?"
|
||||
},
|
||||
"UPDATED": "Actualizado",
|
||||
"REFRESH": "Actualizar lista",
|
||||
"GLOBAL_FAVORITES": "Global favorites",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Lista autogenerada con los favoritos agregados de todas las listas",
|
||||
"MY_PLAYLISTS": "Mis listas",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "¡Éxito! La lista de reproducción se actualizó correctamente.",
|
||||
"STALKER_PORTAL": ""
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ajustes",
|
||||
"SUBTITLE": "Cambiar la configuración de la aplicación",
|
||||
"DESCRIPTION": "Por favor, adapta las opciones de la siguiente lista y confirma con un botón de guardar",
|
||||
"EPG_URL_LABEL": "Url de la EPG (*.xml o *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Ingresa una URL",
|
||||
"REFRESH_EPG": "Actualizar EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Reproductor de vídeo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecciona una opción",
|
||||
"VERSION": "Versión",
|
||||
"SAVE_CHANGES": "Guardar cambios",
|
||||
"BACK_TO_HOME": "Volver al inicio",
|
||||
"NEW_VERSION_AVAILABLE": "Hay una nueva versión disponible",
|
||||
"LATEST_VERSION": "Estás usando la versión reciente",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SETTINGS_SAVED": "¡Completado! La configuración se guardó.",
|
||||
"THEME": "Tema visual",
|
||||
"SHOW_CAPTIONS": "Mostrar subtítulos",
|
||||
"REMOVE_ALL": "Eliminar lista de reproducción",
|
||||
"REMOVE_ALL_BUTTON": "Eliminar",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Eliminar todas las listas de reproducción",
|
||||
"MESSAGE": "¿Estás seguro de que deseas eliminar todas las listas de reproducción de la aplicación?"
|
||||
},
|
||||
"LANGUAGE_DESCRIPTION": "Seleccione el idioma de la aplicación",
|
||||
"PLAYLISTS_REMOVED": "Se eliminaron todas las listas de reproducción.",
|
||||
"VERSION_DESCRIPTION": "Versión actual de la aplicación.",
|
||||
"MPV_PLAYER_PATH": "ruta del reproductor mpv",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Mostrar u ocultar subtítulos por defecto",
|
||||
"IMPORT_DATA": "Importar",
|
||||
"ADD_EPG_SOURCE": "Agregar fuente EPG",
|
||||
"IMPORT_ERROR": "Error de importación, intente con otro archivo.",
|
||||
"EPG_URL_ERROR": "El valor no es una URL válida.",
|
||||
"EXPORT_DATA": "Exportar",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Seleccionar reproductor de vídeo predeterminado",
|
||||
"IMPORT_EXPORT_DATA": "Importar/exportar listas de reproducción",
|
||||
"VLC_PLAYER_PATH_LABEL": "ruta VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Establezca la ruta al reproductor VLC en su sistema. \nUtilizará la ruta proporcionada a un binario VLC en lugar de la ruta predeterminada para nuestro sistema.",
|
||||
"THEME_DESCRIPTION": "Seleccione el tema visual de la aplicación.",
|
||||
"EPG_NOTE": "Actualmente, EPG está disponible sólo en la versión electrónica de IPTVnator.",
|
||||
"VLC_PLAYER_PATH": "Ruta del reproductor VLC",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exporte o importe listas de reproducción en el formato JSON utilizado dentro de la aplicación.",
|
||||
"EPG_NOTE_URL_TEXT": "Compruébalo aquí",
|
||||
"MPV_PLAYER_PATH_LABEL": "camino monovolumen"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arrastre & suelte archivos aquí",
|
||||
"OR": "o",
|
||||
"CHOOSE_PLAYLIST": "Escoga una lista de reproducción",
|
||||
"REJECTED": "El archivo fue rechazado, formato de archivo no compatible {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Tema oscuro",
|
||||
"LIGHT_THEME": "Tema claro"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Lista de reproducción (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Añadir lista"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Buscar canal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Carga o selecciona una lista de reproducción",
|
||||
"ALL_CHANNELS": "Todos los canales",
|
||||
"GROUPS": "Grupos",
|
||||
"UNGROUPED": "Desagrupado",
|
||||
"UNNAMED_CHANNEL": "Canal sin nombre",
|
||||
"FAVORITES": "Favoritos",
|
||||
"NO_FAVORITES": "Sin favoritos",
|
||||
"USE_STAR_TO_FAVORITE": "Por favor, use el ícono de la 'estrella' para añadir canales a la lista.",
|
||||
"REMOVE_FAVORITE": "Quitar de favoritos",
|
||||
"FAVORITES_UPDATED": "¡Se actualizaron los favoritos!"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Inserte la playlist m3u(8) como texto",
|
||||
"BUTTON_LABEL": "Importar"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Abrir lista de canales",
|
||||
"TOGGLE_FAVORITE_FLAG": "Alternar bandera favorita",
|
||||
"OPEN_EPG_LIST": "Abrir lista EPG",
|
||||
"OPEN_MULTI_EPG": "Abrir vista Multi-EPG"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Agregar",
|
||||
"TITLE": "Título",
|
||||
"SERVER_URL": "URL del servidor",
|
||||
"MAC_ADDRESS": "Dirección Mac",
|
||||
"URL_VALIDATION_ERROR": "Debe ser una URL válida con protocolo (por ejemplo, http://example.com/c o https://example.com/stalker_portal/c)."
|
||||
"EPG": {
|
||||
"NEXT_DAY": "Día siguiente",
|
||||
"PREVIOUS_DAY": "Día anterior",
|
||||
"LIVE_NOW": "Ahora en vivo",
|
||||
"LIVE_STREAM": "Transmisión en vivo",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift está disponible, clic para reproducir",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Vaya, no está disponible la EPG de esa fecha",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Vaya, no está disponible la EPG del canal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Por favor añada/cargue la url de la lista EPG en los ajustes de la app.",
|
||||
"FETCH_EPG": "Obteniendo datos de EPG...",
|
||||
"ERROR": "¡Vaya! Esta EPG no se pudo cargar.",
|
||||
"DOWNLOAD_SUCCESS": "La EPG se ha descargado correctamente.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Detalles sobre el programa de TV",
|
||||
"TITLE": "Título",
|
||||
"CATEGORY": "Género",
|
||||
"PARENTAL_RATING_SYSTEM": "Sistema de calificación de contenidos televisivos",
|
||||
"DESCRIPTION": "Descripción",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SHOW_PROGRAM_DETAILS": "Mostrar detalles del programa"
|
||||
}
|
||||
},
|
||||
"FILTER_BY_TYPE": "Filtrar por tipo",
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"FILTER_BY_NAME": "Filtrar por nombre",
|
||||
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:",
|
||||
"XTREAM_PLAYLIST": {
|
||||
"URL_VALIDATION_ERROR": "Debe ser una URL válida con protocolo (por ejemplo, http://example.com o https://example.com:4324)."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ajustes / IPTVnator",
|
||||
"SUBTITLE": "Cambiar la configuración de la aplicación",
|
||||
"DESCRIPTION": "Por favor, adapta las opciones de la siguiente lista y confirma con un botón de guardar",
|
||||
"EPG_URL_LABEL": "Url de la EPG (*.xml o *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Ingresa una URL",
|
||||
"REFRESH_EPG": "Actualizar EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Reproductor de vídeo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecciona una opción",
|
||||
"VERSION": "Versión",
|
||||
"SAVE_CHANGES": "Guardar cambios",
|
||||
"BACK_TO_HOME": "Volver al inicio",
|
||||
"NEW_VERSION_AVAILABLE": "Hay una nueva versión disponible",
|
||||
"LATEST_VERSION": "Estás usando la versión reciente",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SETTINGS_SAVED": "¡Completado! La configuración se guardó.",
|
||||
"THEME": "Tema visual",
|
||||
"SHOW_CAPTIONS": "Mostrar subtítulos",
|
||||
"REMOVE_ALL": "Eliminar lista de reproducción",
|
||||
"REMOVE_ALL_BUTTON": "Eliminar",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Eliminar todas las listas de reproducción",
|
||||
"MESSAGE": "¿Estás seguro de que deseas eliminar todas las listas de reproducción de la aplicación?"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"LANGUAGE_DESCRIPTION": "Seleccione el idioma de la aplicación",
|
||||
"PLAYLISTS_REMOVED": "Se eliminaron todas las listas de reproducción.",
|
||||
"VERSION_DESCRIPTION": "Versión actual de la aplicación.",
|
||||
"MPV_PLAYER_PATH": "ruta del reproductor mpv",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Mostrar u ocultar subtítulos por defecto",
|
||||
"IMPORT_DATA": "Importar",
|
||||
"ADD_EPG_SOURCE": "Agregar fuente EPG",
|
||||
"IMPORT_ERROR": "Error de importación, intente con otro archivo.",
|
||||
"EPG_URL_ERROR": "El valor no es una URL válida.",
|
||||
"EXPORT_DATA": "Exportar",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Seleccionar reproductor de vídeo predeterminado",
|
||||
"IMPORT_EXPORT_DATA": "Importar/exportar listas de reproducción",
|
||||
"VLC_PLAYER_PATH_LABEL": "ruta VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Establezca la ruta al reproductor VLC en su sistema. \nUtilizará la ruta proporcionada a un binario VLC en lugar de la ruta predeterminada para nuestro sistema.",
|
||||
"THEME_DESCRIPTION": "Seleccione el tema visual de la aplicación.",
|
||||
"EPG_NOTE": "Actualmente, EPG está disponible sólo en la versión electrónica de IPTVnator.",
|
||||
"VLC_PLAYER_PATH": "Ruta del reproductor VLC",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exporte o importe listas de reproducción en el formato JSON utilizado dentro de la aplicación.",
|
||||
"EPG_NOTE_URL_TEXT": "Compruébalo aquí",
|
||||
"MPV_PLAYER_PATH_LABEL": "camino monovolumen"
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Tema oscuro",
|
||||
"LIGHT_THEME": "Tema claro"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Buscar canal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Carga o selecciona una lista de reproducción",
|
||||
"ALL_CHANNELS": "Todos los canales",
|
||||
"GROUPS": "Grupos",
|
||||
"UNGROUPED": "Desagrupado",
|
||||
"UNNAMED_CHANNEL": "Canal sin nombre",
|
||||
"FAVORITES": "Favoritos",
|
||||
"NO_FAVORITES": "Sin favoritos",
|
||||
"USE_STAR_TO_FAVORITE": "Por favor, use el ícono de la 'estrella' para añadir canales a la lista.",
|
||||
"REMOVE_FAVORITE": "Quitar de favoritos",
|
||||
"FAVORITES_UPDATED": "¡Se actualizaron los favoritos!"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Abrir lista de canales",
|
||||
"TOGGLE_FAVORITE_FLAG": "Alternar bandera favorita",
|
||||
"OPEN_EPG_LIST": "Abrir lista EPG",
|
||||
"OPEN_MULTI_EPG": "Abrir vista Multi-EPG"
|
||||
},
|
||||
"EPG": {
|
||||
"NEXT_DAY": "Día siguiente",
|
||||
"PREVIOUS_DAY": "Día anterior",
|
||||
"LIVE_NOW": "Ahora en vivo",
|
||||
"LIVE_STREAM": "Transmisión en vivo",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift está disponible, clic para reproducir",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Vaya, no está disponible la EPG de esa fecha",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Vaya, no está disponible la EPG del canal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Por favor añada/cargue la url de la lista EPG en los ajustes de la app.",
|
||||
"FETCH_EPG": "Obteniendo datos de EPG...",
|
||||
"ERROR": "¡Vaya! Esta EPG no se pudo cargar.",
|
||||
"DOWNLOAD_SUCCESS": "La EPG se ha descargado correctamente.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Detalles sobre el programa de TV",
|
||||
"TITLE": "Título",
|
||||
"CATEGORY": "Género",
|
||||
"PARENTAL_RATING_SYSTEM": "Sistema de calificación de contenidos televisivos",
|
||||
"DESCRIPTION": "Descripción",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SHOW_PROGRAM_DETAILS": "Mostrar detalles del programa"
|
||||
}
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Sí",
|
||||
"NO": "No",
|
||||
"MENU": {
|
||||
"OPEN": "Abrir menú",
|
||||
"SUPPORT_ARIA": "Apoyar IPTVnator en GitHub",
|
||||
"SETTINGS": "Ajustes",
|
||||
"SETTINGS_ARIA": "Abrir ajustes",
|
||||
"BUG_REPORT": "Reportar un bug",
|
||||
"WHAT_IS_NEW": "Novedades",
|
||||
"ABOUT": "Acerca de",
|
||||
"ABOUT_ARIA": "Acerca de la aplicación",
|
||||
"SUPPORT_PROJECT": "Proyecto de apoyo"
|
||||
},
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "Fecha de lanzamiento",
|
||||
"ACTORS": "Actores",
|
||||
"PLAY": "Reproducir",
|
||||
"GENRE": "Género",
|
||||
"DURATION": "Duración",
|
||||
"COUNTRY": "País",
|
||||
"NAME": "Nombre",
|
||||
"DIRECTOR": "Director",
|
||||
"CAST": "Elenco",
|
||||
"RATING": "Clasificación",
|
||||
"AGE": "Edad",
|
||||
"EPISODE": "Episodio",
|
||||
"YEAR": "Año",
|
||||
"YOUTUBE_TRAILER": "Tráiler de YouTube",
|
||||
"DESCRIPTION": "Descripción",
|
||||
"KINOPOISK_RATING": "Calificación de Kinopoisk",
|
||||
"IMDB_RATING": "Calificación IMDB",
|
||||
"EPISODE_RUN_TIME": "Tiempo de ejecución del episodio"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Todas las categorias",
|
||||
"ADD_TO_FAVORITES": "Agregar a los favoritos",
|
||||
"REMOVE_FROM_FAVORITES": "Quitar de favoritos",
|
||||
"MY_FAVORITES": "Mis favoritos",
|
||||
"COPY_STREAM_URL": "Copiar URL de transmisión",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "Borrar",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Cuenta caducada",
|
||||
"DESCRIPTION": "Esta cuenta ha caducado. \nVerifique las credenciales en la configuración de la lista de reproducción o elimínelas."
|
||||
},
|
||||
"HOME": "Hogar",
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "categoría vacía",
|
||||
"DESCRIPTION": "Esta categoría no tiene contenido, seleccione otra categoría o cambie el tipo de contenido"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "No autorizado",
|
||||
"DESCRIPTION": "Verifique las credenciales en la configuración de la lista de reproducción o elimínelas."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "algo salió mal",
|
||||
"DESCRIPTION": "Error desconocido, inténtalo de nuevo más tarde."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Configuración de lista de reproducción"
|
||||
"YES": "Sí",
|
||||
"NO": "No",
|
||||
"MENU": {
|
||||
"OPEN": "Abrir menú",
|
||||
"SUPPORT_ARIA": "Apoyar IPTVnator en GitHub",
|
||||
"SETTINGS": "Ajustes",
|
||||
"SETTINGS_ARIA": "Abrir ajustes",
|
||||
"BUG_REPORT": "Reportar un bug",
|
||||
"WHAT_IS_NEW": "Novedades",
|
||||
"ABOUT": "Acerca de",
|
||||
"ABOUT_ARIA": "Acerca de la aplicación",
|
||||
"SUPPORT_PROJECT": "Proyecto de apoyo"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL de transmisión copiada al portapapeles",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "No se encontró nada, intenta cambiar tu solicitud de búsqueda."
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "Fecha de lanzamiento",
|
||||
"ACTORS": "Actores",
|
||||
"PLAY": "Reproducir",
|
||||
"GENRE": "Género",
|
||||
"DURATION": "Duración",
|
||||
"COUNTRY": "País",
|
||||
"NAME": "Nombre",
|
||||
"DIRECTOR": "Director",
|
||||
"CAST": "Elenco",
|
||||
"RATING": "Clasificación",
|
||||
"AGE": "Edad",
|
||||
"EPISODE": "Episodio",
|
||||
"YEAR": "Año",
|
||||
"YOUTUBE_TRAILER": "Tráiler de YouTube",
|
||||
"DESCRIPTION": "Descripción",
|
||||
"KINOPOISK_RATING": "Calificación de Kinopoisk",
|
||||
"IMDB_RATING": "Calificación IMDB",
|
||||
"EPISODE_RUN_TIME": "Tiempo de ejecución del episodio"
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Eliminado de favoritos",
|
||||
"ADDED_TO_FAVORITES": "Añadido a favoritos"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "Acerca de IPTVnator",
|
||||
"VERSION": "Versión",
|
||||
"TWITTER_TOOLTIP": "Compartir en Twitter",
|
||||
"GITHUB_TOOLTIP": "Repositorio ITPVnator en GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee"
|
||||
},
|
||||
"REFRESH": "Actualizar",
|
||||
"UPDATE_AVAILABLE": "Actualización disponible"
|
||||
}
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Todas las categorias",
|
||||
"ADD_TO_FAVORITES": "Agregar a los favoritos",
|
||||
"REMOVE_FROM_FAVORITES": "Quitar de favoritos",
|
||||
"MY_FAVORITES": "Mis favoritos",
|
||||
"COPY_STREAM_URL": "Copiar URL de transmisión",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "Borrar",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Cuenta caducada",
|
||||
"DESCRIPTION": "Esta cuenta ha caducado. \nVerifique las credenciales en la configuración de la lista de reproducción o elimínelas."
|
||||
},
|
||||
"HOME": "Hogar",
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "categoría vacía",
|
||||
"DESCRIPTION": "Esta categoría no tiene contenido, seleccione otra categoría o cambie el tipo de contenido"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "No autorizado",
|
||||
"DESCRIPTION": "Verifique las credenciales en la configuración de la lista de reproducción o elimínelas."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "algo salió mal",
|
||||
"DESCRIPTION": "Error desconocido, inténtalo de nuevo más tarde."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Configuración de lista de reproducción"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL de transmisión copiada al portapapeles",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "No se encontró nada, intenta cambiar tu solicitud de búsqueda."
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Eliminado de favoritos",
|
||||
"ADDED_TO_FAVORITES": "Añadido a favoritos"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "Acerca de IPTVnator",
|
||||
"VERSION": "Versión",
|
||||
"TWITTER_TOOLTIP": "Compartir en Twitter",
|
||||
"GITHUB_TOOLTIP": "Repositorio ITPVnator en GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee"
|
||||
},
|
||||
"REFRESH": "Actualizar",
|
||||
"UPDATE_AVAILABLE": "Actualización disponible"
|
||||
}
|
||||
+351
-259
@@ -1,267 +1,359 @@
|
||||
{
|
||||
"CLOSE": "Fermer",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Choisissez une liste de lecture, ou ajoutez en une nouvelle via un transfert de fichier ou via une URL",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Récemment ajoutés",
|
||||
"FILE_UPLOAD": "Ajouter un fichier",
|
||||
"URL_UPLOAD": "Ajouter une URL",
|
||||
"TEXT_IMPORT": "Importer sous forme de texte",
|
||||
"STALKER_PORTAL_IMPORT": "Ajouter un portail de traqueur"
|
||||
"CLOSE": "Fermer",
|
||||
"PLAYLISTS": "Listes de lecture",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Choisissez une liste de lecture, ou ajoutez en une nouvelle via un transfert de fichier ou via une URL",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Récemment ajoutés",
|
||||
"FILE_UPLOAD": "Ajouter un fichier",
|
||||
"URL_UPLOAD": "Ajouter une URL",
|
||||
"TEXT_IMPORT": "Importer sous forme de texte",
|
||||
"XTREME_IMPORT": "Ajouter Xtreme Code",
|
||||
"STALKER_PORTAL_IMPORT": "Ajouter un portail Stalker"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Aucune liste de lecture n'a été ajoutée",
|
||||
"ADD_FIRST": "Veuillez ajouter votre première liste de lecture depuis un autre onglet",
|
||||
"WELCOME_TITLE": "Bienvenue sur IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Commencez votre voyage de streaming en ajoutant votre première liste de lecture. Connectez-vous à votre service IPTV préféré et profitez de la télévision en direct, des films et des séries.",
|
||||
"ADD_YOUR_FIRST": "Ajouter votre première liste",
|
||||
"FEATURE_M3U": "Fichiers M3U/M3U8",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Portail Stalker",
|
||||
"NO_RESULTS_TITLE": "Aucune liste trouvée",
|
||||
"NO_RESULTS_DESCRIPTION": "Aucune liste ne correspond à votre recherche. Essayez d'ajuster vos termes de recherche ou effacez le filtre pour voir toutes les listes.",
|
||||
"ADDED_VIA_URL": "Ajouté par URL. URL :",
|
||||
"ADDED_VIA_FILE": "Ajouté par transfert de fichier",
|
||||
"XTREAM_PLAYLIST": "Liste Xtream",
|
||||
"STALKER_PORTAL": "Portail Stalker",
|
||||
"CHANNELS": "Chaînes",
|
||||
"ADDED": "Ajouté",
|
||||
"SHOW_DETAILS": "Afficher les détails de la liste de lecture",
|
||||
"REMOVE": "Retirer la liste de lecture",
|
||||
"SEARCH_PLAYLISTS": "Rechercher des listes par titre",
|
||||
"AUTO_REFRESH_ENABLED": "Actualisation automatique activée",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Détails de la liste de lecture",
|
||||
"TITLE": "Titre",
|
||||
"FROM_URL": "Ajouté par URL",
|
||||
"IMPORT_DATE": "Date d'importation",
|
||||
"CHANNELS": "Nombre de chaînes",
|
||||
"CLOSE": "Fermer",
|
||||
"SAVE": "Enregistrer",
|
||||
"USER_AGENT": "Agent utilisateur",
|
||||
"ORIGINAL_FILENAME": "Nom du fichier d'origine",
|
||||
"FILE_PATH": "Chemin du fichier",
|
||||
"UPDATE_FAILED": "Échec de la dernière mise à jour de liste de lecture",
|
||||
"AUTO_UPDATE": "Mise à jour automatique",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Si la fonction de mise à jour automatique est activée, la liste de lecture sera mise à jour automatiquement à chaque fois que l'app est lancée.",
|
||||
"CUSTOM_USER_AGENT": "Certains fournisseurs d'IPTV requièrent un agent utilisateur spécifique afin de lire leur liste de lecture.",
|
||||
"EXPORT_PLAYLIST": "Exporter la liste de lecture en m3u",
|
||||
"SERVER_URL": "URL du serveur",
|
||||
"USERNAME": "Nom d'utilisateur",
|
||||
"PASSWORD": "Mot de passe",
|
||||
"MAC_ADDRESS": "Adresse Mac",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "La liste de lecture a été exportée avec succès.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Erreur : Échec de l'exportation de la liste de lecture.",
|
||||
"COPY_URL": "Copier l'URL dans le presse-papiers",
|
||||
"URL_COPIED": "URL copiée dans le presse-papiers"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Retirer la liste de lecture",
|
||||
"MESSAGE": "Êtes-vous certain de vouloir complètement retirer cette liste de lecture ?",
|
||||
"SUCCESS": "La liste de lecture a été supprimée avec succès"
|
||||
},
|
||||
"UPDATED": "Mis à jour",
|
||||
"REFRESH": "Mettre à jour la liste de lecture",
|
||||
"REFRESH_XTREAM": "Actualiser la liste Xtream depuis le serveur",
|
||||
"REFRESH_XTREAM_DIALOG": {
|
||||
"TITLE": "Actualiser la liste Xtream",
|
||||
"MESSAGE": "Cela supprimera les catégories et flux mis en cache localement et réimportera tout depuis le serveur distant. Vos favoris et éléments récemment consultés seront conservés. Voulez-vous continuer ?",
|
||||
"STARTED": "Actualisation démarrée. Navigation vers la liste de lecture...",
|
||||
"ERROR": "Échec de l'actualisation de la liste de lecture. Veuillez réessayer."
|
||||
},
|
||||
"GLOBAL_FAVORITES": "Favoris globaux",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Liste de lecture générée automatiquement avec les favoris agrégés de toutes les listes",
|
||||
"MY_PLAYLISTS": "Mes listes de lecture",
|
||||
"MY_PLAYLISTS_SUBTITLE": "toutes les listes disponibles",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Succès ! La liste de lecture a été mise à jour avec succès.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Erreur lors de la mise à jour des détails de la liste.",
|
||||
"AUTO_REFRESH_UPDATE_SUCCESS": "Succès ! Les listes de lecture ont été mises à jour avec succès"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Glissez un fichier ici",
|
||||
"OR": "ou",
|
||||
"CHOOSE_PLAYLIST": "Choisir une liste de lecture",
|
||||
"REJECTED": "Le fichier a été rejeté, format de fichier non pris en charge {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL de la liste de lecture (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Ajouter la liste de lecture",
|
||||
"CORS_NOTE": "Remarque : Pour éviter les problèmes CORS, l'application utilise un service proxy CORS public. Si vous souhaitez télécharger une liste avec des données sensibles, il est plus sûr de l'importer depuis un fichier."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Insérer la liste m3u(8) sous forme de texte",
|
||||
"BUTTON_LABEL": "Importer"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Titre de la liste",
|
||||
"SERVER_URL": "URL du serveur",
|
||||
"USERNAME": "Nom d'utilisateur",
|
||||
"PASSWORD": "Mot de passe",
|
||||
"ADD": "Ajouter",
|
||||
"TEST_CREDENTIALS": "Tester les identifiants",
|
||||
"URL_VALIDATION_ERROR": "Doit être une URL valide avec un protocole (par exemple http://example.com ou https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Titre",
|
||||
"MAC_ADDRESS": "Adresse Mac",
|
||||
"SERVER_URL": "URL du serveur",
|
||||
"URL_VALIDATION_ERROR": "Doit être une URL valide avec un protocole (par exemple http://example.com/c ou https://example.com/stalker_portal/c)",
|
||||
"ADD": "Ajouter"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filtrer par nom",
|
||||
"FILTER_BY_TYPE": "Filtrer par type",
|
||||
"SORT_PLAYLISTS": "Trier les listes",
|
||||
"SORT_BY": "Trier par",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Nom (A-Z)",
|
||||
"NAME_DESC": "Nom (Z-A)",
|
||||
"NEWEST": "Date d'ajout (Plus récent)",
|
||||
"OLDEST": "Date d'ajout (Plus ancien)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importé sous forme de texte",
|
||||
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Aucune liste de lecture n'a été ajouté",
|
||||
"ADD_FIRST": "Veuillez ajouter votre première liste de lecture depuis un autre onglet",
|
||||
"ADDED_VIA_URL": "Ajouté par URL. URL :",
|
||||
"ADDED_VIA_FILE": "Ajouté par transfert de fichier",
|
||||
"CHANNELS": "Chaines",
|
||||
"ADDED": "Ajouté",
|
||||
"SHOW_DETAILS": "Afficher les détails de la liste de lecture",
|
||||
"REMOVE": "Retirer la liste de lecture",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Détails de la liste de lecture",
|
||||
"TITLE": "Titre",
|
||||
"FROM_URL": "Ajouté par URL",
|
||||
"IMPORT_DATE": "Date d'importation",
|
||||
"CHANNELS": "Nombre de chaines",
|
||||
"CLOSE": "Fermer",
|
||||
"SAVE": "Enregistrer",
|
||||
"USER_AGENT": "Agent utilisateur",
|
||||
"ORIGINAL_FILENAME": "Nom du fichier d'origine",
|
||||
"FILE_PATH": "Chemin du fichier",
|
||||
"UPDATE_FAILED": "Échec de la dernière mise à jour de liste de lecture",
|
||||
"AUTO_UPDATE": "Mise à jour automatique",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Si la fonction de mise à jour automatique est activée, la liste de lecture sera mise à jour automatiquement à chaque fois que l'app est lancée.",
|
||||
"CUSTOM_USER_AGENT": "Certains fournisseurs d'IPTC requiert un agent utilisateur spécifique afin de lire leur liste de lecture.",
|
||||
"PASSWORD": "Mot de passe",
|
||||
"SERVER_URL": "URL du serveur",
|
||||
"USERNAME": "Nom d'utilisateur",
|
||||
"MAC_ADDRESS": "Adresse Mac"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Retirer la liste de lecture",
|
||||
"MESSAGE": "Êtes-vous certain de vouloir complètement retirer cette liste de lecture ?"
|
||||
},
|
||||
"UPDATED": "Mis à jour",
|
||||
"REFRESH": "Mettre à jour la liste de lecture",
|
||||
"GLOBAL_FAVORITES": "Global favorites",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists",
|
||||
"MY_PLAYLISTS": "My playlists",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Succès! La playlist a été mise à jour avec succès."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Paramètres",
|
||||
"SUBTITLE": "Modifiez la configuration de l'application",
|
||||
"DESCRIPTION": "Changez les options de la liste ci-dessous et enregistrez vos modifications.",
|
||||
"EPG_URL_LABEL": "URL du EPG (*.xml ou *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Saisir une URL",
|
||||
"REFRESH_EPG": "Mise à jour de l'EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Lecteur vidéo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Choisir une option",
|
||||
"VERSION": "Version",
|
||||
"SAVE_CHANGES": "Enregistrer les modifications",
|
||||
"BACK_TO_HOME": "Retourner à l'accueil",
|
||||
"NEW_VERSION_AVAILABLE": "Une nouvelle version est disponible",
|
||||
"LATEST_VERSION": "Vous utilisez la dernière version",
|
||||
"STREAM_FORMAT": "Format du flux",
|
||||
"LANGUAGE": "Langue",
|
||||
"SETTINGS_SAVED": "La configuration a été enregistrée avec succès.",
|
||||
"THEME": "Thème",
|
||||
"SHOW_CAPTIONS": "Afficher les sous-titres",
|
||||
"ADD_EPG_SOURCE": "Ajouter une source EPG",
|
||||
"EPG_URL_ERROR": "La valeur n'est pas une URL valide",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Sélectionnez le lecteur vidéo par défaut",
|
||||
"STREAM_FORMAT_DESCRIPTION": "Sélectionnez le format de flux par défaut (xtream)",
|
||||
"LANGUAGE_DESCRIPTION": "Sélectionnez la langue de l'application",
|
||||
"THEME_DESCRIPTION": "Sélectionnez le thème visuel de l'application",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Afficher ou masquer les sous-titres par défaut",
|
||||
"VERSION_DESCRIPTION": "Version actuelle de l'application",
|
||||
"EPG_NOTE": "Actuellement, l'EPG n'est disponible que dans la version Electron d'IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Vérifiez-le ici",
|
||||
"IMPORT_EXPORT_DATA": "Importer/exporter des listes de lecture",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exportez ou importez des listes au format JSON utilisé dans l'application.",
|
||||
"IMPORT_DATA": "Importer",
|
||||
"EXPORT_DATA": "Exporter",
|
||||
"REMOVE_ALL": "Supprimer les listes de lecture",
|
||||
"REMOVE_ALL_BUTTON": "Supprimer",
|
||||
"REMOVE_ALL_DESCRIPTION": "Cela supprimera toutes les listes de lecture existantes de l'application.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Supprimer toutes les listes",
|
||||
"MESSAGE": "Êtes-vous sûr de vouloir supprimer toutes les listes de l'application ?"
|
||||
},
|
||||
"IMPORT_ERROR": "Erreur d'importation, veuillez essayer avec un autre fichier.",
|
||||
"PLAYLISTS_REMOVED": "Toutes les listes de lecture ont été supprimées.",
|
||||
"MPV_PLAYER_PATH_LABEL": "Chemin mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Définissez le chemin d'accès au lecteur mpv dans votre système. Il utilisera le chemin fourni vers un binaire mpv au lieu de celui trouvé dans $PATH.",
|
||||
"MPV_PLAYER_PATH": "Chemin du lecteur mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "Chemin VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Définissez le chemin d'accès au lecteur VLC dans votre système. Il utilisera le chemin fourni vers un binaire VLC au lieu du chemin par défaut.",
|
||||
"VLC_PLAYER_PATH": "Chemin du lecteur VLC",
|
||||
"REMOTE_CONTROL": "Télécommande",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Activer la télécommande de l'application.",
|
||||
"REMOTE_CONTROL_PORT": "Port de télécommande",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Port utilisé pour la télécommande de l'application. Le port 8765 est utilisé par défaut."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Glissez un fichier ici",
|
||||
"OR": "ou",
|
||||
"CHOOSE_PLAYLIST": "Choisir une liste de lecture",
|
||||
"REJECTED": "Le fichier a été rejeté, format de fichier non pris en charge {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Thème foncé",
|
||||
"LIGHT_THEME": "Thème clair"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL de la liste de lecture (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Ajouter la liste de lecture"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Rechercher une chaîne",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Transférer ou choisir une autre liste de lecture",
|
||||
"ALL_CHANNELS": "Toutes les chaînes",
|
||||
"GROUPS": "Groupes",
|
||||
"UNGROUPED": "Non-groupé",
|
||||
"UNNAMED_CHANNEL": "Chaîne sans nom",
|
||||
"FAVORITES": "Favoris",
|
||||
"NO_FAVORITES": "Aucun favoris",
|
||||
"USE_STAR_TO_FAVORITE": "Veuillez utiliser l'icône 'étoile' pour ajouter une chaîne aux favoris.",
|
||||
"REMOVE_FAVORITE": "Retirer des favoris",
|
||||
"FAVORITES_UPDATED": "Les favoris ont été mis à jour !",
|
||||
"SORT_BY": "Trier par",
|
||||
"SORT_BY_DATE": "Trier par date d'ajout (Plus récent)",
|
||||
"SORT_BY_RATING": "Trier par note",
|
||||
"SORT_BY_NAME": "Trier par nom (A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Insert m3u(8) playlist as text",
|
||||
"BUTTON_LABEL": "Import"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Ouvrir la liste des chaînes",
|
||||
"TOGGLE_FAVORITE_FLAG": "Basculer le statut de favoris",
|
||||
"OPEN_EPG_LIST": "Ouvrir la liste EPG",
|
||||
"OPEN_MULTI_EPG": "Ouvrir la vue Multi-EPG",
|
||||
"SHOW_INFO": "Afficher les infos du programme (Appuyez sur I)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Ajouter",
|
||||
"TITLE": "Titre",
|
||||
"SERVER_URL": "URL du serveur",
|
||||
"MAC_ADDRESS": "Adresse Mac",
|
||||
"URL_VALIDATION_ERROR": "Doit être une URL valide avec un protocole (par exemple http://example.com/c ou https://example.com/stalker_portal/c)"
|
||||
"EPG": {
|
||||
"TITLE": "Guide électronique des programmes",
|
||||
"NEXT_DAY": "Jour suivant",
|
||||
"PREVIOUS_DAY": "Jour précédent",
|
||||
"LIVE_NOW": "En direct",
|
||||
"LIVE_STREAM": "Diffusion en direct",
|
||||
"TIMESHIFT_AVAILABLE": "Contrôle du direct disponible, cliquez pour lire",
|
||||
"EPG_NOT_AVAILABLE_DATE": "L'EPG n'est pas disponible pour la date sélectionnée",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "L'EPG n'est pas disponible pour cette chaîne.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Veuillez ajouter/modifier l'URL de la liste EPG dans les réglages de l'application.",
|
||||
"FETCH_EPG": "Récupération des données EPG...",
|
||||
"ERROR": "L'EPG n'a pas pu être chargé.",
|
||||
"DOWNLOAD_SUCCESS": "L'EPG a été téléchargé avec succès.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Détails du programme TV",
|
||||
"TITLE": "Titre",
|
||||
"CATEGORY": "Catégorie",
|
||||
"PARENTAL_RATING_SYSTEM": "Système de classification du contenu télévisé",
|
||||
"DESCRIPTION": "Description",
|
||||
"LANGUAGE": "Langue",
|
||||
"SHOW_PROGRAM_DETAILS": "Afficher les détails de ce programme"
|
||||
},
|
||||
"FETCH_SUCCESS": "L'EPG a été récupéré avec succès"
|
||||
},
|
||||
"FILTER_BY_TYPE": "Filtrer par type",
|
||||
"IMPORTED_AS_TEXT": "Importé sous forme de texte",
|
||||
"FILTER_BY_NAME": "Filtrer par nom",
|
||||
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :",
|
||||
"XTREAM_PLAYLIST": {
|
||||
"URL_VALIDATION_ERROR": "Doit être une URL valide avec un protocole (par exemple http://example.com ou https://example.com:4324)"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Oui",
|
||||
"NO": "Non",
|
||||
"MENU": {
|
||||
"OPEN": "Ouvrir le menu",
|
||||
"SUPPORT_ARIA": "Soutenir IPTVnator sur GitHub",
|
||||
"SETTINGS": "Paramètres",
|
||||
"SETTINGS_ARIA": "Ouvrir les paramètres",
|
||||
"BUG_REPORT": "Signaler un bug",
|
||||
"WHAT_IS_NEW": "Nouveautés",
|
||||
"ABOUT": "À propos",
|
||||
"ABOUT_ARIA": "À propos de l'application",
|
||||
"SUPPORT_PROJECT": "Soutenir le projet"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "À propos d'IPTVnator",
|
||||
"DESCRIPTION": "Application lecteur IPTV multiplateforme avec de nombreuses fonctionnalités, comme la prise en charge des listes m3u et m3u8, les favoris, le guide TV, les archives TV/rattrapage et plus encore.",
|
||||
"VERSION": "Version",
|
||||
"GITHUB_TOOLTIP": "Dépôt IPTVnator sur GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Offrez-moi un café",
|
||||
"TWITTER_TOOLTIP": "Partager sur Twitter"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Mise à jour disponible",
|
||||
"REFRESH": "Actualiser",
|
||||
"XTREAM": {
|
||||
"PLAY": "Lire",
|
||||
"NAME": "Nom",
|
||||
"RELEASE_DATE": "Date de sortie",
|
||||
"GENRE": "Genre",
|
||||
"COUNTRY": "Pays",
|
||||
"ACTORS": "Acteurs",
|
||||
"DIRECTOR": "Réalisateur",
|
||||
"DURATION": "Durée",
|
||||
"CAST": "Distribution",
|
||||
"EPISODE_RUN_TIME": "Durée de l'épisode",
|
||||
"RATING": "Note",
|
||||
"IMDB_RATING": "Note IMDB",
|
||||
"KINOPOISK_RATING": "Note Kinopoisk",
|
||||
"DESCRIPTION": "Description",
|
||||
"YEAR": "Année",
|
||||
"AGE": "Âge",
|
||||
"YOUTUBE_TRAILER": "Bande-annonce YouTube",
|
||||
"EPISODE": "Épisode"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Toutes les catégories",
|
||||
"MY_FAVORITES": "Mes favoris",
|
||||
"ADD_TO_FAVORITES": "Ajouter aux favoris",
|
||||
"REMOVE_FROM_FAVORITES": "Retirer des favoris",
|
||||
"REMOVED_FROM_FAVORITES": "Retiré des favoris",
|
||||
"ADDED_TO_FAVORITES": "Ajouté aux favoris",
|
||||
"SIDEBAR": {
|
||||
"MAIN": "Principal",
|
||||
"MOVIES": "Films",
|
||||
"LIVE_TV": "TV en direct",
|
||||
"SERIES": "Séries",
|
||||
"LIBRARY": "Bibliothèque",
|
||||
"SEARCH": "Rechercher",
|
||||
"RECENT": "Récent",
|
||||
"FAVORITES": "Favoris",
|
||||
"HOME": "Accueil",
|
||||
"PLAYLIST_INFO": "Infos de la liste",
|
||||
"ACCOUNT_INFO": "Infos du compte"
|
||||
},
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Compte expiré",
|
||||
"DESCRIPTION": "Ce compte a expiré. Veuillez vérifier les identifiants dans les paramètres de la liste ou la supprimer."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Non autorisé",
|
||||
"DESCRIPTION": "Veuillez vérifier les identifiants dans les paramètres de la liste ou la supprimer."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portail non trouvé",
|
||||
"DESCRIPTION": "Veuillez vérifier les identifiants et l'URL du portail dans les paramètres de la liste ou la supprimer."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Catégorie vide",
|
||||
"DESCRIPTION": "Cette catégorie n'a pas de contenu, veuillez sélectionner une autre catégorie ou modifier le type de contenu"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Une erreur s'est produite",
|
||||
"DESCRIPTION": "Erreur inconnue, veuillez réessayer plus tard"
|
||||
},
|
||||
"NO_CATEGORY_SELECTED": {
|
||||
"TITLE": "Aucune catégorie sélectionnée",
|
||||
"DESCRIPTION": "Veuillez sélectionner une catégorie pour voir le contenu"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Paramètres de la liste",
|
||||
"HOME": "Accueil",
|
||||
"DELETE": "Supprimer"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"TITLE": "Aucun résultat trouvé",
|
||||
"NO_SEARCH_RESULTS": "Rien trouvé, essayez de modifier votre recherche"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL du flux copiée dans le presse-papiers",
|
||||
"COPY_STREAM_URL": "Copier l'URL du flux",
|
||||
"SELECT_CATEGORY": "Sélectionner une catégorie"
|
||||
},
|
||||
"INFORMATION": "Information",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Télécommande",
|
||||
"UP_CHANNEL": "Chaîne précédente",
|
||||
"DOWN_CHANNEL": "Chaîne suivante",
|
||||
"HEADER": "Télécommande IPTVNator",
|
||||
"FOOTER": "Télécommande IPTVNator"
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Paramètres / IPTVnator",
|
||||
"SUBTITLE": "Modifiez la configuration de l'application",
|
||||
"DESCRIPTION": "Changez les options de la liste ci-dessous et enregistrez vos modifications.",
|
||||
"EPG_URL_LABEL": "URL du EPG (*.xml ou *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Saisir une URL",
|
||||
"REFRESH_EPG": "Mise à jour de l'EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Lecteur vidéo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Choisir une option",
|
||||
"VERSION": "Version",
|
||||
"SAVE_CHANGES": "Enregistrer les modifications",
|
||||
"BACK_TO_HOME": "Retourner à l'accueil",
|
||||
"NEW_VERSION_AVAILABLE": "Une nouvelle version est disponible",
|
||||
"LATEST_VERSION": "Vous utilisez la dernière version",
|
||||
"LANGUAGE": "Langue",
|
||||
"SETTINGS_SAVED": "La configuration a été enregistrée avec succès.",
|
||||
"THEME": "Thème",
|
||||
"SHOW_CAPTIONS": "Afficher les sous-titres",
|
||||
"REMOVE_ALL": "Supprimer la liste de lecture",
|
||||
"REMOVE_ALL_BUTTON": "Retirer",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Supprimer toutes les playlists",
|
||||
"MESSAGE": "Etes-vous sûr de vouloir supprimer toutes les playlists de l'application ?"
|
||||
},
|
||||
"LANGUAGE_DESCRIPTION": "Sélectionnez la langue de l'application",
|
||||
"PLAYLISTS_REMOVED": "Toutes les listes de lecture ont été supprimées.",
|
||||
"VERSION_DESCRIPTION": "Version actuelle de l'application",
|
||||
"MPV_PLAYER_PATH": "chemin du lecteur mpv",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Afficher ou masquer les sous-titres par défaut",
|
||||
"IMPORT_DATA": "Importer",
|
||||
"ADD_EPG_SOURCE": "Ajouter une source EPG",
|
||||
"IMPORT_ERROR": "Erreur d'importation, veuillez essayer avec un autre fichier.",
|
||||
"EPG_URL_ERROR": "La valeur n'est pas une URL valide",
|
||||
"EXPORT_DATA": "Exporter",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Sélectionnez le lecteur vidéo par défaut",
|
||||
"IMPORT_EXPORT_DATA": "Importer/exporter des listes de lecture",
|
||||
"VLC_PLAYER_PATH_LABEL": "Chemin VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Définissez le chemin d'accès au lecteur VLC dans votre système. \nIl utilisera le chemin fourni vers un binaire VLC au lieu du chemin par défaut de notre système.",
|
||||
"THEME_DESCRIPTION": "Sélectionnez le thème visuel de l'application",
|
||||
"EPG_NOTE": "Actuellement, l'EPG n'est disponible que dans la version électronique d'IPTVnator.",
|
||||
"VLC_PLAYER_PATH": "Chemin du lecteur VLC",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exportez ou importez des playlists au format JSON utilisé dans l'application.",
|
||||
"EPG_NOTE_URL_TEXT": "Vérifiez-le ici",
|
||||
"MPV_PLAYER_PATH_LABEL": "chemin MPV"
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Thème foncé",
|
||||
"LIGHT_THEME": "Thème clair"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Rechercher une chaine",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Transférer ou choisir une autre liste de lecture",
|
||||
"ALL_CHANNELS": "Chaines",
|
||||
"GROUPS": "Groupes",
|
||||
"UNGROUPED": "Non-groupé",
|
||||
"UNNAMED_CHANNEL": "Chaine sans non",
|
||||
"FAVORITES": "Favoris",
|
||||
"NO_FAVORITES": "Aucun favoris",
|
||||
"USE_STAR_TO_FAVORITE": "Veuillez utiliser l'icône 'étoile' pour ajouter une chaine aux favoris.",
|
||||
"REMOVE_FAVORITE": "Retirer des favoris",
|
||||
"FAVORITES_UPDATED": "Les favoris ont été mis à jour !"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Ouvrir la liste des chaines",
|
||||
"TOGGLE_FAVORITE_FLAG": "Basculer le status de favoris",
|
||||
"OPEN_EPG_LIST": "Ouvrir la liste du EPG",
|
||||
"OPEN_MULTI_EPG": "Open Multi-EPG view"
|
||||
},
|
||||
"EPG": {
|
||||
"NEXT_DAY": "Jour suivant",
|
||||
"PREVIOUS_DAY": "Jour précédent",
|
||||
"LIVE_NOW": "En direct",
|
||||
"LIVE_STREAM": "Diffusion en direct",
|
||||
"TIMESHIFT_AVAILABLE": "Contrôle du direct, appuyez pour lire",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Échec: L'EPG n'est pas disponible pour la date choisie",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Échec: L'EPG n'est pas disponible pour cette chaine",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Veuillez ajouter/modifier l'URL de la liste EPG dans les réglages de l'app.",
|
||||
"FETCH_EPG": "Récupération des données EPG...",
|
||||
"ERROR": "Échec: L'EPG n'a pas pu être récupéré",
|
||||
"DOWNLOAD_SUCCESS": "L'EPG a été récupéré avec succès",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Détails du programme TV",
|
||||
"TITLE": "Titre",
|
||||
"CATEGORY": "Catégorie",
|
||||
"PARENTAL_RATING_SYSTEM": "Paramètres du contrôle parental",
|
||||
"DESCRIPTION": "Description",
|
||||
"LANGUAGE": "Langue",
|
||||
"SHOW_PROGRAM_DETAILS": "Afficher les détails du programme TV"
|
||||
}
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Oui",
|
||||
"NO": "Non",
|
||||
"MENU": {
|
||||
"OPEN": "Open menu",
|
||||
"SUPPORT_ARIA": "Support IPTVnator on GitHub",
|
||||
"SETTINGS": "Settings",
|
||||
"SETTINGS_ARIA": "Open settings",
|
||||
"BUG_REPORT": "Report a bug",
|
||||
"WHAT_IS_NEW": "What is new",
|
||||
"ABOUT": "About",
|
||||
"ABOUT_ARIA": "About the application",
|
||||
"SUPPORT_PROJECT": "Projet de soutien"
|
||||
},
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "Date de sortie",
|
||||
"ACTORS": "Acteurs",
|
||||
"PLAY": "Jouer",
|
||||
"GENRE": "Genre",
|
||||
"DURATION": "Durée",
|
||||
"COUNTRY": "Pays",
|
||||
"NAME": "Nom",
|
||||
"DIRECTOR": "Directeur",
|
||||
"CAST": "Casting",
|
||||
"RATING": "Notation",
|
||||
"AGE": "Âge",
|
||||
"EPISODE": "Épisode",
|
||||
"YEAR": "Année",
|
||||
"YOUTUBE_TRAILER": "Bande-annonce YouTube",
|
||||
"DESCRIPTION": "Description",
|
||||
"KINOPOISK_RATING": "Évaluation du Kinopoisk",
|
||||
"IMDB_RATING": "Évaluation IMDB",
|
||||
"EPISODE_RUN_TIME": "Durée de l'épisode"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Toutes catégories",
|
||||
"ADD_TO_FAVORITES": "Ajouter aux Favoris",
|
||||
"REMOVE_FROM_FAVORITES": "Retirer des favoris",
|
||||
"MY_FAVORITES": "Mes favoris",
|
||||
"COPY_STREAM_URL": "Copier l'URL du flux",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "Supprimer",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Compte expiré",
|
||||
"DESCRIPTION": "Ce compte a expiré. \nVeuillez vérifier les informations d'identification dans les paramètres de la playlist ou les supprimer."
|
||||
},
|
||||
"HOME": "Maison",
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Catégorie vide",
|
||||
"DESCRIPTION": "Cette catégorie n'a pas de contenu, veuillez sélectionner une autre catégorie ou modifier le type de contenu"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Non autorisé",
|
||||
"DESCRIPTION": "Veuillez vérifier les informations d'identification dans les paramètres de la playlist ou les supprimer."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Quelque chose s'est mal passé",
|
||||
"DESCRIPTION": "Erreur inconnue, veuillez réessayer plus tard"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Paramètres de la liste de lecture"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL du flux copiée dans le presse-papiers",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Rien trouvé, essayez de modifier votre demande de recherche"
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Supprimé des favoris",
|
||||
"ADDED_TO_FAVORITES": "Ajouté aux favoris"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "À propos d'IPTVnator",
|
||||
"VERSION": "Version",
|
||||
"TWITTER_TOOLTIP": "Partager sur Twitter",
|
||||
"GITHUB_TOOLTIP": "Dépôt ITPVnator sur GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee"
|
||||
},
|
||||
"REFRESH": "Rafraîchir",
|
||||
"UPDATE_AVAILABLE": "Mise à jour disponible"
|
||||
}
|
||||
}
|
||||
+294
-294
@@ -1,306 +1,306 @@
|
||||
{
|
||||
"CLOSE": "閉じる",
|
||||
"PLAYLISTS": "プレイリスト",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "リストからプレイリストを選択するか、新しいプレイリストを追加してください",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "最近追加したプレイリスト",
|
||||
"FILE_UPLOAD": "ファイルアップロード",
|
||||
"URL_UPLOAD": "URLから追加",
|
||||
"TEXT_IMPORT": "テキストからインポート",
|
||||
"XTREME_IMPORT": "Xtremeコードを追加",
|
||||
"STALKER_PORTAL_IMPORT": "Stalkerポータルを追加"
|
||||
"CLOSE": "閉じる",
|
||||
"PLAYLISTS": "プレイリスト",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "リストからプレイリストを選択するか、新しいプレイリストを追加してください",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "最近追加したプレイリスト",
|
||||
"FILE_UPLOAD": "ファイルアップロード",
|
||||
"URL_UPLOAD": "URLから追加",
|
||||
"TEXT_IMPORT": "テキストからインポート",
|
||||
"XTREME_IMPORT": "Xtremeコードを追加",
|
||||
"STALKER_PORTAL_IMPORT": "Stalkerポータルを追加"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "プレイリストが追加されていません",
|
||||
"ADD_FIRST": "最初のプレイリストを追加してください",
|
||||
"ADDED_VIA_URL": "URLからアップロード。URL:",
|
||||
"ADDED_VIA_FILE": "ファイルからアップロード",
|
||||
"XTREAM_PLAYLIST": "Xtremeプレイリスト",
|
||||
"STALKER_PORTAL": "Stalkerポータル",
|
||||
"CHANNELS": "チャンネル",
|
||||
"ADDED": "追加済み",
|
||||
"SHOW_DETAILS": "プレイリストの詳細を表示",
|
||||
"REMOVE": "プレイリストを削除",
|
||||
"SEARCH_PLAYLISTS": "タイトルでプレイリストを検索",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "プレイリストの詳細",
|
||||
"TITLE": "タイトル",
|
||||
"FROM_URL": "URLから追加",
|
||||
"IMPORT_DATE": "インポート日",
|
||||
"CHANNELS": "チャンネル数",
|
||||
"CLOSE": "閉じる",
|
||||
"SAVE": "保存",
|
||||
"USER_AGENT": "ユーザーエージェント",
|
||||
"ORIGINAL_FILENAME": "元のファイル名",
|
||||
"FILE_PATH": "ファイルパス",
|
||||
"UPDATE_FAILED": "最後のプレイリスト更新に失敗しました",
|
||||
"AUTO_UPDATE": "自動更新",
|
||||
"AUTO_UPDATE_DESCRIPTION": "自動更新機能が有効な場合、アプリ起動時にプレイリストが自動的に更新されます。",
|
||||
"CUSTOM_USER_AGENT": "一部のIPTVプロバイダーでは、プレイリストを再生するために特定のユーザーエージェントが必要です。",
|
||||
"EXPORT_PLAYLIST": "プレイリストをm3uとしてエクスポート",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"USERNAME": "ユーザー名",
|
||||
"PASSWORD": "パスワード",
|
||||
"MAC_ADDRESS": "MACアドレス"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "プレイリストを削除",
|
||||
"MESSAGE": "このプレイリストを完全に削除してもよろしいですか?"
|
||||
},
|
||||
"UPDATED": "更新済み",
|
||||
"REFRESH": "プレイリストを更新",
|
||||
"GLOBAL_FAVORITES": "グローバルお気に入り",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "全プレイリストのお気に入りを集約した自動生成プレイリスト",
|
||||
"MY_PLAYLISTS": "マイプレイリスト",
|
||||
"MY_PLAYLISTS_SUBTITLE": "利用可能な全プレイリスト",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "成功!プレイリストが正常に更新されました。"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "ここにファイルをドラッグ&ドロップ",
|
||||
"OR": "または",
|
||||
"CHOOSE_PLAYLIST": "プレイリストを選択",
|
||||
"REJECTED": "ファイルが拒否されました。サポートされていないファイル形式です:{{filename}}"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "プレイリストURL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "プレイリストを追加",
|
||||
"CORS_NOTE": "注意:CORSの問題を回避するため、現時点ではパブリックCORSプロキシサービスを使用しています。機密データを含むプレイリストをアップロードする場合は、ファイルからインポートする方が安全です。"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "m3u(8)プレイリストをテキストとして挿入",
|
||||
"BUTTON_LABEL": "インポート"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "プレイリストタイトル",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"USERNAME": "ユーザー名",
|
||||
"PASSWORD": "パスワード",
|
||||
"ADD": "追加",
|
||||
"TEST_CREDENTIALS": "認証情報をテスト",
|
||||
"URL_VALIDATION_ERROR": "プロトコルを含む有効なURLである必要があります(例:http://example.com または https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "タイトル",
|
||||
"MAC_ADDRESS": "MACアドレス",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"URL_VALIDATION_ERROR": "プロトコルを含む有効なURLである必要があります(例:http://example.com/c または https://example.com/stalker_portal/c)",
|
||||
"ADD": "追加"
|
||||
},
|
||||
"FILTER_BY_NAME": "名前でフィルター",
|
||||
"FILTER_BY_TYPE": "種類でフィルター",
|
||||
"IMPORTED_AS_TEXT": "テキストとしてインポート",
|
||||
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "プレイリストが追加されていません",
|
||||
"ADD_FIRST": "最初のプレイリストを追加してください",
|
||||
"ADDED_VIA_URL": "URLからアップロード。URL:",
|
||||
"ADDED_VIA_FILE": "ファイルからアップロード",
|
||||
"XTREAM_PLAYLIST": "Xtremeプレイリスト",
|
||||
"STALKER_PORTAL": "Stalkerポータル",
|
||||
"CHANNELS": "チャンネル",
|
||||
"ADDED": "追加済み",
|
||||
"SHOW_DETAILS": "プレイリストの詳細を表示",
|
||||
"REMOVE": "プレイリストを削除",
|
||||
"SEARCH_PLAYLISTS": "タイトルでプレイリストを検索",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "プレイリストの詳細",
|
||||
"TITLE": "タイトル",
|
||||
"FROM_URL": "URLから追加",
|
||||
"IMPORT_DATE": "インポート日",
|
||||
"CHANNELS": "チャンネル数",
|
||||
"CLOSE": "閉じる",
|
||||
"SAVE": "保存",
|
||||
"USER_AGENT": "ユーザーエージェント",
|
||||
"ORIGINAL_FILENAME": "元のファイル名",
|
||||
"FILE_PATH": "ファイルパス",
|
||||
"UPDATE_FAILED": "最後のプレイリスト更新に失敗しました",
|
||||
"AUTO_UPDATE": "自動更新",
|
||||
"AUTO_UPDATE_DESCRIPTION": "自動更新機能が有効な場合、アプリ起動時にプレイリストが自動的に更新されます。",
|
||||
"CUSTOM_USER_AGENT": "一部のIPTVプロバイダーでは、プレイリストを再生するために特定のユーザーエージェントが必要です。",
|
||||
"EXPORT_PLAYLIST": "プレイリストをm3uとしてエクスポート",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"USERNAME": "ユーザー名",
|
||||
"PASSWORD": "パスワード",
|
||||
"MAC_ADDRESS": "MACアドレス"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "プレイリストを削除",
|
||||
"MESSAGE": "このプレイリストを完全に削除してもよろしいですか?"
|
||||
},
|
||||
"UPDATED": "更新済み",
|
||||
"REFRESH": "プレイリストを更新",
|
||||
"GLOBAL_FAVORITES": "グローバルお気に入り",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "全プレイリストのお気に入りを集約した自動生成プレイリスト",
|
||||
"MY_PLAYLISTS": "マイプレイリスト",
|
||||
"MY_PLAYLISTS_SUBTITLE": "利用可能な全プレイリスト",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "成功!プレイリストが正常に更新されました。"
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定",
|
||||
"SUBTITLE": "アプリケーションの設定を変更",
|
||||
"DESCRIPTION": "以下のオプションを調整し、変更を保存ボタンで確定してください",
|
||||
"EPG_URL_LABEL": "EPG URL (*.xml または *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URLを入力",
|
||||
"REFRESH_EPG": "EPGを更新",
|
||||
"VIDEO_PLAYER_LABEL": "ビデオプレーヤー",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "オプションを選択",
|
||||
"VERSION": "バージョン",
|
||||
"SAVE_CHANGES": "変更を保存",
|
||||
"BACK_TO_HOME": "戻る",
|
||||
"NEW_VERSION_AVAILABLE": "新しいバージョンが利用可能です",
|
||||
"LATEST_VERSION": "最新バージョンを使用中です",
|
||||
"LANGUAGE": "言語",
|
||||
"SETTINGS_SAVED": "成功!設定が保存されました。",
|
||||
"THEME": "視覚テーマ",
|
||||
"SHOW_CAPTIONS": "字幕を表示",
|
||||
"ADD_EPG_SOURCE": "EPGソースを追加",
|
||||
"EPG_URL_ERROR": "有効なURLではありません",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "デフォルトのビデオプレーヤーを選択",
|
||||
"LANGUAGE_DESCRIPTION": "アプリケーションの言語を選択",
|
||||
"THEME_DESCRIPTION": "アプリケーションの視覚テーマを選択",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "デフォルトで字幕を表示/非表示",
|
||||
"VERSION_DESCRIPTION": "アプリケーションの現在のバージョン",
|
||||
"EPG_NOTE": "現在、EPGはIPTVnatorのelectronベース版でのみ利用可能です。",
|
||||
"EPG_NOTE_URL_TEXT": "こちらをチェック",
|
||||
"IMPORT_EXPORT_DATA": "プレイリストのインポート/エクスポート",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "アプリケーション内で使用されているJSONフォーマットでプレイリストをエクスポートまたはインポート。",
|
||||
"IMPORT_DATA": "インポート",
|
||||
"EXPORT_DATA": "エクスポート",
|
||||
"REMOVE_ALL": "プレイリストを削除",
|
||||
"REMOVE_ALL_BUTTON": "削除",
|
||||
"REMOVE_ALL_DESCRIPTION": "アプリケーションから既存のプレイリストをすべて削除します。",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "すべてのプレイリストを削除",
|
||||
"MESSAGE": "アプリケーションからすべてのプレイリストを削除してもよろしいですか?"
|
||||
},
|
||||
"IMPORT_ERROR": "インポートエラー。別のファイルで試してください。",
|
||||
"PLAYLISTS_REMOVED": "すべてのプレイリストが削除されました。",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpvのパス",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "システム内のmpvプレーヤーのパスを設定します。$PATHで見つかったものの代わりに、指定されたmpvバイナリのパスを使用します。",
|
||||
"MPV_PLAYER_PATH": "mpvプレーヤーのパス",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLCのパス",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "システム内のVLCプレーヤーのパスを設定します。システムのデフォルトパスの代わりに、指定されたVLCバイナリのパスを使用します。",
|
||||
"VLC_PLAYER_PATH": "VLCプレーヤーのパス",
|
||||
"REMOTE_CONTROL": "リモートコントロール",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "アプリケーションのリモートコントロールを有効にします。",
|
||||
"REMOTE_CONTROL_PORT": "リモートコントロールポート",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "アプリケーションのリモートコントロールに使用されるポート。デフォルトではポート3000が使用されます。"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "ここにファイルをドラッグ&ドロップ",
|
||||
"OR": "または",
|
||||
"CHOOSE_PLAYLIST": "プレイリストを選択",
|
||||
"REJECTED": "ファイルが拒否されました。サポートされていないファイル形式です:{{filename}}"
|
||||
"THEMES": {
|
||||
"DARK_THEME": "ダークテーマ",
|
||||
"LIGHT_THEME": "ライトテーマ"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "プレイリストURL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "プレイリストを追加",
|
||||
"CORS_NOTE": "注意:CORSの問題を回避するため、現時点ではパブリックCORSプロキシサービスを使用しています。機密データを含むプレイリストをアップロードする場合は、ファイルからインポートする方が安全です。"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "チャンネルを検索",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "アップロードまたは他のプレイリストを選択",
|
||||
"ALL_CHANNELS": "すべてのチャンネル",
|
||||
"GROUPS": "グループ",
|
||||
"UNGROUPED": "グループなし",
|
||||
"UNNAMED_CHANNEL": "名前のないチャンネル",
|
||||
"FAVORITES": "お気に入り",
|
||||
"NO_FAVORITES": "まだお気に入りがありません",
|
||||
"USE_STAR_TO_FAVORITE": "'スター'アイコンを使用してチャンネルをお気に入りに追加してください。",
|
||||
"REMOVE_FAVORITE": "お気に入りから削除",
|
||||
"FAVORITES_UPDATED": "お気に入りが更新されました!",
|
||||
"SORT_BY": "並び替え",
|
||||
"SORT_BY_DATE": "追加日で並び替え(新しい順)",
|
||||
"SORT_BY_RATING": "評価で並び替え",
|
||||
"SORT_BY_NAME": "名前で並び替え(A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "m3u(8)プレイリストをテキストとして挿入",
|
||||
"BUTTON_LABEL": "インポート"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "チャンネルリストを開く",
|
||||
"TOGGLE_FAVORITE_FLAG": "お気に入りフラグを切り替え",
|
||||
"OPEN_EPG_LIST": "EPGリストを開く",
|
||||
"OPEN_MULTI_EPG": "マルチEPGビューを開く"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "プレイリストタイトル",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"USERNAME": "ユーザー名",
|
||||
"PASSWORD": "パスワード",
|
||||
"ADD": "追加",
|
||||
"TEST_CREDENTIALS": "認証情報をテスト",
|
||||
"URL_VALIDATION_ERROR": "プロトコルを含む有効なURLである必要があります(例:http://example.com または https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "電子番組表",
|
||||
"NEXT_DAY": "翌日",
|
||||
"PREVIOUS_DAY": "前日",
|
||||
"LIVE_NOW": "現在放送中",
|
||||
"LIVE_STREAM": "ライブストリーム",
|
||||
"TIMESHIFT_AVAILABLE": "タイムシフトが利用可能です。クリックして再生",
|
||||
"EPG_NOT_AVAILABLE_DATE": "申し訳ありません。選択した日付のEPGは利用できません",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "申し訳ありません。このチャンネルのEPGは利用できません。",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "アプリの設定でEPGリストのURLを追加/変更してください。",
|
||||
"FETCH_EPG": "EPGデータを取得中...",
|
||||
"ERROR": "申し訳ありません。EPGを読み込めませんでした。",
|
||||
"DOWNLOAD_SUCCESS": "EPGが正常にダウンロードされました。",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "番組の詳細",
|
||||
"TITLE": "タイトル",
|
||||
"CATEGORY": "カテゴリー",
|
||||
"PARENTAL_RATING_SYSTEM": "テレビ番組レーティングシステム",
|
||||
"DESCRIPTION": "説明",
|
||||
"LANGUAGE": "言語",
|
||||
"SHOW_PROGRAM_DETAILS": "この番組の詳細を表示"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPGの取得に成功しました"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "タイトル",
|
||||
"MAC_ADDRESS": "MACアドレス",
|
||||
"SERVER_URL": "サーバーURL",
|
||||
"URL_VALIDATION_ERROR": "プロトコルを含む有効なURLである必要があります(例:http://example.com/c または https://example.com/stalker_portal/c)",
|
||||
"ADD": "追加"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "名前でフィルター",
|
||||
"FILTER_BY_TYPE": "種類でフィルター",
|
||||
"IMPORTED_AS_TEXT": "テキストとしてインポート",
|
||||
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定 / IPTVnator",
|
||||
"SUBTITLE": "アプリケーションの設定を変更",
|
||||
"DESCRIPTION": "以下のオプションを調整し、変更を保存ボタンで確定してください",
|
||||
"EPG_URL_LABEL": "EPG URL (*.xml または *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URLを入力",
|
||||
"REFRESH_EPG": "EPGを更新",
|
||||
"VIDEO_PLAYER_LABEL": "ビデオプレーヤー",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "オプションを選択",
|
||||
"VERSION": "バージョン",
|
||||
"SAVE_CHANGES": "変更を保存",
|
||||
"BACK_TO_HOME": "戻る",
|
||||
"NEW_VERSION_AVAILABLE": "新しいバージョンが利用可能です",
|
||||
"LATEST_VERSION": "最新バージョンを使用中です",
|
||||
"LANGUAGE": "言語",
|
||||
"SETTINGS_SAVED": "成功!設定が保存されました。",
|
||||
"THEME": "視覚テーマ",
|
||||
"SHOW_CAPTIONS": "字幕を表示",
|
||||
"ADD_EPG_SOURCE": "EPGソースを追加",
|
||||
"EPG_URL_ERROR": "有効なURLではありません",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "デフォルトのビデオプレーヤーを選択",
|
||||
"LANGUAGE_DESCRIPTION": "アプリケーションの言語を選択",
|
||||
"THEME_DESCRIPTION": "アプリケーションの視覚テーマを選択",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "デフォルトで字幕を表示/非表示",
|
||||
"VERSION_DESCRIPTION": "アプリケーションの現在のバージョン",
|
||||
"EPG_NOTE": "現在、EPGはIPTVnatorのelectronベース版でのみ利用可能です。",
|
||||
"EPG_NOTE_URL_TEXT": "こちらをチェック",
|
||||
"IMPORT_EXPORT_DATA": "プレイリストのインポート/エクスポート",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "アプリケーション内で使用されているJSONフォーマットでプレイリストをエクスポートまたはインポート。",
|
||||
"IMPORT_DATA": "インポート",
|
||||
"EXPORT_DATA": "エクスポート",
|
||||
"REMOVE_ALL": "プレイリストを削除",
|
||||
"REMOVE_ALL_BUTTON": "削除",
|
||||
"REMOVE_ALL_DESCRIPTION": "アプリケーションから既存のプレイリストをすべて削除します。",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "すべてのプレイリストを削除",
|
||||
"MESSAGE": "アプリケーションからすべてのプレイリストを削除してもよろしいですか?"
|
||||
"YES": "はい",
|
||||
"NO": "いいえ",
|
||||
"MENU": {
|
||||
"OPEN": "メニューを開く",
|
||||
"SUPPORT_ARIA": "GitHubでIPTVnatorをサポート",
|
||||
"SETTINGS": "設定",
|
||||
"SETTINGS_ARIA": "設定を開く",
|
||||
"BUG_REPORT": "バグを報告",
|
||||
"WHAT_IS_NEW": "新着情報",
|
||||
"ABOUT": "アプリについて",
|
||||
"ABOUT_ARIA": "アプリケーションについて",
|
||||
"SUPPORT_PROJECT": "プロジェクトをサポート"
|
||||
},
|
||||
"IMPORT_ERROR": "インポートエラー。別のファイルで試してください。",
|
||||
"PLAYLISTS_REMOVED": "すべてのプレイリストが削除されました。",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpvのパス",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "システム内のmpvプレーヤーのパスを設定します。$PATHで見つかったものの代わりに、指定されたmpvバイナリのパスを使用します。",
|
||||
"MPV_PLAYER_PATH": "mpvプレーヤーのパス",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLCのパス",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "システム内のVLCプレーヤーのパスを設定します。システムのデフォルトパスの代わりに、指定されたVLCバイナリのパスを使用します。",
|
||||
"VLC_PLAYER_PATH": "VLCプレーヤーのパス",
|
||||
"REMOTE_CONTROL": "リモートコントロール",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "アプリケーションのリモートコントロールを有効にします。",
|
||||
"REMOTE_CONTROL_PORT": "リモートコントロールポート",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "アプリケーションのリモートコントロールに使用されるポート。デフォルトではポート3000が使用されます。"
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "ダークテーマ",
|
||||
"LIGHT_THEME": "ライトテーマ"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "チャンネルを検索",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "アップロードまたは他のプレイリストを選択",
|
||||
"ALL_CHANNELS": "すべてのチャンネル",
|
||||
"GROUPS": "グループ",
|
||||
"UNGROUPED": "グループなし",
|
||||
"UNNAMED_CHANNEL": "名前のないチャンネル",
|
||||
"FAVORITES": "お気に入り",
|
||||
"NO_FAVORITES": "まだお気に入りがありません",
|
||||
"USE_STAR_TO_FAVORITE": "'スター'アイコンを使用してチャンネルをお気に入りに追加してください。",
|
||||
"REMOVE_FAVORITE": "お気に入りから削除",
|
||||
"FAVORITES_UPDATED": "お気に入りが更新されました!",
|
||||
"SORT_BY": "並び替え",
|
||||
"SORT_BY_DATE": "追加日で並び替え(新しい順)",
|
||||
"SORT_BY_RATING": "評価で並び替え",
|
||||
"SORT_BY_NAME": "名前で並び替え(A-Z)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "チャンネルリストを開く",
|
||||
"TOGGLE_FAVORITE_FLAG": "お気に入りフラグを切り替え",
|
||||
"OPEN_EPG_LIST": "EPGリストを開く",
|
||||
"OPEN_MULTI_EPG": "マルチEPGビューを開く"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "電子番組表",
|
||||
"NEXT_DAY": "翌日",
|
||||
"PREVIOUS_DAY": "前日",
|
||||
"LIVE_NOW": "現在放送中",
|
||||
"LIVE_STREAM": "ライブストリーム",
|
||||
"TIMESHIFT_AVAILABLE": "タイムシフトが利用可能です。クリックして再生",
|
||||
"EPG_NOT_AVAILABLE_DATE": "申し訳ありません。選択した日付のEPGは利用できません",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "申し訳ありません。このチャンネルのEPGは利用できません。",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "アプリの設定でEPGリストのURLを追加/変更してください。",
|
||||
"FETCH_EPG": "EPGデータを取得中...",
|
||||
"ERROR": "申し訳ありません。EPGを読み込めませんでした。",
|
||||
"DOWNLOAD_SUCCESS": "EPGが正常にダウンロードされました。",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "番組の詳細",
|
||||
"TITLE": "タイトル",
|
||||
"CATEGORY": "カテゴリー",
|
||||
"PARENTAL_RATING_SYSTEM": "テレビ番組レーティングシステム",
|
||||
"DESCRIPTION": "説明",
|
||||
"LANGUAGE": "言語",
|
||||
"SHOW_PROGRAM_DETAILS": "この番組の詳細を表示"
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnatorについて",
|
||||
"DESCRIPTION": "m3uやm3u8プレイリストのサポート、お気に入り、TV番組表、TVアーカイブ/キャッチアップなど、複数の機能を備えたクロスプラットフォームのIPTVプレーヤーアプリケーション。",
|
||||
"VERSION": "バージョン",
|
||||
"GITHUB_TOOLTIP": "GitHub上のITPVnatorリポジトリ",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "コーヒーを奢る",
|
||||
"TWITTER_TOOLTIP": "Twitterでシェア"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPGの取得に成功しました"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "はい",
|
||||
"NO": "いいえ",
|
||||
"MENU": {
|
||||
"OPEN": "メニューを開く",
|
||||
"SUPPORT_ARIA": "GitHubでIPTVnatorをサポート",
|
||||
"SETTINGS": "設定",
|
||||
"SETTINGS_ARIA": "設定を開く",
|
||||
"BUG_REPORT": "バグを報告",
|
||||
"WHAT_IS_NEW": "新着情報",
|
||||
"ABOUT": "アプリについて",
|
||||
"ABOUT_ARIA": "アプリケーションについて",
|
||||
"SUPPORT_PROJECT": "プロジェクトをサポート"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnatorについて",
|
||||
"DESCRIPTION": "m3uやm3u8プレイリストのサポート、お気に入り、TV番組表、TVアーカイブ/キャッチアップなど、複数の機能を備えたクロスプラットフォームのIPTVプレーヤーアプリケーション。",
|
||||
"VERSION": "バージョン",
|
||||
"GITHUB_TOOLTIP": "GitHub上のITPVnatorリポジトリ",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "コーヒーを奢る",
|
||||
"TWITTER_TOOLTIP": "Twitterでシェア"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "アップデートが利用可能",
|
||||
"REFRESH": "更新",
|
||||
"XTREAM": {
|
||||
"PLAY": "再生",
|
||||
"NAME": "名前",
|
||||
"RELEASE_DATE": "公開日",
|
||||
"GENRE": "ジャンル",
|
||||
"COUNTRY": "国",
|
||||
"ACTORS": "出演者",
|
||||
"DIRECTOR": "監督",
|
||||
"DURATION": "時間",
|
||||
"CAST": "キャスト",
|
||||
"EPISODE_RUN_TIME": "エピソード再生時間",
|
||||
"RATING": "評価",
|
||||
"IMDB_RATING": "IMDb評価",
|
||||
"KINOPOISK_RATING": "Kinopoisk評価",
|
||||
"DESCRIPTION": "説明",
|
||||
"YEAR": "年",
|
||||
"AGE": "年齢",
|
||||
"YOUTUBE_TRAILER": "YouTubeトレーラー",
|
||||
"EPISODE": "エピソード"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "すべてのカテゴリー",
|
||||
"MY_FAVORITES": "お気に入り",
|
||||
"ADD_TO_FAVORITES": "お気に入りに追加",
|
||||
"REMOVE_FROM_FAVORITES": "お気に入りから削除",
|
||||
"REMOVED_FROM_FAVORITES": "お気に入りから削除されました",
|
||||
"ADDED_TO_FAVORITES": "お気に入りに追加されました",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "アカウントの有効期限が切れています",
|
||||
"DESCRIPTION": "このアカウントの有効期限が切れています。プレイリスト設定で認証情報を確認するか、削除してください。"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "未認証",
|
||||
"DESCRIPTION": "プレイリスト設定で認証情報を確認するか、削除してください。"
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "ポータルが見つかりません",
|
||||
"DESCRIPTION": "プレイリスト設定で認証情報とポータルURLを確認するか、削除してください。"
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "空のカテゴリー",
|
||||
"DESCRIPTION": "このカテゴリーにはコンテンツがありません。別のカテゴリーを選択するかコンテンツタイプを変更してください"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "問題が発生しました",
|
||||
"DESCRIPTION": "不明なエラー。後でもう一度お試しください"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "プレイリスト設定",
|
||||
"HOME": "ホーム",
|
||||
"DELETE": "削除"
|
||||
"UPDATE_AVAILABLE": "アップデートが利用可能",
|
||||
"REFRESH": "更新",
|
||||
"XTREAM": {
|
||||
"PLAY": "再生",
|
||||
"NAME": "名前",
|
||||
"RELEASE_DATE": "公開日",
|
||||
"GENRE": "ジャンル",
|
||||
"COUNTRY": "国",
|
||||
"ACTORS": "出演者",
|
||||
"DIRECTOR": "監督",
|
||||
"DURATION": "時間",
|
||||
"CAST": "キャスト",
|
||||
"EPISODE_RUN_TIME": "エピソード再生時間",
|
||||
"RATING": "評価",
|
||||
"IMDB_RATING": "IMDb評価",
|
||||
"KINOPOISK_RATING": "Kinopoisk評価",
|
||||
"DESCRIPTION": "説明",
|
||||
"YEAR": "年",
|
||||
"AGE": "年齢",
|
||||
"YOUTUBE_TRAILER": "YouTubeトレーラー",
|
||||
"EPISODE": "エピソード"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "何も見つかりませんでした。検索リクエストを変更してみてください"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "すべてのカテゴリー",
|
||||
"MY_FAVORITES": "お気に入り",
|
||||
"ADD_TO_FAVORITES": "お気に入りに追加",
|
||||
"REMOVE_FROM_FAVORITES": "お気に入りから削除",
|
||||
"REMOVED_FROM_FAVORITES": "お気に入りから削除されました",
|
||||
"ADDED_TO_FAVORITES": "お気に入りに追加されました",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "アカウントの有効期限が切れています",
|
||||
"DESCRIPTION": "このアカウントの有効期限が切れています。プレイリスト設定で認証情報を確認するか、削除してください。"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "未認証",
|
||||
"DESCRIPTION": "プレイリスト設定で認証情報を確認するか、削除してください。"
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "ポータルが見つかりません",
|
||||
"DESCRIPTION": "プレイリスト設定で認証情報とポータルURLを確認するか、削除してください。"
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "空のカテゴリー",
|
||||
"DESCRIPTION": "このカテゴリーにはコンテンツがありません。別のカテゴリーを選択するかコンテンツタイプを変更してください"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "問題が発生しました",
|
||||
"DESCRIPTION": "不明なエラー。後でもう一度お試しください"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "プレイリスト設定",
|
||||
"HOME": "ホーム",
|
||||
"DELETE": "削除"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "何も見つかりませんでした。検索リクエストを変更してみてください"
|
||||
},
|
||||
"STREAM_URL_COPIED": "ストリームURLがクリップボードにコピーされました",
|
||||
"COPY_STREAM_URL": "ストリームURLをコピー"
|
||||
},
|
||||
"STREAM_URL_COPIED": "ストリームURLがクリップボードにコピーされました",
|
||||
"COPY_STREAM_URL": "ストリームURLをコピー"
|
||||
},
|
||||
"INFORMATION": "情報",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "リモートコントロール",
|
||||
"UP_CHANNEL": "チャンネルアップ",
|
||||
"DOWN_CHANNEL": "チャンネルダウン",
|
||||
"HEADER": "IPTVNatorリモートコントロール",
|
||||
"FOOTER": "IPTVNatorリモートコントロール"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "情報",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "リモートコントロール",
|
||||
"UP_CHANNEL": "チャンネルアップ",
|
||||
"DOWN_CHANNEL": "チャンネルダウン",
|
||||
"HEADER": "IPTVNatorリモートコントロール",
|
||||
"FOOTER": "IPTVNatorリモートコントロール"
|
||||
}
|
||||
}
|
||||
+244
-244
@@ -1,254 +1,254 @@
|
||||
{
|
||||
"CLOSE": "닫기",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "목록에서 재생 목록을 선택하거나 파일 업로드 또는 URL을 통해 새 재생 목록을 추가하십시오.",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "최근 재생 목록이 추가되었습니다",
|
||||
"FILE_UPLOAD": "파일 업로드를 통해 추가하십시오",
|
||||
"URL_UPLOAD": "URL을 통해 추가하십시오",
|
||||
"TEXT_IMPORT": "Import as text",
|
||||
"STALKER_PORTAL_IMPORT": "스토커 포털 추가"
|
||||
"CLOSE": "닫기",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "목록에서 재생 목록을 선택하거나 파일 업로드 또는 URL을 통해 새 재생 목록을 추가하십시오.",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "최근 재생 목록이 추가되었습니다",
|
||||
"FILE_UPLOAD": "파일 업로드를 통해 추가하십시오",
|
||||
"URL_UPLOAD": "URL을 통해 추가하십시오",
|
||||
"TEXT_IMPORT": "Import as text",
|
||||
"STALKER_PORTAL_IMPORT": "스토커 포털 추가"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "재생 목록이 추가되지 않았습니다",
|
||||
"ADD_FIRST": "다른 탭에서 첫 번째 재생 목록을 추가하십시오",
|
||||
"ADDED_VIA_URL": "URL 업로드를 통해 추가되었습니다. URL:",
|
||||
"ADDED_VIA_FILE": "파일 업로드를 통해 추가되었습니다",
|
||||
"CHANNELS": "채널",
|
||||
"ADDED": "추가되었습니다",
|
||||
"SHOW_DETAILS": "재생 목록 세부 정보 표시",
|
||||
"REMOVE": "재생 목록이 제거되었습니다",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "재생 목록 세부 사항",
|
||||
"TITLE": "제목",
|
||||
"FROM_URL": "URL에서 추가되었습니다",
|
||||
"IMPORT_DATE": "데이터 가져 오기",
|
||||
"CHANNELS": "채널 수",
|
||||
"CLOSE": "닫기",
|
||||
"SAVE": "저장",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "원래 파일 이름",
|
||||
"FILE_PATH": "파일 경로",
|
||||
"UPDATE_FAILED": "마지막 재생 목록 업데이트가 실패했습니다",
|
||||
"AUTO_UPDATE": "자동 업데이트",
|
||||
"AUTO_UPDATE_DESCRIPTION": "자동 새로 고침 기능이 활성화되면 앱이 시작될 때마다 재생 목록이 자동으로 업데이트됩니다.",
|
||||
"CUSTOM_USER_AGENT": "일부 IPTV 공급자는 재생 목록을 재생하기 위해 특정 사용자 에이전트가 필요합니다.",
|
||||
"PASSWORD": "비밀번호",
|
||||
"SERVER_URL": "서버 URL",
|
||||
"USERNAME": "사용자 이름",
|
||||
"MAC_ADDRESS": "맥 주소"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "재생 목록 제거",
|
||||
"MESSAGE": "이 재생 목록을 완전히 삭제 하시겠습니까?"
|
||||
},
|
||||
"UPDATED": "업데이트 됨",
|
||||
"REFRESH": "재생 목록 새로 고침",
|
||||
"GLOBAL_FAVORITES": "Global favorites",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists",
|
||||
"MY_PLAYLISTS": "My playlists"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "파일을 드래그 앤 드롭",
|
||||
"OR": "또는",
|
||||
"CHOOSE_PLAYLIST": "재생 목록을 선택"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "재생 목록 URL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "재생 목록을 추가하십시오"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Insert m3u(8) playlist as text",
|
||||
"BUTTON_LABEL": "Import"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "추가하다",
|
||||
"TITLE": "제목",
|
||||
"URL_VALIDATION_ERROR": "프로토콜이 포함된 유효한 URL이어야 합니다(예: http://example.com/c 또는 https://example.com/stalker_portal/c)."
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"URL_VALIDATION_ERROR": "프로토콜이 포함된 유효한 URL이어야 합니다(예: http://example.com 또는 https://example.com:4324)."
|
||||
}
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "재생 목록이 추가되지 않았습니다",
|
||||
"ADD_FIRST": "다른 탭에서 첫 번째 재생 목록을 추가하십시오",
|
||||
"ADDED_VIA_URL": "URL 업로드를 통해 추가되었습니다. URL:",
|
||||
"ADDED_VIA_FILE": "파일 업로드를 통해 추가되었습니다",
|
||||
"CHANNELS": "채널",
|
||||
"ADDED": "추가되었습니다",
|
||||
"SHOW_DETAILS": "재생 목록 세부 정보 표시",
|
||||
"REMOVE": "재생 목록이 제거되었습니다",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "재생 목록 세부 사항",
|
||||
"TITLE": "제목",
|
||||
"FROM_URL": "URL에서 추가되었습니다",
|
||||
"IMPORT_DATE": "데이터 가져 오기",
|
||||
"CHANNELS": "채널 수",
|
||||
"CLOSE": "닫기",
|
||||
"SAVE": "저장",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "원래 파일 이름",
|
||||
"FILE_PATH": "파일 경로",
|
||||
"UPDATE_FAILED": "마지막 재생 목록 업데이트가 실패했습니다",
|
||||
"AUTO_UPDATE": "자동 업데이트",
|
||||
"AUTO_UPDATE_DESCRIPTION": "자동 새로 고침 기능이 활성화되면 앱이 시작될 때마다 재생 목록이 자동으로 업데이트됩니다.",
|
||||
"CUSTOM_USER_AGENT": "일부 IPTV 공급자는 재생 목록을 재생하기 위해 특정 사용자 에이전트가 필요합니다.",
|
||||
"PASSWORD": "비밀번호",
|
||||
"SERVER_URL": "서버 URL",
|
||||
"USERNAME": "사용자 이름",
|
||||
"MAC_ADDRESS": "맥 주소"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "재생 목록 제거",
|
||||
"MESSAGE": "이 재생 목록을 완전히 삭제 하시겠습니까?"
|
||||
},
|
||||
"UPDATED": "업데이트 됨",
|
||||
"REFRESH": "재생 목록 새로 고침",
|
||||
"GLOBAL_FAVORITES": "Global favorites",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Auto-generated playlist with aggregated favorites from all playlists",
|
||||
"MY_PLAYLISTS": "My playlists"
|
||||
"SETTINGS": {
|
||||
"TITLE": "설정",
|
||||
"SUBTITLE": "응용 프로그램의 구성을 변경하십시오",
|
||||
"DESCRIPTION": "아래 목록에서 옵션을 적용하고 저장 버튼으로 확인하십시오.",
|
||||
"EPG_URL_LABEL": "EPG Url (*.xml or *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URL을 입력하십시오",
|
||||
"REFRESH_EPG": "EPG 새로 고침",
|
||||
"VIDEO_PLAYER_LABEL": "비디오 플레이어",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "옵션을 선택하세요",
|
||||
"VERSION": "버전",
|
||||
"SAVE_CHANGES": "변경 사항 저장",
|
||||
"BACK_TO_HOME": "홈으로",
|
||||
"NEW_VERSION_AVAILABLE": "새로운 버전이 있습니다",
|
||||
"LATEST_VERSION": "최신 버전을 사용하고 있습니다",
|
||||
"LANGUAGE": "언어",
|
||||
"SETTINGS_SAVED": "설정이 저장되었습니다.",
|
||||
"THEME": "테마",
|
||||
"SHOW_CAPTIONS": "Show subtitles",
|
||||
"REMOVE_ALL": "재생목록 삭제",
|
||||
"REMOVE_ALL_BUTTON": "제거하다",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "모든 재생목록 삭제",
|
||||
"MESSAGE": "응용 프로그램에서 모든 재생 목록을 삭제하시겠습니까?"
|
||||
},
|
||||
"LANGUAGE_DESCRIPTION": "애플리케이션 언어 선택",
|
||||
"PLAYLISTS_REMOVED": "모든 재생목록이 삭제되었습니다.",
|
||||
"VERSION_DESCRIPTION": "애플리케이션의 현재 버전",
|
||||
"IMPORT_DATA": "수입",
|
||||
"ADD_EPG_SOURCE": "EPG 소스 추가",
|
||||
"IMPORT_ERROR": "가져오기 오류가 발생했습니다. 다른 파일로 시도해 보세요.",
|
||||
"EPG_URL_ERROR": "값이 유효한 URL이 아닙니다.",
|
||||
"EXPORT_DATA": "내보내다",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "기본 비디오 플레이어 선택",
|
||||
"IMPORT_EXPORT_DATA": "재생목록 가져오기/내보내기",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC 경로",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "시스템에서 VLC 플레이어의 경로를 설정하십시오. \n시스템의 기본 경로 대신 VLC 바이너리에 제공된 경로를 사용합니다.",
|
||||
"THEME_DESCRIPTION": "애플리케이션의 시각적 테마 선택",
|
||||
"EPG_NOTE": "현재 EPG는 IPTVnator의 전자 기반 버전에서만 사용할 수 있습니다.",
|
||||
"VLC_PLAYER_PATH": "VLC 플레이어 경로",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "애플리케이션 내에서 사용되는 JSON 형식으로 재생 목록을 내보내거나 가져옵니다.",
|
||||
"EPG_NOTE_URL_TEXT": "여기에서 확인하세요",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv 경로"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "파일을 드래그 앤 드롭",
|
||||
"OR": "또는",
|
||||
"CHOOSE_PLAYLIST": "재생 목록을 선택"
|
||||
"THEMES": {
|
||||
"DARK_THEME": "어두운 테마",
|
||||
"LIGHT_THEME": "밝은 테마"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "재생 목록 URL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "재생 목록을 추가하십시오"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "검색 채널",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "다른 재생 목록을 업로드하거나 선택하십시오",
|
||||
"ALL_CHANNELS": "모든 채널",
|
||||
"GROUPS": "그룹",
|
||||
"UNGROUPED": "그룹 해제",
|
||||
"UNNAMED_CHANNEL": "이름없는 채널",
|
||||
"FAVORITES": "즐겨찾기",
|
||||
"NO_FAVORITES": "즐겨찾기가 아직 없습니다",
|
||||
"USE_STAR_TO_FAVORITE": "'Star'아이콘을 사용하여 이 목록에 채널을 추가하십시오.",
|
||||
"REMOVE_FAVORITE": "즐겨찾기에서 삭제하기",
|
||||
"FAVORITES_UPDATED": "즐겨찾기가 업데이트되었습니다!"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Insert m3u(8) playlist as text",
|
||||
"BUTTON_LABEL": "Import"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "채널 열기 목록",
|
||||
"TOGGLE_FAVORITE_FLAG": "즐겨찾기 보이기/숨기기",
|
||||
"OPEN_EPG_LIST": "EPG 목록 열기",
|
||||
"OPEN_MULTI_EPG": "Open Multi-EPG view"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "추가하다",
|
||||
"TITLE": "제목",
|
||||
"URL_VALIDATION_ERROR": "프로토콜이 포함된 유효한 URL이어야 합니다(예: http://example.com/c 또는 https://example.com/stalker_portal/c)."
|
||||
"EPG": {
|
||||
"NEXT_DAY": "다음날",
|
||||
"PREVIOUS_DAY": "전날",
|
||||
"LIVE_NOW": "Live now",
|
||||
"LIVE_STREAM": "Live stream",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift를 사용할 수 있습니다, 클릭하여 재생합니다",
|
||||
"EPG_NOT_AVAILABLE_DATE": "선택한 날짜에는 EPG를 사용할 수 없습니다.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "이 채널에는 EPG를 사용할 수 없습니다.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "설정에서 EPG의 URL을 추가/변경하십시오.",
|
||||
"FETCH_EPG": "EPG 데이터 가져 오기...",
|
||||
"ERROR": "Ooops, EPG could not be loaded.",
|
||||
"DOWNLOAD_SUCCESS": "EPG was successfully downloaded.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "TV 프로그램에 대한 세부 사항",
|
||||
"TITLE": "제목",
|
||||
"CATEGORY": "카테고리",
|
||||
"PARENTAL_RATING_SYSTEM": "컨텐츠 등급 시스템",
|
||||
"DESCRIPTION": "설명",
|
||||
"LANGUAGE": "언어",
|
||||
"SHOW_PROGRAM_DETAILS": "이 프로그램에 대한 세부 정보 표시"
|
||||
}
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"URL_VALIDATION_ERROR": "프로토콜이 포함된 유효한 URL이어야 합니다(예: http://example.com 또는 https://example.com:4324)."
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "설정 / IPTVnator",
|
||||
"SUBTITLE": "응용 프로그램의 구성을 변경하십시오",
|
||||
"DESCRIPTION": "아래 목록에서 옵션을 적용하고 저장 버튼으로 확인하십시오.",
|
||||
"EPG_URL_LABEL": "EPG Url (*.xml or *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URL을 입력하십시오",
|
||||
"REFRESH_EPG": "EPG 새로 고침",
|
||||
"VIDEO_PLAYER_LABEL": "비디오 플레이어",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "옵션을 선택하세요",
|
||||
"VERSION": "버전",
|
||||
"SAVE_CHANGES": "변경 사항 저장",
|
||||
"BACK_TO_HOME": "홈으로",
|
||||
"NEW_VERSION_AVAILABLE": "새로운 버전이 있습니다",
|
||||
"LATEST_VERSION": "최신 버전을 사용하고 있습니다",
|
||||
"LANGUAGE": "언어",
|
||||
"SETTINGS_SAVED": "설정이 저장되었습니다.",
|
||||
"THEME": "테마",
|
||||
"SHOW_CAPTIONS": "Show subtitles",
|
||||
"REMOVE_ALL": "재생목록 삭제",
|
||||
"REMOVE_ALL_BUTTON": "제거하다",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "모든 재생목록 삭제",
|
||||
"MESSAGE": "응용 프로그램에서 모든 재생 목록을 삭제하시겠습니까?"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"LANGUAGE_DESCRIPTION": "애플리케이션 언어 선택",
|
||||
"PLAYLISTS_REMOVED": "모든 재생목록이 삭제되었습니다.",
|
||||
"VERSION_DESCRIPTION": "애플리케이션의 현재 버전",
|
||||
"IMPORT_DATA": "수입",
|
||||
"ADD_EPG_SOURCE": "EPG 소스 추가",
|
||||
"IMPORT_ERROR": "가져오기 오류가 발생했습니다. 다른 파일로 시도해 보세요.",
|
||||
"EPG_URL_ERROR": "값이 유효한 URL이 아닙니다.",
|
||||
"EXPORT_DATA": "내보내다",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "기본 비디오 플레이어 선택",
|
||||
"IMPORT_EXPORT_DATA": "재생목록 가져오기/내보내기",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC 경로",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "시스템에서 VLC 플레이어의 경로를 설정하십시오. \n시스템의 기본 경로 대신 VLC 바이너리에 제공된 경로를 사용합니다.",
|
||||
"THEME_DESCRIPTION": "애플리케이션의 시각적 테마 선택",
|
||||
"EPG_NOTE": "현재 EPG는 IPTVnator의 전자 기반 버전에서만 사용할 수 있습니다.",
|
||||
"VLC_PLAYER_PATH": "VLC 플레이어 경로",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "애플리케이션 내에서 사용되는 JSON 형식으로 재생 목록을 내보내거나 가져옵니다.",
|
||||
"EPG_NOTE_URL_TEXT": "여기에서 확인하세요",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv 경로"
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "어두운 테마",
|
||||
"LIGHT_THEME": "밝은 테마"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "검색 채널",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "다른 재생 목록을 업로드하거나 선택하십시오",
|
||||
"ALL_CHANNELS": "모든 채널",
|
||||
"GROUPS": "그룹",
|
||||
"UNGROUPED": "그룹 해제",
|
||||
"UNNAMED_CHANNEL": "이름없는 채널",
|
||||
"FAVORITES": "즐겨찾기",
|
||||
"NO_FAVORITES": "즐겨찾기가 아직 없습니다",
|
||||
"USE_STAR_TO_FAVORITE": "'Star'아이콘을 사용하여 이 목록에 채널을 추가하십시오.",
|
||||
"REMOVE_FAVORITE": "즐겨찾기에서 삭제하기",
|
||||
"FAVORITES_UPDATED": "즐겨찾기가 업데이트되었습니다!"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "채널 열기 목록",
|
||||
"TOGGLE_FAVORITE_FLAG": "즐겨찾기 보이기/숨기기",
|
||||
"OPEN_EPG_LIST": "EPG 목록 열기",
|
||||
"OPEN_MULTI_EPG": "Open Multi-EPG view"
|
||||
},
|
||||
"EPG": {
|
||||
"NEXT_DAY": "다음날",
|
||||
"PREVIOUS_DAY": "전날",
|
||||
"LIVE_NOW": "Live now",
|
||||
"LIVE_STREAM": "Live stream",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift를 사용할 수 있습니다, 클릭하여 재생합니다",
|
||||
"EPG_NOT_AVAILABLE_DATE": "선택한 날짜에는 EPG를 사용할 수 없습니다.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "이 채널에는 EPG를 사용할 수 없습니다.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "설정에서 EPG의 URL을 추가/변경하십시오.",
|
||||
"FETCH_EPG": "EPG 데이터 가져 오기...",
|
||||
"ERROR": "Ooops, EPG could not be loaded.",
|
||||
"DOWNLOAD_SUCCESS": "EPG was successfully downloaded.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "TV 프로그램에 대한 세부 사항",
|
||||
"TITLE": "제목",
|
||||
"CATEGORY": "카테고리",
|
||||
"PARENTAL_RATING_SYSTEM": "컨텐츠 등급 시스템",
|
||||
"DESCRIPTION": "설명",
|
||||
"LANGUAGE": "언어",
|
||||
"SHOW_PROGRAM_DETAILS": "이 프로그램에 대한 세부 정보 표시"
|
||||
}
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Yes",
|
||||
"NO": "No",
|
||||
"MENU": {
|
||||
"OPEN": "Open menu",
|
||||
"SUPPORT_ARIA": "Support IPTVnator on GitHub",
|
||||
"SETTINGS": "Settings",
|
||||
"SETTINGS_ARIA": "Open settings",
|
||||
"BUG_REPORT": "Report a bug",
|
||||
"WHAT_IS_NEW": "What is new",
|
||||
"ABOUT": "About",
|
||||
"ABOUT_ARIA": "About the application",
|
||||
"SUPPORT_PROJECT": "지원사업"
|
||||
},
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "출시일",
|
||||
"ACTORS": "배우",
|
||||
"PLAY": "놀다",
|
||||
"GENRE": "장르",
|
||||
"DURATION": "지속",
|
||||
"COUNTRY": "국가",
|
||||
"NAME": "이름",
|
||||
"DIRECTOR": "감독",
|
||||
"CAST": "깁스",
|
||||
"RATING": "평가",
|
||||
"AGE": "나이",
|
||||
"EPISODE": "삽화",
|
||||
"YEAR": "년도",
|
||||
"YOUTUBE_TRAILER": "유튜브 예고편",
|
||||
"DESCRIPTION": "설명",
|
||||
"KINOPOISK_RATING": "키노포스크 등급",
|
||||
"IMDB_RATING": "IMDB 평가",
|
||||
"EPISODE_RUN_TIME": "에피소드 실행 시간"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "모든 카테고리",
|
||||
"ADD_TO_FAVORITES": "즐겨 찾기에 추가",
|
||||
"REMOVE_FROM_FAVORITES": "즐겨 찾기에서 삭제하기",
|
||||
"MY_FAVORITES": "내가 좋아하는 것들",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "삭제",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "계정이 만료되었습니다",
|
||||
"DESCRIPTION": "이 계정은 만료되었습니다. \n재생목록 설정에서 자격 증명을 확인하거나 제거하세요."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "빈 카테고리",
|
||||
"DESCRIPTION": "이 카테고리에는 콘텐츠가 없습니다. 다른 카테고리를 선택하거나 콘텐츠 유형을 변경하세요."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "승인되지 않은",
|
||||
"DESCRIPTION": "재생목록 설정에서 자격 증명을 확인하거나 제거하세요."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "문제가 발생했습니다.",
|
||||
"DESCRIPTION": "알 수 없는 오류입니다. 나중에 다시 시도해 주세요."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "재생목록 설정"
|
||||
"YES": "Yes",
|
||||
"NO": "No",
|
||||
"MENU": {
|
||||
"OPEN": "Open menu",
|
||||
"SUPPORT_ARIA": "Support IPTVnator on GitHub",
|
||||
"SETTINGS": "Settings",
|
||||
"SETTINGS_ARIA": "Open settings",
|
||||
"BUG_REPORT": "Report a bug",
|
||||
"WHAT_IS_NEW": "What is new",
|
||||
"ABOUT": "About",
|
||||
"ABOUT_ARIA": "About the application",
|
||||
"SUPPORT_PROJECT": "지원사업"
|
||||
},
|
||||
"STREAM_URL_COPIED": "스트림 URL이 클립보드에 복사되었습니다.",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "아무것도 찾지 못했습니다. 검색 요청을 변경해 보세요."
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "출시일",
|
||||
"ACTORS": "배우",
|
||||
"PLAY": "놀다",
|
||||
"GENRE": "장르",
|
||||
"DURATION": "지속",
|
||||
"COUNTRY": "국가",
|
||||
"NAME": "이름",
|
||||
"DIRECTOR": "감독",
|
||||
"CAST": "깁스",
|
||||
"RATING": "평가",
|
||||
"AGE": "나이",
|
||||
"EPISODE": "삽화",
|
||||
"YEAR": "년도",
|
||||
"YOUTUBE_TRAILER": "유튜브 예고편",
|
||||
"DESCRIPTION": "설명",
|
||||
"KINOPOISK_RATING": "키노포스크 등급",
|
||||
"IMDB_RATING": "IMDB 평가",
|
||||
"EPISODE_RUN_TIME": "에피소드 실행 시간"
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "즐겨찾기에서 삭제됨",
|
||||
"ADDED_TO_FAVORITES": "즐겨찾기에 추가됨"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnator 소개",
|
||||
"VERSION": "버전",
|
||||
"TWITTER_TOOLTIP": "트위터에 공유",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee"
|
||||
},
|
||||
"REFRESH": "새로 고치다",
|
||||
"UPDATE_AVAILABLE": "업데이트 가능"
|
||||
}
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "모든 카테고리",
|
||||
"ADD_TO_FAVORITES": "즐겨 찾기에 추가",
|
||||
"REMOVE_FROM_FAVORITES": "즐겨 찾기에서 삭제하기",
|
||||
"MY_FAVORITES": "내가 좋아하는 것들",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "삭제",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "계정이 만료되었습니다",
|
||||
"DESCRIPTION": "이 계정은 만료되었습니다. \n재생목록 설정에서 자격 증명을 확인하거나 제거하세요."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "빈 카테고리",
|
||||
"DESCRIPTION": "이 카테고리에는 콘텐츠가 없습니다. 다른 카테고리를 선택하거나 콘텐츠 유형을 변경하세요."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "승인되지 않은",
|
||||
"DESCRIPTION": "재생목록 설정에서 자격 증명을 확인하거나 제거하세요."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "문제가 발생했습니다.",
|
||||
"DESCRIPTION": "알 수 없는 오류입니다. 나중에 다시 시도해 주세요."
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "재생목록 설정"
|
||||
},
|
||||
"STREAM_URL_COPIED": "스트림 URL이 클립보드에 복사되었습니다.",
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "아무것도 찾지 못했습니다. 검색 요청을 변경해 보세요."
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "즐겨찾기에서 삭제됨",
|
||||
"ADDED_TO_FAVORITES": "즐겨찾기에 추가됨"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnator 소개",
|
||||
"VERSION": "버전",
|
||||
"TWITTER_TOOLTIP": "트위터에 공유",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Buy me a coffee"
|
||||
},
|
||||
"REFRESH": "새로 고치다",
|
||||
"UPDATE_AVAILABLE": "업데이트 가능"
|
||||
}
|
||||
+306
-306
@@ -1,318 +1,318 @@
|
||||
{
|
||||
"CLOSE": "Afsluiten",
|
||||
"PLAYLISTS": "Afspeellijst",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Selecteer een afspeellijst of voeg een nieuwe lijst toe",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Recent toegevoegde afspeellijst",
|
||||
"FILE_UPLOAD": "Upload een bestand",
|
||||
"URL_UPLOAD": "Voeg toe via URL",
|
||||
"TEXT_IMPORT": "Voeg toe via tekst",
|
||||
"XTREME_IMPORT": "Voeg een Xtreme Code toe",
|
||||
"STALKER_PORTAL_IMPORT": "Voeg een Stalker Portal toe"
|
||||
"CLOSE": "Afsluiten",
|
||||
"PLAYLISTS": "Afspeellijst",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Selecteer een afspeellijst of voeg een nieuwe lijst toe",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Recent toegevoegde afspeellijst",
|
||||
"FILE_UPLOAD": "Upload een bestand",
|
||||
"URL_UPLOAD": "Voeg toe via URL",
|
||||
"TEXT_IMPORT": "Voeg toe via tekst",
|
||||
"XTREME_IMPORT": "Voeg een Xtreme Code toe",
|
||||
"STALKER_PORTAL_IMPORT": "Voeg een Stalker Portal toe"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Geen afspeellijst toegevoegd",
|
||||
"ADD_FIRST": "Voeg je afspeellijst toe",
|
||||
"ADDED_VIA_URL": "Toegevoegd via URL: ",
|
||||
"ADDED_VIA_FILE": "Toegevoegd via bestand",
|
||||
"XTREAM_PLAYLIST": "Xtream afspeellijst",
|
||||
"STALKER_PORTAL": "Stalker portal",
|
||||
"CHANNELS": "Kanalen",
|
||||
"ADDED": "Toegevoegd",
|
||||
"SHOW_DETAILS": "Toon afspeellijstdetails",
|
||||
"REMOVE": "Verwijder afspeellijst",
|
||||
"SEARCH_PLAYLISTS": "Zoek afspeellijst op titel",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Afspeellijstdetails",
|
||||
"TITLE": "Titel",
|
||||
"FROM_URL": "Toegevoegd vanuit URL",
|
||||
"IMPORT_DATE": "Importdatum",
|
||||
"CHANNELS": "Aantal kanalen",
|
||||
"CLOSE": "Afsluiten",
|
||||
"SAVE": "Opslaan",
|
||||
"USER_AGENT": "User-agent",
|
||||
"ORIGINAL_FILENAME": "Oorspronkelijke bestandsnaam",
|
||||
"FILE_PATH": "Bestandspad",
|
||||
"UPDATE_FAILED": "Laatste afspeellijstupdate mislukt",
|
||||
"AUTO_UPDATE": "Automatisch bijwerken",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Als automatisch bijwerken is ingeschakeld, wordt de afspeellijst bij elke start van de app vernieuwd.",
|
||||
"CUSTOM_USER_AGENT": "Sommige IPTV-providers vereisen een specifieke user-agent om de afspeellijst af te spelen.",
|
||||
"EXPORT_PLAYLIST": "Exporteer afspeellijst als m3u",
|
||||
"SERVER_URL": "Server-URL",
|
||||
"USERNAME": "Gebruikersnaam",
|
||||
"PASSWORD": "Wachtwoord",
|
||||
"MAC_ADDRESS": "MAC-adres",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Afspeellijst succesvol geëxporteerd.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Fout: exporteren van afspeellijst mislukt."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Afspeellijst verwijderen",
|
||||
"MESSAGE": "Weet je zeker dat je deze afspeellijst wilt verwijderen?",
|
||||
"SUCCESS": "Afspeellijst succesvol verwijderd."
|
||||
},
|
||||
"UPDATED": "Bijgewerkt",
|
||||
"REFRESH": "Afspeellijst vernieuwen",
|
||||
"GLOBAL_FAVORITES": "Algemene favorieten",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Automatisch gegenereerde afspeellijst met samengevoegde favorieten uit alle afspeellijsten.",
|
||||
"MY_PLAYLISTS": "Mijn afspeellijsten",
|
||||
"MY_PLAYLISTS_SUBTITLE": "Alle beschikbare afspeellijsten",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "De afspeellijst is succesvol bijgewerkt.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Fout bij het bijwerken van de afspeellijst."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Sleep bestanden hierheen",
|
||||
"OR": "of",
|
||||
"CHOOSE_PLAYLIST": "kies een afspeellijst",
|
||||
"REJECTED": "Bestand geweigerd, niet-ondersteund bestandsformaat: {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Afspeellijst-URL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Afspeellijst toevoegen",
|
||||
"CORS_NOTE": "Opmerking: om CORS-problemen te voorkomen, gebruikt de app een openbare CORS-proxyservice. Voor gevoelige gegevens is het veiliger om de afspeellijst via een bestand te importeren."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Voer een m3u(8)-afspeellijst in als tekst",
|
||||
"BUTTON_LABEL": "Importeren"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Afspeellijst titel",
|
||||
"SERVER_URL": "Server URL",
|
||||
"USERNAME": "Gebruikersnaam",
|
||||
"PASSWORD": "Wachtwoord",
|
||||
"ADD": "Toevoegen",
|
||||
"TEST_CREDENTIALS": "Test de inloggegevens",
|
||||
"URL_VALIDATION_ERROR": "Moet een geldige URL zijn met protocol (bijv. http://example.com of https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Titel",
|
||||
"MAC_ADDRESS": "Mac adres",
|
||||
"SERVER_URL": "Server URL",
|
||||
"URL_VALIDATION_ERROR": "Moet een geldige URL zijn met protocol (bijv. http://example.com/c o https://example.com/stalker_portal/c)",
|
||||
"ADD": "Toevoegen"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filter op naam",
|
||||
"FILTER_BY_TYPE": "Filter op type",
|
||||
"SORT_PLAYLISTS": "Sorteer afspeellijsten",
|
||||
"SORT_BY": "Sorteer op",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Naam (A-Z)",
|
||||
"NAME_DESC": "Naam (Z-A)",
|
||||
"NEWEST": "Datum toegevoegd (Nieuwste eerst)",
|
||||
"OLDEST": "Datum toegevoegd (Oudste eerst)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Geïmporteerd als tekst",
|
||||
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Geen afspeellijst toegevoegd",
|
||||
"ADD_FIRST": "Voeg je afspeellijst toe",
|
||||
"ADDED_VIA_URL": "Toegevoegd via URL: ",
|
||||
"ADDED_VIA_FILE": "Toegevoegd via bestand",
|
||||
"XTREAM_PLAYLIST": "Xtream afspeellijst",
|
||||
"STALKER_PORTAL": "Stalker portal",
|
||||
"CHANNELS": "Kanalen",
|
||||
"ADDED": "Toegevoegd",
|
||||
"SHOW_DETAILS": "Toon afspeellijstdetails",
|
||||
"REMOVE": "Verwijder afspeellijst",
|
||||
"SEARCH_PLAYLISTS": "Zoek afspeellijst op titel",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Afspeellijstdetails",
|
||||
"TITLE": "Titel",
|
||||
"FROM_URL": "Toegevoegd vanuit URL",
|
||||
"IMPORT_DATE": "Importdatum",
|
||||
"CHANNELS": "Aantal kanalen",
|
||||
"CLOSE": "Afsluiten",
|
||||
"SAVE": "Opslaan",
|
||||
"USER_AGENT": "User-agent",
|
||||
"ORIGINAL_FILENAME": "Oorspronkelijke bestandsnaam",
|
||||
"FILE_PATH": "Bestandspad",
|
||||
"UPDATE_FAILED": "Laatste afspeellijstupdate mislukt",
|
||||
"AUTO_UPDATE": "Automatisch bijwerken",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Als automatisch bijwerken is ingeschakeld, wordt de afspeellijst bij elke start van de app vernieuwd.",
|
||||
"CUSTOM_USER_AGENT": "Sommige IPTV-providers vereisen een specifieke user-agent om de afspeellijst af te spelen.",
|
||||
"EXPORT_PLAYLIST": "Exporteer afspeellijst als m3u",
|
||||
"SERVER_URL": "Server-URL",
|
||||
"USERNAME": "Gebruikersnaam",
|
||||
"PASSWORD": "Wachtwoord",
|
||||
"MAC_ADDRESS": "MAC-adres",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Afspeellijst succesvol geëxporteerd.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Fout: exporteren van afspeellijst mislukt."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Afspeellijst verwijderen",
|
||||
"MESSAGE": "Weet je zeker dat je deze afspeellijst wilt verwijderen?",
|
||||
"SUCCESS": "Afspeellijst succesvol verwijderd."
|
||||
},
|
||||
"UPDATED": "Bijgewerkt",
|
||||
"REFRESH": "Afspeellijst vernieuwen",
|
||||
"GLOBAL_FAVORITES": "Algemene favorieten",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Automatisch gegenereerde afspeellijst met samengevoegde favorieten uit alle afspeellijsten.",
|
||||
"MY_PLAYLISTS": "Mijn afspeellijsten",
|
||||
"MY_PLAYLISTS_SUBTITLE": "Alle beschikbare afspeellijsten",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "De afspeellijst is succesvol bijgewerkt.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Fout bij het bijwerken van de afspeellijst."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Instellingen",
|
||||
"SUBTITLE": "Wijzig de configuratie van de applicatie",
|
||||
"DESCRIPTION": "Pas de instellingen aan en bevestig met de knop 'Wijzigingen opslaan'.",
|
||||
"EPG_URL_LABEL": "EPG-URL (*.xml of *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Voer een URL in",
|
||||
"REFRESH_EPG": "EPG vernieuwen",
|
||||
"VIDEO_PLAYER_LABEL": "Videospeler",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecteer een optie",
|
||||
"VERSION": "Versie",
|
||||
"SAVE_CHANGES": "Wijzigingen opslaan",
|
||||
"BACK_TO_HOME": "Terug",
|
||||
"NEW_VERSION_AVAILABLE": "Een nieuwe versie is beschikbaar",
|
||||
"LATEST_VERSION": "Je gebruikt de nieuwste versie",
|
||||
"LANGUAGE": "Taal",
|
||||
"SETTINGS_SAVED": "Succes! De instellingen zijn opgeslagen.",
|
||||
"THEME": "Visueel thema",
|
||||
"SHOW_CAPTIONS": "Ondertiteling weergeven",
|
||||
"ADD_EPG_SOURCE": "EPG-bron toevoegen",
|
||||
"EPG_URL_ERROR": "De opgegeven waarde is geen geldige URL.",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Selecteer de standaard videospeler",
|
||||
"LANGUAGE_DESCRIPTION": "Selecteer de taal van de applicatie",
|
||||
"THEME_DESCRIPTION": "Kies het visuele thema van de applicatie",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Standaard ondertiteling weergeven of verbergen",
|
||||
"VERSION_DESCRIPTION": "Huidige versie van de applicatie",
|
||||
"EPG_NOTE": "Momenteel is EPG alleen beschikbaar in de op Electron gebaseerde versie van IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Bekijk het hier",
|
||||
"IMPORT_EXPORT_DATA": "Afspeellijsten importeren/exporteren",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exporteer of importeer afspeellijsten in JSON-formaat.",
|
||||
"IMPORT_DATA": "Importeren",
|
||||
"EXPORT_DATA": "Exporteren",
|
||||
"REMOVE_ALL": "Afspeellijsten verwijderen",
|
||||
"REMOVE_ALL_BUTTON": "Verwijderen",
|
||||
"REMOVE_ALL_DESCRIPTION": "Hiermee verwijder je alle afspeellijsten uit de applicatie.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Alle afspeellijsten verwijderen",
|
||||
"MESSAGE": "Weet je zeker dat je alle afspeellijsten wilt verwijderen?"
|
||||
},
|
||||
"IMPORT_ERROR": "Fout bij importeren, probeer een ander bestand.",
|
||||
"PLAYLISTS_REMOVED": "Alle afspeellijsten zijn verwijderd.",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv-bestandspad",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de mpv-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van de standaard mpv-bestand uit $PATH.",
|
||||
"MPV_PLAYER_PATH": "mpv-speler bestandspad",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC-bestandspad",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de VLC-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van het standaardpad van het systeem.",
|
||||
"VLC_PLAYER_PATH": "VLC-speler bestandspad",
|
||||
"REMOTE_CONTROL": "Afstandsbediening",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Schakel de afstandsbediening voor de applicatie in.",
|
||||
"REMOTE_CONTROL_PORT": "Afstandsbedieningspoort",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Poort voor de afstandsbediening van de applicatie. Standaard wordt poort 3000 gebruikt."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Sleep bestanden hierheen",
|
||||
"OR": "of",
|
||||
"CHOOSE_PLAYLIST": "kies een afspeellijst",
|
||||
"REJECTED": "Bestand geweigerd, niet-ondersteund bestandsformaat: {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Donker thema",
|
||||
"LIGHT_THEME": "Licht thema"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Afspeellijst-URL (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Afspeellijst toevoegen",
|
||||
"CORS_NOTE": "Opmerking: om CORS-problemen te voorkomen, gebruikt de app een openbare CORS-proxyservice. Voor gevoelige gegevens is het veiliger om de afspeellijst via een bestand te importeren."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Zoek een kanaal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Upload of selecteer een andere afspeellijst",
|
||||
"ALL_CHANNELS": "Alle kanalen",
|
||||
"GROUPS": "Groepen",
|
||||
"UNGROUPED": "Niet gegroepeerd",
|
||||
"UNNAMED_CHANNEL": "Naamloos kanaal",
|
||||
"FAVORITES": "Favorieten",
|
||||
"NO_FAVORITES": "Nog geen favorieten",
|
||||
"USE_STAR_TO_FAVORITE": "Gebruik het ster-icoon om kanalen toe te voegen aan je favorieten.",
|
||||
"REMOVE_FAVORITE": "Verwijder uit favorieten",
|
||||
"FAVORITES_UPDATED": "Favorieten zijn bijgewerkt!",
|
||||
"SORT_BY": "Sorteren op",
|
||||
"SORT_BY_DATE": "Sorteren op datum toegevoegd (Nieuwste eerst)",
|
||||
"SORT_BY_RATING": "Sorteren op beoordeling",
|
||||
"SORT_BY_NAME": "Sorteren op naam (A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Voer een m3u(8)-afspeellijst in als tekst",
|
||||
"BUTTON_LABEL": "Importeren"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Open kanalenlijst",
|
||||
"TOGGLE_FAVORITE_FLAG": "Wissel favorietenstatus",
|
||||
"OPEN_EPG_LIST": "Open TV-gids lijst",
|
||||
"OPEN_MULTI_EPG": "Open Multi TV-Gids weergave"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Afspeellijst titel",
|
||||
"SERVER_URL": "Server URL",
|
||||
"USERNAME": "Gebruikersnaam",
|
||||
"PASSWORD": "Wachtwoord",
|
||||
"ADD": "Toevoegen",
|
||||
"TEST_CREDENTIALS": "Test de inloggegevens",
|
||||
"URL_VALIDATION_ERROR": "Moet een geldige URL zijn met protocol (bijv. http://example.com of https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "TV-Gids",
|
||||
"NEXT_DAY": "Volgende dag",
|
||||
"PREVIOUS_DAY": "Vorige dag",
|
||||
"LIVE_NOW": "Nu live",
|
||||
"LIVE_STREAM": "Live stream",
|
||||
"TIMESHIFT_AVAILABLE": "Doorspoelen is beschikbaar, klik om af te spelen",
|
||||
"EPG_NOT_AVAILABLE_DATE": "De TV-Gids is niet beschikbaar voor de geselecteerde datum",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "De TV-Gids is niet beschikbaar voor dit kanaal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Voeg een TV-Gids URL toe of wijzig deze in de instellingen van de app.",
|
||||
"FETCH_EPG": "Ophalen TV-Gids...",
|
||||
"ERROR": "TV-Gids kan niet geladen worden.",
|
||||
"DOWNLOAD_SUCCESS": "De TV-Gids is gedownload.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Details over het tv-programma",
|
||||
"TITLE": "Titel",
|
||||
"CATEGORY": "Categorie",
|
||||
"PARENTAL_RATING_SYSTEM": "Kijkwijzer",
|
||||
"DESCRIPTION": "Beschrijving",
|
||||
"LANGUAGE": "Taal",
|
||||
"SHOW_PROGRAM_DETAILS": "Toon details over dit programma"
|
||||
},
|
||||
"FETCH_SUCCESS": "TV-Gids bijgewerkt"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Titel",
|
||||
"MAC_ADDRESS": "Mac adres",
|
||||
"SERVER_URL": "Server URL",
|
||||
"URL_VALIDATION_ERROR": "Moet een geldige URL zijn met protocol (bijv. http://example.com/c o https://example.com/stalker_portal/c)",
|
||||
"ADD": "Toevoegen"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filter op naam",
|
||||
"FILTER_BY_TYPE": "Filter op type",
|
||||
"SORT_PLAYLISTS": "Sorteer afspeellijsten",
|
||||
"SORT_BY": "Sorteer op",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Naam (A-Z)",
|
||||
"NAME_DESC": "Naam (Z-A)",
|
||||
"NEWEST": "Datum toegevoegd (Nieuwste eerst)",
|
||||
"OLDEST": "Datum toegevoegd (Oudste eerst)"
|
||||
"YES": "Ja",
|
||||
"NO": "Nee",
|
||||
"MENU": {
|
||||
"OPEN": "Open menu",
|
||||
"SUPPORT_ARIA": "Ondersteun IPTVnator op GitHub",
|
||||
"SETTINGS": "Instellingen",
|
||||
"SETTINGS_ARIA": "Open instellingen",
|
||||
"BUG_REPORT": "Meld een bug",
|
||||
"WHAT_IS_NEW": "Wat is er nieuw",
|
||||
"ABOUT": "Over",
|
||||
"ABOUT_ARIA": "Over de applicatie",
|
||||
"SUPPORT_PROJECT": "Ondersteun het project"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Geïmporteerd als tekst",
|
||||
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Instellingen / IPTVnator",
|
||||
"SUBTITLE": "Wijzig de configuratie van de applicatie",
|
||||
"DESCRIPTION": "Pas de instellingen aan en bevestig met de knop 'Wijzigingen opslaan'.",
|
||||
"EPG_URL_LABEL": "EPG-URL (*.xml of *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Voer een URL in",
|
||||
"REFRESH_EPG": "EPG vernieuwen",
|
||||
"VIDEO_PLAYER_LABEL": "Videospeler",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecteer een optie",
|
||||
"VERSION": "Versie",
|
||||
"SAVE_CHANGES": "Wijzigingen opslaan",
|
||||
"BACK_TO_HOME": "Terug",
|
||||
"NEW_VERSION_AVAILABLE": "Een nieuwe versie is beschikbaar",
|
||||
"LATEST_VERSION": "Je gebruikt de nieuwste versie",
|
||||
"LANGUAGE": "Taal",
|
||||
"SETTINGS_SAVED": "Succes! De instellingen zijn opgeslagen.",
|
||||
"THEME": "Visueel thema",
|
||||
"SHOW_CAPTIONS": "Ondertiteling weergeven",
|
||||
"ADD_EPG_SOURCE": "EPG-bron toevoegen",
|
||||
"EPG_URL_ERROR": "De opgegeven waarde is geen geldige URL.",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Selecteer de standaard videospeler",
|
||||
"LANGUAGE_DESCRIPTION": "Selecteer de taal van de applicatie",
|
||||
"THEME_DESCRIPTION": "Kies het visuele thema van de applicatie",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Standaard ondertiteling weergeven of verbergen",
|
||||
"VERSION_DESCRIPTION": "Huidige versie van de applicatie",
|
||||
"EPG_NOTE": "Momenteel is EPG alleen beschikbaar in de op Electron gebaseerde versie van IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Bekijk het hier",
|
||||
"IMPORT_EXPORT_DATA": "Afspeellijsten importeren/exporteren",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exporteer of importeer afspeellijsten in JSON-formaat.",
|
||||
"IMPORT_DATA": "Importeren",
|
||||
"EXPORT_DATA": "Exporteren",
|
||||
"REMOVE_ALL": "Afspeellijsten verwijderen",
|
||||
"REMOVE_ALL_BUTTON": "Verwijderen",
|
||||
"REMOVE_ALL_DESCRIPTION": "Hiermee verwijder je alle afspeellijsten uit de applicatie.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Alle afspeellijsten verwijderen",
|
||||
"MESSAGE": "Weet je zeker dat je alle afspeellijsten wilt verwijderen?"
|
||||
"ABOUT": {
|
||||
"TITLE": "Over IPTVnator",
|
||||
"DESCRIPTION": "Cross-platform IPTV-speler met meerdere features zoals ondersteuning voor m3u en m3u8 afspeellijsten, favorieten, TV-gids, TV-archief en meer.",
|
||||
"VERSION": "Versie",
|
||||
"GITHUB_TOOLTIP": "ITPVnator repository op GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Koop een kopje koffie",
|
||||
"TWITTER_TOOLTIP": "Deel op X"
|
||||
},
|
||||
"IMPORT_ERROR": "Fout bij importeren, probeer een ander bestand.",
|
||||
"PLAYLISTS_REMOVED": "Alle afspeellijsten zijn verwijderd.",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv-bestandspad",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de mpv-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van de standaard mpv-bestand uit $PATH.",
|
||||
"MPV_PLAYER_PATH": "mpv-speler bestandspad",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC-bestandspad",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Stel het bestandspad in naar de VLC-speler op je systeem. Dit bestandspad wordt gebruikt in plaats van het standaardpad van het systeem.",
|
||||
"VLC_PLAYER_PATH": "VLC-speler bestandspad",
|
||||
"REMOTE_CONTROL": "Afstandsbediening",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Schakel de afstandsbediening voor de applicatie in.",
|
||||
"REMOTE_CONTROL_PORT": "Afstandsbedieningspoort",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Poort voor de afstandsbediening van de applicatie. Standaard wordt poort 3000 gebruikt."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Donker thema",
|
||||
"LIGHT_THEME": "Licht thema"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Zoek een kanaal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Upload of selecteer een andere afspeellijst",
|
||||
"ALL_CHANNELS": "Alle kanalen",
|
||||
"GROUPS": "Groepen",
|
||||
"UNGROUPED": "Niet gegroepeerd",
|
||||
"UNNAMED_CHANNEL": "Naamloos kanaal",
|
||||
"FAVORITES": "Favorieten",
|
||||
"NO_FAVORITES": "Nog geen favorieten",
|
||||
"USE_STAR_TO_FAVORITE": "Gebruik het ster-icoon om kanalen toe te voegen aan je favorieten.",
|
||||
"REMOVE_FAVORITE": "Verwijder uit favorieten",
|
||||
"FAVORITES_UPDATED": "Favorieten zijn bijgewerkt!",
|
||||
"SORT_BY": "Sorteren op",
|
||||
"SORT_BY_DATE": "Sorteren op datum toegevoegd (Nieuwste eerst)",
|
||||
"SORT_BY_RATING": "Sorteren op beoordeling",
|
||||
"SORT_BY_NAME": "Sorteren op naam (A-Z)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Open kanalenlijst",
|
||||
"TOGGLE_FAVORITE_FLAG": "Wissel favorietenstatus",
|
||||
"OPEN_EPG_LIST": "Open TV-gids lijst",
|
||||
"OPEN_MULTI_EPG": "Open Multi TV-Gids weergave"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "TV-Gids",
|
||||
"NEXT_DAY": "Volgende dag",
|
||||
"PREVIOUS_DAY": "Vorige dag",
|
||||
"LIVE_NOW": "Nu live",
|
||||
"LIVE_STREAM": "Live stream",
|
||||
"TIMESHIFT_AVAILABLE": "Doorspoelen is beschikbaar, klik om af te spelen",
|
||||
"EPG_NOT_AVAILABLE_DATE": "De TV-Gids is niet beschikbaar voor de geselecteerde datum",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "De TV-Gids is niet beschikbaar voor dit kanaal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Voeg een TV-Gids URL toe of wijzig deze in de instellingen van de app.",
|
||||
"FETCH_EPG": "Ophalen TV-Gids...",
|
||||
"ERROR": "TV-Gids kan niet geladen worden.",
|
||||
"DOWNLOAD_SUCCESS": "De TV-Gids is gedownload.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Details over het tv-programma",
|
||||
"TITLE": "Titel",
|
||||
"CATEGORY": "Categorie",
|
||||
"PARENTAL_RATING_SYSTEM": "Kijkwijzer",
|
||||
"DESCRIPTION": "Beschrijving",
|
||||
"LANGUAGE": "Taal",
|
||||
"SHOW_PROGRAM_DETAILS": "Toon details over dit programma"
|
||||
"UPDATE_AVAILABLE": "Update beschikbaar",
|
||||
"REFRESH": "Ververs",
|
||||
"XTREAM": {
|
||||
"PLAY": "Afspelen",
|
||||
"NAME": "Naam",
|
||||
"RELEASE_DATE": "Verschijningsdatum",
|
||||
"GENRE": "Genre",
|
||||
"COUNTRY": "Land",
|
||||
"ACTORS": "Acteurs",
|
||||
"DIRECTOR": "Regisseur",
|
||||
"DURATION": "Lengte",
|
||||
"CAST": "Cast",
|
||||
"EPISODE_RUN_TIME": "Aflevering lengte",
|
||||
"RATING": "Score",
|
||||
"IMDB_RATING": " Score op IMDB",
|
||||
"KINOPOISK_RATING": "Score op Kinopoisk",
|
||||
"DESCRIPTION": "Beschrijving",
|
||||
"YEAR": "Jaar",
|
||||
"AGE": "Leeftijd",
|
||||
"YOUTUBE_TRAILER": "YouTube Trailer",
|
||||
"EPISODE": "Aflevering"
|
||||
},
|
||||
"FETCH_SUCCESS": "TV-Gids bijgewerkt"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Ja",
|
||||
"NO": "Nee",
|
||||
"MENU": {
|
||||
"OPEN": "Open menu",
|
||||
"SUPPORT_ARIA": "Ondersteun IPTVnator op GitHub",
|
||||
"SETTINGS": "Instellingen",
|
||||
"SETTINGS_ARIA": "Open instellingen",
|
||||
"BUG_REPORT": "Meld een bug",
|
||||
"WHAT_IS_NEW": "Wat is er nieuw",
|
||||
"ABOUT": "Over",
|
||||
"ABOUT_ARIA": "Over de applicatie",
|
||||
"SUPPORT_PROJECT": "Ondersteun het project"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "Over IPTVnator",
|
||||
"DESCRIPTION": "Cross-platform IPTV-speler met meerdere features zoals ondersteuning voor m3u en m3u8 afspeellijsten, favorieten, TV-gids, TV-archief en meer.",
|
||||
"VERSION": "Versie",
|
||||
"GITHUB_TOOLTIP": "ITPVnator repository op GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Koop een kopje koffie",
|
||||
"TWITTER_TOOLTIP": "Deel op X"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Update beschikbaar",
|
||||
"REFRESH": "Ververs",
|
||||
"XTREAM": {
|
||||
"PLAY": "Afspelen",
|
||||
"NAME": "Naam",
|
||||
"RELEASE_DATE": "Verschijningsdatum",
|
||||
"GENRE": "Genre",
|
||||
"COUNTRY": "Land",
|
||||
"ACTORS": "Acteurs",
|
||||
"DIRECTOR": "Regisseur",
|
||||
"DURATION": "Lengte",
|
||||
"CAST": "Cast",
|
||||
"EPISODE_RUN_TIME": "Aflevering lengte",
|
||||
"RATING": "Score",
|
||||
"IMDB_RATING": " Score op IMDB",
|
||||
"KINOPOISK_RATING": "Score op Kinopoisk",
|
||||
"DESCRIPTION": "Beschrijving",
|
||||
"YEAR": "Jaar",
|
||||
"AGE": "Leeftijd",
|
||||
"YOUTUBE_TRAILER": "YouTube Trailer",
|
||||
"EPISODE": "Aflevering"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Alle categoriën",
|
||||
"MY_FAVORITES": "Mijn favorieten",
|
||||
"ADD_TO_FAVORITES": "Voeg toe aan favorieten",
|
||||
"REMOVE_FROM_FAVORITES": "Verwijder van favorieten",
|
||||
"REMOVED_FROM_FAVORITES": "Verwijderd van favorieten",
|
||||
"ADDED_TO_FAVORITES": "Toegevoegd aan favorieten",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Account verlopen",
|
||||
"DESCRIPTION": "Dit account is verlopen. Controleer de gegevens in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Niet geautoriseerd",
|
||||
"DESCRIPTION": "Controleer de inloggegevens in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal niet gevonden",
|
||||
"DESCRIPTION": "Controleer de inloggegevens en de portal url in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Lege categorie",
|
||||
"DESCRIPTION": "Deze categorie heeft geen inhoud, selecteer een andere categorie of verander de categorie"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Fout, er is iets misgegaan",
|
||||
"DESCRIPTION": "Onbekende fout, probeer het later opnieuw"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Afspeellijst instellingen",
|
||||
"HOME": "Home",
|
||||
"DELETE": "Verwijderen"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Alle categoriën",
|
||||
"MY_FAVORITES": "Mijn favorieten",
|
||||
"ADD_TO_FAVORITES": "Voeg toe aan favorieten",
|
||||
"REMOVE_FROM_FAVORITES": "Verwijder van favorieten",
|
||||
"REMOVED_FROM_FAVORITES": "Verwijderd van favorieten",
|
||||
"ADDED_TO_FAVORITES": "Toegevoegd aan favorieten",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Account verlopen",
|
||||
"DESCRIPTION": "Dit account is verlopen. Controleer de gegevens in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Niet geautoriseerd",
|
||||
"DESCRIPTION": "Controleer de inloggegevens in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal niet gevonden",
|
||||
"DESCRIPTION": "Controleer de inloggegevens en de portal url in de afspeellijst instellingen of verwijder de afspeellijst."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Lege categorie",
|
||||
"DESCRIPTION": "Deze categorie heeft geen inhoud, selecteer een andere categorie of verander de categorie"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Fout, er is iets misgegaan",
|
||||
"DESCRIPTION": "Onbekende fout, probeer het later opnieuw"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Afspeellijst instellingen",
|
||||
"HOME": "Home",
|
||||
"DELETE": "Verwijderen"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Niks gevonden, verander je zoekopdracht"
|
||||
},
|
||||
"STREAM_URL_COPIED": "Stream URL Gekopieërd",
|
||||
"COPY_STREAM_URL": "Kopieër Stream URL"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Niks gevonden, verander je zoekopdracht"
|
||||
},
|
||||
"STREAM_URL_COPIED": "Stream URL Gekopieërd",
|
||||
"COPY_STREAM_URL": "Kopieër Stream URL"
|
||||
},
|
||||
"INFORMATION": "Informatie",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Afstandsbediening",
|
||||
"UP_CHANNEL": "Kanaal omhoog",
|
||||
"DOWN_CHANNEL": "Kanaal omlaag",
|
||||
"HEADER": "IPTVNator Afstandsbediening",
|
||||
"FOOTER": "IPTVNator Afstandsbediening"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "Informatie",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Afstandsbediening",
|
||||
"UP_CHANNEL": "Kanaal omhoog",
|
||||
"DOWN_CHANNEL": "Kanaal omlaag",
|
||||
"HEADER": "IPTVNator Afstandsbediening",
|
||||
"FOOTER": "IPTVNator Afstandsbediening"
|
||||
}
|
||||
}
|
||||
+306
-306
@@ -1,318 +1,318 @@
|
||||
{
|
||||
"CLOSE": "Zamknij",
|
||||
"PLAYLISTS": "Listy odtwarzania",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Wybierz listę odtwarzania z listy lub dodaj nową listę odtwarzania",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Ostatnio dodane listy odtwarzania",
|
||||
"FILE_UPLOAD": "Dodaj przez przesłanie pliku",
|
||||
"URL_UPLOAD": "Dodaj przez URL",
|
||||
"TEXT_IMPORT": "Importuj z tekstu",
|
||||
"XTREME_IMPORT": "Dodaj kod Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "Dodaj portal Stalker"
|
||||
"CLOSE": "Zamknij",
|
||||
"PLAYLISTS": "Listy odtwarzania",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Wybierz listę odtwarzania z listy lub dodaj nową listę odtwarzania",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Ostatnio dodane listy odtwarzania",
|
||||
"FILE_UPLOAD": "Dodaj przez przesłanie pliku",
|
||||
"URL_UPLOAD": "Dodaj przez URL",
|
||||
"TEXT_IMPORT": "Importuj z tekstu",
|
||||
"XTREME_IMPORT": "Dodaj kod Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "Dodaj portal Stalker"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Nie dodano żadnych list odtwarzania",
|
||||
"ADD_FIRST": "Dodaj swoją pierwszą listę odtwarzania",
|
||||
"ADDED_VIA_URL": "Dodano przez przesłanie URL. URL:",
|
||||
"ADDED_VIA_FILE": "Dodano przez przesłanie pliku",
|
||||
"XTREAM_PLAYLIST": "Lista odtwarzania Xtream",
|
||||
"STALKER_PORTAL": "Portal Stalker",
|
||||
"CHANNELS": "Kanały",
|
||||
"ADDED": "Dodano",
|
||||
"SHOW_DETAILS": "Pokaż szczegóły listy odtwarzania",
|
||||
"REMOVE": "Usuń listę odtwarzania",
|
||||
"SEARCH_PLAYLISTS": "Szukaj list odtwarzania według tytułu",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Szczegóły listy odtwarzania",
|
||||
"TITLE": "Tytuł",
|
||||
"FROM_URL": "Dodano z URL",
|
||||
"IMPORT_DATE": "Data importu",
|
||||
"CHANNELS": "Liczba kanałów",
|
||||
"CLOSE": "Zamknij",
|
||||
"SAVE": "Zapisz",
|
||||
"USER_AGENT": "Agent użytkownika",
|
||||
"ORIGINAL_FILENAME": "Oryginalna nazwa pliku",
|
||||
"FILE_PATH": "Ścieżka pliku",
|
||||
"UPDATE_FAILED": "Ostatnia aktualizacja listy odtwarzania nie powiodła się",
|
||||
"AUTO_UPDATE": "Automatyczna aktualizacja",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Jeśli funkcja automatycznego odświeżania jest aktywna, lista odtwarzania będzie automatycznie aktualizowana przy każdym uruchomieniu aplikacji.",
|
||||
"CUSTOM_USER_AGENT": "Niektórzy dostawcy IPTV wymagają określonego agenta użytkownika, aby odtworzyć ich listę odtwarzania.",
|
||||
"EXPORT_PLAYLIST": "Eksportuj listę odtwarzania jako m3u",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"USERNAME": "Nazwa użytkownika",
|
||||
"PASSWORD": "Hasło",
|
||||
"MAC_ADDRESS": "Adres Mac",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Lista odtwarzania została pomyślnie wyeksportowana.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Błąd: Eksport listy odtwarzania nie powiódł się."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Usuń listę odtwarzania",
|
||||
"MESSAGE": "Czy na pewno chcesz całkowicie usunąć tę listę odtwarzania?",
|
||||
"SUCCESS": "Lista odtwarzania została pomyślnie usunięta"
|
||||
},
|
||||
"UPDATED": "Zaktualizowano",
|
||||
"REFRESH": "Odśwież listę odtwarzania",
|
||||
"GLOBAL_FAVORITES": "Globalne ulubione",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Automatycznie wygenerowana lista odtwarzania z zagregowanymi ulubionymi ze wszystkich list odtwarzania",
|
||||
"MY_PLAYLISTS": "Moje listy odtwarzania",
|
||||
"MY_PLAYLISTS_SUBTITLE": "wszystkie dostępne listy odtwarzania",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Sukces! Lista odtwarzania została pomyślnie zaktualizowana.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Błąd aktualizacji szczegółów listy odtwarzania."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Przeciągnij i upuść pliki tutaj",
|
||||
"OR": "lub",
|
||||
"CHOOSE_PLAYLIST": "wybierz listę odtwarzania",
|
||||
"REJECTED": "Plik został odrzucony, nieobsługiwany format pliku {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL listy odtwarzania (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Dodaj listę odtwarzania",
|
||||
"CORS_NOTE": "Uwaga: Aby uniknąć problemów z CORS, aplikacja używa publicznej usługi proxy CORS. Jeśli chcesz przesłać listę odtwarzania z wrażliwymi danymi, bezpieczniej jest zaimportować ją z pliku."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Wklej listę odtwarzania m3u(8) jako tekst",
|
||||
"BUTTON_LABEL": "Importuj"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Tytuł listy odtwarzania",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"USERNAME": "Nazwa użytkownika",
|
||||
"PASSWORD": "Hasło",
|
||||
"ADD": "Dodaj",
|
||||
"TEST_CREDENTIALS": "Testuj dane uwierzytelniające",
|
||||
"URL_VALIDATION_ERROR": "Powinien to być poprawny URL z protokołem (np. http://example.com lub https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Tytuł",
|
||||
"MAC_ADDRESS": "Adres Mac",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"URL_VALIDATION_ERROR": "Powinien to być poprawny URL z protokołem (np. http://example.com/c lub https://example.com/stalker_portal/c)",
|
||||
"ADD": "Dodaj"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filtruj według nazwy",
|
||||
"FILTER_BY_TYPE": "Filtruj według typu",
|
||||
"SORT_PLAYLISTS": "Sortuj listy odtwarzania",
|
||||
"SORT_BY": "Sortuj według",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Nazwa (A-Z)",
|
||||
"NAME_DESC": "Nazwa (Z-A)",
|
||||
"NEWEST": "Data dodania (najnowsze pierwsze)",
|
||||
"OLDEST": "Data dodania (najstarsze pierwsze)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Zaimportowano jako tekst",
|
||||
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Nie dodano żadnych list odtwarzania",
|
||||
"ADD_FIRST": "Dodaj swoją pierwszą listę odtwarzania",
|
||||
"ADDED_VIA_URL": "Dodano przez przesłanie URL. URL:",
|
||||
"ADDED_VIA_FILE": "Dodano przez przesłanie pliku",
|
||||
"XTREAM_PLAYLIST": "Lista odtwarzania Xtream",
|
||||
"STALKER_PORTAL": "Portal Stalker",
|
||||
"CHANNELS": "Kanały",
|
||||
"ADDED": "Dodano",
|
||||
"SHOW_DETAILS": "Pokaż szczegóły listy odtwarzania",
|
||||
"REMOVE": "Usuń listę odtwarzania",
|
||||
"SEARCH_PLAYLISTS": "Szukaj list odtwarzania według tytułu",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Szczegóły listy odtwarzania",
|
||||
"TITLE": "Tytuł",
|
||||
"FROM_URL": "Dodano z URL",
|
||||
"IMPORT_DATE": "Data importu",
|
||||
"CHANNELS": "Liczba kanałów",
|
||||
"CLOSE": "Zamknij",
|
||||
"SAVE": "Zapisz",
|
||||
"USER_AGENT": "Agent użytkownika",
|
||||
"ORIGINAL_FILENAME": "Oryginalna nazwa pliku",
|
||||
"FILE_PATH": "Ścieżka pliku",
|
||||
"UPDATE_FAILED": "Ostatnia aktualizacja listy odtwarzania nie powiodła się",
|
||||
"AUTO_UPDATE": "Automatyczna aktualizacja",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Jeśli funkcja automatycznego odświeżania jest aktywna, lista odtwarzania będzie automatycznie aktualizowana przy każdym uruchomieniu aplikacji.",
|
||||
"CUSTOM_USER_AGENT": "Niektórzy dostawcy IPTV wymagają określonego agenta użytkownika, aby odtworzyć ich listę odtwarzania.",
|
||||
"EXPORT_PLAYLIST": "Eksportuj listę odtwarzania jako m3u",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"USERNAME": "Nazwa użytkownika",
|
||||
"PASSWORD": "Hasło",
|
||||
"MAC_ADDRESS": "Adres Mac",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Lista odtwarzania została pomyślnie wyeksportowana.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Błąd: Eksport listy odtwarzania nie powiódł się."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Usuń listę odtwarzania",
|
||||
"MESSAGE": "Czy na pewno chcesz całkowicie usunąć tę listę odtwarzania?",
|
||||
"SUCCESS": "Lista odtwarzania została pomyślnie usunięta"
|
||||
},
|
||||
"UPDATED": "Zaktualizowano",
|
||||
"REFRESH": "Odśwież listę odtwarzania",
|
||||
"GLOBAL_FAVORITES": "Globalne ulubione",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Automatycznie wygenerowana lista odtwarzania z zagregowanymi ulubionymi ze wszystkich list odtwarzania",
|
||||
"MY_PLAYLISTS": "Moje listy odtwarzania",
|
||||
"MY_PLAYLISTS_SUBTITLE": "wszystkie dostępne listy odtwarzania",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Sukces! Lista odtwarzania została pomyślnie zaktualizowana.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Błąd aktualizacji szczegółów listy odtwarzania."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ustawienia",
|
||||
"SUBTITLE": "Zmień konfigurację aplikacji",
|
||||
"DESCRIPTION": "Dostosuj opcje z poniższej listy i potwierdź przyciskiem „Zapisz zmiany”",
|
||||
"EPG_URL_LABEL": "URL EPG (*.xml lub *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Wprowadź URL",
|
||||
"REFRESH_EPG": "Odśwież EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Odtwarzacz wideo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Wybierz opcję",
|
||||
"VERSION": "Wersja",
|
||||
"SAVE_CHANGES": "Zapisz zmiany",
|
||||
"BACK_TO_HOME": "Wróć",
|
||||
"NEW_VERSION_AVAILABLE": "Dostępna jest nowa wersja",
|
||||
"LATEST_VERSION": "Używasz najnowszej wersji",
|
||||
"LANGUAGE": "Język",
|
||||
"SETTINGS_SAVED": "Sukces! Konfiguracja została zapisana.",
|
||||
"THEME": "Motyw wizualny",
|
||||
"SHOW_CAPTIONS": "Pokaż napisy",
|
||||
"ADD_EPG_SOURCE": "Dodaj źródło EPG",
|
||||
"EPG_URL_ERROR": "Wartość nie jest prawidłowym URL",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Wybierz domyślny odtwarzacz wideo",
|
||||
"LANGUAGE_DESCRIPTION": "Wybierz język aplikacji",
|
||||
"THEME_DESCRIPTION": "Wybierz motyw wizualny aplikacji",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Domyślnie pokaż lub ukryj napisy",
|
||||
"VERSION_DESCRIPTION": "Aktualna wersja aplikacji",
|
||||
"EPG_NOTE": "Obecnie EPG jest dostępne tylko w wersji IPTVnator opartej na Electron.",
|
||||
"EPG_NOTE_URL_TEXT": "Sprawdź tutaj",
|
||||
"IMPORT_EXPORT_DATA": "Import/eksport list odtwarzania",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Eksportuj lub importuj listy odtwarzania w formacie JSON używanym w aplikacji.",
|
||||
"IMPORT_DATA": "Importuj",
|
||||
"EXPORT_DATA": "Eksportuj",
|
||||
"REMOVE_ALL": "Usuń listy odtwarzania",
|
||||
"REMOVE_ALL_BUTTON": "Usuń",
|
||||
"REMOVE_ALL_DESCRIPTION": "Spowoduje to usunięcie wszystkich istniejących list odtwarzania z aplikacji.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Usuń wszystkie listy odtwarzania",
|
||||
"MESSAGE": "Czy na pewno chcesz usunąć wszystkie listy odtwarzania z aplikacji?"
|
||||
},
|
||||
"IMPORT_ERROR": "Błąd importu, spróbuj z innym plikiem.",
|
||||
"PLAYLISTS_REMOVED": "Wszystkie listy odtwarzania zostały usunięte.",
|
||||
"MPV_PLAYER_PATH_LABEL": "Ścieżka mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza mpv w systemie. Będzie używać podanej ścieżki do pliku binarnego mpv zamiast tego znalezionego w $PATH.",
|
||||
"MPV_PLAYER_PATH": "Ścieżka odtwarzacza mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "Ścieżka VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza VLC w systemie. Będzie używać podanej ścieżki do pliku binarnego VLC zamiast domyślnej ścieżki dla naszego systemu.",
|
||||
"VLC_PLAYER_PATH": "Ścieżka odtwarzacza VLC",
|
||||
"REMOTE_CONTROL": "Zdalne sterowanie",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Włącz zdalne sterowanie aplikacją.",
|
||||
"REMOTE_CONTROL_PORT": "Port zdalnego sterowania",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Port używany do zdalnego sterowania aplikacją. Domyślnie używany jest port 3000."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Przeciągnij i upuść pliki tutaj",
|
||||
"OR": "lub",
|
||||
"CHOOSE_PLAYLIST": "wybierz listę odtwarzania",
|
||||
"REJECTED": "Plik został odrzucony, nieobsługiwany format pliku {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Ciemny motyw",
|
||||
"LIGHT_THEME": "Jasny motyw"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL listy odtwarzania (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Dodaj listę odtwarzania",
|
||||
"CORS_NOTE": "Uwaga: Aby uniknąć problemów z CORS, aplikacja używa publicznej usługi proxy CORS. Jeśli chcesz przesłać listę odtwarzania z wrażliwymi danymi, bezpieczniej jest zaimportować ją z pliku."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Szukaj kanału",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Prześlij lub wybierz inną listę odtwarzania",
|
||||
"ALL_CHANNELS": "Wszystkie kanały",
|
||||
"GROUPS": "Grupy",
|
||||
"UNGROUPED": "Niegrupowane",
|
||||
"UNNAMED_CHANNEL": "Nienazwany kanał",
|
||||
"FAVORITES": "Ulubione",
|
||||
"NO_FAVORITES": "Brak ulubionych",
|
||||
"USE_STAR_TO_FAVORITE": "Użyj ikony „gwiazdki”, aby dodać kanały do ulubionych.",
|
||||
"REMOVE_FAVORITE": "Usuń z ulubionych",
|
||||
"FAVORITES_UPDATED": "Ulubione zostały zaktualizowane!",
|
||||
"SORT_BY": "Sortuj według",
|
||||
"SORT_BY_DATE": "Sortuj według daty dodania (najnowsze pierwsze)",
|
||||
"SORT_BY_RATING": "Sortuj według oceny",
|
||||
"SORT_BY_NAME": "Sortuj według nazwy (A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Wklej listę odtwarzania m3u(8) jako tekst",
|
||||
"BUTTON_LABEL": "Importuj"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Otwórz listę kanałów",
|
||||
"TOGGLE_FAVORITE_FLAG": "Przełącz flagę ulubionych",
|
||||
"OPEN_EPG_LIST": "Otwórz listę EPG",
|
||||
"OPEN_MULTI_EPG": "Otwórz widok Multi-EPG"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Tytuł listy odtwarzania",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"USERNAME": "Nazwa użytkownika",
|
||||
"PASSWORD": "Hasło",
|
||||
"ADD": "Dodaj",
|
||||
"TEST_CREDENTIALS": "Testuj dane uwierzytelniające",
|
||||
"URL_VALIDATION_ERROR": "Powinien to być poprawny URL z protokołem (np. http://example.com lub https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "Elektroniczny przewodnik po programach",
|
||||
"NEXT_DAY": "Następny dzień",
|
||||
"PREVIOUS_DAY": "Poprzedni dzień",
|
||||
"LIVE_NOW": "Na żywo teraz",
|
||||
"LIVE_STREAM": "Transmisja na żywo",
|
||||
"TIMESHIFT_AVAILABLE": "Dostępne jest przesunięcie czasowe, kliknij, aby odtworzyć",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ups, EPG nie jest dostępne dla wybranej daty",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ups, EPG nie jest dostępne dla tego kanału.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Dodaj/zmień URL listy EPG w ustawieniach aplikacji.",
|
||||
"FETCH_EPG": "Pobieranie danych EPG...",
|
||||
"ERROR": "Ups, nie można załadować EPG.",
|
||||
"DOWNLOAD_SUCCESS": "EPG zostało pomyślnie pobrane.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Szczegóły programu telewizyjnego",
|
||||
"TITLE": "Tytuł",
|
||||
"CATEGORY": "Kategoria",
|
||||
"PARENTAL_RATING_SYSTEM": "System oceny treści telewizyjnych",
|
||||
"DESCRIPTION": "Opis",
|
||||
"LANGUAGE": "Język",
|
||||
"SHOW_PROGRAM_DETAILS": "Pokaż szczegóły programu"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG zostało pomyślnie pobrane"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Tytuł",
|
||||
"MAC_ADDRESS": "Adres Mac",
|
||||
"SERVER_URL": "URL serwera",
|
||||
"URL_VALIDATION_ERROR": "Powinien to być poprawny URL z protokołem (np. http://example.com/c lub https://example.com/stalker_portal/c)",
|
||||
"ADD": "Dodaj"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filtruj według nazwy",
|
||||
"FILTER_BY_TYPE": "Filtruj według typu",
|
||||
"SORT_PLAYLISTS": "Sortuj listy odtwarzania",
|
||||
"SORT_BY": "Sortuj według",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Nazwa (A-Z)",
|
||||
"NAME_DESC": "Nazwa (Z-A)",
|
||||
"NEWEST": "Data dodania (najnowsze pierwsze)",
|
||||
"OLDEST": "Data dodania (najstarsze pierwsze)"
|
||||
"YES": "Tak",
|
||||
"NO": "Nie",
|
||||
"MENU": {
|
||||
"OPEN": "Otwórz menu",
|
||||
"SUPPORT_ARIA": "Wsparcie IPTVnator na GitHubie",
|
||||
"SETTINGS": "Ustawienia",
|
||||
"SETTINGS_ARIA": "Otwórz ustawienia",
|
||||
"BUG_REPORT": "Zgłoś błąd",
|
||||
"WHAT_IS_NEW": "Co nowego",
|
||||
"ABOUT": "O aplikacji",
|
||||
"ABOUT_ARIA": "Informacje o aplikacji",
|
||||
"SUPPORT_PROJECT": "Wesprzyj projekt"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Zaimportowano jako tekst",
|
||||
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ustawienia / IPTVnator",
|
||||
"SUBTITLE": "Zmień konfigurację aplikacji",
|
||||
"DESCRIPTION": "Dostosuj opcje z poniższej listy i potwierdź przyciskiem „Zapisz zmiany”",
|
||||
"EPG_URL_LABEL": "URL EPG (*.xml lub *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Wprowadź URL",
|
||||
"REFRESH_EPG": "Odśwież EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Odtwarzacz wideo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Wybierz opcję",
|
||||
"VERSION": "Wersja",
|
||||
"SAVE_CHANGES": "Zapisz zmiany",
|
||||
"BACK_TO_HOME": "Wróć",
|
||||
"NEW_VERSION_AVAILABLE": "Dostępna jest nowa wersja",
|
||||
"LATEST_VERSION": "Używasz najnowszej wersji",
|
||||
"LANGUAGE": "Język",
|
||||
"SETTINGS_SAVED": "Sukces! Konfiguracja została zapisana.",
|
||||
"THEME": "Motyw wizualny",
|
||||
"SHOW_CAPTIONS": "Pokaż napisy",
|
||||
"ADD_EPG_SOURCE": "Dodaj źródło EPG",
|
||||
"EPG_URL_ERROR": "Wartość nie jest prawidłowym URL",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Wybierz domyślny odtwarzacz wideo",
|
||||
"LANGUAGE_DESCRIPTION": "Wybierz język aplikacji",
|
||||
"THEME_DESCRIPTION": "Wybierz motyw wizualny aplikacji",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Domyślnie pokaż lub ukryj napisy",
|
||||
"VERSION_DESCRIPTION": "Aktualna wersja aplikacji",
|
||||
"EPG_NOTE": "Obecnie EPG jest dostępne tylko w wersji IPTVnator opartej na Electron.",
|
||||
"EPG_NOTE_URL_TEXT": "Sprawdź tutaj",
|
||||
"IMPORT_EXPORT_DATA": "Import/eksport list odtwarzania",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Eksportuj lub importuj listy odtwarzania w formacie JSON używanym w aplikacji.",
|
||||
"IMPORT_DATA": "Importuj",
|
||||
"EXPORT_DATA": "Eksportuj",
|
||||
"REMOVE_ALL": "Usuń listy odtwarzania",
|
||||
"REMOVE_ALL_BUTTON": "Usuń",
|
||||
"REMOVE_ALL_DESCRIPTION": "Spowoduje to usunięcie wszystkich istniejących list odtwarzania z aplikacji.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Usuń wszystkie listy odtwarzania",
|
||||
"MESSAGE": "Czy na pewno chcesz usunąć wszystkie listy odtwarzania z aplikacji?"
|
||||
"ABOUT": {
|
||||
"TITLE": "O IPTVnator",
|
||||
"DESCRIPTION": "Wieloplatformowa aplikacja do odtwarzania IPTV z wieloma funkcjami, takimi jak obsługa list odtwarzania m3u i m3u8, ulubione, przewodnik TV, archiwum TV/catchup i inne.",
|
||||
"VERSION": "Wersja",
|
||||
"GITHUB_TOOLTIP": "Repozytorium ITPVnator na GitHubie",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Postaw mi kawę",
|
||||
"TWITTER_TOOLTIP": "Udostępnij na Twitterze"
|
||||
},
|
||||
"IMPORT_ERROR": "Błąd importu, spróbuj z innym plikiem.",
|
||||
"PLAYLISTS_REMOVED": "Wszystkie listy odtwarzania zostały usunięte.",
|
||||
"MPV_PLAYER_PATH_LABEL": "Ścieżka mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza mpv w systemie. Będzie używać podanej ścieżki do pliku binarnego mpv zamiast tego znalezionego w $PATH.",
|
||||
"MPV_PLAYER_PATH": "Ścieżka odtwarzacza mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "Ścieżka VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Ustaw ścieżkę do odtwarzacza VLC w systemie. Będzie używać podanej ścieżki do pliku binarnego VLC zamiast domyślnej ścieżki dla naszego systemu.",
|
||||
"VLC_PLAYER_PATH": "Ścieżka odtwarzacza VLC",
|
||||
"REMOTE_CONTROL": "Zdalne sterowanie",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Włącz zdalne sterowanie aplikacją.",
|
||||
"REMOTE_CONTROL_PORT": "Port zdalnego sterowania",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Port używany do zdalnego sterowania aplikacją. Domyślnie używany jest port 3000."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Ciemny motyw",
|
||||
"LIGHT_THEME": "Jasny motyw"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Szukaj kanału",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Prześlij lub wybierz inną listę odtwarzania",
|
||||
"ALL_CHANNELS": "Wszystkie kanały",
|
||||
"GROUPS": "Grupy",
|
||||
"UNGROUPED": "Niegrupowane",
|
||||
"UNNAMED_CHANNEL": "Nienazwany kanał",
|
||||
"FAVORITES": "Ulubione",
|
||||
"NO_FAVORITES": "Brak ulubionych",
|
||||
"USE_STAR_TO_FAVORITE": "Użyj ikony „gwiazdki”, aby dodać kanały do ulubionych.",
|
||||
"REMOVE_FAVORITE": "Usuń z ulubionych",
|
||||
"FAVORITES_UPDATED": "Ulubione zostały zaktualizowane!",
|
||||
"SORT_BY": "Sortuj według",
|
||||
"SORT_BY_DATE": "Sortuj według daty dodania (najnowsze pierwsze)",
|
||||
"SORT_BY_RATING": "Sortuj według oceny",
|
||||
"SORT_BY_NAME": "Sortuj według nazwy (A-Z)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Otwórz listę kanałów",
|
||||
"TOGGLE_FAVORITE_FLAG": "Przełącz flagę ulubionych",
|
||||
"OPEN_EPG_LIST": "Otwórz listę EPG",
|
||||
"OPEN_MULTI_EPG": "Otwórz widok Multi-EPG"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "Elektroniczny przewodnik po programach",
|
||||
"NEXT_DAY": "Następny dzień",
|
||||
"PREVIOUS_DAY": "Poprzedni dzień",
|
||||
"LIVE_NOW": "Na żywo teraz",
|
||||
"LIVE_STREAM": "Transmisja na żywo",
|
||||
"TIMESHIFT_AVAILABLE": "Dostępne jest przesunięcie czasowe, kliknij, aby odtworzyć",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ups, EPG nie jest dostępne dla wybranej daty",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ups, EPG nie jest dostępne dla tego kanału.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Dodaj/zmień URL listy EPG w ustawieniach aplikacji.",
|
||||
"FETCH_EPG": "Pobieranie danych EPG...",
|
||||
"ERROR": "Ups, nie można załadować EPG.",
|
||||
"DOWNLOAD_SUCCESS": "EPG zostało pomyślnie pobrane.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Szczegóły programu telewizyjnego",
|
||||
"TITLE": "Tytuł",
|
||||
"CATEGORY": "Kategoria",
|
||||
"PARENTAL_RATING_SYSTEM": "System oceny treści telewizyjnych",
|
||||
"DESCRIPTION": "Opis",
|
||||
"LANGUAGE": "Język",
|
||||
"SHOW_PROGRAM_DETAILS": "Pokaż szczegóły programu"
|
||||
"UPDATE_AVAILABLE": "Dostępna aktualizacja",
|
||||
"REFRESH": "Odśwież",
|
||||
"XTREAM": {
|
||||
"PLAY": "Odtwórz",
|
||||
"NAME": "Nazwa",
|
||||
"RELEASE_DATE": "Data wydania",
|
||||
"GENRE": "Gatunek",
|
||||
"COUNTRY": "Kraj",
|
||||
"ACTORS": "Aktorzy",
|
||||
"DIRECTOR": "Reżyser",
|
||||
"DURATION": "Czas trwania",
|
||||
"CAST": "Obsada",
|
||||
"EPISODE_RUN_TIME": "Czas trwania odcinka",
|
||||
"RATING": "Ocena",
|
||||
"IMDB_RATING": "Ocena IMDB",
|
||||
"KINOPOISK_RATING": "Ocena Kinopoisk",
|
||||
"DESCRIPTION": "Opis",
|
||||
"YEAR": "Rok",
|
||||
"AGE": "Wiek",
|
||||
"YOUTUBE_TRAILER": "Zwiastun YouTube",
|
||||
"EPISODE": "Odcinek"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG zostało pomyślnie pobrane"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Tak",
|
||||
"NO": "Nie",
|
||||
"MENU": {
|
||||
"OPEN": "Otwórz menu",
|
||||
"SUPPORT_ARIA": "Wsparcie IPTVnator na GitHubie",
|
||||
"SETTINGS": "Ustawienia",
|
||||
"SETTINGS_ARIA": "Otwórz ustawienia",
|
||||
"BUG_REPORT": "Zgłoś błąd",
|
||||
"WHAT_IS_NEW": "Co nowego",
|
||||
"ABOUT": "O aplikacji",
|
||||
"ABOUT_ARIA": "Informacje o aplikacji",
|
||||
"SUPPORT_PROJECT": "Wesprzyj projekt"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "O IPTVnator",
|
||||
"DESCRIPTION": "Wieloplatformowa aplikacja do odtwarzania IPTV z wieloma funkcjami, takimi jak obsługa list odtwarzania m3u i m3u8, ulubione, przewodnik TV, archiwum TV/catchup i inne.",
|
||||
"VERSION": "Wersja",
|
||||
"GITHUB_TOOLTIP": "Repozytorium ITPVnator na GitHubie",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Postaw mi kawę",
|
||||
"TWITTER_TOOLTIP": "Udostępnij na Twitterze"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Dostępna aktualizacja",
|
||||
"REFRESH": "Odśwież",
|
||||
"XTREAM": {
|
||||
"PLAY": "Odtwórz",
|
||||
"NAME": "Nazwa",
|
||||
"RELEASE_DATE": "Data wydania",
|
||||
"GENRE": "Gatunek",
|
||||
"COUNTRY": "Kraj",
|
||||
"ACTORS": "Aktorzy",
|
||||
"DIRECTOR": "Reżyser",
|
||||
"DURATION": "Czas trwania",
|
||||
"CAST": "Obsada",
|
||||
"EPISODE_RUN_TIME": "Czas trwania odcinka",
|
||||
"RATING": "Ocena",
|
||||
"IMDB_RATING": "Ocena IMDB",
|
||||
"KINOPOISK_RATING": "Ocena Kinopoisk",
|
||||
"DESCRIPTION": "Opis",
|
||||
"YEAR": "Rok",
|
||||
"AGE": "Wiek",
|
||||
"YOUTUBE_TRAILER": "Zwiastun YouTube",
|
||||
"EPISODE": "Odcinek"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Wszystkie kategorie",
|
||||
"MY_FAVORITES": "Moje ulubione",
|
||||
"ADD_TO_FAVORITES": "Dodaj do ulubionych",
|
||||
"REMOVE_FROM_FAVORITES": "Usuń z ulubionych",
|
||||
"REMOVED_FROM_FAVORITES": "Usunięto z ulubionych",
|
||||
"ADDED_TO_FAVORITES": "Dodano do ulubionych",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Konto wygasło",
|
||||
"DESCRIPTION": "To konto wygasło. Sprawdź dane uwierzytelniające w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Nieautoryzowany",
|
||||
"DESCRIPTION": "Sprawdź dane uwierzytelniające w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Nie znaleziono portalu",
|
||||
"DESCRIPTION": "Sprawdź dane uwierzytelniające i URL portalu w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Pusta kategoria",
|
||||
"DESCRIPTION": "Ta kategoria nie zawiera treści, wybierz inną kategorię lub zmień typ treści"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Coś poszło nie tak",
|
||||
"DESCRIPTION": "Nieznany błąd, spróbuj ponownie później"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Ustawienia listy odtwarzania",
|
||||
"HOME": "Strona główna",
|
||||
"DELETE": "Usuń"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Wszystkie kategorie",
|
||||
"MY_FAVORITES": "Moje ulubione",
|
||||
"ADD_TO_FAVORITES": "Dodaj do ulubionych",
|
||||
"REMOVE_FROM_FAVORITES": "Usuń z ulubionych",
|
||||
"REMOVED_FROM_FAVORITES": "Usunięto z ulubionych",
|
||||
"ADDED_TO_FAVORITES": "Dodano do ulubionych",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Konto wygasło",
|
||||
"DESCRIPTION": "To konto wygasło. Sprawdź dane uwierzytelniające w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Nieautoryzowany",
|
||||
"DESCRIPTION": "Sprawdź dane uwierzytelniające w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Nie znaleziono portalu",
|
||||
"DESCRIPTION": "Sprawdź dane uwierzytelniające i URL portalu w ustawieniach listy odtwarzania lub usuń ją."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Pusta kategoria",
|
||||
"DESCRIPTION": "Ta kategoria nie zawiera treści, wybierz inną kategorię lub zmień typ treści"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Coś poszło nie tak",
|
||||
"DESCRIPTION": "Nieznany błąd, spróbuj ponownie później"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Ustawienia listy odtwarzania",
|
||||
"HOME": "Strona główna",
|
||||
"DELETE": "Usuń"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Nic nie znaleziono, spróbuj zmienić zapytanie wyszukiwania"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL strumienia skopiowany do schowka",
|
||||
"COPY_STREAM_URL": "Kopiuj URL strumienia"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Nic nie znaleziono, spróbuj zmienić zapytanie wyszukiwania"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL strumienia skopiowany do schowka",
|
||||
"COPY_STREAM_URL": "Kopiuj URL strumienia"
|
||||
},
|
||||
"INFORMATION": "Informacje",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Zdalne sterowanie",
|
||||
"UP_CHANNEL": "Kanał w górę",
|
||||
"DOWN_CHANNEL": "Kanał w dół",
|
||||
"HEADER": "Zdalne sterowanie IPTVNator",
|
||||
"FOOTER": "Zdalne sterowanie IPTVNator"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "Informacje",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Zdalne sterowanie",
|
||||
"UP_CHANNEL": "Kanał w górę",
|
||||
"DOWN_CHANNEL": "Kanał w dół",
|
||||
"HEADER": "Zdalne sterowanie IPTVNator",
|
||||
"FOOTER": "Zdalne sterowanie IPTVNator"
|
||||
}
|
||||
}
|
||||
+344
-327
@@ -1,339 +1,356 @@
|
||||
{
|
||||
"CLOSE": "Fechar",
|
||||
"PLAYLISTS": "Playlists",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Por favor, selecione uma playlist da lista ou adicione uma nova playlist",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Playlists adicionadas recentemente",
|
||||
"FILE_UPLOAD": "Adicionar via upload de arquivo",
|
||||
"URL_UPLOAD": "Adicionar via URL",
|
||||
"TEXT_IMPORT": "Importar do texto",
|
||||
"XTREME_IMPORT": "Adicionar Código Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "Adicionar Portal Stalker"
|
||||
"CLOSE": "Fechar",
|
||||
"PLAYLISTS": "Playlists",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Por favor, selecione uma playlist da lista ou adicione uma nova playlist",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Playlists adicionadas recentemente",
|
||||
"FILE_UPLOAD": "Adicionar via upload de arquivo",
|
||||
"URL_UPLOAD": "Adicionar via URL",
|
||||
"TEXT_IMPORT": "Importar do texto",
|
||||
"XTREME_IMPORT": "Adicionar Código Xtreme",
|
||||
"STALKER_PORTAL_IMPORT": "Adicionar Portal Stalker"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Nenhuma playlist foi adicionada",
|
||||
"ADD_FIRST": "Por favor, adicione sua primeira playlist",
|
||||
"WELCOME_TITLE": "Bem-vindo ao IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Comece sua jornada de streaming adicionando sua primeira playlist. Conecte-se ao seu serviço de IPTV preferido e aproveite TV ao vivo, filmes e séries.",
|
||||
"ADD_YOUR_FIRST": "Adicionar sua primeira playlist",
|
||||
"FEATURE_M3U": "Arquivos M3U/M3U8",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Portal Stalker",
|
||||
"NO_RESULTS_TITLE": "Nenhuma playlist encontrada",
|
||||
"NO_RESULTS_DESCRIPTION": "Nenhuma playlist corresponde à sua pesquisa. Tente ajustar os termos de pesquisa ou limpe o filtro para ver todas as playlists.",
|
||||
"ADDED_VIA_URL": "Adicionado via upload de URL. URL:",
|
||||
"ADDED_VIA_FILE": "Adicionado via upload de arquivo",
|
||||
"XTREAM_PLAYLIST": "Playlist Xtream",
|
||||
"STALKER_PORTAL": "Portal Stalker",
|
||||
"CHANNELS": "Canais",
|
||||
"ADDED": "Adicionado",
|
||||
"SHOW_DETAILS": "Mostrar detalhes da playlist",
|
||||
"REMOVE": "Remover playlist",
|
||||
"SEARCH_PLAYLISTS": "Pesquisar playlists por título",
|
||||
"AUTO_REFRESH_ENABLED": "Atualização automática ativada",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Detalhes da playlist",
|
||||
"TITLE": "Título",
|
||||
"FROM_URL": "Adicionado da URL",
|
||||
"IMPORT_DATE": "Data de importação",
|
||||
"CHANNELS": "Número de canais",
|
||||
"CLOSE": "Fechar",
|
||||
"SAVE": "Salvar",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "Nome original do arquivo",
|
||||
"FILE_PATH": "Caminho do arquivo",
|
||||
"UPDATE_FAILED": "A última atualização da playlist falhou",
|
||||
"AUTO_UPDATE": "Atualização automática",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Se a função de atualização automática estiver ativada, a playlist será atualizada automaticamente cada vez que o aplicativo for iniciado.",
|
||||
"CUSTOM_USER_AGENT": "Alguns provedores de IPTV precisam de um user-agent específico para reproduzir sua playlist.",
|
||||
"EXPORT_PLAYLIST": "Exportar playlist como m3u",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Senha",
|
||||
"MAC_ADDRESS": "Endereço Mac",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Playlist foi exportada com sucesso.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Erro: Falha ao exportar a playlist."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Remover playlist",
|
||||
"MESSAGE": "Tem certeza de que deseja excluir esta playlist completamente?",
|
||||
"SUCCESS": "Playlist foi removida com sucesso"
|
||||
},
|
||||
"UPDATED": "Atualizado",
|
||||
"REFRESH": "Atualizar playlist",
|
||||
"REFRESH_XTREAM": "Atualizar playlist Xtream do servidor",
|
||||
"REFRESH_XTREAM_DIALOG": {
|
||||
"TITLE": "Atualizar playlist Xtream",
|
||||
"MESSAGE": "Isso excluirá as categorias e streams armazenados localmente e reimportará tudo do servidor remoto. Seus favoritos e itens visualizados recentemente serão preservados. Deseja continuar?",
|
||||
"STARTED": "Atualização iniciada. Navegando para a playlist...",
|
||||
"ERROR": "Falha ao atualizar a playlist. Tente novamente."
|
||||
},
|
||||
"AUTO_REFRESH_UPDATE_SUCCESS": "Sucesso! As playlists foram atualizadas com sucesso",
|
||||
"GLOBAL_FAVORITES": "Favoritos globais",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Playlist gerada automaticamente com favoritos agregados de todas as playlists",
|
||||
"MY_PLAYLISTS": "Minhas playlists",
|
||||
"MY_PLAYLISTS_SUBTITLE": "todas as playlists disponíveis",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Sucesso! A playlist foi atualizada com sucesso.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Erro ao atualizar detalhes da playlist."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arraste e solte os arquivos aqui",
|
||||
"OR": "ou",
|
||||
"CHOOSE_PLAYLIST": "escolha uma playlist",
|
||||
"REJECTED": "O arquivo foi rejeitado, formato de arquivo não suportado {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL da playlist (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Adicionar playlist",
|
||||
"CORS_NOTE": "Nota: Para evitar problemas de CORS neste ponto, o aplicativo usa um serviço de Proxy CORS público. Se você deseja enviar uma playlist com dados confidenciais, é mais seguro importá-la de um arquivo."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Inserir playlist m3u(8) como texto",
|
||||
"BUTTON_LABEL": "Importar"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Título da playlist",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Senha",
|
||||
"ADD": "Adicionar",
|
||||
"TEST_CREDENTIALS": "Testar credenciais",
|
||||
"URL_VALIDATION_ERROR": "Deve ser uma URL válida com protocolo (por exemplo, http://example.com ou https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Título",
|
||||
"MAC_ADDRESS": "Endereço Mac",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"URL_VALIDATION_ERROR": "Deve ser uma URL válida com protocolo (por exemplo, http://example.com/c ou https://example.com/stalker_portal/c)",
|
||||
"ADD": "Adicionar"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filtrar por nome",
|
||||
"FILTER_BY_TYPE": "Filtrar por tipo",
|
||||
"SORT_PLAYLISTS": "Ordenar playlists",
|
||||
"SORT_BY": "Ordenar por",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Nome (A-Z)",
|
||||
"NAME_DESC": "Nome (Z-A)",
|
||||
"NEWEST": "Data de adição (Mais recente primeiro)",
|
||||
"OLDEST": "Data de adição (Mais antigo primeiro)"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Nenhuma playlist foi adicionada",
|
||||
"ADD_FIRST": "Por favor, adicione sua primeira playlist",
|
||||
"ADDED_VIA_URL": "Adicionado via upload de URL. URL:",
|
||||
"ADDED_VIA_FILE": "Adicionado via upload de arquivo",
|
||||
"XTREAM_PLAYLIST": "Playlist Xtream",
|
||||
"STALKER_PORTAL": "Portal Stalker",
|
||||
"CHANNELS": "Canais",
|
||||
"ADDED": "Adicionado",
|
||||
"SHOW_DETAILS": "Mostrar detalhes da playlist",
|
||||
"REMOVE": "Remover playlist",
|
||||
"SEARCH_PLAYLISTS": "Pesquisar playlists por título",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Detalhes da playlist",
|
||||
"TITLE": "Título",
|
||||
"FROM_URL": "Adicionado da URL",
|
||||
"IMPORT_DATE": "Data de importação",
|
||||
"CHANNELS": "Número de canais",
|
||||
"CLOSE": "Fechar",
|
||||
"SAVE": "Salvar",
|
||||
"USER_AGENT": "User agent",
|
||||
"ORIGINAL_FILENAME": "Nome original do arquivo",
|
||||
"FILE_PATH": "Caminho do arquivo",
|
||||
"UPDATE_FAILED": "A última atualização da playlist falhou",
|
||||
"AUTO_UPDATE": "Atualização automática",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Se a função de atualização automática estiver ativada, a playlist será atualizada automaticamente cada vez que o aplicativo for iniciado.",
|
||||
"CUSTOM_USER_AGENT": "Alguns provedores de IPTV precisam de um user-agent específico para reproduzir sua playlist.",
|
||||
"EXPORT_PLAYLIST": "Exportar playlist como m3u",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Senha",
|
||||
"MAC_ADDRESS": "Endereço Mac",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "Playlist foi exportada com sucesso.",
|
||||
"PLAYLIST_EXPORT_ERROR": "Erro: Falha ao exportar a playlist."
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Remover playlist",
|
||||
"MESSAGE": "Tem certeza de que deseja excluir esta playlist completamente?",
|
||||
"SUCCESS": "Playlist foi removida com sucesso"
|
||||
},
|
||||
"UPDATED": "Atualizado",
|
||||
"REFRESH": "Atualizar playlist",
|
||||
"GLOBAL_FAVORITES": "Favoritos globais",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Playlist gerada automaticamente com favoritos agregados de todas as playlists",
|
||||
"MY_PLAYLISTS": "Minhas playlists",
|
||||
"MY_PLAYLISTS_SUBTITLE": "todas as playlists disponíveis",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Sucesso! A playlist foi atualizada com sucesso.",
|
||||
"PLAYLIST_UPDATE_ERROR": "Erro ao atualizar detalhes da playlist."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Configurações",
|
||||
"SUBTITLE": "Altere a configuração do aplicativo",
|
||||
"DESCRIPTION": "Adapte as opções da lista abaixo e confirme com o botão salvar alterações",
|
||||
"EPG_URL_LABEL": "URL do EPG (*.xml ou *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Insira uma URL",
|
||||
"REFRESH_EPG": "Atualizar EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Reprodutor de vídeo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecione uma opção",
|
||||
"VERSION": "Versão",
|
||||
"SAVE_CHANGES": "Salvar alterações",
|
||||
"BACK_TO_HOME": "Voltar",
|
||||
"NEW_VERSION_AVAILABLE": "Há uma nova versão disponível",
|
||||
"LATEST_VERSION": "Você está usando a versão mais recente",
|
||||
"STREAM_FORMAT": "Formato de stream",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SETTINGS_SAVED": "Sucesso! A configuração foi salva.",
|
||||
"THEME": "Tema visual",
|
||||
"SHOW_CAPTIONS": "Mostrar legendas",
|
||||
"ADD_EPG_SOURCE": "Adicionar fonte EPG",
|
||||
"EPG_URL_ERROR": "O valor não é uma URL válida",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Selecionar reprodutor de vídeo padrão",
|
||||
"STREAM_FORMAT_DESCRIPTION": "Selecionar formato de stream padrão (xtream)",
|
||||
"LANGUAGE_DESCRIPTION": "Selecionar idioma do aplicativo",
|
||||
"THEME_DESCRIPTION": "Selecionar tema visual do aplicativo",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Mostrar ou ocultar legendas por padrão",
|
||||
"VERSION_DESCRIPTION": "Versão atual do aplicativo",
|
||||
"EPG_NOTE": "Atualmente, o EPG está disponível apenas na versão baseada em electron do IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Verifique aqui",
|
||||
"IMPORT_EXPORT_DATA": "Importar/exportar playlists",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exportar ou importar playlists no formato JSON usado no aplicativo.",
|
||||
"IMPORT_DATA": "Importar",
|
||||
"EXPORT_DATA": "Exportar",
|
||||
"REMOVE_ALL": "Remover playlists",
|
||||
"REMOVE_ALL_BUTTON": "Remover",
|
||||
"REMOVE_ALL_DESCRIPTION": "Isso removerá todas as playlists existentes do aplicativo.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Remover todas as playlists",
|
||||
"MESSAGE": "Tem certeza de que deseja excluir todas as playlists do aplicativo?"
|
||||
},
|
||||
"IMPORT_ERROR": "Erro de importação, tente com outro arquivo.",
|
||||
"PLAYLISTS_REMOVED": "Todas as playlists foram removidas.",
|
||||
"MPV_PLAYER_PATH_LABEL": "Caminho do mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor mpv em seu sistema. Ele usará o caminho fornecido para um binário mpv em vez de usar o encontrado em $PATH.",
|
||||
"MPV_PLAYER_PATH": "Caminho do reprodutor mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "Caminho do VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor VLC em seu sistema. Ele usará o caminho fornecido para um binário VLC em vez do caminho padrão para o nosso sistema.",
|
||||
"VLC_PLAYER_PATH": "Caminho do reprodutor VLC",
|
||||
"REMOTE_CONTROL": "Controle remoto",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Ativar controle remoto do aplicativo.",
|
||||
"REMOTE_CONTROL_PORT": "Porta de controle remoto",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Porta usada para controle remoto do aplicativo. A porta 8765 é usada por padrão."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Arraste e solte os arquivos aqui",
|
||||
"OR": "ou",
|
||||
"CHOOSE_PLAYLIST": "escolha uma playlist",
|
||||
"REJECTED": "O arquivo foi rejeitado, formato de arquivo não suportado {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Tema escuro",
|
||||
"LIGHT_THEME": "Tema claro"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "URL da playlist (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Adicionar playlist",
|
||||
"CORS_NOTE": "Nota: Para evitar problemas de CORS neste ponto, o aplicativo usa um serviço de Proxy CORS público. Se você deseja enviar uma playlist com dados confidenciais, é mais seguro importá-la de um arquivo."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Pesquisar canal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Enviar ou selecionar outra playlist",
|
||||
"ALL_CHANNELS": "Todos os canais",
|
||||
"GROUPS": "Grupos",
|
||||
"UNGROUPED": "Não agrupados",
|
||||
"UNNAMED_CHANNEL": "Canal sem nome",
|
||||
"FAVORITES": "Favoritos",
|
||||
"NO_FAVORITES": "Nenhum favorito ainda",
|
||||
"USE_STAR_TO_FAVORITE": "Use o ícone 'estrela' para adicionar canais aos seus favoritos.",
|
||||
"REMOVE_FAVORITE": "Remover dos favoritos",
|
||||
"FAVORITES_UPDATED": "Favoritos foram atualizados!",
|
||||
"SORT_BY": "Ordenar por",
|
||||
"SORT_BY_DATE": "Ordenar por Data de Adição (Mais Recente Primeiro)",
|
||||
"SORT_BY_RATING": "Ordenar por Classificação",
|
||||
"SORT_BY_NAME": "Ordenar por Nome (A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "Inserir playlist m3u(8) como texto",
|
||||
"BUTTON_LABEL": "Importar"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Abrir lista de canais",
|
||||
"TOGGLE_FAVORITE_FLAG": "Alternar sinalizador de favorito",
|
||||
"OPEN_EPG_LIST": "Abrir lista de EPG",
|
||||
"OPEN_MULTI_EPG": "Abrir visualização Multi-EPG"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Título da playlist",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Senha",
|
||||
"ADD": "Adicionar",
|
||||
"TEST_CREDENTIALS": "Testar credenciais",
|
||||
"URL_VALIDATION_ERROR": "Deve ser uma URL válida com protocolo (por exemplo, http://example.com ou https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "Guia Eletrônico de Programação",
|
||||
"NEXT_DAY": "Próximo dia",
|
||||
"PREVIOUS_DAY": "Dia anterior",
|
||||
"LIVE_NOW": "Ao vivo agora",
|
||||
"LIVE_STREAM": "Transmissão ao vivo",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift está disponível, clique para reproduzir",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ooops, EPG não está disponível para a data selecionada",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ooops, EPG não está disponível para este canal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Adicione/altere a URL da lista de EPG nas configurações do aplicativo.",
|
||||
"FETCH_EPG": "Buscando dados do EPG...",
|
||||
"ERROR": "Ooops, EPG não pôde ser carregado.",
|
||||
"DOWNLOAD_SUCCESS": "EPG foi baixado com sucesso.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Detalhes sobre o programa de TV",
|
||||
"TITLE": "Título",
|
||||
"CATEGORY": "Categoria",
|
||||
"PARENTAL_RATING_SYSTEM": "Sistema de classificação de conteúdo televisivo",
|
||||
"DESCRIPTION": "Descrição",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SHOW_PROGRAM_DETAILS": "Mostrar detalhes sobre este programa"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG foi buscado com sucesso"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Título",
|
||||
"MAC_ADDRESS": "Endereço Mac",
|
||||
"SERVER_URL": "URL do servidor",
|
||||
"URL_VALIDATION_ERROR": "Deve ser uma URL válida com protocolo (por exemplo, http://example.com/c ou https://example.com/stalker_portal/c)",
|
||||
"ADD": "Adicionar"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "Filtrar por nome",
|
||||
"FILTER_BY_TYPE": "Filtrar por tipo",
|
||||
"SORT_PLAYLISTS": "Ordenar playlists",
|
||||
"SORT_BY": "Ordenar por",
|
||||
"SORT_OPTIONS": {
|
||||
"NAME_ASC": "Nome (A-Z)",
|
||||
"NAME_DESC": "Nome (Z-A)",
|
||||
"NEWEST": "Data de adição (Mais recente primeiro)",
|
||||
"OLDEST": "Data de adição (Mais antigo primeiro)"
|
||||
"YES": "Sim",
|
||||
"NO": "Não",
|
||||
"MENU": {
|
||||
"OPEN": "Abrir menu",
|
||||
"SUPPORT_ARIA": "Apoie o IPTVnator no GitHub",
|
||||
"SETTINGS": "Configurações",
|
||||
"SETTINGS_ARIA": "Abrir configurações",
|
||||
"BUG_REPORT": "Reportar um bug",
|
||||
"WHAT_IS_NEW": "O que há de novo",
|
||||
"ABOUT": "Sobre",
|
||||
"ABOUT_ARIA": "Sobre o aplicativo",
|
||||
"SUPPORT_PROJECT": "Apoiar projeto"
|
||||
},
|
||||
"IMPORTED_AS_TEXT": "Importado como texto",
|
||||
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Configurações / IPTVnator",
|
||||
"SUBTITLE": "Altere a configuração do aplicativo",
|
||||
"DESCRIPTION": "Adapte as opções da lista abaixo e confirme com o botão salvar alterações",
|
||||
"EPG_URL_LABEL": "URL do EPG (*.xml ou *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "Insira uma URL",
|
||||
"REFRESH_EPG": "Atualizar EPG",
|
||||
"VIDEO_PLAYER_LABEL": "Reprodutor de vídeo",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Selecione uma opção",
|
||||
"VERSION": "Versão",
|
||||
"SAVE_CHANGES": "Salvar alterações",
|
||||
"BACK_TO_HOME": "Voltar",
|
||||
"NEW_VERSION_AVAILABLE": "Há uma nova versão disponível",
|
||||
"LATEST_VERSION": "Você está usando a versão mais recente",
|
||||
"STREAM_FORMAT": "Formato de stream",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SETTINGS_SAVED": "Sucesso! A configuração foi salva.",
|
||||
"THEME": "Tema visual",
|
||||
"SHOW_CAPTIONS": "Mostrar legendas",
|
||||
"ADD_EPG_SOURCE": "Adicionar fonte EPG",
|
||||
"EPG_URL_ERROR": "O valor não é uma URL válida",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Selecionar reprodutor de vídeo padrão",
|
||||
"STREAM_FORMAT_DESCRIPTION": "Selecionar formato de stream padrão (xtream)",
|
||||
"LANGUAGE_DESCRIPTION": "Selecionar idioma do aplicativo",
|
||||
"THEME_DESCRIPTION": "Selecionar tema visual do aplicativo",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Mostrar ou ocultar legendas por padrão",
|
||||
"VERSION_DESCRIPTION": "Versão atual do aplicativo",
|
||||
"EPG_NOTE": "Atualmente, o EPG está disponível apenas na versão baseada em electron do IPTVnator.",
|
||||
"EPG_NOTE_URL_TEXT": "Verifique aqui",
|
||||
"IMPORT_EXPORT_DATA": "Importar/exportar playlists",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Exportar ou importar playlists no formato JSON usado no aplicativo.",
|
||||
"IMPORT_DATA": "Importar",
|
||||
"EXPORT_DATA": "Exportar",
|
||||
"REMOVE_ALL": "Remover playlists",
|
||||
"REMOVE_ALL_BUTTON": "Remover",
|
||||
"REMOVE_ALL_DESCRIPTION": "Isso removerá todas as playlists existentes do aplicativo.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Remover todas as playlists",
|
||||
"MESSAGE": "Tem certeza de que deseja excluir todas as playlists do aplicativo?"
|
||||
"ABOUT": {
|
||||
"TITLE": "Sobre o IPTVnator",
|
||||
"DESCRIPTION": "Aplicativo reprodutor de IPTV multiplataforma com vários recursos, como suporte a playlists m3u e m3u8, favoritos, guia de TV, arquivo/catchup de TV e muito mais.",
|
||||
"VERSION": "Versão",
|
||||
"GITHUB_TOOLTIP": "Repositório ITPVnator no GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Compre-me um café",
|
||||
"TWITTER_TOOLTIP": "Compartilhar no Twitter"
|
||||
},
|
||||
"IMPORT_ERROR": "Erro de importação, tente com outro arquivo.",
|
||||
"PLAYLISTS_REMOVED": "Todas as playlists foram removidas.",
|
||||
"MPV_PLAYER_PATH_LABEL": "Caminho do mpv",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor mpv em seu sistema. Ele usará o caminho fornecido para um binário mpv em vez de usar o encontrado em $PATH.",
|
||||
"MPV_PLAYER_PATH": "Caminho do reprodutor mpv",
|
||||
"VLC_PLAYER_PATH_LABEL": "Caminho do VLC",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Defina o caminho para o reprodutor VLC em seu sistema. Ele usará o caminho fornecido para um binário VLC em vez do caminho padrão para o nosso sistema.",
|
||||
"VLC_PLAYER_PATH": "Caminho do reprodutor VLC",
|
||||
"REMOTE_CONTROL": "Controle remoto",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Ativar controle remoto do aplicativo.",
|
||||
"REMOTE_CONTROL_PORT": "Porta de controle remoto",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Porta usada para controle remoto do aplicativo. A porta 3000 é usada por padrão."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Tema escuro",
|
||||
"LIGHT_THEME": "Tema claro"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Pesquisar canal",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Enviar ou selecionar outra playlist",
|
||||
"ALL_CHANNELS": "Todos os canais",
|
||||
"GROUPS": "Grupos",
|
||||
"UNGROUPED": "Não agrupados",
|
||||
"UNNAMED_CHANNEL": "Canal sem nome",
|
||||
"FAVORITES": "Favoritos",
|
||||
"NO_FAVORITES": "Nenhum favorito ainda",
|
||||
"USE_STAR_TO_FAVORITE": "Use o ícone 'estrela' para adicionar canais aos seus favoritos.",
|
||||
"REMOVE_FAVORITE": "Remover dos favoritos",
|
||||
"FAVORITES_UPDATED": "Favoritos foram atualizados!",
|
||||
"SORT_BY": "Ordenar por",
|
||||
"SORT_BY_DATE": "Ordenar por Data de Adição (Mais Recente Primeiro)",
|
||||
"SORT_BY_RATING": "Ordenar por Classificação",
|
||||
"SORT_BY_NAME": "Ordenar por Nome (A-Z)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Abrir lista de canais",
|
||||
"TOGGLE_FAVORITE_FLAG": "Alternar sinalizador de favorito",
|
||||
"OPEN_EPG_LIST": "Abrir lista de EPG",
|
||||
"OPEN_MULTI_EPG": "Abrir visualização Multi-EPG"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "Guia Eletrônico de Programação",
|
||||
"NEXT_DAY": "Próximo dia",
|
||||
"PREVIOUS_DAY": "Dia anterior",
|
||||
"LIVE_NOW": "Ao vivo agora",
|
||||
"LIVE_STREAM": "Transmissão ao vivo",
|
||||
"TIMESHIFT_AVAILABLE": "Timeshift está disponível, clique para reproduzir",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Ooops, EPG não está disponível para a data selecionada",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Ooops, EPG não está disponível para este canal.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Adicione/altere a URL da lista de EPG nas configurações do aplicativo.",
|
||||
"FETCH_EPG": "Buscando dados do EPG...",
|
||||
"ERROR": "Ooops, EPG não pôde ser carregado.",
|
||||
"DOWNLOAD_SUCCESS": "EPG foi baixado com sucesso.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "Detalhes sobre o programa de TV",
|
||||
"TITLE": "Título",
|
||||
"CATEGORY": "Categoria",
|
||||
"PARENTAL_RATING_SYSTEM": "Sistema de classificação de conteúdo televisivo",
|
||||
"DESCRIPTION": "Descrição",
|
||||
"LANGUAGE": "Idioma",
|
||||
"SHOW_PROGRAM_DETAILS": "Mostrar detalhes sobre este programa"
|
||||
"UPDATE_AVAILABLE": "Atualização disponível",
|
||||
"REFRESH": "Atualizar",
|
||||
"XTREAM": {
|
||||
"PLAY": "Reproduzir",
|
||||
"NAME": "Nome",
|
||||
"RELEASE_DATE": "Data de lançamento",
|
||||
"GENRE": "Gênero",
|
||||
"COUNTRY": "País",
|
||||
"ACTORS": "Atores",
|
||||
"DIRECTOR": "Diretor",
|
||||
"DURATION": "Duração",
|
||||
"CAST": "Elenco",
|
||||
"EPISODE_RUN_TIME": "Tempo de execução do episódio",
|
||||
"RATING": "Classificação",
|
||||
"IMDB_RATING": " Classificação IMDB",
|
||||
"KINOPOISK_RATING": "Classificação Kinopoisk",
|
||||
"DESCRIPTION": "Descrição",
|
||||
"YEAR": "Ano",
|
||||
"AGE": "Idade",
|
||||
"YOUTUBE_TRAILER": "Trailer do YouTube",
|
||||
"EPISODE": "Episódio"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG foi buscado com sucesso"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Sim",
|
||||
"NO": "Não",
|
||||
"MENU": {
|
||||
"OPEN": "Abrir menu",
|
||||
"SUPPORT_ARIA": "Apoie o IPTVnator no GitHub",
|
||||
"SETTINGS": "Configurações",
|
||||
"SETTINGS_ARIA": "Abrir configurações",
|
||||
"BUG_REPORT": "Reportar um bug",
|
||||
"WHAT_IS_NEW": "O que há de novo",
|
||||
"ABOUT": "Sobre",
|
||||
"ABOUT_ARIA": "Sobre o aplicativo",
|
||||
"SUPPORT_PROJECT": "Apoiar projeto"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "Sobre o IPTVnator",
|
||||
"DESCRIPTION": "Aplicativo reprodutor de IPTV multiplataforma com vários recursos, como suporte a playlists m3u e m3u8, favoritos, guia de TV, arquivo/catchup de TV e muito mais.",
|
||||
"VERSION": "Versão",
|
||||
"GITHUB_TOOLTIP": "Repositório ITPVnator no GitHub",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Compre-me um café",
|
||||
"TWITTER_TOOLTIP": "Compartilhar no Twitter"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Atualização disponível",
|
||||
"REFRESH": "Atualizar",
|
||||
"XTREAM": {
|
||||
"PLAY": "Reproduzir",
|
||||
"NAME": "Nome",
|
||||
"RELEASE_DATE": "Data de lançamento",
|
||||
"GENRE": "Gênero",
|
||||
"COUNTRY": "País",
|
||||
"ACTORS": "Atores",
|
||||
"DIRECTOR": "Diretor",
|
||||
"DURATION": "Duração",
|
||||
"CAST": "Elenco",
|
||||
"EPISODE_RUN_TIME": "Tempo de execução do episódio",
|
||||
"RATING": "Classificação",
|
||||
"IMDB_RATING": " Classificação IMDB",
|
||||
"KINOPOISK_RATING": "Classificação Kinopoisk",
|
||||
"DESCRIPTION": "Descrição",
|
||||
"YEAR": "Ano",
|
||||
"AGE": "Idade",
|
||||
"YOUTUBE_TRAILER": "Trailer do YouTube",
|
||||
"EPISODE": "Episódio"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Todas as categorias",
|
||||
"MY_FAVORITES": "Meus favoritos",
|
||||
"ADD_TO_FAVORITES": "Adicionar aos favoritos",
|
||||
"REMOVE_FROM_FAVORITES": "Remover dos favoritos",
|
||||
"REMOVED_FROM_FAVORITES": "Removido dos favoritos",
|
||||
"ADDED_TO_FAVORITES": "Adicionado aos favoritos",
|
||||
"SIDEBAR": {
|
||||
"MAIN": "Principal",
|
||||
"MOVIES": "Filmes",
|
||||
"LIVE_TV": "TV ao vivo",
|
||||
"SERIES": "Séries",
|
||||
"LIBRARY": "Biblioteca",
|
||||
"SEARCH": "Pesquisar",
|
||||
"RECENT": "Recente",
|
||||
"FAVORITES": "Favoritos",
|
||||
"HOME": "Início",
|
||||
"PLAYLIST_INFO": "Informações da playlist",
|
||||
"ACCOUNT_INFO": "Informações da conta"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Todas as categorias",
|
||||
"MY_FAVORITES": "Meus favoritos",
|
||||
"ADD_TO_FAVORITES": "Adicionar aos favoritos",
|
||||
"REMOVE_FROM_FAVORITES": "Remover dos favoritos",
|
||||
"REMOVED_FROM_FAVORITES": "Removido dos favoritos",
|
||||
"ADDED_TO_FAVORITES": "Adicionado aos favoritos",
|
||||
"SIDEBAR": {
|
||||
"MAIN": "Principal",
|
||||
"MOVIES": "Filmes",
|
||||
"LIVE_TV": "TV ao vivo",
|
||||
"SERIES": "Séries",
|
||||
"LIBRARY": "Biblioteca",
|
||||
"SEARCH": "Pesquisar",
|
||||
"RECENT": "Recente",
|
||||
"FAVORITES": "Favoritos",
|
||||
"HOME": "Início",
|
||||
"PLAYLIST_INFO": "Informações da playlist",
|
||||
"ACCOUNT_INFO": "Informações da conta"
|
||||
},
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Conta expirada",
|
||||
"DESCRIPTION": "Esta conta expirou. Verifique as credenciais nas configurações da playlist ou remova-a."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Não autorizado",
|
||||
"DESCRIPTION": "Verifique as credenciais nas configurações da playlist ou remova-a."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal não encontrado",
|
||||
"DESCRIPTION": "Verifique as credenciais e o URL do portal nas configurações da playlist ou remova-o."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Categoria vazia",
|
||||
"DESCRIPTION": "Esta categoria não tem conteúdo, selecione outra categoria ou altere o tipo de conteúdo"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Algo deu errado",
|
||||
"DESCRIPTION": "Erro desconhecido, tente novamente mais tarde"
|
||||
},
|
||||
"NO_CATEGORY_SELECTED": {
|
||||
"TITLE": "Nenhuma categoria selecionada",
|
||||
"DESCRIPTION": "Selecione uma categoria para ver o conteúdo"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Configurações da playlist",
|
||||
"HOME": "Início",
|
||||
"DELETE": "Excluir"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"TITLE": "Nenhum resultado encontrado",
|
||||
"NO_SEARCH_RESULTS": "Nada encontrado, tente alterar sua solicitação de pesquisa"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL do stream copiado para a área de transferência",
|
||||
"COPY_STREAM_URL": "Copiar URL do Stream",
|
||||
"SELECT_CATEGORY": "Selecione uma categoria"
|
||||
},
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Conta expirada",
|
||||
"DESCRIPTION": "Esta conta expirou. Verifique as credenciais nas configurações da playlist ou remova-a."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Não autorizado",
|
||||
"DESCRIPTION": "Verifique as credenciais nas configurações da playlist ou remova-a."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal não encontrado",
|
||||
"DESCRIPTION": "Verifique as credenciais e o URL do portal nas configurações da playlist ou remova-o."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Categoria vazia",
|
||||
"DESCRIPTION": "Esta categoria não tem conteúdo, selecione outra categoria ou altere o tipo de conteúdo"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Algo deu errado",
|
||||
"DESCRIPTION": "Erro desconhecido, tente novamente mais tarde"
|
||||
},
|
||||
"NO_CATEGORY_SELECTED": {
|
||||
"TITLE": "Nenhuma categoria selecionada",
|
||||
"DESCRIPTION": "Selecione uma categoria para ver o conteúdo"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Configurações da playlist",
|
||||
"HOME": "Início",
|
||||
"DELETE": "Excluir"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"TITLE": "Nenhum resultado encontrado",
|
||||
"NO_SEARCH_RESULTS": "Nada encontrado, tente alterar sua solicitação de pesquisa"
|
||||
},
|
||||
"STREAM_URL_COPIED": "URL do stream copiado para a área de transferência",
|
||||
"COPY_STREAM_URL": "Copiar URL do Stream",
|
||||
"SELECT_CATEGORY": "Selecione uma categoria"
|
||||
},
|
||||
"INFORMATION": "Informação",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Controle remoto",
|
||||
"UP_CHANNEL": "Canal acima",
|
||||
"DOWN_CHANNEL": "Canal abaixo",
|
||||
"HEADER": "Controle Remoto IPTVNator",
|
||||
"FOOTER": "Controle Remoto IPTVNator"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "Informação",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Controle remoto",
|
||||
"UP_CHANNEL": "Canal acima",
|
||||
"DOWN_CHANNEL": "Canal abaixo",
|
||||
"HEADER": "Controle Remoto IPTVNator",
|
||||
"FOOTER": "Controle Remoto IPTVNator"
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,14 @@
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Пока еще не было добавлено ни одного плейлиста",
|
||||
"ADD_FIRST": "Вы можете добавить плейлисты из соседних вкладок",
|
||||
"WELCOME_TITLE": "Добро пожаловать в IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "Начните свое путешествие в мир стриминга, добавив свой первый плейлист. Подключитесь к вашему любимому IPTV-сервису и наслаждайтесь прямыми трансляциями, фильмами и сериалами.",
|
||||
"ADD_YOUR_FIRST": "Добавить первый плейлист",
|
||||
"FEATURE_M3U": "Файлы M3U/M3U8",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Stalker портал",
|
||||
"NO_RESULTS_TITLE": "Плейлисты не найдены",
|
||||
"NO_RESULTS_DESCRIPTION": "Ни один плейлист не соответствует вашему запросу. Попробуйте изменить поисковый запрос или очистите фильтр, чтобы увидеть все плейлисты.",
|
||||
"ADDED_VIA_URL": "Был добавлен по ссылке:",
|
||||
"ADDED_VIA_FILE": "Был загружен с компьютера",
|
||||
"CHANNELS": "Каналов",
|
||||
@@ -115,7 +123,7 @@
|
||||
"PARSING_ERROR": "Ошибка парсинга, недействительный плейлист:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Настройки / IPTVnator",
|
||||
"TITLE": "Настройки",
|
||||
"SUBTITLE": "Здесь можно изменить общие настройки приложения",
|
||||
"DESCRIPTION": "Закончив настройку, не забудьте подтвердить новые настройки кнопкой 'Сохранить'",
|
||||
"EPG_URL_LABEL": "Ссылка на программу каналов (EPG) (*.xml или *.xml.gz)",
|
||||
|
||||
+294
-294
@@ -1,306 +1,306 @@
|
||||
{
|
||||
"CLOSE": "Kapat",
|
||||
"PLAYLISTS": "Oynatma Listeleri",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Lütfen listeden bir oynatma listesi seçin veya yeni bir liste ekleyin",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Son Eklenen Listeler",
|
||||
"FILE_UPLOAD": "Dosya Yükle",
|
||||
"URL_UPLOAD": "URL ile Ekle",
|
||||
"TEXT_IMPORT": "Metinden İçe Aktar",
|
||||
"XTREME_IMPORT": "Xtreme Kodu Ekle",
|
||||
"STALKER_PORTAL_IMPORT": "Stalker Portalı Ekle"
|
||||
"CLOSE": "Kapat",
|
||||
"PLAYLISTS": "Oynatma Listeleri",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "Lütfen listeden bir oynatma listesi seçin veya yeni bir liste ekleyin",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "Son Eklenen Listeler",
|
||||
"FILE_UPLOAD": "Dosya Yükle",
|
||||
"URL_UPLOAD": "URL ile Ekle",
|
||||
"TEXT_IMPORT": "Metinden İçe Aktar",
|
||||
"XTREME_IMPORT": "Xtreme Kodu Ekle",
|
||||
"STALKER_PORTAL_IMPORT": "Stalker Portalı Ekle"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Oynatma listesi eklenmedi",
|
||||
"ADD_FIRST": "Lütfen ilk oynatma listenizi ekleyin",
|
||||
"ADDED_VIA_URL": "URL yüklemesi ile eklendi. URL:",
|
||||
"ADDED_VIA_FILE": "Dosya yüklemesi ile eklendi",
|
||||
"XTREAM_PLAYLIST": "Xtream oynatma listesi",
|
||||
"STALKER_PORTAL": "Stalker portalı",
|
||||
"CHANNELS": "Kanallar",
|
||||
"ADDED": "Eklendi",
|
||||
"SHOW_DETAILS": "Oynatma listesi ayrıntılarını göster",
|
||||
"REMOVE": "Oynatma listesini kaldır",
|
||||
"SEARCH_PLAYLISTS": "Oynatma listelerini başlığa göre ara",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Oynatma Listesi Ayrıntıları",
|
||||
"TITLE": "Başlık",
|
||||
"FROM_URL": "URL'den Eklendi",
|
||||
"IMPORT_DATE": "İçe Aktarma Tarihi",
|
||||
"CHANNELS": "Kanal Sayısı",
|
||||
"CLOSE": "Kapat",
|
||||
"SAVE": "Kaydet",
|
||||
"USER_AGENT": "Kullanıcı Aracısı",
|
||||
"ORIGINAL_FILENAME": "Orijinal Dosya Adı",
|
||||
"FILE_PATH": "Dosya Yolu",
|
||||
"UPDATE_FAILED": "Son oynatma listesi güncellemesi başarısız oldu",
|
||||
"AUTO_UPDATE": "Otomatik Güncelleme",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Otomatik yenileme işlevi etkinleştirilirse, uygulama her başlatıldığında oynatma listesi otomatik olarak güncellenecektir.",
|
||||
"CUSTOM_USER_AGENT": "Bazı IPTV sağlayıcıları, oynatma listelerini oynatmak için belirli bir kullanıcı aracısına ihtiyaç duyar.",
|
||||
"EXPORT_PLAYLIST": "Oynatma listesini m3u olarak dışa aktar",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"USERNAME": "Kullanıcı Adı",
|
||||
"PASSWORD": "Parola",
|
||||
"MAC_ADDRESS": "MAC Adresi"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Oynatma Listesini Kaldır",
|
||||
"MESSAGE": "Bu oynatma listesini tamamen silmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"UPDATED": "Güncellendi",
|
||||
"REFRESH": "Oynatma listesini yenile",
|
||||
"GLOBAL_FAVORITES": "Tüm Favoriler",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Tüm oynatma listelerinden oluşan otomatik favori liste",
|
||||
"MY_PLAYLISTS": "Oynatma Listelerim",
|
||||
"MY_PLAYLISTS_SUBTITLE": "tüm oynatma listeleri",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Başarılı! Oynatma listesi başarıyla güncellendi."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Dosyaları buraya sürükleyip bırakın",
|
||||
"OR": "veya",
|
||||
"CHOOSE_PLAYLIST": "oynatma listesi seçin",
|
||||
"REJECTED": "Dosya reddedildi, desteklenmeyen dosya formatı {{filename}}."
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Oynatma listesi URL'si (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Oynatma listesi ekle",
|
||||
"CORS_NOTE": "Not: CORS sorunlarını önlemek için bu aşamada uygulama, halka açık bir CORS Proxy hizmeti kullanır. Güvenlik nedeniyle hassas verileri içeren bir oynatma listesini yüklemek istiyorsanız, daha güvenli bir seçenek olarak dosyadan içe aktarmayı deneyin."
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "m3u(8) oynatma listesini metin olarak girin",
|
||||
"BUTTON_LABEL": "İçe Aktar"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Oynatma listesi başlığı",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"USERNAME": "Kullanıcı Adı",
|
||||
"PASSWORD": "Parola",
|
||||
"ADD": "Ekle",
|
||||
"TEST_CREDENTIALS": "Kimlik bilgilerini test et",
|
||||
"URL_VALIDATION_ERROR": "Geçerli bir URL olmalıdır (örn. http://example.com veya https://example.com:4324)"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Başlık",
|
||||
"MAC_ADDRESS": "MAC Adresi",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"URL_VALIDATION_ERROR": "Geçerli bir URL olmalıdır (örn. http://example.com/c veya https://example.com/stalker_portal/c)",
|
||||
"ADD": "Ekle"
|
||||
},
|
||||
"FILTER_BY_NAME": "İsime göre filtrele",
|
||||
"FILTER_BY_TYPE": "Türe göre filtrele",
|
||||
"IMPORTED_AS_TEXT": "Metin olarak içe aktarıldı",
|
||||
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "Oynatma listesi eklenmedi",
|
||||
"ADD_FIRST": "Lütfen ilk oynatma listenizi ekleyin",
|
||||
"ADDED_VIA_URL": "URL yüklemesi ile eklendi. URL:",
|
||||
"ADDED_VIA_FILE": "Dosya yüklemesi ile eklendi",
|
||||
"XTREAM_PLAYLIST": "Xtream oynatma listesi",
|
||||
"STALKER_PORTAL": "Stalker portalı",
|
||||
"CHANNELS": "Kanallar",
|
||||
"ADDED": "Eklendi",
|
||||
"SHOW_DETAILS": "Oynatma listesi ayrıntılarını göster",
|
||||
"REMOVE": "Oynatma listesini kaldır",
|
||||
"SEARCH_PLAYLISTS": "Oynatma listelerini başlığa göre ara",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "Oynatma Listesi Ayrıntıları",
|
||||
"TITLE": "Başlık",
|
||||
"FROM_URL": "URL'den Eklendi",
|
||||
"IMPORT_DATE": "İçe Aktarma Tarihi",
|
||||
"CHANNELS": "Kanal Sayısı",
|
||||
"CLOSE": "Kapat",
|
||||
"SAVE": "Kaydet",
|
||||
"USER_AGENT": "Kullanıcı Aracısı",
|
||||
"ORIGINAL_FILENAME": "Orijinal Dosya Adı",
|
||||
"FILE_PATH": "Dosya Yolu",
|
||||
"UPDATE_FAILED": "Son oynatma listesi güncellemesi başarısız oldu",
|
||||
"AUTO_UPDATE": "Otomatik Güncelleme",
|
||||
"AUTO_UPDATE_DESCRIPTION": "Otomatik yenileme işlevi etkinleştirilirse, uygulama her başlatıldığında oynatma listesi otomatik olarak güncellenecektir.",
|
||||
"CUSTOM_USER_AGENT": "Bazı IPTV sağlayıcıları, oynatma listelerini oynatmak için belirli bir kullanıcı aracısına ihtiyaç duyar.",
|
||||
"EXPORT_PLAYLIST": "Oynatma listesini m3u olarak dışa aktar",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"USERNAME": "Kullanıcı Adı",
|
||||
"PASSWORD": "Parola",
|
||||
"MAC_ADDRESS": "MAC Adresi"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Oynatma Listesini Kaldır",
|
||||
"MESSAGE": "Bu oynatma listesini tamamen silmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"UPDATED": "Güncellendi",
|
||||
"REFRESH": "Oynatma listesini yenile",
|
||||
"GLOBAL_FAVORITES": "Tüm Favoriler",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "Tüm oynatma listelerinden oluşan otomatik favori liste",
|
||||
"MY_PLAYLISTS": "Oynatma Listelerim",
|
||||
"MY_PLAYLISTS_SUBTITLE": "tüm oynatma listeleri",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "Başarılı! Oynatma listesi başarıyla güncellendi."
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ayarlar",
|
||||
"SUBTITLE": "Uygulamanın yapılandırmasını değiştir",
|
||||
"DESCRIPTION": "Lütfen aşağıdaki seçenekleri düzenleyin ve değişiklikleri kaydet düğmesiyle onaylayın",
|
||||
"EPG_URL_LABEL": "EPG Url (*.xml veya *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URL girin",
|
||||
"REFRESH_EPG": "EPG'yi yenile",
|
||||
"VIDEO_PLAYER_LABEL": "Video oynatıcı",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Bir seçenek belirleyin",
|
||||
"VERSION": "Sürüm",
|
||||
"SAVE_CHANGES": "Değişiklikleri kaydet",
|
||||
"BACK_TO_HOME": "Ana sayfaya dön",
|
||||
"NEW_VERSION_AVAILABLE": "Yeni bir sürüm mevcut",
|
||||
"LATEST_VERSION": "En son sürümü kullanıyorsunuz",
|
||||
"LANGUAGE": "Dil",
|
||||
"SETTINGS_SAVED": "Başarılı! Yapılandırma kaydedildi.",
|
||||
"THEME": "Görünüm teması",
|
||||
"SHOW_CAPTIONS": "Altyazıları göster",
|
||||
"ADD_EPG_SOURCE": "EPG kaynağı ekle",
|
||||
"EPG_URL_ERROR": "Girilen değer geçerli bir URL değildir",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Varsayılan video oynatıcıyı seçin",
|
||||
"LANGUAGE_DESCRIPTION": "Uygulamanın dilini seçin",
|
||||
"THEME_DESCRIPTION": "Uygulamanın görünüm temasını seçin",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Varsayılan olarak altyazıları göster veya gizle",
|
||||
"VERSION_DESCRIPTION": "Uygulamanın geçerli sürümü",
|
||||
"EPG_NOTE": "Şu anda EPG, yalnızca Electron tabanlı IPTVnator sürümünde kullanılabilir.",
|
||||
"EPG_NOTE_URL_TEXT": "Buradan kontrol edin",
|
||||
"IMPORT_EXPORT_DATA": "Oynatma listelerini içe/dışa aktar",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Uygulama içi kullanılan JSON formatında oynatma listelerini dışa aktar veya içe aktar.",
|
||||
"IMPORT_DATA": "İçe Aktar",
|
||||
"EXPORT_DATA": "Dışa Aktar",
|
||||
"REMOVE_ALL": "Tüm oynatma listelerini kaldır",
|
||||
"REMOVE_ALL_BUTTON": "Kaldır",
|
||||
"REMOVE_ALL_DESCRIPTION": "Bu, uygulamadaki tüm oynatma listelerini kaldıracaktır.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Tüm oynatma listelerini kaldır",
|
||||
"MESSAGE": "Uygulamadaki tüm oynatma listelerini silmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"IMPORT_ERROR": "İçe aktarma hatası, lütfen başka bir dosyayla deneyin.",
|
||||
"PLAYLISTS_REMOVED": "Tüm oynatma listeleri kaldırıldı.",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv yolu",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki mpv oynatıcı yolunu ayarlayın. $PATH'de bulunanı kullanmak yerine, sağlanan mpv ikili dosyası yolunu kullanacaktır.",
|
||||
"MPV_PLAYER_PATH": "mpv oynatıcı yolu",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC yolu",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki VLC oynatıcı yolunu ayarlayın. Sistemimiz için varsayılan yolu kullanmak yerine, sağlanan VLC ikili dosyası yolunu kullanacaktır.",
|
||||
"VLC_PLAYER_PATH": "VLC oynatıcı yolu",
|
||||
"REMOTE_CONTROL": "Uzaktan kontrol",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Uygulamanın uzaktan kontrolünü etkinleştirin.",
|
||||
"REMOTE_CONTROL_PORT": "Uzaktan kontrol portu",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Uygulamanın uzaktan kontrolü için kullanılan port. Varsayılan olarak port 3000 kullanılır."
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "Dosyaları buraya sürükleyip bırakın",
|
||||
"OR": "veya",
|
||||
"CHOOSE_PLAYLIST": "oynatma listesi seçin",
|
||||
"REJECTED": "Dosya reddedildi, desteklenmeyen dosya formatı {{filename}}."
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Koyu tema",
|
||||
"LIGHT_THEME": "Açık tema"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "Oynatma listesi URL'si (m3u, m3u8)",
|
||||
"ADD_PLAYLIST": "Oynatma listesi ekle",
|
||||
"CORS_NOTE": "Not: CORS sorunlarını önlemek için bu aşamada uygulama, halka açık bir CORS Proxy hizmeti kullanır. Güvenlik nedeniyle hassas verileri içeren bir oynatma listesini yüklemek istiyorsanız, daha güvenli bir seçenek olarak dosyadan içe aktarmayı deneyin."
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Kanal ara",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Dosya yükle veya başka bir oynatma listesi seçin",
|
||||
"ALL_CHANNELS": "Tüm kanallar",
|
||||
"GROUPS": "Gruplar",
|
||||
"UNGROUPED": "Grupsuz",
|
||||
"UNNAMED_CHANNEL": "İsimsiz kanal",
|
||||
"FAVORITES": "Favoriler",
|
||||
"NO_FAVORITES": "Henüz favori yok",
|
||||
"USE_STAR_TO_FAVORITE": "Lütfen favorilere kanal eklemek için 'yıldız' simgesini kullanın.",
|
||||
"REMOVE_FAVORITE": "Favorilerden kaldır",
|
||||
"FAVORITES_UPDATED": "Favoriler güncellendi!",
|
||||
"SORT_BY": "Sırala",
|
||||
"SORT_BY_DATE": "Eklenme tarihine göre sırala (Önce En Yeni)",
|
||||
"SORT_BY_RATING": "Puana göre sırala",
|
||||
"SORT_BY_NAME": "İsme göre sırala (A-Z)"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "m3u(8) oynatma listesini metin olarak girin",
|
||||
"BUTTON_LABEL": "İçe Aktar"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Kanal listesini aç",
|
||||
"TOGGLE_FAVORITE_FLAG": "Favori işaretini değiştir",
|
||||
"OPEN_EPG_LIST": "EPG listesini aç",
|
||||
"OPEN_MULTI_EPG": "Çoklu EPG görünümünü aç"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "Oynatma listesi başlığı",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"USERNAME": "Kullanıcı Adı",
|
||||
"PASSWORD": "Parola",
|
||||
"ADD": "Ekle",
|
||||
"TEST_CREDENTIALS": "Kimlik bilgilerini test et",
|
||||
"URL_VALIDATION_ERROR": "Geçerli bir URL olmalıdır (örn. http://example.com veya https://example.com:4324)"
|
||||
"EPG": {
|
||||
"TITLE": "Elektronik Program Rehberi",
|
||||
"NEXT_DAY": "Sonraki gün",
|
||||
"PREVIOUS_DAY": "Önceki gün",
|
||||
"LIVE_NOW": "Şu an canlı",
|
||||
"LIVE_STREAM": "Canlı yayın",
|
||||
"TIMESHIFT_AVAILABLE": "Zaman kaydırma mevcut, tıklayarak oynat",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Üzgünüz, seçilen tarih için EPG mevcut değil",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Üzgünüz, bu kanal için EPG mevcut değil.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Lütfen uygulamanın ayarlarında EPG listesi URL'sini ekleyin veya değiştirin.",
|
||||
"FETCH_EPG": "EPG verileri alınıyor...",
|
||||
"ERROR": "Üzgünüz, EPG yüklenemedi.",
|
||||
"DOWNLOAD_SUCCESS": "EPG başarıyla indirildi.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "TV programı hakkında",
|
||||
"TITLE": "Başlık",
|
||||
"CATEGORY": "Kategori",
|
||||
"PARENTAL_RATING_SYSTEM": "Televizyon içeriği derecelendirme sistemi",
|
||||
"DESCRIPTION": "Açıklama",
|
||||
"LANGUAGE": "Dil",
|
||||
"SHOW_PROGRAM_DETAILS": "Bu program hakkında detayları göster"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG verileri başarıyla alındı"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"TITLE": "Başlık",
|
||||
"MAC_ADDRESS": "MAC Adresi",
|
||||
"SERVER_URL": "Sunucu URL'si",
|
||||
"URL_VALIDATION_ERROR": "Geçerli bir URL olmalıdır (örn. http://example.com/c veya https://example.com/stalker_portal/c)",
|
||||
"ADD": "Ekle"
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"FILTER_BY_NAME": "İsime göre filtrele",
|
||||
"FILTER_BY_TYPE": "Türe göre filtrele",
|
||||
"IMPORTED_AS_TEXT": "Metin olarak içe aktarıldı",
|
||||
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:"
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "Ayarlar / IPTVnator",
|
||||
"SUBTITLE": "Uygulamanın yapılandırmasını değiştir",
|
||||
"DESCRIPTION": "Lütfen aşağıdaki seçenekleri düzenleyin ve değişiklikleri kaydet düğmesiyle onaylayın",
|
||||
"EPG_URL_LABEL": "EPG Url (*.xml veya *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "URL girin",
|
||||
"REFRESH_EPG": "EPG'yi yenile",
|
||||
"VIDEO_PLAYER_LABEL": "Video oynatıcı",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "Bir seçenek belirleyin",
|
||||
"VERSION": "Sürüm",
|
||||
"SAVE_CHANGES": "Değişiklikleri kaydet",
|
||||
"BACK_TO_HOME": "Ana sayfaya dön",
|
||||
"NEW_VERSION_AVAILABLE": "Yeni bir sürüm mevcut",
|
||||
"LATEST_VERSION": "En son sürümü kullanıyorsunuz",
|
||||
"LANGUAGE": "Dil",
|
||||
"SETTINGS_SAVED": "Başarılı! Yapılandırma kaydedildi.",
|
||||
"THEME": "Görünüm teması",
|
||||
"SHOW_CAPTIONS": "Altyazıları göster",
|
||||
"ADD_EPG_SOURCE": "EPG kaynağı ekle",
|
||||
"EPG_URL_ERROR": "Girilen değer geçerli bir URL değildir",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "Varsayılan video oynatıcıyı seçin",
|
||||
"LANGUAGE_DESCRIPTION": "Uygulamanın dilini seçin",
|
||||
"THEME_DESCRIPTION": "Uygulamanın görünüm temasını seçin",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "Varsayılan olarak altyazıları göster veya gizle",
|
||||
"VERSION_DESCRIPTION": "Uygulamanın geçerli sürümü",
|
||||
"EPG_NOTE": "Şu anda EPG, yalnızca Electron tabanlı IPTVnator sürümünde kullanılabilir.",
|
||||
"EPG_NOTE_URL_TEXT": "Buradan kontrol edin",
|
||||
"IMPORT_EXPORT_DATA": "Oynatma listelerini içe/dışa aktar",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "Uygulama içi kullanılan JSON formatında oynatma listelerini dışa aktar veya içe aktar.",
|
||||
"IMPORT_DATA": "İçe Aktar",
|
||||
"EXPORT_DATA": "Dışa Aktar",
|
||||
"REMOVE_ALL": "Tüm oynatma listelerini kaldır",
|
||||
"REMOVE_ALL_BUTTON": "Kaldır",
|
||||
"REMOVE_ALL_DESCRIPTION": "Bu, uygulamadaki tüm oynatma listelerini kaldıracaktır.",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "Tüm oynatma listelerini kaldır",
|
||||
"MESSAGE": "Uygulamadaki tüm oynatma listelerini silmek istediğinizden emin misiniz?"
|
||||
"YES": "Evet",
|
||||
"NO": "Hayır",
|
||||
"MENU": {
|
||||
"OPEN": "Menüyü aç",
|
||||
"SUPPORT_ARIA": "IPTVnator'u GitHub'da destekleyin",
|
||||
"SETTINGS": "Ayarlar",
|
||||
"SETTINGS_ARIA": "Ayarları aç",
|
||||
"BUG_REPORT": "Hata bildir",
|
||||
"WHAT_IS_NEW": "Yeni ne var?",
|
||||
"ABOUT": "Hakkında",
|
||||
"ABOUT_ARIA": "Uygulama hakkında",
|
||||
"SUPPORT_PROJECT": "Projeyi destekleyin"
|
||||
},
|
||||
"IMPORT_ERROR": "İçe aktarma hatası, lütfen başka bir dosyayla deneyin.",
|
||||
"PLAYLISTS_REMOVED": "Tüm oynatma listeleri kaldırıldı.",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv yolu",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki mpv oynatıcı yolunu ayarlayın. $PATH'de bulunanı kullanmak yerine, sağlanan mpv ikili dosyası yolunu kullanacaktır.",
|
||||
"MPV_PLAYER_PATH": "mpv oynatıcı yolu",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC yolu",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Sisteminizdeki VLC oynatıcı yolunu ayarlayın. Sistemimiz için varsayılan yolu kullanmak yerine, sağlanan VLC ikili dosyası yolunu kullanacaktır.",
|
||||
"VLC_PLAYER_PATH": "VLC oynatıcı yolu",
|
||||
"REMOTE_CONTROL": "Uzaktan kontrol",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "Uygulamanın uzaktan kontrolünü etkinleştirin.",
|
||||
"REMOTE_CONTROL_PORT": "Uzaktan kontrol portu",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "Uygulamanın uzaktan kontrolü için kullanılan port. Varsayılan olarak port 3000 kullanılır."
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "Koyu tema",
|
||||
"LIGHT_THEME": "Açık tema"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "Kanal ara",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "Dosya yükle veya başka bir oynatma listesi seçin",
|
||||
"ALL_CHANNELS": "Tüm kanallar",
|
||||
"GROUPS": "Gruplar",
|
||||
"UNGROUPED": "Grupsuz",
|
||||
"UNNAMED_CHANNEL": "İsimsiz kanal",
|
||||
"FAVORITES": "Favoriler",
|
||||
"NO_FAVORITES": "Henüz favori yok",
|
||||
"USE_STAR_TO_FAVORITE": "Lütfen favorilere kanal eklemek için 'yıldız' simgesini kullanın.",
|
||||
"REMOVE_FAVORITE": "Favorilerden kaldır",
|
||||
"FAVORITES_UPDATED": "Favoriler güncellendi!",
|
||||
"SORT_BY": "Sırala",
|
||||
"SORT_BY_DATE": "Eklenme tarihine göre sırala (Önce En Yeni)",
|
||||
"SORT_BY_RATING": "Puana göre sırala",
|
||||
"SORT_BY_NAME": "İsme göre sırala (A-Z)"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "Kanal listesini aç",
|
||||
"TOGGLE_FAVORITE_FLAG": "Favori işaretini değiştir",
|
||||
"OPEN_EPG_LIST": "EPG listesini aç",
|
||||
"OPEN_MULTI_EPG": "Çoklu EPG görünümünü aç"
|
||||
},
|
||||
"EPG": {
|
||||
"TITLE": "Elektronik Program Rehberi",
|
||||
"NEXT_DAY": "Sonraki gün",
|
||||
"PREVIOUS_DAY": "Önceki gün",
|
||||
"LIVE_NOW": "Şu an canlı",
|
||||
"LIVE_STREAM": "Canlı yayın",
|
||||
"TIMESHIFT_AVAILABLE": "Zaman kaydırma mevcut, tıklayarak oynat",
|
||||
"EPG_NOT_AVAILABLE_DATE": "Üzgünüz, seçilen tarih için EPG mevcut değil",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "Üzgünüz, bu kanal için EPG mevcut değil.",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "Lütfen uygulamanın ayarlarında EPG listesi URL'sini ekleyin veya değiştirin.",
|
||||
"FETCH_EPG": "EPG verileri alınıyor...",
|
||||
"ERROR": "Üzgünüz, EPG yüklenemedi.",
|
||||
"DOWNLOAD_SUCCESS": "EPG başarıyla indirildi.",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "TV programı hakkında",
|
||||
"TITLE": "Başlık",
|
||||
"CATEGORY": "Kategori",
|
||||
"PARENTAL_RATING_SYSTEM": "Televizyon içeriği derecelendirme sistemi",
|
||||
"DESCRIPTION": "Açıklama",
|
||||
"LANGUAGE": "Dil",
|
||||
"SHOW_PROGRAM_DETAILS": "Bu program hakkında detayları göster"
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnator Hakkında",
|
||||
"DESCRIPTION": "Çoklu özellikler sunan, m3u ve m3u8 oynatma listeleri, favoriler, TV rehberi, TV arşivi/geri dönük izleme ve daha fazlasını destekleyen çok platformlu IPTV oynatıcı uygulaması.",
|
||||
"VERSION": "Sürüm",
|
||||
"GITHUB_TOOLTIP": "IPTVnator GitHub deposu",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Bana bir kahve alın",
|
||||
"TWITTER_TOOLTIP": "Twitter'da paylaş"
|
||||
},
|
||||
"FETCH_SUCCESS": "EPG verileri başarıyla alındı"
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "Evet",
|
||||
"NO": "Hayır",
|
||||
"MENU": {
|
||||
"OPEN": "Menüyü aç",
|
||||
"SUPPORT_ARIA": "IPTVnator'u GitHub'da destekleyin",
|
||||
"SETTINGS": "Ayarlar",
|
||||
"SETTINGS_ARIA": "Ayarları aç",
|
||||
"BUG_REPORT": "Hata bildir",
|
||||
"WHAT_IS_NEW": "Yeni ne var?",
|
||||
"ABOUT": "Hakkında",
|
||||
"ABOUT_ARIA": "Uygulama hakkında",
|
||||
"SUPPORT_PROJECT": "Projeyi destekleyin"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "IPTVnator Hakkında",
|
||||
"DESCRIPTION": "Çoklu özellikler sunan, m3u ve m3u8 oynatma listeleri, favoriler, TV rehberi, TV arşivi/geri dönük izleme ve daha fazlasını destekleyen çok platformlu IPTV oynatıcı uygulaması.",
|
||||
"VERSION": "Sürüm",
|
||||
"GITHUB_TOOLTIP": "IPTVnator GitHub deposu",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "Bana bir kahve alın",
|
||||
"TWITTER_TOOLTIP": "Twitter'da paylaş"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "Güncelleme mevcut",
|
||||
"REFRESH": "Yenile",
|
||||
"XTREAM": {
|
||||
"PLAY": "Oynat",
|
||||
"NAME": "İsim",
|
||||
"RELEASE_DATE": "Çıkış tarihi",
|
||||
"GENRE": "Tür",
|
||||
"COUNTRY": "Ülke",
|
||||
"ACTORS": "Oyuncular",
|
||||
"DIRECTOR": "Yönetmen",
|
||||
"DURATION": "Süre",
|
||||
"CAST": "Oyuncular",
|
||||
"EPISODE_RUN_TIME": "Bölüm süresi",
|
||||
"RATING": "Değerlendirme",
|
||||
"IMDB_RATING": "IMDB derecelendirmesi",
|
||||
"KINOPOISK_RATING": "Kinopoisk derecelendirmesi",
|
||||
"DESCRIPTION": "Açıklama",
|
||||
"YEAR": "Yıl",
|
||||
"AGE": "Yaş",
|
||||
"YOUTUBE_TRAILER": "YouTube fragmanı",
|
||||
"EPISODE": "Bölüm"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Tüm kategoriler",
|
||||
"MY_FAVORITES": "Favorilerim",
|
||||
"ADD_TO_FAVORITES": "Favorilere ekle",
|
||||
"REMOVE_FROM_FAVORITES": "Favorilerden kaldır",
|
||||
"REMOVED_FROM_FAVORITES": "Favorilerden kaldırıldı",
|
||||
"ADDED_TO_FAVORITES": "Favorilere eklendi",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Hesap süresi doldu",
|
||||
"DESCRIPTION": "Bu hesabın süresi doldu. Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini kontrol edin veya kaldırın."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Yetkisiz",
|
||||
"DESCRIPTION": "Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini kontrol edin veya kaldırın."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal bulunamadı",
|
||||
"DESCRIPTION": "Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini ve portal url'sini kontrol edin veya kaldırın."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Boş kategori",
|
||||
"DESCRIPTION": "Bu kategoride içerik yok, lütfen başka bir kategori seçin veya içerik türünü değiştirin"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Bir şeyler ters gitti",
|
||||
"DESCRIPTION": "Bilinmeyen hata, lütfen daha sonra tekrar deneyin"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Oynatma Listesi Ayarları",
|
||||
"HOME": "Ana Sayfa",
|
||||
"DELETE": "Sil"
|
||||
"UPDATE_AVAILABLE": "Güncelleme mevcut",
|
||||
"REFRESH": "Yenile",
|
||||
"XTREAM": {
|
||||
"PLAY": "Oynat",
|
||||
"NAME": "İsim",
|
||||
"RELEASE_DATE": "Çıkış tarihi",
|
||||
"GENRE": "Tür",
|
||||
"COUNTRY": "Ülke",
|
||||
"ACTORS": "Oyuncular",
|
||||
"DIRECTOR": "Yönetmen",
|
||||
"DURATION": "Süre",
|
||||
"CAST": "Oyuncular",
|
||||
"EPISODE_RUN_TIME": "Bölüm süresi",
|
||||
"RATING": "Değerlendirme",
|
||||
"IMDB_RATING": "IMDB derecelendirmesi",
|
||||
"KINOPOISK_RATING": "Kinopoisk derecelendirmesi",
|
||||
"DESCRIPTION": "Açıklama",
|
||||
"YEAR": "Yıl",
|
||||
"AGE": "Yaş",
|
||||
"YOUTUBE_TRAILER": "YouTube fragmanı",
|
||||
"EPISODE": "Bölüm"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Arama sonuçları yok, lütfen arama talebinizi değiştirin"
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "Tüm kategoriler",
|
||||
"MY_FAVORITES": "Favorilerim",
|
||||
"ADD_TO_FAVORITES": "Favorilere ekle",
|
||||
"REMOVE_FROM_FAVORITES": "Favorilerden kaldır",
|
||||
"REMOVED_FROM_FAVORITES": "Favorilerden kaldırıldı",
|
||||
"ADDED_TO_FAVORITES": "Favorilere eklendi",
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "Hesap süresi doldu",
|
||||
"DESCRIPTION": "Bu hesabın süresi doldu. Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini kontrol edin veya kaldırın."
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "Yetkisiz",
|
||||
"DESCRIPTION": "Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini kontrol edin veya kaldırın."
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "Portal bulunamadı",
|
||||
"DESCRIPTION": "Lütfen oynatma listesi ayarlarındaki kimlik bilgilerini ve portal url'sini kontrol edin veya kaldırın."
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "Boş kategori",
|
||||
"DESCRIPTION": "Bu kategoride içerik yok, lütfen başka bir kategori seçin veya içerik türünü değiştirin"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Bir şeyler ters gitti",
|
||||
"DESCRIPTION": "Bilinmeyen hata, lütfen daha sonra tekrar deneyin"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Oynatma Listesi Ayarları",
|
||||
"HOME": "Ana Sayfa",
|
||||
"DELETE": "Sil"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"NO_SEARCH_RESULTS": "Arama sonuçları yok, lütfen arama talebinizi değiştirin"
|
||||
},
|
||||
"STREAM_URL_COPIED": "Yayın URL'si panoya kopyalandı",
|
||||
"COPY_STREAM_URL": "Yayın URL'sini kopyala"
|
||||
},
|
||||
"STREAM_URL_COPIED": "Yayın URL'si panoya kopyalandı",
|
||||
"COPY_STREAM_URL": "Yayın URL'sini kopyala"
|
||||
},
|
||||
"INFORMATION": "Bilgi",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Uzaktan kontrol",
|
||||
"UP_CHANNEL": "Kanal yukarı",
|
||||
"DOWN_CHANNEL": "Kanal aşağı",
|
||||
"HEADER": "IPTVNator Uzaktan Kontrol",
|
||||
"FOOTER": "IPTVNator Uzaktan Kontrol"
|
||||
}
|
||||
}
|
||||
"INFORMATION": "Bilgi",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "Uzaktan kontrol",
|
||||
"UP_CHANNEL": "Kanal yukarı",
|
||||
"DOWN_CHANNEL": "Kanal aşağı",
|
||||
"HEADER": "IPTVNator Uzaktan Kontrol",
|
||||
"FOOTER": "IPTVNator Uzaktan Kontrol"
|
||||
}
|
||||
}
|
||||
+329
-234
@@ -1,241 +1,336 @@
|
||||
{
|
||||
"CLOSE": "關閉",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "請從列表中選擇一個播放清單,或透過檔案上傳或網址新增新播放清單",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "最近新增的播放清單",
|
||||
"FILE_UPLOAD": "透過檔案上傳新增",
|
||||
"URL_UPLOAD": "透過網址新增",
|
||||
"TEXT_IMPORT": "以文字匯入",
|
||||
"STALKER_PORTAL_IMPORT": "Add Stalker Portal"
|
||||
"CLOSE": "關閉",
|
||||
"PLAYLISTS": "播放清單",
|
||||
"HOME": {
|
||||
"TITLE": "IPTVnator",
|
||||
"SUBTITLE": "請從列表中選擇一個播放清單,或透過檔案上傳或網址新增新播放清單",
|
||||
"TABS": {
|
||||
"RECENTLY_ADDED": "最近新增的播放清單",
|
||||
"FILE_UPLOAD": "透過檔案上傳新增",
|
||||
"URL_UPLOAD": "透過網址新增",
|
||||
"TEXT_IMPORT": "以文字匯入",
|
||||
"XTREME_IMPORT": "新增 Xtreme Code",
|
||||
"STALKER_PORTAL_IMPORT": "新增 Stalker Portal"
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "尚未新增播放清單",
|
||||
"ADD_FIRST": "請從其他分頁新增您的第一個播放清單",
|
||||
"WELCOME_TITLE": "歡迎使用 IPTVnator",
|
||||
"WELCOME_DESCRIPTION": "透過新增您的第一個播放清單開始串流之旅。連接您喜愛的 IPTV 服務,享受直播電視、電影和影集。",
|
||||
"ADD_YOUR_FIRST": "新增您的第一個播放清單",
|
||||
"FEATURE_M3U": "M3U/M3U8 檔案",
|
||||
"FEATURE_XTREAM": "Xtream Codes",
|
||||
"FEATURE_STALKER": "Stalker Portal",
|
||||
"NO_RESULTS_TITLE": "找不到播放清單",
|
||||
"NO_RESULTS_DESCRIPTION": "沒有符合您搜尋條件的播放清單。請嘗試調整搜尋詞或清除篩選條件以查看所有播放清單。",
|
||||
"XTREAM_PLAYLIST": "Xtream 播放清單",
|
||||
"STALKER_PORTAL": "Stalker Portal",
|
||||
"ADDED_VIA_URL": "透過網址上傳。網址:",
|
||||
"ADDED_VIA_FILE": "透過檔案上傳",
|
||||
"CHANNELS": "頻道",
|
||||
"ADDED": "已新增",
|
||||
"SHOW_DETAILS": "顯示播放清單詳細資訊",
|
||||
"REMOVE": "移除播放清單",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "播放清單詳細資訊",
|
||||
"TITLE": "標題",
|
||||
"FROM_URL": "來自網址",
|
||||
"IMPORT_DATE": "匯入日期",
|
||||
"CHANNELS": "頻道數量",
|
||||
"CLOSE": "關閉",
|
||||
"SAVE": "儲存",
|
||||
"USER_AGENT": "User Agent",
|
||||
"ORIGINAL_FILENAME": "原始檔名",
|
||||
"FILE_PATH": "檔案路徑",
|
||||
"UPDATE_FAILED": "上次播放清單更新失敗",
|
||||
"AUTO_UPDATE": "自動更新",
|
||||
"AUTO_UPDATE_DESCRIPTION": "如果啟動自動重新整理功能,則每次啟動應用程式時都將自動更新播放清單。",
|
||||
"CUSTOM_USER_AGENT": "部分 IPTV 服務提供者需要特定的 User-Agent 才能播放他們的播放清單。",
|
||||
"EXPORT_PLAYLIST": "以 m3u 格式匯出播放清單",
|
||||
"PASSWORD": "密碼",
|
||||
"SERVER_URL": "伺服器網址",
|
||||
"USERNAME": "使用者名稱",
|
||||
"MAC_ADDRESS": "Mac 位址",
|
||||
"PLAYLIST_EXPORT_SUCCESS": "播放清單已成功匯出。",
|
||||
"PLAYLIST_EXPORT_ERROR": "錯誤:播放清單匯出失敗。"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "移除播放清單",
|
||||
"MESSAGE": "您確定要完全刪除此播放清單嗎?",
|
||||
"SUCCESS": "播放清單已成功移除"
|
||||
},
|
||||
"UPDATED": "已更新",
|
||||
"REFRESH": "重新整理播放清單",
|
||||
"AUTO_REFRESH_ENABLED": "已啟用自動重新整理",
|
||||
"REFRESH_XTREAM": "從遠端重新整理 Xtream 播放清單",
|
||||
"REFRESH_XTREAM_DIALOG": {
|
||||
"TITLE": "重新整理 Xtream 播放清單",
|
||||
"MESSAGE": "這將刪除本機快取的類別和串流,並從遠端伺服器重新匯入所有內容。您的最愛和最近觀看的項目將會保留。確定要繼續嗎?",
|
||||
"STARTED": "已開始重新整理。正在導向播放清單...",
|
||||
"ERROR": "重新整理播放清單失敗。請重試。"
|
||||
},
|
||||
"GLOBAL_FAVORITES": "全域我的最愛",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "從所有播放清單中自動產生的匯總我的最愛清單",
|
||||
"MY_PLAYLISTS": "我的播放清單",
|
||||
"MY_PLAYLISTS_SUBTITLE": "所有可用清單",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "成功!播放清單已成功更新。",
|
||||
"PLAYLIST_UPDATE_ERROR": "更新播放清單詳細資訊時發生錯誤。",
|
||||
"AUTO_REFRESH_UPDATE_SUCCESS": "成功!播放清單已成功更新",
|
||||
"SEARCH_PLAYLISTS": "依標題搜尋播放清單"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "在此處拖放檔案",
|
||||
"OR": "或者",
|
||||
"CHOOSE_PLAYLIST": "選擇播放清單",
|
||||
"REJECTED": "檔案被拒絕,不支援的檔案格式 {{filename}}。"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "播放清單網址(m3u,m3u8)",
|
||||
"ADD_PLAYLIST": "新增播放清單",
|
||||
"CORS_NOTE": "為了避免 CORS 問題,此應用程式目前使用了一個公開的 CORS 代理服務。如果您要上傳包含敏感資料的播放清單,建議在相鄰的分頁中將其作為檔案匯入。"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "將 m3u(8)播放清單以純文字的方式插入",
|
||||
"BUTTON_LABEL": "匯入"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "新增",
|
||||
"TITLE": "標題",
|
||||
"MAC_ADDRESS": "Mac 位址",
|
||||
"SERVER_URL": "伺服器網址",
|
||||
"URL_VALIDATION_ERROR": "必須是有效的網址並包含協定(例如 http://example.com/c 或 https://example.com/stalker_portal/c)"
|
||||
},
|
||||
"XTREAM_PLAYLIST": {
|
||||
"TITLE": "播放清單標題",
|
||||
"SERVER_URL": "伺服器網址",
|
||||
"USERNAME": "使用者名稱",
|
||||
"PASSWORD": "密碼",
|
||||
"ADD": "新增",
|
||||
"TEST_CREDENTIALS": "測試憑證",
|
||||
"URL_VALIDATION_ERROR": "必須是有效的網址並包含協定(例如 http://example.com 或 https://example.com:4324)"
|
||||
}
|
||||
},
|
||||
"PLAYLISTS": {
|
||||
"NO_PLAYLISTS": "尚未新增播放清單",
|
||||
"ADD_FIRST": "請從其他分頁新增您的第一個播放清單",
|
||||
"ADDED_VIA_URL": "透過網址上傳。網址:",
|
||||
"ADDED_VIA_FILE": "透過檔案上傳",
|
||||
"CHANNELS": "頻道",
|
||||
"ADDED": "已新增",
|
||||
"SHOW_DETAILS": "顯示播放清單詳細資訊",
|
||||
"REMOVE": "移除播放清單",
|
||||
"INFO_DIALOG": {
|
||||
"PLAYLIST_DETAILS": "播放清單詳細資訊",
|
||||
"TITLE": "標題",
|
||||
"FROM_URL": "來自網址",
|
||||
"IMPORT_DATE": "匯入日期",
|
||||
"CHANNELS": "頻道數量",
|
||||
"CLOSE": "關閉",
|
||||
"SAVE": "儲存",
|
||||
"USER_AGENT": "User Agent",
|
||||
"ORIGINAL_FILENAME": "原始檔名",
|
||||
"FILE_PATH": "檔案路徑",
|
||||
"UPDATE_FAILED": "上次播放清單更新失敗",
|
||||
"AUTO_UPDATE": "自動更新",
|
||||
"AUTO_UPDATE_DESCRIPTION": "如果啟動自動重新整理功能,則每次啟動應用程式時都將自動更新播放清單。",
|
||||
"CUSTOM_USER_AGENT": "部分 IPTV 服務提供者需要特定的 User-Agent 才能播放他們的播放清單。",
|
||||
"EXPORT_PLAYLIST": "以 m3u 格式匯出播放清單",
|
||||
"PASSWORD": "Password",
|
||||
"SERVER_URL": "Server URL",
|
||||
"USERNAME": "Username",
|
||||
"MAC_ADDRESS": "Mac Address"
|
||||
},
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "移除播放清單",
|
||||
"MESSAGE": "您確定要完全刪除此播放清單嗎?"
|
||||
},
|
||||
"UPDATED": "已更新",
|
||||
"REFRESH": "重新整理播放清單",
|
||||
"GLOBAL_FAVORITES": "全域我的最愛",
|
||||
"GLOBAL_FAVORITES_DESCRIPTION": "從所有播放清單中自動產生的匯總我的最愛清單",
|
||||
"MY_PLAYLISTS": "我的播放清單",
|
||||
"MY_PLAYLISTS_SUBTITLE": "所有可用清單",
|
||||
"PLAYLIST_UPDATE_SUCCESS": "成功!播放清單已成功更新。"
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定",
|
||||
"SUBTITLE": "更改應用程式的配置",
|
||||
"DESCRIPTION": "請調整下面的選項列表,並使用儲存變更按鈕確認",
|
||||
"EPG_URL_LABEL": "EPG 網址(*.xml 或 *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "輸入網址",
|
||||
"REFRESH_EPG": "重新整理 EPG",
|
||||
"VIDEO_PLAYER_LABEL": "影片播放器",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "選擇一個選項",
|
||||
"VERSION": "版本",
|
||||
"SAVE_CHANGES": "儲存變更",
|
||||
"BACK_TO_HOME": "返回主頁",
|
||||
"NEW_VERSION_AVAILABLE": "有新版本可用",
|
||||
"LATEST_VERSION": "您正在使用最新版本",
|
||||
"LANGUAGE": "語言",
|
||||
"SETTINGS_SAVED": "成功!設定已儲存。",
|
||||
"THEME": "視覺主題",
|
||||
"SHOW_CAPTIONS": "顯示字幕",
|
||||
"ADD_EPG_SOURCE": "新增 EPG 來源",
|
||||
"EPG_URL_ERROR": "該值不是有效的網址",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "選擇預設影片播放器",
|
||||
"LANGUAGE_DESCRIPTION": "選擇應用程式語言",
|
||||
"THEME_DESCRIPTION": "選擇應用程式視覺主題",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "預設顯示或隱藏字幕",
|
||||
"VERSION_DESCRIPTION": "應用程式目前版本",
|
||||
"EPG_NOTE": "目前僅在 Electron 版的 IPTVnator 中提供 EPG。",
|
||||
"EPG_NOTE_URL_TEXT": "在此處查看",
|
||||
"IMPORT_EXPORT_DATA": "匯入/匯出播放清單",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "以應用程式內使用的 JSON 格式匯出或匯入播放清單。",
|
||||
"IMPORT_DATA": "匯入",
|
||||
"EXPORT_DATA": "匯出",
|
||||
"REMOVE_ALL": "移除播放清單",
|
||||
"REMOVE_ALL_BUTTON": "移除",
|
||||
"REMOVE_ALL_DESCRIPTION": "這將從應用程式中移除所有現有的播放清單。",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "移除所有播放清單",
|
||||
"MESSAGE": "您確定要從應用程式中刪除所有播放清單嗎?"
|
||||
},
|
||||
"IMPORT_ERROR": "匯入錯誤,請嘗試另外一個檔案。",
|
||||
"PLAYLISTS_REMOVED": "所有播放清單已移除。",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv 路徑",
|
||||
"MPV_PLAYER_PATH_DESCRIPTION": "設定您系統中 mpv 播放器的路徑。將使用提供的 mpv 二進位檔路徑,而非 $PATH 中的預設路徑。",
|
||||
"MPV_PLAYER_PATH": "mpv 播放器路徑",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC 路徑",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "設定您系統中 VLC 播放器的路徑。將使用提供的 VLC 二進位檔路徑,而非系統預設路徑。",
|
||||
"VLC_PLAYER_PATH": "VLC 播放器路徑",
|
||||
"REMOTE_CONTROL": "遠端控制",
|
||||
"REMOTE_CONTROL_DESCRIPTION": "啟用應用程式遠端控制功能。",
|
||||
"REMOTE_CONTROL_PORT": "遠端控制連接埠",
|
||||
"REMOTE_CONTROL_PORT_DESCRIPTION": "用於遠端控制應用程式的連接埠。預設使用連接埠 8765。"
|
||||
},
|
||||
"FILE_UPLOAD": {
|
||||
"DRAG_DROP": "在此處拖放檔案",
|
||||
"OR": "或者",
|
||||
"CHOOSE_PLAYLIST": "選擇播放清單",
|
||||
"REJECTED": "檔案被拒絕,不支援的檔案格式 {{filename}}。"
|
||||
"THEMES": {
|
||||
"DARK_THEME": "深色主題",
|
||||
"LIGHT_THEME": "亮色主題"
|
||||
},
|
||||
"URL_UPLOAD": {
|
||||
"PLAYLIST_URL": "播放清單網址(m3u,m3u8)",
|
||||
"ADD_PLAYLIST": "新增播放清單",
|
||||
"CORS_NOTE": "為了避免 CORS 問題,此應用程式目前使用了一個公開的 CORS 代理服務。如果您要上傳包含敏感資料的播放清單,建議在相鄰的分頁中將其作為檔案匯入。"
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "搜尋頻道",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "上傳或選擇其他播放清單",
|
||||
"ALL_CHANNELS": "所有頻道",
|
||||
"GROUPS": "群組",
|
||||
"UNGROUPED": "未分組",
|
||||
"UNNAMED_CHANNEL": "未命名頻道",
|
||||
"FAVORITES": "我的最愛",
|
||||
"NO_FAVORITES": "尚無最愛",
|
||||
"USE_STAR_TO_FAVORITE": "請使用“星星”圖示將頻道新增至此列表。",
|
||||
"REMOVE_FAVORITE": "從我的最愛中移除",
|
||||
"FAVORITES_UPDATED": "我的最愛已更新!"
|
||||
},
|
||||
"TEXT_IMPORT": {
|
||||
"LABEL": "將 m3u(8)播放清單以純文字的方式插入",
|
||||
"BUTTON_LABEL": "匯入"
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "打開頻道列表",
|
||||
"TOGGLE_FAVORITE_FLAG": "切換我的最愛標記",
|
||||
"OPEN_EPG_LIST": "開啟 EPG 列表",
|
||||
"OPEN_MULTI_EPG": "開啟多 EPG 視圖"
|
||||
},
|
||||
"STALKER_PORTAL": {
|
||||
"ADD": "Add",
|
||||
"TITLE": "Title"
|
||||
"EPG": {
|
||||
"NEXT_DAY": "下一天",
|
||||
"PREVIOUS_DAY": "上一天",
|
||||
"LIVE_NOW": "現在播放",
|
||||
"LIVE_STREAM": "現場直播",
|
||||
"TIMESHIFT_AVAILABLE": "時間平移功能可用,點選以播放",
|
||||
"EPG_NOT_AVAILABLE_DATE": "抱歉,選擇的日期上 EPG 無法使用",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "抱歉,此頻道上的 EPG 無法使用。",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "請在應用程式設定中增加/更改 EPG 列表的URL。",
|
||||
"FETCH_EPG": "取得 EPG 資料...",
|
||||
"ERROR": "抱歉,無法載入 EPG。",
|
||||
"DOWNLOAD_SUCCESS": "EPG 已成功下載。",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "關於電視節目的詳細資訊",
|
||||
"TITLE": "標題",
|
||||
"CATEGORY": "類別",
|
||||
"PARENTAL_RATING_SYSTEM": "電視內容分級制度",
|
||||
"DESCRIPTION": "說明",
|
||||
"LANGUAGE": "語言",
|
||||
"SHOW_PROGRAM_DETAILS": "顯示關於該節目的詳細資訊"
|
||||
}
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "是",
|
||||
"NO": "否",
|
||||
"MENU": {
|
||||
"OPEN": "開啟選單",
|
||||
"SUPPORT_ARIA": "在 GitHub 上支持 IPTVnator",
|
||||
"SETTINGS": "設定",
|
||||
"SETTINGS_ARIA": "開啟設定",
|
||||
"BUG_REPORT": "回報問題",
|
||||
"WHAT_IS_NEW": "更新內容",
|
||||
"ABOUT": "關於",
|
||||
"ABOUT_ARIA": "關於本應用程式",
|
||||
"SUPPORT_PROJECT": "支持專案"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "關於 IPTVnator",
|
||||
"DESCRIPTION": "跨平台 IPTV 播放器,具有多種功能,如支援 m3u 和 m3u8 播放清單、我的最愛、電視指南、電視節目存檔/回看等。",
|
||||
"VERSION": "版本",
|
||||
"GITHUB_TOOLTIP": "ITPVnator 的 GitHub 專案",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "請我喝杯咖啡",
|
||||
"TWITTER_TOOLTIP": "在 Twitter 上分享"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "有可用的更新",
|
||||
"REFRESH": "重新整理",
|
||||
"XTREAM": {
|
||||
"PLAY": "播放",
|
||||
"NAME": "名稱",
|
||||
"RELEASE_DATE": "發行日期",
|
||||
"GENRE": "類型",
|
||||
"COUNTRY": "國家",
|
||||
"ACTORS": "演員",
|
||||
"DIRECTOR": "導演",
|
||||
"DURATION": "片長",
|
||||
"CAST": "演員陣容",
|
||||
"EPISODE_RUN_TIME": "集數時長",
|
||||
"RATING": "評分",
|
||||
"IMDB_RATING": "IMDB 評分",
|
||||
"KINOPOISK_RATING": "Kinopoisk 評分",
|
||||
"DESCRIPTION": "描述",
|
||||
"YEAR": "年份",
|
||||
"AGE": "年齡",
|
||||
"YOUTUBE_TRAILER": "YouTube 預告片",
|
||||
"EPISODE": "集數"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "所有類別",
|
||||
"MY_FAVORITES": "我的最愛",
|
||||
"ADD_TO_FAVORITES": "新增至最愛",
|
||||
"REMOVE_FROM_FAVORITES": "從最愛中移除",
|
||||
"REMOVED_FROM_FAVORITES": "已從最愛中移除",
|
||||
"ADDED_TO_FAVORITES": "已新增至最愛",
|
||||
"SIDEBAR": {
|
||||
"MAIN": "主頁",
|
||||
"MOVIES": "電影",
|
||||
"LIVE_TV": "直播電視",
|
||||
"SERIES": "影集",
|
||||
"LIBRARY": "媒體庫",
|
||||
"SEARCH": "搜尋",
|
||||
"RECENT": "最近觀看",
|
||||
"FAVORITES": "我的最愛",
|
||||
"HOME": "首頁",
|
||||
"PLAYLIST_INFO": "播放清單資訊",
|
||||
"ACCOUNT_INFO": "帳戶資訊"
|
||||
},
|
||||
"ERROR_VIEW": {
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"TITLE": "帳戶已過期",
|
||||
"DESCRIPTION": "此帳戶已過期。請在播放清單設定中檢查憑證或將其移除。"
|
||||
},
|
||||
"UNAUTHORIZED": {
|
||||
"TITLE": "未授權",
|
||||
"DESCRIPTION": "請在播放清單設定中檢查憑證或將其移除。"
|
||||
},
|
||||
"NOT_FOUND": {
|
||||
"TITLE": "找不到入口網站",
|
||||
"DESCRIPTION": "請在播放清單設定中檢查憑證和入口網站網址或將其移除。"
|
||||
},
|
||||
"EMPTY_CATEGORY": {
|
||||
"TITLE": "空類別",
|
||||
"DESCRIPTION": "此類別沒有內容,請選擇其他類別或更改內容類型"
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "發生錯誤",
|
||||
"DESCRIPTION": "未知錯誤,請稍後再試"
|
||||
},
|
||||
"NO_CATEGORY_SELECTED": {
|
||||
"TITLE": "未選擇類別",
|
||||
"DESCRIPTION": "請選擇一個類別以查看內容"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "播放清單設定",
|
||||
"HOME": "首頁",
|
||||
"DELETE": "刪除"
|
||||
},
|
||||
"EMPTY_LIST_VIEW": {
|
||||
"TITLE": "找不到結果",
|
||||
"NO_SEARCH_RESULTS": "找不到任何內容,請嘗試更改搜尋條件"
|
||||
},
|
||||
"STREAM_URL_COPIED": "串流網址已複製到剪貼簿",
|
||||
"COPY_STREAM_URL": "複製串流網址",
|
||||
"SELECT_CATEGORY": "選擇類別"
|
||||
},
|
||||
"INFORMATION": "資訊",
|
||||
"REMOTE_CONTROL": {
|
||||
"TITLE": "遠端控制",
|
||||
"UP_CHANNEL": "上一頻道",
|
||||
"DOWN_CHANNEL": "下一頻道",
|
||||
"HEADER": "IPTVNator 遠端控制",
|
||||
"FOOTER": "IPTVNator 遠端控制"
|
||||
}
|
||||
},
|
||||
"SETTINGS": {
|
||||
"TITLE": "設定 / IPTVnator",
|
||||
"SUBTITLE": "更改應用程式的配置",
|
||||
"DESCRIPTION": "請調整下面的選項列表,並使用儲存變更按鈕確認",
|
||||
"EPG_URL_LABEL": "EPG 網址(*.xml 或 *.xml.gz)",
|
||||
"EPG_URL_PLACEHOLDER": "輸入網址",
|
||||
"REFRESH_EPG": "重新整理 EPG",
|
||||
"VIDEO_PLAYER_LABEL": "影片播放器",
|
||||
"VIDEO_PLAYER_PLACEHOLDER": "選擇一個選項",
|
||||
"VERSION": "版本",
|
||||
"SAVE_CHANGES": "儲存變更",
|
||||
"BACK_TO_HOME": "返回主頁",
|
||||
"NEW_VERSION_AVAILABLE": "有新版本可用",
|
||||
"LATEST_VERSION": "您正在使用最新版本",
|
||||
"LANGUAGE": "語言",
|
||||
"SETTINGS_SAVED": "成功!設定已儲存。",
|
||||
"THEME": "視覺主題",
|
||||
"SHOW_CAPTIONS": "顯示字幕",
|
||||
"ADD_EPG_SOURCE": "新增 EPG 來源",
|
||||
"EPG_URL_ERROR": "該值不是有效的網址",
|
||||
"VIDEO_PLAYER_DESCRIPTION": "選擇預設影片播放器",
|
||||
"LANGUAGE_DESCRIPTION": "選擇應用程式語言",
|
||||
"THEME_DESCRIPTION": "選擇應用程式視覺主題",
|
||||
"SHOW_CAPTIONS_DESCRIPTION": "預設顯示或隱藏字幕",
|
||||
"VERSION_DESCRIPTION": "應用程式目前版本",
|
||||
"EPG_NOTE": "目前僅在 Electron 版的 IPTVnator 中提供 EPG。",
|
||||
"EPG_NOTE_URL_TEXT": "在此處查看",
|
||||
"IMPORT_EXPORT_DATA": "匯入/匯出播放清單",
|
||||
"IMPORT_EXPORT_DATA_DESCRIPTION": "以應用程式內使用的 JSON 格式匯出或匯入播放清單。",
|
||||
"IMPORT_DATA": "匯入",
|
||||
"EXPORT_DATA": "匯出",
|
||||
"REMOVE_ALL": "移除播放清單",
|
||||
"REMOVE_ALL_BUTTON": "移除",
|
||||
"REMOVE_ALL_DESCRIPTION": "這將從應用程式中移除所有現有的播放清單。",
|
||||
"REMOVE_DIALOG": {
|
||||
"TITLE": "移除所有播放清單",
|
||||
"MESSAGE": "您確定要從應用程式中刪除所有播放清單嗎?"
|
||||
},
|
||||
"IMPORT_ERROR": "匯入錯誤,請嘗試另外一個檔案。",
|
||||
"PLAYLISTS_REMOVED": "所有播放清單已移除。",
|
||||
"VLC_PLAYER_PATH_LABEL": "VLC path",
|
||||
"VLC_PLAYER_PATH_DESCRIPTION": "Set path to VLC player in your system. It will use the provided path to a VLC binary instead of the default path for our system.",
|
||||
"VLC_PLAYER_PATH": "VLC player path",
|
||||
"MPV_PLAYER_PATH_LABEL": "mpv path"
|
||||
},
|
||||
"THEMES": {
|
||||
"DARK_THEME": "深色主題",
|
||||
"LIGHT_THEME": "亮色主題"
|
||||
},
|
||||
"CHANNELS": {
|
||||
"SEARCH_CHANNEL": "搜尋頻道",
|
||||
"UPLOAD_OR_SELECT_OTHER_PLAYLIST": "上傳或選擇其他播放清單",
|
||||
"ALL_CHANNELS": "所有頻道",
|
||||
"GROUPS": "群組",
|
||||
"UNGROUPED": "未分組",
|
||||
"UNNAMED_CHANNEL": "未命名頻道",
|
||||
"FAVORITES": "我的最愛",
|
||||
"NO_FAVORITES": "尚無最愛",
|
||||
"USE_STAR_TO_FAVORITE": "請使用“星星”圖示將頻道新增至此列表。",
|
||||
"REMOVE_FAVORITE": "從我的最愛中移除",
|
||||
"FAVORITES_UPDATED": "我的最愛已更新!"
|
||||
},
|
||||
"TOP_MENU": {
|
||||
"OPEN_CHANNELS_LIST": "打開頻道列表",
|
||||
"TOGGLE_FAVORITE_FLAG": "切換我的最愛標記",
|
||||
"OPEN_EPG_LIST": "開啟 EPG 列表",
|
||||
"OPEN_MULTI_EPG": "開啟多 EPG 視圖"
|
||||
},
|
||||
"EPG": {
|
||||
"NEXT_DAY": "下一天",
|
||||
"PREVIOUS_DAY": "上一天",
|
||||
"LIVE_NOW": "現在播放",
|
||||
"LIVE_STREAM": "現場直播",
|
||||
"TIMESHIFT_AVAILABLE": "時間平移功能可用,點選以播放",
|
||||
"EPG_NOT_AVAILABLE_DATE": "抱歉,選擇的日期上 EPG 無法使用",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_TITLE": "抱歉,此頻道上的 EPG 無法使用。",
|
||||
"EPG_NOT_AVAILABLE_CHANNEL_DESCRIPTION": "請在應用程式設定中增加/更改 EPG 列表的URL。",
|
||||
"FETCH_EPG": "取得 EPG 資料...",
|
||||
"ERROR": "抱歉,無法載入 EPG。",
|
||||
"DOWNLOAD_SUCCESS": "EPG 已成功下載。",
|
||||
"PROGRAM_DIALOG": {
|
||||
"PROGRAM_DETAILS": "關於電視節目的詳細資訊",
|
||||
"TITLE": "標題",
|
||||
"CATEGORY": "類別",
|
||||
"PARENTAL_RATING_SYSTEM": "電視內容分級制度",
|
||||
"DESCRIPTION": "說明",
|
||||
"LANGUAGE": "語言",
|
||||
"SHOW_PROGRAM_DETAILS": "顯示關於該節目的詳細資訊"
|
||||
}
|
||||
},
|
||||
"LANGUAGES": {
|
||||
"ARABIC": "العربية",
|
||||
"MOROCCAN_ARABIC": "العربية (اللهجة المغربية)",
|
||||
"ENGLISH": "English",
|
||||
"KOREAN": "한국어",
|
||||
"RUSSIAN": "Русский",
|
||||
"GERMAN": "Deutsch",
|
||||
"SPANISH": "Español",
|
||||
"CHINESE": "简体中文",
|
||||
"TRADITIONAL_CHINESE": "繁體中文",
|
||||
"FRENCH": "Français",
|
||||
"ITALIAN": "Italiano",
|
||||
"TURKISH": "Türkçe",
|
||||
"JAPANESE": "日本語",
|
||||
"DUTCH": "Nederlands",
|
||||
"BELARUSIAN": "Беларуская",
|
||||
"POLISH": "Polski",
|
||||
"PORTUGUESE": "Português"
|
||||
},
|
||||
"YES": "是",
|
||||
"NO": "否",
|
||||
"MENU": {
|
||||
"OPEN": "開啟選單",
|
||||
"SUPPORT_ARIA": "在 GitHub 上支持 IPTVnator",
|
||||
"SETTINGS": "設定",
|
||||
"SETTINGS_ARIA": "開啟設定",
|
||||
"BUG_REPORT": "回報問題",
|
||||
"WHAT_IS_NEW": "更新內容",
|
||||
"ABOUT": "關於",
|
||||
"ABOUT_ARIA": "關於本應用程式",
|
||||
"SUPPORT_PROJECT": "Support project"
|
||||
},
|
||||
"ABOUT": {
|
||||
"TITLE": "關於 IPTVnator",
|
||||
"DESCRIPTION": "跨平台 IPTV 播放器,具有多種功能,如支援 m3u 和 m3u8 播放清單、我的最愛、電視指南、電視節目存檔/回看等。",
|
||||
"VERSION": "版本",
|
||||
"GITHUB_TOOLTIP": "ITPVnator 的 GitHub 專案",
|
||||
"BUY_ME_A_COFFEE_TOOLTIP": "請我喝杯咖啡",
|
||||
"TWITTER_TOOLTIP": "在 Twitter 上分享"
|
||||
},
|
||||
"UPDATE_AVAILABLE": "有可用的更新",
|
||||
"REFRESH": "重新整理",
|
||||
"XTREAM": {
|
||||
"RELEASE_DATE": "Release date",
|
||||
"ACTORS": "Actors",
|
||||
"PLAY": "Play",
|
||||
"GENRE": "Genre",
|
||||
"DURATION": "Duration",
|
||||
"COUNTRY": "Country",
|
||||
"NAME": "Name",
|
||||
"DIRECTOR": "Director",
|
||||
"CAST": "Cast",
|
||||
"RATING": "Rating"
|
||||
},
|
||||
"PORTALS": {
|
||||
"ALL_CATEGORIES": "All categories",
|
||||
"ADD_TO_FAVORITES": "Add to favorites",
|
||||
"REMOVE_FROM_FAVORITES": "Remove from favorites",
|
||||
"MY_FAVORITES": "My favorites",
|
||||
"ERROR_VIEW": {
|
||||
"DELETE": "",
|
||||
"ACCOUNT_EXPIRED": {
|
||||
"DESCRIPTION": "This account has been expired. Please check the credentials in playlist settings or remove it."
|
||||
},
|
||||
"UNKNOWN_ERROR": {
|
||||
"TITLE": "Something went wrong",
|
||||
"DESCRIPTION": "Unknown error, please try again later"
|
||||
},
|
||||
"PLAYLIST_SETTINGS": "Playlist Settings",
|
||||
"UNAUTHORIZED": {
|
||||
"DESCRIPTION": "Please check the credentials in playlist settings or remove it."
|
||||
}
|
||||
},
|
||||
"REMOVED_FROM_FAVORITES": "Removed from favorites",
|
||||
"ADDED_TO_FAVORITES": "Added to favorites"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,5 +4,5 @@ export const AppConfig = {
|
||||
production: false,
|
||||
environment: 'LOCAL',
|
||||
version: packageJson.version,
|
||||
BACKEND_URL: 'https://iptvnator-playlist-parser-api.vercel.app',
|
||||
BACKEND_URL: 'http://localhost:3000',
|
||||
};
|
||||
+13
-18
@@ -1,6 +1,19 @@
|
||||
// @import 'themes/';
|
||||
@import '@yangkghjh/videojs-aspect-ratio-panel/dist/videojs-aspect-ratio-panel.css';
|
||||
|
||||
// macOS specific styles - space for traffic lights
|
||||
app-root.macos-platform app-header .modern-header {
|
||||
padding-left: 80px;
|
||||
}
|
||||
|
||||
app-root.macos-platform .current-playlist {
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
app-root.macos-platform app-navigation .portal-status-container {
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
user-select: none;
|
||||
@@ -17,20 +30,9 @@ html {
|
||||
}
|
||||
}
|
||||
|
||||
.mat-toolbar.mat-primary {
|
||||
background: #000;
|
||||
color: #b8b8b8;
|
||||
}
|
||||
|
||||
.full-width {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mat-toolbar-row,
|
||||
.mat-toolbar-single-row {
|
||||
height: 54px;
|
||||
}
|
||||
|
||||
.mat-tab-label-active {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
@@ -42,13 +44,6 @@ textarea,
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* .dark-theme .mat-expansion-panel,
|
||||
.dark-theme .mat-drawer,
|
||||
.dark-theme .mat-app-background,
|
||||
.dark-theme.mat-app-background {
|
||||
background-color: #1d1d1d;
|
||||
} */
|
||||
|
||||
.dark-theme {
|
||||
::-webkit-scrollbar {
|
||||
overflow-y: scroll;
|
||||
|
||||
Vendored
+1
@@ -160,6 +160,7 @@ declare global {
|
||||
onChannelChange?: (
|
||||
callback: (data: { direction: 'up' | 'down' }) => void
|
||||
) => void;
|
||||
getLocalIpAddresses: () => Promise<string[]>;
|
||||
};
|
||||
process: NodeJS.Process;
|
||||
require: NodeRequire;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export * from './lib/add-playlist-menu/add-playlist-menu.component';
|
||||
export * from './lib/art-player/art-player.component';
|
||||
export * from './lib/audio-player/audio-player.component';
|
||||
export * from './lib/channel-list-container/channel-list-container.component';
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<mat-menu #addPlaylistMenu="matMenu">
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.FILE_UPLOAD' | translate"
|
||||
(click)="onPlaylistTypeClick('file')"
|
||||
>
|
||||
<mat-icon>attach_file</mat-icon>
|
||||
<span>{{ 'HOME.TABS.FILE_UPLOAD' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.URL_UPLOAD' | translate"
|
||||
(click)="onPlaylistTypeClick('url')"
|
||||
>
|
||||
<mat-icon>link</mat-icon>
|
||||
<span>{{ 'HOME.TABS.URL_UPLOAD' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.TEXT_IMPORT' | translate"
|
||||
(click)="onPlaylistTypeClick('text')"
|
||||
>
|
||||
<mat-icon>text_format</mat-icon>
|
||||
<span>{{ 'HOME.TABS.TEXT_IMPORT' | translate }}</span>
|
||||
</button>
|
||||
<mat-divider></mat-divider>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.XTREME_IMPORT' | translate"
|
||||
(click)="onPlaylistTypeClick('xtream')"
|
||||
>
|
||||
<mat-icon>video_library</mat-icon>
|
||||
<span>{{ 'HOME.TABS.XTREME_IMPORT' | translate }}</span>
|
||||
</button>
|
||||
<button
|
||||
mat-menu-item
|
||||
[attr.aria-label]="'HOME.TABS.STALKER_PORTAL_IMPORT' | translate"
|
||||
(click)="onPlaylistTypeClick('stalker')"
|
||||
>
|
||||
<mat-icon>dashboard</mat-icon>
|
||||
<span>{{ 'HOME.TABS.STALKER_PORTAL_IMPORT' | translate }}</span>
|
||||
</button>
|
||||
</mat-menu>
|
||||
@@ -0,0 +1,22 @@
|
||||
import { Component, output, viewChild } from '@angular/core';
|
||||
import { MatDividerModule } from '@angular/material/divider';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatMenu, MatMenuModule } from '@angular/material/menu';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
export type PlaylistType = 'xtream' | 'url' | 'text' | 'file' | 'stalker';
|
||||
|
||||
@Component({
|
||||
selector: 'app-add-playlist-menu',
|
||||
templateUrl: './add-playlist-menu.component.html',
|
||||
imports: [MatDividerModule, MatIconModule, MatMenuModule, TranslateModule],
|
||||
})
|
||||
export class AddPlaylistMenuComponent {
|
||||
readonly menu = viewChild.required<MatMenu>('addPlaylistMenu');
|
||||
|
||||
readonly playlistTypeSelected = output<PlaylistType>();
|
||||
|
||||
onPlaylistTypeClick(type: PlaylistType): void {
|
||||
this.playlistTypeSelected.emit(type);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
@if (type() === 'welcome') {
|
||||
<div class="empty-state welcome-state">
|
||||
<div class="illustration-container">
|
||||
<!-- Monitor with WiFi signal -->
|
||||
<svg class="illustration" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Background rounded rectangle -->
|
||||
<rect x="40" y="40" width="432" height="432" rx="80" class="icon-background"/>
|
||||
|
||||
<!-- Monitor base -->
|
||||
<rect x="134" y="387" width="244" height="18" rx="4" class="monitor-base"/>
|
||||
|
||||
<!-- Monitor stand -->
|
||||
<rect x="238" y="347" width="36" height="40" rx="4" class="monitor-stand"/>
|
||||
|
||||
<!-- Monitor screen border -->
|
||||
<rect x="88" y="102" width="336" height="245" rx="12" stroke="currentColor" stroke-width="12" fill="none" class="screen-border"/>
|
||||
|
||||
<!-- WiFi symbol -->
|
||||
<!-- Bottom dot -->
|
||||
<circle cx="256" cy="280" r="16" class="wifi-dot"/>
|
||||
|
||||
<!-- First arc (smallest) -->
|
||||
<path d="M 220 250 Q 256 220, 292 250" stroke="currentColor" stroke-width="14" fill="none" stroke-linecap="round" class="wifi-arc arc-1"/>
|
||||
|
||||
<!-- Second arc (medium) -->
|
||||
<path d="M 200 230 Q 256 185, 312 230" stroke="currentColor" stroke-width="14" fill="none" stroke-linecap="round" class="wifi-arc arc-2"/>
|
||||
|
||||
<!-- Third arc (largest) -->
|
||||
<path d="M 180 210 Q 256 150, 332 210" stroke="currentColor" stroke-width="14" fill="none" stroke-linecap="round" class="wifi-arc arc-3"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h2 class="title">{{ 'HOME.PLAYLISTS.WELCOME_TITLE' | translate }}</h2>
|
||||
<p class="description">{{ 'HOME.PLAYLISTS.WELCOME_DESCRIPTION' | translate }}</p>
|
||||
|
||||
<div class="actions">
|
||||
<button
|
||||
mat-raised-button
|
||||
class="primary-button"
|
||||
[matMenuTriggerFor]="addPlaylistMenuComponent().menu()"
|
||||
>
|
||||
<mat-icon>add_circle</mat-icon>
|
||||
{{ 'HOME.PLAYLISTS.ADD_YOUR_FIRST' | translate }}
|
||||
</button>
|
||||
<app-add-playlist-menu
|
||||
(playlistTypeSelected)="onAddPlaylist($event)"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="features">
|
||||
<div class="feature-item">
|
||||
<mat-icon class="feature-icon">folder_open</mat-icon>
|
||||
<span>{{ 'HOME.PLAYLISTS.FEATURE_M3U' | translate }}</span>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<mat-icon class="feature-icon">cloud</mat-icon>
|
||||
<span>{{ 'HOME.PLAYLISTS.FEATURE_XTREAM' | translate }}</span>
|
||||
</div>
|
||||
<div class="feature-item">
|
||||
<mat-icon class="feature-icon">cast</mat-icon>
|
||||
<span>{{ 'HOME.PLAYLISTS.FEATURE_STALKER' | translate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
} @else {
|
||||
<div class="empty-state no-results-state">
|
||||
<div class="illustration-container small">
|
||||
<!-- Search/Empty themed illustration -->
|
||||
<svg class="illustration" viewBox="0 0 160 160" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<!-- Magnifying glass -->
|
||||
<circle cx="65" cy="65" r="35" class="search-circle" stroke-width="4"/>
|
||||
<line x1="90" y1="90" x2="115" y2="115" class="search-handle" stroke-width="4" stroke-linecap="round"/>
|
||||
|
||||
<!-- Empty box -->
|
||||
<rect x="45" y="50" width="40" height="30" rx="3" class="empty-box" stroke-width="2" opacity="0.4"/>
|
||||
<line x1="55" y1="65" x2="75" y2="65" class="empty-line" stroke-width="2" opacity="0.3"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<h3 class="title small">{{ 'HOME.PLAYLISTS.NO_RESULTS_TITLE' | translate }}</h3>
|
||||
<p class="description">{{ 'HOME.PLAYLISTS.NO_RESULTS_DESCRIPTION' | translate }}</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -0,0 +1,486 @@
|
||||
:host {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.empty-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 60px 24px;
|
||||
text-align: center;
|
||||
animation: fadeIn 0.6s ease-out;
|
||||
|
||||
.content {
|
||||
max-width: 480px;
|
||||
animation: slideUp 0.8s ease-out;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-family: Roboto, 'Helvetica Neue', sans-serif;
|
||||
font-weight: 500;
|
||||
margin: 0 0 12px 0;
|
||||
background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 50%, #2563eb 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
|
||||
&.small {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.description {
|
||||
font-family: Roboto, 'Helvetica Neue', sans-serif;
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.6;
|
||||
margin: 0 0 32px 0;
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
.welcome-state {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
left: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background-image:
|
||||
repeating-linear-gradient(
|
||||
0deg,
|
||||
transparent,
|
||||
transparent 39px,
|
||||
rgba(59, 130, 246, 0.03) 39px,
|
||||
rgba(59, 130, 246, 0.03) 41px
|
||||
),
|
||||
repeating-linear-gradient(
|
||||
90deg,
|
||||
transparent,
|
||||
transparent 39px,
|
||||
rgba(59, 130, 246, 0.03) 39px,
|
||||
rgba(59, 130, 246, 0.03) 41px
|
||||
),
|
||||
repeating-linear-gradient(
|
||||
45deg,
|
||||
transparent,
|
||||
transparent 79px,
|
||||
rgba(59, 130, 246, 0.015) 79px,
|
||||
rgba(59, 130, 246, 0.015) 81px
|
||||
);
|
||||
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 40%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
|
||||
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 40%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
|
||||
animation: gridMove 60s linear infinite;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
> * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.illustration-container {
|
||||
margin-bottom: 32px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.illustration {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
filter: drop-shadow(0 10px 30px rgba(59, 130, 246, 0.2));
|
||||
color: #60a5fa;
|
||||
|
||||
.icon-background {
|
||||
fill: #3b82f6;
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
.monitor-base,
|
||||
.monitor-stand {
|
||||
fill: #3b82f6;
|
||||
}
|
||||
|
||||
.screen-border {
|
||||
stroke: #3b82f6;
|
||||
}
|
||||
|
||||
.wifi-dot {
|
||||
fill: #60a5fa;
|
||||
}
|
||||
|
||||
.wifi-arc {
|
||||
stroke: #60a5fa;
|
||||
opacity: 0.7;
|
||||
|
||||
&.arc-1 {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
&.arc-2 {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
&.arc-3 {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 2rem;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
|
||||
.actions {
|
||||
margin-bottom: 40px;
|
||||
|
||||
.primary-button {
|
||||
background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
|
||||
color: white;
|
||||
font-family: Roboto, 'Helvetica Neue', sans-serif;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
padding: 12px 32px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
text-transform: none;
|
||||
letter-spacing: 0.01em;
|
||||
|
||||
mat-icon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 24px rgba(59, 130, 246, 0.4);
|
||||
}
|
||||
|
||||
&:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.features {
|
||||
display: flex;
|
||||
gap: 24px;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
opacity: 0.6;
|
||||
|
||||
.feature-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-family: Roboto, 'Helvetica Neue', sans-serif;
|
||||
font-size: 0.875rem;
|
||||
padding: 8px 16px;
|
||||
background: rgba(59, 130, 246, 0.08);
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(59, 130, 246, 0.15);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
.feature-icon {
|
||||
font-size: 18px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
color: #60a5fa;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: rgba(59, 130, 246, 0.12);
|
||||
border-color: rgba(59, 130, 246, 0.25);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.no-results-state {
|
||||
padding: 40px 24px;
|
||||
|
||||
.illustration-container {
|
||||
margin-bottom: 24px;
|
||||
opacity: 0.5;
|
||||
|
||||
&.small {
|
||||
animation: gentleFloat 1s ease-out;
|
||||
}
|
||||
}
|
||||
|
||||
.illustration {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
|
||||
.search-circle {
|
||||
stroke: currentColor;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.search-handle {
|
||||
stroke: currentColor;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.empty-box {
|
||||
stroke: currentColor;
|
||||
}
|
||||
|
||||
.empty-line {
|
||||
stroke: currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
.description {
|
||||
margin-bottom: 0;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes floatIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px) scale(0.95);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes gentleFloat {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: scale(0.9);
|
||||
}
|
||||
to {
|
||||
opacity: 0.5;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes gridMove {
|
||||
0% {
|
||||
transform: translate(0, 0) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: translate(40px, 40px) rotate(0.5deg);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.welcome-state {
|
||||
padding: 40px 20px;
|
||||
|
||||
.illustration {
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.features {
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
align-items: stretch;
|
||||
}
|
||||
}
|
||||
|
||||
.no-results-state {
|
||||
padding: 30px 20px;
|
||||
|
||||
.illustration {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-height: 700px) {
|
||||
.welcome-state {
|
||||
padding: 30px 24px;
|
||||
|
||||
.illustration-container { margin-bottom: 20px; }
|
||||
.illustration { width: 150px; height: 150px; }
|
||||
.title { font-size: 1.5rem; margin-bottom: 8px; }
|
||||
.description { font-size: 0.875rem; margin-bottom: 20px; }
|
||||
.actions { margin-bottom: 24px; }
|
||||
.features { gap: 16px; }
|
||||
.feature-item { padding: 6px 12px; font-size: 0.8125rem; }
|
||||
}
|
||||
|
||||
.no-results-state {
|
||||
padding: 24px 20px;
|
||||
.illustration-container { margin-bottom: 16px; }
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-height: 550px) {
|
||||
.welcome-state {
|
||||
padding: 20px 24px;
|
||||
|
||||
.illustration-container { margin-bottom: 16px; }
|
||||
.illustration { width: 120px; height: 120px; }
|
||||
.title { font-size: 1.25rem; margin-bottom: 6px; }
|
||||
.description { font-size: 0.8125rem; margin-bottom: 16px; }
|
||||
.actions { margin-bottom: 16px; }
|
||||
.primary-button { padding: 10px 24px; font-size: 0.9rem; }
|
||||
.features { gap: 12px; }
|
||||
.feature-item { padding: 4px 10px; font-size: 0.75rem; }
|
||||
.feature-icon { font-size: 16px; width: 16px; height: 16px; }
|
||||
}
|
||||
|
||||
.no-results-state {
|
||||
padding: 16px 20px;
|
||||
.illustration-container { margin-bottom: 12px; }
|
||||
.illustration { width: 80px; height: 80px; }
|
||||
.title { font-size: 1.125rem; }
|
||||
.description { font-size: 0.8125rem; }
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) and (max-height: 700px) {
|
||||
.welcome-state {
|
||||
padding: 20px 16px;
|
||||
|
||||
.illustration {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
.empty-state {
|
||||
.title {
|
||||
background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 50%, #1e40af 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
|
||||
.description {
|
||||
opacity: 0.8;
|
||||
color: #64748b;
|
||||
}
|
||||
}
|
||||
|
||||
.welcome-state {
|
||||
// Light theme grid
|
||||
&::before {
|
||||
background-image:
|
||||
repeating-linear-gradient(
|
||||
0deg,
|
||||
transparent,
|
||||
transparent 39px,
|
||||
rgba(37, 99, 235, 0.04) 39px,
|
||||
rgba(37, 99, 235, 0.04) 41px
|
||||
),
|
||||
repeating-linear-gradient(
|
||||
90deg,
|
||||
transparent,
|
||||
transparent 39px,
|
||||
rgba(37, 99, 235, 0.04) 39px,
|
||||
rgba(37, 99, 235, 0.04) 41px
|
||||
),
|
||||
repeating-linear-gradient(
|
||||
45deg,
|
||||
transparent,
|
||||
transparent 79px,
|
||||
rgba(37, 99, 235, 0.02) 79px,
|
||||
rgba(37, 99, 235, 0.02) 81px
|
||||
);
|
||||
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 40%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
|
||||
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 40%, rgba(0, 0, 0, 0.3) 70%, transparent 100%);
|
||||
}
|
||||
|
||||
.illustration {
|
||||
filter: drop-shadow(0 10px 30px rgba(37, 99, 235, 0.15));
|
||||
color: #3b82f6;
|
||||
|
||||
.icon-background {
|
||||
fill: #2563eb;
|
||||
opacity: 0.12;
|
||||
}
|
||||
|
||||
.monitor-base,
|
||||
.monitor-stand {
|
||||
fill: #2563eb;
|
||||
}
|
||||
|
||||
.screen-border {
|
||||
stroke: #2563eb;
|
||||
}
|
||||
|
||||
.wifi-dot {
|
||||
fill: #3b82f6;
|
||||
}
|
||||
|
||||
.wifi-arc {
|
||||
stroke: #3b82f6;
|
||||
}
|
||||
}
|
||||
|
||||
.features {
|
||||
.feature-item {
|
||||
background: rgba(37, 99, 235, 0.06);
|
||||
border-color: rgba(37, 99, 235, 0.12);
|
||||
|
||||
.feature-icon {
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: rgba(37, 99, 235, 0.1);
|
||||
border-color: rgba(37, 99, 235, 0.2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.no-results-state {
|
||||
.illustration {
|
||||
opacity: 0.3;
|
||||
|
||||
.search-circle,
|
||||
.search-handle,
|
||||
.empty-box,
|
||||
.empty-line {
|
||||
stroke: #64748b;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import { Component, input, output, viewChild } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
import { AddPlaylistMenuComponent, PlaylistType } from '../../add-playlist-menu/add-playlist-menu.component';
|
||||
|
||||
export type EmptyStateType = 'welcome' | 'no-results';
|
||||
|
||||
@Component({
|
||||
selector: 'app-empty-state',
|
||||
templateUrl: './empty-state.component.html',
|
||||
styleUrls: ['./empty-state.component.scss'],
|
||||
imports: [AddPlaylistMenuComponent, MatButtonModule, MatIcon, MatMenuModule, TranslatePipe],
|
||||
})
|
||||
export class EmptyStateComponent {
|
||||
readonly addPlaylistMenuComponent = viewChild.required(AddPlaylistMenuComponent);
|
||||
readonly type = input.required<EmptyStateType>();
|
||||
readonly addPlaylistClicked = output<PlaylistType>();
|
||||
|
||||
onAddPlaylist(playlistType: PlaylistType): void {
|
||||
this.addPlaylistClicked.emit(playlistType);
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,15 @@
|
||||
'HOME.PLAYLISTS.INFO_DIALOG.FROM_URL' | translate
|
||||
}}</mat-label>
|
||||
<input matInput formControlName="url" />
|
||||
<button
|
||||
mat-icon-button
|
||||
matSuffix
|
||||
type="button"
|
||||
(click)="copyUrl()"
|
||||
[matTooltip]="'HOME.PLAYLISTS.INFO_DIALOG.COPY_URL' | translate"
|
||||
>
|
||||
<mat-icon>content_copy</mat-icon>
|
||||
</button>
|
||||
</mat-form-field>
|
||||
}
|
||||
@if (playlist.filename) {
|
||||
|
||||
+24
-1
@@ -1,3 +1,4 @@
|
||||
import { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { Component, inject } from '@angular/core';
|
||||
import {
|
||||
@@ -7,12 +8,13 @@ import {
|
||||
UntypedFormGroup,
|
||||
Validators,
|
||||
} from '@angular/forms';
|
||||
import { MatButton } from '@angular/material/button';
|
||||
import { MatButton, MatIconButton } from '@angular/material/button';
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
||||
import * as PlaylistActions from 'm3u-state';
|
||||
@@ -32,16 +34,20 @@ import { Playlist, PlaylistMeta } from 'shared-interfaces';
|
||||
],
|
||||
providers: [DatePipe],
|
||||
imports: [
|
||||
ClipboardModule,
|
||||
MatButton,
|
||||
MatCheckboxModule,
|
||||
MatDialogModule,
|
||||
MatIcon,
|
||||
MatIconButton,
|
||||
MatInputModule,
|
||||
MatTooltip,
|
||||
ReactiveFormsModule,
|
||||
TranslatePipe,
|
||||
],
|
||||
})
|
||||
export class PlaylistInfoComponent {
|
||||
private clipboard = inject(Clipboard);
|
||||
private datePipe = inject(DatePipe);
|
||||
private formBuilder = inject(UntypedFormBuilder);
|
||||
private playlistsService = inject(PlaylistsService);
|
||||
@@ -215,4 +221,21 @@ export class PlaylistInfoComponent {
|
||||
document.body.removeChild(element);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy URL to clipboard
|
||||
*/
|
||||
copyUrl(): void {
|
||||
const url = this.playlistDetails.get('url')?.value;
|
||||
if (url) {
|
||||
const success = this.clipboard.copy(url);
|
||||
if (success) {
|
||||
this.snackBar.open(
|
||||
this.translate.instant('HOME.PLAYLISTS.INFO_DIALOG.URL_COPIED'),
|
||||
this.translate.instant('CLOSE'),
|
||||
{ duration: 2000 }
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -111,7 +111,7 @@
|
||||
<mat-icon>sync</mat-icon>
|
||||
</button>
|
||||
}
|
||||
@if (item.serverUrl) {
|
||||
@if (item.serverUrl && isElectron) {
|
||||
<button
|
||||
mat-icon-button
|
||||
class="refresh-btn"
|
||||
|
||||
+86
-8
@@ -1,5 +1,19 @@
|
||||
mat-list-item {
|
||||
cursor: pointer;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
border-radius: 12px;
|
||||
margin: 2px 4px;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.03) !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Light theme hover
|
||||
@media (prefers-color-scheme: light) {
|
||||
mat-list-item:hover {
|
||||
background-color: rgba(0, 0, 0, 0.04) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.mat-list-base {
|
||||
@@ -12,10 +26,21 @@ mat-list-item {
|
||||
margin-top: 2px !important;
|
||||
}
|
||||
|
||||
// Light theme
|
||||
@media (prefers-color-scheme: light) {
|
||||
.meta {
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
}
|
||||
|
||||
.cdk-drag-preview {
|
||||
box-sizing: border-box;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0 5px 5px -3px rgb(0 0 0 / 20%), 0 8px 10px 1px rgba(58, 58, 58, 0.14), 0 3px 14px 2px rgb(0 0 0 / 12%);
|
||||
border-radius: 12px;
|
||||
box-shadow:
|
||||
0 8px 24px rgba(0, 0, 0, 0.25),
|
||||
0 4px 12px rgba(0, 0, 0, 0.15),
|
||||
0 2px 6px rgba(0, 0, 0, 0.1);
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.cdk-drag-placeholder {
|
||||
@@ -23,7 +48,7 @@ mat-list-item {
|
||||
}
|
||||
|
||||
.cdk-drag-animating {
|
||||
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
|
||||
transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.drag-icon {
|
||||
@@ -33,7 +58,7 @@ mat-list-item {
|
||||
|
||||
::ng-deep {
|
||||
@media only screen and (max-width: 480px) {
|
||||
.main-container {
|
||||
.main-container {
|
||||
.favorites-icon,
|
||||
.upload-type-icon,
|
||||
.refresh-btn,
|
||||
@@ -51,11 +76,45 @@ mat-list-item {
|
||||
|
||||
.action-buttons {
|
||||
align-self: center !important;
|
||||
|
||||
button {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(255, 255, 255, 0.06) !important;
|
||||
transform: scale(1.05);
|
||||
|
||||
mat-icon {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
opacity: 0.85;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Light theme action buttons
|
||||
@media (prefers-color-scheme: light) {
|
||||
.action-buttons button:hover {
|
||||
background-color: rgba(0, 0, 0, 0.04) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
|
||||
.upload-type-icon {
|
||||
opacity: 0.75;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
mat-list-item:hover & .upload-type-icon {
|
||||
opacity: 0.95;
|
||||
}
|
||||
}
|
||||
|
||||
.status-dot {
|
||||
@@ -65,23 +124,28 @@ mat-list-item {
|
||||
border-radius: 50%;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
border: 1px solid var(--background-color, #fff);
|
||||
border: 2px solid var(--background-color, #131316);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.status-active {
|
||||
background-color: #4caf50;
|
||||
box-shadow: 0 0 8px rgba(76, 175, 80, 0.4);
|
||||
}
|
||||
|
||||
.status-inactive {
|
||||
background-color: #f44336;
|
||||
box-shadow: 0 0 8px rgba(244, 67, 54, 0.4);
|
||||
}
|
||||
|
||||
.status-expired {
|
||||
background-color: #ff9800;
|
||||
box-shadow: 0 0 8px rgba(255, 152, 0, 0.4);
|
||||
}
|
||||
|
||||
.status-unavailable {
|
||||
background-color: #444444;
|
||||
background-color: #666666;
|
||||
}
|
||||
|
||||
.auto-refresh-indicator {
|
||||
@@ -92,11 +156,25 @@ mat-list-item {
|
||||
width: 14px !important;
|
||||
height: 14px !important;
|
||||
color: #4caf50;
|
||||
background-color: var(--background-color, #fff);
|
||||
background-color: var(--background-color, #131316);
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
transition: all 0.3s ease;
|
||||
|
||||
mat-list-item:hover & {
|
||||
color: #66bb6a;
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Light theme auto-refresh indicator
|
||||
@media (prefers-color-scheme: light) {
|
||||
.auto-refresh-indicator {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 480px) {
|
||||
@@ -104,4 +182,4 @@ mat-list-item {
|
||||
.icon-container {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,8 @@ export class PlaylistItemComponent implements OnInit {
|
||||
portalStatus: PortalStatus = 'unavailable';
|
||||
private readonly portalStatusService = inject(PortalStatusService);
|
||||
|
||||
readonly isElectron = !!window.electron;
|
||||
|
||||
async ngOnInit() {
|
||||
await this.checkPortalStatus();
|
||||
}
|
||||
|
||||
@@ -1,36 +1,28 @@
|
||||
@if (allPlaylistsLoaded()) {
|
||||
<mat-form-field class="search-field" subscriptSizing="dynamic">
|
||||
<mat-icon matPrefix>search</mat-icon>
|
||||
<input
|
||||
matInput
|
||||
#searchQuery
|
||||
type="search"
|
||||
spellcheck="false"
|
||||
autocomplete="off"
|
||||
[placeholder]="'HOME.PLAYLISTS.SEARCH_PLAYLISTS' | translate"
|
||||
(input)="onSearchQueryUpdate(searchQuery.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
@defer {
|
||||
@if (playlists$ | async; as playlists) {
|
||||
<mat-nav-list class="playlists-list">
|
||||
@if (playlists.length === 0) {
|
||||
<mat-list-item>
|
||||
<mat-icon matListItemIcon>search</mat-icon>
|
||||
<div matListItemTitle>
|
||||
{{ 'HOME.PLAYLISTS.NO_PLAYLISTS' | translate }}
|
||||
</div>
|
||||
<div matListItemLine class="meta">
|
||||
{{ 'HOME.PLAYLISTS.ADD_FIRST' | translate }}
|
||||
</div>
|
||||
</mat-list-item>
|
||||
@if (playlistsData$ | async; as data) {
|
||||
@if (data.playlists.length === 0) {
|
||||
@if (data.totalCount === 0) {
|
||||
<!-- Welcome state: no playlists at all -->
|
||||
<app-empty-state
|
||||
[type]="'welcome'"
|
||||
(addPlaylistClicked)="onAddPlaylist($event)"
|
||||
/>
|
||||
} @else {
|
||||
<!-- No results state: search/filter returned nothing -->
|
||||
<app-empty-state [type]="'no-results'" />
|
||||
}
|
||||
} @else {
|
||||
<mat-nav-list class="playlists-list">
|
||||
<mat-list-item (click)="navigateToGlobalFavorites()">
|
||||
<mat-icon class="favorites-icon" matListItemIcon
|
||||
>star</mat-icon
|
||||
>
|
||||
<div matListItemTitle>
|
||||
{{ 'HOME.PLAYLISTS.GLOBAL_FAVORITES' | translate }}
|
||||
{{
|
||||
'HOME.PLAYLISTS.GLOBAL_FAVORITES'
|
||||
| translate
|
||||
}}
|
||||
</div>
|
||||
<div matListItemLine class="meta">
|
||||
{{
|
||||
@@ -39,7 +31,11 @@
|
||||
}}
|
||||
</div>
|
||||
</mat-list-item>
|
||||
@for (item of playlists; track item._id; let last = $last) {
|
||||
@for (
|
||||
item of data.playlists;
|
||||
track item._id;
|
||||
let last = $last
|
||||
) {
|
||||
<app-playlist-item
|
||||
[item]="item"
|
||||
[showActions]="!sidebarMode()"
|
||||
@@ -49,8 +45,8 @@
|
||||
(removeClicked)="removeClicked($event)"
|
||||
/>
|
||||
}
|
||||
}
|
||||
</mat-nav-list>
|
||||
</mat-nav-list>
|
||||
}
|
||||
}
|
||||
} @placeholder {
|
||||
<div id="skeleton-container">
|
||||
|
||||
@@ -13,11 +13,7 @@
|
||||
.playlists-list {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.search-field {
|
||||
width: 96%;
|
||||
margin: 10px 0;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.meta {
|
||||
@@ -26,14 +22,10 @@
|
||||
margin-top: 2px !important;
|
||||
}
|
||||
|
||||
|
||||
::ng-deep {
|
||||
div[matformfieldlineripple] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.search-field > .mat-mdc-text-field-wrapper {
|
||||
border-radius: 30px;
|
||||
// Light theme
|
||||
@media (prefers-color-scheme: light) {
|
||||
.meta {
|
||||
color: #757575;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,8 +54,4 @@
|
||||
padding-left: 0 !important;
|
||||
display: none
|
||||
}
|
||||
|
||||
.search-field {
|
||||
@include mat.form-field-density(-2);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,6 @@
|
||||
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
|
||||
import { AsyncPipe } from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
ElementRef,
|
||||
inject,
|
||||
input,
|
||||
output,
|
||||
viewChild,
|
||||
} from '@angular/core';
|
||||
import { Component, effect, inject, input, output } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
@@ -23,7 +16,7 @@ import {
|
||||
selectPlaylistsLoadingFlag,
|
||||
} from 'm3u-state';
|
||||
import { NgxSkeletonLoaderComponent } from 'ngx-skeleton-loader';
|
||||
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
||||
import { BehaviorSubject, combineLatest, map, tap } from 'rxjs';
|
||||
import { DatabaseService, DataService, SortService } from 'services';
|
||||
import {
|
||||
GLOBAL_FAVORITES_PLAYLIST_ID,
|
||||
@@ -31,6 +24,8 @@ import {
|
||||
PlaylistMeta,
|
||||
} from 'shared-interfaces';
|
||||
import { DialogService } from '../confirm-dialog/dialog.service';
|
||||
import { PlaylistType } from '../add-playlist-menu/add-playlist-menu.component';
|
||||
import { EmptyStateComponent } from './empty-state/empty-state.component';
|
||||
import { PlaylistInfoComponent } from './playlist-info/playlist-info.component';
|
||||
import { PlaylistItemComponent } from './playlist-item/playlist-item.component';
|
||||
|
||||
@@ -40,6 +35,7 @@ import { PlaylistItemComponent } from './playlist-item/playlist-item.component';
|
||||
styleUrls: ['./recent-playlists.component.scss'],
|
||||
imports: [
|
||||
AsyncPipe,
|
||||
EmptyStateComponent,
|
||||
MatIcon,
|
||||
MatInputModule,
|
||||
MatListModule,
|
||||
@@ -60,20 +56,26 @@ export class RecentPlaylistsComponent {
|
||||
private readonly translate = inject(TranslateService);
|
||||
|
||||
readonly sidebarMode = input(false);
|
||||
readonly searchQueryInput = input<string>('');
|
||||
readonly playlistClicked = output<string>();
|
||||
readonly addPlaylistClicked = output<PlaylistType>();
|
||||
|
||||
readonly allPlaylistsLoaded = this.store.selectSignal(
|
||||
selectPlaylistsLoadingFlag
|
||||
);
|
||||
|
||||
readonly searchQueryInput =
|
||||
viewChild<ElementRef<HTMLInputElement>>('searchQuery');
|
||||
|
||||
readonly searchQuery = new BehaviorSubject<string>('');
|
||||
|
||||
readonly ghostElements = new Array(10);
|
||||
|
||||
readonly playlists$ = combineLatest([
|
||||
constructor() {
|
||||
// Update searchQuery when input changes
|
||||
effect(() => {
|
||||
this.searchQuery.next(this.searchQueryInput());
|
||||
});
|
||||
}
|
||||
|
||||
readonly playlistsData$ = combineLatest([
|
||||
this.store.select(selectAllPlaylistsMeta),
|
||||
this.searchQuery,
|
||||
this.store.select(selectActiveTypeFilters),
|
||||
@@ -107,10 +109,15 @@ export class RecentPlaylistsComponent {
|
||||
);
|
||||
|
||||
// Apply sorting using the SortService
|
||||
return this.sortService.sortPlaylists(
|
||||
const sortedPlaylists = this.sortService.sortPlaylists(
|
||||
filteredPlaylists,
|
||||
sortOptions
|
||||
);
|
||||
|
||||
return {
|
||||
playlists: sortedPlaylists,
|
||||
totalCount: playlists.length
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
@@ -145,6 +152,10 @@ export class RecentPlaylistsComponent {
|
||||
this.playlistClicked.emit(GLOBAL_FAVORITES_PLAYLIST_ID);
|
||||
}
|
||||
|
||||
onAddPlaylist(playlistType: PlaylistType) {
|
||||
this.addPlaylistClicked.emit(playlistType);
|
||||
}
|
||||
|
||||
getPlaylist(playlistMeta: PlaylistMeta): void {
|
||||
if (playlistMeta.serverUrl) {
|
||||
this.router.navigate(['xtreams', playlistMeta._id]);
|
||||
@@ -277,17 +288,4 @@ export class RecentPlaylistsComponent {
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
onSearchQueryUpdate(searchQuery: string) {
|
||||
this.searchQuery.next(searchQuery);
|
||||
}
|
||||
|
||||
/* @HostListener('window:keydown.control.f', ['$event'])
|
||||
@HostListener('window:keydown.meta.f', ['$event']) */
|
||||
onSearchHotkey(event: KeyboardEvent) {
|
||||
// Prevent default browser search behavior
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
this.searchQueryInput()?.nativeElement?.focus();
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,16 @@
|
||||
align-items: center;
|
||||
padding: 8px;
|
||||
justify-content: space-between;
|
||||
app-region: drag;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
button {
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
.playlist-info {
|
||||
|
||||
@@ -1,9 +1,26 @@
|
||||
mat-toolbar {
|
||||
app-region: drag;
|
||||
|
||||
button {
|
||||
app-region: no-drag;
|
||||
}
|
||||
}
|
||||
|
||||
.spacer {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.mat-toolbar.mat-primary {
|
||||
background: var(--mdc-primary-100);
|
||||
color: #ccc;
|
||||
|
||||
button {
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 599px) {
|
||||
.sidenav-toggle-button {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+195
-13
@@ -32,6 +32,7 @@
|
||||
"@rx-angular/template": "20.0.0",
|
||||
"@videojs/http-streaming": "2.15.0",
|
||||
"@yangkghjh/videojs-aspect-ratio-panel": "0.0.1",
|
||||
"angularx-qrcode": "21.0.4",
|
||||
"artplayer": "5.3.0",
|
||||
"axios": "1.12.2",
|
||||
"better-sqlite3": "^12.5.0",
|
||||
@@ -14734,6 +14735,20 @@
|
||||
"typescript-eslint": "^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/angularx-qrcode": {
|
||||
"version": "21.0.4",
|
||||
"resolved": "https://registry.npmjs.org/angularx-qrcode/-/angularx-qrcode-21.0.4.tgz",
|
||||
"integrity": "sha512-GZFa/X/3rHx/4peA4zNROkK6UaYqxJX0dgkEMk7dCcoYNwJM8/UkOkEUfcx+Btjr7iT4UEhf9twWhFjFp58wfw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"qrcode": "1.5.4",
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@angular/common": "^21.0.0",
|
||||
"@angular/core": "^21.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-colors": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
|
||||
@@ -14777,7 +14792,6 @@
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -14787,7 +14801,6 @@
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1"
|
||||
@@ -16221,7 +16234,6 @@
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
@@ -16658,7 +16670,6 @@
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
@@ -16671,7 +16682,6 @@
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/color-support": {
|
||||
@@ -17833,6 +17843,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/decamelize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/decimal.js": {
|
||||
"version": "10.6.0",
|
||||
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
|
||||
@@ -18122,6 +18141,12 @@
|
||||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dijkstrajs": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
|
||||
"integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/dir-compare": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz",
|
||||
@@ -19303,7 +19328,6 @@
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/emojilib": {
|
||||
@@ -22023,7 +22047,6 @@
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
"node": "6.* || 8.* || >= 10.*"
|
||||
@@ -23703,7 +23726,6 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -32173,7 +32195,6 @@
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
@@ -32790,6 +32811,15 @@
|
||||
"node": ">=10.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/pngjs": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
||||
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/portfinder": {
|
||||
"version": "1.0.38",
|
||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz",
|
||||
@@ -33730,6 +33760,150 @@
|
||||
],
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/qrcode": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz",
|
||||
"integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"dijkstrajs": "^1.0.1",
|
||||
"pngjs": "^5.0.0",
|
||||
"yargs": "^15.3.1"
|
||||
},
|
||||
"bin": {
|
||||
"qrcode": "bin/qrcode"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/cliui": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
|
||||
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^6.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/find-up": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
|
||||
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"locate-path": "^5.0.0",
|
||||
"path-exists": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/locate-path": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"p-locate": "^4.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/p-limit": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"p-try": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/p-locate": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
|
||||
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"p-limit": "^2.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/wrap-ansi": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/y18n": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
|
||||
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/qrcode/node_modules/yargs": {
|
||||
"version": "15.4.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
|
||||
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cliui": "^6.0.0",
|
||||
"decamelize": "^1.2.0",
|
||||
"find-up": "^4.1.0",
|
||||
"get-caller-file": "^2.0.1",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^2.0.0",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^4.2.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^4.0.0",
|
||||
"yargs-parser": "^18.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/qrcode/node_modules/yargs-parser": {
|
||||
"version": "18.1.3",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
|
||||
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"camelcase": "^5.0.0",
|
||||
"decamelize": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.14.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
|
||||
@@ -34165,7 +34339,6 @@
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
@@ -34180,6 +34353,12 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/require-main-filename": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/requires-port": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
|
||||
@@ -35891,7 +36070,6 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/set-function-length": {
|
||||
@@ -36804,7 +36982,6 @@
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
@@ -36894,7 +37071,6 @@
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
@@ -40356,6 +40532,12 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/which-module": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
|
||||
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/which-typed-array": {
|
||||
"version": "1.1.19",
|
||||
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
|
||||
|
||||
+2
-1
@@ -131,7 +131,6 @@
|
||||
"@angular/platform-browser": "~20.3.10",
|
||||
"@angular/platform-browser-dynamic": "~20.3.10",
|
||||
"@angular/router": "~20.3.10",
|
||||
"better-sqlite3": "^12.5.0",
|
||||
"@ngrx/component-store": "20.0.0",
|
||||
"@ngrx/effects": "20.0.0",
|
||||
"@ngrx/entity": "20.0.0",
|
||||
@@ -144,8 +143,10 @@
|
||||
"@rx-angular/template": "20.0.0",
|
||||
"@videojs/http-streaming": "2.15.0",
|
||||
"@yangkghjh/videojs-aspect-ratio-panel": "0.0.1",
|
||||
"angularx-qrcode": "21.0.4",
|
||||
"artplayer": "5.3.0",
|
||||
"axios": "1.12.2",
|
||||
"better-sqlite3": "^12.5.0",
|
||||
"date-fns": "4.1.0",
|
||||
"drizzle-orm": "0.44.6",
|
||||
"electron-conf": "1.3.0",
|
||||
|
||||
Reference in new issue
Block a user