mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-04-03 21:51:28 +03:00
Merge pull request #30 from Tzahi12345/localization
Added localization support
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -56,3 +56,4 @@ backend/subscriptions/channels/*
|
||||
backend/subscriptions/playlists/*
|
||||
backend/subscriptions/archives/*
|
||||
src/assets/default.json
|
||||
package-lock.json
|
||||
|
||||
21
angular.json
21
angular.json
@@ -7,10 +7,17 @@
|
||||
"root": "",
|
||||
"sourceRoot": "src",
|
||||
"projectType": "application",
|
||||
"i18n": {
|
||||
"sourceLocale": "en-US",
|
||||
"locales": {
|
||||
"es": "src/locale/messages.es.xlf"
|
||||
}
|
||||
},
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
"options": {
|
||||
"aot": true,
|
||||
"outputPath": "dist",
|
||||
"index": "src/index.html",
|
||||
"main": "src/main.ts",
|
||||
@@ -30,6 +37,12 @@
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"budgets": [
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "6kb"
|
||||
}
|
||||
],
|
||||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
@@ -45,6 +58,9 @@
|
||||
"with": "src/environments/environment.prod.ts"
|
||||
}
|
||||
]
|
||||
},
|
||||
"es": {
|
||||
"localize": ["es"]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -56,6 +72,9 @@
|
||||
"configurations": {
|
||||
"production": {
|
||||
"browserTarget": "youtube-dl-material:build:production"
|
||||
},
|
||||
"es": {
|
||||
"browserTarget": "youtube-dl-material:build:es"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -176,7 +195,7 @@
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"prefix": "app",
|
||||
"styleext": "scss"
|
||||
"style": "scss"
|
||||
},
|
||||
"@schematics/angular:directive": {
|
||||
"prefix": "app"
|
||||
|
||||
12768
package-lock.json
generated
12768
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
47
package.json
47
package.json
@@ -17,42 +17,44 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular-devkit/core": "^8.3.12",
|
||||
"@angular/animations": "^8.2.11",
|
||||
"@angular/cdk": "^8.2.3",
|
||||
"@angular/common": "^8.2.11",
|
||||
"@angular/compiler": "^8.2.11",
|
||||
"@angular/core": "^8.2.11",
|
||||
"@angular/forms": "^8.2.11",
|
||||
"@angular-devkit/core": "^9.0.6",
|
||||
"@angular/animations": "^9.0.6",
|
||||
"@angular/cdk": "^9.1.2",
|
||||
"@angular/common": "^9.0.6",
|
||||
"@angular/compiler": "^9.0.6",
|
||||
"@angular/core": "^9.0.6",
|
||||
"@angular/forms": "^9.0.6",
|
||||
"@angular/http": "^7.2.15",
|
||||
"@angular/material": "^8.2.3",
|
||||
"@angular/platform-browser": "^8.2.11",
|
||||
"@angular/platform-browser-dynamic": "^8.2.11",
|
||||
"@angular/router": "^8.2.11",
|
||||
"@angular/localize": "^9.0.6",
|
||||
"@angular/material": "^9.1.2",
|
||||
"@angular/platform-browser": "^9.0.6",
|
||||
"@angular/platform-browser-dynamic": "^9.0.6",
|
||||
"@angular/router": "^9.0.6",
|
||||
"@locl/core": "0.0.1-beta.2",
|
||||
"core-js": "^2.4.1",
|
||||
"file-saver": "^2.0.2",
|
||||
"hammerjs": "^2.0.8",
|
||||
"ng-lazyload-image": "^7.0.1",
|
||||
"ng4-configure": "^0.1.7",
|
||||
"ngx-content-loading": "^0.1.3",
|
||||
"ngx-videogular": "^9.0.1",
|
||||
"rxjs": "^6.5.3",
|
||||
"rxjs-compat": "^6.0.0-rc.0",
|
||||
"tslib": "^1.10.0",
|
||||
"typescript": "~3.5.3",
|
||||
"videogular2": "^7.0.1",
|
||||
"typescript": "~3.7.5",
|
||||
"web-animations-js": "^2.3.2",
|
||||
"zone.js": "~0.9.1"
|
||||
"zone.js": "~0.10.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^0.803.24",
|
||||
"@angular/cli": "^8.3.12",
|
||||
"@angular/compiler-cli": "^8.2.11",
|
||||
"@angular/language-service": "^8.2.11",
|
||||
"@angular-devkit/build-angular": "~0.900.6",
|
||||
"@angular/cli": "^9.0.6",
|
||||
"@angular/compiler-cli": "^9.0.6",
|
||||
"@angular/language-service": "^9.0.6",
|
||||
"@locl/cli": "0.0.1-beta.6",
|
||||
"@types/core-js": "^2.5.2",
|
||||
"@types/file-saver": "^2.0.1",
|
||||
"@types/jasmine": "2.5.45",
|
||||
"@types/node": "~6.0.60",
|
||||
"codelyzer": "^5.0.1",
|
||||
"@types/node": "^12.11.1",
|
||||
"codelyzer": "^5.1.2",
|
||||
"electron": "^8.0.1",
|
||||
"jasmine-core": "~2.6.2",
|
||||
"jasmine-spec-reporter": "~4.1.0",
|
||||
@@ -64,7 +66,6 @@
|
||||
"karma-jasmine-html-reporter": "^0.2.2",
|
||||
"protractor": "~5.1.2",
|
||||
"ts-node": "~3.0.4",
|
||||
"tslint": "~5.3.2",
|
||||
"typescript": "~3.5.3"
|
||||
"tslint": "~5.3.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
<mat-menu #menuSettings="matMenu">
|
||||
<button (click)="themeMenuItemClicked($event)" *ngIf="allowThemeChange" mat-menu-item>
|
||||
<mat-icon>{{(postsService.theme.key === 'default') ? 'brightness_5' : 'brightness_2'}}</mat-icon>
|
||||
<span>Dark</span>
|
||||
<span i18n="Dark mode toggle label">Dark</span>
|
||||
<mat-slide-toggle class="theme-slide-toggle" [checked]="postsService.theme.key === 'dark'"></mat-slide-toggle>
|
||||
</button>
|
||||
<button (click)="openSettingsDialog()" mat-menu-item>
|
||||
<mat-icon>settings</mat-icon>
|
||||
<span>Settings</span>
|
||||
<span i18n="Settings menu label">Settings</span>
|
||||
</button>
|
||||
</mat-menu>
|
||||
</div>
|
||||
@@ -30,8 +30,8 @@
|
||||
<mat-sidenav-container style="height: 100%">
|
||||
<mat-sidenav #sidenav>
|
||||
<mat-nav-list>
|
||||
<a mat-list-item (click)="sidenav.close()" routerLink='/home'>Home</a>
|
||||
<a mat-list-item (click)="sidenav.close()" routerLink='/subscriptions'>Subscriptions</a>
|
||||
<a mat-list-item (click)="sidenav.close()" routerLink='/home'><ng-container i18n="Navigation menu Home Page title">Home</ng-container></a>
|
||||
<a mat-list-item (click)="sidenav.close()" routerLink='/subscriptions'><ng-container i18n="Navigation menu Subscriptions Page title">Subscriptions</ng-container></a>
|
||||
</mat-nav-list>
|
||||
</mat-sidenav>
|
||||
<mat-sidenav-content [style.background]="postsService.theme ? postsService.theme.background_color : null">
|
||||
|
||||
@@ -4,7 +4,9 @@ import {FileCardComponent} from './file-card/file-card.component';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import {FormControl, Validators} from '@angular/forms';
|
||||
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
||||
import {MatSnackBar, MatDialog, MatSidenav} from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatSidenav } from '@angular/material/sidenav';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { saveAs } from 'file-saver';
|
||||
import 'rxjs/add/observable/of';
|
||||
import 'rxjs/add/operator/mapTo';
|
||||
@@ -36,8 +38,8 @@ export class AppComponent implements OnInit {
|
||||
allowThemeChange = null;
|
||||
allowSubscriptions = false;
|
||||
|
||||
@ViewChild('sidenav', {static: false}) sidenav: MatSidenav;
|
||||
@ViewChild('hamburgerMenu', {static: false, read: ElementRef}) hamburgerMenuButton: ElementRef;
|
||||
@ViewChild('sidenav') sidenav: MatSidenav;
|
||||
@ViewChild('hamburgerMenu', { read: ElementRef }) hamburgerMenuButton: ElementRef;
|
||||
navigator: string = null;
|
||||
|
||||
constructor(public postsService: PostsService, public snackBar: MatSnackBar, private dialog: MatDialog,
|
||||
|
||||
@@ -1,14 +1,27 @@
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { NgModule } from '@angular/core';
|
||||
import {MatNativeDateModule, MatRadioModule, MatInputModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule,
|
||||
MatSnackBarModule, MatCardModule, MatSelectModule, MatToolbarModule, MatCheckboxModule, MatGridListModule,
|
||||
MatProgressBarModule, MatExpansionModule,
|
||||
MatProgressSpinnerModule,
|
||||
MatButtonToggleModule,
|
||||
MatDialogModule,
|
||||
MatRippleModule,
|
||||
MatSlideToggleModule,
|
||||
MatMenuModule} from '@angular/material';
|
||||
import { NgModule, LOCALE_ID } from '@angular/core';
|
||||
import { registerLocaleData } from '@angular/common';
|
||||
import { LocaleService } from '@soluling/angular';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
||||
import { MatCardModule } from '@angular/material/card';
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||
import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
|
||||
import { MatDialogModule } from '@angular/material/dialog';
|
||||
import { MatExpansionModule } from '@angular/material/expansion';
|
||||
import { MatGridListModule } from '@angular/material/grid-list';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatListModule } from '@angular/material/list';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||
import { MatRadioModule } from '@angular/material/radio';
|
||||
import { MatSelectModule } from '@angular/material/select';
|
||||
import { MatSidenavModule } from '@angular/material/sidenav';
|
||||
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
||||
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
||||
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||
import {DragDropModule} from '@angular/cdk/drag-drop';
|
||||
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
|
||||
import { AppComponent } from './app.component';
|
||||
@@ -21,10 +34,7 @@ import {RouterModule} from '@angular/router';
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { MainComponent } from './main/main.component';
|
||||
import { PlayerComponent } from './player/player.component';
|
||||
import {VgCoreModule} from 'videogular2/compiled/core';
|
||||
import {VgControlsModule} from 'videogular2/compiled/controls';
|
||||
import {VgOverlayPlayModule} from 'videogular2/compiled/overlay-play';
|
||||
import {VgBufferingModule} from 'videogular2/compiled/buffering';
|
||||
import {VgCoreModule, VgControlsModule, VgOverlayPlayModule, VgBufferingModule} from 'ngx-videogular';
|
||||
import { InputDialogComponent } from './input-dialog/input-dialog.component';
|
||||
import { LazyLoadImageModule, IsVisibleProps } from 'ng-lazyload-image';
|
||||
import { NgxContentLoadingModule } from 'ngx-content-loading';
|
||||
@@ -38,6 +48,9 @@ import { SubscriptionFileCardComponent } from './subscription/subscription-file-
|
||||
import { SubscriptionInfoDialogComponent } from './dialogs/subscription-info-dialog/subscription-info-dialog.component';
|
||||
import { SettingsComponent } from './settings/settings.component';
|
||||
|
||||
import es from '@angular/common/locales/es';
|
||||
registerLocaleData(es, 'es');
|
||||
|
||||
export function isVisible({ event, element, scrollContainer, offset }: IsVisibleProps<any>) {
|
||||
return (element.id === 'video' ? videoFilesMouseHovering || videoFilesOpened : audioFilesMouseHovering || audioFilesOpened);
|
||||
}
|
||||
@@ -97,14 +110,11 @@ export function isVisible({ event, element, scrollContainer, offset }: IsVisible
|
||||
RouterModule,
|
||||
AppRoutingModule,
|
||||
],
|
||||
entryComponents: [
|
||||
InputDialogComponent,
|
||||
CreatePlaylistComponent,
|
||||
SubscribeDialogComponent,
|
||||
SubscriptionInfoDialogComponent,
|
||||
SettingsComponent
|
||||
providers: [
|
||||
PostsService,
|
||||
LocaleService,
|
||||
{ provide: LOCALE_ID, deps: [LocaleService], useFactory: (service: LocaleService) => service.localeId },
|
||||
],
|
||||
providers: [PostsService],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
export class AppModule { }
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<h4 mat-dialog-title>Create a playlist</h4>
|
||||
<h4 mat-dialog-title i18n="Create a playlist dialog title">Create a playlist</h4>
|
||||
<form>
|
||||
<div>
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="name" matInput placeholder="Name" type="text" required aria-required [ngModelOptions]="{standalone: true}">
|
||||
<input [(ngModel)]="name" matInput placeholder="Name" i18n-placeholder="Playlist name placeholder" type="text" required aria-required [ngModelOptions]="{standalone: true}">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field color="accent">
|
||||
<mat-label>{{(type === 'audio') ? 'Audio files' : 'Videos'}}</mat-label>
|
||||
<mat-label *ngIf="type === 'audio'"><ng-container i18n="Audio files title">Audio files</ng-container></mat-label>
|
||||
<mat-label *ngIf="type === 'video'"><ng-container i18n="Videos title">Videos</ng-container></mat-label>
|
||||
<mat-select [formControl]="filesSelect" multiple required aria-required>
|
||||
<mat-option *ngFor="let file of filesToSelectFrom" [value]="file.id">{{file.id}}</mat-option>
|
||||
</mat-select>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<h4 mat-dialog-title>Subscribe to playlist or channel</h4>
|
||||
<h4 mat-dialog-title i18n="Subscribe dialog title">Subscribe to playlist or channel</h4>
|
||||
|
||||
<mat-dialog-content>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="url" matInput placeholder="URL" required aria-required="true">
|
||||
<mat-hint>The playlist or channel URL</mat-hint>
|
||||
<input [(ngModel)]="url" matInput placeholder="URL" i18n-placeholder="Subscription URL input placeholder" required aria-required="true">
|
||||
<mat-hint><ng-container i18n="Subscription URL input hint">The playlist or channel URL</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="name" matInput placeholder="Custom name">
|
||||
<mat-hint>This is optional</mat-hint>
|
||||
<input [(ngModel)]="name" matInput placeholder="Custom name" i18n-placeholder="Subscription custom name placeholder">
|
||||
<mat-hint><ng-container i18n="Custom name input hint">This is optional</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12 mt-3">
|
||||
<mat-checkbox [(ngModel)]="download_all">Download all uploads</mat-checkbox>
|
||||
<mat-checkbox [(ngModel)]="download_all"><ng-container i18n="Download all uploads subscription setting">Download all uploads</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12" *ngIf="!download_all">
|
||||
Download videos uploaded in the last
|
||||
<ng-container i18n="Download time range prefix">Download videos uploaded in the last</ng-container>
|
||||
<mat-form-field color="accent" style="width: 50px; text-align: center">
|
||||
<input type="number" matInput [(ngModel)]="timerange_amount">
|
||||
</mat-form-field>
|
||||
@@ -34,7 +34,7 @@
|
||||
</mat-dialog-content>
|
||||
|
||||
<mat-dialog-actions>
|
||||
<button mat-button mat-dialog-close>Cancel</button>
|
||||
<button mat-button mat-dialog-close><ng-container i18n="Subscribe cancel button">Cancel</ng-container></button>
|
||||
<!-- The mat-dialog-close directive optionally accepts a value as a result for the dialog. -->
|
||||
<button mat-button [disabled]="!url" type="submit" (click)="subscribeClicked()">Subscribe</button>
|
||||
<div class="mat-spinner" *ngIf="subscribing">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { MatSnackBar, MatDialogRef } from '@angular/material';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
|
||||
@Component({
|
||||
|
||||
@@ -2,26 +2,26 @@
|
||||
|
||||
<mat-dialog-content>
|
||||
<div class="info-item">
|
||||
<strong>Type: </strong>
|
||||
<strong><ng-container i18n="Subscription type property">Type:</ng-container> </strong>
|
||||
<span class="info-item-value">{{(sub.isPlaylist ? 'Playlist' : 'Channel')}}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<strong>URL: </strong>
|
||||
<strong><ng-container i18n="Subscription URL property">URL:</ng-container> </strong>
|
||||
<span class="info-item-value">{{sub.url}}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<strong>ID: </strong>
|
||||
<strong><ng-container i18n="Subscription ID property">ID:</ng-container> </strong>
|
||||
<span class="info-item-value">{{sub.id}}</span>
|
||||
</div>
|
||||
<div class="info-item" *ngIf="sub.archive">
|
||||
<strong>Archive: </strong>
|
||||
<strong><ng-container i18n="Subscription ID property">Archive:</ng-container> </strong>
|
||||
<span class="info-item-value">{{sub.archive}}</span>
|
||||
</div>
|
||||
</mat-dialog-content>
|
||||
|
||||
<mat-dialog-actions>
|
||||
<button mat-button mat-dialog-close>Close</button>
|
||||
<button mat-stroked-button (click)="downloadArchive()" color="accent">Export Archive</button>
|
||||
<button mat-button mat-dialog-close><ng-container i18n="Close subscription info button">Close</ng-container></button>
|
||||
<button mat-stroked-button (click)="downloadArchive()" color="accent"><ng-container i18n="Export Archive button">Export Archive</ng-container></button>
|
||||
<span class="spacer"></span>
|
||||
<button mat-button (click)="unsubscribe()" color="warn">Unsubscribe</button>
|
||||
<button mat-button (click)="unsubscribe()" color="warn"><ng-container i18n="Unsubscribe button">Unsubscribe</ng-container></button>
|
||||
</mat-dialog-actions>
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject } from '@angular/core';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
|
||||
@Component({
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<h5 style="display: inline-block; margin-right: 5px; position: relative; top: 5px;">{{queueNumber}}.</h5>
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="6">
|
||||
<div style="display: inline-block; text-align: center;">ID: {{url_id}}</div>
|
||||
<div style="display: inline-block; text-align: center;"><ng-container i18n="Download ID">ID:</ng-container> {{url_id}}</div>
|
||||
</mat-grid-tile>
|
||||
<mat-grid-tile [colspan]="13">
|
||||
<mat-progress-bar style="width: 80%" [value]="download.percent_complete" [mode]="(download.percent_complete === 0) ? 'indeterminate' : 'determinate'"></mat-progress-bar>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<div style="height: 52px;">
|
||||
<b><a href="javascript:void(0)" (click)="!isPlaylist ? mainComponent.goToFile(name, isAudio) : mainComponent.goToPlaylist(name, type)">{{title}}</a></b>
|
||||
<br/>
|
||||
<span class="max-two-lines">ID: {{name}}</span>
|
||||
<div *ngIf="isPlaylist">Count: {{count}}</div>
|
||||
<span class="max-two-lines"><ng-container i18n="File or playlist ID">ID:</ng-container> {{name}}</span>
|
||||
<div *ngIf="isPlaylist"><ng-container i18n="Playlist video count">Count:</ng-container> {{count}}</div>
|
||||
</div>
|
||||
<div *ngIf="!image_errored && thumbnailURL" class="img-div">
|
||||
<img class="image" (error) ="onImgError($event)" [id]="type" [lazyLoad]="thumbnailURL" [customObservable]="scrollAndLoad" (onLoad)="imageLoaded($event)" alt="Thumbnail">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Component, OnInit, Input, Output } from '@angular/core';
|
||||
import {PostsService} from '../posts.services';
|
||||
import {MatSnackBar} from '@angular/material';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import {EventEmitter} from '@angular/core';
|
||||
import { MainComponent } from 'app/main/main.component';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
</div>
|
||||
</mat-dialog-content>
|
||||
<mat-dialog-actions>
|
||||
<!-- TODO: Internationalize these buttons -->
|
||||
<button mat-button mat-dialog-close>Cancel</button>
|
||||
<!-- The mat-dialog-close directive optionally accepts a value as a result for the dialog. -->
|
||||
<button mat-button [disabled]="!inputText" type="submit" (click)="enterPressed()">{{submitText}}</button>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Input, Inject, EventEmitter } from '@angular/core';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
|
||||
@Component({
|
||||
selector: 'app-input-dialog',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="big demo-basic">
|
||||
<mat-card id="card" style="margin-right: 20px; margin-left: 20px;">
|
||||
<mat-card-title>
|
||||
Youtube Downloader
|
||||
<ng-container i18n="Youtube downloader home page label">Youtube Downloader</ng-container>
|
||||
</mat-card-title>
|
||||
<mat-card-content>
|
||||
<div style="position: relative;">
|
||||
@@ -12,13 +12,19 @@
|
||||
<div [ngClass]="allowQualitySelect ? 'col-sm-9' : null" class="col-12">
|
||||
<mat-form-field color="accent" class="example-full-width">
|
||||
<input style="padding-right: 25px;" matInput (ngModelChange)="inputChanged($event)" [(ngModel)]="url" [placeholder]="'URL' + (youtubeSearchEnabled ? ' or search' : '')" type="url" name="url" [formControl]="urlForm" required #urlinput>
|
||||
<mat-error *ngIf="urlError || urlForm.invalid">Please enter a valid URL!</mat-error>
|
||||
<mat-error *ngIf="urlError || urlForm.invalid">
|
||||
<ng-container i18n="Enter valid URL error">Please enter a valid URL!</ng-container>
|
||||
</mat-error>
|
||||
<button class="input-clear-button" mat-icon-button (click)="clearInput()"><mat-icon>clear</mat-icon></button>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="allowQualitySelect" class="col-7 col-sm-3">
|
||||
<mat-form-field color="accent" style="display: inline-block; width: inherit; min-width: 120px;">
|
||||
<mat-label>Quality</mat-label>
|
||||
<mat-label>
|
||||
<ng-container i18n="Quality select label">
|
||||
Quality
|
||||
</ng-container>
|
||||
</mat-label>
|
||||
<mat-select [ngModelOptions]="{standalone: true}" [(ngModel)]="selectedQuality">
|
||||
<ng-container *ngFor="let option of qualityOptions[(audioOnly) ? 'audio' : 'video']">
|
||||
<mat-option *ngIf="option.value === '' || url && cachedAvailableFormats[url] && cachedAvailableFormats[url]['formats'] && cachedAvailableFormats[url]['formats'][(audioOnly) ? 'audio' : 'video'][option.value]" [value]="option.value">
|
||||
@@ -42,22 +48,43 @@
|
||||
<div style="font-size: 12px; margin-bottom: 10px;">
|
||||
{{result.uploaded}}
|
||||
</div>
|
||||
<button mat-flat-button color="primary" style="float: left;" (click)="useURL(result.videoUrl)">Use URL</button>
|
||||
<button mat-stroked-button color="primary" (click)="visitURL(result.videoUrl)" style="float: right">View</button>
|
||||
<button mat-flat-button color="primary" style="float: left;" (click)="useURL(result.videoUrl)">
|
||||
<ng-container i18n="YT search Use URL button for searched video">Use URL</ng-container>
|
||||
</button>
|
||||
<button mat-stroked-button color="primary" (click)="visitURL(result.videoUrl)" style="float: right">
|
||||
<ng-container i18n="YT search View button for searched video">
|
||||
View
|
||||
</ng-container>
|
||||
</button>
|
||||
</mat-card>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<br/>
|
||||
<mat-checkbox [disabled]="current_download" (change)="videoModeChanged($event)" [(ngModel)]="audioOnly" style="float: left; margin-top: -12px">Only Audio</mat-checkbox>
|
||||
<mat-checkbox *ngIf="allowMultiDownloadMode" [disabled]="current_download" (change)="multiDownloadModeChanged($event)" [(ngModel)]="multiDownloadMode" style="float: right; margin-top: -12px">Multi-download mode</mat-checkbox>
|
||||
<mat-checkbox [disabled]="current_download" (change)="videoModeChanged($event)" [(ngModel)]="audioOnly" style="float: left; margin-top: -12px">
|
||||
<ng-container i18n="Only Audio checkbox">
|
||||
Only Audio
|
||||
</ng-container>
|
||||
</mat-checkbox>
|
||||
<mat-checkbox *ngIf="allowMultiDownloadMode" [disabled]="current_download" (change)="multiDownloadModeChanged($event)" [(ngModel)]="multiDownloadMode" style="float: right; margin-top: -12px">
|
||||
<ng-container i18n="Multi-download Mode checkbox">
|
||||
Multi-download Mode
|
||||
</ng-container>
|
||||
</mat-checkbox>
|
||||
|
||||
</div>
|
||||
</mat-card-content>
|
||||
<mat-card-actions>
|
||||
<button style="margin-left: 8px; margin-bottom: 8px" (click)="downloadClicked()" [disabled]="downloadingfile" type="submit" mat-stroked-button
|
||||
color="accent">Download</button>
|
||||
<button (click)="cancelDownload()" style="float: right" *ngIf="!!current_download" mat-stroked-button color="warn">Cancel</button>
|
||||
<button style="margin-left: 8px; margin-bottom: 8px" (click)="downloadClicked()" [disabled]="downloadingfile" type="submit" mat-stroked-button color="accent">
|
||||
<ng-container i18n="Main download button">
|
||||
Download
|
||||
</ng-container>
|
||||
</button>
|
||||
<button (click)="cancelDownload()" style="float: right" *ngIf="!!current_download" mat-stroked-button color="warn">
|
||||
<ng-container i18n="Cancel download button">
|
||||
Cancel
|
||||
</ng-container>
|
||||
</button>
|
||||
</mat-card-actions>
|
||||
</mat-card>
|
||||
</div>
|
||||
@@ -66,35 +93,60 @@
|
||||
<mat-expansion-panel class="big">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Advanced
|
||||
<ng-container i18n="Advanced download mode panel">
|
||||
Advanced
|
||||
</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<p *ngIf="this.simulatedOutput">Simulated command: <i>{{this.simulatedOutput}}</i></p>
|
||||
<p *ngIf="this.simulatedOutput">
|
||||
<ng-container i18n="Simulated command label">
|
||||
Simulated command:
|
||||
</ng-container>
|
||||
<i>{{this.simulatedOutput}}</i></p>
|
||||
<div class="container" style="padding-bottom: 20px;">
|
||||
<div class="row">
|
||||
<div class="col-12 col-sm-6">
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="customArgsEnabledChanged($event)" [(ngModel)]="customArgsEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">Use custom args</mat-checkbox>
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="customArgsEnabledChanged($event)" [(ngModel)]="customArgsEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">
|
||||
<ng-container i18n="Use custom args checkbox">
|
||||
Use custom args
|
||||
</ng-container>
|
||||
</mat-checkbox>
|
||||
<mat-form-field color="accent" style="margin-bottom: 42px;" class="advanced-input">
|
||||
<input [(ngModel)]="customArgs" [ngModelOptions]="{standalone: true}" [disabled]="!customArgsEnabled" matInput placeholder="Custom args">
|
||||
<mat-hint>No need to include URL, just everything after.</mat-hint>
|
||||
<input [(ngModel)]="customArgs" [ngModelOptions]="{standalone: true}" [disabled]="!customArgsEnabled" matInput placeholder="Custom args" i18n-placeholder="Custom args placeholder">
|
||||
<mat-hint>
|
||||
<ng-container i18n="Custom Args input hint">
|
||||
No need to include URL, just everything after.
|
||||
</ng-container>
|
||||
</mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12 col-sm-6">
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="customOutputEnabledChanged($event)" [(ngModel)]="customOutputEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">Use custom output</mat-checkbox>
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="customOutputEnabledChanged($event)" [(ngModel)]="customOutputEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">
|
||||
<ng-container i18n="Use custom output checkbox">
|
||||
Use custom output
|
||||
</ng-container>
|
||||
</mat-checkbox>
|
||||
<mat-form-field style="margin-bottom: 42px;" color="accent" class="advanced-input">
|
||||
<input [(ngModel)]="customOutput" [ngModelOptions]="{standalone: true}" [disabled]="!customOutputEnabled" matInput placeholder="Custom output">
|
||||
<mat-hint><a target="_blank" href="https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template">Documentation</a>. Path is relative to the config download path. Don't include extension.</mat-hint>
|
||||
<input [(ngModel)]="customOutput" [ngModelOptions]="{standalone: true}" [disabled]="!customOutputEnabled" matInput placeholder="Custom output" i18n-placeholder="Custom output placeholder">
|
||||
<mat-hint><a target="_blank" href="https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template">
|
||||
<ng-container i18n="Youtube-dl output template documentation link">Documentation</ng-container></a>.
|
||||
<ng-container i18n="Custom Output input hint">Path is relative to the config download path. Don't include extension.</ng-container>
|
||||
</mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="!youtubeAuthDisabledOverride" class="col-12 col-sm-6 mt-2">
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="youtubeAuthEnabledChanged($event)" [(ngModel)]="youtubeAuthEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">Use authentication</mat-checkbox>
|
||||
<mat-checkbox color="accent" [disabled]="current_download" (change)="youtubeAuthEnabledChanged($event)" [(ngModel)]="youtubeAuthEnabled" style="z-index: 999" [ngModelOptions]="{standalone: true}">
|
||||
<ng-container i18n="Use authentication checkbox">
|
||||
Use authentication
|
||||
</ng-container>
|
||||
</mat-checkbox>
|
||||
<mat-form-field color="accent" class="advanced-input">
|
||||
<input [(ngModel)]="youtubeUsername" [ngModelOptions]="{standalone: true}" [disabled]="!youtubeAuthEnabled" matInput placeholder="Username">
|
||||
<input [(ngModel)]="youtubeUsername" [ngModelOptions]="{standalone: true}" [disabled]="!youtubeAuthEnabled" matInput placeholder="Username" i18n-placeholder="YT Username placeholder">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="!youtubeAuthDisabledOverride" class="col-12 col-sm-6 mt-2">
|
||||
<mat-form-field style="margin-top: 31px;" color="accent" class="advanced-input">
|
||||
<input [(ngModel)]="youtubePassword" type="password" [ngModelOptions]="{standalone: true}" [disabled]="!youtubeAuthEnabled" matInput placeholder="Password">
|
||||
<input [(ngModel)]="youtubePassword" type="password" [ngModelOptions]="{standalone: true}" [disabled]="!youtubeAuthEnabled" matInput placeholder="Password" i18n-placeholder="YT Password placeholder">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@@ -138,10 +190,14 @@
|
||||
<mat-expansion-panel (opened)="accordionOpened('audio')" (closed)="accordionClosed('audio')" (mouseleave)="accordionLeft('audio')" (mouseenter)="accordionEntered('audio')" class="big">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Audio
|
||||
<ng-container i18n="Audio files title">
|
||||
Audio
|
||||
</ng-container>
|
||||
</mat-panel-title>
|
||||
<mat-panel-description>
|
||||
Your audio files are here
|
||||
<ng-container i18n="Audio files description">
|
||||
Your audio files are here
|
||||
</ng-container>
|
||||
</mat-panel-description>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="mp3s.length > 0;else nomp3s">
|
||||
@@ -154,7 +210,7 @@
|
||||
</mat-grid-list>
|
||||
<mat-divider></mat-divider>
|
||||
<div style="width: 100%; text-align: center; margin-top: 10px;">
|
||||
<h6>Playlists</h6>
|
||||
<h6 i18n="Playlists title">Playlists</h6>
|
||||
</div>
|
||||
<mat-grid-list *ngIf="playlists.audio.length > 0" (window:resize)="onResize($event)" [cols]="files_cols" rowHeight="150px">
|
||||
<mat-grid-tile *ngFor="let playlist of playlists.audio; let i = index;">
|
||||
@@ -165,7 +221,9 @@
|
||||
</mat-grid-list>
|
||||
<div class="add-playlist-button"><button (click)="openCreatePlaylistDialog('audio')" mat-fab><mat-icon>add</mat-icon></button></div>
|
||||
<div *ngIf="playlists.audio.length === 0">
|
||||
No playlists available. Create one from your downloading audio files by clicking the blue plus button.
|
||||
<ng-container i18n="No video playlists available text">
|
||||
No playlists available. Create one from your downloading audio files by clicking the blue plus button.
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -173,10 +231,14 @@
|
||||
<mat-expansion-panel (opened)="accordionOpened('video')" (closed)="accordionClosed('video')" (mouseleave)="accordionLeft('video')" (mouseenter)="accordionEntered('video')" class="big">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Video
|
||||
<ng-container i18n="Video files title">
|
||||
Video
|
||||
</ng-container>
|
||||
</mat-panel-title>
|
||||
<mat-panel-description>
|
||||
Your video files are here
|
||||
<ng-container i18n="Video files description">
|
||||
Your video files are here
|
||||
</ng-container>
|
||||
</mat-panel-description>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="mp4s.length > 0;else nomp4s">
|
||||
@@ -190,7 +252,7 @@
|
||||
<mat-divider></mat-divider>
|
||||
|
||||
<div style="width: 100%; text-align: center; margin-top: 10px;">
|
||||
<h6>Playlists</h6>
|
||||
<h6 i18n="Playlists title">Playlists</h6>
|
||||
</div>
|
||||
<mat-grid-list *ngIf="playlists.video.length > 0" (window:resize)="onResize($event)" [cols]="files_cols" rowHeight="150px">
|
||||
<mat-grid-tile *ngFor="let playlist of playlists.video; let i = index;">
|
||||
@@ -203,7 +265,9 @@
|
||||
<!-- Add video playlist button -->
|
||||
<div class="add-playlist-button"><button (click)="openCreatePlaylistDialog('video')" mat-fab><mat-icon>add</mat-icon></button></div>
|
||||
<div *ngIf="playlists.video.length === 0">
|
||||
No playlists available. Create one from your downloading video files by clicking the blue plus button.
|
||||
<ng-container i18n="No video playlists available text">
|
||||
No playlists available. Create one from your downloading video files by clicking the blue plus button.
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
</mat-expansion-panel>
|
||||
|
||||
@@ -4,7 +4,8 @@ import {FileCardComponent} from '../file-card/file-card.component';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import {FormControl, Validators} from '@angular/forms';
|
||||
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
||||
import {MatSnackBar, MatDialog} from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { saveAs } from 'file-saver';
|
||||
import 'rxjs/add/observable/of';
|
||||
import 'rxjs/add/operator/mapTo';
|
||||
@@ -192,7 +193,7 @@ export class MainComponent implements OnInit {
|
||||
selectedQuality = '';
|
||||
formats_loading = false;
|
||||
|
||||
@ViewChild('urlinput', { read: ElementRef, static: false }) urlInput: ElementRef;
|
||||
@ViewChild('urlinput', { read: ElementRef }) urlInput: ElementRef;
|
||||
@ViewChildren('audiofilecard') audioFileCards: QueryList<FileCardComponent>;
|
||||
@ViewChildren('videofilecard') videoFileCards: QueryList<FileCardComponent>;
|
||||
last_valid_url = '';
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<div class="spinner-div">
|
||||
<mat-spinner *ngIf="playlist_updating" [diameter]="25"></mat-spinner>
|
||||
</div>
|
||||
<button color="primary" [disabled]="playlist_updating" (click)="updatePlaylist()" mat-raised-button>Save changes <mat-icon>update</mat-icon></button>
|
||||
<button color="primary" [disabled]="playlist_updating" (click)="updatePlaylist()" mat-raised-button><ng-container i18n="Playlist save changes button">Save changes</ng-container> <mat-icon>update</mat-icon></button>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { Component, OnInit, HostListener, EventEmitter } from '@angular/core';
|
||||
import { VgAPI } from 'videogular2/compiled/core';
|
||||
import { VgAPI } from 'ngx-videogular';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { MatDialog, MatSnackBar } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { InputDialogComponent } from 'app/input-dialog/input-dialog.component';
|
||||
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
|
||||
|
||||
|
||||
735
src/app/settings/locales_list.ts
Normal file
735
src/app/settings/locales_list.ts
Normal file
@@ -0,0 +1,735 @@
|
||||
/**
|
||||
* @author Phil Teare
|
||||
* using wikipedia data
|
||||
* Link: https://stackoverflow.com/a/4900304
|
||||
*/
|
||||
export const isoLangs = {
|
||||
'ab': {
|
||||
'name': 'Abkhaz',
|
||||
'nativeName': 'аҧсуа'
|
||||
},
|
||||
'aa': {
|
||||
'name': 'Afar',
|
||||
'nativeName': 'Afaraf'
|
||||
},
|
||||
'af': {
|
||||
'name': 'Afrikaans',
|
||||
'nativeName': 'Afrikaans'
|
||||
},
|
||||
'ak': {
|
||||
'name': 'Akan',
|
||||
'nativeName': 'Akan'
|
||||
},
|
||||
'sq': {
|
||||
'name': 'Albanian',
|
||||
'nativeName': 'Shqip'
|
||||
},
|
||||
'am': {
|
||||
'name': 'Amharic',
|
||||
'nativeName': 'አማርኛ'
|
||||
},
|
||||
'ar': {
|
||||
'name': 'Arabic',
|
||||
'nativeName': 'العربية'
|
||||
},
|
||||
'an': {
|
||||
'name': 'Aragonese',
|
||||
'nativeName': 'Aragonés'
|
||||
},
|
||||
'hy': {
|
||||
'name': 'Armenian',
|
||||
'nativeName': 'Հայերեն'
|
||||
},
|
||||
'as': {
|
||||
'name': 'Assamese',
|
||||
'nativeName': 'অসমীয়া'
|
||||
},
|
||||
'av': {
|
||||
'name': 'Avaric',
|
||||
'nativeName': 'авар мацӀ, магӀарул мацӀ'
|
||||
},
|
||||
'ae': {
|
||||
'name': 'Avestan',
|
||||
'nativeName': 'avesta'
|
||||
},
|
||||
'ay': {
|
||||
'name': 'Aymara',
|
||||
'nativeName': 'aymar aru'
|
||||
},
|
||||
'az': {
|
||||
'name': 'Azerbaijani',
|
||||
'nativeName': 'azərbaycan dili'
|
||||
},
|
||||
'bm': {
|
||||
'name': 'Bambara',
|
||||
'nativeName': 'bamanankan'
|
||||
},
|
||||
'ba': {
|
||||
'name': 'Bashkir',
|
||||
'nativeName': 'башҡорт теле'
|
||||
},
|
||||
'eu': {
|
||||
'name': 'Basque',
|
||||
'nativeName': 'euskara, euskera'
|
||||
},
|
||||
'be': {
|
||||
'name': 'Belarusian',
|
||||
'nativeName': 'Беларуская'
|
||||
},
|
||||
'bn': {
|
||||
'name': 'Bengali',
|
||||
'nativeName': 'বাংলা'
|
||||
},
|
||||
'bh': {
|
||||
'name': 'Bihari',
|
||||
'nativeName': 'भोजपुरी'
|
||||
},
|
||||
'bi': {
|
||||
'name': 'Bislama',
|
||||
'nativeName': 'Bislama'
|
||||
},
|
||||
'bs': {
|
||||
'name': 'Bosnian',
|
||||
'nativeName': 'bosanski jezik'
|
||||
},
|
||||
'br': {
|
||||
'name': 'Breton',
|
||||
'nativeName': 'brezhoneg'
|
||||
},
|
||||
'bg': {
|
||||
'name': 'Bulgarian',
|
||||
'nativeName': 'български език'
|
||||
},
|
||||
'my': {
|
||||
'name': 'Burmese',
|
||||
'nativeName': 'ဗမာစာ'
|
||||
},
|
||||
'ca': {
|
||||
'name': 'Catalan; Valencian',
|
||||
'nativeName': 'Català'
|
||||
},
|
||||
'ch': {
|
||||
'name': 'Chamorro',
|
||||
'nativeName': 'Chamoru'
|
||||
},
|
||||
'ce': {
|
||||
'name': 'Chechen',
|
||||
'nativeName': 'нохчийн мотт'
|
||||
},
|
||||
'ny': {
|
||||
'name': 'Chichewa; Chewa; Nyanja',
|
||||
'nativeName': 'chiCheŵa, chinyanja'
|
||||
},
|
||||
'zh': {
|
||||
'name': 'Chinese',
|
||||
'nativeName': '中文 (Zhōngwén), 汉语, 漢語'
|
||||
},
|
||||
'cv': {
|
||||
'name': 'Chuvash',
|
||||
'nativeName': 'чӑваш чӗлхи'
|
||||
},
|
||||
'kw': {
|
||||
'name': 'Cornish',
|
||||
'nativeName': 'Kernewek'
|
||||
},
|
||||
'co': {
|
||||
'name': 'Corsican',
|
||||
'nativeName': 'corsu, lingua corsa'
|
||||
},
|
||||
'cr': {
|
||||
'name': 'Cree',
|
||||
'nativeName': 'ᓀᐦᐃᔭᐍᐏᐣ'
|
||||
},
|
||||
'hr': {
|
||||
'name': 'Croatian',
|
||||
'nativeName': 'hrvatski'
|
||||
},
|
||||
'cs': {
|
||||
'name': 'Czech',
|
||||
'nativeName': 'česky, čeština'
|
||||
},
|
||||
'da': {
|
||||
'name': 'Danish',
|
||||
'nativeName': 'dansk'
|
||||
},
|
||||
'dv': {
|
||||
'name': 'Divehi; Dhivehi; Maldivian;',
|
||||
'nativeName': 'ދިވެހި'
|
||||
},
|
||||
'nl': {
|
||||
'name': 'Dutch',
|
||||
'nativeName': 'Nederlands, Vlaams'
|
||||
},
|
||||
'en': {
|
||||
'name': 'English',
|
||||
'nativeName': 'English'
|
||||
},
|
||||
'eo': {
|
||||
'name': 'Esperanto',
|
||||
'nativeName': 'Esperanto'
|
||||
},
|
||||
'et': {
|
||||
'name': 'Estonian',
|
||||
'nativeName': 'eesti, eesti keel'
|
||||
},
|
||||
'ee': {
|
||||
'name': 'Ewe',
|
||||
'nativeName': 'Eʋegbe'
|
||||
},
|
||||
'fo': {
|
||||
'name': 'Faroese',
|
||||
'nativeName': 'føroyskt'
|
||||
},
|
||||
'fj': {
|
||||
'name': 'Fijian',
|
||||
'nativeName': 'vosa Vakaviti'
|
||||
},
|
||||
'fi': {
|
||||
'name': 'Finnish',
|
||||
'nativeName': 'suomi, suomen kieli'
|
||||
},
|
||||
'fr': {
|
||||
'name': 'French',
|
||||
'nativeName': 'français, langue française'
|
||||
},
|
||||
'ff': {
|
||||
'name': 'Fula; Fulah; Pulaar; Pular',
|
||||
'nativeName': 'Fulfulde, Pulaar, Pular'
|
||||
},
|
||||
'gl': {
|
||||
'name': 'Galician',
|
||||
'nativeName': 'Galego'
|
||||
},
|
||||
'ka': {
|
||||
'name': 'Georgian',
|
||||
'nativeName': 'ქართული'
|
||||
},
|
||||
'de': {
|
||||
'name': 'German',
|
||||
'nativeName': 'Deutsch'
|
||||
},
|
||||
'el': {
|
||||
'name': 'Greek, Modern',
|
||||
'nativeName': 'Ελληνικά'
|
||||
},
|
||||
'gn': {
|
||||
'name': 'Guaraní',
|
||||
'nativeName': 'Avañeẽ'
|
||||
},
|
||||
'gu': {
|
||||
'name': 'Gujarati',
|
||||
'nativeName': 'ગુજરાતી'
|
||||
},
|
||||
'ht': {
|
||||
'name': 'Haitian; Haitian Creole',
|
||||
'nativeName': 'Kreyòl ayisyen'
|
||||
},
|
||||
'ha': {
|
||||
'name': 'Hausa',
|
||||
'nativeName': 'Hausa, هَوُسَ'
|
||||
},
|
||||
'he': {
|
||||
'name': 'Hebrew (modern)',
|
||||
'nativeName': 'עברית'
|
||||
},
|
||||
'hz': {
|
||||
'name': 'Herero',
|
||||
'nativeName': 'Otjiherero'
|
||||
},
|
||||
'hi': {
|
||||
'name': 'Hindi',
|
||||
'nativeName': 'हिन्दी, हिंदी'
|
||||
},
|
||||
'ho': {
|
||||
'name': 'Hiri Motu',
|
||||
'nativeName': 'Hiri Motu'
|
||||
},
|
||||
'hu': {
|
||||
'name': 'Hungarian',
|
||||
'nativeName': 'Magyar'
|
||||
},
|
||||
'ia': {
|
||||
'name': 'Interlingua',
|
||||
'nativeName': 'Interlingua'
|
||||
},
|
||||
'id': {
|
||||
'name': 'Indonesian',
|
||||
'nativeName': 'Bahasa Indonesia'
|
||||
},
|
||||
'ie': {
|
||||
'name': 'Interlingue',
|
||||
'nativeName': 'Originally called Occidental; then Interlingue after WWII'
|
||||
},
|
||||
'ga': {
|
||||
'name': 'Irish',
|
||||
'nativeName': 'Gaeilge'
|
||||
},
|
||||
'ig': {
|
||||
'name': 'Igbo',
|
||||
'nativeName': 'Asụsụ Igbo'
|
||||
},
|
||||
'ik': {
|
||||
'name': 'Inupiaq',
|
||||
'nativeName': 'Iñupiaq, Iñupiatun'
|
||||
},
|
||||
'io': {
|
||||
'name': 'Ido',
|
||||
'nativeName': 'Ido'
|
||||
},
|
||||
'is': {
|
||||
'name': 'Icelandic',
|
||||
'nativeName': 'Íslenska'
|
||||
},
|
||||
'it': {
|
||||
'name': 'Italian',
|
||||
'nativeName': 'Italiano'
|
||||
},
|
||||
'iu': {
|
||||
'name': 'Inuktitut',
|
||||
'nativeName': 'ᐃᓄᒃᑎᑐᑦ'
|
||||
},
|
||||
'ja': {
|
||||
'name': 'Japanese',
|
||||
'nativeName': '日本語 (にほんご/にっぽんご)'
|
||||
},
|
||||
'jv': {
|
||||
'name': 'Javanese',
|
||||
'nativeName': 'basa Jawa'
|
||||
},
|
||||
'kl': {
|
||||
'name': 'Kalaallisut, Greenlandic',
|
||||
'nativeName': 'kalaallisut, kalaallit oqaasii'
|
||||
},
|
||||
'kn': {
|
||||
'name': 'Kannada',
|
||||
'nativeName': 'ಕನ್ನಡ'
|
||||
},
|
||||
'kr': {
|
||||
'name': 'Kanuri',
|
||||
'nativeName': 'Kanuri'
|
||||
},
|
||||
'ks': {
|
||||
'name': 'Kashmiri',
|
||||
'nativeName': 'कश्मीरी, كشميري'
|
||||
},
|
||||
'kk': {
|
||||
'name': 'Kazakh',
|
||||
'nativeName': 'Қазақ тілі'
|
||||
},
|
||||
'km': {
|
||||
'name': 'Khmer',
|
||||
'nativeName': 'ភាសាខ្មែរ'
|
||||
},
|
||||
'ki': {
|
||||
'name': 'Kikuyu, Gikuyu',
|
||||
'nativeName': 'Gĩkũyũ'
|
||||
},
|
||||
'rw': {
|
||||
'name': 'Kinyarwanda',
|
||||
'nativeName': 'Ikinyarwanda'
|
||||
},
|
||||
'ky': {
|
||||
'name': 'Kirghiz, Kyrgyz',
|
||||
'nativeName': 'кыргыз тили'
|
||||
},
|
||||
'kv': {
|
||||
'name': 'Komi',
|
||||
'nativeName': 'коми кыв'
|
||||
},
|
||||
'kg': {
|
||||
'name': 'Kongo',
|
||||
'nativeName': 'KiKongo'
|
||||
},
|
||||
'ko': {
|
||||
'name': 'Korean',
|
||||
'nativeName': '한국어 (韓國語), 조선말 (朝鮮語)'
|
||||
},
|
||||
'ku': {
|
||||
'name': 'Kurdish',
|
||||
'nativeName': 'Kurdî, كوردی'
|
||||
},
|
||||
'kj': {
|
||||
'name': 'Kwanyama, Kuanyama',
|
||||
'nativeName': 'Kuanyama'
|
||||
},
|
||||
'la': {
|
||||
'name': 'Latin',
|
||||
'nativeName': 'latine, lingua latina'
|
||||
},
|
||||
'lb': {
|
||||
'name': 'Luxembourgish, Letzeburgesch',
|
||||
'nativeName': 'Lëtzebuergesch'
|
||||
},
|
||||
'lg': {
|
||||
'name': 'Luganda',
|
||||
'nativeName': 'Luganda'
|
||||
},
|
||||
'li': {
|
||||
'name': 'Limburgish, Limburgan, Limburger',
|
||||
'nativeName': 'Limburgs'
|
||||
},
|
||||
'ln': {
|
||||
'name': 'Lingala',
|
||||
'nativeName': 'Lingála'
|
||||
},
|
||||
'lo': {
|
||||
'name': 'Lao',
|
||||
'nativeName': 'ພາສາລາວ'
|
||||
},
|
||||
'lt': {
|
||||
'name': 'Lithuanian',
|
||||
'nativeName': 'lietuvių kalba'
|
||||
},
|
||||
'lu': {
|
||||
'name': 'Luba-Katanga',
|
||||
'nativeName': ''
|
||||
},
|
||||
'lv': {
|
||||
'name': 'Latvian',
|
||||
'nativeName': 'latviešu valoda'
|
||||
},
|
||||
'gv': {
|
||||
'name': 'Manx',
|
||||
'nativeName': 'Gaelg, Gailck'
|
||||
},
|
||||
'mk': {
|
||||
'name': 'Macedonian',
|
||||
'nativeName': 'македонски јазик'
|
||||
},
|
||||
'mg': {
|
||||
'name': 'Malagasy',
|
||||
'nativeName': 'Malagasy fiteny'
|
||||
},
|
||||
'ms': {
|
||||
'name': 'Malay',
|
||||
'nativeName': 'bahasa Melayu, بهاس ملايو'
|
||||
},
|
||||
'ml': {
|
||||
'name': 'Malayalam',
|
||||
'nativeName': 'മലയാളം'
|
||||
},
|
||||
'mt': {
|
||||
'name': 'Maltese',
|
||||
'nativeName': 'Malti'
|
||||
},
|
||||
'mi': {
|
||||
'name': 'Māori',
|
||||
'nativeName': 'te reo Māori'
|
||||
},
|
||||
'mr': {
|
||||
'name': 'Marathi (Marāṭhī)',
|
||||
'nativeName': 'मराठी'
|
||||
},
|
||||
'mh': {
|
||||
'name': 'Marshallese',
|
||||
'nativeName': 'Kajin M̧ajeļ'
|
||||
},
|
||||
'mn': {
|
||||
'name': 'Mongolian',
|
||||
'nativeName': 'монгол'
|
||||
},
|
||||
'na': {
|
||||
'name': 'Nauru',
|
||||
'nativeName': 'Ekakairũ Naoero'
|
||||
},
|
||||
'nv': {
|
||||
'name': 'Navajo, Navaho',
|
||||
'nativeName': 'Diné bizaad, Dinékʼehǰí'
|
||||
},
|
||||
'nb': {
|
||||
'name': 'Norwegian Bokmål',
|
||||
'nativeName': 'Norsk bokmål'
|
||||
},
|
||||
'nd': {
|
||||
'name': 'North Ndebele',
|
||||
'nativeName': 'isiNdebele'
|
||||
},
|
||||
'ne': {
|
||||
'name': 'Nepali',
|
||||
'nativeName': 'नेपाली'
|
||||
},
|
||||
'ng': {
|
||||
'name': 'Ndonga',
|
||||
'nativeName': 'Owambo'
|
||||
},
|
||||
'nn': {
|
||||
'name': 'Norwegian Nynorsk',
|
||||
'nativeName': 'Norsk nynorsk'
|
||||
},
|
||||
'no': {
|
||||
'name': 'Norwegian',
|
||||
'nativeName': 'Norsk'
|
||||
},
|
||||
'ii': {
|
||||
'name': 'Nuosu',
|
||||
'nativeName': 'ꆈꌠ꒿ Nuosuhxop'
|
||||
},
|
||||
'nr': {
|
||||
'name': 'South Ndebele',
|
||||
'nativeName': 'isiNdebele'
|
||||
},
|
||||
'oc': {
|
||||
'name': 'Occitan',
|
||||
'nativeName': 'Occitan'
|
||||
},
|
||||
'oj': {
|
||||
'name': 'Ojibwe, Ojibwa',
|
||||
'nativeName': 'ᐊᓂᔑᓈᐯᒧᐎᓐ'
|
||||
},
|
||||
'cu': {
|
||||
'name': 'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic',
|
||||
'nativeName': 'ѩзыкъ словѣньскъ'
|
||||
},
|
||||
'om': {
|
||||
'name': 'Oromo',
|
||||
'nativeName': 'Afaan Oromoo'
|
||||
},
|
||||
'or': {
|
||||
'name': 'Oriya',
|
||||
'nativeName': 'ଓଡ଼ିଆ'
|
||||
},
|
||||
'os': {
|
||||
'name': 'Ossetian, Ossetic',
|
||||
'nativeName': 'ирон æвзаг'
|
||||
},
|
||||
'pa': {
|
||||
'name': 'Panjabi, Punjabi',
|
||||
'nativeName': 'ਪੰਜਾਬੀ, پنجابی'
|
||||
},
|
||||
'pi': {
|
||||
'name': 'Pāli',
|
||||
'nativeName': 'पाऴि'
|
||||
},
|
||||
'fa': {
|
||||
'name': 'Persian',
|
||||
'nativeName': 'فارسی'
|
||||
},
|
||||
'pl': {
|
||||
'name': 'Polish',
|
||||
'nativeName': 'polski'
|
||||
},
|
||||
'ps': {
|
||||
'name': 'Pashto, Pushto',
|
||||
'nativeName': 'پښتو'
|
||||
},
|
||||
'pt': {
|
||||
'name': 'Portuguese',
|
||||
'nativeName': 'Português'
|
||||
},
|
||||
'qu': {
|
||||
'name': 'Quechua',
|
||||
'nativeName': 'Runa Simi, Kichwa'
|
||||
},
|
||||
'rm': {
|
||||
'name': 'Romansh',
|
||||
'nativeName': 'rumantsch grischun'
|
||||
},
|
||||
'rn': {
|
||||
'name': 'Kirundi',
|
||||
'nativeName': 'kiRundi'
|
||||
},
|
||||
'ro': {
|
||||
'name': 'Romanian, Moldavian, Moldovan',
|
||||
'nativeName': 'română'
|
||||
},
|
||||
'ru': {
|
||||
'name': 'Russian',
|
||||
'nativeName': 'русский язык'
|
||||
},
|
||||
'sa': {
|
||||
'name': 'Sanskrit (Saṁskṛta)',
|
||||
'nativeName': 'संस्कृतम्'
|
||||
},
|
||||
'sc': {
|
||||
'name': 'Sardinian',
|
||||
'nativeName': 'sardu'
|
||||
},
|
||||
'sd': {
|
||||
'name': 'Sindhi',
|
||||
'nativeName': 'सिन्धी, سنڌي، سندھی'
|
||||
},
|
||||
'se': {
|
||||
'name': 'Northern Sami',
|
||||
'nativeName': 'Davvisámegiella'
|
||||
},
|
||||
'sm': {
|
||||
'name': 'Samoan',
|
||||
'nativeName': 'gagana faa Samoa'
|
||||
},
|
||||
'sg': {
|
||||
'name': 'Sango',
|
||||
'nativeName': 'yângâ tî sängö'
|
||||
},
|
||||
'sr': {
|
||||
'name': 'Serbian',
|
||||
'nativeName': 'српски језик'
|
||||
},
|
||||
'gd': {
|
||||
'name': 'Scottish Gaelic; Gaelic',
|
||||
'nativeName': 'Gàidhlig'
|
||||
},
|
||||
'sn': {
|
||||
'name': 'Shona',
|
||||
'nativeName': 'chiShona'
|
||||
},
|
||||
'si': {
|
||||
'name': 'Sinhala, Sinhalese',
|
||||
'nativeName': 'සිංහල'
|
||||
},
|
||||
'sk': {
|
||||
'name': 'Slovak',
|
||||
'nativeName': 'slovenčina'
|
||||
},
|
||||
'sl': {
|
||||
'name': 'Slovene',
|
||||
'nativeName': 'slovenščina'
|
||||
},
|
||||
'so': {
|
||||
'name': 'Somali',
|
||||
'nativeName': 'Soomaaliga, af Soomaali'
|
||||
},
|
||||
'st': {
|
||||
'name': 'Southern Sotho',
|
||||
'nativeName': 'Sesotho'
|
||||
},
|
||||
'es': {
|
||||
'name': 'Spanish; Castilian',
|
||||
'nativeName': 'español, castellano'
|
||||
},
|
||||
'su': {
|
||||
'name': 'Sundanese',
|
||||
'nativeName': 'Basa Sunda'
|
||||
},
|
||||
'sw': {
|
||||
'name': 'Swahili',
|
||||
'nativeName': 'Kiswahili'
|
||||
},
|
||||
'ss': {
|
||||
'name': 'Swati',
|
||||
'nativeName': 'SiSwati'
|
||||
},
|
||||
'sv': {
|
||||
'name': 'Swedish',
|
||||
'nativeName': 'svenska'
|
||||
},
|
||||
'ta': {
|
||||
'name': 'Tamil',
|
||||
'nativeName': 'தமிழ்'
|
||||
},
|
||||
'te': {
|
||||
'name': 'Telugu',
|
||||
'nativeName': 'తెలుగు'
|
||||
},
|
||||
'tg': {
|
||||
'name': 'Tajik',
|
||||
'nativeName': 'тоҷикӣ, toğikī, تاجیکی'
|
||||
},
|
||||
'th': {
|
||||
'name': 'Thai',
|
||||
'nativeName': 'ไทย'
|
||||
},
|
||||
'ti': {
|
||||
'name': 'Tigrinya',
|
||||
'nativeName': 'ትግርኛ'
|
||||
},
|
||||
'bo': {
|
||||
'name': 'Tibetan Standard, Tibetan, Central',
|
||||
'nativeName': 'བོད་ཡིག'
|
||||
},
|
||||
'tk': {
|
||||
'name': 'Turkmen',
|
||||
'nativeName': 'Türkmen, Түркмен'
|
||||
},
|
||||
'tl': {
|
||||
'name': 'Tagalog',
|
||||
'nativeName': 'Wikang Tagalog, ᜏᜒᜃᜅ᜔ ᜆᜄᜎᜓᜄ᜔'
|
||||
},
|
||||
'tn': {
|
||||
'name': 'Tswana',
|
||||
'nativeName': 'Setswana'
|
||||
},
|
||||
'to': {
|
||||
'name': 'Tonga (Tonga Islands)',
|
||||
'nativeName': 'faka Tonga'
|
||||
},
|
||||
'tr': {
|
||||
'name': 'Turkish',
|
||||
'nativeName': 'Türkçe'
|
||||
},
|
||||
'ts': {
|
||||
'name': 'Tsonga',
|
||||
'nativeName': 'Xitsonga'
|
||||
},
|
||||
'tt': {
|
||||
'name': 'Tatar',
|
||||
'nativeName': 'татарча, tatarça, تاتارچا'
|
||||
},
|
||||
'tw': {
|
||||
'name': 'Twi',
|
||||
'nativeName': 'Twi'
|
||||
},
|
||||
'ty': {
|
||||
'name': 'Tahitian',
|
||||
'nativeName': 'Reo Tahiti'
|
||||
},
|
||||
'ug': {
|
||||
'name': 'Uighur, Uyghur',
|
||||
'nativeName': 'Uyƣurqə, ئۇيغۇرچە'
|
||||
},
|
||||
'uk': {
|
||||
'name': 'Ukrainian',
|
||||
'nativeName': 'українська'
|
||||
},
|
||||
'ur': {
|
||||
'name': 'Urdu',
|
||||
'nativeName': 'اردو'
|
||||
},
|
||||
'uz': {
|
||||
'name': 'Uzbek',
|
||||
'nativeName': 'zbek, Ўзбек, أۇزبېك'
|
||||
},
|
||||
've': {
|
||||
'name': 'Venda',
|
||||
'nativeName': 'Tshivenḓa'
|
||||
},
|
||||
'vi': {
|
||||
'name': 'Vietnamese',
|
||||
'nativeName': 'Tiếng Việt'
|
||||
},
|
||||
'vo': {
|
||||
'name': 'Volapük',
|
||||
'nativeName': 'Volapük'
|
||||
},
|
||||
'wa': {
|
||||
'name': 'Walloon',
|
||||
'nativeName': 'Walon'
|
||||
},
|
||||
'cy': {
|
||||
'name': 'Welsh',
|
||||
'nativeName': 'Cymraeg'
|
||||
},
|
||||
'wo': {
|
||||
'name': 'Wolof',
|
||||
'nativeName': 'Wollof'
|
||||
},
|
||||
'fy': {
|
||||
'name': 'Western Frisian',
|
||||
'nativeName': 'Frysk'
|
||||
},
|
||||
'xh': {
|
||||
'name': 'Xhosa',
|
||||
'nativeName': 'isiXhosa'
|
||||
},
|
||||
'yi': {
|
||||
'name': 'Yiddish',
|
||||
'nativeName': 'ייִדיש'
|
||||
},
|
||||
'yo': {
|
||||
'name': 'Yoruba',
|
||||
'nativeName': 'Yorùbá'
|
||||
},
|
||||
'za': {
|
||||
'name': 'Zhuang, Chuang',
|
||||
'nativeName': 'Saɯ cueŋƅ, Saw cuengh'
|
||||
}
|
||||
};
|
||||
@@ -1,25 +1,34 @@
|
||||
<h4 mat-dialog-title>Settings</h4>
|
||||
|
||||
<h4 i18n="Settings title" mat-dialog-title>Settings</h4>
|
||||
<!-- <ng-container i18n="Allow subscriptions setting"></ng-container> -->
|
||||
<mat-dialog-content>
|
||||
<!-- Language -->
|
||||
<div>
|
||||
Language: <mat-select class="locale-select" (selectionChange)="localeSelectChanged($event.value)" [(value)]="initialLocale">
|
||||
<mat-option *ngFor="let locale of supported_locales" [value]="locale">
|
||||
{{all_locales[locale]['nativeName']}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
|
||||
<!-- Host -->
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Host
|
||||
<ng-container i18n="Host settings title">Host</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="new_config['Host']['url']" matInput placeholder="URL" required>
|
||||
<mat-hint>Base URL this app will be accessed from, without the port.</mat-hint>
|
||||
<input [(ngModel)]="new_config['Host']['url']" matInput placeholder="URL" i18n-placeholder="URL input placeholder" required>
|
||||
<mat-hint><ng-container i18n="URL setting input hint">URL this app will be accessed from, without the port.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12 mt-4">
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="new_config['Host']['port']" matInput placeholder="Port" required>
|
||||
<mat-hint>The desired port. Default is 17442.</mat-hint>
|
||||
<input [(ngModel)]="new_config['Host']['port']" matInput placeholder="Port" i18n-placeholder="Port input placeholder" required>
|
||||
<mat-hint><ng-container i18n="Port setting input hint">The desired port. Default is 17442.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
@@ -31,24 +40,24 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Encryption
|
||||
<ng-container i18n="Encryption settings title">Encryption</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Encryption']['use-encryption']">Use encryption</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Encryption']['use-encryption']"><ng-container i18n="Use encryption setting">Use encryption</ng-container></mat-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="!new_config['Encryption']['use-encryption']" [(ngModel)]="new_config['Encryption']['cert-file-path']" matInput placeholder="Cert file path">
|
||||
<input [disabled]="!new_config['Encryption']['use-encryption']" [(ngModel)]="new_config['Encryption']['cert-file-path']" matInput placeholder="Cert file path" i18n-placeholder="Cert file path input placeholder">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="!new_config['Encryption']['use-encryption']" [(ngModel)]="new_config['Encryption']['key-file-path']" matInput placeholder="Key file path">
|
||||
<input [disabled]="!new_config['Encryption']['use-encryption']" [(ngModel)]="new_config['Encryption']['key-file-path']" matInput placeholder="Key file path" i18n-placeholder="Key file path input placeholder">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,29 +68,29 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Downloader
|
||||
<ng-container i18n="Downloader settings title">Downloader</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input matInput [(ngModel)]="new_config['Downloader']['path-audio']" placeholder="Audio folder path" required>
|
||||
<mat-hint>Path for audio only downloads. It is relative to YTDL-Material's root folder.</mat-hint>
|
||||
<input matInput [(ngModel)]="new_config['Downloader']['path-audio']" placeholder="Audio folder path" i18n-placeholder="Audio folder path input placeholder" required>
|
||||
<mat-hint><ng-container i18n="Aduio path setting input hint">Path for audio only downloads. It is relative to YTDL-Material's root folder.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-4">
|
||||
<mat-form-field color="accent">
|
||||
<input matInput [(ngModel)]="new_config['Downloader']['path-video']" placeholder="Video folder path" required>
|
||||
<mat-hint>Path for video downloads. It is relative to YTDL-Material's root folder.</mat-hint>
|
||||
<input matInput [(ngModel)]="new_config['Downloader']['path-video']" placeholder="Video folder path" i18n-placeholder="Video folder path input placeholder" required>
|
||||
<mat-hint><ng-container i18n="Video path setting input hint">Path for video downloads. It is relative to YTDL-Material's root folder.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-4">
|
||||
<mat-form-field color="accent">
|
||||
<textarea matInput [(ngModel)]="new_config['Downloader']['custom_args']" placeholder="Custom args"></textarea>
|
||||
<mat-hint>Global custom args for downloads on the home page.</mat-hint>
|
||||
<textarea matInput [(ngModel)]="new_config['Downloader']['custom_args']" placeholder="Custom args" i18n-placeholder="Custom args input placeholder"></textarea>
|
||||
<mat-hint><ng-container i18n="Custom args setting input hint">Global custom args for downloads on the home page.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@@ -92,28 +101,28 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Extra
|
||||
<ng-container i18n="Extra settings title">Extra</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [(ngModel)]="new_config['Extra']['title_top']" matInput placeholder="Top title" required>
|
||||
<input [(ngModel)]="new_config['Extra']['title_top']" matInput placeholder="Top title" i18n-placeholder="Top title input placeholder" required>
|
||||
<mat-hint></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['file_manager_enabled']">File manager enabled</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['file_manager_enabled']"><ng-container i18n="File manager enabled setting">File manager enabled</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['allow_quality_select']">Allow quality select</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['allow_quality_select']"><ng-container i18n="Allow quality seelct setting">Allow quality select</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['download_only_mode']">Download only mode</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['download_only_mode']"><ng-container i18n="Download only mode setting">Download only mode</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['allow_multi_download_mode']">Allow multi-download mode</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Extra']['allow_multi_download_mode']"><ng-container i18n="Allow multi-downloade mode setting">Allow multi-download mode</ng-container></mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -123,18 +132,18 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
API
|
||||
<ng-container i18n="API settings title">API</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['API']['use_youtube_api']">Use YouTube API</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['API']['use_youtube_api']"><ng-container i18n="Use YouTube API setting">Use YouTube API</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="!new_config['API']['use_youtube_api']" [(ngModel)]="new_config['API']['youtube_API_key']" matInput placeholder="Youtube API Key" required>
|
||||
<mat-hint><a target="_blank" href="https://developers.google.com/youtube/v3/getting-started">Generating a key</a> is easy!</mat-hint>
|
||||
<input [disabled]="!new_config['API']['use_youtube_api']" [(ngModel)]="new_config['API']['youtube_API_key']" matInput placeholder="Youtube API Key" i18n-placeholder="Youtube API Key setting placeholder" required>
|
||||
<mat-hint><a target="_blank" href="https://developers.google.com/youtube/v3/getting-started"><ng-container i18n="Youtube API Key setting hint">Generating a key is easy!</ng-container></a></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@@ -145,20 +154,20 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Themes
|
||||
<ng-container i18n="Themes settings title">Themes</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-select color="accent" style="width: 100px" [(ngModel)]="new_config['Themes']['default_theme']">
|
||||
<mat-option value="default">Default</mat-option>
|
||||
<mat-option value="dark">Dark</mat-option>
|
||||
<mat-option value="default"><ng-container i18n="Default theme label">Default</ng-container></mat-option>
|
||||
<mat-option value="dark"><ng-container i18n="Dark theme label">Dark</ng-container></mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mt-4">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Themes']['allow_theme_change']">Allow theme change</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Themes']['allow_theme_change']"><ng-container i18n="Allow theme change setting">Allow theme change</ng-container></mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -168,30 +177,30 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Subscriptions
|
||||
<ng-container i18n="Subscriptions settings title">Subscriptions</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Subscriptions']['allow_subscriptions']">Allow subscriptions</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Subscriptions']['allow_subscriptions']"><ng-container i18n="Allow subscriptions setting">Allow subscriptions</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_base_path']" matInput placeholder="Subscriptions base path">
|
||||
<mat-hint>Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</mat-hint>
|
||||
<input [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_base_path']" matInput placeholder="Subscriptions base path" i18n-placeholder="Subscriptions base path input setting placeholder">
|
||||
<mat-hint><ng-container i18n="Subscriptions base path setting input hint">Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12 mt-5">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_check_interval']" matInput placeholder="Check interval">
|
||||
<mat-hint>Unit is seconds, only include numbers.</mat-hint>
|
||||
<input [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_check_interval']" matInput placeholder="Check interval" i18n-placeholder="Check interval input setting placeholder">
|
||||
<mat-hint><ng-container i18n="Check interval setting input hint">Unit is seconds, only include numbers.</ng-container></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12 mt-4">
|
||||
<mat-checkbox color="accent" [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_use_youtubedl_archive']">Use youtube-dl archive</mat-checkbox>
|
||||
<p>With youtube-dl's <a target="_blank" href="https://github.com/ytdl-org/youtube-dl/blob/master/README.md#how-do-i-download-only-new-videos-from-a-playlist">archive</a> feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions <i>archive</i> sub-directory.</p>
|
||||
<p>This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</p>
|
||||
<mat-checkbox color="accent" [disabled]="!new_config['Subscriptions']['allow_subscriptions']" [(ngModel)]="new_config['Subscriptions']['subscriptions_use_youtubedl_archive']"><ng-container i18n="Use youtube-dl archive setting">Use youtube-dl archive</ng-container></mat-checkbox>
|
||||
<p><a target="_blank" href="https://github.com/ytdl-org/youtube-dl/blob/master/README.md#how-do-i-download-only-new-videos-from-a-playlist"><ng-container i18n="youtube-dl archive explanation prefix link">With youtube-dl's archive</ng-container></a> <ng-container i18n="youtube-dl archive explanation middle">feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.</ng-container></p>
|
||||
<p><ng-container i18n="youtube-dl archive explanation suffix">This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</ng-container></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -201,22 +210,22 @@
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
Advanced
|
||||
<ng-container i18n="Advanced settings title">Advanced</ng-container>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<div *ngIf="new_config" class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Advanced']['use_default_downloading_agent']">Use default downloading agent</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Advanced']['use_default_downloading_agent']"><ng-container i18n="Use default downloading agent setting">Use default downloading agent</ng-container></mat-checkbox>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-form-field color="accent">
|
||||
<input [disabled]="new_config['Advanced']['use_default_downloading_agent']" [(ngModel)]="new_config['Advanced']['custom_downloading_agent']" matInput placeholder="Custom agent" required>
|
||||
<input [disabled]="new_config['Advanced']['use_default_downloading_agent']" [(ngModel)]="new_config['Advanced']['custom_downloading_agent']" matInput placeholder="Custom agent" i18n-placeholder="Custom agent setting placeholder" required>
|
||||
<mat-hint></mat-hint>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Advanced']['allow_advanced_download']">Allow advanced download</mat-checkbox>
|
||||
<mat-checkbox color="accent" [(ngModel)]="new_config['Advanced']['allow_advanced_download']"><ng-container i18n="Allow advanced downloading setting">Allow advanced download</ng-container></mat-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -225,7 +234,11 @@
|
||||
|
||||
<mat-dialog-actions>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<button color="accent" (click)="saveSettings()" [disabled]="settingsSame()" mat-raised-button><mat-icon>done</mat-icon> Save</button>
|
||||
<button mat-flat-button [mat-dialog-close]="false"><mat-icon>cancel</mat-icon> Cancel</button>
|
||||
<button color="accent" (click)="saveSettings()" [disabled]="settingsSame()" mat-raised-button><mat-icon>done</mat-icon>
|
||||
<ng-container i18n="Settings save button">Save</ng-container>
|
||||
</button>
|
||||
<button mat-flat-button [mat-dialog-close]="false"><mat-icon>cancel</mat-icon>
|
||||
<ng-container i18n="Settings cancel button">Cancel</ng-container>
|
||||
</button>
|
||||
</div>
|
||||
</mat-dialog-actions>
|
||||
@@ -1,3 +1,8 @@
|
||||
.settings-expansion-panel {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.locale-select {
|
||||
margin-bottom: 10px;
|
||||
width: 175px;
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { isoLangs } from './locales_list';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
|
||||
@Component({
|
||||
selector: 'app-settings',
|
||||
@@ -7,12 +9,15 @@ import { PostsService } from 'app/posts.services';
|
||||
styleUrls: ['./settings.component.scss']
|
||||
})
|
||||
export class SettingsComponent implements OnInit {
|
||||
all_locales = isoLangs;
|
||||
supported_locales = ['en', 'es'];
|
||||
initialLocale = localStorage.getItem('locale');
|
||||
|
||||
initial_config = null;
|
||||
new_config = null
|
||||
loading_config = false;
|
||||
|
||||
constructor(private postsService: PostsService) { }
|
||||
constructor(private postsService: PostsService, private snackBar: MatSnackBar) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.getConfig();
|
||||
@@ -46,4 +51,16 @@ export class SettingsComponent implements OnInit {
|
||||
})
|
||||
}
|
||||
|
||||
localeSelectChanged(new_val) {
|
||||
localStorage.setItem('locale', new_val);
|
||||
this.openSnackBar('Language successfully changed! Reload to update the page.')
|
||||
}
|
||||
|
||||
// snackbar helper
|
||||
public openSnackBar(message: string, action: string = '') {
|
||||
this.snackBar.open(message, action, {
|
||||
duration: 2000,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<div style="position: relative; width: fit-content;">
|
||||
<div class="duration-time">
|
||||
Length: {{formattedDuration}}
|
||||
<ng-container i18n="Video duration label">Length:</ng-container> {{formattedDuration}}
|
||||
</div>
|
||||
<button [matMenuTriggerFor]="action_menu" class="menuButton" mat-icon-button><mat-icon>more_vert</mat-icon></button>
|
||||
<mat-menu #action_menu="matMenu">
|
||||
<button (click)="deleteAndRedownload()" mat-menu-item><mat-icon>restore</mat-icon>Delete and redownload</button>
|
||||
<button (click)="deleteForever()" mat-menu-item *ngIf="sub.archive && use_youtubedl_archive"><mat-icon>delete_forever</mat-icon>Delete forever</button>
|
||||
<button (click)="deleteAndRedownload()" mat-menu-item><mat-icon>restore</mat-icon><ng-container i18n="Delete and redownload subscription video button">Delete and redownload</ng-container></button>
|
||||
<button (click)="deleteForever()" mat-menu-item *ngIf="sub.archive && use_youtubedl_archive"><mat-icon>delete_forever</mat-icon><ng-container i18n="Delete forever subscription video button">Delete forever</ng-container></button>
|
||||
</mat-menu>
|
||||
<mat-card (click)="goToFile()" matRipple class="example-card mat-elevation-z6">
|
||||
<div style="padding:5px">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
||||
import { Observable, Subject } from 'rxjs';
|
||||
import { MatSnackBar } from '@angular/material';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { Router } from '@angular/router';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
<div class="flex-grid">
|
||||
<div class="col"></div>
|
||||
<div class="col">
|
||||
<h4 style="text-align: center; margin-bottom: 20px;">Videos</h4>
|
||||
<h4 i18n="Subscription videos title" style="text-align: center; margin-bottom: 20px;">Videos</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<mat-form-field [ngClass]="searchIsFocused ? 'search-bar-focused' : 'search-bar-unfocused'" class="search-bar" color="accent">
|
||||
<input (focus)="searchIsFocused = true" (blur)="searchIsFocused = false" class="search-input" type="text" placeholder="Search" [(ngModel)]="search_text" (ngModelChange)="onSearchInputChanged($event)" matInput>
|
||||
<input (focus)="searchIsFocused = true" (blur)="searchIsFocused = false" class="search-input" type="text" placeholder="Search" i18n-placeholder="Subscription videos search placeholder" [(ngModel)]="search_text" (ngModelChange)="onSearchInputChanged($event)" matInput>
|
||||
<mat-icon matSuffix>search</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
<br/>
|
||||
|
||||
<h2 style="text-align: center; margin-bottom: 15px;">Your subscriptions</h2>
|
||||
<h2 i18n="Subscriptions title" style="text-align: center; margin-bottom: 15px;">Your subscriptions</h2>
|
||||
|
||||
<mat-divider style="width: 80%; margin: 0 auto"></mat-divider>
|
||||
<br/>
|
||||
|
||||
<h4 style="text-align: center;">Channels</h4>
|
||||
<h4 i18n="Subscriptions channels title" style="text-align: center;">Channels</h4>
|
||||
<mat-nav-list class="sub-nav-list">
|
||||
<mat-list-item *ngFor="let sub of channel_subscriptions">
|
||||
<a class="a-list-item" matLine (click)="goToSubscription(sub)" href="javascript:void(0)">
|
||||
<strong *ngIf="sub.name">{{ sub.name }}</strong>
|
||||
<div *ngIf="!sub.name">
|
||||
Name not available. Channel retrieval in progress.
|
||||
<ngx-content-loading *ngIf="false" [width]="200" [height]="20">
|
||||
<svg:g ngx-rect width="200" height="20" y="0" x="0" rx="4" ry="4"></svg:g>
|
||||
</ngx-content-loading>
|
||||
<ng-container i18n="Subscription playlist not available text">Name not available. Channel retrieval in progress.</ng-container>
|
||||
</div>
|
||||
</a>
|
||||
<button mat-icon-button (click)="showSubInfo(sub)">
|
||||
@@ -24,19 +21,16 @@
|
||||
</mat-nav-list>
|
||||
|
||||
<div style="width: 80%; margin: 0 auto; padding-left: 15px;" *ngIf="channel_subscriptions.length === 0 && subscriptions">
|
||||
<p>You have no channel subscriptions.</p>
|
||||
<p i18n="No channel subscriptions text">You have no channel subscriptions.</p>
|
||||
</div>
|
||||
|
||||
<h4 style="text-align: center; margin-top: 10px;">Playlists</h4>
|
||||
<h4 i18n="Subscriptions playlists title" style="text-align: center; margin-top: 10px;">Playlists</h4>
|
||||
<mat-nav-list class="sub-nav-list">
|
||||
<mat-list-item *ngFor="let sub of playlist_subscriptions">
|
||||
<a class="a-list-item" matLine (click)="goToSubscription(sub)" href="javascript:void(0)">
|
||||
<strong>{{ sub.name }}</strong>
|
||||
<div class="content-loading-div" *ngIf="!sub.name">
|
||||
Name not available. Playlist retrieval in progress.
|
||||
<ngx-content-loading *ngIf="false" [primaryColor]="postsService.theme.background_color" [secondaryColor]="postsService.theme.alternate_color" [width]="200" [height]="20">
|
||||
<svg:g ngx-rect width="200" height="20" y="0" x="0" rx="4" ry="4"></svg:g>
|
||||
</ngx-content-loading>
|
||||
<ng-container i18n="Subscription playlist not available text">Name not available. Playlist retrieval in progress.</ng-container>
|
||||
</div>
|
||||
</a>
|
||||
<button mat-icon-button (click)="showSubInfo(sub)">
|
||||
@@ -46,7 +40,7 @@
|
||||
</mat-nav-list>
|
||||
|
||||
<div style="width: 80%; margin: 0 auto; padding-left: 15px;" *ngIf="playlist_subscriptions.length === 0 && subscriptions">
|
||||
<p>You have no playlist subscriptions.</p>
|
||||
<p i18n="No playlist subscriptions text">You have no playlist subscriptions.</p>
|
||||
</div>
|
||||
|
||||
<div style="margin: 0 auto; width: 80%" *ngIf="subscriptions_loading">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Component, OnInit, EventEmitter } from '@angular/core';
|
||||
import { MatDialog, MatSnackBar } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { SubscribeDialogComponent } from 'app/dialogs/subscribe-dialog/subscribe-dialog.component';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
919
src/assets/i18n/messages.en.xlf
Normal file
919
src/assets/i18n/messages.en.xlf
Normal file
@@ -0,0 +1,919 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<file source-language="en" datatype="plaintext" original="ng2.template">
|
||||
<body>
|
||||
<trans-unit id="17f0ea5d2d7a262b0e875acc70475f102aee84e6" datatype="html">
|
||||
<source>Create a playlist</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Create a playlist dialog title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">
|
||||
<source>Name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist name placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f47e2d56dd8a145b2e9599da9730c049d52962a2" datatype="html">
|
||||
<source>Audio files</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a52dae09be10ca3a65da918533ced3d3f4992238" datatype="html">
|
||||
<source>Videos</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Videos title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="038ebcb2a89155d90c24fa1c17bfe83dbadc3c20" datatype="html">
|
||||
<source>Youtube Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube downloader home page label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6d2ec8898344c8955542b0542c942038ef28bb80" datatype="html">
|
||||
<source>Please enter a valid URL!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Enter valid URL error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a38ae1082fec79ba1f379978337385a539a28e73" datatype="html">
|
||||
<source>
|
||||
Quality
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Quality select label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4be966a9dcfbc9b54dfcc604b831c0289f847fa4" datatype="html">
|
||||
<source>Use URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT search Use URL button for searched video</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3f02f845e62cebd75fde451ab8479d2a8ad784d" datatype="html">
|
||||
<source>
|
||||
View
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT search View button for searched video</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4a9889d36910edc8323d7bab60858ab3da6d91df" datatype="html">
|
||||
<source>
|
||||
Only Audio
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Only Audio checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="96a01fafe135afc58b0f8071a4ab00234495ce18" datatype="html">
|
||||
<source>
|
||||
Multi-download Mode
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Multi-download Mode checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a21ba5fb0ac804a525bf9ab168038c3ee88e661" datatype="html">
|
||||
<source>
|
||||
Download
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Main download button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a3777f913cf3f288664f0632b9f24794fdcc24e" datatype="html">
|
||||
<source>
|
||||
Cancel
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Cancel download button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="322ed150e02666fe2259c5b4614eac7066f4ffa0" datatype="html">
|
||||
<source>
|
||||
Advanced
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Advanced download mode panel</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e" datatype="html">
|
||||
<source>
|
||||
Simulated command:
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Simulated command label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e4c721129466be9c3862294dc40241b64045998" datatype="html">
|
||||
<source>
|
||||
Use custom args
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use custom args checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ad2f8ac8b7de7945b80c8e424484da94e597125f" datatype="html">
|
||||
<source>Custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom args placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ccc7e92cbdd35e901acf9ad80941abee07bd8f60" datatype="html">
|
||||
<source>
|
||||
No need to include URL, just everything after.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom Args input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a92a3443c65a52f37ca7efb8f453b35dbefbf29" datatype="html">
|
||||
<source>
|
||||
Use custom output
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use custom output checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9c02face477f2f9cdaae318ccee5f89856851fb" datatype="html">
|
||||
<source>Custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom output placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">
|
||||
<source>Documentation</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube-dl output template documentation link</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="19d1ae64d94d28a29b2c57ae8671aace906b5401" datatype="html">
|
||||
<source>Path is relative to the config download path. Don't include extension.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom Output input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8fad10737d3e3735a6699a4d89cbf6c20f6bb55f" datatype="html">
|
||||
<source>
|
||||
Use authentication
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">139</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use authentication checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">
|
||||
<source>Username</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT Username placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">
|
||||
<source>Password</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT Password placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4a0dada6e841a425de3e5006e6a04df26c644fa5" datatype="html">
|
||||
<source>
|
||||
Audio
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="9779715ac05308973d8f1c8658b29b986e92450f" datatype="html">
|
||||
<source>
|
||||
Your audio files are here
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="47546e45bbb476baaaad38244db444c427ddc502" datatype="html">
|
||||
<source>Playlists</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlists title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78bd81adb4609b68cfa4c589222bdc233ba1faaa" datatype="html">
|
||||
<source>
|
||||
No playlists available. Create one from your downloading audio files by clicking the blue plus button.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No video playlists available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33" datatype="html">
|
||||
<source>
|
||||
Video
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="960582a8b9d7942716866ecfb7718309728f2916" datatype="html">
|
||||
<source>
|
||||
Your video files are here
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video files description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0f59c46ca29e9725898093c9ea6b586730d0624e" datatype="html">
|
||||
<source>
|
||||
No playlists available. Create one from your downloading video files by clicking the blue plus button.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No video playlists available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1" datatype="html">
|
||||
<source>ID:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/download-item/download-item.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">File or playlist ID</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e684046d73bcee88e82f7ff01e2852789a05fc32" datatype="html">
|
||||
<source>Count:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist video count</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
|
||||
<source>Settings</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">
|
||||
<source>Host</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Host settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">
|
||||
<source>URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">URL input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="54c512cca1923ab72faf1a0bd98d3d172469629a" datatype="html">
|
||||
<source>URL this app will be accessed from, without the port.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">URL setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cb2741a46e3560f6bc6dfd99d385e86b08b26d72" datatype="html">
|
||||
<source>Port</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Port input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="22e8f1d0423a3b784fe40fab187b92c06541b577" datatype="html">
|
||||
<source>The desired port. Default is 17442.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Port setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">
|
||||
<source>Encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Encryption settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cbe16a57be414e84b6a68309d08fad894df797d6" datatype="html">
|
||||
<source>Use encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use encryption setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0c1875a79b7ecc792cc1bebca3e063e40b5764f9" datatype="html">
|
||||
<source>Cert file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Cert file path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="736551b93461d2de64b118cf4043eee1d1c2cb2c" datatype="html">
|
||||
<source>Key file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Key file path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0ba25ad86a240576c4f20a2fada4722ebba77b1e" datatype="html">
|
||||
<source>Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Downloader settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ab2756805742e84ad0cc0468f4be2d8aa9f855a5" datatype="html">
|
||||
<source>Audio folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio folder path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca" datatype="html">
|
||||
<source>Path for audio only downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Aduio path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="46826331da1949bd6fb74624447057099c9d20cd" datatype="html">
|
||||
<source>Video folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video folder path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="17c92e6d47a213fa95b5aa344b3f258147123f93" datatype="html">
|
||||
<source>Path for video downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f41145afc02fd47ef0576ac79acd2c47ebbf4901" datatype="html">
|
||||
<source>Global custom args for downloads on the home page.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom args setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d5f69691f9f05711633128b5a3db696783266b58" datatype="html">
|
||||
<source>Extra</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Extra settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095" datatype="html">
|
||||
<source>Top title</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Top title input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78d3531417c0d4ba4c90f0d4ae741edc261ec8df" datatype="html">
|
||||
<source>File manager enabled</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">File manager enabled setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c33bd5392b39dbed36b8e5a1145163a15d45835f" datatype="html">
|
||||
<source>Allow quality select</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow quality seelct setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bda5508e24e0d77debb28bcd9194d8fefb1cfb92" datatype="html">
|
||||
<source>Download only mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download only mode setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="09d31c803a7252658694e1e3176b97f5655a3fe3" datatype="html">
|
||||
<source>Allow multi-download mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow multi-downloade mode setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">
|
||||
<source>API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">API settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d5d7c61349f3b0859336066e6d453fc35d334fe5" datatype="html">
|
||||
<source>Use YouTube API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use YouTube API setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ce10d31febb3d9d60c160750570310f303a22c22" datatype="html">
|
||||
<source>Youtube API Key</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube API Key setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8602e313cdfa7c4cc475ccbe86459fce3c3fd986" datatype="html">
|
||||
<source>Generating a key is easy!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube API Key setting hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="60c855c323706a04ccd2ff22d634bde9b6233bbf" datatype="html">
|
||||
<source>Themes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Themes settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">
|
||||
<source>Default</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Default theme label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Dark theme label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="7a6bacee4c31cb5c0ac2d24274fb4610d8858602" datatype="html">
|
||||
<source>Allow theme change</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">161</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow theme change setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="357064ca9d9ac859eb618e28e8126fa32be049e2" datatype="html">
|
||||
<source>Subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e3120311801c4acd18de7146add2ee4a4417773" datatype="html">
|
||||
<source>Allow subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow subscriptions setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4bee2a4bef2d26d37c9b353c278e24e5cd309ce3" datatype="html">
|
||||
<source>Subscriptions base path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions base path input setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc9892814ee2d119ae94378c905ea440a249b84a" datatype="html">
|
||||
<source>Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions base path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5bef4b25ba680da7fff06b86a91b1fc7e6a926e3" datatype="html">
|
||||
<source>Check interval</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Check interval input setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0f56a7449b77630c114615395bbda4cab398efd8" datatype="html">
|
||||
<source>Unit is seconds, only include numbers.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">188</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Check interval setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78e49b7339b4fa7184dd21bcaae107ce9b7076f6" datatype="html">
|
||||
<source>Use youtube-dl archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">192</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use youtube-dl archive setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f" datatype="html">
|
||||
<source>With youtube-dl's archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation prefix link</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="09006404cccc24b7a8f8d1ce0b39f2761ab841d8" datatype="html">
|
||||
<source>feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation middle</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="29ed79a98fc01e7f9537777598e31dbde3aa7981" datatype="html">
|
||||
<source>This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation suffix</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Advanced settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fab47f146b0a4b809dcebf3db9da94df6299ea1" datatype="html">
|
||||
<source>Use default downloading agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use default downloading agent setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1" datatype="html">
|
||||
<source>Custom agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom agent setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8" datatype="html">
|
||||
<source>Allow advanced download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow advanced downloading setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">
|
||||
<source>Save</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings save button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings cancel button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="92eee6be6de0b11c924e3ab27db30257159c0a7c" datatype="html">
|
||||
<source>Home</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Navigation menu Home Page title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f" datatype="html">
|
||||
<source>Save changes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/player/player.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist save changes button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9806cf78ce00eb2613eeca11354a97e033377b8" datatype="html">
|
||||
<source>Subscribe to playlist or channel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscribe dialog title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="93efc99ae087fc116de708ecd3ace86ca237cf30" datatype="html">
|
||||
<source>The playlist or channel URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription URL input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="08f5d0ef937ae17feb1b04aff15ad88911e87baf" datatype="html">
|
||||
<source>Custom name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription custom name placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7" datatype="html">
|
||||
<source>This is optional</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom name input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ea30873bd3f0d5e4fb2378eec3f0a1db77634a28" datatype="html">
|
||||
<source>Download all uploads</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download all uploads subscription setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="28a678e9cabf86e44c32594c43fa0e890135c20f" datatype="html">
|
||||
<source>Download videos uploaded in the last</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download time range prefix</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e78c0d60ac39787f62c9159646fe0b3c1ed55a1d" datatype="html">
|
||||
<source>Type:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription type property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c52db455cca9109ee47e1a612c3f4117c09eb71b" datatype="html">
|
||||
<source>URL:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription URL property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6" datatype="html">
|
||||
<source>Archive:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription ID property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">
|
||||
<source>Close</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Close subscription info button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8efc77bf327659c0fec1f518cf48a98cdcd9dddf" datatype="html">
|
||||
<source>Export Archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Export Archive button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3042bd3ad8dffcfeca5fd1ae6159fd1047434e95" datatype="html">
|
||||
<source>Unsubscribe</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Unsubscribe button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547" datatype="html">
|
||||
<source>Your subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="807cf11e6ac1cde912496f764c176bdfdd6b7e19" datatype="html">
|
||||
<source>Channels</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions channels title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="29b89f751593e1b347eef103891b7a1ff36ec03f" datatype="html">
|
||||
<source>Name not available. Channel retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription playlist not available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4636cd4a1379c50d471e98786098c4d39e1e82ad" datatype="html">
|
||||
<source>You have no channel subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No channel subscriptions text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e0a410652cb07d069f576b61eab32586a18320d" datatype="html">
|
||||
<source>Name not available. Playlist retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription playlist not available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="587b57ced54965d8874c3fd0e9dfedb987e5df04" datatype="html">
|
||||
<source>You have no playlist subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No playlist subscriptions text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016" datatype="html">
|
||||
<source>Search</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription videos search placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2054791b822475aeaea95c0119113de3200f5e1c" datatype="html">
|
||||
<source>Length:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video duration label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="94e01842dcee90531caa52e4147f70679bac87fe" datatype="html">
|
||||
<source>Delete and redownload</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Delete and redownload subscription video button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2031adb51e07a41844e8ba7704b054e98345c9c1" datatype="html">
|
||||
<source>Delete forever</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Delete forever subscription video button</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
106
src/assets/i18n/messages.es.json
Normal file
106
src/assets/i18n/messages.es.json
Normal file
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"17f0ea5d2d7a262b0e875acc70475f102aee84e6": "Crea una lista de reproducción",
|
||||
"cff1428d10d59d14e45edec3c735a27b5482db59": "Nombre",
|
||||
"f47e2d56dd8a145b2e9599da9730c049d52962a2": "Archivos de sonido",
|
||||
"a52dae09be10ca3a65da918533ced3d3f4992238": "Archivos de video",
|
||||
"038ebcb2a89155d90c24fa1c17bfe83dbadc3c20": "Descargador de Youtube",
|
||||
"6d2ec8898344c8955542b0542c942038ef28bb80": "Por favor entre una URL válida",
|
||||
"a38ae1082fec79ba1f379978337385a539a28e73": "Calidad",
|
||||
"4be966a9dcfbc9b54dfcc604b831c0289f847fa4": "Usa URL",
|
||||
"d3f02f845e62cebd75fde451ab8479d2a8ad784d": "Ver",
|
||||
"4a9889d36910edc8323d7bab60858ab3da6d91df": "Solo audio",
|
||||
"96a01fafe135afc58b0f8071a4ab00234495ce18": "Descarga múltiple",
|
||||
"6a21ba5fb0ac804a525bf9ab168038c3ee88e661": "Descarga",
|
||||
"6a3777f913cf3f288664f0632b9f24794fdcc24e": "Cancela",
|
||||
"322ed150e02666fe2259c5b4614eac7066f4ffa0": "Avanzado",
|
||||
"b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e": "Commando simulado:",
|
||||
"4e4c721129466be9c3862294dc40241b64045998": "Usar argumentos personalizados",
|
||||
"ad2f8ac8b7de7945b80c8e424484da94e597125f": "Argumentos personalizados",
|
||||
"ccc7e92cbdd35e901acf9ad80941abee07bd8f60": "No es necesario incluir URL, solo todo después",
|
||||
"3a92a3443c65a52f37ca7efb8f453b35dbefbf29": "Usar salida personalizada",
|
||||
"d9c02face477f2f9cdaae318ccee5f89856851fb": "Salida personalizada",
|
||||
"fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7": "Documentación",
|
||||
"19d1ae64d94d28a29b2c57ae8671aace906b5401": "La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.",
|
||||
"8fad10737d3e3735a6699a4d89cbf6c20f6bb55f": "Usa autenticación",
|
||||
"08c74dc9762957593b91f6eb5d65efdfc975bf48": "Nombre de usuario",
|
||||
"c32ef07f8803a223a83ed17024b38e8d82292407": "Contraseña",
|
||||
"4a0dada6e841a425de3e5006e6a04df26c644fa5": "Audio",
|
||||
"9779715ac05308973d8f1c8658b29b986e92450f": "Tus archivos de audio están aquí",
|
||||
"47546e45bbb476baaaad38244db444c427ddc502": "Listas de reproducción",
|
||||
"78bd81adb4609b68cfa4c589222bdc233ba1faaa": "No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.",
|
||||
"9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33": "Vídeo",
|
||||
"960582a8b9d7942716866ecfb7718309728f2916": "Tus archivos de video son aquí",
|
||||
"0f59c46ca29e9725898093c9ea6b586730d0624e": "No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.",
|
||||
"ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1": "ID:",
|
||||
"e684046d73bcee88e82f7ff01e2852789a05fc32": "Cuenta:",
|
||||
"121cc5391cd2a5115bc2b3160379ee5b36cd7716": "Configuraciones",
|
||||
"fe22ca53e651df951dac25b67c17894b0980f767": "Host",
|
||||
"801b98c6f02fe3b32f6afa3ee854c99ed83474e6": "URL",
|
||||
"54c512cca1923ab72faf1a0bd98d3d172469629a": "URL desde la que se accederá a esta aplicación, sin el puerto.",
|
||||
"cb2741a46e3560f6bc6dfd99d385e86b08b26d72": "Puerto",
|
||||
"22e8f1d0423a3b784fe40fab187b92c06541b577": "Puerto deseado. El valor predeterminado es 17442.",
|
||||
"948758e1412bb2ecdb98e3a4f1cbb6d7458456f2": "Cifrado",
|
||||
"cbe16a57be414e84b6a68309d08fad894df797d6": "Usa cifrado",
|
||||
"0c1875a79b7ecc792cc1bebca3e063e40b5764f9": "Ruta del archivo de certificado",
|
||||
"736551b93461d2de64b118cf4043eee1d1c2cb2c": "Ruta de archivo de clave",
|
||||
"0ba25ad86a240576c4f20a2fada4722ebba77b1e": "Descargador",
|
||||
"ab2756805742e84ad0cc0468f4be2d8aa9f855a5": "Ruta de la carpeta de audio",
|
||||
"c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca": "Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.",
|
||||
"46826331da1949bd6fb74624447057099c9d20cd": "Ruta de la carpeta de video",
|
||||
"17c92e6d47a213fa95b5aa344b3f258147123f93": "Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.",
|
||||
"f41145afc02fd47ef0576ac79acd2c47ebbf4901": "Argumentos personalizados globales para descargas en la página de inicio.",
|
||||
"d5f69691f9f05711633128b5a3db696783266b58": "Extra",
|
||||
"61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095": "Título superior",
|
||||
"78d3531417c0d4ba4c90f0d4ae741edc261ec8df": "Administrador de archivos habilitado",
|
||||
"c33bd5392b39dbed36b8e5a1145163a15d45835f": "Permitir selección de calidad",
|
||||
"bda5508e24e0d77debb28bcd9194d8fefb1cfb92": "Modo de solo descarga",
|
||||
"09d31c803a7252658694e1e3176b97f5655a3fe3": "Permitir el modo de descarga múltiple",
|
||||
"e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4": "API",
|
||||
"d5d7c61349f3b0859336066e6d453fc35d334fe5": "Utilizar la API de YouTube",
|
||||
"ce10d31febb3d9d60c160750570310f303a22c22": "Clave API de YouTube",
|
||||
"8602e313cdfa7c4cc475ccbe86459fce3c3fd986": "¡Generar una clave es fácil!",
|
||||
"60c855c323706a04ccd2ff22d634bde9b6233bbf": "Temas",
|
||||
"ff7cee38a2259526c519f878e71b964f41db4348": "Defecto",
|
||||
"adb4562d2dbd3584370e44496969d58c511ecb63": "Oscura",
|
||||
"7a6bacee4c31cb5c0ac2d24274fb4610d8858602": "Permitir cambio de tema",
|
||||
"357064ca9d9ac859eb618e28e8126fa32be049e2": "Suscripciones",
|
||||
"4e3120311801c4acd18de7146add2ee4a4417773": "Permitir suscripciones",
|
||||
"4bee2a4bef2d26d37c9b353c278e24e5cd309ce3": "Ruta base de suscripciones",
|
||||
"bc9892814ee2d119ae94378c905ea440a249b84a": "Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.",
|
||||
"5bef4b25ba680da7fff06b86a91b1fc7e6a926e3": "Intervalo de comprobación",
|
||||
"0f56a7449b77630c114615395bbda4cab398efd8": "La unidad es segundos, solo incluye números.",
|
||||
"78e49b7339b4fa7184dd21bcaae107ce9b7076f6": "Usa el archivo de youtube-dl",
|
||||
"fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f": "Con la función de archivo de youtube-dl,",
|
||||
"09006404cccc24b7a8f8d1ce0b39f2761ab841d8": "los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.",
|
||||
"29ed79a98fc01e7f9537777598e31dbde3aa7981": "Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.",
|
||||
"bc2e854e111ecf2bd7db170da5e3c2ed08181d88": "Avanzado",
|
||||
"5fab47f146b0a4b809dcebf3db9da94df6299ea1": "Usar agente de descarga predeterminado",
|
||||
"cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1": "Agente personalizado",
|
||||
"dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8": "Permitir descarga avanzada",
|
||||
"52c9a103b812f258bcddc3d90a6e3f46871d25fe": "Salvar",
|
||||
"d7b35c384aecd25a516200d6921836374613dfe7": "Cancelar",
|
||||
"92eee6be6de0b11c924e3ab27db30257159c0a7c": "Inicio",
|
||||
"5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f": "Guardar cambios",
|
||||
"a9806cf78ce00eb2613eeca11354a97e033377b8": "Suscríbase a la lista de reproducción o al canal",
|
||||
"93efc99ae087fc116de708ecd3ace86ca237cf30": "La lista de reproducción o la URL del canal",
|
||||
"08f5d0ef937ae17feb1b04aff15ad88911e87baf": "Nombre personalizado",
|
||||
"f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7": "Esto es opcional",
|
||||
"ea30873bd3f0d5e4fb2378eec3f0a1db77634a28": "Descargar todas las cargas",
|
||||
"28a678e9cabf86e44c32594c43fa0e890135c20f": "Descargar videos subidos en el último",
|
||||
"e78c0d60ac39787f62c9159646fe0b3c1ed55a1d": "Tipo:",
|
||||
"c52db455cca9109ee47e1a612c3f4117c09eb71b": "URL:",
|
||||
"a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6": "Archivo:",
|
||||
"f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8": "Cerca",
|
||||
"8efc77bf327659c0fec1f518cf48a98cdcd9dddf": "Exportar el archivo",
|
||||
"3042bd3ad8dffcfeca5fd1ae6159fd1047434e95": "Darse de baja",
|
||||
"e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547": "Sus suscripciones",
|
||||
"807cf11e6ac1cde912496f764c176bdfdd6b7e19": "Canales",
|
||||
"29b89f751593e1b347eef103891b7a1ff36ec03f": "Nombre no disponible. Recuperación de canales en progreso.",
|
||||
"4636cd4a1379c50d471e98786098c4d39e1e82ad": "No tienes suscripciones de canal.",
|
||||
"2e0a410652cb07d069f576b61eab32586a18320d": "Nombre no disponible. Recuperación de listas de reproducción en progreso.",
|
||||
"587b57ced54965d8874c3fd0e9dfedb987e5df04": "No tienes suscripciones a listas de reproducción.",
|
||||
"7e892ba15f2c6c17e83510e273b3e10fc32ea016": "Buscar",
|
||||
"2054791b822475aeaea95c0119113de3200f5e1c": "Duración:",
|
||||
"94e01842dcee90531caa52e4147f70679bac87fe": "Eliminar y volver a descargar",
|
||||
"2031adb51e07a41844e8ba7704b054e98345c9c1": "Borrar para siempre"
|
||||
}
|
||||
987
src/assets/i18n/messages.es.xlf
Normal file
987
src/assets/i18n/messages.es.xlf
Normal file
@@ -0,0 +1,987 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file datatype="plaintext" original="ng2.template" source-language="en">
|
||||
<body>
|
||||
<trans-unit datatype="html" id="17f0ea5d2d7a262b0e875acc70475f102aee84e6">
|
||||
<source>Create a playlist</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Create a playlist dialog title</note>
|
||||
<target>Crea una lista de reproducción</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cff1428d10d59d14e45edec3c735a27b5482db59">
|
||||
<source>Name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist name placeholder</note>
|
||||
<target>Nombre</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f47e2d56dd8a145b2e9599da9730c049d52962a2">
|
||||
<source>Audio files</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files title</note>
|
||||
<target>Archivos de sonido</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a52dae09be10ca3a65da918533ced3d3f4992238">
|
||||
<source>Videos</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Videos title</note>
|
||||
<target>Archivos de video</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="038ebcb2a89155d90c24fa1c17bfe83dbadc3c20">
|
||||
<source>Youtube Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube downloader home page label</note>
|
||||
<target>Descargador de Youtube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6d2ec8898344c8955542b0542c942038ef28bb80">
|
||||
<source>Please enter a valid URL!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Enter valid URL error</note>
|
||||
<target>Por favor entre una URL válida</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a38ae1082fec79ba1f379978337385a539a28e73">
|
||||
<source>Quality</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Quality select label</note>
|
||||
<target>Calidad</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4be966a9dcfbc9b54dfcc604b831c0289f847fa4">
|
||||
<source>Use URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT search Use URL button for searched video</note>
|
||||
<target>Usa URL</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d3f02f845e62cebd75fde451ab8479d2a8ad784d">
|
||||
<source>View</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT search View button for searched video</note>
|
||||
<target>Ver</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4a9889d36910edc8323d7bab60858ab3da6d91df">
|
||||
<source>Only Audio</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Only Audio checkbox</note>
|
||||
<target>Solo audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="96a01fafe135afc58b0f8071a4ab00234495ce18">
|
||||
<source>Multi-download Mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Multi-download Mode checkbox</note>
|
||||
<target>Descarga múltiple</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6a21ba5fb0ac804a525bf9ab168038c3ee88e661">
|
||||
<source>Download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Main download button</note>
|
||||
<target>Descarga</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6a3777f913cf3f288664f0632b9f24794fdcc24e">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Cancel download button</note>
|
||||
<target>Cancela</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="322ed150e02666fe2259c5b4614eac7066f4ffa0">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Advanced download mode panel</note>
|
||||
<target>Avanzado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e">
|
||||
<source>Simulated command:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Simulated command label</note>
|
||||
<target>Commando simulado:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4e4c721129466be9c3862294dc40241b64045998">
|
||||
<source>Use custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use custom args checkbox</note>
|
||||
<target>Usar argumentos personalizados</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ad2f8ac8b7de7945b80c8e424484da94e597125f">
|
||||
<source>Custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom args placeholder</note>
|
||||
<target>Argumentos personalizados</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ccc7e92cbdd35e901acf9ad80941abee07bd8f60">
|
||||
<source>No need to include URL, just everything after.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom Args input hint</note>
|
||||
<target>No es necesario incluir URL, solo todo después</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="3a92a3443c65a52f37ca7efb8f453b35dbefbf29">
|
||||
<source>Use custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use custom output checkbox</note>
|
||||
<target>Usar salida personalizada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d9c02face477f2f9cdaae318ccee5f89856851fb">
|
||||
<source>Custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom output placeholder</note>
|
||||
<target>Salida personalizada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7">
|
||||
<source>Documentation</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube-dl output template documentation link</note>
|
||||
<target>Documentación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="19d1ae64d94d28a29b2c57ae8671aace906b5401">
|
||||
<source>Path is relative to the config download path. Don't include extension.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom Output input hint</note>
|
||||
<target>La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8fad10737d3e3735a6699a4d89cbf6c20f6bb55f">
|
||||
<source>Use authentication</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">139</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use authentication checkbox</note>
|
||||
<target>Usa autenticación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="08c74dc9762957593b91f6eb5d65efdfc975bf48">
|
||||
<source>Username</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT Username placeholder</note>
|
||||
<target>Nombre de usuario</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c32ef07f8803a223a83ed17024b38e8d82292407">
|
||||
<source>Password</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT Password placeholder</note>
|
||||
<target>Contraseña</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4a0dada6e841a425de3e5006e6a04df26c644fa5">
|
||||
<source>Audio</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files title</note>
|
||||
<target>Audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="9779715ac05308973d8f1c8658b29b986e92450f">
|
||||
<source>Your audio files are here</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files description</note>
|
||||
<target>Tus archivos de audio están aquí</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="47546e45bbb476baaaad38244db444c427ddc502">
|
||||
<source>Playlists</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlists title</note>
|
||||
<target>Listas de reproducción</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78bd81adb4609b68cfa4c589222bdc233ba1faaa">
|
||||
<source>No playlists available. Create one from your downloading audio files by clicking the blue plus button.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No video playlists available text</note>
|
||||
<target>No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33">
|
||||
<source>Video</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video files title</note>
|
||||
<target>Vídeo</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="960582a8b9d7942716866ecfb7718309728f2916">
|
||||
<source>Your video files are here</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video files description</note>
|
||||
<target>Tus archivos de video son aquí</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0f59c46ca29e9725898093c9ea6b586730d0624e">
|
||||
<source>No playlists available. Create one from your downloading video files by clicking the blue plus button.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No video playlists available text</note>
|
||||
<target>No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1">
|
||||
<source>ID:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/download-item/download-item.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">File or playlist ID</note>
|
||||
<target>ID:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e684046d73bcee88e82f7ff01e2852789a05fc32">
|
||||
<source>Count:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist video count</note>
|
||||
<target>Cuenta:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="121cc5391cd2a5115bc2b3160379ee5b36cd7716">
|
||||
<source>Settings</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings title</note>
|
||||
<target>Configuraciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fe22ca53e651df951dac25b67c17894b0980f767">
|
||||
<source>Host</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Host settings title</note>
|
||||
<target>Host</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
|
||||
<source>URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">URL input placeholder</note>
|
||||
<target>URL</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="54c512cca1923ab72faf1a0bd98d3d172469629a">
|
||||
<source>URL this app will be accessed from, without the port.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">URL setting input hint</note>
|
||||
<target>URL desde la que se accederá a esta aplicación, sin el puerto.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cb2741a46e3560f6bc6dfd99d385e86b08b26d72">
|
||||
<source>Port</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Port input placeholder</note>
|
||||
<target>Puerto</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="22e8f1d0423a3b784fe40fab187b92c06541b577">
|
||||
<source>The desired port. Default is 17442.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Port setting input hint</note>
|
||||
<target>Puerto deseado. El valor predeterminado es 17442.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2">
|
||||
<source>Encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Encryption settings title</note>
|
||||
<target>Cifrado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cbe16a57be414e84b6a68309d08fad894df797d6">
|
||||
<source>Use encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use encryption setting</note>
|
||||
<target>Usa cifrado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0c1875a79b7ecc792cc1bebca3e063e40b5764f9">
|
||||
<source>Cert file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Cert file path input placeholder</note>
|
||||
<target>Ruta del archivo de certificado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="736551b93461d2de64b118cf4043eee1d1c2cb2c">
|
||||
<source>Key file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Key file path input placeholder</note>
|
||||
<target>Ruta de archivo de clave</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0ba25ad86a240576c4f20a2fada4722ebba77b1e">
|
||||
<source>Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Downloader settings title</note>
|
||||
<target>Descargador</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ab2756805742e84ad0cc0468f4be2d8aa9f855a5">
|
||||
<source>Audio folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio folder path input placeholder</note>
|
||||
<target>Ruta de la carpeta de audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca">
|
||||
<source>Path for audio only downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Aduio path setting input hint</note>
|
||||
<target>Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="46826331da1949bd6fb74624447057099c9d20cd">
|
||||
<source>Video folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video folder path input placeholder</note>
|
||||
<target>Ruta de la carpeta de video</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="17c92e6d47a213fa95b5aa344b3f258147123f93">
|
||||
<source>Path for video downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video path setting input hint</note>
|
||||
<target>Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f41145afc02fd47ef0576ac79acd2c47ebbf4901">
|
||||
<source>Global custom args for downloads on the home page.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom args setting input hint</note>
|
||||
<target>Argumentos personalizados globales para descargas en la página de inicio.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d5f69691f9f05711633128b5a3db696783266b58">
|
||||
<source>Extra</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Extra settings title</note>
|
||||
<target>Extra</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095">
|
||||
<source>Top title</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Top title input placeholder</note>
|
||||
<target>Título superior</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78d3531417c0d4ba4c90f0d4ae741edc261ec8df">
|
||||
<source>File manager enabled</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">File manager enabled setting</note>
|
||||
<target>Administrador de archivos habilitado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c33bd5392b39dbed36b8e5a1145163a15d45835f">
|
||||
<source>Allow quality select</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow quality seelct setting</note>
|
||||
<target>Permitir selección de calidad</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bda5508e24e0d77debb28bcd9194d8fefb1cfb92">
|
||||
<source>Download only mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download only mode setting</note>
|
||||
<target>Modo de solo descarga</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="09d31c803a7252658694e1e3176b97f5655a3fe3">
|
||||
<source>Allow multi-download mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow multi-downloade mode setting</note>
|
||||
<target>Permitir el modo de descarga múltiple</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4">
|
||||
<source>API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">API settings title</note>
|
||||
<target>API</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d5d7c61349f3b0859336066e6d453fc35d334fe5">
|
||||
<source>Use YouTube API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use YouTube API setting</note>
|
||||
<target>Utilizar la API de YouTube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ce10d31febb3d9d60c160750570310f303a22c22">
|
||||
<source>Youtube API Key</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube API Key setting placeholder</note>
|
||||
<target>Clave API de YouTube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8602e313cdfa7c4cc475ccbe86459fce3c3fd986">
|
||||
<source>Generating a key is easy!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube API Key setting hint</note>
|
||||
<target>¡Generar una clave es fácil!</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="60c855c323706a04ccd2ff22d634bde9b6233bbf">
|
||||
<source>Themes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Themes settings title</note>
|
||||
<target>Temas</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ff7cee38a2259526c519f878e71b964f41db4348">
|
||||
<source>Default</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Default theme label</note>
|
||||
<target>Defecto</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="adb4562d2dbd3584370e44496969d58c511ecb63">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Dark theme label</note>
|
||||
<target>Oscura</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="7a6bacee4c31cb5c0ac2d24274fb4610d8858602">
|
||||
<source>Allow theme change</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">161</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow theme change setting</note>
|
||||
<target>Permitir cambio de tema</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="357064ca9d9ac859eb618e28e8126fa32be049e2">
|
||||
<source>Subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions settings title</note>
|
||||
<target>Suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4e3120311801c4acd18de7146add2ee4a4417773">
|
||||
<source>Allow subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow subscriptions setting</note>
|
||||
<target>Permitir suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4bee2a4bef2d26d37c9b353c278e24e5cd309ce3">
|
||||
<source>Subscriptions base path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions base path input setting placeholder</note>
|
||||
<target>Ruta base de suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bc9892814ee2d119ae94378c905ea440a249b84a">
|
||||
<source>Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions base path setting input hint</note>
|
||||
<target>Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5bef4b25ba680da7fff06b86a91b1fc7e6a926e3">
|
||||
<source>Check interval</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Check interval input setting placeholder</note>
|
||||
<target>Intervalo de comprobación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0f56a7449b77630c114615395bbda4cab398efd8">
|
||||
<source>Unit is seconds, only include numbers.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">188</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Check interval setting input hint</note>
|
||||
<target>La unidad es segundos, solo incluye números.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78e49b7339b4fa7184dd21bcaae107ce9b7076f6">
|
||||
<source>Use youtube-dl archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">192</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use youtube-dl archive setting</note>
|
||||
<target>Usa el archivo de youtube-dl</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f">
|
||||
<source>With youtube-dl's archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation prefix link</note>
|
||||
<target>Con la función de archivo de youtube-dl,</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="09006404cccc24b7a8f8d1ce0b39f2761ab841d8">
|
||||
<source>feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation middle</note>
|
||||
<target>los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="29ed79a98fc01e7f9537777598e31dbde3aa7981">
|
||||
<source>This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation suffix</note>
|
||||
<target>Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Advanced settings title</note>
|
||||
<target>Avanzado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5fab47f146b0a4b809dcebf3db9da94df6299ea1">
|
||||
<source>Use default downloading agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use default downloading agent setting</note>
|
||||
<target>Usar agente de descarga predeterminado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1">
|
||||
<source>Custom agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom agent setting placeholder</note>
|
||||
<target>Agente personalizado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8">
|
||||
<source>Allow advanced download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow advanced downloading setting</note>
|
||||
<target>Permitir descarga avanzada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
|
||||
<source>Save</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings save button</note>
|
||||
<target>Salvar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d7b35c384aecd25a516200d6921836374613dfe7">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings cancel button</note>
|
||||
<target>Cancelar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="92eee6be6de0b11c924e3ab27db30257159c0a7c">
|
||||
<source>Home</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Navigation menu Home Page title</note>
|
||||
<target>Inicio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f">
|
||||
<source>Save changes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/player/player.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist save changes button</note>
|
||||
<target>Guardar cambios</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a9806cf78ce00eb2613eeca11354a97e033377b8">
|
||||
<source>Subscribe to playlist or channel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscribe dialog title</note>
|
||||
<target>Suscríbase a la lista de reproducción o al canal</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="93efc99ae087fc116de708ecd3ace86ca237cf30">
|
||||
<source>The playlist or channel URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription URL input hint</note>
|
||||
<target>La lista de reproducción o la URL del canal</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="08f5d0ef937ae17feb1b04aff15ad88911e87baf">
|
||||
<source>Custom name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription custom name placeholder</note>
|
||||
<target>Nombre personalizado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7">
|
||||
<source>This is optional</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom name input hint</note>
|
||||
<target>Esto es opcional</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ea30873bd3f0d5e4fb2378eec3f0a1db77634a28">
|
||||
<source>Download all uploads</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download all uploads subscription setting</note>
|
||||
<target>Descargar todas las cargas</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="28a678e9cabf86e44c32594c43fa0e890135c20f">
|
||||
<source>Download videos uploaded in the last</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download time range prefix</note>
|
||||
<target>Descargar videos subidos en el último</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e78c0d60ac39787f62c9159646fe0b3c1ed55a1d">
|
||||
<source>Type:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription type property</note>
|
||||
<target>Tipo:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c52db455cca9109ee47e1a612c3f4117c09eb71b">
|
||||
<source>URL:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription URL property</note>
|
||||
<target>URL:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6">
|
||||
<source>Archive:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription ID property</note>
|
||||
<target>Archivo:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8">
|
||||
<source>Close</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Close subscription info button</note>
|
||||
<target>Cerca</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8efc77bf327659c0fec1f518cf48a98cdcd9dddf">
|
||||
<source>Export Archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Export Archive button</note>
|
||||
<target>Exportar el archivo</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="3042bd3ad8dffcfeca5fd1ae6159fd1047434e95">
|
||||
<source>Unsubscribe</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Unsubscribe button</note>
|
||||
<target>Darse de baja</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547">
|
||||
<source>Your subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions title</note>
|
||||
<target>Sus suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="807cf11e6ac1cde912496f764c176bdfdd6b7e19">
|
||||
<source>Channels</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions channels title</note>
|
||||
<target>Canales</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="29b89f751593e1b347eef103891b7a1ff36ec03f">
|
||||
<source>Name not available. Channel retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription playlist not available text</note>
|
||||
<target>Nombre no disponible. Recuperación de canales en progreso.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4636cd4a1379c50d471e98786098c4d39e1e82ad">
|
||||
<source>You have no channel subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No channel subscriptions text</note>
|
||||
<target>No tienes suscripciones de canal.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2e0a410652cb07d069f576b61eab32586a18320d">
|
||||
<source>Name not available. Playlist retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription playlist not available text</note>
|
||||
<target>Nombre no disponible. Recuperación de listas de reproducción en progreso.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="587b57ced54965d8874c3fd0e9dfedb987e5df04">
|
||||
<source>You have no playlist subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No playlist subscriptions text</note>
|
||||
<target>No tienes suscripciones a listas de reproducción.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
|
||||
<source>Search</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription videos search placeholder</note>
|
||||
<target>Buscar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2054791b822475aeaea95c0119113de3200f5e1c">
|
||||
<source>Length:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video duration label</note>
|
||||
<target>Duración:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="94e01842dcee90531caa52e4147f70679bac87fe">
|
||||
<source>Delete and redownload</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Delete and redownload subscription video button</note>
|
||||
<target>Eliminar y volver a descargar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2031adb51e07a41844e8ba7704b054e98345c9c1">
|
||||
<source>Delete forever</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Delete forever subscription video button</note>
|
||||
<target>Borrar para siempre</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
987
src/locale/messages.es.xlf
Normal file
987
src/locale/messages.es.xlf
Normal file
@@ -0,0 +1,987 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
|
||||
<file datatype="plaintext" original="ng2.template" source-language="en">
|
||||
<body>
|
||||
<trans-unit datatype="html" id="17f0ea5d2d7a262b0e875acc70475f102aee84e6">
|
||||
<source>Create a playlist</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Create a playlist dialog title</note>
|
||||
<target>Crea una lista de reproducción</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cff1428d10d59d14e45edec3c735a27b5482db59">
|
||||
<source>Name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist name placeholder</note>
|
||||
<target>Nombre</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f47e2d56dd8a145b2e9599da9730c049d52962a2">
|
||||
<source>Audio files</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files title</note>
|
||||
<target>Archivos de sonido</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a52dae09be10ca3a65da918533ced3d3f4992238">
|
||||
<source>Videos</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Videos title</note>
|
||||
<target>Archivos de video</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="038ebcb2a89155d90c24fa1c17bfe83dbadc3c20">
|
||||
<source>Youtube Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube downloader home page label</note>
|
||||
<target>Descargador de Youtube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6d2ec8898344c8955542b0542c942038ef28bb80">
|
||||
<source>Please enter a valid URL!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Enter valid URL error</note>
|
||||
<target>Por favor entre una URL válida</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a38ae1082fec79ba1f379978337385a539a28e73">
|
||||
<source>Quality</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Quality select label</note>
|
||||
<target>Calidad</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4be966a9dcfbc9b54dfcc604b831c0289f847fa4">
|
||||
<source>Use URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT search Use URL button for searched video</note>
|
||||
<target>Usa URL</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d3f02f845e62cebd75fde451ab8479d2a8ad784d">
|
||||
<source>View</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT search View button for searched video</note>
|
||||
<target>Ver</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4a9889d36910edc8323d7bab60858ab3da6d91df">
|
||||
<source>Only Audio</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Only Audio checkbox</note>
|
||||
<target>Solo audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="96a01fafe135afc58b0f8071a4ab00234495ce18">
|
||||
<source>Multi-download Mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Multi-download Mode checkbox</note>
|
||||
<target>Descarga múltiple</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6a21ba5fb0ac804a525bf9ab168038c3ee88e661">
|
||||
<source>Download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Main download button</note>
|
||||
<target>Descarga</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="6a3777f913cf3f288664f0632b9f24794fdcc24e">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Cancel download button</note>
|
||||
<target>Cancela</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="322ed150e02666fe2259c5b4614eac7066f4ffa0">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Advanced download mode panel</note>
|
||||
<target>Avanzado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e">
|
||||
<source>Simulated command:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Simulated command label</note>
|
||||
<target>Commando simulado:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4e4c721129466be9c3862294dc40241b64045998">
|
||||
<source>Use custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use custom args checkbox</note>
|
||||
<target>Usar argumentos personalizados</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ad2f8ac8b7de7945b80c8e424484da94e597125f">
|
||||
<source>Custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom args placeholder</note>
|
||||
<target>Argumentos personalizados</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ccc7e92cbdd35e901acf9ad80941abee07bd8f60">
|
||||
<source>No need to include URL, just everything after.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom Args input hint</note>
|
||||
<target>No es necesario incluir URL, solo todo después</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="3a92a3443c65a52f37ca7efb8f453b35dbefbf29">
|
||||
<source>Use custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use custom output checkbox</note>
|
||||
<target>Usar salida personalizada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d9c02face477f2f9cdaae318ccee5f89856851fb">
|
||||
<source>Custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom output placeholder</note>
|
||||
<target>Salida personalizada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7">
|
||||
<source>Documentation</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube-dl output template documentation link</note>
|
||||
<target>Documentación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="19d1ae64d94d28a29b2c57ae8671aace906b5401">
|
||||
<source>Path is relative to the config download path. Don't include extension.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom Output input hint</note>
|
||||
<target>La ruta es relativa a la ruta de descarga de la config. No incluya el extensión.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8fad10737d3e3735a6699a4d89cbf6c20f6bb55f">
|
||||
<source>Use authentication</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">139</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use authentication checkbox</note>
|
||||
<target>Usa autenticación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="08c74dc9762957593b91f6eb5d65efdfc975bf48">
|
||||
<source>Username</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT Username placeholder</note>
|
||||
<target>Nombre de usuario</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c32ef07f8803a223a83ed17024b38e8d82292407">
|
||||
<source>Password</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">YT Password placeholder</note>
|
||||
<target>Contraseña</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4a0dada6e841a425de3e5006e6a04df26c644fa5">
|
||||
<source>Audio</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files title</note>
|
||||
<target>Audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="9779715ac05308973d8f1c8658b29b986e92450f">
|
||||
<source>Your audio files are here</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio files description</note>
|
||||
<target>Tus archivos de audio están aquí</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="47546e45bbb476baaaad38244db444c427ddc502">
|
||||
<source>Playlists</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlists title</note>
|
||||
<target>Listas de reproducción</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78bd81adb4609b68cfa4c589222bdc233ba1faaa">
|
||||
<source>No playlists available. Create one from your downloading audio files by clicking the blue plus button.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No video playlists available text</note>
|
||||
<target>No hay listas de reproducción disponibles. Cree uno de tus archivos de audio haciendo clic en el botón azul más.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33">
|
||||
<source>Video</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video files title</note>
|
||||
<target>Vídeo</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="960582a8b9d7942716866ecfb7718309728f2916">
|
||||
<source>Your video files are here</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video files description</note>
|
||||
<target>Tus archivos de video son aquí</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0f59c46ca29e9725898093c9ea6b586730d0624e">
|
||||
<source>No playlists available. Create one from your downloading video files by clicking the blue plus button.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No video playlists available text</note>
|
||||
<target>No hay listas de reproducción disponibles. Cree uno de tus archivos de video haciendo clic en el botón azul más.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1">
|
||||
<source>ID:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/download-item/download-item.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">File or playlist ID</note>
|
||||
<target>ID:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e684046d73bcee88e82f7ff01e2852789a05fc32">
|
||||
<source>Count:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist video count</note>
|
||||
<target>Cuenta:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="121cc5391cd2a5115bc2b3160379ee5b36cd7716">
|
||||
<source>Settings</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings title</note>
|
||||
<target>Configuraciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fe22ca53e651df951dac25b67c17894b0980f767">
|
||||
<source>Host</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Host settings title</note>
|
||||
<target>Host</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
|
||||
<source>URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">URL input placeholder</note>
|
||||
<target>URL</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="54c512cca1923ab72faf1a0bd98d3d172469629a">
|
||||
<source>URL this app will be accessed from, without the port.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">URL setting input hint</note>
|
||||
<target>URL desde la que se accederá a esta aplicación, sin el puerto.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cb2741a46e3560f6bc6dfd99d385e86b08b26d72">
|
||||
<source>Port</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Port input placeholder</note>
|
||||
<target>Puerto</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="22e8f1d0423a3b784fe40fab187b92c06541b577">
|
||||
<source>The desired port. Default is 17442.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Port setting input hint</note>
|
||||
<target>Puerto deseado. El valor predeterminado es 17442.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2">
|
||||
<source>Encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Encryption settings title</note>
|
||||
<target>Cifrado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cbe16a57be414e84b6a68309d08fad894df797d6">
|
||||
<source>Use encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use encryption setting</note>
|
||||
<target>Usa cifrado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0c1875a79b7ecc792cc1bebca3e063e40b5764f9">
|
||||
<source>Cert file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Cert file path input placeholder</note>
|
||||
<target>Ruta del archivo de certificado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="736551b93461d2de64b118cf4043eee1d1c2cb2c">
|
||||
<source>Key file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Key file path input placeholder</note>
|
||||
<target>Ruta de archivo de clave</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0ba25ad86a240576c4f20a2fada4722ebba77b1e">
|
||||
<source>Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Downloader settings title</note>
|
||||
<target>Descargador</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ab2756805742e84ad0cc0468f4be2d8aa9f855a5">
|
||||
<source>Audio folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Audio folder path input placeholder</note>
|
||||
<target>Ruta de la carpeta de audio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca">
|
||||
<source>Path for audio only downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Aduio path setting input hint</note>
|
||||
<target>Ruta para descargas de solo audio. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="46826331da1949bd6fb74624447057099c9d20cd">
|
||||
<source>Video folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video folder path input placeholder</note>
|
||||
<target>Ruta de la carpeta de video</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="17c92e6d47a213fa95b5aa344b3f258147123f93">
|
||||
<source>Path for video downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video path setting input hint</note>
|
||||
<target>Ruta de descarga de videos. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f41145afc02fd47ef0576ac79acd2c47ebbf4901">
|
||||
<source>Global custom args for downloads on the home page.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom args setting input hint</note>
|
||||
<target>Argumentos personalizados globales para descargas en la página de inicio.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d5f69691f9f05711633128b5a3db696783266b58">
|
||||
<source>Extra</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Extra settings title</note>
|
||||
<target>Extra</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095">
|
||||
<source>Top title</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Top title input placeholder</note>
|
||||
<target>Título superior</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78d3531417c0d4ba4c90f0d4ae741edc261ec8df">
|
||||
<source>File manager enabled</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">File manager enabled setting</note>
|
||||
<target>Administrador de archivos habilitado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c33bd5392b39dbed36b8e5a1145163a15d45835f">
|
||||
<source>Allow quality select</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow quality seelct setting</note>
|
||||
<target>Permitir selección de calidad</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bda5508e24e0d77debb28bcd9194d8fefb1cfb92">
|
||||
<source>Download only mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download only mode setting</note>
|
||||
<target>Modo de solo descarga</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="09d31c803a7252658694e1e3176b97f5655a3fe3">
|
||||
<source>Allow multi-download mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow multi-downloade mode setting</note>
|
||||
<target>Permitir el modo de descarga múltiple</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4">
|
||||
<source>API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">API settings title</note>
|
||||
<target>API</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d5d7c61349f3b0859336066e6d453fc35d334fe5">
|
||||
<source>Use YouTube API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use YouTube API setting</note>
|
||||
<target>Utilizar la API de YouTube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ce10d31febb3d9d60c160750570310f303a22c22">
|
||||
<source>Youtube API Key</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube API Key setting placeholder</note>
|
||||
<target>Clave API de YouTube</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8602e313cdfa7c4cc475ccbe86459fce3c3fd986">
|
||||
<source>Generating a key is easy!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Youtube API Key setting hint</note>
|
||||
<target>¡Generar una clave es fácil!</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="60c855c323706a04ccd2ff22d634bde9b6233bbf">
|
||||
<source>Themes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Themes settings title</note>
|
||||
<target>Temas</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ff7cee38a2259526c519f878e71b964f41db4348">
|
||||
<source>Default</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Default theme label</note>
|
||||
<target>Defecto</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="adb4562d2dbd3584370e44496969d58c511ecb63">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Dark theme label</note>
|
||||
<target>Oscura</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="7a6bacee4c31cb5c0ac2d24274fb4610d8858602">
|
||||
<source>Allow theme change</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">161</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow theme change setting</note>
|
||||
<target>Permitir cambio de tema</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="357064ca9d9ac859eb618e28e8126fa32be049e2">
|
||||
<source>Subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions settings title</note>
|
||||
<target>Suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4e3120311801c4acd18de7146add2ee4a4417773">
|
||||
<source>Allow subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow subscriptions setting</note>
|
||||
<target>Permitir suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4bee2a4bef2d26d37c9b353c278e24e5cd309ce3">
|
||||
<source>Subscriptions base path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions base path input setting placeholder</note>
|
||||
<target>Ruta base de suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bc9892814ee2d119ae94378c905ea440a249b84a">
|
||||
<source>Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions base path setting input hint</note>
|
||||
<target>Ruta base para videos de sus canales y listas de reproducción suscritos. Es relativo a la carpeta raíz de YTDL-Material.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5bef4b25ba680da7fff06b86a91b1fc7e6a926e3">
|
||||
<source>Check interval</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Check interval input setting placeholder</note>
|
||||
<target>Intervalo de comprobación</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="0f56a7449b77630c114615395bbda4cab398efd8">
|
||||
<source>Unit is seconds, only include numbers.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">188</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Check interval setting input hint</note>
|
||||
<target>La unidad es segundos, solo incluye números.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="78e49b7339b4fa7184dd21bcaae107ce9b7076f6">
|
||||
<source>Use youtube-dl archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">192</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use youtube-dl archive setting</note>
|
||||
<target>Usa el archivo de youtube-dl</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f">
|
||||
<source>With youtube-dl's archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation prefix link</note>
|
||||
<target>Con la función de archivo de youtube-dl,</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="09006404cccc24b7a8f8d1ce0b39f2761ab841d8">
|
||||
<source>feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation middle</note>
|
||||
<target>los videos descargados de sus suscripciones se graban en un archivo de texto en el subdirectorio del archivo de suscripciones.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="29ed79a98fc01e7f9537777598e31dbde3aa7981">
|
||||
<source>This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">youtube-dl archive explanation suffix</note>
|
||||
<target>Esto permite eliminar videos de sus suscripciones de forma permanente sin darse de baja y le permite grabar los videos que descargó en caso de pérdida de datos.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Advanced settings title</note>
|
||||
<target>Avanzado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5fab47f146b0a4b809dcebf3db9da94df6299ea1">
|
||||
<source>Use default downloading agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Use default downloading agent setting</note>
|
||||
<target>Usar agente de descarga predeterminado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1">
|
||||
<source>Custom agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom agent setting placeholder</note>
|
||||
<target>Agente personalizado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8">
|
||||
<source>Allow advanced download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Allow advanced downloading setting</note>
|
||||
<target>Permitir descarga avanzada</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
|
||||
<source>Save</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings save button</note>
|
||||
<target>Salvar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="d7b35c384aecd25a516200d6921836374613dfe7">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Settings cancel button</note>
|
||||
<target>Cancelar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="92eee6be6de0b11c924e3ab27db30257159c0a7c">
|
||||
<source>Home</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Navigation menu Home Page title</note>
|
||||
<target>Inicio</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f">
|
||||
<source>Save changes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/player/player.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Playlist save changes button</note>
|
||||
<target>Guardar cambios</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a9806cf78ce00eb2613eeca11354a97e033377b8">
|
||||
<source>Subscribe to playlist or channel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscribe dialog title</note>
|
||||
<target>Suscríbase a la lista de reproducción o al canal</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="93efc99ae087fc116de708ecd3ace86ca237cf30">
|
||||
<source>The playlist or channel URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription URL input hint</note>
|
||||
<target>La lista de reproducción o la URL del canal</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="08f5d0ef937ae17feb1b04aff15ad88911e87baf">
|
||||
<source>Custom name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription custom name placeholder</note>
|
||||
<target>Nombre personalizado</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7">
|
||||
<source>This is optional</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Custom name input hint</note>
|
||||
<target>Esto es opcional</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="ea30873bd3f0d5e4fb2378eec3f0a1db77634a28">
|
||||
<source>Download all uploads</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download all uploads subscription setting</note>
|
||||
<target>Descargar todas las cargas</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="28a678e9cabf86e44c32594c43fa0e890135c20f">
|
||||
<source>Download videos uploaded in the last</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Download time range prefix</note>
|
||||
<target>Descargar videos subidos en el último</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e78c0d60ac39787f62c9159646fe0b3c1ed55a1d">
|
||||
<source>Type:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription type property</note>
|
||||
<target>Tipo:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="c52db455cca9109ee47e1a612c3f4117c09eb71b">
|
||||
<source>URL:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription URL property</note>
|
||||
<target>URL:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6">
|
||||
<source>Archive:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription ID property</note>
|
||||
<target>Archivo:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8">
|
||||
<source>Close</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Close subscription info button</note>
|
||||
<target>Cerca</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="8efc77bf327659c0fec1f518cf48a98cdcd9dddf">
|
||||
<source>Export Archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Export Archive button</note>
|
||||
<target>Exportar el archivo</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="3042bd3ad8dffcfeca5fd1ae6159fd1047434e95">
|
||||
<source>Unsubscribe</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Unsubscribe button</note>
|
||||
<target>Darse de baja</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547">
|
||||
<source>Your subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions title</note>
|
||||
<target>Sus suscripciones</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="807cf11e6ac1cde912496f764c176bdfdd6b7e19">
|
||||
<source>Channels</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscriptions channels title</note>
|
||||
<target>Canales</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="29b89f751593e1b347eef103891b7a1ff36ec03f">
|
||||
<source>Name not available. Channel retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription playlist not available text</note>
|
||||
<target>Nombre no disponible. Recuperación de canales en progreso.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="4636cd4a1379c50d471e98786098c4d39e1e82ad">
|
||||
<source>You have no channel subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No channel subscriptions text</note>
|
||||
<target>No tienes suscripciones de canal.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2e0a410652cb07d069f576b61eab32586a18320d">
|
||||
<source>Name not available. Playlist retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription playlist not available text</note>
|
||||
<target>Nombre no disponible. Recuperación de listas de reproducción en progreso.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="587b57ced54965d8874c3fd0e9dfedb987e5df04">
|
||||
<source>You have no playlist subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">No playlist subscriptions text</note>
|
||||
<target>No tienes suscripciones a listas de reproducción.</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
|
||||
<source>Search</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Subscription videos search placeholder</note>
|
||||
<target>Buscar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2054791b822475aeaea95c0119113de3200f5e1c">
|
||||
<source>Length:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Video duration label</note>
|
||||
<target>Duración:</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="94e01842dcee90531caa52e4147f70679bac87fe">
|
||||
<source>Delete and redownload</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Delete and redownload subscription video button</note>
|
||||
<target>Eliminar y volver a descargar</target>
|
||||
</trans-unit>
|
||||
<trans-unit datatype="html" id="2031adb51e07a41844e8ba7704b054e98345c9c1">
|
||||
<source>Delete forever</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note from="description" priority="1">Delete forever subscription video button</note>
|
||||
<target>Borrar para siempre</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
919
src/locale/messages.xlf
Normal file
919
src/locale/messages.xlf
Normal file
@@ -0,0 +1,919 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<file source-language="en" datatype="plaintext" original="ng2.template">
|
||||
<body>
|
||||
<trans-unit id="17f0ea5d2d7a262b0e875acc70475f102aee84e6" datatype="html">
|
||||
<source>Create a playlist</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Create a playlist dialog title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">
|
||||
<source>Name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist name placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f47e2d56dd8a145b2e9599da9730c049d52962a2" datatype="html">
|
||||
<source>Audio files</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a52dae09be10ca3a65da918533ced3d3f4992238" datatype="html">
|
||||
<source>Videos</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/create-playlist/create-playlist.component.html</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Videos title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="038ebcb2a89155d90c24fa1c17bfe83dbadc3c20" datatype="html">
|
||||
<source>Youtube Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube downloader home page label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6d2ec8898344c8955542b0542c942038ef28bb80" datatype="html">
|
||||
<source>Please enter a valid URL!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Enter valid URL error</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a38ae1082fec79ba1f379978337385a539a28e73" datatype="html">
|
||||
<source>
|
||||
Quality
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Quality select label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4be966a9dcfbc9b54dfcc604b831c0289f847fa4" datatype="html">
|
||||
<source>Use URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT search Use URL button for searched video</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3f02f845e62cebd75fde451ab8479d2a8ad784d" datatype="html">
|
||||
<source>
|
||||
View
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT search View button for searched video</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4a9889d36910edc8323d7bab60858ab3da6d91df" datatype="html">
|
||||
<source>
|
||||
Only Audio
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Only Audio checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="96a01fafe135afc58b0f8071a4ab00234495ce18" datatype="html">
|
||||
<source>
|
||||
Multi-download Mode
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Multi-download Mode checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a21ba5fb0ac804a525bf9ab168038c3ee88e661" datatype="html">
|
||||
<source>
|
||||
Download
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Main download button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a3777f913cf3f288664f0632b9f24794fdcc24e" datatype="html">
|
||||
<source>
|
||||
Cancel
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Cancel download button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="322ed150e02666fe2259c5b4614eac7066f4ffa0" datatype="html">
|
||||
<source>
|
||||
Advanced
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Advanced download mode panel</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="b7ffe7c6586d6f3f18a9246806a7c7d5538ab43e" datatype="html">
|
||||
<source>
|
||||
Simulated command:
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Simulated command label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e4c721129466be9c3862294dc40241b64045998" datatype="html">
|
||||
<source>
|
||||
Use custom args
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use custom args checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ad2f8ac8b7de7945b80c8e424484da94e597125f" datatype="html">
|
||||
<source>Custom args</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">83</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom args placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ccc7e92cbdd35e901acf9ad80941abee07bd8f60" datatype="html">
|
||||
<source>
|
||||
No need to include URL, just everything after.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom Args input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a92a3443c65a52f37ca7efb8f453b35dbefbf29" datatype="html">
|
||||
<source>
|
||||
Use custom output
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use custom output checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9c02face477f2f9cdaae318ccee5f89856851fb" datatype="html">
|
||||
<source>Custom output</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom output placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">
|
||||
<source>Documentation</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube-dl output template documentation link</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="19d1ae64d94d28a29b2c57ae8671aace906b5401" datatype="html">
|
||||
<source>Path is relative to the config download path. Don't include extension.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom Output input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8fad10737d3e3735a6699a4d89cbf6c20f6bb55f" datatype="html">
|
||||
<source>
|
||||
Use authentication
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">139</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use authentication checkbox</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">
|
||||
<source>Username</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT Username placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">
|
||||
<source>Password</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">YT Password placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4a0dada6e841a425de3e5006e6a04df26c644fa5" datatype="html">
|
||||
<source>
|
||||
Audio
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="9779715ac05308973d8f1c8658b29b986e92450f" datatype="html">
|
||||
<source>
|
||||
Your audio files are here
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio files description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="47546e45bbb476baaaad38244db444c427ddc502" datatype="html">
|
||||
<source>Playlists</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlists title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78bd81adb4609b68cfa4c589222bdc233ba1faaa" datatype="html">
|
||||
<source>
|
||||
No playlists available. Create one from your downloading audio files by clicking the blue plus button.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No video playlists available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d2b62bb0b91e2e17fb4177a7e3d6756a2e6ee33" datatype="html">
|
||||
<source>
|
||||
Video
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video files title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="960582a8b9d7942716866ecfb7718309728f2916" datatype="html">
|
||||
<source>
|
||||
Your video files are here
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video files description</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0f59c46ca29e9725898093c9ea6b586730d0624e" datatype="html">
|
||||
<source>
|
||||
No playlists available. Create one from your downloading video files by clicking the blue plus button.
|
||||
</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/main/main.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No video playlists available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca3dbbc7f3e011bffe32a10a3ea45cc84f30ecf1" datatype="html">
|
||||
<source>ID:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/download-item/download-item.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">File or playlist ID</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e684046d73bcee88e82f7ff01e2852789a05fc32" datatype="html">
|
||||
<source>Count:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/file-card/file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist video count</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
|
||||
<source>Settings</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">
|
||||
<source>Host</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Host settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">
|
||||
<source>URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">URL input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="54c512cca1923ab72faf1a0bd98d3d172469629a" datatype="html">
|
||||
<source>URL this app will be accessed from, without the port.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">URL setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cb2741a46e3560f6bc6dfd99d385e86b08b26d72" datatype="html">
|
||||
<source>Port</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Port input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="22e8f1d0423a3b784fe40fab187b92c06541b577" datatype="html">
|
||||
<source>The desired port. Default is 17442.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Port setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">
|
||||
<source>Encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Encryption settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cbe16a57be414e84b6a68309d08fad894df797d6" datatype="html">
|
||||
<source>Use encryption</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use encryption setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0c1875a79b7ecc792cc1bebca3e063e40b5764f9" datatype="html">
|
||||
<source>Cert file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Cert file path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="736551b93461d2de64b118cf4043eee1d1c2cb2c" datatype="html">
|
||||
<source>Key file path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Key file path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0ba25ad86a240576c4f20a2fada4722ebba77b1e" datatype="html">
|
||||
<source>Downloader</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Downloader settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ab2756805742e84ad0cc0468f4be2d8aa9f855a5" datatype="html">
|
||||
<source>Audio folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Audio folder path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c2c89cdf45d46ea64d2ed2f9ac15dfa4d77e26ca" datatype="html">
|
||||
<source>Path for audio only downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Aduio path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="46826331da1949bd6fb74624447057099c9d20cd" datatype="html">
|
||||
<source>Video folder path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video folder path input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="17c92e6d47a213fa95b5aa344b3f258147123f93" datatype="html">
|
||||
<source>Path for video downloads. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f41145afc02fd47ef0576ac79acd2c47ebbf4901" datatype="html">
|
||||
<source>Global custom args for downloads on the home page.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom args setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d5f69691f9f05711633128b5a3db696783266b58" datatype="html">
|
||||
<source>Extra</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Extra settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="61f8fd90b5f8cb20c70371feb2ee5e1fac5a9095" datatype="html">
|
||||
<source>Top title</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Top title input placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78d3531417c0d4ba4c90f0d4ae741edc261ec8df" datatype="html">
|
||||
<source>File manager enabled</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">File manager enabled setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c33bd5392b39dbed36b8e5a1145163a15d45835f" datatype="html">
|
||||
<source>Allow quality select</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow quality seelct setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bda5508e24e0d77debb28bcd9194d8fefb1cfb92" datatype="html">
|
||||
<source>Download only mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download only mode setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="09d31c803a7252658694e1e3176b97f5655a3fe3" datatype="html">
|
||||
<source>Allow multi-download mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">116</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow multi-downloade mode setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">
|
||||
<source>API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">API settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d5d7c61349f3b0859336066e6d453fc35d334fe5" datatype="html">
|
||||
<source>Use YouTube API</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use YouTube API setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ce10d31febb3d9d60c160750570310f303a22c22" datatype="html">
|
||||
<source>Youtube API Key</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube API Key setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8602e313cdfa7c4cc475ccbe86459fce3c3fd986" datatype="html">
|
||||
<source>Generating a key is easy!</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Youtube API Key setting hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="60c855c323706a04ccd2ff22d634bde9b6233bbf" datatype="html">
|
||||
<source>Themes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Themes settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">
|
||||
<source>Default</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Default theme label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Dark theme label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="7a6bacee4c31cb5c0ac2d24274fb4610d8858602" datatype="html">
|
||||
<source>Allow theme change</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">161</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow theme change setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="357064ca9d9ac859eb618e28e8126fa32be049e2" datatype="html">
|
||||
<source>Subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4e3120311801c4acd18de7146add2ee4a4417773" datatype="html">
|
||||
<source>Allow subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow subscriptions setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4bee2a4bef2d26d37c9b353c278e24e5cd309ce3" datatype="html">
|
||||
<source>Subscriptions base path</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions base path input setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc9892814ee2d119ae94378c905ea440a249b84a" datatype="html">
|
||||
<source>Base path for videos from your subscribed channels and playlists. It is relative to YTDL-Material's root folder.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions base path setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5bef4b25ba680da7fff06b86a91b1fc7e6a926e3" datatype="html">
|
||||
<source>Check interval</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Check interval input setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="0f56a7449b77630c114615395bbda4cab398efd8" datatype="html">
|
||||
<source>Unit is seconds, only include numbers.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">188</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Check interval setting input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="78e49b7339b4fa7184dd21bcaae107ce9b7076f6" datatype="html">
|
||||
<source>Use youtube-dl archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">192</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use youtube-dl archive setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa9fe4255231dd1cc6b29d3d254a25cb7c764f0f" datatype="html">
|
||||
<source>With youtube-dl's archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation prefix link</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="09006404cccc24b7a8f8d1ce0b39f2761ab841d8" datatype="html">
|
||||
<source>feature, downloaded videos from your subscriptions get recorded in a text file in the subscriptions archive sub-directory.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">193</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation middle</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="29ed79a98fc01e7f9537777598e31dbde3aa7981" datatype="html">
|
||||
<source>This enables the ability to permanently delete videos from your subscriptions without unsubscribing, and allows you to record which videos you downloaded in case of data loss.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">youtube-dl archive explanation suffix</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">
|
||||
<source>Advanced</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">204</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Advanced settings title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fab47f146b0a4b809dcebf3db9da94df6299ea1" datatype="html">
|
||||
<source>Use default downloading agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Use default downloading agent setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="cdf75b1bdda80487e2ce1ff264ae171cbc5dc3b1" datatype="html">
|
||||
<source>Custom agent</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom agent setting placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="dc3d990391c944d1fbfc7cfb402f7b5e112fb3a8" datatype="html">
|
||||
<source>Allow advanced download</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Allow advanced downloading setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">
|
||||
<source>Save</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings save button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
<source>Cancel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Settings cancel button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="92eee6be6de0b11c924e3ab27db30257159c0a7c" datatype="html">
|
||||
<source>Home</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/app.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Navigation menu Home Page title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="5b3075e8dc3f3921ec316b0bd83b6d14a06c1a4f" datatype="html">
|
||||
<source>Save changes</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/player/player.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Playlist save changes button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9806cf78ce00eb2613eeca11354a97e033377b8" datatype="html">
|
||||
<source>Subscribe to playlist or channel</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">1</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscribe dialog title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="93efc99ae087fc116de708ecd3ace86ca237cf30" datatype="html">
|
||||
<source>The playlist or channel URL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription URL input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="08f5d0ef937ae17feb1b04aff15ad88911e87baf" datatype="html">
|
||||
<source>Custom name</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription custom name placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f3f62aa84d59f3a8b900cc9a7eec3ef279a7b4e7" datatype="html">
|
||||
<source>This is optional</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Custom name input hint</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="ea30873bd3f0d5e4fb2378eec3f0a1db77634a28" datatype="html">
|
||||
<source>Download all uploads</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download all uploads subscription setting</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="28a678e9cabf86e44c32594c43fa0e890135c20f" datatype="html">
|
||||
<source>Download videos uploaded in the last</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscribe-dialog/subscribe-dialog.component.html</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Download time range prefix</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e78c0d60ac39787f62c9159646fe0b3c1ed55a1d" datatype="html">
|
||||
<source>Type:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription type property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="c52db455cca9109ee47e1a612c3f4117c09eb71b" datatype="html">
|
||||
<source>URL:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription URL property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="a44d86aa1e6c20ced07aca3a7c081d8db9ded1c6" datatype="html">
|
||||
<source>Archive:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription ID property</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">
|
||||
<source>Close</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Close subscription info button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="8efc77bf327659c0fec1f518cf48a98cdcd9dddf" datatype="html">
|
||||
<source>Export Archive</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Export Archive button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="3042bd3ad8dffcfeca5fd1ae6159fd1047434e95" datatype="html">
|
||||
<source>Unsubscribe</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Unsubscribe button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="e2319dec5b4ccfb6ed9f55ccabd63650a8fdf547" datatype="html">
|
||||
<source>Your subscriptions</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="807cf11e6ac1cde912496f764c176bdfdd6b7e19" datatype="html">
|
||||
<source>Channels</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscriptions channels title</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="29b89f751593e1b347eef103891b7a1ff36ec03f" datatype="html">
|
||||
<source>Name not available. Channel retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription playlist not available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="4636cd4a1379c50d471e98786098c4d39e1e82ad" datatype="html">
|
||||
<source>You have no channel subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No channel subscriptions text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e0a410652cb07d069f576b61eab32586a18320d" datatype="html">
|
||||
<source>Name not available. Playlist retrieval in progress.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription playlist not available text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="587b57ced54965d8874c3fd0e9dfedb987e5df04" datatype="html">
|
||||
<source>You have no playlist subscriptions.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscriptions/subscriptions.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">No playlist subscriptions text</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016" datatype="html">
|
||||
<source>Search</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription/subscription.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Subscription videos search placeholder</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2054791b822475aeaea95c0119113de3200f5e1c" datatype="html">
|
||||
<source>Length:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Video duration label</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="94e01842dcee90531caa52e4147f70679bac87fe" datatype="html">
|
||||
<source>Delete and redownload</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Delete and redownload subscription video button</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="2031adb51e07a41844e8ba7704b054e98345c9c1" datatype="html">
|
||||
<source>Delete forever</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">app/subscription/subscription-file-card/subscription-file-card.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Delete forever subscription video button</note>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
34
src/main.ts
34
src/main.ts
@@ -1,12 +1,40 @@
|
||||
import '@angular/localize/init';
|
||||
|
||||
import { enableProdMode } from '@angular/core';
|
||||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||
import 'hammerjs';
|
||||
|
||||
import { AppModule } from './app/app.module';
|
||||
import { environment } from './environments/environment';
|
||||
|
||||
import { loadTranslations } from '@angular/localize';
|
||||
import { getTranslations, ParsedTranslationBundle } from '@locl/core';
|
||||
|
||||
if (environment.production) {
|
||||
enableProdMode();
|
||||
}
|
||||
|
||||
platformBrowserDynamic().bootstrapModule(AppModule);
|
||||
const locale = localStorage.getItem('locale');
|
||||
if (locale) {
|
||||
getTranslations(`./assets/i18n/messages.${locale}.json`).then(
|
||||
(data: ParsedTranslationBundle) => {
|
||||
loadTranslations(data as any);
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err => console.error(err));
|
||||
});
|
||||
}
|
||||
).catch(err => {
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err2 => console.error(err2));
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log('no locale');
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err => console.error(err));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
/***************************************************************************************************
|
||||
* Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
|
||||
*/
|
||||
import '@angular/localize/init';
|
||||
/**
|
||||
* This file includes polyfills needed by Angular and is loaded before the app.
|
||||
* You can add your own extra polyfills to this file.
|
||||
|
||||
@@ -5,8 +5,11 @@
|
||||
"baseUrl": "",
|
||||
"types": []
|
||||
},
|
||||
"exclude": [
|
||||
"test.ts",
|
||||
"**/*.spec.ts"
|
||||
"files": [
|
||||
"main.ts",
|
||||
"polyfills.ts"
|
||||
],
|
||||
"include": [
|
||||
"src/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user