From 3aea8eb2e7ee8fa53e05298030eaeef98d234797 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 7 Nov 2019 09:45:14 +0100 Subject: [PATCH] Try new worflow with french --- client/angular.json | 27 + client/package.json | 4 + .../{angular_en_US.xml => angular.en-US.xlf} | 766 +- .../{angular_fr_FR.xml => angular.fr-FR.xlf} | 942 +- client/src/locale/angular.xlf | 8474 +++++++++++++++++ client/src/locale/player.en-US.json | 1 + client/src/locale/player_fr_FR.json | 1 - client/src/locale/server.en-US.json | 1 + client/src/locale/server_fr_FR.json | 1 - ...{videojs_en_US.json => videojs.en-US.json} | 0 client/yarn.lock | 48 +- scripts/i18n/create-custom-files.ts | 73 +- scripts/i18n/generate.sh | 9 +- scripts/i18n/pull-hook.sh | 9 - 14 files changed, 9424 insertions(+), 932 deletions(-) rename client/src/locale/{angular_en_US.xml => angular.en-US.xlf} (88%) rename client/src/locale/{angular_fr_FR.xml => angular.fr-FR.xlf} (92%) create mode 100644 client/src/locale/angular.xlf create mode 100644 client/src/locale/player.en-US.json delete mode 100644 client/src/locale/player_fr_FR.json create mode 100644 client/src/locale/server.en-US.json delete mode 100644 client/src/locale/server_fr_FR.json rename client/src/locale/{videojs_en_US.json => videojs.en-US.json} (100%) diff --git a/client/angular.json b/client/angular.json index 950ac059e..bbe3d07b3 100644 --- a/client/angular.json +++ b/client/angular.json @@ -78,6 +78,13 @@ "with": "src/environments/environment.e2e.ts" } ] + }, + "fr_FR": { + "aot": true, + "outputPath": "dist/PeerTube-fr_FR", + "i18nFile": "src/i18n/messages.fr_FR.xlf", + "i18nFormat": "xlf", + "i18nLocale": "fr_FR" } } }, @@ -99,6 +106,9 @@ "e2e": { "browserTarget": "PeerTube:build:e2e", "proxyConfig": "e2e/proxy.config.json" + }, + "fr_FR": { + "browserTarget": "PeerTube:build:fr_FR" } } }, @@ -135,6 +145,23 @@ "**/node_modules/**" ] } + }, + "xliffmerge": { + "builder": "@ngx-i18nsupport/tooling:xliffmerge", + "options": { + "xliffmergeOptions": { + "i18nFormat": "xlf", + "srcDir": "src/locale", + "genDir": "src/locale", + "useSourceAsTarget": false, + "i18nBaseFile": "angular", + "defaultLanguage": "en-US", + "languages": [ + "en-US", + "fr-FR" + ] + } + } } } }, diff --git a/client/package.json b/client/package.json index 8da250886..aa0899bb5 100644 --- a/client/package.json +++ b/client/package.json @@ -48,6 +48,7 @@ "@angularclass/hmr": "^2.1.3", "@neos21/bootstrap3-glyphicons": "^1.0.1", "@ng-bootstrap/ng-bootstrap": "^5.1.0", + "@ngx-i18nsupport/ngx-i18nsupport": "^1.1.6", "@ngx-loading-bar/core": "^4.2.0", "@ngx-loading-bar/http-client": "^4.2.0", "@ngx-loading-bar/router": "^4.2.0", @@ -131,5 +132,8 @@ "webtorrent": "^0.107.16", "whatwg-fetch": "^3.0.0", "zone.js": "~0.10.0" + }, + "dependencies": { + "@ngx-i18nsupport/tooling": "^8.0.3" } } diff --git a/client/src/locale/angular_en_US.xml b/client/src/locale/angular.en-US.xlf similarity index 88% rename from client/src/locale/angular_en_US.xml rename to client/src/locale/angular.en-US.xlf index ceb323012..a60eeabaf 100644 --- a/client/src/locale/angular_en_US.xml +++ b/client/src/locale/angular.en-US.xlf @@ -1,6 +1,6 @@ - + CloseClose @@ -109,7 +109,7 @@ 49 - <x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>%<x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>% + %% node_modules/@ng-bootstrap/ng-bootstrap/progressbar/progressbar.d.ts 6 @@ -187,13 +187,13 @@ 63 - <x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/><x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/> + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts 71 - <x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/><x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/> + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts 72 @@ -212,17 +212,17 @@ - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> published a new video: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + published a new video: + - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> published a new video: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + published a new video: + src/app/shared/users/user-notifications.component.html @@ -230,17 +230,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been unblacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been unblacklisted + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been unblacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been unblacklisted + src/app/shared/users/user-notifications.component.html @@ -248,17 +248,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been blacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been blacklisted + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been blacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been blacklisted + src/app/shared/users/user-notifications.component.html @@ -266,17 +266,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>A new video abuse<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been created on video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoAbuse.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + A new video abuse has been created on video + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>A new video abuse<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been created on video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoAbuse.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + A new video abuse has been created on video + src/app/shared/users/user-notifications.component.html @@ -284,17 +284,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - The recently added video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>auto-blacklisted<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + The recently added video has been auto-blacklisted + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - The recently added video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>auto-blacklisted<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + The recently added video has been auto-blacklisted + src/app/shared/users/user-notifications.component.html @@ -302,17 +302,17 @@ - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> commented your video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + commented your video + - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> commented your video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + commented your video + src/app/shared/users/user-notifications.component.html @@ -320,17 +320,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been published - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been published + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been published - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video has been published + src/app/shared/users/user-notifications.component.html @@ -338,17 +338,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> succeeded - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video import succeeded + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> succeeded - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video import succeeded + src/app/shared/users/user-notifications.component.html @@ -356,17 +356,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> failed - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video import failed + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> failed - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your video import failed + src/app/shared/users/user-notifications.component.html @@ -374,17 +374,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - User <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.account.name }}"/> registered<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on your instance - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + User registered on your instance + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - User <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.account.name }}"/> registered<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on your instance - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + User registered on your instance + src/app/shared/users/user-notifications.component.html @@ -392,23 +392,23 @@ - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.follower.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> is following + + is following - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>your channel <x id="INTERPOLATION_1" equiv-text="{{ notification.actorFollow.following.displayName }}"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="START_TAG_NG-CONTAINER_1" ctype="x-ng-container" equiv-text="<ng-container>"/>your account<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + your channel + your account + - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.follower.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> is following + + is following - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>your channel <x id="INTERPOLATION_1" equiv-text="{{ notification.actorFollow.following.displayName }}"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="START_TAG_NG-CONTAINER_1" ctype="x-ng-container" equiv-text="<ng-container>"/>your account<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + your channel + your account + src/app/shared/users/user-notifications.component.html @@ -416,17 +416,17 @@ - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> mentioned you on <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>video <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + mentioned you on video + - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> mentioned you on <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>video <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + mentioned you on video + src/app/shared/users/user-notifications.component.html @@ -434,19 +434,19 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance has <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>a new follower<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> (<x id="INTERPOLATION" equiv-text="{{ notification.actorFollow?.follower.host }}"/>) - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> awaiting your approval<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your instance has a new follower () + awaiting your approval + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance has <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>a new follower<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> (<x id="INTERPOLATION" equiv-text="{{ notification.actorFollow?.follower.host }}"/>) - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> awaiting your approval<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your instance has a new follower () + awaiting your approval + src/app/shared/users/user-notifications.component.html @@ -454,17 +454,17 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance automatically followed <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.following.host }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your instance automatically followed + - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance automatically followed <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.following.host }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your instance automatically followed + src/app/shared/users/user-notifications.component.html @@ -592,11 +592,11 @@ - Your report will be sent to moderators of <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>. - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> It will be forwarded to origin instance <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/> too.<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Your report will be sent to moderators of . + It will be forwarded to origin instance too. - Your report will be sent to moderators of <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>. - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> It will be forwarded to origin instance <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/> too.<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Your report will be sent to moderators of . + It will be forwarded to origin instance too. src/app/shared/video/modals/video-report.component.html @@ -697,7 +697,7 @@ 7 - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views + views views src/app/shared/video/video-miniature.component.html 24 @@ -719,23 +719,23 @@ 46 - {VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videos} }{VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videos} } + {VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other { videos} }{VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other { videos} } src/app/shared/video-playlist/video-playlist-miniature.component.html 9 - <x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/> + - <x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/> + src/app/shared/video-playlist/video-playlist-miniature.component.html 22 - Updated <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/>Updated <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/> + Updated Updated src/app/shared/video-playlist/video-playlist-miniature.component.html 29 @@ -777,7 +777,7 @@ 15 - Delete from <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/>Delete from <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/> + Delete from Delete from src/app/shared/video-playlist/video-playlist-element-miniature.component.html 85 @@ -919,7 +919,7 @@ 36 - Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> + Subscribe with an account on Subscribe with an account on src/app/shared/user-subscription/subscribe-button.component.html 39 @@ -950,11 +950,11 @@ - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> - <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Remote subscribe + Remote interact - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> - <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Remote subscribe + Remote interact src/app/shared/user-subscription/remote-subscribe.component.html @@ -962,10 +962,10 @@ - You can subscribe to the channel via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there. - You can subscribe to the channel via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there. @@ -974,10 +974,10 @@ - You can interact with this via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there. - You can interact with this via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there. @@ -986,11 +986,11 @@ - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/>Default NSFW/sensitive videos policy<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - <x id="START_TAG_DIV_1" ctype="x-div" equiv-text="<div>"/>can be redefined by the users<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + Default NSFW/sensitive videos policy + can be redefined by the users - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/>Default NSFW/sensitive videos policy<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - <x id="START_TAG_DIV_1" ctype="x-div" equiv-text="<div>"/>can be redefined by the users<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + Default NSFW/sensitive videos policy + can be redefined by the users src/app/shared/instance/instance-features-table.component.html @@ -1034,9 +1034,9 @@ - Unlimited <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> per day)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Unlimited ( per day) - Unlimited <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> per day)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Unlimited ( per day) src/app/shared/instance/instance-features-table.component.html @@ -1201,13 +1201,13 @@ 26 - <x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/><x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/> + src/app/shared/menu/top-menu-dropdown.component.html 11 - (extensions: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)(extensions: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>) + (extensions: , max size: )(extensions: , max size: ) src/app/shared/images/preview-upload.component.html 12 @@ -1427,16 +1427,16 @@ 29 - <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> results<x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> results + results results src/app/search/search.component.html 5 - for <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + for - for <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + for src/app/search/search.component.html @@ -1445,10 +1445,10 @@ Filters - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Filters - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + src/app/search/search.component.html @@ -1465,7 +1465,7 @@ 28 - <x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers<x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers + subscribers subscribers src/app/search/search.component.html 44 @@ -1525,14 +1525,14 @@ 41 - Official PeerTube website (news, support, contribute...): <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>Official PeerTube website (news, support, contribute...): <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + Official PeerTube website (news, support, contribute...): https://joinpeertube.orgOfficial PeerTube website (news, support, contribute...): https://joinpeertube.org src/app/modal/welcome-modal.component.html 44 - Put your instance on the public PeerTube index: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://instances.joinpeertube.org/instances<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - Put your instance on the public PeerTube index: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://instances.joinpeertube.org/instances<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instances + Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instances src/app/modal/welcome-modal.component.html @@ -1546,12 +1546,12 @@ - Choosing your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance name<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>setting up a description<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, specifying <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>who you are<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, - why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you created your instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> and <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>how long<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> you plan to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>maintain your it<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Choosing your instance name, setting up a description, specifying who you are, + why you created your instance and how long you plan to maintain your it is very important for visitors to understand on what type of instance they are. - Choosing your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance name<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>setting up a description<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, specifying <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>who you are<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, - why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you created your instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> and <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>how long<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> you plan to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>maintain your it<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Choosing your instance name, setting up a description, specifying who you are, + why you created your instance and how long you plan to maintain your it is very important for visitors to understand on what type of instance they are. @@ -1560,16 +1560,16 @@ - If you want to open registrations, please decide what are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>your moderation rules<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, fill your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance - terms<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> - and specify the categories and languages you speak. This way, you will help users to register on <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>the - appropriate<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + If you want to open registrations, please decide what are your moderation rules, fill your instance + terms + and specify the categories and languages you speak. This way, you will help users to register on the + appropriate PeerTube instance. - If you want to open registrations, please decide what are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>your moderation rules<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, fill your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance - terms<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> - and specify the categories and languages you speak. This way, you will help users to register on <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>the - appropriate<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + If you want to open registrations, please decide what are your moderation rules, fill your instance + terms + and specify the categories and languages you speak. This way, you will help users to register on the + appropriate PeerTube instance. @@ -2066,10 +2066,10 @@ - Tags could be used to suggest relevant recommendations. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Tags could be used to suggest relevant recommendations. Press Enter to add a new tag. - Tags could be used to suggest relevant recommendations. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Tags could be used to suggest relevant recommendations. Press Enter to add a new tag. @@ -2201,7 +2201,7 @@ 33 - Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>) + Schedule publication ()Schedule publication () src/app/videos/+video-edit/shared/video-edit.component.html 122 @@ -2362,11 +2362,11 @@ - You can import any URL <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>supported by youtube-dl<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + You can import any URL supported by youtube-dl or URL that points to a raw MP4 file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. - You can import any URL <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>supported by youtube-dl<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + You can import any URL supported by youtube-dl or URL that points to a raw MP4 file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. @@ -2390,9 +2390,9 @@ - Congratulations, the video behind <x id="INTERPOLATION" equiv-text="{{ targetUrl }}"/> will be imported! You can already add information about this video. + Congratulations, the video behind will be imported! You can already add information about this video. - Congratulations, the video behind <x id="INTERPOLATION" equiv-text="{{ targetUrl }}"/> will be imported! You can already add information about this video. + Congratulations, the video behind will be imported! You can already add information about this video. src/app/videos/+video-edit/video-add-components/video-import-url.component.html @@ -2433,11 +2433,11 @@ Image that will be merged with your audio file. - <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + The chosen image will be definitive and cannot be modified. Image that will be merged with your audio file. - <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + The chosen image will be definitive and cannot be modified. @@ -2507,13 +2507,13 @@ 57 - Import <x id="INTERPOLATION" equiv-text="{{ videoName }}"/>Import <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> + Import Import src/app/videos/+video-edit/video-add.component.html 3 - Upload <x id="INTERPOLATION" equiv-text="{{ videoName }}"/>Upload <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> + Upload Upload src/app/videos/+video-edit/video-add.component.html 4 @@ -2538,9 +2538,9 @@ - Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/> + Update - Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/> + Update src/app/videos/+video-edit/video-update.component.html @@ -2682,9 +2682,9 @@ - This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>. + This video will be published on . - This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>. + This video will be published on . src/app/videos/+video-watch/video-watch.component.html @@ -2698,9 +2698,9 @@ - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views src/app/videos/+video-watch/video-watch.component.html @@ -2708,9 +2708,9 @@ - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views src/app/videos/+video-watch/video-watch.component.html @@ -2735,7 +2735,7 @@ 118 - By <x id="INTERPOLATION" equiv-text="{{ video.byAccount }}"/>By <x id="INTERPOLATION" equiv-text="{{ video.byAccount }}"/> + By By src/app/videos/+video-watch/video-watch.component.html 129 @@ -2823,7 +2823,7 @@ 17 - View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> repliesView all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies + View all repliesView all replies src/app/videos/+video-watch/comment/video-comments.component.html 55 @@ -3085,7 +3085,7 @@ 19 - Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Created Created src/app/+admin/follows/followers-list/followers-list.component.html 20 @@ -3177,7 +3177,7 @@ 6 - Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/> + Edit user Edit user src/app/+admin/users/user-edit/user-edit.component.html 2 @@ -3236,11 +3236,11 @@ - Transcoding is enabled on server. The video quota only take in account <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> video. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - At most, this user could use ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>. + Transcoding is enabled on server. The video quota only take in account original video. + At most, this user could use ~ . - Transcoding is enabled on server. The video quota only take in account <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> video. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - At most, this user could use ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>. + Transcoding is enabled on server. The video quota only take in account original video. + At most, this user could use ~ . src/app/+admin/users/user-edit/user-edit.component.html @@ -3335,13 +3335,13 @@ 19 - Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Username Username src/app/+admin/users/user-list/user-list.component.html 40 - Video quota <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Video quota <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Video quota Video quota src/app/+admin/users/user-list/user-list.component.html 42 @@ -3383,7 +3383,7 @@ 5 - <x id="INTERPOLATION" equiv-text="{{ autoBlacklistVideosEnabled ? 'Manually blacklisted videos' : 'Blacklisted videos' }}"/><x id="INTERPOLATION" equiv-text="{{ autoBlacklistVideosEnabled ? 'Manually blacklisted videos' : 'Blacklisted videos' }}"/> + src/app/+admin/moderation/moderation.component.html 7 @@ -3411,7 +3411,7 @@ 13 - Video name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Video name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Video name Video name src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html 8 @@ -3429,7 +3429,7 @@ 10 - Date <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Date <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Date Date src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html 11 @@ -3507,7 +3507,7 @@ 9 - State <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>State <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + State State src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html 11 @@ -3563,7 +3563,7 @@ 5 - Muted at <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/>Muted at <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Muted at Muted at src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html 9 @@ -3676,9 +3676,9 @@ - <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> <x id="ICU" equiv-text="{pagination.totalItems, plural, =1 {...} other {...}}"/> for "<x id="INTERPOLATION_1" equiv-text="{{ search }}"/>" + for "" - <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> <x id="ICU" equiv-text="{pagination.totalItems, plural, =1 {...} other {...}}"/> for "<x id="INTERPOLATION_1" equiv-text="{{ search }}"/>" + for "" src/app/+admin/plugins/plugin-search/plugin-search.component.html @@ -3702,9 +3702,9 @@ - This <x id="INTERPOLATION" equiv-text="{{ pluginTypeLabel }}"/> does not have settings. + This does not have settings. - This <x id="INTERPOLATION" equiv-text="{{ pluginTypeLabel }}"/> does not have settings. + This does not have settings. src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.html @@ -3824,10 +3824,10 @@ - Enabling it will allow other administrators to know that you are mainly federating sensitive content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Enabling it will allow other administrators to know that you are mainly federating sensitive content. Moreover, the NSFW checkbox on video upload will be automatically checked by default. - Enabling it will allow other administrators to know that you are mainly federating sensitive content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Enabling it will allow other administrators to know that you are mainly federating sensitive content. Moreover, the NSFW checkbox on video upload will be automatically checked by default. @@ -3842,9 +3842,9 @@ - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -4182,16 +4182,16 @@ - If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share. + If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance. Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://cards-dev.twitter.com/validator<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + https://cards-dev.twitter.com/validator to see if you instance is whitelisted. - If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share. + If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance. Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://cards-dev.twitter.com/validator<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + https://cards-dev.twitter.com/validator to see if you instance is whitelisted. @@ -4248,23 +4248,23 @@ - <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Requires ffmpeg >= 4.1 and multiplies videos storage by 2!<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Requires ffmpeg >= 4.1 and multiplies videos storage by 2! - <x id="START_PARAGRAPH" ctype="x-p" equiv-text="<p>"/>Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player:<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/> - <x id="START_UNORDERED_LIST" ctype="x-ul" equiv-text="<ul>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Resolution change is smoother<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Faster playback in particular with long videos<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>More stable playback (less bugs/infinite loading)<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="CLOSE_UNORDERED_LIST" ctype="x-ul" equiv-text="</ul>"/> + Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player: + + Resolution change is smoother + Faster playback in particular with long videos + More stable playback (less bugs/infinite loading) + - <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Requires ffmpeg >= 4.1 and multiplies videos storage by 2!<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Requires ffmpeg >= 4.1 and multiplies videos storage by 2! - <x id="START_PARAGRAPH" ctype="x-p" equiv-text="<p>"/>Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player:<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/> - <x id="START_UNORDERED_LIST" ctype="x-ul" equiv-text="<ul>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Resolution change is smoother<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Faster playback in particular with long videos<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>More stable playback (less bugs/infinite loading)<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="CLOSE_UNORDERED_LIST" ctype="x-ul" equiv-text="</ul>"/> + Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player: + + Resolution change is smoother + Faster playback in particular with long videos + More stable playback (less bugs/infinite loading) + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -4283,7 +4283,7 @@ 517 - Resolution <x id="INTERPOLATION" equiv-text="{{resolution.label}}"/> enabledResolution <x id="INTERPOLATION" equiv-text="{{resolution.label}}"/> enabled + Resolution enabledResolution enabled src/app/+admin/config/edit-custom-config/edit-custom-config.component.html 532 @@ -4326,9 +4326,9 @@ - Write JavaScript code directly.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/>Example: <x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>console.log('my instance is amazing');<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + Write JavaScript code directly.Example: console.log('my instance is amazing'); - Write JavaScript code directly.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/>Example: <x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>console.log('my instance is amazing');<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + Write JavaScript code directly.Example: console.log('my instance is amazing'); src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -4336,29 +4336,29 @@ - Write CSS code directly. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Write CSS code directly. Example: +#custom-css color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + - Prepend with <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>#custom-css<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> to override styles. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Prepend with #custom-css to override styles. Example: +#custom-css .logged-in-email color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + - Write CSS code directly. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Write CSS code directly. Example: +#custom-css color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + - Prepend with <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>#custom-css<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> to override styles. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Prepend with #custom-css to override styles. Example: +#custom-css .logged-in-email color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -4448,9 +4448,9 @@ - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html @@ -4494,9 +4494,9 @@ - Your current email is <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.email }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Your current email is - Your current email is <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.email }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Your current email is src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html @@ -4504,9 +4504,9 @@ - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.pendingEmail }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> is awaiting email verification + is awaiting email verification - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.pendingEmail }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> is awaiting email verification + is awaiting email verification src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html @@ -4591,10 +4591,10 @@ Created - <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Created - <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + src/app/+my-account/my-account-ownership/my-account-ownership.component.html @@ -4613,7 +4613,7 @@ 20 - <x id="INTERPOLATION" equiv-text="{{ videoChangeOwnership.status }}"/><x id="INTERPOLATION" equiv-text="{{ videoChangeOwnership.status }}"/> + src/app/+my-account/my-account-ownership/my-account-ownership.component.html 38 @@ -4635,7 +4635,7 @@ 10 - <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers<x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers + subscribers subscribers src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html 20 @@ -4695,7 +4695,7 @@ When you will upload a video in this channel, the video support field will be au 67 - <x id="INTERPOLATION" equiv-text="{{ actor.followersCount }}"/> subscribers<x id="INTERPOLATION" equiv-text="{{ actor.followersCount }}"/> subscribers + subscribers subscribers src/app/+my-account/shared/actor-avatar-info.component.html 10 @@ -4707,7 +4707,7 @@ When you will upload a video in this channel, the video support field will be au 15 - (extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>) + (extensions: , max size: )(extensions: , max size: ) src/app/+my-account/shared/actor-avatar-info.component.html 18 @@ -4737,7 +4737,7 @@ When you will upload a video in this channel, the video support field will be au 1 - Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> + Created by Created by src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html 18 @@ -4770,10 +4770,10 @@ When you will upload a video in this channel, the video support field will be au - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Delete history - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Delete history @@ -4788,10 +4788,10 @@ When you will upload a video in this channel, the video support field will be au - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Notification preferences - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Notification preferences @@ -4800,10 +4800,10 @@ When you will upload a video in this channel, the video support field will be au - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Mark all as read - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Mark all as read @@ -4860,9 +4860,9 @@ When you will upload a video in this channel, the video support field will be au - If you need help to use PeerTube, you can have a look at the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + If you need help to use PeerTube, you can have a look at the documentation. - If you need help to use PeerTube, you can have a look at the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + If you need help to use PeerTube, you can have a look at the documentation. src/app/+signup/shared/signup-success.component.html @@ -4949,7 +4949,7 @@ When you will upload a video in this channel, the video support field will be au 23 - <x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers<x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers + subscribers subscribers src/app/+accounts/accounts.component.html 31 @@ -4999,7 +4999,7 @@ When you will upload a video in this channel, the video support field will be au 16 - Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/>Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/> + Joined Joined src/app/+accounts/account-about/account-about.component.html 10 @@ -5017,16 +5017,16 @@ When you will upload a video in this channel, the video support field will be au 9 - Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/>Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/> + Created Created src/app/+video-channels/video-channel-about/video-channel-about.component.html 17 - Created <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> playlists + Created playlists - Created <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> playlists + Created playlists src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html @@ -5051,7 +5051,7 @@ When you will upload a video in this channel, the video support field will be au 9 - Contact <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> administratorContact <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> administrator + Contact administratorContact administrator src/app/+about/about-instance/contact-admin-modal.component.html 3 @@ -5081,7 +5081,7 @@ When you will upload a video in this channel, the video support field will be au 38 - About <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instanceAbout <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instance + About instanceAbout instance src/app/+about/about-instance/about-instance.component.html 5 @@ -5200,9 +5200,9 @@ When you will upload a video in this channel, the video support field will be au - It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + It is a free and open-source software, under the AGPLv3 licence. - It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + It is a free and open-source software, under the AGPLv3 licence. src/app/+about/about-peertube/about-peertube.component.html @@ -5210,9 +5210,9 @@ When you will upload a video in this channel, the video support field will be au - For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + For more information, please visit joinpeertube.org. - For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + For more information, please visit joinpeertube.org. src/app/+about/about-peertube/about-peertube.component.html @@ -5310,13 +5310,13 @@ When you will upload a video in this channel, the video support field will be au - Web peers are not publicly accessible: because we use WebRTC inside the web browser (<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>with the WebTorrent library<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>), the protocol is different from classic BitTorrent. + Web peers are not publicly accessible: because we use WebRTC inside the web browser (with the WebTorrent library), the protocol is different from classic BitTorrent. When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. - See <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more information + See this document for more information - Web peers are not publicly accessible: because we use WebRTC inside the web browser (<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>with the WebTorrent library<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>), the protocol is different from classic BitTorrent. + Web peers are not publicly accessible: because we use WebRTC inside the web browser (with the WebTorrent library), the protocol is different from classic BitTorrent. When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. - See <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more information + See this document for more information src/app/+about/about-peertube/about-peertube.component.html @@ -5510,10 +5510,10 @@ When you will upload a video in this channel, the video support field will be au - A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content. For example, you could decide to have a channel to publish your piano concerts, and another channel in which you publish your videos talking about ecology. - A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content. For example, you could decide to have a channel to publish your piano concerts, and another channel in which you publish your videos talking about ecology. @@ -5587,13 +5587,13 @@ When you will upload a video in this channel, the video support field will be au I am at least 16 years old and agree - to the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Terms<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> and to the <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>Code of Conduct<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + to the Terms + and to the Code of Conduct of this instance I am at least 16 years old and agree - to the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Terms<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> and to the <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>Code of Conduct<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + to the Terms + and to the Code of Conduct of this instance @@ -5644,7 +5644,7 @@ When you will upload a video in this channel, the video support field will be au - Published <x id="INTERPOLATION" equiv-text="{{total}}"/> videosPublished <x id="INTERPOLATION" equiv-text="{{total}}"/> videos + Published videosPublished videos src/app/+accounts/account-videos/account-videos.component.ts 1 @@ -5848,7 +5848,7 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{handle}}"/> accepted in instance followers<x id="INTERPOLATION" equiv-text="{{handle}}"/> accepted in instance followers + accepted in instance followers accepted in instance followers src/app/+admin/follows/followers-list/followers-list.component.ts 1 @@ -5869,7 +5869,7 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{handle}}"/> rejected from instance followers<x id="INTERPOLATION" equiv-text="{{handle}}"/> rejected from instance followers + rejected from instance followers rejected from instance followers src/app/+admin/follows/followers-list/followers-list.component.ts 1 @@ -5883,14 +5883,14 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{handle}}"/> removed from instance followers<x id="INTERPOLATION" equiv-text="{{handle}}"/> removed from instance followers + removed from instance followers removed from instance followers src/app/+admin/follows/followers-list/followers-list.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid<x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid + is not valid is not valid src/app/+admin/follows/following-add/following-add.component.ts 1 @@ -5911,7 +5911,7 @@ When you will upload a video in this channel, the video support field will be au - If you confirm, you will send a follow request to:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - If you confirm, you will send a follow request to:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - + If you confirm, you will send a follow request to: - If you confirm, you will send a follow request to: - src/app/+admin/follows/following-add/following-add.component.ts 1 @@ -5932,7 +5932,7 @@ When you will upload a video in this channel, the video support field will be au - Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>?Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>? + Do you really want to unfollow ?Do you really want to unfollow ? src/app/+admin/follows/following-list/following-list.component.ts 1 @@ -5946,7 +5946,7 @@ When you will upload a video in this channel, the video support field will be au - You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore.You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore. + You are not following anymore.You are not following anymore. src/app/+admin/follows/following-list/following-list.component.ts 1 @@ -5967,21 +5967,21 @@ When you will upload a video in this channel, the video support field will be au - Redundancy for <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/>Redundancy for <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/> + Redundancy for is Redundancy for is src/app/+admin/follows/shared/redundancy-checkbox.component.ts 1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by your instance.Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by your instance. + Account unmuted by your instance.Account unmuted by your instance. src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts 1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by your instance.Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by your instance. + Instance unmuted by your instance.Instance unmuted by your instance. src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts 1 @@ -6037,14 +6037,14 @@ When you will upload a video in this channel, the video support field will be au - Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from blacklist.Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from blacklist. + Video removed from blacklist.Video removed from blacklist. src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> videos removed from blacklist.<x id="INTERPOLATION" equiv-text="{{num}}"/> videos removed from blacklist. + videos removed from blacklist. videos removed from blacklist. src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.ts 1 @@ -6076,7 +6076,7 @@ When you will upload a video in this channel, the video support field will be au - Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist.Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist. + Video removed from the blacklist.Video removed from the blacklist. src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts 1 @@ -6101,28 +6101,28 @@ When you will upload a video in this channel, the video support field will be au - Update to <x id="INTERPOLATION" equiv-text="{{version}}"/>Update to <x id="INTERPOLATION" equiv-text="{{version}}"/> + Update to Update to src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts 1 - Do you really want to uninstall <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>?Do you really want to uninstall <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? + Do you really want to uninstall ?Do you really want to uninstall ? src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> uninstalled.<x id="INTERPOLATION" equiv-text="{{pluginName}}"/> uninstalled. + uninstalled. uninstalled. src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> updated.<x id="INTERPOLATION" equiv-text="{{pluginName}}"/> updated. + updated. updated. src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts 1 @@ -6143,14 +6143,14 @@ When you will upload a video in this channel, the video support field will be au - Install <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>?Install <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? + Install ?Install ? src/app/+admin/plugins/plugin-search/plugin-search.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> installed.<x id="INTERPOLATION" equiv-text="{{pluginName}}"/> installed. + installed. installed. src/app/+admin/plugins/plugin-search/plugin-search.component.ts 1 @@ -6250,14 +6250,14 @@ When you will upload a video in this channel, the video support field will be au - User <x id="INTERPOLATION" equiv-text="{{username}}"/> created.User <x id="INTERPOLATION" equiv-text="{{username}}"/> created. + User created.User created. src/app/+admin/users/user-edit/user-create.component.ts 1 - Password changed for user <x id="INTERPOLATION" equiv-text="{{username}}"/>.Password changed for user <x id="INTERPOLATION" equiv-text="{{username}}"/>. + Password changed for user .Password changed for user . src/app/+admin/users/user-edit/user-password.component.ts 1 @@ -6271,7 +6271,7 @@ When you will upload a video in this channel, the video support field will be au - User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated.User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated. + User updated.User updated. src/app/+admin/users/user-edit/user-update.component.ts 1 @@ -6285,7 +6285,7 @@ When you will upload a video in this channel, the video support field will be au - An email asking for password reset has been sent to <x id="INTERPOLATION" equiv-text="{{username}}"/>.An email asking for password reset has been sent to <x id="INTERPOLATION" equiv-text="{{username}}"/>. + An email asking for password reset has been sent to .An email asking for password reset has been sent to . src/app/+admin/users/user-edit/user-update.component.ts 1 @@ -6333,14 +6333,14 @@ When you will upload a video in this channel, the video support field will be au - Do you really want to unban <x id="INTERPOLATION" equiv-text="{{num}}"/> users?Do you really want to unban <x id="INTERPOLATION" equiv-text="{{num}}"/> users? + Do you really want to unban users?Do you really want to unban users? src/app/+admin/users/user-list/user-list.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users unbanned.<x id="INTERPOLATION" equiv-text="{{num}}"/> users unbanned. + users unbanned. users unbanned. src/app/+admin/users/user-list/user-list.component.ts 1 @@ -6365,21 +6365,21 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{num}}"/> users deleted.<x id="INTERPOLATION" equiv-text="{{num}}"/> users deleted. + users deleted. users deleted. src/app/+admin/users/user-list/user-list.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users email set as verified.<x id="INTERPOLATION" equiv-text="{{num}}"/> users email set as verified. + users email set as verified. users email set as verified. src/app/+admin/users/user-list/user-list.component.ts 1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted.Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted. + Account unmuted.Account unmuted. src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts 1 @@ -6390,7 +6390,7 @@ When you will upload a video in this channel, the video support field will be au - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted.Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted. + Instance unmuted.Instance unmuted. src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts 1 @@ -6640,7 +6640,7 @@ When you will upload a video in this channel, the video support field will be au - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created.Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created. + Video channel created.Video channel created. src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts 1 @@ -6654,56 +6654,56 @@ When you will upload a video in this channel, the video support field will be au - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated.Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated. + Video channel updated.Video channel updated. src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts 1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{channelDisplayName}}"/>? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name (<x id="INTERPOLATION_1" equiv-text="{{channelName}}"/>)!Do you really want to delete <x id="INTERPOLATION" equiv-text="{{channelDisplayName}}"/>? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name (<x id="INTERPOLATION_1" equiv-text="{{channelName}}"/>)! + Do you really want to delete ? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name ()!Do you really want to delete ? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name ()! src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts 1 - Please type the display name of the video channel (<x id="INTERPOLATION" equiv-text="{{displayName}}"/>) to confirmPlease type the display name of the video channel (<x id="INTERPOLATION" equiv-text="{{displayName}}"/>) to confirm + Please type the display name of the video channel () to confirmPlease type the display name of the video channel () to confirm src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts 1 - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted.Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted. + Video channel deleted.Video channel deleted. src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts 1 - Playlist <x id="INTERPOLATION" equiv-text="{{playlistName}}"/> created.Playlist <x id="INTERPOLATION" equiv-text="{{playlistName}}"/> created. + Playlist created.Playlist created. src/app/+my-account/my-account-video-playlists/my-account-video-playlist-create.component.ts 1 - Playlist <x id="INTERPOLATION" equiv-text="{{videoPlaylistName}}"/> updated.Playlist <x id="INTERPOLATION" equiv-text="{{videoPlaylistName}}"/> updated. + Playlist updated.Playlist updated. src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts 1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/>?Do you really want to delete <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/>? + Do you really want to delete ?Do you really want to delete ? src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts 1 - Playlist <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/> deleted.Playlist <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/> deleted. + Playlist deleted.Playlist deleted. src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts 1 @@ -6721,28 +6721,28 @@ When you will upload a video in this channel, the video support field will be au - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos?Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos? + Do you really want to delete videos?Do you really want to delete videos? src/app/+my-account/my-account-videos/my-account-videos.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted.<x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted. + videos deleted. videos deleted. src/app/+my-account/my-account-videos/my-account-videos.component.ts 1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>?Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>? + Do you really want to delete ?Do you really want to delete ? src/app/+my-account/my-account-videos/my-account-videos.component.ts 1 - Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted.Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted. + Video deleted.Video deleted. src/app/+my-account/my-account-videos/my-account-videos.component.ts 1 @@ -6823,14 +6823,14 @@ When you will upload a video in this channel, the video support field will be au - You are now logged in as <x id="INTERPOLATION" equiv-text="{{username}}"/>!You are now logged in as <x id="INTERPOLATION" equiv-text="{{username}}"/>! + You are now logged in as !You are now logged in as ! src/app/+signup/+register/register.component.ts 1 - An email with verification link will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>.An email with verification link will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>. + An email with verification link will be sent to .An email with verification link will be sent to . src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts 1 @@ -6943,8 +6943,8 @@ When you will upload a video in this channel, the video support field will be au - Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>. -Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>. + Cannot retrieve OAuth Client credentials: . +Cannot retrieve OAuth Client credentials: . src/app/core/auth/auth.service.ts @@ -6994,7 +6994,7 @@ When you will upload a video in this channel, the video support field will be au - An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>.An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>. + An email with the reset password instructions will be sent to .An email with the reset password instructions will be sent to . src/app/login/login.component.ts 1 @@ -7082,77 +7082,77 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago + years ago years ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago + months ago months ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago + month ago month ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago + weeks ago weeks ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago + week ago week ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago + days ago days ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago + day ago day ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago + hours ago hours ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago + hour ago hour ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago + min ago min ago src/app/shared/angular/from-now.pipe.ts 1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago<x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago + sec ago sec ago src/app/shared/angular/from-now.pipe.ts 1 @@ -7841,7 +7841,7 @@ When you will upload a video in this channel, the video support field will be au - PeerTube cannot handle this kind of file. Accepted extensions are <x id="INTERPOLATION" equiv-text="{{extensions}}"/>.PeerTube cannot handle this kind of file. Accepted extensions are <x id="INTERPOLATION" equiv-text="{{extensions}}"/>. + PeerTube cannot handle this kind of file. Accepted extensions are .PeerTube cannot handle this kind of file. Accepted extensions are . src/app/shared/forms/reactive-file.component.ts 1 @@ -8228,7 +8228,7 @@ When you will upload a video in this channel, the video support field will be au - ~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/> + ~ ~ src/app/shared/instance/instance-features-table.component.ts 1 @@ -8242,28 +8242,28 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos<x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos + of full HD videos of full HD videos src/app/shared/instance/instance-features-table.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos<x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos + of HD videos of HD videos src/app/shared/instance/instance-features-table.component.ts 1 - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos<x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos + of average quality videos of average quality videos src/app/shared/instance/instance-features-table.component.ts 1 - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> compatible that supports:<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> compatible that supports: + Markdown compatible that supports:Markdown compatible that supports: src/app/shared/misc/help.component.ts 1 @@ -8305,28 +8305,28 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{num}}"/> users banned.<x id="INTERPOLATION" equiv-text="{{num}}"/> users banned. + users banned. users banned. src/app/shared/moderation/user-ban-modal.component.ts 1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned.User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned. + User banned.User banned. src/app/shared/moderation/user-ban-modal.component.ts 1 - Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>?Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>? + Do you really want to unban ?Do you really want to unban ? src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned.User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned. + User unbanned.User unbanned. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 @@ -8340,56 +8340,56 @@ When you will upload a video in this channel, the video support field will be au - User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted. + User deleted.User deleted. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> email set as verifiedUser <x id="INTERPOLATION" equiv-text="{{username}}"/> email set as verified + User email set as verifiedUser email set as verified src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted.Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted. + Account muted.Account muted. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted.Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted. + Instance muted.Instance muted. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted by the instance.Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted by the instance. + Account muted by the instance.Account muted by the instance. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by the instance.Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by the instance. + Account unmuted by the instance.Account unmuted by the instance. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted by the instance.Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted by the instance. + Instance muted by the instance.Instance muted by the instance. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by the instance.Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by the instance. + Instance unmuted by the instance.Instance unmuted by the instance. src/app/shared/moderation/user-moderation-dropdown.component.ts 1 @@ -8459,7 +8459,7 @@ When you will upload a video in this channel, the video support field will be au - Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes.Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes. + Too many attempts, please try again after minutes.Too many attempts, please try again after minutes. src/app/shared/rest/rest-extractor.service.ts 1 @@ -8480,7 +8480,7 @@ When you will upload a video in this channel, the video support field will be au - Subscribed to <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/>Subscribed to <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> + Subscribed to Subscribed to src/app/shared/user-subscription/subscribe-button.component.ts 1 @@ -8494,7 +8494,7 @@ When you will upload a video in this channel, the video support field will be au - Unsubscribed from <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/>Unsubscribed from <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> + Unsubscribed from Unsubscribed from src/app/shared/user-subscription/subscribe-button.component.ts 1 @@ -8515,7 +8515,7 @@ When you will upload a video in this channel, the video support field will be au - Video removed from <x id="INTERPOLATION" equiv-text="{{name}}"/>Video removed from <x id="INTERPOLATION" equiv-text="{{name}}"/> + Video removed from Video removed from src/app/shared/video-playlist/video-add-to-playlist.component.ts 1 @@ -8526,14 +8526,14 @@ When you will upload a video in this channel, the video support field will be au - Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/> at timestamps <x id="INTERPOLATION_1" equiv-text="{{t}}"/>Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/> at timestamps <x id="INTERPOLATION_1" equiv-text="{{t}}"/> + Video added in at timestamps Video added in at timestamps src/app/shared/video-playlist/video-add-to-playlist.component.ts 1 - Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/>Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/> + Video added in Video added in src/app/shared/video-playlist/video-add-to-playlist.component.ts 1 @@ -8713,7 +8713,7 @@ When you will upload a video in this channel, the video support field will be au - Upload <x id="INTERPOLATION" equiv-text="{{videofileName}}"/>Upload <x id="INTERPOLATION" equiv-text="{{videofileName}}"/> + Upload Upload src/app/videos/+video-edit/video-add-components/video-upload.component.ts 1 @@ -8734,14 +8734,14 @@ When you will upload a video in this channel, the video support field will be au - Your video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>)Your video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>) + Your video quota is exceeded with this video (video size: , used: , quota: )Your video quota is exceeded with this video (video size: , used: , quota: ) src/app/videos/+video-edit/video-add-components/video-upload.component.ts 1 - Your daily video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>)Your daily video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>) + Your daily video quota is exceeded with this video (video size: , used: , quota: )Your daily video quota is exceeded with this video (video size: , used: , quota: ) src/app/videos/+video-edit/video-add-components/video-upload.component.ts 1 @@ -8762,7 +8762,7 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too. <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too. + replies will be deleted too. replies will be deleted too. src/app/videos/+video-watch/comment/video-comments.component.ts 1 @@ -8783,7 +8783,7 @@ When you will upload a video in this channel, the video support field will be au - <x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes<x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes + likes / dislikes likes / dislikes src/app/videos/+video-watch/video-watch.component.ts 1 @@ -8839,14 +8839,14 @@ When you will upload a video in this channel, the video support field will be au - Trending for the last <x id="INTERPOLATION" equiv-text="{{days}}"/> daysTrending for the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days + Trending for the last daysTrending for the last days src/app/videos/video-list/video-trending.component.ts 1 - Trending videos are those totalizing the greatest number of views during the last <x id="INTERPOLATION" equiv-text="{{days}}"/> daysTrending videos are those totalizing the greatest number of views during the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days + Trending videos are those totalizing the greatest number of views during the last daysTrending videos are those totalizing the greatest number of views during the last days src/app/videos/video-list/video-trending.component.ts 1 diff --git a/client/src/locale/angular_fr_FR.xml b/client/src/locale/angular.fr-FR.xlf similarity index 92% rename from client/src/locale/angular_fr_FR.xml rename to client/src/locale/angular.fr-FR.xlf index 00dc474ad..8ba061be2 100644 --- a/client/src/locale/angular_fr_FR.xml +++ b/client/src/locale/angular.fr-FR.xlf @@ -109,8 +109,8 @@ node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts49 - <x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>% - % + % + <x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>% 6 @@ -200,15 +200,15 @@ node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts63 - <x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/> - + + <x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/> 71 node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts71 - <x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/> - + + <x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/> 72 @@ -229,18 +229,18 @@ src/app/shared/users/user-notifications.component.html1 - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> published a new video: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - a publié une nouvelle vidéo: + published a new video: + + + <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> a publié une nouvelle vidéo: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 7 @@ -248,18 +248,18 @@ src/app/shared/users/user-notifications.component.html7 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been unblacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Votre vidéo a été enlevée de la liste noire + Your video has been unblacklisted + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + Votre vidéo <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a été enlevée de la liste noire + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 15 @@ -267,18 +267,18 @@ src/app/shared/users/user-notifications.component.html15 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been blacklisted - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Votre vidéo a été placé en liste noire. + Your video has been blacklisted + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + Votre vidéo <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a été placé en liste noire. + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 23 @@ -286,18 +286,18 @@ src/app/shared/users/user-notifications.component.html23 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>A new video abuse<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been created on video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoAbuse.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Un nouveau signalement a été crée sur la vidéo + A new video abuse has been created on video + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Un nouveau signalement<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a été crée sur la vidéo <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoAbuse.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 31 @@ -305,18 +305,18 @@ src/app/shared/users/user-notifications.component.html31 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - The recently added video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>auto-blacklisted<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - La vidéo récemment ajoutée a été automatiquement mise sur liste noire + The recently added video has been auto-blacklisted + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + La vidéo récemment ajoutée <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a été automatiquement mise sur <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>liste noire<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 39 @@ -324,18 +324,18 @@ src/app/shared/users/user-notifications.component.html39 - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> commented your video <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - a commenté votre vidéo + commented your video + + + <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a commenté votre vidéo <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 47 @@ -343,18 +343,18 @@ src/app/shared/users/user-notifications.component.html47 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your video <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> has been published - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Votre vidéo a été publié + Your video has been published + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + Votre vidéo <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> a été publié + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 55 @@ -362,18 +362,18 @@ src/app/shared/users/user-notifications.component.html55 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> succeeded - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Votre vidéo a bien été importé + Your video import succeeded + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Votre vidéo<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> a bien été importé + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 63 @@ -381,18 +381,18 @@ src/app/shared/users/user-notifications.component.html63 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Your video import<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> failed - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - L'import de votre vidéo n'a pas fonctionné + Your video import failed + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>L'import de votre vidéo<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> <x id="INTERPOLATION" equiv-text="{{ notification.videoImportIdentifier }}"/> n'a pas fonctionné + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 71 @@ -400,18 +400,18 @@ src/app/shared/users/user-notifications.component.html71 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - User <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.account.name }}"/> registered<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on your instance - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - User enregistré sur votre instance + User registered on your instance + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + User <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.account.name }}"/> enregistré<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> sur votre instance + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 79 @@ -419,24 +419,24 @@ src/app/shared/users/user-notifications.component.html79 - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.follower.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> is following + + is following - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>your channel <x id="INTERPOLATION_1" equiv-text="{{ notification.actorFollow.following.displayName }}"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="START_TAG_NG-CONTAINER_1" ctype="x-ng-container" equiv-text="<ng-container>"/>your account<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + your channel + your account + - + <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> - - suit + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.follower.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> suit - votre chaîne - votre compte - + <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>votre chaîne <x id="INTERPOLATION_1" equiv-text="{{ notification.actorFollow.following.displayName }}"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + <x id="START_TAG_NG-CONTAINER_1" ctype="x-ng-container" equiv-text="<ng-container>"/>votre compte<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 87 @@ -444,30 +444,30 @@ src/app/shared/users/user-notifications.component.html87 - <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> mentioned you on <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>video <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - vous a mentionné sur cette vidéo + mentioned you on video + + + <x id="TAG_IMG" ctype="image" equiv-text="<img/>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> vous a mentionné sur cette <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>vidéo <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 98 src/app/shared/users/user-notifications.component.html98 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance has <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>a new follower<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> (<x id="INTERPOLATION" equiv-text="{{ notification.actorFollow?.follower.host }}"/>) - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> awaiting your approval<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + + Your instance has a new follower () + awaiting your approval + src/app/shared/users/user-notifications.component.html @@ -476,18 +476,18 @@ - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> - - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> - Your instance automatically followed <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.following.host }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - - - Votre instance a automatiquement suivi + Your instance automatically followed + + + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/> + Votre instance a automatiquement suivi <x id="START_LINK" ctype="x-a" equiv-text="<a>"/><x id="INTERPOLATION" equiv-text="{{ notification.actorFollow.following.host }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 115 @@ -583,12 +583,12 @@ src/app/shared/video/modals/video-report.component.html3 - Your report will be sent to moderators of <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>. - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> It will be forwarded to origin instance <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/> too.<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Your report will be sent to moderators of . + It will be forwarded to origin instance too. - Votre signalement sera envoyé aux modérateurs de . - Il sera également transmis à l'instance d'origine + Votre signalement sera envoyé aux modérateurs de <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>. + <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> Il sera également transmis à l'instance d'origine <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> 9 @@ -648,8 +648,8 @@ src/app/shared/video/video-miniature.component.html13src/app/shared/video-playlist/video-playlist-element-miniature.component.html33src/app/videos/+video-watch/video-watch-playlist.component.html7 - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views - vues + views + <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> vues 24 @@ -673,26 +673,26 @@ src/app/shared/video/video-miniature.component.html46 - {VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videos} } - {VAR_PLURAL, plural, =0 {Aucune vidéo} =1 {1 video} other { vidéos} } + {VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other { videos} } + {VAR_PLURAL, plural, =0 {Aucune vidéo} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> vidéos} } 9 src/app/shared/video-playlist/video-playlist-miniature.component.html9 - <x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/> + - + <x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/> 22 src/app/shared/video-playlist/video-playlist-miniature.component.html22 - Updated <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/> - Mise à jour + Updated + Mise à jour <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/> 29 @@ -726,8 +726,8 @@ src/app/shared/video-playlist/video-playlist-element-miniature.component.html80src/app/videos/+video-watch/video-watch.component.html92src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html59src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.html15 - Delete from <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/> - Supprimer de + Delete from + Supprimer de <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/> 85 @@ -815,8 +815,8 @@ src/app/shared/user-subscription/subscribe-button.component.html36 - Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> - S'abonner avec un compte sur + Subscribe with an account on + S'abonner avec un compte sur <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/> 39 @@ -851,12 +851,12 @@ src/app/shared/user-subscription/subscribe-button.component.html49 - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> - <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Remote subscribe + Remote interact - S'abonner à distance - Interaction distante + <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>S'abonner à distance<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>Interaction distante<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> 10 @@ -864,11 +864,11 @@ src/app/shared/user-subscription/remote-subscribe.component.html10 - You can subscribe to the channel via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there. - Vous pouvez vous abonner à la chaîne via n'importe quelle instance Fediverse compatible ActivityPub. + Vous pouvez vous abonner à la chaîne via n'importe quelle instance Fediverse compatible ActivityPub.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> Par exemple avec Mastodon ou Pleroma, vous pouvez fournir l'adresse URL de la chaîne dans le champ de recherche et vous abonner. @@ -877,11 +877,11 @@ src/app/shared/user-subscription/remote-subscribe.component.html17 - You can interact with this via any ActivityPub-capable fediverse instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + You can interact with this via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there. - Vous pouvez interagir via n'importe quelle instance Fediverse compatible ActivityPub. + Vous pouvez interagir via n'importe quelle instance Fediverse compatible ActivityPub.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> Par exemple avec Mastodon ou Pleroma, vous pouvez fournir l'adresse URL dans le champ de recherche et interagir avec. @@ -890,12 +890,12 @@ src/app/shared/user-subscription/remote-subscribe.component.html26 - <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/>Default NSFW/sensitive videos policy<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> - <x id="START_TAG_DIV_1" ctype="x-div" equiv-text="<div>"/>can be redefined by the users<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + Default NSFW/sensitive videos policy + can be redefined by the users - Politique par défaut concernant les vidéos à caractère sensible et sexuellement explicites - peut être redéfini par les utilisateur·rices + <x id="START_TAG_DIV" ctype="x-div" equiv-text="<div>"/>Politique par défaut concernant les vidéos à caractère sensible et sexuellement explicites<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> + <x id="START_TAG_DIV_1" ctype="x-div" equiv-text="<div>"/>peut être redéfini par les utilisateur·rices<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="</div>"/> 5 @@ -931,10 +931,10 @@ src/app/shared/instance/instance-features-table.component.html40src/app/+admin/users/user-edit/user-edit.component.html57src/app/+admin/users/user-edit/user-edit.component.html57 - Unlimited <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> per day)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + Unlimited ( per day) - ( illimité par jour) + <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> illimité par jour)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> 53 @@ -1078,15 +1078,15 @@ src/app/shared/moderation/user-ban-modal.component.html26 - <x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/> - + + <x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/> 11 src/app/shared/menu/top-menu-dropdown.component.html11 - (extensions: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>) - (extensions: , taille maximum : ) + (extensions: , max size: ) + (extensions: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, taille maximum : <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>) 12 @@ -1244,18 +1244,18 @@ src/app/reset-password/reset-password.component.html29 - <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> results - résultats + results + <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> résultats 5 src/app/search/search.component.html5 - for <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + for - pour + pour <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> 6 @@ -1264,11 +1264,11 @@ Filters - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Filtres - + <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> 16 @@ -1286,8 +1286,8 @@ src/app/search/search.component.html28 - <x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> subscribers - abonnés + subscribers + <x id="INTERPOLATION" equiv-text="{{ result.followersCount }}"/> abonnés 44 @@ -1352,16 +1352,16 @@ src/app/modal/welcome-modal.component.html41 - Official PeerTube website (news, support, contribute...): <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - Site web officiel de PeerTube (news, support, contribution...): https://joinpeertube.org + Official PeerTube website (news, support, contribute...): https://joinpeertube.org + Site web officiel de PeerTube (news, support, contribution...): <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> 44 src/app/modal/welcome-modal.component.html44 - Put your instance on the public PeerTube index: <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://instances.joinpeertube.org/instances<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instances - Mettre votre instances sur l'index public des instances PeerTube https://instances.joinpeertube.org/instances + Mettre votre instances sur l'index public des instances PeerTube <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://instances.joinpeertube.org/instances<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> 47 @@ -1376,12 +1376,12 @@ src/app/modal/welcome-modal.component.html59 - Choosing your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance name<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>setting up a description<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, specifying <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>who you are<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, - why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you created your instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> and <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>how long<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> you plan to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>maintain your it<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Choosing your instance name, setting up a description, specifying who you are, + why you created your instance and how long you plan to maintain your it is very important for visitors to understand on what type of instance they are. - Choisir le nom de son instance, mettre une description, spécifier qui vous êtes, pourquoi vous avez créé cette instance et combien de temps vous prévoyez de la maintenir est très important pour que les visiteurs comprennent sur quel type d'instance ils ou elles sont. + Choisir <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>le nom de son instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>mettre une description<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, spécifier <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>qui vous êtes<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, pourquoi <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>vous avez créé cette instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> et <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>combien de temps<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> vous prévoyez de <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>la maintenir<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> est très important pour que les visiteurs comprennent sur quel type d'instance ils ou elles sont. 61 @@ -1389,15 +1389,15 @@ src/app/modal/welcome-modal.component.html61 - If you want to open registrations, please decide what are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>your moderation rules<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, fill your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>instance - terms<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> - and specify the categories and languages you speak. This way, you will help users to register on <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>the - appropriate<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + If you want to open registrations, please decide what are your moderation rules, fill your instance + terms + and specify the categories and languages you speak. This way, you will help users to register on the + appropriate PeerTube instance. - Si vous voulez ouvrir les inscriptions, merci de décider quelles sont les règles de modération, remplir les conditions d'utilisation de votre instance - et spécifier les catégories ainsi que les langues que vous parlez. De cette façon, vous aiderez les utilisateurs à s'enregistrer sur l'instance PeerTube appropriée. + Si vous voulez ouvrir les inscriptions, merci de décider quelles sont <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>les règles de modération<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, remplir les <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>conditions d'utilisation de votre instance<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + et spécifier les catégories ainsi que les langues que vous parlez. De cette façon, vous aiderez les utilisateurs à s'enregistrer sur <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>l'instance PeerTube appropriée<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. 67 @@ -1851,7 +1851,7 @@ src/app/videos/+video-edit/shared/video-edit.component.html17src/app/videos/+video-watch/video-watch.component.html191 - Tags could be used to suggest relevant recommendations. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Tags could be used to suggest relevant recommendations. Press Enter to add a new tag. @@ -1906,8 +1906,8 @@ src/app/videos/+video-edit/shared/video-edit.component.html107src/app/videos/+video-edit/video-add-components/video-import-url.component.html31src/app/videos/+video-edit/video-add-components/video-upload.component.html21src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html37src/app/videos/+video-watch/video-watch.component.html154src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html33src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html33 - Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>) - Programmation de la publication () + Schedule publication () + Programmation de la publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>) 122 @@ -2078,7 +2078,7 @@ src/app/videos/+video-edit/video-add-components/video-import-url.component.html6src/app/videos/+video-watch/modal/video-share.component.html10 - You can import any URL <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>supported by youtube-dl<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + You can import any URL supported by youtube-dl or URL that points to a raw MP4 file. You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. @@ -2096,10 +2096,10 @@ src/app/videos/+video-edit/video-add-components/video-import-url.component.html48src/app/videos/+video-edit/video-add-components/video-upload.component.html62src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html53 - Congratulations, the video behind <x id="INTERPOLATION" equiv-text="{{ targetUrl }}"/> will be imported! You can already add information about this video. + Congratulations, the video behind will be imported! You can already add information about this video. - Félicitations, la vidéo : va être importée. Vous pouvez déjà ajouter les informations relatives à celle-ci. + Félicitations, la vidéo : <x id="INTERPOLATION" equiv-text="{{ targetUrl }}"/> va être importée. Vous pouvez déjà ajouter les informations relatives à celle-ci. 52 @@ -2136,12 +2136,12 @@ Image that will be merged with your audio file. - <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + The chosen image will be definitive and cannot be modified. Image qui sera fusionnée avec le fichier audio. - + <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> L'image choisie sera définitive et ne pourra pas être modifiée. @@ -2218,15 +2218,15 @@ src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html57 - Import <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> - Importer + Import + Importer <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> 3 src/app/videos/+video-edit/video-add.component.html3 - Upload <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> - Téléverser + Upload + Téléverser <x id="INTERPOLATION" equiv-text="{{ videoName }}"/> 4 @@ -2254,10 +2254,10 @@ src/app/videos/+video-edit/video-add.component.html24 - Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/> + Update - Mise à jour + Mise à jour <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/> 2 @@ -2405,10 +2405,10 @@ src/app/videos/+video-watch/video-watch.component.html23 - This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>. + This video will be published on . - Cette vidéo sera publiée dans . + Cette vidéo sera publiée dans <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>. 27 @@ -2422,7 +2422,7 @@ src/app/videos/+video-watch/video-watch.component.html32 - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views src/app/videos/+video-watch/video-watch.component.html @@ -2430,7 +2430,7 @@ - Published <x id="START_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="<my-date-toggle>"/><x id="CLOSE_TAG_MY-DATE-TOGGLE" ctype="x-my-date-toggle" equiv-text="</my-date-toggle>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/> - <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Published - views src/app/videos/+video-watch/video-watch.component.html @@ -2459,8 +2459,8 @@ src/app/videos/+video-watch/video-watch.component.html118 - By <x id="INTERPOLATION" equiv-text="{{ video.byAccount }}"/> - Par + By + Par <x id="INTERPOLATION" equiv-text="{{ video.byAccount }}"/> 129 @@ -2555,8 +2555,8 @@ src/app/videos/+video-watch/comment/video-comments.component.html17 - View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies - Voir les réponses + View all replies + Voir les <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> réponses 55 @@ -2809,8 +2809,8 @@ src/app/+admin/follows/followers-list/followers-list.component.html19 - Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Créé le + Created + Créé le <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 11 @@ -2865,8 +2865,8 @@ src/app/+admin/users/user-edit/user-edit.component.html1src/app/+admin/users/user-edit/user-edit.component.html1src/app/+admin/users/user-list/user-list.component.html6 - Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/> - Éditer l'utilisateur + Edit user + Éditer l'utilisateur <x id="INTERPOLATION" equiv-text="{{ username }}"/> 2 @@ -2901,12 +2901,12 @@ src/app/+admin/users/user-edit/user-edit.component.html42src/app/+admin/users/user-edit/user-edit.component.html42src/app/+admin/users/user-list/user-list.component.html43 - Transcoding is enabled on server. The video quota only take in account <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> video. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - At most, this user could use ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>. + Transcoding is enabled on server. The video quota only take in account original video. + At most, this user could use ~ . - L'encodage est activé sur le serveur. Le quota de vidéos ne prend en compte que la vidéo originale. - Au pire, cet utilisateur pourrait utiliser ~ . + L'encodage est activé sur le serveur. Le quota de vidéos ne prend en compte que la vidéo <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>originale<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Au pire, cet utilisateur pourrait utiliser ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>. 66 @@ -2983,15 +2983,15 @@ src/app/+admin/users/user-list/user-list.component.html19 - Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Identifiant + Username + Identifiant <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 40 src/app/+admin/users/user-list/user-list.component.html40 - Video quota <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Quota des vidéo + Video quota + Quota des vidéo <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 42 @@ -3039,8 +3039,8 @@ src/app/+admin/moderation/moderation.component.html5 - <x id="INTERPOLATION" equiv-text="{{ autoBlacklistVideosEnabled ? 'Manually blacklisted videos' : 'Blacklisted videos' }}"/> - + + <x id="INTERPOLATION" equiv-text="{{ autoBlacklistVideosEnabled ? 'Vidéos mises sur liste noire automatiquement' : 'Vidéos mises sur liste noire' }}"/> 7 @@ -3067,8 +3067,8 @@ src/app/+admin/moderation/moderation.component.html13 - Video name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Nom de la vidéo + Video name + Nom de la vidéo <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 8 @@ -3088,8 +3088,8 @@ src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html10 - Date <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Date + Date + Date <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 11 @@ -3155,8 +3155,8 @@ src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html10src/app/+my-account/my-account-ownership/my-account-ownership.component.html14src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html9 - State <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - État + State + État <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 11 @@ -3197,8 +3197,8 @@ src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html8src/app/+admin/config/edit-custom-config/edit-custom-config.component.html10src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html12src/app/+about/about.component.html5 - Muted at <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> - Rendu silencieux + Muted at + Rendu silencieux <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 13 @@ -3286,10 +3286,10 @@ src/app/+admin/plugins/plugin-search/plugin-search.component.html16 - <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> <x id="ICU" equiv-text="{pagination.totalItems, plural, =1 {...} other {...}}"/> for "<x id="INTERPOLATION_1" equiv-text="{{ search }}"/>" + for "" - for "<x id="INTERPOLATION_1" equiv-text="{{ search }}"/>" + <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> <x id="ICU" equiv-text="{pagination.totalItems, plural, =1 {...} other {...}}"/> for "<x id="INTERPOLATION_1" equiv-text="{{ search }}"/>" 22 @@ -3314,10 +3314,10 @@ src/app/+admin/plugins/plugin-search/plugin-search.component.html28 - This <x id="INTERPOLATION" equiv-text="{{ pluginTypeLabel }}"/> does not have settings. + This does not have settings. - Ce ne dispose pas de paramétrage. + Ce <x id="INTERPOLATION" equiv-text="{{ pluginTypeLabel }}"/> ne dispose pas de paramétrage. 22 @@ -3436,7 +3436,7 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html68 - Enabling it will allow other administrators to know that you are mainly federating sensitive content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + Enabling it will allow other administrators to know that you are mainly federating sensitive content. Moreover, the NSFW checkbox on video upload will be automatically checked by default. @@ -3452,7 +3452,7 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html81 - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -3799,10 +3799,10 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html431 - If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share. + If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance. Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>https://cards-dev.twitter.com/validator<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + https://cards-dev.twitter.com/validator to see if you instance is whitelisted. @@ -3866,14 +3866,14 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html486 - <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Requires ffmpeg >= 4.1 and multiplies videos storage by 2!<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> + Requires ffmpeg >= 4.1 and multiplies videos storage by 2! - <x id="START_PARAGRAPH" ctype="x-p" equiv-text="<p>"/>Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player:<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/> - <x id="START_UNORDERED_LIST" ctype="x-ul" equiv-text="<ul>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Resolution change is smoother<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>Faster playback in particular with long videos<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="START_LIST_ITEM" ctype="x-li" equiv-text="<li>"/>More stable playback (less bugs/infinite loading)<x id="CLOSE_LIST_ITEM" ctype="x-li" equiv-text="</li>"/> - <x id="CLOSE_UNORDERED_LIST" ctype="x-ul" equiv-text="</ul>"/> + Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player: + + Resolution change is smoother + Faster playback in particular with long videos + More stable playback (less bugs/infinite loading) + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -3894,8 +3894,8 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html517 - Resolution <x id="INTERPOLATION" equiv-text="{{resolution.label}}"/> enabled - Résolution activée + Resolution enabled + Résolution <x id="INTERPOLATION" equiv-text="{{resolution.label}}"/> activée 532 @@ -3943,7 +3943,7 @@ src/app/+admin/config/edit-custom-config/edit-custom-config.component.html575 - Write JavaScript code directly.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/>Example: <x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>console.log('my instance is amazing');<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + Write JavaScript code directly.Example: console.log('my instance is amazing'); src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -3951,17 +3951,17 @@ - Write CSS code directly. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Write CSS code directly. Example: +#custom-css color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + - Prepend with <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>#custom-css<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> to override styles. Example:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> -<x id="START_TAG_PRE" ctype="x-pre" equiv-text="<pre>"/>#custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/> + Prepend with #custom-css to override styles. Example: +#custom-css .logged-in-email color: red; -<x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/> -<x id="CLOSE_TAG_PRE" ctype="x-pre" equiv-text="</pre>"/> + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html @@ -4059,7 +4059,7 @@ src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html3 - With <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Do not list<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> or <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Blur thumbnails<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>, a confirmation will be requested to watch the video. + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html @@ -4110,10 +4110,10 @@ src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html27 - Your current email is <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.email }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> + Your current email is - Votre courriel actuel est + Votre courriel actuel est <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.email }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> 4 @@ -4121,10 +4121,10 @@ src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html4 - <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.pendingEmail }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> is awaiting email verification + is awaiting email verification - est en attente de la vérification de votre courriel. + <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/><x id="INTERPOLATION" equiv-text="{{ user.pendingEmail }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> est en attente de la vérification de votre courriel. 8 @@ -4217,11 +4217,11 @@ Created - <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> + Créé - + <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="<p-sortIcon>"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="</p-sortIcon>"/> 15 @@ -4242,8 +4242,8 @@ src/app/+my-account/my-account-ownership/my-account-ownership.component.html20 - <x id="INTERPOLATION" equiv-text="{{ videoChangeOwnership.status }}"/> - + + <x id="INTERPOLATION" equiv-text="{{ videoChangeOwnership.status }}"/> 38 @@ -4263,8 +4263,8 @@ src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html15src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html10 - <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers - abonnés + subscribers + <x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> abonnés 14 @@ -4300,8 +4300,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html67src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html67 - <x id="INTERPOLATION" equiv-text="{{ actor.followersCount }}"/> subscribers - abonnés + subscribers + <x id="INTERPOLATION" equiv-text="{{ actor.followersCount }}"/> abonnés 10 @@ -4314,8 +4314,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/shared/actor-avatar-info.component.html15 - (extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>) - (extensions: , max size: ) + (extensions: , max size: ) + (extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>) 18 @@ -4349,8 +4349,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html1 - Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> - Créée par + Created by + Créée par <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> 17 @@ -4378,11 +4378,11 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-history/my-account-history.component.html4 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Delete history - + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> Supprimer l'historique @@ -4398,11 +4398,11 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-history/my-account-history.component.html14 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Notification preferences - + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> Préférences de notification @@ -4411,11 +4411,11 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-notifications/my-account-notifications.component.html2 - <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> + Mark all as read - + <x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="<my-global-icon>"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="</my-global-icon>"/> Marquer tout comme lu @@ -4465,7 +4465,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+signup/shared/signup-success.component.html8 - If you need help to use PeerTube, you can have a look at the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + If you need help to use PeerTube, you can have a look at the documentation. src/app/+signup/shared/signup-success.component.html @@ -4564,8 +4564,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+accounts/accounts.component.html23 - <x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers - abonnés + subscribers + <x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> abonnés 31 @@ -4617,8 +4617,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+accounts/account-about/account-about.component.html8src/app/+video-channels/video-channel-about/video-channel-about.component.html16 - Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/> - Créé le + Joined + Créé le <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/> 10 @@ -4638,18 +4638,18 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+video-channels/video-channel-about/video-channel-about.component.html9 - Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/> - Créé le + Created + Créé le <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/> 17 src/app/+video-channels/video-channel-about/video-channel-about.component.html17 - Created <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> playlists + Created playlists - listes de lecture créées. + <x id="INTERPOLATION" equiv-text="{{ pagination.totalItems }}"/> listes de lecture créées. 1 @@ -4677,8 +4677,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+about/about.component.html9 - Contact <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> administrator - Contacter l'administrateur de + Contact administrator + Contacter l'administrateur de <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> 3 @@ -4712,8 +4712,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+about/about-instance/contact-admin-modal.component.html38 - About <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instance - À propos de l'instance + About instance + À propos de l'instance <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> 5 @@ -4836,10 +4836,10 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au - It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + It is a free and open-source software, under the AGPLv3 licence. - C'est un logiciel libre et open-source, sous licence AGPLv3. + C'est un logiciel libre et open-source, sous <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>licence AGPLv3<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. 12 @@ -4847,10 +4847,10 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+about/about-peertube/about-peertube.component.html12 - For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. + For more information, please visit joinpeertube.org. - Pour plus d'informations, merci de visiter joinpeertube.org. + Pour plus d'informations, merci de visiter <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. 16 @@ -4953,9 +4953,9 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au - Web peers are not publicly accessible: because we use WebRTC inside the web browser (<x id="START_LINK" ctype="x-a" equiv-text="<a>"/>with the WebTorrent library<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>), the protocol is different from classic BitTorrent. + Web peers are not publicly accessible: because we use WebRTC inside the web browser (with the WebTorrent library), the protocol is different from classic BitTorrent. When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. - See <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more information + See this document for more information src/app/+about/about-peertube/about-peertube.component.html @@ -5174,11 +5174,11 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+signup/+register/register.component.html56 - A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> + A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content. For example, you could decide to have a channel to publish your piano concerts, and another channel in which you publish your videos talking about ecology. - Une chaîne est une entité dans laquelle vous téléversez vos vidéos. La création de plusieurs d'entre elles vous aide à organiser et séparer votre contenu.. + Une chaîne est une entité dans laquelle vous téléversez vos vidéos. La création de plusieurs d'entre elles vous aide à organiser et séparer votre contenu.<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/>. Par exemple, vous pourriez décider d'avoir une chaîne pour publier vos concerts de piano et une autre chaîne pour publier vos vidéos sur l'écologie. 4 @@ -5258,14 +5258,14 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au I am at least 16 years old and agree - to the <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Terms<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> - <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> and to the <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>Code of Conduct<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> + to the Terms + and to the Code of Conduct of this instance J'ai au moins 16 ans et je suis d'accord - avec les Conditions - et le Code de Conduite + avec les <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Conditions<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> + <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="<ng-container>"/> et le <x id="START_LINK_1" ctype="x-a" equiv-text="<a>"/>Code de Conduite<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/><x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="</ng-container>"/> de cette instance @@ -5310,8 +5310,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+accounts/account-about/account-about.component.ts1src/app/+video-channels/video-channel-about/video-channel-about.component.ts1 - Published <x id="INTERPOLATION" equiv-text="{{total}}"/> videos - A publié vidéos + Published videos + A publié <x id="INTERPOLATION" equiv-text="{{total}}"/> vidéos 1 @@ -5478,8 +5478,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/config/shared/config.service.ts1 - <x id="INTERPOLATION" equiv-text="{{handle}}"/> accepted in instance followers - a été accepté des instances qui vous suivent + accepted in instance followers + <x id="INTERPOLATION" equiv-text="{{handle}}"/> a été accepté des instances qui vous suivent 1 @@ -5499,8 +5499,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/followers-list/followers-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{handle}}"/> rejected from instance followers - a été retiré des instances qui vous suivent + rejected from instance followers + <x id="INTERPOLATION" equiv-text="{{handle}}"/> a été retiré des instances qui vous suivent 1 @@ -5513,15 +5513,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/followers-list/followers-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{handle}}"/> removed from instance followers - supprimé des abonnés de votre instance + removed from instance followers + <x id="INTERPOLATION" equiv-text="{{handle}}"/> supprimé des abonnés de votre instance 1 src/app/+admin/follows/followers-list/followers-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid - n'est pas valide + is not valid + <x id="INTERPOLATION" equiv-text="{{host}}"/> n'est pas valide 1 @@ -5541,8 +5541,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/following-add/following-add.component.ts1 - If you confirm, you will send a follow request to:<x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> - - Si vous confirmez, le système enverra une requête à : pour le suivre - + If you confirm, you will send a follow request to: - + Si vous confirmez, le système enverra une requête à : <x id="LINE_BREAK" ctype="lb" equiv-text="<br/>"/> pour le suivre - 1 @@ -5562,8 +5562,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/following-add/following-add.component.ts1 - Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>? - Voulez-vous vraiment vous désabonner de ? + Do you really want to unfollow ? + Voulez-vous vraiment vous désabonner de <x id="INTERPOLATION" equiv-text="{{host}}"/> ? 1 @@ -5576,8 +5576,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/following-list/following-list.component.ts1 - You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore. - Vous n'êtes plus abonné à . + You are not following anymore. + Vous n'êtes plus abonné à <x id="INTERPOLATION" equiv-text="{{host}}"/>. 1 @@ -5597,22 +5597,22 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/follows/shared/redundancy-checkbox.component.ts1 - Redundancy for <x id="INTERPOLATION" equiv-text="{{host}}"/> is <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/> - La redondance pour est + Redundancy for is + La redondance pour <x id="INTERPOLATION" equiv-text="{{host}}"/> est <x id="INTERPOLATION_1" equiv-text="{{stateLabel}}"/> 1 src/app/+admin/follows/shared/redundancy-checkbox.component.ts1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by your instance. - Compte réactivé par votre instance. + Account unmuted by your instance. + Compte <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> réactivé par votre instance. 1 src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by your instance. - Instance réactivé par votre instance. + Instance unmuted by your instance. + Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> réactivé par votre instance. 1 @@ -5667,15 +5667,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts1 - Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from blacklist. - Vidéo retirée de la liste noire. + Video removed from blacklist. + Vidéo <x id="INTERPOLATION" equiv-text="{{name}}"/> retirée de la liste noire. 1 src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> videos removed from blacklist. - vidéos retirées de la liste noire. + videos removed from blacklist. + <x id="INTERPOLATION" equiv-text="{{num}}"/> vidéos retirées de la liste noire. 1 @@ -5702,8 +5702,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts1src/app/shared/video/video-actions-dropdown.component.ts1 - Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist. - Vidéo retirée de la liste noire. + Video removed from the blacklist. + Vidéo <x id="INTERPOLATION" equiv-text="{{name}}"/> retirée de la liste noire. 1 @@ -5723,29 +5723,29 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts1 - Update to <x id="INTERPOLATION" equiv-text="{{version}}"/> - Mettre à jour vers + Update to + Mettre à jour vers <x id="INTERPOLATION" equiv-text="{{version}}"/> 1 src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts1 - Do you really want to uninstall <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? - Voulez-vous vraiment désinstaller ? + Do you really want to uninstall ? + Voulez-vous vraiment désinstaller <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? 1 src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> uninstalled. - désinstallé. + uninstalled. + <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> désinstallé. 1 src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> updated. - mis à jour. + updated. + <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> mis à jour. 1 @@ -5765,15 +5765,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/plugins/plugin-search/plugin-search.component.ts1 - Install <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? - Installer ? + Install ? + Installer <x id="INTERPOLATION" equiv-text="{{pluginName}}"/>? 1 src/app/+admin/plugins/plugin-search/plugin-search.component.ts1 - <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> installed. - installé. + installed. + <x id="INTERPOLATION" equiv-text="{{pluginName}}"/> installé. 1 @@ -5856,15 +5856,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/system/logs/logs.component.ts1src/app/core/auth/auth.service.ts1src/app/core/notification/notifier.service.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> created. - Utilisateur·rice créé. + User created. + Utilisateur·rice <x id="INTERPOLATION" equiv-text="{{username}}"/> créé. 1 src/app/+admin/users/user-edit/user-create.component.ts1 - Password changed for user <x id="INTERPOLATION" equiv-text="{{username}}"/>. - Mot de passe changé pour l'utilisateur·rice . + Password changed for user . + Mot de passe changé pour l'utilisateur·rice <x id="INTERPOLATION" equiv-text="{{username}}"/>. 1 @@ -5877,8 +5877,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/users/user-edit/user-password.component.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated. - Utilisateur·rice mis à jour. + User updated. + Utilisateur·rice <x id="INTERPOLATION" equiv-text="{{username}}"/> mis à jour. 1 @@ -5891,8 +5891,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/users/user-edit/user-update.component.ts1 - An email asking for password reset has been sent to <x id="INTERPOLATION" equiv-text="{{username}}"/>. - Un mail demandant la réinitialisation du mot de passe a été envoyé à . + An email asking for password reset has been sent to . + Un mail demandant la réinitialisation du mot de passe a été envoyé à <x id="INTERPOLATION" equiv-text="{{username}}"/>. 1 @@ -5919,15 +5919,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/users/user-list/user-list.component.ts1src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Do you really want to unban <x id="INTERPOLATION" equiv-text="{{num}}"/> users? - Voulez-vous vraiment rétablir utilisateur·ices ? + Do you really want to unban users? + Voulez-vous vraiment rétablir <x id="INTERPOLATION" equiv-text="{{num}}"/> utilisateur·ices ? 1 src/app/+admin/users/user-list/user-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users unbanned. - utilisateur·rices rétablis. + users unbanned. + <x id="INTERPOLATION" equiv-text="{{num}}"/> utilisateur·rices rétablis. 1 @@ -5947,29 +5947,29 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+admin/users/user-list/user-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users deleted. - utilisateur·ices supprimé·e·s. + users deleted. + <x id="INTERPOLATION" equiv-text="{{num}}"/> utilisateur·ices supprimé·e·s. 1 src/app/+admin/users/user-list/user-list.component.ts1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users email set as verified. - adresses mail d'utilisateurs ont été vérifiées. + users email set as verified. + <x id="INTERPOLATION" equiv-text="{{num}}"/> adresses mail d'utilisateurs ont été vérifiées. 1 src/app/+admin/users/user-list/user-list.component.ts1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted. - Compte réactivé. + Account unmuted. + Compte <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> réactivé. 1 src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts1src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted. - Instance réactivée. + Instance unmuted. + Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> réactivée. 1 @@ -6206,8 +6206,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.ts1 - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created. - Chaîne vidéo créée. + Video channel created. + Chaîne vidéo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> créée. 1 @@ -6220,57 +6220,57 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts1 - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated. - Chaîne vidéo mise à jour. + Video channel updated. + Chaîne vidéo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> mise à jour. 1 src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{channelDisplayName}}"/>? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name (<x id="INTERPOLATION_1" equiv-text="{{channelName}}"/>)! - Voulez-vous vraiment supprimer ? Cela supprimera toutes les vidéos de cette chaîne, et vous ne pourrez plus créer de nouvelles chaînes avec le même nom () ! + Do you really want to delete ? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name ()! + Voulez-vous vraiment supprimer <x id="INTERPOLATION" equiv-text="{{channelDisplayName}}"/> ? Cela supprimera toutes les vidéos de cette chaîne, et vous ne pourrez plus créer de nouvelles chaînes avec le même nom (<x id="INTERPOLATION_1" equiv-text="{{channelName}}"/>) ! 1 src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts1 - Please type the display name of the video channel (<x id="INTERPOLATION" equiv-text="{{displayName}}"/>) to confirm - Merci de saisir le nom de la chaîne vidéos () pour confirmer + Please type the display name of the video channel () to confirm + Merci de saisir le nom de la chaîne vidéos (<x id="INTERPOLATION" equiv-text="{{displayName}}"/>) pour confirmer 1 src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts1 - Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted. - Chaîne vidéo supprimée. + Video channel deleted. + Chaîne vidéo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> supprimée. 1 src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts1 - Playlist <x id="INTERPOLATION" equiv-text="{{playlistName}}"/> created. - Liste de lecture créée. + Playlist created. + Liste de lecture <x id="INTERPOLATION" equiv-text="{{playlistName}}"/> créée. 1 src/app/+my-account/my-account-video-playlists/my-account-video-playlist-create.component.ts1 - Playlist <x id="INTERPOLATION" equiv-text="{{videoPlaylistName}}"/> updated. - Liste de lecture mise à jour. + Playlist updated. + Liste de lecture <x id="INTERPOLATION" equiv-text="{{videoPlaylistName}}"/> mise à jour. 1 src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/>? - Souhaitez-vous vraiment supprimer ? + Do you really want to delete ? + Souhaitez-vous vraiment supprimer <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/> ? 1 src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts1 - Playlist <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/> deleted. - Liste de lecture supprimée. + Playlist deleted. + Liste de lecture <x id="INTERPOLATION" equiv-text="{{playlistDisplayName}}"/> supprimée. 1 @@ -6283,29 +6283,29 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+my-account/my-account-videos/my-account-videos.component.ts1src/app/+my-account/my-account.component.ts1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos? - Souhaitez-vous vraiment supprimer vidéos ? + Do you really want to delete videos? + Souhaitez-vous vraiment supprimer <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> vidéos ? 1 src/app/+my-account/my-account-videos/my-account-videos.component.ts1 - <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted. - vidéos supprimées. + videos deleted. + <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> vidéos supprimées. 1 src/app/+my-account/my-account-videos/my-account-videos.component.ts1 - Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>? - Souhaitez-vous vraiment supprimer ? + Do you really want to delete ? + Souhaitez-vous vraiment supprimer <x id="INTERPOLATION" equiv-text="{{videoName}}"/>? 1 src/app/+my-account/my-account-videos/my-account-videos.component.ts1 - Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted. - La vidéo a été supprimée. + Video deleted. + La vidéo <x id="INTERPOLATION" equiv-text="{{videoName}}"/> a été supprimée. 1 @@ -6381,15 +6381,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/+signup/+register/register.component.ts1 - You are now logged in as <x id="INTERPOLATION" equiv-text="{{username}}"/>! - Vous êtes maintenant connecté en tant que ! + You are now logged in as ! + Vous êtes maintenant connecté en tant que <x id="INTERPOLATION" equiv-text="{{username}}"/> ! 1 src/app/+signup/+register/register.component.ts1 - An email with verification link will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>. - Un courriel contenant un lien de vérification sera envoyé à . + An email with verification link will be sent to . + Un courriel contenant un lien de vérification sera envoyé à <x id="INTERPOLATION" equiv-text="{{email}}"/>. 1 @@ -6493,9 +6493,9 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/core/auth/auth.service.ts1 - Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>. + Cannot retrieve OAuth Client credentials: . - Impossible de retrouver les identifiants client OAuth : . + Impossible de retrouver les identifiants client OAuth : <x id="INTERPOLATION" equiv-text="{{errorText}}"/>. 1 @@ -6544,8 +6544,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/login/login.component.ts1 - An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{email}}"/>. - Un email avec les instructions de changement de mot de passe a été envoyé à . + An email with the reset password instructions will be sent to . + Un email avec les instructions de changement de mot de passe a été envoyé à <x id="INTERPOLATION" equiv-text="{{email}}"/>. 1 @@ -6628,78 +6628,78 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/search/search-filters.component.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago - il y a ans + years ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> ans 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago - il y a mois + months ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> mois 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago - il y a mois + month ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> mois 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago - il y a semaines + weeks ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> semaines 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago - il y a semaine + week ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> semaine 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago - il y a jours + days ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> jours 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago - il y a jour + day ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> jour 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago - il y a heures + hours ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> heures 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago - il y a heure + hour ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> heure 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago - il y a min + min ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> min 1 src/app/shared/angular/from-now.pipe.ts1 - <x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago - il y a sec + sec ago + il y a <x id="INTERPOLATION" equiv-text="{{interval}}"/> sec 1 @@ -7335,8 +7335,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/forms/reactive-file.component.ts1 - PeerTube cannot handle this kind of file. Accepted extensions are <x id="INTERPOLATION" equiv-text="{{extensions}}"/>. - PeerTube ne peut pas gérer ce type de fichier. Les extensions acceptées sont . + PeerTube cannot handle this kind of file. Accepted extensions are . + PeerTube ne peut pas gérer ce type de fichier. Les extensions acceptées sont <x id="INTERPOLATION" equiv-text="{{extensions}}"/>. 1 @@ -7692,8 +7692,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/instance/instance-features-table.component.ts1 - ~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/> - ~ + ~ + ~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/> 1 @@ -7706,29 +7706,29 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/instance/instance-features-table.component.ts1 - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos - de vidéos full HD + of full HD videos + <x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vidéos full HD 1 src/app/shared/instance/instance-features-table.component.ts1 - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos - de vidéos HD + of HD videos + <x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vidéos HD 1 src/app/shared/instance/instance-features-table.component.ts1 - <x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos - de vidéos de qualité moyenne + of average quality videos + <x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vidéos de qualité moyenne 1 src/app/shared/instance/instance-features-table.component.ts1 - <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> compatible that supports: - Compatible Markdown supportant : + Markdown compatible that supports: + Compatible <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> supportant : 1 @@ -7769,29 +7769,29 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/misc/help.component.ts1 - <x id="INTERPOLATION" equiv-text="{{num}}"/> users banned. - utilisateur·ices banni·e·s. + users banned. + <x id="INTERPOLATION" equiv-text="{{num}}"/> utilisateur·ices banni·e·s. 1 src/app/shared/moderation/user-ban-modal.component.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> banned. - Utilisateur banni. + User banned. + Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> banni. 1 src/app/shared/moderation/user-ban-modal.component.ts1 - Do you really want to unban <x id="INTERPOLATION" equiv-text="{{username}}"/>? - Voulez-vous réellement rétablir ? + Do you really want to unban ? + Voulez-vous réellement rétablir <x id="INTERPOLATION" equiv-text="{{username}}"/>? 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> unbanned. - L'utilisateur est rétabli. + User unbanned. + L'utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> est rétabli. 1 @@ -7804,57 +7804,57 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/moderation/user-moderation-dropdown.component.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted. - Utilisateur supprimé. + User deleted. + Utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> supprimé. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - User <x id="INTERPOLATION" equiv-text="{{username}}"/> email set as verified - L'adresse mail de l'utilisateur a été vérifiée + User email set as verified + L'adresse mail de l'utilisateur <x id="INTERPOLATION" equiv-text="{{username}}"/> a été vérifiée 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted. - Comptes muets. + Account muted. + Comptes <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muets. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted. - Instance muette. + Instance muted. + Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muette. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted by the instance. - Compte rendue muet par votre instance. + Account muted by the instance. + Compte <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> rendue muet par votre instance. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> unmuted by the instance. - Compte réactivé par votre instance. + Account unmuted by the instance. + Compte <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> réactivé par votre instance. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> muted by the instance. - Instance rendue muette par votre instance. + Instance muted by the instance. + Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> rendue muette par votre instance. 1 src/app/shared/moderation/user-moderation-dropdown.component.ts1 - Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> unmuted by the instance. - Instance réactivée par votre instance. + Instance unmuted by the instance. + Instance <x id="INTERPOLATION" equiv-text="{{host}}"/> réactivée par votre instance. 1 @@ -7923,8 +7923,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/rest/rest-extractor.service.ts1 - Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes. - Trop de tentatives, merci de réessayer dans minutes. + Too many attempts, please try again after minutes. + Trop de tentatives, merci de réessayer dans <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes. 1 @@ -7944,8 +7944,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/rest/rest-extractor.service.ts1 - Subscribed to <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> - Abonné à + Subscribed to + Abonné à <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> 1 @@ -7958,8 +7958,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/user-subscription/subscribe-button.component.ts1 - Unsubscribed from <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> - Désabonné de + Unsubscribed from + Désabonné de <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> 1 @@ -7979,22 +7979,22 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/shared/users/user.service.ts1 - Video removed from <x id="INTERPOLATION" equiv-text="{{name}}"/> - Vidéo supprimé de + Video removed from + Vidéo supprimé de <x id="INTERPOLATION" equiv-text="{{name}}"/> 1 src/app/shared/video-playlist/video-add-to-playlist.component.ts1src/app/shared/video-playlist/video-playlist-element-miniature.component.ts1 - Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/> at timestamps <x id="INTERPOLATION_1" equiv-text="{{t}}"/> - Vidéo ajouté dans à la seconde + Video added in at timestamps + Vidéo ajouté dans <x id="INTERPOLATION" equiv-text="{{n}}"/> à la seconde <x id="INTERPOLATION_1" equiv-text="{{t}}"/> 1 src/app/shared/video-playlist/video-add-to-playlist.component.ts1 - Video added in <x id="INTERPOLATION" equiv-text="{{n}}"/> - Vidéo ajouté dans + Video added in + Vidéo ajouté dans <x id="INTERPOLATION" equiv-text="{{n}}"/> 1 @@ -8161,8 +8161,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/videos/+video-edit/video-add-components/video-upload.component.ts1 - Upload <x id="INTERPOLATION" equiv-text="{{videofileName}}"/> - Téléverser + Upload + Téléverser <x id="INTERPOLATION" equiv-text="{{videofileName}}"/> 1 @@ -8182,15 +8182,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/videos/+video-edit/video-add-components/video-upload.component.ts1 - Your video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>) - Votre quota est dépassé avec cette vidéo (taille de la vidéo : , used: , quota: ) + Your video quota is exceeded with this video (video size: , used: , quota: ) + Votre quota est dépassé avec cette vidéo (taille de la vidéo : <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{videoQuotaUsed}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{videoQuota}}"/>) 1 src/app/videos/+video-edit/video-add-components/video-upload.component.ts1 - Your daily video quota is exceeded with this video (video size: <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>) - Votre quota journalier est dépassé avec cette vidéo (taille de la vidéo : , used: , quota: ) + Your daily video quota is exceeded with this video (video size: , used: , quota: ) + Votre quota journalier est dépassé avec cette vidéo (taille de la vidéo : <x id="INTERPOLATION" equiv-text="{{videoSize}}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{quotaUsedDaily}}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{quotaDaily}}"/>) 1 @@ -8210,8 +8210,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/videos/+video-edit/video-update.component.ts1 - <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too. - réponses seront aussi supprimées. + replies will be deleted too. + <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> réponses seront aussi supprimées. 1 @@ -8231,8 +8231,8 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/videos/+video-watch/comment/video-comments.component.ts1 - <x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes - j'aime / je n'aime pas + likes / dislikes + <x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> j'aime / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> je n'aime pas 1 @@ -8287,15 +8287,15 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au src/app/videos/video-list/video-trending.component.ts1 - Trending for the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days - Tendances pour les dernières journées. + Trending for the last days + Tendances pour les <x id="INTERPOLATION" equiv-text="{{days}}"/> dernières journées. 1 src/app/videos/video-list/video-trending.component.ts1 - Trending videos are those totalizing the greatest number of views during the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days - Les vidéos Tendances sont celles qui ont été vues le plus grand nombre de fois dans les dernières journées. + Trending videos are those totalizing the greatest number of views during the last days + Les vidéos Tendances sont celles qui ont été vues le plus grand nombre de fois dans les <x id="INTERPOLATION" equiv-text="{{days}}"/> dernières journées. 1 diff --git a/client/src/locale/angular.xlf b/client/src/locale/angular.xlf new file mode 100644 index 000000000..d2033130c --- /dev/null +++ b/client/src/locale/angular.xlf @@ -0,0 +1,8474 @@ + + + + + + Close + + node_modules/@ng-bootstrap/ng-bootstrap/alert/alert.d.ts + 3 + + + Previous + + node_modules/@ng-bootstrap/ng-bootstrap/carousel/carousel.d.ts + 13 + + + Next + + node_modules/@ng-bootstrap/ng-bootstrap/carousel/carousel.d.ts + 17 + + + Previous month + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation.d.ts + 4 + + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation.d.ts + 5 + + + Next month + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation.d.ts + 26 + + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation.d.ts + 27 + + + Select month + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation-select.d.ts + 6 + + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation-select.d.ts + 7 + + + Select year + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation-select.d.ts + 15 + + + node_modules/@ng-bootstrap/ng-bootstrap/datepicker/datepicker-navigation-select.d.ts + 16 + + + «« + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 2 + + + « + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 3 + + + » + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 4 + + + »» + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 5 + + + First + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 14 + + + Previous + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 23 + + + Next + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 41 + + + Last + + node_modules/@ng-bootstrap/ng-bootstrap/pagination/pagination.d.ts + 49 + + + % + + node_modules/@ng-bootstrap/ng-bootstrap/progressbar/progressbar.d.ts + 6 + + + Increment hours + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 9 + + + HH + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 12 + + + Hours + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 14 + + + Decrement hours + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 21 + + + Increment minutes + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 30 + + + MM + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 33 + + + Minutes + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 35 + + + Decrement minutes + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 42 + + + Increment seconds + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 51 + + + SS + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 54 + + + Seconds + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 56 + + + Decrement seconds + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 63 + + + + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 71 + + + + + node_modules/@ng-bootstrap/ng-bootstrap/timepicker/timepicker.d.ts + 72 + + + Close + + node_modules/@ng-bootstrap/ng-bootstrap/toast/toast.d.ts + 8 + + + You don't have notifications. + + src/app/shared/users/user-notifications.component.html + 1 + + + + + + + published a new video: + + + + src/app/shared/users/user-notifications.component.html + 7 + + + + + + + Your video has been unblacklisted + + + + src/app/shared/users/user-notifications.component.html + 15 + + + + + + + Your video has been blacklisted + + + + src/app/shared/users/user-notifications.component.html + 23 + + + + + + + A new video abuse has been created on video + + + + src/app/shared/users/user-notifications.component.html + 31 + + + + + + + The recently added video has been auto-blacklisted + + + + src/app/shared/users/user-notifications.component.html + 39 + + + + + + + commented your video + + + + src/app/shared/users/user-notifications.component.html + 47 + + + + + + + Your video has been published + + + + src/app/shared/users/user-notifications.component.html + 55 + + + + + + + Your video import succeeded + + + + src/app/shared/users/user-notifications.component.html + 63 + + + + + + + Your video import failed + + + + src/app/shared/users/user-notifications.component.html + 71 + + + + + + + User registered on your instance + + + + src/app/shared/users/user-notifications.component.html + 79 + + + + + + + is following + + your channel + your account + + + + src/app/shared/users/user-notifications.component.html + 87 + + + + + + + mentioned you on video + + + + src/app/shared/users/user-notifications.component.html + 98 + + + + + + + Your instance has a new follower () + awaiting your approval + + + + src/app/shared/users/user-notifications.component.html + 106 + + + + + + + Your instance automatically followed + + + + src/app/shared/users/user-notifications.component.html + 115 + + + Save to + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 4 + + + Options + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 9 + + + Start at + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 17 + + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 55 + + + src/app/videos/+video-watch/modal/video-share.component.html + 61 + + + Stop at + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 31 + + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 69 + + + src/app/videos/+video-watch/modal/video-share.component.html + 112 + + + Display name + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 64 + + + src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html + 6 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 28 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 28 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 9 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 9 + + + src/app/+signup/+register/register-step-user.component.html + 4 + + + Create + + src/app/shared/video-playlist/video-add-to-playlist.component.html + 74 + + + Download video + + src/app/shared/video/modals/video-download.component.html + 3 + + + Direct download + + src/app/shared/video/modals/video-download.component.html + 27 + + + Torrent (.torrent file) + + src/app/shared/video/modals/video-download.component.html + 32 + + + + Cancel + + + src/app/shared/video/modals/video-download.component.html + 38 + + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 47 + + + Download + + src/app/shared/video/modals/video-download.component.html + 43 + + + Report video + + src/app/shared/video/modals/video-report.component.html + 3 + + + + Your report will be sent to moderators of . + It will be forwarded to origin instance too. + + + src/app/shared/video/modals/video-report.component.html + 9 + + + Reason... + + src/app/shared/video/modals/video-report.component.html + 16 + + + src/app/shared/video/modals/video-blacklist.component.html + 11 + + + src/app/shared/moderation/user-ban-modal.component.html + 11 + + + + Cancel + + + src/app/shared/video/modals/video-report.component.html + 24 + + + src/app/shared/video/modals/video-blacklist.component.html + 26 + + + src/app/shared/video/videos-selection.component.html + 15 + + + src/app/+about/about-instance/contact-admin-modal.component.html + 47 + + + Submit + + src/app/shared/video/modals/video-report.component.html + 29 + + + src/app/shared/video/modals/video-blacklist.component.html + 31 + + + src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.html + 26 + + + src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html + 29 + + + src/app/+about/about-instance/contact-admin-modal.component.html + 52 + + + Blacklist video + + src/app/shared/video/modals/video-blacklist.component.html + 3 + + + Unfederate the video (ask for its deletion from the remote instances) + + src/app/shared/video/modals/video-blacklist.component.html + 21 + + + Unlisted + + src/app/shared/video/video-miniature.component.html + 12 + + + src/app/videos/+video-watch/video-watch-playlist.component.html + 6 + + + Private + + src/app/shared/video/video-miniature.component.html + 13 + + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 33 + + + src/app/videos/+video-watch/video-watch-playlist.component.html + 7 + + + views + + src/app/shared/video/video-miniature.component.html + 24 + + + Blacklisted + + src/app/shared/video/video-miniature.component.html + 42 + + + + Sensitive + + + src/app/shared/video/video-miniature.component.html + 46 + + + {VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other { videos} } + + src/app/shared/video-playlist/video-playlist-miniature.component.html + 9 + + + + + + + src/app/shared/video-playlist/video-playlist-miniature.component.html + 22 + + + Updated + + src/app/shared/video-playlist/video-playlist-miniature.component.html + 29 + + + Unavailable + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 32 + + + Deleted + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 34 + + + Edit starts/stops at + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 48 + + + Save + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 80 + + + src/app/videos/+video-watch/video-watch.component.html + 92 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 59 + + + src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.html + 15 + + + Delete from + + src/app/shared/video-playlist/video-playlist-element-miniature.component.html + 85 + + + No results. + + src/app/shared/video/videos-selection.component.html + 1 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/videos/video-list/video-overview.component.html + 3 + + + src/app/shared/video/abstract-video-list.html + 20 + + + src/app/shared/video/abstract-video-list.html + 20 + + + Delete + + src/app/shared/buttons/delete-button.component.html + 5 + + + src/app/videos/+video-edit/shared/video-edit.component.html + 181 + + + src/app/videos/+video-watch/comment/video-comment.component.html + 15 + + + src/app/+my-account/my-account-videos/my-account-videos.component.html + 13 + + + Edit + + src/app/shared/buttons/edit-button.component.html + 5 + + + src/app/shared/buttons/edit-button.component.html + 1 + + + src/app/videos/+video-edit/shared/video-edit.component.html + 219 + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 41 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 63 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 63 + + + Truncated preview + + src/app/shared/forms/markdown-textarea.component.html + 9 + + + Complete preview + + src/app/shared/forms/markdown-textarea.component.html + 13 + + + Get help + + src/app/shared/misc/help.component.html + 29 + + + + Subscribe + + + src/app/shared/user-subscription/subscribe-button.component.html + 6 + + + + Unsubscribe + + + src/app/shared/user-subscription/subscribe-button.component.html + 18 + + + + Subscribe + + + src/app/shared/user-subscription/subscribe-button.component.html + 26 + + + Using an ActivityPub account + + src/app/shared/user-subscription/subscribe-button.component.html + 36 + + + Subscribe with an account on + + src/app/shared/user-subscription/subscribe-button.component.html + 39 + + + Subscribe with your local account + + src/app/shared/user-subscription/subscribe-button.component.html + 40 + + + Subscribe with a Mastodon account: + + src/app/shared/user-subscription/subscribe-button.component.html + 43 + + + Using a syndication feed + + src/app/shared/user-subscription/subscribe-button.component.html + 48 + + + Subscribe via RSS + + src/app/shared/user-subscription/subscribe-button.component.html + 49 + + + + Remote subscribe + Remote interact + + + src/app/shared/user-subscription/remote-subscribe.component.html + 10 + + + + You can subscribe to the channel via any ActivityPub-capable fediverse instance. + For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there. + + + src/app/shared/user-subscription/remote-subscribe.component.html + 17 + + + + You can interact with this via any ActivityPub-capable fediverse instance. + For instance with Mastodon or Pleroma you can type the current URL in the search box and interact with it there. + + + src/app/shared/user-subscription/remote-subscribe.component.html + 26 + + + + Default NSFW/sensitive videos policy + can be redefined by the users + + + src/app/shared/instance/instance-features-table.component.html + 5 + + + User registration allowed + + src/app/shared/instance/instance-features-table.component.html + 14 + + + Video uploads + + src/app/shared/instance/instance-features-table.component.html + 21 + + + src/app/shared/instance/instance-features-table.component.html + 32 + + + Transcoding in multiple resolutions + + src/app/shared/instance/instance-features-table.component.html + 25 + + + Video quota + + src/app/shared/instance/instance-features-table.component.html + 40 + + + src/app/+admin/users/user-edit/user-edit.component.html + 57 + + + src/app/+admin/users/user-edit/user-edit.component.html + 57 + + + + Unlimited ( per day) + + + src/app/shared/instance/instance-features-table.component.html + 53 + + + Import + + src/app/shared/instance/instance-features-table.component.html + 60 + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 40 + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 46 + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 286 + + + HTTP import (YouTube, Vimeo, direct URL...) + + src/app/shared/instance/instance-features-table.component.html + 64 + + + Torrent import + + src/app/shared/instance/instance-features-table.component.html + 71 + + + Player + + src/app/shared/instance/instance-features-table.component.html + 79 + + + P2P enabled + + src/app/shared/instance/instance-features-table.component.html + 83 + + + Loading instance statistics... + + src/app/shared/instance/instance-statistics.component.html + 1 + + + Local + + src/app/shared/instance/instance-statistics.component.html + 4 + + + src/app/menu/menu.component.html + 86 + + + users + + src/app/shared/instance/instance-statistics.component.html + 11 + + + videos + + src/app/shared/instance/instance-statistics.component.html + 21 + + + src/app/shared/instance/instance-statistics.component.html + 65 + + + video views + + src/app/shared/instance/instance-statistics.component.html + 31 + + + video comments + + src/app/shared/instance/instance-statistics.component.html + 41 + + + src/app/shared/instance/instance-statistics.component.html + 75 + + + of hosted video + + src/app/shared/instance/instance-statistics.component.html + 51 + + + Federation + + src/app/shared/instance/instance-statistics.component.html + 58 + + + followers + + src/app/shared/instance/instance-statistics.component.html + 85 + + + following + + src/app/shared/instance/instance-statistics.component.html + 95 + + + Ban + + src/app/shared/moderation/user-ban-modal.component.html + 3 + + + + A banned user will no longer be able to login. + + + src/app/shared/moderation/user-ban-modal.component.html + 18 + + + Cancel + + src/app/shared/moderation/user-ban-modal.component.html + 23 + + + src/app/shared/confirm/confirm.component.html + 19 + + + src/app/login/login.component.html + 79 + + + src/app/videos/+video-watch/modal/video-support.component.html + 10 + + + src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.html + 23 + + + Ban this user + + src/app/shared/moderation/user-ban-modal.component.html + 26 + + + + + src/app/shared/menu/top-menu-dropdown.component.html + 11 + + + (extensions: , max size: ) + + src/app/shared/images/preview-upload.component.html + 12 + + + + Login + + + src/app/login/login.component.html + 2 + + + Request new verification email. + + src/app/login/login.component.html + 7 + + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html + 16 + + + User + + src/app/login/login.component.html + 13 + + + src/app/+signup/+register/register.component.html + 13 + + + Username or email address + + src/app/login/login.component.html + 15 + + + + or create an account + + + src/app/login/login.component.html + 18 + + + + or create an account on another instance + + + src/app/login/login.component.html + 22 + + + User registration is not allowed on this instance, but you can register on many others! + + src/app/login/login.component.html + 28 + + + Password + + src/app/login/login.component.html + 39 + + + src/app/login/login.component.html + 42 + + + src/app/reset-password/reset-password.component.html + 8 + + + src/app/reset-password/reset-password.component.html + 10 + + + src/app/+admin/users/user-edit/user-edit.component.html + 31 + + + src/app/+admin/users/user-edit/user-edit.component.html + 31 + + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 19 + + + src/app/+signup/+register/register-step-user.component.html + 52 + + + src/app/+signup/+register/register-step-user.component.html + 54 + + + I forgot my password + + src/app/login/login.component.html + 45 + + + Login + + src/app/login/login.component.html + 52 + + + src/app/menu/menu.component.html + 32 + + + Forgot your password + + src/app/login/login.component.html + 58 + + + + We are sorry, you cannot recover your password because your instance administrator did not configure the PeerTube email system. + + + src/app/login/login.component.html + 65 + + + Email + + src/app/login/login.component.html + 70 + + + src/app/+admin/users/user-edit/user-edit.component.html + 19 + + + src/app/+admin/users/user-edit/user-edit.component.html + 19 + + + src/app/+admin/users/user-list/user-list.component.html + 41 + + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 22 + + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html + 4 + + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html + 8 + + + src/app/+signup/+register/register-step-user.component.html + 41 + + + src/app/+signup/+register/register-step-user.component.html + 43 + + + Email address + + src/app/login/login.component.html + 72 + + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html + 10 + + + Send me an email to reset my password + + src/app/login/login.component.html + 82 + + + + Reset my password + + + src/app/reset-password/reset-password.component.html + 2 + + + Confirm password + + src/app/reset-password/reset-password.component.html + 19 + + + Confirmed password + + src/app/reset-password/reset-password.component.html + 21 + + + Reset my password + + src/app/reset-password/reset-password.component.html + 29 + + + results + + src/app/search/search.component.html + 5 + + + + for + + + src/app/search/search.component.html + 6 + + + + Filters + + + + src/app/search/search.component.html + 16 + + + + No results found + + + src/app/search/search.component.html + 28 + + + subscribers + + src/app/search/search.component.html + 44 + + + Welcome to PeerTube, dear administrator! + + src/app/modal/welcome-modal.component.html + 3 + + + CLI + documentation + + src/app/modal/welcome-modal.component.html + 12 + + + Upload or import videos, parse logs, prune storage directories, reset user password... + + src/app/modal/welcome-modal.component.html + 15 + + + Administer + documentation + + src/app/modal/welcome-modal.component.html + 19 + + + Managing users, following other instances, dealing with spammers... + + src/app/modal/welcome-modal.component.html + 22 + + + Use + documentation + + src/app/modal/welcome-modal.component.html + 26 + + + Setup your account, managing video playlists, discover third-party applications... + + src/app/modal/welcome-modal.component.html + 29 + + + Useful links + + src/app/modal/welcome-modal.component.html + 41 + + + Official PeerTube website (news, support, contribute...): https://joinpeertube.org + + src/app/modal/welcome-modal.component.html + 44 + + + Put your instance on the public PeerTube index: https://instances.joinpeertube.org/instances + + + src/app/modal/welcome-modal.component.html + 47 + + + It's time to configure your instance! + + src/app/modal/welcome-modal.component.html + 59 + + + + Choosing your instance name, setting up a description, specifying who you are, + why you created your instance and how long you plan to maintain your it + is very important for visitors to understand on what type of instance they are. + + + src/app/modal/welcome-modal.component.html + 61 + + + + If you want to open registrations, please decide what are your moderation rules, fill your instance + terms + and specify the categories and languages you speak. This way, you will help users to register on the + appropriate + PeerTube instance. + + + src/app/modal/welcome-modal.component.html + 67 + + + Remind me later + + src/app/modal/welcome-modal.component.html + 79 + + + + Configure my instance + + + src/app/modal/welcome-modal.component.html + 82 + + + Configuration warning! + + src/app/modal/instance-config-warning-modal.component.html + 3 + + + Hello dear administrator. You enabled user registration on your instance but you did not configure the following fields: + + src/app/modal/instance-config-warning-modal.component.html + 10 + + + Instance name + + src/app/modal/instance-config-warning-modal.component.html + 13 + + + Instance short description + + src/app/modal/instance-config-warning-modal.component.html + 14 + + + Who you are + + src/app/modal/instance-config-warning-modal.component.html + 16 + + + How long you plan to maintain your instance + + src/app/modal/instance-config-warning-modal.component.html + 17 + + + How you plan to pay your instance + + src/app/modal/instance-config-warning-modal.component.html + 18 + + + How you will moderate your instance + + src/app/modal/instance-config-warning-modal.component.html + 20 + + + Instance terms + + src/app/modal/instance-config-warning-modal.component.html + 21 + + + Configure these fields + + src/app/modal/instance-config-warning-modal.component.html + 30 + + + Don't show me this warning anymore + + src/app/modal/instance-config-warning-modal.component.html + 38 + + + Close + + src/app/modal/instance-config-warning-modal.component.html + 43 + + + src/app/videos/+video-watch/modal/video-share.component.html + 173 + + + Change the language + + src/app/menu/language-chooser.component.html + 3 + + + src/app/menu/menu.component.html + 107 + + + + Help to translate PeerTube! + + + src/app/menu/language-chooser.component.html + 8 + + + My public profile + + src/app/menu/menu.component.html + 17 + + + My account + + src/app/menu/menu.component.html + 21 + + + Log out + + src/app/menu/menu.component.html + 25 + + + Create an account + + src/app/menu/menu.component.html + 33 + + + My library + + src/app/menu/menu.component.html + 37 + + + Videos + + src/app/menu/menu.component.html + 41 + + + src/app/menu/menu.component.html + 62 + + + src/app/+accounts/accounts.component.html + 38 + + + src/app/+video-channels/video-channels.component.html + 24 + + + Playlists + + src/app/menu/menu.component.html + 46 + + + Subscriptions + + src/app/menu/menu.component.html + 51 + + + History + + src/app/menu/menu.component.html + 56 + + + Discover + + src/app/menu/menu.component.html + 66 + + + Trending + + src/app/menu/menu.component.html + 71 + + + Most liked + + src/app/menu/menu.component.html + 76 + + + Recently added + + src/app/menu/menu.component.html + 81 + + + More + + src/app/menu/menu.component.html + 91 + + + Administration + + src/app/menu/menu.component.html + 95 + + + About + + src/app/menu/menu.component.html + 100 + + + src/app/+accounts/accounts.component.html + 40 + + + src/app/+video-channels/video-channels.component.html + 26 + + + Show keyboard shortcuts + + src/app/menu/menu.component.html + 111 + + + View your notifications + + src/app/menu/avatar-notification.component.html + 3 + + + Notifications + + src/app/menu/avatar-notification.component.html + 13 + + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 13 + + + Update your notification preferences + + src/app/menu/avatar-notification.component.html + 16 + + + See all your notifications + + src/app/menu/avatar-notification.component.html + 30 + + + Search... + + src/app/header/header.component.html + 2 + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 6 + + + Upload + + src/app/header/header.component.html + 9 + + + Sort + + src/app/search/search-filters.component.html + 6 + + + Published date + + src/app/search/search-filters.component.html + 15 + + + Original publication year + + src/app/search/search-filters.component.html + 24 + + + After... + + src/app/search/search-filters.component.html + 30 + + + Before... + + src/app/search/search-filters.component.html + 37 + + + Duration + + src/app/search/search-filters.component.html + 45 + + + Display sensitive content + + src/app/search/search-filters.component.html + 54 + + + Yes + + src/app/search/search-filters.component.html + 58 + + + No + + src/app/search/search-filters.component.html + 63 + + + Category + + src/app/search/search-filters.component.html + 71 + + + src/app/videos/+video-edit/shared/video-edit.component.html + 65 + + + src/app/videos/+video-watch/video-watch.component.html + 164 + + + Licence + + src/app/search/search-filters.component.html + 81 + + + src/app/videos/+video-edit/shared/video-edit.component.html + 79 + + + src/app/videos/+video-watch/video-watch.component.html + 173 + + + Language + + src/app/search/search-filters.component.html + 91 + + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 10 + + + src/app/videos/+video-edit/shared/video-edit.component.html + 93 + + + src/app/videos/+video-watch/video-watch.component.html + 182 + + + All of these tags + + src/app/search/search-filters.component.html + 103 + + + One of these tags + + src/app/search/search-filters.component.html + 108 + + + Filter + + src/app/search/search-filters.component.html + 115 + + + Display unlisted and private videos + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + src/app/shared/video/abstract-video-list.html + 14 + + + Add caption + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 5 + + + Select the caption file + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 24 + + + + This will replace an existing caption! + + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 29 + + + + Cancel + + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 35 + + + src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.html + 21 + + + src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html + 24 + + + Add this caption + + src/app/videos/+video-edit/shared/video-caption-add-modal.component.html + 40 + + + Title + + src/app/videos/+video-edit/shared/video-edit.component.html + 9 + + + Tags + + src/app/videos/+video-edit/shared/video-edit.component.html + 17 + + + src/app/videos/+video-watch/video-watch.component.html + 191 + + + + Tags could be used to suggest relevant recommendations. + Press Enter to add a new tag. + + + src/app/videos/+video-edit/shared/video-edit.component.html + 21 + + + + Tag + + src/app/videos/+video-edit/shared/video-edit.component.html + 30 + + + Enter a new tag + + src/app/videos/+video-edit/shared/video-edit.component.html + 30 + + + Description + + src/app/videos/+video-edit/shared/video-edit.component.html + 36 + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 31 + + + src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html + 17 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 39 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 39 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 20 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 20 + + + src/app/+accounts/account-about/account-about.component.html + 3 + + + src/app/+video-channels/video-channel-about/video-channel-about.component.html + 4 + + + src/app/+about/about-instance/about-instance.component.html + 55 + + + + Video descriptions are truncated by default and require manual action to expand them. + + + src/app/videos/+video-edit/shared/video-edit.component.html + 40 + + + Channel + + src/app/videos/+video-edit/shared/video-edit.component.html + 56 + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 22 + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 12 + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 28 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 46 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 46 + + + src/app/+signup/+register/register.component.html + 23 + + + Privacy + + src/app/videos/+video-edit/shared/video-edit.component.html + 107 + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 31 + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 21 + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 37 + + + src/app/videos/+video-watch/video-watch.component.html + 154 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 33 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 33 + + + Schedule publication () + + src/app/videos/+video-edit/shared/video-edit.component.html + 122 + + + This video contains mature or explicit content + + src/app/videos/+video-edit/shared/video-edit.component.html + 136 + + + Some instances do not list videos containing mature or explicit content by default. + + src/app/videos/+video-edit/shared/video-edit.component.html + 140 + + + Wait transcoding before publishing the video + + src/app/videos/+video-edit/shared/video-edit.component.html + 146 + + + If you decide not to wait for transcoding before publishing the video, it could be unplayable until transcoding ends. + + src/app/videos/+video-edit/shared/video-edit.component.html + 150 + + + Basic info + + src/app/videos/+video-edit/shared/video-edit.component.html + 4 + + + Add another caption + + src/app/videos/+video-edit/shared/video-edit.component.html + 166 + + + See the subtitle file + + src/app/videos/+video-edit/shared/video-edit.component.html + 175 + + + Already uploaded ✔ + + src/app/videos/+video-edit/shared/video-edit.component.html + 179 + + + Will be created on update + + src/app/videos/+video-edit/shared/video-edit.component.html + 187 + + + Cancel create + + src/app/videos/+video-edit/shared/video-edit.component.html + 189 + + + Will be deleted on update + + src/app/videos/+video-edit/shared/video-edit.component.html + 195 + + + Cancel deletion + + src/app/videos/+video-edit/shared/video-edit.component.html + 197 + + + + No captions for now. + + + src/app/videos/+video-edit/shared/video-edit.component.html + 202 + + + Captions + + src/app/videos/+video-edit/shared/video-edit.component.html + 159 + + + Video preview + + src/app/videos/+video-edit/shared/video-edit.component.html + 216 + + + Support + + src/app/videos/+video-edit/shared/video-edit.component.html + 225 + + + src/app/videos/+video-watch/modal/video-support.component.html + 3 + + + src/app/videos/+video-watch/video-watch.component.html + 78 + + + Short text to tell people how they can support you (membership platform...). + + src/app/videos/+video-edit/shared/video-edit.component.html + 226 + + + Original publication date + + src/app/videos/+video-edit/shared/video-edit.component.html + 239 + + + This is the date when the content was originally published (e.g. the release date for a film) + + src/app/videos/+video-edit/shared/video-edit.component.html + 240 + + + Enable video comments + + src/app/videos/+video-edit/shared/video-edit.component.html + 254 + + + Enable download + + src/app/videos/+video-edit/shared/video-edit.component.html + 259 + + + Advanced settings + + src/app/videos/+video-edit/shared/video-edit.component.html + 210 + + + URL + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 6 + + + src/app/videos/+video-watch/modal/video-share.component.html + 10 + + + + You can import any URL supported by youtube-dl + or URL that points to a raw MP4 file. + You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 10 + + + Sorry, but something went wrong + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 48 + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 62 + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 53 + + + + Congratulations, the video behind will be imported! You can already add information about this video. + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 52 + + + Update + + src/app/videos/+video-edit/video-add-components/video-import-url.component.html + 69 + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 74 + + + src/app/videos/+video-edit/video-update.component.html + 17 + + + Select the file to upload + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 6 + + + Scheduled + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 25 + + + Video background image + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 32 + + + + Image that will be merged with your audio file. + + The chosen image will be definitive and cannot be modified. + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 34 + + + + Congratulations! Your video is now available in your private library. + + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 66 + + + Publish will be available when upload is finished + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 79 + + + Publish + + src/app/videos/+video-edit/video-add-components/video-upload.component.html + 86 + + + Select the torrent to import + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 6 + + + Or + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 11 + + + Paste magnet URI + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 14 + + + + You can import any torrent file that points to a mp4 file. + You should make sure you have diffusion rights over the content it points to, otherwise it could cause legal trouble to yourself and your instance. + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 17 + + + + Congratulations, the video will be imported with BitTorrent! You can already add information about this video. + + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.html + 57 + + + Import + + src/app/videos/+video-edit/video-add.component.html + 3 + + + Upload + + src/app/videos/+video-edit/video-add.component.html + 4 + + + Upload a file + + src/app/videos/+video-edit/video-add.component.html + 10 + + + Import with URL + + src/app/videos/+video-edit/video-add.component.html + 17 + + + Import with torrent + + src/app/videos/+video-edit/video-add.component.html + 24 + + + + Update + + + src/app/videos/+video-edit/video-update.component.html + 2 + + + + Other videos + + + src/app/videos/recommendations/recommended-videos.component.html + 3 + + + Share + + src/app/videos/+video-watch/modal/video-share.component.html + 3 + + + src/app/videos/+video-watch/video-watch.component.html + 83 + + + QR-Code + + src/app/videos/+video-watch/modal/video-share.component.html + 27 + + + + The url is not secured (no HTTPS), so the embed video won't work on HTTPS websites (web browsers block non secured HTTP requests on HTTPS websites). + + + src/app/videos/+video-watch/modal/video-share.component.html + 47 + + + Embed + + src/app/videos/+video-watch/modal/video-share.component.html + 35 + + + Auto select subtitle + + src/app/videos/+video-watch/modal/video-share.component.html + 76 + + + + More customization + + + src/app/videos/+video-watch/modal/video-share.component.html + 93 + + + + Less customization + + + src/app/videos/+video-watch/modal/video-share.component.html + 101 + + + Autoplay + + src/app/videos/+video-watch/modal/video-share.component.html + 127 + + + Muted + + src/app/videos/+video-watch/modal/video-share.component.html + 134 + + + src/app/+accounts/accounts.component.html + 20 + + + Loop + + src/app/videos/+video-watch/modal/video-share.component.html + 141 + + + Display video title + + src/app/videos/+video-watch/modal/video-share.component.html + 150 + + + Display privacy warning + + src/app/videos/+video-watch/modal/video-share.component.html + 157 + + + Display player controls + + src/app/videos/+video-watch/modal/video-share.component.html + 164 + + + Public + + src/app/videos/+video-watch/video-watch-playlist.component.html + 8 + + + + The video is being imported, it will be available when the import is finished. + + + src/app/videos/+video-watch/video-watch.component.html + 19 + + + + The video is being transcoded, it may not work properly. + + + src/app/videos/+video-watch/video-watch.component.html + 23 + + + + This video will be published on . + + + src/app/videos/+video-watch/video-watch.component.html + 27 + + + This video is blacklisted. + + src/app/videos/+video-watch/video-watch.component.html + 32 + + + + Published - views + + + src/app/videos/+video-watch/video-watch.component.html + 44 + + + + Published - views + + + src/app/videos/+video-watch/video-watch.component.html + 53 + + + Like this video + + src/app/videos/+video-watch/video-watch.component.html + 63 + + + Dislike this video + + src/app/videos/+video-watch/video-watch.component.html + 71 + + + Go the channel page + + src/app/videos/+video-watch/video-watch.component.html + 118 + + + By + + src/app/videos/+video-watch/video-watch.component.html + 129 + + + Go to the account page + + src/app/videos/+video-watch/video-watch.component.html + 128 + + + src/app/+admin/users/user-list/user-list.component.html + 63 + + + Show more + + src/app/videos/+video-watch/video-watch.component.html + 141 + + + Show less + + src/app/videos/+video-watch/video-watch.component.html + 147 + + + Originally published + + src/app/videos/+video-watch/video-watch.component.html + 159 + + + Friendly Reminder: + + src/app/videos/+video-watch/video-watch.component.html + 211 + + + + the sharing system used for this video implies that some technical information about your system (such as a public IP address) can be sent to other peers. + + + src/app/videos/+video-watch/video-watch.component.html + 212 + + + More information + + src/app/videos/+video-watch/video-watch.component.html + 215 + + + Get more information + + src/app/videos/+video-watch/video-watch.component.html + 215 + + + + OK + + + src/app/videos/+video-watch/video-watch.component.html + 218 + + + + Comments + + + src/app/videos/+video-watch/comment/video-comments.component.html + 3 + + + No comments. + + src/app/videos/+video-watch/comment/video-comments.component.html + 17 + + + View all replies + + src/app/videos/+video-watch/comment/video-comments.component.html + 55 + + + + Comments are disabled. + + + src/app/videos/+video-watch/comment/video-comments.component.html + 64 + + + Add comment... + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 6 + + + + Post comment + + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 20 + + + You are one step away from commenting + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 28 + + + + If you have an account on this instance, you can login: + + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 32 + + + login to comment + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 35 + + + + Otherwise, you can comment using an account on any ActivityPub-compatible instance. + On most platforms, you can find the video by typing its URL in the search bar and then comment it + from within the software's interface. + + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 36 + + + + If you have an account on Mastodon or Pleroma, you can open it directly in their interface: + + + src/app/videos/+video-watch/comment/video-comment-add.component.html + 41 + + + Highlighted comment + + src/app/videos/+video-watch/comment/video-comment.component.html + 5 + + + Reply + + src/app/videos/+video-watch/comment/video-comment.component.html + 14 + + + + Users + + + src/app/+admin/admin.component.html + 3 + + + + Manage follows + + + src/app/+admin/admin.component.html + 7 + + + + Moderation + + + src/app/+admin/admin.component.html + 11 + + + src/app/+about/about-instance/about-instance.component.html + 60 + + + + Configuration + + + src/app/+admin/admin.component.html + 15 + + + + Plugins/Themes + + + src/app/+admin/admin.component.html + 19 + + + + System + + + src/app/+admin/admin.component.html + 23 + + + Manage follows + + src/app/+admin/follows/follows.component.html + 2 + + + Following + + src/app/+admin/follows/follows.component.html + 5 + + + Follow + + src/app/+admin/follows/follows.component.html + 7 + + + Followers + + src/app/+admin/follows/follows.component.html + 9 + + + src/app/+about/about-follows/about-follows.component.html + 3 + + + 1 host (without "http://") per line + + src/app/+admin/follows/following-add/following-add.component.html + 5 + + + + It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers. + + + src/app/+admin/follows/following-add/following-add.component.html + 17 + + + Add following + + src/app/+admin/follows/following-add/following-add.component.html + 21 + + + Filter... + + src/app/+admin/follows/followers-list/followers-list.component.html + 8 + + + src/app/+admin/follows/following-list/following-list.component.html + 9 + + + src/app/+admin/users/user-list/user-list.component.html + 27 + + + ID + + src/app/+admin/follows/followers-list/followers-list.component.html + 16 + + + src/app/+admin/follows/following-list/following-list.component.html + 18 + + + src/app/+admin/system/jobs/jobs.component.html + 18 + + + Follower handle + + src/app/+admin/follows/followers-list/followers-list.component.html + 17 + + + State + + src/app/+admin/follows/followers-list/followers-list.component.html + 18 + + + src/app/+admin/follows/following-list/following-list.component.html + 20 + + + src/app/+admin/system/jobs/jobs.component.html + 20 + + + src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html + 10 + + + Score + + src/app/+admin/follows/followers-list/followers-list.component.html + 19 + + + Created + + src/app/+admin/follows/followers-list/followers-list.component.html + 20 + + + src/app/+admin/follows/following-list/following-list.component.html + 21 + + + src/app/+admin/users/user-list/user-list.component.html + 44 + + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 9 + + + src/app/+admin/system/jobs/jobs.component.html + 21 + + + src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html + 11 + + + Accepted + + src/app/+admin/follows/followers-list/followers-list.component.html + 30 + + + src/app/+admin/follows/following-list/following-list.component.html + 32 + + + Pending + + src/app/+admin/follows/followers-list/followers-list.component.html + 31 + + + src/app/+admin/follows/following-list/following-list.component.html + 33 + + + Accept + + src/app/+admin/follows/followers-list/followers-list.component.html + 38 + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 41 + + + Refuse + + src/app/+admin/follows/followers-list/followers-list.component.html + 39 + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 42 + + + Host + + src/app/+admin/follows/following-list/following-list.component.html + 19 + + + Redundancy allowed + + src/app/+admin/follows/following-list/following-list.component.html + 22 + + + Create user + + src/app/+admin/users/user-edit/user-edit.component.html + 1 + + + src/app/+admin/users/user-edit/user-edit.component.html + 1 + + + src/app/+admin/users/user-list/user-list.component.html + 6 + + + Edit user + + src/app/+admin/users/user-edit/user-edit.component.html + 2 + + + src/app/+admin/users/user-edit/user-edit.component.html + 2 + + + Username + + src/app/+admin/users/user-edit/user-edit.component.html + 8 + + + src/app/+admin/users/user-edit/user-edit.component.html + 8 + + + src/app/+signup/+register/register-step-user.component.html + 19 + + + john + + src/app/+admin/users/user-edit/user-edit.component.html + 10 + + + src/app/+admin/users/user-edit/user-edit.component.html + 10 + + + mail@example.com + + src/app/+admin/users/user-edit/user-edit.component.html + 21 + + + src/app/+admin/users/user-edit/user-edit.component.html + 21 + + + Role + + src/app/+admin/users/user-edit/user-edit.component.html + 42 + + + src/app/+admin/users/user-edit/user-edit.component.html + 42 + + + src/app/+admin/users/user-list/user-list.component.html + 43 + + + + Transcoding is enabled on server. The video quota only take in account original video. + At most, this user could use ~ . + + + src/app/+admin/users/user-edit/user-edit.component.html + 66 + + + src/app/+admin/users/user-edit/user-edit.component.html + 66 + + + Daily video quota + + src/app/+admin/users/user-edit/user-edit.component.html + 73 + + + src/app/+admin/users/user-edit/user-edit.component.html + 73 + + + Bypass video auto blacklist + + src/app/+admin/users/user-edit/user-edit.component.html + 86 + + + src/app/+admin/users/user-edit/user-edit.component.html + 86 + + + Danger Zone + + src/app/+admin/users/user-edit/user-edit.component.html + 94 + + + src/app/+admin/users/user-edit/user-edit.component.html + 94 + + + Send a link to reset the password by email to the user + + src/app/+admin/users/user-edit/user-edit.component.html + 97 + + + src/app/+admin/users/user-edit/user-edit.component.html + 97 + + + Ask for new password + + src/app/+admin/users/user-edit/user-edit.component.html + 98 + + + src/app/+admin/users/user-edit/user-edit.component.html + 98 + + + Manually set the user password + + src/app/+admin/users/user-edit/user-edit.component.html + 102 + + + src/app/+admin/users/user-edit/user-edit.component.html + 102 + + + Show + + src/app/+admin/users/user-edit/user-password.component.html + 10 + + + Hide + + src/app/+admin/users/user-edit/user-password.component.html + 11 + + + Users list + + src/app/+admin/users/user-list/user-list.component.html + 2 + + + Batch actions + + src/app/+admin/users/user-list/user-list.component.html + 19 + + + Username + + src/app/+admin/users/user-list/user-list.component.html + 40 + + + Video quota + + src/app/+admin/users/user-list/user-list.component.html + 42 + + + (banned) + + src/app/+admin/users/user-list/user-list.component.html + 65 + + + User's email must be verified to login + + src/app/+admin/users/user-list/user-list.component.html + 72 + + + User's email is verified / User can login without email verification + + src/app/+admin/users/user-list/user-list.component.html + 76 + + + Ban reason: + + src/app/+admin/users/user-list/user-list.component.html + 95 + + + Moderation + + src/app/+admin/moderation/moderation.component.html + 2 + + + Video abuses + + src/app/+admin/moderation/moderation.component.html + 5 + + + + + src/app/+admin/moderation/moderation.component.html + 7 + + + Auto-blacklisted videos + + src/app/+admin/moderation/moderation.component.html + 9 + + + Muted accounts + + src/app/+admin/moderation/moderation.component.html + 11 + + + src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html + 2 + + + Muted servers + + src/app/+admin/moderation/moderation.component.html + 13 + + + Video name + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 8 + + + Sensitive + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 9 + + + Unfederated + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 10 + + + Date + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 11 + + + Go to the video + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 25 + + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 33 + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 33 + + + Actions + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 35 + + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 44 + + + Blacklist reason: + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.html + 43 + + + Moderation comment + + src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.html + 3 + + + + This comment can only be seen by you or the other moderators. + + + src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.html + 18 + + + Update this comment + + src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.html + 26 + + + Reporter + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 8 + + + Video + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 10 + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 14 + + + src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html + 9 + + + State + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 11 + + + Go to the account + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 25 + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 27 + + + Reason: + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 53 + + + Moderation comment: + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.html + 57 + + + Unblacklist + + src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.html + 12 + + + src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.html + 17 + + + Instance + + src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html + 8 + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 10 + + + src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html + 12 + + + src/app/+about/about.component.html + 5 + + + Muted at + + src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html + 9 + + + src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html + 9 + + + src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html + 13 + + + src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html + 13 + + + Unmute + + src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.html + 19 + + + src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html + 18 + + + src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html + 22 + + + src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html + 23 + + + Account + + src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.html + 8 + + + src/app/+my-account/my-account-blocklist/my-account-blocklist.component.html + 12 + + + Plugins/Themes + + src/app/+admin/plugins/plugins.component.html + 2 + + + Installed + + src/app/+admin/plugins/plugins.component.html + 5 + + + Search + + src/app/+admin/plugins/plugins.component.html + 7 + + + Homepage + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html + 26 + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 51 + + + Go to the plugin homepage + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html + 23 + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 48 + + + Settings + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html + 29 + + + Uninstall + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.html + 35 + + + + To load your new installed plugins or themes, refresh the page. + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 9 + + + Popular + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 16 + + + + for "" + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 22 + + + {VAR_PLURAL, plural, =1 {result} other {results} } + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 23 + + + + No results. + + + src/app/+admin/plugins/plugin-search/plugin-search.component.html + 28 + + + + This does not have settings. + + + src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.html + 22 + + + System + + src/app/+admin/system/system.component.html + 2 + + + Jobs + + src/app/+admin/system/system.component.html + 5 + + + Logs + + src/app/+admin/system/system.component.html + 7 + + + Debug + + src/app/+admin/system/system.component.html + 9 + + + Jobs list + + src/app/+admin/system/jobs/jobs.component.html + 2 + + + Type + + src/app/+admin/system/jobs/jobs.component.html + 19 + + + Processed on + + src/app/+admin/system/jobs/jobs.component.html + 22 + + + Finished on + + src/app/+admin/system/jobs/jobs.component.html + 23 + + + Refresh + + src/app/+admin/system/logs/logs.component.html + 14 + + + Name + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 13 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 12 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 12 + + + Short description + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 22 + + + Main instance categories + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 40 + + + No results found + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 46 + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 58 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 33 + + + Main languages you/your moderators speak + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 52 + + + Moderation & NSFW + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 63 + + + This instance is dedicated to sensitive or NSFW content + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 68 + + + + Enabling it will allow other administrators to know that you are mainly federating sensitive content. + Moreover, the NSFW checkbox on video upload will be automatically checked by default. + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 72 + + + Policy on videos containing sensitive content + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 81 + + + + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 85 + + + Do not list + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 93 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 14 + + + Blur thumbnails + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 94 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 15 + + + Display + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 95 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 16 + + + Terms + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 102 + + + src/app/+about/about-instance/about-instance.component.html + 77 + + + src/app/+signup/+register/register.component.html + 88 + + + Code of conduct + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 111 + + + src/app/+about/about-instance/about-instance.component.html + 71 + + + src/app/+signup/+register/register.component.html + 82 + + + Moderation information + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 120 + + + src/app/+about/about-instance/about-instance.component.html + 65 + + + src/app/+signup/+register/register.component.html + 76 + + + You and your instance + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 130 + + + Who is behind the instance? + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 133 + + + Why did you create this instance? + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 145 + + + How long do you plan to maintain this instance? + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 156 + + + How will you finance the PeerTube server? + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 167 + + + Other information + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 177 + + + What server/hardware does the instance run on? + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 180 + + + Instance information + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 5 + + + Theme & Default route + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 198 + + + Global theme + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 202 + + + default + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 206 + + + Default client route + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 216 + + + Discover videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 219 + + + Trending videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 220 + + + Most liked videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 221 + + + Recently added videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 222 + + + Local videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 223 + + + Signup + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 229 + + + Signup enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 235 + + + Signup requires email verification + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 242 + + + Signup limit + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 247 + + + Users + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 257 + + + Default video quota per user + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 261 + + + Default daily upload limit per user + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 273 + + + Video import with HTTP URL (i.e. YouTube) enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 294 + + + Video import with a torrent file or a magnet URI enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 301 + + + Auto-blacklist + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 309 + + + New videos of users automatically blacklisted enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 318 + + + Instance followers + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 327 + + + Other instances can follow your instance + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 335 + + + Manually approve new instance follower + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 342 + + + Instance followings + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 348 + + + Automatically follow other instances that follow you + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 357 + + + Automatically follow instance of the public index (below) + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 366 + + + Index URL + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 371 + + + Administrator + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 384 + + + Admin email + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 387 + + + Enable contact form + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 398 + + + Basic configuration + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 195 + + + Twitter + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 407 + + + Your Twitter username + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 413 + + + Indicates the Twitter account for the website or platform on which the content was published. + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 417 + + + Instance whitelisted by Twitter + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 431 + + + + If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share. + If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance. + Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on + https://cards-dev.twitter.com/validator + to see if you instance is whitelisted. + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 435 + + + Services + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 405 + + + Transcoding + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 455 + + + Transcoding enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 461 + + + If you disable transcoding, many videos from your users will not work! + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 465 + + + Allow your users to upload .mkv, .mov, .avi and .flv videos + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 478 + + + Allow additional extensions + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 475 + + + Allow your users to upload audio files that will be merged with the preview file on upload + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 489 + + + Allow audio files upload + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 486 + + + + Requires ffmpeg >= 4.1 and multiplies videos storage by 2! + + Generate HLS playlists and fragmented MP4 files resulting in a better playback than with the current default player: + + Resolution change is smoother + Faster playback in particular with long videos + More stable playback (less bugs/infinite loading) + + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 501 + + + HLS support enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 498 + + + Transcoding threads + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 517 + + + Resolution enabled + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 532 + + + Cache + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 541 + + + Some files are not federated (previews, captions). We fetch them directly from the origin instance and cache them. + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 545 + + + Previews cache size + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 552 + + + Video captions cache size + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 561 + + + Customizations + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 570 + + + JavaScript + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 575 + + + + Write JavaScript code directly.Example: console.log('my instance is amazing'); + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 578 + + + + Write CSS code directly. Example: +#custom-css + color: red; + + + + Prepend with #custom-css to override styles. Example: +#custom-css .logged-in-email + color: red; + + + + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 597 + + + Advanced configuration + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 452 + + + Update configuration + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 628 + + + It seems like the configuration is invalid. Please search for potential errors in the different tabs. + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.html + 629 + + + Video quota: + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 4 + + + Profile + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 7 + + + Video settings + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 10 + + + Interface + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 16 + + + Danger zone + + src/app/+my-account/my-account-settings/my-account-settings.component.html + 25 + + + Change password + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html + 5 + + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html + 30 + + + Current password + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html + 7 + + + New password + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html + 15 + + + Confirm new password + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.html + 23 + + + Default policy on videos containing sensitive content + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 3 + + + + With Do not list or Blur thumbnails, a confirmation will be requested to watch the video. + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 6 + + + Only display videos in the following languages + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 22 + + + In Recently added, Trending, Local and Search pages + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 25 + + + Use WebTorrent to exchange parts of the video with others + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 41 + + + Automatically plays video + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 48 + + + Automatically starts playing next video + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.html + 55 + + + Update my profile + + src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.html + 27 + + + + Your current email is + + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 4 + + + + is awaiting email verification + + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 8 + + + New email + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 15 + + + Your new email + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 17 + + + Your password + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 27 + + + Change email + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.html + 35 + + + Theme + + src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.html + 3 + + + instance default + + src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.html + 7 + + + peertube default + + src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.html + 8 + + + Change ownership + + src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.html + 3 + + + src/app/+my-account/my-account-videos/my-account-videos.component.html + 22 + + + Select the next owner + + src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.html + 10 + + + Accept ownership + + src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html + 3 + + + Select the target channel + + src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.html + 10 + + + Initiator + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 13 + + + + Created + + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 15 + + + Status + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 19 + + + Action + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 20 + + + + + src/app/+my-account/my-account-ownership/my-account-ownership.component.html + 38 + + + Create a new video channel + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html + 4 + + + Go to the channel + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html + 15 + + + src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html + 10 + + + subscribers + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.html + 20 + + + src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html + 15 + + + src/app/+accounts/account-video-channels/account-video-channels.component.html + 12 + + + src/app/+video-channels/video-channels.component.html + 14 + + + Create a video channel + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 6 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 6 + + + Example: my_channel + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 15 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 15 + + + Short text to tell people how they can support your channel (membership platform...).<br /><br /> +When you will upload a video in this channel, the video support field will be automatically filled by this text. + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 52 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 52 + + + Overwrite support field of all videos of this channel + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 67 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-edit.component.html + 67 + + + subscribers + + src/app/+my-account/shared/actor-avatar-info.component.html + 10 + + + Change the avatar + + src/app/+my-account/shared/actor-avatar-info.component.html + 15 + + + (extensions: , max size: ) + + src/app/+my-account/shared/actor-avatar-info.component.html + 18 + + + Target + + src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html + 8 + + + Once you delete your account, there is no going back. Please be certain. + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.html + 2 + + + Delete your account + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.html + 4 + + + You don't have any subscriptions yet. + + src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html + 1 + + + Created by + + src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html + 18 + + + src/app/+video-channels/video-channels.component.html + 17 + + + Go the owner account page + + src/app/+my-account/my-account-subscriptions/my-account-subscriptions.component.html + 17 + + + src/app/+video-channels/video-channels.component.html + 16 + + + Muted instances + + src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.html + 2 + + + History enabled + + src/app/+my-account/my-account-history/my-account-history.component.html + 4 + + + + + Delete history + + + src/app/+my-account/my-account-history/my-account-history.component.html + 7 + + + You don't have videos history yet. + + src/app/+my-account/my-account-history/my-account-history.component.html + 14 + + + + + Notification preferences + + + src/app/+my-account/my-account-notifications/my-account-notifications.component.html + 2 + + + + + Mark all as read + + + src/app/+my-account/my-account-notifications/my-account-notifications.component.html + 7 + + + Activities + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html + 2 + + + Web + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.html + 3 + + + Create a new playlist + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 1 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 1 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.html + 4 + + + Playlist thumbnail + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 60 + + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-edit.component.html + 60 + + + No videos in this playlist. + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-elements.component.html + 11 + + + Welcome to PeerTube! + + src/app/+signup/shared/signup-success.component.html + 8 + + + + If you need help to use PeerTube, you can have a look at the documentation. + + + src/app/+signup/shared/signup-success.component.html + 13 + + + + Verify account email confirmation + + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html + 2 + + + + + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html + 6 + + + + Email updated. + + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html + 9 + + + An error occurred. + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.html + 14 + + + + Request email for account verification + + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html + 2 + + + Send verification email + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html + 17 + + + This instance does not require email verification. + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.html + 20 + + + Banned + + src/app/+accounts/accounts.component.html + 19 + + + Instance muted + + src/app/+accounts/accounts.component.html + 21 + + + Muted by your instance + + src/app/+accounts/accounts.component.html + 22 + + + Instance muted by your instance + + src/app/+accounts/accounts.component.html + 23 + + + subscribers + + src/app/+accounts/accounts.component.html + 31 + + + Video channels + + src/app/+accounts/accounts.component.html + 36 + + + This account does not have channels. + + src/app/+accounts/account-video-channels/account-video-channels.component.html + 3 + + + See this video channel + + src/app/+accounts/account-video-channels/account-video-channels.component.html + 8 + + + This channel does not have videos. + + src/app/+accounts/account-video-channels/account-video-channels.component.html + 19 + + + + Show this channel + + + src/app/+accounts/account-video-channels/account-video-channels.component.html + 27 + + + Stats + + src/app/+accounts/account-about/account-about.component.html + 8 + + + src/app/+video-channels/video-channel-about/video-channel-about.component.html + 16 + + + Joined + + src/app/+accounts/account-about/account-about.component.html + 10 + + + Video playlists + + src/app/+video-channels/video-channels.component.html + 25 + + + Support this channel + + src/app/+video-channels/video-channel-about/video-channel-about.component.html + 9 + + + Created + + src/app/+video-channels/video-channel-about/video-channel-about.component.html + 17 + + + + Created playlists + + + src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html + 1 + + + This channel does not have playlists. + + src/app/+video-channels/video-channel-playlists/video-channel-playlists.component.html + 5 + + + PeerTube + + src/app/+about/about.component.html + 7 + + + Follows + + src/app/+about/about.component.html + 9 + + + Contact administrator + + src/app/+about/about-instance/contact-admin-modal.component.html + 3 + + + Your name + + src/app/+about/about-instance/contact-admin-modal.component.html + 11 + + + Your email + + src/app/+about/about-instance/contact-admin-modal.component.html + 20 + + + Subject + + src/app/+about/about-instance/contact-admin-modal.component.html + 29 + + + Your message + + src/app/+about/about-instance/contact-admin-modal.component.html + 38 + + + About instance + + src/app/+about/about-instance/about-instance.component.html + 5 + + + Contact administrator + + src/app/+about/about-instance/about-instance.component.html + 7 + + + This instance is dedicated to sensitive/NSFW content. + + src/app/+about/about-instance/about-instance.component.html + 19 + + + + Administrators & sustainability + + + src/app/+about/about-instance/about-instance.component.html + 22 + + + Who we are + + src/app/+about/about-instance/about-instance.component.html + 27 + + + Why we created this instance + + src/app/+about/about-instance/about-instance.component.html + 33 + + + How long we plan to maintain this instance + + src/app/+about/about-instance/about-instance.component.html + 39 + + + How we will pay this instance + + src/app/+about/about-instance/about-instance.component.html + 45 + + + + Information + + + src/app/+about/about-instance/about-instance.component.html + 50 + + + + Other information + + + src/app/+about/about-instance/about-instance.component.html + 82 + + + Hardware information + + src/app/+about/about-instance/about-instance.component.html + 87 + + + Features found on this instance + + src/app/+about/about-instance/about-instance.component.html + 94 + + + src/app/+signup/+register/register.component.html + 47 + + + + Statistics + + + src/app/+about/about-instance/about-instance.component.html + 99 + + + + What is PeerTube? + + + src/app/+about/about-peertube/about-peertube.component.html + 1 + + + + PeerTube is a self hosted federated (ActivityPub) video streaming platform using P2P directly in the web browser. + + + src/app/+about/about-peertube/about-peertube.component.html + 8 + + + + It is a free and open-source software, under the AGPLv3 licence. + + + src/app/+about/about-peertube/about-peertube.component.html + 12 + + + + For more information, please visit joinpeertube.org. + + + src/app/+about/about-peertube/about-peertube.component.html + 16 + + + P2P & Privacy + + src/app/+about/about-peertube/about-peertube.component.html + 25 + + + + PeerTube uses the BitTorrent protocol to share bandwidth between users. + This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video. + + + src/app/+about/about-peertube/about-peertube.component.html + 27 + + + What are the consequences? + + src/app/+about/about-peertube/about-peertube.component.html + 32 + + + + In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video. + In practice, this is much more difficult because: + + + src/app/+about/about-peertube/about-peertube.component.html + 34 + + + + An HTTP request has to be sent on each tracker for each video to spy. + If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot) + + + src/app/+about/about-peertube/about-peertube.component.html + 40 + + + + For each request sent, the tracker returns random peers at a limited number. + For instance, if there are 1000 peers in the swarm and the tracker sends only 20 peers for each request, there must be at least 50 requests sent to know every peers in the swarm + + + src/app/+about/about-peertube/about-peertube.component.html + 45 + + + + Those requests have to be sent regularly to know who starts/stops watching a video. It is easy to detect that kind of behaviour + + + src/app/+about/about-peertube/about-peertube.component.html + 50 + + + + If an IP address is stored in the tracker, it doesn't mean that the person behind the IP (if this person exists) has watched the video + + + src/app/+about/about-peertube/about-peertube.component.html + 54 + + + + The IP address is a vague information: usually, it regularly changes and can represent many persons or entities + + + src/app/+about/about-peertube/about-peertube.component.html + 58 + + + + Web peers are not publicly accessible: because we use WebRTC inside the web browser (with the WebTorrent library), the protocol is different from classic BitTorrent. + When you are in a web browser, you send a signal containing your IP address to the tracker that will randomly choose other peers to forward the information to. + See this document for more information + + + src/app/+about/about-peertube/about-peertube.component.html + 62 + + + + The worst-case scenario of an average person spying on their friends is quite unlikely. + There are much more effective ways to get that kind of information. + + + src/app/+about/about-peertube/about-peertube.component.html + 69 + + + How does PeerTube compare with YouTube? + + src/app/+about/about-peertube/about-peertube.component.html + 74 + + + + The threats to privacy in YouTube are different from PeerTube's. + In YouTube's case, the platform gathers a huge amount of your personal information (not only your IP) to analyze them and track you. + Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics). + + + src/app/+about/about-peertube/about-peertube.component.html + 76 + + + What can I do to limit the exposure of my IP address? + + src/app/+about/about-peertube/about-peertube.component.html + 82 + + + + Your IP address is public so every time you consult a website, there is a number of actors (in addition to the final website) seeing your IP in their connection logs: ISP/routers/trackers/CDN and more. + PeerTube is transparent about it: we warn you that if you want to keep your IP private, you must use a VPN or Tor Browser. + Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense. + + + src/app/+about/about-peertube/about-peertube.component.html + 84 + + + What will be done to mitigate this problem? + + src/app/+about/about-peertube/about-peertube.component.html + 90 + + + + PeerTube is in its early stages, and want to deliver the best countermeasures possible by the time the stable is released. + In the meantime, we want to test different ideas related to this issue: + + + src/app/+about/about-peertube/about-peertube.component.html + 92 + + + Set a limit to the number of peers sent by the tracker + + src/app/+about/about-peertube/about-peertube.component.html + 98 + + + Set a limit on the request frequency received by the tracker (being tested) + + src/app/+about/about-peertube/about-peertube.component.html + 99 + + + Ring a bell if there are unusual requests (being tested) + + src/app/+about/about-peertube/about-peertube.component.html + 100 + + + Disable P2P from the administration interface + + src/app/+about/about-peertube/about-peertube.component.html + 101 + + + An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program + + src/app/+about/about-peertube/about-peertube.component.html + 102 + + + This instance does not have followers. + + src/app/+about/about-follows/about-follows.component.html + 5 + + + Followings + + src/app/+about/about-follows/about-follows.component.html + 13 + + + This instance does not have followings. + + src/app/+about/about-follows/about-follows.component.html + 15 + + + Who made this software? + + src/app/+about/about-peertube/about-peertube-contributors.component.html + 2 + + + + Create an account + + + src/app/+signup/+register/register.component.html + 3 + + + Next + + src/app/+signup/+register/register.component.html + 20 + + + + Create my account + + + src/app/+signup/+register/register.component.html + 28 + + + PeerTube is creating your account... + + src/app/+signup/+register/register.component.html + 37 + + + Done + + src/app/+signup/+register/register.component.html + 33 + + + Who are we? + + src/app/+signup/+register/register.component.html + 60 + + + How long do we plan to maintain this instance? + + src/app/+signup/+register/register.component.html + 65 + + + How will we finance this instance? + + src/app/+signup/+register/register.component.html + 70 + + + Administrators & Sustainability + + src/app/+signup/+register/register.component.html + 56 + + + + A channel is an entity in which you upload your videos. Creating several of them helps you to organize and separate your content. + For example, you could decide to have a channel to publish your piano concerts, and another channel in which you publish your videos talking about ecology. + + + src/app/+signup/+register/register-step-channel.component.html + 4 + + + + Other users can decide to subscribe any channel they want, to be notified when you publish a new video. + + + src/app/+signup/+register/register-step-channel.component.html + 9 + + + Channel display name + + src/app/+signup/+register/register-step-channel.component.html + 15 + + + Channel name + + src/app/+signup/+register/register-step-channel.component.html + 30 + + + Example: my_super_channel + + src/app/+signup/+register/register-step-channel.component.html + 34 + + + + The channel name is a unique identifier of your channel on this instance. It's like an address mail, so other people can find your channel. + + + src/app/+signup/+register/register-step-channel.component.html + 42 + + + + Channel name cannot be the same than your account name. You can click on the first step to update your account name. + + + src/app/+signup/+register/register-step-channel.component.html + 50 + + + Example: jane_doe + + src/app/+signup/+register/register-step-user.component.html + 23 + + + + The username is a unique identifier of your account on this instance. It's like an address mail, so other people can find you. + + + src/app/+signup/+register/register-step-user.component.html + 31 + + + + I am at least 16 years old and agree + to the Terms + and to the Code of Conduct + of this instance + + + src/app/+signup/+register/register-step-user.component.html + 65 + + + + Sorry, we couldn't find the page you were looking for. + + + src/app/+page-not-found/page-not-found.component.html + 4 + + + + Cannot get about information from server + + src/app/+about/about-instance/about-instance.component.ts + 1 + + + + Your message has been sent. + + src/app/+about/about-instance/contact-admin-modal.component.ts + 1 + + + + You already sent this form recently + + src/app/+about/about-instance/contact-admin-modal.component.ts + 1 + + + + No description + + src/app/+accounts/account-about/account-about.component.ts + 1 + + + src/app/+video-channels/video-channel-about/video-channel-about.component.ts + 1 + + + + Published videos + + src/app/+accounts/account-videos/account-videos.component.ts + 1 + + + src/app/+video-channels/video-channel-videos/video-channel-videos.component.ts + 1 + + + + Username copied + + src/app/+accounts/accounts.component.ts + 1 + + + + 240p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + 360p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + 480p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + 720p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + 1080p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + 2160p + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + Auto (via ffmpeg) + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + Configuration updated. + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + {{'{0} languages selected + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.ts + 1 + + + + No language + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.ts + 1 + + + + {{'{0} categories selected + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + No category + + src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts + 1 + + + + Unlimited + + src/app/+admin/config/shared/config.service.ts + 1 + + + src/app/+admin/config/shared/config.service.ts + 1 + + + src/app/+my-account/my-account-settings/my-account-settings.component.ts + 1 + + + src/app/shared/users/user.service.ts + 1 + + + + 100MB + + src/app/+admin/config/shared/config.service.ts + 1 + + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 500MB + + src/app/+admin/config/shared/config.service.ts + 1 + + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 1GB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 5GB + + src/app/+admin/config/shared/config.service.ts + 1 + + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 20GB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 50GB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 10MB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 50MB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + 2GB + + src/app/+admin/config/shared/config.service.ts + 1 + + + + accepted in instance followers + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + Do you really want to reject this follower? + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + Reject + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + rejected from instance followers + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + Do you really want to delete this follower? + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + removed from instance followers + + src/app/+admin/follows/followers-list/followers-list.component.ts + 1 + + + + is not valid + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + You need to specify hosts to follow. + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + Hosts need to be unique. + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + If you confirm, you will send a follow request to: - + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + Follow new server(s) + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + Follow request(s) sent! + + src/app/+admin/follows/following-add/following-add.component.ts + 1 + + + + Do you really want to unfollow ? + + src/app/+admin/follows/following-list/following-list.component.ts + 1 + + + + Unfollow + + src/app/+admin/follows/following-list/following-list.component.ts + 1 + + + + You are not following anymore. + + src/app/+admin/follows/following-list/following-list.component.ts + 1 + + + + enabled + + src/app/+admin/follows/shared/redundancy-checkbox.component.ts + 1 + + + + disabled + + src/app/+admin/follows/shared/redundancy-checkbox.component.ts + 1 + + + + Redundancy for is + + src/app/+admin/follows/shared/redundancy-checkbox.component.ts + 1 + + + + Account unmuted by your instance. + + src/app/+admin/moderation/instance-blocklist/instance-account-blocklist.component.ts + 1 + + + + Instance unmuted by your instance. + + src/app/+admin/moderation/instance-blocklist/instance-server-blocklist.component.ts + 1 + + + + Comment updated. + + src/app/+admin/moderation/video-abuse-list/moderation-comment-modal.component.ts + 1 + + + + Delete this report + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Update moderation comment + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Mark as accepted + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Mark as rejected + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Do you really want to delete this abuse report? + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Abuse deleted. + + src/app/+admin/moderation/video-abuse-list/video-abuse-list.component.ts + 1 + + + + Video removed from blacklist. + + src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.ts + 1 + + + + videos removed from blacklist. + + src/app/+admin/moderation/video-auto-blacklist-list/video-auto-blacklist-list.component.ts + 1 + + + + yes + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts + 1 + + + + no + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts + 1 + + + + Do you really want to remove this video from the blacklist? It will be available again in the videos list. + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts + 1 + + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Video removed from the blacklist. + + src/app/+admin/moderation/video-blacklist-list/video-blacklist-list.component.ts + 1 + + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + You don't have plugins installed yet. + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + You don't have themes installed yet. + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + Update to + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + Do you really want to uninstall ? + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + uninstalled. + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + updated. + + src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts + 1 + + + + The plugin index is not available. Please retry later. + + src/app/+admin/plugins/plugin-search/plugin-search.component.ts + 1 + + + + Please only install plugins or themes you trust, since they can execute any code on your instance. + + src/app/+admin/plugins/plugin-search/plugin-search.component.ts + 1 + + + + Install ? + + src/app/+admin/plugins/plugin-search/plugin-search.component.ts + 1 + + + + installed. + + src/app/+admin/plugins/plugin-search/plugin-search.component.ts + 1 + + + + Settings updated. + + src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts + 1 + + + + Plugins + + src/app/+admin/plugins/shared/plugin-api.service.ts + 1 + + + + Themes + + src/app/+admin/plugins/shared/plugin-api.service.ts + 1 + + + + plugin + + src/app/+admin/plugins/shared/plugin-api.service.ts + 1 + + + + theme + + src/app/+admin/plugins/shared/plugin-api.service.ts + 1 + + + + Last week + + src/app/+admin/system/logs/logs.component.ts + 1 + + + + Last day + + src/app/+admin/system/logs/logs.component.ts + 1 + + + + Last hour + + src/app/+admin/system/logs/logs.component.ts + 1 + + + + Info + + src/app/+admin/system/logs/logs.component.ts + 1 + + + src/app/core/notification/notifier.service.ts + 1 + + + + Warning + + src/app/+admin/system/logs/logs.component.ts + 1 + + + src/app/shared/guards/can-deactivate-guard.service.ts + 1 + + + + Error + + src/app/+admin/system/logs/logs.component.ts + 1 + + + src/app/core/auth/auth.service.ts + 1 + + + src/app/core/notification/notifier.service.ts + 1 + + + + User created. + + src/app/+admin/users/user-edit/user-create.component.ts + 1 + + + + Password changed for user . + + src/app/+admin/users/user-edit/user-password.component.ts + 1 + + + + Update user password + + src/app/+admin/users/user-edit/user-password.component.ts + 1 + + + + User updated. + + src/app/+admin/users/user-edit/user-update.component.ts + 1 + + + + Update user + + src/app/+admin/users/user-edit/user-update.component.ts + 1 + + + + An email asking for password reset has been sent to . + + src/app/+admin/users/user-edit/user-update.component.ts + 1 + + + + Unban + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Set Email as Verified + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + You cannot ban root. + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Do you really want to unban users? + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + + users unbanned. + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + + You cannot delete root. + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + If you remove these users, you will not be able to create others with the same username! + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + + users deleted. + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + + users email set as verified. + + src/app/+admin/users/user-list/user-list.component.ts + 1 + + + + Account unmuted. + + src/app/+my-account/my-account-blocklist/my-account-blocklist.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Instance unmuted. + + src/app/+my-account/my-account-blocklist/my-account-server-blocklist.component.ts + 1 + + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + My videos history + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Videos history is enabled + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Videos history is disabled + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Delete videos history + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Are you sure you want to delete all your videos history? + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Videos history deleted + + src/app/+my-account/my-account-history/my-account-history.component.ts + 1 + + + + Ownership accepted + + src/app/+my-account/my-account-ownership/my-account-accept-ownership/my-account-accept-ownership.component.ts + 1 + + + + Please check your emails to verify your new email. + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts + 1 + + + + Email updated. + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts + 1 + + + + You current password is invalid. + + src/app/+my-account/my-account-settings/my-account-change-email/my-account-change-email.component.ts + 1 + + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts + 1 + + + + Password updated. + + src/app/+my-account/my-account-settings/my-account-change-password/my-account-change-password.component.ts + 1 + + + + Are you sure you want to delete your account? This will delete all your data, including channels, videos etc. + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts + 1 + + + + Type your username to confirm + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts + 1 + + + + Delete my account + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts + 1 + + + + Your account is deleted. + + src/app/+my-account/my-account-settings/my-account-danger-zone/my-account-danger-zone.component.ts + 1 + + + + Interface settings updated. + + src/app/+my-account/my-account-settings/my-account-interface/my-account-interface-settings.component.ts + 1 + + + + New video from your subscriptions + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + New comment on your video + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + New video abuse + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Video auto-blacklisted waiting review + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + One of your video is blacklisted/unblacklisted + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Video published (after transcoding/scheduled update) + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Video import finished + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + A new user registered on your instance + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + You or your channel(s) has a new follower + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Someone mentioned you in video comments + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Your instance has a new follower + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Your instance auto followed another instance + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Preferences saved + + src/app/+my-account/my-account-settings/my-account-notification-preferences/my-account-notification-preferences.component.ts + 1 + + + + Profile updated. + + src/app/+my-account/my-account-settings/my-account-profile/my-account-profile.component.ts + 1 + + + + Avatar changed. + + src/app/+my-account/my-account-settings/my-account-settings.component.ts + 1 + + + src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts + 1 + + + + Unknown language + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.ts + 1 + + + + Video settings updated. + + src/app/+my-account/my-account-settings/my-account-video-settings/my-account-video-settings.component.ts + 1 + + + + Video channel created. + + src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts + 1 + + + + This name already exists on this instance. + + src/app/+my-account/my-account-video-channels/my-account-video-channel-create.component.ts + 1 + + + + Video channel updated. + + src/app/+my-account/my-account-video-channels/my-account-video-channel-update.component.ts + 1 + + + + Do you really want to delete ? It will delete all videos uploaded in this channel, and you will not be able to create another channel with the same name ()! + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts + 1 + + + + Please type the display name of the video channel () to confirm + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts + 1 + + + + Video channel deleted. + + src/app/+my-account/my-account-video-channels/my-account-video-channels.component.ts + 1 + + + + Playlist created. + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-create.component.ts + 1 + + + + Playlist updated. + + src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts + 1 + + + + Do you really want to delete ? + + src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts + 1 + + + + Playlist deleted. + + src/app/+my-account/my-account-video-playlists/my-account-video-playlists.component.ts + 1 + + + + My videos + + src/app/+my-account/my-account-videos/my-account-videos.component.ts + 1 + + + src/app/+my-account/my-account.component.ts + 1 + + + + Do you really want to delete videos? + + src/app/+my-account/my-account-videos/my-account-videos.component.ts + 1 + + + + videos deleted. + + src/app/+my-account/my-account-videos/my-account-videos.component.ts + 1 + + + + Do you really want to delete ? + + src/app/+my-account/my-account-videos/my-account-videos.component.ts + 1 + + + + Video deleted. + + src/app/+my-account/my-account-videos/my-account-videos.component.ts + 1 + + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Ownership change request sent. + + src/app/+my-account/my-account-videos/video-change-ownership/video-change-ownership.component.ts + 1 + + + + My channels + + src/app/+my-account/my-account.component.ts + 1 + + + + My playlists + + src/app/+my-account/my-account.component.ts + 1 + + + + My subscriptions + + src/app/+my-account/my-account.component.ts + 1 + + + + My history + + src/app/+my-account/my-account.component.ts + 1 + + + + Misc + + src/app/+my-account/my-account.component.ts + 1 + + + + Ownership changes + + src/app/+my-account/my-account.component.ts + 1 + + + + My settings + + src/app/+my-account/my-account.component.ts + 1 + + + + My notifications + + src/app/+my-account/my-account.component.ts + 1 + + + + Now please check your emails to verify your account and complete signup. + + src/app/+signup/+register/register.component.ts + 1 + + + + You are now logged in as ! + + src/app/+signup/+register/register.component.ts + 1 + + + + An email with verification link will be sent to . + + src/app/+signup/+verify-account/verify-account-ask-send-email/verify-account-ask-send-email.component.ts + 1 + + + + Unable to find user id or verification string. + + src/app/+signup/+verify-account/verify-account-email/verify-account-email.component.ts + 1 + + + src/app/reset-password/reset-password.component.ts + 1 + + + + Published videos + + src/app/+video-channels/video-channel-videos/video-channel-videos.component.ts + 1 + + + + Subscribe to the account + + src/app/+video-channels/video-channels.component.ts + 1 + + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + Focus the search bar + + src/app/app.component.ts + 1 + + + + Toggle the left menu + + src/app/app.component.ts + 1 + + + + Go to the discover videos page + + src/app/app.component.ts + 1 + + + + Go to the trending videos page + + src/app/app.component.ts + 1 + + + + Go to the recently added videos page + + src/app/app.component.ts + 1 + + + + Go to the local videos page + + src/app/app.component.ts + 1 + + + + Go to the videos upload page + + src/app/app.component.ts + 1 + + + + Go to my subscriptions + + src/app/core/auth/auth.service.ts + 1 + + + + Go to my videos + + src/app/core/auth/auth.service.ts + 1 + + + + Go to my imports + + src/app/core/auth/auth.service.ts + 1 + + + + Go to my channels + + src/app/core/auth/auth.service.ts + 1 + + + + Cannot retrieve OAuth Client credentials: . + + + src/app/core/auth/auth.service.ts + 1 + + + + Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section. + + src/app/core/auth/auth.service.ts + 1 + + + + You need to reconnect. + + src/app/core/auth/auth.service.ts + 1 + + + + Keyboard Shortcuts: + + src/app/core/hotkeys/hotkeys.component.ts + 1 + + + + Success + + src/app/core/notification/notifier.service.ts + 1 + + + + Incorrect username or password. + + src/app/login/login.component.ts + 1 + + + + You account is blocked. + + src/app/login/login.component.ts + 1 + + + + An email with the reset password instructions will be sent to . + + src/app/login/login.component.ts + 1 + + + + Your password has been successfully reset! + + src/app/reset-password/reset-password.component.ts + 1 + + + + Today + + src/app/search/search-filters.component.ts + 1 + + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Last 7 days + + src/app/search/search-filters.component.ts + 1 + + + + Last 30 days + + src/app/search/search-filters.component.ts + 1 + + + + Last 365 days + + src/app/search/search-filters.component.ts + 1 + + + + Short (< 4 min) + + src/app/search/search-filters.component.ts + 1 + + + + Medium (4-10 min) + + src/app/search/search-filters.component.ts + 1 + + + + Long (> 10 min) + + src/app/search/search-filters.component.ts + 1 + + + + Relevance + + src/app/search/search-filters.component.ts + 1 + + + + Publish date + + src/app/search/search-filters.component.ts + 1 + + + + Views + + src/app/search/search-filters.component.ts + 1 + + + + years ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + months ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + month ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + weeks ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + week ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + days ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + day ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + hours ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + hour ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + min ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + sec ago + + src/app/shared/angular/from-now.pipe.ts + 1 + + + + Confirm + + src/app/shared/confirm/confirm.component.ts + 1 + + + + Instance name is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Short description should not be longer than 250 characters. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Twitter username is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Previews cache size is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Previews cache size must be greater than 1. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Previews cache size must be a number. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Captions cache size is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Captions cache size must be greater than 1. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Captions cache size must be a number. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Signup limit is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Signup limit must be greater than 1. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Signup limit must be a number. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Admin email is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Admin email must be valid. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Transcoding threads is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Transcoding threads must be greater or equal to 0. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Index URL is required. + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Index URL should be a URL + + src/app/shared/forms/form-validators/custom-config-validators.service.ts + 1 + + + + Email is required. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Email must be valid. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Your name is required. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + Your name must be at least 1 character long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + Your name cannot be more than 120 characters long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + A subject is required. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + The subject must be at least 1 character long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + The subject cannot be more than 120 characters long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + A message is required. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + The message must be at least 3 characters long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + The message cannot be more than 5000 characters long. + + src/app/shared/forms/form-validators/instance-validators.service.ts + 1 + + + + Username is required. + + src/app/shared/forms/form-validators/login-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Password is required. + + src/app/shared/forms/form-validators/login-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Confirmation of the password is required. + + src/app/shared/forms/form-validators/reset-password-validators.service.ts + 1 + + + + Username must be at least 1 character long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Username cannot be more than 50 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Username should be lowercase alphanumeric; dots and underscores are allowed. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Password must be at least 6 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Password cannot be more than 255 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + The new password and the confirmed password do not correspond. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Video quota is required. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Quota must be greater than -1. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Daily upload limit is required. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Daily upload limit must be greater than -1. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + User role is required. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Description must be at least 3 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + Description cannot be more than 1000 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + You must agree with the instance terms in order to register on it. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Ban reason must be at least 3 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Ban reason cannot be more than 250 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + + Display name is required. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + Display name must be at least 1 character long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + Display name cannot be more than 50 characters long. + + src/app/shared/forms/form-validators/user-validators.service.ts + 1 + + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Report reason is required. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + Report reason must be at least 2 characters long. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + Report reason cannot be more than 3000 characters long. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + Moderation comment is required. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + Moderation comment must be at least 2 characters long. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + Moderation comment cannot be more than 3000 characters long. + + src/app/shared/forms/form-validators/video-abuse-validators.service.ts + 1 + + + + The channel is required. + + src/app/shared/forms/form-validators/video-accept-ownership-validators.service.ts + 1 + + + + Blacklist reason must be at least 2 characters long. + + src/app/shared/forms/form-validators/video-blacklist-validators.service.ts + 1 + + + + Blacklist reason cannot be more than 300 characters long. + + src/app/shared/forms/form-validators/video-blacklist-validators.service.ts + 1 + + + + Video caption language is required. + + src/app/shared/forms/form-validators/video-captions-validators.service.ts + 1 + + + + Video caption file is required. + + src/app/shared/forms/form-validators/video-captions-validators.service.ts + 1 + + + + The username is required. + + src/app/shared/forms/form-validators/video-change-ownership-validators.service.ts + 1 + + + + You can only transfer ownership to a local account + + src/app/shared/forms/form-validators/video-change-ownership-validators.service.ts + 1 + + + + Name is required. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Name must be at least 1 character long. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Name cannot be more than 50 characters long. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Name should be lowercase alphanumeric; dots and underscores are allowed. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Support text must be at least 3 characters long. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Support text cannot be more than 1000 characters long. + + src/app/shared/forms/form-validators/video-channel-validators.service.ts + 1 + + + + Comment is required. + + src/app/shared/forms/form-validators/video-comment-validators.service.ts + 1 + + + + Comment must be at least 2 characters long. + + src/app/shared/forms/form-validators/video-comment-validators.service.ts + 1 + + + + Comment cannot be more than 3000 characters long. + + src/app/shared/forms/form-validators/video-comment-validators.service.ts + 1 + + + + Display name cannot be more than 120 characters long. + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + Privacy is required. + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + The channel is required when the playlist is public. + + src/app/shared/forms/form-validators/video-playlist-validators.service.ts + 1 + + + + Video name is required. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video name must be at least 3 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video name cannot be more than 120 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video privacy is required. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video channel is required. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video description must be at least 3 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video description cannot be more than 10000 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + A tag should be more than 2 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + A tag should be less than 30 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video support must be at least 3 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + Video support cannot be more than 1000 characters long. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + A date is required to schedule video update. + + src/app/shared/forms/form-validators/video-validators.service.ts + 1 + + + + This file is too large. + + src/app/shared/forms/reactive-file.component.ts + 1 + + + + PeerTube cannot handle this kind of file. Accepted extensions are . + + src/app/shared/forms/reactive-file.component.ts + 1 + + + + All unsaved data will be lost, are you sure you want to leave this page? + + src/app/shared/guards/can-deactivate-guard.service.ts + 1 + + + + Sunday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Monday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Tuesday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Wednesday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Thursday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Friday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Saturday + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Sun + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Mon + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Tue + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Wed + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Thu + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Fri + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Sat + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name short + + + Su + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + Mo + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + Tu + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + We + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + Th + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + Fr + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + Sa + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Day name min + + + January + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + February + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + March + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + April + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + May + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + June + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + July + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + August + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + September + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + October + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + November + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + December + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + Jan + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Feb + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Mar + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Apr + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Jun + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Jul + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Aug + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Sep + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Oct + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Nov + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Dec + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Month name short + + + Clear + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + + + yy-mm-dd + + src/app/shared/i18n/i18n-primeng-calendar.ts + 1 + + Date format in this locale. + + + Hidden + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + Blurred with confirmation request + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + Displayed + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + ~ + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + {VAR_PLURAL, plural, =1 {minute} other {minutes} } + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + of full HD videos + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + of HD videos + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + of average quality videos + + src/app/shared/instance/instance-features-table.component.ts + 1 + + + + Markdown compatible that supports: + + src/app/shared/misc/help.component.ts + 1 + + + + Emphasis + + src/app/shared/misc/help.component.ts + 1 + + + + Links + + src/app/shared/misc/help.component.ts + 1 + + + + New lines + + src/app/shared/misc/help.component.ts + 1 + + + + Lists + + src/app/shared/misc/help.component.ts + 1 + + + + Images + + src/app/shared/misc/help.component.ts + 1 + + + + users banned. + + src/app/shared/moderation/user-ban-modal.component.ts + 1 + + + + User banned. + + src/app/shared/moderation/user-ban-modal.component.ts + 1 + + + + Do you really want to unban ? + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + User unbanned. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + If you remove this user, you will not be able to create another with the same username! + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + User deleted. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + User email set as verified + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Account muted. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Instance muted. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Account muted by the instance. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Account unmuted by the instance. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Instance muted by the instance. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Instance unmuted by the instance. + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Mute this account + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Unmute this account + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Mute the instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Unmute the instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Mute this account by your instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Unmute this account by your instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Mute the instance by your instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Unmute the instance by your instance + + src/app/shared/moderation/user-moderation-dropdown.component.ts + 1 + + + + Request is too large for the server. Please contact you administrator if you want to increase the limit size. + + src/app/shared/rest/rest-extractor.service.ts + 1 + + + + Too many attempts, please try again after minutes. + + src/app/shared/rest/rest-extractor.service.ts + 1 + + + + Too many attempts, please try again later. + + src/app/shared/rest/rest-extractor.service.ts + 1 + + + + Server error. Please retry later. + + src/app/shared/rest/rest-extractor.service.ts + 1 + + + + Subscribed to + + src/app/shared/user-subscription/subscribe-button.component.ts + 1 + + + + Subscribed + + src/app/shared/user-subscription/subscribe-button.component.ts + 1 + + + + Unsubscribed from + + src/app/shared/user-subscription/subscribe-button.component.ts + 1 + + + + Unsubscribed + + src/app/shared/user-subscription/subscribe-button.component.ts + 1 + + + + Moderator + + src/app/shared/users/user.service.ts + 1 + + + + Video removed from + + src/app/shared/video-playlist/video-add-to-playlist.component.ts + 1 + + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + + Video added in at timestamps + + src/app/shared/video-playlist/video-add-to-playlist.component.ts + 1 + + + + Video added in + + src/app/shared/video-playlist/video-add-to-playlist.component.ts + 1 + + + + Timestamps updated + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + + Starts at + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + + Stops at + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + + and stops at + + src/app/shared/video-playlist/video-playlist-element-miniature.component.ts + 1 + + + + Video blacklisted. + + src/app/shared/video/modals/video-blacklist.component.ts + 1 + + + + Copied + + src/app/shared/video/modals/video-download.component.ts + 1 + + + src/app/videos/+video-watch/modal/video-share.component.ts + 1 + + + + Video reported. + + src/app/shared/video/modals/video-report.component.ts + 1 + + + + Do you really want to delete this video? + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Save to playlist + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Blacklist + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Report + + src/app/shared/video/video-actions-dropdown.component.ts + 1 + + + + Published + + src/app/shared/video/video-miniature.component.ts + 1 + + + + Publication scheduled on + + src/app/shared/video/video-miniature.component.ts + 1 + + + + Waiting transcoding + + src/app/shared/video/video-miniature.component.ts + 1 + + + + To transcode + + src/app/shared/video/video-miniature.component.ts + 1 + + + + To import + + src/app/shared/video/video-miniature.component.ts + 1 + + + + Only I can see this video + + src/app/shared/video/video.service.ts + 1 + + + + Only people with the private link can see this video + + src/app/shared/video/video.service.ts + 1 + + + + Anyone can see this video + + src/app/shared/video/video.service.ts + 1 + + + + Video to import updated. + + src/app/videos/+video-edit/video-add-components/video-import-torrent.component.ts + 1 + + + src/app/videos/+video-edit/video-add-components/video-import-url.component.ts + 1 + + + + Your video was uploaded to your account and is private. + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + But associated data (tags, description...) will be lost, are you sure you want to leave this page? + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Your video is not uploaded yet, are you sure you want to leave this page? + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Upload + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Upload cancelled + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Video published. + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Your video quota is exceeded with this video (video size: , used: , quota: ) + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + Your daily video quota is exceeded with this video (video size: , used: , quota: ) + + src/app/videos/+video-edit/video-add-components/video-upload.component.ts + 1 + + + + You have unsaved changes! If you leave, your changes will be lost. + + src/app/videos/+video-edit/video-update.component.ts + 1 + + + + Video updated. + + src/app/videos/+video-edit/video-update.component.ts + 1 + + + + replies will be deleted too. + + src/app/videos/+video-watch/comment/video-comments.component.ts + 1 + + + + The deletion will be sent to remote instances, so they remove the comment too. + + src/app/videos/+video-watch/comment/video-comments.component.ts + 1 + + + + It is a remote comment, so the deletion will only be effective on your instance. + + src/app/videos/+video-watch/comment/video-comments.component.ts + 1 + + + + likes / dislikes + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + This video contains mature or explicit content. Are you sure you want to watch it? + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + Mature or explicit content + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + Like the video + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + Dislike the video + + src/app/videos/+video-watch/video-watch.component.ts + 1 + + + + Videos that have the higher number of likes. + + src/app/videos/video-list/video-most-liked.component.ts + 1 + + + + Trending for the last 24 hours + + src/app/videos/video-list/video-trending.component.ts + 1 + + + + Trending videos are those totalizing the greatest number of views during the last 24 hours + + src/app/videos/video-list/video-trending.component.ts + 1 + + + + Trending for the last days + + src/app/videos/video-list/video-trending.component.ts + 1 + + + + Trending videos are those totalizing the greatest number of views during the last days + + src/app/videos/video-list/video-trending.component.ts + 1 + + + + Videos from your subscriptions + + src/app/videos/video-list/video-user-subscriptions.component.ts + 1 + + + + + diff --git a/client/src/locale/player.en-US.json b/client/src/locale/player.en-US.json new file mode 100644 index 000000000..b117ea59a --- /dev/null +++ b/client/src/locale/player.en-US.json @@ -0,0 +1 @@ +{"Quality":"Quality","Auto":"Auto","Speed":"Speed","Subtitles/CC":"Subtitles/CC","peers":"peers","peer":"peer","Go to the video page":"Go to the video page","Settings":"Settings","Uses P2P, others may know you are watching this video.":"Uses P2P, others may know you are watching this video.","Copy the video URL":"Copy the video URL","Copy the video URL at the current time":"Copy the video URL at the current time","Copy embed code":"Copy embed code","Copy magnet URI":"Copy magnet URI","Total downloaded: ":"Total downloaded: ","Total uploaded: ":"Total uploaded: ","Audio Player":"Audio Player","Video Player":"Video Player","Play":"Play","Pause":"Pause","Replay":"Replay","Current Time":"Current Time","Duration":"Duration","Remaining Time":"Remaining Time","Stream Type":"Stream Type","LIVE":"LIVE","Loaded":"Loaded","Progress":"Progress","Progress Bar":"Progress Bar","progress bar timing: currentTime={1} duration={2}":"{1} of {2}","Fullscreen":"Fullscreen","Non-Fullscreen":"Non-Fullscreen","Mute":"Mute","Unmute":"Unmute","Playback Rate":"Playback Rate","Subtitles":"Subtitles","subtitles off":"subtitles off","Captions":"Captions","captions off":"captions off","Chapters":"Chapters","Descriptions":"Descriptions","descriptions off":"descriptions off","Audio Track":"Audio Track","Volume Level":"Volume Level","You aborted the media playback":"You aborted the media playback","A network error caused the media download to fail part-way.":"A network error caused the media download to fail part-way.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"The media could not be loaded, either because the server or network failed or because the format is not supported.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.","No compatible source was found for this media.":"No compatible source was found for this media.","The media is encrypted and we do not have the keys to decrypt it.":"The media is encrypted and we do not have the keys to decrypt it.","Play Video":"Play Video","Close":"Close","Close Modal Dialog":"Close Modal Dialog","Modal Window":"Modal Window","This is a modal window":"This is a modal window","This modal can be closed by pressing the Escape key or activating the close button.":"This modal can be closed by pressing the Escape key or activating the close button.",", opens captions settings dialog":", opens captions settings dialog",", opens subtitles settings dialog":", opens subtitles settings dialog",", opens descriptions settings dialog":", opens descriptions settings dialog",", selected":", selected","captions settings":"captions settings","subtitles settings":"subititles settings","descriptions settings":"descriptions settings","Text":"Text","White":"White","Black":"Black","Red":"Red","Green":"Green","Blue":"Blue","Yellow":"Yellow","Magenta":"Magenta","Cyan":"Cyan","Background":"Background","Window":"Window","Transparent":"Transparent","Semi-Transparent":"Semi-Transparent","Opaque":"Opaque","Font Size":"Font Size","Text Edge Style":"Text Edge Style","None":"None","Raised":"Raised","Depressed":"Depressed","Uniform":"Uniform","Dropshadow":"Dropshadow","Font Family":"Font Family","Proportional Sans-Serif":"Proportional Sans-Serif","Monospace Sans-Serif":"Monospace Sans-Serif","Proportional Serif":"Proportional Serif","Monospace Serif":"Monospace Serif","Casual":"Casual","Script":"Script","Small Caps":"Small Caps","Reset":"Reset","restore all settings to the default values":"restore all settings to the default values","Done":"Done","Caption Settings Dialog":"Caption Settings Dialog","Beginning of dialog window. Escape will cancel and close the window.":"Beginning of dialog window. Escape will cancel and close the window.","End of dialog window.":"End of dialog window.","{1} is loading.":"{1} is loading."} diff --git a/client/src/locale/player_fr_FR.json b/client/src/locale/player_fr_FR.json deleted file mode 100644 index e0e2de4f7..000000000 --- a/client/src/locale/player_fr_FR.json +++ /dev/null @@ -1 +0,0 @@ -{"Audio Player":"Lecteur audio","Video Player":"Lecteur vidéo","Play":"Lecture","Pause":"Pause","Replay":"Revoir","Current Time":"Temps actuel","Duration":"Durée","Remaining Time":"Temps restant","Stream Type":"Type de flux","LIVE":"EN DIRECT","Loaded":"Chargé","Progress":"Progression","Progress Bar":"Barre de progression","progress bar timing: currentTime={1} duration={2}":"{1} de {2}","Fullscreen":"Plein écran","Non-Fullscreen":"Fenêtré","Mute":"Couper le son","Unmute":"Activer le son","Playback Rate":"Vitesse de lecture","Subtitles":"Sous-titres","subtitles off":"Sous-titres désactivés","Captions":"Sous-titres transcrits","captions off":"Sous-titres transcrits désactivés","Chapters":"Chapitres","Descriptions":"Descriptions","descriptions off":"descriptions désactivées","Audio Track":"Piste audio","Volume Level":"Niveau de volume","You aborted the media playback":"Vous avez interrompu la lecture de la vidéo","A network error caused the media download to fail part-way.":"Une erreur de réseau a interrompu le téléchargement de la vidéo.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.","No compatible source was found for this media.":"Aucune source compatible n'a été trouvée pour cette vidéo.","The media is encrypted and we do not have the keys to decrypt it.":"Le média est chiffré et nous n'avons pas les clés pour le déchiffrer.","Play Video":"Lire la vidéo","Close":"Fermer","Close Modal Dialog":"Fermer la boîte de dialogue modale","Modal Window":"Fenêtre modale","This is a modal window":"Ceci est une fenêtre modale","This modal can be closed by pressing the Escape key or activating the close button.":"Ce modal peut être fermé en appuyant sur la touche Échap ou en cliquant sur le bouton de fermeture.",", opens captions settings dialog":", ouvrir les paramètres des sous-titres transcrits",", opens subtitles settings dialog":", ouvrir les paramètres des sous-titres",", opens descriptions settings dialog":", ouvrir les paramètres des descriptions",", selected":", sélectionné","captions settings":"Paramètres des sous-titres transcrits","subtitles settings":"Paramètres des sous-titres","descriptions settings":"Paramètres des descriptions","Text":"Texte","White":"Blanc","Black":"Noir","Red":"Rouge","Green":"Vert","Blue":"Bleu","Yellow":"Jaune","Magenta":"Magenta","Cyan":"Cyan","Background":"Arrière-plan","Window":"Fenêtre","Transparent":"Transparent","Semi-Transparent":"Semi-transparent","Opaque":"Opaque","Font Size":"Taille des caractères","Text Edge Style":"Style des contours du texte","None":"Aucun","Raised":"Élevé","Depressed":"Enfoncé","Uniform":"Uniforme","Dropshadow":"Ombre portée","Font Family":"Familles de polices","Proportional Sans-Serif":"Polices à chasse variable sans empattement (Proportional Sans-Serif)","Monospace Sans-Serif":"Polices à chasse fixe sans empattement (Monospace Sans-Serif)","Proportional Serif":"Polices à chasse variable avec empattement (Proportional Serif)","Monospace Serif":"Polices à chasse fixe avec empattement (Monospace Serif)","Casual":"Manuscrite","Script":"Script","Small Caps":"Petites capitales","Reset":"Réinitialiser","restore all settings to the default values":"Restaurer tous les paramètres aux valeurs par défaut","Done":"Terminé","Caption Settings Dialog":"Boîte de dialogue des paramètres des sous-titres transcrits","Beginning of dialog window. Escape will cancel and close the window.":"Début de la fenêtre de dialogue. La touche d'échappement annulera et fermera la fenêtre.","End of dialog window.":"Fin de la fenêtre de dialogue.","{1} is loading.":"{1} est en train de charger","Quality":"Qualité","Auto":"Auto","Speed":"Vitesse","Subtitles/CC":"Sous-titres/CC","peers":"pairs","peer":"pair","Go to the video page":"Aller sur la page de la vidéo","Settings":"Paramètres","Uses P2P, others may know you are watching this video.":"Utilise le P2P, d'autres personnes pourraient savoir que vous regardez cette vidéo.","Copy the video URL":"Copier le lien de la vidéo","Copy the video URL at the current time":"Copier le lien de la vidéo à partir de cette séquence","Copy embed code":"Copier le code d'intégration","Copy magnet URI":"Copier le magnet URL","Total downloaded: ":"Total téléchargé","Total uploaded: ":"Total téléversé"} \ No newline at end of file diff --git a/client/src/locale/server.en-US.json b/client/src/locale/server.en-US.json new file mode 100644 index 000000000..ba9292ddb --- /dev/null +++ b/client/src/locale/server.en-US.json @@ -0,0 +1 @@ +{"Music":"Music","Films":"Films","Vehicles":"Vehicles","Art":"Art","Sports":"Sports","Travels":"Travels","Gaming":"Gaming","People":"People","Comedy":"Comedy","Entertainment":"Entertainment","News & Politics":"News & Politics","How To":"How To","Education":"Education","Activism":"Activism","Science & Technology":"Science & Technology","Animals":"Animals","Kids":"Kids","Food":"Food","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Share Alike","Attribution - No Derivatives":"Attribution - No Derivatives","Attribution - Non Commercial":"Attribution - Non Commercial","Attribution - Non Commercial - Share Alike":"Attribution - Non Commercial - Share Alike","Attribution - Non Commercial - No Derivatives":"Attribution - Non Commercial - No Derivatives","Public Domain Dedication":"Public Domain Dedication","Public":"Public","Unlisted":"Unlisted","Private":"Private","Published":"Published","To transcode":"To transcode","To import":"To import","Pending":"Pending","Success":"Success","Failed":"Failed","Regular":"Regular","Watch later":"Watch later","This video does not exist.":"This video does not exist.","We cannot fetch the video. Please try again later.":"We cannot fetch the video. Please try again later.","Sorry":"Sorry","This video is not available because the remote instance is not responding.":"This video is not available because the remote instance is not responding.","Misc":"Misc","Unknown":"Unknown","Afar":"Afar","Abkhazian":"Abkhazian","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharic","Arabic":"Arabic","Aragonese":"Aragonese","American Sign Language":"American Sign Language","Assamese":"Assamese","Avaric":"Avaric","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azerbaijani","Bashkir":"Bashkir","Bambara":"Bambara","Belarusian":"Belarusian","Bengali":"Bengali","British Sign Language":"British Sign Language","Bislama":"Bislama","Tibetan":"Tibetan","Bosnian":"Bosnian","Breton":"Breton","Bulgarian":"Bulgarian","Brazilian Sign Language":"Brazilian Sign Language","Catalan":"Catalan","Czech":"Czech","Chamorro":"Chamorro","Chechen":"Chechen","Chuvash":"Chuvash","Cornish":"Cornish","Corsican":"Corsican","Cree":"Cree","Czech Sign Language":"Czech Sign Language","Chinese Sign Language":"Chinese Sign Language","Welsh":"Welsh","Danish":"Danish","German":"German","Dhivehi":"Dhivehi","Danish Sign Language":"Danish Sign Language","Dzongkha":"Dzongkha","Greek":"Greek","English":"English","Esperanto":"Esperanto","Estonian":"Estonian","Basque":"Basque","Ewe":"Ewe","Faroese":"Faroese","Persian":"Persian","Fijian":"Fijian","Finnish":"Finnish","French":"French","Western Frisian":"Western Frisian","French Sign Language":"French Sign Language","Fulah":"Fulah","Scottish Gaelic":"Scottish Gaelic","Irish":"Irish","Galician":"Galician","Manx":"Manx","Guarani":"Guarani","German Sign Language":"German Sign Language","Gujarati":"Gujarati","Haitian":"Haitian","Hausa":"Hausa","Serbo-Croatian":"Serbo-Croatian","Hebrew":"Hebrew","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri Motu","Croatian":"Croatian","Hungarian":"Hungarian","Armenian":"Armenian","Igbo":"Igbo","Sichuan Yi":"Sichuan Yi","Inuktitut":"Inuktitut","Indonesian":"Indonesian","Inupiaq":"Inupiaq","Icelandic":"Icelandic","Italian":"Italian","Javanese":"Javanese","Lojban":"Lojban","Japanese":"Japanese","Japanese Sign Language":"Japanese Sign Language","Kalaallisut":"Kalaallisut","Kannada":"Kannada","Kashmiri":"Kashmiri","Georgian":"Georgian","Kanuri":"Kanuri","Kazakh":"Kazakh","Khmer":"Khmer","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Kirghiz","Komi":"Komi","Kongo":"Kongo","Korean":"Korean","Kuanyama":"Kuanyama","Kurdish":"Kurdish","Lao":"Lao","Latvian":"Latvian","Limburgan":"Limburgan","Lingala":"Lingala","Lithuanian":"Lithuanian","Luxembourgish":"Luxembourgish","Luba-Katanga":"Luba-Katanga","Ganda":"Ganda","Marshallese":"Marshallese","Malayalam":"Malayalam","Marathi":"Marathi","Macedonian":"Macedonian","Malagasy":"Malagasy","Maltese":"Maltese","Mongolian":"Mongolian","Maori":"Maori","Malay (macrolanguage)":"Malay (macrolanguage)","Burmese":"Burmese","Nauru":"Nauru","Navajo":"Navajo","South Ndebele":"South Ndebele","North Ndebele":"North Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali (macrolanguage)","Dutch":"Dutch","Norwegian Nynorsk":"Norwegian Nynorsk","Norwegian Bokmål":"Norwegian Bokmål","Norwegian":"Norwegian","Nyanja":"Nyanja","Occitan":"Occitan","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya (macrolanguage)","Oromo":"Oromo","Ossetian":"Ossetian","Panjabi":"Panjabi","Pakistan Sign Language":"Pakistan Sign Language","Polish":"Polish","Portuguese":"Portuguese","Pushto":"Pushto","Quechua":"Quechua","Romansh":"Romansh","Romanian":"Romanian","Russian Sign Language":"Russian Sign Language","Rundi":"Rundi","Russian":"Russian","Sango":"Sango","Saudi Arabian Sign Language":"Saudi Arabian Sign Language","South African Sign Language":"South African Sign Language","Sinhala":"Sinhala","Slovak":"Slovak","Slovenian":"Slovenian","Northern Sami":"Northern Sami","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Southern Sotho","Spanish":"Spanish","Albanian":"Albanian","Sardinian":"Sardinian","Serbian":"Serbian","Swati":"Swati","Sundanese":"Sundanese","Swahili (macrolanguage)":"Swahili (macrolanguage)","Swedish":"Swedish","Swedish Sign Language":"Swedish Sign Language","Tahitian":"Tahitian","Tamil":"Tamil","Tatar":"Tatar","Telugu":"Telugu","Tajik":"Tajik","Tagalog":"Tagalog","Thai":"Thai","Tigrinya":"Tigrinya","Klingon":"Klingon","Tonga (Tonga Islands)":"Tonga (Tonga Islands)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turkmen","Turkish":"Turkish","Twi":"Twi","Uighur":"Uighur","Ukrainian":"Ukrainian","Urdu":"Urdu","Uzbek":"Uzbek","Venda":"Venda","Vietnamese":"Vietnamese","Walloon":"Walloon","Wolof":"Wolof","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinese","Zulu":"Zulu"} diff --git a/client/src/locale/server_fr_FR.json b/client/src/locale/server_fr_FR.json deleted file mode 100644 index 5744b1c24..000000000 --- a/client/src/locale/server_fr_FR.json +++ /dev/null @@ -1 +0,0 @@ -{"Music":"Musiques","Films":"Films","Vehicles":"Transport","Art":"Art","Sports":"Sports","Travels":"Voyages","Gaming":"Jeux vidéos","People":"Personnalités","Comedy":"Humour","Entertainment":"Divertissement","News & Politics":"Actualité & Politique","How To":"Tutoriels","Education":"Éducation","Activism":"Militantisme","Science & Technology":"Science & Technologie","Animals":"Animaux","Kids":"Enfants","Food":"Cuisine","Attribution":"Attribution","Attribution - Share Alike":"Attribution - Partage dans les mêmes conditions","Attribution - No Derivatives":"Attribution - Pas d’œuvre dérivée","Attribution - Non Commercial":"Attribution - Utilisation non commerciale","Attribution - Non Commercial - Share Alike":"Attribution - Utilisation non commerciale - Partage dans les mêmes conditions","Attribution - Non Commercial - No Derivatives":"Attribution - Utilisation non commerciale - Pas d’œuvre dérivée","Public Domain Dedication":"Domaine public","Public":"Publique","Unlisted":"Non listée","Private":"Privée","Published":"Publiée","To transcode":"À transcoder","To import":"À importer","Pending":"En cours","Success":"Succès","Failed":"Échoué","Regular":"Régulier","Watch later":"Regarder plus tard","This video does not exist.":"Cette vidéo n'existe pas.","We cannot fetch the video. Please try again later.":"Nous ne pouvons pas récupérer la vidéo. Merci de réessayer plus tard.","Sorry":"Désolé","This video is not available because the remote instance is not responding.":"Cette vidéo n'est pas disponible car l'instance distante ne répond pas.","Misc":"Divers","Unknown":"Inconnu","Afar":"Afar","Abkhazian":"Abkhaze","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharique","Arabic":"Arabe","Aragonese":"Aragonais","American Sign Language":"Langue des signes américaine","Assamese":"Assamais","Avaric":"Avar","Kotava":"Kotava","Aymara":"Aymara","Azerbaijani":"Azéri","Bashkir":"Bachkir","Bambara":"Bambara","Belarusian":"Biélorusse","Bengali":"Bengali","British Sign Language":"Langue des signes britannique","Bislama":"Bichlamar","Tibetan":"Tibétain","Bosnian":"Bosniaque","Breton":"Breton","Bulgarian":"Bulgare","Brazilian Sign Language":"Langue des signes brésilienne","Catalan":"Catalan","Czech":"Tchèque","Chamorro":"Chamorro","Chechen":"Tchétchène","Chuvash":"Tchouvache","Cornish":"Cornique","Corsican":"Corse","Cree":"Cree","Czech Sign Language":"Langue des signes tchèque","Chinese Sign Language":"Langue des signes chinoise","Welsh":"Gallois","Danish":"Danois","German":"Allemand","Dhivehi":"Maldivien","Danish Sign Language":"Langue des signes danoise","Dzongkha":"Dzongkha","Greek":"Grec","English":"Anglais","Esperanto":"Espéranto","Estonian":"Estonien","Basque":"Basque","Ewe":"Éwé","Faroese":"Féroïen","Persian":"Persan","Fijian":"Fidjien","Finnish":"Finnois","French":"Français","Western Frisian":"Frison occidental","French Sign Language":"Langue des signes française","Fulah":"Peul","Scottish Gaelic":"Gaélique","Irish":"Irlandais","Galician":"Galicien","Manx":"Manx","Guarani":"Guarani","German Sign Language":"Langue des signes allemande","Gujarati":"Goudjrati","Haitian":"Haïtien","Hausa":"Haoussa","Serbo-Croatian":"Serbo-croate","Hebrew":"Hébreu","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croate","Hungarian":"Hongrois","Armenian":"Arménien","Igbo":"Igbo","Sichuan Yi":"Yi de Sichuan","Inuktitut":"Inuktitut","Indonesian":"Indonésien","Inupiaq":"Inupiaq","Icelandic":"Islandais","Italian":"Italien","Javanese":"Javanais","Lojban":"Lojban","Japanese":"Japonais","Japanese Sign Language":"Langue des signes japonaise","Kalaallisut":"Groenlandais","Kannada":"Kannada","Kashmiri":"Kashmiri","Georgian":"Géorgien","Kanuri":"Kanouri","Kazakh":"Kazakh","Khmer":"Khmer central","Kikuyu":"Kikuyu","Kinyarwanda":"Rwanda","Kirghiz":"Kirghiz","Komi":"Kom","Kongo":"Kongo","Korean":"Coréen","Kuanyama":"Kuanyama","Kurdish":"Kurde","Lao":"Lao","Latvian":"Letton","Limburgan":"Limbourgeois","Lingala":"Lingala","Lithuanian":"Lituanien","Luxembourgish":"Luxembourgeois","Luba-Katanga":"Luba-katanga","Ganda":"Ganda","Marshallese":"Marshall","Malayalam":"Malayalam","Marathi":"Marathe","Macedonian":"Macédonien","Malagasy":"Malgache","Maltese":"Maltais","Mongolian":"Mongol","Maori":"Maori","Malay (macrolanguage)":"Malais","Burmese":"Birman","Nauru":"Nauruan","Navajo":"Navaho","South Ndebele":"Ndébélé du Sud","North Ndebele":"Ndébélé du Nord","Ndonga":"Ndonga","Nepali (macrolanguage)":"Népalais","Dutch":"Néerlandais","Norwegian Nynorsk":"Norvégien nynorsk","Norwegian Bokmål":"Norvégien bokmål","Norwegian":"Norvégien","Nyanja":"Chichewa","Occitan":"Occitane","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Galla","Ossetian":"Ossète","Panjabi":"Pendjabi","Pakistan Sign Language":"Langue des signes pakistanaise","Polish":"Polonais","Portuguese":"Portugais","Pushto":"Pachto","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Roumain","Russian Sign Language":"Langue des signes russe","Rundi":"Rundi","Russian":"Russe","Sango":"Sango","Saudi Arabian Sign Language":"Langue des signes saoudienne","South African Sign Language":"Langue des signes sud-africaine","Sinhala":"Singhalais","Slovak":"Slovaque","Slovenian":"Slovène","Northern Sami":"Sami du Nord","Samoan":"Samoan","Shona":"Shona","Sindhi":"Sindhi","Somali":"Somali","Southern Sotho":"Sotho du Sud","Spanish":"Espagnol","Albanian":"Albanais","Sardinian":"Sarde","Serbian":"Serbe","Swati":"Swati","Sundanese":"Soundanais","Swahili (macrolanguage)":"Swahili","Swedish":"Suédois","Swedish Sign Language":"Langue des signes suédoise","Tahitian":"Tahitien","Tamil":"Tamoul","Tatar":"Tatar","Telugu":"Télougou","Tajik":"Tadjik","Tagalog":"Tagalog","Thai":"Thaï","Tigrinya":"Tigrigna","Klingon":"Klingon","Tonga (Tonga Islands)":"Tongan (Îles Tonga)","Tswana":"Tswana","Tsonga":"Tsonga","Turkmen":"Turkmène","Turkish":"Turc","Twi":"Twi","Uighur":"Ouïgour","Ukrainian":"Ukrainien","Urdu":"Ourdou","Uzbek":"Ouszbek","Venda":"Venda","Vietnamese":"Vietnamien","Walloon":"Wallon","Wolof":"Wolof","Xhosa":"Xhosa","Yiddish":"Yiddish","Yoruba":"Yoruba","Zhuang":"Zhuang","Chinese":"Chinois","Zulu":"Zoulou"} \ No newline at end of file diff --git a/client/src/locale/videojs_en_US.json b/client/src/locale/videojs.en-US.json similarity index 100% rename from client/src/locale/videojs_en_US.json rename to client/src/locale/videojs.en-US.json diff --git a/client/yarn.lock b/client/yarn.lock index 8e1f28c75..17bf338f7 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -899,6 +899,35 @@ tree-kill "1.2.1" webpack-sources "1.4.3" +"@ngx-i18nsupport/ngx-i18nsupport-lib@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@ngx-i18nsupport/ngx-i18nsupport-lib/-/ngx-i18nsupport-lib-1.12.1.tgz#4ecb2227c576dac51d75b3ef82b9962be7d87ef5" + integrity sha512-6HSv4lPZLYSkghprg4k0kKCaAGbsppK6vlAVswDkPHO659WnIkNpZYSloQPziFt6NqL9WpZJ3V1gBbVx9tKV0g== + dependencies: + "@types/xmldom" "^0.1.29" + tokenizr "^1.3.10" + tslib "^1.9.0" + xmldom "^0.1.27" + +"@ngx-i18nsupport/ngx-i18nsupport@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@ngx-i18nsupport/ngx-i18nsupport/-/ngx-i18nsupport-1.1.6.tgz#d53ffd7e7b54cb8ba404db151bca3b68034a84eb" + integrity sha512-YQDOsz2FOdALOoQEQtsYZVnNuxi3qFKJ+n+lDm8uFjRIYegHXKD6m1i7nTGX+NEIr/0ICnWS3yPCyCy5x+6+hg== + dependencies: + "@ngx-i18nsupport/ngx-i18nsupport-lib" "^1.12.1" + chalk "^2.4.1" + he "^1.1.1" + request "^2.85.0" + tslib "^1.9.0" + +"@ngx-i18nsupport/tooling@^8.0.3": + version "8.0.3" + resolved "https://registry.yarnpkg.com/@ngx-i18nsupport/tooling/-/tooling-8.0.3.tgz#be3454eaa06ad8518ddda7a6bfbc57b95dffbfce" + integrity sha512-AAsjwklil2HKEHLreAEAOHB71WDqHtYxWinP+B/YWQH8UlVyZwvXXQigrsaiQyKIKdTueKGQ8ThS24GRiE1R/g== + dependencies: + "@ngx-i18nsupport/ngx-i18nsupport" "^1.1.6" + tslib "^1.9.0" + "@ngx-loading-bar/core@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@ngx-loading-bar/core/-/core-4.2.0.tgz#cf0cc209eb967bd7625c2cec565841890cd5e17e" @@ -1147,6 +1176,11 @@ "@types/parse-torrent" "*" "@types/simple-peer" "*" +"@types/xmldom@^0.1.29": + version "0.1.29" + resolved "https://registry.yarnpkg.com/@types/xmldom/-/xmldom-0.1.29.tgz#c4428b0ca86d3b881475726fd94980b38a27c381" + integrity sha1-xEKLDKhtO4gUdXJv2UmAs4onw4E= + "@videojs/http-streaming@1.10.6": version "1.10.6" resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-1.10.6.tgz#a9119b1828b354c5cc17b42ea051cc7bcce2dca0" @@ -4711,7 +4745,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.x: +he@1.2.x, he@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -8325,7 +8359,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.83.0, request@^2.87.0, request@^2.88.0: +request@^2.83.0, request@^2.85.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -9709,6 +9743,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +tokenizr@^1.3.10: + version "1.5.5" + resolved "https://registry.yarnpkg.com/tokenizr/-/tokenizr-1.5.5.tgz#bdb68ce4e52f6afefb2ed1b18279e32be87ef649" + integrity sha512-cbiOvnZXf9JFUAgbxnsu8Uv0KDiPKevcYRcx/UirBqwgm4PJ6Vigi5ezjXeVTD0Tk6uGzwocGGjmkgPP8NLlAw== + toposort@^1.0.0: version "1.0.7" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" @@ -10657,6 +10696,11 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== +xmldom@^0.1.27: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk= + xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" diff --git a/scripts/i18n/create-custom-files.ts b/scripts/i18n/create-custom-files.ts index e946b8fd6..47b3e3784 100755 --- a/scripts/i18n/create-custom-files.ts +++ b/scripts/i18n/create-custom-files.ts @@ -1,25 +1,21 @@ import { registerTSPaths } from '../../server/helpers/register-ts-paths' -registerTSPaths() - -import * as jsToXliff12 from 'xliff/jsToXliff12' -import { writeFile } from 'fs-extra' +import { writeJSON } from 'fs-extra' import { join } from 'path' import { buildLanguages, VIDEO_CATEGORIES, VIDEO_IMPORT_STATES, - VIDEO_LICENCES, VIDEO_PLAYLIST_PRIVACIES, VIDEO_PLAYLIST_TYPES, + VIDEO_LICENCES, + VIDEO_PLAYLIST_PRIVACIES, + VIDEO_PLAYLIST_TYPES, VIDEO_PRIVACIES, VIDEO_STATES } from '../../server/initializers/constants' import { values } from 'lodash' -type TranslationType = { - target: string - data: { [id: string]: string } -} +registerTSPaths() -const videojs = require(join(__dirname, '../../../client/src/locale/source/videojs_en_US.json')) +const videojs = require(join(__dirname, '../../../client/src/locale/videojs.en-US.json')) const playerKeys = { 'Quality': 'Quality', 'Auto': 'Auto', @@ -37,10 +33,7 @@ const playerKeys = { 'Total downloaded: ': 'Total downloaded: ', 'Total uploaded: ': 'Total uploaded: ' } -const playerTranslations = { - target: join(__dirname, '../../../client/src/locale/source/player_en_US.xml'), - data: Object.assign({}, videojs, playerKeys) -} +Object.assign(playerKeys, videojs) // Server keys const serverKeys: any = {} @@ -65,57 +58,17 @@ Object.assign(serverKeys, { 'Unknown': 'Unknown' }) -const serverTranslations = { - target: join(__dirname, '../../../client/src/locale/source/server_en_US.xml'), - data: serverKeys -} - // ISO 639 keys const languageKeys: any = {} const languages = buildLanguages() Object.keys(languages).forEach(k => languageKeys[languages[k]] = languages[k]) -const iso639Translations = { - target: join(__dirname, '../../../client/src/locale/source/iso639_en_US.xml'), - data: languageKeys -} - -saveToXliffFile(playerTranslations, err => { - if (err) return handleError(err) - - saveToXliffFile(serverTranslations, err => { - if (err) return handleError(err) - - saveToXliffFile(iso639Translations, err => { - if (err) return handleError(err) +Object.assign(serverKeys, languageKeys) - process.exit(0) - }) - }) -}) - -// Then, the server strings - -function saveToXliffFile (jsonTranslations: TranslationType, cb: Function) { - const obj = { - resources: { - namespace1: {} - } - } - Object.keys(jsonTranslations.data).forEach(k => obj.resources.namespace1[ k ] = { source: jsonTranslations.data[ k ] }) - - jsToXliff12(obj, (err, res) => { - if (err) return cb(err) - - writeFile(jsonTranslations.target, res, err => { - if (err) return cb(err) - - return cb(null) - }) - }) -} - -function handleError (err: any) { +Promise.all([ + writeJSON(join(__dirname, '../../../client/src/locale/player.en-US.json'), playerKeys), + writeJSON(join(__dirname, '../../../client/src/locale/server.en-US.json'), serverKeys) +]).catch(err => { console.error(err) process.exit(-1) -} +}) diff --git a/scripts/i18n/generate.sh b/scripts/i18n/generate.sh index 3f3e3d8e5..f9c2f0613 100755 --- a/scripts/i18n/generate.sh +++ b/scripts/i18n/generate.sh @@ -3,12 +3,11 @@ set -eu cd client -npm run ng -- xi18n --i18n-locale "en-US" --output-path src/locale/source --out-file angular_en_US.xml -npm run ngx-extractor -- --locale "en-US" -i 'src/**/*.ts' -f xlf -o src/locale/source/angular_en_US.xml +npm run ng -- xi18n --i18n-locale "en-US" --output-path src/locale --out-file angular.xlf +npm run ngx-extractor -- --locale "en-US" -i 'src/**/*.ts' -f xlf -o src/locale/angular.xlf -# Zanata does not support inner elements in , so we hack these special elements -# This regex translate the Angular elements to special entities (that we will reconvert on pull) -perl -pi -e 's||<x id=\1/>|g' src/locale/source/angular_en_US.xml +# Merge new translations in other language files +npm run ng run -- PeerTube:xliffmerge # Add our strings too cd ../ diff --git a/scripts/i18n/pull-hook.sh b/scripts/i18n/pull-hook.sh index 8d1f7ee55..738469e38 100755 --- a/scripts/i18n/pull-hook.sh +++ b/scripts/i18n/pull-hook.sh @@ -2,14 +2,5 @@ set -eu -for i in $(seq 1 10); do - # Angular does not like when there is not target element, so we create it with the same content than the source element - perl -0pi -e 's#([^<]+)\s*\1\1, so we hack these special elements - # This regex translate the converted elements to initial Angular elements - perl -pi -e 's|<x id=(.+?)/>([^"])|\2|g' client/src/locale/target/*.xml -done - npm run i18n:xliff2json -- 2.25.1