aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CREDITS.md21
-rw-r--r--client/package.json35
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html7
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts12
-rw-r--r--client/src/app/+my-account/my-account-routing.module.ts10
-rw-r--r--client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html52
-rw-r--r--client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.scss10
-rw-r--r--client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.ts66
-rw-r--r--client/src/app/+my-account/my-account-videos/my-account-videos.component.ts2
-rw-r--r--client/src/app/+my-account/my-account.component.html2
-rw-r--r--client/src/app/+my-account/my-account.component.ts12
-rw-r--r--client/src/app/+my-account/my-account.module.ts8
-rw-r--r--client/src/app/core/server/server.service.ts7
-rw-r--r--client/src/app/shared/misc/peertube-local-storage.ts4
-rw-r--r--client/src/app/shared/shared.module.ts2
-rw-r--r--client/src/app/shared/video-import/index.ts1
-rw-r--r--client/src/app/shared/video-import/video-import.service.ts88
-rw-r--r--client/src/app/shared/video/video-edit.model.ts40
-rw-r--r--client/src/app/shared/video/video-thumbnail.component.html2
-rw-r--r--client/src/app/videos/+video-edit/video-add.component.html68
-rw-r--r--client/src/app/videos/+video-edit/video-add.component.scss117
-rw-r--r--client/src/app/videos/+video-edit/video-add.component.ts253
-rw-r--r--client/src/app/videos/+video-edit/video-add.module.ts6
-rw-r--r--client/src/app/videos/+video-edit/video-import.component.html60
-rw-r--r--client/src/app/videos/+video-edit/video-import.component.scss37
-rw-r--r--client/src/app/videos/+video-edit/video-import.component.ts164
-rw-r--r--client/src/app/videos/+video-edit/video-update.component.ts1
-rw-r--r--client/src/app/videos/+video-edit/video-upload.component.html58
-rw-r--r--client/src/app/videos/+video-edit/video-upload.component.scss85
-rw-r--r--client/src/app/videos/+video-edit/video-upload.component.ts251
-rw-r--r--client/src/app/videos/+video-watch/video-watch.component.html4
-rw-r--r--client/src/app/videos/+video-watch/video-watch.component.ts7
-rw-r--r--client/src/app/videos/shared/markdown.service.ts1
-rw-r--r--client/src/locale/source/angular_en_US.xml115
-rw-r--r--client/src/locale/target/angular_ca_ES.xml439
-rw-r--r--client/src/locale/target/angular_cs_CZ.xml439
-rw-r--r--client/src/locale/target/angular_de_DE.xml2115
-rw-r--r--client/src/locale/target/angular_eo.xml439
-rw-r--r--client/src/locale/target/angular_es_ES.xml3312
-rw-r--r--client/src/locale/target/angular_eu_ES.xml439
-rw-r--r--client/src/locale/target/angular_fr_FR.xml439
-rw-r--r--client/src/locale/target/angular_nl_NL.xml215
-rw-r--r--client/src/locale/target/angular_oc.xml716
-rw-r--r--client/src/locale/target/angular_pl_PL.xml441
-rw-r--r--client/src/locale/target/angular_pt_BR.xml450
-rw-r--r--client/src/locale/target/angular_sv_SE.xml64
-rw-r--r--client/src/locale/target/angular_zh_Hans_CN.xml873
-rw-r--r--client/src/locale/target/angular_zh_Hant_TW.xml2796
-rw-r--r--client/src/locale/target/iso639_de_DE.xml759
-rw-r--r--client/src/locale/target/iso639_es_ES.xml295
-rw-r--r--client/src/locale/target/player_de_DE.json1
-rw-r--r--client/src/locale/target/player_de_DE.xml379
-rw-r--r--client/src/locale/target/player_es_ES.json1
-rw-r--r--client/src/locale/target/player_es_ES.xml155
-rw-r--r--client/src/locale/target/player_zh_Hans_CN.xml40
-rw-r--r--client/src/locale/target/player_zh_Hant_TW.json1
-rw-r--r--client/src/locale/target/server_de_DE.json1
-rw-r--r--client/src/locale/target/server_de_DE.xml127
-rw-r--r--client/src/locale/target/server_es_ES.json1
-rw-r--r--client/src/locale/target/server_es_ES.xml127
-rw-r--r--client/src/locale/target/server_zh_Hant_TW.json1
-rw-r--r--client/yarn.lock830
-rw-r--r--config/default.yaml8
-rw-r--r--config/production.yaml.example8
-rw-r--r--config/test.yaml5
-rw-r--r--package.json9
-rwxr-xr-xscripts/build/client.sh2
-rwxr-xr-xscripts/i18n/create-custom-files.ts11
-rwxr-xr-xscripts/release.sh10
-rw-r--r--server.ts4
-rw-r--r--server/controllers/api/config.ts30
-rw-r--r--server/controllers/api/users.ts78
-rw-r--r--server/controllers/api/video-channel.ts29
-rw-r--r--server/controllers/api/videos/abuse.ts8
-rw-r--r--server/controllers/api/videos/comment.ts10
-rw-r--r--server/controllers/api/videos/import.ts138
-rw-r--r--server/controllers/api/videos/index.ts17
-rw-r--r--server/helpers/activitypub.ts1
-rw-r--r--server/helpers/audit-logger.ts265
-rw-r--r--server/helpers/core-utils.ts2
-rw-r--r--server/helpers/custom-validators/activitypub/videos.ts5
-rw-r--r--server/helpers/custom-validators/video-imports.ts49
-rw-r--r--server/helpers/ffmpeg-utils.ts155
-rw-r--r--server/helpers/logger.ts4
-rw-r--r--server/helpers/utils.ts28
-rw-r--r--server/helpers/youtube-dl.ts142
-rw-r--r--server/initializers/checker.ts31
-rw-r--r--server/initializers/constants.ts53
-rw-r--r--server/initializers/database.ts8
-rw-r--r--server/lib/activitypub/process/process-update.ts2
-rw-r--r--server/lib/activitypub/videos.ts3
-rw-r--r--server/lib/job-queue/handlers/video-import.ts145
-rw-r--r--server/lib/job-queue/job-queue.ts25
-rw-r--r--server/lib/schedulers/youtube-dl-update-scheduler.ts72
-rw-r--r--server/lib/user.ts1
-rw-r--r--server/middlewares/validators/avatar.ts3
-rw-r--r--server/middlewares/validators/config.ts1
-rw-r--r--server/middlewares/validators/index.ts1
-rw-r--r--server/middlewares/validators/sort.ts3
-rw-r--r--server/middlewares/validators/video-captions.ts7
-rw-r--r--server/middlewares/validators/video-channels.ts4
-rw-r--r--server/middlewares/validators/video-imports.ts47
-rw-r--r--server/middlewares/validators/videos.ts84
-rw-r--r--server/models/account/account.ts1
-rw-r--r--server/models/activitypub/actor.ts7
-rw-r--r--server/models/video/video-import.ts175
-rw-r--r--server/models/video/video.ts19
-rw-r--r--server/tests/api/check-params/config.ts7
-rw-r--r--server/tests/api/check-params/index.ts1
-rw-r--r--server/tests/api/check-params/video-imports.ts275
-rw-r--r--server/tests/api/index-slow.ts2
-rw-r--r--server/tests/api/server/config.ts9
-rw-r--r--server/tests/api/server/follows.ts2
-rw-r--r--server/tests/api/server/handle-down.ts2
-rw-r--r--server/tests/api/videos/multiple-servers.ts16
-rw-r--r--server/tests/api/videos/video-imports.ts161
-rw-r--r--server/tests/api/videos/video-transcoder.ts188
-rw-r--r--server/tests/client.ts58
-rw-r--r--server/tests/fixtures/video_short_mp3_256k.mp4bin0 -> 194985 bytes
-rw-r--r--server/tests/fixtures/video_short_no_audio.mp4bin0 -> 34259 bytes
-rw-r--r--server/tests/utils/server/config.ts66
-rw-r--r--server/tests/utils/videos/video-imports.ts37
-rw-r--r--server/tests/utils/videos/videos.ts4
-rw-r--r--shared/models/activitypub/objects/common-objects.ts2
-rw-r--r--shared/models/i18n/i18n.ts11
-rw-r--r--shared/models/server/custom-config.model.ts8
-rw-r--r--shared/models/server/job.model.ts3
-rw-r--r--shared/models/server/server-config.model.ts8
-rw-r--r--shared/models/videos/index.ts3
-rw-r--r--shared/models/videos/video-import-create.model.ts6
-rw-r--r--shared/models/videos/video-import-state.enum.ts5
-rw-r--r--shared/models/videos/video-import.model.ts14
-rw-r--r--shared/models/videos/video-state.enum.ts3
-rw-r--r--tsconfig.json1
-rw-r--r--yarn.lock14
135 files changed, 14599 insertions, 5520 deletions
diff --git a/CREDITS.md b/CREDITS.md
index ab1cacd78..9ae6761f5 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -4,24 +4,27 @@
4 * [rigelk](https://github.com/rigelk) 4 * [rigelk](https://github.com/rigelk)
5 * [gegeweb](https://github.com/gegeweb) 5 * [gegeweb](https://github.com/gegeweb)
6 * [bnjbvr](https://github.com/bnjbvr) 6 * [bnjbvr](https://github.com/bnjbvr)
7 * [DavidLibeau](https://github.com/DavidLibeau)
7 * [jankeromnes](https://github.com/jankeromnes) 8 * [jankeromnes](https://github.com/jankeromnes)
9 * [Jorropo](https://github.com/Jorropo)
8 * [DimitriGilbert](https://github.com/DimitriGilbert) 10 * [DimitriGilbert](https://github.com/DimitriGilbert)
9 * [floSoX](https://github.com/floSoX) 11 * [floSoX](https://github.com/floSoX)
10 * [Green-Star](https://github.com/Green-Star) 12 * [Green-Star](https://github.com/Green-Star)
11 * [rezonant](https://github.com/rezonant) 13 * [rezonant](https://github.com/rezonant)
12 * [DavidLibeau](https://github.com/DavidLibeau)
13 * [JohnXLivingston](https://github.com/JohnXLivingston) 14 * [JohnXLivingston](https://github.com/JohnXLivingston)
14 * [okhin](https://github.com/okhin) 15 * [okhin](https://github.com/okhin)
15 * [fflorent](https://github.com/fflorent) 16 * [fflorent](https://github.com/fflorent)
16 * [ldidry](https://github.com/ldidry) 17 * [ldidry](https://github.com/ldidry)
17 * [kaiyou](https://github.com/kaiyou) 18 * [kaiyou](https://github.com/kaiyou)
18 * [dedesite](https://github.com/dedesite) 19 * [dedesite](https://github.com/dedesite)
20 * [Nautigsam](https://github.com/Nautigsam)
19 * [daftaupe](https://github.com/daftaupe) 21 * [daftaupe](https://github.com/daftaupe)
20 * [dadall](https://github.com/dadall) 22 * [dadall](https://github.com/dadall)
21 * [jonathanraes](https://github.com/jonathanraes) 23 * [jonathanraes](https://github.com/jonathanraes)
22 * [rhaamo](https://github.com/rhaamo) 24 * [rhaamo](https://github.com/rhaamo)
23 * [mrflos](https://github.com/mrflos) 25 * [mrflos](https://github.com/mrflos)
24 * [jocelynj](https://github.com/jocelynj) 26 * [jocelynj](https://github.com/jocelynj)
27 * [joshmorel](https://github.com/joshmorel)
25 * [LecygneNoir](https://github.com/LecygneNoir) 28 * [LecygneNoir](https://github.com/LecygneNoir)
26 * [lucaspontoexe](https://github.com/lucaspontoexe) 29 * [lucaspontoexe](https://github.com/lucaspontoexe)
27 * [flyingrub](https://github.com/flyingrub) 30 * [flyingrub](https://github.com/flyingrub)
@@ -30,23 +33,25 @@
30 * [taziden](https://github.com/taziden) 33 * [taziden](https://github.com/taziden)
31 * [sticmac](https://github.com/sticmac) 34 * [sticmac](https://github.com/sticmac)
32 * [luzpaz](https://github.com/luzpaz) 35 * [luzpaz](https://github.com/luzpaz)
36 * [louistio](https://github.com/louistio)
33 * [qsypoq](https://github.com/qsypoq) 37 * [qsypoq](https://github.com/qsypoq)
34 * [Anton-Latukha](https://github.com/Anton-Latukha) 38 * [Anton-Latukha](https://github.com/Anton-Latukha)
35 * [noplanman](https://github.com/noplanman) 39 * [noplanman](https://github.com/noplanman)
36 * [Nautigsam](https://github.com/Nautigsam)
37 * [benabbottnz](https://github.com/benabbottnz) 40 * [benabbottnz](https://github.com/benabbottnz)
38 * [ewft](https://github.com/ewft) 41 * [ewft](https://github.com/ewft)
39 * [WildYorkies](https://github.com/WildYorkies) 42 * [WildYorkies](https://github.com/WildYorkies)
40 * [Ealhad](https://github.com/Ealhad) 43 * [Ealhad](https://github.com/Ealhad)
44 * [DeeJayBro](https://github.com/DeeJayBro)
41 * [ebrehault](https://github.com/ebrehault) 45 * [ebrehault](https://github.com/ebrehault)
42 * [DatBewar](https://github.com/DatBewar) 46 * [DatBewar](https://github.com/DatBewar)
43 * [ReK2Fernandez](https://github.com/ReK2Fernandez) 47 * [ReK2Fernandez](https://github.com/ReK2Fernandez)
44 * [joshmorel](https://github.com/joshmorel) 48 * [lanodan](https://github.com/lanodan)
45 * [jlebras](https://github.com/jlebras) 49 * [jlebras](https://github.com/jlebras)
46 * [alcalyn](https://github.com/alcalyn) 50 * [alcalyn](https://github.com/alcalyn)
47 * [mkody](https://github.com/mkody) 51 * [mkody](https://github.com/mkody)
48 * [lucas-dclrcq](https://github.com/lucas-dclrcq) 52 * [lucas-dclrcq](https://github.com/lucas-dclrcq)
49 * [zapashcanon](https://github.com/zapashcanon) 53 * [zapashcanon](https://github.com/zapashcanon)
54 * [mart-e](https://github.com/mart-e)
50 * [1000i100](https://github.com/1000i100) 55 * [1000i100](https://github.com/1000i100)
51 * [zeograd](https://github.com/zeograd) 56 * [zeograd](https://github.com/zeograd)
52 * [PhieF](https://github.com/PhieF) 57 * [PhieF](https://github.com/PhieF)
@@ -59,6 +64,7 @@
59 * [melongbob](https://github.com/melongbob) 64 * [melongbob](https://github.com/melongbob)
60 * [anmol26s](https://github.com/anmol26s) 65 * [anmol26s](https://github.com/anmol26s)
61 * [AugierLe42e](https://github.com/AugierLe42e) 66 * [AugierLe42e](https://github.com/AugierLe42e)
67 * [imbsky](https://github.com/imbsky)
62 * [ctlaltdefeat](https://github.com/ctlaltdefeat) 68 * [ctlaltdefeat](https://github.com/ctlaltdefeat)
63 * [jomo](https://github.com/jomo) 69 * [jomo](https://github.com/jomo)
64 * [memoryboxes](https://github.com/memoryboxes) 70 * [memoryboxes](https://github.com/memoryboxes)
@@ -77,22 +83,31 @@
77 * [claichou](https://trad.framasoft.org/zanata/profile/view/claichou) 83 * [claichou](https://trad.framasoft.org/zanata/profile/view/claichou)
78 * [degrange](https://trad.framasoft.org/zanata/profile/view/degrange) 84 * [degrange](https://trad.framasoft.org/zanata/profile/view/degrange)
79 * [esoforte](https://trad.framasoft.org/zanata/profile/view/esoforte) 85 * [esoforte](https://trad.framasoft.org/zanata/profile/view/esoforte)
86 * [fkohrt](https://trad.framasoft.org/zanata/profile/view/fkohrt)
80 * [goofy](https://trad.framasoft.org/zanata/profile/view/goofy) 87 * [goofy](https://trad.framasoft.org/zanata/profile/view/goofy)
81 * [gorkaazk](https://trad.framasoft.org/zanata/profile/view/gorkaazk) 88 * [gorkaazk](https://trad.framasoft.org/zanata/profile/view/gorkaazk)
82 * [kedemferre](https://trad.framasoft.org/zanata/profile/view/kedemferre) 89 * [kedemferre](https://trad.framasoft.org/zanata/profile/view/kedemferre)
83 * [krkk](https://trad.framasoft.org/zanata/profile/view/krkk) 90 * [krkk](https://trad.framasoft.org/zanata/profile/view/krkk)
84 * [m4sk1n](https://trad.framasoft.org/zanata/profile/view/m4sk1n) 91 * [m4sk1n](https://trad.framasoft.org/zanata/profile/view/m4sk1n)
85 * [matograine](https://trad.framasoft.org/zanata/profile/view/matograine) 92 * [matograine](https://trad.framasoft.org/zanata/profile/view/matograine)
93 * [mhu](https://trad.framasoft.org/zanata/profile/view/mhu)
86 * [midgard](https://trad.framasoft.org/zanata/profile/view/midgard) 94 * [midgard](https://trad.framasoft.org/zanata/profile/view/midgard)
95 * [nitai](https://trad.framasoft.org/zanata/profile/view/nitai)
87 * [osoitz](https://trad.framasoft.org/zanata/profile/view/osoitz) 96 * [osoitz](https://trad.framasoft.org/zanata/profile/view/osoitz)
97 * [outloudvi](https://trad.framasoft.org/zanata/profile/view/outloudvi)
88 * [quentin](https://trad.framasoft.org/zanata/profile/view/quentin) 98 * [quentin](https://trad.framasoft.org/zanata/profile/view/quentin)
89 * [rigelk](https://trad.framasoft.org/zanata/profile/view/rigelk) 99 * [rigelk](https://trad.framasoft.org/zanata/profile/view/rigelk)
100 * [s8321414](https://trad.framasoft.org/zanata/profile/view/s8321414)
90 * [sercom_kc](https://trad.framasoft.org/zanata/profile/view/sercom_kc) 101 * [sercom_kc](https://trad.framasoft.org/zanata/profile/view/sercom_kc)
91 * [spla](https://trad.framasoft.org/zanata/profile/view/spla) 102 * [spla](https://trad.framasoft.org/zanata/profile/view/spla)
92 * [swedneck](https://trad.framasoft.org/zanata/profile/view/swedneck) 103 * [swedneck](https://trad.framasoft.org/zanata/profile/view/swedneck)
104 * [tagomago](https://trad.framasoft.org/zanata/profile/view/tagomago)
93 * [tirifto](https://trad.framasoft.org/zanata/profile/view/tirifto) 105 * [tirifto](https://trad.framasoft.org/zanata/profile/view/tirifto)
106 * [tuxayo](https://trad.framasoft.org/zanata/profile/view/tuxayo)
94 * [wanhua](https://trad.framasoft.org/zanata/profile/view/wanhua) 107 * [wanhua](https://trad.framasoft.org/zanata/profile/view/wanhua)
95 * [xinayder](https://trad.framasoft.org/zanata/profile/view/xinayder) 108 * [xinayder](https://trad.framasoft.org/zanata/profile/view/xinayder)
109 * [xosem](https://trad.framasoft.org/zanata/profile/view/xosem)
110 * [zveryok](https://trad.framasoft.org/zanata/profile/view/zveryok)
96 111
97 112
98# Design 113# Design
diff --git a/client/package.json b/client/package.json
index a7307a0b2..34305ee44 100644
--- a/client/package.json
+++ b/client/package.json
@@ -23,26 +23,27 @@
23 "ngx-extractor": "ngx-extractor" 23 "ngx-extractor": "ngx-extractor"
24 }, 24 },
25 "license": "GPLv3", 25 "license": "GPLv3",
26 "typings": "*.d.ts",
26 "resolutions": { 27 "resolutions": {
27 "video.js": "^7", 28 "video.js": "^7",
28 "webtorrent/create-torrent/junk": "^1", 29 "webtorrent/create-torrent/junk": "^1",
29 "simple-get": "^2.8.1" 30 "simple-get": "^2.8.1"
30 }, 31 },
31 "devDependencies": { 32 "devDependencies": {
32 "@angular-devkit/build-angular": "~0.6.1", 33 "@angular-devkit/build-angular": "^0.7.1",
33 "@angular/animations": "~6.0.2", 34 "@angular/animations": "~6.1.0",
34 "@angular/cli": "6.0.8", 35 "@angular/cli": "~6.1.0",
35 "@angular/common": "~6.0.2", 36 "@angular/common": "~6.1.0",
36 "@angular/compiler": "~6.0.2", 37 "@angular/compiler": "~6.1.0",
37 "@angular/compiler-cli": "~6.0.2", 38 "@angular/compiler-cli": "~6.1.0",
38 "@angular/core": "~6.0.2", 39 "@angular/core": "~6.1.0",
39 "@angular/forms": "~6.0.2", 40 "@angular/forms": "~6.1.0",
40 "@angular/http": "~6.0.2", 41 "@angular/http": "~6.1.0",
41 "@angular/language-service": "^6.0.1", 42 "@angular/language-service": "~6.1.0",
42 "@angular/platform-browser": "~6.0.2", 43 "@angular/platform-browser": "~6.1.0",
43 "@angular/platform-browser-dynamic": "~6.0.2", 44 "@angular/platform-browser-dynamic": "~6.1.0",
44 "@angular/router": "~6.0.2", 45 "@angular/router": "~6.1.0",
45 "@angular/service-worker": "^6.0.1", 46 "@angular/service-worker": "~6.1.0",
46 "@angularclass/hmr": "^2.1.3", 47 "@angularclass/hmr": "^2.1.3",
47 "@ngx-loading-bar/core": "^2.0.0", 48 "@ngx-loading-bar/core": "^2.0.0",
48 "@ngx-loading-bar/http-client": "^2.0.0", 49 "@ngx-loading-bar/http-client": "^2.0.0",
@@ -85,7 +86,7 @@
85 "lodash-es": "^4.17.4", 86 "lodash-es": "^4.17.4",
86 "markdown-it": "^8.4.0", 87 "markdown-it": "^8.4.0",
87 "ngx-bootstrap": "3.0.1", 88 "ngx-bootstrap": "3.0.1",
88 "ngx-chips": "1.9.2", 89 "ngx-chips": "1.9.3",
89 "ngx-clipboard": "11.1.1", 90 "ngx-clipboard": "11.1.1",
90 "ngx-pipes": "^2.1.7", 91 "ngx-pipes": "^2.1.7",
91 "ngx-qrcode2": "^0.0.9", 92 "ngx-qrcode2": "^0.0.9",
@@ -106,9 +107,9 @@
106 "stream-http": "^2.8.3", 107 "stream-http": "^2.8.3",
107 "tslint": "^5.7.0", 108 "tslint": "^5.7.0",
108 "tslint-config-standard": "^7.0.0", 109 "tslint-config-standard": "^7.0.0",
109 "typescript": "2.7", 110 "typescript": "2.9",
110 "uglifyjs-webpack-plugin": "^1.1.2", 111 "uglifyjs-webpack-plugin": "^1.1.2",
111 "video.js": "7.2.0", 112 "video.js": "7.2",
112 "videojs-contextmenu": "^2.0.0", 113 "videojs-contextmenu": "^2.0.0",
113 "videojs-contextmenu-ui": "^4.0.0", 114 "videojs-contextmenu-ui": "^4.0.0",
114 "videojs-dock": "^2.0.2", 115 "videojs-dock": "^2.0.2",
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 6e3f83ccf..13b43306b 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -101,6 +101,13 @@
101 </div> 101 </div>
102 </div> 102 </div>
103 103
104 <div i18n class="inner-form-title">Import</div>
105
106 <my-peertube-checkbox
107 inputName="importVideosHttpEnabled" formControlName="importVideosHttpEnabled"
108 i18n-labelText labelText="Video import with HTTP enabled"
109 ></my-peertube-checkbox>
110
104 <div i18n class="inner-form-title">Administrator</div> 111 <div i18n class="inner-form-title">Administrator</div>
105 112
106 <div class="form-group"> 113 <div class="form-group">
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
index c77249a02..bc5ce6e5d 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
@@ -29,6 +29,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
29 { value: 50 * 1024 * 1024 * 1024, label: '50GB' } 29 { value: 50 * 1024 * 1024 * 1024, label: '50GB' }
30 ] 30 ]
31 transcodingThreadOptions = [ 31 transcodingThreadOptions = [
32 { value: 0, label: 'Auto (via ffmpeg)' },
32 { value: 1, label: '1' }, 33 { value: 1, label: '1' },
33 { value: 2, label: '2' }, 34 { value: 2, label: '2' },
34 { value: 4, label: '4' }, 35 { value: 4, label: '4' },
@@ -70,6 +71,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
70 cacheCaptionsSize: this.customConfigValidatorsService.CACHE_CAPTIONS_SIZE, 71 cacheCaptionsSize: this.customConfigValidatorsService.CACHE_CAPTIONS_SIZE,
71 signupEnabled: null, 72 signupEnabled: null,
72 signupLimit: this.customConfigValidatorsService.SIGNUP_LIMIT, 73 signupLimit: this.customConfigValidatorsService.SIGNUP_LIMIT,
74 importVideosHttpEnabled: null,
73 adminEmail: this.customConfigValidatorsService.ADMIN_EMAIL, 75 adminEmail: this.customConfigValidatorsService.ADMIN_EMAIL,
74 userVideoQuota: this.userValidatorsService.USER_VIDEO_QUOTA, 76 userVideoQuota: this.userValidatorsService.USER_VIDEO_QUOTA,
75 transcodingThreads: this.customConfigValidatorsService.TRANSCODING_THREADS, 77 transcodingThreads: this.customConfigValidatorsService.TRANSCODING_THREADS,
@@ -182,6 +184,13 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
182 '720p': this.form.value[this.getResolutionKey('720p')], 184 '720p': this.form.value[this.getResolutionKey('720p')],
183 '1080p': this.form.value[this.getResolutionKey('1080p')] 185 '1080p': this.form.value[this.getResolutionKey('1080p')]
184 } 186 }
187 },
188 import: {
189 videos: {
190 http: {
191 enabled: this.form.value['importVideosHttpEnabled']
192 }
193 }
185 } 194 }
186 } 195 }
187 196
@@ -221,7 +230,8 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
221 transcodingThreads: this.customConfig.transcoding.threads, 230 transcodingThreads: this.customConfig.transcoding.threads,
222 transcodingEnabled: this.customConfig.transcoding.enabled, 231 transcodingEnabled: this.customConfig.transcoding.enabled,
223 customizationJavascript: this.customConfig.instance.customizations.javascript, 232 customizationJavascript: this.customConfig.instance.customizations.javascript,
224 customizationCSS: this.customConfig.instance.customizations.css 233 customizationCSS: this.customConfig.instance.customizations.css,
234 importVideosHttpEnabled: this.customConfig.import.videos.http.enabled
225 } 235 }
226 236
227 for (const resolution of this.resolutions) { 237 for (const resolution of this.resolutions) {
diff --git a/client/src/app/+my-account/my-account-routing.module.ts b/client/src/app/+my-account/my-account-routing.module.ts
index 91b464f75..6f0806e8a 100644
--- a/client/src/app/+my-account/my-account-routing.module.ts
+++ b/client/src/app/+my-account/my-account-routing.module.ts
@@ -8,6 +8,7 @@ import { MyAccountVideosComponent } from './my-account-videos/my-account-videos.
8import { MyAccountVideoChannelsComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channels.component' 8import { MyAccountVideoChannelsComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channels.component'
9import { MyAccountVideoChannelCreateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-create.component' 9import { MyAccountVideoChannelCreateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-create.component'
10import { MyAccountVideoChannelUpdateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-update.component' 10import { MyAccountVideoChannelUpdateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-update.component'
11import { MyAccountVideoImportsComponent } from '@app/+my-account/my-account-video-imports/my-account-video-imports.component'
11 12
12const myAccountRoutes: Routes = [ 13const myAccountRoutes: Routes = [
13 { 14 {
@@ -64,6 +65,15 @@ const myAccountRoutes: Routes = [
64 title: 'Account videos' 65 title: 'Account videos'
65 } 66 }
66 } 67 }
68 },
69 {
70 path: 'video-imports',
71 component: MyAccountVideoImportsComponent,
72 data: {
73 meta: {
74 title: 'Account video imports'
75 }
76 }
67 } 77 }
68 ] 78 ]
69 } 79 }
diff --git a/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html
new file mode 100644
index 000000000..00b2d7cb0
--- /dev/null
+++ b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.html
@@ -0,0 +1,52 @@
1<p-table
2 [value]="videoImports" [lazy]="true" [paginator]="true" [totalRecords]="totalRecords" [rows]="rowsPerPage"
3 [sortField]="sort.field" [sortOrder]="sort.order" (onLazyLoad)="loadLazy($event)" dataKey="id"
4>
5 <ng-template pTemplate="header">
6 <tr>
7 <th style="width: 40px;"></th>
8 <th i18n>URL</th>
9 <th i18n>Video</th>
10 <th i18n style="width: 150px">State</th>
11 <th i18n pSortableColumn="createdAt">Created <p-sortIcon field="createdAt"></p-sortIcon></th>
12 <th></th>
13 </tr>
14 </ng-template>
15
16 <ng-template pTemplate="body" let-expanded="expanded" let-videoImport>
17 <tr>
18 <td>
19 <span *ngIf="videoImport.error" class="expander" [pRowToggler]="videoImport">
20 <i [ngClass]="expanded ? 'glyphicon glyphicon-menu-down' : 'glyphicon glyphicon-menu-right'"></i>
21 </span>
22 </td>
23
24 <td>
25 <a [href]="videoImport.targetUrl" target="_blank" rel="noopener noreferrer">{{ videoImport.targetUrl }}</a>
26 </td>
27
28 <td *ngIf="isVideoImportPending(videoImport)">
29 {{ videoImport.video.name }}
30 </td>
31 <td *ngIf="isVideoImportSuccess(videoImport)">
32 <a [href]="getVideoUrl(videoImport.video)" target="_blank" rel="noopener noreferrer">{{ videoImport.video.name }}</a>
33 </td>
34 <td *ngIf="isVideoImportFailed(videoImport)"></td>
35
36 <td>{{ videoImport.state.label }}</td>
37 <td>{{ videoImport.createdAt }}</td>
38
39 <td class="action-cell">
40 <my-edit-button *ngIf="isVideoImportSuccess(videoImport)" [routerLink]="getEditVideoUrl(videoImport.video)"></my-edit-button>
41 </td>
42 </tr>
43 </ng-template>
44
45 <ng-template pTemplate="rowexpansion" let-videoImport>
46 <tr class="video-import-error" *ngIf="videoImport.error">
47 <td colspan="6">
48 <pre>{{ videoImport.error }}</pre>
49 </td>
50 </tr>
51 </ng-template>
52</p-table>
diff --git a/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.scss b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.scss
new file mode 100644
index 000000000..bdd2f8270
--- /dev/null
+++ b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.scss
@@ -0,0 +1,10 @@
1@import '_variables';
2@import '_mixins';
3
4pre {
5 font-size: 11px;
6}
7
8.video-import-error {
9 color: red;
10} \ No newline at end of file
diff --git a/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.ts b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.ts
new file mode 100644
index 000000000..31ccb0bc8
--- /dev/null
+++ b/client/src/app/+my-account/my-account-video-imports/my-account-video-imports.component.ts
@@ -0,0 +1,66 @@
1import { Component, OnInit } from '@angular/core'
2import { RestPagination, RestTable } from '@app/shared'
3import { SortMeta } from 'primeng/components/common/sortmeta'
4import { NotificationsService } from 'angular2-notifications'
5import { ConfirmService } from '@app/core'
6import { I18n } from '@ngx-translate/i18n-polyfill'
7import { VideoImport, VideoImportState } from '../../../../../shared/models/videos'
8import { VideoImportService } from '@app/shared/video-import'
9
10@Component({
11 selector: 'my-account-video-imports',
12 templateUrl: './my-account-video-imports.component.html',
13 styleUrls: [ './my-account-video-imports.component.scss' ]
14})
15export class MyAccountVideoImportsComponent extends RestTable implements OnInit {
16 videoImports: VideoImport[] = []
17 totalRecords = 0
18 rowsPerPage = 10
19 sort: SortMeta = { field: 'createdAt', order: 1 }
20 pagination: RestPagination = { count: this.rowsPerPage, start: 0 }
21
22 constructor (
23 private notificationsService: NotificationsService,
24 private confirmService: ConfirmService,
25 private videoImportService: VideoImportService,
26 private i18n: I18n
27 ) {
28 super()
29 }
30
31 ngOnInit () {
32 this.loadSort()
33 }
34
35 isVideoImportSuccess (videoImport: VideoImport) {
36 return videoImport.state.id === VideoImportState.SUCCESS
37 }
38
39 isVideoImportPending (videoImport: VideoImport) {
40 return videoImport.state.id === VideoImportState.PENDING
41 }
42
43 isVideoImportFailed (videoImport: VideoImport) {
44 return videoImport.state.id === VideoImportState.FAILED
45 }
46
47 getVideoUrl (video: { uuid: string }) {
48 return '/videos/watch/' + video.uuid
49 }
50
51 getEditVideoUrl (video: { uuid: string }) {
52 return '/videos/update/' + video.uuid
53 }
54
55 protected loadData () {
56 this.videoImportService.getMyVideoImports(this.pagination, this.sort)
57 .subscribe(
58 resultList => {
59 this.videoImports = resultList.data
60 this.totalRecords = resultList.total
61 },
62
63 err => this.notificationsService.error(this.i18n('Error'), err.message)
64 )
65 }
66}
diff --git a/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts b/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts
index 54830c75e..01e1ef1da 100644
--- a/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts
+++ b/client/src/app/+my-account/my-account-videos/my-account-videos.component.ts
@@ -145,6 +145,8 @@ export class MyAccountVideosComponent extends AbstractVideoList implements OnIni
145 suffix = this.i18n('Waiting transcoding') 145 suffix = this.i18n('Waiting transcoding')
146 } else if (video.state.id === VideoState.TO_TRANSCODE) { 146 } else if (video.state.id === VideoState.TO_TRANSCODE) {
147 suffix = this.i18n('To transcode') 147 suffix = this.i18n('To transcode')
148 } else if (video.state.id === VideoState.TO_IMPORT) {
149 suffix = this.i18n('To import')
148 } else { 150 } else {
149 return '' 151 return ''
150 } 152 }
diff --git a/client/src/app/+my-account/my-account.component.html b/client/src/app/+my-account/my-account.component.html
index 48db55ad3..ddb0570db 100644
--- a/client/src/app/+my-account/my-account.component.html
+++ b/client/src/app/+my-account/my-account.component.html
@@ -5,6 +5,8 @@
5 <a i18n routerLink="/my-account/video-channels" routerLinkActive="active" class="title-page">My video channels</a> 5 <a i18n routerLink="/my-account/video-channels" routerLinkActive="active" class="title-page">My video channels</a>
6 6
7 <a i18n routerLink="/my-account/videos" routerLinkActive="active" class="title-page">My videos</a> 7 <a i18n routerLink="/my-account/videos" routerLinkActive="active" class="title-page">My videos</a>
8
9 <a *ngIf="isVideoImportEnabled()" i18n routerLink="/my-account/video-imports" routerLinkActive="active" class="title-page">My video imports</a>
8 </div> 10 </div>
9 11
10 <div class="margin-content"> 12 <div class="margin-content">
diff --git a/client/src/app/+my-account/my-account.component.ts b/client/src/app/+my-account/my-account.component.ts
index 7bb461d3c..6e29cdd83 100644
--- a/client/src/app/+my-account/my-account.component.ts
+++ b/client/src/app/+my-account/my-account.component.ts
@@ -1,7 +1,17 @@
1import { Component } from '@angular/core' 1import { Component } from '@angular/core'
2import { ServerService } from '@app/core'
2 3
3@Component({ 4@Component({
4 selector: 'my-my-account', 5 selector: 'my-my-account',
5 templateUrl: './my-account.component.html' 6 templateUrl: './my-account.component.html'
6}) 7})
7export class MyAccountComponent {} 8export class MyAccountComponent {
9
10 constructor (
11 private serverService: ServerService
12 ) {}
13
14 isVideoImportEnabled () {
15 return this.serverService.getConfig().import.videos.http.enabled
16 }
17}
diff --git a/client/src/app/+my-account/my-account.module.ts b/client/src/app/+my-account/my-account.module.ts
index 2088273e6..5403ab649 100644
--- a/client/src/app/+my-account/my-account.module.ts
+++ b/client/src/app/+my-account/my-account.module.ts
@@ -1,3 +1,4 @@
1import { TableModule } from 'primeng/table'
1import { NgModule } from '@angular/core' 2import { NgModule } from '@angular/core'
2import { SharedModule } from '../shared' 3import { SharedModule } from '../shared'
3import { MyAccountRoutingModule } from './my-account-routing.module' 4import { MyAccountRoutingModule } from './my-account-routing.module'
@@ -11,11 +12,13 @@ import { MyAccountVideoChannelsComponent } from '@app/+my-account/my-account-vid
11import { MyAccountVideoChannelCreateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-create.component' 12import { MyAccountVideoChannelCreateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-create.component'
12import { MyAccountVideoChannelUpdateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-update.component' 13import { MyAccountVideoChannelUpdateComponent } from '@app/+my-account/my-account-video-channels/my-account-video-channel-update.component'
13import { ActorAvatarInfoComponent } from '@app/+my-account/shared/actor-avatar-info.component' 14import { ActorAvatarInfoComponent } from '@app/+my-account/shared/actor-avatar-info.component'
15import { MyAccountVideoImportsComponent } from '@app/+my-account/my-account-video-imports/my-account-video-imports.component'
14 16
15@NgModule({ 17@NgModule({
16 imports: [ 18 imports: [
17 MyAccountRoutingModule, 19 MyAccountRoutingModule,
18 SharedModule 20 SharedModule,
21 TableModule
19 ], 22 ],
20 23
21 declarations: [ 24 declarations: [
@@ -28,7 +31,8 @@ import { ActorAvatarInfoComponent } from '@app/+my-account/shared/actor-avatar-i
28 MyAccountVideoChannelsComponent, 31 MyAccountVideoChannelsComponent,
29 MyAccountVideoChannelCreateComponent, 32 MyAccountVideoChannelCreateComponent,
30 MyAccountVideoChannelUpdateComponent, 33 MyAccountVideoChannelUpdateComponent,
31 ActorAvatarInfoComponent 34 ActorAvatarInfoComponent,
35 MyAccountVideoImportsComponent
32 ], 36 ],
33 37
34 exports: [ 38 exports: [
diff --git a/client/src/app/core/server/server.service.ts b/client/src/app/core/server/server.service.ts
index 7b11c068e..ab317f0aa 100644
--- a/client/src/app/core/server/server.service.ts
+++ b/client/src/app/core/server/server.service.ts
@@ -68,6 +68,13 @@ export class ServerService {
68 }, 68 },
69 user: { 69 user: {
70 videoQuota: -1 70 videoQuota: -1
71 },
72 import: {
73 videos: {
74 http: {
75 enabled: false
76 }
77 }
71 } 78 }
72 } 79 }
73 private videoCategories: Array<VideoConstant<string>> = [] 80 private videoCategories: Array<VideoConstant<string>> = []
diff --git a/client/src/app/shared/misc/peertube-local-storage.ts b/client/src/app/shared/misc/peertube-local-storage.ts
index ad761c82f..260f994b6 100644
--- a/client/src/app/shared/misc/peertube-local-storage.ts
+++ b/client/src/app/shared/misc/peertube-local-storage.ts
@@ -48,7 +48,7 @@ try {
48 const instance = new MemoryStorage() 48 const instance = new MemoryStorage()
49 49
50 peertubeLocalStorage = new Proxy(instance, { 50 peertubeLocalStorage = new Proxy(instance, {
51 set: function (obj, prop, value) { 51 set: function (obj, prop: string | number, value) {
52 if (MemoryStorage.prototype.hasOwnProperty(prop)) { 52 if (MemoryStorage.prototype.hasOwnProperty(prop)) {
53 instance[prop] = value 53 instance[prop] = value
54 } else { 54 } else {
@@ -56,7 +56,7 @@ try {
56 } 56 }
57 return true 57 return true
58 }, 58 },
59 get: function (target, name) { 59 get: function (target, name: string | number) {
60 if (MemoryStorage.prototype.hasOwnProperty(name)) { 60 if (MemoryStorage.prototype.hasOwnProperty(name)) {
61 return instance[name] 61 return instance[name]
62 } 62 }
diff --git a/client/src/app/shared/shared.module.ts b/client/src/app/shared/shared.module.ts
index 99df61cdb..62ce97102 100644
--- a/client/src/app/shared/shared.module.ts
+++ b/client/src/app/shared/shared.module.ts
@@ -51,6 +51,7 @@ import { ScreenService } from '@app/shared/misc/screen.service'
51import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service' 51import { VideoCaptionsValidatorsService } from '@app/shared/forms/form-validators/video-captions-validators.service'
52import { VideoCaptionService } from '@app/shared/video-caption' 52import { VideoCaptionService } from '@app/shared/video-caption'
53import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component' 53import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.component'
54import { VideoImportService } from '@app/shared/video-import/video-import.service'
54 55
55@NgModule({ 56@NgModule({
56 imports: [ 57 imports: [
@@ -143,6 +144,7 @@ import { PeertubeCheckboxComponent } from '@app/shared/forms/peertube-checkbox.c
143 VideoCommentValidatorsService, 144 VideoCommentValidatorsService,
144 VideoValidatorsService, 145 VideoValidatorsService,
145 VideoCaptionsValidatorsService, 146 VideoCaptionsValidatorsService,
147 VideoImportService,
146 148
147 I18nPrimengCalendarService, 149 I18nPrimengCalendarService,
148 ScreenService, 150 ScreenService,
diff --git a/client/src/app/shared/video-import/index.ts b/client/src/app/shared/video-import/index.ts
new file mode 100644
index 000000000..9bb73ec2c
--- /dev/null
+++ b/client/src/app/shared/video-import/index.ts
@@ -0,0 +1 @@
export * from './video-import.service'
diff --git a/client/src/app/shared/video-import/video-import.service.ts b/client/src/app/shared/video-import/video-import.service.ts
new file mode 100644
index 000000000..59b58ab38
--- /dev/null
+++ b/client/src/app/shared/video-import/video-import.service.ts
@@ -0,0 +1,88 @@
1import { catchError, map, switchMap } from 'rxjs/operators'
2import { HttpClient, HttpParams } from '@angular/common/http'
3import { Injectable } from '@angular/core'
4import { Observable } from 'rxjs'
5import { VideoImport } from '../../../../../shared'
6import { environment } from '../../../environments/environment'
7import { RestExtractor, RestService } from '../rest'
8import { VideoImportCreate } from '../../../../../shared/models/videos/video-import-create.model'
9import { objectToFormData } from '@app/shared/misc/utils'
10import { VideoUpdate } from '../../../../../shared/models/videos'
11import { ResultList } from '../../../../../shared/models/result-list.model'
12import { UserService } from '@app/shared/users/user.service'
13import { SortMeta } from 'primeng/components/common/sortmeta'
14import { RestPagination } from '@app/shared/rest'
15import { ServerService } from '@app/core'
16import { peertubeTranslate } from '@app/shared/i18n/i18n-utils'
17
18@Injectable()
19export class VideoImportService {
20 private static BASE_VIDEO_IMPORT_URL = environment.apiUrl + '/api/v1/videos/imports/'
21
22 constructor (
23 private authHttp: HttpClient,
24 private restService: RestService,
25 private restExtractor: RestExtractor,
26 private serverService: ServerService
27 ) {}
28
29 importVideo (targetUrl: string, video: VideoUpdate): Observable<VideoImport> {
30 const url = VideoImportService.BASE_VIDEO_IMPORT_URL
31 const language = video.language || null
32 const licence = video.licence || null
33 const category = video.category || null
34 const description = video.description || null
35 const support = video.support || null
36 const scheduleUpdate = video.scheduleUpdate || null
37
38 const body: VideoImportCreate = {
39 targetUrl,
40
41 name: video.name,
42 category,
43 licence,
44 language,
45 support,
46 description,
47 channelId: video.channelId,
48 privacy: video.privacy,
49 tags: video.tags,
50 nsfw: video.nsfw,
51 waitTranscoding: video.waitTranscoding,
52 commentsEnabled: video.commentsEnabled,
53 thumbnailfile: video.thumbnailfile,
54 previewfile: video.previewfile,
55 scheduleUpdate
56 }
57
58 const data = objectToFormData(body)
59 return this.authHttp.post<VideoImport>(url, data)
60 .pipe(catchError(res => this.restExtractor.handleError(res)))
61 }
62
63 getMyVideoImports (pagination: RestPagination, sort: SortMeta): Observable<ResultList<VideoImport>> {
64 let params = new HttpParams()
65 params = this.restService.addRestGetParams(params, pagination, sort)
66
67 return this.authHttp
68 .get<ResultList<VideoImport>>(UserService.BASE_USERS_URL + '/me/videos/imports', { params })
69 .pipe(
70 switchMap(res => this.extractVideoImports(res)),
71 map(res => this.restExtractor.convertResultListDateToHuman(res)),
72 catchError(err => this.restExtractor.handleError(err))
73 )
74 }
75
76 private extractVideoImports (result: ResultList<VideoImport>): Observable<ResultList<VideoImport>> {
77 return this.serverService.localeObservable
78 .pipe(
79 map(translations => {
80 result.data.forEach(d =>
81 d.state.label = peertubeTranslate(d.state.label, translations)
82 )
83
84 return result
85 })
86 )
87 }
88}
diff --git a/client/src/app/shared/video/video-edit.model.ts b/client/src/app/shared/video/video-edit.model.ts
index 8562f8d25..0046be964 100644
--- a/client/src/app/shared/video/video-edit.model.ts
+++ b/client/src/app/shared/video/video-edit.model.ts
@@ -1,7 +1,7 @@
1import { VideoDetails } from './video-details.model'
2import { VideoPrivacy } from '../../../../../shared/models/videos/video-privacy.enum' 1import { VideoPrivacy } from '../../../../../shared/models/videos/video-privacy.enum'
3import { VideoUpdate } from '../../../../../shared/models/videos' 2import { VideoUpdate } from '../../../../../shared/models/videos'
4import { VideoScheduleUpdate } from '../../../../../shared/models/videos/video-schedule-update.model' 3import { VideoScheduleUpdate } from '../../../../../shared/models/videos/video-schedule-update.model'
4import { Video } from '../../../../../shared/models/videos/video.model'
5 5
6export class VideoEdit implements VideoUpdate { 6export class VideoEdit implements VideoUpdate {
7 static readonly SPECIAL_SCHEDULED_PRIVACY = -1 7 static readonly SPECIAL_SCHEDULED_PRIVACY = -1
@@ -26,26 +26,26 @@ export class VideoEdit implements VideoUpdate {
26 id?: number 26 id?: number
27 scheduleUpdate?: VideoScheduleUpdate 27 scheduleUpdate?: VideoScheduleUpdate
28 28
29 constructor (videoDetails?: VideoDetails) { 29 constructor (video?: Video & { tags: string[], commentsEnabled: boolean, support: string, thumbnailUrl: string, previewUrl: string }) {
30 if (videoDetails) { 30 if (video) {
31 this.id = videoDetails.id 31 this.id = video.id
32 this.uuid = videoDetails.uuid 32 this.uuid = video.uuid
33 this.category = videoDetails.category.id 33 this.category = video.category.id
34 this.licence = videoDetails.licence.id 34 this.licence = video.licence.id
35 this.language = videoDetails.language.id 35 this.language = video.language.id
36 this.description = videoDetails.description 36 this.description = video.description
37 this.name = videoDetails.name 37 this.name = video.name
38 this.tags = videoDetails.tags 38 this.tags = video.tags
39 this.nsfw = videoDetails.nsfw 39 this.nsfw = video.nsfw
40 this.commentsEnabled = videoDetails.commentsEnabled 40 this.commentsEnabled = video.commentsEnabled
41 this.waitTranscoding = videoDetails.waitTranscoding 41 this.waitTranscoding = video.waitTranscoding
42 this.channelId = videoDetails.channel.id 42 this.channelId = video.channel.id
43 this.privacy = videoDetails.privacy.id 43 this.privacy = video.privacy.id
44 this.support = videoDetails.support 44 this.support = video.support
45 this.thumbnailUrl = videoDetails.thumbnailUrl 45 this.thumbnailUrl = video.thumbnailUrl
46 this.previewUrl = videoDetails.previewUrl 46 this.previewUrl = video.previewUrl
47 47
48 this.scheduleUpdate = videoDetails.scheduledUpdate 48 this.scheduleUpdate = video.scheduledUpdate
49 } 49 }
50 } 50 }
51 51
diff --git a/client/src/app/shared/video/video-thumbnail.component.html b/client/src/app/shared/video/video-thumbnail.component.html
index 4909cf3f1..c1d45ea18 100644
--- a/client/src/app/shared/video/video-thumbnail.component.html
+++ b/client/src/app/shared/video/video-thumbnail.component.html
@@ -2,7 +2,7 @@
2 [routerLink]="['/videos/watch', video.uuid]" [attr.title]="video.name" 2 [routerLink]="['/videos/watch', video.uuid]" [attr.title]="video.name"
3 class="video-thumbnail" 3 class="video-thumbnail"
4> 4>
5<img alt="" [attr.src]="getImageUrl()" [ngClass]="{ 'blur-filter': nsfw }" /> 5<img alt="" [attr.aria-labelledby]="video.name" [attr.src]="getImageUrl()" [ngClass]="{ 'blur-filter': nsfw }" />
6 6
7<div class="video-thumbnail-overlay"> 7<div class="video-thumbnail-overlay">
8 {{ video.durationLabel }} 8 {{ video.durationLabel }}
diff --git a/client/src/app/videos/+video-edit/video-add.component.html b/client/src/app/videos/+video-edit/video-add.component.html
index 9c2c01c65..1575007d2 100644
--- a/client/src/app/videos/+video-edit/video-add.component.html
+++ b/client/src/app/videos/+video-edit/video-add.component.html
@@ -1,65 +1,17 @@
1<div class="margin-content"> 1<div class="margin-content">
2 <div class="title-page title-page-single"> 2 <div class="title-page title-page-single">
3 <ng-container *ngIf="!videoFileName" i18n>Upload your video</ng-container> 3 <ng-container *ngIf="secondStepType === 'import'" i18n>Import {{ videoName }}</ng-container>
4 <ng-container *ngIf="videoFileName" i18n>Upload {{ videoFileName }}</ng-container> 4 <ng-container *ngIf="secondStepType === 'upload'" i18n>Upload {{ videoName }}</ng-container>
5 </div> 5 </div>
6 6
7 <div *ngIf="!isUploadingVideo" class="upload-video-container"> 7 <tabset class="video-add-tabset root-tabset bootstrap" [ngClass]="{ 'hide-nav': secondStepType !== undefined }">
8 <div class="upload-video">
9 <div class="icon icon-upload"></div>
10 8
11 <div class="button-file"> 9 <tab i18n-heading heading="Upload your video">
12 <span i18n>Select the file to upload</span> 10 <my-video-upload #videoUpload (firstStepDone)="onFirstStepDone('upload', $event)"></my-video-upload>
13 <input #videofileInput type="file" name="videofile" id="videofile" [accept]="videoExtensions" (change)="fileChange()" /> 11 </tab>
14 </div>
15 <span class="button-file-extension">(.mp4, .webm, .ogv)</span>
16 12
17 <div class="form-group form-group-channel"> 13 <tab *ngIf="isVideoImportEnabled()" i18n-heading heading="Import your video">
18 <label i18n for="first-step-channel">Channel</label> 14 <my-video-import #videoImport (firstStepDone)="onFirstStepDone('import', $event)"></my-video-import>
19 <div class="peertube-select-container"> 15 </tab>
20 <select id="first-step-channel" [(ngModel)]="firstStepChannelId"> 16 </tabset>
21 <option *ngFor="let channel of userVideoChannels" [value]="channel.id">{{ channel.label }}</option>
22 </select>
23 </div>
24 </div>
25
26 <div class="form-group">
27 <label i18n for="first-step-privacy">Privacy</label>
28 <div class="peertube-select-container">
29 <select id="first-step-privacy" [(ngModel)]="firstStepPrivacyId">
30 <option *ngFor="let privacy of videoPrivacies" [value]="privacy.id">{{ privacy.label }}</option>
31 <option [value]="SPECIAL_SCHEDULED_PRIVACY">Scheduled</option>
32 </select>
33 </div>
34 </div>
35 </div>
36 </div>
37
38 <div *ngIf="isUploadingVideo" class="upload-progress-cancel">
39 <p-progressBar
40 [value]="videoUploadPercents"
41 [ngClass]="{ processing: videoUploadPercents === 100 && videoUploaded === false }"
42 ></p-progressBar>
43 <input *ngIf="videoUploaded === false" type="button" value="Cancel" (click)="cancelUpload()" />
44 </div>
45
46 <!-- Hidden because we want to load the component -->
47 <form [hidden]="!isUploadingVideo" novalidate [formGroup]="form">
48 <my-video-edit
49 [form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions"
50 [validationMessages]="validationMessages" [videoPrivacies]="videoPrivacies" [userVideoChannels]="userVideoChannels"
51 ></my-video-edit>
52
53 <div class="submit-container">
54 <div i18n *ngIf="videoUploaded === false" class="message-submit">Publish will be available when upload is finished</div>
55
56 <div class="submit-button"
57 (click)="updateSecondStep()"
58 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true || videoUploaded !== true }"
59 >
60 <span class="icon icon-validate"></span>
61 <input type="button" i18n-value value="Publish" />
62 </div>
63 </div>
64 </form>
65</div> 17</div>
diff --git a/client/src/app/videos/+video-edit/video-add.component.scss b/client/src/app/videos/+video-edit/video-add.component.scss
index c0b5f3d07..a811b9cf0 100644
--- a/client/src/app/videos/+video-edit/video-add.component.scss
+++ b/client/src/app/videos/+video-edit/video-add.component.scss
@@ -1,101 +1,54 @@
1@import '_variables'; 1@import '_variables';
2@import '_mixins'; 2@import '_mixins';
3 3
4.upload-video-container { 4$border-width: 3px;
5 border-radius: 3px; 5$border-type: solid;
6 background-color: #F7F7F7; 6$border-color: #EAEAEA;
7 border: 3px solid #EAEAEA;
8 width: 100%;
9 height: 440px;
10 margin-top: 40px;
11 display: flex;
12 justify-content: center;
13 align-items: center;
14 7
15 .peertube-select-container { 8$background-color: #F7F7F7;
16 @include peertube-select-container(190px);
17 }
18
19 .upload-video {
20 display: flex;
21 flex-direction: column;
22 align-items: center;
23
24 .form-group-channel {
25 margin-bottom: 20px;
26 }
27
28 .icon.icon-upload {
29 @include icon(90px);
30 margin-bottom: 25px;
31 cursor: default;
32
33 background-image: url('../../../assets/images/video/upload.svg');
34 }
35
36 .button-file {
37 @include peertube-button-file(auto);
38
39 min-width: 190px;
40 }
41 9
42 .button-file-extension { 10/deep/ tabset.root-tabset.video-add-tabset {
43 display: block; 11 &.hide-nav .nav {
44 font-size: 12px; 12 display: none !important;
45 margin-top: 5px;
46 }
47 }
48
49 .form-group-channel {
50 margin-top: 35px;
51 } 13 }
52}
53 14
54.upload-progress-cancel { 15 & > .nav {
55 display: flex;
56 margin-top: 25px;
57 margin-bottom: 40px;
58 16
59 p-progressBar { 17 border-bottom: $border-width $border-type $border-color;
60 flex-grow: 1; 18 margin: 0 !important;
61
62 /deep/ .ui-progressbar {
63 font-size: 15px !important;
64 color: #fff !important;
65 height: 30px !important;
66 line-height: 30px !important;
67 border-radius: 3px !important;
68 background-color: rgba(11, 204, 41, 0.16) !important;
69
70 .ui-progressbar-value {
71 background-color: #0BCC29 !important;
72 }
73 19
74 .ui-progressbar-label { 20 & > li {
75 text-align: left; 21 margin-bottom: -$border-width;
76 padding-left: 18px;
77 margin-top: 0 !important;
78 }
79 } 22 }
80 23
81 &.processing { 24 .nav-link {
82 /deep/ .ui-progressbar-label { 25 height: 40px !important;
83 // Same color as background to hide "100%" 26 padding: 0 30px !important;
84 color: rgba(11, 204, 41, 0.16) !important; 27 font-size: 15px;
28
29 &.active {
30 border: $border-width $border-type $border-color;
31 border-bottom: none;
32 background-color: $background-color !important;
85 33
86 &::before { 34 span {
87 content: 'Processing...'; 35 border-bottom: 2px solid #F1680D;
88 color: #fff; 36 font-weight: $font-bold;
89 } 37 }
90 } 38 }
91 } 39 }
92 } 40 }
93 41
94 input { 42 .upload-video-container {
95 @include peertube-button; 43 border: $border-width $border-type $border-color;
96 @include grey-button; 44 border-top: none;
97 45
98 margin-left: 10px; 46 background-color: $background-color;
47 border-radius: 3px;
48 width: 100%;
49 height: 440px;
50 display: flex;
51 justify-content: center;
52 align-items: center;
99 } 53 }
100} 54} \ No newline at end of file
101
diff --git a/client/src/app/videos/+video-edit/video-add.component.ts b/client/src/app/videos/+video-edit/video-add.component.ts
index 651ee8dd2..69b364ddd 100644
--- a/client/src/app/videos/+video-edit/video-add.component.ts
+++ b/client/src/app/videos/+video-edit/video-add.component.ts
@@ -1,251 +1,38 @@
1import { HttpEventType, HttpResponse } from '@angular/common/http' 1import { Component, ViewChild } from '@angular/core'
2import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'
3import { Router } from '@angular/router'
4import { UserService } from '@app/shared'
5import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service' 2import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service'
6import { LoadingBarService } from '@ngx-loading-bar/core' 3import { VideoImportComponent } from '@app/videos/+video-edit/video-import.component'
7import { NotificationsService } from 'angular2-notifications' 4import { VideoUploadComponent } from '@app/videos/+video-edit/video-upload.component'
8import { BytesPipe } from 'ngx-pipes' 5import { ServerService } from '@app/core'
9import { Subscription } from 'rxjs'
10import { VideoConstant, VideoPrivacy } from '../../../../../shared/models/videos'
11import { AuthService, ServerService } from '../../core'
12import { FormReactive } from '../../shared'
13import { populateAsyncUserVideoChannels } from '../../shared/misc/utils'
14import { VideoEdit } from '../../shared/video/video-edit.model'
15import { VideoService } from '../../shared/video/video.service'
16import { I18n } from '@ngx-translate/i18n-polyfill'
17import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
18import { switchMap } from 'rxjs/operators'
19import { VideoCaptionService } from '@app/shared/video-caption'
20import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model'
21 6
22@Component({ 7@Component({
23 selector: 'my-videos-add', 8 selector: 'my-videos-add',
24 templateUrl: './video-add.component.html', 9 templateUrl: './video-add.component.html',
25 styleUrls: [ 10 styleUrls: [ './video-add.component.scss' ]
26 './shared/video-edit.component.scss',
27 './video-add.component.scss'
28 ]
29}) 11})
30export class VideoAddComponent extends FormReactive implements OnInit, OnDestroy, CanComponentDeactivate { 12export class VideoAddComponent implements CanComponentDeactivate {
31 @ViewChild('videofileInput') videofileInput 13 @ViewChild('videoUpload') videoUpload: VideoUploadComponent
14 @ViewChild('videoImport') videoImport: VideoImportComponent
32 15
33 // So that it can be accessed in the template 16 secondStepType: 'upload' | 'import'
34 readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY 17 videoName: string
35
36 isUploadingVideo = false
37 isUpdatingVideo = false
38 videoUploaded = false
39 videoUploadObservable: Subscription = null
40 videoUploadPercents = 0
41 videoUploadedIds = {
42 id: 0,
43 uuid: ''
44 }
45 videoFileName: string
46
47 userVideoChannels: { id: number, label: string, support: string }[] = []
48 userVideoQuotaUsed = 0
49 videoPrivacies: VideoConstant<string>[] = []
50 firstStepPrivacyId = 0
51 firstStepChannelId = 0
52 videoCaptions: VideoCaptionEdit[] = []
53 18
54 constructor ( 19 constructor (
55 protected formValidatorService: FormValidatorService, 20 private serverService: ServerService
56 private router: Router, 21 ) {}
57 private notificationsService: NotificationsService,
58 private authService: AuthService,
59 private userService: UserService,
60 private serverService: ServerService,
61 private videoService: VideoService,
62 private loadingBar: LoadingBarService,
63 private i18n: I18n,
64 private videoCaptionService: VideoCaptionService
65 ) {
66 super()
67 }
68
69 get videoExtensions () {
70 return this.serverService.getConfig().video.file.extensions.join(',')
71 }
72
73 ngOnInit () {
74 this.buildForm({})
75
76 populateAsyncUserVideoChannels(this.authService, this.userVideoChannels)
77 .then(() => this.firstStepChannelId = this.userVideoChannels[0].id)
78
79 this.userService.getMyVideoQuotaUsed()
80 .subscribe(data => this.userVideoQuotaUsed = data.videoQuotaUsed)
81
82 this.serverService.videoPrivaciesLoaded
83 .subscribe(
84 () => {
85 this.videoPrivacies = this.serverService.getVideoPrivacies()
86 22
87 // Public by default 23 onFirstStepDone (type: 'upload' | 'import', videoName: string) {
88 this.firstStepPrivacyId = VideoPrivacy.PUBLIC 24 this.secondStepType = type
89 }) 25 this.videoName = videoName
90 }
91
92 ngOnDestroy () {
93 if (this.videoUploadObservable) {
94 this.videoUploadObservable.unsubscribe()
95 }
96 } 26 }
97 27
98 canDeactivate () { 28 canDeactivate () {
99 let text = '' 29 if (this.secondStepType === 'upload') return this.videoUpload.canDeactivate()
100 30 if (this.secondStepType === 'import') return this.videoImport.canDeactivate()
101 if (this.videoUploaded === true) {
102 // FIXME: cannot concatenate strings inside i18n service :/
103 text = this.i18n('Your video was uploaded in your account and is private.') +
104 this.i18n('But associated data (tags, description...) will be lost, are you sure you want to leave this page?')
105 } else {
106 text = this.i18n('Your video is not uploaded yet, are you sure you want to leave this page?')
107 }
108
109 return {
110 canDeactivate: !this.isUploadingVideo,
111 text
112 }
113 }
114
115 fileChange () {
116 this.uploadFirstStep()
117 }
118
119 checkForm () {
120 this.forceCheck()
121
122 return this.form.valid
123 }
124 31
125 cancelUpload () { 32 return { canDeactivate: true }
126 if (this.videoUploadObservable !== null) {
127 this.videoUploadObservable.unsubscribe()
128 this.isUploadingVideo = false
129 this.videoUploadPercents = 0
130 this.videoUploadObservable = null
131 this.notificationsService.info(this.i18n('Info'), this.i18n('Upload cancelled'))
132 }
133 } 33 }
134 34
135 uploadFirstStep () { 35 isVideoImportEnabled () {
136 const videofile = this.videofileInput.nativeElement.files[0] as File 36 return this.serverService.getConfig().import.videos.http.enabled
137 if (!videofile) return
138
139 // Cannot upload videos > 8GB for now
140 if (videofile.size > 8 * 1024 * 1024 * 1024) {
141 this.notificationsService.error(this.i18n('Error'), this.i18n('We are sorry but PeerTube cannot handle videos > 8GB'))
142 return
143 }
144
145 const videoQuota = this.authService.getUser().videoQuota
146 if (videoQuota !== -1 && (this.userVideoQuotaUsed + videofile.size) > videoQuota) {
147 const bytePipes = new BytesPipe()
148
149 const msg = this.i18n(
150 'Your video quota is exceeded with this video (video size: {{ videoSize }}, used: {{ videoQuotaUsed }}, quota: {{ videoQuota }})',
151 {
152 videoSize: bytePipes.transform(videofile.size, 0),
153 videoQuotaUsed: bytePipes.transform(this.userVideoQuotaUsed, 0),
154 videoQuota: bytePipes.transform(videoQuota, 0)
155 }
156 )
157 this.notificationsService.error(this.i18n('Error'), msg)
158 return
159 }
160
161 this.videoFileName = videofile.name
162
163 const nameWithoutExtension = videofile.name.replace(/\.[^/.]+$/, '')
164 let name: string
165
166 // If the name of the file is very small, keep the extension
167 if (nameWithoutExtension.length < 3) name = videofile.name
168 else name = nameWithoutExtension
169
170 const privacy = this.firstStepPrivacyId.toString()
171 const nsfw = false
172 const waitTranscoding = true
173 const commentsEnabled = true
174 const channelId = this.firstStepChannelId.toString()
175
176 const formData = new FormData()
177 formData.append('name', name)
178 // Put the video "private" -> we are waiting the user validation of the second step
179 formData.append('privacy', VideoPrivacy.PRIVATE.toString())
180 formData.append('nsfw', '' + nsfw)
181 formData.append('commentsEnabled', '' + commentsEnabled)
182 formData.append('waitTranscoding', '' + waitTranscoding)
183 formData.append('channelId', '' + channelId)
184 formData.append('videofile', videofile)
185
186 this.isUploadingVideo = true
187 this.form.patchValue({
188 name,
189 privacy,
190 nsfw,
191 channelId
192 })
193
194 this.videoUploadObservable = this.videoService.uploadVideo(formData).subscribe(
195 event => {
196 if (event.type === HttpEventType.UploadProgress) {
197 this.videoUploadPercents = Math.round(100 * event.loaded / event.total)
198 } else if (event instanceof HttpResponse) {
199 this.videoUploaded = true
200
201 this.videoUploadedIds = event.body.video
202
203 this.videoUploadObservable = null
204 }
205 },
206
207 err => {
208 // Reset progress
209 this.isUploadingVideo = false
210 this.videoUploadPercents = 0
211 this.videoUploadObservable = null
212 this.notificationsService.error(this.i18n('Error'), err.message)
213 }
214 )
215 }
216
217 updateSecondStep () {
218 if (this.checkForm() === false) {
219 return
220 }
221
222 const video = new VideoEdit()
223 video.patch(this.form.value)
224 video.id = this.videoUploadedIds.id
225 video.uuid = this.videoUploadedIds.uuid
226
227 this.isUpdatingVideo = true
228 this.loadingBar.start()
229 this.videoService.updateVideo(video)
230 .pipe(
231 // Then update captions
232 switchMap(() => this.videoCaptionService.updateCaptions(video.id, this.videoCaptions))
233 )
234 .subscribe(
235 () => {
236 this.isUpdatingVideo = false
237 this.isUploadingVideo = false
238 this.loadingBar.complete()
239
240 this.notificationsService.success(this.i18n('Success'), this.i18n('Video published.'))
241 this.router.navigate([ '/videos/watch', video.uuid ])
242 },
243
244 err => {
245 this.isUpdatingVideo = false
246 this.notificationsService.error(this.i18n('Error'), err.message)
247 console.error(err)
248 }
249 )
250 } 37 }
251} 38}
diff --git a/client/src/app/videos/+video-edit/video-add.module.ts b/client/src/app/videos/+video-edit/video-add.module.ts
index 1bfedf251..91f544971 100644
--- a/client/src/app/videos/+video-edit/video-add.module.ts
+++ b/client/src/app/videos/+video-edit/video-add.module.ts
@@ -5,6 +5,8 @@ import { VideoEditModule } from './shared/video-edit.module'
5import { VideoAddRoutingModule } from './video-add-routing.module' 5import { VideoAddRoutingModule } from './video-add-routing.module'
6import { VideoAddComponent } from './video-add.component' 6import { VideoAddComponent } from './video-add.component'
7import { CanDeactivateGuard } from '../../shared/guards/can-deactivate-guard.service' 7import { CanDeactivateGuard } from '../../shared/guards/can-deactivate-guard.service'
8import { VideoUploadComponent } from '@app/videos/+video-edit/video-upload.component'
9import { VideoImportComponent } from '@app/videos/+video-edit/video-import.component'
8 10
9@NgModule({ 11@NgModule({
10 imports: [ 12 imports: [
@@ -14,7 +16,9 @@ import { CanDeactivateGuard } from '../../shared/guards/can-deactivate-guard.ser
14 ProgressBarModule 16 ProgressBarModule
15 ], 17 ],
16 declarations: [ 18 declarations: [
17 VideoAddComponent 19 VideoAddComponent,
20 VideoUploadComponent,
21 VideoImportComponent
18 ], 22 ],
19 exports: [ 23 exports: [
20 VideoAddComponent 24 VideoAddComponent
diff --git a/client/src/app/videos/+video-edit/video-import.component.html b/client/src/app/videos/+video-edit/video-import.component.html
new file mode 100644
index 000000000..6b431f6f6
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-import.component.html
@@ -0,0 +1,60 @@
1<div *ngIf="!hasImportedVideo" class="upload-video-container">
2 <div class="import-video">
3 <div class="icon icon-upload"></div>
4
5 <div class="form-group">
6 <label i18n for="targetUrl">URL</label>
7 <my-help
8 helpType="custom" i18n-customHtml
9 customHtml="You can import any URL <a href='https://rg3.github.io/youtube-dl/supportedsites.html' target='_blank' rel='noopener noreferrer'>supported by youtube-dl</a> 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."
10 ></my-help>
11
12 <input type="text" id="targetUrl" [(ngModel)]="targetUrl" />
13 </div>
14
15 <div class="form-group">
16 <label i18n for="first-step-channel">Channel</label>
17 <div class="peertube-select-container">
18 <select id="first-step-channel" [(ngModel)]="firstStepChannelId">
19 <option *ngFor="let channel of userVideoChannels" [value]="channel.id">{{ channel.label }}</option>
20 </select>
21 </div>
22 </div>
23
24 <div class="form-group">
25 <label i18n for="first-step-privacy">Privacy</label>
26 <div class="peertube-select-container">
27 <select id="first-step-privacy" [(ngModel)]="firstStepPrivacyId">
28 <option *ngFor="let privacy of videoPrivacies" [value]="privacy.id">{{ privacy.label }}</option>
29 </select>
30 </div>
31 </div>
32
33 <input
34 type="button" i18n-value value="Import"
35 [disabled]="!isTargetUrlValid() || isImportingVideo" (click)="importVideo()"
36 />
37 </div>
38</div>
39
40<div *ngIf="hasImportedVideo" class="alert alert-info" i18n>
41 Congratulations, the video behind {{ targetUrl }} will be imported! You can already add information about this video.
42</div>
43
44<!-- Hidden because we want to load the component -->
45<form [hidden]="!hasImportedVideo" novalidate [formGroup]="form">
46 <my-video-edit
47 [form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions" [schedulePublicationPossible]="false"
48 [validationMessages]="validationMessages" [videoPrivacies]="videoPrivacies" [userVideoChannels]="userVideoChannels"
49 ></my-video-edit>
50
51 <div class="submit-container">
52 <div class="submit-button"
53 (click)="updateSecondStep()"
54 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true }"
55 >
56 <span class="icon icon-validate"></span>
57 <input type="button" i18n-value value="Update" />
58 </div>
59 </div>
60</form>
diff --git a/client/src/app/videos/+video-edit/video-import.component.scss b/client/src/app/videos/+video-edit/video-import.component.scss
new file mode 100644
index 000000000..9ada9db19
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-import.component.scss
@@ -0,0 +1,37 @@
1@import '_variables';
2@import '_mixins';
3
4$width-size: 190px;
5
6.peertube-select-container {
7 @include peertube-select-container($width-size);
8}
9
10.import-video {
11 display: flex;
12 flex-direction: column;
13 align-items: center;
14
15 .icon.icon-upload {
16 @include icon(90px);
17 margin-bottom: 25px;
18 cursor: default;
19
20 background-image: url('../../../assets/images/video/upload.svg');
21 }
22
23 input[type=text] {
24 @include peertube-input-text($width-size);
25 display: block;
26 }
27
28 input[type=button] {
29 @include peertube-button;
30 @include orange-button;
31
32 width: $width-size;
33 margin-top: 30px;
34 }
35}
36
37
diff --git a/client/src/app/videos/+video-edit/video-import.component.ts b/client/src/app/videos/+video-edit/video-import.component.ts
new file mode 100644
index 000000000..5f14efd54
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-import.component.ts
@@ -0,0 +1,164 @@
1import { Component, EventEmitter, OnInit, Output } from '@angular/core'
2import { Router } from '@angular/router'
3import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service'
4import { NotificationsService } from 'angular2-notifications'
5import { VideoConstant, VideoPrivacy, VideoUpdate } from '../../../../../shared/models/videos'
6import { AuthService, ServerService } from '../../core'
7import { FormReactive } from '../../shared'
8import { populateAsyncUserVideoChannels } from '../../shared/misc/utils'
9import { VideoService } from '../../shared/video/video.service'
10import { I18n } from '@ngx-translate/i18n-polyfill'
11import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
12import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model'
13import { VideoImportService } from '@app/shared/video-import'
14import { VideoEdit } from '@app/shared/video/video-edit.model'
15import { switchMap } from 'rxjs/operators'
16import { LoadingBarService } from '@ngx-loading-bar/core'
17import { VideoCaptionService } from '@app/shared/video-caption'
18
19@Component({
20 selector: 'my-video-import',
21 templateUrl: './video-import.component.html',
22 styleUrls: [
23 './shared/video-edit.component.scss',
24 './video-import.component.scss'
25 ]
26})
27export class VideoImportComponent extends FormReactive implements OnInit, CanComponentDeactivate {
28 @Output() firstStepDone = new EventEmitter<string>()
29
30 targetUrl = ''
31 videoFileName: string
32
33 isImportingVideo = false
34 hasImportedVideo = false
35 isUpdatingVideo = false
36
37 userVideoChannels: { id: number, label: string, support: string }[] = []
38 videoPrivacies: VideoConstant<string>[] = []
39 videoCaptions: VideoCaptionEdit[] = []
40
41 firstStepPrivacyId = 0
42 firstStepChannelId = 0
43 video: VideoEdit
44
45 constructor (
46 protected formValidatorService: FormValidatorService,
47 private router: Router,
48 private loadingBar: LoadingBarService,
49 private notificationsService: NotificationsService,
50 private authService: AuthService,
51 private serverService: ServerService,
52 private videoService: VideoService,
53 private videoImportService: VideoImportService,
54 private videoCaptionService: VideoCaptionService,
55 private i18n: I18n
56 ) {
57 super()
58 }
59
60 ngOnInit () {
61 this.buildForm({})
62
63 populateAsyncUserVideoChannels(this.authService, this.userVideoChannels)
64 .then(() => this.firstStepChannelId = this.userVideoChannels[ 0 ].id)
65
66 this.serverService.videoPrivaciesLoaded
67 .subscribe(
68 () => {
69 this.videoPrivacies = this.serverService.getVideoPrivacies()
70
71 // Private by default
72 this.firstStepPrivacyId = VideoPrivacy.PRIVATE
73 })
74 }
75
76 canDeactivate () {
77 return { canDeactivate: true }
78 }
79
80 checkForm () {
81 this.forceCheck()
82
83 return this.form.valid
84 }
85
86 isTargetUrlValid () {
87 return this.targetUrl && this.targetUrl.match(/https?:\/\//)
88 }
89
90 importVideo () {
91 this.isImportingVideo = true
92
93 const videoUpdate: VideoUpdate = {
94 privacy: this.firstStepPrivacyId,
95 waitTranscoding: false,
96 commentsEnabled: true,
97 channelId: this.firstStepChannelId
98 }
99
100 this.loadingBar.start()
101
102 this.videoImportService.importVideo(this.targetUrl, videoUpdate).subscribe(
103 res => {
104 this.loadingBar.complete()
105 this.firstStepDone.emit(res.video.name)
106 this.isImportingVideo = false
107 this.hasImportedVideo = true
108
109 this.video = new VideoEdit(Object.assign(res.video, {
110 commentsEnabled: videoUpdate.commentsEnabled,
111 support: null,
112 thumbnailUrl: null,
113 previewUrl: null
114 }))
115 this.hydrateFormFromVideo()
116 },
117
118 err => {
119 this.loadingBar.complete()
120 this.isImportingVideo = false
121 this.notificationsService.error(this.i18n('Error'), err.message)
122 }
123 )
124 }
125
126 updateSecondStep () {
127 if (this.checkForm() === false) {
128 return
129 }
130
131 this.video.patch(this.form.value)
132
133 this.loadingBar.start()
134 this.isUpdatingVideo = true
135
136 // Update the video
137 this.videoService.updateVideo(this.video)
138 .pipe(
139 // Then update captions
140 switchMap(() => this.videoCaptionService.updateCaptions(this.video.id, this.videoCaptions))
141 )
142 .subscribe(
143 () => {
144 this.isUpdatingVideo = false
145 this.loadingBar.complete()
146 this.notificationsService.success(this.i18n('Success'), this.i18n('Video to import updated.'))
147
148 this.router.navigate([ '/my-account', 'video-imports' ])
149 },
150
151 err => {
152 this.loadingBar.complete()
153 this.isUpdatingVideo = false
154 this.notificationsService.error(this.i18n('Error'), err.message)
155 console.error(err)
156 }
157 )
158
159 }
160
161 private hydrateFormFromVideo () {
162 this.form.patchValue(this.video.toFormPatch())
163 }
164}
diff --git a/client/src/app/videos/+video-edit/video-update.component.ts b/client/src/app/videos/+video-edit/video-update.component.ts
index 798c48f3c..0c60e3439 100644
--- a/client/src/app/videos/+video-edit/video-update.component.ts
+++ b/client/src/app/videos/+video-edit/video-update.component.ts
@@ -126,7 +126,6 @@ export class VideoUpdateComponent extends FormReactive implements OnInit {
126 console.error(err) 126 console.error(err)
127 } 127 }
128 ) 128 )
129
130 } 129 }
131 130
132 private hydrateFormFromVideo () { 131 private hydrateFormFromVideo () {
diff --git a/client/src/app/videos/+video-edit/video-upload.component.html b/client/src/app/videos/+video-edit/video-upload.component.html
new file mode 100644
index 000000000..8c0723155
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-upload.component.html
@@ -0,0 +1,58 @@
1<div *ngIf="!isUploadingVideo" class="upload-video-container">
2 <div class="upload-video">
3 <div class="icon icon-upload"></div>
4
5 <div class="button-file">
6 <span i18n>Select the file to upload</span>
7 <input #videofileInput type="file" name="videofile" id="videofile" [accept]="videoExtensions" (change)="fileChange()" />
8 </div>
9 <span class="button-file-extension">(.mp4, .webm, .ogv)</span>
10
11 <div class="form-group form-group-channel">
12 <label i18n for="first-step-channel">Channel</label>
13 <div class="peertube-select-container">
14 <select id="first-step-channel" [(ngModel)]="firstStepChannelId">
15 <option *ngFor="let channel of userVideoChannels" [value]="channel.id">{{ channel.label }}</option>
16 </select>
17 </div>
18 </div>
19
20 <div class="form-group">
21 <label i18n for="first-step-privacy">Privacy</label>
22 <div class="peertube-select-container">
23 <select id="first-step-privacy" [(ngModel)]="firstStepPrivacyId">
24 <option *ngFor="let privacy of videoPrivacies" [value]="privacy.id">{{ privacy.label }}</option>
25 <option [value]="SPECIAL_SCHEDULED_PRIVACY">Scheduled</option>
26 </select>
27 </div>
28 </div>
29 </div>
30</div>
31
32<div *ngIf="isUploadingVideo" class="upload-progress-cancel">
33 <p-progressBar
34 [value]="videoUploadPercents"
35 [ngClass]="{ processing: videoUploadPercents === 100 && videoUploaded === false }"
36 ></p-progressBar>
37 <input *ngIf="videoUploaded === false" type="button" value="Cancel" (click)="cancelUpload()" />
38</div>
39
40<!-- Hidden because we want to load the component -->
41<form [hidden]="!isUploadingVideo" novalidate [formGroup]="form">
42 <my-video-edit
43 [form]="form" [formErrors]="formErrors" [videoCaptions]="videoCaptions"
44 [validationMessages]="validationMessages" [videoPrivacies]="videoPrivacies" [userVideoChannels]="userVideoChannels"
45 ></my-video-edit>
46
47 <div class="submit-container">
48 <div i18n *ngIf="videoUploaded === false" class="message-submit">Publish will be available when upload is finished</div>
49
50 <div class="submit-button"
51 (click)="updateSecondStep()"
52 [ngClass]="{ disabled: !form.valid || isUpdatingVideo === true || videoUploaded !== true }"
53 >
54 <span class="icon icon-validate"></span>
55 <input type="button" i18n-value value="Publish" />
56 </div>
57 </div>
58</form> \ No newline at end of file
diff --git a/client/src/app/videos/+video-edit/video-upload.component.scss b/client/src/app/videos/+video-edit/video-upload.component.scss
new file mode 100644
index 000000000..015835672
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-upload.component.scss
@@ -0,0 +1,85 @@
1@import '_variables';
2@import '_mixins';
3
4.peertube-select-container {
5 @include peertube-select-container(190px);
6}
7
8.upload-video {
9 display: flex;
10 flex-direction: column;
11 align-items: center;
12
13 .form-group-channel {
14 margin-bottom: 20px;
15 margin-top: 35px;
16 }
17
18 .icon.icon-upload {
19 @include icon(90px);
20 margin-bottom: 25px;
21 cursor: default;
22
23 background-image: url('../../../assets/images/video/upload.svg');
24 }
25
26 .button-file {
27 @include peertube-button-file(auto);
28
29 min-width: 190px;
30 }
31
32 .button-file-extension {
33 display: block;
34 font-size: 12px;
35 margin-top: 5px;
36 }
37}
38
39.upload-progress-cancel {
40 display: flex;
41 margin-top: 25px;
42 margin-bottom: 40px;
43
44 p-progressBar {
45 flex-grow: 1;
46
47 /deep/ .ui-progressbar {
48 font-size: 15px !important;
49 color: #fff !important;
50 height: 30px !important;
51 line-height: 30px !important;
52 border-radius: 3px !important;
53 background-color: rgba(11, 204, 41, 0.16) !important;
54
55 .ui-progressbar-value {
56 background-color: #0BCC29 !important;
57 }
58
59 .ui-progressbar-label {
60 text-align: left;
61 padding-left: 18px;
62 margin-top: 0 !important;
63 }
64 }
65
66 &.processing {
67 /deep/ .ui-progressbar-label {
68 // Same color as background to hide "100%"
69 color: rgba(11, 204, 41, 0.16) !important;
70
71 &::before {
72 content: 'Processing...';
73 color: #fff;
74 }
75 }
76 }
77 }
78
79 input {
80 @include peertube-button;
81 @include grey-button;
82
83 margin-left: 10px;
84 }
85} \ No newline at end of file
diff --git a/client/src/app/videos/+video-edit/video-upload.component.ts b/client/src/app/videos/+video-edit/video-upload.component.ts
new file mode 100644
index 000000000..c5e9c1592
--- /dev/null
+++ b/client/src/app/videos/+video-edit/video-upload.component.ts
@@ -0,0 +1,251 @@
1import { HttpEventType, HttpResponse } from '@angular/common/http'
2import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core'
3import { Router } from '@angular/router'
4import { UserService } from '@app/shared'
5import { CanComponentDeactivate } from '@app/shared/guards/can-deactivate-guard.service'
6import { LoadingBarService } from '@ngx-loading-bar/core'
7import { NotificationsService } from 'angular2-notifications'
8import { BytesPipe } from 'ngx-pipes'
9import { Subscription } from 'rxjs'
10import { VideoConstant, VideoPrivacy } from '../../../../../shared/models/videos'
11import { AuthService, ServerService } from '../../core'
12import { FormReactive } from '../../shared'
13import { populateAsyncUserVideoChannels } from '../../shared/misc/utils'
14import { VideoEdit } from '../../shared/video/video-edit.model'
15import { VideoService } from '../../shared/video/video.service'
16import { I18n } from '@ngx-translate/i18n-polyfill'
17import { FormValidatorService } from '@app/shared/forms/form-validators/form-validator.service'
18import { switchMap } from 'rxjs/operators'
19import { VideoCaptionService } from '@app/shared/video-caption'
20import { VideoCaptionEdit } from '@app/shared/video-caption/video-caption-edit.model'
21
22@Component({
23 selector: 'my-video-upload',
24 templateUrl: './video-upload.component.html',
25 styleUrls: [
26 './shared/video-edit.component.scss',
27 './video-upload.component.scss'
28 ]
29})
30export class VideoUploadComponent extends FormReactive implements OnInit, OnDestroy, CanComponentDeactivate {
31 @Output() firstStepDone = new EventEmitter<string>()
32 @ViewChild('videofileInput') videofileInput
33
34 // So that it can be accessed in the template
35 readonly SPECIAL_SCHEDULED_PRIVACY = VideoEdit.SPECIAL_SCHEDULED_PRIVACY
36
37 isUploadingVideo = false
38 isUpdatingVideo = false
39 videoUploaded = false
40 videoUploadObservable: Subscription = null
41 videoUploadPercents = 0
42 videoUploadedIds = {
43 id: 0,
44 uuid: ''
45 }
46
47 userVideoChannels: { id: number, label: string, support: string }[] = []
48 userVideoQuotaUsed = 0
49 videoPrivacies: VideoConstant<string>[] = []
50 firstStepPrivacyId = 0
51 firstStepChannelId = 0
52 videoCaptions: VideoCaptionEdit[] = []
53
54 constructor (
55 protected formValidatorService: FormValidatorService,
56 private router: Router,
57 private notificationsService: NotificationsService,
58 private authService: AuthService,
59 private userService: UserService,
60 private serverService: ServerService,
61 private videoService: VideoService,
62 private loadingBar: LoadingBarService,
63 private i18n: I18n,
64 private videoCaptionService: VideoCaptionService
65 ) {
66 super()
67 }
68
69 get videoExtensions () {
70 return this.serverService.getConfig().video.file.extensions.join(',')
71 }
72
73 ngOnInit () {
74 this.buildForm({})
75
76 populateAsyncUserVideoChannels(this.authService, this.userVideoChannels)
77 .then(() => this.firstStepChannelId = this.userVideoChannels[0].id)
78
79 this.userService.getMyVideoQuotaUsed()
80 .subscribe(data => this.userVideoQuotaUsed = data.videoQuotaUsed)
81
82 this.serverService.videoPrivaciesLoaded
83 .subscribe(
84 () => {
85 this.videoPrivacies = this.serverService.getVideoPrivacies()
86
87 // Public by default
88 this.firstStepPrivacyId = VideoPrivacy.PUBLIC
89 })
90 }
91
92 ngOnDestroy () {
93 if (this.videoUploadObservable) {
94 this.videoUploadObservable.unsubscribe()
95 }
96 }
97
98 canDeactivate () {
99 let text = ''
100
101 if (this.videoUploaded === true) {
102 // FIXME: cannot concatenate strings inside i18n service :/
103 text = this.i18n('Your video was uploaded to your account and is private.') +
104 this.i18n('But associated data (tags, description...) will be lost, are you sure you want to leave this page?')
105 } else {
106 text = this.i18n('Your video is not uploaded yet, are you sure you want to leave this page?')
107 }
108
109 return {
110 canDeactivate: !this.isUploadingVideo,
111 text
112 }
113 }
114
115 fileChange () {
116 this.uploadFirstStep()
117 }
118
119 checkForm () {
120 this.forceCheck()
121
122 return this.form.valid
123 }
124
125 cancelUpload () {
126 if (this.videoUploadObservable !== null) {
127 this.videoUploadObservable.unsubscribe()
128 this.isUploadingVideo = false
129 this.videoUploadPercents = 0
130 this.videoUploadObservable = null
131 this.notificationsService.info(this.i18n('Info'), this.i18n('Upload cancelled'))
132 }
133 }
134
135 uploadFirstStep () {
136 const videofile = this.videofileInput.nativeElement.files[0] as File
137 if (!videofile) return
138
139 // Cannot upload videos > 8GB for now
140 if (videofile.size > 8 * 1024 * 1024 * 1024) {
141 this.notificationsService.error(this.i18n('Error'), this.i18n('We are sorry but PeerTube cannot handle videos > 8GB'))
142 return
143 }
144
145 const videoQuota = this.authService.getUser().videoQuota
146 if (videoQuota !== -1 && (this.userVideoQuotaUsed + videofile.size) > videoQuota) {
147 const bytePipes = new BytesPipe()
148
149 const msg = this.i18n(
150 'Your video quota is exceeded with this video (video size: {{ videoSize }}, used: {{ videoQuotaUsed }}, quota: {{ videoQuota }})',
151 {
152 videoSize: bytePipes.transform(videofile.size, 0),
153 videoQuotaUsed: bytePipes.transform(this.userVideoQuotaUsed, 0),
154 videoQuota: bytePipes.transform(videoQuota, 0)
155 }
156 )
157 this.notificationsService.error(this.i18n('Error'), msg)
158 return
159 }
160
161 const nameWithoutExtension = videofile.name.replace(/\.[^/.]+$/, '')
162 let name: string
163
164 // If the name of the file is very small, keep the extension
165 if (nameWithoutExtension.length < 3) name = videofile.name
166 else name = nameWithoutExtension
167
168 const privacy = this.firstStepPrivacyId.toString()
169 const nsfw = false
170 const waitTranscoding = true
171 const commentsEnabled = true
172 const channelId = this.firstStepChannelId.toString()
173
174 const formData = new FormData()
175 formData.append('name', name)
176 // Put the video "private" -> we are waiting the user validation of the second step
177 formData.append('privacy', VideoPrivacy.PRIVATE.toString())
178 formData.append('nsfw', '' + nsfw)
179 formData.append('commentsEnabled', '' + commentsEnabled)
180 formData.append('waitTranscoding', '' + waitTranscoding)
181 formData.append('channelId', '' + channelId)
182 formData.append('videofile', videofile)
183
184 this.isUploadingVideo = true
185 this.firstStepDone.emit(name)
186
187 this.form.patchValue({
188 name,
189 privacy,
190 nsfw,
191 channelId
192 })
193
194 this.videoUploadObservable = this.videoService.uploadVideo(formData).subscribe(
195 event => {
196 if (event.type === HttpEventType.UploadProgress) {
197 this.videoUploadPercents = Math.round(100 * event.loaded / event.total)
198 } else if (event instanceof HttpResponse) {
199 this.videoUploaded = true
200
201 this.videoUploadedIds = event.body.video
202
203 this.videoUploadObservable = null
204 }
205 },
206
207 err => {
208 // Reset progress
209 this.isUploadingVideo = false
210 this.videoUploadPercents = 0
211 this.videoUploadObservable = null
212 this.notificationsService.error(this.i18n('Error'), err.message)
213 }
214 )
215 }
216
217 updateSecondStep () {
218 if (this.checkForm() === false) {
219 return
220 }
221
222 const video = new VideoEdit()
223 video.patch(this.form.value)
224 video.id = this.videoUploadedIds.id
225 video.uuid = this.videoUploadedIds.uuid
226
227 this.isUpdatingVideo = true
228 this.loadingBar.start()
229 this.videoService.updateVideo(video)
230 .pipe(
231 // Then update captions
232 switchMap(() => this.videoCaptionService.updateCaptions(video.id, this.videoCaptions))
233 )
234 .subscribe(
235 () => {
236 this.isUpdatingVideo = false
237 this.isUploadingVideo = false
238 this.loadingBar.complete()
239
240 this.notificationsService.success(this.i18n('Success'), this.i18n('Video published.'))
241 this.router.navigate([ '/videos/watch', video.uuid ])
242 },
243
244 err => {
245 this.isUpdatingVideo = false
246 this.notificationsService.error(this.i18n('Error'), err.message)
247 console.error(err)
248 }
249 )
250 }
251}
diff --git a/client/src/app/videos/+video-watch/video-watch.component.html b/client/src/app/videos/+video-watch/video-watch.component.html
index f39b5a94a..5a132112d 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.html
+++ b/client/src/app/videos/+video-watch/video-watch.component.html
@@ -8,6 +8,10 @@
8 </div> 8 </div>
9 </div> 9 </div>
10 10
11 <div i18n class="alert alert-warning" *ngIf="isVideoToImport()">
12 The video is being imported, it will be available when the import is finished.
13 </div>
14
11 <div i18n class="alert alert-warning" *ngIf="isVideoToTranscode()"> 15 <div i18n class="alert alert-warning" *ngIf="isVideoToTranscode()">
12 The video is being transcoded, it may not work properly. 16 The video is being transcoded, it may not work properly.
13 </div> 17 </div>
diff --git a/client/src/app/videos/+video-watch/video-watch.component.ts b/client/src/app/videos/+video-watch/video-watch.component.ts
index afbb0c596..04bcc6cd1 100644
--- a/client/src/app/videos/+video-watch/video-watch.component.ts
+++ b/client/src/app/videos/+video-watch/video-watch.component.ts
@@ -10,7 +10,7 @@ import { forkJoin, Subscription } from 'rxjs'
10import * as videojs from 'video.js' 10import * as videojs from 'video.js'
11import 'videojs-hotkeys' 11import 'videojs-hotkeys'
12import * as WebTorrent from 'webtorrent' 12import * as WebTorrent from 'webtorrent'
13import { ResultList, UserVideoRateType, VideoPrivacy, VideoRateType, VideoState } from '../../../../../shared' 13import { UserVideoRateType, VideoPrivacy, VideoRateType, VideoState } from '../../../../../shared'
14import '../../../assets/player/peertube-videojs-plugin' 14import '../../../assets/player/peertube-videojs-plugin'
15import { AuthService, ConfirmService } from '../../core' 15import { AuthService, ConfirmService } from '../../core'
16import { RestExtractor, VideoBlacklistService } from '../../shared' 16import { RestExtractor, VideoBlacklistService } from '../../shared'
@@ -28,7 +28,6 @@ import { environment } from '../../../environments/environment'
28import { getDevLocale, isOnDevLocale } from '@app/shared/i18n/i18n-utils' 28import { getDevLocale, isOnDevLocale } from '@app/shared/i18n/i18n-utils'
29import { VideoCaptionService } from '@app/shared/video-caption' 29import { VideoCaptionService } from '@app/shared/video-caption'
30import { VideoCaption } from '../../../../../shared/models/videos/video-caption.model' 30import { VideoCaption } from '../../../../../shared/models/videos/video-caption.model'
31import { VideoJSCaption } from '../../../assets/player/peertube-videojs-typings'
32 31
33@Component({ 32@Component({
34 selector: 'my-video-watch', 33 selector: 'my-video-watch',
@@ -290,6 +289,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
290 return this.video && this.video.state.id === VideoState.TO_TRANSCODE 289 return this.video && this.video.state.id === VideoState.TO_TRANSCODE
291 } 290 }
292 291
292 isVideoToImport () {
293 return this.video && this.video.state.id === VideoState.TO_IMPORT
294 }
295
293 hasVideoScheduledPublication () { 296 hasVideoScheduledPublication () {
294 return this.video && this.video.scheduledUpdate !== undefined 297 return this.video && this.video.scheduledUpdate !== undefined
295 } 298 }
diff --git a/client/src/app/videos/shared/markdown.service.ts b/client/src/app/videos/shared/markdown.service.ts
index 14eeba777..3ef16fdb9 100644
--- a/client/src/app/videos/shared/markdown.service.ts
+++ b/client/src/app/videos/shared/markdown.service.ts
@@ -72,5 +72,6 @@ export class MarkdownService {
72 72
73 private avoidTruncatedLinks (html: string) { 73 private avoidTruncatedLinks (html: string) {
74 return html.replace(/<a[^>]+>([^<]+)<\/a>\s*...((<\/p>)|(<\/li>)|(<\/strong>))?$/mi, '$1...') 74 return html.replace(/<a[^>]+>([^<]+)<\/a>\s*...((<\/p>)|(<\/li>)|(<\/strong>))?$/mi, '$1...')
75 .replace(/\[[^\]]+\]?\(?([^\)]+)$/, '$1')
75 } 76 }
76} 77}
diff --git a/client/src/locale/source/angular_en_US.xml b/client/src/locale/source/angular_en_US.xml
index 825634a5b..f7897a8d6 100644
--- a/client/src/locale/source/angular_en_US.xml
+++ b/client/src/locale/source/angular_en_US.xml
@@ -270,11 +270,17 @@
270 <context context-type="sourcefile">app/+admin/users/user-edit/user-update.component.ts</context> 270 <context context-type="sourcefile">app/+admin/users/user-edit/user-update.component.ts</context>
271 <context context-type="linenumber">8</context> 271 <context context-type="linenumber">8</context>
272 </context-group> 272 </context-group>
273 </trans-unit><trans-unit id="2ac776627e18565d7ae85cd7f4cd033bc5d0c88b" datatype="html">
274 <source>I have read and agree to the &lt;a href=&apos;/about/instance#terms-section&apos; target=&apos;_blank&apos;rel=&apos;noopener noreferrer&apos;&gt;Terms&lt;/a&gt; of this instance</source>
275 <context-group purpose="location">
276 <context context-type="sourcefile">app/signup/signup.component.ts</context>
277 <context context-type="linenumber">60</context>
278 </context-group>
273 </trans-unit><trans-unit id="717a5e3574fec754fbeb348c2d5561c4d81facc4" datatype="html"> 279 </trans-unit><trans-unit id="717a5e3574fec754fbeb348c2d5561c4d81facc4" datatype="html">
274 <source>Signup</source> 280 <source>Signup</source>
275 <context-group purpose="location"> 281 <context-group purpose="location">
276 <context context-type="sourcefile">app/signup/signup.component.ts</context> 282 <context context-type="sourcefile">app/signup/signup.component.ts</context>
277 <context context-type="linenumber">57</context> 283 <context context-type="linenumber">68</context>
278 </context-group> 284 </context-group>
279 <context-group purpose="location"> 285 <context-group purpose="location">
280 <context context-type="sourcefile">app/+about/about-instance/about-instance.component.ts</context> 286 <context context-type="sourcefile">app/+about/about-instance/about-instance.component.ts</context>
@@ -476,7 +482,7 @@
476 </context-group> 482 </context-group>
477 <context-group purpose="location"> 483 <context-group purpose="location">
478 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 484 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
479 <context context-type="linenumber">143</context> 485 <context context-type="linenumber">144</context>
480 </context-group> 486 </context-group>
481 </trans-unit><trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c" datatype="html"> 487 </trans-unit><trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c" datatype="html">
482 <source>Licence</source> 488 <source>Licence</source>
@@ -490,7 +496,7 @@
490 </context-group> 496 </context-group>
491 <context-group purpose="location"> 497 <context-group purpose="location">
492 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 498 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
493 <context context-type="linenumber">152</context> 499 <context context-type="linenumber">153</context>
494 </context-group> 500 </context-group>
495 </trans-unit><trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html"> 501 </trans-unit><trans-unit id="fe46ccaae902ce974e2441abe752399288298619" datatype="html">
496 <source>Language</source> 502 <source>Language</source>
@@ -508,7 +514,7 @@
508 </context-group> 514 </context-group>
509 <context-group purpose="location"> 515 <context-group purpose="location">
510 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 516 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
511 <context context-type="linenumber">161</context> 517 <context context-type="linenumber">162</context>
512 </context-group> 518 </context-group>
513 </trans-unit><trans-unit id="c8d58c4fbe23e51af3dc8f58cb4a81eac20739e8" datatype="html"> 519 </trans-unit><trans-unit id="c8d58c4fbe23e51af3dc8f58cb4a81eac20739e8" datatype="html">
514 <source>All of these tags</source> 520 <source>All of these tags</source>
@@ -1569,11 +1575,11 @@ Check this checkbox, save the configuration and test with a video URL of your in
1569 </context-group> 1575 </context-group>
1570 <context-group purpose="location"> 1576 <context-group purpose="location">
1571 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1577 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1572 <context context-type="linenumber">148</context> 1578 <context context-type="linenumber">154</context>
1573 </context-group> 1579 </context-group>
1574 <context-group purpose="location"> 1580 <context-group purpose="location">
1575 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1581 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1576 <context context-type="linenumber">106</context> 1582 <context context-type="linenumber">107</context>
1577 </context-group> 1583 </context-group>
1578 <context-group purpose="location"> 1584 <context-group purpose="location">
1579 <context context-type="sourcefile">app/videos/+video-watch/comment/video-comment.component.ts</context> 1585 <context context-type="sourcefile">app/videos/+video-watch/comment/video-comment.component.ts</context>
@@ -1762,7 +1768,7 @@ When you will upload a video in this channel, the video support field will be au
1762 </context-group> 1768 </context-group>
1763 <context-group purpose="location"> 1769 <context-group purpose="location">
1764 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1770 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1765 <context context-type="linenumber">138</context> 1771 <context context-type="linenumber">139</context>
1766 </context-group> 1772 </context-group>
1767 </trans-unit><trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215" datatype="html"> 1773 </trans-unit><trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215" datatype="html">
1768 <source>Publish will be available when upload is finished</source> 1774 <source>Publish will be available when upload is finished</source>
@@ -1816,7 +1822,7 @@ When you will upload a video in this channel, the video support field will be au
1816 </context-group> 1822 </context-group>
1817 <context-group purpose="location"> 1823 <context-group purpose="location">
1818 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1824 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1819 <context context-type="linenumber">170</context> 1825 <context context-type="linenumber">171</context>
1820 </context-group> 1826 </context-group>
1821 </trans-unit><trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82" datatype="html"> 1827 </trans-unit><trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82" datatype="html">
1822 <source>(press Enter to add)</source> 1828 <source>(press Enter to add)</source>
@@ -1878,6 +1884,24 @@ When you will upload a video in this channel, the video support field will be au
1878 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1884 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1879 <context context-type="linenumber">139</context> 1885 <context context-type="linenumber">139</context>
1880 </context-group> 1886 </context-group>
1887 </trans-unit><trans-unit id="a46a7503167b77b3ec4e28274a3d1dda637617ed" datatype="html">
1888 <source>See the subtitle file</source>
1889 <context-group purpose="location">
1890 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1891 <context context-type="linenumber">148</context>
1892 </context-group>
1893 </trans-unit><trans-unit id="308a79679d012938a625e41fdd4b804fe42b57b9" datatype="html">
1894 <source>Cancel create</source>
1895 <context-group purpose="location">
1896 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1897 <context context-type="linenumber">162</context>
1898 </context-group>
1899 </trans-unit><trans-unit id="88395fc0137e46a9853cf16762bf5a87687d0d0c" datatype="html">
1900 <source>Cancel deletion</source>
1901 <context-group purpose="location">
1902 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1903 <context context-type="linenumber">170</context>
1904 </context-group>
1881 </trans-unit><trans-unit id="0c720e0dd9e6c60095f961cb714f47e8c0090f93" datatype="html"> 1905 </trans-unit><trans-unit id="0c720e0dd9e6c60095f961cb714f47e8c0090f93" datatype="html">
1882 <source>Captions</source> 1906 <source>Captions</source>
1883 <context-group purpose="location"> 1907 <context-group purpose="location">
@@ -1888,19 +1912,19 @@ When you will upload a video in this channel, the video support field will be au
1888 <source>Upload thumbnail</source> 1912 <source>Upload thumbnail</source>
1889 <context-group purpose="location"> 1913 <context-group purpose="location">
1890 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1914 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1891 <context context-type="linenumber">163</context> 1915 <context context-type="linenumber">186</context>
1892 </context-group> 1916 </context-group>
1893 </trans-unit><trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639" datatype="html"> 1917 </trans-unit><trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639" datatype="html">
1894 <source>Upload preview</source> 1918 <source>Upload preview</source>
1895 <context-group purpose="location"> 1919 <context-group purpose="location">
1896 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1920 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1897 <context context-type="linenumber">170</context> 1921 <context context-type="linenumber">193</context>
1898 </context-group> 1922 </context-group>
1899 </trans-unit><trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604" datatype="html"> 1923 </trans-unit><trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604" datatype="html">
1900 <source>Support</source> 1924 <source>Support</source>
1901 <context-group purpose="location"> 1925 <context-group purpose="location">
1902 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1926 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1903 <context context-type="linenumber">176</context> 1927 <context context-type="linenumber">199</context>
1904 </context-group> 1928 </context-group>
1905 <context-group purpose="location"> 1929 <context-group purpose="location">
1906 <context context-type="sourcefile">app/videos/+video-watch/modal/video-support.component.ts</context> 1930 <context context-type="sourcefile">app/videos/+video-watch/modal/video-support.component.ts</context>
@@ -1908,19 +1932,19 @@ When you will upload a video in this channel, the video support field will be au
1908 </context-group> 1932 </context-group>
1909 <context-group purpose="location"> 1933 <context-group purpose="location">
1910 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1934 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1911 <context context-type="linenumber">66</context> 1935 <context context-type="linenumber">67</context>
1912 </context-group> 1936 </context-group>
1913 </trans-unit><trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0" datatype="html"> 1937 </trans-unit><trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0" datatype="html">
1914 <source>Short text to tell people how they can support you (membership platform...).</source> 1938 <source>Short text to tell people how they can support you (membership platform...).</source>
1915 <context-group purpose="location"> 1939 <context-group purpose="location">
1916 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1940 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1917 <context context-type="linenumber">177</context> 1941 <context context-type="linenumber">200</context>
1918 </context-group> 1942 </context-group>
1919 </trans-unit><trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1" datatype="html"> 1943 </trans-unit><trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1" datatype="html">
1920 <source>Advanced settings</source> 1944 <source>Advanced settings</source>
1921 <context-group purpose="location"> 1945 <context-group purpose="location">
1922 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context> 1946 <context context-type="sourcefile">app/videos/+video-edit/shared/video-edit.component.ts</context>
1923 <context context-type="linenumber">159</context> 1947 <context context-type="linenumber">182</context>
1924 </context-group> 1948 </context-group>
1925 </trans-unit><trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0" datatype="html"> 1949 </trans-unit><trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0" datatype="html">
1926 <source> 1950 <source>
@@ -1938,7 +1962,7 @@ When you will upload a video in this channel, the video support field will be au
1938 </context-group> 1962 </context-group>
1939 <context-group purpose="location"> 1963 <context-group purpose="location">
1940 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1964 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1941 <context context-type="linenumber">100</context> 1965 <context context-type="linenumber">101</context>
1942 </context-group> 1966 </context-group>
1943 </trans-unit><trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611" datatype="html"> 1967 </trans-unit><trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611" datatype="html">
1944 <source>Download video</source> 1968 <source>Download video</source>
@@ -1972,7 +1996,7 @@ When you will upload a video in this channel, the video support field will be au
1972 </context-group> 1996 </context-group>
1973 <context-group purpose="location"> 1997 <context-group purpose="location">
1974 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 1998 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
1975 <context context-type="linenumber">82</context> 1999 <context context-type="linenumber">83</context>
1976 </context-group> 2000 </context-group>
1977 </trans-unit><trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b" datatype="html"> 2001 </trans-unit><trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b" datatype="html">
1978 <source>Report video</source> 2002 <source>Report video</source>
@@ -2008,7 +2032,7 @@ When you will upload a video in this channel, the video support field will be au
2008 </context-group> 2032 </context-group>
2009 <context-group purpose="location"> 2033 <context-group purpose="location">
2010 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2034 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2011 <context context-type="linenumber">71</context> 2035 <context context-type="linenumber">72</context>
2012 </context-group> 2036 </context-group>
2013 </trans-unit><trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html"> 2037 </trans-unit><trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">
2014 <source>URL</source> 2038 <source>URL</source>
@@ -2066,89 +2090,89 @@ When you will upload a video in this channel, the video support field will be au
2066 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2090 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2067 <context context-type="linenumber">31</context> 2091 <context context-type="linenumber">31</context>
2068 </context-group> 2092 </context-group>
2069 </trans-unit><trans-unit id="57075c778cf28b81272df4eb17da944366c98e51" datatype="html">
2070 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@&lt;x id="INTERPOLATION" equiv-text="{{video.account.name}}"/&gt;@&lt;x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/&gt;&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href=&apos;https://github.com/Chocobozzz/PeerTube/issues/470&apos;&gt;#470&lt;/a&gt;.</source>
2071 <context-group purpose="location">
2072 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2073 <context context-type="linenumber">37</context>
2074 </context-group>
2075 </trans-unit><trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c" datatype="html"> 2093 </trans-unit><trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c" datatype="html">
2076 <source>By &lt;x id="INTERPOLATION" equiv-text="{{ video.by }}"/&gt;</source> 2094 <source>By &lt;x id="INTERPOLATION" equiv-text="{{ video.by }}"/&gt;</source>
2077 <context-group purpose="location"> 2095 <context-group purpose="location">
2078 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2096 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2079 <context context-type="linenumber">42</context> 2097 <context context-type="linenumber">41</context>
2080 </context-group> 2098 </context-group>
2081 </trans-unit><trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c" datatype="html"> 2099 </trans-unit><trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c" datatype="html">
2082 <source>Go to the account page</source> 2100 <source>Go to the account page</source>
2083 <context-group purpose="location"> 2101 <context-group purpose="location">
2084 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2102 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2085 <context context-type="linenumber">41</context> 2103 <context context-type="linenumber">40</context>
2104 </context-group>
2105 </trans-unit><trans-unit id="57075c778cf28b81272df4eb17da944366c98e51" datatype="html">
2106 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@&lt;x id="INTERPOLATION" equiv-text="{{video.account.name}}"/&gt;@&lt;x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/&gt;&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href=&apos;https://github.com/Chocobozzz/PeerTube/issues/470&apos;&gt;#470&lt;/a&gt;.</source>
2107 <context-group purpose="location">
2108 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2109 <context context-type="linenumber">45</context>
2086 </context-group> 2110 </context-group>
2087 </trans-unit><trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced" datatype="html"> 2111 </trans-unit><trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced" datatype="html">
2088 <source>Like this video</source> 2112 <source>Like this video</source>
2089 <context-group purpose="location"> 2113 <context-group purpose="location">
2090 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2114 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2091 <context context-type="linenumber">54</context> 2115 <context context-type="linenumber">55</context>
2092 </context-group> 2116 </context-group>
2093 </trans-unit><trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509" datatype="html"> 2117 </trans-unit><trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509" datatype="html">
2094 <source>Dislike this video</source> 2118 <source>Dislike this video</source>
2095 <context-group purpose="location"> 2119 <context-group purpose="location">
2096 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2120 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2097 <context context-type="linenumber">61</context> 2121 <context context-type="linenumber">62</context>
2098 </context-group> 2122 </context-group>
2099 </trans-unit><trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2" datatype="html"> 2123 </trans-unit><trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2" datatype="html">
2100 <source>Download the video</source> 2124 <source>Download the video</source>
2101 <context-group purpose="location"> 2125 <context-group purpose="location">
2102 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2126 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2103 <context context-type="linenumber">81</context> 2127 <context context-type="linenumber">82</context>
2104 </context-group> 2128 </context-group>
2105 </trans-unit><trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a" datatype="html"> 2129 </trans-unit><trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a" datatype="html">
2106 <source>Report</source> 2130 <source>Report</source>
2107 <context-group purpose="location"> 2131 <context-group purpose="location">
2108 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2132 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2109 <context context-type="linenumber">88</context> 2133 <context context-type="linenumber">89</context>
2110 </context-group> 2134 </context-group>
2111 </trans-unit><trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf" datatype="html"> 2135 </trans-unit><trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf" datatype="html">
2112 <source>Report this video</source> 2136 <source>Report this video</source>
2113 <context-group purpose="location"> 2137 <context-group purpose="location">
2114 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2138 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2115 <context context-type="linenumber">87</context> 2139 <context context-type="linenumber">88</context>
2116 </context-group> 2140 </context-group>
2117 </trans-unit><trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61" datatype="html"> 2141 </trans-unit><trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61" datatype="html">
2118 <source>Blacklist</source> 2142 <source>Blacklist</source>
2119 <context-group purpose="location"> 2143 <context-group purpose="location">
2120 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2144 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2121 <context context-type="linenumber">94</context> 2145 <context context-type="linenumber">95</context>
2122 </context-group> 2146 </context-group>
2123 </trans-unit><trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037" datatype="html"> 2147 </trans-unit><trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037" datatype="html">
2124 <source>Blacklist this video</source> 2148 <source>Blacklist this video</source>
2125 <context-group purpose="location"> 2149 <context-group purpose="location">
2126 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2150 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2127 <context context-type="linenumber">93</context> 2151 <context context-type="linenumber">94</context>
2128 </context-group> 2152 </context-group>
2129 </trans-unit><trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1" datatype="html"> 2153 </trans-unit><trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1" datatype="html">
2130 <source>Update this video</source> 2154 <source>Update this video</source>
2131 <context-group purpose="location"> 2155 <context-group purpose="location">
2132 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2156 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2133 <context context-type="linenumber">99</context> 2157 <context context-type="linenumber">100</context>
2134 </context-group> 2158 </context-group>
2135 </trans-unit><trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5" datatype="html"> 2159 </trans-unit><trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5" datatype="html">
2136 <source>Delete this video</source> 2160 <source>Delete this video</source>
2137 <context-group purpose="location"> 2161 <context-group purpose="location">
2138 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2162 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2139 <context context-type="linenumber">105</context> 2163 <context context-type="linenumber">106</context>
2140 </context-group> 2164 </context-group>
2141 </trans-unit><trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html"> 2165 </trans-unit><trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
2142 <source>Show more</source> 2166 <source>Show more</source>
2143 <context-group purpose="location"> 2167 <context-group purpose="location">
2144 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2168 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2145 <context context-type="linenumber">125</context> 2169 <context context-type="linenumber">126</context>
2146 </context-group> 2170 </context-group>
2147 </trans-unit><trans-unit id="5403a767248e304199592271bba3366d2ca3f903" datatype="html"> 2171 </trans-unit><trans-unit id="5403a767248e304199592271bba3366d2ca3f903" datatype="html">
2148 <source>Show less</source> 2172 <source>Show less</source>
2149 <context-group purpose="location"> 2173 <context-group purpose="location">
2150 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2174 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2151 <context context-type="linenumber">131</context> 2175 <context context-type="linenumber">132</context>
2152 </context-group> 2176 </context-group>
2153 </trans-unit><trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1" datatype="html"> 2177 </trans-unit><trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1" datatype="html">
2154 <source> 2178 <source>
@@ -2156,13 +2180,13 @@ When you will upload a video in this channel, the video support field will be au
2156 </source> 2180 </source>
2157 <context-group purpose="location"> 2181 <context-group purpose="location">
2158 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2182 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2159 <context context-type="linenumber">182</context> 2183 <context context-type="linenumber">183</context>
2160 </context-group> 2184 </context-group>
2161 </trans-unit><trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c" datatype="html"> 2185 </trans-unit><trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c" datatype="html">
2162 <source>Friendly Reminder:</source> 2186 <source>Friendly Reminder:</source>
2163 <context-group purpose="location"> 2187 <context-group purpose="location">
2164 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2188 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2165 <context context-type="linenumber">194</context> 2189 <context context-type="linenumber">195</context>
2166 </context-group> 2190 </context-group>
2167 </trans-unit><trans-unit id="329900dd14bc4ca33cec3775d25c246e4cde7867" datatype="html"> 2191 </trans-unit><trans-unit id="329900dd14bc4ca33cec3775d25c246e4cde7867" datatype="html">
2168 <source> 2192 <source>
@@ -2170,19 +2194,19 @@ When you will upload a video in this channel, the video support field will be au
2170 </source> 2194 </source>
2171 <context-group purpose="location"> 2195 <context-group purpose="location">
2172 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2196 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2173 <context context-type="linenumber">196</context> 2197 <context context-type="linenumber">197</context>
2174 </context-group> 2198 </context-group>
2175 </trans-unit><trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html"> 2199 </trans-unit><trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">
2176 <source>More information</source> 2200 <source>More information</source>
2177 <context-group purpose="location"> 2201 <context-group purpose="location">
2178 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2202 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2179 <context context-type="linenumber">199</context> 2203 <context context-type="linenumber">200</context>
2180 </context-group> 2204 </context-group>
2181 </trans-unit><trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318" datatype="html"> 2205 </trans-unit><trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318" datatype="html">
2182 <source>Get more information</source> 2206 <source>Get more information</source>
2183 <context-group purpose="location"> 2207 <context-group purpose="location">
2184 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2208 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2185 <context context-type="linenumber">199</context> 2209 <context context-type="linenumber">200</context>
2186 </context-group> 2210 </context-group>
2187 </trans-unit><trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f" datatype="html"> 2211 </trans-unit><trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f" datatype="html">
2188 <source> 2212 <source>
@@ -2190,7 +2214,7 @@ When you will upload a video in this channel, the video support field will be au
2190 </source> 2214 </source>
2191 <context-group purpose="location"> 2215 <context-group purpose="location">
2192 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context> 2216 <context context-type="sourcefile">app/videos/+video-watch/video-watch.component.ts</context>
2193 <context context-type="linenumber">202</context> 2217 <context context-type="linenumber">203</context>
2194 </context-group> 2218 </context-group>
2195 </trans-unit><trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7" datatype="html"> 2219 </trans-unit><trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7" datatype="html">
2196 <source> 2220 <source>
@@ -3294,6 +3318,13 @@ When you will upload a video in this channel, the video support field will be au
3294 <context context-type="linenumber">1</context> 3318 <context context-type="linenumber">1</context>
3295 </context-group> 3319 </context-group>
3296 </trans-unit> 3320 </trans-unit>
3321 <trans-unit id="4a3ebc6ddb6b6677aed7b04eb503f9ddd0cfe561" datatype="html">
3322 <source>You must to agree with the instance terms in order to registering on it.</source>
3323 <context-group purpose="location">
3324 <context context-type="sourcefile">src/app/shared/forms/form-validators/user-validators.service.ts</context>
3325 <context context-type="linenumber">1</context>
3326 </context-group>
3327 </trans-unit>
3297 <trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6" datatype="html"> 3328 <trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6" datatype="html">
3298 <source>Report reason is required.</source> 3329 <source>Report reason is required.</source>
3299 <context-group purpose="location"> 3330 <context-group purpose="location">
diff --git a/client/src/locale/target/angular_ca_ES.xml b/client/src/locale/target/angular_ca_ES.xml
index 278df2696..d0be071d3 100644
--- a/client/src/locale/target/angular_ca_ES.xml
+++ b/client/src/locale/target/angular_ca_ES.xml
@@ -11,14 +11,14 @@
11 Cancel·la 11 Cancel·la
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Obtenir ajuda</target> 47 <target>Obtenir ajuda</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -106,7 +106,7 @@
106 <source>Password</source> 106 <source>Password</source>
107 <target>Contrasenya</target> 107 <target>Contrasenya</target>
108 <context-group name="null"> 108 <context-group name="null">
109 <context context-type="linenumber">28</context> 109 <context context-type="linenumber">12</context>
110 </context-group> 110 </context-group>
111 </trans-unit> 111 </trans-unit>
112 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 112 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -329,6 +329,27 @@
329 <context context-type="linenumber">9</context> 329 <context context-type="linenumber">9</context>
330 </context-group> 330 </context-group>
331 </trans-unit> 331 </trans-unit>
332 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
333 <source>Category</source>
334 <target>Categoria</target>
335 <context-group name="null">
336 <context context-type="linenumber">144</context>
337 </context-group>
338 </trans-unit>
339 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
340 <source>Licence</source>
341 <target>Llicència</target>
342 <context-group name="null">
343 <context context-type="linenumber">153</context>
344 </context-group>
345 </trans-unit>
346 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
347 <source>Language</source>
348 <target>Llengua</target>
349 <context-group name="null">
350 <context context-type="linenumber">162</context>
351 </context-group>
352 </trans-unit>
332 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 353 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
333 <source>No results.</source> 354 <source>No results.</source>
334 <target>Sense resultats.</target> 355 <target>Sense resultats.</target>
@@ -553,21 +574,6 @@
553 <context context-type="linenumber">51</context> 574 <context context-type="linenumber">51</context>
554 </context-group> 575 </context-group>
555 </trans-unit> 576 </trans-unit>
556 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
557 <source>
558 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
559 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.
560 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
561 </source>
562 <target>
563 Els seguidors del lloc web no s'envien directament: perquè utilitzem WebRTC dins del navegador web, el protocol és diferent al de BitTorrent clàssic.
564       Quan et trobes en un navegador web, envia una senyal al rastrejador que conté la teva adreça IP, que seleccionarà aleatòriament altres punts per a reenviar la informació.
565 Veure <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>aquest document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> per a més informació
566 </target>
567 <context-group name="null">
568 <context context-type="linenumber">55</context>
569 </context-group>
570 </trans-unit>
571 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 577 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
572 <source> 578 <source>
573 The worst-case scenario of an average person spying on their friends is quite unlikely. 579 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -581,13 +587,6 @@
581 <context context-type="linenumber">62</context> 587 <context context-type="linenumber">62</context>
582 </context-group> 588 </context-group>
583 </trans-unit> 589 </trans-unit>
584 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
585 <source>How does PeerTube compares to YouTube?</source>
586 <target>Com es compara PeerTube amb YouTube?</target>
587 <context-group name="null">
588 <context context-type="linenumber">67</context>
589 </context-group>
590 </trans-unit>
591 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 590 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
592 <source> 591 <source>
593 The threats to privacy in YouTube are different from PeerTube's. 592 The threats to privacy in YouTube are different from PeerTube's.
@@ -803,42 +802,42 @@
803 <source>Signup enabled</source> 802 <source>Signup enabled</source>
804 <target>Registre activat</target> 803 <target>Registre activat</target>
805 <context-group name="null"> 804 <context-group name="null">
806 <context context-type="linenumber">92</context> 805 <context context-type="linenumber">90</context>
807 </context-group> 806 </context-group>
808 </trans-unit> 807 </trans-unit>
809 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 808 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
810 <source>Signup limit</source> 809 <source>Signup limit</source>
811 <target>Limit de registres</target> 810 <target>Limit de registres</target>
812 <context-group name="null"> 811 <context-group name="null">
813 <context context-type="linenumber">96</context> 812 <context context-type="linenumber">94</context>
814 </context-group> 813 </context-group>
815 </trans-unit> 814 </trans-unit>
816 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 815 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
817 <source>Administrator</source> 816 <source>Administrator</source>
818 <target>Administrador</target> 817 <target>Administrador</target>
819 <context-group name="null"> 818 <context-group name="null">
820 <context context-type="linenumber">106</context> 819 <context context-type="linenumber">104</context>
821 </context-group> 820 </context-group>
822 </trans-unit> 821 </trans-unit>
823 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 822 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
824 <source>Admin email</source> 823 <source>Admin email</source>
825 <target>Correu del Administrador</target> 824 <target>Correu del Administrador</target>
826 <context-group name="null"> 825 <context-group name="null">
827 <context context-type="linenumber">109</context> 826 <context context-type="linenumber">107</context>
828 </context-group> 827 </context-group>
829 </trans-unit> 828 </trans-unit>
830 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 829 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
831 <source>Users</source> 830 <source>Users</source>
832 <target>Usuaris</target> 831 <target>Usuaris</target>
833 <context-group name="null"> 832 <context-group name="null">
834 <context context-type="linenumber">119</context> 833 <context context-type="linenumber">117</context>
835 </context-group> 834 </context-group>
836 </trans-unit> 835 </trans-unit>
837 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 836 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
838 <source>User default video quota</source> 837 <source>User default video quota</source>
839 <target>Quota de vídeo per defecte de l'usuari</target> 838 <target>Quota de vídeo per defecte de l'usuari</target>
840 <context-group name="null"> 839 <context-group name="null">
841 <context context-type="linenumber">122</context> 840 <context context-type="linenumber">120</context>
842 </context-group> 841 </context-group>
843 </trans-unit> 842 </trans-unit>
844 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 843 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -852,28 +851,28 @@
852 <source>Twitter</source> 851 <source>Twitter</source>
853 <target>Twitter</target> 852 <target>Twitter</target>
854 <context-group name="null"> 853 <context-group name="null">
855 <context context-type="linenumber">138</context> 854 <context context-type="linenumber">136</context>
856 </context-group> 855 </context-group>
857 </trans-unit> 856 </trans-unit>
858 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 857 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
859 <source>Your Twitter username</source> 858 <source>Your Twitter username</source>
860 <target>El teu nom d'usuari de Twitter</target> 859 <target>El teu nom d'usuari de Twitter</target>
861 <context-group name="null"> 860 <context-group name="null">
862 <context context-type="linenumber">141</context> 861 <context context-type="linenumber">139</context>
863 </context-group> 862 </context-group>
864 </trans-unit> 863 </trans-unit>
865 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 864 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
866 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 865 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
867 <target>Indica el compte de Twitter del lloc web o plataforma en què es va publicar el contingut.</target> 866 <target>Indica el compte de Twitter del lloc web o plataforma en què es va publicar el contingut.</target>
868 <context-group name="null"> 867 <context-group name="null">
869 <context context-type="linenumber">144</context> 868 <context context-type="linenumber">142</context>
870 </context-group> 869 </context-group>
871 </trans-unit> 870 </trans-unit>
872 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 871 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
873 <source>Instance whitelisted by Twitter</source> 872 <source>Instance whitelisted by Twitter</source>
874 <target>Instància a la llista blanca de Twitter</target> 873 <target>Instància a la llista blanca de Twitter</target>
875 <context-group name="null"> 874 <context-group name="null">
876 <context context-type="linenumber">159</context> 875 <context context-type="linenumber">155</context>
877 </context-group> 876 </context-group>
878 </trans-unit> 877 </trans-unit>
879 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 878 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -884,91 +883,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
884Si la instància no es troba a la llista blanca, utilitzem una targeta d'enllaç d'imatge que redirigirà a la teva instància de PeerTube.&lt;br /&gt;&lt;br /&gt; 883Si la instància no es troba a la llista blanca, utilitzem una targeta d'enllaç d'imatge que redirigirà a la teva instància de PeerTube.&lt;br /&gt;&lt;br /&gt;
885Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la teva instància (https://exemple.com/videos/veure/exemple) a &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; per comprovar si la teva instància és a la llista blanca.</target> 884Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la teva instància (https://exemple.com/videos/veure/exemple) a &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; per comprovar si la teva instància és a la llista blanca.</target>
886 <context-group name="null"> 885 <context-group name="null">
887 <context context-type="linenumber">162</context> 886 <context context-type="linenumber">156</context>
888 </context-group> 887 </context-group>
889 </trans-unit> 888 </trans-unit>
890 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 889 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
891 <source>Services</source> 890 <source>Services</source>
892 <target>Serveis</target> 891 <target>Serveis</target>
893 <context-group name="null"> 892 <context-group name="null">
894 <context context-type="linenumber">136</context> 893 <context context-type="linenumber">134</context>
895 </context-group> 894 </context-group>
896 </trans-unit> 895 </trans-unit>
897 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 896 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
898 <source>Transcoding</source> 897 <source>Transcoding</source>
899 <target>Transcodificació</target> 898 <target>Transcodificació</target>
900 <context-group name="null"> 899 <context-group name="null">
901 <context context-type="linenumber">172</context> 900 <context context-type="linenumber">164</context>
902 </context-group> 901 </context-group>
903 </trans-unit> 902 </trans-unit>
904 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 903 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
905 <source>Transcoding enabled</source> 904 <source>Transcoding enabled</source>
906 <target>Transcodificació activada</target> 905 <target>Transcodificació activada</target>
907 <context-group name="null"> 906 <context-group name="null">
908 <context context-type="linenumber">178</context> 907 <context context-type="linenumber">168</context>
909 </context-group> 908 </context-group>
910 </trans-unit> 909 </trans-unit>
911 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 910 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
912 <source>If you disable transcoding, many videos from your users will not work!</source> 911 <source>If you disable transcoding, many videos from your users will not work!</source>
913 <target>Si desactives la transcodificació, molts vídeos dels teus usuaris no funcionaran.</target> 912 <target>Si desactives la transcodificació, molts vídeos dels teus usuaris no funcionaran.</target>
914 <context-group name="null"> 913 <context-group name="null">
915 <context context-type="linenumber">180</context> 914 <context context-type="linenumber">169</context>
916 </context-group> 915 </context-group>
917 </trans-unit> 916 </trans-unit>
918 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 917 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
919 <source>Transcoding threads</source> 918 <source>Transcoding threads</source>
920 <target>Subprocessos per la transcodificació</target> 919 <target>Subprocessos per la transcodificació</target>
921 <context-group name="null"> 920 <context-group name="null">
922 <context context-type="linenumber">186</context> 921 <context context-type="linenumber">175</context>
923 </context-group>
924 </trans-unit>
925 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
926 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
927 <target>Resolució <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> activada</target>
928 <context-group name="null">
929 <context context-type="linenumber">205</context>
930 </context-group>
931 </trans-unit>
932 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
933 <source>Cache</source>
934 <target>Memòria cau</target>
935 <context-group name="null">
936 <context context-type="linenumber">209</context>
937 </context-group> 922 </context-group>
938 </trans-unit> 923 </trans-unit>
939 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 924 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
940 <source>Previews cache size</source> 925 <source>Previews cache size</source>
941 <target>Memòria cau per a visualitzacions prèvies</target> 926 <target>Memòria cau per a visualitzacions prèvies</target>
942 <context-group name="null"> 927 <context-group name="null">
943 <context context-type="linenumber">212</context> 928 <context context-type="linenumber">207</context>
944 </context-group>
945 </trans-unit>
946 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
947 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
948 <target>Les visualitzacions prèvies no estan federades. Les obtenim directament des de la instància d'origen i les emmagatzemem en la memòria cau.</target>
949 <context-group name="null">
950 <context context-type="linenumber">215</context>
951 </context-group> 929 </context-group>
952 </trans-unit> 930 </trans-unit>
953 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 931 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
954 <source>Customizations</source> 932 <source>Customizations</source>
955 <target>Personalitzacions</target> 933 <target>Personalitzacions</target>
956 <context-group name="null"> 934 <context-group name="null">
957 <context context-type="linenumber">227</context> 935 <context context-type="linenumber">228</context>
958 </context-group> 936 </context-group>
959 </trans-unit> 937 </trans-unit>
960 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 938 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
961 <source>JavaScript</source> 939 <source>JavaScript</source>
962 <target>JavaScript</target> 940 <target>JavaScript</target>
963 <context-group name="null"> 941 <context-group name="null">
964 <context context-type="linenumber">230</context> 942 <context context-type="linenumber">231</context>
965 </context-group> 943 </context-group>
966 </trans-unit> 944 </trans-unit>
967 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 945 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
968 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 946 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
969 <target>Escriu directament el codi JavaScript.&lt;br /&gt;Exemple: &lt;pre&gt;console.log('la meva instància és sorprenent');&lt;/pre&gt;</target> 947 <target>Escriu directament el codi JavaScript.&lt;br /&gt;Exemple: &lt;pre&gt;console.log('la meva instància és sorprenent');&lt;/pre&gt;</target>
970 <context-group name="null"> 948 <context-group name="null">
971 <context context-type="linenumber">233</context> 949 <context context-type="linenumber">234</context>
972 </context-group> 950 </context-group>
973 </trans-unit> 951 </trans-unit>
974 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 952 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -1003,28 +981,28 @@ Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la
1003 &lt;/pre&gt; 981 &lt;/pre&gt;
1004 </target> 982 </target>
1005 <context-group name="null"> 983 <context-group name="null">
1006 <context context-type="linenumber">249</context> 984 <context context-type="linenumber">250</context>
1007 </context-group> 985 </context-group>
1008 </trans-unit> 986 </trans-unit>
1009 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 987 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1010 <source>Advanced configuration</source> 988 <source>Advanced configuration</source>
1011 <target>Configuració avançada</target> 989 <target>Configuració avançada</target>
1012 <context-group name="null"> 990 <context-group name="null">
1013 <context context-type="linenumber">170</context> 991 <context context-type="linenumber">162</context>
1014 </context-group> 992 </context-group>
1015 </trans-unit> 993 </trans-unit>
1016 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 994 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1017 <source>Update configuration</source> 995 <source>Update configuration</source>
1018 <target>Actualitza la configuració</target> 996 <target>Actualitza la configuració</target>
1019 <context-group name="null"> 997 <context-group name="null">
1020 <context context-type="linenumber">276</context> 998 <context context-type="linenumber">277</context>
1021 </context-group> 999 </context-group>
1022 </trans-unit> 1000 </trans-unit>
1023 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 1001 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1024 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 1002 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1025 <target>Sembla que la configuració no és vàlida. Cerca possibles errors a les diferents pestanyes.</target> 1003 <target>Sembla que la configuració no és vàlida. Cerca possibles errors a les diferents pestanyes.</target>
1026 <context-group name="null"> 1004 <context-group name="null">
1027 <context context-type="linenumber">277</context> 1005 <context context-type="linenumber">278</context>
1028 </context-group> 1006 </context-group>
1029 </trans-unit> 1007 </trans-unit>
1030 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1008 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1174,13 +1152,6 @@ Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la
1174 <context context-type="linenumber">19</context> 1152 <context context-type="linenumber">19</context>
1175 </context-group> 1153 </context-group>
1176 </trans-unit> 1154 </trans-unit>
1177 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1178 <source>Updated</source>
1179 <target>Actualitzat</target>
1180 <context-group name="null">
1181 <context context-type="linenumber">22</context>
1182 </context-group>
1183 </trans-unit>
1184 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1155 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1185 <source>Create user</source> 1156 <source>Create user</source>
1186 <target>Afegir usuari</target> 1157 <target>Afegir usuari</target>
@@ -1355,53 +1326,32 @@ Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la
1355 <context context-type="linenumber">7</context> 1326 <context context-type="linenumber">7</context>
1356 </context-group> 1327 </context-group>
1357 </trans-unit> 1328 </trans-unit>
1358 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1359 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1360 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscriptors</target>
1361 <context-group name="null">
1362 <context context-type="linenumber">9</context>
1363 </context-group>
1364 </trans-unit>
1365 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1366 <source>Change your avatar</source>
1367 <target>Canvia el teu avatar</target>
1368 <context-group name="null">
1369 <context context-type="linenumber">14</context>
1370 </context-group>
1371 </trans-unit>
1372 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1373 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1374 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, mida màxima: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1375 <context-group name="null">
1376 <context context-type="linenumber">17</context>
1377 </context-group>
1378 </trans-unit>
1379 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1329 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1380 <source>Video quota:</source> 1330 <source>Video quota:</source>
1381 <target>Quota de vídeo:</target> 1331 <target>Quota de vídeo:</target>
1382 <context-group name="null"> 1332 <context-group name="null">
1383 <context context-type="linenumber">20</context> 1333 <context context-type="linenumber">4</context>
1384 </context-group> 1334 </context-group>
1385 </trans-unit> 1335 </trans-unit>
1386 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1336 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1387 <source>Profile</source> 1337 <source>Profile</source>
1388 <target>Perfil</target> 1338 <target>Perfil</target>
1389 <context-group name="null"> 1339 <context-group name="null">
1390 <context context-type="linenumber">24</context> 1340 <context context-type="linenumber">8</context>
1391 </context-group> 1341 </context-group>
1392 </trans-unit> 1342 </trans-unit>
1393 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1343 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1394 <source>Video settings</source> 1344 <source>Video settings</source>
1395 <target>Ajustos de vídeo</target> 1345 <target>Ajustos de vídeo</target>
1396 <context-group name="null"> 1346 <context-group name="null">
1397 <context context-type="linenumber">31</context> 1347 <context context-type="linenumber">15</context>
1398 </context-group> 1348 </context-group>
1399 </trans-unit> 1349 </trans-unit>
1400 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1350 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1401 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1351 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1402 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions</target> 1352 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions</target>
1403 <context-group name="null"> 1353 <context-group name="null">
1404 <context context-type="linenumber">20</context> 1354 <context context-type="linenumber">19</context>
1405 </context-group> 1355 </context-group>
1406 </trans-unit> 1356 </trans-unit>
1407 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1357 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1429,14 +1379,7 @@ Marca aquesta casella, desa la configuració i prova amb una URL de vídeo de la
1429 <source>Create a video channel</source> 1379 <source>Create a video channel</source>
1430 <target>Crea un canal de vídeo</target> 1380 <target>Crea un canal de vídeo</target>
1431 <context-group name="null"> 1381 <context-group name="null">
1432 <context context-type="linenumber">1</context> 1382 <context context-type="linenumber">6</context>
1433 </context-group>
1434 </trans-unit>
1435 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1436 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1437 <target>Actualitza <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1438 <context-group name="null">
1439 <context context-type="linenumber">2</context>
1440 </context-group> 1383 </context-group>
1441 </trans-unit> 1384 </trans-unit>
1442 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1385 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1452,7 +1395,7 @@ When you will upload a video in this channel, the video support field will be au
1452 <target>Text breu per dir a la gent com poden donar suport al teu canal (plataforma de pertinença ...).S&lt;br /&gt;&lt;br /&gt; 1395 <target>Text breu per dir a la gent com poden donar suport al teu canal (plataforma de pertinença ...).S&lt;br /&gt;&lt;br /&gt;
1453Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplirà automàticament amb aquest text.</target> 1396Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplirà automàticament amb aquest text.</target>
1454 <context-group name="null"> 1397 <context-group name="null">
1455 <context context-type="linenumber">32</context> 1398 <context context-type="linenumber">36</context>
1456 </context-group> 1399 </context-group>
1457 </trans-unit> 1400 </trans-unit>
1458 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1401 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1487,14 +1430,14 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1487 <source>Automatically plays video</source> 1430 <source>Automatically plays video</source>
1488 <target>Reprodueix vídeo automàticament</target> 1431 <target>Reprodueix vídeo automàticament</target>
1489 <context-group name="null"> 1432 <context-group name="null">
1490 <context context-type="linenumber">24</context> 1433 <context context-type="linenumber">20</context>
1491 </context-group> 1434 </context-group>
1492 </trans-unit> 1435 </trans-unit>
1493 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1436 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1494 <source>Save</source> 1437 <source>Save</source>
1495 <target>Desa</target> 1438 <target>Desa</target>
1496 <context-group name="null"> 1439 <context-group name="null">
1497 <context context-type="linenumber">27</context> 1440 <context context-type="linenumber">23</context>
1498 </context-group> 1441 </context-group>
1499 </trans-unit> 1442 </trans-unit>
1500 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1443 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1504,6 +1447,13 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1504 <context context-type="linenumber">27</context> 1447 <context context-type="linenumber">27</context>
1505 </context-group> 1448 </context-group>
1506 </trans-unit> 1449 </trans-unit>
1450 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1451 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1452 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, mida màxima: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1453 <context-group name="null">
1454 <context context-type="linenumber">18</context>
1455 </context-group>
1456 </trans-unit>
1507 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1457 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1508 <source> 1458 <source>
1509 Sorry, but we couldn't find the page you were looking for. 1459 Sorry, but we couldn't find the page you were looking for.
@@ -1575,21 +1525,21 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1575 <source>Privacy</source> 1525 <source>Privacy</source>
1576 <target>Privacitat</target> 1526 <target>Privacitat</target>
1577 <context-group name="null"> 1527 <context-group name="null">
1578 <context context-type="linenumber">86</context> 1528 <context context-type="linenumber">139</context>
1579 </context-group> 1529 </context-group>
1580 </trans-unit> 1530 </trans-unit>
1581 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1531 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1582 <source>Publish will be available when upload is finished</source> 1532 <source>Publish will be available when upload is finished</source>
1583 <target>La publicació estarà disponible quan finalitzi la càrrega</target> 1533 <target>La publicació estarà disponible quan finalitzi la càrrega</target>
1584 <context-group name="null"> 1534 <context-group name="null">
1585 <context context-type="linenumber">53</context> 1535 <context context-type="linenumber">54</context>
1586 </context-group> 1536 </context-group>
1587 </trans-unit> 1537 </trans-unit>
1588 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1538 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1589 <source>Publish</source> 1539 <source>Publish</source>
1590 <target>Publica</target> 1540 <target>Publica</target>
1591 <context-group name="null"> 1541 <context-group name="null">
1592 <context context-type="linenumber">60</context> 1542 <context context-type="linenumber">61</context>
1593 </context-group> 1543 </context-group>
1594 </trans-unit> 1544 </trans-unit>
1595 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1545 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1603,7 +1553,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1603 <source>Tags</source> 1553 <source>Tags</source>
1604 <target>Etiquetes</target> 1554 <target>Etiquetes</target>
1605 <context-group name="null"> 1555 <context-group name="null">
1606 <context context-type="linenumber">15</context> 1556 <context context-type="linenumber">171</context>
1607 </context-group> 1557 </context-group>
1608 </trans-unit> 1558 </trans-unit>
1609 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1559 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1620,27 +1570,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1620 <context context-type="linenumber">24</context> 1570 <context context-type="linenumber">24</context>
1621 </context-group> 1571 </context-group>
1622 </trans-unit> 1572 </trans-unit>
1623 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1624 <source>Category</source>
1625 <target>Categoria</target>
1626 <context-group name="null">
1627 <context context-type="linenumber">44</context>
1628 </context-group>
1629 </trans-unit>
1630 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1631 <source>Licence</source>
1632 <target>Llicència</target>
1633 <context-group name="null">
1634 <context context-type="linenumber">58</context>
1635 </context-group>
1636 </trans-unit>
1637 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1638 <source>Language</source>
1639 <target>Llengua</target>
1640 <context-group name="null">
1641 <context context-type="linenumber">72</context>
1642 </context-group>
1643 </trans-unit>
1644 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1573 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1645 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1574 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1646 <target>Programa la publicació (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1575 <target>Programa la publicació (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1652,35 +1581,28 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1652 <source>This video contains mature or explicit content</source> 1581 <source>This video contains mature or explicit content</source>
1653 <target>Aquest vídeo conté contingut madur o explícit</target> 1582 <target>Aquest vídeo conté contingut madur o explícit</target>
1654 <context-group name="null"> 1583 <context-group name="null">
1655 <context context-type="linenumber">116</context> 1584 <context context-type="linenumber">115</context>
1656 </context-group> 1585 </context-group>
1657 </trans-unit> 1586 </trans-unit>
1658 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1587 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1659 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1588 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1660 <target>Alguns instàncies, de manera determinada, no mostren els vídeos que contenen contingut madur o explícit.</target> 1589 <target>Alguns instàncies, de manera determinada, no mostren els vídeos que contenen contingut madur o explícit.</target>
1661 <context-group name="null"> 1590 <context-group name="null">
1662 <context context-type="linenumber">119</context> 1591 <context context-type="linenumber">116</context>
1663 </context-group> 1592 </context-group>
1664 </trans-unit> 1593 </trans-unit>
1665 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1594 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1666 <source>Enable video comments</source> 1595 <source>Enable video comments</source>
1667 <target>Activa els comentaris de vídeo</target> 1596 <target>Activa els comentaris de vídeo</target>
1668 <context-group name="null"> 1597 <context-group name="null">
1669 <context context-type="linenumber">126</context> 1598 <context context-type="linenumber">121</context>
1670 </context-group> 1599 </context-group>
1671 </trans-unit> 1600 </trans-unit>
1672 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1601 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1673 <source>Wait transcoding before publishing the video</source> 1602 <source>Wait transcoding before publishing the video</source>
1674 <target>Espera la transcodificació abans de publicar el vídeo</target> 1603 <target>Espera la transcodificació abans de publicar el vídeo</target>
1675 <context-group name="null"> 1604 <context-group name="null">
1676 <context context-type="linenumber">132</context> 1605 <context context-type="linenumber">126</context>
1677 </context-group>
1678 </trans-unit>
1679 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1680 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1681 <target>Si decideixes no esperar la transcodificació abans de publicar el vídeo, no es podrà reproduir fins que no finalitzi.</target>
1682 <context-group name="null">
1683 <context context-type="linenumber">135</context>
1684 </context-group> 1606 </context-group>
1685 </trans-unit> 1607 </trans-unit>
1686 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1608 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1694,42 +1616,35 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1694 <source>Upload thumbnail</source> 1616 <source>Upload thumbnail</source>
1695 <target>Puja miniatura</target> 1617 <target>Puja miniatura</target>
1696 <context-group name="null"> 1618 <context-group name="null">
1697 <context context-type="linenumber">146</context> 1619 <context context-type="linenumber">186</context>
1698 </context-group> 1620 </context-group>
1699 </trans-unit> 1621 </trans-unit>
1700 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1622 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1701 <source>Upload preview</source> 1623 <source>Upload preview</source>
1702 <target>Previsualitza la càrrega</target> 1624 <target>Previsualitza la càrrega</target>
1703 <context-group name="null"> 1625 <context-group name="null">
1704 <context context-type="linenumber">153</context> 1626 <context context-type="linenumber">193</context>
1705 </context-group> 1627 </context-group>
1706 </trans-unit> 1628 </trans-unit>
1707 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1629 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1708 <source>Support</source> 1630 <source>Support</source>
1709 <target>Suporta</target> 1631 <target>Suporta</target>
1710 <context-group name="null"> 1632 <context-group name="null">
1711 <context context-type="linenumber">59</context> 1633 <context context-type="linenumber">67</context>
1712 </context-group> 1634 </context-group>
1713 </trans-unit> 1635 </trans-unit>
1714 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1636 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1715 <source>Short text to tell people how they can support you (membership platform...).</source> 1637 <source>Short text to tell people how they can support you (membership platform...).</source>
1716 <target>Text breu per dir a la gent com us poden ajudar (plataforma de pertinença ...).</target> 1638 <target>Text breu per dir a la gent com us poden ajudar (plataforma de pertinença ...).</target>
1717 <context-group name="null"> 1639 <context-group name="null">
1718 <context context-type="linenumber">160</context> 1640 <context context-type="linenumber">200</context>
1719 </context-group> 1641 </context-group>
1720 </trans-unit> 1642 </trans-unit>
1721 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1643 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1722 <source>Advanced settings</source> 1644 <source>Advanced settings</source>
1723 <target>Ajustos avançats</target> 1645 <target>Ajustos avançats</target>
1724 <context-group name="null"> 1646 <context-group name="null">
1725 <context context-type="linenumber">142</context> 1647 <context context-type="linenumber">182</context>
1726 </context-group>
1727 </trans-unit>
1728 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1729 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1730 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, mida màxima: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1731 <context-group name="null">
1732 <context context-type="linenumber">11</context>
1733 </context-group> 1648 </context-group>
1734 </trans-unit> 1649 </trans-unit>
1735 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1650 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1747,7 +1662,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1747 <source>Update</source> 1662 <source>Update</source>
1748 <target>Actualitza</target> 1663 <target>Actualitza</target>
1749 <context-group name="null"> 1664 <context-group name="null">
1750 <context context-type="linenumber">93</context> 1665 <context context-type="linenumber">101</context>
1751 </context-group> 1666 </context-group>
1752 </trans-unit> 1667 </trans-unit>
1753 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1668 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1757,32 +1672,18 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1757 <context context-type="linenumber">7</context> 1672 <context context-type="linenumber">7</context>
1758 </context-group> 1673 </context-group>
1759 </trans-unit> 1674 </trans-unit>
1760 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1761 <source>Torrent</source>
1762 <target>Torrent</target>
1763 <context-group name="null">
1764 <context context-type="linenumber">20</context>
1765 </context-group>
1766 </trans-unit>
1767 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1675 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1768 <source>Direct download</source> 1676 <source>Direct download</source>
1769 <target>Descàrrega directe</target> 1677 <target>Descàrrega directe</target>
1770 <context-group name="null"> 1678 <context-group name="null">
1771 <context context-type="linenumber">25</context> 1679 <context context-type="linenumber">20</context>
1772 </context-group>
1773 </trans-unit>
1774 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1775 <source>Torrent (magnet)</source>
1776 <target>Torrent (magnet)</target>
1777 <context-group name="null">
1778 <context context-type="linenumber">30</context>
1779 </context-group> 1680 </context-group>
1780 </trans-unit> 1681 </trans-unit>
1781 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1682 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1782 <source>Download</source> 1683 <source>Download</source>
1783 <target>Descàrrega</target> 1684 <target>Descàrrega</target>
1784 <context-group name="null"> 1685 <context-group name="null">
1785 <context context-type="linenumber">75</context> 1686 <context context-type="linenumber">83</context>
1786 </context-group> 1687 </context-group>
1787 </trans-unit> 1688 </trans-unit>
1788 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1689 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1821,7 +1722,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1821 <source>Share</source> 1722 <source>Share</source>
1822 <target>Comparteix</target> 1723 <target>Comparteix</target>
1823 <context-group name="null"> 1724 <context-group name="null">
1824 <context context-type="linenumber">64</context> 1725 <context context-type="linenumber">72</context>
1825 </context-group> 1726 </context-group>
1826 </trans-unit> 1727 </trans-unit>
1827 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1728 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1857,7 +1758,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1857 El vídeo s'està transcodificant, pot ser que no funcioni correctament. 1758 El vídeo s'està transcodificant, pot ser que no funcioni correctament.
1858 </target> 1759 </target>
1859 <context-group name="null"> 1760 <context-group name="null">
1860 <context context-type="linenumber">6</context> 1761 <context context-type="linenumber">11</context>
1861 </context-group> 1762 </context-group>
1862 </trans-unit> 1763 </trans-unit>
1863 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1764 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1868,7 +1769,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1868 Aquest vídeo es publicarà en <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1769 Aquest vídeo es publicarà en <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1869 </target> 1770 </target>
1870 <context-group name="null"> 1771 <context-group name="null">
1871 <context context-type="linenumber">10</context> 1772 <context context-type="linenumber">15</context>
1872 </context-group> 1773 </context-group>
1873 </trans-unit> 1774 </trans-unit>
1874 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1775 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1879,167 +1780,112 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
1879 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions 1780 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualitzacions
1880 </target> 1781 </target>
1881 <context-group name="null"> 1782 <context-group name="null">
1882 <context context-type="linenumber">21</context> 1783 <context context-type="linenumber">26</context>
1883 </context-group> 1784 </context-group>
1884 </trans-unit> 1785 </trans-unit>
1885 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1786 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1886 <source>Go the channel page</source> 1787 <source>Go the channel page</source>
1887 <target>Anar a la pàgina del canal</target> 1788 <target>Anar a la pàgina del canal</target>
1888 <context-group name="null"> 1789 <context-group name="null">
1889 <context context-type="linenumber">26</context> 1790 <context context-type="linenumber">31</context>
1890 </context-group>
1891 </trans-unit>
1892 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1893 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1894 <target>Pots subscriu-re''t a aquest compte mitjançant qualsevol instància del fedivers que sigui compatible amb ActivityPub. Per exemple, amb Mastodon o Pleroma, pots escriure en el quadre de cerca &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; i subscriu-re''t allà. S''està treballant en la subscripció com a usuari de PeerTube a &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1895 <context-group name="null">
1896 <context context-type="linenumber">30</context>
1897 </context-group> 1791 </context-group>
1898 </trans-unit> 1792 </trans-unit>
1899 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1793 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1900 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1794 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1901 <target>Per <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1795 <target>Per <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1902 <context-group name="null"> 1796 <context-group name="null">
1903 <context context-type="linenumber">35</context> 1797 <context context-type="linenumber">41</context>
1904 </context-group> 1798 </context-group>
1905 </trans-unit> 1799 </trans-unit>
1906 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1800 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1907 <source>Go to the account page</source> 1801 <source>Go to the account page</source>
1908 <target>Anar a la pàgina del compte</target> 1802 <target>Anar a la pàgina del compte</target>
1909 <context-group name="null"> 1803 <context-group name="null">
1910 <context context-type="linenumber">34</context> 1804 <context context-type="linenumber">40</context>
1805 </context-group>
1806 </trans-unit>
1807 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1808 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1809 <target>Pots subscriu-re''t a aquest compte mitjançant qualsevol instància del fedivers que sigui compatible amb ActivityPub. Per exemple, amb Mastodon o Pleroma, pots escriure en el quadre de cerca &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; i subscriu-re''t allà. S''està treballant en la subscripció com a usuari de PeerTube a &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1810 <context-group name="null">
1811 <context context-type="linenumber">45</context>
1911 </context-group> 1812 </context-group>
1912 </trans-unit> 1813 </trans-unit>
1913 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1814 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1914 <source>Like this video</source> 1815 <source>Like this video</source>
1915 <target>M'agrada aquest vídeo</target> 1816 <target>M'agrada aquest vídeo</target>
1916 <context-group name="null"> 1817 <context-group name="null">
1917 <context context-type="linenumber">47</context> 1818 <context context-type="linenumber">55</context>
1918 </context-group> 1819 </context-group>
1919 </trans-unit> 1820 </trans-unit>
1920 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1821 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1921 <source>Dislike this video</source> 1822 <source>Dislike this video</source>
1922 <target>No m'agrada aquest vídeo</target> 1823 <target>No m'agrada aquest vídeo</target>
1923 <context-group name="null"> 1824 <context-group name="null">
1924 <context context-type="linenumber">54</context> 1825 <context context-type="linenumber">62</context>
1925 </context-group> 1826 </context-group>
1926 </trans-unit> 1827 </trans-unit>
1927 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1828 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1928 <source>Download the video</source> 1829 <source>Download the video</source>
1929 <target>Descarrega el vídeo</target> 1830 <target>Descarrega el vídeo</target>
1930 <context-group name="null"> 1831 <context-group name="null">
1931 <context context-type="linenumber">74</context> 1832 <context context-type="linenumber">82</context>
1932 </context-group> 1833 </context-group>
1933 </trans-unit> 1834 </trans-unit>
1934 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1835 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1935 <source>Report</source> 1836 <source>Report</source>
1936 <target>Reporta</target> 1837 <target>Reporta</target>
1937 <context-group name="null"> 1838 <context-group name="null">
1938 <context context-type="linenumber">81</context> 1839 <context context-type="linenumber">89</context>
1939 </context-group> 1840 </context-group>
1940 </trans-unit> 1841 </trans-unit>
1941 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1842 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1942 <source>Report this video</source> 1843 <source>Report this video</source>
1943 <target>Reporta aquest vídeo</target> 1844 <target>Reporta aquest vídeo</target>
1944 <context-group name="null"> 1845 <context-group name="null">
1945 <context context-type="linenumber">80</context> 1846 <context context-type="linenumber">88</context>
1946 </context-group> 1847 </context-group>
1947 </trans-unit> 1848 </trans-unit>
1948 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1849 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1949 <source>Blacklist</source> 1850 <source>Blacklist</source>
1950 <target>Llista negra</target> 1851 <target>Llista negra</target>
1951 <context-group name="null"> 1852 <context-group name="null">
1952 <context context-type="linenumber">87</context> 1853 <context context-type="linenumber">95</context>
1953 </context-group> 1854 </context-group>
1954 </trans-unit> 1855 </trans-unit>
1955 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1856 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1956 <source>Blacklist this video</source> 1857 <source>Blacklist this video</source>
1957 <target>Llista negra d'aquest vídeo</target> 1858 <target>Llista negra d'aquest vídeo</target>
1958 <context-group name="null"> 1859 <context-group name="null">
1959 <context context-type="linenumber">86</context> 1860 <context context-type="linenumber">94</context>
1960 </context-group> 1861 </context-group>
1961 </trans-unit> 1862 </trans-unit>
1962 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1863 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1963 <source>Update this video</source> 1864 <source>Update this video</source>
1964 <target>Actualitza aquest vídeo</target> 1865 <target>Actualitza aquest vídeo</target>
1965 <context-group name="null"> 1866 <context-group name="null">
1966 <context context-type="linenumber">92</context> 1867 <context context-type="linenumber">100</context>
1967 </context-group> 1868 </context-group>
1968 </trans-unit> 1869 </trans-unit>
1969 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1870 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1970 <source>Delete this video</source> 1871 <source>Delete this video</source>
1971 <target>Esborra aquest vídeo</target> 1872 <target>Esborra aquest vídeo</target>
1972 <context-group name="null"> 1873 <context-group name="null">
1973 <context context-type="linenumber">98</context> 1874 <context context-type="linenumber">106</context>
1974 </context-group> 1875 </context-group>
1975 </trans-unit> 1876 </trans-unit>
1976 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1877 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1977 <source>Show more</source> 1878 <source>Show more</source>
1978 <target>Veure més</target> 1879 <target>Veure més</target>
1979 <context-group name="null"> 1880 <context-group name="null">
1980 <context context-type="linenumber">118</context> 1881 <context context-type="linenumber">126</context>
1981 </context-group> 1882 </context-group>
1982 </trans-unit> 1883 </trans-unit>
1983 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1884 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1984 <source>Show less</source> 1885 <source>Show less</source>
1985 <target>Veure menys</target> 1886 <target>Veure menys</target>
1986 <context-group name="null"> 1887 <context-group name="null">
1987 <context context-type="linenumber">124</context> 1888 <context context-type="linenumber">132</context>
1988 </context-group>
1989 </trans-unit>
1990 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1991 <source>
1992 Privacy
1993 </source>
1994 <target>
1995 Privacitat
1996 </target>
1997 <context-group name="null">
1998 <context context-type="linenumber">131</context>
1999 </context-group>
2000 </trans-unit>
2001 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
2002 <source>
2003 Category
2004 </source>
2005 <target>
2006 Categoria
2007 </target>
2008 <context-group name="null">
2009 <context context-type="linenumber">140</context>
2010 </context-group>
2011 </trans-unit>
2012 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2013 <source>
2014 Licence
2015 </source>
2016 <target>
2017 Llicència
2018 </target>
2019 <context-group name="null">
2020 <context context-type="linenumber">149</context>
2021 </context-group>
2022 </trans-unit>
2023 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2024 <source>
2025 Language
2026 </source>
2027 <target>
2028 Llengua
2029 </target>
2030 <context-group name="null">
2031 <context context-type="linenumber">158</context>
2032 </context-group>
2033 </trans-unit>
2034 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2035 <source>
2036 Tags
2037 </source>
2038 <target>
2039 Etiquetes
2040 </target>
2041 <context-group name="null">
2042 <context context-type="linenumber">167</context>
2043 </context-group> 1889 </context-group>
2044 </trans-unit> 1890 </trans-unit>
2045 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1891 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2050,24 +1896,13 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
2050 Altres vídeos 1896 Altres vídeos
2051 </target> 1897 </target>
2052 <context-group name="null"> 1898 <context-group name="null">
2053 <context context-type="linenumber">181</context> 1899 <context context-type="linenumber">183</context>
2054 </context-group> 1900 </context-group>
2055 </trans-unit> 1901 </trans-unit>
2056 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1902 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2057 <source>Friendly Reminder:</source> 1903 <source>Friendly Reminder:</source>
2058 <target>Recordatori amistós:</target> 1904 <target>Recordatori amistós:</target>
2059 <context-group name="null"> 1905 <context-group name="null">
2060 <context context-type="linenumber">193</context>
2061 </context-group>
2062 </trans-unit>
2063 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2064 <source>
2065 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2066 </source>
2067 <target>
2068 El sistema de compartició utilitzat per aquest vídeo implica que part de la informació tècnica sobre el teu sistema (com ara una adreça IP pública) es pot accedir de forma pública.
2069 </target>
2070 <context-group name="null">
2071 <context context-type="linenumber">195</context> 1906 <context context-type="linenumber">195</context>
2072 </context-group> 1907 </context-group>
2073 </trans-unit> 1908 </trans-unit>
@@ -2075,14 +1910,14 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
2075 <source>More information</source> 1910 <source>More information</source>
2076 <target>Més informació</target> 1911 <target>Més informació</target>
2077 <context-group name="null"> 1912 <context-group name="null">
2078 <context context-type="linenumber">198</context> 1913 <context context-type="linenumber">200</context>
2079 </context-group> 1914 </context-group>
2080 </trans-unit> 1915 </trans-unit>
2081 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1916 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2082 <source>Get more information</source> 1917 <source>Get more information</source>
2083 <target>Obtenir més informació</target> 1918 <target>Obtenir més informació</target>
2084 <context-group name="null"> 1919 <context-group name="null">
2085 <context context-type="linenumber">198</context> 1920 <context context-type="linenumber">200</context>
2086 </context-group> 1921 </context-group>
2087 </trans-unit> 1922 </trans-unit>
2088 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1923 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2093,7 +1928,7 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
2093 D'acord 1928 D'acord
2094 </target> 1929 </target>
2095 <context-group name="null"> 1930 <context-group name="null">
2096 <context context-type="linenumber">201</context> 1931 <context context-type="linenumber">203</context>
2097 </context-group> 1932 </context-group>
2098 </trans-unit> 1933 </trans-unit>
2099 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1934 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2565,13 +2400,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
2565 <context context-type="linenumber">1</context> 2400 <context context-type="linenumber">1</context>
2566 </context-group> 2401 </context-group>
2567 </trans-unit> 2402 </trans-unit>
2568 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2569 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2570 <target>S''enviarà un correu electrònic amb les instruccions de restabliment de la contrasenya a <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</target>
2571 <context-group name="null">
2572 <context context-type="linenumber">1</context>
2573 </context-group>
2574 </trans-unit>
2575 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2403 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2576 <source>Unable to find user id or verification string.</source> 2404 <source>Unable to find user id or verification string.</source>
2577 <target>No es pot trobar l'identificador d'usuari ni la cadena de verificació.</target> 2405 <target>No es pot trobar l'identificador d'usuari ni la cadena de verificació.</target>
@@ -2586,6 +2414,20 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
2586 <context context-type="linenumber">1</context> 2414 <context context-type="linenumber">1</context>
2587 </context-group> 2415 </context-group>
2588 </trans-unit> 2416 </trans-unit>
2417 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2418 <source>Today</source>
2419 <target>Avui</target>
2420 <context-group name="null">
2421 <context context-type="linenumber">1</context>
2422 </context-group>
2423 </trans-unit>
2424 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2425 <source>Search</source>
2426 <target>Cerca</target>
2427 <context-group name="null">
2428 <context context-type="linenumber">1</context>
2429 </context-group>
2430 </trans-unit>
2589 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2431 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2590 <source>Instance name is required.</source> 2432 <source>Instance name is required.</source>
2591 <target>El nom de la instància és obligatori.</target> 2433 <target>El nom de la instància és obligatori.</target>
@@ -3272,13 +3114,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
3272 <context context-type="linenumber">1</context> 3114 <context context-type="linenumber">1</context>
3273 </context-group> 3115 </context-group>
3274 </trans-unit> 3116 </trans-unit>
3275 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3276 <source>Today</source>
3277 <target>Avui</target>
3278 <context-group name="null">
3279 <context context-type="linenumber">1</context>
3280 </context-group>
3281 </trans-unit>
3282 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3117 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3283 <source>Clear</source> 3118 <source>Clear</source>
3284 <target>Clar</target> 3119 <target>Clar</target>
@@ -3482,13 +3317,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
3482 <context context-type="linenumber">1</context> 3317 <context context-type="linenumber">1</context>
3483 </context-group> 3318 </context-group>
3484 </trans-unit> 3319 </trans-unit>
3485 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3486 <source>This image is too large.</source>
3487 <target>Aquesta imatge és massa gran.</target>
3488 <context-group name="null">
3489 <context context-type="linenumber">1</context>
3490 </context-group>
3491 </trans-unit>
3492 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3320 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3493 <source>Your video was uploaded in your account and is private.</source> 3321 <source>Your video was uploaded in your account and is private.</source>
3494 <target>El teu vídeo s'ha penjat al teu compte i és privat.</target> 3322 <target>El teu vídeo s'ha penjat al teu compte i és privat.</target>
@@ -3524,13 +3352,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
3524 <context context-type="linenumber">1</context> 3352 <context context-type="linenumber">1</context>
3525 </context-group> 3353 </context-group>
3526 </trans-unit> 3354 </trans-unit>
3527 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3528 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3529 <target>Ho sento, però PeerTube no pot manejar vídeos&gt; 4 GB</target>
3530 <context-group name="null">
3531 <context context-type="linenumber">1</context>
3532 </context-group>
3533 </trans-unit>
3534 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3355 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3535 <source>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 }}"/>)</source> 3356 <source>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 }}"/>)</source>
3536 <target>La teva quota de vídeo s''ha superat amb aquest vídeo (video size: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3357 <target>La teva quota de vídeo s''ha superat amb aquest vídeo (video size: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, quota: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3601,13 +3422,6 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
3601 <context context-type="linenumber">1</context> 3422 <context context-type="linenumber">1</context>
3602 </context-group> 3423 </context-group>
3603 </trans-unit> 3424 </trans-unit>
3604 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3605 <source>Cannot fetch video from server, maybe down.</source>
3606 <target>No es pot obtenir el vídeo del servidor, potser està caigut.</target>
3607 <context-group name="null">
3608 <context context-type="linenumber">1</context>
3609 </context-group>
3610 </trans-unit>
3611 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3425 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3612 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3426 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3613 <target>Aquest vídeo conté contingut madur o explícit. Estàs segur que el vols veure?</target> 3427 <target>Aquest vídeo conté contingut madur o explícit. Estàs segur que el vols veure?</target>
@@ -3622,12 +3436,5 @@ Quan pugis un vídeo en aquest canal, el camp d'assistència de vídeo s'omplir
3622 <context context-type="linenumber">1</context> 3436 <context context-type="linenumber">1</context>
3623 </context-group> 3437 </context-group>
3624 </trans-unit> 3438 </trans-unit>
3625 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3626 <source>Search</source>
3627 <target>Cerca</target>
3628 <context-group name="null">
3629 <context context-type="linenumber">1</context>
3630 </context-group>
3631 </trans-unit>
3632 </body> 3439 </body>
3633 </file></xliff> \ No newline at end of file 3440 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_cs_CZ.xml b/client/src/locale/target/angular_cs_CZ.xml
index 53a6ca3df..bfc58c07c 100644
--- a/client/src/locale/target/angular_cs_CZ.xml
+++ b/client/src/locale/target/angular_cs_CZ.xml
@@ -11,14 +11,14 @@
11 Zrušit 11 Zrušit
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Získat pomoc</target> 47 <target>Získat pomoc</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Heslo</target> 108 <target>Heslo</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -330,6 +330,27 @@
330 <context context-type="linenumber">9</context> 330 <context context-type="linenumber">9</context>
331 </context-group> 331 </context-group>
332 </trans-unit> 332 </trans-unit>
333 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
334 <source>Category</source>
335 <target>Kategorie</target>
336 <context-group name="null">
337 <context context-type="linenumber">144</context>
338 </context-group>
339 </trans-unit>
340 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
341 <source>Licence</source>
342 <target>Licence</target>
343 <context-group name="null">
344 <context context-type="linenumber">153</context>
345 </context-group>
346 </trans-unit>
347 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
348 <source>Language</source>
349 <target>Jazyk</target>
350 <context-group name="null">
351 <context context-type="linenumber">162</context>
352 </context-group>
353 </trans-unit>
333 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 354 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
334 <source>No results.</source> 355 <source>No results.</source>
335 <target>Žádné výsledky.</target> 356 <target>Žádné výsledky.</target>
@@ -548,21 +569,6 @@
548 <context context-type="linenumber">51</context> 569 <context context-type="linenumber">51</context>
549 </context-group> 570 </context-group>
550 </trans-unit> 571 </trans-unit>
551 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
552 <source>
553 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
554 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.
555 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
556 </source>
557 <target>
558 Webový peeři nejsou odesílání přímo trackerem: jelikož používáme WebRTC uvnitř prohlížeče, protokol je odlišný od klasického BitTorrentu.
559 Když jste ve webovém prohlížeči, odešlete signál obsahující vaši IP adresu do trackeru, který náhodně vybírá ostatní uživatele, kteří budou předávat informace.
560 Pro více informací si přečtěte <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>tento dokument<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
561 </target>
562 <context-group name="null">
563 <context context-type="linenumber">55</context>
564 </context-group>
565 </trans-unit>
566 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 572 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
567 <source> 573 <source>
568 The worst-case scenario of an average person spying on their friends is quite unlikely. 574 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -576,13 +582,6 @@
576 <context context-type="linenumber">62</context> 582 <context context-type="linenumber">62</context>
577 </context-group> 583 </context-group>
578 </trans-unit> 584 </trans-unit>
579 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
580 <source>How does PeerTube compares to YouTube?</source>
581 <target>Jak si stojí PeerTube ve srovnání s YouTube?</target>
582 <context-group name="null">
583 <context context-type="linenumber">67</context>
584 </context-group>
585 </trans-unit>
586 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 585 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
587 <source> 586 <source>
588 The threats to privacy in YouTube are different from PeerTube's. 587 The threats to privacy in YouTube are different from PeerTube's.
@@ -798,42 +797,42 @@
798 <source>Signup enabled</source> 797 <source>Signup enabled</source>
799 <target>Povolit registrace</target> 798 <target>Povolit registrace</target>
800 <context-group name="null"> 799 <context-group name="null">
801 <context context-type="linenumber">92</context> 800 <context context-type="linenumber">90</context>
802 </context-group> 801 </context-group>
803 </trans-unit> 802 </trans-unit>
804 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 803 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
805 <source>Signup limit</source> 804 <source>Signup limit</source>
806 <target>Limit registrací</target> 805 <target>Limit registrací</target>
807 <context-group name="null"> 806 <context-group name="null">
808 <context context-type="linenumber">96</context> 807 <context context-type="linenumber">94</context>
809 </context-group> 808 </context-group>
810 </trans-unit> 809 </trans-unit>
811 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 810 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
812 <source>Administrator</source> 811 <source>Administrator</source>
813 <target>Administrátor</target> 812 <target>Administrátor</target>
814 <context-group name="null"> 813 <context-group name="null">
815 <context context-type="linenumber">106</context> 814 <context context-type="linenumber">104</context>
816 </context-group> 815 </context-group>
817 </trans-unit> 816 </trans-unit>
818 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 817 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
819 <source>Admin email</source> 818 <source>Admin email</source>
820 <target>Email administrátora</target> 819 <target>Email administrátora</target>
821 <context-group name="null"> 820 <context-group name="null">
822 <context context-type="linenumber">109</context> 821 <context context-type="linenumber">107</context>
823 </context-group> 822 </context-group>
824 </trans-unit> 823 </trans-unit>
825 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 824 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
826 <source>Users</source> 825 <source>Users</source>
827 <target>Uživatelé</target> 826 <target>Uživatelé</target>
828 <context-group name="null"> 827 <context-group name="null">
829 <context context-type="linenumber">119</context> 828 <context context-type="linenumber">117</context>
830 </context-group> 829 </context-group>
831 </trans-unit> 830 </trans-unit>
832 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 831 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
833 <source>User default video quota</source> 832 <source>User default video quota</source>
834 <target>Výchozí limit na uživatele</target> 833 <target>Výchozí limit na uživatele</target>
835 <context-group name="null"> 834 <context-group name="null">
836 <context context-type="linenumber">122</context> 835 <context context-type="linenumber">120</context>
837 </context-group> 836 </context-group>
838 </trans-unit> 837 </trans-unit>
839 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 838 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -847,28 +846,28 @@
847 <source>Twitter</source> 846 <source>Twitter</source>
848 <target>Twitter</target> 847 <target>Twitter</target>
849 <context-group name="null"> 848 <context-group name="null">
850 <context context-type="linenumber">138</context> 849 <context context-type="linenumber">136</context>
851 </context-group> 850 </context-group>
852 </trans-unit> 851 </trans-unit>
853 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 852 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
854 <source>Your Twitter username</source> 853 <source>Your Twitter username</source>
855 <target>Váš účet na Twitteru</target> 854 <target>Váš účet na Twitteru</target>
856 <context-group name="null"> 855 <context-group name="null">
857 <context context-type="linenumber">141</context> 856 <context context-type="linenumber">139</context>
858 </context-group> 857 </context-group>
859 </trans-unit> 858 </trans-unit>
860 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 859 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
861 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 860 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
862 <target>Uveďte Twitter účet stránky nebo služby, na které byl obsah publikován.</target> 861 <target>Uveďte Twitter účet stránky nebo služby, na které byl obsah publikován.</target>
863 <context-group name="null"> 862 <context-group name="null">
864 <context context-type="linenumber">144</context> 863 <context context-type="linenumber">142</context>
865 </context-group> 864 </context-group>
866 </trans-unit> 865 </trans-unit>
867 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 866 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
868 <source>Instance whitelisted by Twitter</source> 867 <source>Instance whitelisted by Twitter</source>
869 <target>Twitter povolil tuto instanci</target> 868 <target>Twitter povolil tuto instanci</target>
870 <context-group name="null"> 869 <context-group name="null">
871 <context context-type="linenumber">159</context> 870 <context context-type="linenumber">155</context>
872 </context-group> 871 </context-group>
873 </trans-unit> 872 </trans-unit>
874 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 873 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -879,91 +878,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
879Pokud instance není povolena, bude zobrazen obrázek vedoucí jako link na vaši PeerTube instanci.&lt;br /&gt;&lt;br /&gt; 878Pokud instance není povolena, bude zobrazen obrázek vedoucí jako link na vaši PeerTube instanci.&lt;br /&gt;&lt;br /&gt;
880Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z vaší instance (https://example.com/videos/watch/blabla) na &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; pro zjištění, zda je vaše instance povolená.</target> 879Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z vaší instance (https://example.com/videos/watch/blabla) na &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; pro zjištění, zda je vaše instance povolená.</target>
881 <context-group name="null"> 880 <context-group name="null">
882 <context context-type="linenumber">162</context> 881 <context context-type="linenumber">156</context>
883 </context-group> 882 </context-group>
884 </trans-unit> 883 </trans-unit>
885 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 884 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
886 <source>Services</source> 885 <source>Services</source>
887 <target>Služby</target> 886 <target>Služby</target>
888 <context-group name="null"> 887 <context-group name="null">
889 <context context-type="linenumber">136</context> 888 <context context-type="linenumber">134</context>
890 </context-group> 889 </context-group>
891 </trans-unit> 890 </trans-unit>
892 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 891 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
893 <source>Transcoding</source> 892 <source>Transcoding</source>
894 <target>Překódování</target> 893 <target>Překódování</target>
895 <context-group name="null"> 894 <context-group name="null">
896 <context context-type="linenumber">172</context> 895 <context context-type="linenumber">164</context>
897 </context-group> 896 </context-group>
898 </trans-unit> 897 </trans-unit>
899 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 898 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
900 <source>Transcoding enabled</source> 899 <source>Transcoding enabled</source>
901 <target>Překódování povoleno</target> 900 <target>Překódování povoleno</target>
902 <context-group name="null"> 901 <context-group name="null">
903 <context context-type="linenumber">178</context> 902 <context context-type="linenumber">168</context>
904 </context-group> 903 </context-group>
905 </trans-unit> 904 </trans-unit>
906 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 905 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
907 <source>If you disable transcoding, many videos from your users will not work!</source> 906 <source>If you disable transcoding, many videos from your users will not work!</source>
908 <target>Pokud zakážete překódování, mnoho videí od vašich uživatelů nebude fungovat!</target> 907 <target>Pokud zakážete překódování, mnoho videí od vašich uživatelů nebude fungovat!</target>
909 <context-group name="null"> 908 <context-group name="null">
910 <context context-type="linenumber">180</context> 909 <context context-type="linenumber">169</context>
911 </context-group> 910 </context-group>
912 </trans-unit> 911 </trans-unit>
913 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 912 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
914 <source>Transcoding threads</source> 913 <source>Transcoding threads</source>
915 <target>Vlákna na překódování</target> 914 <target>Vlákna na překódování</target>
916 <context-group name="null"> 915 <context-group name="null">
917 <context context-type="linenumber">186</context> 916 <context context-type="linenumber">175</context>
918 </context-group>
919 </trans-unit>
920 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
921 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
922 <target>Rozlišení <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> povoleno</target>
923 <context-group name="null">
924 <context context-type="linenumber">205</context>
925 </context-group>
926 </trans-unit>
927 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
928 <source>Cache</source>
929 <target>Mezipaměť</target>
930 <context-group name="null">
931 <context context-type="linenumber">209</context>
932 </context-group> 917 </context-group>
933 </trans-unit> 918 </trans-unit>
934 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 919 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
935 <source>Previews cache size</source> 920 <source>Previews cache size</source>
936 <target>Velikost mezipaměti náhledů</target> 921 <target>Velikost mezipaměti náhledů</target>
937 <context-group name="null"> 922 <context-group name="null">
938 <context context-type="linenumber">212</context> 923 <context context-type="linenumber">207</context>
939 </context-group>
940 </trans-unit>
941 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
942 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
943 <target>Náhledy nejsou federovány. Získáváme je přímo z původní instance a ukládáme do mezipaměti.</target>
944 <context-group name="null">
945 <context context-type="linenumber">215</context>
946 </context-group> 924 </context-group>
947 </trans-unit> 925 </trans-unit>
948 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 926 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
949 <source>Customizations</source> 927 <source>Customizations</source>
950 <target>Přizpůsobení</target> 928 <target>Přizpůsobení</target>
951 <context-group name="null"> 929 <context-group name="null">
952 <context context-type="linenumber">227</context> 930 <context context-type="linenumber">228</context>
953 </context-group> 931 </context-group>
954 </trans-unit> 932 </trans-unit>
955 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 933 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
956 <source>JavaScript</source> 934 <source>JavaScript</source>
957 <target>JavaScript</target> 935 <target>JavaScript</target>
958 <context-group name="null"> 936 <context-group name="null">
959 <context context-type="linenumber">230</context> 937 <context context-type="linenumber">231</context>
960 </context-group> 938 </context-group>
961 </trans-unit> 939 </trans-unit>
962 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 940 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
963 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 941 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
964 <target>Pište přímo JavaScript kód.&lt;br /&gt;Například: &lt;pre&gt;console.log('moje instance je úžasná');&lt;/pre&gt;</target> 942 <target>Pište přímo JavaScript kód.&lt;br /&gt;Například: &lt;pre&gt;console.log('moje instance je úžasná');&lt;/pre&gt;</target>
965 <context-group name="null"> 943 <context-group name="null">
966 <context context-type="linenumber">233</context> 944 <context context-type="linenumber">234</context>
967 </context-group> 945 </context-group>
968 </trans-unit> 946 </trans-unit>
969 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 947 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -998,28 +976,28 @@ Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z va
998 &lt;/pre&gt; 976 &lt;/pre&gt;
999 </target> 977 </target>
1000 <context-group name="null"> 978 <context-group name="null">
1001 <context context-type="linenumber">249</context> 979 <context context-type="linenumber">250</context>
1002 </context-group> 980 </context-group>
1003 </trans-unit> 981 </trans-unit>
1004 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 982 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1005 <source>Advanced configuration</source> 983 <source>Advanced configuration</source>
1006 <target>Pokročilá nastavení</target> 984 <target>Pokročilá nastavení</target>
1007 <context-group name="null"> 985 <context-group name="null">
1008 <context context-type="linenumber">170</context> 986 <context context-type="linenumber">162</context>
1009 </context-group> 987 </context-group>
1010 </trans-unit> 988 </trans-unit>
1011 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 989 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1012 <source>Update configuration</source> 990 <source>Update configuration</source>
1013 <target>Aktualizovat nastavení</target> 991 <target>Aktualizovat nastavení</target>
1014 <context-group name="null"> 992 <context-group name="null">
1015 <context context-type="linenumber">276</context> 993 <context context-type="linenumber">277</context>
1016 </context-group> 994 </context-group>
1017 </trans-unit> 995 </trans-unit>
1018 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 996 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1019 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 997 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1020 <target>Zdá se, že vaše konfigurace není validní. Prosím, vyhledejte potencialní chyby v jiné záložce.</target> 998 <target>Zdá se, že vaše konfigurace není validní. Prosím, vyhledejte potencialní chyby v jiné záložce.</target>
1021 <context-group name="null"> 999 <context-group name="null">
1022 <context context-type="linenumber">277</context> 1000 <context context-type="linenumber">278</context>
1023 </context-group> 1001 </context-group>
1024 </trans-unit> 1002 </trans-unit>
1025 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1003 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1169,13 +1147,6 @@ Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z va
1169 <context context-type="linenumber">19</context> 1147 <context context-type="linenumber">19</context>
1170 </context-group> 1148 </context-group>
1171 </trans-unit> 1149 </trans-unit>
1172 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1173 <source>Updated</source>
1174 <target>Aktualizováno</target>
1175 <context-group name="null">
1176 <context context-type="linenumber">22</context>
1177 </context-group>
1178 </trans-unit>
1179 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1150 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1180 <source>Create user</source> 1151 <source>Create user</source>
1181 <target>Vytvořit uživatele</target> 1152 <target>Vytvořit uživatele</target>
@@ -1350,53 +1321,32 @@ Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z va
1350 <context context-type="linenumber">7</context> 1321 <context context-type="linenumber">7</context>
1351 </context-group> 1322 </context-group>
1352 </trans-unit> 1323 </trans-unit>
1353 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1354 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1355 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> odběratelů</target>
1356 <context-group name="null">
1357 <context context-type="linenumber">9</context>
1358 </context-group>
1359 </trans-unit>
1360 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1361 <source>Change your avatar</source>
1362 <target>Změnit avatar</target>
1363 <context-group name="null">
1364 <context context-type="linenumber">14</context>
1365 </context-group>
1366 </trans-unit>
1367 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1368 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1369 <target>(typ souboru: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximální velikost: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1370 <context-group name="null">
1371 <context context-type="linenumber">17</context>
1372 </context-group>
1373 </trans-unit>
1374 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1324 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1375 <source>Video quota:</source> 1325 <source>Video quota:</source>
1376 <target>Limit na videa:</target> 1326 <target>Limit na videa:</target>
1377 <context-group name="null"> 1327 <context-group name="null">
1378 <context context-type="linenumber">20</context> 1328 <context context-type="linenumber">4</context>
1379 </context-group> 1329 </context-group>
1380 </trans-unit> 1330 </trans-unit>
1381 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1331 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1382 <source>Profile</source> 1332 <source>Profile</source>
1383 <target>Profil</target> 1333 <target>Profil</target>
1384 <context-group name="null"> 1334 <context-group name="null">
1385 <context context-type="linenumber">24</context> 1335 <context context-type="linenumber">8</context>
1386 </context-group> 1336 </context-group>
1387 </trans-unit> 1337 </trans-unit>
1388 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1338 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1389 <source>Video settings</source> 1339 <source>Video settings</source>
1390 <target>Nastavení videí</target> 1340 <target>Nastavení videí</target>
1391 <context-group name="null"> 1341 <context-group name="null">
1392 <context context-type="linenumber">31</context> 1342 <context context-type="linenumber">15</context>
1393 </context-group> 1343 </context-group>
1394 </trans-unit> 1344 </trans-unit>
1395 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1345 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1396 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1346 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1397 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí</target> 1347 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí</target>
1398 <context-group name="null"> 1348 <context-group name="null">
1399 <context context-type="linenumber">20</context> 1349 <context context-type="linenumber">19</context>
1400 </context-group> 1350 </context-group>
1401 </trans-unit> 1351 </trans-unit>
1402 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1352 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1424,14 +1374,7 @@ Zakšrtněne tuto možnost, uložte nastavení a vyzkoušejte adresu videa z va
1424 <source>Create a video channel</source> 1374 <source>Create a video channel</source>
1425 <target>Vytořit video kanál</target> 1375 <target>Vytořit video kanál</target>
1426 <context-group name="null"> 1376 <context-group name="null">
1427 <context context-type="linenumber">1</context> 1377 <context context-type="linenumber">6</context>
1428 </context-group>
1429 </trans-unit>
1430 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1431 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1432 <target>Aktualizovat <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1433 <context-group name="null">
1434 <context context-type="linenumber">2</context>
1435 </context-group> 1378 </context-group>
1436 </trans-unit> 1379 </trans-unit>
1437 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1380 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1447,7 +1390,7 @@ When you will upload a video in this channel, the video support field will be au
1447 <target>Krátký text, kterým sdělíte lidem, jak mohou podporovat tento kanál (členství...).&lt;br /&gt;&lt;br /&gt; 1390 <target>Krátký text, kterým sdělíte lidem, jak mohou podporovat tento kanál (členství...).&lt;br /&gt;&lt;br /&gt;
1448 Když nahrajete video na tento kanál, text bude přiložen.</target> 1391 Když nahrajete video na tento kanál, text bude přiložen.</target>
1449 <context-group name="null"> 1392 <context-group name="null">
1450 <context context-type="linenumber">32</context> 1393 <context context-type="linenumber">36</context>
1451 </context-group> 1394 </context-group>
1452 </trans-unit> 1395 </trans-unit>
1453 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1396 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1482,14 +1425,14 @@ When you will upload a video in this channel, the video support field will be au
1482 <source>Automatically plays video</source> 1425 <source>Automatically plays video</source>
1483 <target>Automaticky přehrávat videa</target> 1426 <target>Automaticky přehrávat videa</target>
1484 <context-group name="null"> 1427 <context-group name="null">
1485 <context context-type="linenumber">24</context> 1428 <context context-type="linenumber">20</context>
1486 </context-group> 1429 </context-group>
1487 </trans-unit> 1430 </trans-unit>
1488 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1431 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1489 <source>Save</source> 1432 <source>Save</source>
1490 <target>Uložit</target> 1433 <target>Uložit</target>
1491 <context-group name="null"> 1434 <context-group name="null">
1492 <context context-type="linenumber">27</context> 1435 <context context-type="linenumber">23</context>
1493 </context-group> 1436 </context-group>
1494 </trans-unit> 1437 </trans-unit>
1495 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1438 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1499,6 +1442,13 @@ When you will upload a video in this channel, the video support field will be au
1499 <context context-type="linenumber">27</context> 1442 <context context-type="linenumber">27</context>
1500 </context-group> 1443 </context-group>
1501 </trans-unit> 1444 </trans-unit>
1445 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1446 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1447 <target>(typ souboru: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximální velikost: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1448 <context-group name="null">
1449 <context context-type="linenumber">18</context>
1450 </context-group>
1451 </trans-unit>
1502 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1452 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1503 <source> 1453 <source>
1504 Sorry, but we couldn't find the page you were looking for. 1454 Sorry, but we couldn't find the page you were looking for.
@@ -1570,21 +1520,21 @@ When you will upload a video in this channel, the video support field will be au
1570 <source>Privacy</source> 1520 <source>Privacy</source>
1571 <target>Soukromí</target> 1521 <target>Soukromí</target>
1572 <context-group name="null"> 1522 <context-group name="null">
1573 <context context-type="linenumber">86</context> 1523 <context context-type="linenumber">139</context>
1574 </context-group> 1524 </context-group>
1575 </trans-unit> 1525 </trans-unit>
1576 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1526 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1577 <source>Publish will be available when upload is finished</source> 1527 <source>Publish will be available when upload is finished</source>
1578 <target>Publikovat lze jakmile bude dokončeno nahrávání</target> 1528 <target>Publikovat lze jakmile bude dokončeno nahrávání</target>
1579 <context-group name="null"> 1529 <context-group name="null">
1580 <context context-type="linenumber">53</context> 1530 <context context-type="linenumber">54</context>
1581 </context-group> 1531 </context-group>
1582 </trans-unit> 1532 </trans-unit>
1583 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1533 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1584 <source>Publish</source> 1534 <source>Publish</source>
1585 <target>Publikovat</target> 1535 <target>Publikovat</target>
1586 <context-group name="null"> 1536 <context-group name="null">
1587 <context context-type="linenumber">60</context> 1537 <context context-type="linenumber">61</context>
1588 </context-group> 1538 </context-group>
1589 </trans-unit> 1539 </trans-unit>
1590 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1540 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1598,7 +1548,7 @@ When you will upload a video in this channel, the video support field will be au
1598 <source>Tags</source> 1548 <source>Tags</source>
1599 <target>Tagy</target> 1549 <target>Tagy</target>
1600 <context-group name="null"> 1550 <context-group name="null">
1601 <context context-type="linenumber">15</context> 1551 <context context-type="linenumber">171</context>
1602 </context-group> 1552 </context-group>
1603 </trans-unit> 1553 </trans-unit>
1604 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1554 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1615,27 +1565,6 @@ When you will upload a video in this channel, the video support field will be au
1615 <context context-type="linenumber">24</context> 1565 <context context-type="linenumber">24</context>
1616 </context-group> 1566 </context-group>
1617 </trans-unit> 1567 </trans-unit>
1618 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1619 <source>Category</source>
1620 <target>Kategorie</target>
1621 <context-group name="null">
1622 <context context-type="linenumber">44</context>
1623 </context-group>
1624 </trans-unit>
1625 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1626 <source>Licence</source>
1627 <target>Licence</target>
1628 <context-group name="null">
1629 <context context-type="linenumber">58</context>
1630 </context-group>
1631 </trans-unit>
1632 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1633 <source>Language</source>
1634 <target>Jazyk</target>
1635 <context-group name="null">
1636 <context context-type="linenumber">72</context>
1637 </context-group>
1638 </trans-unit>
1639 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1568 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1640 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1569 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1641 <target>Naplánovat publikování (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1570 <target>Naplánovat publikování (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1647,35 +1576,28 @@ When you will upload a video in this channel, the video support field will be au
1647 <source>This video contains mature or explicit content</source> 1576 <source>This video contains mature or explicit content</source>
1648 <target>Video obsahující citlivý materiál</target> 1577 <target>Video obsahující citlivý materiál</target>
1649 <context-group name="null"> 1578 <context-group name="null">
1650 <context context-type="linenumber">116</context> 1579 <context context-type="linenumber">115</context>
1651 </context-group> 1580 </context-group>
1652 </trans-unit> 1581 </trans-unit>
1653 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1582 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1654 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1583 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1655 <target>Některé instance nezobrazují videa s citlivým materiálem.</target> 1584 <target>Některé instance nezobrazují videa s citlivým materiálem.</target>
1656 <context-group name="null"> 1585 <context-group name="null">
1657 <context context-type="linenumber">119</context> 1586 <context context-type="linenumber">116</context>
1658 </context-group> 1587 </context-group>
1659 </trans-unit> 1588 </trans-unit>
1660 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1589 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1661 <source>Enable video comments</source> 1590 <source>Enable video comments</source>
1662 <target>Povolit komentáře</target> 1591 <target>Povolit komentáře</target>
1663 <context-group name="null"> 1592 <context-group name="null">
1664 <context context-type="linenumber">126</context> 1593 <context context-type="linenumber">121</context>
1665 </context-group> 1594 </context-group>
1666 </trans-unit> 1595 </trans-unit>
1667 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1596 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1668 <source>Wait transcoding before publishing the video</source> 1597 <source>Wait transcoding before publishing the video</source>
1669 <target>Čekat na překódování před publikováním videa</target> 1598 <target>Čekat na překódování před publikováním videa</target>
1670 <context-group name="null"> 1599 <context-group name="null">
1671 <context context-type="linenumber">132</context> 1600 <context context-type="linenumber">126</context>
1672 </context-group>
1673 </trans-unit>
1674 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1675 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1676 <target>Pokud se rozhodnete nečekat na překódování před publikování, video může zůstat nepřehratelné do dokončení překódování.</target>
1677 <context-group name="null">
1678 <context context-type="linenumber">135</context>
1679 </context-group> 1601 </context-group>
1680 </trans-unit> 1602 </trans-unit>
1681 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1603 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1689,42 +1611,35 @@ When you will upload a video in this channel, the video support field will be au
1689 <source>Upload thumbnail</source> 1611 <source>Upload thumbnail</source>
1690 <target>Nahrát miniaturu</target> 1612 <target>Nahrát miniaturu</target>
1691 <context-group name="null"> 1613 <context-group name="null">
1692 <context context-type="linenumber">146</context> 1614 <context context-type="linenumber">186</context>
1693 </context-group> 1615 </context-group>
1694 </trans-unit> 1616 </trans-unit>
1695 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1617 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1696 <source>Upload preview</source> 1618 <source>Upload preview</source>
1697 <target>Nahrát náhled</target> 1619 <target>Nahrát náhled</target>
1698 <context-group name="null"> 1620 <context-group name="null">
1699 <context context-type="linenumber">153</context> 1621 <context context-type="linenumber">193</context>
1700 </context-group> 1622 </context-group>
1701 </trans-unit> 1623 </trans-unit>
1702 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1624 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1703 <source>Support</source> 1625 <source>Support</source>
1704 <target>Podpora</target> 1626 <target>Podpora</target>
1705 <context-group name="null"> 1627 <context-group name="null">
1706 <context context-type="linenumber">59</context> 1628 <context context-type="linenumber">67</context>
1707 </context-group> 1629 </context-group>
1708 </trans-unit> 1630 </trans-unit>
1709 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1631 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1710 <source>Short text to tell people how they can support you (membership platform...).</source> 1632 <source>Short text to tell people how they can support you (membership platform...).</source>
1711 <target>Krátký text, co řekne lidem, jak vás mohou podpořit.</target> 1633 <target>Krátký text, co řekne lidem, jak vás mohou podpořit.</target>
1712 <context-group name="null"> 1634 <context-group name="null">
1713 <context context-type="linenumber">160</context> 1635 <context context-type="linenumber">200</context>
1714 </context-group> 1636 </context-group>
1715 </trans-unit> 1637 </trans-unit>
1716 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1638 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1717 <source>Advanced settings</source> 1639 <source>Advanced settings</source>
1718 <target>Rozšířená nastavení</target> 1640 <target>Rozšířená nastavení</target>
1719 <context-group name="null"> 1641 <context-group name="null">
1720 <context context-type="linenumber">142</context> 1642 <context context-type="linenumber">182</context>
1721 </context-group>
1722 </trans-unit>
1723 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1724 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1725 <target>(typ souboru: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, maximální velikost: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1726 <context-group name="null">
1727 <context context-type="linenumber">11</context>
1728 </context-group> 1643 </context-group>
1729 </trans-unit> 1644 </trans-unit>
1730 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1645 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1742,7 +1657,7 @@ When you will upload a video in this channel, the video support field will be au
1742 <source>Update</source> 1657 <source>Update</source>
1743 <target>Aktualizovat</target> 1658 <target>Aktualizovat</target>
1744 <context-group name="null"> 1659 <context-group name="null">
1745 <context context-type="linenumber">93</context> 1660 <context context-type="linenumber">101</context>
1746 </context-group> 1661 </context-group>
1747 </trans-unit> 1662 </trans-unit>
1748 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1663 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1752,32 +1667,18 @@ When you will upload a video in this channel, the video support field will be au
1752 <context context-type="linenumber">7</context> 1667 <context context-type="linenumber">7</context>
1753 </context-group> 1668 </context-group>
1754 </trans-unit> 1669 </trans-unit>
1755 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1756 <source>Torrent</source>
1757 <target>Torrent</target>
1758 <context-group name="null">
1759 <context context-type="linenumber">20</context>
1760 </context-group>
1761 </trans-unit>
1762 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1670 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1763 <source>Direct download</source> 1671 <source>Direct download</source>
1764 <target>Přímý odkaz</target> 1672 <target>Přímý odkaz</target>
1765 <context-group name="null"> 1673 <context-group name="null">
1766 <context context-type="linenumber">25</context> 1674 <context context-type="linenumber">20</context>
1767 </context-group>
1768 </trans-unit>
1769 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1770 <source>Torrent (magnet)</source>
1771 <target>Torrent (magnet)</target>
1772 <context-group name="null">
1773 <context context-type="linenumber">30</context>
1774 </context-group> 1675 </context-group>
1775 </trans-unit> 1676 </trans-unit>
1776 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1677 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1777 <source>Download</source> 1678 <source>Download</source>
1778 <target>Stáhnout</target> 1679 <target>Stáhnout</target>
1779 <context-group name="null"> 1680 <context-group name="null">
1780 <context context-type="linenumber">75</context> 1681 <context context-type="linenumber">83</context>
1781 </context-group> 1682 </context-group>
1782 </trans-unit> 1683 </trans-unit>
1783 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1684 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1816,7 +1717,7 @@ When you will upload a video in this channel, the video support field will be au
1816 <source>Share</source> 1717 <source>Share</source>
1817 <target>Sdílet</target> 1718 <target>Sdílet</target>
1818 <context-group name="null"> 1719 <context-group name="null">
1819 <context context-type="linenumber">64</context> 1720 <context context-type="linenumber">72</context>
1820 </context-group> 1721 </context-group>
1821 </trans-unit> 1722 </trans-unit>
1822 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1723 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1852,7 +1753,7 @@ When you will upload a video in this channel, the video support field will be au
1852 Probíhá překódování videa, nemusí proto fungovat správně. 1753 Probíhá překódování videa, nemusí proto fungovat správně.
1853 </target> 1754 </target>
1854 <context-group name="null"> 1755 <context-group name="null">
1855 <context context-type="linenumber">6</context> 1756 <context context-type="linenumber">11</context>
1856 </context-group> 1757 </context-group>
1857 </trans-unit> 1758 </trans-unit>
1858 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1759 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1863,7 +1764,7 @@ When you will upload a video in this channel, the video support field will be au
1863 Toto video bude publikováno <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1764 Toto video bude publikováno <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1864 </target> 1765 </target>
1865 <context-group name="null"> 1766 <context-group name="null">
1866 <context context-type="linenumber">10</context> 1767 <context context-type="linenumber">15</context>
1867 </context-group> 1768 </context-group>
1868 </trans-unit> 1769 </trans-unit>
1869 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1770 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1874,167 +1775,112 @@ When you will upload a video in this channel, the video support field will be au
1874 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí 1775 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> zhlédnutí
1875 </target> 1776 </target>
1876 <context-group name="null"> 1777 <context-group name="null">
1877 <context context-type="linenumber">21</context> 1778 <context context-type="linenumber">26</context>
1878 </context-group> 1779 </context-group>
1879 </trans-unit> 1780 </trans-unit>
1880 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1781 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1881 <source>Go the channel page</source> 1782 <source>Go the channel page</source>
1882 <target>Přejít na stránku kanálu</target> 1783 <target>Přejít na stránku kanálu</target>
1883 <context-group name="null"> 1784 <context-group name="null">
1884 <context context-type="linenumber">26</context> 1785 <context context-type="linenumber">31</context>
1885 </context-group>
1886 </trans-unit>
1887 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1888 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1889 <target>Tento účet můžete odebírat přes kteroukoliv instanci obsahující ActivityPub federaci. V instancích s Mastodon nebo Pleroma můžete napsat do vyhledávacího pole &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; a přidat odběr. Na odběrech jako PeerTube uživatel se pracuje: &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1890 <context-group name="null">
1891 <context context-type="linenumber">30</context>
1892 </context-group> 1786 </context-group>
1893 </trans-unit> 1787 </trans-unit>
1894 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1788 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1895 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1789 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1896 <target>Autor: <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1790 <target>Autor: <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1897 <context-group name="null"> 1791 <context-group name="null">
1898 <context context-type="linenumber">35</context> 1792 <context context-type="linenumber">41</context>
1899 </context-group> 1793 </context-group>
1900 </trans-unit> 1794 </trans-unit>
1901 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1795 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1902 <source>Go to the account page</source> 1796 <source>Go to the account page</source>
1903 <target>Přejít na stránku kanálu</target> 1797 <target>Přejít na stránku kanálu</target>
1904 <context-group name="null"> 1798 <context-group name="null">
1905 <context context-type="linenumber">34</context> 1799 <context context-type="linenumber">40</context>
1800 </context-group>
1801 </trans-unit>
1802 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1803 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1804 <target>Tento účet můžete odebírat přes kteroukoliv instanci obsahující ActivityPub federaci. V instancích s Mastodon nebo Pleroma můžete napsat do vyhledávacího pole &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; a přidat odběr. Na odběrech jako PeerTube uživatel se pracuje: &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1805 <context-group name="null">
1806 <context context-type="linenumber">45</context>
1906 </context-group> 1807 </context-group>
1907 </trans-unit> 1808 </trans-unit>
1908 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1809 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1909 <source>Like this video</source> 1810 <source>Like this video</source>
1910 <target>To se mi líbí</target> 1811 <target>To se mi líbí</target>
1911 <context-group name="null"> 1812 <context-group name="null">
1912 <context context-type="linenumber">47</context> 1813 <context context-type="linenumber">55</context>
1913 </context-group> 1814 </context-group>
1914 </trans-unit> 1815 </trans-unit>
1915 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1816 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1916 <source>Dislike this video</source> 1817 <source>Dislike this video</source>
1917 <target>To se mi nelíbí</target> 1818 <target>To se mi nelíbí</target>
1918 <context-group name="null"> 1819 <context-group name="null">
1919 <context context-type="linenumber">54</context> 1820 <context context-type="linenumber">62</context>
1920 </context-group> 1821 </context-group>
1921 </trans-unit> 1822 </trans-unit>
1922 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1823 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1923 <source>Download the video</source> 1824 <source>Download the video</source>
1924 <target>Stáhnout video</target> 1825 <target>Stáhnout video</target>
1925 <context-group name="null"> 1826 <context-group name="null">
1926 <context context-type="linenumber">74</context> 1827 <context context-type="linenumber">82</context>
1927 </context-group> 1828 </context-group>
1928 </trans-unit> 1829 </trans-unit>
1929 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1830 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1930 <source>Report</source> 1831 <source>Report</source>
1931 <target>Nahlásit</target> 1832 <target>Nahlásit</target>
1932 <context-group name="null"> 1833 <context-group name="null">
1933 <context context-type="linenumber">81</context> 1834 <context context-type="linenumber">89</context>
1934 </context-group> 1835 </context-group>
1935 </trans-unit> 1836 </trans-unit>
1936 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1837 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1937 <source>Report this video</source> 1838 <source>Report this video</source>
1938 <target>Nahlásit toto video</target> 1839 <target>Nahlásit toto video</target>
1939 <context-group name="null"> 1840 <context-group name="null">
1940 <context context-type="linenumber">80</context> 1841 <context context-type="linenumber">88</context>
1941 </context-group> 1842 </context-group>
1942 </trans-unit> 1843 </trans-unit>
1943 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1844 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1944 <source>Blacklist</source> 1845 <source>Blacklist</source>
1945 <target>Černá listina</target> 1846 <target>Černá listina</target>
1946 <context-group name="null"> 1847 <context-group name="null">
1947 <context context-type="linenumber">87</context> 1848 <context context-type="linenumber">95</context>
1948 </context-group> 1849 </context-group>
1949 </trans-unit> 1850 </trans-unit>
1950 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1851 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1951 <source>Blacklist this video</source> 1852 <source>Blacklist this video</source>
1952 <target>Přidat toto video na černou listinu</target> 1853 <target>Přidat toto video na černou listinu</target>
1953 <context-group name="null"> 1854 <context-group name="null">
1954 <context context-type="linenumber">86</context> 1855 <context context-type="linenumber">94</context>
1955 </context-group> 1856 </context-group>
1956 </trans-unit> 1857 </trans-unit>
1957 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1858 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1958 <source>Update this video</source> 1859 <source>Update this video</source>
1959 <target>Aktualizovat video</target> 1860 <target>Aktualizovat video</target>
1960 <context-group name="null"> 1861 <context-group name="null">
1961 <context context-type="linenumber">92</context> 1862 <context context-type="linenumber">100</context>
1962 </context-group> 1863 </context-group>
1963 </trans-unit> 1864 </trans-unit>
1964 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1865 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1965 <source>Delete this video</source> 1866 <source>Delete this video</source>
1966 <target>Odstranit video</target> 1867 <target>Odstranit video</target>
1967 <context-group name="null"> 1868 <context-group name="null">
1968 <context context-type="linenumber">98</context> 1869 <context context-type="linenumber">106</context>
1969 </context-group> 1870 </context-group>
1970 </trans-unit> 1871 </trans-unit>
1971 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1872 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1972 <source>Show more</source> 1873 <source>Show more</source>
1973 <target>Zobrazit více</target> 1874 <target>Zobrazit více</target>
1974 <context-group name="null"> 1875 <context-group name="null">
1975 <context context-type="linenumber">118</context> 1876 <context context-type="linenumber">126</context>
1976 </context-group> 1877 </context-group>
1977 </trans-unit> 1878 </trans-unit>
1978 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1879 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1979 <source>Show less</source> 1880 <source>Show less</source>
1980 <target>Zobrazit méně</target> 1881 <target>Zobrazit méně</target>
1981 <context-group name="null"> 1882 <context-group name="null">
1982 <context context-type="linenumber">124</context> 1883 <context context-type="linenumber">132</context>
1983 </context-group>
1984 </trans-unit>
1985 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1986 <source>
1987 Privacy
1988 </source>
1989 <target>
1990 Soukromí
1991 </target>
1992 <context-group name="null">
1993 <context context-type="linenumber">131</context>
1994 </context-group>
1995 </trans-unit>
1996 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
1997 <source>
1998 Category
1999 </source>
2000 <target>
2001 Kategorie
2002 </target>
2003 <context-group name="null">
2004 <context context-type="linenumber">140</context>
2005 </context-group>
2006 </trans-unit>
2007 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2008 <source>
2009 Licence
2010 </source>
2011 <target>
2012 Licence
2013 </target>
2014 <context-group name="null">
2015 <context context-type="linenumber">149</context>
2016 </context-group>
2017 </trans-unit>
2018 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2019 <source>
2020 Language
2021 </source>
2022 <target>
2023 Jazyk
2024 </target>
2025 <context-group name="null">
2026 <context context-type="linenumber">158</context>
2027 </context-group>
2028 </trans-unit>
2029 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2030 <source>
2031 Tags
2032 </source>
2033 <target>
2034 Tagy
2035 </target>
2036 <context-group name="null">
2037 <context context-type="linenumber">167</context>
2038 </context-group> 1884 </context-group>
2039 </trans-unit> 1885 </trans-unit>
2040 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1886 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2045,24 +1891,13 @@ When you will upload a video in this channel, the video support field will be au
2045 Další videa 1891 Další videa
2046 </target> 1892 </target>
2047 <context-group name="null"> 1893 <context-group name="null">
2048 <context context-type="linenumber">181</context> 1894 <context context-type="linenumber">183</context>
2049 </context-group> 1895 </context-group>
2050 </trans-unit> 1896 </trans-unit>
2051 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1897 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2052 <source>Friendly Reminder:</source> 1898 <source>Friendly Reminder:</source>
2053 <target>Přátelské připomenutí:</target> 1899 <target>Přátelské připomenutí:</target>
2054 <context-group name="null"> 1900 <context-group name="null">
2055 <context context-type="linenumber">193</context>
2056 </context-group>
2057 </trans-unit>
2058 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2059 <source>
2060 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2061 </source>
2062 <target>
2063 Systém sdílení použitý u tohoto videa zahrnuje některé technické informace o vašem systéme (jako je například IP adresa), které mohou být přístupné veřejně.
2064 </target>
2065 <context-group name="null">
2066 <context context-type="linenumber">195</context> 1901 <context context-type="linenumber">195</context>
2067 </context-group> 1902 </context-group>
2068 </trans-unit> 1903 </trans-unit>
@@ -2070,14 +1905,14 @@ When you will upload a video in this channel, the video support field will be au
2070 <source>More information</source> 1905 <source>More information</source>
2071 <target>Více informací</target> 1906 <target>Více informací</target>
2072 <context-group name="null"> 1907 <context-group name="null">
2073 <context context-type="linenumber">198</context> 1908 <context context-type="linenumber">200</context>
2074 </context-group> 1909 </context-group>
2075 </trans-unit> 1910 </trans-unit>
2076 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1911 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2077 <source>Get more information</source> 1912 <source>Get more information</source>
2078 <target>Získat více informací</target> 1913 <target>Získat více informací</target>
2079 <context-group name="null"> 1914 <context-group name="null">
2080 <context context-type="linenumber">198</context> 1915 <context context-type="linenumber">200</context>
2081 </context-group> 1916 </context-group>
2082 </trans-unit> 1917 </trans-unit>
2083 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1918 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2088,7 +1923,7 @@ When you will upload a video in this channel, the video support field will be au
2088 OK 1923 OK
2089 </target> 1924 </target>
2090 <context-group name="null"> 1925 <context-group name="null">
2091 <context context-type="linenumber">201</context> 1926 <context context-type="linenumber">203</context>
2092 </context-group> 1927 </context-group>
2093 </trans-unit> 1928 </trans-unit>
2094 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1929 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2560,13 +2395,6 @@ When you will upload a video in this channel, the video support field will be au
2560 <context context-type="linenumber">1</context> 2395 <context context-type="linenumber">1</context>
2561 </context-group> 2396 </context-group>
2562 </trans-unit> 2397 </trans-unit>
2563 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2564 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2565 <target>Email s instrukcemi pro reset hesla byl zaslán na <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</target>
2566 <context-group name="null">
2567 <context context-type="linenumber">1</context>
2568 </context-group>
2569 </trans-unit>
2570 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2398 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2571 <source>Unable to find user id or verification string.</source> 2399 <source>Unable to find user id or verification string.</source>
2572 <target>Nelze najít uživatelovo id nebo verifikační řetězec.</target> 2400 <target>Nelze najít uživatelovo id nebo verifikační řetězec.</target>
@@ -2581,6 +2409,20 @@ When you will upload a video in this channel, the video support field will be au
2581 <context context-type="linenumber">1</context> 2409 <context context-type="linenumber">1</context>
2582 </context-group> 2410 </context-group>
2583 </trans-unit> 2411 </trans-unit>
2412 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2413 <source>Today</source>
2414 <target>Dnes</target>
2415 <context-group name="null">
2416 <context context-type="linenumber">1</context>
2417 </context-group>
2418 </trans-unit>
2419 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2420 <source>Search</source>
2421 <target>Hledat</target>
2422 <context-group name="null">
2423 <context context-type="linenumber">1</context>
2424 </context-group>
2425 </trans-unit>
2584 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2426 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2585 <source>Instance name is required.</source> 2427 <source>Instance name is required.</source>
2586 <target>Jméno instance je vyžadováno.</target> 2428 <target>Jméno instance je vyžadováno.</target>
@@ -3267,13 +3109,6 @@ When you will upload a video in this channel, the video support field will be au
3267 <context context-type="linenumber">1</context> 3109 <context context-type="linenumber">1</context>
3268 </context-group> 3110 </context-group>
3269 </trans-unit> 3111 </trans-unit>
3270 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3271 <source>Today</source>
3272 <target>Dnes</target>
3273 <context-group name="null">
3274 <context context-type="linenumber">1</context>
3275 </context-group>
3276 </trans-unit>
3277 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3112 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3278 <source>Clear</source> 3113 <source>Clear</source>
3279 <target>Vymazat</target> 3114 <target>Vymazat</target>
@@ -3477,13 +3312,6 @@ When you will upload a video in this channel, the video support field will be au
3477 <context context-type="linenumber">1</context> 3312 <context context-type="linenumber">1</context>
3478 </context-group> 3313 </context-group>
3479 </trans-unit> 3314 </trans-unit>
3480 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3481 <source>This image is too large.</source>
3482 <target>Tento obrázek je moc velký.</target>
3483 <context-group name="null">
3484 <context context-type="linenumber">1</context>
3485 </context-group>
3486 </trans-unit>
3487 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3315 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3488 <source>Your video was uploaded in your account and is private.</source> 3316 <source>Your video was uploaded in your account and is private.</source>
3489 <target>Video bylo nahráno na váš účet a nyní je nastaveno jako soukromé.</target> 3317 <target>Video bylo nahráno na váš účet a nyní je nastaveno jako soukromé.</target>
@@ -3519,13 +3347,6 @@ When you will upload a video in this channel, the video support field will be au
3519 <context context-type="linenumber">1</context> 3347 <context context-type="linenumber">1</context>
3520 </context-group> 3348 </context-group>
3521 </trans-unit> 3349 </trans-unit>
3522 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3523 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3524 <target>Omlouváme se, ale PeerTube nedokáže zpracovat videa větší než 4GB</target>
3525 <context-group name="null">
3526 <context context-type="linenumber">1</context>
3527 </context-group>
3528 </trans-unit>
3529 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3350 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3530 <source>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 }}"/>)</source> 3351 <source>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 }}"/>)</source>
3531 <target>Váš limit na videa byl překročen tímto videem (velikost videa: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, použito: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, limit: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3352 <target>Váš limit na videa byl překročen tímto videem (velikost videa: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, použito: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, limit: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3596,13 +3417,6 @@ When you will upload a video in this channel, the video support field will be au
3596 <context context-type="linenumber">1</context> 3417 <context context-type="linenumber">1</context>
3597 </context-group> 3418 </context-group>
3598 </trans-unit> 3419 </trans-unit>
3599 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3600 <source>Cannot fetch video from server, maybe down.</source>
3601 <target>Nelze získat video ze serveru.</target>
3602 <context-group name="null">
3603 <context context-type="linenumber">1</context>
3604 </context-group>
3605 </trans-unit>
3606 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3420 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3607 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3421 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3608 <target>Toto video obsahuje citlivý materiál. Opravdu jej chcete přehrát?</target> 3422 <target>Toto video obsahuje citlivý materiál. Opravdu jej chcete přehrát?</target>
@@ -3617,12 +3431,5 @@ When you will upload a video in this channel, the video support field will be au
3617 <context context-type="linenumber">1</context> 3431 <context context-type="linenumber">1</context>
3618 </context-group> 3432 </context-group>
3619 </trans-unit> 3433 </trans-unit>
3620 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3621 <source>Search</source>
3622 <target>Hledat</target>
3623 <context-group name="null">
3624 <context context-type="linenumber">1</context>
3625 </context-group>
3626 </trans-unit>
3627 </body> 3434 </body>
3628 </file></xliff> \ No newline at end of file 3435 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_de_DE.xml b/client/src/locale/target/angular_de_DE.xml
index 1d1db325d..e186fac9d 100644
--- a/client/src/locale/target/angular_de_DE.xml
+++ b/client/src/locale/target/angular_de_DE.xml
@@ -11,14 +11,14 @@
11 Abbrechen 11 Abbrechen
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Hilfe</target> 47 <target>Hilfe</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Passwort</target> 108 <target>Passwort</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -329,6 +329,27 @@ Mein Konto</target>
329 <context context-type="linenumber">9</context> 329 <context context-type="linenumber">9</context>
330 </context-group> 330 </context-group>
331 </trans-unit> 331 </trans-unit>
332 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
333 <source>Category</source>
334 <target>Kategorie</target>
335 <context-group name="null">
336 <context context-type="linenumber">144</context>
337 </context-group>
338 </trans-unit>
339 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
340 <source>Licence</source>
341 <target>Lizenz</target>
342 <context-group name="null">
343 <context context-type="linenumber">153</context>
344 </context-group>
345 </trans-unit>
346 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
347 <source>Language</source>
348 <target>Sprache</target>
349 <context-group name="null">
350 <context context-type="linenumber">162</context>
351 </context-group>
352 </trans-unit>
332 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 353 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
333 <source>No results.</source> 354 <source>No results.</source>
334 <target>Keine Ergebnisse.</target> 355 <target>Keine Ergebnisse.</target>
@@ -403,11 +424,641 @@ Mein Konto</target>
403 <context context-type="linenumber">31</context> 424 <context context-type="linenumber">31</context>
404 </context-group> 425 </context-group>
405 </trans-unit> 426 </trans-unit>
427 <trans-unit id="5c856a6a233b6f6c4cc8eed46436d31d2da63fc1">
428 <source>
429 User registration is currently not allowed.
430 </source>
431 <target>
432Die Benutzerregistrierung ist zur Zeit nicht erlaubt
433</target>
434 <context-group name="null">
435 <context context-type="linenumber">36</context>
436 </context-group>
437 </trans-unit>
438 <trans-unit id="a11e3ba2c5aea841de67a3c85892bb61295e94dc">
439 <source>
440 About PeerTube
441</source>
442 <target>
443Über PeerTube</target>
444 <context-group name="null">
445 <context context-type="linenumber">1</context>
446 </context-group>
447 </trans-unit>
448 <trans-unit id="bd29138e1e17572596ce8f2fe61bcea6ac5fb0bf">
449 <source>PeerTube is a federated (ActivityPub) video streaming platform using P2P (WebTorrent) directly in the web browser.</source>
450 <target>PeerTube ist eine föderierte (ActivityPub) Videostreamingplattform, die P2P (WebTorrent) direkt im Browser verwendet.</target>
451 <context-group name="null">
452 <context context-type="linenumber">6</context>
453 </context-group>
454 </trans-unit>
455 <trans-unit id="c2bc16265b72b9af4a4374b805931ae03e3f73a5">
456 <source>
457 It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
458 </source>
459 <target>
460Es ist eine freie Open Source Software unter der <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
461</target>
462 <context-group name="null">
463 <context context-type="linenumber">8</context>
464 </context-group>
465 </trans-unit>
466 <trans-unit id="a10308f7ac111f5b66d08af0a24fc9ddf143931a">
467 <source>
468 For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
469 </source>
470 <target>
471Für mehr Informationen, besuche <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
472</target>
473 <context-group name="null">
474 <context context-type="linenumber">12</context>
475 </context-group>
476 </trans-unit>
477 <trans-unit id="c02493cfa08b82c468233b83069b5baff23890e1">
478 <source>P2P &amp; Privacy</source>
479 <target>P2P &amp; Datenschutz</target>
480 <context-group name="null">
481 <context context-type="linenumber">18</context>
482 </context-group>
483 </trans-unit>
484 <trans-unit id="cd429d53cb8f4a87879301248e38cb85f07fa9d6">
485 <source>
486 PeerTube uses the BitTorrent protocol to share bandwidth between users.
487 This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video.
488 </source>
489 <target>
490PeerTube verwendet das BitTorrent-Protokoll, um Bandbreite zwischen den Usern aufzuteilen. Das setzt voraus, dass deine IP Adresse auf dem BitTorrent-Tracker zwischengespeichert wird, solange du dir ein Video ansiehst oder herunterlädst.
491</target>
492 <context-group name="null">
493 <context context-type="linenumber">20</context>
494 </context-group>
495 </trans-unit>
496 <trans-unit id="e4ce50f3019e3ebe9a479784c6cb68a31c7a8231">
497 <source>What are the consequences?</source>
498 <target>Was sind die Konsequenzen?</target>
499 <context-group name="null">
500 <context context-type="linenumber">25</context>
501 </context-group>
502 </trans-unit>
503 <trans-unit id="9a612748b059ad246935df17ef4ec4e6afb43a2a">
504 <source>
505 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video.
506 In practice, this is much more difficult because:
507 </source>
508 <target>
509Theoretisch könnte jemand mit genug technischer Erfahrung herausfinden, welche IP welches Video herunterlädt.
510In der Praxis ist das jedoch sehr schwierig, denn:
511
512</target>
513 <context-group name="null">
514 <context context-type="linenumber">27</context>
515 </context-group>
516 </trans-unit>
517 <trans-unit id="64f96be62df4a95a0615b6f630ad25d6348a29d3">
518 <source>
519 An HTTP request has to be sent on each tracker for each video to spy.
520 If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot)
521 </source>
522 <target>
523Der Angreifer müsste für jedes Video eine separate HTTP-Anfrage senden.
524Möchte er alle Videos von PeerTube verfolgen, so müsste er genausoviele Anfragen senden, wie es Videos gibt. (also eine ganze Menge!)
525</target>
526 <context-group name="null">
527 <context context-type="linenumber">33</context>
528 </context-group>
529 </trans-unit>
530 <trans-unit id="44bbecddbdf2aad1f4bad97cb806560553fb2ab3">
531 <source>
532 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
533 </source>
534 <target>
535 Wenn eine IP im Tracker gespeichert wird, heißt das nicht unbedingt, dass die zugehörige Person das Video auch tatsächlich angesehen hat.
536 </target>
537 <context-group name="null">
538 <context context-type="linenumber">47</context>
539 </context-group>
540 </trans-unit>
541 <trans-unit id="3c2990d5e452bdf2317ff23745db70705d848d99">
542 <source>What can I do to limit the exposure of my IP address?</source>
543 <target>Was kann ich tun, um die Sichtbarkeit meiner IP-Adresse zu begrenzen?</target>
544 <context-group name="null">
545 <context context-type="linenumber">75</context>
546 </context-group>
547 </trans-unit>
548 <trans-unit id="a545356de272b955258c2a2432b08ec637b65f7e">
549 <source>
550 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.
551 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.
552 Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense.
553 </source>
554 <target>
555 Jedes Mal, wenn du eine Website aufrufst, ist deine IP-Adresse nicht nur für Seite, sondern auch für ISPs/Router/Tracker/CDNs und andere sichtbar.
556PeerTube sagt da ganz offen und transparent: Um deine Privatsphäre zu schützen, empfehlen wir ein VPN oder einen Tor Browser zu verwenden.
557P2P ist nicht der Grund für die fehlende Anonymität.</target>
558 <context-group name="null">
559 <context context-type="linenumber">77</context>
560 </context-group>
561 </trans-unit>
562 <trans-unit id="8ce78dd287b9a9dde5079916425ea66466530e41">
563 <source>What will be done to mitigate this problem?</source>
564 <target>Was wird getan, um das Problem zu beheben?</target>
565 <context-group name="null">
566 <context context-type="linenumber">83</context>
567 </context-group>
568 </trans-unit>
569 <trans-unit id="ba77e356eaa5c06caaf5c8734c361d1a5415fe1c">
570 <source>Ring a bell if there are unusual requests (being tested)</source>
571 <target>Informiere mich bei merkwürdigen Anfragen (TEST)</target>
572 <context-group name="null">
573 <context context-type="linenumber">93</context>
574 </context-group>
575 </trans-unit>
576 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578">
577 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
578 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> Abonnenten</target>
579 <context-group name="null">
580 <context context-type="linenumber">12</context>
581 </context-group>
582 </trans-unit>
583 <trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
584 <source>Video channels</source>
585 <target>Kanäle</target>
586 <context-group name="null">
587 <context context-type="linenumber">19</context>
588 </context-group>
589 </trans-unit>
590 <trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
591 <source>Stats</source>
592 <target>Statistiken</target>
593 <context-group name="null">
594 <context context-type="linenumber">16</context>
595 </context-group>
596 </trans-unit>
597 <trans-unit id="8bc634cd9d8c9b684dbfaaf17a522f894bedbffc">
598 <source>Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/></source>
599 <target>Hier seit <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/></target>
600 <context-group name="null">
601 <context context-type="linenumber">10</context>
602 </context-group>
603 </trans-unit>
604 <trans-unit id="8fef247fd0c5bf790151f7661cafc4b7fd0397f3">
605 <source><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers</source>
606 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> Abonnenten</target>
607 <context-group name="null">
608 <context context-type="linenumber">11</context>
609 </context-group>
610 </trans-unit>
611 <trans-unit id="f36bd6a1570cb9b0a5023870f35160957cad2a8f">
612 <source>See this video channel</source>
613 <target>Zum Kanal</target>
614 <context-group name="null">
615 <context context-type="linenumber">4</context>
616 </context-group>
617 </trans-unit>
618 <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59">
619 <source>Name</source>
620 <target>Name</target>
621 <context-group name="null">
622 <context context-type="linenumber">9</context>
623 </context-group>
624 </trans-unit>
625 <trans-unit id="512b045163a7187b2fc5d554e5f59fb3e49e174b">
626 <source>Short description</source>
627 <target>Kurze Beschreibung</target>
628 <context-group name="null">
629 <context context-type="linenumber">21</context>
630 </context-group>
631 </trans-unit>
632 <trans-unit id="554488d11165f38b27b8fe230aba8a2e30d57003">
633 <source>Default client route</source>
634 <target>Standardpfad (Client)</target>
635 <context-group name="null">
636 <context context-type="linenumber">54</context>
637 </context-group>
638 </trans-unit>
639 <trans-unit id="1cbeb1eb589bfbe5efce94184cacd3095ca26948">
640 <source>Videos Trending</source>
641 <target>Beliebte Videos</target>
642 <context-group name="null">
643 <context context-type="linenumber">57</context>
644 </context-group>
645 </trans-unit>
646 <trans-unit id="1861c96217213992e02dcb77e15ea69e718c9883">
647 <source>Videos Recently Added</source>
648 <target>Kürzlich hinzugfügt</target>
649 <context-group name="null">
650 <context context-type="linenumber">58</context>
651 </context-group>
652 </trans-unit>
653 <trans-unit id="b6307f83d9f43bff8d5129a7888e89964ddc3f7f">
654 <source>Local videos</source>
655 <target>Lokale Videos</target>
656 <context-group name="null">
657 <context context-type="linenumber">59</context>
658 </context-group>
659 </trans-unit>
660 <trans-unit id="8551afadb69b3fef89e191f507e8ac84e624e8b9">
661 <source>Policy on videos containing sensitive content</source>
662 <target>Verhalten bei Videos mit anstößigen Inhalten</target>
663 <context-group name="null">
664 <context context-type="linenumber">68</context>
665 </context-group>
666 </trans-unit>
667 <trans-unit id="aa3ef567a1ea22c1e4d0acfdc8f80bc636bf12df">
668 <source>With &lt;strong&gt;Do not list&lt;/strong&gt; or &lt;strong&gt;Blur thumbnails&lt;/strong&gt;, a confirmation will be requested to watch the video.</source>
669 <target>Mit &lt;strong&gt;Nicht listen&lt;/strong&gt; oder &lt;strong&gt;Thumbnails verschwommen machen&lt;/strong&gt;, muss zum Ansehen des Videos eine Bestätigung angefragt werden.</target>
670 <context-group name="null">
671 <context context-type="linenumber">6</context>
672 </context-group>
673 </trans-unit>
674 <trans-unit id="5e155c34fb3ed8159bf0a486a366cfbc6874f9fe">
675 <source>Do not list</source>
676 <target>Nicht listen</target>
677 <context-group name="null">
678 <context context-type="linenumber">11</context>
679 </context-group>
680 </trans-unit>
681 <trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
682 <source>Blur thumbnails</source>
683 <target>Thumbnails verschwommen machen</target>
684 <context-group name="null">
685 <context context-type="linenumber">12</context>
686 </context-group>
687 </trans-unit>
688 <trans-unit id="010d24ef3c43b2d8f45a4d6cba7d73e12ee1557e">
689 <source>Display</source>
690 <target>Anzeige</target>
691 <context-group name="null">
692 <context context-type="linenumber">13</context>
693 </context-group>
694 </trans-unit>
695 <trans-unit id="ca53e66e68986546b7ef820c934145fd7c9c4247">
696 <source>Signup enabled</source>
697 <target>Registrierung an</target>
698 <context-group name="null">
699 <context context-type="linenumber">90</context>
700 </context-group>
701 </trans-unit>
702 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
703 <source>Signup limit</source>
704 <target>Registrierungslimit</target>
705 <context-group name="null">
706 <context context-type="linenumber">94</context>
707 </context-group>
708 </trans-unit>
709 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
710 <source>Administrator</source>
711 <target>Administrator</target>
712 <context-group name="null">
713 <context context-type="linenumber">104</context>
714 </context-group>
715 </trans-unit>
716 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
717 <source>Admin email</source>
718 <target>Admin E-Mail</target>
719 <context-group name="null">
720 <context context-type="linenumber">107</context>
721 </context-group>
722 </trans-unit>
723 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
724 <source>Users</source>
725 <target>Benutzer</target>
726 <context-group name="null">
727 <context context-type="linenumber">117</context>
728 </context-group>
729 </trans-unit>
406 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 730 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
407 <source>User default video quota</source> 731 <source>User default video quota</source>
408 <target>Standard-Kontingent für die Videos eines Nutzers</target> 732 <target>Standard-Kontingent für die Videos eines Nutzers</target>
409 <context-group name="null"> 733 <context-group name="null">
410 <context context-type="linenumber">122</context> 734 <context context-type="linenumber">120</context>
735 </context-group>
736 </trans-unit>
737 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
738 <source>Basic configuration</source>
739 <target>Grundlegende Einstellungen</target>
740 <context-group name="null">
741 <context context-type="linenumber">5</context>
742 </context-group>
743 </trans-unit>
744 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc">
745 <source>Twitter</source>
746 <target>Twitter</target>
747 <context-group name="null">
748 <context context-type="linenumber">136</context>
749 </context-group>
750 </trans-unit>
751 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
752 <source>Your Twitter username</source>
753 <target>Dein Twitter-Benutzername</target>
754 <context-group name="null">
755 <context context-type="linenumber">139</context>
756 </context-group>
757 </trans-unit>
758 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
759 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
760 <target>zeigt den Twitter-Account für die Webseite, auf der der Inhalt veröffentlicht wurde.</target>
761 <context-group name="null">
762 <context context-type="linenumber">142</context>
763 </context-group>
764 </trans-unit>
765 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
766 <source>Instance whitelisted by Twitter</source>
767 <target>Instanz von Twitter vertraut</target>
768 <context-group name="null">
769 <context context-type="linenumber">155</context>
770 </context-group>
771 </trans-unit>
772 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
773 <source>Services</source>
774 <target>Dienste</target>
775 <context-group name="null">
776 <context context-type="linenumber">134</context>
777 </context-group>
778 </trans-unit>
779 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
780 <source>Transcoding</source>
781 <target>Transcodierung</target>
782 <context-group name="null">
783 <context context-type="linenumber">164</context>
784 </context-group>
785 </trans-unit>
786 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
787 <source>Transcoding enabled</source>
788 <target>Transcodierung an</target>
789 <context-group name="null">
790 <context context-type="linenumber">168</context>
791 </context-group>
792 </trans-unit>
793 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
794 <source>If you disable transcoding, many videos from your users will not work!</source>
795 <target>Wenn du das Transcoding abschaltest, werden viele Videos nicht laufen!</target>
796 <context-group name="null">
797 <context context-type="linenumber">169</context>
798 </context-group>
799 </trans-unit>
800 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
801 <source>Transcoding threads</source>
802 <target>Transcodierungsthreads</target>
803 <context-group name="null">
804 <context context-type="linenumber">175</context>
805 </context-group>
806 </trans-unit>
807 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
808 <source>Previews cache size</source>
809 <target>Cachegröße der Previews</target>
810 <context-group name="null">
811 <context context-type="linenumber">207</context>
812 </context-group>
813 </trans-unit>
814 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
815 <source>Customizations</source>
816 <target>Personalisierung</target>
817 <context-group name="null">
818 <context context-type="linenumber">228</context>
819 </context-group>
820 </trans-unit>
821 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
822 <source>JavaScript</source>
823 <target>JavaScript</target>
824 <context-group name="null">
825 <context context-type="linenumber">231</context>
826 </context-group>
827 </trans-unit>
828 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
829 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
830 <target>Füge dein JavaScript ein. Beispiel: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</target>
831 <context-group name="null">
832 <context context-type="linenumber">234</context>
833 </context-group>
834 </trans-unit>
835 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
836 <source>
837 Write directly CSS code. Example:&lt;br /&gt;
838 &lt;pre&gt;
839 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
840 background-color: red;
841 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
842 &lt;/pre&gt;
843
844 Prepend with &lt;em&gt;#custom-css&lt;/em&gt; to override styles. Example:
845 &lt;pre&gt;
846 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
847 color: red;
848 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
849 &lt;/pre&gt;
850 </source>
851 <target>
852 Füge dein CSS ein. Beispiel:&lt;br /&gt;
853 &lt;pre&gt;
854 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
855 background-color: red;
856 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
857 &lt;/pre&gt;
858
859 Prepend with &lt;em&gt;#custom-css&lt;/em&gt; to override styles. Example:
860 &lt;pre&gt;
861 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
862 color: red;
863 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
864 &lt;/pre&gt;
865 </target>
866 <context-group name="null">
867 <context context-type="linenumber">250</context>
868 </context-group>
869 </trans-unit>
870 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
871 <source>Advanced configuration</source>
872 <target>Erweiterte Einstellungen</target>
873 <context-group name="null">
874 <context context-type="linenumber">162</context>
875 </context-group>
876 </trans-unit>
877 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
878 <source>Update configuration</source>
879 <target>Update-Einstellungen</target>
880 <context-group name="null">
881 <context context-type="linenumber">277</context>
882 </context-group>
883 </trans-unit>
884 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
885 <source>
886 Users
887 </source>
888 <target>
889Benutzer
890</target>
891 <context-group name="null">
892 <context context-type="linenumber">3</context>
893 </context-group>
894 </trans-unit>
895 <trans-unit id="0315abd64e35510ed0534f597130ef781aca175a">
896 <source>
897 Manage follows
898 </source>
899 <target>
900 Abonnenten verwalten
901 </target>
902 <context-group name="null">
903 <context context-type="linenumber">7</context>
904 </context-group>
905 </trans-unit>
906 <trans-unit id="1c9406213cf05033eda4d3df678217b5eb822315">
907 <source>
908 Video abuses
909 </source>
910 <target>
911 Verstöße </target>
912 <context-group name="null">
913 <context context-type="linenumber">11</context>
914 </context-group>
915 </trans-unit>
916 <trans-unit id="96ccede058f0022f34230c3adc09e60076b6d037">
917 <source>
918 Video blacklist
919 </source>
920 <target>
921</target>
922 <context-group name="null">
923 <context context-type="linenumber">15</context>
924 </context-group>
925 </trans-unit>
926 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
927 <source>
928 Jobs
929 </source>
930 <target>
931 Jobs
932 </target>
933 <context-group name="null">
934 <context context-type="linenumber">19</context>
935 </context-group>
936 </trans-unit>
937 <trans-unit id="9c6ce37623b626a102002901ca12c37e7a3a7f13">
938 <source>
939 Configuration
940 </source>
941 <target>
942Einstellungen
943</target>
944 <context-group name="null">
945 <context context-type="linenumber">23</context>
946 </context-group>
947 </trans-unit>
948 <trans-unit id="4e8635c108375983b42229df44bda8c0af84f396">
949 <source>1 host (without "http://") per line</source>
950 <target>1 Host pro Zeile (ohne "http://")</target>
951 <context-group name="null">
952 <context context-type="linenumber">5</context>
953 </context-group>
954 </trans-unit>
955 <trans-unit id="f7a7a00999ccbd126cbb8e74f5dd1724942dd507">
956 <source>
957 It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers.
958 </source>
959 <target>
960 Es scheint, als seist du nicht auf einem HTTPS-Server. Dein Webserver muss TLS aktivieren, um andere Server abonnieren zu können.
961 </target>
962 <context-group name="null">
963 <context context-type="linenumber">17</context>
964 </context-group>
965 </trans-unit>
966 <trans-unit id="456c6383d8e7cd15aadbcdc196d4ae7a70092437">
967 <source>Add following</source>
968 <target>Abonnement hinzufügen</target>
969 <context-group name="null">
970 <context context-type="linenumber">21</context>
971 </context-group>
972 </trans-unit>
973 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c">
974 <source>ID</source>
975 <target>ID</target>
976 <context-group name="null">
977 <context context-type="linenumber">18</context>
978 </context-group>
979 </trans-unit>
980 <trans-unit id="380e20a1e13d9489c69f6dbea7da19025ab6eb25">
981 <source>Score</source>
982 <target>Punkte</target>
983 <context-group name="null">
984 <context context-type="linenumber">8</context>
985 </context-group>
986 </trans-unit>
987 <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
988 <source>Host</source>
989 <target>Host</target>
990 <context-group name="null">
991 <context context-type="linenumber">8</context>
992 </context-group>
993 </trans-unit>
994 <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
995 <source>State</source>
996 <target>Status</target>
997 <context-group name="null">
998 <context context-type="linenumber">20</context>
999 </context-group>
1000 </trans-unit>
1001 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
1002 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1003 <target>Erstellt <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1004 <context-group name="null">
1005 <context context-type="linenumber">16</context>
1006 </context-group>
1007 </trans-unit>
1008 <trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
1009 <source>Manage follows</source>
1010 <target>Abonnements verwalten</target>
1011 <context-group name="null">
1012 <context context-type="linenumber">2</context>
1013 </context-group>
1014 </trans-unit>
1015 <trans-unit id="a9f2501fcb2ff71f1376c2d2fbbbd49f200e6c8f">
1016 <source>Jobs list</source>
1017 <target>Jobliste</target>
1018 <context-group name="null">
1019 <context context-type="linenumber">2</context>
1020 </context-group>
1021 </trans-unit>
1022 <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc">
1023 <source>Type</source>
1024 <target>Typ</target>
1025 <context-group name="null">
1026 <context context-type="linenumber">19</context>
1027 </context-group>
1028 </trans-unit>
1029 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1030 <source>Create user</source>
1031 <target>Benutzer anlegen</target>
1032 <context-group name="null">
1033 <context context-type="linenumber">6</context>
1034 </context-group>
1035 </trans-unit>
1036 <trans-unit id="2788d9a67ed2b6f35c85818e6af1871317c57a7e">
1037 <source>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/></source>
1038 <target>Benutzer <x id="INTERPOLATION" equiv-text="{{ username }}"/> ändern</target>
1039 <context-group name="null">
1040 <context context-type="linenumber">2</context>
1041 </context-group>
1042 </trans-unit>
1043 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a">
1044 <source>john</source>
1045 <target>john</target>
1046 <context-group name="null">
1047 <context context-type="linenumber">10</context>
1048 </context-group>
1049 </trans-unit>
1050 <trans-unit id="bb3542ff8e5defa6d0c773799e5c8fe399605d05">
1051 <source>mail@example.com</source>
1052 <target>mail@example.com</target>
1053 <context-group name="null">
1054 <context context-type="linenumber">21</context>
1055 </context-group>
1056 </trans-unit>
1057 <trans-unit id="c36a66f2107e8da5371ebc9d15c2008dff567f46">
1058 <source>Role</source>
1059 <target>Benutzerrolle</target>
1060 <context-group name="null">
1061 <context context-type="linenumber">19</context>
411 </context-group> 1062 </context-group>
412 </trans-unit> 1063 </trans-unit>
413 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b"> 1064 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
@@ -436,6 +1087,20 @@ Mein Konto</target>
436 <context context-type="linenumber">2</context> 1087 <context context-type="linenumber">2</context>
437 </context-group> 1088 </context-group>
438 </trans-unit> 1089 </trans-unit>
1090 <trans-unit id="08ea8692dc2a7050026df26fc39b22960bde9de5">
1091 <source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1092 <target>Benutzername <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1093 <context-group name="null">
1094 <context context-type="linenumber">16</context>
1095 </context-group>
1096 </trans-unit>
1097 <trans-unit id="0c7e8870481f1287af6a142f538391d8c16c2408">
1098 <source>Video abuses list</source>
1099 <target>Liste der Verstöße</target>
1100 <context-group name="null">
1101 <context context-type="linenumber">2</context>
1102 </context-group>
1103 </trans-unit>
439 <trans-unit id="4ba250869daa372b54d24fafc0ea934769ee4076"> 1104 <trans-unit id="4ba250869daa372b54d24fafc0ea934769ee4076">
440 <source>Reason</source> 1105 <source>Reason</source>
441 <target>Grund</target> 1106 <target>Grund</target>
@@ -534,53 +1199,32 @@ Mein Konto</target>
534 <context context-type="linenumber">7</context> 1199 <context context-type="linenumber">7</context>
535 </context-group> 1200 </context-group>
536 </trans-unit> 1201 </trans-unit>
537 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
538 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
539 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> Abonnenten</target>
540 <context-group name="null">
541 <context context-type="linenumber">9</context>
542 </context-group>
543 </trans-unit>
544 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
545 <source>Change your avatar</source>
546 <target>Ändere deinen Avatar</target>
547 <context-group name="null">
548 <context context-type="linenumber">14</context>
549 </context-group>
550 </trans-unit>
551 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
552 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
553 <target>(zulässige Datei-Erweiterungen: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximale Größe: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
554 <context-group name="null">
555 <context context-type="linenumber">17</context>
556 </context-group>
557 </trans-unit>
558 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1202 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
559 <source>Video quota:</source> 1203 <source>Video quota:</source>
560 <target>Video-Kontingent:</target> 1204 <target>Video-Kontingent:</target>
561 <context-group name="null"> 1205 <context-group name="null">
562 <context context-type="linenumber">20</context> 1206 <context context-type="linenumber">4</context>
563 </context-group> 1207 </context-group>
564 </trans-unit> 1208 </trans-unit>
565 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1209 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
566 <source>Profile</source> 1210 <source>Profile</source>
567 <target>Profil</target> 1211 <target>Profil</target>
568 <context-group name="null"> 1212 <context-group name="null">
569 <context context-type="linenumber">24</context> 1213 <context context-type="linenumber">8</context>
570 </context-group> 1214 </context-group>
571 </trans-unit> 1215 </trans-unit>
572 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1216 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
573 <source>Video settings</source> 1217 <source>Video settings</source>
574 <target>Video-Einstellungen</target> 1218 <target>Video-Einstellungen</target>
575 <context-group name="null"> 1219 <context-group name="null">
576 <context context-type="linenumber">31</context> 1220 <context context-type="linenumber">15</context>
577 </context-group> 1221 </context-group>
578 </trans-unit> 1222 </trans-unit>
579 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1223 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
580 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1224 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
581 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe</target> 1225 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe</target>
582 <context-group name="null"> 1226 <context-group name="null">
583 <context context-type="linenumber">20</context> 1227 <context context-type="linenumber">19</context>
584 </context-group> 1228 </context-group>
585 </trans-unit> 1229 </trans-unit>
586 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1230 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -608,14 +1252,7 @@ Mein Konto</target>
608 <source>Create a video channel</source> 1252 <source>Create a video channel</source>
609 <target>Einen Video-Kanal erstellen</target> 1253 <target>Einen Video-Kanal erstellen</target>
610 <context-group name="null"> 1254 <context-group name="null">
611 <context context-type="linenumber">1</context> 1255 <context context-type="linenumber">6</context>
612 </context-group>
613 </trans-unit>
614 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
615 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
616 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/> aktualisieren</target>
617 <context-group name="null">
618 <context context-type="linenumber">2</context>
619 </context-group> 1256 </context-group>
620 </trans-unit> 1257 </trans-unit>
621 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1258 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -631,7 +1268,7 @@ When you will upload a video in this channel, the video support field will be au
631 <target>Ein kurzer Text, der anderen erklärt, wie sie deinen Kanal unterstützen können.&lt;br /&gt;&lt;br /&gt; 1268 <target>Ein kurzer Text, der anderen erklärt, wie sie deinen Kanal unterstützen können.&lt;br /&gt;&lt;br /&gt;
632Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automatisch mit diesem Text gefüllt.</target> 1269Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automatisch mit diesem Text gefüllt.</target>
633 <context-group name="null"> 1270 <context-group name="null">
634 <context context-type="linenumber">32</context> 1271 <context context-type="linenumber">36</context>
635 </context-group> 1272 </context-group>
636 </trans-unit> 1273 </trans-unit>
637 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1274 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -655,18 +1292,25 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
655 <context context-type="linenumber">15</context> 1292 <context context-type="linenumber">15</context>
656 </context-group> 1293 </context-group>
657 </trans-unit> 1294 </trans-unit>
1295 <trans-unit id="20f62f24170d57b1efeb2387a0949f482cd4d129">
1296 <source>Default policy on videos containing sensitive content</source>
1297 <target>Standardverhalten bei Videos mit anstößigen Inhalten</target>
1298 <context-group name="null">
1299 <context context-type="linenumber">3</context>
1300 </context-group>
1301 </trans-unit>
658 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2"> 1302 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
659 <source>Automatically plays video</source> 1303 <source>Automatically plays video</source>
660 <target>Spiel das Video automatisch ab.</target> 1304 <target>Spiel das Video automatisch ab.</target>
661 <context-group name="null"> 1305 <context-group name="null">
662 <context context-type="linenumber">24</context> 1306 <context context-type="linenumber">20</context>
663 </context-group> 1307 </context-group>
664 </trans-unit> 1308 </trans-unit>
665 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1309 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
666 <source>Save</source> 1310 <source>Save</source>
667 <target>Speichern</target> 1311 <target>Speichern</target>
668 <context-group name="null"> 1312 <context-group name="null">
669 <context context-type="linenumber">27</context> 1313 <context context-type="linenumber">23</context>
670 </context-group> 1314 </context-group>
671 </trans-unit> 1315 </trans-unit>
672 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1316 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -676,6 +1320,13 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
676 <context context-type="linenumber">27</context> 1320 <context context-type="linenumber">27</context>
677 </context-group> 1321 </context-group>
678 </trans-unit> 1322 </trans-unit>
1323 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1324 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1325 <target>(zulässige Datei-Erweiterungen: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximale Größe: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1326 <context-group name="null">
1327 <context context-type="linenumber">18</context>
1328 </context-group>
1329 </trans-unit>
679 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1330 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
680 <source> 1331 <source>
681 Sorry, but we couldn't find the page you were looking for. 1332 Sorry, but we couldn't find the page you were looking for.
@@ -694,6 +1345,13 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
694 <context context-type="linenumber">14</context> 1345 <context context-type="linenumber">14</context>
695 </context-group> 1346 </context-group>
696 </trans-unit> 1347 </trans-unit>
1348 <trans-unit id="e006ed166ce188cab168e1ca90435b33d042d913">
1349 <source>Go the owner account page</source>
1350 <target>Zum Kanal des Besitzers</target>
1351 <context-group name="null">
1352 <context context-type="linenumber">13</context>
1353 </context-group>
1354 </trans-unit>
697 <trans-unit id="1380539d91f77f565de6e21ce210da891e6644b8"> 1355 <trans-unit id="1380539d91f77f565de6e21ce210da891e6644b8">
698 <source>Support this channel</source> 1356 <source>Support this channel</source>
699 <target>Unterstütze diesen Kanal</target> 1357 <target>Unterstütze diesen Kanal</target>
@@ -740,21 +1398,21 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
740 <source>Privacy</source> 1398 <source>Privacy</source>
741 <target>Privatsphäre</target> 1399 <target>Privatsphäre</target>
742 <context-group name="null"> 1400 <context-group name="null">
743 <context context-type="linenumber">86</context> 1401 <context context-type="linenumber">139</context>
744 </context-group> 1402 </context-group>
745 </trans-unit> 1403 </trans-unit>
746 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1404 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
747 <source>Publish will be available when upload is finished</source> 1405 <source>Publish will be available when upload is finished</source>
748 <target>Veröffentlichung ist möglich, sobald das Hochladen abgeschlossen ist</target> 1406 <target>Veröffentlichung ist möglich, sobald das Hochladen abgeschlossen ist</target>
749 <context-group name="null"> 1407 <context-group name="null">
750 <context context-type="linenumber">53</context> 1408 <context context-type="linenumber">54</context>
751 </context-group> 1409 </context-group>
752 </trans-unit> 1410 </trans-unit>
753 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1411 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
754 <source>Publish</source> 1412 <source>Publish</source>
755 <target>Veröffentlichen</target> 1413 <target>Veröffentlichen</target>
756 <context-group name="null"> 1414 <context-group name="null">
757 <context context-type="linenumber">60</context> 1415 <context context-type="linenumber">61</context>
758 </context-group> 1416 </context-group>
759 </trans-unit> 1417 </trans-unit>
760 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1418 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -768,7 +1426,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
768 <source>Tags</source> 1426 <source>Tags</source>
769 <target>Tags</target> 1427 <target>Tags</target>
770 <context-group name="null"> 1428 <context-group name="null">
771 <context context-type="linenumber">15</context> 1429 <context context-type="linenumber">171</context>
772 </context-group> 1430 </context-group>
773 </trans-unit> 1431 </trans-unit>
774 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1432 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -785,27 +1443,6 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
785 <context context-type="linenumber">24</context> 1443 <context context-type="linenumber">24</context>
786 </context-group> 1444 </context-group>
787 </trans-unit> 1445 </trans-unit>
788 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
789 <source>Category</source>
790 <target>Kategorie</target>
791 <context-group name="null">
792 <context context-type="linenumber">44</context>
793 </context-group>
794 </trans-unit>
795 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
796 <source>Licence</source>
797 <target>Lizenz</target>
798 <context-group name="null">
799 <context context-type="linenumber">58</context>
800 </context-group>
801 </trans-unit>
802 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
803 <source>Language</source>
804 <target>Sprache</target>
805 <context-group name="null">
806 <context context-type="linenumber">72</context>
807 </context-group>
808 </trans-unit>
809 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1446 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
810 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1447 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
811 <target>Veröffentlichung planen (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1448 <target>Veröffentlichung planen (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -817,35 +1454,28 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
817 <source>This video contains mature or explicit content</source> 1454 <source>This video contains mature or explicit content</source>
818 <target>Dieses Video enthält Inhalte, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden.</target> 1455 <target>Dieses Video enthält Inhalte, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden.</target>
819 <context-group name="null"> 1456 <context-group name="null">
820 <context context-type="linenumber">116</context> 1457 <context context-type="linenumber">115</context>
821 </context-group> 1458 </context-group>
822 </trans-unit> 1459 </trans-unit>
823 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1460 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
824 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1461 <source>Some instances do not list videos containing mature or explicit content by default.</source>
825 <target>Einige Instanzen zeigen keine Videos, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden.</target> 1462 <target>Einige Instanzen zeigen keine Videos, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden.</target>
826 <context-group name="null"> 1463 <context-group name="null">
827 <context context-type="linenumber">119</context> 1464 <context context-type="linenumber">116</context>
828 </context-group> 1465 </context-group>
829 </trans-unit> 1466 </trans-unit>
830 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1467 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
831 <source>Enable video comments</source> 1468 <source>Enable video comments</source>
832 <target>Video-Kommentare zulassen</target> 1469 <target>Video-Kommentare zulassen</target>
833 <context-group name="null"> 1470 <context-group name="null">
834 <context context-type="linenumber">126</context> 1471 <context context-type="linenumber">121</context>
835 </context-group> 1472 </context-group>
836 </trans-unit> 1473 </trans-unit>
837 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1474 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
838 <source>Wait transcoding before publishing the video</source> 1475 <source>Wait transcoding before publishing the video</source>
839 <target>Warte das Transcodieren ab, bevor du das Video veröffentlichst</target> 1476 <target>Warte das Transcodieren ab, bevor du das Video veröffentlichst</target>
840 <context-group name="null"> 1477 <context-group name="null">
841 <context context-type="linenumber">132</context> 1478 <context context-type="linenumber">126</context>
842 </context-group>
843 </trans-unit>
844 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
845 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
846 <target>Wenn du dich entschließt, das Transcodieren vor Veröffentlichung des Videos nicht abzuwarten, ist es möglicherweise nicht abspielbar, bis das Transcodieren abgeschlossen ist.</target>
847 <context-group name="null">
848 <context context-type="linenumber">135</context>
849 </context-group> 1479 </context-group>
850 </trans-unit> 1480 </trans-unit>
851 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1481 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -859,42 +1489,35 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
859 <source>Upload thumbnail</source> 1489 <source>Upload thumbnail</source>
860 <target>Miniaturansicht hochladen</target> 1490 <target>Miniaturansicht hochladen</target>
861 <context-group name="null"> 1491 <context-group name="null">
862 <context context-type="linenumber">146</context> 1492 <context context-type="linenumber">186</context>
863 </context-group> 1493 </context-group>
864 </trans-unit> 1494 </trans-unit>
865 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1495 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
866 <source>Upload preview</source> 1496 <source>Upload preview</source>
867 <target>Vorschau hochladen</target> 1497 <target>Vorschau hochladen</target>
868 <context-group name="null"> 1498 <context-group name="null">
869 <context context-type="linenumber">153</context> 1499 <context context-type="linenumber">193</context>
870 </context-group> 1500 </context-group>
871 </trans-unit> 1501 </trans-unit>
872 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1502 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
873 <source>Support</source> 1503 <source>Support</source>
874 <target>Unterstützen</target> 1504 <target>Unterstützen</target>
875 <context-group name="null"> 1505 <context-group name="null">
876 <context context-type="linenumber">59</context> 1506 <context context-type="linenumber">67</context>
877 </context-group> 1507 </context-group>
878 </trans-unit> 1508 </trans-unit>
879 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1509 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
880 <source>Short text to tell people how they can support you (membership platform...).</source> 1510 <source>Short text to tell people how they can support you (membership platform...).</source>
881 <target>Ein kurzer Text, der anderen erklärt, wie sie dich unterstützen können.</target> 1511 <target>Ein kurzer Text, der anderen erklärt, wie sie dich unterstützen können.</target>
882 <context-group name="null"> 1512 <context-group name="null">
883 <context context-type="linenumber">160</context> 1513 <context context-type="linenumber">200</context>
884 </context-group> 1514 </context-group>
885 </trans-unit> 1515 </trans-unit>
886 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1516 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
887 <source>Advanced settings</source> 1517 <source>Advanced settings</source>
888 <target>Erweiterte Einstellungen</target> 1518 <target>Erweiterte Einstellungen</target>
889 <context-group name="null"> 1519 <context-group name="null">
890 <context context-type="linenumber">142</context> 1520 <context context-type="linenumber">182</context>
891 </context-group>
892 </trans-unit>
893 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
894 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
895 <target>(zulässige Datei-Erweiterungen: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, maximale Größe: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
896 <context-group name="null">
897 <context context-type="linenumber">11</context>
898 </context-group> 1521 </context-group>
899 </trans-unit> 1522 </trans-unit>
900 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1523 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -912,7 +1535,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
912 <source>Update</source> 1535 <source>Update</source>
913 <target>Aktualisieren</target> 1536 <target>Aktualisieren</target>
914 <context-group name="null"> 1537 <context-group name="null">
915 <context context-type="linenumber">93</context> 1538 <context context-type="linenumber">101</context>
916 </context-group> 1539 </context-group>
917 </trans-unit> 1540 </trans-unit>
918 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1541 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -922,32 +1545,18 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
922 <context context-type="linenumber">7</context> 1545 <context context-type="linenumber">7</context>
923 </context-group> 1546 </context-group>
924 </trans-unit> 1547 </trans-unit>
925 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
926 <source>Torrent</source>
927 <target>Torrent</target>
928 <context-group name="null">
929 <context context-type="linenumber">20</context>
930 </context-group>
931 </trans-unit>
932 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1548 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
933 <source>Direct download</source> 1549 <source>Direct download</source>
934 <target>Direkter Download</target> 1550 <target>Direkter Download</target>
935 <context-group name="null"> 1551 <context-group name="null">
936 <context context-type="linenumber">25</context> 1552 <context context-type="linenumber">20</context>
937 </context-group>
938 </trans-unit>
939 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
940 <source>Torrent (magnet)</source>
941 <target>Torrent (Magnet)</target>
942 <context-group name="null">
943 <context context-type="linenumber">30</context>
944 </context-group> 1553 </context-group>
945 </trans-unit> 1554 </trans-unit>
946 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1555 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
947 <source>Download</source> 1556 <source>Download</source>
948 <target>Herunterladen</target> 1557 <target>Herunterladen</target>
949 <context-group name="null"> 1558 <context-group name="null">
950 <context context-type="linenumber">75</context> 1559 <context context-type="linenumber">83</context>
951 </context-group> 1560 </context-group>
952 </trans-unit> 1561 </trans-unit>
953 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1562 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -986,7 +1595,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
986 <source>Share</source> 1595 <source>Share</source>
987 <target>Teilen</target> 1596 <target>Teilen</target>
988 <context-group name="null"> 1597 <context-group name="null">
989 <context context-type="linenumber">64</context> 1598 <context context-type="linenumber">72</context>
990 </context-group> 1599 </context-group>
991 </trans-unit> 1600 </trans-unit>
992 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1601 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1022,7 +1631,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1022 Dieses Video wird transcodiert, es funktioniert daher möglicherweise nicht ganz. 1631 Dieses Video wird transcodiert, es funktioniert daher möglicherweise nicht ganz.
1023 </target> 1632 </target>
1024 <context-group name="null"> 1633 <context-group name="null">
1025 <context context-type="linenumber">6</context> 1634 <context context-type="linenumber">11</context>
1026 </context-group> 1635 </context-group>
1027 </trans-unit> 1636 </trans-unit>
1028 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1637 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1033,7 +1642,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1033 Dieses Video wird am <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> veröffentlicht 1642 Dieses Video wird am <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> veröffentlicht
1034 </target> 1643 </target>
1035 <context-group name="null"> 1644 <context-group name="null">
1036 <context context-type="linenumber">10</context> 1645 <context context-type="linenumber">15</context>
1037 </context-group> 1646 </context-group>
1038 </trans-unit> 1647 </trans-unit>
1039 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1648 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1044,160 +1653,105 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1044 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe 1653 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> Aufrufe
1045 </target> 1654 </target>
1046 <context-group name="null"> 1655 <context-group name="null">
1047 <context context-type="linenumber">21</context> 1656 <context context-type="linenumber">26</context>
1048 </context-group> 1657 </context-group>
1049 </trans-unit> 1658 </trans-unit>
1050 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1659 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1051 <source>Go the channel page</source> 1660 <source>Go the channel page</source>
1052 <target>Zur Seite des Kanals gehen</target> 1661 <target>Zur Seite des Kanals gehen</target>
1053 <context-group name="null"> 1662 <context-group name="null">
1054 <context context-type="linenumber">26</context> 1663 <context context-type="linenumber">31</context>
1055 </context-group> 1664 </context-group>
1056 </trans-unit> 1665 </trans-unit>
1057 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1666 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1058 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1667 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1059 <target>Von <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1668 <target>Von <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1060 <context-group name="null"> 1669 <context-group name="null">
1061 <context context-type="linenumber">35</context> 1670 <context context-type="linenumber">41</context>
1062 </context-group> 1671 </context-group>
1063 </trans-unit> 1672 </trans-unit>
1064 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1673 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1065 <source>Go to the account page</source> 1674 <source>Go to the account page</source>
1066 <target>Zur Konto-Seite gehen</target> 1675 <target>Zur Konto-Seite gehen</target>
1067 <context-group name="null"> 1676 <context-group name="null">
1068 <context context-type="linenumber">34</context> 1677 <context context-type="linenumber">40</context>
1069 </context-group> 1678 </context-group>
1070 </trans-unit> 1679 </trans-unit>
1071 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1680 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1072 <source>Like this video</source> 1681 <source>Like this video</source>
1073 <target>Das Video gefällt mir</target> 1682 <target>Das Video gefällt mir</target>
1074 <context-group name="null"> 1683 <context-group name="null">
1075 <context context-type="linenumber">47</context> 1684 <context context-type="linenumber">55</context>
1076 </context-group> 1685 </context-group>
1077 </trans-unit> 1686 </trans-unit>
1078 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1687 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1079 <source>Dislike this video</source> 1688 <source>Dislike this video</source>
1080 <target>Das Video gefällt mir nicht</target> 1689 <target>Das Video gefällt mir nicht</target>
1081 <context-group name="null"> 1690 <context-group name="null">
1082 <context context-type="linenumber">54</context> 1691 <context context-type="linenumber">62</context>
1083 </context-group> 1692 </context-group>
1084 </trans-unit> 1693 </trans-unit>
1085 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1694 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1086 <source>Download the video</source> 1695 <source>Download the video</source>
1087 <target>Video herunterladen</target> 1696 <target>Video herunterladen</target>
1088 <context-group name="null"> 1697 <context-group name="null">
1089 <context context-type="linenumber">74</context> 1698 <context context-type="linenumber">82</context>
1090 </context-group> 1699 </context-group>
1091 </trans-unit> 1700 </trans-unit>
1092 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1701 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1093 <source>Report</source> 1702 <source>Report</source>
1094 <target>Melden</target> 1703 <target>Melden</target>
1095 <context-group name="null"> 1704 <context-group name="null">
1096 <context context-type="linenumber">81</context> 1705 <context context-type="linenumber">89</context>
1097 </context-group> 1706 </context-group>
1098 </trans-unit> 1707 </trans-unit>
1099 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1708 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1100 <source>Report this video</source> 1709 <source>Report this video</source>
1101 <target>Dieses Vieo melden</target> 1710 <target>Dieses Vieo melden</target>
1102 <context-group name="null"> 1711 <context-group name="null">
1103 <context context-type="linenumber">80</context> 1712 <context context-type="linenumber">88</context>
1104 </context-group> 1713 </context-group>
1105 </trans-unit> 1714 </trans-unit>
1106 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1715 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1107 <source>Blacklist</source> 1716 <source>Blacklist</source>
1108 <target>Auf die Blacklist setzen</target> 1717 <target>Auf die Blacklist setzen</target>
1109 <context-group name="null"> 1718 <context-group name="null">
1110 <context context-type="linenumber">87</context> 1719 <context context-type="linenumber">95</context>
1111 </context-group> 1720 </context-group>
1112 </trans-unit> 1721 </trans-unit>
1113 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1722 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1114 <source>Blacklist this video</source> 1723 <source>Blacklist this video</source>
1115 <target>Dieses Video auf die Blacklist setzen</target> 1724 <target>Dieses Video auf die Blacklist setzen</target>
1116 <context-group name="null"> 1725 <context-group name="null">
1117 <context context-type="linenumber">86</context> 1726 <context context-type="linenumber">94</context>
1118 </context-group> 1727 </context-group>
1119 </trans-unit> 1728 </trans-unit>
1120 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1729 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1121 <source>Update this video</source> 1730 <source>Update this video</source>
1122 <target>Dieses Video aktualisieren</target> 1731 <target>Dieses Video aktualisieren</target>
1123 <context-group name="null"> 1732 <context-group name="null">
1124 <context context-type="linenumber">92</context> 1733 <context context-type="linenumber">100</context>
1125 </context-group> 1734 </context-group>
1126 </trans-unit> 1735 </trans-unit>
1127 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1736 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1128 <source>Delete this video</source> 1737 <source>Delete this video</source>
1129 <target>Dieses Video löschen</target> 1738 <target>Dieses Video löschen</target>
1130 <context-group name="null"> 1739 <context-group name="null">
1131 <context context-type="linenumber">98</context> 1740 <context context-type="linenumber">106</context>
1132 </context-group> 1741 </context-group>
1133 </trans-unit> 1742 </trans-unit>
1134 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1743 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1135 <source>Show more</source> 1744 <source>Show more</source>
1136 <target>Mehr anzeigen</target> 1745 <target>Mehr anzeigen</target>
1137 <context-group name="null"> 1746 <context-group name="null">
1138 <context context-type="linenumber">118</context> 1747 <context context-type="linenumber">126</context>
1139 </context-group> 1748 </context-group>
1140 </trans-unit> 1749 </trans-unit>
1141 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1750 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1142 <source>Show less</source> 1751 <source>Show less</source>
1143 <target>Weniger anzeigen</target> 1752 <target>Weniger anzeigen</target>
1144 <context-group name="null"> 1753 <context-group name="null">
1145 <context context-type="linenumber">124</context> 1754 <context context-type="linenumber">132</context>
1146 </context-group>
1147 </trans-unit>
1148 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1149 <source>
1150 Privacy
1151 </source>
1152 <target>
1153 Privatsphäre
1154 </target>
1155 <context-group name="null">
1156 <context context-type="linenumber">131</context>
1157 </context-group>
1158 </trans-unit>
1159 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
1160 <source>
1161 Category
1162 </source>
1163 <target>
1164 Kategorie
1165 </target>
1166 <context-group name="null">
1167 <context context-type="linenumber">140</context>
1168 </context-group>
1169 </trans-unit>
1170 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
1171 <source>
1172 Licence
1173 </source>
1174 <target>
1175 Lizenz
1176 </target>
1177 <context-group name="null">
1178 <context context-type="linenumber">149</context>
1179 </context-group>
1180 </trans-unit>
1181 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
1182 <source>
1183 Language
1184 </source>
1185 <target>
1186 Sprache
1187 </target>
1188 <context-group name="null">
1189 <context context-type="linenumber">158</context>
1190 </context-group>
1191 </trans-unit>
1192 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
1193 <source>
1194 Tags
1195 </source>
1196 <target>
1197 Tags
1198 </target>
1199 <context-group name="null">
1200 <context context-type="linenumber">167</context>
1201 </context-group> 1755 </context-group>
1202 </trans-unit> 1756 </trans-unit>
1203 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1757 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -1208,24 +1762,13 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1208 Andere Videos 1762 Andere Videos
1209 </target> 1763 </target>
1210 <context-group name="null"> 1764 <context-group name="null">
1211 <context context-type="linenumber">181</context> 1765 <context context-type="linenumber">183</context>
1212 </context-group> 1766 </context-group>
1213 </trans-unit> 1767 </trans-unit>
1214 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1768 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
1215 <source>Friendly Reminder:</source> 1769 <source>Friendly Reminder:</source>
1216 <target>Freundliche Erinnerung:</target> 1770 <target>Freundliche Erinnerung:</target>
1217 <context-group name="null"> 1771 <context-group name="null">
1218 <context context-type="linenumber">193</context>
1219 </context-group>
1220 </trans-unit>
1221 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
1222 <source>
1223 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
1224 </source>
1225 <target>
1226 Die Technik, die von diesem Video genutzt wird, macht einige technische Informationen über dein System (wie die öffentliche IP-Adresse) öffentlich zugänglich.
1227 </target>
1228 <context-group name="null">
1229 <context context-type="linenumber">195</context> 1772 <context context-type="linenumber">195</context>
1230 </context-group> 1773 </context-group>
1231 </trans-unit> 1774 </trans-unit>
@@ -1233,14 +1776,14 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1233 <source>More information</source> 1776 <source>More information</source>
1234 <target>Weitere Informationen</target> 1777 <target>Weitere Informationen</target>
1235 <context-group name="null"> 1778 <context-group name="null">
1236 <context context-type="linenumber">198</context> 1779 <context context-type="linenumber">200</context>
1237 </context-group> 1780 </context-group>
1238 </trans-unit> 1781 </trans-unit>
1239 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1782 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
1240 <source>Get more information</source> 1783 <source>Get more information</source>
1241 <target>Weitere Informationen bekommen</target> 1784 <target>Weitere Informationen bekommen</target>
1242 <context-group name="null"> 1785 <context-group name="null">
1243 <context context-type="linenumber">198</context> 1786 <context context-type="linenumber">200</context>
1244 </context-group> 1787 </context-group>
1245 </trans-unit> 1788 </trans-unit>
1246 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1789 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -1251,7 +1794,7 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1251 OK 1794 OK
1252 </target> 1795 </target>
1253 <context-group name="null"> 1796 <context-group name="null">
1254 <context context-type="linenumber">201</context> 1797 <context context-type="linenumber">203</context>
1255 </context-group> 1798 </context-group>
1256 </trans-unit> 1799 </trans-unit>
1257 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1800 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -1265,6 +1808,455 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1265 <context context-type="linenumber">3</context> 1808 <context context-type="linenumber">3</context>
1266 </context-group> 1809 </context-group>
1267 </trans-unit> 1810 </trans-unit>
1811 <trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
1812 <source>No comments.</source>
1813 <target>Keine Kommentare.</target>
1814 <context-group name="null">
1815 <context context-type="linenumber">19</context>
1816 </context-group>
1817 </trans-unit>
1818 <trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
1819 <source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
1820 <target>Zeige alle <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> Antworten</target>
1821 <context-group name="null">
1822 <context context-type="linenumber">56</context>
1823 </context-group>
1824 </trans-unit>
1825 <trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
1826 <source>
1827 Comments are disabled.
1828 </source>
1829 <target>
1830 Kommentare sind abgeschaltet.
1831 </target>
1832 <context-group name="null">
1833 <context context-type="linenumber">65</context>
1834 </context-group>
1835 </trans-unit>
1836 <trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
1837 <source>Add comment...</source>
1838 <target>Kommentieren...</target>
1839 <context-group name="null">
1840 <context context-type="linenumber">6</context>
1841 </context-group>
1842 </trans-unit>
1843 <trans-unit id="26fa50ba8e69b53162b348d98e25f8b76c81343e">
1844 <source>
1845 Post comment
1846 </source>
1847 <target>
1848 Kommentieren
1849 </target>
1850 <context-group name="null">
1851 <context context-type="linenumber">17</context>
1852 </context-group>
1853 </trans-unit>
1854 <trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
1855 <source>Highlighted comment</source>
1856 <target>Markierter Kommentar</target>
1857 <context-group name="null">
1858 <context context-type="linenumber">5</context>
1859 </context-group>
1860 </trans-unit>
1861 <trans-unit id="cb23d4d98007aa4d7123837f4c17a671848377d6">
1862 <source>Reply</source>
1863 <target>Antworten</target>
1864 <context-group name="null">
1865 <context context-type="linenumber">14</context>
1866 </context-group>
1867 </trans-unit>
1868 <trans-unit id="814d28bf9dcbd3122254e664b446ac8e0442bc08">
1869 <source>Error getting about from server</source>
1870 <target>Server-Fehler.</target>
1871 <context-group name="null">
1872 <context context-type="linenumber">1</context>
1873 </context-group>
1874 </trans-unit>
1875 <trans-unit id="37b56526e384f843a15323dc730b484a97b4c968">
1876 <source>No description</source>
1877 <target>Keine Beschreibung</target>
1878 <context-group name="null">
1879 <context context-type="linenumber">1</context>
1880 </context-group>
1881 </trans-unit>
1882 <trans-unit id="2f03e577e8f81a9f8be0095f93e1f9376c6eedc9">
1883 <source>Published videos</source>
1884 <target>Veröffentlichte Videos</target>
1885 <context-group name="null">
1886 <context context-type="linenumber">1</context>
1887 </context-group>
1888 </trans-unit>
1889 <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
1890 <source>Error</source>
1891 <target>Fehler</target>
1892 <context-group name="null">
1893 <context context-type="linenumber">1</context>
1894 </context-group>
1895 </trans-unit>
1896 <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
1897 <source>This could lead to security issues or bugs if you do not understand it. </source>
1898 <target>Das könnte zu Sicherheitslücken führen, falls du es nicht verstehst.</target>
1899 <context-group name="null">
1900 <context context-type="linenumber">1</context>
1901 </context-group>
1902 </trans-unit>
1903 <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
1904 <source>Are you sure you want to update the configuration?</source>
1905 <target>Willst du die Einstellungen wirklich aktualisieren?</target>
1906 <context-group name="null">
1907 <context context-type="linenumber">1</context>
1908 </context-group>
1909 </trans-unit>
1910 <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
1911 <source>Please type</source>
1912 <target>Bitte eingeben</target>
1913 <context-group name="null">
1914 <context context-type="linenumber">1</context>
1915 </context-group>
1916 </trans-unit>
1917 <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
1918 <source>to confirm.</source>
1919 <target>zur Bestätigung</target>
1920 <context-group name="null">
1921 <context context-type="linenumber">1</context>
1922 </context-group>
1923 </trans-unit>
1924 <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
1925 <source>Success</source>
1926 <target>Erfolg</target>
1927 <context-group name="null">
1928 <context context-type="linenumber">1</context>
1929 </context-group>
1930 </trans-unit>
1931 <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
1932 <source>Configuration updated.</source>
1933 <target>Einstellungen aktualisiert.</target>
1934 <context-group name="null">
1935 <context context-type="linenumber">1</context>
1936 </context-group>
1937 </trans-unit>
1938 <trans-unit id="e02f50674f1d96966384dc096beb42d4973997df">
1939 <source>You need to specify hosts to follow.</source>
1940 <target>Du musst Hosts zum Abonnieren angeben.</target>
1941 <context-group name="null">
1942 <context context-type="linenumber">1</context>
1943 </context-group>
1944 </trans-unit>
1945 <trans-unit id="c2a114eb000e7c38e8ad4b1768821bdf6e946d71">
1946 <source>Hosts need to be unique.</source>
1947 <target>Die Hosts müssen sich unterscheiden.</target>
1948 <context-group name="null">
1949 <context context-type="linenumber">1</context>
1950 </context-group>
1951 </trans-unit>
1952 <trans-unit id="1266acb081ef0324c4a38ae2d514dd75d8b38409">
1953 <source>Follow new server(s)</source>
1954 <target>Neue Server abonnieren</target>
1955 <context-group name="null">
1956 <context context-type="linenumber">1</context>
1957 </context-group>
1958 </trans-unit>
1959 <trans-unit id="950f5111d567e5c0e971f07c26e8c2be1d919a8e">
1960 <source>Follow request(s) sent!</source>
1961 <target>Abonnementanfrage(n) gesendet!</target>
1962 <context-group name="null">
1963 <context context-type="linenumber">1</context>
1964 </context-group>
1965 </trans-unit>
1966 <trans-unit id="5729c34a858c78daa1aa606f62a3665527cf97e6">
1967 <source>Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>?</source>
1968 <target>Möchtest du wirklich <x id="INTERPOLATION" equiv-text="{{host}}"/> deabonnieren?</target>
1969 <context-group name="null">
1970 <context context-type="linenumber">1</context>
1971 </context-group>
1972 </trans-unit>
1973 <trans-unit id="a89875525c82ab81ffe32e481a5475b43d0c2902">
1974 <source>Unfollow</source>
1975 <target>Deabonnieren</target>
1976 <context-group name="null">
1977 <context context-type="linenumber">1</context>
1978 </context-group>
1979 </trans-unit>
1980 <trans-unit id="fb4e35e2b0ea2abc1f71295a4b34830e57c07bd0">
1981 <source>You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore.</source>
1982 <target>Du folgst <x id="INTERPOLATION" equiv-text="{{host}}"/> nicht mehr.</target>
1983 <context-group name="null">
1984 <context context-type="linenumber">1</context>
1985 </context-group>
1986 </trans-unit>
1987 <trans-unit id="f995df052a1dfc675c2a21926420a707d9601936">
1988 <source>Following</source>
1989 <target>Abonniert</target>
1990 <context-group name="null">
1991 <context context-type="linenumber">1</context>
1992 </context-group>
1993 </trans-unit>
1994 <trans-unit id="d29764bcbaad3ef69b6be92be35bdf25972ce246">
1995 <source>Follow</source>
1996 <target>Abonnieren</target>
1997 <context-group name="null">
1998 <context context-type="linenumber">1</context>
1999 </context-group>
2000 </trans-unit>
2001 <trans-unit id="9bee670725966ed477b4c33a545c8b5436b0065e">
2002 <source>Followers</source>
2003 <target>Abonnenten</target>
2004 <context-group name="null">
2005 <context context-type="linenumber">1</context>
2006 </context-group>
2007 </trans-unit>
2008 <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
2009 <source>Unlimited</source>
2010 <target>Unbegrenzt</target>
2011 <context-group name="null">
2012 <context context-type="linenumber">1</context>
2013 </context-group>
2014 </trans-unit>
2015 <trans-unit id="364463fab6c5714118d6449561a0f8de1cc10bfa">
2016 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> created.</source>
2017 <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> erstellt.</target>
2018 <context-group name="null">
2019 <context context-type="linenumber">1</context>
2020 </context-group>
2021 </trans-unit>
2022 <trans-unit id="964865a3cd90b4af99902f071644a4b2aede4c32">
2023 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated.</source>
2024 <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> aktualisiert.</target>
2025 <context-group name="null">
2026 <context context-type="linenumber">1</context>
2027 </context-group>
2028 </trans-unit>
2029 <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f">
2030 <source>Update user</source>
2031 <target>Benutzer aktualisieren</target>
2032 <context-group name="null">
2033 <context context-type="linenumber">1</context>
2034 </context-group>
2035 </trans-unit>
2036 <trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
2037 <source>You cannot delete root.</source>
2038 <target>Du kannst die Wurzel nicht löschen.</target>
2039 <context-group name="null">
2040 <context context-type="linenumber">1</context>
2041 </context-group>
2042 </trans-unit>
2043 <trans-unit id="9ef88654aab4b2df4fa2083f33caa0c5419c1a60">
2044 <source>Do you really want to delete this user?</source>
2045 <target>Willst du wirklich diesen Benutzer entfernen?</target>
2046 <context-group name="null">
2047 <context context-type="linenumber">1</context>
2048 </context-group>
2049 </trans-unit>
2050 <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
2051 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
2052 <target>Benutzer <x id="INTERPOLATION" equiv-text="{{username}}"/> entfernt.</target>
2053 <context-group name="null">
2054 <context context-type="linenumber">1</context>
2055 </context-group>
2056 </trans-unit>
2057 <trans-unit id="4733ad1d7e63960438c0203b9a64f165b5fc84f2">
2058 <source>Do you really want to remove this video from the blacklist ? It will be available again in the videos list.</source>
2059 <target>Willst du das Video wirklich entsperren? Es wird dann wieder gelistet.</target>
2060 <context-group name="null">
2061 <context context-type="linenumber">1</context>
2062 </context-group>
2063 </trans-unit>
2064 <trans-unit id="1585babc36806e20e225ac27dbba0e7c7cd09e0f">
2065 <source>Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist.</source>
2066 <target>Sperrung von <x id="INTERPOLATION" equiv-text="{{name}}"/> aufgehoben.</target>
2067 <context-group name="null">
2068 <context context-type="linenumber">1</context>
2069 </context-group>
2070 </trans-unit>
2071 <trans-unit id="2db8f1f93a5485c32267762a3bf4da499832e732">
2072 <source>The new password and the confirmed password do not correspond.</source>
2073 <target>Die Passwörter stimmen nicht überein.</target>
2074 <context-group name="null">
2075 <context context-type="linenumber">1</context>
2076 </context-group>
2077 </trans-unit>
2078 <trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
2079 <source>Password updated.</source>
2080 <target>Passwort aktualisiert.</target>
2081 <context-group name="null">
2082 <context context-type="linenumber">1</context>
2083 </context-group>
2084 </trans-unit>
2085 <trans-unit id="db4ff52375f6a25ad0472e92754c8c265ae47c6b">
2086 <source>Profile updated.</source>
2087 <target>Profil aktualisiert.</target>
2088 <context-group name="null">
2089 <context context-type="linenumber">1</context>
2090 </context-group>
2091 </trans-unit>
2092 <trans-unit id="1e003ad599ef836949b9f4dad3037a58ef3ff8d1">
2093 <source>Avatar changed.</source>
2094 <target>Avatar aktualisiert.</target>
2095 <context-group name="null">
2096 <context context-type="linenumber">1</context>
2097 </context-group>
2098 </trans-unit>
2099 <trans-unit id="214b802dfd6f544003147a7a68938ec1055c8f32">
2100 <source>Information updated.</source>
2101 <target>Infos aktualisiert.</target>
2102 <context-group name="null">
2103 <context context-type="linenumber">1</context>
2104 </context-group>
2105 </trans-unit>
2106 <trans-unit id="3ef8bf973a9a481a08c6f0aaa875f0259b3ea645">
2107 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created.</source>
2108 <target>Kanal <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> erstellt.</target>
2109 <context-group name="null">
2110 <context context-type="linenumber">1</context>
2111 </context-group>
2112 </trans-unit>
2113 <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795">
2114 <source>Create</source>
2115 <target>Erstellen</target>
2116 <context-group name="null">
2117 <context context-type="linenumber">1</context>
2118 </context-group>
2119 </trans-unit>
2120 <trans-unit id="98ab64f0af924a60a48b40835c1b655bd17c6559">
2121 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated.</source>
2122 <target>Kanal <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> aktualisiert.</target>
2123 <context-group name="null">
2124 <context context-type="linenumber">1</context>
2125 </context-group>
2126 </trans-unit>
2127 <trans-unit id="d5adc9efad0469fc3e1503d68c4ec2ff4453a814">
2128 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/>? It will delete all videos uploaded in this channel too.</source>
2129 <target>Willst du wirklich <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> löschen? Alle Videos des Kanals werden dann unwiderruflich gelöscht.</target>
2130 <context-group name="null">
2131 <context context-type="linenumber">1</context>
2132 </context-group>
2133 </trans-unit>
2134 <trans-unit id="703dee7f3e693f9c77ef17c46f9fa71999609f8e">
2135 <source>Please type the name of the video channel to confirm</source>
2136 <target>Bitte gib zur Bestätigung den Namen des Kanals ein</target>
2137 <context-group name="null">
2138 <context context-type="linenumber">1</context>
2139 </context-group>
2140 </trans-unit>
2141 <trans-unit id="a81a33275b683729ad938b6102e7e34a057537a2">
2142 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted.</source>
2143 <target>Kanal <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> entfernt.</target>
2144 <context-group name="null">
2145 <context context-type="linenumber">1</context>
2146 </context-group>
2147 </trans-unit>
2148 <trans-unit id="00e16d1f1c5cc936ec0881cd02cbf66aa1b4cddd">
2149 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos?</source>
2150 <target>Willst du wirklich <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> Videos löschen?</target>
2151 <context-group name="null">
2152 <context context-type="linenumber">1</context>
2153 </context-group>
2154 </trans-unit>
2155 <trans-unit id="dff7d4574cfaa785cbd4c0a5ffb5befec19a5d83">
2156 <source><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted.</source>
2157 <target><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> Videos entfernt.</target>
2158 <context-group name="null">
2159 <context context-type="linenumber">1</context>
2160 </context-group>
2161 </trans-unit>
2162 <trans-unit id="4ec5852c869b2fb4ae0e564b51278d7be8013fc7">
2163 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>?</source>
2164 <target>Willst du <x id="INTERPOLATION" equiv-text="{{videoName}}"/> wirklich löschen?</target>
2165 <context-group name="null">
2166 <context context-type="linenumber">1</context>
2167 </context-group>
2168 </trans-unit>
2169 <trans-unit id="d39a0bfa616a9a8473b2e379eefe17d8ed1af118">
2170 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted.</source>
2171 <target>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> entfernt.</target>
2172 <context-group name="null">
2173 <context context-type="linenumber">1</context>
2174 </context-group>
2175 </trans-unit>
2176 <trans-unit id="dd9f3264feed4935008861c15d81c947124e4ac3">
2177 <source>Published</source>
2178 <target>Veröffentlicht</target>
2179 <context-group name="null">
2180 <context context-type="linenumber">1</context>
2181 </context-group>
2182 </trans-unit>
2183 <trans-unit id="8e6d54c4f760d9e90518eef5334211c48c0b71e2">
2184 <source>Publication scheduled on </source>
2185 <target>Veröffentlichung angesetzt für</target>
2186 <context-group name="null">
2187 <context context-type="linenumber">1</context>
2188 </context-group>
2189 </trans-unit>
2190 <trans-unit id="4a7e91ebe1cf184db5f2bfecf9c16ff81c9e2c02">
2191 <source>Waiting transcoding</source>
2192 <target>Warte auf Transcodierung</target>
2193 <context-group name="null">
2194 <context context-type="linenumber">1</context>
2195 </context-group>
2196 </trans-unit>
2197 <trans-unit id="21f1c9d5c67346c830aced4f670045fcf0aeb83a">
2198 <source>To transcode</source>
2199 <target>Zur Transcodierung</target>
2200 <context-group name="null">
2201 <context context-type="linenumber">1</context>
2202 </context-group>
2203 </trans-unit>
2204 <trans-unit id="8d9b4f4b69108c3c9aa0f3b0dbde87786ba9b319">
2205 <source>Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section.</source>
2206 <target>Stelle sicher, dass du PeerTube (config/directory) korrekt eingestellt hast, insbesondere die Webserver-Sektion</target>
2207 <context-group name="null">
2208 <context context-type="linenumber">1</context>
2209 </context-group>
2210 </trans-unit>
2211 <trans-unit id="e31bbf15d6ba5c7c0f17f89a98029cff0bd40b87">
2212 <source>You need to reconnect.</source>
2213 <target>Bitte verbinde dich erneut.</target>
2214 <context-group name="null">
2215 <context context-type="linenumber">1</context>
2216 </context-group>
2217 </trans-unit>
2218 <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da">
2219 <source>Confirm</source>
2220 <target>Okay</target>
2221 <context-group name="null">
2222 <context context-type="linenumber">1</context>
2223 </context-group>
2224 </trans-unit>
2225 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2226 <source>Unable to find user id or verification string.</source>
2227 <target>Benutzer-ID oder Verification String nicht gefunden.</target>
2228 <context-group name="null">
2229 <context context-type="linenumber">1</context>
2230 </context-group>
2231 </trans-unit>
2232 <trans-unit id="b0f24b7136e551a0deba831f1525711245b31a26">
2233 <source>Your password has been successfully reset!</source>
2234 <target>Dein Passwort wurde zurückgesetzt!</target>
2235 <context-group name="null">
2236 <context context-type="linenumber">1</context>
2237 </context-group>
2238 </trans-unit>
2239 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2240 <source>Today</source>
2241 <target>Heute</target>
2242 <context-group name="null">
2243 <context context-type="linenumber">1</context>
2244 </context-group>
2245 </trans-unit>
2246 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2247 <source>Search</source>
2248 <target>Suche</target>
2249 <context-group name="null">
2250 <context context-type="linenumber">1</context>
2251 </context-group>
2252 </trans-unit>
2253 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2254 <source>Instance name is required.</source>
2255 <target>Bitte gib einen Instanznamen ein.</target>
2256 <context-group name="null">
2257 <context context-type="linenumber">1</context>
2258 </context-group>
2259 </trans-unit>
1268 <trans-unit id="10a248adb1ee12830355a04ac3cde2bad2d41d7d"> 2260 <trans-unit id="10a248adb1ee12830355a04ac3cde2bad2d41d7d">
1269 <source>Short description should not be longer than 250 characters.</source> 2261 <source>Short description should not be longer than 250 characters.</source>
1270 <target>Die Kurzbeschreibung sollte nicht mehr als 250 Zeichen umfassen.</target> 2262 <target>Die Kurzbeschreibung sollte nicht mehr als 250 Zeichen umfassen.</target>
@@ -1272,6 +2264,104 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1272 <context context-type="linenumber">1</context> 2264 <context context-type="linenumber">1</context>
1273 </context-group> 2265 </context-group>
1274 </trans-unit> 2266 </trans-unit>
2267 <trans-unit id="356e63270712273da168072ec0fc78a969919bf1">
2268 <source>Twitter username is required.</source>
2269 <target>Bitte gib einen Twitter-Benutzernamen ein.</target>
2270 <context-group name="null">
2271 <context context-type="linenumber">1</context>
2272 </context-group>
2273 </trans-unit>
2274 <trans-unit id="dbb2ef02020afc05e146855f2e1dd7c9522d49b6">
2275 <source>Previews cache size is required.</source>
2276 <target>Bitte gib eine Cachegröße an.</target>
2277 <context-group name="null">
2278 <context context-type="linenumber">1</context>
2279 </context-group>
2280 </trans-unit>
2281 <trans-unit id="97836c6e698185b4ce357de9d4b2ab3e838f2459">
2282 <source>Previews cache size must be greater than 1.</source>
2283 <target>Cachegröße muss größer als 1 sein.</target>
2284 <context-group name="null">
2285 <context context-type="linenumber">1</context>
2286 </context-group>
2287 </trans-unit>
2288 <trans-unit id="e7393dc4a4aa12d005582eb9e1ddc7e5ca5bebd3">
2289 <source>Previews cache size must be a number.</source>
2290 <target>Die Cachegröße muss eine Zahl sein.</target>
2291 <context-group name="null">
2292 <context context-type="linenumber">1</context>
2293 </context-group>
2294 </trans-unit>
2295 <trans-unit id="2cdd5a8c604ef16c2f9a17ed81d73f4f9509e828">
2296 <source>Signup limit is required.</source>
2297 <target>Bitte gib ein Registrierungslimit an.</target>
2298 <context-group name="null">
2299 <context context-type="linenumber">1</context>
2300 </context-group>
2301 </trans-unit>
2302 <trans-unit id="0ca9f7ec55c9896add6e82d2b52e9217e1140cf7">
2303 <source>Signup limit must be greater than 1.</source>
2304 <target>Das Registrierungslimit muss größer als 1 sein.</target>
2305 <context-group name="null">
2306 <context context-type="linenumber">1</context>
2307 </context-group>
2308 </trans-unit>
2309 <trans-unit id="58c2f66ba74f1400914031ef4ed635938e9e8ced">
2310 <source>Signup limit must be a number.</source>
2311 <target>Das Registrierungslimit muss eine Zahl sein.</target>
2312 <context-group name="null">
2313 <context context-type="linenumber">1</context>
2314 </context-group>
2315 </trans-unit>
2316 <trans-unit id="1245841647f9b42d3e7554903c1c50bdd80ab021">
2317 <source>Admin email is required.</source>
2318 <target>Bitte gib eine Admin E-Mail-Adresse an.</target>
2319 <context-group name="null">
2320 <context context-type="linenumber">1</context>
2321 </context-group>
2322 </trans-unit>
2323 <trans-unit id="3fd2feb77dfe57fe82573e3cdf996105e2fafc66">
2324 <source>Admin email must be valid.</source>
2325 <target>Bitte gib eine valide Admin E-Mail-Adresse an.</target>
2326 <context-group name="null">
2327 <context context-type="linenumber">1</context>
2328 </context-group>
2329 </trans-unit>
2330 <trans-unit id="f15f2e02b1f6a96553e98ea4a969045d17ec1400">
2331 <source>Transcoding threads is required.</source>
2332 <target>Bitte gib eine Anzahl für die Transcodierungsthreads an.</target>
2333 <context-group name="null">
2334 <context context-type="linenumber">1</context>
2335 </context-group>
2336 </trans-unit>
2337 <trans-unit id="ba88636d27c1a6a7e1f75ff57ec182b30b851c2e">
2338 <source>Transcoding threads must be greater than 1.</source>
2339 <target>Die Anzahl der Transcodierungsthreads muss größer als 1 sein.</target>
2340 <context-group name="null">
2341 <context context-type="linenumber">1</context>
2342 </context-group>
2343 </trans-unit>
2344 <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
2345 <source>Username is required.</source>
2346 <target>Bitte gib einen Benutzernamen ein.</target>
2347 <context-group name="null">
2348 <context context-type="linenumber">1</context>
2349 </context-group>
2350 </trans-unit>
2351 <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
2352 <source>Password is required.</source>
2353 <target>Bitte gib ein Passwort ein.</target>
2354 <context-group name="null">
2355 <context context-type="linenumber">1</context>
2356 </context-group>
2357 </trans-unit>
2358 <trans-unit id="c90872a06666a51c2957c4b29724e68df5c67154">
2359 <source>Confirmation of the password is required.</source>
2360 <target>Bitte bestätige das Passwort.</target>
2361 <context-group name="null">
2362 <context context-type="linenumber">1</context>
2363 </context-group>
2364 </trans-unit>
1275 <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea"> 2365 <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea">
1276 <source>Username must be at least 3 characters long.</source> 2366 <source>Username must be at least 3 characters long.</source>
1277 <target>Der Benutzername muss mindestens 3 Zeichen lang sein.</target> 2367 <target>Der Benutzername muss mindestens 3 Zeichen lang sein.</target>
@@ -1293,6 +2383,20 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1293 <context context-type="linenumber">1</context> 2383 <context context-type="linenumber">1</context>
1294 </context-group> 2384 </context-group>
1295 </trans-unit> 2385 </trans-unit>
2386 <trans-unit id="b6f52e19f074f77866fa03fabe1ddd5cdae346f0">
2387 <source>Email is required.</source>
2388 <target>Bitte gib eine E-Mail-Adresse ein.</target>
2389 <context-group name="null">
2390 <context context-type="linenumber">1</context>
2391 </context-group>
2392 </trans-unit>
2393 <trans-unit id="bef8a36c3dffff15fb5faf3d20bdbbbc1af824c1">
2394 <source>Email must be valid.</source>
2395 <target>Bitte gebe eine valide E-Mail-Adresse ein.</target>
2396 <context-group name="null">
2397 <context context-type="linenumber">1</context>
2398 </context-group>
2399 </trans-unit>
1296 <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0"> 2400 <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0">
1297 <source>Password must be at least 6 characters long.</source> 2401 <source>Password must be at least 6 characters long.</source>
1298 <target>Das Passwort muss mindestens 6 Zeichen lang sein.</target> 2402 <target>Das Passwort muss mindestens 6 Zeichen lang sein.</target>
@@ -1405,6 +2509,13 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1405 <context context-type="linenumber">1</context> 2509 <context context-type="linenumber">1</context>
1406 </context-group> 2510 </context-group>
1407 </trans-unit> 2511 </trans-unit>
2512 <trans-unit id="6ca60e0f6dfbc0073b0514bce7d273150b0b9e79">
2513 <source>Comment is required.</source>
2514 <target>Bitte gib einen Kommentar ein.</target>
2515 <context-group name="null">
2516 <context context-type="linenumber">1</context>
2517 </context-group>
2518 </trans-unit>
1408 <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6"> 2519 <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6">
1409 <source>Comment must be at least 2 characters long.</source> 2520 <source>Comment must be at least 2 characters long.</source>
1410 <target>Der Kommentar muss mindestens 2 Zeichen umfassen.</target> 2521 <target>Der Kommentar muss mindestens 2 Zeichen umfassen.</target>
@@ -1419,6 +2530,13 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1419 <context context-type="linenumber">1</context> 2530 <context context-type="linenumber">1</context>
1420 </context-group> 2531 </context-group>
1421 </trans-unit> 2532 </trans-unit>
2533 <trans-unit id="cdc51eaeab88683610a28af8645cf91d136b39e1">
2534 <source>Video name is required.</source>
2535 <target>Bitte gib einen Titel ein.</target>
2536 <context-group name="null">
2537 <context context-type="linenumber">1</context>
2538 </context-group>
2539 </trans-unit>
1422 <trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c"> 2540 <trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c">
1423 <source>Video name must be at least 3 characters long.</source> 2541 <source>Video name must be at least 3 characters long.</source>
1424 <target>Der Name des Videos muss mindestens 3 Zeichen lang sein.</target> 2542 <target>Der Name des Videos muss mindestens 3 Zeichen lang sein.</target>
@@ -1433,6 +2551,20 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1433 <context context-type="linenumber">1</context> 2551 <context context-type="linenumber">1</context>
1434 </context-group> 2552 </context-group>
1435 </trans-unit> 2553 </trans-unit>
2554 <trans-unit id="a627c58cf1849d7d838696e7f36c1bae1a8b31a4">
2555 <source>Video privacy is required.</source>
2556 <target>Bitte gib einen Privatsphärestatus an.</target>
2557 <context-group name="null">
2558 <context context-type="linenumber">1</context>
2559 </context-group>
2560 </trans-unit>
2561 <trans-unit id="97afb789c1ab09074495d49aaadb92a1c3e71a16">
2562 <source>Video channel is required.</source>
2563 <target>Bitte gib einen Kanal an.</target>
2564 <context-group name="null">
2565 <context context-type="linenumber">1</context>
2566 </context-group>
2567 </trans-unit>
1436 <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef"> 2568 <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef">
1437 <source>Video description must be at least 3 characters long.</source> 2569 <source>Video description must be at least 3 characters long.</source>
1438 <target>Die Beschreibung des Videos muss mindestens 3 Zeichen umfassen.</target> 2570 <target>Die Beschreibung des Videos muss mindestens 3 Zeichen umfassen.</target>
@@ -1475,6 +2607,468 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1475 <context context-type="linenumber">1</context> 2607 <context context-type="linenumber">1</context>
1476 </context-group> 2608 </context-group>
1477 </trans-unit> 2609 </trans-unit>
2610 <trans-unit id="453413bf387dea681958871319bab489dd5e6ec0">
2611 <source>A date is required to schedule video update.</source>
2612 <target>Bitte gib ein Uploaddatum an.</target>
2613 <context-group name="null">
2614 <context context-type="linenumber">1</context>
2615 </context-group>
2616 </trans-unit>
2617 <trans-unit id="0bf41abaa85526711f7952b4600e4044bc7f04a4">
2618 <source>All unsaved data will be lost, are you sure you want to leave this page?</source>
2619 <target>Alle ungespeicherten Daten werden verworfen. Willst du wirklich die Seite verlassen?</target>
2620 <context-group name="null">
2621 <context context-type="linenumber">1</context>
2622 </context-group>
2623 </trans-unit>
2624 <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01">
2625 <source>Warning</source>
2626 <target>Warnung</target>
2627 <context-group name="null">
2628 <context context-type="linenumber">1</context>
2629 </context-group>
2630 </trans-unit>
2631 <trans-unit id="8339364b054610983b7f2334bb807fff7613bddf">
2632 <source>Sunday</source>
2633 <target>Sonntag</target>
2634 <context-group name="null">
2635 <context context-type="linenumber">1</context>
2636 </context-group>
2637 </trans-unit>
2638 <trans-unit id="a43c57a7cbebf57eb33a2eae5e994c91d9887596">
2639 <source>Monday</source>
2640 <target>Montag</target>
2641 <context-group name="null">
2642 <context context-type="linenumber">1</context>
2643 </context-group>
2644 </trans-unit>
2645 <trans-unit id="48a2a35957ce394eb2c59ae35c99642360af70ee">
2646 <source>Tuesday</source>
2647 <target>Dienstag</target>
2648 <context-group name="null">
2649 <context context-type="linenumber">1</context>
2650 </context-group>
2651 </trans-unit>
2652 <trans-unit id="b0af441f9ba8b82952b9ec10fb8c62e8fec67df9">
2653 <source>Wednesday</source>
2654 <target>Mittwoch</target>
2655 <context-group name="null">
2656 <context context-type="linenumber">1</context>
2657 </context-group>
2658 </trans-unit>
2659 <trans-unit id="55c583b99c809818ec27df065ccf05357a6ac10b">
2660 <source>Thursday</source>
2661 <target>Donnerstag</target>
2662 <context-group name="null">
2663 <context context-type="linenumber">1</context>
2664 </context-group>
2665 </trans-unit>
2666 <trans-unit id="e91b54925dc5f490753f60f53ef6f8b4609e6215">
2667 <source>Friday</source>
2668 <target>Freitag</target>
2669 <context-group name="null">
2670 <context context-type="linenumber">1</context>
2671 </context-group>
2672 </trans-unit>
2673 <trans-unit id="c0d2dd391a3eca8e841a5d0e035cd268280eb68e">
2674 <source>Saturday</source>
2675 <target>Samstag</target>
2676 <context-group name="null">
2677 <context context-type="linenumber">1</context>
2678 </context-group>
2679 </trans-unit>
2680 <trans-unit id="6549890cd0d6b59fb0e1aa383b00483a68a55eef">
2681 <source>Sun</source>
2682 <target>So</target>
2683 <context-group name="null">
2684 <context context-type="linenumber">1</context>
2685 </context-group>
2686 </trans-unit>
2687 <trans-unit id="3382aa5d7f520e197fb59a4995fe1beffca2d0ff">
2688 <source>Mon</source>
2689 <target>Mo</target>
2690 <context-group name="null">
2691 <context context-type="linenumber">1</context>
2692 </context-group>
2693 </trans-unit>
2694 <trans-unit id="f883ec926274974df0fc46c037cbffd6a863ebc9">
2695 <source>Tue</source>
2696 <target>Di</target>
2697 <context-group name="null">
2698 <context context-type="linenumber">1</context>
2699 </context-group>
2700 </trans-unit>
2701 <trans-unit id="242b4f4b5651e24f9a9007ef153a57981e4b989d">
2702 <source>Wed</source>
2703 <target>Mi</target>
2704 <context-group name="null">
2705 <context context-type="linenumber">1</context>
2706 </context-group>
2707 </trans-unit>
2708 <trans-unit id="5a2c39d56b8f00a6a4670a63b53caacbda953be6">
2709 <source>Thu</source>
2710 <target>Do</target>
2711 <context-group name="null">
2712 <context context-type="linenumber">1</context>
2713 </context-group>
2714 </trans-unit>
2715 <trans-unit id="4cdf23d523a0e52e0dec9cd650ffd9bd6952792c">
2716 <source>Fri</source>
2717 <target>Fr</target>
2718 <context-group name="null">
2719 <context context-type="linenumber">1</context>
2720 </context-group>
2721 </trans-unit>
2722 <trans-unit id="1283d165a942d7f4c469ba34f99dbb9e927d0261">
2723 <source>Sat</source>
2724 <target>Sa</target>
2725 <context-group name="null">
2726 <context context-type="linenumber">1</context>
2727 </context-group>
2728 </trans-unit>
2729 <trans-unit id="2fba8448ff13105c57665a9a6ffcfe9615d855dd">
2730 <source>Su</source>
2731 <target>So</target>
2732 <context-group name="null">
2733 <context context-type="linenumber">1</context>
2734 </context-group>
2735 </trans-unit>
2736 <trans-unit id="388144af7ac7651d2615b9be0e84f43ae71d9fb3">
2737 <source>Mo</source>
2738 <target>Mo</target>
2739 <context-group name="null">
2740 <context context-type="linenumber">1</context>
2741 </context-group>
2742 </trans-unit>
2743 <trans-unit id="d96313e42b5f0751ce2676a31d309b4d322ab462">
2744 <source>Tu</source>
2745 <target>Di</target>
2746 <context-group name="null">
2747 <context context-type="linenumber">1</context>
2748 </context-group>
2749 </trans-unit>
2750 <trans-unit id="06cc3d39f78c0615b707cef39cd4875599611fef">
2751 <source>We</source>
2752 <target>Mi</target>
2753 <context-group name="null">
2754 <context context-type="linenumber">1</context>
2755 </context-group>
2756 </trans-unit>
2757 <trans-unit id="790894436cca9d675d59be9a8aafd58acccde2cd">
2758 <source>Th</source>
2759 <target>Do</target>
2760 <context-group name="null">
2761 <context context-type="linenumber">1</context>
2762 </context-group>
2763 </trans-unit>
2764 <trans-unit id="42dfe37169f8471367c31489155229bbe1747ea5">
2765 <source>Fr</source>
2766 <target>Fr</target>
2767 <context-group name="null">
2768 <context context-type="linenumber">1</context>
2769 </context-group>
2770 </trans-unit>
2771 <trans-unit id="1b64ea3e04ceeb512e8974eb0019dee4f211c7a0">
2772 <source>Sa</source>
2773 <target>Sa</target>
2774 <context-group name="null">
2775 <context context-type="linenumber">1</context>
2776 </context-group>
2777 </trans-unit>
2778 <trans-unit id="e7815f1c4a6d3cc157a16407a48865023cc35ec0">
2779 <source>January</source>
2780 <target>Januar</target>
2781 <context-group name="null">
2782 <context context-type="linenumber">1</context>
2783 </context-group>
2784 </trans-unit>
2785 <trans-unit id="0393a96b58df82af39a2ec83deec624749e42036">
2786 <source>February</source>
2787 <target>Februar</target>
2788 <context-group name="null">
2789 <context context-type="linenumber">1</context>
2790 </context-group>
2791 </trans-unit>
2792 <trans-unit id="ea41ee3743ec5bdbbf863ab793bbdd6e6d9af96e">
2793 <source>March</source>
2794 <target>März</target>
2795 <context-group name="null">
2796 <context context-type="linenumber">1</context>
2797 </context-group>
2798 </trans-unit>
2799 <trans-unit id="b87ee784d9e93b5557aca9bdc9464dbd4328920a">
2800 <source>April</source>
2801 <target>April</target>
2802 <context-group name="null">
2803 <context context-type="linenumber">1</context>
2804 </context-group>
2805 </trans-unit>
2806 <trans-unit id="862da1034ac2707cc44123ed963b2f42109b6b3e">
2807 <source>May</source>
2808 <target>Mai</target>
2809 <context-group name="null">
2810 <context context-type="linenumber">1</context>
2811 </context-group>
2812 </trans-unit>
2813 <trans-unit id="2f234249d4c3c39e27c0f05d4a6b73a7959caeb2">
2814 <source>June</source>
2815 <target>Juni</target>
2816 <context-group name="null">
2817 <context context-type="linenumber">1</context>
2818 </context-group>
2819 </trans-unit>
2820 <trans-unit id="11447f95e83c8de675ab6c492150f88e4d9bd15e">
2821 <source>July</source>
2822 <target>Juli</target>
2823 <context-group name="null">
2824 <context context-type="linenumber">1</context>
2825 </context-group>
2826 </trans-unit>
2827 <trans-unit id="ddd9a3d59a8db4e822e54e9473c05b571aca9829">
2828 <source>August</source>
2829 <target>August</target>
2830 <context-group name="null">
2831 <context context-type="linenumber">1</context>
2832 </context-group>
2833 </trans-unit>
2834 <trans-unit id="e21dc41f9b3fdaf35ab6b2d9e2e5e8a926fb1938">
2835 <source>September</source>
2836 <target>September</target>
2837 <context-group name="null">
2838 <context context-type="linenumber">1</context>
2839 </context-group>
2840 </trans-unit>
2841 <trans-unit id="71f49c502d13e22079a958a5532afa28dbe98b3b">
2842 <source>October</source>
2843 <target>Oktober</target>
2844 <context-group name="null">
2845 <context context-type="linenumber">1</context>
2846 </context-group>
2847 </trans-unit>
2848 <trans-unit id="64b5ce921faa5e3d277d6d528ddcfc8c2bfe9f52">
2849 <source>November</source>
2850 <target>November</target>
2851 <context-group name="null">
2852 <context context-type="linenumber">1</context>
2853 </context-group>
2854 </trans-unit>
2855 <trans-unit id="2006e2aabb31714ebc684dc382539649f690ed5c">
2856 <source>December</source>
2857 <target>Dezember</target>
2858 <context-group name="null">
2859 <context context-type="linenumber">1</context>
2860 </context-group>
2861 </trans-unit>
2862 <trans-unit id="8270e687cfb5624b3f6fbb7991a2e916c96464b7">
2863 <source>Jan</source>
2864 <target>Jan</target>
2865 <context-group name="null">
2866 <context context-type="linenumber">1</context>
2867 </context-group>
2868 </trans-unit>
2869 <trans-unit id="23544170afbb981dd52750b641576841cf5dcf60">
2870 <source>Feb</source>
2871 <target>Feb</target>
2872 <context-group name="null">
2873 <context context-type="linenumber">1</context>
2874 </context-group>
2875 </trans-unit>
2876 <trans-unit id="1f14355742459b7d6a0126a1564e1c18f39f86e7">
2877 <source>Mar</source>
2878 <target>Mar</target>
2879 <context-group name="null">
2880 <context context-type="linenumber">1</context>
2881 </context-group>
2882 </trans-unit>
2883 <trans-unit id="964a5f032bc846d32806a4838580a4f81cf14463">
2884 <source>Apr</source>
2885 <target>Apr</target>
2886 <context-group name="null">
2887 <context context-type="linenumber">1</context>
2888 </context-group>
2889 </trans-unit>
2890 <trans-unit id="8f7274f606f71d9290ed01c5683092d701632d7f">
2891 <source>Jun</source>
2892 <target>Jun</target>
2893 <context-group name="null">
2894 <context context-type="linenumber">1</context>
2895 </context-group>
2896 </trans-unit>
2897 <trans-unit id="7c3d8318d6d8d9920ae0a80350616732c33a3211">
2898 <source>Jul</source>
2899 <target>Jul</target>
2900 <context-group name="null">
2901 <context context-type="linenumber">1</context>
2902 </context-group>
2903 </trans-unit>
2904 <trans-unit id="be1335ffd1c606321e2c020b638dd3c84b434212">
2905 <source>Aug</source>
2906 <target>Aug</target>
2907 <context-group name="null">
2908 <context context-type="linenumber">1</context>
2909 </context-group>
2910 </trans-unit>
2911 <trans-unit id="4f739d03be1c936c58978739c317d91566348204">
2912 <source>Sep</source>
2913 <target>Sep</target>
2914 <context-group name="null">
2915 <context context-type="linenumber">1</context>
2916 </context-group>
2917 </trans-unit>
2918 <trans-unit id="6607cacb987a588530a13de7018d959240d19153">
2919 <source>Oct</source>
2920 <target>Oct</target>
2921 <context-group name="null">
2922 <context context-type="linenumber">1</context>
2923 </context-group>
2924 </trans-unit>
2925 <trans-unit id="e597400ded12a366855615e18fcc8f9ac05b72e0">
2926 <source>Nov</source>
2927 <target>Nov</target>
2928 <context-group name="null">
2929 <context context-type="linenumber">1</context>
2930 </context-group>
2931 </trans-unit>
2932 <trans-unit id="adf2dfa2a9cb490d6a4a74510b7b0846b62d429e">
2933 <source>Dec</source>
2934 <target>Dec</target>
2935 <context-group name="null">
2936 <context context-type="linenumber">1</context>
2937 </context-group>
2938 </trans-unit>
2939 <trans-unit id="0b2054a863319d2cf59867addd125b6717cae41d">
2940 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago</source>
2941 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Jahren</target>
2942 <context-group name="null">
2943 <context context-type="linenumber">1</context>
2944 </context-group>
2945 </trans-unit>
2946 <trans-unit id="e622d3813449fe36371ea258281059306819199d">
2947 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago</source>
2948 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Monaten</target>
2949 <context-group name="null">
2950 <context context-type="linenumber">1</context>
2951 </context-group>
2952 </trans-unit>
2953 <trans-unit id="2f8a5a5f7efb521d7d89dc659ff65dd13cb7b17b">
2954 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago</source>
2955 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Monat</target>
2956 <context-group name="null">
2957 <context context-type="linenumber">1</context>
2958 </context-group>
2959 </trans-unit>
2960 <trans-unit id="1d1a46543a29096d3c6676be2d561380a0bc94e1">
2961 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago</source>
2962 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Wochen</target>
2963 <context-group name="null">
2964 <context context-type="linenumber">1</context>
2965 </context-group>
2966 </trans-unit>
2967 <trans-unit id="e1db0b98b6cdf817508195f3649c48475c32ae7e">
2968 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago</source>
2969 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Woche</target>
2970 <context-group name="null">
2971 <context context-type="linenumber">1</context>
2972 </context-group>
2973 </trans-unit>
2974 <trans-unit id="a7654c3ece96e777527606f1c2870d6ee0b180f7">
2975 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago</source>
2976 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Tagen</target>
2977 <context-group name="null">
2978 <context context-type="linenumber">1</context>
2979 </context-group>
2980 </trans-unit>
2981 <trans-unit id="5b465235ae55091d32535e23dd180c407f1352d1">
2982 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago</source>
2983 <target>Gestern</target>
2984 <context-group name="null">
2985 <context context-type="linenumber">1</context>
2986 </context-group>
2987 </trans-unit>
2988 <trans-unit id="dc7addf53bd6405a9c746db6dfca665c33679a84">
2989 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago</source>
2990 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Stunden</target>
2991 <context-group name="null">
2992 <context context-type="linenumber">1</context>
2993 </context-group>
2994 </trans-unit>
2995 <trans-unit id="d54a610250ed38efccf0e3afdd0004f6ad83ea8d">
2996 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago</source>
2997 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Stunde</target>
2998 <context-group name="null">
2999 <context context-type="linenumber">1</context>
3000 </context-group>
3001 </trans-unit>
3002 <trans-unit id="9704e5e3adce178c127ead05f7057d3fb827308a">
3003 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago</source>
3004 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Min</target>
3005 <context-group name="null">
3006 <context context-type="linenumber">1</context>
3007 </context-group>
3008 </trans-unit>
3009 <trans-unit id="7a158a7555a44ea7eff9fa4988df9aa24d262ceb">
3010 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago</source>
3011 <target>Vor <x id="INTERPOLATION" equiv-text="{{interval}}"/> Sek</target>
3012 <context-group name="null">
3013 <context context-type="linenumber">1</context>
3014 </context-group>
3015 </trans-unit>
3016 <trans-unit id="ab4426b60f13c00b61d6b714d390dc629f314980">
3017 <source>Emphasis</source>
3018 <target>Markierung</target>
3019 <context-group name="null">
3020 <context context-type="linenumber">1</context>
3021 </context-group>
3022 </trans-unit>
3023 <trans-unit id="dc60677d5a906e69f38a5cf9da7f2eb03931bea0">
3024 <source>Links</source>
3025 <target>Links</target>
3026 <context-group name="null">
3027 <context context-type="linenumber">1</context>
3028 </context-group>
3029 </trans-unit>
3030 <trans-unit id="80220239e07f36ea8d5f10118dc52ce4b13bc15a">
3031 <source>New lines</source>
3032 <target>Zeilenumbrüche</target>
3033 <context-group name="null">
3034 <context context-type="linenumber">1</context>
3035 </context-group>
3036 </trans-unit>
3037 <trans-unit id="b15e7bec5c7833d2d9634946ccbed68967b1bee1">
3038 <source>Lists</source>
3039 <target>Listen</target>
3040 <context-group name="null">
3041 <context context-type="linenumber">1</context>
3042 </context-group>
3043 </trans-unit>
3044 <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866">
3045 <source>Images</source>
3046 <target>Bilder</target>
3047 <context-group name="null">
3048 <context context-type="linenumber">1</context>
3049 </context-group>
3050 </trans-unit>
3051 <trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
3052 <source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
3053 <target>Die Anfrage ist zu groß. Bitte kontaktiere den Administrator, um das Limit zu erhöhen.</target>
3054 <context-group name="null">
3055 <context context-type="linenumber">1</context>
3056 </context-group>
3057 </trans-unit>
3058 <trans-unit id="58546fd4d14b2d9635ce3d28c216ac68587bb25b">
3059 <source>Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes.</source>
3060 <target>Zu viele Versuche in kurzer Zeit. Bitte versuche es in <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> Minuten nochmal.</target>
3061 <context-group name="null">
3062 <context context-type="linenumber">1</context>
3063 </context-group>
3064 </trans-unit>
3065 <trans-unit id="ab783a52f2df9ff7a20139cab0da6d0764f3cc5d">
3066 <source>Too many attempts, please try again later.</source>
3067 <target>Zu viele Versuche in kurzer Zeit. Bitte versuche es später nochmal.</target>
3068 <context-group name="null">
3069 <context context-type="linenumber">1</context>
3070 </context-group>
3071 </trans-unit>
1478 <trans-unit id="0f286a597f0053c3578a52e044769c204ee516fc"> 3072 <trans-unit id="0f286a597f0053c3578a52e044769c204ee516fc">
1479 <source>Server error. Please retry later.</source> 3073 <source>Server error. Please retry later.</source>
1480 <target>Server-Fehler. Bitte später erneut versuchen.</target> 3074 <target>Server-Fehler. Bitte später erneut versuchen.</target>
@@ -1482,6 +3076,69 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1482 <context context-type="linenumber">1</context> 3076 <context context-type="linenumber">1</context>
1483 </context-group> 3077 </context-group>
1484 </trans-unit> 3078 </trans-unit>
3079 <trans-unit id="20deec13d8d4ff199aa04318818ca44dab0585be">
3080 <source>Registration for <x id="INTERPOLATION" equiv-text="{{username}}"/> complete.</source>
3081 <target>Registrierung für <x id="INTERPOLATION" equiv-text="{{username}}"/> abgeschlossen.</target>
3082 <context-group name="null">
3083 <context context-type="linenumber">1</context>
3084 </context-group>
3085 </trans-unit>
3086 <trans-unit id="10ffa5c3dbcee491d66f80d8d4dce3e119a6ec86">
3087 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos</source>
3088 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> Full HD Videos</target>
3089 <context-group name="null">
3090 <context context-type="linenumber">1</context>
3091 </context-group>
3092 </trans-unit>
3093 <trans-unit id="344ddae9f45b344e98e7b28cd5e33243982700f8">
3094 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos</source>
3095 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> HD Videos</target>
3096 <context-group name="null">
3097 <context context-type="linenumber">1</context>
3098 </context-group>
3099 </trans-unit>
3100 <trans-unit id="435c012df6dd990a1ccb7ee73dd79c488bde28b5">
3101 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos</source>
3102 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> Videos mit durchschnittlicher Qualität</target>
3103 <context-group name="null">
3104 <context context-type="linenumber">1</context>
3105 </context-group>
3106 </trans-unit>
3107 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3108 <source>Your video was uploaded in your account and is private.</source>
3109 <target>Dein Video wurde hochgeladen und ist privat.</target>
3110 <context-group name="null">
3111 <context context-type="linenumber">1</context>
3112 </context-group>
3113 </trans-unit>
3114 <trans-unit id="24840228f2826b66252cfcaab9820b1c7e0da264">
3115 <source>But associated data (tags, description...) will be lost, are you sure you want to leave this page?</source>
3116 <target>Weitere Infos (Tags, Beschreibung, ...) werden verworfen, wenn du diese Seite verlässt. Bist du dir sicher?</target>
3117 <context-group name="null">
3118 <context context-type="linenumber">1</context>
3119 </context-group>
3120 </trans-unit>
3121 <trans-unit id="5af84926d631326e548573ebf0f6dff07845aeb4">
3122 <source>Your video is not uploaded yet, are you sure you want to leave this page?</source>
3123 <target>Dein Video ist noch nicht hochgeladen. Willst du wirklich diese Seite verlassen?</target>
3124 <context-group name="null">
3125 <context context-type="linenumber">1</context>
3126 </context-group>
3127 </trans-unit>
3128 <trans-unit id="321e4419a943044e674beb55b8039f42a9761ca5">
3129 <source>Info</source>
3130 <target>Infos</target>
3131 <context-group name="null">
3132 <context context-type="linenumber">1</context>
3133 </context-group>
3134 </trans-unit>
3135 <trans-unit id="c5cb19aeb6447deda40cc1227ceca1359ab955e9">
3136 <source>Upload cancelled</source>
3137 <target>Upload abgebrochen</target>
3138 <context-group name="null">
3139 <context context-type="linenumber">1</context>
3140 </context-group>
3141 </trans-unit>
1485 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3142 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
1486 <source>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 }}"/>)</source> 3143 <source>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 }}"/>)</source>
1487 <target>Dein Video-Kontingent ist mit diesem Video erschöpft (Größe des Videos: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, genutzt: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, Kontingent: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3144 <target>Dein Video-Kontingent ist mit diesem Video erschöpft (Größe des Videos: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, genutzt: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, Kontingent: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -1489,6 +3146,69 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1489 <context context-type="linenumber">1</context> 3146 <context context-type="linenumber">1</context>
1490 </context-group> 3147 </context-group>
1491 </trans-unit> 3148 </trans-unit>
3149 <trans-unit id="972fc644f847cf84e4732ec012915c4cdaf865ce">
3150 <source>Video published.</source>
3151 <target>Video veröffentlicht.</target>
3152 <context-group name="null">
3153 <context context-type="linenumber">1</context>
3154 </context-group>
3155 </trans-unit>
3156 <trans-unit id="757e9c083c8f3d578bd74f055cc337c72417e187">
3157 <source>Video updated.</source>
3158 <target>Video aktualisiert.</target>
3159 <context-group name="null">
3160 <context context-type="linenumber">1</context>
3161 </context-group>
3162 </trans-unit>
3163 <trans-unit id="aeb61b334cac080733c3e03766165a346bbf42fd">
3164 <source> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too.</source>
3165 <target> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> Antworten werden ebenfalls gelöscht.</target>
3166 <context-group name="null">
3167 <context context-type="linenumber">1</context>
3168 </context-group>
3169 </trans-unit>
3170 <trans-unit id="fa2601e52cbf5725a13d33fe14458823b882ea50">
3171 <source>Video reported.</source>
3172 <target>Video gemeldet.</target>
3173 <context-group name="null">
3174 <context context-type="linenumber">1</context>
3175 </context-group>
3176 </trans-unit>
3177 <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5">
3178 <source>Copied</source>
3179 <target>Kopiert.</target>
3180 <context-group name="null">
3181 <context context-type="linenumber">1</context>
3182 </context-group>
3183 </trans-unit>
3184 <trans-unit id="23b2c2f4dd69e29c3bff00469e259dcb01de5633">
3185 <source>Do you really want to blacklist this video?</source>
3186 <target>Möchtest du das Video wirklich sperren?</target>
3187 <context-group name="null">
3188 <context context-type="linenumber">1</context>
3189 </context-group>
3190 </trans-unit>
3191 <trans-unit id="cafd8ec6020e69f241a107b1cb7081bd9e773d4e">
3192 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> had been blacklisted.</source>
3193 <target>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> wurde gesperrt.</target>
3194 <context-group name="null">
3195 <context context-type="linenumber">1</context>
3196 </context-group>
3197 </trans-unit>
3198 <trans-unit id="f1abd89c9280323209e939fa9c30f6e5cda20c95">
3199 <source>Do you really want to delete this video?</source>
3200 <target>Möchtest du das Video wirklich löschen?</target>
3201 <context-group name="null">
3202 <context context-type="linenumber">1</context>
3203 </context-group>
3204 </trans-unit>
3205 <trans-unit id="d5a4811e15319ad9354e1b62e9ca0131192b489e">
3206 <source><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes</source>
3207 <target><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> Likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> Dislikes</target>
3208 <context-group name="null">
3209 <context context-type="linenumber">1</context>
3210 </context-group>
3211 </trans-unit>
1492 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3212 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
1493 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3213 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
1494 <target>Dieses Video enthält Inhalte, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden. Möchtest du es wirklich ansehen?</target> 3214 <target>Dieses Video enthält Inhalte, die möglicherweise für bestimmte Zuschauer ungeeignet sind oder von diesen als anstößig empfunden werden. Möchtest du es wirklich ansehen?</target>
@@ -1503,12 +3223,5 @@ Wenn du ein Video in diesen Kanal hochlädst, wird das entsprechende Feld automa
1503 <context context-type="linenumber">1</context> 3223 <context context-type="linenumber">1</context>
1504 </context-group> 3224 </context-group>
1505 </trans-unit> 3225 </trans-unit>
1506 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
1507 <source>Search</source>
1508 <target>Suche</target>
1509 <context-group name="null">
1510 <context context-type="linenumber">1</context>
1511 </context-group>
1512 </trans-unit>
1513 </body> 3226 </body>
1514 </file></xliff> \ No newline at end of file 3227 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_eo.xml b/client/src/locale/target/angular_eo.xml
index a26ea0f55..91c2788c8 100644
--- a/client/src/locale/target/angular_eo.xml
+++ b/client/src/locale/target/angular_eo.xml
@@ -11,14 +11,14 @@
11 Nuligi 11 Nuligi
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Peti helpon</target> 47 <target>Peti helpon</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Pasvorto</target> 108 <target>Pasvorto</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -330,6 +330,27 @@
330 <context context-type="linenumber">9</context> 330 <context context-type="linenumber">9</context>
331 </context-group> 331 </context-group>
332 </trans-unit> 332 </trans-unit>
333 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
334 <source>Category</source>
335 <target>Kategorio</target>
336 <context-group name="null">
337 <context context-type="linenumber">144</context>
338 </context-group>
339 </trans-unit>
340 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
341 <source>Licence</source>
342 <target>Permesilo</target>
343 <context-group name="null">
344 <context context-type="linenumber">153</context>
345 </context-group>
346 </trans-unit>
347 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
348 <source>Language</source>
349 <target>Lingvo</target>
350 <context-group name="null">
351 <context context-type="linenumber">162</context>
352 </context-group>
353 </trans-unit>
333 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 354 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
334 <source>No results.</source> 355 <source>No results.</source>
335 <target>Nenio troviĝis.</target> 356 <target>Nenio troviĝis.</target>
@@ -555,21 +576,6 @@
555 <context context-type="linenumber">51</context> 576 <context context-type="linenumber">51</context>
556 </context-group> 577 </context-group>
557 </trans-unit> 578 </trans-unit>
558 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
559 <source>
560 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
561 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.
562 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
563 </source>
564 <target>
565 Retaj samtavolanoj ne estas rekte sendataj de la kunordigilo: Ĉar ni povas uzi teĥnikon « WebRTC » en la foliumilo, la protokolo malsamas tiun de « BitTorrent ».
566 Kiam vi uzas foliumilon, vi sendas signalon kun via IP-adreso al la kunordigilo, kiu hazarde elektos aliajn samtavolanojn, kiuj ricevos la datumon.
567 Vidu <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>ĉi tiun dokumenton<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> por pliaj informoj
568 </target>
569 <context-group name="null">
570 <context context-type="linenumber">55</context>
571 </context-group>
572 </trans-unit>
573 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 579 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
574 <source> 580 <source>
575 The worst-case scenario of an average person spying on their friends is quite unlikely. 581 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -583,13 +589,6 @@
583 <context context-type="linenumber">62</context> 589 <context context-type="linenumber">62</context>
584 </context-group> 590 </context-group>
585 </trans-unit> 591 </trans-unit>
586 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
587 <source>How does PeerTube compares to YouTube?</source>
588 <target>Kiel PeerTube kompariĝas al YouTube?</target>
589 <context-group name="null">
590 <context context-type="linenumber">67</context>
591 </context-group>
592 </trans-unit>
593 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 592 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
594 <source> 593 <source>
595 The threats to privacy in YouTube are different from PeerTube's. 594 The threats to privacy in YouTube are different from PeerTube's.
@@ -805,42 +804,42 @@
805 <source>Signup enabled</source> 804 <source>Signup enabled</source>
806 <target>Registriĝoj ŝaltitaj</target> 805 <target>Registriĝoj ŝaltitaj</target>
807 <context-group name="null"> 806 <context-group name="null">
808 <context context-type="linenumber">92</context> 807 <context context-type="linenumber">90</context>
809 </context-group> 808 </context-group>
810 </trans-unit> 809 </trans-unit>
811 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 810 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
812 <source>Signup limit</source> 811 <source>Signup limit</source>
813 <target>Limo de registriĝoj</target> 812 <target>Limo de registriĝoj</target>
814 <context-group name="null"> 813 <context-group name="null">
815 <context context-type="linenumber">96</context> 814 <context context-type="linenumber">94</context>
816 </context-group> 815 </context-group>
817 </trans-unit> 816 </trans-unit>
818 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 817 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
819 <source>Administrator</source> 818 <source>Administrator</source>
820 <target>Administranto</target> 819 <target>Administranto</target>
821 <context-group name="null"> 820 <context-group name="null">
822 <context context-type="linenumber">106</context> 821 <context context-type="linenumber">104</context>
823 </context-group> 822 </context-group>
824 </trans-unit> 823 </trans-unit>
825 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 824 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
826 <source>Admin email</source> 825 <source>Admin email</source>
827 <target>Retpoŝtadreso de administranto</target> 826 <target>Retpoŝtadreso de administranto</target>
828 <context-group name="null"> 827 <context-group name="null">
829 <context context-type="linenumber">109</context> 828 <context context-type="linenumber">107</context>
830 </context-group> 829 </context-group>
831 </trans-unit> 830 </trans-unit>
832 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 831 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
833 <source>Users</source> 832 <source>Users</source>
834 <target>Uzantoj</target> 833 <target>Uzantoj</target>
835 <context-group name="null"> 834 <context-group name="null">
836 <context context-type="linenumber">119</context> 835 <context context-type="linenumber">117</context>
837 </context-group> 836 </context-group>
838 </trans-unit> 837 </trans-unit>
839 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 838 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
840 <source>User default video quota</source> 839 <source>User default video quota</source>
841 <target>Norma datumlimo por filmoj de uzantoj</target> 840 <target>Norma datumlimo por filmoj de uzantoj</target>
842 <context-group name="null"> 841 <context-group name="null">
843 <context context-type="linenumber">122</context> 842 <context context-type="linenumber">120</context>
844 </context-group> 843 </context-group>
845 </trans-unit> 844 </trans-unit>
846 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 845 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -854,28 +853,28 @@
854 <source>Twitter</source> 853 <source>Twitter</source>
855 <target>Tvitero</target> 854 <target>Tvitero</target>
856 <context-group name="null"> 855 <context-group name="null">
857 <context context-type="linenumber">138</context> 856 <context context-type="linenumber">136</context>
858 </context-group> 857 </context-group>
859 </trans-unit> 858 </trans-unit>
860 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 859 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
861 <source>Your Twitter username</source> 860 <source>Your Twitter username</source>
862 <target>Via Tvitera salutnomo</target> 861 <target>Via Tvitera salutnomo</target>
863 <context-group name="null"> 862 <context-group name="null">
864 <context context-type="linenumber">141</context> 863 <context context-type="linenumber">139</context>
865 </context-group> 864 </context-group>
866 </trans-unit> 865 </trans-unit>
867 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 866 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
868 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 867 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
869 <target>Indikas konton de Twitter por la retejo aŭ platformo, sur kiu la afero publikiĝis.</target> 868 <target>Indikas konton de Twitter por la retejo aŭ platformo, sur kiu la afero publikiĝis.</target>
870 <context-group name="null"> 869 <context-group name="null">
871 <context context-type="linenumber">144</context> 870 <context context-type="linenumber">142</context>
872 </context-group> 871 </context-group>
873 </trans-unit> 872 </trans-unit>
874 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 873 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
875 <source>Instance whitelisted by Twitter</source> 874 <source>Instance whitelisted by Twitter</source>
876 <target>Nodo permesata de Twitter</target> 875 <target>Nodo permesata de Twitter</target>
877 <context-group name="null"> 876 <context-group name="null">
878 <context context-type="linenumber">159</context> 877 <context context-type="linenumber">155</context>
879 </context-group> 878 </context-group>
880 </trans-unit> 879 </trans-unit>
881 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 880 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -886,91 +885,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
886Se la nodo ne estas permesata, ni ligos al la filmo sur via nodo per bildo.&lt;br /&gt;&lt;br /&gt; 885Se la nodo ne estas permesata, ni ligos al la filmo sur via nodo per bildo.&lt;br /&gt;&lt;br /&gt;
887Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al filmo sur via nodo (https://ekzemplo.net/videos/watch/blablabla) en &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; por vidi, ĉu vio nodo estas permesata.</target> 886Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al filmo sur via nodo (https://ekzemplo.net/videos/watch/blablabla) en &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; por vidi, ĉu vio nodo estas permesata.</target>
888 <context-group name="null"> 887 <context-group name="null">
889 <context context-type="linenumber">162</context> 888 <context context-type="linenumber">156</context>
890 </context-group> 889 </context-group>
891 </trans-unit> 890 </trans-unit>
892 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 891 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
893 <source>Services</source> 892 <source>Services</source>
894 <target>Servoj</target> 893 <target>Servoj</target>
895 <context-group name="null"> 894 <context-group name="null">
896 <context context-type="linenumber">136</context> 895 <context context-type="linenumber">134</context>
897 </context-group> 896 </context-group>
898 </trans-unit> 897 </trans-unit>
899 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 898 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
900 <source>Transcoding</source> 899 <source>Transcoding</source>
901 <target>Transkodado</target> 900 <target>Transkodado</target>
902 <context-group name="null"> 901 <context-group name="null">
903 <context context-type="linenumber">172</context> 902 <context context-type="linenumber">164</context>
904 </context-group> 903 </context-group>
905 </trans-unit> 904 </trans-unit>
906 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 905 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
907 <source>Transcoding enabled</source> 906 <source>Transcoding enabled</source>
908 <target>Transkodado ŝaltita</target> 907 <target>Transkodado ŝaltita</target>
909 <context-group name="null"> 908 <context-group name="null">
910 <context context-type="linenumber">178</context> 909 <context context-type="linenumber">168</context>
911 </context-group> 910 </context-group>
912 </trans-unit> 911 </trans-unit>
913 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 912 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
914 <source>If you disable transcoding, many videos from your users will not work!</source> 913 <source>If you disable transcoding, many videos from your users will not work!</source>
915 <target>Se vi malŝaltos transkodadon, multaj filmoj de viaj uzantoj eble ne funkcios!</target> 914 <target>Se vi malŝaltos transkodadon, multaj filmoj de viaj uzantoj eble ne funkcios!</target>
916 <context-group name="null"> 915 <context-group name="null">
917 <context context-type="linenumber">180</context> 916 <context context-type="linenumber">169</context>
918 </context-group> 917 </context-group>
919 </trans-unit> 918 </trans-unit>
920 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 919 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
921 <source>Transcoding threads</source> 920 <source>Transcoding threads</source>
922 <target>Fadenoj por transkodado</target> 921 <target>Fadenoj por transkodado</target>
923 <context-group name="null"> 922 <context-group name="null">
924 <context context-type="linenumber">186</context> 923 <context context-type="linenumber">175</context>
925 </context-group>
926 </trans-unit>
927 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
928 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
929 <target>Distingo <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> ŝaltita</target>
930 <context-group name="null">
931 <context context-type="linenumber">205</context>
932 </context-group>
933 </trans-unit>
934 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
935 <source>Cache</source>
936 <target>Kaŝmemoro</target>
937 <context-group name="null">
938 <context context-type="linenumber">209</context>
939 </context-group> 924 </context-group>
940 </trans-unit> 925 </trans-unit>
941 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 926 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
942 <source>Previews cache size</source> 927 <source>Previews cache size</source>
943 <target>Grando de antaŭrigarda kaŝmemoro</target> 928 <target>Grando de antaŭrigarda kaŝmemoro</target>
944 <context-group name="null"> 929 <context-group name="null">
945 <context context-type="linenumber">212</context> 930 <context context-type="linenumber">207</context>
946 </context-group>
947 </trans-unit>
948 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
949 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
950 <target>Minoritatoj ne estas federataj. Ni prenas kaj kaŝmemoras ilin rekte el la fonta nodo.</target>
951 <context-group name="null">
952 <context context-type="linenumber">215</context>
953 </context-group> 931 </context-group>
954 </trans-unit> 932 </trans-unit>
955 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 933 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
956 <source>Customizations</source> 934 <source>Customizations</source>
957 <target>Adaptoj</target> 935 <target>Adaptoj</target>
958 <context-group name="null"> 936 <context-group name="null">
959 <context context-type="linenumber">227</context> 937 <context context-type="linenumber">228</context>
960 </context-group> 938 </context-group>
961 </trans-unit> 939 </trans-unit>
962 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 940 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
963 <source>JavaScript</source> 941 <source>JavaScript</source>
964 <target>Ĝavoskripto</target> 942 <target>Ĝavoskripto</target>
965 <context-group name="null"> 943 <context-group name="null">
966 <context context-type="linenumber">230</context> 944 <context context-type="linenumber">231</context>
967 </context-group> 945 </context-group>
968 </trans-unit> 946 </trans-unit>
969 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 947 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
970 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 948 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
971 <target>Skribu rekte Ĝavoskriptan kodon.&lt;br /&gt;Ekzemple: &lt;pre&gt;console.log('mia nodo bonegas');&lt;/pre&gt;</target> 949 <target>Skribu rekte Ĝavoskriptan kodon.&lt;br /&gt;Ekzemple: &lt;pre&gt;console.log('mia nodo bonegas');&lt;/pre&gt;</target>
972 <context-group name="null"> 950 <context-group name="null">
973 <context context-type="linenumber">233</context> 951 <context context-type="linenumber">234</context>
974 </context-group> 952 </context-group>
975 </trans-unit> 953 </trans-unit>
976 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 954 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -1005,28 +983,28 @@ Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al fi
1005 &lt;/pre&gt; 983 &lt;/pre&gt;
1006 </target> 984 </target>
1007 <context-group name="null"> 985 <context-group name="null">
1008 <context context-type="linenumber">249</context> 986 <context context-type="linenumber">250</context>
1009 </context-group> 987 </context-group>
1010 </trans-unit> 988 </trans-unit>
1011 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 989 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1012 <source>Advanced configuration</source> 990 <source>Advanced configuration</source>
1013 <target>Specialaj agordoj</target> 991 <target>Specialaj agordoj</target>
1014 <context-group name="null"> 992 <context-group name="null">
1015 <context context-type="linenumber">170</context> 993 <context context-type="linenumber">162</context>
1016 </context-group> 994 </context-group>
1017 </trans-unit> 995 </trans-unit>
1018 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 996 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1019 <source>Update configuration</source> 997 <source>Update configuration</source>
1020 <target>Efektivigi agordojn</target> 998 <target>Efektivigi agordojn</target>
1021 <context-group name="null"> 999 <context-group name="null">
1022 <context context-type="linenumber">276</context> 1000 <context context-type="linenumber">277</context>
1023 </context-group> 1001 </context-group>
1024 </trans-unit> 1002 </trans-unit>
1025 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 1003 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1026 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 1004 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1027 <target>Ŝajnas, ke la agordo estas nevalida. Bonvolu serĉi eblajn erarojn en la langetoj.</target> 1005 <target>Ŝajnas, ke la agordo estas nevalida. Bonvolu serĉi eblajn erarojn en la langetoj.</target>
1028 <context-group name="null"> 1006 <context-group name="null">
1029 <context context-type="linenumber">277</context> 1007 <context context-type="linenumber">278</context>
1030 </context-group> 1008 </context-group>
1031 </trans-unit> 1009 </trans-unit>
1032 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1010 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1176,13 +1154,6 @@ Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al fi
1176 <context context-type="linenumber">19</context> 1154 <context context-type="linenumber">19</context>
1177 </context-group> 1155 </context-group>
1178 </trans-unit> 1156 </trans-unit>
1179 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1180 <source>Updated</source>
1181 <target>Ĝisdatigita</target>
1182 <context-group name="null">
1183 <context context-type="linenumber">22</context>
1184 </context-group>
1185 </trans-unit>
1186 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1157 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1187 <source>Create user</source> 1158 <source>Create user</source>
1188 <target>Krei uzanton</target> 1159 <target>Krei uzanton</target>
@@ -1357,53 +1328,32 @@ Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al fi
1357 <context context-type="linenumber">7</context> 1328 <context context-type="linenumber">7</context>
1358 </context-group> 1329 </context-group>
1359 </trans-unit> 1330 </trans-unit>
1360 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1361 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1362 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> abonantoj</target>
1363 <context-group name="null">
1364 <context context-type="linenumber">9</context>
1365 </context-group>
1366 </trans-unit>
1367 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1368 <source>Change your avatar</source>
1369 <target>Ŝanĝi profilbildon</target>
1370 <context-group name="null">
1371 <context context-type="linenumber">14</context>
1372 </context-group>
1373 </trans-unit>
1374 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1375 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1376 <target>(postafiksoj: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, pleja grando: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1377 <context-group name="null">
1378 <context context-type="linenumber">17</context>
1379 </context-group>
1380 </trans-unit>
1381 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1331 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1382 <source>Video quota:</source> 1332 <source>Video quota:</source>
1383 <target>Datumlimo por filmoj:</target> 1333 <target>Datumlimo por filmoj:</target>
1384 <context-group name="null"> 1334 <context-group name="null">
1385 <context context-type="linenumber">20</context> 1335 <context context-type="linenumber">4</context>
1386 </context-group> 1336 </context-group>
1387 </trans-unit> 1337 </trans-unit>
1388 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1338 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1389 <source>Profile</source> 1339 <source>Profile</source>
1390 <target>Profilo</target> 1340 <target>Profilo</target>
1391 <context-group name="null"> 1341 <context-group name="null">
1392 <context context-type="linenumber">24</context> 1342 <context context-type="linenumber">8</context>
1393 </context-group> 1343 </context-group>
1394 </trans-unit> 1344 </trans-unit>
1395 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1345 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1396 <source>Video settings</source> 1346 <source>Video settings</source>
1397 <target>Filmaj agordoj:</target> 1347 <target>Filmaj agordoj:</target>
1398 <context-group name="null"> 1348 <context-group name="null">
1399 <context context-type="linenumber">31</context> 1349 <context context-type="linenumber">15</context>
1400 </context-group> 1350 </context-group>
1401 </trans-unit> 1351 </trans-unit>
1402 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1352 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1403 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1353 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1404 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj</target> 1354 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj</target>
1405 <context-group name="null"> 1355 <context-group name="null">
1406 <context context-type="linenumber">20</context> 1356 <context context-type="linenumber">19</context>
1407 </context-group> 1357 </context-group>
1408 </trans-unit> 1358 </trans-unit>
1409 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1359 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1431,14 +1381,7 @@ Marku ĉi tiun markbutonon, konservu la agordon, kaj provu ĝin kun ligilo al fi
1431 <source>Create a video channel</source> 1381 <source>Create a video channel</source>
1432 <target>Krei filman kanalon</target> 1382 <target>Krei filman kanalon</target>
1433 <context-group name="null"> 1383 <context-group name="null">
1434 <context context-type="linenumber">1</context> 1384 <context context-type="linenumber">6</context>
1435 </context-group>
1436 </trans-unit>
1437 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1438 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1439 <target>Ĝisdatigi <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1440 <context-group name="null">
1441 <context context-type="linenumber">2</context>
1442 </context-group> 1385 </context-group>
1443 </trans-unit> 1386 </trans-unit>
1444 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1387 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1454,7 +1397,7 @@ When you will upload a video in this channel, the video support field will be au
1454 <target>Mallonga teksto por sciigi homojn, kiel ili povas subteni vin.&lt;br /&gt;&lt;br /&gt; 1397 <target>Mallonga teksto por sciigi homojn, kiel ili povas subteni vin.&lt;br /&gt;&lt;br /&gt;
1455Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos tiun ĉi tekston.</target> 1398Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos tiun ĉi tekston.</target>
1456 <context-group name="null"> 1399 <context-group name="null">
1457 <context context-type="linenumber">32</context> 1400 <context context-type="linenumber">36</context>
1458 </context-group> 1401 </context-group>
1459 </trans-unit> 1402 </trans-unit>
1460 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1403 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1489,14 +1432,14 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1489 <source>Automatically plays video</source> 1432 <source>Automatically plays video</source>
1490 <target>Memfare ludas filmon</target> 1433 <target>Memfare ludas filmon</target>
1491 <context-group name="null"> 1434 <context-group name="null">
1492 <context context-type="linenumber">24</context> 1435 <context context-type="linenumber">20</context>
1493 </context-group> 1436 </context-group>
1494 </trans-unit> 1437 </trans-unit>
1495 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1438 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1496 <source>Save</source> 1439 <source>Save</source>
1497 <target>Konservi</target> 1440 <target>Konservi</target>
1498 <context-group name="null"> 1441 <context-group name="null">
1499 <context context-type="linenumber">27</context> 1442 <context context-type="linenumber">23</context>
1500 </context-group> 1443 </context-group>
1501 </trans-unit> 1444 </trans-unit>
1502 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1445 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1506,6 +1449,13 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1506 <context context-type="linenumber">27</context> 1449 <context context-type="linenumber">27</context>
1507 </context-group> 1450 </context-group>
1508 </trans-unit> 1451 </trans-unit>
1452 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1453 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1454 <target>(postafiksoj: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, pleja grando: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1455 <context-group name="null">
1456 <context context-type="linenumber">18</context>
1457 </context-group>
1458 </trans-unit>
1509 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1459 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1510 <source> 1460 <source>
1511 Sorry, but we couldn't find the page you were looking for. 1461 Sorry, but we couldn't find the page you were looking for.
@@ -1577,21 +1527,21 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1577 <source>Privacy</source> 1527 <source>Privacy</source>
1578 <target>Privateco</target> 1528 <target>Privateco</target>
1579 <context-group name="null"> 1529 <context-group name="null">
1580 <context context-type="linenumber">86</context> 1530 <context context-type="linenumber">139</context>
1581 </context-group> 1531 </context-group>
1582 </trans-unit> 1532 </trans-unit>
1583 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1533 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1584 <source>Publish will be available when upload is finished</source> 1534 <source>Publish will be available when upload is finished</source>
1585 <target>Eldono eblos post fino de alŝuto</target> 1535 <target>Eldono eblos post fino de alŝuto</target>
1586 <context-group name="null"> 1536 <context-group name="null">
1587 <context context-type="linenumber">53</context> 1537 <context context-type="linenumber">54</context>
1588 </context-group> 1538 </context-group>
1589 </trans-unit> 1539 </trans-unit>
1590 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1540 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1591 <source>Publish</source> 1541 <source>Publish</source>
1592 <target>Eldoni</target> 1542 <target>Eldoni</target>
1593 <context-group name="null"> 1543 <context-group name="null">
1594 <context context-type="linenumber">60</context> 1544 <context context-type="linenumber">61</context>
1595 </context-group> 1545 </context-group>
1596 </trans-unit> 1546 </trans-unit>
1597 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1547 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1605,7 +1555,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1605 <source>Tags</source> 1555 <source>Tags</source>
1606 <target>Etikedoj</target> 1556 <target>Etikedoj</target>
1607 <context-group name="null"> 1557 <context-group name="null">
1608 <context context-type="linenumber">15</context> 1558 <context context-type="linenumber">171</context>
1609 </context-group> 1559 </context-group>
1610 </trans-unit> 1560 </trans-unit>
1611 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1561 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1622,27 +1572,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1622 <context context-type="linenumber">24</context> 1572 <context context-type="linenumber">24</context>
1623 </context-group> 1573 </context-group>
1624 </trans-unit> 1574 </trans-unit>
1625 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1626 <source>Category</source>
1627 <target>Kategorio</target>
1628 <context-group name="null">
1629 <context context-type="linenumber">44</context>
1630 </context-group>
1631 </trans-unit>
1632 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1633 <source>Licence</source>
1634 <target>Permesilo</target>
1635 <context-group name="null">
1636 <context context-type="linenumber">58</context>
1637 </context-group>
1638 </trans-unit>
1639 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1640 <source>Language</source>
1641 <target>Lingvo</target>
1642 <context-group name="null">
1643 <context context-type="linenumber">72</context>
1644 </context-group>
1645 </trans-unit>
1646 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1575 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1647 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1576 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1648 <target>Plani publikigon (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1577 <target>Plani publikigon (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1654,35 +1583,28 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1654 <source>This video contains mature or explicit content</source> 1583 <source>This video contains mature or explicit content</source>
1655 <target>Tiu ĉi filmo povas esti konsterna aŭ maltaŭga por neplenaĝaj.</target> 1584 <target>Tiu ĉi filmo povas esti konsterna aŭ maltaŭga por neplenaĝaj.</target>
1656 <context-group name="null"> 1585 <context-group name="null">
1657 <context context-type="linenumber">116</context> 1586 <context context-type="linenumber">115</context>
1658 </context-group> 1587 </context-group>
1659 </trans-unit> 1588 </trans-unit>
1660 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1589 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1661 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1590 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1662 <target>Iuj nodoj ne listigas filmojn, kiuj estas konsternaj aŭ maltaŭgaj por neplenaĝuloj.</target> 1591 <target>Iuj nodoj ne listigas filmojn, kiuj estas konsternaj aŭ maltaŭgaj por neplenaĝuloj.</target>
1663 <context-group name="null"> 1592 <context-group name="null">
1664 <context context-type="linenumber">119</context> 1593 <context context-type="linenumber">116</context>
1665 </context-group> 1594 </context-group>
1666 </trans-unit> 1595 </trans-unit>
1667 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1596 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1668 <source>Enable video comments</source> 1597 <source>Enable video comments</source>
1669 <target>Ŝalti komentojn al filmo</target> 1598 <target>Ŝalti komentojn al filmo</target>
1670 <context-group name="null"> 1599 <context-group name="null">
1671 <context context-type="linenumber">126</context> 1600 <context context-type="linenumber">121</context>
1672 </context-group> 1601 </context-group>
1673 </trans-unit> 1602 </trans-unit>
1674 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1603 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1675 <source>Wait transcoding before publishing the video</source> 1604 <source>Wait transcoding before publishing the video</source>
1676 <target>Atendi transkodadon antaŭ publikigi la filmon</target> 1605 <target>Atendi transkodadon antaŭ publikigi la filmon</target>
1677 <context-group name="null"> 1606 <context-group name="null">
1678 <context context-type="linenumber">132</context> 1607 <context context-type="linenumber">126</context>
1679 </context-group>
1680 </trans-unit>
1681 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1682 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1683 <target>Se vi decides ne atendi transkodadon antaŭ publikigi la filmon, ĝi povas esti neludebla ĝis la transkodado finiĝos.</target>
1684 <context-group name="null">
1685 <context context-type="linenumber">135</context>
1686 </context-group> 1608 </context-group>
1687 </trans-unit> 1609 </trans-unit>
1688 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1610 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1696,42 +1618,35 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1696 <source>Upload thumbnail</source> 1618 <source>Upload thumbnail</source>
1697 <target>Alŝuti miniaturon</target> 1619 <target>Alŝuti miniaturon</target>
1698 <context-group name="null"> 1620 <context-group name="null">
1699 <context context-type="linenumber">146</context> 1621 <context context-type="linenumber">186</context>
1700 </context-group> 1622 </context-group>
1701 </trans-unit> 1623 </trans-unit>
1702 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1624 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1703 <source>Upload preview</source> 1625 <source>Upload preview</source>
1704 <target>Alŝuti antaŭrigardon</target> 1626 <target>Alŝuti antaŭrigardon</target>
1705 <context-group name="null"> 1627 <context-group name="null">
1706 <context context-type="linenumber">153</context> 1628 <context context-type="linenumber">193</context>
1707 </context-group> 1629 </context-group>
1708 </trans-unit> 1630 </trans-unit>
1709 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1631 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1710 <source>Support</source> 1632 <source>Support</source>
1711 <target>Subteno</target> 1633 <target>Subteno</target>
1712 <context-group name="null"> 1634 <context-group name="null">
1713 <context context-type="linenumber">59</context> 1635 <context context-type="linenumber">67</context>
1714 </context-group> 1636 </context-group>
1715 </trans-unit> 1637 </trans-unit>
1716 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1638 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1717 <source>Short text to tell people how they can support you (membership platform...).</source> 1639 <source>Short text to tell people how they can support you (membership platform...).</source>
1718 <target>Mallonga teksto por sciigi homojn, kiel ili povas subteni vin.</target> 1640 <target>Mallonga teksto por sciigi homojn, kiel ili povas subteni vin.</target>
1719 <context-group name="null"> 1641 <context-group name="null">
1720 <context context-type="linenumber">160</context> 1642 <context context-type="linenumber">200</context>
1721 </context-group> 1643 </context-group>
1722 </trans-unit> 1644 </trans-unit>
1723 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1645 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1724 <source>Advanced settings</source> 1646 <source>Advanced settings</source>
1725 <target>Specialaj agordoj</target> 1647 <target>Specialaj agordoj</target>
1726 <context-group name="null"> 1648 <context-group name="null">
1727 <context context-type="linenumber">142</context> 1649 <context context-type="linenumber">182</context>
1728 </context-group>
1729 </trans-unit>
1730 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1731 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1732 <target>(postafiksoj: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, pleja grando: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1733 <context-group name="null">
1734 <context context-type="linenumber">11</context>
1735 </context-group> 1650 </context-group>
1736 </trans-unit> 1651 </trans-unit>
1737 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1652 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1749,7 +1664,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1749 <source>Update</source> 1664 <source>Update</source>
1750 <target>Ĝisdatigi</target> 1665 <target>Ĝisdatigi</target>
1751 <context-group name="null"> 1666 <context-group name="null">
1752 <context context-type="linenumber">93</context> 1667 <context context-type="linenumber">101</context>
1753 </context-group> 1668 </context-group>
1754 </trans-unit> 1669 </trans-unit>
1755 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1670 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1759,32 +1674,18 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1759 <context context-type="linenumber">7</context> 1674 <context context-type="linenumber">7</context>
1760 </context-group> 1675 </context-group>
1761 </trans-unit> 1676 </trans-unit>
1762 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1763 <source>Torrent</source>
1764 <target>Torento</target>
1765 <context-group name="null">
1766 <context context-type="linenumber">20</context>
1767 </context-group>
1768 </trans-unit>
1769 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1677 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1770 <source>Direct download</source> 1678 <source>Direct download</source>
1771 <target>Rekta elŝuto</target> 1679 <target>Rekta elŝuto</target>
1772 <context-group name="null"> 1680 <context-group name="null">
1773 <context context-type="linenumber">25</context> 1681 <context context-type="linenumber">20</context>
1774 </context-group>
1775 </trans-unit>
1776 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1777 <source>Torrent (magnet)</source>
1778 <target>Torento (magneta)</target>
1779 <context-group name="null">
1780 <context context-type="linenumber">30</context>
1781 </context-group> 1682 </context-group>
1782 </trans-unit> 1683 </trans-unit>
1783 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1684 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1784 <source>Download</source> 1685 <source>Download</source>
1785 <target>Elŝuto</target> 1686 <target>Elŝuto</target>
1786 <context-group name="null"> 1687 <context-group name="null">
1787 <context context-type="linenumber">75</context> 1688 <context context-type="linenumber">83</context>
1788 </context-group> 1689 </context-group>
1789 </trans-unit> 1690 </trans-unit>
1790 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1691 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1823,7 +1724,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1823 <source>Share</source> 1724 <source>Share</source>
1824 <target>Kunhavigi</target> 1725 <target>Kunhavigi</target>
1825 <context-group name="null"> 1726 <context-group name="null">
1826 <context context-type="linenumber">64</context> 1727 <context context-type="linenumber">72</context>
1827 </context-group> 1728 </context-group>
1828 </trans-unit> 1729 </trans-unit>
1829 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1730 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1859,7 +1760,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1859 La filmo estas transkodata; eble ĝi ne funkcios bone. 1760 La filmo estas transkodata; eble ĝi ne funkcios bone.
1860 </target> 1761 </target>
1861 <context-group name="null"> 1762 <context-group name="null">
1862 <context context-type="linenumber">6</context> 1763 <context context-type="linenumber">11</context>
1863 </context-group> 1764 </context-group>
1864 </trans-unit> 1765 </trans-unit>
1865 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1766 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1870,7 +1771,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1870 Tiu ĉi filmo publikiĝos je <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1771 Tiu ĉi filmo publikiĝos je <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1871 </target> 1772 </target>
1872 <context-group name="null"> 1773 <context-group name="null">
1873 <context context-type="linenumber">10</context> 1774 <context context-type="linenumber">15</context>
1874 </context-group> 1775 </context-group>
1875 </trans-unit> 1776 </trans-unit>
1876 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1777 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1881,167 +1782,112 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
1881 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj 1782 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> rigardoj
1882 </target> 1783 </target>
1883 <context-group name="null"> 1784 <context-group name="null">
1884 <context context-type="linenumber">21</context> 1785 <context context-type="linenumber">26</context>
1885 </context-group> 1786 </context-group>
1886 </trans-unit> 1787 </trans-unit>
1887 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1788 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1888 <source>Go the channel page</source> 1789 <source>Go the channel page</source>
1889 <target>Iri al paĝo de la kanalo</target> 1790 <target>Iri al paĝo de la kanalo</target>
1890 <context-group name="null"> 1791 <context-group name="null">
1891 <context context-type="linenumber">26</context> 1792 <context context-type="linenumber">31</context>
1892 </context-group>
1893 </trans-unit>
1894 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1895 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1896 <target>Vi povas aboni tiun ĉi konton per iu ajn fediversa nodo, kiu subtenas protokolon « ActivityPub ». Ekzemple, en « Mastodon » aŭ « Pleroma », vi povas tajpi en serĉujon &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; kaj aboni tie. Abonado kiel uzanto de PeerTube estas prilaborata en &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1897 <context-group name="null">
1898 <context context-type="linenumber">30</context>
1899 </context-group> 1793 </context-group>
1900 </trans-unit> 1794 </trans-unit>
1901 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1795 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1902 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1796 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1903 <target>De <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1797 <target>De <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1904 <context-group name="null"> 1798 <context-group name="null">
1905 <context context-type="linenumber">35</context> 1799 <context context-type="linenumber">41</context>
1906 </context-group> 1800 </context-group>
1907 </trans-unit> 1801 </trans-unit>
1908 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1802 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1909 <source>Go to the account page</source> 1803 <source>Go to the account page</source>
1910 <target>Iri al paĝo de la konto</target> 1804 <target>Iri al paĝo de la konto</target>
1911 <context-group name="null"> 1805 <context-group name="null">
1912 <context context-type="linenumber">34</context> 1806 <context context-type="linenumber">40</context>
1807 </context-group>
1808 </trans-unit>
1809 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1810 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1811 <target>Vi povas aboni tiun ĉi konton per iu ajn fediversa nodo, kiu subtenas protokolon « ActivityPub ». Ekzemple, en « Mastodon » aŭ « Pleroma », vi povas tajpi en serĉujon &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; kaj aboni tie. Abonado kiel uzanto de PeerTube estas prilaborata en &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1812 <context-group name="null">
1813 <context context-type="linenumber">45</context>
1913 </context-group> 1814 </context-group>
1914 </trans-unit> 1815 </trans-unit>
1915 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1816 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1916 <source>Like this video</source> 1817 <source>Like this video</source>
1917 <target>Ŝati ĉi tiun filmon</target> 1818 <target>Ŝati ĉi tiun filmon</target>
1918 <context-group name="null"> 1819 <context-group name="null">
1919 <context context-type="linenumber">47</context> 1820 <context context-type="linenumber">55</context>
1920 </context-group> 1821 </context-group>
1921 </trans-unit> 1822 </trans-unit>
1922 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1823 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1923 <source>Dislike this video</source> 1824 <source>Dislike this video</source>
1924 <target>Malŝati tiun ĉi filmon</target> 1825 <target>Malŝati tiun ĉi filmon</target>
1925 <context-group name="null"> 1826 <context-group name="null">
1926 <context context-type="linenumber">54</context> 1827 <context context-type="linenumber">62</context>
1927 </context-group> 1828 </context-group>
1928 </trans-unit> 1829 </trans-unit>
1929 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1830 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1930 <source>Download the video</source> 1831 <source>Download the video</source>
1931 <target>Elŝuti la videon</target> 1832 <target>Elŝuti la videon</target>
1932 <context-group name="null"> 1833 <context-group name="null">
1933 <context context-type="linenumber">74</context> 1834 <context context-type="linenumber">82</context>
1934 </context-group> 1835 </context-group>
1935 </trans-unit> 1836 </trans-unit>
1936 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1837 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1937 <source>Report</source> 1838 <source>Report</source>
1938 <target>Raporti</target> 1839 <target>Raporti</target>
1939 <context-group name="null"> 1840 <context-group name="null">
1940 <context context-type="linenumber">81</context> 1841 <context context-type="linenumber">89</context>
1941 </context-group> 1842 </context-group>
1942 </trans-unit> 1843 </trans-unit>
1943 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1844 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1944 <source>Report this video</source> 1845 <source>Report this video</source>
1945 <target>Raporti tiun ĉi videon</target> 1846 <target>Raporti tiun ĉi videon</target>
1946 <context-group name="null"> 1847 <context-group name="null">
1947 <context context-type="linenumber">80</context> 1848 <context context-type="linenumber">88</context>
1948 </context-group> 1849 </context-group>
1949 </trans-unit> 1850 </trans-unit>
1950 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1851 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1951 <source>Blacklist</source> 1852 <source>Blacklist</source>
1952 <target>Forteni</target> 1853 <target>Forteni</target>
1953 <context-group name="null"> 1854 <context-group name="null">
1954 <context context-type="linenumber">87</context> 1855 <context context-type="linenumber">95</context>
1955 </context-group> 1856 </context-group>
1956 </trans-unit> 1857 </trans-unit>
1957 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1858 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1958 <source>Blacklist this video</source> 1859 <source>Blacklist this video</source>
1959 <target>Forteni ĉi tiun filmon</target> 1860 <target>Forteni ĉi tiun filmon</target>
1960 <context-group name="null"> 1861 <context-group name="null">
1961 <context context-type="linenumber">86</context> 1862 <context context-type="linenumber">94</context>
1962 </context-group> 1863 </context-group>
1963 </trans-unit> 1864 </trans-unit>
1964 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1865 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1965 <source>Update this video</source> 1866 <source>Update this video</source>
1966 <target>Ĝisdatigi tiun ĉi videon</target> 1867 <target>Ĝisdatigi tiun ĉi videon</target>
1967 <context-group name="null"> 1868 <context-group name="null">
1968 <context context-type="linenumber">92</context> 1869 <context context-type="linenumber">100</context>
1969 </context-group> 1870 </context-group>
1970 </trans-unit> 1871 </trans-unit>
1971 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1872 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1972 <source>Delete this video</source> 1873 <source>Delete this video</source>
1973 <target>Forigi ĉi tiun videon</target> 1874 <target>Forigi ĉi tiun videon</target>
1974 <context-group name="null"> 1875 <context-group name="null">
1975 <context context-type="linenumber">98</context> 1876 <context context-type="linenumber">106</context>
1976 </context-group> 1877 </context-group>
1977 </trans-unit> 1878 </trans-unit>
1978 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1879 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1979 <source>Show more</source> 1880 <source>Show more</source>
1980 <target>Montri pli</target> 1881 <target>Montri pli</target>
1981 <context-group name="null"> 1882 <context-group name="null">
1982 <context context-type="linenumber">118</context> 1883 <context context-type="linenumber">126</context>
1983 </context-group> 1884 </context-group>
1984 </trans-unit> 1885 </trans-unit>
1985 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1886 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1986 <source>Show less</source> 1887 <source>Show less</source>
1987 <target>Montri malpli</target> 1888 <target>Montri malpli</target>
1988 <context-group name="null"> 1889 <context-group name="null">
1989 <context context-type="linenumber">124</context> 1890 <context context-type="linenumber">132</context>
1990 </context-group>
1991 </trans-unit>
1992 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1993 <source>
1994 Privacy
1995 </source>
1996 <target>
1997 Privateco
1998 </target>
1999 <context-group name="null">
2000 <context context-type="linenumber">131</context>
2001 </context-group>
2002 </trans-unit>
2003 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
2004 <source>
2005 Category
2006 </source>
2007 <target>
2008 Kategorio
2009 </target>
2010 <context-group name="null">
2011 <context context-type="linenumber">140</context>
2012 </context-group>
2013 </trans-unit>
2014 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2015 <source>
2016 Licence
2017 </source>
2018 <target>
2019 Permesilo
2020 </target>
2021 <context-group name="null">
2022 <context context-type="linenumber">149</context>
2023 </context-group>
2024 </trans-unit>
2025 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2026 <source>
2027 Language
2028 </source>
2029 <target>
2030 Lingvo
2031 </target>
2032 <context-group name="null">
2033 <context context-type="linenumber">158</context>
2034 </context-group>
2035 </trans-unit>
2036 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2037 <source>
2038 Tags
2039 </source>
2040 <target>
2041 Etikedoj
2042 </target>
2043 <context-group name="null">
2044 <context context-type="linenumber">167</context>
2045 </context-group> 1891 </context-group>
2046 </trans-unit> 1892 </trans-unit>
2047 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1893 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2052,24 +1898,13 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
2052 Aliaj filmoj 1898 Aliaj filmoj
2053 </target> 1899 </target>
2054 <context-group name="null"> 1900 <context-group name="null">
2055 <context context-type="linenumber">181</context> 1901 <context context-type="linenumber">183</context>
2056 </context-group> 1902 </context-group>
2057 </trans-unit> 1903 </trans-unit>
2058 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1904 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2059 <source>Friendly Reminder:</source> 1905 <source>Friendly Reminder:</source>
2060 <target>Amika rememorigo:</target> 1906 <target>Amika rememorigo:</target>
2061 <context-group name="null"> 1907 <context-group name="null">
2062 <context context-type="linenumber">193</context>
2063 </context-group>
2064 </trans-unit>
2065 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2066 <source>
2067 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2068 </source>
2069 <target>
2070 Kunhaviga sistemo uzata de tiu ĉi video implicas, ke iuj teĥnikaj informoj pri via sistemo (ekzemple via IP-adreso) estas publike atingeblaj.
2071 </target>
2072 <context-group name="null">
2073 <context context-type="linenumber">195</context> 1908 <context context-type="linenumber">195</context>
2074 </context-group> 1909 </context-group>
2075 </trans-unit> 1910 </trans-unit>
@@ -2077,14 +1912,14 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
2077 <source>More information</source> 1912 <source>More information</source>
2078 <target>Pliaj informoj</target> 1913 <target>Pliaj informoj</target>
2079 <context-group name="null"> 1914 <context-group name="null">
2080 <context context-type="linenumber">198</context> 1915 <context context-type="linenumber">200</context>
2081 </context-group> 1916 </context-group>
2082 </trans-unit> 1917 </trans-unit>
2083 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1918 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2084 <source>Get more information</source> 1919 <source>Get more information</source>
2085 <target>Akiri pliajn informojn</target> 1920 <target>Akiri pliajn informojn</target>
2086 <context-group name="null"> 1921 <context-group name="null">
2087 <context context-type="linenumber">198</context> 1922 <context context-type="linenumber">200</context>
2088 </context-group> 1923 </context-group>
2089 </trans-unit> 1924 </trans-unit>
2090 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1925 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2095,7 +1930,7 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
2095 Bone 1930 Bone
2096 </target> 1931 </target>
2097 <context-group name="null"> 1932 <context-group name="null">
2098 <context context-type="linenumber">201</context> 1933 <context context-type="linenumber">203</context>
2099 </context-group> 1934 </context-group>
2100 </trans-unit> 1935 </trans-unit>
2101 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1936 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2567,13 +2402,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
2567 <context context-type="linenumber">1</context> 2402 <context context-type="linenumber">1</context>
2568 </context-group> 2403 </context-group>
2569 </trans-unit> 2404 </trans-unit>
2570 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2571 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2572 <target>Retletero kun instrukcioj pri restarigo de pasvorto estos sendota al <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</target>
2573 <context-group name="null">
2574 <context context-type="linenumber">1</context>
2575 </context-group>
2576 </trans-unit>
2577 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2405 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2578 <source>Unable to find user id or verification string.</source> 2406 <source>Unable to find user id or verification string.</source>
2579 <target>Ne povas trovi identigilon aŭ kontrolan ĉenon de uzanto</target> 2407 <target>Ne povas trovi identigilon aŭ kontrolan ĉenon de uzanto</target>
@@ -2588,6 +2416,20 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
2588 <context context-type="linenumber">1</context> 2416 <context context-type="linenumber">1</context>
2589 </context-group> 2417 </context-group>
2590 </trans-unit> 2418 </trans-unit>
2419 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2420 <source>Today</source>
2421 <target>Hodiaŭ</target>
2422 <context-group name="null">
2423 <context context-type="linenumber">1</context>
2424 </context-group>
2425 </trans-unit>
2426 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2427 <source>Search</source>
2428 <target>Serĉi</target>
2429 <context-group name="null">
2430 <context context-type="linenumber">1</context>
2431 </context-group>
2432 </trans-unit>
2591 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2433 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2592 <source>Instance name is required.</source> 2434 <source>Instance name is required.</source>
2593 <target>Necesas nomo de nodo.</target> 2435 <target>Necesas nomo de nodo.</target>
@@ -3274,13 +3116,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
3274 <context context-type="linenumber">1</context> 3116 <context context-type="linenumber">1</context>
3275 </context-group> 3117 </context-group>
3276 </trans-unit> 3118 </trans-unit>
3277 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3278 <source>Today</source>
3279 <target>Hodiaŭ</target>
3280 <context-group name="null">
3281 <context context-type="linenumber">1</context>
3282 </context-group>
3283 </trans-unit>
3284 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3119 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3285 <source>Clear</source> 3120 <source>Clear</source>
3286 <target>Viŝi</target> 3121 <target>Viŝi</target>
@@ -3484,13 +3319,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
3484 <context context-type="linenumber">1</context> 3319 <context context-type="linenumber">1</context>
3485 </context-group> 3320 </context-group>
3486 </trans-unit> 3321 </trans-unit>
3487 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3488 <source>This image is too large.</source>
3489 <target>Tiu ĉi bildo tro grandas.</target>
3490 <context-group name="null">
3491 <context context-type="linenumber">1</context>
3492 </context-group>
3493 </trans-unit>
3494 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3322 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3495 <source>Your video was uploaded in your account and is private.</source> 3323 <source>Your video was uploaded in your account and is private.</source>
3496 <target>Via filmo estas alŝutita al via konto, kaj privata.</target> 3324 <target>Via filmo estas alŝutita al via konto, kaj privata.</target>
@@ -3526,13 +3354,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
3526 <context context-type="linenumber">1</context> 3354 <context context-type="linenumber">1</context>
3527 </context-group> 3355 </context-group>
3528 </trans-unit> 3356 </trans-unit>
3529 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3530 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3531 <target>Bedaŭre PeerTube ne povas trakti filmojn pli grandajn ol 4GB</target>
3532 <context-group name="null">
3533 <context context-type="linenumber">1</context>
3534 </context-group>
3535 </trans-unit>
3536 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3357 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3537 <source>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 }}"/>)</source> 3358 <source>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 }}"/>)</source>
3538 <target>Via datumlimo por filmoj superfluas kun tiu ĉi filmo (grando: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, uzitaj: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, datumlimo: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3359 <target>Via datumlimo por filmoj superfluas kun tiu ĉi filmo (grando: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, uzitaj: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, datumlimo: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3603,13 +3424,6 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
3603 <context context-type="linenumber">1</context> 3424 <context context-type="linenumber">1</context>
3604 </context-group> 3425 </context-group>
3605 </trans-unit> 3426 </trans-unit>
3606 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3607 <source>Cannot fetch video from server, maybe down.</source>
3608 <target>Ne povas preni filmon de servilo; eble ĝi ne atingeblas.</target>
3609 <context-group name="null">
3610 <context context-type="linenumber">1</context>
3611 </context-group>
3612 </trans-unit>
3613 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3427 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3614 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3428 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3615 <target>Tiu ĉi video povas esti konsterna aŭ maltaŭga por neplenaĝuloj. Ĉu vi certe volas spekti ĝin?</target> 3429 <target>Tiu ĉi video povas esti konsterna aŭ maltaŭga por neplenaĝuloj. Ĉu vi certe volas spekti ĝin?</target>
@@ -3624,12 +3438,5 @@ Kiam vi alŝutos filmon al tiu ĉi kanalo, la kampo pri subteno memfare enhavos
3624 <context context-type="linenumber">1</context> 3438 <context context-type="linenumber">1</context>
3625 </context-group> 3439 </context-group>
3626 </trans-unit> 3440 </trans-unit>
3627 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3628 <source>Search</source>
3629 <target>Serĉi</target>
3630 <context-group name="null">
3631 <context context-type="linenumber">1</context>
3632 </context-group>
3633 </trans-unit>
3634 </body> 3441 </body>
3635 </file></xliff> \ No newline at end of file 3442 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_es_ES.xml b/client/src/locale/target/angular_es_ES.xml
index 6d5c1cc3a..37c29c5ff 100644
--- a/client/src/locale/target/angular_es_ES.xml
+++ b/client/src/locale/target/angular_es_ES.xml
@@ -10,7 +10,14 @@
10 <target> 10 <target>
11Cancelar</target> 11Cancelar</target>
12 <context-group name="null"> 12 <context-group name="null">
13 <context context-type="linenumber">40</context> 13 <context context-type="linenumber">45</context>
14 </context-group>
15 </trans-unit>
16 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
17 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
18 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizaciones</target>
19 <context-group name="null">
20 <context context-type="linenumber">34</context>
14 </context-group> 21 </context-group>
15 </trans-unit> 22 </trans-unit>
16 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 23 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -20,6 +27,13 @@ Cancelar</target>
20 <context context-type="linenumber">3</context> 27 <context context-type="linenumber">3</context>
21 </context-group> 28 </context-group>
22 </trans-unit> 29 </trans-unit>
30 <trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
31 <source>Truncated preview</source>
32 <target>Previsualización truncada</target>
33 <context-group name="null">
34 <context context-type="linenumber">9</context>
35 </context-group>
36 </trans-unit>
23 <trans-unit id="f82f53a2544638939a8ba93c0fb1b0a4419c3196"> 37 <trans-unit id="f82f53a2544638939a8ba93c0fb1b0a4419c3196">
24 <source>Complete preview</source> 38 <source>Complete preview</source>
25 <target>Vista previa completa</target> 39 <target>Vista previa completa</target>
@@ -31,7 +45,7 @@ Cancelar</target>
31 <source>Get help</source> 45 <source>Get help</source>
32 <target>Obtener ayuda</target> 46 <target>Obtener ayuda</target>
33 <context-group name="null"> 47 <context-group name="null">
34 <context context-type="linenumber">17</context> 48 <context context-type="linenumber">18</context>
35 </context-group> 49 </context-group>
36 </trans-unit> 50 </trans-unit>
37 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 51 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -51,11 +65,47 @@ Iniciar sesión</target>
51 <context context-type="linenumber">11</context> 65 <context context-type="linenumber">11</context>
52 </context-group> 66 </context-group>
53 </trans-unit> 67 </trans-unit>
68 <trans-unit id="51ef29329faccb28d94369897068897d1b3d0478">
69 <source>Username or email address</source>
70 <target>Usuario o correo electrónico</target>
71 <context-group name="null">
72 <context context-type="linenumber">13</context>
73 </context-group>
74 </trans-unit>
75 <trans-unit id="02c4360c2d956e74ed6bb1f71e86812af0e19b87">
76 <source>
77 or create an account
78 </source>
79 <target>
80 o crear una cuenta
81 </target>
82 <context-group name="null">
83 <context context-type="linenumber">16</context>
84 </context-group>
85 </trans-unit>
86 <trans-unit id="d6290381021b16febc426d3e3a52dda83991ce0b">
87 <source>
88 or create an account on another instance
89 </source>
90 <target>
91 o crear una cuenta en otro nodo
92 </target>
93 <context-group name="null">
94 <context context-type="linenumber">20</context>
95 </context-group>
96 </trans-unit>
97 <trans-unit id="76e1f485e6ead4c84b606f46d413878881d66ad3">
98 <source>User registration is not allowed on this instance, but you can register on many others!</source>
99 <target>El registro de usuarios no está permitido en este nodo, ¡pero puedes registrarte en muchos otros!</target>
100 <context-group name="null">
101 <context context-type="linenumber">26</context>
102 </context-group>
103 </trans-unit>
54 <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407"> 104 <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407">
55 <source>Password</source> 105 <source>Password</source>
56 <target>Contraseña</target> 106 <target>Contraseña</target>
57 <context-group name="null"> 107 <context-group name="null">
58 <context context-type="linenumber">28</context> 108 <context context-type="linenumber">12</context>
59 </context-group> 109 </context-group>
60 </trans-unit> 110 </trans-unit>
61 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -65,6 +115,13 @@ Iniciar sesión</target>
65 <context context-type="linenumber">42</context> 115 <context context-type="linenumber">42</context>
66 </context-group> 116 </context-group>
67 </trans-unit> 117 </trans-unit>
118 <trans-unit id="d2eb6c5d41f70d4b8c0937e7e19e196143b47681">
119 <source>Forgot your password</source>
120 <target>Olvidaste tu contraseña</target>
121 <context-group name="null">
122 <context context-type="linenumber">59</context>
123 </context-group>
124 </trans-unit>
68 <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc"> 125 <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc">
69 <source>Email</source> 126 <source>Email</source>
70 <target>Correo electrónico </target> 127 <target>Correo electrónico </target>
@@ -79,6 +136,24 @@ Iniciar sesión</target>
79 <context context-type="linenumber">66</context> 136 <context context-type="linenumber">66</context>
80 </context-group> 137 </context-group>
81 </trans-unit> 138 </trans-unit>
139 <trans-unit id="78be69e4d26b3b654c49962839d8545e61bf8b55">
140 <source>Send me an email to reset my password</source>
141 <target>Enviar un correo electrónico para restablecer mi contraseña</target>
142 <context-group name="null">
143 <context context-type="linenumber">77</context>
144 </context-group>
145 </trans-unit>
146 <trans-unit id="2ba14c37f3b23553b2602c5e535d0ff4916f24aa">
147 <source>
148 Reset my password
149 </source>
150 <target>
151 Restablecer mi contraseña
152 </target>
153 <context-group name="null">
154 <context context-type="linenumber">2</context>
155 </context-group>
156 </trans-unit>
82 <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8"> 157 <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8">
83 <source>Confirm password</source> 158 <source>Confirm password</source>
84 <target>Confirmar la contraseña</target> 159 <target>Confirmar la contraseña</target>
@@ -93,6 +168,13 @@ Iniciar sesión</target>
93 <context context-type="linenumber">21</context> 168 <context context-type="linenumber">21</context>
94 </context-group> 169 </context-group>
95 </trans-unit> 170 </trans-unit>
171 <trans-unit id="8bdf8db5eeeaef83184b489b80c1557b516fb3c3">
172 <source>Reset my password</source>
173 <target>Restablecer mi contraseña</target>
174 <context-group name="null">
175 <context context-type="linenumber">29</context>
176 </context-group>
177 </trans-unit>
96 <trans-unit id="4499806949402133d08a5029cb5462c5ea25336d"> 178 <trans-unit id="4499806949402133d08a5029cb5462c5ea25336d">
97 <source> 179 <source>
98 Create an account 180 Create an account
@@ -102,6 +184,134 @@ Iniciar sesión</target>
102 <context context-type="linenumber">3</context> 184 <context context-type="linenumber">3</context>
103 </context-group> 185 </context-group>
104 </trans-unit> 186 </trans-unit>
187 <trans-unit id="a6807b834e01ce165aa61fad157b0ff4288b6bf1">
188 <source>Initial video quota:</source>
189 <target>Cuota de vídeo inicial:</target>
190 <context-group name="null">
191 <context context-type="linenumber">8</context>
192 </context-group>
193 </trans-unit>
194 <trans-unit id="87b6b2c26215c5e712d3bfe4cc86ba53bc23451c">
195 <source>
196 Unlimited
197 </source>
198 <target>
199 Ilimitada
200 </target>
201 <context-group name="null">
202 <context context-type="linenumber">16</context>
203 </context-group>
204 </trans-unit>
205 <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48">
206 <source>Username</source>
207 <target>Usuario</target>
208 <context-group name="null">
209 <context context-type="linenumber">8</context>
210 </context-group>
211 </trans-unit>
212 <trans-unit id="717a5e3574fec754fbeb348c2d5561c4d81facc4">
213 <source>Signup</source>
214 <target>Registrarse</target>
215 <context-group name="null">
216 <context context-type="linenumber">86</context>
217 </context-group>
218 </trans-unit>
219 <trans-unit id="aef5c45fb9c725573d20a6283492e6b80fd2ae96">
220 <source>Change the language</source>
221 <target>Cambiar el idioma</target>
222 <context-group name="null">
223 <context context-type="linenumber">76</context>
224 </context-group>
225 </trans-unit>
226 <trans-unit id="b8ccc4f1b3f839fca9bd59e072f715fd487d540f">
227 <source>
228 My public profile
229 </source>
230 <target>
231 Mi perfil público
232 </target>
233 <context-group name="null">
234 <context context-type="linenumber">19</context>
235 </context-group>
236 </trans-unit>
237 <trans-unit id="c84b721e9325c9cce20d92f4dbd66898ab5ec947">
238 <source>
239 My account
240 </source>
241 <target>
242 Mi cuenta
243 </target>
244 <context-group name="null">
245 <context context-type="linenumber">23</context>
246 </context-group>
247 </trans-unit>
248 <trans-unit id="ba7378cdaaa60b4fee17a551b232ad3512dac17d">
249 <source>
250 Log out
251 </source>
252 <target>
253 Salir
254 </target>
255 <context-group name="null">
256 <context context-type="linenumber">27</context>
257 </context-group>
258 </trans-unit>
259 <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9">
260 <source>Login</source>
261 <target>Identificarse</target>
262 <context-group name="null">
263 <context context-type="linenumber">36</context>
264 </context-group>
265 </trans-unit>
266 <trans-unit id="d207cc1965ec0c29e594e0e9917f39bfc276ed87">
267 <source>Create an account</source>
268 <target>Crear una cuenta</target>
269 <context-group name="null">
270 <context context-type="linenumber">37</context>
271 </context-group>
272 </trans-unit>
273 <trans-unit id="a52dae09be10ca3a65da918533ced3d3f4992238">
274 <source>Videos</source>
275 <target>Vídeos</target>
276 <context-group name="null">
277 <context context-type="linenumber">21</context>
278 </context-group>
279 </trans-unit>
280 <trans-unit id="b6b7986bc3721ac483baf20bc9a320529075c807">
281 <source>Trending</source>
282 <target>Tendencias</target>
283 <context-group name="null">
284 <context context-type="linenumber">45</context>
285 </context-group>
286 </trans-unit>
287 <trans-unit id="8d20c5f5dd30acbe71316544dab774393fd9c3c1">
288 <source>Recently added</source>
289 <target>Añadidos recientemente</target>
290 <context-group name="null">
291 <context context-type="linenumber">50</context>
292 </context-group>
293 </trans-unit>
294 <trans-unit id="eadc17c3df80143992e2d9028dead3199ae6d79d">
295 <source>Local</source>
296 <target>Local</target>
297 <context-group name="null">
298 <context context-type="linenumber">55</context>
299 </context-group>
300 </trans-unit>
301 <trans-unit id="b7648e7aced164498aa843b5c4e8f2f1c36a7919">
302 <source>Administration</source>
303 <target>Administración</target>
304 <context-group name="null">
305 <context context-type="linenumber">64</context>
306 </context-group>
307 </trans-unit>
308 <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a">
309 <source>About</source>
310 <target>Acerca de</target>
311 <context-group name="null">
312 <context context-type="linenumber">23</context>
313 </context-group>
314 </trans-unit>
105 <trans-unit id="8aa58cf00d949c509df91c621ab38131df0a7599"> 315 <trans-unit id="8aa58cf00d949c509df91c621ab38131df0a7599">
106 <source>Search...</source> 316 <source>Search...</source>
107 <target>Buscar...</target> 317 <target>Buscar...</target>
@@ -109,6 +319,34 @@ Iniciar sesión</target>
109 <context context-type="linenumber">2</context> 319 <context context-type="linenumber">2</context>
110 </context-group> 320 </context-group>
111 </trans-unit> 321 </trans-unit>
322 <trans-unit id="4b3972c3e9485218508a95f7a4ce7758e3f09ced">
323 <source>Upload</source>
324 <target>Subir</target>
325 <context-group name="null">
326 <context context-type="linenumber">9</context>
327 </context-group>
328 </trans-unit>
329 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
330 <source>Category</source>
331 <target>Categoría</target>
332 <context-group name="null">
333 <context context-type="linenumber">144</context>
334 </context-group>
335 </trans-unit>
336 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
337 <source>Licence</source>
338 <target>Licencia</target>
339 <context-group name="null">
340 <context context-type="linenumber">153</context>
341 </context-group>
342 </trans-unit>
343 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
344 <source>Language</source>
345 <target>Idioma</target>
346 <context-group name="null">
347 <context context-type="linenumber">162</context>
348 </context-group>
349 </trans-unit>
112 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 350 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
113 <source>No results.</source> 351 <source>No results.</source>
114 <target> Ningún resultados</target> 352 <target> Ningún resultados</target>
@@ -116,6 +354,371 @@ Iniciar sesión</target>
116 <context context-type="linenumber">7</context> 354 <context context-type="linenumber">7</context>
117 </context-group> 355 </context-group>
118 </trans-unit> 356 </trans-unit>
357 <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b">
358 <source>Instance</source>
359 <target>Nodo</target>
360 <context-group name="null">
361 <context context-type="linenumber">7</context>
362 </context-group>
363 </trans-unit>
364 <trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
365 <source>PeerTube</source>
366 <target>PeerTube</target>
367 <context-group name="null">
368 <context context-type="linenumber">7</context>
369 </context-group>
370 </trans-unit>
371 <trans-unit id="5849c589454817c1e991639d3091d8da0e8d6bd2">
372 <source>
373 About <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instance
374</source>
375 <target>
376 Acerca del nodo <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/>
377</target>
378 <context-group name="null">
379 <context context-type="linenumber">1</context>
380 </context-group>
381 </trans-unit>
382 <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0">
383 <source>Description</source>
384 <target>Descripción</target>
385 <context-group name="null">
386 <context context-type="linenumber">23</context>
387 </context-group>
388 </trans-unit>
389 <trans-unit id="69580f2c2dbf4edf7096820ba8c393367352d774">
390 <source>Terms</source>
391 <target>Términos</target>
392 <context-group name="null">
393 <context context-type="linenumber">43</context>
394 </context-group>
395 </trans-unit>
396 <trans-unit id="9c6e6db693ab265457c6578df179c65694141d27">
397 <source>User registration is allowed and</source>
398 <target>El registro de usuarios está permitido y</target>
399 <context-group name="null">
400 <context context-type="linenumber">25</context>
401 </context-group>
402 </trans-unit>
403 <trans-unit id="ac324b07e7c3c972f1c33894eda02dc2917eda5e">
404 <source>
405 this instance provides a baseline quota of <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> space for the videos of its users.
406 </source>
407 <target>
408 este nodo ofrece una cuota estándar de <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> de espacio para los vídeos de sus usuarios.
409 </target>
410 <context-group name="null">
411 <context context-type="linenumber">27</context>
412 </context-group>
413 </trans-unit>
414 <trans-unit id="a6865ec6abf6af58f808501d84c8ed6ff8ce46ae">
415 <source>
416 this instance provides unlimited space for the videos of its users.
417 </source>
418 <target>
419 este nodo ofrece espacio ilimitado para los vídeos de sus usuarios.
420 </target>
421 <context-group name="null">
422 <context context-type="linenumber">31</context>
423 </context-group>
424 </trans-unit>
425 <trans-unit id="5c856a6a233b6f6c4cc8eed46436d31d2da63fc1">
426 <source>
427 User registration is currently not allowed.
428 </source>
429 <target>
430 El registro de usuarios no está permitido actualmente.
431 </target>
432 <context-group name="null">
433 <context context-type="linenumber">36</context>
434 </context-group>
435 </trans-unit>
436 <trans-unit id="a11e3ba2c5aea841de67a3c85892bb61295e94dc">
437 <source>
438 About PeerTube
439</source>
440 <target>
441 Acerca de PeerTube
442</target>
443 <context-group name="null">
444 <context context-type="linenumber">1</context>
445 </context-group>
446 </trans-unit>
447 <trans-unit id="bd29138e1e17572596ce8f2fe61bcea6ac5fb0bf">
448 <source>PeerTube is a federated (ActivityPub) video streaming platform using P2P (WebTorrent) directly in the web browser.</source>
449 <target>PeerTube es una plataforma federada (ActivityPub) de streaming de vídeo que utiliza P2P (WebTorrent) directamente en el navegador web.</target>
450 <context-group name="null">
451 <context context-type="linenumber">6</context>
452 </context-group>
453 </trans-unit>
454 <trans-unit id="c2bc16265b72b9af4a4374b805931ae03e3f73a5">
455 <source>
456 It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
457 </source>
458 <target>
459 Es un software libre y de código abierto, bajo la licencia <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
460 </target>
461 <context-group name="null">
462 <context context-type="linenumber">8</context>
463 </context-group>
464 </trans-unit>
465 <trans-unit id="a10308f7ac111f5b66d08af0a24fc9ddf143931a">
466 <source>
467 For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
468 </source>
469 <target>
470 Para más información, por favor visite <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
471 </target>
472 <context-group name="null">
473 <context context-type="linenumber">12</context>
474 </context-group>
475 </trans-unit>
476 <trans-unit id="c02493cfa08b82c468233b83069b5baff23890e1">
477 <source>P2P &amp; Privacy</source>
478 <target>P2P y Privacidad</target>
479 <context-group name="null">
480 <context context-type="linenumber">18</context>
481 </context-group>
482 </trans-unit>
483 <trans-unit id="cd429d53cb8f4a87879301248e38cb85f07fa9d6">
484 <source>
485 PeerTube uses the BitTorrent protocol to share bandwidth between users.
486 This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video.
487 </source>
488 <target>
489 PeerTube utiliza el protocolo BitTorrent para compartir ancho de banda entre los usarios.
490 Esto implica que tu dirección IP se almacena en el tracker BitTorrent del nodo durante el tiempo que estés descargando o viendo el vídeo.
491 </target>
492 <context-group name="null">
493 <context context-type="linenumber">20</context>
494 </context-group>
495 </trans-unit>
496 <trans-unit id="e4ce50f3019e3ebe9a479784c6cb68a31c7a8231">
497 <source>What are the consequences?</source>
498 <target>¿Cuáles son las consecuencias?</target>
499 <context-group name="null">
500 <context context-type="linenumber">25</context>
501 </context-group>
502 </trans-unit>
503 <trans-unit id="9a612748b059ad246935df17ef4ec4e6afb43a2a">
504 <source>
505 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video.
506 In practice, this is much more difficult because:
507 </source>
508 <target>
509 En teoría, alguien con los conocimientos técnicos suficientes podría crear un script que rastrease qué IP está descargando qué vídeo.
510 En la práctica esto es mucho más difícil porque:
511 </target>
512 <context-group name="null">
513 <context context-type="linenumber">27</context>
514 </context-group>
515 </trans-unit>
516 <trans-unit id="64f96be62df4a95a0615b6f630ad25d6348a29d3">
517 <source>
518 An HTTP request has to be sent on each tracker for each video to spy.
519 If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot)
520 </source>
521 <target>
522 Tiene que enviarse una petición HTTP en cada rastreador de cada vídeo a espiar.
523 Si queremos espiar todos los vídeos de PeerTube, tenemos que enviar tantas peticiones como vídeos haya (por tanto muchas, potencialmente)
524 </target>
525 <context-group name="null">
526 <context context-type="linenumber">33</context>
527 </context-group>
528 </trans-unit>
529 <trans-unit id="dd9a7a4ee66b0ff3fbb43ba8691ffcd042531611">
530 <source>
531 For each request sent, the tracker returns random peers at a limited number.
532 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
533 </source>
534 <target>
535 Por cada petición enviada, el rastreador devuelve pares aleatorios en número limitado.
536 Por ejemplo, si hay 1000 pares en el enjambre y el rastreador envía solo 20 pares por petición, debería haber al menos 50 peticiones enviadas para conocer todos los pares del enjambre
537 </target>
538 <context-group name="null">
539 <context context-type="linenumber">38</context>
540 </context-group>
541 </trans-unit>
542 <trans-unit id="694cf53adfc2afe8afabf713ab00fa114d5d2f8e">
543 <source>
544 Those requests have to be sent regularly to know who starts/stops watching a video. It is easy to detect that kind of behaviour
545 </source>
546 <target>
547 Esas peticiones tienen que enviarse con regularidad para saber quién comienza/detiene la reproducción de un vídeo. Es fácil detectar ese comportamiento
548 </target>
549 <context-group name="null">
550 <context context-type="linenumber">43</context>
551 </context-group>
552 </trans-unit>
553 <trans-unit id="44bbecddbdf2aad1f4bad97cb806560553fb2ab3">
554 <source>
555 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
556 </source>
557 <target>
558 Si una dirección IP es almacenada en el rastreador, no significa que la persona tras esa IP (si tal persona existe) ha visionado el vídeo
559 </target>
560 <context-group name="null">
561 <context context-type="linenumber">47</context>
562 </context-group>
563 </trans-unit>
564 <trans-unit id="fec3239a860de66c718e3442df836b692b8568c3">
565 <source>
566 The IP address is a vague information : usually, it regularly changes and can represent many persons or entities
567 </source>
568 <target>
569 La dirección IP es una información vaga: normalmente cambia con frecuencia y puede representar a muchas personas o entidades
570 </target>
571 <context-group name="null">
572 <context context-type="linenumber">51</context>
573 </context-group>
574 </trans-unit>
575 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
576 <source>
577 The worst-case scenario of an average person spying on their friends is quite unlikely.
578 There are much more effective ways to get that kind of information.
579 </source>
580 <target>
581 El peor escenario de una persona media espiando a sus amigos es bastante improbable.
582 Hay métodos mucho más efectivos para obtener ese tipo de información.
583 </target>
584 <context-group name="null">
585 <context context-type="linenumber">62</context>
586 </context-group>
587 </trans-unit>
588 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
589 <source>
590 The threats to privacy in YouTube are different from PeerTube's.
591 In YouTube's case, the platform gathers a huge amount of your personal information (not only your IP) to analyze them and track you.
592 Moreover, YouTube is owned by Google/Alphabet, a company that tracks you across many websites (via AdSense or Google Analytics).
593 </source>
594 <target>
595 Las amenazas a la privacidad en YouTube son diferentes de las de PeerTube.
596 En el caso de YouTube, la plataforma reúne una inmensa cantidad de tu información personal (no solo tu IP) para nalizarla y rastrearte.
597 Más aún, YouTube pertenece a Google/Alphabet, una compañía que te rastrea a través de muchos sitios web (vía Adsense o Google Analytics).
598 </target>
599 <context-group name="null">
600 <context context-type="linenumber">69</context>
601 </context-group>
602 </trans-unit>
603 <trans-unit id="3c2990d5e452bdf2317ff23745db70705d848d99">
604 <source>What can I do to limit the exposure of my IP address?</source>
605 <target>¿Qué puedo hacer para limitar la exposición de mi dirección IP?</target>
606 <context-group name="null">
607 <context context-type="linenumber">75</context>
608 </context-group>
609 </trans-unit>
610 <trans-unit id="a545356de272b955258c2a2432b08ec637b65f7e">
611 <source>
612 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.
613 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.
614 Thinking that removing P2P from PeerTube will give you back anonymity doesn't make sense.
615 </source>
616 <target>
617 Tu dirección IP es pública, de modo que cada vez que consultas un sitio web hay una serie de actores (además del propio sitio web final) que ve tu IP en sus registros de conexión: ISP/enrutadores/rastreadores/CDN y más.
618 PeerTube es transparente con esto: te avisamos de que si quieres mantener privada tu IP, tienes que usar una VPN o el Tor Browser.
619 Pensar que si se eliminase el P2P de PeerTube se recuperaría el anonimato no tiene sentido.
620 </target>
621 <context-group name="null">
622 <context context-type="linenumber">77</context>
623 </context-group>
624 </trans-unit>
625 <trans-unit id="8ce78dd287b9a9dde5079916425ea66466530e41">
626 <source>What will be done to mitigate this problem?</source>
627 <target>¿Qué se va a hacer para mitigar este problema?</target>
628 <context-group name="null">
629 <context context-type="linenumber">83</context>
630 </context-group>
631 </trans-unit>
632 <trans-unit id="d8f1c6b816aaf1ebcb936a705dbe88bcef28eaa8">
633 <source>
634 PeerTube is only in beta, and want to deliver the best countermeasures possible by the time the stable is released.
635 In the meantime, we want to test different ideas related to this issue:
636 </source>
637 <target>
638 PeerTube está solo en beta, y quiere proporcionar las mejores contramedidas posibles para cuando se publique la versión estable.
639 Mientras tanto, queremos probar diferentes ideas relacionadas con este problema:
640 </target>
641 <context-group name="null">
642 <context context-type="linenumber">85</context>
643 </context-group>
644 </trans-unit>
645 <trans-unit id="d32608aba08c6bb3cc4e4e8ec6223e5f4e78ca19">
646 <source>Set a limit to the number of peers sent by the tracker</source>
647 <target>Poner un límite al número de pares enviados por el rastreador</target>
648 <context-group name="null">
649 <context context-type="linenumber">91</context>
650 </context-group>
651 </trans-unit>
652 <trans-unit id="a6d732b614143f862e69798046dc0868716547e5">
653 <source>Set a limit on the request frequency received by the tracker (being tested)</source>
654 <target>Poner un límite a la frecuencia de peticiones recibidas por el rastreador (se está probando)</target>
655 <context-group name="null">
656 <context context-type="linenumber">92</context>
657 </context-group>
658 </trans-unit>
659 <trans-unit id="ba77e356eaa5c06caaf5c8734c361d1a5415fe1c">
660 <source>Ring a bell if there are unusual requests (being tested)</source>
661 <target>Hacer sonar un aviso si hay peticiones inusuales (se está probando)</target>
662 <context-group name="null">
663 <context context-type="linenumber">93</context>
664 </context-group>
665 </trans-unit>
666 <trans-unit id="81861ff8a71c8a5881cdf66417f3bddb753f0e18">
667 <source>Disable P2P from the administration interface</source>
668 <target>Inhabilitar el P2P desde el interfaz de administración</target>
669 <context-group name="null">
670 <context context-type="linenumber">94</context>
671 </context-group>
672 </trans-unit>
673 <trans-unit id="efde279863678ed95a8949a3712c99748bdabfe6">
674 <source>An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program</source>
675 <target>Un programa de redundancia automatizada de vídeo: no sabríamos si la IP descargó el vídeo a propósito o si fue el programa automatizado</target>
676 <context-group name="null">
677 <context context-type="linenumber">95</context>
678 </context-group>
679 </trans-unit>
680 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578">
681 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
682 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> suscriptores</target>
683 <context-group name="null">
684 <context context-type="linenumber">12</context>
685 </context-group>
686 </trans-unit>
687 <trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
688 <source>Video channels</source>
689 <target>Canales de vídeo</target>
690 <context-group name="null">
691 <context context-type="linenumber">19</context>
692 </context-group>
693 </trans-unit>
694 <trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
695 <source>Stats</source>
696 <target>Estadísticas</target>
697 <context-group name="null">
698 <context context-type="linenumber">16</context>
699 </context-group>
700 </trans-unit>
701 <trans-unit id="8bc634cd9d8c9b684dbfaaf17a522f894bedbffc">
702 <source>Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/></source>
703 <target>Se unió el <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/></target>
704 <context-group name="null">
705 <context context-type="linenumber">10</context>
706 </context-group>
707 </trans-unit>
708 <trans-unit id="8fef247fd0c5bf790151f7661cafc4b7fd0397f3">
709 <source><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers</source>
710 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> suscriptores</target>
711 <context-group name="null">
712 <context context-type="linenumber">11</context>
713 </context-group>
714 </trans-unit>
715 <trans-unit id="f36bd6a1570cb9b0a5023870f35160957cad2a8f">
716 <source>See this video channel</source>
717 <target>Ver este canal de vídeo</target>
718 <context-group name="null">
719 <context context-type="linenumber">4</context>
720 </context-group>
721 </trans-unit>
119 <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59"> 722 <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59">
120 <source>Name</source> 723 <source>Name</source>
121 <target>Nombre</target> 724 <target>Nombre</target>
@@ -123,11 +726,2712 @@ Iniciar sesión</target>
123 <context context-type="linenumber">9</context> 726 <context context-type="linenumber">9</context>
124 </context-group> 727 </context-group>
125 </trans-unit> 728 </trans-unit>
729 <trans-unit id="512b045163a7187b2fc5d554e5f59fb3e49e174b">
730 <source>Short description</source>
731 <target>Descripción corta</target>
732 <context-group name="null">
733 <context context-type="linenumber">21</context>
734 </context-group>
735 </trans-unit>
736 <trans-unit id="554488d11165f38b27b8fe230aba8a2e30d57003">
737 <source>Default client route</source>
738 <target>Routa de cliente por defecto</target>
739 <context-group name="null">
740 <context context-type="linenumber">54</context>
741 </context-group>
742 </trans-unit>
743 <trans-unit id="1cbeb1eb589bfbe5efce94184cacd3095ca26948">
744 <source>Videos Trending</source>
745 <target>Vídeos en Tendencia</target>
746 <context-group name="null">
747 <context context-type="linenumber">57</context>
748 </context-group>
749 </trans-unit>
750 <trans-unit id="1861c96217213992e02dcb77e15ea69e718c9883">
751 <source>Videos Recently Added</source>
752 <target>Vídeos Recientemente Añadidos</target>
753 <context-group name="null">
754 <context context-type="linenumber">58</context>
755 </context-group>
756 </trans-unit>
757 <trans-unit id="b6307f83d9f43bff8d5129a7888e89964ddc3f7f">
758 <source>Local videos</source>
759 <target>Vídeos locales</target>
760 <context-group name="null">
761 <context context-type="linenumber">59</context>
762 </context-group>
763 </trans-unit>
764 <trans-unit id="8551afadb69b3fef89e191f507e8ac84e624e8b9">
765 <source>Policy on videos containing sensitive content</source>
766 <target>Política para los vídeos que contengan material sensible</target>
767 <context-group name="null">
768 <context context-type="linenumber">68</context>
769 </context-group>
770 </trans-unit>
771 <trans-unit id="aa3ef567a1ea22c1e4d0acfdc8f80bc636bf12df">
772 <source>With &lt;strong&gt;Do not list&lt;/strong&gt; or &lt;strong&gt;Blur thumbnails&lt;/strong&gt;, a confirmation will be requested to watch the video.</source>
773 <target>Con &lt;strong&gt;No listar&lt;/strong&gt; o &lt;strong&gt;Difuminar miniaturas&lt;/strong&gt; se requerirá una confirmación para ver el vídeo.</target>
774 <context-group name="null">
775 <context context-type="linenumber">6</context>
776 </context-group>
777 </trans-unit>
778 <trans-unit id="5e155c34fb3ed8159bf0a486a366cfbc6874f9fe">
779 <source>Do not list</source>
780 <target>No listar</target>
781 <context-group name="null">
782 <context context-type="linenumber">11</context>
783 </context-group>
784 </trans-unit>
785 <trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
786 <source>Blur thumbnails</source>
787 <target>Difuminar miniaturas</target>
788 <context-group name="null">
789 <context context-type="linenumber">12</context>
790 </context-group>
791 </trans-unit>
792 <trans-unit id="010d24ef3c43b2d8f45a4d6cba7d73e12ee1557e">
793 <source>Display</source>
794 <target>Mostrar</target>
795 <context-group name="null">
796 <context context-type="linenumber">13</context>
797 </context-group>
798 </trans-unit>
799 <trans-unit id="ca53e66e68986546b7ef820c934145fd7c9c4247">
800 <source>Signup enabled</source>
801 <target>Registro habilitado</target>
802 <context-group name="null">
803 <context context-type="linenumber">90</context>
804 </context-group>
805 </trans-unit>
806 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
807 <source>Signup limit</source>
808 <target>Límite de registro</target>
809 <context-group name="null">
810 <context context-type="linenumber">94</context>
811 </context-group>
812 </trans-unit>
813 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
814 <source>Administrator</source>
815 <target>Administrador</target>
816 <context-group name="null">
817 <context context-type="linenumber">104</context>
818 </context-group>
819 </trans-unit>
820 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
821 <source>Admin email</source>
822 <target>Correo del administrador</target>
823 <context-group name="null">
824 <context context-type="linenumber">107</context>
825 </context-group>
826 </trans-unit>
827 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
828 <source>Users</source>
829 <target>Usuarios</target>
830 <context-group name="null">
831 <context context-type="linenumber">117</context>
832 </context-group>
833 </trans-unit>
834 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
835 <source>User default video quota</source>
836 <target>Cuota de vídeo por defecto del usuario</target>
837 <context-group name="null">
838 <context context-type="linenumber">120</context>
839 </context-group>
840 </trans-unit>
841 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
842 <source>Basic configuration</source>
843 <target>Configuración básica</target>
844 <context-group name="null">
845 <context context-type="linenumber">5</context>
846 </context-group>
847 </trans-unit>
126 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc"> 848 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc">
127 <source>Twitter</source> 849 <source>Twitter</source>
128 <target>Twitter</target> 850 <target>Twitter</target>
129 <context-group name="null"> 851 <context-group name="null">
130 <context context-type="linenumber">138</context> 852 <context context-type="linenumber">136</context>
853 </context-group>
854 </trans-unit>
855 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
856 <source>Your Twitter username</source>
857 <target>Tu usuario de Twitter</target>
858 <context-group name="null">
859 <context context-type="linenumber">139</context>
860 </context-group>
861 </trans-unit>
862 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
863 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
864 <target>Indica la cuenta de Twitter del sitio web o de la plataforma en la que el contenido fue publicado</target>
865 <context-group name="null">
866 <context context-type="linenumber">142</context>
867 </context-group>
868 </trans-unit>
869 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
870 <source>Instance whitelisted by Twitter</source>
871 <target>Nodo en lista blanca de Twitter</target>
872 <context-group name="null">
873 <context context-type="linenumber">155</context>
874 </context-group>
875 </trans-unit>
876 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
877 <source>If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.&lt;br /&gt;
878If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.&lt;br /&gt;&lt;br /&gt;
879Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; to see if you instance is whitelisted.</source>
880 <target>Si tu nodo está en lista blanca de Twitter, se incrustará un reproductor en el feed de Twitter al compartir un vídeo de PeerTube.&lt;br /&gt;
881Si el nodo no está en lista blanca, usamos una tarjeta con un enlace que redireccionará a tu nodo de PeerTube.&lt;br /&gt;&lt;br /&gt;
882Marca este recuadro, guarda la configuración y haz una prueba con una URL de un vídeo de tu nodo (https://example.com/videos/watch/blabla) en &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; para ver si tu nodo está en lista blanca.</target>
883 <context-group name="null">
884 <context context-type="linenumber">156</context>
885 </context-group>
886 </trans-unit>
887 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
888 <source>Services</source>
889 <target>Servicios</target>
890 <context-group name="null">
891 <context context-type="linenumber">134</context>
892 </context-group>
893 </trans-unit>
894 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
895 <source>Transcoding</source>
896 <target>Transcodificar</target>
897 <context-group name="null">
898 <context context-type="linenumber">164</context>
899 </context-group>
900 </trans-unit>
901 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
902 <source>Transcoding enabled</source>
903 <target>Transcodificación activada</target>
904 <context-group name="null">
905 <context context-type="linenumber">168</context>
906 </context-group>
907 </trans-unit>
908 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
909 <source>If you disable transcoding, many videos from your users will not work!</source>
910 <target>¡Si desactivas la transcodificación, muchos vídeos de tus usuarios no funcionarán!</target>
911 <context-group name="null">
912 <context context-type="linenumber">169</context>
913 </context-group>
914 </trans-unit>
915 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
916 <source>Transcoding threads</source>
917 <target>Hilos de transcodificaciones</target>
918 <context-group name="null">
919 <context context-type="linenumber">175</context>
920 </context-group>
921 </trans-unit>
922 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
923 <source>Previews cache size</source>
924 <target>Tamaño de caché de las previsualizaciones</target>
925 <context-group name="null">
926 <context context-type="linenumber">207</context>
927 </context-group>
928 </trans-unit>
929 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
930 <source>Customizations</source>
931 <target>Personalizaciones</target>
932 <context-group name="null">
933 <context context-type="linenumber">228</context>
934 </context-group>
935 </trans-unit>
936 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
937 <source>JavaScript</source>
938 <target>JavaScript</target>
939 <context-group name="null">
940 <context context-type="linenumber">231</context>
941 </context-group>
942 </trans-unit>
943 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
944 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
945 <target>Escribir código Javascript directamente.&lt;br /&gt;Ejemplo: &lt;pre&gt;console.log('mi nodo es maravilloso');&lt;/pre&gt;</target>
946 <context-group name="null">
947 <context context-type="linenumber">234</context>
948 </context-group>
949 </trans-unit>
950 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
951 <source>
952 Write directly CSS code. Example:&lt;br /&gt;
953 &lt;pre&gt;
954 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
955 background-color: red;
956 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
957 &lt;/pre&gt;
958
959 Prepend with &lt;em&gt;#custom-css&lt;/em&gt; to override styles. Example:
960 &lt;pre&gt;
961 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
962 color: red;
963 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
964 &lt;/pre&gt;
965 </source>
966 <target>
967 Escribir código CSS directamente. Ejemplo:&lt;br /&gt;
968 &lt;pre&gt;
969 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
970 background-color: red;
971 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
972 &lt;/pre&gt;
973
974 Comenzar con &lt;em&gt;#custom-css&lt;/em&gt; para anular estilos. Ejemplo:
975 &lt;pre&gt;
976 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
977 color: red;
978 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
979 &lt;/pre&gt;
980 </target>
981 <context-group name="null">
982 <context context-type="linenumber">250</context>
983 </context-group>
984 </trans-unit>
985 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
986 <source>Advanced configuration</source>
987 <target>Configuración avanzada</target>
988 <context-group name="null">
989 <context context-type="linenumber">162</context>
990 </context-group>
991 </trans-unit>
992 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
993 <source>Update configuration</source>
994 <target>Actualizar configuración</target>
995 <context-group name="null">
996 <context context-type="linenumber">277</context>
997 </context-group>
998 </trans-unit>
999 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1000 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1001 <target>Parece que la configuración no es válida. Por favor, busque errores potenciales en las diferentes pestañas.</target>
1002 <context-group name="null">
1003 <context context-type="linenumber">278</context>
1004 </context-group>
1005 </trans-unit>
1006 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
1007 <source>
1008 Users
1009 </source>
1010 <target>
1011 Usuarios
1012 </target>
1013 <context-group name="null">
1014 <context context-type="linenumber">3</context>
1015 </context-group>
1016 </trans-unit>
1017 <trans-unit id="0315abd64e35510ed0534f597130ef781aca175a">
1018 <source>
1019 Manage follows
1020 </source>
1021 <target>
1022 Gestionar seguimientos
1023 </target>
1024 <context-group name="null">
1025 <context context-type="linenumber">7</context>
1026 </context-group>
1027 </trans-unit>
1028 <trans-unit id="1c9406213cf05033eda4d3df678217b5eb822315">
1029 <source>
1030 Video abuses
1031 </source>
1032 <target>
1033 Abusos de vídeo
1034 </target>
1035 <context-group name="null">
1036 <context context-type="linenumber">11</context>
1037 </context-group>
1038 </trans-unit>
1039 <trans-unit id="96ccede058f0022f34230c3adc09e60076b6d037">
1040 <source>
1041 Video blacklist
1042 </source>
1043 <target>
1044 Lista negra de vídeo
1045 </target>
1046 <context-group name="null">
1047 <context context-type="linenumber">15</context>
1048 </context-group>
1049 </trans-unit>
1050 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
1051 <source>
1052 Jobs
1053 </source>
1054 <target>
1055 Tareas
1056 </target>
1057 <context-group name="null">
1058 <context context-type="linenumber">19</context>
1059 </context-group>
1060 </trans-unit>
1061 <trans-unit id="9c6ce37623b626a102002901ca12c37e7a3a7f13">
1062 <source>
1063 Configuration
1064 </source>
1065 <target>
1066 Configuración
1067 </target>
1068 <context-group name="null">
1069 <context context-type="linenumber">23</context>
1070 </context-group>
1071 </trans-unit>
1072 <trans-unit id="4e8635c108375983b42229df44bda8c0af84f396">
1073 <source>1 host (without "http://") per line</source>
1074 <target>1 host (without "http://") por línea</target>
1075 <context-group name="null">
1076 <context context-type="linenumber">5</context>
1077 </context-group>
1078 </trans-unit>
1079 <trans-unit id="f7a7a00999ccbd126cbb8e74f5dd1724942dd507">
1080 <source>
1081 It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers.
1082 </source>
1083 <target>
1084 Parece que no estas en un servidor HTTPS. Tu servidor web ha de tener TLS activador para seguir a otros servidores.
1085 </target>
1086 <context-group name="null">
1087 <context context-type="linenumber">17</context>
1088 </context-group>
1089 </trans-unit>
1090 <trans-unit id="456c6383d8e7cd15aadbcdc196d4ae7a70092437">
1091 <source>Add following</source>
1092 <target>Añadir seguimiento</target>
1093 <context-group name="null">
1094 <context context-type="linenumber">21</context>
1095 </context-group>
1096 </trans-unit>
1097 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c">
1098 <source>ID</source>
1099 <target>ID</target>
1100 <context-group name="null">
1101 <context context-type="linenumber">18</context>
1102 </context-group>
1103 </trans-unit>
1104 <trans-unit id="380e20a1e13d9489c69f6dbea7da19025ab6eb25">
1105 <source>Score</source>
1106 <target>Puntuación</target>
1107 <context-group name="null">
1108 <context context-type="linenumber">8</context>
1109 </context-group>
1110 </trans-unit>
1111 <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
1112 <source>Host</source>
1113 <target>Host</target>
1114 <context-group name="null">
1115 <context context-type="linenumber">8</context>
1116 </context-group>
1117 </trans-unit>
1118 <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
1119 <source>State</source>
1120 <target>Estado</target>
1121 <context-group name="null">
1122 <context context-type="linenumber">20</context>
1123 </context-group>
1124 </trans-unit>
1125 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
1126 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1127 <target>Creado <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1128 <context-group name="null">
1129 <context context-type="linenumber">16</context>
1130 </context-group>
1131 </trans-unit>
1132 <trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
1133 <source>Manage follows</source>
1134 <target>Gestionar seguimientos</target>
1135 <context-group name="null">
1136 <context context-type="linenumber">2</context>
1137 </context-group>
1138 </trans-unit>
1139 <trans-unit id="a9f2501fcb2ff71f1376c2d2fbbbd49f200e6c8f">
1140 <source>Jobs list</source>
1141 <target>Lista de tareas</target>
1142 <context-group name="null">
1143 <context context-type="linenumber">2</context>
1144 </context-group>
1145 </trans-unit>
1146 <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc">
1147 <source>Type</source>
1148 <target>Tipo</target>
1149 <context-group name="null">
1150 <context context-type="linenumber">19</context>
1151 </context-group>
1152 </trans-unit>
1153 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1154 <source>Create user</source>
1155 <target>Crear usuario</target>
1156 <context-group name="null">
1157 <context context-type="linenumber">6</context>
1158 </context-group>
1159 </trans-unit>
1160 <trans-unit id="2788d9a67ed2b6f35c85818e6af1871317c57a7e">
1161 <source>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/></source>
1162 <target>Editar usuario <x id="INTERPOLATION" equiv-text="{{ username }}"/></target>
1163 <context-group name="null">
1164 <context context-type="linenumber">2</context>
1165 </context-group>
1166 </trans-unit>
1167 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a">
1168 <source>john</source>
1169 <target>john</target>
1170 <context-group name="null">
1171 <context context-type="linenumber">10</context>
1172 </context-group>
1173 </trans-unit>
1174 <trans-unit id="bb3542ff8e5defa6d0c773799e5c8fe399605d05">
1175 <source>mail@example.com</source>
1176 <target>mail@example.com</target>
1177 <context-group name="null">
1178 <context context-type="linenumber">21</context>
1179 </context-group>
1180 </trans-unit>
1181 <trans-unit id="c36a66f2107e8da5371ebc9d15c2008dff567f46">
1182 <source>Role</source>
1183 <target>Rol</target>
1184 <context-group name="null">
1185 <context context-type="linenumber">19</context>
1186 </context-group>
1187 </trans-unit>
1188 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
1189 <source>Video quota</source>
1190 <target>Cuota de vídeo</target>
1191 <context-group name="null">
1192 <context context-type="linenumber">18</context>
1193 </context-group>
1194 </trans-unit>
1195 <trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
1196 <source>
1197 Transcoding is enabled on server. The video quota only take in account <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> video. <x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/>
1198 At most, this user could use ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>.
1199 </source>
1200 <target>
1201 La transcodificación está activada en el servidor. La cuota de vídeo solo tiene en cuenta el vídeo <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/>. <x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/>
1202 Como mucho, este usuario podría utilizar ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>.
1203 </target>
1204 <context-group name="null">
1205 <context context-type="linenumber">65</context>
1206 </context-group>
1207 </trans-unit>
1208 <trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
1209 <source>Users list</source>
1210 <target>Lista de usuarios</target>
1211 <context-group name="null">
1212 <context context-type="linenumber">2</context>
1213 </context-group>
1214 </trans-unit>
1215 <trans-unit id="08ea8692dc2a7050026df26fc39b22960bde9de5">
1216 <source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1217 <target>Nombre de usuario <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1218 <context-group name="null">
1219 <context context-type="linenumber">16</context>
1220 </context-group>
1221 </trans-unit>
1222 <trans-unit id="0c7e8870481f1287af6a142f538391d8c16c2408">
1223 <source>Video abuses list</source>
1224 <target>Lista de abusos de vídeo</target>
1225 <context-group name="null">
1226 <context context-type="linenumber">2</context>
1227 </context-group>
1228 </trans-unit>
1229 <trans-unit id="4ba250869daa372b54d24fafc0ea934769ee4076">
1230 <source>Reason</source>
1231 <target>Motivo</target>
1232 <context-group name="null">
1233 <context context-type="linenumber">11</context>
1234 </context-group>
1235 </trans-unit>
1236 <trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
1237 <source>Reporter</source>
1238 <target>Reportador</target>
1239 <context-group name="null">
1240 <context context-type="linenumber">12</context>
1241 </context-group>
1242 </trans-unit>
1243 <trans-unit id="2d1ea268a6a9f483dbc2cbfe19bf4256a57a6af4">
1244 <source>Video</source>
1245 <target>Vídeo</target>
1246 <context-group name="null">
1247 <context context-type="linenumber">14</context>
1248 </context-group>
1249 </trans-unit>
1250 <trans-unit id="c6ab75e099e131d7a4f94e1732e7436d8fc386c7">
1251 <source>Go to the account</source>
1252 <target>Ir a la cuenta</target>
1253 <context-group name="null">
1254 <context context-type="linenumber">22</context>
1255 </context-group>
1256 </trans-unit>
1257 <trans-unit id="1cb8348c199d03e297d165e262237194f25fe3f5">
1258 <source>Go to the video</source>
1259 <target>Ir al vídeo</target>
1260 <context-group name="null">
1261 <context context-type="linenumber">28</context>
1262 </context-group>
1263 </trans-unit>
1264 <trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
1265 <source>Blacklisted videos</source>
1266 <target>Vídeos en lista negra</target>
1267 <context-group name="null">
1268 <context context-type="linenumber">2</context>
1269 </context-group>
1270 </trans-unit>
1271 <trans-unit id="7c02d113e9b7884037834cddecf2a32a5538b35b">
1272 <source>Name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1273 <target>Nombre <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1274 <context-group name="null">
1275 <context context-type="linenumber">11</context>
1276 </context-group>
1277 </trans-unit>
1278 <trans-unit id="cd5ca5da9e2fa21571e9f86a24a5c3b45a3ddc51">
1279 <source>Views <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1280 <target>Visualizaciones <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1281 <context-group name="null">
1282 <context context-type="linenumber">13</context>
1283 </context-group>
1284 </trans-unit>
1285 <trans-unit id="d4717113115ca7106a354a5aac54d1c0126261d9">
1286 <source>NSFW</source>
1287 <target>NSFW</target>
1288 <context-group name="null">
1289 <context context-type="linenumber">14</context>
1290 </context-group>
1291 </trans-unit>
1292 <trans-unit id="8c87d9527af7ff2ada84c911516a9e43a352e401">
1293 <source>UUID</source>
1294 <target>UUID</target>
1295 <context-group name="null">
1296 <context context-type="linenumber">15</context>
1297 </context-group>
1298 </trans-unit>
1299 <trans-unit id="86f26b106c67be3c2e98b82766656e5d9da86dff">
1300 <source>Unblacklist</source>
1301 <target>Sacar de lista negra</target>
1302 <context-group name="null">
1303 <context context-type="linenumber">30</context>
1304 </context-group>
1305 </trans-unit>
1306 <trans-unit id="efad4be364b8fb5c73cbfcc7acccd542f9d84ad6">
1307 <source>My settings</source>
1308 <target>Mis ajustes</target>
1309 <context-group name="null">
1310 <context context-type="linenumber">3</context>
1311 </context-group>
1312 </trans-unit>
1313 <trans-unit id="520d68b2c9f7dacaf2a5073716cad9bd328ea7e7">
1314 <source>My video channels</source>
1315 <target>Mis canales de vídeo</target>
1316 <context-group name="null">
1317 <context context-type="linenumber">5</context>
1318 </context-group>
1319 </trans-unit>
1320 <trans-unit id="d02888c485d3aeab6de628508f4a00312a722894">
1321 <source>My videos</source>
1322 <target>Mis vídeos</target>
1323 <context-group name="null">
1324 <context context-type="linenumber">7</context>
1325 </context-group>
1326 </trans-unit>
1327 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1328 <source>Video quota:</source>
1329 <target>Cuota de vídeo</target>
1330 <context-group name="null">
1331 <context context-type="linenumber">4</context>
1332 </context-group>
1333 </trans-unit>
1334 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1335 <source>Profile</source>
1336 <target>Perfil</target>
1337 <context-group name="null">
1338 <context context-type="linenumber">8</context>
1339 </context-group>
1340 </trans-unit>
1341 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1342 <source>Video settings</source>
1343 <target>Ajustes de vídeo</target>
1344 <context-group name="null">
1345 <context context-type="linenumber">15</context>
1346 </context-group>
1347 </trans-unit>
1348 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1349 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1350 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizaciones</target>
1351 <context-group name="null">
1352 <context context-type="linenumber">19</context>
1353 </context-group>
1354 </trans-unit>
1355 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
1356 <source>Delete</source>
1357 <target>Eliminar</target>
1358 <context-group name="null">
1359 <context context-type="linenumber">15</context>
1360 </context-group>
1361 </trans-unit>
1362 <trans-unit id="73c1cefc348a6f361497210dea1ed79499fd1260">
1363 <source>Create another video channel</source>
1364 <target>Crear otro canal de vídeo</target>
1365 <context-group name="null">
1366 <context context-type="linenumber">4</context>
1367 </context-group>
1368 </trans-unit>
1369 <trans-unit id="30fcac6c20aac1f24e000efc4a889cbb93d4baf2">
1370 <source>Go to the channel</source>
1371 <target>Ir al canal</target>
1372 <context-group name="null">
1373 <context context-type="linenumber">15</context>
1374 </context-group>
1375 </trans-unit>
1376 <trans-unit id="9dbe4718a5611fbc611fc6b5e0b27df813372c68">
1377 <source>Create a video channel</source>
1378 <target>Crear un canal de vídeo</target>
1379 <context-group name="null">
1380 <context context-type="linenumber">6</context>
1381 </context-group>
1382 </trans-unit>
1383 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
1384 <source>Display name</source>
1385 <target>Nombre a mostrar</target>
1386 <context-group name="null">
1387 <context context-type="linenumber">6</context>
1388 </context-group>
1389 </trans-unit>
1390 <trans-unit id="74728de5289ea2ff3f553bc2b48f1811680b931a">
1391 <source>Short text to tell people how they can support your channel (membership platform...).&lt;br /&gt;&lt;br /&gt;
1392When you will upload a video in this channel, the video support field will be automatically filled by this text.</source>
1393 <target>Texto corto para decirle a la gente cómo pueden dar soporte a tu canal (plataforma de miembros...).&lt;br /&gt;&lt;br /&gt;
1394Cuando subas un vídeo a este canal, el campo de soporte del vídeo se rellenará automáticamente con este texto.</target>
1395 <context-group name="null">
1396 <context context-type="linenumber">36</context>
1397 </context-group>
1398 </trans-unit>
1399 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
1400 <source>Change password</source>
1401 <target>Cambiar contraseña</target>
1402 <context-group name="null">
1403 <context context-type="linenumber">19</context>
1404 </context-group>
1405 </trans-unit>
1406 <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
1407 <source>New password</source>
1408 <target>Nueva contraseña</target>
1409 <context-group name="null">
1410 <context context-type="linenumber">7</context>
1411 </context-group>
1412 </trans-unit>
1413 <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b">
1414 <source>Confirm new password</source>
1415 <target>Confirmar nueva contraseña</target>
1416 <context-group name="null">
1417 <context context-type="linenumber">15</context>
1418 </context-group>
1419 </trans-unit>
1420 <trans-unit id="20f62f24170d57b1efeb2387a0949f482cd4d129">
1421 <source>Default policy on videos containing sensitive content</source>
1422 <target>Política por defecto para vídeos que contengan material sensible</target>
1423 <context-group name="null">
1424 <context context-type="linenumber">3</context>
1425 </context-group>
1426 </trans-unit>
1427 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
1428 <source>Automatically plays video</source>
1429 <target>Reproducir vídeo automáticamente</target>
1430 <context-group name="null">
1431 <context context-type="linenumber">20</context>
1432 </context-group>
1433 </trans-unit>
1434 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1435 <source>Save</source>
1436 <target>Guardar</target>
1437 <context-group name="null">
1438 <context context-type="linenumber">23</context>
1439 </context-group>
1440 </trans-unit>
1441 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
1442 <source>Update my profile</source>
1443 <target>Actualizar mi perfil</target>
1444 <context-group name="null">
1445 <context context-type="linenumber">27</context>
1446 </context-group>
1447 </trans-unit>
1448 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1449 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1450 <target>(extensiones: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, tamaño máximo: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1451 <context-group name="null">
1452 <context context-type="linenumber">18</context>
1453 </context-group>
1454 </trans-unit>
1455 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1456 <source>
1457 Sorry, but we couldn't find the page you were looking for.
1458</source>
1459 <target>
1460 Lo sentimos, pero no hemos podido encontrar la página que estabas buscando.
1461</target>
1462 <context-group name="null">
1463 <context context-type="linenumber">1</context>
1464 </context-group>
1465 </trans-unit>
1466 <trans-unit id="c65641c36859c328928e6b0f14c3f913886f8add">
1467 <source>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></source>
1468 <target>Creado por <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></target>
1469 <context-group name="null">
1470 <context context-type="linenumber">14</context>
1471 </context-group>
1472 </trans-unit>
1473 <trans-unit id="e006ed166ce188cab168e1ca90435b33d042d913">
1474 <source>Go the owner account page</source>
1475 <target>Ir a la cuenta del propietario</target>
1476 <context-group name="null">
1477 <context context-type="linenumber">13</context>
1478 </context-group>
1479 </trans-unit>
1480 <trans-unit id="1380539d91f77f565de6e21ce210da891e6644b8">
1481 <source>Support this channel</source>
1482 <target>Apoyar este canal</target>
1483 <context-group name="null">
1484 <context context-type="linenumber">9</context>
1485 </context-group>
1486 </trans-unit>
1487 <trans-unit id="5523952d0300c96cfba2ec5a693c95f923e90c40">
1488 <source>Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></source>
1489 <target>Creado el <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></target>
1490 <context-group name="null">
1491 <context context-type="linenumber">17</context>
1492 </context-group>
1493 </trans-unit>
1494 <trans-unit id="d4dcf74163f127ca9afa84d55b5d95846958faa0">
1495 <source>Upload your video</source>
1496 <target>Subir tu vídeo</target>
1497 <context-group name="null">
1498 <context context-type="linenumber">3</context>
1499 </context-group>
1500 </trans-unit>
1501 <trans-unit id="1af3dcf5aad5b7f4b3251da88a89dc9a184445dd">
1502 <source>Upload <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></source>
1503 <target>Subir <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></target>
1504 <context-group name="null">
1505 <context context-type="linenumber">4</context>
1506 </context-group>
1507 </trans-unit>
1508 <trans-unit id="21add64f0f3ebbedf1150ca822c6e149494ab7a9">
1509 <source>Select the file to upload</source>
1510 <target>Elige el archivo a subir</target>
1511 <context-group name="null">
1512 <context context-type="linenumber">12</context>
1513 </context-group>
1514 </trans-unit>
1515 <trans-unit id="0cc554f4d7bb6a87515d2d95438e183b50702071">
1516 <source>Channel</source>
1517 <target>Canal</target>
1518 <context-group name="null">
1519 <context context-type="linenumber">35</context>
1520 </context-group>
1521 </trans-unit>
1522 <trans-unit id="3c78b53bca33467190c0b7a01320bc093a2b1427">
1523 <source>Privacy</source>
1524 <target>Privacidad</target>
1525 <context-group name="null">
1526 <context context-type="linenumber">139</context>
1527 </context-group>
1528 </trans-unit>
1529 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1530 <source>Publish will be available when upload is finished</source>
1531 <target>La publicación estará disponible cuando finalice la subida</target>
1532 <context-group name="null">
1533 <context context-type="linenumber">54</context>
1534 </context-group>
1535 </trans-unit>
1536 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1537 <source>Publish</source>
1538 <target>Publicar</target>
1539 <context-group name="null">
1540 <context context-type="linenumber">61</context>
1541 </context-group>
1542 </trans-unit>
1543 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
1544 <source>Title</source>
1545 <target>Título</target>
1546 <context-group name="null">
1547 <context context-type="linenumber">7</context>
1548 </context-group>
1549 </trans-unit>
1550 <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b">
1551 <source>Tags</source>
1552 <target>Etiquetas</target>
1553 <context-group name="null">
1554 <context context-type="linenumber">171</context>
1555 </context-group>
1556 </trans-unit>
1557 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
1558 <source>(press Enter to add)</source>
1559 <target>(presiona Entrar para añadir)</target>
1560 <context-group name="null">
1561 <context context-type="linenumber">15</context>
1562 </context-group>
1563 </trans-unit>
1564 <trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
1565 <source>Video descriptions are truncated by default and require manual action to expand them.</source>
1566 <target>Las descripciones de vídeo se muestran truncadas por defecto y requieren de acción manual para expandirlas.</target>
1567 <context-group name="null">
1568 <context context-type="linenumber">24</context>
1569 </context-group>
1570 </trans-unit>
1571 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1572 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1573 <target>Programar publicación (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
1574 <context-group name="null">
1575 <context context-type="linenumber">101</context>
1576 </context-group>
1577 </trans-unit>
1578 <trans-unit id="5ef7108218e096d09f4ee8525a05a8c90d7b95ee">
1579 <source>This video contains mature or explicit content</source>
1580 <target>Este vídeo contiene material para adultos o explícito</target>
1581 <context-group name="null">
1582 <context context-type="linenumber">115</context>
1583 </context-group>
1584 </trans-unit>
1585 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1586 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1587 <target>Algunos nodos no listan vídeos que contengan material para adultos o explícito por defecto.</target>
1588 <context-group name="null">
1589 <context context-type="linenumber">116</context>
1590 </context-group>
1591 </trans-unit>
1592 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1593 <source>Enable video comments</source>
1594 <target>Permitir comentarios del vídeo</target>
1595 <context-group name="null">
1596 <context context-type="linenumber">121</context>
1597 </context-group>
1598 </trans-unit>
1599 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1600 <source>Wait transcoding before publishing the video</source>
1601 <target>Esperar transcodificación antes de publicar el vídeo</target>
1602 <context-group name="null">
1603 <context context-type="linenumber">126</context>
1604 </context-group>
1605 </trans-unit>
1606 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
1607 <source>Basic info</source>
1608 <target>Info básica</target>
1609 <context-group name="null">
1610 <context context-type="linenumber">4</context>
1611 </context-group>
1612 </trans-unit>
1613 <trans-unit id="1dd793abd1cb8d16a7a2cb71ca5549a7111ee513">
1614 <source>Upload thumbnail</source>
1615 <target>Subir miniatura</target>
1616 <context-group name="null">
1617 <context context-type="linenumber">186</context>
1618 </context-group>
1619 </trans-unit>
1620 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1621 <source>Upload preview</source>
1622 <target>Subir previsualización</target>
1623 <context-group name="null">
1624 <context context-type="linenumber">193</context>
1625 </context-group>
1626 </trans-unit>
1627 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1628 <source>Support</source>
1629 <target>Apoyar</target>
1630 <context-group name="null">
1631 <context context-type="linenumber">67</context>
1632 </context-group>
1633 </trans-unit>
1634 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1635 <source>Short text to tell people how they can support you (membership platform...).</source>
1636 <target>Breve texto para explicar a la gente cómo pueden apoyarte (plataforma de miembros...).</target>
1637 <context-group name="null">
1638 <context context-type="linenumber">200</context>
1639 </context-group>
1640 </trans-unit>
1641 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1642 <source>Advanced settings</source>
1643 <target>Ajustes avanzados</target>
1644 <context-group name="null">
1645 <context context-type="linenumber">182</context>
1646 </context-group>
1647 </trans-unit>
1648 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
1649 <source>
1650 Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1651 </source>
1652 <target>
1653 Actualizar <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1654 </target>
1655 <context-group name="null">
1656 <context context-type="linenumber">2</context>
1657 </context-group>
1658 </trans-unit>
1659 <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb">
1660 <source>Update</source>
1661 <target>Actualizar</target>
1662 <context-group name="null">
1663 <context context-type="linenumber">101</context>
1664 </context-group>
1665 </trans-unit>
1666 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
1667 <source>Download video</source>
1668 <target>Descargar vídeo</target>
1669 <context-group name="null">
1670 <context context-type="linenumber">7</context>
1671 </context-group>
1672 </trans-unit>
1673 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1674 <source>Direct download</source>
1675 <target>Descarga directa</target>
1676 <context-group name="null">
1677 <context context-type="linenumber">20</context>
1678 </context-group>
1679 </trans-unit>
1680 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1681 <source>Download</source>
1682 <target>Descargar</target>
1683 <context-group name="null">
1684 <context context-type="linenumber">83</context>
1685 </context-group>
1686 </trans-unit>
1687 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
1688 <source>Report video</source>
1689 <target>Reportar vídeo</target>
1690 <context-group name="null">
1691 <context context-type="linenumber">7</context>
1692 </context-group>
1693 </trans-unit>
1694 <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
1695 <source>Reason...</source>
1696 <target>Motivo...</target>
1697 <context-group name="null">
1698 <context context-type="linenumber">14</context>
1699 </context-group>
1700 </trans-unit>
1701 <trans-unit id="0e6b8229bd65f93bc8040d0fb598967f220740c7">
1702 <source>
1703 Cancel
1704 </source>
1705 <target>
1706 Cancelar
1707 </target>
1708 <context-group name="null">
1709 <context context-type="linenumber">22</context>
1710 </context-group>
1711 </trans-unit>
1712 <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd">
1713 <source>Submit</source>
1714 <target>Enviar</target>
1715 <context-group name="null">
1716 <context context-type="linenumber">27</context>
1717 </context-group>
1718 </trans-unit>
1719 <trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9">
1720 <source>Share</source>
1721 <target>Compartir</target>
1722 <context-group name="null">
1723 <context context-type="linenumber">72</context>
1724 </context-group>
1725 </trans-unit>
1726 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
1727 <source>URL</source>
1728 <target>URL</target>
1729 <context-group name="null">
1730 <context context-type="linenumber">12</context>
1731 </context-group>
1732 </trans-unit>
1733 <trans-unit id="d3b15c3bf4a7ea38d6002d2d2c4781642d30e79c">
1734 <source>Embed</source>
1735 <target>Incrustar</target>
1736 <context-group name="null">
1737 <context context-type="linenumber">24</context>
1738 </context-group>
1739 </trans-unit>
1740 <trans-unit id="239fe0316cfe91aa6e1e7bf1ef19e3b7772131f8">
1741 <source>
1742 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).
1743 </source>
1744 <target>
1745 La url no está securizada (no es HTTPS), así que el vídeo incrustado no funcionará en sitios web HTTPS (los navegadores web bloquean peticiones HTTP no seguras en sitios web con HTTPS).
1746 </target>
1747 <context-group name="null">
1748 <context context-type="linenumber">35</context>
1749 </context-group>
1750 </trans-unit>
1751 <trans-unit id="9ed65ae88f6c982bc44d6fed2796e55f47dbf304">
1752 <source>
1753 The video is being transcoded, it may not work properly.
1754 </source>
1755 <target>
1756 El vídeo está siendo transcodificado, puede no funcionar correctamente.
1757 </target>
1758 <context-group name="null">
1759 <context context-type="linenumber">11</context>
1760 </context-group>
1761 </trans-unit>
1762 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
1763 <source>
1764 This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1765 </source>
1766 <target>
1767 Este vídeo será publicado el <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1768 </target>
1769 <context-group name="null">
1770 <context context-type="linenumber">15</context>
1771 </context-group>
1772 </trans-unit>
1773 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
1774 <source>
1775 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views
1776 </source>
1777 <target>
1778 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizaciones
1779 </target>
1780 <context-group name="null">
1781 <context context-type="linenumber">26</context>
1782 </context-group>
1783 </trans-unit>
1784 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1785 <source>Go the channel page</source>
1786 <target>Ir a la página del canal</target>
1787 <context-group name="null">
1788 <context context-type="linenumber">31</context>
1789 </context-group>
1790 </trans-unit>
1791 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1792 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1793 <target>Por <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1794 <context-group name="null">
1795 <context context-type="linenumber">41</context>
1796 </context-group>
1797 </trans-unit>
1798 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1799 <source>Go to the account page</source>
1800 <target>Ir a la página de la cuenta</target>
1801 <context-group name="null">
1802 <context context-type="linenumber">40</context>
1803 </context-group>
1804 </trans-unit>
1805 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1806 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1807 <target>Puedes suscribirte a esta cuenta a través de cualquier nodo compatible con Activity Pub del fediverso. Por ejemplo, con Mastodon o Pleroma puedes escribir en la caja de búsqueda &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; y suscribirte aquí. Estamos trabajando en la suscripción como usuario de PeerTube en &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1808 <context-group name="null">
1809 <context context-type="linenumber">45</context>
1810 </context-group>
1811 </trans-unit>
1812 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1813 <source>Like this video</source>
1814 <target>Me gusta este vídeo</target>
1815 <context-group name="null">
1816 <context context-type="linenumber">55</context>
1817 </context-group>
1818 </trans-unit>
1819 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1820 <source>Dislike this video</source>
1821 <target>No me gusta este vídeo</target>
1822 <context-group name="null">
1823 <context context-type="linenumber">62</context>
1824 </context-group>
1825 </trans-unit>
1826 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1827 <source>Download the video</source>
1828 <target>Descargar el vídeo</target>
1829 <context-group name="null">
1830 <context context-type="linenumber">82</context>
1831 </context-group>
1832 </trans-unit>
1833 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1834 <source>Report</source>
1835 <target>Reportar</target>
1836 <context-group name="null">
1837 <context context-type="linenumber">89</context>
1838 </context-group>
1839 </trans-unit>
1840 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1841 <source>Report this video</source>
1842 <target>Reportar este vídeo</target>
1843 <context-group name="null">
1844 <context context-type="linenumber">88</context>
1845 </context-group>
1846 </trans-unit>
1847 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1848 <source>Blacklist</source>
1849 <target>Lista negra</target>
1850 <context-group name="null">
1851 <context context-type="linenumber">95</context>
1852 </context-group>
1853 </trans-unit>
1854 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1855 <source>Blacklist this video</source>
1856 <target>Poner este vídeo en lista negra</target>
1857 <context-group name="null">
1858 <context context-type="linenumber">94</context>
1859 </context-group>
1860 </trans-unit>
1861 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1862 <source>Update this video</source>
1863 <target>Actualizar este vídeo</target>
1864 <context-group name="null">
1865 <context context-type="linenumber">100</context>
1866 </context-group>
1867 </trans-unit>
1868 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1869 <source>Delete this video</source>
1870 <target>Eliminar este vídeo</target>
1871 <context-group name="null">
1872 <context context-type="linenumber">106</context>
1873 </context-group>
1874 </trans-unit>
1875 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1876 <source>Show more</source>
1877 <target>Mostrar más</target>
1878 <context-group name="null">
1879 <context context-type="linenumber">126</context>
1880 </context-group>
1881 </trans-unit>
1882 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1883 <source>Show less</source>
1884 <target>Mostrar menos</target>
1885 <context-group name="null">
1886 <context context-type="linenumber">132</context>
1887 </context-group>
1888 </trans-unit>
1889 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
1890 <source>
1891 Other videos
1892 </source>
1893 <target>
1894 Otros vídeos
1895 </target>
1896 <context-group name="null">
1897 <context context-type="linenumber">183</context>
1898 </context-group>
1899 </trans-unit>
1900 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
1901 <source>Friendly Reminder:</source>
1902 <target>Recordatorio amistoso:</target>
1903 <context-group name="null">
1904 <context context-type="linenumber">195</context>
1905 </context-group>
1906 </trans-unit>
1907 <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e">
1908 <source>More information</source>
1909 <target>Más información</target>
1910 <context-group name="null">
1911 <context context-type="linenumber">200</context>
1912 </context-group>
1913 </trans-unit>
1914 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
1915 <source>Get more information</source>
1916 <target>Ver más información</target>
1917 <context-group name="null">
1918 <context context-type="linenumber">200</context>
1919 </context-group>
1920 </trans-unit>
1921 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
1922 <source>
1923 OK
1924 </source>
1925 <target>
1926 De acuerdo
1927 </target>
1928 <context-group name="null">
1929 <context context-type="linenumber">203</context>
1930 </context-group>
1931 </trans-unit>
1932 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
1933 <source>
1934 Comments
1935 </source>
1936 <target>
1937 Comentarios
1938 </target>
1939 <context-group name="null">
1940 <context context-type="linenumber">3</context>
1941 </context-group>
1942 </trans-unit>
1943 <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
1944 <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and find back the video. Direct commenting capabilities are being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/224'&gt;#224&lt;/a&gt;.</source>
1945 <target>Puedes comentar bien a través de la página de tu nodo donde este vídeo está federado con tu cuenta de PeerTube, o bien a través de cualquier instancia del fediverso equipada con ActivityPub. Por ejemplo, con Mastodon o Pleroma puede escribir en la caja de búsqueda &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; y encontrar el vídeo. Estamos trabajando en la capacidad de comentar directamente en &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/224'&gt;#224&lt;/a&gt;.</target>
1946 <context-group name="null">
1947 <context context-type="linenumber">8</context>
1948 </context-group>
1949 </trans-unit>
1950 <trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
1951 <source>No comments.</source>
1952 <target>No hay comentarios</target>
1953 <context-group name="null">
1954 <context context-type="linenumber">19</context>
1955 </context-group>
1956 </trans-unit>
1957 <trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
1958 <source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
1959 <target>Ver las <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> respuestas</target>
1960 <context-group name="null">
1961 <context context-type="linenumber">56</context>
1962 </context-group>
1963 </trans-unit>
1964 <trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
1965 <source>
1966 Comments are disabled.
1967 </source>
1968 <target>
1969 Los comentarios están inhabilitados.
1970 </target>
1971 <context-group name="null">
1972 <context context-type="linenumber">65</context>
1973 </context-group>
1974 </trans-unit>
1975 <trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
1976 <source>Add comment...</source>
1977 <target>Añadir comentario...</target>
1978 <context-group name="null">
1979 <context context-type="linenumber">6</context>
1980 </context-group>
1981 </trans-unit>
1982 <trans-unit id="26fa50ba8e69b53162b348d98e25f8b76c81343e">
1983 <source>
1984 Post comment
1985 </source>
1986 <target>
1987 Publicar comentario
1988 </target>
1989 <context-group name="null">
1990 <context context-type="linenumber">17</context>
1991 </context-group>
1992 </trans-unit>
1993 <trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
1994 <source>Highlighted comment</source>
1995 <target>Comentario resaltado</target>
1996 <context-group name="null">
1997 <context context-type="linenumber">5</context>
1998 </context-group>
1999 </trans-unit>
2000 <trans-unit id="cb23d4d98007aa4d7123837f4c17a671848377d6">
2001 <source>Reply</source>
2002 <target>Responder</target>
2003 <context-group name="null">
2004 <context context-type="linenumber">14</context>
2005 </context-group>
2006 </trans-unit>
2007 <trans-unit id="814d28bf9dcbd3122254e664b446ac8e0442bc08">
2008 <source>Error getting about from server</source>
2009 <target>Error al obtener información del servidor</target>
2010 <context-group name="null">
2011 <context context-type="linenumber">1</context>
2012 </context-group>
2013 </trans-unit>
2014 <trans-unit id="37b56526e384f843a15323dc730b484a97b4c968">
2015 <source>No description</source>
2016 <target>No hay descripción</target>
2017 <context-group name="null">
2018 <context context-type="linenumber">1</context>
2019 </context-group>
2020 </trans-unit>
2021 <trans-unit id="2f03e577e8f81a9f8be0095f93e1f9376c6eedc9">
2022 <source>Published videos</source>
2023 <target>Vídeos publicados</target>
2024 <context-group name="null">
2025 <context context-type="linenumber">1</context>
2026 </context-group>
2027 </trans-unit>
2028 <trans-unit id="369ef5e9c0dd1251abdbf699a5db408bca10777f">
2029 <source>Published <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> videos</source>
2030 <target><x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> vídeos publicados</target>
2031 <context-group name="null">
2032 <context context-type="linenumber">1</context>
2033 </context-group>
2034 </trans-unit>
2035 <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
2036 <source>Error</source>
2037 <target>Error</target>
2038 <context-group name="null">
2039 <context context-type="linenumber">1</context>
2040 </context-group>
2041 </trans-unit>
2042 <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
2043 <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
2044 <target>Ajustaste de forma personalizada <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </target>
2045 <context-group name="null">
2046 <context context-type="linenumber">1</context>
2047 </context-group>
2048 </trans-unit>
2049 <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
2050 <source>This could lead to security issues or bugs if you do not understand it. </source>
2051 <target>Esto podría provocar problemas de seguridad o bugs si no lo entiendes. </target>
2052 <context-group name="null">
2053 <context context-type="linenumber">1</context>
2054 </context-group>
2055 </trans-unit>
2056 <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
2057 <source>Are you sure you want to update the configuration?</source>
2058 <target>¿Estás seguro de que quieres actualizar la configuración?</target>
2059 <context-group name="null">
2060 <context context-type="linenumber">1</context>
2061 </context-group>
2062 </trans-unit>
2063 <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
2064 <source>Please type</source>
2065 <target>Por favor escribe</target>
2066 <context-group name="null">
2067 <context context-type="linenumber">1</context>
2068 </context-group>
2069 </trans-unit>
2070 <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
2071 <source>to confirm.</source>
2072 <target>para confirmar.</target>
2073 <context-group name="null">
2074 <context context-type="linenumber">1</context>
2075 </context-group>
2076 </trans-unit>
2077 <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
2078 <source>Success</source>
2079 <target>Correcto</target>
2080 <context-group name="null">
2081 <context context-type="linenumber">1</context>
2082 </context-group>
2083 </trans-unit>
2084 <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
2085 <source>Configuration updated.</source>
2086 <target>Configuración actualizada</target>
2087 <context-group name="null">
2088 <context context-type="linenumber">1</context>
2089 </context-group>
2090 </trans-unit>
2091 <trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
2092 <source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
2093 <target><x id="INTERPOLATION" equiv-text="{{host}}"/> no es válido</target>
2094 <context-group name="null">
2095 <context context-type="linenumber">1</context>
2096 </context-group>
2097 </trans-unit>
2098 <trans-unit id="e02f50674f1d96966384dc096beb42d4973997df">
2099 <source>You need to specify hosts to follow.</source>
2100 <target>Tienes que especificar hosts a los que seguir.</target>
2101 <context-group name="null">
2102 <context context-type="linenumber">1</context>
2103 </context-group>
2104 </trans-unit>
2105 <trans-unit id="c2a114eb000e7c38e8ad4b1768821bdf6e946d71">
2106 <source>Hosts need to be unique.</source>
2107 <target>Los hosts tienen que ser únicos.</target>
2108 <context-group name="null">
2109 <context context-type="linenumber">1</context>
2110 </context-group>
2111 </trans-unit>
2112 <trans-unit id="a6718d6aaf5bcd1692eed48daa61d2bed62c1f50">
2113 <source>If you confirm, you will send a follow request to:<x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/> - </source>
2114 <target>Si confirmas, enviaras una petición de seguimiento a:<x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/> - </target>
2115 <context-group name="null">
2116 <context context-type="linenumber">1</context>
2117 </context-group>
2118 </trans-unit>
2119 <trans-unit id="1266acb081ef0324c4a38ae2d514dd75d8b38409">
2120 <source>Follow new server(s)</source>
2121 <target>Seguir nuevo(s) servidor(es)</target>
2122 <context-group name="null">
2123 <context context-type="linenumber">1</context>
2124 </context-group>
2125 </trans-unit>
2126 <trans-unit id="950f5111d567e5c0e971f07c26e8c2be1d919a8e">
2127 <source>Follow request(s) sent!</source>
2128 <target>¡Petición(es) de seguimiento enviada(s)!</target>
2129 <context-group name="null">
2130 <context context-type="linenumber">1</context>
2131 </context-group>
2132 </trans-unit>
2133 <trans-unit id="5729c34a858c78daa1aa606f62a3665527cf97e6">
2134 <source>Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>?</source>
2135 <target>¿De verdad quieres dejar de seguir a <x id="INTERPOLATION" equiv-text="{{host}}"/>?</target>
2136 <context-group name="null">
2137 <context context-type="linenumber">1</context>
2138 </context-group>
2139 </trans-unit>
2140 <trans-unit id="a89875525c82ab81ffe32e481a5475b43d0c2902">
2141 <source>Unfollow</source>
2142 <target>Dejar de seguir</target>
2143 <context-group name="null">
2144 <context context-type="linenumber">1</context>
2145 </context-group>
2146 </trans-unit>
2147 <trans-unit id="fb4e35e2b0ea2abc1f71295a4b34830e57c07bd0">
2148 <source>You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore.</source>
2149 <target>Ya no estás siguiendo a <x id="INTERPOLATION" equiv-text="{{host}}"/>.</target>
2150 <context-group name="null">
2151 <context context-type="linenumber">1</context>
2152 </context-group>
2153 </trans-unit>
2154 <trans-unit id="f995df052a1dfc675c2a21926420a707d9601936">
2155 <source>Following</source>
2156 <target>Siguiendo</target>
2157 <context-group name="null">
2158 <context context-type="linenumber">1</context>
2159 </context-group>
2160 </trans-unit>
2161 <trans-unit id="d29764bcbaad3ef69b6be92be35bdf25972ce246">
2162 <source>Follow</source>
2163 <target>Seguir</target>
2164 <context-group name="null">
2165 <context context-type="linenumber">1</context>
2166 </context-group>
2167 </trans-unit>
2168 <trans-unit id="9bee670725966ed477b4c33a545c8b5436b0065e">
2169 <source>Followers</source>
2170 <target>Seguidores</target>
2171 <context-group name="null">
2172 <context context-type="linenumber">1</context>
2173 </context-group>
2174 </trans-unit>
2175 <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
2176 <source>Unlimited</source>
2177 <target>Ilimitado</target>
2178 <context-group name="null">
2179 <context context-type="linenumber">1</context>
2180 </context-group>
2181 </trans-unit>
2182 <trans-unit id="364463fab6c5714118d6449561a0f8de1cc10bfa">
2183 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> created.</source>
2184 <target>Usuario <x id="INTERPOLATION" equiv-text="{{username}}"/> creado.</target>
2185 <context-group name="null">
2186 <context context-type="linenumber">1</context>
2187 </context-group>
2188 </trans-unit>
2189 <trans-unit id="964865a3cd90b4af99902f071644a4b2aede4c32">
2190 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated.</source>
2191 <target>Usuario <x id="INTERPOLATION" equiv-text="{{username}}"/> actualizado.</target>
2192 <context-group name="null">
2193 <context context-type="linenumber">1</context>
2194 </context-group>
2195 </trans-unit>
2196 <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f">
2197 <source>Update user</source>
2198 <target>Actualizar usuario</target>
2199 <context-group name="null">
2200 <context context-type="linenumber">1</context>
2201 </context-group>
2202 </trans-unit>
2203 <trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
2204 <source>You cannot delete root.</source>
2205 <target>No puedes eliminar al root.</target>
2206 <context-group name="null">
2207 <context context-type="linenumber">1</context>
2208 </context-group>
2209 </trans-unit>
2210 <trans-unit id="9ef88654aab4b2df4fa2083f33caa0c5419c1a60">
2211 <source>Do you really want to delete this user?</source>
2212 <target>¿De verdad quieres eliminar este usuario?</target>
2213 <context-group name="null">
2214 <context context-type="linenumber">1</context>
2215 </context-group>
2216 </trans-unit>
2217 <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
2218 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
2219 <target>Usuario <x id="INTERPOLATION" equiv-text="{{username}}"/> eliminado.</target>
2220 <context-group name="null">
2221 <context context-type="linenumber">1</context>
2222 </context-group>
2223 </trans-unit>
2224 <trans-unit id="4733ad1d7e63960438c0203b9a64f165b5fc84f2">
2225 <source>Do you really want to remove this video from the blacklist ? It will be available again in the videos list.</source>
2226 <target>¿De verdad quieres eliminar este vídeo de la lista negra? Estará de nuevo disponible en la lista de vídeos.</target>
2227 <context-group name="null">
2228 <context context-type="linenumber">1</context>
2229 </context-group>
2230 </trans-unit>
2231 <trans-unit id="1585babc36806e20e225ac27dbba0e7c7cd09e0f">
2232 <source>Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist.</source>
2233 <target>Vídeo <x id="INTERPOLATION" equiv-text="{{name}}"/> eliminado de la lista negra.</target>
2234 <context-group name="null">
2235 <context context-type="linenumber">1</context>
2236 </context-group>
2237 </trans-unit>
2238 <trans-unit id="2db8f1f93a5485c32267762a3bf4da499832e732">
2239 <source>The new password and the confirmed password do not correspond.</source>
2240 <target>La nueva contraseña y la contraseña de confirmación no corresponden.</target>
2241 <context-group name="null">
2242 <context context-type="linenumber">1</context>
2243 </context-group>
2244 </trans-unit>
2245 <trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
2246 <source>Password updated.</source>
2247 <target>Contraseña actualizada.</target>
2248 <context-group name="null">
2249 <context context-type="linenumber">1</context>
2250 </context-group>
2251 </trans-unit>
2252 <trans-unit id="db4ff52375f6a25ad0472e92754c8c265ae47c6b">
2253 <source>Profile updated.</source>
2254 <target>Perfil actualizado.</target>
2255 <context-group name="null">
2256 <context context-type="linenumber">1</context>
2257 </context-group>
2258 </trans-unit>
2259 <trans-unit id="1e003ad599ef836949b9f4dad3037a58ef3ff8d1">
2260 <source>Avatar changed.</source>
2261 <target>Avatar cambiado.</target>
2262 <context-group name="null">
2263 <context context-type="linenumber">1</context>
2264 </context-group>
2265 </trans-unit>
2266 <trans-unit id="214b802dfd6f544003147a7a68938ec1055c8f32">
2267 <source>Information updated.</source>
2268 <target>Información actualizada.</target>
2269 <context-group name="null">
2270 <context context-type="linenumber">1</context>
2271 </context-group>
2272 </trans-unit>
2273 <trans-unit id="3ef8bf973a9a481a08c6f0aaa875f0259b3ea645">
2274 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created.</source>
2275 <target>Canal de vídeo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> creado.</target>
2276 <context-group name="null">
2277 <context context-type="linenumber">1</context>
2278 </context-group>
2279 </trans-unit>
2280 <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795">
2281 <source>Create</source>
2282 <target>Crear</target>
2283 <context-group name="null">
2284 <context context-type="linenumber">1</context>
2285 </context-group>
2286 </trans-unit>
2287 <trans-unit id="98ab64f0af924a60a48b40835c1b655bd17c6559">
2288 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated.</source>
2289 <target>Canal de vídeo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> actualizado.</target>
2290 <context-group name="null">
2291 <context context-type="linenumber">1</context>
2292 </context-group>
2293 </trans-unit>
2294 <trans-unit id="d5adc9efad0469fc3e1503d68c4ec2ff4453a814">
2295 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/>? It will delete all videos uploaded in this channel too.</source>
2296 <target>¿De verdad quieres eliminar <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/>? Esto eliminará también todos los vídeos subidos a este canal.</target>
2297 <context-group name="null">
2298 <context context-type="linenumber">1</context>
2299 </context-group>
2300 </trans-unit>
2301 <trans-unit id="703dee7f3e693f9c77ef17c46f9fa71999609f8e">
2302 <source>Please type the name of the video channel to confirm</source>
2303 <target>Por favor escribe el nombre del canal de vídeo para confirmar</target>
2304 <context-group name="null">
2305 <context context-type="linenumber">1</context>
2306 </context-group>
2307 </trans-unit>
2308 <trans-unit id="a81a33275b683729ad938b6102e7e34a057537a2">
2309 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted.</source>
2310 <target>Canal de vídeo <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> eliminado.</target>
2311 <context-group name="null">
2312 <context context-type="linenumber">1</context>
2313 </context-group>
2314 </trans-unit>
2315 <trans-unit id="00e16d1f1c5cc936ec0881cd02cbf66aa1b4cddd">
2316 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos?</source>
2317 <target>¿De verdad quieres eliminar <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> vídeos?</target>
2318 <context-group name="null">
2319 <context context-type="linenumber">1</context>
2320 </context-group>
2321 </trans-unit>
2322 <trans-unit id="dff7d4574cfaa785cbd4c0a5ffb5befec19a5d83">
2323 <source><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted.</source>
2324 <target><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> vídeos eliminados.</target>
2325 <context-group name="null">
2326 <context context-type="linenumber">1</context>
2327 </context-group>
2328 </trans-unit>
2329 <trans-unit id="4ec5852c869b2fb4ae0e564b51278d7be8013fc7">
2330 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>?</source>
2331 <target>¿De verdad quieres eliminar <x id="INTERPOLATION" equiv-text="{{videoName}}"/>?</target>
2332 <context-group name="null">
2333 <context context-type="linenumber">1</context>
2334 </context-group>
2335 </trans-unit>
2336 <trans-unit id="d39a0bfa616a9a8473b2e379eefe17d8ed1af118">
2337 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted.</source>
2338 <target>Vídeo <x id="INTERPOLATION" equiv-text="{{videoName}}"/> eliminado.</target>
2339 <context-group name="null">
2340 <context context-type="linenumber">1</context>
2341 </context-group>
2342 </trans-unit>
2343 <trans-unit id="dd9f3264feed4935008861c15d81c947124e4ac3">
2344 <source>Published</source>
2345 <target>Publicado</target>
2346 <context-group name="null">
2347 <context context-type="linenumber">1</context>
2348 </context-group>
2349 </trans-unit>
2350 <trans-unit id="8e6d54c4f760d9e90518eef5334211c48c0b71e2">
2351 <source>Publication scheduled on </source>
2352 <target>Publicación programada para</target>
2353 <context-group name="null">
2354 <context context-type="linenumber">1</context>
2355 </context-group>
2356 </trans-unit>
2357 <trans-unit id="4a7e91ebe1cf184db5f2bfecf9c16ff81c9e2c02">
2358 <source>Waiting transcoding</source>
2359 <target>Esperando transcodificación</target>
2360 <context-group name="null">
2361 <context context-type="linenumber">1</context>
2362 </context-group>
2363 </trans-unit>
2364 <trans-unit id="21f1c9d5c67346c830aced4f670045fcf0aeb83a">
2365 <source>To transcode</source>
2366 <target>Para transcodificar</target>
2367 <context-group name="null">
2368 <context context-type="linenumber">1</context>
2369 </context-group>
2370 </trans-unit>
2371 <trans-unit id="edeaa933b09690523e46977e11064e9c655d77d7">
2372 <source>Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>.
2373</source>
2374 <target>No se pueden recuperar las credenciales del Cliente OAuth: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>.
2375</target>
2376 <context-group name="null">
2377 <context context-type="linenumber">1</context>
2378 </context-group>
2379 </trans-unit>
2380 <trans-unit id="8d9b4f4b69108c3c9aa0f3b0dbde87786ba9b319">
2381 <source>Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section.</source>
2382 <target>Asegúrate de que has configurado correctamente PeerTube (carpeta config/), en particular la sección "servidor".</target>
2383 <context-group name="null">
2384 <context context-type="linenumber">1</context>
2385 </context-group>
2386 </trans-unit>
2387 <trans-unit id="e31bbf15d6ba5c7c0f17f89a98029cff0bd40b87">
2388 <source>You need to reconnect.</source>
2389 <target>Tienes que reconectar.</target>
2390 <context-group name="null">
2391 <context context-type="linenumber">1</context>
2392 </context-group>
2393 </trans-unit>
2394 <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da">
2395 <source>Confirm</source>
2396 <target>Confirmar</target>
2397 <context-group name="null">
2398 <context context-type="linenumber">1</context>
2399 </context-group>
2400 </trans-unit>
2401 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2402 <source>Unable to find user id or verification string.</source>
2403 <target>No se pudo encontrar el id de usuario o la cadena de verificación.</target>
2404 <context-group name="null">
2405 <context context-type="linenumber">1</context>
2406 </context-group>
2407 </trans-unit>
2408 <trans-unit id="b0f24b7136e551a0deba831f1525711245b31a26">
2409 <source>Your password has been successfully reset!</source>
2410 <target>¡Tu contraseña ha sido restablecida con éxito!</target>
2411 <context-group name="null">
2412 <context context-type="linenumber">1</context>
2413 </context-group>
2414 </trans-unit>
2415 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2416 <source>Today</source>
2417 <target>Hoy</target>
2418 <context-group name="null">
2419 <context context-type="linenumber">1</context>
2420 </context-group>
2421 </trans-unit>
2422 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2423 <source>Search</source>
2424 <target>Buscar</target>
2425 <context-group name="null">
2426 <context context-type="linenumber">1</context>
2427 </context-group>
2428 </trans-unit>
2429 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2430 <source>Instance name is required.</source>
2431 <target>Se requiere un nombre de nodo</target>
2432 <context-group name="null">
2433 <context context-type="linenumber">1</context>
2434 </context-group>
2435 </trans-unit>
2436 <trans-unit id="10a248adb1ee12830355a04ac3cde2bad2d41d7d">
2437 <source>Short description should not be longer than 250 characters.</source>
2438 <target>La descripción breve no debería ocupar más de 250 caracteres.</target>
2439 <context-group name="null">
2440 <context context-type="linenumber">1</context>
2441 </context-group>
2442 </trans-unit>
2443 <trans-unit id="356e63270712273da168072ec0fc78a969919bf1">
2444 <source>Twitter username is required.</source>
2445 <target>Se requiere el nombre de usuario de Twitter</target>
2446 <context-group name="null">
2447 <context context-type="linenumber">1</context>
2448 </context-group>
2449 </trans-unit>
2450 <trans-unit id="dbb2ef02020afc05e146855f2e1dd7c9522d49b6">
2451 <source>Previews cache size is required.</source>
2452 <target>Se requiere un tamaño de caché de previsualizaciones</target>
2453 <context-group name="null">
2454 <context context-type="linenumber">1</context>
2455 </context-group>
2456 </trans-unit>
2457 <trans-unit id="97836c6e698185b4ce357de9d4b2ab3e838f2459">
2458 <source>Previews cache size must be greater than 1.</source>
2459 <target>El tamaño de caché de previsualizaciones ha de ser mayor que 1.</target>
2460 <context-group name="null">
2461 <context context-type="linenumber">1</context>
2462 </context-group>
2463 </trans-unit>
2464 <trans-unit id="e7393dc4a4aa12d005582eb9e1ddc7e5ca5bebd3">
2465 <source>Previews cache size must be a number.</source>
2466 <target>El tamaño de caché de previsualizaciones ha de ser un número.</target>
2467 <context-group name="null">
2468 <context context-type="linenumber">1</context>
2469 </context-group>
2470 </trans-unit>
2471 <trans-unit id="2cdd5a8c604ef16c2f9a17ed81d73f4f9509e828">
2472 <source>Signup limit is required.</source>
2473 <target>Se requiere un límite de registro.</target>
2474 <context-group name="null">
2475 <context context-type="linenumber">1</context>
2476 </context-group>
2477 </trans-unit>
2478 <trans-unit id="0ca9f7ec55c9896add6e82d2b52e9217e1140cf7">
2479 <source>Signup limit must be greater than 1.</source>
2480 <target>El límite de registro debe ser mayor que 1.</target>
2481 <context-group name="null">
2482 <context context-type="linenumber">1</context>
2483 </context-group>
2484 </trans-unit>
2485 <trans-unit id="58c2f66ba74f1400914031ef4ed635938e9e8ced">
2486 <source>Signup limit must be a number.</source>
2487 <target>El límite de registro debe ser un número.</target>
2488 <context-group name="null">
2489 <context context-type="linenumber">1</context>
2490 </context-group>
2491 </trans-unit>
2492 <trans-unit id="1245841647f9b42d3e7554903c1c50bdd80ab021">
2493 <source>Admin email is required.</source>
2494 <target>Se requiere un correo de administrador.</target>
2495 <context-group name="null">
2496 <context context-type="linenumber">1</context>
2497 </context-group>
2498 </trans-unit>
2499 <trans-unit id="3fd2feb77dfe57fe82573e3cdf996105e2fafc66">
2500 <source>Admin email must be valid.</source>
2501 <target>El correo de adminstrador ha de ser válido.</target>
2502 <context-group name="null">
2503 <context context-type="linenumber">1</context>
2504 </context-group>
2505 </trans-unit>
2506 <trans-unit id="f15f2e02b1f6a96553e98ea4a969045d17ec1400">
2507 <source>Transcoding threads is required.</source>
2508 <target>Se requieren hilos de transcodificación.</target>
2509 <context-group name="null">
2510 <context context-type="linenumber">1</context>
2511 </context-group>
2512 </trans-unit>
2513 <trans-unit id="ba88636d27c1a6a7e1f75ff57ec182b30b851c2e">
2514 <source>Transcoding threads must be greater than 1.</source>
2515 <target>Los hilos de transcodificación deben ser mayores que 1.</target>
2516 <context-group name="null">
2517 <context context-type="linenumber">1</context>
2518 </context-group>
2519 </trans-unit>
2520 <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
2521 <source>Username is required.</source>
2522 <target>Se requiere un nombre de usuario.</target>
2523 <context-group name="null">
2524 <context context-type="linenumber">1</context>
2525 </context-group>
2526 </trans-unit>
2527 <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
2528 <source>Password is required.</source>
2529 <target>Se requiere una contraseña.</target>
2530 <context-group name="null">
2531 <context context-type="linenumber">1</context>
2532 </context-group>
2533 </trans-unit>
2534 <trans-unit id="c90872a06666a51c2957c4b29724e68df5c67154">
2535 <source>Confirmation of the password is required.</source>
2536 <target>Se requiere la confirmación de la contraseña.</target>
2537 <context-group name="null">
2538 <context context-type="linenumber">1</context>
2539 </context-group>
2540 </trans-unit>
2541 <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea">
2542 <source>Username must be at least 3 characters long.</source>
2543 <target>El nombre de usuario ha de ocupar más de 3 caracteres.</target>
2544 <context-group name="null">
2545 <context context-type="linenumber">1</context>
2546 </context-group>
2547 </trans-unit>
2548 <trans-unit id="d4b11fd0ddeea39b33f911d3aac1e82799cdaaef">
2549 <source>Username cannot be more than 20 characters long.</source>
2550 <target>El nombre de usuario no puede ocupar más de 20 caracteres.</target>
2551 <context-group name="null">
2552 <context context-type="linenumber">1</context>
2553 </context-group>
2554 </trans-unit>
2555 <trans-unit id="5acbe0aa7a7157b1f09057a98ba01ab578a303a9">
2556 <source>Username should be only lowercase alphanumeric characters.</source>
2557 <target>El nombre de usuario debe utilizar únicamente caracteres alfanuméricos en minúscula.</target>
2558 <context-group name="null">
2559 <context context-type="linenumber">1</context>
2560 </context-group>
2561 </trans-unit>
2562 <trans-unit id="b6f52e19f074f77866fa03fabe1ddd5cdae346f0">
2563 <source>Email is required.</source>
2564 <target>Se requiere un correo electrónico.</target>
2565 <context-group name="null">
2566 <context context-type="linenumber">1</context>
2567 </context-group>
2568 </trans-unit>
2569 <trans-unit id="bef8a36c3dffff15fb5faf3d20bdbbbc1af824c1">
2570 <source>Email must be valid.</source>
2571 <target>El correo electrónico ha de ser válido.</target>
2572 <context-group name="null">
2573 <context context-type="linenumber">1</context>
2574 </context-group>
2575 </trans-unit>
2576 <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0">
2577 <source>Password must be at least 6 characters long.</source>
2578 <target>La contraseña ha de ocupar al menos 6 caracteres.</target>
2579 <context-group name="null">
2580 <context context-type="linenumber">1</context>
2581 </context-group>
2582 </trans-unit>
2583 <trans-unit id="0a154031f3e66985af96d5f903441cf84f0dc75e">
2584 <source>Password cannot be more than 255 characters long.</source>
2585 <target>La contraseña no puede ocupar más de 255 caracteres.</target>
2586 <context-group name="null">
2587 <context context-type="linenumber">1</context>
2588 </context-group>
2589 </trans-unit>
2590 <trans-unit id="abede840116d58f04a55d99a6cbd68da8a3e1bbf">
2591 <source>Video quota is required.</source>
2592 <target>Se requiere una cuota de vídeo.</target>
2593 <context-group name="null">
2594 <context context-type="linenumber">1</context>
2595 </context-group>
2596 </trans-unit>
2597 <trans-unit id="93a6dc1d3aa0d3201c86ef1ec8adf5cf0ada3c80">
2598 <source>Quota must be greater than -1.</source>
2599 <target>La cuota debe ser mayor que -1.</target>
2600 <context-group name="null">
2601 <context context-type="linenumber">1</context>
2602 </context-group>
2603 </trans-unit>
2604 <trans-unit id="545e77fd5d9526228a2133109447c23225ed9c85">
2605 <source>User role is required.</source>
2606 <target>Se requiere un rol de usuario.</target>
2607 <context-group name="null">
2608 <context context-type="linenumber">1</context>
2609 </context-group>
2610 </trans-unit>
2611 <trans-unit id="1c417b7aef730d6ef5d62fa8a0a7e25e3a2393e4">
2612 <source>Display name is required.</source>
2613 <target>Se requiere un nombre para mostrar.</target>
2614 <context-group name="null">
2615 <context context-type="linenumber">1</context>
2616 </context-group>
2617 </trans-unit>
2618 <trans-unit id="bdeb1a8e69e137572df795d64120ea85069b7674">
2619 <source>Display name must be at least 3 characters long.</source>
2620 <target>El nombre para mostrar debe ocupar como mínimo 3 caracteres.</target>
2621 <context-group name="null">
2622 <context context-type="linenumber">1</context>
2623 </context-group>
2624 </trans-unit>
2625 <trans-unit id="e81bda510399d52f26a44a15c3dbf4d6205d90a9">
2626 <source>Display name cannot be more than 120 characters long.</source>
2627 <target>El nombre a mostrar no puede ocupar más de 120 caracteres.</target>
2628 <context-group name="null">
2629 <context context-type="linenumber">1</context>
2630 </context-group>
2631 </trans-unit>
2632 <trans-unit id="d531c2261dc0c2739bd7cbb2bb175946b7eeb3ae">
2633 <source>Description must be at least 3 characters long.</source>
2634 <target>La descripción debe ocupar como mínimo 3 caracteres.</target>
2635 <context-group name="null">
2636 <context context-type="linenumber">1</context>
2637 </context-group>
2638 </trans-unit>
2639 <trans-unit id="916a6e4fd83ece1dc54c6135eb3b8cd064b4bac3">
2640 <source>Description cannot be more than 250 characters long.</source>
2641 <target>La descripción no puede ocupar más de 250 caracteres.</target>
2642 <context-group name="null">
2643 <context context-type="linenumber">1</context>
2644 </context-group>
2645 </trans-unit>
2646 <trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6">
2647 <source>Report reason is required.</source>
2648 <target>Se requiere un motivo para reportar.</target>
2649 <context-group name="null">
2650 <context context-type="linenumber">1</context>
2651 </context-group>
2652 </trans-unit>
2653 <trans-unit id="993f9f5703d449a1d467243db75253d288a2947e">
2654 <source>Report reason must be at least 2 characters long.</source>
2655 <target>El motivo del reporte ha de ocupar como mínimo 2 caracteres.</target>
2656 <context-group name="null">
2657 <context context-type="linenumber">1</context>
2658 </context-group>
2659 </trans-unit>
2660 <trans-unit id="7de2178ed1036844fb1c3ad8b7899a039fcdcdb9">
2661 <source>Report reason cannot be more than 300 characters long.</source>
2662 <target>El motivo del reporte no puede ocupar más de 300 caracteres.</target>
2663 <context-group name="null">
2664 <context context-type="linenumber">1</context>
2665 </context-group>
2666 </trans-unit>
2667 <trans-unit id="fac936be125163a8494f3d7e7f21d65c7e4f1ff6">
2668 <source>Description cannot be more than 500 characters long.</source>
2669 <target>La descripción no puede ocupar más de 500 caracteres.</target>
2670 <context-group name="null">
2671 <context context-type="linenumber">1</context>
2672 </context-group>
2673 </trans-unit>
2674 <trans-unit id="e7182e21e9566cc81c83f92727461322f71fd69b">
2675 <source>Support text must be at least 3 characters long.</source>
2676 <target>El texto para el apoyo ha de ocupar como mínimo 3 caracteres.</target>
2677 <context-group name="null">
2678 <context context-type="linenumber">1</context>
2679 </context-group>
2680 </trans-unit>
2681 <trans-unit id="3fe80c71378e127dda2dda9dbcd66b059d362813">
2682 <source>Support text cannot be more than 500 characters long.</source>
2683 <target>El texto para el apoyo no puede ocupar más de 500 caracteres.</target>
2684 <context-group name="null">
2685 <context context-type="linenumber">1</context>
2686 </context-group>
2687 </trans-unit>
2688 <trans-unit id="6ca60e0f6dfbc0073b0514bce7d273150b0b9e79">
2689 <source>Comment is required.</source>
2690 <target>Se requiere comentario.</target>
2691 <context-group name="null">
2692 <context context-type="linenumber">1</context>
2693 </context-group>
2694 </trans-unit>
2695 <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6">
2696 <source>Comment must be at least 2 characters long.</source>
2697 <target>El comentario ha de ocupar como mínimo 2 caracteres.</target>
2698 <context-group name="null">
2699 <context context-type="linenumber">1</context>
2700 </context-group>
2701 </trans-unit>
2702 <trans-unit id="7c194080446ee6901fd17a8b8648534ffe98b123">
2703 <source>Comment cannot be more than 3000 characters long.</source>
2704 <target>El comentario no puede ocupar más de 3000 caracteres.</target>
2705 <context-group name="null">
2706 <context context-type="linenumber">1</context>
2707 </context-group>
2708 </trans-unit>
2709 <trans-unit id="cdc51eaeab88683610a28af8645cf91d136b39e1">
2710 <source>Video name is required.</source>
2711 <target>Se requiere un nombre de vídeo.</target>
2712 <context-group name="null">
2713 <context context-type="linenumber">1</context>
2714 </context-group>
2715 </trans-unit>
2716 <trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c">
2717 <source>Video name must be at least 3 characters long.</source>
2718 <target>El nombre del vídeo debe ocupar más de 3 caracteres.</target>
2719 <context-group name="null">
2720 <context context-type="linenumber">1</context>
2721 </context-group>
2722 </trans-unit>
2723 <trans-unit id="0320d0f7f8eec2341e27ca53d7875217a3d99695">
2724 <source>Video name cannot be more than 120 characters long.</source>
2725 <target>El nombre del vídeo no puede ocupar más de 120 caracteres.</target>
2726 <context-group name="null">
2727 <context context-type="linenumber">1</context>
2728 </context-group>
2729 </trans-unit>
2730 <trans-unit id="a627c58cf1849d7d838696e7f36c1bae1a8b31a4">
2731 <source>Video privacy is required.</source>
2732 <target>Se requiere la privacidad del vídeo.</target>
2733 <context-group name="null">
2734 <context context-type="linenumber">1</context>
2735 </context-group>
2736 </trans-unit>
2737 <trans-unit id="97afb789c1ab09074495d49aaadb92a1c3e71a16">
2738 <source>Video channel is required.</source>
2739 <target>Se requiere el canal de vídeo.</target>
2740 <context-group name="null">
2741 <context context-type="linenumber">1</context>
2742 </context-group>
2743 </trans-unit>
2744 <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef">
2745 <source>Video description must be at least 3 characters long.</source>
2746 <target>La descripción del vídeo ha de ocupar como mínimo 3 caracteres.</target>
2747 <context-group name="null">
2748 <context context-type="linenumber">1</context>
2749 </context-group>
2750 </trans-unit>
2751 <trans-unit id="ce28a9403c2d7e5da2e59af27118f8b6d109e906">
2752 <source>Video description cannot be more than 10000 characters long.</source>
2753 <target>La descripción del vídeo no puede ocupar más de 10000 caracteres.</target>
2754 <context-group name="null">
2755 <context context-type="linenumber">1</context>
2756 </context-group>
2757 </trans-unit>
2758 <trans-unit id="f1cffdc2e156716cd9880201d65ba457d11464f8">
2759 <source>A tag should be more than 2 characters long.</source>
2760 <target>Una etiqueta ha de tener más de 2 caracteres.</target>
2761 <context-group name="null">
2762 <context context-type="linenumber">1</context>
2763 </context-group>
2764 </trans-unit>
2765 <trans-unit id="34a0811f9a2a7366cc9efcdad52ea59b105326ea">
2766 <source>A tag should be less than 30 characters long.</source>
2767 <target>Una etiqueta ha de ocupar menos de 30 caracteres. </target>
2768 <context-group name="null">
2769 <context context-type="linenumber">1</context>
2770 </context-group>
2771 </trans-unit>
2772 <trans-unit id="665092574f9af9fec262f8349b67b14192391ae6">
2773 <source>Video support must be at least 3 characters long.</source>
2774 <target>El apoyo para el vídeo ha de ocupar como mínimo 3 caracteres.</target>
2775 <context-group name="null">
2776 <context context-type="linenumber">1</context>
2777 </context-group>
2778 </trans-unit>
2779 <trans-unit id="e61f1c05121fa5effa6ccddf5be6dcf1c822ff4b">
2780 <source>Video support cannot be more than 500 characters long.</source>
2781 <target>El apoyo para el vídeo no puede ocupar más de 500 caracteres.</target>
2782 <context-group name="null">
2783 <context context-type="linenumber">1</context>
2784 </context-group>
2785 </trans-unit>
2786 <trans-unit id="453413bf387dea681958871319bab489dd5e6ec0">
2787 <source>A date is required to schedule video update.</source>
2788 <target>Se requiere una fecha para actualizar la programación del vídeo.</target>
2789 <context-group name="null">
2790 <context context-type="linenumber">1</context>
2791 </context-group>
2792 </trans-unit>
2793 <trans-unit id="0bf41abaa85526711f7952b4600e4044bc7f04a4">
2794 <source>All unsaved data will be lost, are you sure you want to leave this page?</source>
2795 <target>Todos los datos sin guardar se perderán, ¿seguro que quieres abandonar esta página?</target>
2796 <context-group name="null">
2797 <context context-type="linenumber">1</context>
2798 </context-group>
2799 </trans-unit>
2800 <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01">
2801 <source>Warning</source>
2802 <target>Aviso</target>
2803 <context-group name="null">
2804 <context context-type="linenumber">1</context>
2805 </context-group>
2806 </trans-unit>
2807 <trans-unit id="8339364b054610983b7f2334bb807fff7613bddf">
2808 <source>Sunday</source>
2809 <target>Domingo</target>
2810 <context-group name="null">
2811 <context context-type="linenumber">1</context>
2812 </context-group>
2813 </trans-unit>
2814 <trans-unit id="a43c57a7cbebf57eb33a2eae5e994c91d9887596">
2815 <source>Monday</source>
2816 <target>Lunes</target>
2817 <context-group name="null">
2818 <context context-type="linenumber">1</context>
2819 </context-group>
2820 </trans-unit>
2821 <trans-unit id="48a2a35957ce394eb2c59ae35c99642360af70ee">
2822 <source>Tuesday</source>
2823 <target>Martes</target>
2824 <context-group name="null">
2825 <context context-type="linenumber">1</context>
2826 </context-group>
2827 </trans-unit>
2828 <trans-unit id="b0af441f9ba8b82952b9ec10fb8c62e8fec67df9">
2829 <source>Wednesday</source>
2830 <target>Miércoles</target>
2831 <context-group name="null">
2832 <context context-type="linenumber">1</context>
2833 </context-group>
2834 </trans-unit>
2835 <trans-unit id="55c583b99c809818ec27df065ccf05357a6ac10b">
2836 <source>Thursday</source>
2837 <target>Jueves</target>
2838 <context-group name="null">
2839 <context context-type="linenumber">1</context>
2840 </context-group>
2841 </trans-unit>
2842 <trans-unit id="e91b54925dc5f490753f60f53ef6f8b4609e6215">
2843 <source>Friday</source>
2844 <target>Viernes</target>
2845 <context-group name="null">
2846 <context context-type="linenumber">1</context>
2847 </context-group>
2848 </trans-unit>
2849 <trans-unit id="c0d2dd391a3eca8e841a5d0e035cd268280eb68e">
2850 <source>Saturday</source>
2851 <target>Sábado</target>
2852 <context-group name="null">
2853 <context context-type="linenumber">1</context>
2854 </context-group>
2855 </trans-unit>
2856 <trans-unit id="6549890cd0d6b59fb0e1aa383b00483a68a55eef">
2857 <source>Sun</source>
2858 <target>Dom</target>
2859 <context-group name="null">
2860 <context context-type="linenumber">1</context>
2861 </context-group>
2862 </trans-unit>
2863 <trans-unit id="3382aa5d7f520e197fb59a4995fe1beffca2d0ff">
2864 <source>Mon</source>
2865 <target>Lun</target>
2866 <context-group name="null">
2867 <context context-type="linenumber">1</context>
2868 </context-group>
2869 </trans-unit>
2870 <trans-unit id="f883ec926274974df0fc46c037cbffd6a863ebc9">
2871 <source>Tue</source>
2872 <target>Mar</target>
2873 <context-group name="null">
2874 <context context-type="linenumber">1</context>
2875 </context-group>
2876 </trans-unit>
2877 <trans-unit id="242b4f4b5651e24f9a9007ef153a57981e4b989d">
2878 <source>Wed</source>
2879 <target>Mié</target>
2880 <context-group name="null">
2881 <context context-type="linenumber">1</context>
2882 </context-group>
2883 </trans-unit>
2884 <trans-unit id="5a2c39d56b8f00a6a4670a63b53caacbda953be6">
2885 <source>Thu</source>
2886 <target>Jue</target>
2887 <context-group name="null">
2888 <context context-type="linenumber">1</context>
2889 </context-group>
2890 </trans-unit>
2891 <trans-unit id="4cdf23d523a0e52e0dec9cd650ffd9bd6952792c">
2892 <source>Fri</source>
2893 <target>Vie</target>
2894 <context-group name="null">
2895 <context context-type="linenumber">1</context>
2896 </context-group>
2897 </trans-unit>
2898 <trans-unit id="1283d165a942d7f4c469ba34f99dbb9e927d0261">
2899 <source>Sat</source>
2900 <target>Sáb</target>
2901 <context-group name="null">
2902 <context context-type="linenumber">1</context>
2903 </context-group>
2904 </trans-unit>
2905 <trans-unit id="2fba8448ff13105c57665a9a6ffcfe9615d855dd">
2906 <source>Su</source>
2907 <target>Do</target>
2908 <context-group name="null">
2909 <context context-type="linenumber">1</context>
2910 </context-group>
2911 </trans-unit>
2912 <trans-unit id="388144af7ac7651d2615b9be0e84f43ae71d9fb3">
2913 <source>Mo</source>
2914 <target>Lu</target>
2915 <context-group name="null">
2916 <context context-type="linenumber">1</context>
2917 </context-group>
2918 </trans-unit>
2919 <trans-unit id="d96313e42b5f0751ce2676a31d309b4d322ab462">
2920 <source>Tu</source>
2921 <target>Ma</target>
2922 <context-group name="null">
2923 <context context-type="linenumber">1</context>
2924 </context-group>
2925 </trans-unit>
2926 <trans-unit id="06cc3d39f78c0615b707cef39cd4875599611fef">
2927 <source>We</source>
2928 <target>Mi</target>
2929 <context-group name="null">
2930 <context context-type="linenumber">1</context>
2931 </context-group>
2932 </trans-unit>
2933 <trans-unit id="790894436cca9d675d59be9a8aafd58acccde2cd">
2934 <source>Th</source>
2935 <target>Ju</target>
2936 <context-group name="null">
2937 <context context-type="linenumber">1</context>
2938 </context-group>
2939 </trans-unit>
2940 <trans-unit id="42dfe37169f8471367c31489155229bbe1747ea5">
2941 <source>Fr</source>
2942 <target>Vi</target>
2943 <context-group name="null">
2944 <context context-type="linenumber">1</context>
2945 </context-group>
2946 </trans-unit>
2947 <trans-unit id="1b64ea3e04ceeb512e8974eb0019dee4f211c7a0">
2948 <source>Sa</source>
2949 <target>Sa</target>
2950 <context-group name="null">
2951 <context context-type="linenumber">1</context>
2952 </context-group>
2953 </trans-unit>
2954 <trans-unit id="e7815f1c4a6d3cc157a16407a48865023cc35ec0">
2955 <source>January</source>
2956 <target>Enero</target>
2957 <context-group name="null">
2958 <context context-type="linenumber">1</context>
2959 </context-group>
2960 </trans-unit>
2961 <trans-unit id="0393a96b58df82af39a2ec83deec624749e42036">
2962 <source>February</source>
2963 <target>Febrero</target>
2964 <context-group name="null">
2965 <context context-type="linenumber">1</context>
2966 </context-group>
2967 </trans-unit>
2968 <trans-unit id="ea41ee3743ec5bdbbf863ab793bbdd6e6d9af96e">
2969 <source>March</source>
2970 <target>Marzo</target>
2971 <context-group name="null">
2972 <context context-type="linenumber">1</context>
2973 </context-group>
2974 </trans-unit>
2975 <trans-unit id="b87ee784d9e93b5557aca9bdc9464dbd4328920a">
2976 <source>April</source>
2977 <target>Abril</target>
2978 <context-group name="null">
2979 <context context-type="linenumber">1</context>
2980 </context-group>
2981 </trans-unit>
2982 <trans-unit id="862da1034ac2707cc44123ed963b2f42109b6b3e">
2983 <source>May</source>
2984 <target>Mayo</target>
2985 <context-group name="null">
2986 <context context-type="linenumber">1</context>
2987 </context-group>
2988 </trans-unit>
2989 <trans-unit id="2f234249d4c3c39e27c0f05d4a6b73a7959caeb2">
2990 <source>June</source>
2991 <target>Junio</target>
2992 <context-group name="null">
2993 <context context-type="linenumber">1</context>
2994 </context-group>
2995 </trans-unit>
2996 <trans-unit id="11447f95e83c8de675ab6c492150f88e4d9bd15e">
2997 <source>July</source>
2998 <target>Julio</target>
2999 <context-group name="null">
3000 <context context-type="linenumber">1</context>
3001 </context-group>
3002 </trans-unit>
3003 <trans-unit id="ddd9a3d59a8db4e822e54e9473c05b571aca9829">
3004 <source>August</source>
3005 <target>Agosto</target>
3006 <context-group name="null">
3007 <context context-type="linenumber">1</context>
3008 </context-group>
3009 </trans-unit>
3010 <trans-unit id="e21dc41f9b3fdaf35ab6b2d9e2e5e8a926fb1938">
3011 <source>September</source>
3012 <target>Septiembre</target>
3013 <context-group name="null">
3014 <context context-type="linenumber">1</context>
3015 </context-group>
3016 </trans-unit>
3017 <trans-unit id="71f49c502d13e22079a958a5532afa28dbe98b3b">
3018 <source>October</source>
3019 <target>Octubre</target>
3020 <context-group name="null">
3021 <context context-type="linenumber">1</context>
3022 </context-group>
3023 </trans-unit>
3024 <trans-unit id="64b5ce921faa5e3d277d6d528ddcfc8c2bfe9f52">
3025 <source>November</source>
3026 <target>Noviembre</target>
3027 <context-group name="null">
3028 <context context-type="linenumber">1</context>
3029 </context-group>
3030 </trans-unit>
3031 <trans-unit id="2006e2aabb31714ebc684dc382539649f690ed5c">
3032 <source>December</source>
3033 <target>Diciembre</target>
3034 <context-group name="null">
3035 <context context-type="linenumber">1</context>
3036 </context-group>
3037 </trans-unit>
3038 <trans-unit id="8270e687cfb5624b3f6fbb7991a2e916c96464b7">
3039 <source>Jan</source>
3040 <target>Ene</target>
3041 <context-group name="null">
3042 <context context-type="linenumber">1</context>
3043 </context-group>
3044 </trans-unit>
3045 <trans-unit id="23544170afbb981dd52750b641576841cf5dcf60">
3046 <source>Feb</source>
3047 <target>Feb</target>
3048 <context-group name="null">
3049 <context context-type="linenumber">1</context>
3050 </context-group>
3051 </trans-unit>
3052 <trans-unit id="1f14355742459b7d6a0126a1564e1c18f39f86e7">
3053 <source>Mar</source>
3054 <target>Mar</target>
3055 <context-group name="null">
3056 <context context-type="linenumber">1</context>
3057 </context-group>
3058 </trans-unit>
3059 <trans-unit id="964a5f032bc846d32806a4838580a4f81cf14463">
3060 <source>Apr</source>
3061 <target>Abr</target>
3062 <context-group name="null">
3063 <context context-type="linenumber">1</context>
3064 </context-group>
3065 </trans-unit>
3066 <trans-unit id="8f7274f606f71d9290ed01c5683092d701632d7f">
3067 <source>Jun</source>
3068 <target>Jun</target>
3069 <context-group name="null">
3070 <context context-type="linenumber">1</context>
3071 </context-group>
3072 </trans-unit>
3073 <trans-unit id="7c3d8318d6d8d9920ae0a80350616732c33a3211">
3074 <source>Jul</source>
3075 <target>Jul</target>
3076 <context-group name="null">
3077 <context context-type="linenumber">1</context>
3078 </context-group>
3079 </trans-unit>
3080 <trans-unit id="be1335ffd1c606321e2c020b638dd3c84b434212">
3081 <source>Aug</source>
3082 <target>Ago</target>
3083 <context-group name="null">
3084 <context context-type="linenumber">1</context>
3085 </context-group>
3086 </trans-unit>
3087 <trans-unit id="4f739d03be1c936c58978739c317d91566348204">
3088 <source>Sep</source>
3089 <target>Sep</target>
3090 <context-group name="null">
3091 <context context-type="linenumber">1</context>
3092 </context-group>
3093 </trans-unit>
3094 <trans-unit id="6607cacb987a588530a13de7018d959240d19153">
3095 <source>Oct</source>
3096 <target>Oct</target>
3097 <context-group name="null">
3098 <context context-type="linenumber">1</context>
3099 </context-group>
3100 </trans-unit>
3101 <trans-unit id="e597400ded12a366855615e18fcc8f9ac05b72e0">
3102 <source>Nov</source>
3103 <target>Nov</target>
3104 <context-group name="null">
3105 <context context-type="linenumber">1</context>
3106 </context-group>
3107 </trans-unit>
3108 <trans-unit id="adf2dfa2a9cb490d6a4a74510b7b0846b62d429e">
3109 <source>Dec</source>
3110 <target>Dec</target>
3111 <context-group name="null">
3112 <context context-type="linenumber">1</context>
3113 </context-group>
3114 </trans-unit>
3115 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3116 <source>Clear</source>
3117 <target>Borrar</target>
3118 <context-group name="null">
3119 <context context-type="linenumber">1</context>
3120 </context-group>
3121 </trans-unit>
3122 <trans-unit id="8fb519ba47ea7806beeacdcd44829d85a2aa0cc5">
3123 <source>yy-mm-dd </source>
3124 <target>yy-mm-dd </target>
3125 <context-group name="null">
3126 <context context-type="linenumber">1</context>
3127 </context-group>
3128 </trans-unit>
3129 <trans-unit id="0b2054a863319d2cf59867addd125b6717cae41d">
3130 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago</source>
3131 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> años</target>
3132 <context-group name="null">
3133 <context context-type="linenumber">1</context>
3134 </context-group>
3135 </trans-unit>
3136 <trans-unit id="e622d3813449fe36371ea258281059306819199d">
3137 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago</source>
3138 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> meses</target>
3139 <context-group name="null">
3140 <context context-type="linenumber">1</context>
3141 </context-group>
3142 </trans-unit>
3143 <trans-unit id="2f8a5a5f7efb521d7d89dc659ff65dd13cb7b17b">
3144 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago</source>
3145 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> mes</target>
3146 <context-group name="null">
3147 <context context-type="linenumber">1</context>
3148 </context-group>
3149 </trans-unit>
3150 <trans-unit id="1d1a46543a29096d3c6676be2d561380a0bc94e1">
3151 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago</source>
3152 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> semanas</target>
3153 <context-group name="null">
3154 <context context-type="linenumber">1</context>
3155 </context-group>
3156 </trans-unit>
3157 <trans-unit id="e1db0b98b6cdf817508195f3649c48475c32ae7e">
3158 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago</source>
3159 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> semana</target>
3160 <context-group name="null">
3161 <context context-type="linenumber">1</context>
3162 </context-group>
3163 </trans-unit>
3164 <trans-unit id="a7654c3ece96e777527606f1c2870d6ee0b180f7">
3165 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago</source>
3166 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> días</target>
3167 <context-group name="null">
3168 <context context-type="linenumber">1</context>
3169 </context-group>
3170 </trans-unit>
3171 <trans-unit id="5b465235ae55091d32535e23dd180c407f1352d1">
3172 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago</source>
3173 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> día</target>
3174 <context-group name="null">
3175 <context context-type="linenumber">1</context>
3176 </context-group>
3177 </trans-unit>
3178 <trans-unit id="dc7addf53bd6405a9c746db6dfca665c33679a84">
3179 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago</source>
3180 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> horas</target>
3181 <context-group name="null">
3182 <context context-type="linenumber">1</context>
3183 </context-group>
3184 </trans-unit>
3185 <trans-unit id="d54a610250ed38efccf0e3afdd0004f6ad83ea8d">
3186 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago</source>
3187 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> hora</target>
3188 <context-group name="null">
3189 <context context-type="linenumber">1</context>
3190 </context-group>
3191 </trans-unit>
3192 <trans-unit id="9704e5e3adce178c127ead05f7057d3fb827308a">
3193 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago</source>
3194 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> min</target>
3195 <context-group name="null">
3196 <context context-type="linenumber">1</context>
3197 </context-group>
3198 </trans-unit>
3199 <trans-unit id="7a158a7555a44ea7eff9fa4988df9aa24d262ceb">
3200 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago</source>
3201 <target>hace <x id="INTERPOLATION" equiv-text="{{interval}}"/> seg</target>
3202 <context-group name="null">
3203 <context context-type="linenumber">1</context>
3204 </context-group>
3205 </trans-unit>
3206 <trans-unit id="457f161d3ca706b8de263b0cd58e493d54e7d4c5">
3207 <source><x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> compatible that supports:</source>
3208 <target><x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> compatible que soporta:</target>
3209 <context-group name="null">
3210 <context context-type="linenumber">1</context>
3211 </context-group>
3212 </trans-unit>
3213 <trans-unit id="ab4426b60f13c00b61d6b714d390dc629f314980">
3214 <source>Emphasis</source>
3215 <target>Énfasis</target>
3216 <context-group name="null">
3217 <context context-type="linenumber">1</context>
3218 </context-group>
3219 </trans-unit>
3220 <trans-unit id="dc60677d5a906e69f38a5cf9da7f2eb03931bea0">
3221 <source>Links</source>
3222 <target>Enlaces</target>
3223 <context-group name="null">
3224 <context context-type="linenumber">1</context>
3225 </context-group>
3226 </trans-unit>
3227 <trans-unit id="80220239e07f36ea8d5f10118dc52ce4b13bc15a">
3228 <source>New lines</source>
3229 <target>Nuevas líneas</target>
3230 <context-group name="null">
3231 <context context-type="linenumber">1</context>
3232 </context-group>
3233 </trans-unit>
3234 <trans-unit id="b15e7bec5c7833d2d9634946ccbed68967b1bee1">
3235 <source>Lists</source>
3236 <target>Listas</target>
3237 <context-group name="null">
3238 <context context-type="linenumber">1</context>
3239 </context-group>
3240 </trans-unit>
3241 <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866">
3242 <source>Images</source>
3243 <target>Imágenes</target>
3244 <context-group name="null">
3245 <context context-type="linenumber">1</context>
3246 </context-group>
3247 </trans-unit>
3248 <trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
3249 <source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
3250 <target>La petición es demasiado grande para el servidor. Por favor contacta con tu administrador si quieres aumentar el límite de tamaño.</target>
3251 <context-group name="null">
3252 <context context-type="linenumber">1</context>
3253 </context-group>
3254 </trans-unit>
3255 <trans-unit id="58546fd4d14b2d9635ce3d28c216ac68587bb25b">
3256 <source>Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes.</source>
3257 <target>Demasiados intentos, por favor inténtalo de nuevo pasados <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutos.</target>
3258 <context-group name="null">
3259 <context context-type="linenumber">1</context>
3260 </context-group>
3261 </trans-unit>
3262 <trans-unit id="ab783a52f2df9ff7a20139cab0da6d0764f3cc5d">
3263 <source>Too many attempts, please try again later.</source>
3264 <target>Demasiados intentos, por favor inténtelo más tarde.</target>
3265 <context-group name="null">
3266 <context context-type="linenumber">1</context>
3267 </context-group>
3268 </trans-unit>
3269 <trans-unit id="0f286a597f0053c3578a52e044769c204ee516fc">
3270 <source>Server error. Please retry later.</source>
3271 <target>Error del servidor. Por favor, inténtalo más tarde.</target>
3272 <context-group name="null">
3273 <context context-type="linenumber">1</context>
3274 </context-group>
3275 </trans-unit>
3276 <trans-unit id="20deec13d8d4ff199aa04318818ca44dab0585be">
3277 <source>Registration for <x id="INTERPOLATION" equiv-text="{{username}}"/> complete.</source>
3278 <target>Registro de <x id="INTERPOLATION" equiv-text="{{username}}"/> completo.</target>
3279 <context-group name="null">
3280 <context context-type="linenumber">1</context>
3281 </context-group>
3282 </trans-unit>
3283 <trans-unit id="7296e9f7cc4956b6d57c541728b0826e76d108ba">
3284 <source>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></source>
3285 <target>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></target>
3286 <context-group name="null">
3287 <context context-type="linenumber">1</context>
3288 </context-group>
3289 </trans-unit>
3290 <trans-unit id="cf9ddbb55b25178660e09346209aedc10108aa24">
3291 <source>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</source>
3292 <target>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</target>
3293 <context-group name="null">
3294 <context context-type="linenumber">1</context>
3295 </context-group>
3296 </trans-unit>
3297 <trans-unit id="10ffa5c3dbcee491d66f80d8d4dce3e119a6ec86">
3298 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos</source>
3299 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vídeos full HD</target>
3300 <context-group name="null">
3301 <context context-type="linenumber">1</context>
3302 </context-group>
3303 </trans-unit>
3304 <trans-unit id="344ddae9f45b344e98e7b28cd5e33243982700f8">
3305 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos</source>
3306 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vídeos HD</target>
3307 <context-group name="null">
3308 <context context-type="linenumber">1</context>
3309 </context-group>
3310 </trans-unit>
3311 <trans-unit id="435c012df6dd990a1ccb7ee73dd79c488bde28b5">
3312 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos</source>
3313 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> de vídeos de calidad media</target>
3314 <context-group name="null">
3315 <context context-type="linenumber">1</context>
3316 </context-group>
3317 </trans-unit>
3318 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3319 <source>Your video was uploaded in your account and is private.</source>
3320 <target>Tú vídeo ha sido subido a tu cuenta como privado.</target>
3321 <context-group name="null">
3322 <context context-type="linenumber">1</context>
3323 </context-group>
3324 </trans-unit>
3325 <trans-unit id="24840228f2826b66252cfcaab9820b1c7e0da264">
3326 <source>But associated data (tags, description...) will be lost, are you sure you want to leave this page?</source>
3327 <target>Pero los datos asociados (etiquetas, descripción...) se perderán, ¿seguro que quieres abandonar esta página?</target>
3328 <context-group name="null">
3329 <context context-type="linenumber">1</context>
3330 </context-group>
3331 </trans-unit>
3332 <trans-unit id="5af84926d631326e548573ebf0f6dff07845aeb4">
3333 <source>Your video is not uploaded yet, are you sure you want to leave this page?</source>
3334 <target>Tu vídeo aún no se ha subido, ¿seguro que quieres abandonar esta página?</target>
3335 <context-group name="null">
3336 <context context-type="linenumber">1</context>
3337 </context-group>
3338 </trans-unit>
3339 <trans-unit id="321e4419a943044e674beb55b8039f42a9761ca5">
3340 <source>Info</source>
3341 <target>Info</target>
3342 <context-group name="null">
3343 <context context-type="linenumber">1</context>
3344 </context-group>
3345 </trans-unit>
3346 <trans-unit id="c5cb19aeb6447deda40cc1227ceca1359ab955e9">
3347 <source>Upload cancelled</source>
3348 <target>Subida cancelada</target>
3349 <context-group name="null">
3350 <context context-type="linenumber">1</context>
3351 </context-group>
3352 </trans-unit>
3353 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3354 <source>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 }}"/>)</source>
3355 <target>Tu cuota de vídeo se supera con este vídeo (video size: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, cuota: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
3356 <context-group name="null">
3357 <context context-type="linenumber">1</context>
3358 </context-group>
3359 </trans-unit>
3360 <trans-unit id="972fc644f847cf84e4732ec012915c4cdaf865ce">
3361 <source>Video published.</source>
3362 <target>Vídeo publicado.</target>
3363 <context-group name="null">
3364 <context context-type="linenumber">1</context>
3365 </context-group>
3366 </trans-unit>
3367 <trans-unit id="757e9c083c8f3d578bd74f055cc337c72417e187">
3368 <source>Video updated.</source>
3369 <target>Vídeo actualizado.</target>
3370 <context-group name="null">
3371 <context context-type="linenumber">1</context>
3372 </context-group>
3373 </trans-unit>
3374 <trans-unit id="aeb61b334cac080733c3e03766165a346bbf42fd">
3375 <source> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too.</source>
3376 <target> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> respuestas serán eliminadas también.</target>
3377 <context-group name="null">
3378 <context context-type="linenumber">1</context>
3379 </context-group>
3380 </trans-unit>
3381 <trans-unit id="fa2601e52cbf5725a13d33fe14458823b882ea50">
3382 <source>Video reported.</source>
3383 <target>Vídeo reportado.</target>
3384 <context-group name="null">
3385 <context context-type="linenumber">1</context>
3386 </context-group>
3387 </trans-unit>
3388 <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5">
3389 <source>Copied</source>
3390 <target>Copiado</target>
3391 <context-group name="null">
3392 <context context-type="linenumber">1</context>
3393 </context-group>
3394 </trans-unit>
3395 <trans-unit id="23b2c2f4dd69e29c3bff00469e259dcb01de5633">
3396 <source>Do you really want to blacklist this video?</source>
3397 <target>¿De verdad quieres meter este vídeo en la lista negra?</target>
3398 <context-group name="null">
3399 <context context-type="linenumber">1</context>
3400 </context-group>
3401 </trans-unit>
3402 <trans-unit id="cafd8ec6020e69f241a107b1cb7081bd9e773d4e">
3403 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> had been blacklisted.</source>
3404 <target>El vídeo <x id="INTERPOLATION" equiv-text="{{videoName}}"/> estaba en la lista negra.</target>
3405 <context-group name="null">
3406 <context context-type="linenumber">1</context>
3407 </context-group>
3408 </trans-unit>
3409 <trans-unit id="f1abd89c9280323209e939fa9c30f6e5cda20c95">
3410 <source>Do you really want to delete this video?</source>
3411 <target>¿De verdad quieres eliminar este vídeo?</target>
3412 <context-group name="null">
3413 <context context-type="linenumber">1</context>
3414 </context-group>
3415 </trans-unit>
3416 <trans-unit id="d5a4811e15319ad9354e1b62e9ca0131192b489e">
3417 <source><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes</source>
3418 <target><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> me gusta / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> no me gusta</target>
3419 <context-group name="null">
3420 <context context-type="linenumber">1</context>
3421 </context-group>
3422 </trans-unit>
3423 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3424 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3425 <target>Este vídeo contiene material para adultos o explícito. ¿Seguro que lo quieres ver?</target>
3426 <context-group name="null">
3427 <context context-type="linenumber">1</context>
3428 </context-group>
3429 </trans-unit>
3430 <trans-unit id="5ba3d522e4146eefcbd5c222247c1e2423d27cd8">
3431 <source>Mature or explicit content</source>
3432 <target>Contenido para adultos o explícito</target>
3433 <context-group name="null">
3434 <context context-type="linenumber">1</context>
131 </context-group> 3435 </context-group>
132 </trans-unit> 3436 </trans-unit>
133 </body> 3437 </body>
diff --git a/client/src/locale/target/angular_eu_ES.xml b/client/src/locale/target/angular_eu_ES.xml
index 679fee49b..0140aadf1 100644
--- a/client/src/locale/target/angular_eu_ES.xml
+++ b/client/src/locale/target/angular_eu_ES.xml
@@ -11,14 +11,14 @@
11 Utzi 11 Utzi
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Jaso laguntza</target> 47 <target>Jaso laguntza</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Pasahitza</target> 108 <target>Pasahitza</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -330,6 +330,27 @@
330 <context context-type="linenumber">9</context> 330 <context context-type="linenumber">9</context>
331 </context-group> 331 </context-group>
332 </trans-unit> 332 </trans-unit>
333 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
334 <source>Category</source>
335 <target>Kategoria</target>
336 <context-group name="null">
337 <context context-type="linenumber">144</context>
338 </context-group>
339 </trans-unit>
340 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
341 <source>Licence</source>
342 <target>Lizentzia</target>
343 <context-group name="null">
344 <context context-type="linenumber">153</context>
345 </context-group>
346 </trans-unit>
347 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
348 <source>Language</source>
349 <target>Hizkuntza</target>
350 <context-group name="null">
351 <context context-type="linenumber">162</context>
352 </context-group>
353 </trans-unit>
333 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 354 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
334 <source>No results.</source> 355 <source>No results.</source>
335 <target>Emaitzarik ez.</target> 356 <target>Emaitzarik ez.</target>
@@ -551,21 +572,6 @@ Erabiltzaile berriek izena ematea ez da onartzen orain.</target>
551 <context context-type="linenumber">51</context> 572 <context context-type="linenumber">51</context>
552 </context-group> 573 </context-group>
553 </trans-unit> 574 </trans-unit>
554 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
555 <source>
556 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
557 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.
558 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
559 </source>
560 <target>
561 Web bitarteko berdinak ez ditu tracker-ak bidaltzen zuzenean, web nabigatzailean WebRTC erabiltzen dugulako, protokoloa BitTorrent klasikotik apur bat aldentzen da.
562 Web nabigatzaile batean zaudenean, zure IP helbidea barne hartzen duen seinale bidaltzen diozu tracker-ari eta ausaz aukeratuko ditu beste berin batzuk IP helbidea hara bidaltzeko.
563 Irakurri <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>dokumentu hau<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> informazio gehiagorako
564 </target>
565 <context-group name="null">
566 <context context-type="linenumber">55</context>
567 </context-group>
568 </trans-unit>
569 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 575 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
570 <source> 576 <source>
571 The worst-case scenario of an average person spying on their friends is quite unlikely. 577 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -579,13 +585,6 @@ Erabiltzaile berriek izena ematea ez da onartzen orain.</target>
579 <context context-type="linenumber">62</context> 585 <context context-type="linenumber">62</context>
580 </context-group> 586 </context-group>
581 </trans-unit> 587 </trans-unit>
582 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
583 <source>How does PeerTube compares to YouTube?</source>
584 <target>Zein da PeerTube eta YouTube-ren arteko aldea?</target>
585 <context-group name="null">
586 <context context-type="linenumber">67</context>
587 </context-group>
588 </trans-unit>
589 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 588 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
590 <source> 589 <source>
591 The threats to privacy in YouTube are different from PeerTube's. 590 The threats to privacy in YouTube are different from PeerTube's.
@@ -801,42 +800,42 @@ Erabiltzaile berriek izena ematea ez da onartzen orain.</target>
801 <source>Signup enabled</source> 800 <source>Signup enabled</source>
802 <target>Izena ematea gaituta</target> 801 <target>Izena ematea gaituta</target>
803 <context-group name="null"> 802 <context-group name="null">
804 <context context-type="linenumber">92</context> 803 <context context-type="linenumber">90</context>
805 </context-group> 804 </context-group>
806 </trans-unit> 805 </trans-unit>
807 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 806 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
808 <source>Signup limit</source> 807 <source>Signup limit</source>
809 <target>Izena emateko muga</target> 808 <target>Izena emateko muga</target>
810 <context-group name="null"> 809 <context-group name="null">
811 <context context-type="linenumber">96</context> 810 <context context-type="linenumber">94</context>
812 </context-group> 811 </context-group>
813 </trans-unit> 812 </trans-unit>
814 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 813 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
815 <source>Administrator</source> 814 <source>Administrator</source>
816 <target>Administratzailea</target> 815 <target>Administratzailea</target>
817 <context-group name="null"> 816 <context-group name="null">
818 <context context-type="linenumber">106</context> 817 <context context-type="linenumber">104</context>
819 </context-group> 818 </context-group>
820 </trans-unit> 819 </trans-unit>
821 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 820 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
822 <source>Admin email</source> 821 <source>Admin email</source>
823 <target>Administratzailearen e-maila</target> 822 <target>Administratzailearen e-maila</target>
824 <context-group name="null"> 823 <context-group name="null">
825 <context context-type="linenumber">109</context> 824 <context context-type="linenumber">107</context>
826 </context-group> 825 </context-group>
827 </trans-unit> 826 </trans-unit>
828 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 827 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
829 <source>Users</source> 828 <source>Users</source>
830 <target>Erabiltzaileak</target> 829 <target>Erabiltzaileak</target>
831 <context-group name="null"> 830 <context-group name="null">
832 <context context-type="linenumber">119</context> 831 <context context-type="linenumber">117</context>
833 </context-group> 832 </context-group>
834 </trans-unit> 833 </trans-unit>
835 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 834 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
836 <source>User default video quota</source> 835 <source>User default video quota</source>
837 <target>Erabiltzailearen lehenetsitako bideo-kuota</target> 836 <target>Erabiltzailearen lehenetsitako bideo-kuota</target>
838 <context-group name="null"> 837 <context-group name="null">
839 <context context-type="linenumber">122</context> 838 <context context-type="linenumber">120</context>
840 </context-group> 839 </context-group>
841 </trans-unit> 840 </trans-unit>
842 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 841 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -850,28 +849,28 @@ Erabiltzaile berriek izena ematea ez da onartzen orain.</target>
850 <source>Twitter</source> 849 <source>Twitter</source>
851 <target>Twitter</target> 850 <target>Twitter</target>
852 <context-group name="null"> 851 <context-group name="null">
853 <context context-type="linenumber">138</context> 852 <context context-type="linenumber">136</context>
854 </context-group> 853 </context-group>
855 </trans-unit> 854 </trans-unit>
856 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 855 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
857 <source>Your Twitter username</source> 856 <source>Your Twitter username</source>
858 <target>Zure Twitter erabiltzaile-izena</target> 857 <target>Zure Twitter erabiltzaile-izena</target>
859 <context-group name="null"> 858 <context-group name="null">
860 <context context-type="linenumber">141</context> 859 <context context-type="linenumber">139</context>
861 </context-group> 860 </context-group>
862 </trans-unit> 861 </trans-unit>
863 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 862 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
864 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 863 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
865 <target>Edukia argitaratuko den webgune edo plataformarentzat Twitter kontua adierazten du.</target> 864 <target>Edukia argitaratuko den webgune edo plataformarentzat Twitter kontua adierazten du.</target>
866 <context-group name="null"> 865 <context-group name="null">
867 <context context-type="linenumber">144</context> 866 <context context-type="linenumber">142</context>
868 </context-group> 867 </context-group>
869 </trans-unit> 868 </trans-unit>
870 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 869 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
871 <source>Instance whitelisted by Twitter</source> 870 <source>Instance whitelisted by Twitter</source>
872 <target>Twitter-ek onartutako instantzia</target> 871 <target>Twitter-ek onartutako instantzia</target>
873 <context-group name="null"> 872 <context-group name="null">
874 <context context-type="linenumber">159</context> 873 <context context-type="linenumber">155</context>
875 </context-group> 874 </context-group>
876 </trans-unit> 875 </trans-unit>
877 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 876 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -882,91 +881,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
882Zure instantzia onartuta ez badago, zure PeerTube instantziara daraman irudi bat duen txartel bat estekatuko da.&lt;br/&gt;&lt;br/&gt; 881Zure instantzia onartuta ez badago, zure PeerTube instantziara daraman irudi bat duen txartel bat estekatuko da.&lt;br/&gt;&lt;br/&gt;
883Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL batekin (https://adibidea.eus/videos/watch/denadelakoa) &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; helbidean zure instantzia onartuta dagoen ikusteko.</target> 882Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL batekin (https://adibidea.eus/videos/watch/denadelakoa) &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; helbidean zure instantzia onartuta dagoen ikusteko.</target>
884 <context-group name="null"> 883 <context-group name="null">
885 <context context-type="linenumber">162</context> 884 <context context-type="linenumber">156</context>
886 </context-group> 885 </context-group>
887 </trans-unit> 886 </trans-unit>
888 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 887 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
889 <source>Services</source> 888 <source>Services</source>
890 <target>Zerbitzuak</target> 889 <target>Zerbitzuak</target>
891 <context-group name="null"> 890 <context-group name="null">
892 <context context-type="linenumber">136</context> 891 <context context-type="linenumber">134</context>
893 </context-group> 892 </context-group>
894 </trans-unit> 893 </trans-unit>
895 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 894 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
896 <source>Transcoding</source> 895 <source>Transcoding</source>
897 <target>Transkodeketa</target> 896 <target>Transkodeketa</target>
898 <context-group name="null"> 897 <context-group name="null">
899 <context context-type="linenumber">172</context> 898 <context context-type="linenumber">164</context>
900 </context-group> 899 </context-group>
901 </trans-unit> 900 </trans-unit>
902 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 901 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
903 <source>Transcoding enabled</source> 902 <source>Transcoding enabled</source>
904 <target>Transkodeketa gaituta</target> 903 <target>Transkodeketa gaituta</target>
905 <context-group name="null"> 904 <context-group name="null">
906 <context context-type="linenumber">178</context> 905 <context context-type="linenumber">168</context>
907 </context-group> 906 </context-group>
908 </trans-unit> 907 </trans-unit>
909 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 908 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
910 <source>If you disable transcoding, many videos from your users will not work!</source> 909 <source>If you disable transcoding, many videos from your users will not work!</source>
911 <target>Transkodeketa desgaitzen baduzu, erabiltzaileen bideo askok ez dute funtzionatuko!</target> 910 <target>Transkodeketa desgaitzen baduzu, erabiltzaileen bideo askok ez dute funtzionatuko!</target>
912 <context-group name="null"> 911 <context-group name="null">
913 <context context-type="linenumber">180</context> 912 <context context-type="linenumber">169</context>
914 </context-group> 913 </context-group>
915 </trans-unit> 914 </trans-unit>
916 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 915 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
917 <source>Transcoding threads</source> 916 <source>Transcoding threads</source>
918 <target>Transkodetze hariak</target> 917 <target>Transkodetze hariak</target>
919 <context-group name="null"> 918 <context-group name="null">
920 <context context-type="linenumber">186</context> 919 <context context-type="linenumber">175</context>
921 </context-group>
922 </trans-unit>
923 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
924 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
925 <target><x id="INTERPOLATION" equiv-text="{{ resolution }}"/> bereizmena gaituta</target>
926 <context-group name="null">
927 <context context-type="linenumber">205</context>
928 </context-group>
929 </trans-unit>
930 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
931 <source>Cache</source>
932 <target>Cachea</target>
933 <context-group name="null">
934 <context context-type="linenumber">209</context>
935 </context-group> 920 </context-group>
936 </trans-unit> 921 </trans-unit>
937 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 922 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
938 <source>Previews cache size</source> 923 <source>Previews cache size</source>
939 <target>Aurrebisten cachearen tamaina</target> 924 <target>Aurrebisten cachearen tamaina</target>
940 <context-group name="null"> 925 <context-group name="null">
941 <context context-type="linenumber">212</context> 926 <context context-type="linenumber">207</context>
942 </context-group>
943 </trans-unit>
944 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
945 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
946 <target>Aurrebistak ez daude federatuta. Zuzenean jatorrizko instantziatik jasotzen ditugu eta cachean gorde.</target>
947 <context-group name="null">
948 <context context-type="linenumber">215</context>
949 </context-group> 927 </context-group>
950 </trans-unit> 928 </trans-unit>
951 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 929 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
952 <source>Customizations</source> 930 <source>Customizations</source>
953 <target>Pertsonalizazioak</target> 931 <target>Pertsonalizazioak</target>
954 <context-group name="null"> 932 <context-group name="null">
955 <context context-type="linenumber">227</context> 933 <context context-type="linenumber">228</context>
956 </context-group> 934 </context-group>
957 </trans-unit> 935 </trans-unit>
958 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 936 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
959 <source>JavaScript</source> 937 <source>JavaScript</source>
960 <target>JavaScript</target> 938 <target>JavaScript</target>
961 <context-group name="null"> 939 <context-group name="null">
962 <context context-type="linenumber">230</context> 940 <context context-type="linenumber">231</context>
963 </context-group> 941 </context-group>
964 </trans-unit> 942 </trans-unit>
965 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 943 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
966 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 944 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
967 <target>IdatziJavaScript kodea zuzenean.&lt;br /&gt;Adibidez: &lt;pre&gt;console.log('nire instantzia zoragarria da');&lt;/pre&gt;</target> 945 <target>IdatziJavaScript kodea zuzenean.&lt;br /&gt;Adibidez: &lt;pre&gt;console.log('nire instantzia zoragarria da');&lt;/pre&gt;</target>
968 <context-group name="null"> 946 <context-group name="null">
969 <context context-type="linenumber">233</context> 947 <context context-type="linenumber">234</context>
970 </context-group> 948 </context-group>
971 </trans-unit> 949 </trans-unit>
972 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 950 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -1001,28 +979,28 @@ Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL b
1001 &lt;/pre&gt; 979 &lt;/pre&gt;
1002 </target> 980 </target>
1003 <context-group name="null"> 981 <context-group name="null">
1004 <context context-type="linenumber">249</context> 982 <context context-type="linenumber">250</context>
1005 </context-group> 983 </context-group>
1006 </trans-unit> 984 </trans-unit>
1007 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 985 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1008 <source>Advanced configuration</source> 986 <source>Advanced configuration</source>
1009 <target>Konfigurazio aurreratua</target> 987 <target>Konfigurazio aurreratua</target>
1010 <context-group name="null"> 988 <context-group name="null">
1011 <context context-type="linenumber">170</context> 989 <context context-type="linenumber">162</context>
1012 </context-group> 990 </context-group>
1013 </trans-unit> 991 </trans-unit>
1014 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 992 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1015 <source>Update configuration</source> 993 <source>Update configuration</source>
1016 <target>Eguneratu konfigurazioa</target> 994 <target>Eguneratu konfigurazioa</target>
1017 <context-group name="null"> 995 <context-group name="null">
1018 <context context-type="linenumber">276</context> 996 <context context-type="linenumber">277</context>
1019 </context-group> 997 </context-group>
1020 </trans-unit> 998 </trans-unit>
1021 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 999 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1022 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 1000 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1023 <target>Konfigurazioa baliogabea dela dirudi. Bilatu zer egon daitekeen gaizki fitxa desberdinetan begiratuz.</target> 1001 <target>Konfigurazioa baliogabea dela dirudi. Bilatu zer egon daitekeen gaizki fitxa desberdinetan begiratuz.</target>
1024 <context-group name="null"> 1002 <context-group name="null">
1025 <context context-type="linenumber">277</context> 1003 <context context-type="linenumber">278</context>
1026 </context-group> 1004 </context-group>
1027 </trans-unit> 1005 </trans-unit>
1028 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1006 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1172,13 +1150,6 @@ Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL b
1172 <context context-type="linenumber">19</context> 1150 <context context-type="linenumber">19</context>
1173 </context-group> 1151 </context-group>
1174 </trans-unit> 1152 </trans-unit>
1175 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1176 <source>Updated</source>
1177 <target>Eguneratuta</target>
1178 <context-group name="null">
1179 <context context-type="linenumber">22</context>
1180 </context-group>
1181 </trans-unit>
1182 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1153 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1183 <source>Create user</source> 1154 <source>Create user</source>
1184 <target>Sortu erabiltzailea</target> 1155 <target>Sortu erabiltzailea</target>
@@ -1353,53 +1324,32 @@ Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL b
1353 <context context-type="linenumber">7</context> 1324 <context context-type="linenumber">7</context>
1354 </context-group> 1325 </context-group>
1355 </trans-unit> 1326 </trans-unit>
1356 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1357 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1358 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> harpidedun</target>
1359 <context-group name="null">
1360 <context context-type="linenumber">9</context>
1361 </context-group>
1362 </trans-unit>
1363 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1364 <source>Change your avatar</source>
1365 <target>Aldatu zure abatarra</target>
1366 <context-group name="null">
1367 <context context-type="linenumber">14</context>
1368 </context-group>
1369 </trans-unit>
1370 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1371 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1372 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | byte }}"/>)</target>
1373 <context-group name="null">
1374 <context context-type="linenumber">17</context>
1375 </context-group>
1376 </trans-unit>
1377 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1327 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1378 <source>Video quota:</source> 1328 <source>Video quota:</source>
1379 <target>Bideo-kuota:</target> 1329 <target>Bideo-kuota:</target>
1380 <context-group name="null"> 1330 <context-group name="null">
1381 <context context-type="linenumber">20</context> 1331 <context context-type="linenumber">4</context>
1382 </context-group> 1332 </context-group>
1383 </trans-unit> 1333 </trans-unit>
1384 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1334 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1385 <source>Profile</source> 1335 <source>Profile</source>
1386 <target>Profila</target> 1336 <target>Profila</target>
1387 <context-group name="null"> 1337 <context-group name="null">
1388 <context context-type="linenumber">24</context> 1338 <context context-type="linenumber">8</context>
1389 </context-group> 1339 </context-group>
1390 </trans-unit> 1340 </trans-unit>
1391 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1341 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1392 <source>Video settings</source> 1342 <source>Video settings</source>
1393 <target>Bideo ezarpenak</target> 1343 <target>Bideo ezarpenak</target>
1394 <context-group name="null"> 1344 <context-group name="null">
1395 <context context-type="linenumber">31</context> 1345 <context context-type="linenumber">15</context>
1396 </context-group> 1346 </context-group>
1397 </trans-unit> 1347 </trans-unit>
1398 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1348 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1399 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1349 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1400 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi</target> 1350 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi</target>
1401 <context-group name="null"> 1351 <context-group name="null">
1402 <context context-type="linenumber">20</context> 1352 <context context-type="linenumber">19</context>
1403 </context-group> 1353 </context-group>
1404 </trans-unit> 1354 </trans-unit>
1405 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1355 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1427,14 +1377,7 @@ Markatu kutxa hau, gorde konfigurazioa eta probatu zure instantziako bideo URL b
1427 <source>Create a video channel</source> 1377 <source>Create a video channel</source>
1428 <target>Sortu bideo kanala</target> 1378 <target>Sortu bideo kanala</target>
1429 <context-group name="null"> 1379 <context-group name="null">
1430 <context context-type="linenumber">1</context> 1380 <context context-type="linenumber">6</context>
1431 </context-group>
1432 </trans-unit>
1433 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1434 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1435 <target>Eguneratu <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1436 <context-group name="null">
1437 <context context-type="linenumber">2</context>
1438 </context-group> 1381 </context-group>
1439 </trans-unit> 1382 </trans-unit>
1440 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1383 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1450,7 +1393,7 @@ When you will upload a video in this channel, the video support field will be au
1450 <target>Jendeari zure kanala babestu dezaketela azaltzeko testu labur bat (kidetza plataforma...). &lt;br /&gt;&lt;br /&gt; 1393 <target>Jendeari zure kanala babestu dezaketela azaltzeko testu labur bat (kidetza plataforma...). &lt;br /&gt;&lt;br /&gt;
1451Kanal honetara bideo bat igotzen duzunean, bideoa babesteko eremua testu honekin beteko da.</target> 1394Kanal honetara bideo bat igotzen duzunean, bideoa babesteko eremua testu honekin beteko da.</target>
1452 <context-group name="null"> 1395 <context-group name="null">
1453 <context context-type="linenumber">32</context> 1396 <context context-type="linenumber">36</context>
1454 </context-group> 1397 </context-group>
1455 </trans-unit> 1398 </trans-unit>
1456 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1399 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1485,14 +1428,14 @@ Kanal honetara bideo bat igotzen duzunean, bideoa babesteko eremua testu honekin
1485 <source>Automatically plays video</source> 1428 <source>Automatically plays video</source>
1486 <target>Automatikoki abiatzen du bideoa</target> 1429 <target>Automatikoki abiatzen du bideoa</target>
1487 <context-group name="null"> 1430 <context-group name="null">
1488 <context context-type="linenumber">24</context> 1431 <context context-type="linenumber">20</context>
1489 </context-group> 1432 </context-group>
1490 </trans-unit> 1433 </trans-unit>
1491 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1434 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1492 <source>Save</source> 1435 <source>Save</source>
1493 <target>Gorde</target> 1436 <target>Gorde</target>
1494 <context-group name="null"> 1437 <context-group name="null">
1495 <context context-type="linenumber">27</context> 1438 <context context-type="linenumber">23</context>
1496 </context-group> 1439 </context-group>
1497 </trans-unit> 1440 </trans-unit>
1498 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1441 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1502,6 +1445,13 @@ Kanal honetara bideo bat igotzen duzunean, bideoa babesteko eremua testu honekin
1502 <context context-type="linenumber">27</context> 1445 <context context-type="linenumber">27</context>
1503 </context-group> 1446 </context-group>
1504 </trans-unit> 1447 </trans-unit>
1448 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1449 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1450 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | byte }}"/>)</target>
1451 <context-group name="null">
1452 <context context-type="linenumber">18</context>
1453 </context-group>
1454 </trans-unit>
1505 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1455 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1506 <source> 1456 <source>
1507 Sorry, but we couldn't find the page you were looking for. 1457 Sorry, but we couldn't find the page you were looking for.
@@ -1573,21 +1523,21 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1573 <source>Privacy</source> 1523 <source>Privacy</source>
1574 <target>Pribatutasuna</target> 1524 <target>Pribatutasuna</target>
1575 <context-group name="null"> 1525 <context-group name="null">
1576 <context context-type="linenumber">86</context> 1526 <context context-type="linenumber">139</context>
1577 </context-group> 1527 </context-group>
1578 </trans-unit> 1528 </trans-unit>
1579 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1529 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1580 <source>Publish will be available when upload is finished</source> 1530 <source>Publish will be available when upload is finished</source>
1581 <target>Argitaratzea behin igoera bukatzean egongo da erabilgarri</target> 1531 <target>Argitaratzea behin igoera bukatzean egongo da erabilgarri</target>
1582 <context-group name="null"> 1532 <context-group name="null">
1583 <context context-type="linenumber">53</context> 1533 <context context-type="linenumber">54</context>
1584 </context-group> 1534 </context-group>
1585 </trans-unit> 1535 </trans-unit>
1586 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1536 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1587 <source>Publish</source> 1537 <source>Publish</source>
1588 <target>Argitaratu</target> 1538 <target>Argitaratu</target>
1589 <context-group name="null"> 1539 <context-group name="null">
1590 <context context-type="linenumber">60</context> 1540 <context context-type="linenumber">61</context>
1591 </context-group> 1541 </context-group>
1592 </trans-unit> 1542 </trans-unit>
1593 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1543 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1601,7 +1551,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1601 <source>Tags</source> 1551 <source>Tags</source>
1602 <target>Etiketak</target> 1552 <target>Etiketak</target>
1603 <context-group name="null"> 1553 <context-group name="null">
1604 <context context-type="linenumber">15</context> 1554 <context context-type="linenumber">171</context>
1605 </context-group> 1555 </context-group>
1606 </trans-unit> 1556 </trans-unit>
1607 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1557 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1618,27 +1568,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1618 <context context-type="linenumber">24</context> 1568 <context context-type="linenumber">24</context>
1619 </context-group> 1569 </context-group>
1620 </trans-unit> 1570 </trans-unit>
1621 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1622 <source>Category</source>
1623 <target>Kategoria</target>
1624 <context-group name="null">
1625 <context context-type="linenumber">44</context>
1626 </context-group>
1627 </trans-unit>
1628 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1629 <source>Licence</source>
1630 <target>Lizentzia</target>
1631 <context-group name="null">
1632 <context context-type="linenumber">58</context>
1633 </context-group>
1634 </trans-unit>
1635 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1636 <source>Language</source>
1637 <target>Hizkuntza</target>
1638 <context-group name="null">
1639 <context context-type="linenumber">72</context>
1640 </context-group>
1641 </trans-unit>
1642 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1571 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1643 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1572 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1644 <target>Programatutako argitaratzea (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1573 <target>Programatutako argitaratzea (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1650,35 +1579,28 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1650 <source>This video contains mature or explicit content</source> 1579 <source>This video contains mature or explicit content</source>
1651 <target>Bideo honek helduentzako edo hunkigarria den edukia du</target> 1580 <target>Bideo honek helduentzako edo hunkigarria den edukia du</target>
1652 <context-group name="null"> 1581 <context-group name="null">
1653 <context context-type="linenumber">116</context> 1582 <context context-type="linenumber">115</context>
1654 </context-group> 1583 </context-group>
1655 </trans-unit> 1584 </trans-unit>
1656 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1585 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1657 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1586 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1658 <target>Instantzia batzuk ez dute lehenetsita helduentzako edo hunkigarria den edukia zerrendatzen.</target> 1587 <target>Instantzia batzuk ez dute lehenetsita helduentzako edo hunkigarria den edukia zerrendatzen.</target>
1659 <context-group name="null"> 1588 <context-group name="null">
1660 <context context-type="linenumber">119</context> 1589 <context context-type="linenumber">116</context>
1661 </context-group> 1590 </context-group>
1662 </trans-unit> 1591 </trans-unit>
1663 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1592 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1664 <source>Enable video comments</source> 1593 <source>Enable video comments</source>
1665 <target>Gaitu bideoaren iruzkinak</target> 1594 <target>Gaitu bideoaren iruzkinak</target>
1666 <context-group name="null"> 1595 <context-group name="null">
1667 <context context-type="linenumber">126</context> 1596 <context context-type="linenumber">121</context>
1668 </context-group> 1597 </context-group>
1669 </trans-unit> 1598 </trans-unit>
1670 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1599 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1671 <source>Wait transcoding before publishing the video</source> 1600 <source>Wait transcoding before publishing the video</source>
1672 <target>Itxaron transkodetzeari bideoa argitaratu aurretik</target> 1601 <target>Itxaron transkodetzeari bideoa argitaratu aurretik</target>
1673 <context-group name="null"> 1602 <context-group name="null">
1674 <context context-type="linenumber">132</context> 1603 <context context-type="linenumber">126</context>
1675 </context-group>
1676 </trans-unit>
1677 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1678 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1679 <target>Bideoa argitaratu aurretik ez baduzu transkodetzea bukatu arte itxaroten, bideoa transkodetzea bukatu arte ezin ikustea gerta daiteke.</target>
1680 <context-group name="null">
1681 <context context-type="linenumber">135</context>
1682 </context-group> 1604 </context-group>
1683 </trans-unit> 1605 </trans-unit>
1684 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1606 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1692,42 +1614,35 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1692 <source>Upload thumbnail</source> 1614 <source>Upload thumbnail</source>
1693 <target>Igo irudia</target> 1615 <target>Igo irudia</target>
1694 <context-group name="null"> 1616 <context-group name="null">
1695 <context context-type="linenumber">146</context> 1617 <context context-type="linenumber">186</context>
1696 </context-group> 1618 </context-group>
1697 </trans-unit> 1619 </trans-unit>
1698 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1620 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1699 <source>Upload preview</source> 1621 <source>Upload preview</source>
1700 <target>Igo aurrebista</target> 1622 <target>Igo aurrebista</target>
1701 <context-group name="null"> 1623 <context-group name="null">
1702 <context context-type="linenumber">153</context> 1624 <context context-type="linenumber">193</context>
1703 </context-group> 1625 </context-group>
1704 </trans-unit> 1626 </trans-unit>
1705 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1627 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1706 <source>Support</source> 1628 <source>Support</source>
1707 <target>Babestu</target> 1629 <target>Babestu</target>
1708 <context-group name="null"> 1630 <context-group name="null">
1709 <context context-type="linenumber">59</context> 1631 <context context-type="linenumber">67</context>
1710 </context-group> 1632 </context-group>
1711 </trans-unit> 1633 </trans-unit>
1712 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1634 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1713 <source>Short text to tell people how they can support you (membership platform...).</source> 1635 <source>Short text to tell people how they can support you (membership platform...).</source>
1714 <target>Jendeari zu nola babestu azaltzeko testu labur bat (kidetza plataforma...).</target> 1636 <target>Jendeari zu nola babestu azaltzeko testu labur bat (kidetza plataforma...).</target>
1715 <context-group name="null"> 1637 <context-group name="null">
1716 <context context-type="linenumber">160</context> 1638 <context context-type="linenumber">200</context>
1717 </context-group> 1639 </context-group>
1718 </trans-unit> 1640 </trans-unit>
1719 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1641 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1720 <source>Advanced settings</source> 1642 <source>Advanced settings</source>
1721 <target>Ezarpen aurreratuak</target> 1643 <target>Ezarpen aurreratuak</target>
1722 <context-group name="null"> 1644 <context-group name="null">
1723 <context context-type="linenumber">142</context> 1645 <context context-type="linenumber">182</context>
1724 </context-group>
1725 </trans-unit>
1726 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1727 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1728 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, gehieneko tamaina: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | byte }}"/>)</target>
1729 <context-group name="null">
1730 <context context-type="linenumber">11</context>
1731 </context-group> 1646 </context-group>
1732 </trans-unit> 1647 </trans-unit>
1733 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1648 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1745,7 +1660,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1745 <source>Update</source> 1660 <source>Update</source>
1746 <target>Eguneratu</target> 1661 <target>Eguneratu</target>
1747 <context-group name="null"> 1662 <context-group name="null">
1748 <context context-type="linenumber">93</context> 1663 <context context-type="linenumber">101</context>
1749 </context-group> 1664 </context-group>
1750 </trans-unit> 1665 </trans-unit>
1751 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1666 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1755,32 +1670,18 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1755 <context context-type="linenumber">7</context> 1670 <context context-type="linenumber">7</context>
1756 </context-group> 1671 </context-group>
1757 </trans-unit> 1672 </trans-unit>
1758 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1759 <source>Torrent</source>
1760 <target>Torrent</target>
1761 <context-group name="null">
1762 <context context-type="linenumber">20</context>
1763 </context-group>
1764 </trans-unit>
1765 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1673 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1766 <source>Direct download</source> 1674 <source>Direct download</source>
1767 <target>Deskarga zuzena</target> 1675 <target>Deskarga zuzena</target>
1768 <context-group name="null"> 1676 <context-group name="null">
1769 <context context-type="linenumber">25</context> 1677 <context context-type="linenumber">20</context>
1770 </context-group>
1771 </trans-unit>
1772 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1773 <source>Torrent (magnet)</source>
1774 <target>Torrent (magnet)</target>
1775 <context-group name="null">
1776 <context context-type="linenumber">30</context>
1777 </context-group> 1678 </context-group>
1778 </trans-unit> 1679 </trans-unit>
1779 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1680 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1780 <source>Download</source> 1681 <source>Download</source>
1781 <target>Deskargatu</target> 1682 <target>Deskargatu</target>
1782 <context-group name="null"> 1683 <context-group name="null">
1783 <context context-type="linenumber">75</context> 1684 <context context-type="linenumber">83</context>
1784 </context-group> 1685 </context-group>
1785 </trans-unit> 1686 </trans-unit>
1786 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1687 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1819,7 +1720,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1819 <source>Share</source> 1720 <source>Share</source>
1820 <target>Partekatu</target> 1721 <target>Partekatu</target>
1821 <context-group name="null"> 1722 <context-group name="null">
1822 <context context-type="linenumber">64</context> 1723 <context context-type="linenumber">72</context>
1823 </context-group> 1724 </context-group>
1824 </trans-unit> 1725 </trans-unit>
1825 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1726 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1855,7 +1756,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1855 Bideoa transkodetzen ari da, oraindik ez funtzionatzea izan daiteke. 1756 Bideoa transkodetzen ari da, oraindik ez funtzionatzea izan daiteke.
1856 </target> 1757 </target>
1857 <context-group name="null"> 1758 <context-group name="null">
1858 <context context-type="linenumber">6</context> 1759 <context context-type="linenumber">11</context>
1859 </context-group> 1760 </context-group>
1860 </trans-unit> 1761 </trans-unit>
1861 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1762 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1866,7 +1767,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1866 Bideoa data eta ordu honetan argitaratuko da: <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1767 Bideoa data eta ordu honetan argitaratuko da: <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1867 </target> 1768 </target>
1868 <context-group name="null"> 1769 <context-group name="null">
1869 <context context-type="linenumber">10</context> 1770 <context context-type="linenumber">15</context>
1870 </context-group> 1771 </context-group>
1871 </trans-unit> 1772 </trans-unit>
1872 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1773 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1877,167 +1778,112 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
1877 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi 1778 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> ikustaldi
1878 </target> 1779 </target>
1879 <context-group name="null"> 1780 <context-group name="null">
1880 <context context-type="linenumber">21</context> 1781 <context context-type="linenumber">26</context>
1881 </context-group> 1782 </context-group>
1882 </trans-unit> 1783 </trans-unit>
1883 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1784 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1884 <source>Go the channel page</source> 1785 <source>Go the channel page</source>
1885 <target>Joan kanalaren orrira</target> 1786 <target>Joan kanalaren orrira</target>
1886 <context-group name="null"> 1787 <context-group name="null">
1887 <context context-type="linenumber">26</context> 1788 <context context-type="linenumber">31</context>
1888 </context-group>
1889 </trans-unit>
1890 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1891 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1892 <target>Kontu honetara harpidetu zaitezke ActivityPub onartzen duen fedibertsoko Instantzia batetik, esaterako Mastodon edo Pleroma instantzietan, bilaketa kutxan &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; idatzi dezakezu eta handik harpidetu. PeerTube erabiltzaile gisa harpidetzeko aukera garapenean dago oraindik: &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1893 <context-group name="null">
1894 <context context-type="linenumber">30</context>
1895 </context-group> 1789 </context-group>
1896 </trans-unit> 1790 </trans-unit>
1897 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1791 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1898 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1792 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1899 <target>Egilea <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1793 <target>Egilea <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1900 <context-group name="null"> 1794 <context-group name="null">
1901 <context context-type="linenumber">35</context> 1795 <context context-type="linenumber">41</context>
1902 </context-group> 1796 </context-group>
1903 </trans-unit> 1797 </trans-unit>
1904 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1798 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1905 <source>Go to the account page</source> 1799 <source>Go to the account page</source>
1906 <target>Joan kontuaren orrira</target> 1800 <target>Joan kontuaren orrira</target>
1907 <context-group name="null"> 1801 <context-group name="null">
1908 <context context-type="linenumber">34</context> 1802 <context context-type="linenumber">40</context>
1803 </context-group>
1804 </trans-unit>
1805 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1806 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1807 <target>Kontu honetara harpidetu zaitezke ActivityPub onartzen duen fedibertsoko Instantzia batetik, esaterako Mastodon edo Pleroma instantzietan, bilaketa kutxan &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; idatzi dezakezu eta handik harpidetu. PeerTube erabiltzaile gisa harpidetzeko aukera garapenean dago oraindik: &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1808 <context-group name="null">
1809 <context context-type="linenumber">45</context>
1909 </context-group> 1810 </context-group>
1910 </trans-unit> 1811 </trans-unit>
1911 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1812 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1912 <source>Like this video</source> 1813 <source>Like this video</source>
1913 <target>Atsegin bideo hau</target> 1814 <target>Atsegin bideo hau</target>
1914 <context-group name="null"> 1815 <context-group name="null">
1915 <context context-type="linenumber">47</context> 1816 <context context-type="linenumber">55</context>
1916 </context-group> 1817 </context-group>
1917 </trans-unit> 1818 </trans-unit>
1918 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1819 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1919 <source>Dislike this video</source> 1820 <source>Dislike this video</source>
1920 <target>Utzi bideoa hau atsegiteari</target> 1821 <target>Utzi bideoa hau atsegiteari</target>
1921 <context-group name="null"> 1822 <context-group name="null">
1922 <context context-type="linenumber">54</context> 1823 <context context-type="linenumber">62</context>
1923 </context-group> 1824 </context-group>
1924 </trans-unit> 1825 </trans-unit>
1925 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1826 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1926 <source>Download the video</source> 1827 <source>Download the video</source>
1927 <target>Deskargatu bideoa</target> 1828 <target>Deskargatu bideoa</target>
1928 <context-group name="null"> 1829 <context-group name="null">
1929 <context context-type="linenumber">74</context> 1830 <context context-type="linenumber">82</context>
1930 </context-group> 1831 </context-group>
1931 </trans-unit> 1832 </trans-unit>
1932 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1833 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1933 <source>Report</source> 1834 <source>Report</source>
1934 <target>Salatu</target> 1835 <target>Salatu</target>
1935 <context-group name="null"> 1836 <context-group name="null">
1936 <context context-type="linenumber">81</context> 1837 <context context-type="linenumber">89</context>
1937 </context-group> 1838 </context-group>
1938 </trans-unit> 1839 </trans-unit>
1939 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1840 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1940 <source>Report this video</source> 1841 <source>Report this video</source>
1941 <target>Salatu bideo hau</target> 1842 <target>Salatu bideo hau</target>
1942 <context-group name="null"> 1843 <context-group name="null">
1943 <context context-type="linenumber">80</context> 1844 <context context-type="linenumber">88</context>
1944 </context-group> 1845 </context-group>
1945 </trans-unit> 1846 </trans-unit>
1946 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1847 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1947 <source>Blacklist</source> 1848 <source>Blacklist</source>
1948 <target>Zerrenda beltza</target> 1849 <target>Zerrenda beltza</target>
1949 <context-group name="null"> 1850 <context-group name="null">
1950 <context context-type="linenumber">87</context> 1851 <context context-type="linenumber">95</context>
1951 </context-group> 1852 </context-group>
1952 </trans-unit> 1853 </trans-unit>
1953 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1854 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1954 <source>Blacklist this video</source> 1855 <source>Blacklist this video</source>
1955 <target>Sartu zerrenda beltzean bideo hau</target> 1856 <target>Sartu zerrenda beltzean bideo hau</target>
1956 <context-group name="null"> 1857 <context-group name="null">
1957 <context context-type="linenumber">86</context> 1858 <context context-type="linenumber">94</context>
1958 </context-group> 1859 </context-group>
1959 </trans-unit> 1860 </trans-unit>
1960 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1861 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1961 <source>Update this video</source> 1862 <source>Update this video</source>
1962 <target>Eguneratu bideo hau</target> 1863 <target>Eguneratu bideo hau</target>
1963 <context-group name="null"> 1864 <context-group name="null">
1964 <context context-type="linenumber">92</context> 1865 <context context-type="linenumber">100</context>
1965 </context-group> 1866 </context-group>
1966 </trans-unit> 1867 </trans-unit>
1967 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1868 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1968 <source>Delete this video</source> 1869 <source>Delete this video</source>
1969 <target>Ezabatu bideo hau</target> 1870 <target>Ezabatu bideo hau</target>
1970 <context-group name="null"> 1871 <context-group name="null">
1971 <context context-type="linenumber">98</context> 1872 <context context-type="linenumber">106</context>
1972 </context-group> 1873 </context-group>
1973 </trans-unit> 1874 </trans-unit>
1974 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1875 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1975 <source>Show more</source> 1876 <source>Show more</source>
1976 <target>Erakutsi gehiago</target> 1877 <target>Erakutsi gehiago</target>
1977 <context-group name="null"> 1878 <context-group name="null">
1978 <context context-type="linenumber">118</context> 1879 <context context-type="linenumber">126</context>
1979 </context-group> 1880 </context-group>
1980 </trans-unit> 1881 </trans-unit>
1981 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1882 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1982 <source>Show less</source> 1883 <source>Show less</source>
1983 <target>Erakutsi gutxiago</target> 1884 <target>Erakutsi gutxiago</target>
1984 <context-group name="null"> 1885 <context-group name="null">
1985 <context context-type="linenumber">124</context> 1886 <context context-type="linenumber">132</context>
1986 </context-group>
1987 </trans-unit>
1988 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1989 <source>
1990 Privacy
1991 </source>
1992 <target>
1993 Pribatutasuna
1994 </target>
1995 <context-group name="null">
1996 <context context-type="linenumber">131</context>
1997 </context-group>
1998 </trans-unit>
1999 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
2000 <source>
2001 Category
2002 </source>
2003 <target>
2004 Kategoria
2005 </target>
2006 <context-group name="null">
2007 <context context-type="linenumber">140</context>
2008 </context-group>
2009 </trans-unit>
2010 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2011 <source>
2012 Licence
2013 </source>
2014 <target>
2015 Lizentzia
2016 </target>
2017 <context-group name="null">
2018 <context context-type="linenumber">149</context>
2019 </context-group>
2020 </trans-unit>
2021 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2022 <source>
2023 Language
2024 </source>
2025 <target>
2026 Hizkuntza
2027 </target>
2028 <context-group name="null">
2029 <context context-type="linenumber">158</context>
2030 </context-group>
2031 </trans-unit>
2032 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2033 <source>
2034 Tags
2035 </source>
2036 <target>
2037 Etiketak
2038 </target>
2039 <context-group name="null">
2040 <context context-type="linenumber">167</context>
2041 </context-group> 1887 </context-group>
2042 </trans-unit> 1888 </trans-unit>
2043 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1889 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2048,24 +1894,13 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
2048 Beste bideo batzuk 1894 Beste bideo batzuk
2049 </target> 1895 </target>
2050 <context-group name="null"> 1896 <context-group name="null">
2051 <context context-type="linenumber">181</context> 1897 <context context-type="linenumber">183</context>
2052 </context-group> 1898 </context-group>
2053 </trans-unit> 1899 </trans-unit>
2054 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1900 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2055 <source>Friendly Reminder:</source> 1901 <source>Friendly Reminder:</source>
2056 <target>Oroigarria:</target> 1902 <target>Oroigarria:</target>
2057 <context-group name="null"> 1903 <context-group name="null">
2058 <context context-type="linenumber">193</context>
2059 </context-group>
2060 </trans-unit>
2061 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2062 <source>
2063 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2064 </source>
2065 <target>
2066 Bideo honek darabilen partekatze sistema zure sistemako informazio teknikoa (IP helbide publikoa esaterako) edonork ikusi dezakeela esan nahi du.
2067 </target>
2068 <context-group name="null">
2069 <context context-type="linenumber">195</context> 1904 <context context-type="linenumber">195</context>
2070 </context-group> 1905 </context-group>
2071 </trans-unit> 1906 </trans-unit>
@@ -2073,14 +1908,14 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
2073 <source>More information</source> 1908 <source>More information</source>
2074 <target>Informazio gehiago</target> 1909 <target>Informazio gehiago</target>
2075 <context-group name="null"> 1910 <context-group name="null">
2076 <context context-type="linenumber">198</context> 1911 <context context-type="linenumber">200</context>
2077 </context-group> 1912 </context-group>
2078 </trans-unit> 1913 </trans-unit>
2079 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1914 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2080 <source>Get more information</source> 1915 <source>Get more information</source>
2081 <target>Lortu informazio gehiago</target> 1916 <target>Lortu informazio gehiago</target>
2082 <context-group name="null"> 1917 <context-group name="null">
2083 <context context-type="linenumber">198</context> 1918 <context context-type="linenumber">200</context>
2084 </context-group> 1919 </context-group>
2085 </trans-unit> 1920 </trans-unit>
2086 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1921 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2091,7 +1926,7 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
2091 Ados 1926 Ados
2092 </target> 1927 </target>
2093 <context-group name="null"> 1928 <context-group name="null">
2094 <context context-type="linenumber">201</context> 1929 <context context-type="linenumber">203</context>
2095 </context-group> 1930 </context-group>
2096 </trans-unit> 1931 </trans-unit>
2097 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1932 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2563,13 +2398,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
2563 <context context-type="linenumber">1</context> 2398 <context context-type="linenumber">1</context>
2564 </context-group> 2399 </context-group>
2565 </trans-unit> 2400 </trans-unit>
2566 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2567 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2568 <target>Pasahitza berrezartzeko argibideak dituen e-mail bidaliko da <x id="INTERPOLATION" equiv-text="{{ email }}"/> helbidera.</target>
2569 <context-group name="null">
2570 <context context-type="linenumber">1</context>
2571 </context-group>
2572 </trans-unit>
2573 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2401 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2574 <source>Unable to find user id or verification string.</source> 2402 <source>Unable to find user id or verification string.</source>
2575 <target>Ezin izan da erabiltzailearen id-a edo berreste katea aurkitu.</target> 2403 <target>Ezin izan da erabiltzailearen id-a edo berreste katea aurkitu.</target>
@@ -2584,6 +2412,20 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
2584 <context context-type="linenumber">1</context> 2412 <context context-type="linenumber">1</context>
2585 </context-group> 2413 </context-group>
2586 </trans-unit> 2414 </trans-unit>
2415 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2416 <source>Today</source>
2417 <target>Gaur</target>
2418 <context-group name="null">
2419 <context context-type="linenumber">1</context>
2420 </context-group>
2421 </trans-unit>
2422 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2423 <source>Search</source>
2424 <target>Bilatu</target>
2425 <context-group name="null">
2426 <context context-type="linenumber">1</context>
2427 </context-group>
2428 </trans-unit>
2587 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2429 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2588 <source>Instance name is required.</source> 2430 <source>Instance name is required.</source>
2589 <target>Instantziaren izena behar da.</target> 2431 <target>Instantziaren izena behar da.</target>
@@ -3270,13 +3112,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
3270 <context context-type="linenumber">1</context> 3112 <context context-type="linenumber">1</context>
3271 </context-group> 3113 </context-group>
3272 </trans-unit> 3114 </trans-unit>
3273 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3274 <source>Today</source>
3275 <target>Gaur</target>
3276 <context-group name="null">
3277 <context context-type="linenumber">1</context>
3278 </context-group>
3279 </trans-unit>
3280 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3115 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3281 <source>Clear</source> 3116 <source>Clear</source>
3282 <target>Garbitu</target> 3117 <target>Garbitu</target>
@@ -3480,13 +3315,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
3480 <context context-type="linenumber">1</context> 3315 <context context-type="linenumber">1</context>
3481 </context-group> 3316 </context-group>
3482 </trans-unit> 3317 </trans-unit>
3483 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3484 <source>This image is too large.</source>
3485 <target>Irudi hau handiegia da.</target>
3486 <context-group name="null">
3487 <context context-type="linenumber">1</context>
3488 </context-group>
3489 </trans-unit>
3490 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3318 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3491 <source>Your video was uploaded in your account and is private.</source> 3319 <source>Your video was uploaded in your account and is private.</source>
3492 <target>Zure bideoa zure kontura igo da eta pribatua da.</target> 3320 <target>Zure bideoa zure kontura igo da eta pribatua da.</target>
@@ -3522,13 +3350,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
3522 <context context-type="linenumber">1</context> 3350 <context context-type="linenumber">1</context>
3523 </context-group> 3351 </context-group>
3524 </trans-unit> 3352 </trans-unit>
3525 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3526 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3527 <target>PeerTube-k ezin ditu 4GB-tik gorako bideoak kudeatu</target>
3528 <context-group name="null">
3529 <context context-type="linenumber">1</context>
3530 </context-group>
3531 </trans-unit>
3532 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3353 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3533 <source>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 }}"/>)</source> 3354 <source>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 }}"/>)</source>
3534 <target>Zure bideo-kuota bideo honekin gainditzen da (bideoaren tamaina: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, erabilia: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, kuota: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3355 <target>Zure bideo-kuota bideo honekin gainditzen da (bideoaren tamaina: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, erabilia: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, kuota: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3599,13 +3420,6 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
3599 <context context-type="linenumber">1</context> 3420 <context context-type="linenumber">1</context>
3600 </context-group> 3421 </context-group>
3601 </trans-unit> 3422 </trans-unit>
3602 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3603 <source>Cannot fetch video from server, maybe down.</source>
3604 <target>Ezin da bideoa zerbitzaritik eskuratu, agian erorita dago.</target>
3605 <context-group name="null">
3606 <context context-type="linenumber">1</context>
3607 </context-group>
3608 </trans-unit>
3609 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3423 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3610 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3424 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3611 <target>Bideo honek helduentzako edo hunkigarria den edukia du. Ziur ikusi nahi duzula?</target> 3425 <target>Bideo honek helduentzako edo hunkigarria den edukia du. Ziur ikusi nahi duzula?</target>
@@ -3620,12 +3434,5 @@ Ezin izan dugu bilatzen duzun orria aurkitu.
3620 <context context-type="linenumber">1</context> 3434 <context context-type="linenumber">1</context>
3621 </context-group> 3435 </context-group>
3622 </trans-unit> 3436 </trans-unit>
3623 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3624 <source>Search</source>
3625 <target>Bilatu</target>
3626 <context-group name="null">
3627 <context context-type="linenumber">1</context>
3628 </context-group>
3629 </trans-unit>
3630 </body> 3437 </body>
3631 </file></xliff> \ No newline at end of file 3438 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_fr_FR.xml b/client/src/locale/target/angular_fr_FR.xml
index 681f65e7f..fffa43842 100644
--- a/client/src/locale/target/angular_fr_FR.xml
+++ b/client/src/locale/target/angular_fr_FR.xml
@@ -10,14 +10,14 @@
10 <target> 10 <target>
11 Annuler</target> 11 Annuler</target>
12 <context-group name="null"> 12 <context-group name="null">
13 <context context-type="linenumber">40</context> 13 <context context-type="linenumber">45</context>
14 </context-group> 14 </context-group>
15 </trans-unit> 15 </trans-unit>
16 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 16 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
17 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 17 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
18 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues</target> 18 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues</target>
19 <context-group name="null"> 19 <context-group name="null">
20 <context context-type="linenumber">12</context> 20 <context context-type="linenumber">34</context>
21 </context-group> 21 </context-group>
22 </trans-unit> 22 </trans-unit>
23 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 23 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -45,7 +45,7 @@
45 <source>Get help</source> 45 <source>Get help</source>
46 <target>Obtenir de l'aide</target> 46 <target>Obtenir de l'aide</target>
47 <context-group name="null"> 47 <context-group name="null">
48 <context context-type="linenumber">17</context> 48 <context context-type="linenumber">18</context>
49 </context-group> 49 </context-group>
50 </trans-unit> 50 </trans-unit>
51 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 51 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -105,7 +105,7 @@
105 <source>Password</source> 105 <source>Password</source>
106 <target>Mot de passe</target> 106 <target>Mot de passe</target>
107 <context-group name="null"> 107 <context-group name="null">
108 <context context-type="linenumber">28</context> 108 <context context-type="linenumber">12</context>
109 </context-group> 109 </context-group>
110 </trans-unit> 110 </trans-unit>
111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -327,6 +327,27 @@
327 <context context-type="linenumber">9</context> 327 <context context-type="linenumber">9</context>
328 </context-group> 328 </context-group>
329 </trans-unit> 329 </trans-unit>
330 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
331 <source>Category</source>
332 <target>Catégorie</target>
333 <context-group name="null">
334 <context context-type="linenumber">144</context>
335 </context-group>
336 </trans-unit>
337 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
338 <source>Licence</source>
339 <target>Licence</target>
340 <context-group name="null">
341 <context context-type="linenumber">153</context>
342 </context-group>
343 </trans-unit>
344 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
345 <source>Language</source>
346 <target>Langage</target>
347 <context-group name="null">
348 <context context-type="linenumber">162</context>
349 </context-group>
350 </trans-unit>
330 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 351 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
331 <source>No results.</source> 352 <source>No results.</source>
332 <target>Aucun résultat.</target> 353 <target>Aucun résultat.</target>
@@ -553,21 +574,6 @@
553 <context context-type="linenumber">51</context> 574 <context context-type="linenumber">51</context>
554 </context-group> 575 </context-group>
555 </trans-unit> 576 </trans-unit>
556 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
557 <source>
558 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
559 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.
560 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
561 </source>
562 <target>
563 Les pairs Web ne sont pas envoyés directement par le tracker : parce que nous utilisons WebRTC à l'intérieur du navigateur Web, le protocole est différent de BitTorrent classique.
564 Lorsque vous êtes dans un navigateur Web, vous envoyez un signal contenant votre adresse IP au traqueur qui choisira au hasard d'autres pairs pour transmettre l'information.
565 Voir <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>ce document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> pour plus d'information
566 </target>
567 <context-group name="null">
568 <context context-type="linenumber">55</context>
569 </context-group>
570 </trans-unit>
571 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 577 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
572 <source> 578 <source>
573 The worst-case scenario of an average person spying on their friends is quite unlikely. 579 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -580,13 +586,6 @@
580 <context context-type="linenumber">62</context> 586 <context context-type="linenumber">62</context>
581 </context-group> 587 </context-group>
582 </trans-unit> 588 </trans-unit>
583 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
584 <source>How does PeerTube compares to YouTube?</source>
585 <target>Quelles sont les différences entre PeerTube et YouTube ?</target>
586 <context-group name="null">
587 <context context-type="linenumber">67</context>
588 </context-group>
589 </trans-unit>
590 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 589 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
591 <source> 590 <source>
592 The threats to privacy in YouTube are different from PeerTube's. 591 The threats to privacy in YouTube are different from PeerTube's.
@@ -803,42 +802,42 @@
803 <source>Signup enabled</source> 802 <source>Signup enabled</source>
804 <target>Enregistrement activé</target> 803 <target>Enregistrement activé</target>
805 <context-group name="null"> 804 <context-group name="null">
806 <context context-type="linenumber">92</context> 805 <context context-type="linenumber">90</context>
807 </context-group> 806 </context-group>
808 </trans-unit> 807 </trans-unit>
809 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 808 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
810 <source>Signup limit</source> 809 <source>Signup limit</source>
811 <target>Limitation des enregistrements</target> 810 <target>Limitation des enregistrements</target>
812 <context-group name="null"> 811 <context-group name="null">
813 <context context-type="linenumber">96</context> 812 <context context-type="linenumber">94</context>
814 </context-group> 813 </context-group>
815 </trans-unit> 814 </trans-unit>
816 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 815 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
817 <source>Administrator</source> 816 <source>Administrator</source>
818 <target>Administrateur</target> 817 <target>Administrateur</target>
819 <context-group name="null"> 818 <context-group name="null">
820 <context context-type="linenumber">106</context> 819 <context context-type="linenumber">104</context>
821 </context-group> 820 </context-group>
822 </trans-unit> 821 </trans-unit>
823 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 822 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
824 <source>Admin email</source> 823 <source>Admin email</source>
825 <target>Email de l'administrateur</target> 824 <target>Email de l'administrateur</target>
826 <context-group name="null"> 825 <context-group name="null">
827 <context context-type="linenumber">109</context> 826 <context context-type="linenumber">107</context>
828 </context-group> 827 </context-group>
829 </trans-unit> 828 </trans-unit>
830 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 829 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
831 <source>Users</source> 830 <source>Users</source>
832 <target>Utilisateurs</target> 831 <target>Utilisateurs</target>
833 <context-group name="null"> 832 <context-group name="null">
834 <context context-type="linenumber">119</context> 833 <context context-type="linenumber">117</context>
835 </context-group> 834 </context-group>
836 </trans-unit> 835 </trans-unit>
837 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 836 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
838 <source>User default video quota</source> 837 <source>User default video quota</source>
839 <target>Quota de vidéos par défaut par utilisateur </target> 838 <target>Quota de vidéos par défaut par utilisateur </target>
840 <context-group name="null"> 839 <context-group name="null">
841 <context context-type="linenumber">122</context> 840 <context context-type="linenumber">120</context>
842 </context-group> 841 </context-group>
843 </trans-unit> 842 </trans-unit>
844 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 843 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -852,28 +851,28 @@
852 <source>Twitter</source> 851 <source>Twitter</source>
853 <target>Twitter</target> 852 <target>Twitter</target>
854 <context-group name="null"> 853 <context-group name="null">
855 <context context-type="linenumber">138</context> 854 <context context-type="linenumber">136</context>
856 </context-group> 855 </context-group>
857 </trans-unit> 856 </trans-unit>
858 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 857 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
859 <source>Your Twitter username</source> 858 <source>Your Twitter username</source>
860 <target>Votre identifiant Twitter</target> 859 <target>Votre identifiant Twitter</target>
861 <context-group name="null"> 860 <context-group name="null">
862 <context context-type="linenumber">141</context> 861 <context context-type="linenumber">139</context>
863 </context-group> 862 </context-group>
864 </trans-unit> 863 </trans-unit>
865 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 864 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
866 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 865 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
867 <target>Indique le compte Twitter pour le site ou la plateforme sur laquelle le contenu a été publié.</target> 866 <target>Indique le compte Twitter pour le site ou la plateforme sur laquelle le contenu a été publié.</target>
868 <context-group name="null"> 867 <context-group name="null">
869 <context context-type="linenumber">144</context> 868 <context context-type="linenumber">142</context>
870 </context-group> 869 </context-group>
871 </trans-unit> 870 </trans-unit>
872 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 871 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
873 <source>Instance whitelisted by Twitter</source> 872 <source>Instance whitelisted by Twitter</source>
874 <target>Instance sur la liste blanche de Twitter</target> 873 <target>Instance sur la liste blanche de Twitter</target>
875 <context-group name="null"> 874 <context-group name="null">
876 <context context-type="linenumber">159</context> 875 <context context-type="linenumber">155</context>
877 </context-group> 876 </context-group>
878 </trans-unit> 877 </trans-unit>
879 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 878 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -884,91 +883,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
884Si l'instance n'est pas sur liste blanche, nous utilisons une lien-image qui redirigera sur votre instance PeerTube.&lt;br /&gt;&lt;br /&gt; 883Si l'instance n'est pas sur liste blanche, nous utilisons une lien-image qui redirigera sur votre instance PeerTube.&lt;br /&gt;&lt;br /&gt;
885Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidéo de votre instance (https://example.com/videos/watch/blabla) sur &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; pour voir si votre instance est sur liste blanche.</target> 884Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidéo de votre instance (https://example.com/videos/watch/blabla) sur &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; pour voir si votre instance est sur liste blanche.</target>
886 <context-group name="null"> 885 <context-group name="null">
887 <context context-type="linenumber">162</context> 886 <context context-type="linenumber">156</context>
888 </context-group> 887 </context-group>
889 </trans-unit> 888 </trans-unit>
890 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 889 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
891 <source>Services</source> 890 <source>Services</source>
892 <target>Services</target> 891 <target>Services</target>
893 <context-group name="null"> 892 <context-group name="null">
894 <context context-type="linenumber">136</context> 893 <context context-type="linenumber">134</context>
895 </context-group> 894 </context-group>
896 </trans-unit> 895 </trans-unit>
897 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 896 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
898 <source>Transcoding</source> 897 <source>Transcoding</source>
899 <target>Encodage</target> 898 <target>Encodage</target>
900 <context-group name="null"> 899 <context-group name="null">
901 <context context-type="linenumber">172</context> 900 <context context-type="linenumber">164</context>
902 </context-group> 901 </context-group>
903 </trans-unit> 902 </trans-unit>
904 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 903 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
905 <source>Transcoding enabled</source> 904 <source>Transcoding enabled</source>
906 <target>Encodage activé</target> 905 <target>Encodage activé</target>
907 <context-group name="null"> 906 <context-group name="null">
908 <context context-type="linenumber">178</context> 907 <context context-type="linenumber">168</context>
909 </context-group> 908 </context-group>
910 </trans-unit> 909 </trans-unit>
911 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 910 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
912 <source>If you disable transcoding, many videos from your users will not work!</source> 911 <source>If you disable transcoding, many videos from your users will not work!</source>
913 <target>Si vous désactivez le transcodage, de nombreuses vidéos d'utilisateurs ne fonctionneront pas !</target> 912 <target>Si vous désactivez le transcodage, de nombreuses vidéos d'utilisateurs ne fonctionneront pas !</target>
914 <context-group name="null"> 913 <context-group name="null">
915 <context context-type="linenumber">180</context> 914 <context context-type="linenumber">169</context>
916 </context-group> 915 </context-group>
917 </trans-unit> 916 </trans-unit>
918 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 917 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
919 <source>Transcoding threads</source> 918 <source>Transcoding threads</source>
920 <target>Nombre de threads pour l'encodage</target> 919 <target>Nombre de threads pour l'encodage</target>
921 <context-group name="null"> 920 <context-group name="null">
922 <context context-type="linenumber">186</context> 921 <context context-type="linenumber">175</context>
923 </context-group>
924 </trans-unit>
925 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
926 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
927 <target>Définition <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> activée</target>
928 <context-group name="null">
929 <context context-type="linenumber">205</context>
930 </context-group>
931 </trans-unit>
932 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
933 <source>Cache</source>
934 <target>Cache</target>
935 <context-group name="null">
936 <context context-type="linenumber">209</context>
937 </context-group> 922 </context-group>
938 </trans-unit> 923 </trans-unit>
939 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 924 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
940 <source>Previews cache size</source> 925 <source>Previews cache size</source>
941 <target>Taille du cache des prévisualisations </target> 926 <target>Taille du cache des prévisualisations </target>
942 <context-group name="null"> 927 <context-group name="null">
943 <context context-type="linenumber">212</context> 928 <context context-type="linenumber">207</context>
944 </context-group>
945 </trans-unit>
946 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
947 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
948 <target>Les aperçus ne sont pas fédérés. Nous les récupérons directement de l'instance d'origine, et les mettons en cache.</target>
949 <context-group name="null">
950 <context context-type="linenumber">215</context>
951 </context-group> 929 </context-group>
952 </trans-unit> 930 </trans-unit>
953 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 931 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
954 <source>Customizations</source> 932 <source>Customizations</source>
955 <target>Personnalisations</target> 933 <target>Personnalisations</target>
956 <context-group name="null"> 934 <context-group name="null">
957 <context context-type="linenumber">227</context> 935 <context context-type="linenumber">228</context>
958 </context-group> 936 </context-group>
959 </trans-unit> 937 </trans-unit>
960 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 938 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
961 <source>JavaScript</source> 939 <source>JavaScript</source>
962 <target>JavaScript</target> 940 <target>JavaScript</target>
963 <context-group name="null"> 941 <context-group name="null">
964 <context context-type="linenumber">230</context> 942 <context context-type="linenumber">231</context>
965 </context-group> 943 </context-group>
966 </trans-unit> 944 </trans-unit>
967 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 945 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
968 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 946 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
969 <target>Écrivez directement du code JavaScript.&lt;br /&gt;Exemple : &lt;pre&gt;console.log('mon instance est super géniale');&lt;/pre&gt;</target> 947 <target>Écrivez directement du code JavaScript.&lt;br /&gt;Exemple : &lt;pre&gt;console.log('mon instance est super géniale');&lt;/pre&gt;</target>
970 <context-group name="null"> 948 <context-group name="null">
971 <context context-type="linenumber">233</context> 949 <context context-type="linenumber">234</context>
972 </context-group> 950 </context-group>
973 </trans-unit> 951 </trans-unit>
974 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 952 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -1003,28 +981,28 @@ Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidé
1003 &lt;/pre&gt; 981 &lt;/pre&gt;
1004 </target> 982 </target>
1005 <context-group name="null"> 983 <context-group name="null">
1006 <context context-type="linenumber">249</context> 984 <context context-type="linenumber">250</context>
1007 </context-group> 985 </context-group>
1008 </trans-unit> 986 </trans-unit>
1009 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 987 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1010 <source>Advanced configuration</source> 988 <source>Advanced configuration</source>
1011 <target>Configuration avancée</target> 989 <target>Configuration avancée</target>
1012 <context-group name="null"> 990 <context-group name="null">
1013 <context context-type="linenumber">170</context> 991 <context context-type="linenumber">162</context>
1014 </context-group> 992 </context-group>
1015 </trans-unit> 993 </trans-unit>
1016 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 994 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1017 <source>Update configuration</source> 995 <source>Update configuration</source>
1018 <target>Mettre à jour la configuration</target> 996 <target>Mettre à jour la configuration</target>
1019 <context-group name="null"> 997 <context-group name="null">
1020 <context context-type="linenumber">276</context> 998 <context context-type="linenumber">277</context>
1021 </context-group> 999 </context-group>
1022 </trans-unit> 1000 </trans-unit>
1023 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 1001 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1024 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 1002 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1025 <target>Il semblerait que la configuration soit invalide. Merci de chercher des erreurs potentielles dans les différents onglets.</target> 1003 <target>Il semblerait que la configuration soit invalide. Merci de chercher des erreurs potentielles dans les différents onglets.</target>
1026 <context-group name="null"> 1004 <context-group name="null">
1027 <context context-type="linenumber">277</context> 1005 <context context-type="linenumber">278</context>
1028 </context-group> 1006 </context-group>
1029 </trans-unit> 1007 </trans-unit>
1030 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1008 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1174,13 +1152,6 @@ Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidé
1174 <context context-type="linenumber">19</context> 1152 <context context-type="linenumber">19</context>
1175 </context-group> 1153 </context-group>
1176 </trans-unit> 1154 </trans-unit>
1177 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1178 <source>Updated</source>
1179 <target>Mis à jour</target>
1180 <context-group name="null">
1181 <context context-type="linenumber">22</context>
1182 </context-group>
1183 </trans-unit>
1184 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1155 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1185 <source>Create user</source> 1156 <source>Create user</source>
1186 <target>Créer un utilisateur</target> 1157 <target>Créer un utilisateur</target>
@@ -1355,53 +1326,32 @@ Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidé
1355 <context context-type="linenumber">7</context> 1326 <context context-type="linenumber">7</context>
1356 </context-group> 1327 </context-group>
1357 </trans-unit> 1328 </trans-unit>
1358 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1359 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1360 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> abonnés</target>
1361 <context-group name="null">
1362 <context context-type="linenumber">9</context>
1363 </context-group>
1364 </trans-unit>
1365 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1366 <source>Change your avatar</source>
1367 <target>Changer son avatar</target>
1368 <context-group name="null">
1369 <context context-type="linenumber">14</context>
1370 </context-group>
1371 </trans-unit>
1372 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1373 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1374 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1375 <context-group name="null">
1376 <context context-type="linenumber">17</context>
1377 </context-group>
1378 </trans-unit>
1379 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1329 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1380 <source>Video quota:</source> 1330 <source>Video quota:</source>
1381 <target>Quota de vidéos :</target> 1331 <target>Quota de vidéos :</target>
1382 <context-group name="null"> 1332 <context-group name="null">
1383 <context context-type="linenumber">20</context> 1333 <context context-type="linenumber">4</context>
1384 </context-group> 1334 </context-group>
1385 </trans-unit> 1335 </trans-unit>
1386 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1336 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1387 <source>Profile</source> 1337 <source>Profile</source>
1388 <target>Profil</target> 1338 <target>Profil</target>
1389 <context-group name="null"> 1339 <context-group name="null">
1390 <context context-type="linenumber">24</context> 1340 <context context-type="linenumber">8</context>
1391 </context-group> 1341 </context-group>
1392 </trans-unit> 1342 </trans-unit>
1393 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1343 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1394 <source>Video settings</source> 1344 <source>Video settings</source>
1395 <target>Paramètres de la vidéo</target> 1345 <target>Paramètres de la vidéo</target>
1396 <context-group name="null"> 1346 <context-group name="null">
1397 <context context-type="linenumber">31</context> 1347 <context context-type="linenumber">15</context>
1398 </context-group> 1348 </context-group>
1399 </trans-unit> 1349 </trans-unit>
1400 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1350 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1401 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1351 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1402 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues</target> 1352 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues</target>
1403 <context-group name="null"> 1353 <context-group name="null">
1404 <context context-type="linenumber">20</context> 1354 <context context-type="linenumber">19</context>
1405 </context-group> 1355 </context-group>
1406 </trans-unit> 1356 </trans-unit>
1407 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1357 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1429,14 +1379,7 @@ Cochez cette case, sauvegardez la configuration et testez avec l'URL d'une vidé
1429 <source>Create a video channel</source> 1379 <source>Create a video channel</source>
1430 <target>Créer une chaîne vidéo</target> 1380 <target>Créer une chaîne vidéo</target>
1431 <context-group name="null"> 1381 <context-group name="null">
1432 <context context-type="linenumber">1</context> 1382 <context context-type="linenumber">6</context>
1433 </context-group>
1434 </trans-unit>
1435 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1436 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1437 <target>Mettre à jour <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1438 <context-group name="null">
1439 <context context-type="linenumber">2</context>
1440 </context-group> 1383 </context-group>
1441 </trans-unit> 1384 </trans-unit>
1442 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1385 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1452,7 +1395,7 @@ When you will upload a video in this channel, the video support field will be au
1452 <target>Texte court pour décrire les moyens mis à disposition de ceux qui souhaiteraient vous soutenir (plateforme de financement participatif, etc.).&lt;br /&gt;&lt;br /&gt; 1395 <target>Texte court pour décrire les moyens mis à disposition de ceux qui souhaiteraient vous soutenir (plateforme de financement participatif, etc.).&lt;br /&gt;&lt;br /&gt;
1453Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera automatiquement un bouton pour afficher ce texte.</target> 1396Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera automatiquement un bouton pour afficher ce texte.</target>
1454 <context-group name="null"> 1397 <context-group name="null">
1455 <context context-type="linenumber">32</context> 1398 <context context-type="linenumber">36</context>
1456 </context-group> 1399 </context-group>
1457 </trans-unit> 1400 </trans-unit>
1458 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1401 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1487,14 +1430,14 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1487 <source>Automatically plays video</source> 1430 <source>Automatically plays video</source>
1488 <target>Lire automatiquement les vidéos</target> 1431 <target>Lire automatiquement les vidéos</target>
1489 <context-group name="null"> 1432 <context-group name="null">
1490 <context context-type="linenumber">24</context> 1433 <context context-type="linenumber">20</context>
1491 </context-group> 1434 </context-group>
1492 </trans-unit> 1435 </trans-unit>
1493 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1436 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1494 <source>Save</source> 1437 <source>Save</source>
1495 <target>Enregistrer</target> 1438 <target>Enregistrer</target>
1496 <context-group name="null"> 1439 <context-group name="null">
1497 <context context-type="linenumber">27</context> 1440 <context context-type="linenumber">23</context>
1498 </context-group> 1441 </context-group>
1499 </trans-unit> 1442 </trans-unit>
1500 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1443 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1504,6 +1447,13 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1504 <context context-type="linenumber">27</context> 1447 <context context-type="linenumber">27</context>
1505 </context-group> 1448 </context-group>
1506 </trans-unit> 1449 </trans-unit>
1450 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1451 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1452 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1453 <context-group name="null">
1454 <context context-type="linenumber">18</context>
1455 </context-group>
1456 </trans-unit>
1507 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1457 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1508 <source> 1458 <source>
1509 Sorry, but we couldn't find the page you were looking for. 1459 Sorry, but we couldn't find the page you were looking for.
@@ -1575,21 +1525,21 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1575 <source>Privacy</source> 1525 <source>Privacy</source>
1576 <target>Confidentialité</target> 1526 <target>Confidentialité</target>
1577 <context-group name="null"> 1527 <context-group name="null">
1578 <context context-type="linenumber">86</context> 1528 <context context-type="linenumber">139</context>
1579 </context-group> 1529 </context-group>
1580 </trans-unit> 1530 </trans-unit>
1581 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1531 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1582 <source>Publish will be available when upload is finished</source> 1532 <source>Publish will be available when upload is finished</source>
1583 <target>Vous pourrez publier cette vidéo lorsque l'envoi sera terminé</target> 1533 <target>Vous pourrez publier cette vidéo lorsque l'envoi sera terminé</target>
1584 <context-group name="null"> 1534 <context-group name="null">
1585 <context context-type="linenumber">53</context> 1535 <context context-type="linenumber">54</context>
1586 </context-group> 1536 </context-group>
1587 </trans-unit> 1537 </trans-unit>
1588 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1538 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1589 <source>Publish</source> 1539 <source>Publish</source>
1590 <target>Publier</target> 1540 <target>Publier</target>
1591 <context-group name="null"> 1541 <context-group name="null">
1592 <context context-type="linenumber">60</context> 1542 <context context-type="linenumber">61</context>
1593 </context-group> 1543 </context-group>
1594 </trans-unit> 1544 </trans-unit>
1595 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1545 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1603,7 +1553,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1603 <source>Tags</source> 1553 <source>Tags</source>
1604 <target>Étiquettes</target> 1554 <target>Étiquettes</target>
1605 <context-group name="null"> 1555 <context-group name="null">
1606 <context context-type="linenumber">15</context> 1556 <context context-type="linenumber">171</context>
1607 </context-group> 1557 </context-group>
1608 </trans-unit> 1558 </trans-unit>
1609 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1559 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1620,27 +1570,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1620 <context context-type="linenumber">24</context> 1570 <context context-type="linenumber">24</context>
1621 </context-group> 1571 </context-group>
1622 </trans-unit> 1572 </trans-unit>
1623 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1624 <source>Category</source>
1625 <target>Catégorie</target>
1626 <context-group name="null">
1627 <context context-type="linenumber">44</context>
1628 </context-group>
1629 </trans-unit>
1630 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1631 <source>Licence</source>
1632 <target>Licence</target>
1633 <context-group name="null">
1634 <context context-type="linenumber">58</context>
1635 </context-group>
1636 </trans-unit>
1637 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1638 <source>Language</source>
1639 <target>Langage</target>
1640 <context-group name="null">
1641 <context context-type="linenumber">72</context>
1642 </context-group>
1643 </trans-unit>
1644 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1573 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1645 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1574 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1646 <target>Programmation de la publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1575 <target>Programmation de la publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1652,35 +1581,28 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1652 <source>This video contains mature or explicit content</source> 1581 <source>This video contains mature or explicit content</source>
1653 <target>Cette vidéo contient du contenu sensible</target> 1582 <target>Cette vidéo contient du contenu sensible</target>
1654 <context-group name="null"> 1583 <context-group name="null">
1655 <context context-type="linenumber">116</context> 1584 <context context-type="linenumber">115</context>
1656 </context-group> 1585 </context-group>
1657 </trans-unit> 1586 </trans-unit>
1658 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1587 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1659 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1588 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1660 <target>Certaines instances ne listent pas, par défaut, des vidéos sensibles ou avec du contenu pour adultes.</target> 1589 <target>Certaines instances ne listent pas, par défaut, des vidéos sensibles ou avec du contenu pour adultes.</target>
1661 <context-group name="null"> 1590 <context-group name="null">
1662 <context context-type="linenumber">119</context> 1591 <context context-type="linenumber">116</context>
1663 </context-group> 1592 </context-group>
1664 </trans-unit> 1593 </trans-unit>
1665 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1594 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1666 <source>Enable video comments</source> 1595 <source>Enable video comments</source>
1667 <target>Activer les commentaires</target> 1596 <target>Activer les commentaires</target>
1668 <context-group name="null"> 1597 <context-group name="null">
1669 <context context-type="linenumber">126</context> 1598 <context context-type="linenumber">121</context>
1670 </context-group> 1599 </context-group>
1671 </trans-unit> 1600 </trans-unit>
1672 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1601 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1673 <source>Wait transcoding before publishing the video</source> 1602 <source>Wait transcoding before publishing the video</source>
1674 <target>Attendre l'encodage avant de publier la vidéo</target> 1603 <target>Attendre l'encodage avant de publier la vidéo</target>
1675 <context-group name="null"> 1604 <context-group name="null">
1676 <context context-type="linenumber">132</context> 1605 <context context-type="linenumber">126</context>
1677 </context-group>
1678 </trans-unit>
1679 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1680 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1681 <target>Si vous décidez de ne pas attendre la fin de l'encodage avant de publier la vidéo, elle ne pourra être lue jusqu'à ce que l'encodage s'achève.</target>
1682 <context-group name="null">
1683 <context context-type="linenumber">135</context>
1684 </context-group> 1606 </context-group>
1685 </trans-unit> 1607 </trans-unit>
1686 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1608 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1694,42 +1616,35 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1694 <source>Upload thumbnail</source> 1616 <source>Upload thumbnail</source>
1695 <target>Téléverser une vignette</target> 1617 <target>Téléverser une vignette</target>
1696 <context-group name="null"> 1618 <context-group name="null">
1697 <context context-type="linenumber">146</context> 1619 <context context-type="linenumber">186</context>
1698 </context-group> 1620 </context-group>
1699 </trans-unit> 1621 </trans-unit>
1700 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1622 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1701 <source>Upload preview</source> 1623 <source>Upload preview</source>
1702 <target>Téléverser un aperçu</target> 1624 <target>Téléverser un aperçu</target>
1703 <context-group name="null"> 1625 <context-group name="null">
1704 <context context-type="linenumber">153</context> 1626 <context context-type="linenumber">193</context>
1705 </context-group> 1627 </context-group>
1706 </trans-unit> 1628 </trans-unit>
1707 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1629 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1708 <source>Support</source> 1630 <source>Support</source>
1709 <target>Soutenir</target> 1631 <target>Soutenir</target>
1710 <context-group name="null"> 1632 <context-group name="null">
1711 <context context-type="linenumber">59</context> 1633 <context context-type="linenumber">67</context>
1712 </context-group> 1634 </context-group>
1713 </trans-unit> 1635 </trans-unit>
1714 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1636 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1715 <source>Short text to tell people how they can support you (membership platform...).</source> 1637 <source>Short text to tell people how they can support you (membership platform...).</source>
1716 <target>Courte description des moyens qu'ont les utilisateurs de vous soutenir (financement participatif, etc.).</target> 1638 <target>Courte description des moyens qu'ont les utilisateurs de vous soutenir (financement participatif, etc.).</target>
1717 <context-group name="null"> 1639 <context-group name="null">
1718 <context context-type="linenumber">160</context> 1640 <context context-type="linenumber">200</context>
1719 </context-group> 1641 </context-group>
1720 </trans-unit> 1642 </trans-unit>
1721 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1643 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1722 <source>Advanced settings</source> 1644 <source>Advanced settings</source>
1723 <target>Paramétrage avancé</target> 1645 <target>Paramétrage avancé</target>
1724 <context-group name="null"> 1646 <context-group name="null">
1725 <context context-type="linenumber">142</context> 1647 <context context-type="linenumber">182</context>
1726 </context-group>
1727 </trans-unit>
1728 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1729 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1730 <target>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1731 <context-group name="null">
1732 <context context-type="linenumber">11</context>
1733 </context-group> 1648 </context-group>
1734 </trans-unit> 1649 </trans-unit>
1735 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1650 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1747,7 +1662,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1747 <source>Update</source> 1662 <source>Update</source>
1748 <target>Mettre à jour</target> 1663 <target>Mettre à jour</target>
1749 <context-group name="null"> 1664 <context-group name="null">
1750 <context context-type="linenumber">93</context> 1665 <context context-type="linenumber">101</context>
1751 </context-group> 1666 </context-group>
1752 </trans-unit> 1667 </trans-unit>
1753 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1668 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1757,32 +1672,18 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1757 <context context-type="linenumber">7</context> 1672 <context context-type="linenumber">7</context>
1758 </context-group> 1673 </context-group>
1759 </trans-unit> 1674 </trans-unit>
1760 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1761 <source>Torrent</source>
1762 <target>Torrent (fichier metainfo)</target>
1763 <context-group name="null">
1764 <context context-type="linenumber">20</context>
1765 </context-group>
1766 </trans-unit>
1767 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1675 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1768 <source>Direct download</source> 1676 <source>Direct download</source>
1769 <target>Téléchargement direct</target> 1677 <target>Téléchargement direct</target>
1770 <context-group name="null"> 1678 <context-group name="null">
1771 <context context-type="linenumber">25</context> 1679 <context context-type="linenumber">20</context>
1772 </context-group>
1773 </trans-unit>
1774 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1775 <source>Torrent (magnet)</source>
1776 <target>Torrent (lien magnet)</target>
1777 <context-group name="null">
1778 <context context-type="linenumber">30</context>
1779 </context-group> 1680 </context-group>
1780 </trans-unit> 1681 </trans-unit>
1781 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1682 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1782 <source>Download</source> 1683 <source>Download</source>
1783 <target>Télécharger</target> 1684 <target>Télécharger</target>
1784 <context-group name="null"> 1685 <context-group name="null">
1785 <context context-type="linenumber">75</context> 1686 <context context-type="linenumber">83</context>
1786 </context-group> 1687 </context-group>
1787 </trans-unit> 1688 </trans-unit>
1788 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1689 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1821,7 +1722,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1821 <source>Share</source> 1722 <source>Share</source>
1822 <target>Partager</target> 1723 <target>Partager</target>
1823 <context-group name="null"> 1724 <context-group name="null">
1824 <context context-type="linenumber">64</context> 1725 <context context-type="linenumber">72</context>
1825 </context-group> 1726 </context-group>
1826 </trans-unit> 1727 </trans-unit>
1827 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1728 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1857,7 +1758,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1857 La vidéo est en train d'être encodée, elle peut ne pas fonctionner correctement. 1758 La vidéo est en train d'être encodée, elle peut ne pas fonctionner correctement.
1858 </target> 1759 </target>
1859 <context-group name="null"> 1760 <context-group name="null">
1860 <context context-type="linenumber">6</context> 1761 <context context-type="linenumber">11</context>
1861 </context-group> 1762 </context-group>
1862 </trans-unit> 1763 </trans-unit>
1863 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1764 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1868,7 +1769,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1868 Cette vidéo sera publiée le <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1769 Cette vidéo sera publiée le <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1869 </target> 1770 </target>
1870 <context-group name="null"> 1771 <context-group name="null">
1871 <context context-type="linenumber">10</context> 1772 <context context-type="linenumber">15</context>
1872 </context-group> 1773 </context-group>
1873 </trans-unit> 1774 </trans-unit>
1874 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1775 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1878,167 +1779,112 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
1878 <target> 1779 <target>
1879 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues </target> 1780 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vues </target>
1880 <context-group name="null"> 1781 <context-group name="null">
1881 <context context-type="linenumber">21</context> 1782 <context context-type="linenumber">26</context>
1882 </context-group> 1783 </context-group>
1883 </trans-unit> 1784 </trans-unit>
1884 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1785 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1885 <source>Go the channel page</source> 1786 <source>Go the channel page</source>
1886 <target>Aller à la page des chaînes</target> 1787 <target>Aller à la page des chaînes</target>
1887 <context-group name="null"> 1788 <context-group name="null">
1888 <context context-type="linenumber">26</context> 1789 <context context-type="linenumber">31</context>
1889 </context-group>
1890 </trans-unit>
1891 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1892 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1893 <target>Vous pouvez vous abonner à ce compte en utilisant une instance utilisant le protocole ActivityPub. Par exemple, avec Mastodon ou Pleroma vous pouvez taper dans le champ de recherche : &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; et s'abonner. S'abonner comme un utilisateur de PeerTube est en cours de développement, cela peut être suivi via cette issue : &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1894 <context-group name="null">
1895 <context context-type="linenumber">30</context>
1896 </context-group> 1790 </context-group>
1897 </trans-unit> 1791 </trans-unit>
1898 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1792 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1899 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1793 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1900 <target>Par <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1794 <target>Par <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1901 <context-group name="null"> 1795 <context-group name="null">
1902 <context context-type="linenumber">35</context> 1796 <context context-type="linenumber">41</context>
1903 </context-group> 1797 </context-group>
1904 </trans-unit> 1798 </trans-unit>
1905 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1799 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1906 <source>Go to the account page</source> 1800 <source>Go to the account page</source>
1907 <target>Accéder au profil public de l'utilisateur</target> 1801 <target>Accéder au profil public de l'utilisateur</target>
1908 <context-group name="null"> 1802 <context-group name="null">
1909 <context context-type="linenumber">34</context> 1803 <context context-type="linenumber">40</context>
1804 </context-group>
1805 </trans-unit>
1806 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1807 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1808 <target>Vous pouvez vous abonner à ce compte en utilisant une instance utilisant le protocole ActivityPub. Par exemple, avec Mastodon ou Pleroma vous pouvez taper dans le champ de recherche : &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; et s'abonner. S'abonner comme un utilisateur de PeerTube est en cours de développement, cela peut être suivi via cette issue : &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1809 <context-group name="null">
1810 <context context-type="linenumber">45</context>
1910 </context-group> 1811 </context-group>
1911 </trans-unit> 1812 </trans-unit>
1912 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1813 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1913 <source>Like this video</source> 1814 <source>Like this video</source>
1914 <target>J'aime cette vidéo</target> 1815 <target>J'aime cette vidéo</target>
1915 <context-group name="null"> 1816 <context-group name="null">
1916 <context context-type="linenumber">47</context> 1817 <context context-type="linenumber">55</context>
1917 </context-group> 1818 </context-group>
1918 </trans-unit> 1819 </trans-unit>
1919 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1820 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1920 <source>Dislike this video</source> 1821 <source>Dislike this video</source>
1921 <target>Je n'aime pas cette vidéo</target> 1822 <target>Je n'aime pas cette vidéo</target>
1922 <context-group name="null"> 1823 <context-group name="null">
1923 <context context-type="linenumber">54</context> 1824 <context context-type="linenumber">62</context>
1924 </context-group> 1825 </context-group>
1925 </trans-unit> 1826 </trans-unit>
1926 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1827 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1927 <source>Download the video</source> 1828 <source>Download the video</source>
1928 <target>Télécharger la vidéo</target> 1829 <target>Télécharger la vidéo</target>
1929 <context-group name="null"> 1830 <context-group name="null">
1930 <context context-type="linenumber">74</context> 1831 <context context-type="linenumber">82</context>
1931 </context-group> 1832 </context-group>
1932 </trans-unit> 1833 </trans-unit>
1933 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1834 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1934 <source>Report</source> 1835 <source>Report</source>
1935 <target>Signaler</target> 1836 <target>Signaler</target>
1936 <context-group name="null"> 1837 <context-group name="null">
1937 <context context-type="linenumber">81</context> 1838 <context context-type="linenumber">89</context>
1938 </context-group> 1839 </context-group>
1939 </trans-unit> 1840 </trans-unit>
1940 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1841 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1941 <source>Report this video</source> 1842 <source>Report this video</source>
1942 <target>Signaler cette vidéo</target> 1843 <target>Signaler cette vidéo</target>
1943 <context-group name="null"> 1844 <context-group name="null">
1944 <context context-type="linenumber">80</context> 1845 <context context-type="linenumber">88</context>
1945 </context-group> 1846 </context-group>
1946 </trans-unit> 1847 </trans-unit>
1947 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1848 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1948 <source>Blacklist</source> 1849 <source>Blacklist</source>
1949 <target>Blacklister</target> 1850 <target>Blacklister</target>
1950 <context-group name="null"> 1851 <context-group name="null">
1951 <context context-type="linenumber">87</context> 1852 <context context-type="linenumber">95</context>
1952 </context-group> 1853 </context-group>
1953 </trans-unit> 1854 </trans-unit>
1954 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1855 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1955 <source>Blacklist this video</source> 1856 <source>Blacklist this video</source>
1956 <target>Blacklister cette vidéo</target> 1857 <target>Blacklister cette vidéo</target>
1957 <context-group name="null"> 1858 <context-group name="null">
1958 <context context-type="linenumber">86</context> 1859 <context context-type="linenumber">94</context>
1959 </context-group> 1860 </context-group>
1960 </trans-unit> 1861 </trans-unit>
1961 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1862 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1962 <source>Update this video</source> 1863 <source>Update this video</source>
1963 <target>Mettre à jour cette vidéo</target> 1864 <target>Mettre à jour cette vidéo</target>
1964 <context-group name="null"> 1865 <context-group name="null">
1965 <context context-type="linenumber">92</context> 1866 <context context-type="linenumber">100</context>
1966 </context-group> 1867 </context-group>
1967 </trans-unit> 1868 </trans-unit>
1968 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1869 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1969 <source>Delete this video</source> 1870 <source>Delete this video</source>
1970 <target>Supprimer cette vidéo</target> 1871 <target>Supprimer cette vidéo</target>
1971 <context-group name="null"> 1872 <context-group name="null">
1972 <context context-type="linenumber">98</context> 1873 <context context-type="linenumber">106</context>
1973 </context-group> 1874 </context-group>
1974 </trans-unit> 1875 </trans-unit>
1975 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1876 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1976 <source>Show more</source> 1877 <source>Show more</source>
1977 <target>Voir plus</target> 1878 <target>Voir plus</target>
1978 <context-group name="null"> 1879 <context-group name="null">
1979 <context context-type="linenumber">118</context> 1880 <context context-type="linenumber">126</context>
1980 </context-group> 1881 </context-group>
1981 </trans-unit> 1882 </trans-unit>
1982 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1883 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1983 <source>Show less</source> 1884 <source>Show less</source>
1984 <target>Montrer moins</target> 1885 <target>Montrer moins</target>
1985 <context-group name="null"> 1886 <context-group name="null">
1986 <context context-type="linenumber">124</context> 1887 <context context-type="linenumber">132</context>
1987 </context-group>
1988 </trans-unit>
1989 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1990 <source>
1991 Privacy
1992 </source>
1993 <target>
1994 Visibilité
1995 </target>
1996 <context-group name="null">
1997 <context context-type="linenumber">131</context>
1998 </context-group>
1999 </trans-unit>
2000 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
2001 <source>
2002 Category
2003 </source>
2004 <target>
2005 Catégorie
2006 </target>
2007 <context-group name="null">
2008 <context context-type="linenumber">140</context>
2009 </context-group>
2010 </trans-unit>
2011 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2012 <source>
2013 Licence
2014 </source>
2015 <target>
2016 Licence
2017 </target>
2018 <context-group name="null">
2019 <context context-type="linenumber">149</context>
2020 </context-group>
2021 </trans-unit>
2022 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2023 <source>
2024 Language
2025 </source>
2026 <target>
2027 Langue
2028 </target>
2029 <context-group name="null">
2030 <context context-type="linenumber">158</context>
2031 </context-group>
2032 </trans-unit>
2033 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2034 <source>
2035 Tags
2036 </source>
2037 <target>
2038 Étiquettes
2039 </target>
2040 <context-group name="null">
2041 <context context-type="linenumber">167</context>
2042 </context-group> 1888 </context-group>
2043 </trans-unit> 1889 </trans-unit>
2044 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1890 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2049,24 +1895,13 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
2049 Autres vidéos 1895 Autres vidéos
2050 </target> 1896 </target>
2051 <context-group name="null"> 1897 <context-group name="null">
2052 <context context-type="linenumber">181</context> 1898 <context context-type="linenumber">183</context>
2053 </context-group> 1899 </context-group>
2054 </trans-unit> 1900 </trans-unit>
2055 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1901 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2056 <source>Friendly Reminder:</source> 1902 <source>Friendly Reminder:</source>
2057 <target>Rappel :</target> 1903 <target>Rappel :</target>
2058 <context-group name="null"> 1904 <context-group name="null">
2059 <context context-type="linenumber">193</context>
2060 </context-group>
2061 </trans-unit>
2062 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2063 <source>
2064 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2065 </source>
2066 <target>
2067 Le système de partage utilisé par cette vidéo nécessite que des informations techniques concernant votre système (notamment votre adresse IP publique) soient rendues publiques.
2068 </target>
2069 <context-group name="null">
2070 <context context-type="linenumber">195</context> 1905 <context context-type="linenumber">195</context>
2071 </context-group> 1906 </context-group>
2072 </trans-unit> 1907 </trans-unit>
@@ -2074,14 +1909,14 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
2074 <source>More information</source> 1909 <source>More information</source>
2075 <target>Plus d'informations</target> 1910 <target>Plus d'informations</target>
2076 <context-group name="null"> 1911 <context-group name="null">
2077 <context context-type="linenumber">198</context> 1912 <context context-type="linenumber">200</context>
2078 </context-group> 1913 </context-group>
2079 </trans-unit> 1914 </trans-unit>
2080 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1915 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2081 <source>Get more information</source> 1916 <source>Get more information</source>
2082 <target>Obtenir plus d'informations</target> 1917 <target>Obtenir plus d'informations</target>
2083 <context-group name="null"> 1918 <context-group name="null">
2084 <context context-type="linenumber">198</context> 1919 <context context-type="linenumber">200</context>
2085 </context-group> 1920 </context-group>
2086 </trans-unit> 1921 </trans-unit>
2087 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1922 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2092,7 +1927,7 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
2092 OK 1927 OK
2093 </target> 1928 </target>
2094 <context-group name="null"> 1929 <context-group name="null">
2095 <context context-type="linenumber">201</context> 1930 <context context-type="linenumber">203</context>
2096 </context-group> 1931 </context-group>
2097 </trans-unit> 1932 </trans-unit>
2098 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1933 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2564,13 +2399,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
2564 <context context-type="linenumber">1</context> 2399 <context context-type="linenumber">1</context>
2565 </context-group> 2400 </context-group>
2566 </trans-unit> 2401 </trans-unit>
2567 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2568 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2569 <target>Un courriel avec les instructions nécessaire à la réinitialisation de votre mot de passe sera envoyé à <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</target>
2570 <context-group name="null">
2571 <context context-type="linenumber">1</context>
2572 </context-group>
2573 </trans-unit>
2574 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2402 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2575 <source>Unable to find user id or verification string.</source> 2403 <source>Unable to find user id or verification string.</source>
2576 <target>Impossible de trouver l'identifiant utilisateur ou le texte de vérification.</target> 2404 <target>Impossible de trouver l'identifiant utilisateur ou le texte de vérification.</target>
@@ -2585,6 +2413,20 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
2585 <context context-type="linenumber">1</context> 2413 <context context-type="linenumber">1</context>
2586 </context-group> 2414 </context-group>
2587 </trans-unit> 2415 </trans-unit>
2416 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2417 <source>Today</source>
2418 <target>Aujourd'hui</target>
2419 <context-group name="null">
2420 <context context-type="linenumber">1</context>
2421 </context-group>
2422 </trans-unit>
2423 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2424 <source>Search</source>
2425 <target>Résultats de la recherche</target>
2426 <context-group name="null">
2427 <context context-type="linenumber">1</context>
2428 </context-group>
2429 </trans-unit>
2588 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2430 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2589 <source>Instance name is required.</source> 2431 <source>Instance name is required.</source>
2590 <target>Le nom de l'instance est requis.</target> 2432 <target>Le nom de l'instance est requis.</target>
@@ -3271,13 +3113,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
3271 <context context-type="linenumber">1</context> 3113 <context context-type="linenumber">1</context>
3272 </context-group> 3114 </context-group>
3273 </trans-unit> 3115 </trans-unit>
3274 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3275 <source>Today</source>
3276 <target>Aujourd'hui</target>
3277 <context-group name="null">
3278 <context context-type="linenumber">1</context>
3279 </context-group>
3280 </trans-unit>
3281 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3116 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3282 <source>Clear</source> 3117 <source>Clear</source>
3283 <target>Effacer</target> 3118 <target>Effacer</target>
@@ -3481,13 +3316,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
3481 <context context-type="linenumber">1</context> 3316 <context context-type="linenumber">1</context>
3482 </context-group> 3317 </context-group>
3483 </trans-unit> 3318 </trans-unit>
3484 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3485 <source>This image is too large.</source>
3486 <target>Cette image est trop grande.</target>
3487 <context-group name="null">
3488 <context context-type="linenumber">1</context>
3489 </context-group>
3490 </trans-unit>
3491 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3319 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3492 <source>Your video was uploaded in your account and is private.</source> 3320 <source>Your video was uploaded in your account and is private.</source>
3493 <target>Votre vidéo a été mise ligne sur votre compte de manière privée.</target> 3321 <target>Votre vidéo a été mise ligne sur votre compte de manière privée.</target>
@@ -3523,13 +3351,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
3523 <context context-type="linenumber">1</context> 3351 <context context-type="linenumber">1</context>
3524 </context-group> 3352 </context-group>
3525 </trans-unit> 3353 </trans-unit>
3526 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3527 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3528 <target>Nous sommes navrés mais PeerTube ne supporte pas pour l'instant les vidéos d'une taille supérieure à 4Go </target>
3529 <context-group name="null">
3530 <context context-type="linenumber">1</context>
3531 </context-group>
3532 </trans-unit>
3533 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3354 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3534 <source>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 }}"/>)</source> 3355 <source>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 }}"/>)</source>
3535 <target>Votre quota vidéo est dépassé avec cette vidéo (taille de la vidéo : <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, utilisé : <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, quota : <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3356 <target>Votre quota vidéo est dépassé avec cette vidéo (taille de la vidéo : <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, utilisé : <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, quota : <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3600,13 +3421,6 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
3600 <context context-type="linenumber">1</context> 3421 <context context-type="linenumber">1</context>
3601 </context-group> 3422 </context-group>
3602 </trans-unit> 3423 </trans-unit>
3603 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3604 <source>Cannot fetch video from server, maybe down.</source>
3605 <target>Impossible de récupérer la vidéo du serveur ; il est peut-être hors-ligne.</target>
3606 <context-group name="null">
3607 <context context-type="linenumber">1</context>
3608 </context-group>
3609 </trans-unit>
3610 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3424 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3611 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3425 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3612 <target>Cette vidéo contient du contenu sensible. Êtes-vous sûr·e de vouloir la regarder ?</target> 3426 <target>Cette vidéo contient du contenu sensible. Êtes-vous sûr·e de vouloir la regarder ?</target>
@@ -3621,12 +3435,5 @@ Quand vous mettrez en ligne une vidéo sur cette chaîne, la vidéo affichera au
3621 <context context-type="linenumber">1</context> 3435 <context context-type="linenumber">1</context>
3622 </context-group> 3436 </context-group>
3623 </trans-unit> 3437 </trans-unit>
3624 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3625 <source>Search</source>
3626 <target>Résultats de la recherche</target>
3627 <context-group name="null">
3628 <context context-type="linenumber">1</context>
3629 </context-group>
3630 </trans-unit>
3631 </body> 3438 </body>
3632 </file></xliff> \ No newline at end of file 3439 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_nl_NL.xml b/client/src/locale/target/angular_nl_NL.xml
index 872187f22..74481efa6 100644
--- a/client/src/locale/target/angular_nl_NL.xml
+++ b/client/src/locale/target/angular_nl_NL.xml
@@ -9,14 +9,14 @@
9 </source> 9 </source>
10 <target>Annuleren</target> 10 <target>Annuleren</target>
11 <context-group name="null"> 11 <context-group name="null">
12 <context context-type="linenumber">40</context> 12 <context context-type="linenumber">45</context>
13 </context-group> 13 </context-group>
14 </trans-unit> 14 </trans-unit>
15 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 15 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
16 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 16 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
17 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> keer bekeken</target> 17 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> keer bekeken</target>
18 <context-group name="null"> 18 <context-group name="null">
19 <context context-type="linenumber">12</context> 19 <context context-type="linenumber">34</context>
20 </context-group> 20 </context-group>
21 </trans-unit> 21 </trans-unit>
22 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 22 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -44,7 +44,7 @@
44 <source>Get help</source> 44 <source>Get help</source>
45 <target>Hulp</target> 45 <target>Hulp</target>
46 <context-group name="null"> 46 <context-group name="null">
47 <context context-type="linenumber">17</context> 47 <context context-type="linenumber">18</context>
48 </context-group> 48 </context-group>
49 </trans-unit> 49 </trans-unit>
50 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 50 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -99,7 +99,7 @@
99 <source>Password</source> 99 <source>Password</source>
100 <target>Wachtwoord</target> 100 <target>Wachtwoord</target>
101 <context-group name="null"> 101 <context-group name="null">
102 <context context-type="linenumber">28</context> 102 <context context-type="linenumber">12</context>
103 </context-group> 103 </context-group>
104 </trans-unit> 104 </trans-unit>
105 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 105 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -310,6 +310,27 @@
310 <context context-type="linenumber">9</context> 310 <context context-type="linenumber">9</context>
311 </context-group> 311 </context-group>
312 </trans-unit> 312 </trans-unit>
313 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
314 <source>Category</source>
315 <target>Categorie</target>
316 <context-group name="null">
317 <context context-type="linenumber">144</context>
318 </context-group>
319 </trans-unit>
320 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
321 <source>Licence</source>
322 <target>Licentie</target>
323 <context-group name="null">
324 <context context-type="linenumber">153</context>
325 </context-group>
326 </trans-unit>
327 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
328 <source>Language</source>
329 <target>Taal</target>
330 <context-group name="null">
331 <context context-type="linenumber">162</context>
332 </context-group>
333 </trans-unit>
313 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 334 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
314 <source>No results.</source> 335 <source>No results.</source>
315 <target>Geen resultaten.</target> 336 <target>Geen resultaten.</target>
@@ -639,42 +660,42 @@ Het Peer-to-Peer-mechanisme uit PeerTube halen zou je niet méér anonimiteit ge
639 <source>Signup enabled</source> 660 <source>Signup enabled</source>
640 <target>Registratie mogelijk</target> 661 <target>Registratie mogelijk</target>
641 <context-group name="null"> 662 <context-group name="null">
642 <context context-type="linenumber">92</context> 663 <context context-type="linenumber">90</context>
643 </context-group> 664 </context-group>
644 </trans-unit> 665 </trans-unit>
645 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 666 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
646 <source>Signup limit</source> 667 <source>Signup limit</source>
647 <target>Registratielimiet</target> 668 <target>Registratielimiet</target>
648 <context-group name="null"> 669 <context-group name="null">
649 <context context-type="linenumber">96</context> 670 <context context-type="linenumber">94</context>
650 </context-group> 671 </context-group>
651 </trans-unit> 672 </trans-unit>
652 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 673 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
653 <source>Administrator</source> 674 <source>Administrator</source>
654 <target>Beheerder</target> 675 <target>Beheerder</target>
655 <context-group name="null"> 676 <context-group name="null">
656 <context context-type="linenumber">106</context> 677 <context context-type="linenumber">104</context>
657 </context-group> 678 </context-group>
658 </trans-unit> 679 </trans-unit>
659 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 680 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
660 <source>Admin email</source> 681 <source>Admin email</source>
661 <target>E-mail van beheerder</target> 682 <target>E-mail van beheerder</target>
662 <context-group name="null"> 683 <context-group name="null">
663 <context context-type="linenumber">109</context> 684 <context context-type="linenumber">107</context>
664 </context-group> 685 </context-group>
665 </trans-unit> 686 </trans-unit>
666 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 687 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
667 <source>Users</source> 688 <source>Users</source>
668 <target>Gebruikers</target> 689 <target>Gebruikers</target>
669 <context-group name="null"> 690 <context-group name="null">
670 <context context-type="linenumber">119</context> 691 <context context-type="linenumber">117</context>
671 </context-group> 692 </context-group>
672 </trans-unit> 693 </trans-unit>
673 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 694 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
674 <source>User default video quota</source> 695 <source>User default video quota</source>
675 <target>Standaard video-quotum voor gebruikers</target> 696 <target>Standaard video-quotum voor gebruikers</target>
676 <context-group name="null"> 697 <context-group name="null">
677 <context context-type="linenumber">122</context> 698 <context context-type="linenumber">120</context>
678 </context-group> 699 </context-group>
679 </trans-unit> 700 </trans-unit>
680 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 701 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -688,28 +709,28 @@ Het Peer-to-Peer-mechanisme uit PeerTube halen zou je niet méér anonimiteit ge
688 <source>Twitter</source> 709 <source>Twitter</source>
689 <target>Twitter</target> 710 <target>Twitter</target>
690 <context-group name="null"> 711 <context-group name="null">
691 <context context-type="linenumber">138</context> 712 <context context-type="linenumber">136</context>
692 </context-group> 713 </context-group>
693 </trans-unit> 714 </trans-unit>
694 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 715 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
695 <source>Your Twitter username</source> 716 <source>Your Twitter username</source>
696 <target>Je Twitter-gebruikersnaam</target> 717 <target>Je Twitter-gebruikersnaam</target>
697 <context-group name="null"> 718 <context-group name="null">
698 <context context-type="linenumber">141</context> 719 <context context-type="linenumber">139</context>
699 </context-group> 720 </context-group>
700 </trans-unit> 721 </trans-unit>
701 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 722 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
702 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 723 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
703 <target>Geeft het Twitter-account aan voor de website of het platform waarop de inhoud gepubliceerd werd.</target> 724 <target>Geeft het Twitter-account aan voor de website of het platform waarop de inhoud gepubliceerd werd.</target>
704 <context-group name="null"> 725 <context-group name="null">
705 <context context-type="linenumber">144</context> 726 <context context-type="linenumber">142</context>
706 </context-group> 727 </context-group>
707 </trans-unit> 728 </trans-unit>
708 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 729 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
709 <source>Instance whitelisted by Twitter</source> 730 <source>Instance whitelisted by Twitter</source>
710 <target>Instantie ge-whitelist door Twitter</target> 731 <target>Instantie ge-whitelist door Twitter</target>
711 <context-group name="null"> 732 <context-group name="null">
712 <context context-type="linenumber">159</context> 733 <context context-type="linenumber">155</context>
713 </context-group> 734 </context-group>
714 </trans-unit> 735 </trans-unit>
715 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 736 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -720,91 +741,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
720Als de instantie niet ge-whitelist is, komt er een afbeelding met een link die naar de PeerTube-instantie leidt.&lt;br /&gt;&lt;br /&gt; 741Als de instantie niet ge-whitelist is, komt er een afbeelding met een link die naar de PeerTube-instantie leidt.&lt;br /&gt;&lt;br /&gt;
721Vink dit hokje aan, sla de configuratie op en test met een video-URL van je instantie (https://example.com/videos/watch/blabla) op &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; om te zien of je instantie ge-whitelist is.</target> 742Vink dit hokje aan, sla de configuratie op en test met een video-URL van je instantie (https://example.com/videos/watch/blabla) op &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; om te zien of je instantie ge-whitelist is.</target>
722 <context-group name="null"> 743 <context-group name="null">
723 <context context-type="linenumber">162</context> 744 <context context-type="linenumber">156</context>
724 </context-group> 745 </context-group>
725 </trans-unit> 746 </trans-unit>
726 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 747 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
727 <source>Services</source> 748 <source>Services</source>
728 <target>Diensten</target> 749 <target>Diensten</target>
729 <context-group name="null"> 750 <context-group name="null">
730 <context context-type="linenumber">136</context> 751 <context context-type="linenumber">134</context>
731 </context-group> 752 </context-group>
732 </trans-unit> 753 </trans-unit>
733 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 754 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
734 <source>Transcoding</source> 755 <source>Transcoding</source>
735 <target>Transcoding</target> 756 <target>Transcoding</target>
736 <context-group name="null"> 757 <context-group name="null">
737 <context context-type="linenumber">172</context> 758 <context context-type="linenumber">164</context>
738 </context-group> 759 </context-group>
739 </trans-unit> 760 </trans-unit>
740 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 761 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
741 <source>Transcoding enabled</source> 762 <source>Transcoding enabled</source>
742 <target>Transcoding ingeschakeld</target> 763 <target>Transcoding ingeschakeld</target>
743 <context-group name="null"> 764 <context-group name="null">
744 <context context-type="linenumber">178</context> 765 <context context-type="linenumber">168</context>
745 </context-group> 766 </context-group>
746 </trans-unit> 767 </trans-unit>
747 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 768 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
748 <source>If you disable transcoding, many videos from your users will not work!</source> 769 <source>If you disable transcoding, many videos from your users will not work!</source>
749 <target>Als je transcoding niet inschakelt, zullen veel video's die je gebruikers uploaden niet overal werken!</target> 770 <target>Als je transcoding niet inschakelt, zullen veel video's die je gebruikers uploaden niet overal werken!</target>
750 <context-group name="null"> 771 <context-group name="null">
751 <context context-type="linenumber">180</context> 772 <context context-type="linenumber">169</context>
752 </context-group> 773 </context-group>
753 </trans-unit> 774 </trans-unit>
754 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 775 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
755 <source>Transcoding threads</source> 776 <source>Transcoding threads</source>
756 <target>Threads gebruikt voor transcoding</target> 777 <target>Threads gebruikt voor transcoding</target>
757 <context-group name="null"> 778 <context-group name="null">
758 <context context-type="linenumber">186</context> 779 <context context-type="linenumber">175</context>
759 </context-group>
760 </trans-unit>
761 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
762 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
763 <target>Resolutie <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> ingeschakeld</target>
764 <context-group name="null">
765 <context context-type="linenumber">205</context>
766 </context-group>
767 </trans-unit>
768 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
769 <source>Cache</source>
770 <target>Cache</target>
771 <context-group name="null">
772 <context context-type="linenumber">209</context>
773 </context-group> 780 </context-group>
774 </trans-unit> 781 </trans-unit>
775 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 782 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
776 <source>Previews cache size</source> 783 <source>Previews cache size</source>
777 <target>Cachegrootte voor previews</target> 784 <target>Cachegrootte voor previews</target>
778 <context-group name="null"> 785 <context-group name="null">
779 <context context-type="linenumber">212</context> 786 <context context-type="linenumber">207</context>
780 </context-group>
781 </trans-unit>
782 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
783 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
784 <target>Previews worden niet gefedereerd. Ze worden rechtstreeks van de oorspronkelijke instantie opgehaald en gecachet.</target>
785 <context-group name="null">
786 <context context-type="linenumber">215</context>
787 </context-group> 787 </context-group>
788 </trans-unit> 788 </trans-unit>
789 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 789 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
790 <source>Customizations</source> 790 <source>Customizations</source>
791 <target>Aanpassingen</target> 791 <target>Aanpassingen</target>
792 <context-group name="null"> 792 <context-group name="null">
793 <context context-type="linenumber">227</context> 793 <context context-type="linenumber">228</context>
794 </context-group> 794 </context-group>
795 </trans-unit> 795 </trans-unit>
796 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 796 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
797 <source>JavaScript</source> 797 <source>JavaScript</source>
798 <target>JavaScript</target> 798 <target>JavaScript</target>
799 <context-group name="null"> 799 <context-group name="null">
800 <context context-type="linenumber">230</context> 800 <context context-type="linenumber">231</context>
801 </context-group> 801 </context-group>
802 </trans-unit> 802 </trans-unit>
803 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 803 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
804 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 804 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
805 <target>Schrijf JavaScriptcode.&lt;br /&gt;Voorbeeld: &lt;pre&gt;console.log('mijn instantie is fantastisch');&lt;/pre&gt;</target> 805 <target>Schrijf JavaScriptcode.&lt;br /&gt;Voorbeeld: &lt;pre&gt;console.log('mijn instantie is fantastisch');&lt;/pre&gt;</target>
806 <context-group name="null"> 806 <context-group name="null">
807 <context context-type="linenumber">233</context> 807 <context context-type="linenumber">234</context>
808 </context-group> 808 </context-group>
809 </trans-unit> 809 </trans-unit>
810 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 810 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -838,21 +838,21 @@ Laat er &lt;em&gt;#custom-css&lt;/em&gt; aan voorafgaan om stijlen te overriden.
838&lt;/pre&gt; 838&lt;/pre&gt;
839 </target> 839 </target>
840 <context-group name="null"> 840 <context-group name="null">
841 <context context-type="linenumber">249</context> 841 <context context-type="linenumber">250</context>
842 </context-group> 842 </context-group>
843 </trans-unit> 843 </trans-unit>
844 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 844 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
845 <source>Advanced configuration</source> 845 <source>Advanced configuration</source>
846 <target>Geavanceerde configuratie</target> 846 <target>Geavanceerde configuratie</target>
847 <context-group name="null"> 847 <context-group name="null">
848 <context context-type="linenumber">170</context> 848 <context context-type="linenumber">162</context>
849 </context-group> 849 </context-group>
850 </trans-unit> 850 </trans-unit>
851 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 851 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
852 <source>Update configuration</source> 852 <source>Update configuration</source>
853 <target>Updateconfiguratie</target> 853 <target>Updateconfiguratie</target>
854 <context-group name="null"> 854 <context-group name="null">
855 <context context-type="linenumber">276</context> 855 <context context-type="linenumber">277</context>
856 </context-group> 856 </context-group>
857 </trans-unit> 857 </trans-unit>
858 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 858 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -988,13 +988,6 @@ Laat er &lt;em&gt;#custom-css&lt;/em&gt; aan voorafgaan om stijlen te overriden.
988 <context context-type="linenumber">19</context> 988 <context context-type="linenumber">19</context>
989 </context-group> 989 </context-group>
990 </trans-unit> 990 </trans-unit>
991 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
992 <source>Updated</source>
993 <target>Geüpdatet</target>
994 <context-group name="null">
995 <context context-type="linenumber">22</context>
996 </context-group>
997 </trans-unit>
998 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 991 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
999 <source>Create user</source> 992 <source>Create user</source>
1000 <target>Gebruiker aanmaken</target> 993 <target>Gebruiker aanmaken</target>
@@ -1169,53 +1162,32 @@ Laat er &lt;em&gt;#custom-css&lt;/em&gt; aan voorafgaan om stijlen te overriden.
1169 <context context-type="linenumber">7</context> 1162 <context context-type="linenumber">7</context>
1170 </context-group> 1163 </context-group>
1171 </trans-unit> 1164 </trans-unit>
1172 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1173 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1174 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> abonnees</target>
1175 <context-group name="null">
1176 <context context-type="linenumber">9</context>
1177 </context-group>
1178 </trans-unit>
1179 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1180 <source>Change your avatar</source>
1181 <target>Wijzig je avatar</target>
1182 <context-group name="null">
1183 <context context-type="linenumber">14</context>
1184 </context-group>
1185 </trans-unit>
1186 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1187 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1188 <target>(extensies: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximale grootte: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1189 <context-group name="null">
1190 <context context-type="linenumber">17</context>
1191 </context-group>
1192 </trans-unit>
1193 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1165 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1194 <source>Video quota:</source> 1166 <source>Video quota:</source>
1195 <target>Videoquotum:</target> 1167 <target>Videoquotum:</target>
1196 <context-group name="null"> 1168 <context-group name="null">
1197 <context context-type="linenumber">20</context> 1169 <context context-type="linenumber">4</context>
1198 </context-group> 1170 </context-group>
1199 </trans-unit> 1171 </trans-unit>
1200 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1172 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1201 <source>Profile</source> 1173 <source>Profile</source>
1202 <target>Profiel</target> 1174 <target>Profiel</target>
1203 <context-group name="null"> 1175 <context-group name="null">
1204 <context context-type="linenumber">24</context> 1176 <context context-type="linenumber">8</context>
1205 </context-group> 1177 </context-group>
1206 </trans-unit> 1178 </trans-unit>
1207 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1179 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1208 <source>Video settings</source> 1180 <source>Video settings</source>
1209 <target>Video-instellingen</target> 1181 <target>Video-instellingen</target>
1210 <context-group name="null"> 1182 <context-group name="null">
1211 <context context-type="linenumber">31</context> 1183 <context context-type="linenumber">15</context>
1212 </context-group> 1184 </context-group>
1213 </trans-unit> 1185 </trans-unit>
1214 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1186 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1215 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1187 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1216 <target>Video’s <x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> aantal keer bekeken</target> 1188 <target>Video’s <x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> aantal keer bekeken</target>
1217 <context-group name="null"> 1189 <context-group name="null">
1218 <context context-type="linenumber">20</context> 1190 <context context-type="linenumber">19</context>
1219 </context-group> 1191 </context-group>
1220 </trans-unit> 1192 </trans-unit>
1221 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1193 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1243,14 +1215,7 @@ Laat er &lt;em&gt;#custom-css&lt;/em&gt; aan voorafgaan om stijlen te overriden.
1243 <source>Create a video channel</source> 1215 <source>Create a video channel</source>
1244 <target>Videokanaal maken</target> 1216 <target>Videokanaal maken</target>
1245 <context-group name="null"> 1217 <context-group name="null">
1246 <context context-type="linenumber">1</context> 1218 <context context-type="linenumber">6</context>
1247 </context-group>
1248 </trans-unit>
1249 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1250 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1251 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/> updaten</target>
1252 <context-group name="null">
1253 <context context-type="linenumber">2</context>
1254 </context-group> 1219 </context-group>
1255 </trans-unit> 1220 </trans-unit>
1256 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1221 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1266,7 +1231,7 @@ When you will upload a video in this channel, the video support field will be au
1266 <target>Korte tekst om mensen te vertellen hoe ze je kanaal kunnen ondersteunen (lidmaatschap…).&lt;br/&gt;&lt;br/&gt; 1231 <target>Korte tekst om mensen te vertellen hoe ze je kanaal kunnen ondersteunen (lidmaatschap…).&lt;br/&gt;&lt;br/&gt;
1267Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "ondersteun"-veld.</target> 1232Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "ondersteun"-veld.</target>
1268 <context-group name="null"> 1233 <context-group name="null">
1269 <context context-type="linenumber">32</context> 1234 <context context-type="linenumber">36</context>
1270 </context-group> 1235 </context-group>
1271 </trans-unit> 1236 </trans-unit>
1272 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1237 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1300,14 +1265,14 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1300 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2"> 1265 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
1301 <source>Automatically plays video</source> 1266 <source>Automatically plays video</source>
1302 <context-group name="null"> 1267 <context-group name="null">
1303 <context context-type="linenumber">24</context> 1268 <context context-type="linenumber">20</context>
1304 </context-group> 1269 </context-group>
1305 </trans-unit> 1270 </trans-unit>
1306 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1271 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1307 <source>Save</source> 1272 <source>Save</source>
1308 <target>Opslaan</target> 1273 <target>Opslaan</target>
1309 <context-group name="null"> 1274 <context-group name="null">
1310 <context context-type="linenumber">27</context> 1275 <context context-type="linenumber">23</context>
1311 </context-group> 1276 </context-group>
1312 </trans-unit> 1277 </trans-unit>
1313 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1278 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1317,6 +1282,13 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1317 <context context-type="linenumber">27</context> 1282 <context context-type="linenumber">27</context>
1318 </context-group> 1283 </context-group>
1319 </trans-unit> 1284 </trans-unit>
1285 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1286 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1287 <target>(extensies: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maximale grootte: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1288 <context-group name="null">
1289 <context context-type="linenumber">18</context>
1290 </context-group>
1291 </trans-unit>
1320 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1292 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1321 <source> 1293 <source>
1322 Sorry, but we couldn't find the page you were looking for. 1294 Sorry, but we couldn't find the page you were looking for.
@@ -1386,21 +1358,21 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1386 <source>Privacy</source> 1358 <source>Privacy</source>
1387 <target>Zichtbaarheid</target> 1359 <target>Zichtbaarheid</target>
1388 <context-group name="null"> 1360 <context-group name="null">
1389 <context context-type="linenumber">86</context> 1361 <context context-type="linenumber">139</context>
1390 </context-group> 1362 </context-group>
1391 </trans-unit> 1363 </trans-unit>
1392 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1364 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1393 <source>Publish will be available when upload is finished</source> 1365 <source>Publish will be available when upload is finished</source>
1394 <target>Publiceren is mogelijk wanneer de upload voltooid is</target> 1366 <target>Publiceren is mogelijk wanneer de upload voltooid is</target>
1395 <context-group name="null"> 1367 <context-group name="null">
1396 <context context-type="linenumber">53</context> 1368 <context context-type="linenumber">54</context>
1397 </context-group> 1369 </context-group>
1398 </trans-unit> 1370 </trans-unit>
1399 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1371 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1400 <source>Publish</source> 1372 <source>Publish</source>
1401 <target>Publiceren</target> 1373 <target>Publiceren</target>
1402 <context-group name="null"> 1374 <context-group name="null">
1403 <context context-type="linenumber">60</context> 1375 <context context-type="linenumber">61</context>
1404 </context-group> 1376 </context-group>
1405 </trans-unit> 1377 </trans-unit>
1406 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1378 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1414,7 +1386,7 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1414 <source>Tags</source> 1386 <source>Tags</source>
1415 <target>Tags</target> 1387 <target>Tags</target>
1416 <context-group name="null"> 1388 <context-group name="null">
1417 <context context-type="linenumber">15</context> 1389 <context context-type="linenumber">171</context>
1418 </context-group> 1390 </context-group>
1419 </trans-unit> 1391 </trans-unit>
1420 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1392 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1431,27 +1403,6 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1431 <context context-type="linenumber">24</context> 1403 <context context-type="linenumber">24</context>
1432 </context-group> 1404 </context-group>
1433 </trans-unit> 1405 </trans-unit>
1434 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1435 <source>Category</source>
1436 <target>Categorie</target>
1437 <context-group name="null">
1438 <context context-type="linenumber">44</context>
1439 </context-group>
1440 </trans-unit>
1441 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1442 <source>Licence</source>
1443 <target>Licentie</target>
1444 <context-group name="null">
1445 <context context-type="linenumber">58</context>
1446 </context-group>
1447 </trans-unit>
1448 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1449 <source>Language</source>
1450 <target>Taal</target>
1451 <context-group name="null">
1452 <context context-type="linenumber">72</context>
1453 </context-group>
1454 </trans-unit>
1455 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1406 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1456 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1407 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1457 <target>Publicatie uitstellen (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1408 <target>Publicatie uitstellen (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1463,35 +1414,28 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1463 <source>This video contains mature or explicit content</source> 1414 <source>This video contains mature or explicit content</source>
1464 <target>Deze video bevat expliciete inhoud of inhoud die enkel voor volwassenen geschikt is</target> 1415 <target>Deze video bevat expliciete inhoud of inhoud die enkel voor volwassenen geschikt is</target>
1465 <context-group name="null"> 1416 <context-group name="null">
1466 <context context-type="linenumber">116</context> 1417 <context context-type="linenumber">115</context>
1467 </context-group> 1418 </context-group>
1468 </trans-unit> 1419 </trans-unit>
1469 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1420 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1470 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1421 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1471 <target>Op sommige instanties worden expliciete video's standaard niet in zoekresultaten en in lijsten getoond.</target> 1422 <target>Op sommige instanties worden expliciete video's standaard niet in zoekresultaten en in lijsten getoond.</target>
1472 <context-group name="null"> 1423 <context-group name="null">
1473 <context context-type="linenumber">119</context> 1424 <context context-type="linenumber">116</context>
1474 </context-group> 1425 </context-group>
1475 </trans-unit> 1426 </trans-unit>
1476 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1427 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1477 <source>Enable video comments</source> 1428 <source>Enable video comments</source>
1478 <target>Videoreacties toelaten</target> 1429 <target>Videoreacties toelaten</target>
1479 <context-group name="null"> 1430 <context-group name="null">
1480 <context context-type="linenumber">126</context> 1431 <context context-type="linenumber">121</context>
1481 </context-group> 1432 </context-group>
1482 </trans-unit> 1433 </trans-unit>
1483 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1434 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1484 <source>Wait transcoding before publishing the video</source> 1435 <source>Wait transcoding before publishing the video</source>
1485 <target>Wacht tot het transcoderen voltooid is om de video te publiceren</target> 1436 <target>Wacht tot het transcoderen voltooid is om de video te publiceren</target>
1486 <context-group name="null"> 1437 <context-group name="null">
1487 <context context-type="linenumber">132</context> 1438 <context context-type="linenumber">126</context>
1488 </context-group>
1489 </trans-unit>
1490 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1491 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1492 <target>Als je beslist niet te wachten tot het transcoderen voltooid is voordat je de video publiceert, is die mogelijks niet overal afspeelbaar tot het transcoderen klaar is.</target>
1493 <context-group name="null">
1494 <context context-type="linenumber">135</context>
1495 </context-group> 1439 </context-group>
1496 </trans-unit> 1440 </trans-unit>
1497 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1441 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1505,42 +1449,35 @@ Als je een video uploadt in dit kanaal, wordt deze tekst ingevuld in het "onders
1505 <source>Upload thumbnail</source> 1449 <source>Upload thumbnail</source>
1506 <target>Thumbnail uploaden</target> 1450 <target>Thumbnail uploaden</target>
1507 <context-group name="null"> 1451 <context-group name="null">
1508 <context context-type="linenumber">146</context> 1452 <context context-type="linenumber">186</context>
1509 </context-group> 1453 </context-group>
1510 </trans-unit> 1454 </trans-unit>
1511 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1455 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1512 <source>Upload preview</source> 1456 <source>Upload preview</source>
1513 <target>Voorvertoning uploaden</target> 1457 <target>Voorvertoning uploaden</target>
1514 <context-group name="null"> 1458 <context-group name="null">
1515 <context context-type="linenumber">153</context> 1459 <context context-type="linenumber">193</context>
1516 </context-group> 1460 </context-group>
1517 </trans-unit> 1461 </trans-unit>
1518 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1462 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1519 <source>Support</source> 1463 <source>Support</source>
1520 <target>Ondersteun</target> 1464 <target>Ondersteun</target>
1521 <context-group name="null"> 1465 <context-group name="null">
1522 <context context-type="linenumber">59</context> 1466 <context context-type="linenumber">67</context>
1523 </context-group> 1467 </context-group>
1524 </trans-unit> 1468 </trans-unit>
1525 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1469 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1526 <source>Short text to tell people how they can support you (membership platform...).</source> 1470 <source>Short text to tell people how they can support you (membership platform...).</source>
1527 <target>Korte tekst om mensen te vertellen hoe ze je kanaal kunnen ondersteunen (bv. door gelddonaties).</target> 1471 <target>Korte tekst om mensen te vertellen hoe ze je kanaal kunnen ondersteunen (bv. door gelddonaties).</target>
1528 <context-group name="null"> 1472 <context-group name="null">
1529 <context context-type="linenumber">160</context> 1473 <context context-type="linenumber">200</context>
1530 </context-group> 1474 </context-group>
1531 </trans-unit> 1475 </trans-unit>
1532 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1476 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1533 <source>Advanced settings</source> 1477 <source>Advanced settings</source>
1534 <target>Geavanceerde instellingen</target> 1478 <target>Geavanceerde instellingen</target>
1535 <context-group name="null"> 1479 <context-group name="null">
1536 <context context-type="linenumber">142</context> 1480 <context context-type="linenumber">182</context>
1537 </context-group>
1538 </trans-unit>
1539 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1540 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1541 <target>(extensies: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, maximale grootte: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1542 <context-group name="null">
1543 <context context-type="linenumber">11</context>
1544 </context-group> 1481 </context-group>
1545 </trans-unit> 1482 </trans-unit>
1546 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1483 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
diff --git a/client/src/locale/target/angular_oc.xml b/client/src/locale/target/angular_oc.xml
index 553df7050..f8514c7b9 100644
--- a/client/src/locale/target/angular_oc.xml
+++ b/client/src/locale/target/angular_oc.xml
@@ -10,14 +10,14 @@
10 <target> 10 <target>
11 Anullar </target> 11 Anullar </target>
12 <context-group name="null"> 12 <context-group name="null">
13 <context context-type="linenumber">40</context> 13 <context context-type="linenumber">45</context>
14 </context-group> 14 </context-group>
15 </trans-unit> 15 </trans-unit>
16 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 16 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
17 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 17 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
18 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions</target> 18 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions</target>
19 <context-group name="null"> 19 <context-group name="null">
20 <context context-type="linenumber">12</context> 20 <context context-type="linenumber">34</context>
21 </context-group> 21 </context-group>
22 </trans-unit> 22 </trans-unit>
23 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 23 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -45,7 +45,7 @@
45 <source>Get help</source> 45 <source>Get help</source>
46 <target>Obténer d’ajuda</target> 46 <target>Obténer d’ajuda</target>
47 <context-group name="null"> 47 <context-group name="null">
48 <context context-type="linenumber">17</context> 48 <context context-type="linenumber">18</context>
49 </context-group> 49 </context-group>
50 </trans-unit> 50 </trans-unit>
51 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 51 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -106,7 +106,7 @@
106 <source>Password</source> 106 <source>Password</source>
107 <target>Senhal</target> 107 <target>Senhal</target>
108 <context-group name="null"> 108 <context-group name="null">
109 <context context-type="linenumber">28</context> 109 <context context-type="linenumber">12</context>
110 </context-group> 110 </context-group>
111 </trans-unit> 111 </trans-unit>
112 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 112 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -327,6 +327,27 @@
327 <context context-type="linenumber">9</context> 327 <context context-type="linenumber">9</context>
328 </context-group> 328 </context-group>
329 </trans-unit> 329 </trans-unit>
330 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
331 <source>Category</source>
332 <target>Categoria</target>
333 <context-group name="null">
334 <context context-type="linenumber">144</context>
335 </context-group>
336 </trans-unit>
337 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
338 <source>Licence</source>
339 <target>Licéncia</target>
340 <context-group name="null">
341 <context context-type="linenumber">153</context>
342 </context-group>
343 </trans-unit>
344 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
345 <source>Language</source>
346 <target>Lenga</target>
347 <context-group name="null">
348 <context context-type="linenumber">162</context>
349 </context-group>
350 </trans-unit>
330 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 351 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
331 <source>No results.</source> 352 <source>No results.</source>
332 <target>Cap de resultat</target> 353 <target>Cap de resultat</target>
@@ -458,6 +479,19 @@
458 <context context-type="linenumber">18</context> 479 <context context-type="linenumber">18</context>
459 </context-group> 480 </context-group>
460 </trans-unit> 481 </trans-unit>
482 <trans-unit id="cd429d53cb8f4a87879301248e38cb85f07fa9d6">
483 <source>
484 PeerTube uses the BitTorrent protocol to share bandwidth between users.
485 This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video.
486 </source>
487 <target>
488 PeerTube utiliza lo protocòl BitTorrent per partejar la capacitat de connexion entre los utilizaires.
489 Aquò significa que vòstra adreça IP es gardada dins l’instància del traçadors BitTorrent tan que telecargatz o agachatz una vidèo.
490 </target>
491 <context-group name="null">
492 <context context-type="linenumber">20</context>
493 </context-group>
494 </trans-unit>
461 <trans-unit id="e4ce50f3019e3ebe9a479784c6cb68a31c7a8231"> 495 <trans-unit id="e4ce50f3019e3ebe9a479784c6cb68a31c7a8231">
462 <source>What are the consequences?</source> 496 <source>What are the consequences?</source>
463 <target>Quinas son las consequéncias ? </target> 497 <target>Quinas son las consequéncias ? </target>
@@ -465,6 +499,43 @@
465 <context context-type="linenumber">25</context> 499 <context context-type="linenumber">25</context>
466 </context-group> 500 </context-group>
467 </trans-unit> 501 </trans-unit>
502 <trans-unit id="9a612748b059ad246935df17ef4ec4e6afb43a2a">
503 <source>
504 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video.
505 In practice, this is much more difficult because:
506 </source>
507 <target>
508 En teoria, qualqu’un amb pro competéncias tecnicas poiriá crear un script que pista quala adreça IP es a telecargar quina vidèo.
509 En pratica, aquò es mai complicat pr’amor :
510 </target>
511 <context-group name="null">
512 <context context-type="linenumber">27</context>
513 </context-group>
514 </trans-unit>
515 <trans-unit id="64f96be62df4a95a0615b6f630ad25d6348a29d3">
516 <source>
517 An HTTP request has to be sent on each tracker for each video to spy.
518 If we want to spy all PeerTube's videos, we have to send as many requests as there are videos (so potentially a lot)
519 </source>
520 <target>
521 Una requèsta HTTP deu èsser enviada a cada traçadors per cada vidèo d’espiar.
522 Se volèm espiar totas las vidèo de PeerTube, avèm d’enviar tantas requèstas qu’i a de vidèos (doncas potencialament un molon)
523 </target>
524 <context-group name="null">
525 <context context-type="linenumber">33</context>
526 </context-group>
527 </trans-unit>
528 <trans-unit id="44bbecddbdf2aad1f4bad97cb806560553fb2ab3">
529 <source>
530 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
531 </source>
532 <target>
533 S’una adreça es garda dins lo traçador, aquò vòl pas dire que la persona (s’existís) darrièr l’IP a agachat la vidèo
534 </target>
535 <context-group name="null">
536 <context context-type="linenumber">47</context>
537 </context-group>
538 </trans-unit>
468 <trans-unit id="3c2990d5e452bdf2317ff23745db70705d848d99"> 539 <trans-unit id="3c2990d5e452bdf2317ff23745db70705d848d99">
469 <source>What can I do to limit the exposure of my IP address?</source> 540 <source>What can I do to limit the exposure of my IP address?</source>
470 <target>Qué pòdi far per limitar l’exposicion de mon adreça IP ?</target> 541 <target>Qué pòdi far per limitar l’exposicion de mon adreça IP ?</target>
@@ -609,42 +680,42 @@
609 <source>Signup enabled</source> 680 <source>Signup enabled</source>
610 <target>Inscripcions activadas</target> 681 <target>Inscripcions activadas</target>
611 <context-group name="null"> 682 <context-group name="null">
612 <context context-type="linenumber">92</context> 683 <context context-type="linenumber">90</context>
613 </context-group> 684 </context-group>
614 </trans-unit> 685 </trans-unit>
615 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 686 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
616 <source>Signup limit</source> 687 <source>Signup limit</source>
617 <target>Limit d’inscripcions</target> 688 <target>Limit d’inscripcions</target>
618 <context-group name="null"> 689 <context-group name="null">
619 <context context-type="linenumber">96</context> 690 <context context-type="linenumber">94</context>
620 </context-group> 691 </context-group>
621 </trans-unit> 692 </trans-unit>
622 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 693 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
623 <source>Administrator</source> 694 <source>Administrator</source>
624 <target>Administrator</target> 695 <target>Administrator</target>
625 <context-group name="null"> 696 <context-group name="null">
626 <context context-type="linenumber">106</context> 697 <context context-type="linenumber">104</context>
627 </context-group> 698 </context-group>
628 </trans-unit> 699 </trans-unit>
629 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 700 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
630 <source>Admin email</source> 701 <source>Admin email</source>
631 <target>Adreça de l’admin</target> 702 <target>Adreça de l’admin</target>
632 <context-group name="null"> 703 <context-group name="null">
633 <context context-type="linenumber">109</context> 704 <context context-type="linenumber">107</context>
634 </context-group> 705 </context-group>
635 </trans-unit> 706 </trans-unit>
636 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 707 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
637 <source>Users</source> 708 <source>Users</source>
638 <target>Utilizaires</target> 709 <target>Utilizaires</target>
639 <context-group name="null"> 710 <context-group name="null">
640 <context context-type="linenumber">119</context> 711 <context context-type="linenumber">117</context>
641 </context-group> 712 </context-group>
642 </trans-unit> 713 </trans-unit>
643 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 714 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
644 <source>User default video quota</source> 715 <source>User default video quota</source>
645 <target>Quòta per defaut per utilizaire</target> 716 <target>Quòta per defaut per utilizaire</target>
646 <context-group name="null"> 717 <context-group name="null">
647 <context context-type="linenumber">122</context> 718 <context context-type="linenumber">120</context>
648 </context-group> 719 </context-group>
649 </trans-unit> 720 </trans-unit>
650 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 721 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -658,91 +729,111 @@
658 <source>Twitter</source> 729 <source>Twitter</source>
659 <target>Twitter</target> 730 <target>Twitter</target>
660 <context-group name="null"> 731 <context-group name="null">
661 <context context-type="linenumber">138</context> 732 <context context-type="linenumber">136</context>
662 </context-group> 733 </context-group>
663 </trans-unit> 734 </trans-unit>
664 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 735 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
665 <source>Your Twitter username</source> 736 <source>Your Twitter username</source>
666 <target>Vòstre nom d’utilizaire Twitter</target> 737 <target>Vòstre nom d’utilizaire Twitter</target>
667 <context-group name="null"> 738 <context-group name="null">
668 <context context-type="linenumber">141</context> 739 <context context-type="linenumber">139</context>
669 </context-group> 740 </context-group>
670 </trans-unit> 741 </trans-unit>
671 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 742 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
672 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 743 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
673 <target>Indica lo compte Twitter del site o de la plataforma ont lo contengut foguèt publicat.</target> 744 <target>Indica lo compte Twitter del site o de la plataforma ont lo contengut foguèt publicat.</target>
674 <context-group name="null"> 745 <context-group name="null">
675 <context context-type="linenumber">144</context> 746 <context context-type="linenumber">142</context>
676 </context-group> 747 </context-group>
677 </trans-unit> 748 </trans-unit>
678 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 749 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
679 <source>Instance whitelisted by Twitter</source> 750 <source>Instance whitelisted by Twitter</source>
680 <target>Instàncias en lista blanca per Twitter</target> 751 <target>Instàncias en lista blanca per Twitter</target>
681 <context-group name="null"> 752 <context-group name="null">
682 <context context-type="linenumber">159</context> 753 <context context-type="linenumber">155</context>
683 </context-group> 754 </context-group>
684 </trans-unit> 755 </trans-unit>
685 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 756 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
686 <source>Services</source> 757 <source>Services</source>
687 <target>Servicis</target> 758 <target>Servicis</target>
688 <context-group name="null"> 759 <context-group name="null">
689 <context context-type="linenumber">136</context> 760 <context context-type="linenumber">134</context>
761 </context-group>
762 </trans-unit>
763 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
764 <source>Transcoding</source>
765 <target>Transcodatge</target>
766 <context-group name="null">
767 <context context-type="linenumber">164</context>
690 </context-group> 768 </context-group>
691 </trans-unit> 769 </trans-unit>
692 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0"> 770 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
693 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source> 771 <source>Transcoding enabled</source>
694 <target>Resolucion <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> activada</target> 772 <target>Transcodatge activat</target>
695 <context-group name="null"> 773 <context-group name="null">
696 <context context-type="linenumber">205</context> 774 <context context-type="linenumber">168</context>
697 </context-group> 775 </context-group>
698 </trans-unit> 776 </trans-unit>
699 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38"> 777 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
700 <source>Cache</source> 778 <source>If you disable transcoding, many videos from your users will not work!</source>
701 <target>Cache</target> 779 <target>Se desactivatz lo transcodatge, un fum de vidèos de vòstres utilizaires foncionaràn pas !</target>
702 <context-group name="null"> 780 <context-group name="null">
703 <context context-type="linenumber">209</context> 781 <context context-type="linenumber">169</context>
782 </context-group>
783 </trans-unit>
784 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
785 <source>Transcoding threads</source>
786 <context-group name="null">
787 <context context-type="linenumber">175</context>
704 </context-group> 788 </context-group>
705 </trans-unit> 789 </trans-unit>
706 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 790 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
707 <source>Previews cache size</source> 791 <source>Previews cache size</source>
708 <target>Talha del cache d’apercebut</target> 792 <target>Talha del cache d’apercebut</target>
709 <context-group name="null"> 793 <context-group name="null">
710 <context context-type="linenumber">212</context> 794 <context context-type="linenumber">207</context>
711 </context-group> 795 </context-group>
712 </trans-unit> 796 </trans-unit>
713 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 797 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
714 <source>Customizations</source> 798 <source>Customizations</source>
715 <target>Personalizacions</target> 799 <target>Personalizacions</target>
716 <context-group name="null"> 800 <context-group name="null">
717 <context context-type="linenumber">227</context> 801 <context context-type="linenumber">228</context>
718 </context-group> 802 </context-group>
719 </trans-unit> 803 </trans-unit>
720 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 804 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
721 <source>JavaScript</source> 805 <source>JavaScript</source>
722 <target>JavaScript</target> 806 <target>JavaScript</target>
723 <context-group name="null"> 807 <context-group name="null">
724 <context context-type="linenumber">230</context> 808 <context context-type="linenumber">231</context>
809 </context-group>
810 </trans-unit>
811 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
812 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
813 <target>Escrivètz dirèctament de JavaScript còdi.&lt;br /&gt;Exemple : &lt;pre&gt;console.log('mon instància es tròp crana');&lt;/pre&gt;</target>
814 <context-group name="null">
815 <context context-type="linenumber">234</context>
725 </context-group> 816 </context-group>
726 </trans-unit> 817 </trans-unit>
727 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 818 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
728 <source>Advanced configuration</source> 819 <source>Advanced configuration</source>
729 <target>Configuracion avançada</target> 820 <target>Configuracion avançada</target>
730 <context-group name="null"> 821 <context-group name="null">
731 <context context-type="linenumber">170</context> 822 <context context-type="linenumber">162</context>
732 </context-group> 823 </context-group>
733 </trans-unit> 824 </trans-unit>
734 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 825 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
735 <source>Update configuration</source> 826 <source>Update configuration</source>
736 <target>Actualizar la configuracion</target> 827 <target>Actualizar la configuracion</target>
737 <context-group name="null"> 828 <context-group name="null">
738 <context context-type="linenumber">276</context> 829 <context context-type="linenumber">277</context>
739 </context-group> 830 </context-group>
740 </trans-unit> 831 </trans-unit>
741 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 832 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
742 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 833 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
743 <target>Sembla que la configuracion es invalida. Mercés de cercar d’errors possiblas pels diferents onglets.</target> 834 <target>Sembla que la configuracion es invalida. Mercés de cercar d’errors possiblas pels diferents onglets.</target>
744 <context-group name="null"> 835 <context-group name="null">
745 <context context-type="linenumber">277</context> 836 <context context-type="linenumber">278</context>
746 </context-group> 837 </context-group>
747 </trans-unit> 838 </trans-unit>
748 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 839 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -767,6 +858,17 @@
767 <context context-type="linenumber">7</context> 858 <context context-type="linenumber">7</context>
768 </context-group> 859 </context-group>
769 </trans-unit> 860 </trans-unit>
861 <trans-unit id="96ccede058f0022f34230c3adc09e60076b6d037">
862 <source>
863 Video blacklist
864 </source>
865 <target>
866 Lista nègra de vidèo
867 </target>
868 <context-group name="null">
869 <context context-type="linenumber">15</context>
870 </context-group>
871 </trans-unit>
770 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368"> 872 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
771 <source> 873 <source>
772 Jobs 874 Jobs
@@ -796,6 +898,13 @@
796 <context context-type="linenumber">5</context> 898 <context context-type="linenumber">5</context>
797 </context-group> 899 </context-group>
798 </trans-unit> 900 </trans-unit>
901 <trans-unit id="456c6383d8e7cd15aadbcdc196d4ae7a70092437">
902 <source>Add following</source>
903 <target>Ajustar los abonaments</target>
904 <context-group name="null">
905 <context context-type="linenumber">21</context>
906 </context-group>
907 </trans-unit>
799 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c"> 908 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c">
800 <source>ID</source> 909 <source>ID</source>
801 <target>ID</target> 910 <target>ID</target>
@@ -817,6 +926,27 @@
817 <context context-type="linenumber">20</context> 926 <context context-type="linenumber">20</context>
818 </context-group> 927 </context-group>
819 </trans-unit> 928 </trans-unit>
929 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
930 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
931 <target>Creat <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
932 <context-group name="null">
933 <context context-type="linenumber">16</context>
934 </context-group>
935 </trans-unit>
936 <trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
937 <source>Manage follows</source>
938 <target>Gerir los abonaments</target>
939 <context-group name="null">
940 <context context-type="linenumber">2</context>
941 </context-group>
942 </trans-unit>
943 <trans-unit id="a9f2501fcb2ff71f1376c2d2fbbbd49f200e6c8f">
944 <source>Jobs list</source>
945 <target>Lista de trabalhs</target>
946 <context-group name="null">
947 <context context-type="linenumber">2</context>
948 </context-group>
949 </trans-unit>
820 <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc"> 950 <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc">
821 <source>Type</source> 951 <source>Type</source>
822 <target>Tipe</target> 952 <target>Tipe</target>
@@ -824,13 +954,6 @@
824 <context context-type="linenumber">19</context> 954 <context context-type="linenumber">19</context>
825 </context-group> 955 </context-group>
826 </trans-unit> 956 </trans-unit>
827 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
828 <source>Updated</source>
829 <target>Actualizat</target>
830 <context-group name="null">
831 <context context-type="linenumber">22</context>
832 </context-group>
833 </trans-unit>
834 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 957 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
835 <source>Create user</source> 958 <source>Create user</source>
836 <target>Crear un utilizaire</target> 959 <target>Crear un utilizaire</target>
@@ -838,6 +961,13 @@
838 <context context-type="linenumber">6</context> 961 <context context-type="linenumber">6</context>
839 </context-group> 962 </context-group>
840 </trans-unit> 963 </trans-unit>
964 <trans-unit id="2788d9a67ed2b6f35c85818e6af1871317c57a7e">
965 <source>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/></source>
966 <target>Modificar l’utilizaire <x id="INTERPOLATION" equiv-text="{{ username }}"/></target>
967 <context-group name="null">
968 <context context-type="linenumber">2</context>
969 </context-group>
970 </trans-unit>
841 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a"> 971 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a">
842 <source>john</source> 972 <source>john</source>
843 <target>joan</target> 973 <target>joan</target>
@@ -915,6 +1045,27 @@
915 <context context-type="linenumber">28</context> 1045 <context context-type="linenumber">28</context>
916 </context-group> 1046 </context-group>
917 </trans-unit> 1047 </trans-unit>
1048 <trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
1049 <source>Blacklisted videos</source>
1050 <target>Vidèos en lista nègra</target>
1051 <context-group name="null">
1052 <context context-type="linenumber">2</context>
1053 </context-group>
1054 </trans-unit>
1055 <trans-unit id="7c02d113e9b7884037834cddecf2a32a5538b35b">
1056 <source>Name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1057 <target>Nom <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1058 <context-group name="null">
1059 <context context-type="linenumber">11</context>
1060 </context-group>
1061 </trans-unit>
1062 <trans-unit id="cd5ca5da9e2fa21571e9f86a24a5c3b45a3ddc51">
1063 <source>Views <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1064 <target>Visualizacions <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1065 <context-group name="null">
1066 <context context-type="linenumber">13</context>
1067 </context-group>
1068 </trans-unit>
918 <trans-unit id="d4717113115ca7106a354a5aac54d1c0126261d9"> 1069 <trans-unit id="d4717113115ca7106a354a5aac54d1c0126261d9">
919 <source>NSFW</source> 1070 <source>NSFW</source>
920 <target>NSFW</target> 1071 <target>NSFW</target>
@@ -957,46 +1108,32 @@
957 <context context-type="linenumber">7</context> 1108 <context context-type="linenumber">7</context>
958 </context-group> 1109 </context-group>
959 </trans-unit> 1110 </trans-unit>
960 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
961 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
962 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> abonats</target>
963 <context-group name="null">
964 <context context-type="linenumber">9</context>
965 </context-group>
966 </trans-unit>
967 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
968 <source>Change your avatar</source>
969 <target>Cambiar l’avatar</target>
970 <context-group name="null">
971 <context context-type="linenumber">14</context>
972 </context-group>
973 </trans-unit>
974 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1111 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
975 <source>Video quota:</source> 1112 <source>Video quota:</source>
976 <target>Quòta vidèo :</target> 1113 <target>Quòta vidèo :</target>
977 <context-group name="null"> 1114 <context-group name="null">
978 <context context-type="linenumber">20</context> 1115 <context context-type="linenumber">4</context>
979 </context-group> 1116 </context-group>
980 </trans-unit> 1117 </trans-unit>
981 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1118 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
982 <source>Profile</source> 1119 <source>Profile</source>
983 <target>Perfil</target> 1120 <target>Perfil</target>
984 <context-group name="null"> 1121 <context-group name="null">
985 <context context-type="linenumber">24</context> 1122 <context context-type="linenumber">8</context>
986 </context-group> 1123 </context-group>
987 </trans-unit> 1124 </trans-unit>
988 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1125 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
989 <source>Video settings</source> 1126 <source>Video settings</source>
990 <target>Paramètres vidèo</target> 1127 <target>Paramètres vidèo</target>
991 <context-group name="null"> 1128 <context-group name="null">
992 <context context-type="linenumber">31</context> 1129 <context context-type="linenumber">15</context>
993 </context-group> 1130 </context-group>
994 </trans-unit> 1131 </trans-unit>
995 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1132 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
996 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1133 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
997 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vistas</target> 1134 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> vistas</target>
998 <context-group name="null"> 1135 <context-group name="null">
999 <context context-type="linenumber">20</context> 1136 <context context-type="linenumber">19</context>
1000 </context-group> 1137 </context-group>
1001 </trans-unit> 1138 </trans-unit>
1002 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1139 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1024,7 +1161,7 @@
1024 <source>Create a video channel</source> 1161 <source>Create a video channel</source>
1025 <target>Crear una cadena vidèo</target> 1162 <target>Crear una cadena vidèo</target>
1026 <context-group name="null"> 1163 <context-group name="null">
1027 <context context-type="linenumber">1</context> 1164 <context context-type="linenumber">6</context>
1028 </context-group> 1165 </context-group>
1029 </trans-unit> 1166 </trans-unit>
1030 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1167 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1055,18 +1192,25 @@
1055 <context context-type="linenumber">15</context> 1192 <context context-type="linenumber">15</context>
1056 </context-group> 1193 </context-group>
1057 </trans-unit> 1194 </trans-unit>
1195 <trans-unit id="20f62f24170d57b1efeb2387a0949f482cd4d129">
1196 <source>Default policy on videos containing sensitive content</source>
1197 <target>Politica per defaut de las vidèos amb un contengut sensible</target>
1198 <context-group name="null">
1199 <context context-type="linenumber">3</context>
1200 </context-group>
1201 </trans-unit>
1058 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2"> 1202 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
1059 <source>Automatically plays video</source> 1203 <source>Automatically plays video</source>
1060 <target>Legir automaticament las vidèos</target> 1204 <target>Legir automaticament las vidèos</target>
1061 <context-group name="null"> 1205 <context-group name="null">
1062 <context context-type="linenumber">24</context> 1206 <context context-type="linenumber">20</context>
1063 </context-group> 1207 </context-group>
1064 </trans-unit> 1208 </trans-unit>
1065 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1209 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1066 <source>Save</source> 1210 <source>Save</source>
1067 <target>Salvagardar</target> 1211 <target>Salvagardar</target>
1068 <context-group name="null"> 1212 <context-group name="null">
1069 <context context-type="linenumber">27</context> 1213 <context context-type="linenumber">23</context>
1070 </context-group> 1214 </context-group>
1071 </trans-unit> 1215 </trans-unit>
1072 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1216 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1076,6 +1220,13 @@
1076 <context context-type="linenumber">27</context> 1220 <context context-type="linenumber">27</context>
1077 </context-group> 1221 </context-group>
1078 </trans-unit> 1222 </trans-unit>
1223 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1224 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1225 <target>(extensions : <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, talha max : <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1226 <context-group name="null">
1227 <context context-type="linenumber">18</context>
1228 </context-group>
1229 </trans-unit>
1079 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1230 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1080 <source> 1231 <source>
1081 Sorry, but we couldn't find the page you were looking for. 1232 Sorry, but we couldn't find the page you were looking for.
@@ -1108,6 +1259,13 @@
1108 <context context-type="linenumber">9</context> 1259 <context context-type="linenumber">9</context>
1109 </context-group> 1260 </context-group>
1110 </trans-unit> 1261 </trans-unit>
1262 <trans-unit id="5523952d0300c96cfba2ec5a693c95f923e90c40">
1263 <source>Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></source>
1264 <target>Creada <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></target>
1265 <context-group name="null">
1266 <context context-type="linenumber">17</context>
1267 </context-group>
1268 </trans-unit>
1111 <trans-unit id="d4dcf74163f127ca9afa84d55b5d95846958faa0"> 1269 <trans-unit id="d4dcf74163f127ca9afa84d55b5d95846958faa0">
1112 <source>Upload your video</source> 1270 <source>Upload your video</source>
1113 <target>Mandatz vòstras vidèos</target> 1271 <target>Mandatz vòstras vidèos</target>
@@ -1115,6 +1273,13 @@
1115 <context context-type="linenumber">3</context> 1273 <context context-type="linenumber">3</context>
1116 </context-group> 1274 </context-group>
1117 </trans-unit> 1275 </trans-unit>
1276 <trans-unit id="1af3dcf5aad5b7f4b3251da88a89dc9a184445dd">
1277 <source>Upload <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></source>
1278 <target>Actualizada <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></target>
1279 <context-group name="null">
1280 <context context-type="linenumber">4</context>
1281 </context-group>
1282 </trans-unit>
1118 <trans-unit id="21add64f0f3ebbedf1150ca822c6e149494ab7a9"> 1283 <trans-unit id="21add64f0f3ebbedf1150ca822c6e149494ab7a9">
1119 <source>Select the file to upload</source> 1284 <source>Select the file to upload</source>
1120 <target>Selecionnatz lo fichièr de mandar</target> 1285 <target>Selecionnatz lo fichièr de mandar</target>
@@ -1133,21 +1298,21 @@
1133 <source>Privacy</source> 1298 <source>Privacy</source>
1134 <target>Confidencialitat</target> 1299 <target>Confidencialitat</target>
1135 <context-group name="null"> 1300 <context-group name="null">
1136 <context context-type="linenumber">86</context> 1301 <context context-type="linenumber">139</context>
1137 </context-group> 1302 </context-group>
1138 </trans-unit> 1303 </trans-unit>
1139 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1304 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1140 <source>Publish will be available when upload is finished</source> 1305 <source>Publish will be available when upload is finished</source>
1141 <target>La publicacion serà possibla un còp lo mandadís acabat</target> 1306 <target>La publicacion serà possibla un còp lo mandadís acabat</target>
1142 <context-group name="null"> 1307 <context-group name="null">
1143 <context context-type="linenumber">53</context> 1308 <context context-type="linenumber">54</context>
1144 </context-group> 1309 </context-group>
1145 </trans-unit> 1310 </trans-unit>
1146 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1311 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1147 <source>Publish</source> 1312 <source>Publish</source>
1148 <target>Publicar</target> 1313 <target>Publicar</target>
1149 <context-group name="null"> 1314 <context-group name="null">
1150 <context context-type="linenumber">60</context> 1315 <context context-type="linenumber">61</context>
1151 </context-group> 1316 </context-group>
1152 </trans-unit> 1317 </trans-unit>
1153 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1318 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1161,7 +1326,7 @@
1161 <source>Tags</source> 1326 <source>Tags</source>
1162 <target>Etiquetas</target> 1327 <target>Etiquetas</target>
1163 <context-group name="null"> 1328 <context-group name="null">
1164 <context context-type="linenumber">15</context> 1329 <context context-type="linenumber">171</context>
1165 </context-group> 1330 </context-group>
1166 </trans-unit> 1331 </trans-unit>
1167 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1332 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1171,31 +1336,24 @@
1171 <context context-type="linenumber">15</context> 1336 <context context-type="linenumber">15</context>
1172 </context-group> 1337 </context-group>
1173 </trans-unit> 1338 </trans-unit>
1174 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94"> 1339 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1175 <source>Category</source> 1340 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1176 <target>Categoria</target> 1341 <target>Publicacion programada (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
1177 <context-group name="null">
1178 <context context-type="linenumber">44</context>
1179 </context-group>
1180 </trans-unit>
1181 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1182 <source>Licence</source>
1183 <target>Licéncia</target>
1184 <context-group name="null">
1185 <context context-type="linenumber">58</context>
1186 </context-group>
1187 </trans-unit>
1188 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1189 <source>Language</source>
1190 <target>Lenga</target>
1191 <context-group name="null"> 1342 <context-group name="null">
1192 <context context-type="linenumber">72</context> 1343 <context context-type="linenumber">101</context>
1193 </context-group> 1344 </context-group>
1194 </trans-unit> 1345 </trans-unit>
1195 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1346 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1196 <source>Enable video comments</source> 1347 <source>Enable video comments</source>
1197 <target>Activar los comentaris</target> 1348 <target>Activar los comentaris</target>
1198 <context-group name="null"> 1349 <context-group name="null">
1350 <context context-type="linenumber">121</context>
1351 </context-group>
1352 </trans-unit>
1353 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1354 <source>Wait transcoding before publishing the video</source>
1355 <target>Esperatz lo transcodatge abans de publicar la vidèo</target>
1356 <context-group name="null">
1199 <context context-type="linenumber">126</context> 1357 <context context-type="linenumber">126</context>
1200 </context-group> 1358 </context-group>
1201 </trans-unit> 1359 </trans-unit>
@@ -1210,28 +1368,46 @@
1210 <source>Upload thumbnail</source> 1368 <source>Upload thumbnail</source>
1211 <target>Enviar una vinheta d’apercebut</target> 1369 <target>Enviar una vinheta d’apercebut</target>
1212 <context-group name="null"> 1370 <context-group name="null">
1213 <context context-type="linenumber">146</context> 1371 <context context-type="linenumber">186</context>
1214 </context-group> 1372 </context-group>
1215 </trans-unit> 1373 </trans-unit>
1216 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1374 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1217 <source>Upload preview</source> 1375 <source>Upload preview</source>
1218 <target>Enviar un apercebut</target> 1376 <target>Enviar un apercebut</target>
1219 <context-group name="null"> 1377 <context-group name="null">
1220 <context context-type="linenumber">153</context> 1378 <context context-type="linenumber">193</context>
1221 </context-group> 1379 </context-group>
1222 </trans-unit> 1380 </trans-unit>
1223 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1381 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1224 <source>Support</source> 1382 <source>Support</source>
1225 <target>Sosténer</target> 1383 <target>Sosténer</target>
1226 <context-group name="null"> 1384 <context-group name="null">
1227 <context context-type="linenumber">59</context> 1385 <context context-type="linenumber">67</context>
1228 </context-group> 1386 </context-group>
1229 </trans-unit> 1387 </trans-unit>
1230 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1388 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1231 <source>Advanced settings</source> 1389 <source>Advanced settings</source>
1232 <target>Paramètres avançats</target> 1390 <target>Paramètres avançats</target>
1233 <context-group name="null"> 1391 <context-group name="null">
1234 <context context-type="linenumber">142</context> 1392 <context context-type="linenumber">182</context>
1393 </context-group>
1394 </trans-unit>
1395 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
1396 <source>
1397 Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1398 </source>
1399 <target>
1400 Actualizar <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1401 </target>
1402 <context-group name="null">
1403 <context context-type="linenumber">2</context>
1404 </context-group>
1405 </trans-unit>
1406 <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb">
1407 <source>Update</source>
1408 <target>Actualizar</target>
1409 <context-group name="null">
1410 <context context-type="linenumber">101</context>
1235 </context-group> 1411 </context-group>
1236 </trans-unit> 1412 </trans-unit>
1237 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1413 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1241,32 +1417,18 @@
1241 <context context-type="linenumber">7</context> 1417 <context context-type="linenumber">7</context>
1242 </context-group> 1418 </context-group>
1243 </trans-unit> 1419 </trans-unit>
1244 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1245 <source>Torrent</source>
1246 <target>Torrent</target>
1247 <context-group name="null">
1248 <context context-type="linenumber">20</context>
1249 </context-group>
1250 </trans-unit>
1251 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1420 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1252 <source>Direct download</source> 1421 <source>Direct download</source>
1253 <target>Telecargament dirècte</target> 1422 <target>Telecargament dirècte</target>
1254 <context-group name="null"> 1423 <context-group name="null">
1255 <context context-type="linenumber">25</context> 1424 <context context-type="linenumber">20</context>
1256 </context-group>
1257 </trans-unit>
1258 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1259 <source>Torrent (magnet)</source>
1260 <target>Torrent (magnet)</target>
1261 <context-group name="null">
1262 <context context-type="linenumber">30</context>
1263 </context-group> 1425 </context-group>
1264 </trans-unit> 1426 </trans-unit>
1265 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1427 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1266 <source>Download</source> 1428 <source>Download</source>
1267 <target>Telecargar</target> 1429 <target>Telecargar</target>
1268 <context-group name="null"> 1430 <context-group name="null">
1269 <context context-type="linenumber">75</context> 1431 <context context-type="linenumber">83</context>
1270 </context-group> 1432 </context-group>
1271 </trans-unit> 1433 </trans-unit>
1272 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1434 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1305,7 +1467,7 @@
1305 <source>Share</source> 1467 <source>Share</source>
1306 <target>Partejar</target> 1468 <target>Partejar</target>
1307 <context-group name="null"> 1469 <context-group name="null">
1308 <context context-type="linenumber">64</context> 1470 <context context-type="linenumber">72</context>
1309 </context-group> 1471 </context-group>
1310 </trans-unit> 1472 </trans-unit>
1311 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1473 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1322,80 +1484,135 @@
1322 <context context-type="linenumber">24</context> 1484 <context context-type="linenumber">24</context>
1323 </context-group> 1485 </context-group>
1324 </trans-unit> 1486 </trans-unit>
1325 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1487 <trans-unit id="9ed65ae88f6c982bc44d6fed2796e55f47dbf304">
1326 <source>Delete this video</source> 1488 <source>
1327 <target>Suprimir aquesta vidèo</target> 1489 The video is being transcoded, it may not work properly.
1328 <context-group name="null"> 1490 </source>
1329 <context context-type="linenumber">98</context> 1491 <target>
1330 </context-group> 1492 La vidèo es en transcodatge, pòt arribar que foncione pas coma cal.
1331 </trans-unit> 1493 </target>
1332 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1333 <source>Show more</source>
1334 <target>Ne veire mai</target>
1335 <context-group name="null"> 1494 <context-group name="null">
1336 <context context-type="linenumber">118</context> 1495 <context context-type="linenumber">11</context>
1337 </context-group> 1496 </context-group>
1338 </trans-unit> 1497 </trans-unit>
1339 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1498 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
1340 <source>Show less</source> 1499 <source>
1341 <target>Ne veire mens</target> 1500 This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1501 </source>
1502 <target>
1503 Aquesta vidèo serà publicada lo <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1504 </target>
1342 <context-group name="null"> 1505 <context-group name="null">
1343 <context context-type="linenumber">124</context> 1506 <context context-type="linenumber">15</context>
1344 </context-group> 1507 </context-group>
1345 </trans-unit> 1508 </trans-unit>
1346 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911"> 1509 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
1347 <source> 1510 <source>
1348 Privacy 1511 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views
1349 </source> 1512 </source>
1350 <target> 1513 <target>
1351 Vida privada 1514 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizacions
1352 </target> 1515 </target>
1353 <context-group name="null"> 1516 <context-group name="null">
1354 <context context-type="linenumber">131</context> 1517 <context context-type="linenumber">26</context>
1355 </context-group> 1518 </context-group>
1356 </trans-unit> 1519 </trans-unit>
1357 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8"> 1520 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1358 <source> 1521 <source>Go the channel page</source>
1359 Category 1522 <target>Anar la pagina de la cadena</target>
1360 </source>
1361 <target>
1362 Categoria
1363 </target>
1364 <context-group name="null"> 1523 <context-group name="null">
1365 <context context-type="linenumber">140</context> 1524 <context context-type="linenumber">31</context>
1366 </context-group> 1525 </context-group>
1367 </trans-unit> 1526 </trans-unit>
1368 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832"> 1527 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1369 <source> 1528 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1370 Licence 1529 <target>Per <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1371 </source>
1372 <target>
1373 Licéncia
1374 </target>
1375 <context-group name="null"> 1530 <context-group name="null">
1376 <context context-type="linenumber">149</context> 1531 <context context-type="linenumber">41</context>
1377 </context-group> 1532 </context-group>
1378 </trans-unit> 1533 </trans-unit>
1379 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67"> 1534 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1380 <source> 1535 <source>Go to the account page</source>
1381 Language 1536 <target>Anar a la pagina del compte</target>
1382 </source>
1383 <target>
1384 Lenga
1385 </target>
1386 <context-group name="null"> 1537 <context-group name="null">
1387 <context context-type="linenumber">158</context> 1538 <context context-type="linenumber">40</context>
1388 </context-group> 1539 </context-group>
1389 </trans-unit> 1540 </trans-unit>
1390 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3"> 1541 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1391 <source> 1542 <source>Like this video</source>
1392 Tags 1543 <target>Aimar la vidèo</target>
1393 </source> 1544 <context-group name="null">
1394 <target> 1545 <context context-type="linenumber">55</context>
1395 Etiquetas 1546 </context-group>
1396 </target> 1547 </trans-unit>
1548 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1549 <source>Dislike this video</source>
1550 <target>Aimar pas mai la vidèo</target>
1397 <context-group name="null"> 1551 <context-group name="null">
1398 <context context-type="linenumber">167</context> 1552 <context context-type="linenumber">62</context>
1553 </context-group>
1554 </trans-unit>
1555 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1556 <source>Download the video</source>
1557 <target>Telecargar la vidèo</target>
1558 <context-group name="null">
1559 <context context-type="linenumber">82</context>
1560 </context-group>
1561 </trans-unit>
1562 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1563 <source>Report</source>
1564 <target>Senhalar</target>
1565 <context-group name="null">
1566 <context context-type="linenumber">89</context>
1567 </context-group>
1568 </trans-unit>
1569 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1570 <source>Report this video</source>
1571 <target>Senhalar aquesta vidèo</target>
1572 <context-group name="null">
1573 <context context-type="linenumber">88</context>
1574 </context-group>
1575 </trans-unit>
1576 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1577 <source>Blacklist</source>
1578 <target>Lista nègra</target>
1579 <context-group name="null">
1580 <context context-type="linenumber">95</context>
1581 </context-group>
1582 </trans-unit>
1583 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1584 <source>Blacklist this video</source>
1585 <target>Metre en lista nègra</target>
1586 <context-group name="null">
1587 <context context-type="linenumber">94</context>
1588 </context-group>
1589 </trans-unit>
1590 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1591 <source>Update this video</source>
1592 <target>Enviar aquesta vidèo</target>
1593 <context-group name="null">
1594 <context context-type="linenumber">100</context>
1595 </context-group>
1596 </trans-unit>
1597 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1598 <source>Delete this video</source>
1599 <target>Suprimir aquesta vidèo</target>
1600 <context-group name="null">
1601 <context context-type="linenumber">106</context>
1602 </context-group>
1603 </trans-unit>
1604 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1605 <source>Show more</source>
1606 <target>Ne veire mai</target>
1607 <context-group name="null">
1608 <context context-type="linenumber">126</context>
1609 </context-group>
1610 </trans-unit>
1611 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1612 <source>Show less</source>
1613 <target>Ne veire mens</target>
1614 <context-group name="null">
1615 <context context-type="linenumber">132</context>
1399 </context-group> 1616 </context-group>
1400 </trans-unit> 1617 </trans-unit>
1401 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1618 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -1406,21 +1623,21 @@
1406 Autras vidèos 1623 Autras vidèos
1407 </target> 1624 </target>
1408 <context-group name="null"> 1625 <context-group name="null">
1409 <context context-type="linenumber">181</context> 1626 <context context-type="linenumber">183</context>
1410 </context-group> 1627 </context-group>
1411 </trans-unit> 1628 </trans-unit>
1412 <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e"> 1629 <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e">
1413 <source>More information</source> 1630 <source>More information</source>
1414 <target>Mai d’informacions</target> 1631 <target>Mai d’informacions</target>
1415 <context-group name="null"> 1632 <context-group name="null">
1416 <context context-type="linenumber">198</context> 1633 <context context-type="linenumber">200</context>
1417 </context-group> 1634 </context-group>
1418 </trans-unit> 1635 </trans-unit>
1419 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1636 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
1420 <source>Get more information</source> 1637 <source>Get more information</source>
1421 <target>Obténer mai d’informacions</target> 1638 <target>Obténer mai d’informacions</target>
1422 <context-group name="null"> 1639 <context-group name="null">
1423 <context context-type="linenumber">198</context> 1640 <context context-type="linenumber">200</context>
1424 </context-group> 1641 </context-group>
1425 </trans-unit> 1642 </trans-unit>
1426 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1643 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -1431,7 +1648,7 @@
1431 D’acòrdi 1648 D’acòrdi
1432 </target> 1649 </target>
1433 <context-group name="null"> 1650 <context-group name="null">
1434 <context context-type="linenumber">201</context> 1651 <context context-type="linenumber">203</context>
1435 </context-group> 1652 </context-group>
1436 </trans-unit> 1653 </trans-unit>
1437 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1654 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -1452,6 +1669,13 @@
1452 <context context-type="linenumber">19</context> 1669 <context context-type="linenumber">19</context>
1453 </context-group> 1670 </context-group>
1454 </trans-unit> 1671 </trans-unit>
1672 <trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
1673 <source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
1674 <target>Veire totas las <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> responsas</target>
1675 <context-group name="null">
1676 <context context-type="linenumber">56</context>
1677 </context-group>
1678 </trans-unit>
1455 <trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828"> 1679 <trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
1456 <source> 1680 <source>
1457 Comments are disabled. 1681 Comments are disabled.
@@ -1516,6 +1740,97 @@
1516 <context context-type="linenumber">1</context> 1740 <context context-type="linenumber">1</context>
1517 </context-group> 1741 </context-group>
1518 </trans-unit> 1742 </trans-unit>
1743 <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
1744 <source>Error</source>
1745 <target>Error</target>
1746 <context-group name="null">
1747 <context context-type="linenumber">1</context>
1748 </context-group>
1749 </trans-unit>
1750 <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
1751 <source>Are you sure you want to update the configuration?</source>
1752 <target>Volètz vertadièrament actualizar la configuracion ?</target>
1753 <context-group name="null">
1754 <context context-type="linenumber">1</context>
1755 </context-group>
1756 </trans-unit>
1757 <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
1758 <source>Please type</source>
1759 <target>Mercés de picar</target>
1760 <context-group name="null">
1761 <context context-type="linenumber">1</context>
1762 </context-group>
1763 </trans-unit>
1764 <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
1765 <source>to confirm.</source>
1766 <target>per confirmar.</target>
1767 <context-group name="null">
1768 <context context-type="linenumber">1</context>
1769 </context-group>
1770 </trans-unit>
1771 <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
1772 <source>Success</source>
1773 <target>Succès</target>
1774 <context-group name="null">
1775 <context context-type="linenumber">1</context>
1776 </context-group>
1777 </trans-unit>
1778 <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
1779 <source>Configuration updated.</source>
1780 <target>Configuracion actualizada.</target>
1781 <context-group name="null">
1782 <context context-type="linenumber">1</context>
1783 </context-group>
1784 </trans-unit>
1785 <trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
1786 <source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
1787 <target><x id="INTERPOLATION" equiv-text="{{host}}"/> es pas valid</target>
1788 <context-group name="null">
1789 <context context-type="linenumber">1</context>
1790 </context-group>
1791 </trans-unit>
1792 <trans-unit id="e02f50674f1d96966384dc096beb42d4973997df">
1793 <source>You need to specify hosts to follow.</source>
1794 <target>Vos fa mestièr especificar los òstes de seguir</target>
1795 <context-group name="null">
1796 <context context-type="linenumber">1</context>
1797 </context-group>
1798 </trans-unit>
1799 <trans-unit id="a89875525c82ab81ffe32e481a5475b43d0c2902">
1800 <source>Unfollow</source>
1801 <target>Quitar de seguir</target>
1802 <context-group name="null">
1803 <context context-type="linenumber">1</context>
1804 </context-group>
1805 </trans-unit>
1806 <trans-unit id="fb4e35e2b0ea2abc1f71295a4b34830e57c07bd0">
1807 <source>You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore.</source>
1808 <target>Seguèt pas mai <x id="INTERPOLATION" equiv-text="{{host}}"/>.</target>
1809 <context-group name="null">
1810 <context context-type="linenumber">1</context>
1811 </context-group>
1812 </trans-unit>
1813 <trans-unit id="f995df052a1dfc675c2a21926420a707d9601936">
1814 <source>Following</source>
1815 <target>Abonaments</target>
1816 <context-group name="null">
1817 <context context-type="linenumber">1</context>
1818 </context-group>
1819 </trans-unit>
1820 <trans-unit id="d29764bcbaad3ef69b6be92be35bdf25972ce246">
1821 <source>Follow</source>
1822 <target>Seguir</target>
1823 <context-group name="null">
1824 <context context-type="linenumber">1</context>
1825 </context-group>
1826 </trans-unit>
1827 <trans-unit id="9bee670725966ed477b4c33a545c8b5436b0065e">
1828 <source>Followers</source>
1829 <target>Seguidors</target>
1830 <context-group name="null">
1831 <context context-type="linenumber">1</context>
1832 </context-group>
1833 </trans-unit>
1519 <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf"> 1834 <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
1520 <source>Unlimited</source> 1835 <source>Unlimited</source>
1521 <target>Cap de limit</target> 1836 <target>Cap de limit</target>
@@ -1649,6 +1964,69 @@
1649 <context context-type="linenumber">1</context> 1964 <context context-type="linenumber">1</context>
1650 </context-group> 1965 </context-group>
1651 </trans-unit> 1966 </trans-unit>
1967 <trans-unit id="e31bbf15d6ba5c7c0f17f89a98029cff0bd40b87">
1968 <source>You need to reconnect.</source>
1969 <target>Vos cal vos reconnectar.</target>
1970 <context-group name="null">
1971 <context context-type="linenumber">1</context>
1972 </context-group>
1973 </trans-unit>
1974 <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da">
1975 <source>Confirm</source>
1976 <target>Confirmar</target>
1977 <context-group name="null">
1978 <context context-type="linenumber">1</context>
1979 </context-group>
1980 </trans-unit>
1981 <trans-unit id="b0f24b7136e551a0deba831f1525711245b31a26">
1982 <source>Your password has been successfully reset!</source>
1983 <target>Vòstre senhal es estat corrèctament reïnicializat</target>
1984 <context-group name="null">
1985 <context context-type="linenumber">1</context>
1986 </context-group>
1987 </trans-unit>
1988 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
1989 <source>Today</source>
1990 <target>Uèi</target>
1991 <context-group name="null">
1992 <context context-type="linenumber">1</context>
1993 </context-group>
1994 </trans-unit>
1995 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
1996 <source>Search</source>
1997 <target>Cercar</target>
1998 <context-group name="null">
1999 <context context-type="linenumber">1</context>
2000 </context-group>
2001 </trans-unit>
2002 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2003 <source>Instance name is required.</source>
2004 <target>Lo nom de l’instància es requesit.</target>
2005 <context-group name="null">
2006 <context context-type="linenumber">1</context>
2007 </context-group>
2008 </trans-unit>
2009 <trans-unit id="356e63270712273da168072ec0fc78a969919bf1">
2010 <source>Twitter username is required.</source>
2011 <target>Lo nom d’utilizaire Twitter es requesit.</target>
2012 <context-group name="null">
2013 <context context-type="linenumber">1</context>
2014 </context-group>
2015 </trans-unit>
2016 <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
2017 <source>Username is required.</source>
2018 <target>Lo nom d’utilizaire es requesit.</target>
2019 <context-group name="null">
2020 <context context-type="linenumber">1</context>
2021 </context-group>
2022 </trans-unit>
2023 <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
2024 <source>Password is required.</source>
2025 <target>Lo senhal es requesit.</target>
2026 <context-group name="null">
2027 <context context-type="linenumber">1</context>
2028 </context-group>
2029 </trans-unit>
1652 <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01"> 2030 <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01">
1653 <source>Warning</source> 2031 <source>Warning</source>
1654 <target>Avís</target> 2032 <target>Avís</target>
@@ -1796,13 +2174,6 @@
1796 <context context-type="linenumber">1</context> 2174 <context context-type="linenumber">1</context>
1797 </context-group> 2175 </context-group>
1798 </trans-unit> 2176 </trans-unit>
1799 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
1800 <source>Today</source>
1801 <target>Uèi</target>
1802 <context-group name="null">
1803 <context context-type="linenumber">1</context>
1804 </context-group>
1805 </trans-unit>
1806 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 2177 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
1807 <source>Clear</source> 2178 <source>Clear</source>
1808 <target>Escafar</target> 2179 <target>Escafar</target>
@@ -1943,13 +2314,6 @@
1943 <context context-type="linenumber">1</context> 2314 <context context-type="linenumber">1</context>
1944 </context-group> 2315 </context-group>
1945 </trans-unit> 2316 </trans-unit>
1946 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
1947 <source>This image is too large.</source>
1948 <target>Aqueste imatge es tròp larg.</target>
1949 <context-group name="null">
1950 <context context-type="linenumber">1</context>
1951 </context-group>
1952 </trans-unit>
1953 <trans-unit id="321e4419a943044e674beb55b8039f42a9761ca5"> 2317 <trans-unit id="321e4419a943044e674beb55b8039f42a9761ca5">
1954 <source>Info</source> 2318 <source>Info</source>
1955 <target>Info</target> 2319 <target>Info</target>
@@ -1964,13 +2328,6 @@
1964 <context context-type="linenumber">1</context> 2328 <context context-type="linenumber">1</context>
1965 </context-group> 2329 </context-group>
1966 </trans-unit> 2330 </trans-unit>
1967 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
1968 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
1969 <target>O planhèm mas PeerTube pòt pas gerir de vidèos de mai de 4 Go</target>
1970 <context-group name="null">
1971 <context context-type="linenumber">1</context>
1972 </context-group>
1973 </trans-unit>
1974 <trans-unit id="972fc644f847cf84e4732ec012915c4cdaf865ce"> 2331 <trans-unit id="972fc644f847cf84e4732ec012915c4cdaf865ce">
1975 <source>Video published.</source> 2332 <source>Video published.</source>
1976 <target>Vidèo publicada.</target> 2333 <target>Vidèo publicada.</target>
@@ -1999,12 +2356,5 @@
1999 <context context-type="linenumber">1</context> 2356 <context context-type="linenumber">1</context>
2000 </context-group> 2357 </context-group>
2001 </trans-unit> 2358 </trans-unit>
2002 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2003 <source>Search</source>
2004 <target>Cercar</target>
2005 <context-group name="null">
2006 <context context-type="linenumber">1</context>
2007 </context-group>
2008 </trans-unit>
2009 </body> 2359 </body>
2010 </file></xliff> \ No newline at end of file 2360 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_pl_PL.xml b/client/src/locale/target/angular_pl_PL.xml
index 5bc09d040..6689cd4d2 100644
--- a/client/src/locale/target/angular_pl_PL.xml
+++ b/client/src/locale/target/angular_pl_PL.xml
@@ -11,14 +11,14 @@
11 Anuluj 11 Anuluj
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetleń</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetleń</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Uzyskaj pomoc</target> 47 <target>Uzyskaj pomoc</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Hasło</target> 108 <target>Hasło</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -330,6 +330,34 @@
330 <context context-type="linenumber">9</context> 330 <context context-type="linenumber">9</context>
331 </context-group> 331 </context-group>
332 </trans-unit> 332 </trans-unit>
333 <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd">
334 <source>No</source>
335 <target>Nie</target>
336 <context-group name="null">
337 <context context-type="linenumber">42</context>
338 </context-group>
339 </trans-unit>
340 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
341 <source>Category</source>
342 <target>Kategoria</target>
343 <context-group name="null">
344 <context context-type="linenumber">144</context>
345 </context-group>
346 </trans-unit>
347 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
348 <source>Licence</source>
349 <target>Licencja</target>
350 <context-group name="null">
351 <context context-type="linenumber">153</context>
352 </context-group>
353 </trans-unit>
354 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
355 <source>Language</source>
356 <target>Język</target>
357 <context-group name="null">
358 <context context-type="linenumber">162</context>
359 </context-group>
360 </trans-unit>
333 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 361 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
334 <source>No results.</source> 362 <source>No results.</source>
335 <target>Brak wyników.</target> 363 <target>Brak wyników.</target>
@@ -555,16 +583,6 @@
555 <context context-type="linenumber">51</context> 583 <context context-type="linenumber">51</context>
556 </context-group> 584 </context-group>
557 </trans-unit> 585 </trans-unit>
558 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
559 <source>
560 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
561 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.
562 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
563 </source>
564 <context-group name="null">
565 <context context-type="linenumber">55</context>
566 </context-group>
567 </trans-unit>
568 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 586 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
569 <source> 587 <source>
570 The worst-case scenario of an average person spying on their friends is quite unlikely. 588 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -578,13 +596,6 @@
578 <context context-type="linenumber">62</context> 596 <context context-type="linenumber">62</context>
579 </context-group> 597 </context-group>
580 </trans-unit> 598 </trans-unit>
581 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
582 <source>How does PeerTube compares to YouTube?</source>
583 <target>Jak to wygląda w porównaniu do YouTube?</target>
584 <context-group name="null">
585 <context context-type="linenumber">67</context>
586 </context-group>
587 </trans-unit>
588 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 599 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
589 <source> 600 <source>
590 The threats to privacy in YouTube are different from PeerTube's. 601 The threats to privacy in YouTube are different from PeerTube's.
@@ -798,42 +809,42 @@
798 <source>Signup enabled</source> 809 <source>Signup enabled</source>
799 <target>Wymagana rejestracja</target> 810 <target>Wymagana rejestracja</target>
800 <context-group name="null"> 811 <context-group name="null">
801 <context context-type="linenumber">92</context> 812 <context context-type="linenumber">90</context>
802 </context-group> 813 </context-group>
803 </trans-unit> 814 </trans-unit>
804 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 815 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
805 <source>Signup limit</source> 816 <source>Signup limit</source>
806 <target>Limit rejestracji</target> 817 <target>Limit rejestracji</target>
807 <context-group name="null"> 818 <context-group name="null">
808 <context context-type="linenumber">96</context> 819 <context context-type="linenumber">94</context>
809 </context-group> 820 </context-group>
810 </trans-unit> 821 </trans-unit>
811 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 822 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
812 <source>Administrator</source> 823 <source>Administrator</source>
813 <target>Administrator</target> 824 <target>Administrator</target>
814 <context-group name="null"> 825 <context-group name="null">
815 <context context-type="linenumber">106</context> 826 <context context-type="linenumber">104</context>
816 </context-group> 827 </context-group>
817 </trans-unit> 828 </trans-unit>
818 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 829 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
819 <source>Admin email</source> 830 <source>Admin email</source>
820 <target>E-mail administratora</target> 831 <target>E-mail administratora</target>
821 <context-group name="null"> 832 <context-group name="null">
822 <context context-type="linenumber">109</context> 833 <context context-type="linenumber">107</context>
823 </context-group> 834 </context-group>
824 </trans-unit> 835 </trans-unit>
825 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 836 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
826 <source>Users</source> 837 <source>Users</source>
827 <target>Użytkownicy</target> 838 <target>Użytkownicy</target>
828 <context-group name="null"> 839 <context-group name="null">
829 <context context-type="linenumber">119</context> 840 <context context-type="linenumber">117</context>
830 </context-group> 841 </context-group>
831 </trans-unit> 842 </trans-unit>
832 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09"> 843 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
833 <source>User default video quota</source> 844 <source>User default video quota</source>
834 <target>Domyślna powierzchnia na filmy dla użytkownika</target> 845 <target>Domyślna powierzchnia na filmy dla użytkownika</target>
835 <context-group name="null"> 846 <context-group name="null">
836 <context context-type="linenumber">122</context> 847 <context context-type="linenumber">120</context>
837 </context-group> 848 </context-group>
838 </trans-unit> 849 </trans-unit>
839 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 850 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -847,28 +858,28 @@
847 <source>Twitter</source> 858 <source>Twitter</source>
848 <target>Twitter</target> 859 <target>Twitter</target>
849 <context-group name="null"> 860 <context-group name="null">
850 <context context-type="linenumber">138</context> 861 <context context-type="linenumber">136</context>
851 </context-group> 862 </context-group>
852 </trans-unit> 863 </trans-unit>
853 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 864 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
854 <source>Your Twitter username</source> 865 <source>Your Twitter username</source>
855 <target>Twoja nazwa użytkownika na Twitterze</target> 866 <target>Twoja nazwa użytkownika na Twitterze</target>
856 <context-group name="null"> 867 <context-group name="null">
857 <context context-type="linenumber">141</context> 868 <context context-type="linenumber">139</context>
858 </context-group> 869 </context-group>
859 </trans-unit> 870 </trans-unit>
860 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c"> 871 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
861 <source>Indicates the Twitter account for the website or platform on which the content was published.</source> 872 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
862 <target>Oznacza konto Twittera dla strony lub platformy na której została opublikowana zawartość.</target> 873 <target>Oznacza konto Twittera dla strony lub platformy na której została opublikowana zawartość.</target>
863 <context-group name="null"> 874 <context-group name="null">
864 <context context-type="linenumber">144</context> 875 <context context-type="linenumber">142</context>
865 </context-group> 876 </context-group>
866 </trans-unit> 877 </trans-unit>
867 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605"> 878 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
868 <source>Instance whitelisted by Twitter</source> 879 <source>Instance whitelisted by Twitter</source>
869 <target>Instancja jest na białej liście Twittera</target> 880 <target>Instancja jest na białej liście Twittera</target>
870 <context-group name="null"> 881 <context-group name="null">
871 <context context-type="linenumber">159</context> 882 <context context-type="linenumber">155</context>
872 </context-group> 883 </context-group>
873 </trans-unit> 884 </trans-unit>
874 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b"> 885 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
@@ -879,91 +890,70 @@ Check this checkbox, save the configuration and test with a video URL of your in
879Jeżeli instancja nie znajduje się na białej liście, będzie widoczna karta z miniaturą filmu, która przekieruje na instancję PeerTube.&lt;br /&gt;&lt;br /&gt; 890Jeżeli instancja nie znajduje się na białej liście, będzie widoczna karta z miniaturą filmu, która przekieruje na instancję PeerTube.&lt;br /&gt;&lt;br /&gt;
880Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej instancji (np. https://example.com/videos/watch/blabla) na &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt;, aby sprawdzić czy instancja jest na białej liście.</target> 891Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej instancji (np. https://example.com/videos/watch/blabla) na &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt;, aby sprawdzić czy instancja jest na białej liście.</target>
881 <context-group name="null"> 892 <context-group name="null">
882 <context context-type="linenumber">162</context> 893 <context context-type="linenumber">156</context>
883 </context-group> 894 </context-group>
884 </trans-unit> 895 </trans-unit>
885 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5"> 896 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
886 <source>Services</source> 897 <source>Services</source>
887 <target>Usługi</target> 898 <target>Usługi</target>
888 <context-group name="null"> 899 <context-group name="null">
889 <context context-type="linenumber">136</context> 900 <context context-type="linenumber">134</context>
890 </context-group> 901 </context-group>
891 </trans-unit> 902 </trans-unit>
892 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490"> 903 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
893 <source>Transcoding</source> 904 <source>Transcoding</source>
894 <target>Transkodowanie</target> 905 <target>Transkodowanie</target>
895 <context-group name="null"> 906 <context-group name="null">
896 <context context-type="linenumber">172</context> 907 <context context-type="linenumber">164</context>
897 </context-group> 908 </context-group>
898 </trans-unit> 909 </trans-unit>
899 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9"> 910 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
900 <source>Transcoding enabled</source> 911 <source>Transcoding enabled</source>
901 <target>Transkodowanie jest włączone</target> 912 <target>Transkodowanie jest włączone</target>
902 <context-group name="null"> 913 <context-group name="null">
903 <context context-type="linenumber">178</context> 914 <context context-type="linenumber">168</context>
904 </context-group> 915 </context-group>
905 </trans-unit> 916 </trans-unit>
906 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f"> 917 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
907 <source>If you disable transcoding, many videos from your users will not work!</source> 918 <source>If you disable transcoding, many videos from your users will not work!</source>
908 <target>Jeżeli wyłączysz transkodowanie, wiele filmów od użytkowników może nie działać!</target> 919 <target>Jeżeli wyłączysz transkodowanie, wiele filmów od użytkowników może nie działać!</target>
909 <context-group name="null"> 920 <context-group name="null">
910 <context context-type="linenumber">180</context> 921 <context context-type="linenumber">169</context>
911 </context-group> 922 </context-group>
912 </trans-unit> 923 </trans-unit>
913 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2"> 924 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
914 <source>Transcoding threads</source> 925 <source>Transcoding threads</source>
915 <target>Wątki transkodowania</target> 926 <target>Wątki transkodowania</target>
916 <context-group name="null"> 927 <context-group name="null">
917 <context context-type="linenumber">186</context> 928 <context context-type="linenumber">175</context>
918 </context-group>
919 </trans-unit>
920 <trans-unit id="6aff7f4b4f140702c4ce791cc9990932623862f0">
921 <source>Resolution <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> enabled</source>
922 <target>Rozdzielczość <x id="INTERPOLATION" equiv-text="{{ resolution }}"/> jest włączona</target>
923 <context-group name="null">
924 <context context-type="linenumber">205</context>
925 </context-group>
926 </trans-unit>
927 <trans-unit id="1fa92c6ce274f878b2625587daa7e08b2a3a8b38">
928 <source>Cache</source>
929 <target>Pamięć podręczna</target>
930 <context-group name="null">
931 <context context-type="linenumber">209</context>
932 </context-group> 929 </context-group>
933 </trans-unit> 930 </trans-unit>
934 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7"> 931 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
935 <source>Previews cache size</source> 932 <source>Previews cache size</source>
936 <target>Rozmiar pamięci podręcznej podglądu</target> 933 <target>Rozmiar pamięci podręcznej podglądu</target>
937 <context-group name="null"> 934 <context-group name="null">
938 <context context-type="linenumber">212</context> 935 <context context-type="linenumber">207</context>
939 </context-group>
940 </trans-unit>
941 <trans-unit id="bf91318659ada3d3ad1b0ca1e63ae427e5a857d5">
942 <source>Previews are not federated. We fetch them directly from the origin instance and cache them.</source>
943 <target>Podgląd nie federuje się. Pobieramy go bezpośrednio ze źródłowej instancji i przechowujemy go.</target>
944 <context-group name="null">
945 <context context-type="linenumber">215</context>
946 </context-group> 936 </context-group>
947 </trans-unit> 937 </trans-unit>
948 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c"> 938 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
949 <source>Customizations</source> 939 <source>Customizations</source>
950 <target>Dostosowywanie</target> 940 <target>Dostosowywanie</target>
951 <context-group name="null"> 941 <context-group name="null">
952 <context context-type="linenumber">227</context> 942 <context context-type="linenumber">228</context>
953 </context-group> 943 </context-group>
954 </trans-unit> 944 </trans-unit>
955 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 945 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
956 <source>JavaScript</source> 946 <source>JavaScript</source>
957 <target>JavaScript</target> 947 <target>JavaScript</target>
958 <context-group name="null"> 948 <context-group name="null">
959 <context context-type="linenumber">230</context> 949 <context context-type="linenumber">231</context>
960 </context-group> 950 </context-group>
961 </trans-unit> 951 </trans-unit>
962 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c"> 952 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
963 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source> 953 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
964 <target>Wprowadź kod JavaScript.&lt;br /&gt;Przykład: &lt;pre&gt;console.log('moja instancja jest świetna');&lt;/pre&gt;</target> 954 <target>Wprowadź kod JavaScript.&lt;br /&gt;Przykład: &lt;pre&gt;console.log('moja instancja jest świetna');&lt;/pre&gt;</target>
965 <context-group name="null"> 955 <context-group name="null">
966 <context context-type="linenumber">233</context> 956 <context context-type="linenumber">234</context>
967 </context-group> 957 </context-group>
968 </trans-unit> 958 </trans-unit>
969 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6"> 959 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
@@ -998,28 +988,28 @@ Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej
998 &lt;/pre&gt; 988 &lt;/pre&gt;
999 </target> 989 </target>
1000 <context-group name="null"> 990 <context-group name="null">
1001 <context context-type="linenumber">249</context> 991 <context context-type="linenumber">250</context>
1002 </context-group> 992 </context-group>
1003 </trans-unit> 993 </trans-unit>
1004 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 994 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
1005 <source>Advanced configuration</source> 995 <source>Advanced configuration</source>
1006 <target>Zaawansowana konfiguracja</target> 996 <target>Zaawansowana konfiguracja</target>
1007 <context-group name="null"> 997 <context-group name="null">
1008 <context context-type="linenumber">170</context> 998 <context context-type="linenumber">162</context>
1009 </context-group> 999 </context-group>
1010 </trans-unit> 1000 </trans-unit>
1011 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 1001 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
1012 <source>Update configuration</source> 1002 <source>Update configuration</source>
1013 <target>Aktualizuj konfigurację</target> 1003 <target>Aktualizuj konfigurację</target>
1014 <context-group name="null"> 1004 <context-group name="null">
1015 <context context-type="linenumber">276</context> 1005 <context context-type="linenumber">277</context>
1016 </context-group> 1006 </context-group>
1017 </trans-unit> 1007 </trans-unit>
1018 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca"> 1008 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
1019 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source> 1009 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
1020 <target>Wygląda na to, że konfiguracja jest nieprawidłowa. Poszukaj możliwych błędów w innych kartach.</target> 1010 <target>Wygląda na to, że konfiguracja jest nieprawidłowa. Poszukaj możliwych błędów w innych kartach.</target>
1021 <context-group name="null"> 1011 <context-group name="null">
1022 <context context-type="linenumber">277</context> 1012 <context context-type="linenumber">278</context>
1023 </context-group> 1013 </context-group>
1024 </trans-unit> 1014 </trans-unit>
1025 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 1015 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -1168,13 +1158,6 @@ Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej
1168 <context context-type="linenumber">19</context> 1158 <context context-type="linenumber">19</context>
1169 </context-group> 1159 </context-group>
1170 </trans-unit> 1160 </trans-unit>
1171 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
1172 <source>Updated</source>
1173 <target>Zaktualizowano</target>
1174 <context-group name="null">
1175 <context context-type="linenumber">22</context>
1176 </context-group>
1177 </trans-unit>
1178 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 1161 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1179 <source>Create user</source> 1162 <source>Create user</source>
1180 <target>Utwórz użytkownika</target> 1163 <target>Utwórz użytkownika</target>
@@ -1345,53 +1328,32 @@ Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej
1345 <context context-type="linenumber">7</context> 1328 <context context-type="linenumber">7</context>
1346 </context-group> 1329 </context-group>
1347 </trans-unit> 1330 </trans-unit>
1348 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
1349 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
1350 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subskrybentów</target>
1351 <context-group name="null">
1352 <context context-type="linenumber">9</context>
1353 </context-group>
1354 </trans-unit>
1355 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
1356 <source>Change your avatar</source>
1357 <target>Zmień awatar</target>
1358 <context-group name="null">
1359 <context context-type="linenumber">14</context>
1360 </context-group>
1361 </trans-unit>
1362 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1363 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1364 <target>(rozszerzenia: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maksymalny rozmiar: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1365 <context-group name="null">
1366 <context context-type="linenumber">17</context>
1367 </context-group>
1368 </trans-unit>
1369 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 1331 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1370 <source>Video quota:</source> 1332 <source>Video quota:</source>
1371 <target>Powierzchnia na filmy:</target> 1333 <target>Powierzchnia na filmy:</target>
1372 <context-group name="null"> 1334 <context-group name="null">
1373 <context context-type="linenumber">20</context> 1335 <context context-type="linenumber">4</context>
1374 </context-group> 1336 </context-group>
1375 </trans-unit> 1337 </trans-unit>
1376 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 1338 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1377 <source>Profile</source> 1339 <source>Profile</source>
1378 <target>Profil</target> 1340 <target>Profil</target>
1379 <context-group name="null"> 1341 <context-group name="null">
1380 <context context-type="linenumber">24</context> 1342 <context context-type="linenumber">8</context>
1381 </context-group> 1343 </context-group>
1382 </trans-unit> 1344 </trans-unit>
1383 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 1345 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1384 <source>Video settings</source> 1346 <source>Video settings</source>
1385 <target>Ustawienia wideo</target> 1347 <target>Ustawienia wideo</target>
1386 <context-group name="null"> 1348 <context-group name="null">
1387 <context context-type="linenumber">31</context> 1349 <context context-type="linenumber">15</context>
1388 </context-group> 1350 </context-group>
1389 </trans-unit> 1351 </trans-unit>
1390 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 1352 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1391 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 1353 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1392 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetlenia</target> 1354 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetlenia</target>
1393 <context-group name="null"> 1355 <context-group name="null">
1394 <context context-type="linenumber">20</context> 1356 <context context-type="linenumber">19</context>
1395 </context-group> 1357 </context-group>
1396 </trans-unit> 1358 </trans-unit>
1397 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 1359 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -1419,14 +1381,7 @@ Zaznacz ten element, zapisz konfigurację i przetestuj odnośnik do filmu z tej
1419 <source>Create a video channel</source> 1381 <source>Create a video channel</source>
1420 <target>Utwórz kanał wideo</target> 1382 <target>Utwórz kanał wideo</target>
1421 <context-group name="null"> 1383 <context-group name="null">
1422 <context context-type="linenumber">1</context> 1384 <context context-type="linenumber">6</context>
1423 </context-group>
1424 </trans-unit>
1425 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
1426 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
1427 <target>Zaktualizuj <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
1428 <context-group name="null">
1429 <context context-type="linenumber">2</context>
1430 </context-group> 1385 </context-group>
1431 </trans-unit> 1386 </trans-unit>
1432 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9"> 1387 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
@@ -1442,7 +1397,7 @@ When you will upload a video in this channel, the video support field will be au
1442 <target>Krótki tekst informujący o tym, jak można wspomóc Twój kanał (platforma członkowska…).&lt;br /&gt;&lt;br /&gt; 1397 <target>Krótki tekst informujący o tym, jak można wspomóc Twój kanał (platforma członkowska…).&lt;br /&gt;&lt;br /&gt;
1443Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia zostanie nim wypełnione.</target> 1398Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia zostanie nim wypełnione.</target>
1444 <context-group name="null"> 1399 <context-group name="null">
1445 <context context-type="linenumber">32</context> 1400 <context context-type="linenumber">36</context>
1446 </context-group> 1401 </context-group>
1447 </trans-unit> 1402 </trans-unit>
1448 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9"> 1403 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
@@ -1477,14 +1432,14 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1477 <source>Automatically plays video</source> 1432 <source>Automatically plays video</source>
1478 <target>Automatycznie odtwarzaj filmy</target> 1433 <target>Automatycznie odtwarzaj filmy</target>
1479 <context-group name="null"> 1434 <context-group name="null">
1480 <context context-type="linenumber">24</context> 1435 <context context-type="linenumber">20</context>
1481 </context-group> 1436 </context-group>
1482 </trans-unit> 1437 </trans-unit>
1483 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe"> 1438 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1484 <source>Save</source> 1439 <source>Save</source>
1485 <target>Zapisz</target> 1440 <target>Zapisz</target>
1486 <context-group name="null"> 1441 <context-group name="null">
1487 <context context-type="linenumber">27</context> 1442 <context context-type="linenumber">23</context>
1488 </context-group> 1443 </context-group>
1489 </trans-unit> 1444 </trans-unit>
1490 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba"> 1445 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
@@ -1494,6 +1449,13 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1494 <context context-type="linenumber">27</context> 1449 <context context-type="linenumber">27</context>
1495 </context-group> 1450 </context-group>
1496 </trans-unit> 1451 </trans-unit>
1452 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1453 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1454 <target>(rozszerzenia: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, maksymalny rozmiar: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1455 <context-group name="null">
1456 <context context-type="linenumber">18</context>
1457 </context-group>
1458 </trans-unit>
1497 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd"> 1459 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1498 <source> 1460 <source>
1499 Sorry, but we couldn't find the page you were looking for. 1461 Sorry, but we couldn't find the page you were looking for.
@@ -1565,21 +1527,21 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1565 <source>Privacy</source> 1527 <source>Privacy</source>
1566 <target>Prywatność</target> 1528 <target>Prywatność</target>
1567 <context-group name="null"> 1529 <context-group name="null">
1568 <context context-type="linenumber">86</context> 1530 <context context-type="linenumber">139</context>
1569 </context-group> 1531 </context-group>
1570 </trans-unit> 1532 </trans-unit>
1571 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215"> 1533 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1572 <source>Publish will be available when upload is finished</source> 1534 <source>Publish will be available when upload is finished</source>
1573 <target>Opublikuj automatycznie po ukończeniu wysyłania</target> 1535 <target>Opublikuj automatycznie po ukończeniu wysyłania</target>
1574 <context-group name="null"> 1536 <context-group name="null">
1575 <context context-type="linenumber">53</context> 1537 <context context-type="linenumber">54</context>
1576 </context-group> 1538 </context-group>
1577 </trans-unit> 1539 </trans-unit>
1578 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3"> 1540 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1579 <source>Publish</source> 1541 <source>Publish</source>
1580 <target>Opublikuj</target> 1542 <target>Opublikuj</target>
1581 <context-group name="null"> 1543 <context-group name="null">
1582 <context context-type="linenumber">60</context> 1544 <context context-type="linenumber">61</context>
1583 </context-group> 1545 </context-group>
1584 </trans-unit> 1546 </trans-unit>
1585 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e"> 1547 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
@@ -1593,7 +1555,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1593 <source>Tags</source> 1555 <source>Tags</source>
1594 <target>Tagi</target> 1556 <target>Tagi</target>
1595 <context-group name="null"> 1557 <context-group name="null">
1596 <context context-type="linenumber">15</context> 1558 <context context-type="linenumber">171</context>
1597 </context-group> 1559 </context-group>
1598 </trans-unit> 1560 </trans-unit>
1599 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82"> 1561 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
@@ -1610,27 +1572,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1610 <context context-type="linenumber">24</context> 1572 <context context-type="linenumber">24</context>
1611 </context-group> 1573 </context-group>
1612 </trans-unit> 1574 </trans-unit>
1613 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
1614 <source>Category</source>
1615 <target>Kategoria</target>
1616 <context-group name="null">
1617 <context context-type="linenumber">44</context>
1618 </context-group>
1619 </trans-unit>
1620 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
1621 <source>Licence</source>
1622 <target>Licencja</target>
1623 <context-group name="null">
1624 <context context-type="linenumber">58</context>
1625 </context-group>
1626 </trans-unit>
1627 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
1628 <source>Language</source>
1629 <target>Język</target>
1630 <context-group name="null">
1631 <context context-type="linenumber">72</context>
1632 </context-group>
1633 </trans-unit>
1634 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5"> 1575 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1635 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source> 1576 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1636 <target>Zaplanuj publikację (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target> 1577 <target>Zaplanuj publikację (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
@@ -1642,35 +1583,28 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1642 <source>This video contains mature or explicit content</source> 1583 <source>This video contains mature or explicit content</source>
1643 <target>Ten film zawiera zawartość niecenzuralną lub dla dorosłych</target> 1584 <target>Ten film zawiera zawartość niecenzuralną lub dla dorosłych</target>
1644 <context-group name="null"> 1585 <context-group name="null">
1645 <context context-type="linenumber">116</context> 1586 <context context-type="linenumber">115</context>
1646 </context-group> 1587 </context-group>
1647 </trans-unit> 1588 </trans-unit>
1648 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644"> 1589 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1649 <source>Some instances do not list videos containing mature or explicit content by default.</source> 1590 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1650 <target>Niektóre instancje domyślnie nie wyświetlają filmów zawierających taką zawartość.</target> 1591 <target>Niektóre instancje domyślnie nie wyświetlają filmów zawierających taką zawartość.</target>
1651 <context-group name="null"> 1592 <context-group name="null">
1652 <context context-type="linenumber">119</context> 1593 <context context-type="linenumber">116</context>
1653 </context-group> 1594 </context-group>
1654 </trans-unit> 1595 </trans-unit>
1655 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a"> 1596 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1656 <source>Enable video comments</source> 1597 <source>Enable video comments</source>
1657 <target>Włącz komentarze do filmu</target> 1598 <target>Włącz komentarze do filmu</target>
1658 <context-group name="null"> 1599 <context-group name="null">
1659 <context context-type="linenumber">126</context> 1600 <context context-type="linenumber">121</context>
1660 </context-group> 1601 </context-group>
1661 </trans-unit> 1602 </trans-unit>
1662 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0"> 1603 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1663 <source>Wait transcoding before publishing the video</source> 1604 <source>Wait transcoding before publishing the video</source>
1664 <target>Poczekaj na transkodowanie przed opublikowaniem filmu</target> 1605 <target>Poczekaj na transkodowanie przed opublikowaniem filmu</target>
1665 <context-group name="null"> 1606 <context-group name="null">
1666 <context context-type="linenumber">132</context> 1607 <context context-type="linenumber">126</context>
1667 </context-group>
1668 </trans-unit>
1669 <trans-unit id="0001ec53fe3dfd603b7ad80fd32d262170e3d9a5">
1670 <source>If you decide to not wait transcoding before publishing the video, it can be unplayable until it transcoding ends.</source>
1671 <target>Jeżeli wybierzesz, aby nie czekać na transkodowanie, film może być niemożliwy do odtworzenia, zanim transkodowanie zakończy się.</target>
1672 <context-group name="null">
1673 <context context-type="linenumber">135</context>
1674 </context-group> 1608 </context-group>
1675 </trans-unit> 1609 </trans-unit>
1676 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7"> 1610 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
@@ -1684,42 +1618,35 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1684 <source>Upload thumbnail</source> 1618 <source>Upload thumbnail</source>
1685 <target>Wyślij miniaturę</target> 1619 <target>Wyślij miniaturę</target>
1686 <context-group name="null"> 1620 <context-group name="null">
1687 <context context-type="linenumber">146</context> 1621 <context context-type="linenumber">186</context>
1688 </context-group> 1622 </context-group>
1689 </trans-unit> 1623 </trans-unit>
1690 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639"> 1624 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1691 <source>Upload preview</source> 1625 <source>Upload preview</source>
1692 <target>Podgląd wysyłania</target> 1626 <target>Podgląd wysyłania</target>
1693 <context-group name="null"> 1627 <context-group name="null">
1694 <context context-type="linenumber">153</context> 1628 <context context-type="linenumber">193</context>
1695 </context-group> 1629 </context-group>
1696 </trans-unit> 1630 </trans-unit>
1697 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604"> 1631 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1698 <source>Support</source> 1632 <source>Support</source>
1699 <target>Wsparcie</target> 1633 <target>Wsparcie</target>
1700 <context-group name="null"> 1634 <context-group name="null">
1701 <context context-type="linenumber">59</context> 1635 <context context-type="linenumber">67</context>
1702 </context-group> 1636 </context-group>
1703 </trans-unit> 1637 </trans-unit>
1704 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0"> 1638 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1705 <source>Short text to tell people how they can support you (membership platform...).</source> 1639 <source>Short text to tell people how they can support you (membership platform...).</source>
1706 <target>Krótki tekst informujący innych, jak mogą Cię wesprzeć (platforma członkowska…).</target> 1640 <target>Krótki tekst informujący innych, jak mogą Cię wesprzeć (platforma członkowska…).</target>
1707 <context-group name="null"> 1641 <context-group name="null">
1708 <context context-type="linenumber">160</context> 1642 <context context-type="linenumber">200</context>
1709 </context-group> 1643 </context-group>
1710 </trans-unit> 1644 </trans-unit>
1711 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1"> 1645 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1712 <source>Advanced settings</source> 1646 <source>Advanced settings</source>
1713 <target>Ustawienia zaawansowane</target> 1647 <target>Ustawienia zaawansowane</target>
1714 <context-group name="null"> 1648 <context-group name="null">
1715 <context context-type="linenumber">142</context> 1649 <context context-type="linenumber">182</context>
1716 </context-group>
1717 </trans-unit>
1718 <trans-unit id="c07377d8b52fde03fcf70824a980346b9222d056">
1719 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
1720 <target>(rozszerzenia: <x id="INTERPOLATION" equiv-text="{{ videoImageExtensions }}"/>, maksymalny rozmiar: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
1721 <context-group name="null">
1722 <context context-type="linenumber">11</context>
1723 </context-group> 1650 </context-group>
1724 </trans-unit> 1651 </trans-unit>
1725 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0"> 1652 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
@@ -1737,7 +1664,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1737 <source>Update</source> 1664 <source>Update</source>
1738 <target>Aktualizacja</target> 1665 <target>Aktualizacja</target>
1739 <context-group name="null"> 1666 <context-group name="null">
1740 <context context-type="linenumber">93</context> 1667 <context context-type="linenumber">101</context>
1741 </context-group> 1668 </context-group>
1742 </trans-unit> 1669 </trans-unit>
1743 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611"> 1670 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
@@ -1747,32 +1674,18 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1747 <context context-type="linenumber">7</context> 1674 <context context-type="linenumber">7</context>
1748 </context-group> 1675 </context-group>
1749 </trans-unit> 1676 </trans-unit>
1750 <trans-unit id="b92eaf680d6d1cd83e1bc61c3ee88b1b7754eb66">
1751 <source>Torrent</source>
1752 <target>Torrent</target>
1753 <context-group name="null">
1754 <context context-type="linenumber">20</context>
1755 </context-group>
1756 </trans-unit>
1757 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c"> 1677 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1758 <source>Direct download</source> 1678 <source>Direct download</source>
1759 <target>Pobieranie bezpośrednie</target> 1679 <target>Pobieranie bezpośrednie</target>
1760 <context-group name="null"> 1680 <context-group name="null">
1761 <context context-type="linenumber">25</context> 1681 <context context-type="linenumber">20</context>
1762 </context-group>
1763 </trans-unit>
1764 <trans-unit id="6ac01cebf6f87418b309a83d5ce965d77b4ab740">
1765 <source>Torrent (magnet)</source>
1766 <target>Torrent (magnet)</target>
1767 <context-group name="null">
1768 <context context-type="linenumber">30</context>
1769 </context-group> 1682 </context-group>
1770 </trans-unit> 1683 </trans-unit>
1771 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd"> 1684 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1772 <source>Download</source> 1685 <source>Download</source>
1773 <target>Pobierz</target> 1686 <target>Pobierz</target>
1774 <context-group name="null"> 1687 <context-group name="null">
1775 <context context-type="linenumber">75</context> 1688 <context context-type="linenumber">83</context>
1776 </context-group> 1689 </context-group>
1777 </trans-unit> 1690 </trans-unit>
1778 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b"> 1691 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
@@ -1811,7 +1724,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1811 <source>Share</source> 1724 <source>Share</source>
1812 <target>Udostępnij</target> 1725 <target>Udostępnij</target>
1813 <context-group name="null"> 1726 <context-group name="null">
1814 <context context-type="linenumber">64</context> 1727 <context context-type="linenumber">72</context>
1815 </context-group> 1728 </context-group>
1816 </trans-unit> 1729 </trans-unit>
1817 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6"> 1730 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
@@ -1847,7 +1760,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1847 Film jest w trakcie transkodowania, może nie działać prawidłowo. 1760 Film jest w trakcie transkodowania, może nie działać prawidłowo.
1848 </target> 1761 </target>
1849 <context-group name="null"> 1762 <context-group name="null">
1850 <context context-type="linenumber">6</context> 1763 <context context-type="linenumber">11</context>
1851 </context-group> 1764 </context-group>
1852 </trans-unit> 1765 </trans-unit>
1853 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087"> 1766 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
@@ -1858,7 +1771,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1858 Ten film zostanie opublikowany <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 1771 Ten film zostanie opublikowany <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1859 </target> 1772 </target>
1860 <context-group name="null"> 1773 <context-group name="null">
1861 <context context-type="linenumber">10</context> 1774 <context context-type="linenumber">15</context>
1862 </context-group> 1775 </context-group>
1863 </trans-unit> 1776 </trans-unit>
1864 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa"> 1777 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
@@ -1869,166 +1782,111 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
1869 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetlenia 1782 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> wyświetlenia
1870 </target> 1783 </target>
1871 <context-group name="null"> 1784 <context-group name="null">
1872 <context context-type="linenumber">21</context> 1785 <context context-type="linenumber">26</context>
1873 </context-group> 1786 </context-group>
1874 </trans-unit> 1787 </trans-unit>
1875 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33"> 1788 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1876 <source>Go the channel page</source> 1789 <source>Go the channel page</source>
1877 <target>Przejdź na stronę kanału</target> 1790 <target>Przejdź na stronę kanału</target>
1878 <context-group name="null"> 1791 <context-group name="null">
1879 <context context-type="linenumber">26</context> 1792 <context context-type="linenumber">31</context>
1880 </context-group>
1881 </trans-unit>
1882 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1883 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1884 <target>Możesz zasubskrybować to konto na każdej instancji należącej do Fediwersum obsługującej ActivityPub. Na przykład, na Mastodonie lub Pleromie możesz wprowadzić w pole wyszukiwania &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; i zasubskrybować je. Subskrybowanie jako użytkownik PeerTube jest przygotowywane w &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1885 <context-group name="null">
1886 <context context-type="linenumber">30</context>
1887 </context-group> 1793 </context-group>
1888 </trans-unit> 1794 </trans-unit>
1889 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c"> 1795 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1890 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source> 1796 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1891 <target>Od <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target> 1797 <target>Od <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1892 <context-group name="null"> 1798 <context-group name="null">
1893 <context context-type="linenumber">35</context> 1799 <context context-type="linenumber">41</context>
1894 </context-group> 1800 </context-group>
1895 </trans-unit> 1801 </trans-unit>
1896 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c"> 1802 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1897 <source>Go to the account page</source> 1803 <source>Go to the account page</source>
1898 <target>Przejdź na stronę konta</target> 1804 <target>Przejdź na stronę konta</target>
1899 <context-group name="null"> 1805 <context-group name="null">
1900 <context context-type="linenumber">34</context> 1806 <context context-type="linenumber">40</context>
1807 </context-group>
1808 </trans-unit>
1809 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1810 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1811 <target>Możesz zasubskrybować to konto na każdej instancji należącej do Fediwersum obsługującej ActivityPub. Na przykład, na Mastodonie lub Pleromie możesz wprowadzić w pole wyszukiwania &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; i zasubskrybować je. Subskrybowanie jako użytkownik PeerTube jest przygotowywane w &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</target>
1812 <context-group name="null">
1813 <context context-type="linenumber">45</context>
1901 </context-group> 1814 </context-group>
1902 </trans-unit> 1815 </trans-unit>
1903 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced"> 1816 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1904 <source>Like this video</source> 1817 <source>Like this video</source>
1905 <target>Polub ten film</target> 1818 <target>Polub ten film</target>
1906 <context-group name="null"> 1819 <context-group name="null">
1907 <context context-type="linenumber">47</context> 1820 <context context-type="linenumber">55</context>
1908 </context-group> 1821 </context-group>
1909 </trans-unit> 1822 </trans-unit>
1910 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509"> 1823 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1911 <source>Dislike this video</source> 1824 <source>Dislike this video</source>
1912 <context-group name="null"> 1825 <context-group name="null">
1913 <context context-type="linenumber">54</context> 1826 <context context-type="linenumber">62</context>
1914 </context-group> 1827 </context-group>
1915 </trans-unit> 1828 </trans-unit>
1916 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2"> 1829 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1917 <source>Download the video</source> 1830 <source>Download the video</source>
1918 <target>Pobierz ten film</target> 1831 <target>Pobierz ten film</target>
1919 <context-group name="null"> 1832 <context-group name="null">
1920 <context context-type="linenumber">74</context> 1833 <context context-type="linenumber">82</context>
1921 </context-group> 1834 </context-group>
1922 </trans-unit> 1835 </trans-unit>
1923 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a"> 1836 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1924 <source>Report</source> 1837 <source>Report</source>
1925 <target>Zgłoś</target> 1838 <target>Zgłoś</target>
1926 <context-group name="null"> 1839 <context-group name="null">
1927 <context context-type="linenumber">81</context> 1840 <context context-type="linenumber">89</context>
1928 </context-group> 1841 </context-group>
1929 </trans-unit> 1842 </trans-unit>
1930 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf"> 1843 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1931 <source>Report this video</source> 1844 <source>Report this video</source>
1932 <target>Zgłoś ten film</target> 1845 <target>Zgłoś ten film</target>
1933 <context-group name="null"> 1846 <context-group name="null">
1934 <context context-type="linenumber">80</context> 1847 <context context-type="linenumber">88</context>
1935 </context-group> 1848 </context-group>
1936 </trans-unit> 1849 </trans-unit>
1937 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61"> 1850 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1938 <source>Blacklist</source> 1851 <source>Blacklist</source>
1939 <target>Czarna lista</target> 1852 <target>Czarna lista</target>
1940 <context-group name="null"> 1853 <context-group name="null">
1941 <context context-type="linenumber">87</context> 1854 <context context-type="linenumber">95</context>
1942 </context-group> 1855 </context-group>
1943 </trans-unit> 1856 </trans-unit>
1944 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037"> 1857 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1945 <source>Blacklist this video</source> 1858 <source>Blacklist this video</source>
1946 <target>Dodaj ten film na czarną listę</target> 1859 <target>Dodaj ten film na czarną listę</target>
1947 <context-group name="null"> 1860 <context-group name="null">
1948 <context context-type="linenumber">86</context> 1861 <context context-type="linenumber">94</context>
1949 </context-group> 1862 </context-group>
1950 </trans-unit> 1863 </trans-unit>
1951 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1"> 1864 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1952 <source>Update this video</source> 1865 <source>Update this video</source>
1953 <target>Zaktualizuj ten film</target> 1866 <target>Zaktualizuj ten film</target>
1954 <context-group name="null"> 1867 <context-group name="null">
1955 <context context-type="linenumber">92</context> 1868 <context context-type="linenumber">100</context>
1956 </context-group> 1869 </context-group>
1957 </trans-unit> 1870 </trans-unit>
1958 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5"> 1871 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1959 <source>Delete this video</source> 1872 <source>Delete this video</source>
1960 <target>Usuń ten film</target> 1873 <target>Usuń ten film</target>
1961 <context-group name="null"> 1874 <context-group name="null">
1962 <context context-type="linenumber">98</context> 1875 <context context-type="linenumber">106</context>
1963 </context-group> 1876 </context-group>
1964 </trans-unit> 1877 </trans-unit>
1965 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b"> 1878 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1966 <source>Show more</source> 1879 <source>Show more</source>
1967 <target>Pokaż więcej</target> 1880 <target>Pokaż więcej</target>
1968 <context-group name="null"> 1881 <context-group name="null">
1969 <context context-type="linenumber">118</context> 1882 <context context-type="linenumber">126</context>
1970 </context-group> 1883 </context-group>
1971 </trans-unit> 1884 </trans-unit>
1972 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903"> 1885 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1973 <source>Show less</source> 1886 <source>Show less</source>
1974 <target>Pokaż mniej</target> 1887 <target>Pokaż mniej</target>
1975 <context-group name="null"> 1888 <context-group name="null">
1976 <context context-type="linenumber">124</context> 1889 <context context-type="linenumber">132</context>
1977 </context-group>
1978 </trans-unit>
1979 <trans-unit id="8057a9b7f9e908ff350edfd71417b96c174e5911">
1980 <source>
1981 Privacy
1982 </source>
1983 <target>
1984 Prywatność
1985 </target>
1986 <context-group name="null">
1987 <context context-type="linenumber">131</context>
1988 </context-group>
1989 </trans-unit>
1990 <trans-unit id="bd407eca607a8905a26a9e30c9d0cd70f4465db8">
1991 <source>
1992 Category
1993 </source>
1994 <target>
1995 Kategoria
1996 </target>
1997 <context-group name="null">
1998 <context context-type="linenumber">140</context>
1999 </context-group>
2000 </trans-unit>
2001 <trans-unit id="af5072bd79ea3cd767ab74a6622d2eee791b3832">
2002 <source>
2003 Licence
2004 </source>
2005 <target>
2006 Licencja
2007 </target>
2008 <context-group name="null">
2009 <context context-type="linenumber">149</context>
2010 </context-group>
2011 </trans-unit>
2012 <trans-unit id="a911eee019174741b0aec6fcf3fbd5752fab3e67">
2013 <source>
2014 Language
2015 </source>
2016 <target>
2017 Język
2018 </target>
2019 <context-group name="null">
2020 <context context-type="linenumber">158</context>
2021 </context-group>
2022 </trans-unit>
2023 <trans-unit id="ecf7007c2842cc26a7b91d08d48c7a4f5f749fb3">
2024 <source>
2025 Tags
2026 </source>
2027 <target>
2028 Tagi
2029 </target>
2030 <context-group name="null">
2031 <context context-type="linenumber">167</context>
2032 </context-group> 1890 </context-group>
2033 </trans-unit> 1891 </trans-unit>
2034 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1"> 1892 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
@@ -2039,24 +1897,13 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
2039 Inne filmy 1897 Inne filmy
2040 </target> 1898 </target>
2041 <context-group name="null"> 1899 <context-group name="null">
2042 <context context-type="linenumber">181</context> 1900 <context context-type="linenumber">183</context>
2043 </context-group> 1901 </context-group>
2044 </trans-unit> 1902 </trans-unit>
2045 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c"> 1903 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
2046 <source>Friendly Reminder:</source> 1904 <source>Friendly Reminder:</source>
2047 <target>Przypomnienie:</target> 1905 <target>Przypomnienie:</target>
2048 <context-group name="null"> 1906 <context-group name="null">
2049 <context context-type="linenumber">193</context>
2050 </context-group>
2051 </trans-unit>
2052 <trans-unit id="4c2fca29fd9d7e85abe85a206958a4226f403be2">
2053 <source>
2054 The sharing system used by this video implies that some technical information about your system (such as a public IP address) can be accessed publicly.
2055 </source>
2056 <target>
2057 Technologia udostępniania używana przez ten film oznacza, że część technicznych informacji o Twoim systemie (tj. publiczny adres IP) może być dostępna dla innych.
2058 </target>
2059 <context-group name="null">
2060 <context context-type="linenumber">195</context> 1907 <context context-type="linenumber">195</context>
2061 </context-group> 1908 </context-group>
2062 </trans-unit> 1909 </trans-unit>
@@ -2064,14 +1911,14 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
2064 <source>More information</source> 1911 <source>More information</source>
2065 <target>Więcej informacji</target> 1912 <target>Więcej informacji</target>
2066 <context-group name="null"> 1913 <context-group name="null">
2067 <context context-type="linenumber">198</context> 1914 <context context-type="linenumber">200</context>
2068 </context-group> 1915 </context-group>
2069 </trans-unit> 1916 </trans-unit>
2070 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318"> 1917 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
2071 <source>Get more information</source> 1918 <source>Get more information</source>
2072 <target>Uzyskaj więcej informacji</target> 1919 <target>Uzyskaj więcej informacji</target>
2073 <context-group name="null"> 1920 <context-group name="null">
2074 <context context-type="linenumber">198</context> 1921 <context context-type="linenumber">200</context>
2075 </context-group> 1922 </context-group>
2076 </trans-unit> 1923 </trans-unit>
2077 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f"> 1924 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
@@ -2082,7 +1929,7 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
2082 OK 1929 OK
2083 </target> 1930 </target>
2084 <context-group name="null"> 1931 <context-group name="null">
2085 <context context-type="linenumber">201</context> 1932 <context context-type="linenumber">203</context>
2086 </context-group> 1933 </context-group>
2087 </trans-unit> 1934 </trans-unit>
2088 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7"> 1935 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
@@ -2553,13 +2400,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
2553 <context context-type="linenumber">1</context> 2400 <context context-type="linenumber">1</context>
2554 </context-group> 2401 </context-group>
2555 </trans-unit> 2402 </trans-unit>
2556 <trans-unit id="4fe245955c7ec7d53a4236fda7a985edcb63124c">
2557 <source>An email with the reset password instructions will be sent to <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</source>
2558 <target>Adres e-mail z instrukcjami przywracania hasła został wysłany na <x id="INTERPOLATION" equiv-text="{{ email }}"/>.</target>
2559 <context-group name="null">
2560 <context context-type="linenumber">1</context>
2561 </context-group>
2562 </trans-unit>
2563 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752"> 2403 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2564 <source>Unable to find user id or verification string.</source> 2404 <source>Unable to find user id or verification string.</source>
2565 <target>Nie można znaleźć ID użytkownika lub kodu weryfikującego.</target> 2405 <target>Nie można znaleźć ID użytkownika lub kodu weryfikującego.</target>
@@ -2574,6 +2414,20 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
2574 <context context-type="linenumber">1</context> 2414 <context context-type="linenumber">1</context>
2575 </context-group> 2415 </context-group>
2576 </trans-unit> 2416 </trans-unit>
2417 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2418 <source>Today</source>
2419 <target>Dzisiaj</target>
2420 <context-group name="null">
2421 <context context-type="linenumber">1</context>
2422 </context-group>
2423 </trans-unit>
2424 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2425 <source>Search</source>
2426 <target>Szukaj</target>
2427 <context-group name="null">
2428 <context context-type="linenumber">1</context>
2429 </context-group>
2430 </trans-unit>
2577 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323"> 2431 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2578 <source>Instance name is required.</source> 2432 <source>Instance name is required.</source>
2579 <target>Nazwa instancji jest wymagana.</target> 2433 <target>Nazwa instancji jest wymagana.</target>
@@ -3258,13 +3112,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
3258 <context context-type="linenumber">1</context> 3112 <context context-type="linenumber">1</context>
3259 </context-group> 3113 </context-group>
3260 </trans-unit> 3114 </trans-unit>
3261 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
3262 <source>Today</source>
3263 <target>Dzisiaj</target>
3264 <context-group name="null">
3265 <context context-type="linenumber">1</context>
3266 </context-group>
3267 </trans-unit>
3268 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46"> 3115 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3269 <source>Clear</source> 3116 <source>Clear</source>
3270 <target>Wyczyśż</target> 3117 <target>Wyczyśż</target>
@@ -3468,13 +3315,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
3468 <context context-type="linenumber">1</context> 3315 <context context-type="linenumber">1</context>
3469 </context-group> 3316 </context-group>
3470 </trans-unit> 3317 </trans-unit>
3471 <trans-unit id="6d0fdbf0a14c9ac51e12b52f8781152ba5c87793">
3472 <source>This image is too large.</source>
3473 <target>Obraz jest zbyt wielki.</target>
3474 <context-group name="null">
3475 <context context-type="linenumber">1</context>
3476 </context-group>
3477 </trans-unit>
3478 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a"> 3318 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3479 <source>Your video was uploaded in your account and is private.</source> 3319 <source>Your video was uploaded in your account and is private.</source>
3480 <target>Twój film został wysłany na Twoje konto i jest prywatny.</target> 3320 <target>Twój film został wysłany na Twoje konto i jest prywatny.</target>
@@ -3510,13 +3350,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
3510 <context context-type="linenumber">1</context> 3350 <context context-type="linenumber">1</context>
3511 </context-group> 3351 </context-group>
3512 </trans-unit> 3352 </trans-unit>
3513 <trans-unit id="8b7132ca8401e9b847c242dc9a6b63cc63a80a74">
3514 <source>We are sorry but PeerTube cannot handle videos &gt; 4GB</source>
3515 <target>Przepraszamy, ale PeerTube nie obsługuje filmów większych niż 4GB</target>
3516 <context-group name="null">
3517 <context context-type="linenumber">1</context>
3518 </context-group>
3519 </trans-unit>
3520 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f"> 3353 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3521 <source>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 }}"/>)</source> 3354 <source>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 }}"/>)</source>
3522 <target>Twoja powierzchnia na filmy została przekroczona tym filmem (rozmiar filmu: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, powierzchnia: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target> 3355 <target>Twoja powierzchnia na filmy została przekroczona tym filmem (rozmiar filmu: <x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>, used: <x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>, powierzchnia: <x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
@@ -3586,13 +3419,6 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
3586 <context context-type="linenumber">1</context> 3419 <context context-type="linenumber">1</context>
3587 </context-group> 3420 </context-group>
3588 </trans-unit> 3421 </trans-unit>
3589 <trans-unit id="4a400b174208188dcb46f2c23f4af9accfabaa3f">
3590 <source>Cannot fetch video from server, maybe down.</source>
3591 <target>Nie można uzyskać filmu z serwera, może być niedostępny.</target>
3592 <context-group name="null">
3593 <context context-type="linenumber">1</context>
3594 </context-group>
3595 </trans-unit>
3596 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 3422 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3597 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 3423 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3598 <target>Ten film zawiera treści wulgarne lub przeznaczone dla dorosłych. Czy na pewno chcesz go obejrzeć?</target> 3424 <target>Ten film zawiera treści wulgarne lub przeznaczone dla dorosłych. Czy na pewno chcesz go obejrzeć?</target>
@@ -3607,12 +3433,5 @@ Jeżeli umieścisz film na ten kanał, pole informujące o możliwości wsparcia
3607 <context context-type="linenumber">1</context> 3433 <context context-type="linenumber">1</context>
3608 </context-group> 3434 </context-group>
3609 </trans-unit> 3435 </trans-unit>
3610 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
3611 <source>Search</source>
3612 <target>Szukaj</target>
3613 <context-group name="null">
3614 <context context-type="linenumber">1</context>
3615 </context-group>
3616 </trans-unit>
3617 </body> 3436 </body>
3618 </file></xliff> \ No newline at end of file 3437 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_pt_BR.xml b/client/src/locale/target/angular_pt_BR.xml
index 73af84038..7efc39706 100644
--- a/client/src/locale/target/angular_pt_BR.xml
+++ b/client/src/locale/target/angular_pt_BR.xml
@@ -11,14 +11,14 @@
11 Cancelar 11 Cancelar
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizações</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visualizações</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>Obter ajuda</target> 47 <target>Obter ajuda</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -107,7 +107,7 @@
107 <source>Password</source> 107 <source>Password</source>
108 <target>Senha</target> 108 <target>Senha</target>
109 <context-group name="null"> 109 <context-group name="null">
110 <context context-type="linenumber">28</context> 110 <context context-type="linenumber">12</context>
111 </context-group> 111 </context-group>
112 </trans-unit> 112 </trans-unit>
113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 113 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -555,21 +555,6 @@
555 <context context-type="linenumber">51</context> 555 <context context-type="linenumber">51</context>
556 </context-group> 556 </context-group>
557 </trans-unit> 557 </trans-unit>
558 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
559 <source>
560 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
561 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.
562 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
563 </source>
564 <target>
565 Pares web não são enviados diretamente pelo rastreador: por utilizarmos WebRTC dentro do navegador web, o protocolo é diferente do BitTorrent clássico.
566 Quando você está em um navegador web, você envia um sinal contendo seu endereço IP para o rastreador que escolherá outros pares para encaminhá-los a informação.
567 Veja <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>este documento<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> para mais informações
568 </target>
569 <context-group name="null">
570 <context context-type="linenumber">55</context>
571 </context-group>
572 </trans-unit>
573 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 558 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
574 <source> 559 <source>
575 The worst-case scenario of an average person spying on their friends is quite unlikely. 560 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -583,13 +568,6 @@
583 <context context-type="linenumber">62</context> 568 <context context-type="linenumber">62</context>
584 </context-group> 569 </context-group>
585 </trans-unit> 570 </trans-unit>
586 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
587 <source>How does PeerTube compares to YouTube?</source>
588 <target>Como o PeerTube se compara com o YouTube?</target>
589 <context-group name="null">
590 <context context-type="linenumber">67</context>
591 </context-group>
592 </trans-unit>
593 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 571 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
594 <source> 572 <source>
595 The threats to privacy in YouTube are different from PeerTube's. 573 The threats to privacy in YouTube are different from PeerTube's.
@@ -675,6 +653,13 @@
675 <context context-type="linenumber">94</context> 653 <context context-type="linenumber">94</context>
676 </context-group> 654 </context-group>
677 </trans-unit> 655 </trans-unit>
656 <trans-unit id="efde279863678ed95a8949a3712c99748bdabfe6">
657 <source>An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program</source>
658 <target>Um programa de redundância automática de vídeos: nós não saberíamos se o IP baixou o vídeo de propósito ou se isso foi o programa automatizado</target>
659 <context-group name="null">
660 <context context-type="linenumber">95</context>
661 </context-group>
662 </trans-unit>
678 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578"> 663 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578">
679 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source> 664 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
680 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> inscritos</target> 665 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> inscritos</target>
@@ -738,6 +723,412 @@
738 <context context-type="linenumber">54</context> 723 <context context-type="linenumber">54</context>
739 </context-group> 724 </context-group>
740 </trans-unit> 725 </trans-unit>
726 <trans-unit id="1cbeb1eb589bfbe5efce94184cacd3095ca26948">
727 <source>Videos Trending</source>
728 <target>Vídeos em Tendência</target>
729 <context-group name="null">
730 <context context-type="linenumber">57</context>
731 </context-group>
732 </trans-unit>
733 <trans-unit id="1861c96217213992e02dcb77e15ea69e718c9883">
734 <source>Videos Recently Added</source>
735 <target>Vídeos Adicionados Recentemente</target>
736 <context-group name="null">
737 <context context-type="linenumber">58</context>
738 </context-group>
739 </trans-unit>
740 <trans-unit id="b6307f83d9f43bff8d5129a7888e89964ddc3f7f">
741 <source>Local videos</source>
742 <target>Vídeos locais</target>
743 <context-group name="null">
744 <context context-type="linenumber">59</context>
745 </context-group>
746 </trans-unit>
747 <trans-unit id="8551afadb69b3fef89e191f507e8ac84e624e8b9">
748 <source>Policy on videos containing sensitive content</source>
749 <target>Política sobre vídeos que possuem conteúdo sensível</target>
750 <context-group name="null">
751 <context context-type="linenumber">68</context>
752 </context-group>
753 </trans-unit>
754 <trans-unit id="aa3ef567a1ea22c1e4d0acfdc8f80bc636bf12df">
755 <source>With &lt;strong&gt;Do not list&lt;/strong&gt; or &lt;strong&gt;Blur thumbnails&lt;/strong&gt;, a confirmation will be requested to watch the video.</source>
756 <target>Com &lt;strong&gt;Não listar&lt;/strong&gt; ou &lt;strong&gt;Desfocar miniaturas&lt;/strong&gt;, uma confirmação será requisitada para assistir o vídeo.</target>
757 <context-group name="null">
758 <context context-type="linenumber">6</context>
759 </context-group>
760 </trans-unit>
761 <trans-unit id="5e155c34fb3ed8159bf0a486a366cfbc6874f9fe">
762 <source>Do not list</source>
763 <target>Não listar</target>
764 <context-group name="null">
765 <context context-type="linenumber">11</context>
766 </context-group>
767 </trans-unit>
768 <trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
769 <source>Blur thumbnails</source>
770 <target>Desfocar miniaturas</target>
771 <context-group name="null">
772 <context context-type="linenumber">12</context>
773 </context-group>
774 </trans-unit>
775 <trans-unit id="010d24ef3c43b2d8f45a4d6cba7d73e12ee1557e">
776 <source>Display</source>
777 <target>Exibição</target>
778 <context-group name="null">
779 <context context-type="linenumber">13</context>
780 </context-group>
781 </trans-unit>
782 <trans-unit id="ca53e66e68986546b7ef820c934145fd7c9c4247">
783 <source>Signup enabled</source>
784 <target>Inscrição permitida</target>
785 <context-group name="null">
786 <context context-type="linenumber">90</context>
787 </context-group>
788 </trans-unit>
789 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
790 <source>Signup limit</source>
791 <target>Limite de inscrições</target>
792 <context-group name="null">
793 <context context-type="linenumber">94</context>
794 </context-group>
795 </trans-unit>
796 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
797 <source>Administrator</source>
798 <target>Administrador</target>
799 <context-group name="null">
800 <context context-type="linenumber">104</context>
801 </context-group>
802 </trans-unit>
803 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
804 <source>Admin email</source>
805 <target>Email de administrador</target>
806 <context-group name="null">
807 <context context-type="linenumber">107</context>
808 </context-group>
809 </trans-unit>
810 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
811 <source>Users</source>
812 <target>Usuários</target>
813 <context-group name="null">
814 <context context-type="linenumber">117</context>
815 </context-group>
816 </trans-unit>
817 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
818 <source>User default video quota</source>
819 <target>Cota padrão de vídeos do usuário</target>
820 <context-group name="null">
821 <context context-type="linenumber">120</context>
822 </context-group>
823 </trans-unit>
824 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
825 <source>Basic configuration</source>
826 <target>Configurações básicas</target>
827 <context-group name="null">
828 <context context-type="linenumber">5</context>
829 </context-group>
830 </trans-unit>
831 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc">
832 <source>Twitter</source>
833 <target>Twitter</target>
834 <context-group name="null">
835 <context context-type="linenumber">136</context>
836 </context-group>
837 </trans-unit>
838 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
839 <source>Your Twitter username</source>
840 <target>Seu nome de usuário no Twitter</target>
841 <context-group name="null">
842 <context context-type="linenumber">139</context>
843 </context-group>
844 </trans-unit>
845 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
846 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
847 <target>Indica a conta Twitter do sítio web ou plataforma em que o conteúdo foi publicado.</target>
848 <context-group name="null">
849 <context context-type="linenumber">142</context>
850 </context-group>
851 </trans-unit>
852 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
853 <source>Instance whitelisted by Twitter</source>
854 <target>Instância listada como permitida pelo Twitter</target>
855 <context-group name="null">
856 <context context-type="linenumber">155</context>
857 </context-group>
858 </trans-unit>
859 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
860 <source>If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.&lt;br /&gt;
861If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.&lt;br /&gt;&lt;br /&gt;
862Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; to see if you instance is whitelisted.</source>
863 <target>Se a sua instância está listada como permitida pelo Twitter, um player de vídeo será embutido no feed do Twitter no compartilhador do vídeo do PeerTube.&lt;br /&gt;
864Se a instância não está listada como permitida, nós utilizamos um cartão de imagem com link que redirecionará à sua instância PeerTube.&lt;br /&gt;&lt;br /&gt;
865Marque esta opção, salve as configurações e teste com uma URL de vídeo da sua instância (https://example.com/videos/watch/blabla) em &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; para ver se sua instância está listada como permitida.</target>
866 <context-group name="null">
867 <context context-type="linenumber">156</context>
868 </context-group>
869 </trans-unit>
870 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
871 <source>Services</source>
872 <target>Serviços</target>
873 <context-group name="null">
874 <context context-type="linenumber">134</context>
875 </context-group>
876 </trans-unit>
877 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
878 <source>Transcoding</source>
879 <target>Transcodificação</target>
880 <context-group name="null">
881 <context context-type="linenumber">164</context>
882 </context-group>
883 </trans-unit>
884 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
885 <source>Transcoding enabled</source>
886 <target>Transcodificação ativada</target>
887 <context-group name="null">
888 <context context-type="linenumber">168</context>
889 </context-group>
890 </trans-unit>
891 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
892 <source>If you disable transcoding, many videos from your users will not work!</source>
893 <target>Se você desativar a transcodificação, muitos vídeos dos seus usuários não funcionarão!</target>
894 <context-group name="null">
895 <context context-type="linenumber">169</context>
896 </context-group>
897 </trans-unit>
898 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
899 <source>Transcoding threads</source>
900 <target>Threads de transcodificação</target>
901 <context-group name="null">
902 <context context-type="linenumber">175</context>
903 </context-group>
904 </trans-unit>
905 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
906 <source>Previews cache size</source>
907 <target>Tamanho do cache de previsualizações</target>
908 <context-group name="null">
909 <context context-type="linenumber">207</context>
910 </context-group>
911 </trans-unit>
912 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
913 <source>Customizations</source>
914 <target>Personalizações</target>
915 <context-group name="null">
916 <context context-type="linenumber">228</context>
917 </context-group>
918 </trans-unit>
919 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
920 <source>JavaScript</source>
921 <target>JavaScript</target>
922 <context-group name="null">
923 <context context-type="linenumber">231</context>
924 </context-group>
925 </trans-unit>
926 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
927 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
928 <target>Escreva diretamente código JavaScript.&lt;br /&gt;Exemplo: &lt;pre&gt;console.log('minha instância é demais');&lt;/pre&gt;</target>
929 <context-group name="null">
930 <context context-type="linenumber">234</context>
931 </context-group>
932 </trans-unit>
933 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
934 <source>
935 Write directly CSS code. Example:&lt;br /&gt;
936 &lt;pre&gt;
937 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
938 background-color: red;
939 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
940 &lt;/pre&gt;
941
942 Prepend with &lt;em&gt;#custom-css&lt;/em&gt; to override styles. Example:
943 &lt;pre&gt;
944 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
945 color: red;
946 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
947 &lt;/pre&gt;
948 </source>
949 <target>
950 Escreva código CSS diretamente. Exemplo:&lt;br /&gt;
951 &lt;pre&gt;
952 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
953 background-color: red;
954 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
955 &lt;/pre&gt;
956
957 Prefixe com &lt;em&gt;#custom-css&lt;/em&gt; para sobrescrever estilos. Exemplo:
958 &lt;pre&gt;
959 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
960 color: red;
961 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
962 &lt;/pre&gt;
963 </target>
964 <context-group name="null">
965 <context context-type="linenumber">250</context>
966 </context-group>
967 </trans-unit>
968 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
969 <source>Advanced configuration</source>
970 <target>Configurações avançadas</target>
971 <context-group name="null">
972 <context context-type="linenumber">162</context>
973 </context-group>
974 </trans-unit>
975 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
976 <source>Update configuration</source>
977 <target>Atualizar configuração</target>
978 <context-group name="null">
979 <context context-type="linenumber">277</context>
980 </context-group>
981 </trans-unit>
982 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
983 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
984 <target>Aparentemente a configuração está valida. Por favor procure potenciais erros nas diferentes abas.</target>
985 <context-group name="null">
986 <context context-type="linenumber">278</context>
987 </context-group>
988 </trans-unit>
989 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
990 <source>
991 Users
992 </source>
993 <target>
994 Usuários
995 </target>
996 <context-group name="null">
997 <context context-type="linenumber">3</context>
998 </context-group>
999 </trans-unit>
1000 <trans-unit id="0315abd64e35510ed0534f597130ef781aca175a">
1001 <source>
1002 Manage follows
1003 </source>
1004 <target>
1005
1006 </target>
1007 <context-group name="null">
1008 <context context-type="linenumber">7</context>
1009 </context-group>
1010 </trans-unit>
1011 <trans-unit id="96ccede058f0022f34230c3adc09e60076b6d037">
1012 <source>
1013 Video blacklist
1014 </source>
1015 <target>
1016 Lista de bloqueio de vídeos
1017 </target>
1018 <context-group name="null">
1019 <context context-type="linenumber">15</context>
1020 </context-group>
1021 </trans-unit>
1022 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
1023 <source>
1024 Jobs
1025 </source>
1026 <target>
1027 Empregos
1028 </target>
1029 <context-group name="null">
1030 <context context-type="linenumber">19</context>
1031 </context-group>
1032 </trans-unit>
1033 <trans-unit id="9c6ce37623b626a102002901ca12c37e7a3a7f13">
1034 <source>
1035 Configuration
1036 </source>
1037 <target>
1038 Configurações
1039 </target>
1040 <context-group name="null">
1041 <context context-type="linenumber">23</context>
1042 </context-group>
1043 </trans-unit>
1044 <trans-unit id="4e8635c108375983b42229df44bda8c0af84f396">
1045 <source>1 host (without "http://") per line</source>
1046 <target>1 host (sem "http://") por linha</target>
1047 <context-group name="null">
1048 <context context-type="linenumber">5</context>
1049 </context-group>
1050 </trans-unit>
1051 <trans-unit id="f7a7a00999ccbd126cbb8e74f5dd1724942dd507">
1052 <source>
1053 It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers.
1054 </source>
1055 <target>
1056 Aparentemente você não está em um servidor HTTPS. Seu sítio web necessita ter TLS ativado para possibilitar seguir servidores.
1057 </target>
1058 <context-group name="null">
1059 <context context-type="linenumber">17</context>
1060 </context-group>
1061 </trans-unit>
1062 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c">
1063 <source>ID</source>
1064 <target>ID</target>
1065 <context-group name="null">
1066 <context context-type="linenumber">18</context>
1067 </context-group>
1068 </trans-unit>
1069 <trans-unit id="380e20a1e13d9489c69f6dbea7da19025ab6eb25">
1070 <source>Score</source>
1071 <target>Pontuação</target>
1072 <context-group name="null">
1073 <context context-type="linenumber">8</context>
1074 </context-group>
1075 </trans-unit>
1076 <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
1077 <source>Host</source>
1078 <target>Host</target>
1079 <context-group name="null">
1080 <context context-type="linenumber">8</context>
1081 </context-group>
1082 </trans-unit>
1083 <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
1084 <source>State</source>
1085 <target>Estado</target>
1086 <context-group name="null">
1087 <context context-type="linenumber">20</context>
1088 </context-group>
1089 </trans-unit>
1090 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
1091 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1092 <target>Criado <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1093 <context-group name="null">
1094 <context context-type="linenumber">16</context>
1095 </context-group>
1096 </trans-unit>
1097 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a">
1098 <source>john</source>
1099 <target>josé</target>
1100 <context-group name="null">
1101 <context context-type="linenumber">10</context>
1102 </context-group>
1103 </trans-unit>
1104 <trans-unit id="bb3542ff8e5defa6d0c773799e5c8fe399605d05">
1105 <source>mail@example.com</source>
1106 <target>mail@exemplo.com</target>
1107 <context-group name="null">
1108 <context context-type="linenumber">21</context>
1109 </context-group>
1110 </trans-unit>
1111 <trans-unit id="c36a66f2107e8da5371ebc9d15c2008dff567f46">
1112 <source>Role</source>
1113 <target>Papel</target>
1114 <context-group name="null">
1115 <context context-type="linenumber">19</context>
1116 </context-group>
1117 </trans-unit>
1118 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
1119 <source>Video quota</source>
1120 <target>Cota de vídeo</target>
1121 <context-group name="null">
1122 <context context-type="linenumber">18</context>
1123 </context-group>
1124 </trans-unit>
1125 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
1126 <source>Search</source>
1127 <target>Pesquisar</target>
1128 <context-group name="null">
1129 <context context-type="linenumber">1</context>
1130 </context-group>
1131 </trans-unit>
741 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 1132 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
742 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 1133 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
743 <target>Este vídeo possui conteúdo adulto ou explícito. Você tem certeza que deseja assistí-lo?</target> 1134 <target>Este vídeo possui conteúdo adulto ou explícito. Você tem certeza que deseja assistí-lo?</target>
@@ -752,12 +1143,5 @@
752 <context context-type="linenumber">1</context> 1143 <context context-type="linenumber">1</context>
753 </context-group> 1144 </context-group>
754 </trans-unit> 1145 </trans-unit>
755 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
756 <source>Search</source>
757 <target>Pesquisar</target>
758 <context-group name="null">
759 <context context-type="linenumber">1</context>
760 </context-group>
761 </trans-unit>
762 </body> 1146 </body>
763 </file></xliff> \ No newline at end of file 1147 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_sv_SE.xml b/client/src/locale/target/angular_sv_SE.xml
index 1749cab85..f711d4c66 100644
--- a/client/src/locale/target/angular_sv_SE.xml
+++ b/client/src/locale/target/angular_sv_SE.xml
@@ -10,7 +10,7 @@
10 <target> 10 <target>
11Avbryt</target> 11Avbryt</target>
12 <context-group name="null"> 12 <context-group name="null">
13 <context context-type="linenumber">40</context> 13 <context context-type="linenumber">45</context>
14 </context-group> 14 </context-group>
15 </trans-unit> 15 </trans-unit>
16 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 16 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -38,7 +38,7 @@ Avbryt</target>
38 <source>Get help</source> 38 <source>Get help</source>
39 <target>Få hjälp</target> 39 <target>Få hjälp</target>
40 <context-group name="null"> 40 <context-group name="null">
41 <context context-type="linenumber">17</context> 41 <context context-type="linenumber">18</context>
42 </context-group> 42 </context-group>
43 </trans-unit> 43 </trans-unit>
44 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 44 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -96,7 +96,7 @@ eller skapa ett konto på en annan instans</target>
96 <source>Password</source> 96 <source>Password</source>
97 <target>Lösenord</target> 97 <target>Lösenord</target>
98 <context-group name="null"> 98 <context-group name="null">
99 <context context-type="linenumber">28</context> 99 <context context-type="linenumber">12</context>
100 </context-group> 100 </context-group>
101 </trans-unit> 101 </trans-unit>
102 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 102 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -413,35 +413,35 @@ Obegränsad</target>
413 <source>Signup enabled</source> 413 <source>Signup enabled</source>
414 <target>Registrering aktiverat</target> 414 <target>Registrering aktiverat</target>
415 <context-group name="null"> 415 <context-group name="null">
416 <context context-type="linenumber">92</context> 416 <context context-type="linenumber">90</context>
417 </context-group> 417 </context-group>
418 </trans-unit> 418 </trans-unit>
419 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402"> 419 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
420 <source>Signup limit</source> 420 <source>Signup limit</source>
421 <target>Registreringsgräns</target> 421 <target>Registreringsgräns</target>
422 <context-group name="null"> 422 <context-group name="null">
423 <context context-type="linenumber">96</context> 423 <context context-type="linenumber">94</context>
424 </context-group> 424 </context-group>
425 </trans-unit> 425 </trans-unit>
426 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011"> 426 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
427 <source>Administrator</source> 427 <source>Administrator</source>
428 <target>Administratörs</target> 428 <target>Administratörs</target>
429 <context-group name="null"> 429 <context-group name="null">
430 <context context-type="linenumber">106</context> 430 <context context-type="linenumber">104</context>
431 </context-group> 431 </context-group>
432 </trans-unit> 432 </trans-unit>
433 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587"> 433 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
434 <source>Admin email</source> 434 <source>Admin email</source>
435 <target>Admin e-post</target> 435 <target>Admin e-post</target>
436 <context-group name="null"> 436 <context-group name="null">
437 <context context-type="linenumber">109</context> 437 <context context-type="linenumber">107</context>
438 </context-group> 438 </context-group>
439 </trans-unit> 439 </trans-unit>
440 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be"> 440 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
441 <source>Users</source> 441 <source>Users</source>
442 <target>Användare</target> 442 <target>Användare</target>
443 <context-group name="null"> 443 <context-group name="null">
444 <context context-type="linenumber">119</context> 444 <context context-type="linenumber">117</context>
445 </context-group> 445 </context-group>
446 </trans-unit> 446 </trans-unit>
447 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5"> 447 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
@@ -455,35 +455,35 @@ Obegränsad</target>
455 <source>Twitter</source> 455 <source>Twitter</source>
456 <target>Twitter</target> 456 <target>Twitter</target>
457 <context-group name="null"> 457 <context-group name="null">
458 <context context-type="linenumber">138</context> 458 <context context-type="linenumber">136</context>
459 </context-group> 459 </context-group>
460 </trans-unit> 460 </trans-unit>
461 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524"> 461 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
462 <source>Your Twitter username</source> 462 <source>Your Twitter username</source>
463 <target>Ditt Twitter-användarnamn</target> 463 <target>Ditt Twitter-användarnamn</target>
464 <context-group name="null"> 464 <context-group name="null">
465 <context context-type="linenumber">141</context> 465 <context context-type="linenumber">139</context>
466 </context-group> 466 </context-group>
467 </trans-unit> 467 </trans-unit>
468 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c"> 468 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
469 <source>JavaScript</source> 469 <source>JavaScript</source>
470 <target>JavaScript</target> 470 <target>JavaScript</target>
471 <context-group name="null"> 471 <context-group name="null">
472 <context context-type="linenumber">230</context> 472 <context context-type="linenumber">231</context>
473 </context-group> 473 </context-group>
474 </trans-unit> 474 </trans-unit>
475 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab"> 475 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
476 <source>Advanced configuration</source> 476 <source>Advanced configuration</source>
477 <target>Avancerad konfiguration</target> 477 <target>Avancerad konfiguration</target>
478 <context-group name="null"> 478 <context-group name="null">
479 <context context-type="linenumber">170</context> 479 <context context-type="linenumber">162</context>
480 </context-group> 480 </context-group>
481 </trans-unit> 481 </trans-unit>
482 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8"> 482 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
483 <source>Update configuration</source> 483 <source>Update configuration</source>
484 <target>Uppdatera konfiguration</target> 484 <target>Uppdatera konfiguration</target>
485 <context-group name="null"> 485 <context-group name="null">
486 <context context-type="linenumber">276</context> 486 <context context-type="linenumber">277</context>
487 </context-group> 487 </context-group>
488 </trans-unit> 488 </trans-unit>
489 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c"> 489 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
@@ -605,13 +605,6 @@ Det verkar som du inte är på en HTTPS-server. Din webbserver behöver ha TLS a
605 <context context-type="linenumber">19</context> 605 <context context-type="linenumber">19</context>
606 </context-group> 606 </context-group>
607 </trans-unit> 607 </trans-unit>
608 <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc">
609 <source>Updated</source>
610 <target>Uppdaterad</target>
611 <context-group name="null">
612 <context context-type="linenumber">22</context>
613 </context-group>
614 </trans-unit>
615 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015"> 608 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
616 <source>Create user</source> 609 <source>Create user</source>
617 <target>Skapa användare</target> 610 <target>Skapa användare</target>
@@ -745,46 +738,32 @@ Det verkar som du inte är på en HTTPS-server. Din webbserver behöver ha TLS a
745 <context context-type="linenumber">7</context> 738 <context context-type="linenumber">7</context>
746 </context-group> 739 </context-group>
747 </trans-unit> 740 </trans-unit>
748 <trans-unit id="7cadf30b337f4ef9b05b7d02e13ec3cf79de9dba">
749 <source><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> subscribers</source>
750 <target><x id="INTERPOLATION" equiv-text="{{ user.account?.followersCount }}"/> prenumeranter</target>
751 <context-group name="null">
752 <context context-type="linenumber">9</context>
753 </context-group>
754 </trans-unit>
755 <trans-unit id="3fb9a5f7268114445d8c109a8f48102e93471f5a">
756 <source>Change your avatar</source>
757 <target>Ändra din avatar</target>
758 <context-group name="null">
759 <context context-type="linenumber">14</context>
760 </context-group>
761 </trans-unit>
762 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48"> 741 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
763 <source>Video quota:</source> 742 <source>Video quota:</source>
764 <target>Videokvot:</target> 743 <target>Videokvot:</target>
765 <context-group name="null"> 744 <context-group name="null">
766 <context context-type="linenumber">20</context> 745 <context context-type="linenumber">4</context>
767 </context-group> 746 </context-group>
768 </trans-unit> 747 </trans-unit>
769 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8"> 748 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
770 <source>Profile</source> 749 <source>Profile</source>
771 <target>Profil</target> 750 <target>Profil</target>
772 <context-group name="null"> 751 <context-group name="null">
773 <context context-type="linenumber">24</context> 752 <context context-type="linenumber">8</context>
774 </context-group> 753 </context-group>
775 </trans-unit> 754 </trans-unit>
776 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925"> 755 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
777 <source>Video settings</source> 756 <source>Video settings</source>
778 <target>Videoinställningar</target> 757 <target>Videoinställningar</target>
779 <context-group name="null"> 758 <context-group name="null">
780 <context context-type="linenumber">31</context> 759 <context context-type="linenumber">15</context>
781 </context-group> 760 </context-group>
782 </trans-unit> 761 </trans-unit>
783 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79"> 762 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
784 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 763 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
785 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visningar</target> 764 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> visningar</target>
786 <context-group name="null"> 765 <context-group name="null">
787 <context context-type="linenumber">20</context> 766 <context context-type="linenumber">19</context>
788 </context-group> 767 </context-group>
789 </trans-unit> 768 </trans-unit>
790 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7"> 769 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
@@ -812,14 +791,7 @@ Det verkar som du inte är på en HTTPS-server. Din webbserver behöver ha TLS a
812 <source>Create a video channel</source> 791 <source>Create a video channel</source>
813 <target>Skapa en videokanal</target> 792 <target>Skapa en videokanal</target>
814 <context-group name="null"> 793 <context-group name="null">
815 <context context-type="linenumber">1</context> 794 <context context-type="linenumber">6</context>
816 </context-group>
817 </trans-unit>
818 <trans-unit id="9277e6f7b8ed9538d1f6ad812b620384252ffe56">
819 <source>Update <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></source>
820 <target>Uppdatera <x id="INTERPOLATION" equiv-text="{{ videoChannel?.displayName }}"/></target>
821 <context-group name="null">
822 <context context-type="linenumber">2</context>
823 </context-group> 795 </context-group>
824 </trans-unit> 796 </trans-unit>
825 </body> 797 </body>
diff --git a/client/src/locale/target/angular_zh_Hans_CN.xml b/client/src/locale/target/angular_zh_Hans_CN.xml
index 5d0b30363..638275aeb 100644
--- a/client/src/locale/target/angular_zh_Hans_CN.xml
+++ b/client/src/locale/target/angular_zh_Hans_CN.xml
@@ -11,14 +11,14 @@
11 取消 11 取消
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次观看</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次观看</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>帮助</target> 47 <target>帮助</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -96,7 +96,7 @@
96 </trans-unit> 96 </trans-unit>
97 <trans-unit id="76e1f485e6ead4c84b606f46d413878881d66ad3"> 97 <trans-unit id="76e1f485e6ead4c84b606f46d413878881d66ad3">
98 <source>User registration is not allowed on this instance, but you can register on many others!</source> 98 <source>User registration is not allowed on this instance, but you can register on many others!</source>
99 <target>不允许用户注册,但您可以许多!</target> 99 <target>此实允许用户注册,但您可以它的许多上注册!</target>
100 <context-group name="null"> 100 <context-group name="null">
101 <context context-type="linenumber">26</context> 101 <context context-type="linenumber">26</context>
102 </context-group> 102 </context-group>
@@ -105,7 +105,7 @@
105 <source>Password</source> 105 <source>Password</source>
106 <target>密码</target> 106 <target>密码</target>
107 <context-group name="null"> 107 <context-group name="null">
108 <context context-type="linenumber">28</context> 108 <context context-type="linenumber">12</context>
109 </context-group> 109 </context-group>
110 </trans-unit> 110 </trans-unit>
111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -298,6 +298,13 @@
298 <context context-type="linenumber">55</context> 298 <context context-type="linenumber">55</context>
299 </context-group> 299 </context-group>
300 </trans-unit> 300 </trans-unit>
301 <trans-unit id="b7648e7aced164498aa843b5c4e8f2f1c36a7919">
302 <source>Administration</source>
303 <target>管理</target>
304 <context-group name="null">
305 <context context-type="linenumber">64</context>
306 </context-group>
307 </trans-unit>
301 <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a"> 308 <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a">
302 <source>About</source> 309 <source>About</source>
303 <target>关于</target> 310 <target>关于</target>
@@ -319,6 +326,27 @@
319 <context context-type="linenumber">9</context> 326 <context context-type="linenumber">9</context>
320 </context-group> 327 </context-group>
321 </trans-unit> 328 </trans-unit>
329 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
330 <source>Category</source>
331 <target>分类</target>
332 <context-group name="null">
333 <context context-type="linenumber">144</context>
334 </context-group>
335 </trans-unit>
336 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
337 <source>Licence</source>
338 <target>协议</target>
339 <context-group name="null">
340 <context context-type="linenumber">153</context>
341 </context-group>
342 </trans-unit>
343 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
344 <source>Language</source>
345 <target>语言</target>
346 <context-group name="null">
347 <context context-type="linenumber">162</context>
348 </context-group>
349 </trans-unit>
322 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 350 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
323 <source>No results.</source> 351 <source>No results.</source>
324 <target>没有结果</target> 352 <target>没有结果</target>
@@ -333,6 +361,66 @@
333 <context context-type="linenumber">7</context> 361 <context context-type="linenumber">7</context>
334 </context-group> 362 </context-group>
335 </trans-unit> 363 </trans-unit>
364 <trans-unit id="6385c357c1de58ce92c0cf618ecf9cf74b917390">
365 <source>PeerTube</source>
366 <target>PeerTube</target>
367 <context-group name="null">
368 <context context-type="linenumber">7</context>
369 </context-group>
370 </trans-unit>
371 <trans-unit id="5849c589454817c1e991639d3091d8da0e8d6bd2">
372 <source>
373 About <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/> instance
374</source>
375 <target>
376 跳过实例 <x id="INTERPOLATION" equiv-text="{{ instanceName }}"/></target>
377 <context-group name="null">
378 <context context-type="linenumber">1</context>
379 </context-group>
380 </trans-unit>
381 <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0">
382 <source>Description</source>
383 <target>描述</target>
384 <context-group name="null">
385 <context context-type="linenumber">23</context>
386 </context-group>
387 </trans-unit>
388 <trans-unit id="69580f2c2dbf4edf7096820ba8c393367352d774">
389 <source>Terms</source>
390 <target>条款</target>
391 <context-group name="null">
392 <context context-type="linenumber">43</context>
393 </context-group>
394 </trans-unit>
395 <trans-unit id="9c6e6db693ab265457c6578df179c65694141d27">
396 <source>User registration is allowed and</source>
397 <target>用户注册开放,并且</target>
398 <context-group name="null">
399 <context context-type="linenumber">25</context>
400 </context-group>
401 </trans-unit>
402 <trans-unit id="ac324b07e7c3c972f1c33894eda02dc2917eda5e">
403 <source>
404 this instance provides a baseline quota of <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> space for the videos of its users.
405 </source>
406 <target>
407 本实例提供大小为 <x id="INTERPOLATION" equiv-text="{{ userVideoQuota | bytes: 0 }}"/> 的基准空间用于存储用户上传的视频。
408 </target>
409 <context-group name="null">
410 <context context-type="linenumber">27</context>
411 </context-group>
412 </trans-unit>
413 <trans-unit id="a6865ec6abf6af58f808501d84c8ed6ff8ce46ae">
414 <source>
415 this instance provides unlimited space for the videos of its users.
416 </source>
417 <target>
418 本实例为用户提供无限制的视频存储空间。
419 </target>
420 <context-group name="null">
421 <context context-type="linenumber">31</context>
422 </context-group>
423 </trans-unit>
336 <trans-unit id="5c856a6a233b6f6c4cc8eed46436d31d2da63fc1"> 424 <trans-unit id="5c856a6a233b6f6c4cc8eed46436d31d2da63fc1">
337 <source> 425 <source>
338 User registration is currently not allowed. 426 User registration is currently not allowed.
@@ -344,6 +432,37 @@
344 <context context-type="linenumber">36</context> 432 <context context-type="linenumber">36</context>
345 </context-group> 433 </context-group>
346 </trans-unit> 434 </trans-unit>
435 <trans-unit id="a11e3ba2c5aea841de67a3c85892bb61295e94dc">
436 <source>
437 About PeerTube
438</source>
439 <target>关于 PeerTube</target>
440 <context-group name="null">
441 <context context-type="linenumber">1</context>
442 </context-group>
443 </trans-unit>
444 <trans-unit id="c2bc16265b72b9af4a4374b805931ae03e3f73a5">
445 <source>
446 It is a free and open-source software, under the <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3 licence<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
447 </source>
448 <target>
449 这是自由且开源的软件,以 <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>AGPLv3 协议<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>发布。
450 </target>
451 <context-group name="null">
452 <context context-type="linenumber">8</context>
453 </context-group>
454 </trans-unit>
455 <trans-unit id="a10308f7ac111f5b66d08af0a24fc9ddf143931a">
456 <source>
457 For more information, please visit <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>.
458 </source>
459 <target>
460 欲获取更多信息,请访问 <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>joinpeertube.org<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>。
461 </target>
462 <context-group name="null">
463 <context context-type="linenumber">12</context>
464 </context-group>
465 </trans-unit>
347 <trans-unit id="c02493cfa08b82c468233b83069b5baff23890e1"> 466 <trans-unit id="c02493cfa08b82c468233b83069b5baff23890e1">
348 <source>P2P &amp; Privacy</source> 467 <source>P2P &amp; Privacy</source>
349 <target>P2P隐私</target> 468 <target>P2P隐私</target>
@@ -351,6 +470,79 @@
351 <context context-type="linenumber">18</context> 470 <context context-type="linenumber">18</context>
352 </context-group> 471 </context-group>
353 </trans-unit> 472 </trans-unit>
473 <trans-unit id="cd429d53cb8f4a87879301248e38cb85f07fa9d6">
474 <source>
475 PeerTube uses the BitTorrent protocol to share bandwidth between users.
476 This implies that your IP address is stored in the instance's BitTorrent tracker as long as you download or watch the video.
477 </source>
478 <target>
479 PeerTube 使用 BitTorrent 协议在用户间分享带宽。
480 这代表着只要您下载或者播放了此视频,您的 IP 地址就会被此实例的 BitTorrent tracker 服务器储存。</target>
481 <context-group name="null">
482 <context context-type="linenumber">20</context>
483 </context-group>
484 </trans-unit>
485 <trans-unit id="e4ce50f3019e3ebe9a479784c6cb68a31c7a8231">
486 <source>What are the consequences?</source>
487 <target>结果如何?</target>
488 <context-group name="null">
489 <context context-type="linenumber">25</context>
490 </context-group>
491 </trans-unit>
492 <trans-unit id="9a612748b059ad246935df17ef4ec4e6afb43a2a">
493 <source>
494 In theory, someone with enough technical skills could create a script that tracks which IP is downloading which video.
495 In practice, this is much more difficult because:
496 </source>
497 <target>
498 理论上,技术能力足够强的人能写一个脚本来跟踪哪个 IP 下载了什么视频。
499 实际上这件事要难得多,因为:</target>
500 <context-group name="null">
501 <context context-type="linenumber">27</context>
502 </context-group>
503 </trans-unit>
504 <trans-unit id="3c2990d5e452bdf2317ff23745db70705d848d99">
505 <source>What can I do to limit the exposure of my IP address?</source>
506 <target>我如何限制我 IP 地址的暴露?</target>
507 <context-group name="null">
508 <context context-type="linenumber">75</context>
509 </context-group>
510 </trans-unit>
511 <trans-unit id="8ce78dd287b9a9dde5079916425ea66466530e41">
512 <source>What will be done to mitigate this problem?</source>
513 <target>如何缓解这个问题?</target>
514 <context-group name="null">
515 <context context-type="linenumber">83</context>
516 </context-group>
517 </trans-unit>
518 <trans-unit id="ba77e356eaa5c06caaf5c8734c361d1a5415fe1c">
519 <source>Ring a bell if there are unusual requests (being tested)</source>
520 <target>出现异常请求时给予提示(正在测试)</target>
521 <context-group name="null">
522 <context context-type="linenumber">93</context>
523 </context-group>
524 </trans-unit>
525 <trans-unit id="81861ff8a71c8a5881cdf66417f3bddb753f0e18">
526 <source>Disable P2P from the administration interface</source>
527 <target>从管理界面禁用 P2P</target>
528 <context-group name="null">
529 <context context-type="linenumber">94</context>
530 </context-group>
531 </trans-unit>
532 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578">
533 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
534 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> 位订阅者</target>
535 <context-group name="null">
536 <context context-type="linenumber">12</context>
537 </context-group>
538 </trans-unit>
539 <trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
540 <source>Video channels</source>
541 <target>视频频道</target>
542 <context-group name="null">
543 <context context-type="linenumber">19</context>
544 </context-group>
545 </trans-unit>
354 <trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a"> 546 <trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
355 <source>Stats</source> 547 <source>Stats</source>
356 <target>统计</target> 548 <target>统计</target>
@@ -372,20 +564,663 @@
372 <context context-type="linenumber">57</context> 564 <context context-type="linenumber">57</context>
373 </context-group> 565 </context-group>
374 </trans-unit> 566 </trans-unit>
375 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71"> 567 <trans-unit id="b6307f83d9f43bff8d5129a7888e89964ddc3f7f">
376 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source> 568 <source>Local videos</source>
377 <target>视频包含成人内容,确定继续播放吗?</target> 569 <target>视频</target>
378 <context-group name="null"> 570 <context-group name="null">
379 <context context-type="linenumber">1</context> 571 <context context-type="linenumber">59</context>
380 </context-group> 572 </context-group>
381 </trans-unit> 573 </trans-unit>
382 <trans-unit id="5ba3d522e4146eefcbd5c222247c1e2423d27cd8"> 574 <trans-unit id="8551afadb69b3fef89e191f507e8ac84e624e8b9">
383 <source>Mature or explicit content</source> 575 <source>Policy on videos containing sensitive content</source>
384 <target>成人内容</target> 576 <target>关于包含敏感内容视频的方针</target>
577 <context-group name="null">
578 <context context-type="linenumber">68</context>
579 </context-group>
580 </trans-unit>
581 <trans-unit id="5e155c34fb3ed8159bf0a486a366cfbc6874f9fe">
582 <source>Do not list</source>
583 <target>不要出现在列表上</target>
584 <context-group name="null">
585 <context context-type="linenumber">11</context>
586 </context-group>
587 </trans-unit>
588 <trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
589 <source>Blur thumbnails</source>
590 <target>对缩略图进行模糊处理</target>
591 <context-group name="null">
592 <context context-type="linenumber">12</context>
593 </context-group>
594 </trans-unit>
595 <trans-unit id="010d24ef3c43b2d8f45a4d6cba7d73e12ee1557e">
596 <source>Display</source>
597 <target>显示</target>
598 <context-group name="null">
599 <context context-type="linenumber">13</context>
600 </context-group>
601 </trans-unit>
602 <trans-unit id="ca53e66e68986546b7ef820c934145fd7c9c4247">
603 <source>Signup enabled</source>
604 <target>开放注册</target>
605 <context-group name="null">
606 <context context-type="linenumber">90</context>
607 </context-group>
608 </trans-unit>
609 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
610 <source>Signup limit</source>
611 <target>注册限制</target>
612 <context-group name="null">
613 <context context-type="linenumber">94</context>
614 </context-group>
615 </trans-unit>
616 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
617 <source>Administrator</source>
618 <target>管理员</target>
619 <context-group name="null">
620 <context context-type="linenumber">104</context>
621 </context-group>
622 </trans-unit>
623 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
624 <source>Admin email</source>
625 <target>管理员邮箱</target>
626 <context-group name="null">
627 <context context-type="linenumber">107</context>
628 </context-group>
629 </trans-unit>
630 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
631 <source>Users</source>
632 <target>用户</target>
633 <context-group name="null">
634 <context context-type="linenumber">117</context>
635 </context-group>
636 </trans-unit>
637 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
638 <source>User default video quota</source>
639 <target>用户的默认视频存储空间大小</target>
640 <context-group name="null">
641 <context context-type="linenumber">120</context>
642 </context-group>
643 </trans-unit>
644 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
645 <source>Basic configuration</source>
646 <target>基本配置</target>
647 <context-group name="null">
648 <context context-type="linenumber">5</context>
649 </context-group>
650 </trans-unit>
651 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc">
652 <source>Twitter</source>
653 <target>Twitter</target>
654 <context-group name="null">
655 <context context-type="linenumber">136</context>
656 </context-group>
657 </trans-unit>
658 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
659 <source>Your Twitter username</source>
660 <target>你的 Twitter 用户名</target>
661 <context-group name="null">
662 <context context-type="linenumber">139</context>
663 </context-group>
664 </trans-unit>
665 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
666 <source>Transcoding</source>
667 <target>正在转码</target>
668 <context-group name="null">
669 <context context-type="linenumber">164</context>
670 </context-group>
671 </trans-unit>
672 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
673 <source>Transcoding enabled</source>
674 <target>转码被启用</target>
675 <context-group name="null">
676 <context context-type="linenumber">168</context>
677 </context-group>
678 </trans-unit>
679 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
680 <source>If you disable transcoding, many videos from your users will not work!</source>
681 <target>如果禁用转码,许多你的用户上传的视频将不可用!</target>
682 <context-group name="null">
683 <context context-type="linenumber">169</context>
684 </context-group>
685 </trans-unit>
686 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
687 <source>Transcoding threads</source>
688 <target>转码线程数</target>
689 <context-group name="null">
690 <context context-type="linenumber">175</context>
691 </context-group>
692 </trans-unit>
693 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
694 <source>Previews cache size</source>
695 <target>预览缓存大小</target>
696 <context-group name="null">
697 <context context-type="linenumber">207</context>
698 </context-group>
699 </trans-unit>
700 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
701 <source>Customizations</source>
702 <target>个性化</target>
703 <context-group name="null">
704 <context context-type="linenumber">228</context>
705 </context-group>
706 </trans-unit>
707 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
708 <source>JavaScript</source>
709 <target>JavaScript</target>
710 <context-group name="null">
711 <context context-type="linenumber">231</context>
712 </context-group>
713 </trans-unit>
714 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
715 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
716 <target>直接写入 JavaScript 代码。&lt;br /&gt;例如: &lt;pre&gt;console.log('我的实例太棒了!');&lt;/pre&gt;</target>
717 <context-group name="null">
718 <context context-type="linenumber">234</context>
719 </context-group>
720 </trans-unit>
721 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
722 <source>Advanced configuration</source>
723 <target>高级配置</target>
724 <context-group name="null">
725 <context context-type="linenumber">162</context>
726 </context-group>
727 </trans-unit>
728 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
729 <source>Update configuration</source>
730 <target>更新配置</target>
731 <context-group name="null">
732 <context context-type="linenumber">277</context>
733 </context-group>
734 </trans-unit>
735 <trans-unit id="1c9406213cf05033eda4d3df678217b5eb822315">
736 <source>
737 Video abuses
738 </source>
739 <target>
740 视频滥用
741 </target>
742 <context-group name="null">
743 <context context-type="linenumber">11</context>
744 </context-group>
745 </trans-unit>
746 <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
747 <source>State</source>
748 <target>状态</target>
749 <context-group name="null">
750 <context context-type="linenumber">20</context>
751 </context-group>
752 </trans-unit>
753 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
754 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
755 <target>创建了 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
756 <context-group name="null">
757 <context context-type="linenumber">16</context>
758 </context-group>
759 </trans-unit>
760 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
761 <source>Create user</source>
762 <target>创建用户</target>
763 <context-group name="null">
764 <context context-type="linenumber">6</context>
765 </context-group>
766 </trans-unit>
767 <trans-unit id="2788d9a67ed2b6f35c85818e6af1871317c57a7e">
768 <source>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/></source>
769 <target>编辑用户 <x id="INTERPOLATION" equiv-text="{{ username }}"/></target>
770 <context-group name="null">
771 <context context-type="linenumber">2</context>
772 </context-group>
773 </trans-unit>
774 <trans-unit id="c36a66f2107e8da5371ebc9d15c2008dff567f46">
775 <source>Role</source>
776 <target>角色</target>
777 <context-group name="null">
778 <context context-type="linenumber">19</context>
779 </context-group>
780 </trans-unit>
781 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
782 <source>Video quota</source>
783 <target>视频存储空间</target>
784 <context-group name="null">
785 <context context-type="linenumber">18</context>
786 </context-group>
787 </trans-unit>
788 <trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
789 <source>Users list</source>
790 <target>用户列表</target>
791 <context-group name="null">
792 <context context-type="linenumber">2</context>
793 </context-group>
794 </trans-unit>
795 <trans-unit id="0c7e8870481f1287af6a142f538391d8c16c2408">
796 <source>Video abuses list</source>
797 <target>视频滥用列表</target>
798 <context-group name="null">
799 <context context-type="linenumber">2</context>
800 </context-group>
801 </trans-unit>
802 <trans-unit id="4ba250869daa372b54d24fafc0ea934769ee4076">
803 <source>Reason</source>
804 <target>原因</target>
805 <context-group name="null">
806 <context context-type="linenumber">11</context>
807 </context-group>
808 </trans-unit>
809 <trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
810 <source>Reporter</source>
811 <target>报告者</target>
812 <context-group name="null">
813 <context context-type="linenumber">12</context>
814 </context-group>
815 </trans-unit>
816 <trans-unit id="2d1ea268a6a9f483dbc2cbfe19bf4256a57a6af4">
817 <source>Video</source>
818 <target>视频</target>
819 <context-group name="null">
820 <context context-type="linenumber">14</context>
821 </context-group>
822 </trans-unit>
823 <trans-unit id="c6ab75e099e131d7a4f94e1732e7436d8fc386c7">
824 <source>Go to the account</source>
825 <target>转到账号</target>
826 <context-group name="null">
827 <context context-type="linenumber">22</context>
828 </context-group>
829 </trans-unit>
830 <trans-unit id="1cb8348c199d03e297d165e262237194f25fe3f5">
831 <source>Go to the video</source>
832 <target>转到视频</target>
833 <context-group name="null">
834 <context context-type="linenumber">28</context>
835 </context-group>
836 </trans-unit>
837 <trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
838 <source>Blacklisted videos</source>
839 <target>被拉黑的视频</target>
840 <context-group name="null">
841 <context context-type="linenumber">2</context>
842 </context-group>
843 </trans-unit>
844 <trans-unit id="d4717113115ca7106a354a5aac54d1c0126261d9">
845 <source>NSFW</source>
846 <target>不适宜于工作场所播放(NSFW)</target>
847 <context-group name="null">
848 <context context-type="linenumber">14</context>
849 </context-group>
850 </trans-unit>
851 <trans-unit id="8c87d9527af7ff2ada84c911516a9e43a352e401">
852 <source>UUID</source>
853 <target>唯一ID</target>
854 <context-group name="null">
855 <context context-type="linenumber">15</context>
856 </context-group>
857 </trans-unit>
858 <trans-unit id="86f26b106c67be3c2e98b82766656e5d9da86dff">
859 <source>Unblacklist</source>
860 <target>取消黑名单</target>
861 <context-group name="null">
862 <context context-type="linenumber">30</context>
863 </context-group>
864 </trans-unit>
865 <trans-unit id="efad4be364b8fb5c73cbfcc7acccd542f9d84ad6">
866 <source>My settings</source>
867 <target>我的设置</target>
868 <context-group name="null">
869 <context context-type="linenumber">3</context>
870 </context-group>
871 </trans-unit>
872 <trans-unit id="520d68b2c9f7dacaf2a5073716cad9bd328ea7e7">
873 <source>My video channels</source>
874 <target>我的视频频道</target>
875 <context-group name="null">
876 <context context-type="linenumber">5</context>
877 </context-group>
878 </trans-unit>
879 <trans-unit id="d02888c485d3aeab6de628508f4a00312a722894">
880 <source>My videos</source>
881 <target>我的视频</target>
882 <context-group name="null">
883 <context context-type="linenumber">7</context>
884 </context-group>
885 </trans-unit>
886 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
887 <source>Profile</source>
888 <target>个人资料</target>
889 <context-group name="null">
890 <context context-type="linenumber">8</context>
891 </context-group>
892 </trans-unit>
893 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
894 <source>Video settings</source>
895 <target>视频设置</target>
896 <context-group name="null">
897 <context context-type="linenumber">15</context>
898 </context-group>
899 </trans-unit>
900 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
901 <source>Delete</source>
902 <target>删除</target>
903 <context-group name="null">
904 <context context-type="linenumber">15</context>
905 </context-group>
906 </trans-unit>
907 <trans-unit id="73c1cefc348a6f361497210dea1ed79499fd1260">
908 <source>Create another video channel</source>
909 <target>再建立一个视频频道</target>
910 <context-group name="null">
911 <context context-type="linenumber">4</context>
912 </context-group>
913 </trans-unit>
914 <trans-unit id="30fcac6c20aac1f24e000efc4a889cbb93d4baf2">
915 <source>Go to the channel</source>
916 <target>转到频道</target>
917 <context-group name="null">
918 <context context-type="linenumber">15</context>
919 </context-group>
920 </trans-unit>
921 <trans-unit id="9dbe4718a5611fbc611fc6b5e0b27df813372c68">
922 <source>Create a video channel</source>
923 <target>建立视频频道</target>
924 <context-group name="null">
925 <context context-type="linenumber">6</context>
926 </context-group>
927 </trans-unit>
928 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
929 <source>Display name</source>
930 <target>显示名</target>
931 <context-group name="null">
932 <context context-type="linenumber">6</context>
933 </context-group>
934 </trans-unit>
935 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
936 <source>Change password</source>
937 <target>修改密码</target>
938 <context-group name="null">
939 <context context-type="linenumber">19</context>
940 </context-group>
941 </trans-unit>
942 <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
943 <source>New password</source>
944 <target>新密码</target>
945 <context-group name="null">
946 <context context-type="linenumber">7</context>
947 </context-group>
948 </trans-unit>
949 <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b">
950 <source>Confirm new password</source>
951 <target>确认新密码</target>
952 <context-group name="null">
953 <context context-type="linenumber">15</context>
954 </context-group>
955 </trans-unit>
956 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
957 <source>Automatically plays video</source>
958 <target>自动播放视频</target>
959 <context-group name="null">
960 <context context-type="linenumber">20</context>
961 </context-group>
962 </trans-unit>
963 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
964 <source>Save</source>
965 <target>保存</target>
966 <context-group name="null">
967 <context context-type="linenumber">23</context>
968 </context-group>
969 </trans-unit>
970 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
971 <source>Update my profile</source>
972 <target>更新我的个人资料</target>
973 <context-group name="null">
974 <context context-type="linenumber">27</context>
975 </context-group>
976 </trans-unit>
977 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
978 <source>
979 Sorry, but we couldn't find the page you were looking for.
980</source>
981 <target>
982 抱歉,我们没有找到您所寻找的页面。
983</target>
385 <context-group name="null"> 984 <context-group name="null">
386 <context context-type="linenumber">1</context> 985 <context context-type="linenumber">1</context>
387 </context-group> 986 </context-group>
388 </trans-unit> 987 </trans-unit>
988 <trans-unit id="c65641c36859c328928e6b0f14c3f913886f8add">
989 <source>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></source>
990 <target>由 <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> 创建</target>
991 <context-group name="null">
992 <context context-type="linenumber">14</context>
993 </context-group>
994 </trans-unit>
995 <trans-unit id="e006ed166ce188cab168e1ca90435b33d042d913">
996 <source>Go the owner account page</source>
997 <target>转到视频上传者的账户页面</target>
998 <context-group name="null">
999 <context context-type="linenumber">13</context>
1000 </context-group>
1001 </trans-unit>
1002 <trans-unit id="1380539d91f77f565de6e21ce210da891e6644b8">
1003 <source>Support this channel</source>
1004 <target>支持此频道</target>
1005 <context-group name="null">
1006 <context context-type="linenumber">9</context>
1007 </context-group>
1008 </trans-unit>
1009 <trans-unit id="5523952d0300c96cfba2ec5a693c95f923e90c40">
1010 <source>Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></source>
1011 <target>创建于 <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></target>
1012 <context-group name="null">
1013 <context context-type="linenumber">17</context>
1014 </context-group>
1015 </trans-unit>
1016 <trans-unit id="3c78b53bca33467190c0b7a01320bc093a2b1427">
1017 <source>Privacy</source>
1018 <target>隐私</target>
1019 <context-group name="null">
1020 <context context-type="linenumber">139</context>
1021 </context-group>
1022 </trans-unit>
1023 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1024 <source>Publish will be available when upload is finished</source>
1025 <target>上传完成时将可以发布</target>
1026 <context-group name="null">
1027 <context context-type="linenumber">54</context>
1028 </context-group>
1029 </trans-unit>
1030 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1031 <source>Publish</source>
1032 <target>发布</target>
1033 <context-group name="null">
1034 <context context-type="linenumber">61</context>
1035 </context-group>
1036 </trans-unit>
1037 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
1038 <source>Title</source>
1039 <target>标题</target>
1040 <context-group name="null">
1041 <context context-type="linenumber">7</context>
1042 </context-group>
1043 </trans-unit>
1044 <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b">
1045 <source>Tags</source>
1046 <target>标签</target>
1047 <context-group name="null">
1048 <context context-type="linenumber">171</context>
1049 </context-group>
1050 </trans-unit>
1051 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
1052 <source>(press Enter to add)</source>
1053 <target>(按回车(Enter)以新建)</target>
1054 <context-group name="null">
1055 <context context-type="linenumber">15</context>
1056 </context-group>
1057 </trans-unit>
1058 <trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
1059 <source>Video descriptions are truncated by default and require manual action to expand them.</source>
1060 <target>视频描述默认会被截断,手动操作后才可以展开。</target>
1061 <context-group name="null">
1062 <context context-type="linenumber">24</context>
1063 </context-group>
1064 </trans-unit>
1065 <trans-unit id="5ef7108218e096d09f4ee8525a05a8c90d7b95ee">
1066 <source>This video contains mature or explicit content</source>
1067 <target>此视频包含成人内容。</target>
1068 <context-group name="null">
1069 <context context-type="linenumber">115</context>
1070 </context-group>
1071 </trans-unit>
1072 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1073 <source>Enable video comments</source>
1074 <target>开启视频评论</target>
1075 <context-group name="null">
1076 <context context-type="linenumber">121</context>
1077 </context-group>
1078 </trans-unit>
1079 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
1080 <source>Basic info</source>
1081 <target>基本信息</target>
1082 <context-group name="null">
1083 <context context-type="linenumber">4</context>
1084 </context-group>
1085 </trans-unit>
1086 <trans-unit id="1dd793abd1cb8d16a7a2cb71ca5549a7111ee513">
1087 <source>Upload thumbnail</source>
1088 <target>上传缩略图</target>
1089 <context-group name="null">
1090 <context context-type="linenumber">186</context>
1091 </context-group>
1092 </trans-unit>
1093 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1094 <source>Upload preview</source>
1095 <target>上传预览</target>
1096 <context-group name="null">
1097 <context context-type="linenumber">193</context>
1098 </context-group>
1099 </trans-unit>
1100 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1101 <source>Support</source>
1102 <target>支持</target>
1103 <context-group name="null">
1104 <context context-type="linenumber">67</context>
1105 </context-group>
1106 </trans-unit>
1107 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1108 <source>Advanced settings</source>
1109 <target>高级设置</target>
1110 <context-group name="null">
1111 <context context-type="linenumber">182</context>
1112 </context-group>
1113 </trans-unit>
1114 <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb">
1115 <source>Update</source>
1116 <target>更新</target>
1117 <context-group name="null">
1118 <context context-type="linenumber">101</context>
1119 </context-group>
1120 </trans-unit>
1121 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
1122 <source>Download video</source>
1123 <target>下载视频</target>
1124 <context-group name="null">
1125 <context context-type="linenumber">7</context>
1126 </context-group>
1127 </trans-unit>
1128 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1129 <source>Direct download</source>
1130 <target>直接下载</target>
1131 <context-group name="null">
1132 <context context-type="linenumber">20</context>
1133 </context-group>
1134 </trans-unit>
1135 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1136 <source>Download</source>
1137 <target>下载</target>
1138 <context-group name="null">
1139 <context context-type="linenumber">83</context>
1140 </context-group>
1141 </trans-unit>
1142 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
1143 <source>Report video</source>
1144 <target>举报视频</target>
1145 <context-group name="null">
1146 <context context-type="linenumber">7</context>
1147 </context-group>
1148 </trans-unit>
1149 <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
1150 <source>Reason...</source>
1151 <target>原因...</target>
1152 <context-group name="null">
1153 <context context-type="linenumber">14</context>
1154 </context-group>
1155 </trans-unit>
1156 <trans-unit id="0e6b8229bd65f93bc8040d0fb598967f220740c7">
1157 <source>
1158 Cancel
1159 </source>
1160 <target>
1161 取消
1162 </target>
1163 <context-group name="null">
1164 <context context-type="linenumber">22</context>
1165 </context-group>
1166 </trans-unit>
1167 <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd">
1168 <source>Submit</source>
1169 <target>提交</target>
1170 <context-group name="null">
1171 <context context-type="linenumber">27</context>
1172 </context-group>
1173 </trans-unit>
1174 <trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9">
1175 <source>Share</source>
1176 <target>分享</target>
1177 <context-group name="null">
1178 <context context-type="linenumber">72</context>
1179 </context-group>
1180 </trans-unit>
1181 <trans-unit id="d3b15c3bf4a7ea38d6002d2d2c4781642d30e79c">
1182 <source>Embed</source>
1183 <target>嵌入版</target>
1184 <context-group name="null">
1185 <context context-type="linenumber">24</context>
1186 </context-group>
1187 </trans-unit>
1188 <trans-unit id="9ed65ae88f6c982bc44d6fed2796e55f47dbf304">
1189 <source>
1190 The video is being transcoded, it may not work properly.
1191 </source>
1192 <target>
1193 视频正在转码,可能不会正常播放。
1194 </target>
1195 <context-group name="null">
1196 <context context-type="linenumber">11</context>
1197 </context-group>
1198 </trans-unit>
1199 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
1200 <source>
1201 This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1202 </source>
1203 <target>
1204 此视频将于 <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 发布
1205 </target>
1206 <context-group name="null">
1207 <context context-type="linenumber">15</context>
1208 </context-group>
1209 </trans-unit>
1210 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1211 <source>Go the channel page</source>
1212 <target>转到频道页面</target>
1213 <context-group name="null">
1214 <context context-type="linenumber">31</context>
1215 </context-group>
1216 </trans-unit>
1217 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1218 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1219 <target>你可以通过任何支持 ActivityPub 的实例来订阅此账号。对于 Mastodon 或 Pleroma 实例,可以在搜索栏键入 &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; 并订阅。在 PeerTube 上订阅账户的方案正在 &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt; 进行讨论。</target>
1220 <context-group name="null">
1221 <context context-type="linenumber">45</context>
1222 </context-group>
1223 </trans-unit>
389 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016"> 1224 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
390 <source>Search</source> 1225 <source>Search</source>
391 <target>搜索</target> 1226 <target>搜索</target>
@@ -393,5 +1228,19 @@
393 <context context-type="linenumber">1</context> 1228 <context context-type="linenumber">1</context>
394 </context-group> 1229 </context-group>
395 </trans-unit> 1230 </trans-unit>
1231 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
1232 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
1233 <target>此视频包含成人内容,确定继续播放吗?</target>
1234 <context-group name="null">
1235 <context context-type="linenumber">1</context>
1236 </context-group>
1237 </trans-unit>
1238 <trans-unit id="5ba3d522e4146eefcbd5c222247c1e2423d27cd8">
1239 <source>Mature or explicit content</source>
1240 <target>成人内容</target>
1241 <context-group name="null">
1242 <context context-type="linenumber">1</context>
1243 </context-group>
1244 </trans-unit>
396 </body> 1245 </body>
397 </file></xliff> \ No newline at end of file 1246 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/angular_zh_Hant_TW.xml b/client/src/locale/target/angular_zh_Hant_TW.xml
index 870c46855..78674011c 100644
--- a/client/src/locale/target/angular_zh_Hant_TW.xml
+++ b/client/src/locale/target/angular_zh_Hant_TW.xml
@@ -11,14 +11,14 @@
11 取消 11 取消
12 </target> 12 </target>
13 <context-group name="null"> 13 <context-group name="null">
14 <context context-type="linenumber">40</context> 14 <context context-type="linenumber">45</context>
15 </context-group> 15 </context-group>
16 </trans-unit> 16 </trans-unit>
17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8"> 17 <trans-unit id="9d5f16f0233b39fa2cd843321407a7358c323ad8">
18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source> 18 <source><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次檢視</target> 19 <target><x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次檢視</target>
20 <context-group name="null"> 20 <context-group name="null">
21 <context context-type="linenumber">12</context> 21 <context context-type="linenumber">34</context>
22 </context-group> 22 </context-group>
23 </trans-unit> 23 </trans-unit>
24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c"> 24 <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
@@ -46,7 +46,7 @@
46 <source>Get help</source> 46 <source>Get help</source>
47 <target>取得說明</target> 47 <target>取得說明</target>
48 <context-group name="null"> 48 <context-group name="null">
49 <context context-type="linenumber">17</context> 49 <context context-type="linenumber">18</context>
50 </context-group> 50 </context-group>
51 </trans-unit> 51 </trans-unit>
52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea"> 52 <trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
@@ -105,7 +105,7 @@
105 <source>Password</source> 105 <source>Password</source>
106 <target>密碼</target> 106 <target>密碼</target>
107 <context-group name="null"> 107 <context-group name="null">
108 <context context-type="linenumber">28</context> 108 <context context-type="linenumber">12</context>
109 </context-group> 109 </context-group>
110 </trans-unit> 110 </trans-unit>
111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda"> 111 <trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
@@ -316,6 +316,27 @@
316 <context context-type="linenumber">9</context> 316 <context context-type="linenumber">9</context>
317 </context-group> 317 </context-group>
318 </trans-unit> 318 </trans-unit>
319 <trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
320 <source>Category</source>
321 <target>分類</target>
322 <context-group name="null">
323 <context context-type="linenumber">144</context>
324 </context-group>
325 </trans-unit>
326 <trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
327 <source>Licence</source>
328 <target>授權條款</target>
329 <context-group name="null">
330 <context context-type="linenumber">153</context>
331 </context-group>
332 </trans-unit>
333 <trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
334 <source>Language</source>
335 <target>語言</target>
336 <context-group name="null">
337 <context context-type="linenumber">162</context>
338 </context-group>
339 </trans-unit>
319 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e"> 340 <trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
320 <source>No results.</source> 341 <source>No results.</source>
321 <target>沒有結果</target> 342 <target>沒有結果</target>
@@ -513,19 +534,6 @@
513 <context context-type="linenumber">51</context> 534 <context context-type="linenumber">51</context>
514 </context-group> 535 </context-group>
515 </trans-unit> 536 </trans-unit>
516 <trans-unit id="c5e62151cca9610f4248c9616909f7acaf5e5a32">
517 <source>
518 Web peers are not directly sent by the tracker: because we use WebRTC inside the web browser, the protocol is different from classic BitTorrent.
519 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.
520 See <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>this document<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for more information
521 </source>
522 <target>網路 peers 不會直接被 tracker 傳送:因為我們在網路瀏覽器中使用 WebRTC,其協定不同於傳統的 BitTorrent。
523當您在網路瀏覽器中,您會傳送包含您的 IP 位置的訊號給 tracker,這將會隨機選擇要傳送給哪個 peers。
524請見<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>這份文件<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>以取得更多資訊</target>
525 <context-group name="null">
526 <context context-type="linenumber">55</context>
527 </context-group>
528 </trans-unit>
529 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389"> 537 <trans-unit id="50d8e8388f5ceab292850ed828f306c9f2cab389">
530 <source> 538 <source>
531 The worst-case scenario of an average person spying on their friends is quite unlikely. 539 The worst-case scenario of an average person spying on their friends is quite unlikely.
@@ -537,13 +545,6 @@
537 <context context-type="linenumber">62</context> 545 <context context-type="linenumber">62</context>
538 </context-group> 546 </context-group>
539 </trans-unit> 547 </trans-unit>
540 <trans-unit id="b7801222ec2b04de2f61d3ff01d18a04bfa17505">
541 <source>How does PeerTube compares to YouTube?</source>
542 <target>PeerTube 與 YouTube 相比如何?</target>
543 <context-group name="null">
544 <context context-type="linenumber">67</context>
545 </context-group>
546 </trans-unit>
547 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c"> 548 <trans-unit id="2432705cbabcb92a8677338901dd5d655383ef4c">
548 <source> 549 <source>
549 The threats to privacy in YouTube are different from PeerTube's. 550 The threats to privacy in YouTube are different from PeerTube's.
@@ -621,5 +622,2752 @@
621 <context context-type="linenumber">94</context> 622 <context context-type="linenumber">94</context>
622 </context-group> 623 </context-group>
623 </trans-unit> 624 </trans-unit>
625 <trans-unit id="efde279863678ed95a8949a3712c99748bdabfe6">
626 <source>An automatic video redundancy program: we wouldn't know if the IP downloaded the video on purpose or if it was the automatized program</source>
627 <target>自動視訊冗餘程式:我們不會知道是 IP 故意下載視訊或是自動化程式</target>
628 <context-group name="null">
629 <context context-type="linenumber">95</context>
630 </context-group>
631 </trans-unit>
632 <trans-unit id="a835d8a12e14eb96919245a0bbafd8069c146578">
633 <source><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> subscribers</source>
634 <target><x id="INTERPOLATION" equiv-text="{{ account.followersCount }}"/> 個訂閱者</target>
635 <context-group name="null">
636 <context context-type="linenumber">12</context>
637 </context-group>
638 </trans-unit>
639 <trans-unit id="6f5a458f827503ac7b8697688ecf3e0490818ee8">
640 <source>Video channels</source>
641 <target>影片頻道</target>
642 <context-group name="null">
643 <context context-type="linenumber">19</context>
644 </context-group>
645 </trans-unit>
646 <trans-unit id="299f97b8ee9c62d45f2cc01961aa1e5101d6d05a">
647 <source>Stats</source>
648 <target>統計</target>
649 <context-group name="null">
650 <context context-type="linenumber">16</context>
651 </context-group>
652 </trans-unit>
653 <trans-unit id="8bc634cd9d8c9b684dbfaaf17a522f894bedbffc">
654 <source>Joined <x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/></source>
655 <target><x id="INTERPOLATION" equiv-text="{{ account.createdAt | date }}"/> 加入</target>
656 <context-group name="null">
657 <context context-type="linenumber">10</context>
658 </context-group>
659 </trans-unit>
660 <trans-unit id="8fef247fd0c5bf790151f7661cafc4b7fd0397f3">
661 <source><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> subscribers</source>
662 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount }}"/> 個訂閱者</target>
663 <context-group name="null">
664 <context context-type="linenumber">11</context>
665 </context-group>
666 </trans-unit>
667 <trans-unit id="f36bd6a1570cb9b0a5023870f35160957cad2a8f">
668 <source>See this video channel</source>
669 <target>檢視這個影片頻道</target>
670 <context-group name="null">
671 <context context-type="linenumber">4</context>
672 </context-group>
673 </trans-unit>
674 <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59">
675 <source>Name</source>
676 <target>名稱</target>
677 <context-group name="null">
678 <context context-type="linenumber">9</context>
679 </context-group>
680 </trans-unit>
681 <trans-unit id="512b045163a7187b2fc5d554e5f59fb3e49e174b">
682 <source>Short description</source>
683 <target>短描述</target>
684 <context-group name="null">
685 <context context-type="linenumber">21</context>
686 </context-group>
687 </trans-unit>
688 <trans-unit id="554488d11165f38b27b8fe230aba8a2e30d57003">
689 <source>Default client route</source>
690 <target>預設客戶端路由</target>
691 <context-group name="null">
692 <context context-type="linenumber">54</context>
693 </context-group>
694 </trans-unit>
695 <trans-unit id="1cbeb1eb589bfbe5efce94184cacd3095ca26948">
696 <source>Videos Trending</source>
697 <target>影片趨勢</target>
698 <context-group name="null">
699 <context context-type="linenumber">57</context>
700 </context-group>
701 </trans-unit>
702 <trans-unit id="1861c96217213992e02dcb77e15ea69e718c9883">
703 <source>Videos Recently Added</source>
704 <target>最近新增的影片</target>
705 <context-group name="null">
706 <context context-type="linenumber">58</context>
707 </context-group>
708 </trans-unit>
709 <trans-unit id="b6307f83d9f43bff8d5129a7888e89964ddc3f7f">
710 <source>Local videos</source>
711 <target>本地影片</target>
712 <context-group name="null">
713 <context context-type="linenumber">59</context>
714 </context-group>
715 </trans-unit>
716 <trans-unit id="8551afadb69b3fef89e191f507e8ac84e624e8b9">
717 <source>Policy on videos containing sensitive content</source>
718 <target>包含敏感內容的影片政策</target>
719 <context-group name="null">
720 <context context-type="linenumber">68</context>
721 </context-group>
722 </trans-unit>
723 <trans-unit id="aa3ef567a1ea22c1e4d0acfdc8f80bc636bf12df">
724 <source>With &lt;strong&gt;Do not list&lt;/strong&gt; or &lt;strong&gt;Blur thumbnails&lt;/strong&gt;, a confirmation will be requested to watch the video.</source>
725 <target>若有&lt;strong&gt;不要置於清單中&lt;/strong&gt;或&lt;strong&gt;模糊縮圖&lt;/strong&gt;,要觀看影片前將需要確認。</target>
726 <context-group name="null">
727 <context context-type="linenumber">6</context>
728 </context-group>
729 </trans-unit>
730 <trans-unit id="5e155c34fb3ed8159bf0a486a366cfbc6874f9fe">
731 <source>Do not list</source>
732 <target>不要置於清單中</target>
733 <context-group name="null">
734 <context context-type="linenumber">11</context>
735 </context-group>
736 </trans-unit>
737 <trans-unit id="aaa900149c2ca1575ac1918d1ded33fb69830ab2">
738 <source>Blur thumbnails</source>
739 <target>模糊縮圖</target>
740 <context-group name="null">
741 <context context-type="linenumber">12</context>
742 </context-group>
743 </trans-unit>
744 <trans-unit id="010d24ef3c43b2d8f45a4d6cba7d73e12ee1557e">
745 <source>Display</source>
746 <target>顯示</target>
747 <context-group name="null">
748 <context context-type="linenumber">13</context>
749 </context-group>
750 </trans-unit>
751 <trans-unit id="ca53e66e68986546b7ef820c934145fd7c9c4247">
752 <source>Signup enabled</source>
753 <target>已啟用註冊</target>
754 <context-group name="null">
755 <context context-type="linenumber">90</context>
756 </context-group>
757 </trans-unit>
758 <trans-unit id="68bda70e0dd4f7f91549462e55f1b2a1602d8402">
759 <source>Signup limit</source>
760 <target>限制註冊</target>
761 <context-group name="null">
762 <context context-type="linenumber">94</context>
763 </context-group>
764 </trans-unit>
765 <trans-unit id="ca2283fc765b9f44b69f0175d685dc2443da6011">
766 <source>Administrator</source>
767 <target>管理員</target>
768 <context-group name="null">
769 <context context-type="linenumber">104</context>
770 </context-group>
771 </trans-unit>
772 <trans-unit id="55a0f51e38679d3141841e8333da5779d349c587">
773 <source>Admin email</source>
774 <target>管理電子郵件</target>
775 <context-group name="null">
776 <context context-type="linenumber">107</context>
777 </context-group>
778 </trans-unit>
779 <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be">
780 <source>Users</source>
781 <target>使用者</target>
782 <context-group name="null">
783 <context context-type="linenumber">117</context>
784 </context-group>
785 </trans-unit>
786 <trans-unit id="31b3275d999af45fe64c6824e6e017d2e2704f09">
787 <source>User default video quota</source>
788 <target>使用者預設影片配額</target>
789 <context-group name="null">
790 <context context-type="linenumber">120</context>
791 </context-group>
792 </trans-unit>
793 <trans-unit id="50247a2f9711ea9e9a85aacc46668131e9b424a5">
794 <source>Basic configuration</source>
795 <target>基本設定</target>
796 <context-group name="null">
797 <context context-type="linenumber">5</context>
798 </context-group>
799 </trans-unit>
800 <trans-unit id="99cb827741e93125476a0f5b676372d85d15b5fc">
801 <source>Twitter</source>
802 <target>Twitter</target>
803 <context-group name="null">
804 <context context-type="linenumber">136</context>
805 </context-group>
806 </trans-unit>
807 <trans-unit id="7fdb41bbf2ee042ec5f68725a1c16a1c97f3e524">
808 <source>Your Twitter username</source>
809 <target>您的 Twitter 使用者名稱</target>
810 <context-group name="null">
811 <context context-type="linenumber">139</context>
812 </context-group>
813 </trans-unit>
814 <trans-unit id="6e671e839ca889feef0d8ed525d1a44b4b10870c">
815 <source>Indicates the Twitter account for the website or platform on which the content was published.</source>
816 <target>指示發佈影片的網頁或平臺的 Twitter 帳號</target>
817 <context-group name="null">
818 <context context-type="linenumber">142</context>
819 </context-group>
820 </trans-unit>
821 <trans-unit id="c0716c28b9d4c9e0b2fd6031334394214e5f9605">
822 <source>Instance whitelisted by Twitter</source>
823 <target>由 Twitter 列入白名單的實體</target>
824 <context-group name="null">
825 <context context-type="linenumber">155</context>
826 </context-group>
827 </trans-unit>
828 <trans-unit id="3f008a1a07ca42c6ad258fde1bbd80ed74ada19b">
829 <source>If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.&lt;br /&gt;
830If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.&lt;br /&gt;&lt;br /&gt;
831Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; to see if you instance is whitelisted.</source>
832 <target>若您的實體被 Twitter 列入白名單,在 PeerTube 影片分享上的 Twitter feed 將會嵌入一個影片播放器。&lt;br /&gt;
833若實體不在白名單中,我們使用圖片連結卡,如此將會重新導向至您的 PeerTube 實體。&lt;br /&gt;&lt;br /&gt;
834打勾此勾選框,儲存設定並以您的實體中的影片 URL (https://example.com/videos/watch/blabla) 在 &lt;a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'&gt;https://cards-dev.twitter.com/validator&lt;/a&gt; 上測試以檢視您的實體是否在白名單中。</target>
835 <context-group name="null">
836 <context context-type="linenumber">156</context>
837 </context-group>
838 </trans-unit>
839 <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5">
840 <source>Services</source>
841 <target>服務</target>
842 <context-group name="null">
843 <context context-type="linenumber">134</context>
844 </context-group>
845 </trans-unit>
846 <trans-unit id="fe22d2c0020e913ee4b75ec22a3abc8814810490">
847 <source>Transcoding</source>
848 <target>轉換編碼</target>
849 <context-group name="null">
850 <context context-type="linenumber">164</context>
851 </context-group>
852 </trans-unit>
853 <trans-unit id="fca29003c4ea1226ff8cbee89481758aab0e2be9">
854 <source>Transcoding enabled</source>
855 <target>轉換編碼已啟用</target>
856 <context-group name="null">
857 <context context-type="linenumber">168</context>
858 </context-group>
859 </trans-unit>
860 <trans-unit id="6ef2ab819d4441fa8bddf6759b6936783d06616f">
861 <source>If you disable transcoding, many videos from your users will not work!</source>
862 <target>若您停用轉換編碼,從您的使用者們而來的許多影片將會無法運作!</target>
863 <context-group name="null">
864 <context context-type="linenumber">169</context>
865 </context-group>
866 </trans-unit>
867 <trans-unit id="a33feadefbb776217c2db96100736314f8b765c2">
868 <source>Transcoding threads</source>
869 <target>轉換編碼執行緒</target>
870 <context-group name="null">
871 <context context-type="linenumber">175</context>
872 </context-group>
873 </trans-unit>
874 <trans-unit id="d00f6c2dcb426440a0a8cd8eec12d094fbfaf6f7">
875 <source>Previews cache size</source>
876 <target>預覽快取大小</target>
877 <context-group name="null">
878 <context context-type="linenumber">207</context>
879 </context-group>
880 </trans-unit>
881 <trans-unit id="e3a65df2560e99864bbde695da3a7bdf743a184c">
882 <source>Customizations</source>
883 <target>自訂</target>
884 <context-group name="null">
885 <context context-type="linenumber">228</context>
886 </context-group>
887 </trans-unit>
888 <trans-unit id="0da9752916950ce6890d897b835c923a71ad9c5c">
889 <source>JavaScript</source>
890 <target>JavaScript</target>
891 <context-group name="null">
892 <context context-type="linenumber">231</context>
893 </context-group>
894 </trans-unit>
895 <trans-unit id="fda2339a6e6ba017ee43b560caf660ed4022333c">
896 <source>Write directly JavaScript code.&lt;br /&gt;Example: &lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</source>
897 <target>直接編寫 JavaScript 程式碼。&lt;br /&gt;範例:&lt;pre&gt;console.log('my instance is amazing');&lt;/pre&gt;</target>
898 <context-group name="null">
899 <context context-type="linenumber">234</context>
900 </context-group>
901 </trans-unit>
902 <trans-unit id="f133b08d6519081bfb8ef51cff4bf2b3af23dde6">
903 <source>
904 Write directly CSS code. Example:&lt;br /&gt;
905 &lt;pre&gt;
906 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
907 background-color: red;
908 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
909 &lt;/pre&gt;
910
911 Prepend with &lt;em&gt;#custom-css&lt;/em&gt; to override styles. Example:
912 &lt;pre&gt;
913 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
914 color: red;
915 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
916 &lt;/pre&gt;
917 </source>
918 <target>
919 直接編寫 CSS 程式碼。範例:&lt;br /&gt;
920 &lt;pre&gt;
921 body <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
922 background-color: red;
923 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
924 &lt;/pre&gt;
925
926 附加 &lt;em&gt;#custom-css&lt;/em&gt; 以覆寫樣式。範例:
927 &lt;pre&gt;
928 #custom-css .logged-in-email <x id="INTERPOLATION" equiv-text="{{ '{' }}"/>
929 color: red;
930 <x id="INTERPOLATION_1" equiv-text="{{ '}' }}"/>
931 &lt;/pre&gt;
932 </target>
933 <context-group name="null">
934 <context context-type="linenumber">250</context>
935 </context-group>
936 </trans-unit>
937 <trans-unit id="6c44844ebdb7352c433b7734feaa65f01bb594ab">
938 <source>Advanced configuration</source>
939 <target>進階設定</target>
940 <context-group name="null">
941 <context context-type="linenumber">162</context>
942 </context-group>
943 </trans-unit>
944 <trans-unit id="dad5a5283e4c853c011a0f03d5a52310338bbff8">
945 <source>Update configuration</source>
946 <target>更新設定</target>
947 <context-group name="null">
948 <context context-type="linenumber">277</context>
949 </context-group>
950 </trans-unit>
951 <trans-unit id="3e459b5c3861d8c80084d21d233b7c8e2edd3cca">
952 <source>It seems the configuration is invalid. Please search potential errors in the different tabs.</source>
953 <target>設定似乎無效。請在不同的分頁中搜尋潛在的錯誤。</target>
954 <context-group name="null">
955 <context context-type="linenumber">278</context>
956 </context-group>
957 </trans-unit>
958 <trans-unit id="80dbb8ba42b97a9ec035c0ba09f45c07ea07096c">
959 <source>
960 Users
961 </source>
962 <target>使用者</target>
963 <context-group name="null">
964 <context context-type="linenumber">3</context>
965 </context-group>
966 </trans-unit>
967 <trans-unit id="0315abd64e35510ed0534f597130ef781aca175a">
968 <source>
969 Manage follows
970 </source>
971 <target>管理追蹤</target>
972 <context-group name="null">
973 <context context-type="linenumber">7</context>
974 </context-group>
975 </trans-unit>
976 <trans-unit id="1c9406213cf05033eda4d3df678217b5eb822315">
977 <source>
978 Video abuses
979 </source>
980 <target>影片濫用</target>
981 <context-group name="null">
982 <context context-type="linenumber">11</context>
983 </context-group>
984 </trans-unit>
985 <trans-unit id="96ccede058f0022f34230c3adc09e60076b6d037">
986 <source>
987 Video blacklist
988 </source>
989 <target>影片黑名單</target>
990 <context-group name="null">
991 <context context-type="linenumber">15</context>
992 </context-group>
993 </trans-unit>
994 <trans-unit id="7bea88c54fdccfdc9f687b0ffe9bf6a653d19368">
995 <source>
996 Jobs
997 </source>
998 <target>任務</target>
999 <context-group name="null">
1000 <context context-type="linenumber">19</context>
1001 </context-group>
1002 </trans-unit>
1003 <trans-unit id="9c6ce37623b626a102002901ca12c37e7a3a7f13">
1004 <source>
1005 Configuration
1006 </source>
1007 <target>設定</target>
1008 <context-group name="null">
1009 <context context-type="linenumber">23</context>
1010 </context-group>
1011 </trans-unit>
1012 <trans-unit id="4e8635c108375983b42229df44bda8c0af84f396">
1013 <source>1 host (without "http://") per line</source>
1014 <target>每行一個主機(不需要 "http://")</target>
1015 <context-group name="null">
1016 <context context-type="linenumber">5</context>
1017 </context-group>
1018 </trans-unit>
1019 <trans-unit id="f7a7a00999ccbd126cbb8e74f5dd1724942dd507">
1020 <source>
1021 It seems that you are not on a HTTPS server. Your webserver needs to have TLS activated in order to follow servers.
1022 </source>
1023 <target>您似乎不在 HTTPS 伺服器上。您的網路伺服器需要啟用 TLS 才能追蹤伺服器。</target>
1024 <context-group name="null">
1025 <context context-type="linenumber">17</context>
1026 </context-group>
1027 </trans-unit>
1028 <trans-unit id="456c6383d8e7cd15aadbcdc196d4ae7a70092437">
1029 <source>Add following</source>
1030 <target>新增追蹤</target>
1031 <context-group name="null">
1032 <context context-type="linenumber">21</context>
1033 </context-group>
1034 </trans-unit>
1035 <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c">
1036 <source>ID</source>
1037 <target>ID</target>
1038 <context-group name="null">
1039 <context context-type="linenumber">18</context>
1040 </context-group>
1041 </trans-unit>
1042 <trans-unit id="380e20a1e13d9489c69f6dbea7da19025ab6eb25">
1043 <source>Score</source>
1044 <target>分數</target>
1045 <context-group name="null">
1046 <context context-type="linenumber">8</context>
1047 </context-group>
1048 </trans-unit>
1049 <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767">
1050 <source>Host</source>
1051 <target>主機</target>
1052 <context-group name="null">
1053 <context context-type="linenumber">8</context>
1054 </context-group>
1055 </trans-unit>
1056 <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b">
1057 <source>State</source>
1058 <target>狀態</target>
1059 <context-group name="null">
1060 <context context-type="linenumber">20</context>
1061 </context-group>
1062 </trans-unit>
1063 <trans-unit id="ff3173170e5b03536dd3b3e1afbae1f55356eb1b">
1064 <source>Created <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1065 <target><x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/> 建立</target>
1066 <context-group name="null">
1067 <context context-type="linenumber">16</context>
1068 </context-group>
1069 </trans-unit>
1070 <trans-unit id="5fccee488a9ea908c16d2ab9dbdaf264f1aac479">
1071 <source>Manage follows</source>
1072 <target>管理追蹤</target>
1073 <context-group name="null">
1074 <context context-type="linenumber">2</context>
1075 </context-group>
1076 </trans-unit>
1077 <trans-unit id="a9f2501fcb2ff71f1376c2d2fbbbd49f200e6c8f">
1078 <source>Jobs list</source>
1079 <target>任務清單</target>
1080 <context-group name="null">
1081 <context context-type="linenumber">2</context>
1082 </context-group>
1083 </trans-unit>
1084 <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc">
1085 <source>Type</source>
1086 <target>類型</target>
1087 <context-group name="null">
1088 <context context-type="linenumber">19</context>
1089 </context-group>
1090 </trans-unit>
1091 <trans-unit id="31cf824034489eb42f6a388d5980b98b8e1de015">
1092 <source>Create user</source>
1093 <target>建立使用者</target>
1094 <context-group name="null">
1095 <context context-type="linenumber">6</context>
1096 </context-group>
1097 </trans-unit>
1098 <trans-unit id="2788d9a67ed2b6f35c85818e6af1871317c57a7e">
1099 <source>Edit user <x id="INTERPOLATION" equiv-text="{{ username }}"/></source>
1100 <target>編輯使用者 <x id="INTERPOLATION" equiv-text="{{ username }}"/></target>
1101 <context-group name="null">
1102 <context context-type="linenumber">2</context>
1103 </context-group>
1104 </trans-unit>
1105 <trans-unit id="1bd571d8f3981f6043b0df3402cc3d97e0d7ad2a">
1106 <source>john</source>
1107 <target>john</target>
1108 <context-group name="null">
1109 <context context-type="linenumber">10</context>
1110 </context-group>
1111 </trans-unit>
1112 <trans-unit id="bb3542ff8e5defa6d0c773799e5c8fe399605d05">
1113 <source>mail@example.com</source>
1114 <target>mail@example.com</target>
1115 <context-group name="null">
1116 <context context-type="linenumber">21</context>
1117 </context-group>
1118 </trans-unit>
1119 <trans-unit id="c36a66f2107e8da5371ebc9d15c2008dff567f46">
1120 <source>Role</source>
1121 <target>角色</target>
1122 <context-group name="null">
1123 <context context-type="linenumber">19</context>
1124 </context-group>
1125 </trans-unit>
1126 <trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
1127 <source>Video quota</source>
1128 <target>影片配額</target>
1129 <context-group name="null">
1130 <context context-type="linenumber">18</context>
1131 </context-group>
1132 </trans-unit>
1133 <trans-unit id="42e3c0e89177ca135974221eaf0e4e836c32e345">
1134 <source>
1135 Transcoding is enabled on server. The video quota only take in account <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> video. <x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/>
1136 At most, this user could use ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>.
1137 </source>
1138 <target>
1139 伺服器已啟用轉換編碼。影片配額僅考慮 <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="&lt;strong&gt;"/>original<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="&lt;/strong&gt;"/> 影片。 <x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/>
1140 這個使用者最多可以使用 ~ <x id="INTERPOLATION" equiv-text="{{ computeQuotaWithTranscoding() | bytes: 0 }}"/>。
1141 </target>
1142 <context-group name="null">
1143 <context context-type="linenumber">65</context>
1144 </context-group>
1145 </trans-unit>
1146 <trans-unit id="5e8b4663c17c337a1f11160c0a683350936faa1f">
1147 <source>Users list</source>
1148 <target>使用者清單</target>
1149 <context-group name="null">
1150 <context context-type="linenumber">2</context>
1151 </context-group>
1152 </trans-unit>
1153 <trans-unit id="08ea8692dc2a7050026df26fc39b22960bde9de5">
1154 <source>Username <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1155 <target>使用者名稱 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1156 <context-group name="null">
1157 <context context-type="linenumber">16</context>
1158 </context-group>
1159 </trans-unit>
1160 <trans-unit id="0c7e8870481f1287af6a142f538391d8c16c2408">
1161 <source>Video abuses list</source>
1162 <target>影片濫用清單</target>
1163 <context-group name="null">
1164 <context context-type="linenumber">2</context>
1165 </context-group>
1166 </trans-unit>
1167 <trans-unit id="4ba250869daa372b54d24fafc0ea934769ee4076">
1168 <source>Reason</source>
1169 <target>理由</target>
1170 <context-group name="null">
1171 <context context-type="linenumber">11</context>
1172 </context-group>
1173 </trans-unit>
1174 <trans-unit id="2bf5a31043ff476ca081a4080f3f3f17518dc6f2">
1175 <source>Reporter</source>
1176 <target>回報者</target>
1177 <context-group name="null">
1178 <context context-type="linenumber">12</context>
1179 </context-group>
1180 </trans-unit>
1181 <trans-unit id="2d1ea268a6a9f483dbc2cbfe19bf4256a57a6af4">
1182 <source>Video</source>
1183 <target>影片</target>
1184 <context-group name="null">
1185 <context context-type="linenumber">14</context>
1186 </context-group>
1187 </trans-unit>
1188 <trans-unit id="c6ab75e099e131d7a4f94e1732e7436d8fc386c7">
1189 <source>Go to the account</source>
1190 <target>到帳號</target>
1191 <context-group name="null">
1192 <context context-type="linenumber">22</context>
1193 </context-group>
1194 </trans-unit>
1195 <trans-unit id="1cb8348c199d03e297d165e262237194f25fe3f5">
1196 <source>Go to the video</source>
1197 <target>到影片</target>
1198 <context-group name="null">
1199 <context context-type="linenumber">28</context>
1200 </context-group>
1201 </trans-unit>
1202 <trans-unit id="00ecde6001106fe7406a34cc3459cc5b88e4aec1">
1203 <source>Blacklisted videos</source>
1204 <target>已加入黑名單的影片</target>
1205 <context-group name="null">
1206 <context context-type="linenumber">2</context>
1207 </context-group>
1208 </trans-unit>
1209 <trans-unit id="7c02d113e9b7884037834cddecf2a32a5538b35b">
1210 <source>Name <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1211 <target>名稱 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1212 <context-group name="null">
1213 <context context-type="linenumber">11</context>
1214 </context-group>
1215 </trans-unit>
1216 <trans-unit id="cd5ca5da9e2fa21571e9f86a24a5c3b45a3ddc51">
1217 <source>Views <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></source>
1218 <target>檢視 <x id="START_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;p-sortIcon&gt;"/><x id="CLOSE_TAG_P-SORTICON" ctype="x-p-sortIcon" equiv-text="&lt;/p-sortIcon&gt;"/></target>
1219 <context-group name="null">
1220 <context context-type="linenumber">13</context>
1221 </context-group>
1222 </trans-unit>
1223 <trans-unit id="d4717113115ca7106a354a5aac54d1c0126261d9">
1224 <source>NSFW</source>
1225 <target>NSFW</target>
1226 <context-group name="null">
1227 <context context-type="linenumber">14</context>
1228 </context-group>
1229 </trans-unit>
1230 <trans-unit id="8c87d9527af7ff2ada84c911516a9e43a352e401">
1231 <source>UUID</source>
1232 <target>UUID</target>
1233 <context-group name="null">
1234 <context context-type="linenumber">15</context>
1235 </context-group>
1236 </trans-unit>
1237 <trans-unit id="86f26b106c67be3c2e98b82766656e5d9da86dff">
1238 <source>Unblacklist</source>
1239 <target>取消黑名單</target>
1240 <context-group name="null">
1241 <context context-type="linenumber">30</context>
1242 </context-group>
1243 </trans-unit>
1244 <trans-unit id="efad4be364b8fb5c73cbfcc7acccd542f9d84ad6">
1245 <source>My settings</source>
1246 <target>我的設定</target>
1247 <context-group name="null">
1248 <context context-type="linenumber">3</context>
1249 </context-group>
1250 </trans-unit>
1251 <trans-unit id="520d68b2c9f7dacaf2a5073716cad9bd328ea7e7">
1252 <source>My video channels</source>
1253 <target>我的影片頻道</target>
1254 <context-group name="null">
1255 <context context-type="linenumber">5</context>
1256 </context-group>
1257 </trans-unit>
1258 <trans-unit id="d02888c485d3aeab6de628508f4a00312a722894">
1259 <source>My videos</source>
1260 <target>我的影片</target>
1261 <context-group name="null">
1262 <context context-type="linenumber">7</context>
1263 </context-group>
1264 </trans-unit>
1265 <trans-unit id="9518d3fb042d551167c1701ddeb88a1374cf1e48">
1266 <source>Video quota:</source>
1267 <target>影片配額:</target>
1268 <context-group name="null">
1269 <context context-type="linenumber">4</context>
1270 </context-group>
1271 </trans-unit>
1272 <trans-unit id="994363f08f9fbfa3b3994ff7b35c6904fdff18d8">
1273 <source>Profile</source>
1274 <target>簡介</target>
1275 <context-group name="null">
1276 <context context-type="linenumber">8</context>
1277 </context-group>
1278 </trans-unit>
1279 <trans-unit id="b5398623f87ee72ed23f5023918db1707771e925">
1280 <source>Video settings</source>
1281 <target>影片設定</target>
1282 <context-group name="null">
1283 <context context-type="linenumber">15</context>
1284 </context-group>
1285 </trans-unit>
1286 <trans-unit id="8057bddbed23d6cd911df8cc3a4ec24d1f258b79">
1287 <source><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
1288 <target><x id="INTERPOLATION" equiv-text="{{ video.createdAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次檢視</target>
1289 <context-group name="null">
1290 <context context-type="linenumber">19</context>
1291 </context-group>
1292 </trans-unit>
1293 <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
1294 <source>Delete</source>
1295 <target>刪除</target>
1296 <context-group name="null">
1297 <context context-type="linenumber">15</context>
1298 </context-group>
1299 </trans-unit>
1300 <trans-unit id="73c1cefc348a6f361497210dea1ed79499fd1260">
1301 <source>Create another video channel</source>
1302 <target>建立其它影片頻道</target>
1303 <context-group name="null">
1304 <context context-type="linenumber">4</context>
1305 </context-group>
1306 </trans-unit>
1307 <trans-unit id="30fcac6c20aac1f24e000efc4a889cbb93d4baf2">
1308 <source>Go to the channel</source>
1309 <target>到頻道</target>
1310 <context-group name="null">
1311 <context context-type="linenumber">15</context>
1312 </context-group>
1313 </trans-unit>
1314 <trans-unit id="9dbe4718a5611fbc611fc6b5e0b27df813372c68">
1315 <source>Create a video channel</source>
1316 <target>建立影片頻道</target>
1317 <context-group name="null">
1318 <context context-type="linenumber">6</context>
1319 </context-group>
1320 </trans-unit>
1321 <trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
1322 <source>Display name</source>
1323 <target>顯示名稱</target>
1324 <context-group name="null">
1325 <context context-type="linenumber">6</context>
1326 </context-group>
1327 </trans-unit>
1328 <trans-unit id="74728de5289ea2ff3f553bc2b48f1811680b931a">
1329 <source>Short text to tell people how they can support your channel (membership platform...).&lt;br /&gt;&lt;br /&gt;
1330When you will upload a video in this channel, the video support field will be automatically filled by this text.</source>
1331 <target>簡短的文字告訴人們他們要如何支援您的頻道(會員平臺等等)。&lt;br /&gt;&lt;br /&gt;當您要上傳影片到此頻道時,影片支援欄位將會自動填入這些文字。</target>
1332 <context-group name="null">
1333 <context context-type="linenumber">36</context>
1334 </context-group>
1335 </trans-unit>
1336 <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9">
1337 <source>Change password</source>
1338 <target>變更密碼</target>
1339 <context-group name="null">
1340 <context context-type="linenumber">19</context>
1341 </context-group>
1342 </trans-unit>
1343 <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229">
1344 <source>New password</source>
1345 <target>新密碼</target>
1346 <context-group name="null">
1347 <context context-type="linenumber">7</context>
1348 </context-group>
1349 </trans-unit>
1350 <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b">
1351 <source>Confirm new password</source>
1352 <target>確認新密碼</target>
1353 <context-group name="null">
1354 <context context-type="linenumber">15</context>
1355 </context-group>
1356 </trans-unit>
1357 <trans-unit id="20f62f24170d57b1efeb2387a0949f482cd4d129">
1358 <source>Default policy on videos containing sensitive content</source>
1359 <target>包含敏感內容的影片的預設政策</target>
1360 <context-group name="null">
1361 <context context-type="linenumber">3</context>
1362 </context-group>
1363 </trans-unit>
1364 <trans-unit id="fb17c44abac2d1ed2a54cdd28bae289dc0b9a1c2">
1365 <source>Automatically plays video</source>
1366 <target>自動播放影片</target>
1367 <context-group name="null">
1368 <context context-type="linenumber">20</context>
1369 </context-group>
1370 </trans-unit>
1371 <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
1372 <source>Save</source>
1373 <target>儲存</target>
1374 <context-group name="null">
1375 <context context-type="linenumber">23</context>
1376 </context-group>
1377 </trans-unit>
1378 <trans-unit id="d2fa66a905b6b7f691c83be681d18188cbe4a8ba">
1379 <source>Update my profile</source>
1380 <target>更新我們簡介</target>
1381 <context-group name="null">
1382 <context context-type="linenumber">27</context>
1383 </context-group>
1384 </trans-unit>
1385 <trans-unit id="c860c88df9ad58b1187084251340b232cdf0a7f9">
1386 <source>(extensions: <x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</source>
1387 <target>(副檔名:<x id="INTERPOLATION" equiv-text="{{ avatarExtensions }}"/>,最大大小:<x id="INTERPOLATION_1" equiv-text="{{ maxAvatarSize | bytes }}"/>)</target>
1388 <context-group name="null">
1389 <context context-type="linenumber">18</context>
1390 </context-group>
1391 </trans-unit>
1392 <trans-unit id="e242e3e8608a3c4a944327eb3d5c221dc6e4e3cd">
1393 <source>
1394 Sorry, but we couldn't find the page you were looking for.
1395</source>
1396 <target>抱歉,但我們找不到您正在尋找的頁面。</target>
1397 <context-group name="null">
1398 <context context-type="linenumber">1</context>
1399 </context-group>
1400 </trans-unit>
1401 <trans-unit id="c65641c36859c328928e6b0f14c3f913886f8add">
1402 <source>Created by <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/></source>
1403 <target>由 <x id="INTERPOLATION" equiv-text="{{ videoChannel.ownerBy }}"/> 建立</target>
1404 <context-group name="null">
1405 <context context-type="linenumber">14</context>
1406 </context-group>
1407 </trans-unit>
1408 <trans-unit id="e006ed166ce188cab168e1ca90435b33d042d913">
1409 <source>Go the owner account page</source>
1410 <target>到擁有者帳號頁面</target>
1411 <context-group name="null">
1412 <context context-type="linenumber">13</context>
1413 </context-group>
1414 </trans-unit>
1415 <trans-unit id="1380539d91f77f565de6e21ce210da891e6644b8">
1416 <source>Support this channel</source>
1417 <target>支援此頻道</target>
1418 <context-group name="null">
1419 <context context-type="linenumber">9</context>
1420 </context-group>
1421 </trans-unit>
1422 <trans-unit id="5523952d0300c96cfba2ec5a693c95f923e90c40">
1423 <source>Created <x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/></source>
1424 <target><x id="INTERPOLATION" equiv-text="{{ videoChannel.createdAt | date }}"/> 建立</target>
1425 <context-group name="null">
1426 <context context-type="linenumber">17</context>
1427 </context-group>
1428 </trans-unit>
1429 <trans-unit id="d4dcf74163f127ca9afa84d55b5d95846958faa0">
1430 <source>Upload your video</source>
1431 <target>上傳您的影片</target>
1432 <context-group name="null">
1433 <context context-type="linenumber">3</context>
1434 </context-group>
1435 </trans-unit>
1436 <trans-unit id="1af3dcf5aad5b7f4b3251da88a89dc9a184445dd">
1437 <source>Upload <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></source>
1438 <target>上傳 <x id="INTERPOLATION" equiv-text="{{ videoFileName }}"/></target>
1439 <context-group name="null">
1440 <context context-type="linenumber">4</context>
1441 </context-group>
1442 </trans-unit>
1443 <trans-unit id="21add64f0f3ebbedf1150ca822c6e149494ab7a9">
1444 <source>Select the file to upload</source>
1445 <target>選取要上傳的檔案</target>
1446 <context-group name="null">
1447 <context context-type="linenumber">12</context>
1448 </context-group>
1449 </trans-unit>
1450 <trans-unit id="0cc554f4d7bb6a87515d2d95438e183b50702071">
1451 <source>Channel</source>
1452 <target>頻道</target>
1453 <context-group name="null">
1454 <context context-type="linenumber">35</context>
1455 </context-group>
1456 </trans-unit>
1457 <trans-unit id="3c78b53bca33467190c0b7a01320bc093a2b1427">
1458 <source>Privacy</source>
1459 <target>隱私</target>
1460 <context-group name="null">
1461 <context context-type="linenumber">139</context>
1462 </context-group>
1463 </trans-unit>
1464 <trans-unit id="f7ac2376749c7985f94f0fc89ba75ea624de1215">
1465 <source>Publish will be available when upload is finished</source>
1466 <target>上傳完成時將可發佈</target>
1467 <context-group name="null">
1468 <context context-type="linenumber">54</context>
1469 </context-group>
1470 </trans-unit>
1471 <trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
1472 <source>Publish</source>
1473 <target>發佈</target>
1474 <context-group name="null">
1475 <context context-type="linenumber">61</context>
1476 </context-group>
1477 </trans-unit>
1478 <trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e">
1479 <source>Title</source>
1480 <target>標題</target>
1481 <context-group name="null">
1482 <context context-type="linenumber">7</context>
1483 </context-group>
1484 </trans-unit>
1485 <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b">
1486 <source>Tags</source>
1487 <target>標籤</target>
1488 <context-group name="null">
1489 <context context-type="linenumber">171</context>
1490 </context-group>
1491 </trans-unit>
1492 <trans-unit id="935e7146fe6c12169abfda18536c5856935cfd82">
1493 <source>(press Enter to add)</source>
1494 <target>(按下 Enter 以新增)</target>
1495 <context-group name="null">
1496 <context context-type="linenumber">15</context>
1497 </context-group>
1498 </trans-unit>
1499 <trans-unit id="50f53834157770b8205ada0e7a6e235211e4765e">
1500 <source>Video descriptions are truncated by default and require manual action to expand them.</source>
1501 <target>預設情況下,影片描述不會完整顯示,需要手動操作才能展開它們。</target>
1502 <context-group name="null">
1503 <context context-type="linenumber">24</context>
1504 </context-group>
1505 </trans-unit>
1506 <trans-unit id="d69f4fafc780cc7dbafb063ca5f11e6f7c91b0c5">
1507 <source>Schedule publication (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</source>
1508 <target>計劃發佈於 (<x id="INTERPOLATION" equiv-text="{{ calendarTimezone }}"/>)</target>
1509 <context-group name="null">
1510 <context context-type="linenumber">101</context>
1511 </context-group>
1512 </trans-unit>
1513 <trans-unit id="5ef7108218e096d09f4ee8525a05a8c90d7b95ee">
1514 <source>This video contains mature or explicit content</source>
1515 <target>這個影片包含了成人或裸露內容</target>
1516 <context-group name="null">
1517 <context context-type="linenumber">115</context>
1518 </context-group>
1519 </trans-unit>
1520 <trans-unit id="9daabdcaa2bbd83597099b10db22d056cf491644">
1521 <source>Some instances do not list videos containing mature or explicit content by default.</source>
1522 <target>某些實體預設不會列出包含成人或裸露內容的影片。</target>
1523 <context-group name="null">
1524 <context context-type="linenumber">116</context>
1525 </context-group>
1526 </trans-unit>
1527 <trans-unit id="3549ee96125a43181f80712ed744ee223a0e645a">
1528 <source>Enable video comments</source>
1529 <target>啟用影片評論</target>
1530 <context-group name="null">
1531 <context context-type="linenumber">121</context>
1532 </context-group>
1533 </trans-unit>
1534 <trans-unit id="7e549f41b715552ffe69b85c14a690d9d81c85f0">
1535 <source>Wait transcoding before publishing the video</source>
1536 <target>正等待發佈影片前的轉換編碼</target>
1537 <context-group name="null">
1538 <context context-type="linenumber">126</context>
1539 </context-group>
1540 </trans-unit>
1541 <trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
1542 <source>Basic info</source>
1543 <target>基礎資訊</target>
1544 <context-group name="null">
1545 <context context-type="linenumber">4</context>
1546 </context-group>
1547 </trans-unit>
1548 <trans-unit id="1dd793abd1cb8d16a7a2cb71ca5549a7111ee513">
1549 <source>Upload thumbnail</source>
1550 <target>上傳縮圖</target>
1551 <context-group name="null">
1552 <context context-type="linenumber">186</context>
1553 </context-group>
1554 </trans-unit>
1555 <trans-unit id="9df3f57e251c077bef7e7da81677cb971c55b639">
1556 <source>Upload preview</source>
1557 <target>上傳預覽</target>
1558 <context-group name="null">
1559 <context context-type="linenumber">193</context>
1560 </context-group>
1561 </trans-unit>
1562 <trans-unit id="b5629d298ff1a69b8db19a4ba2995c76b52da604">
1563 <source>Support</source>
1564 <target>支援</target>
1565 <context-group name="null">
1566 <context context-type="linenumber">67</context>
1567 </context-group>
1568 </trans-unit>
1569 <trans-unit id="f61f989de6fc12f99369a90800e4b5462d3f10a0">
1570 <source>Short text to tell people how they can support you (membership platform...).</source>
1571 <target>告訴人們他們可以如何支援您(成員平臺等)的短文</target>
1572 <context-group name="null">
1573 <context context-type="linenumber">200</context>
1574 </context-group>
1575 </trans-unit>
1576 <trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
1577 <source>Advanced settings</source>
1578 <target>進階設定</target>
1579 <context-group name="null">
1580 <context context-type="linenumber">182</context>
1581 </context-group>
1582 </trans-unit>
1583 <trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
1584 <source>
1585 Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1586 </source>
1587 <target>
1588 更新 <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
1589 </target>
1590 <context-group name="null">
1591 <context context-type="linenumber">2</context>
1592 </context-group>
1593 </trans-unit>
1594 <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb">
1595 <source>Update</source>
1596 <target>更新</target>
1597 <context-group name="null">
1598 <context context-type="linenumber">101</context>
1599 </context-group>
1600 </trans-unit>
1601 <trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
1602 <source>Download video</source>
1603 <target>下載影片</target>
1604 <context-group name="null">
1605 <context context-type="linenumber">7</context>
1606 </context-group>
1607 </trans-unit>
1608 <trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
1609 <source>Direct download</source>
1610 <target>直接下載</target>
1611 <context-group name="null">
1612 <context context-type="linenumber">20</context>
1613 </context-group>
1614 </trans-unit>
1615 <trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
1616 <source>Download</source>
1617 <target>下載</target>
1618 <context-group name="null">
1619 <context context-type="linenumber">83</context>
1620 </context-group>
1621 </trans-unit>
1622 <trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
1623 <source>Report video</source>
1624 <target>回報影片</target>
1625 <context-group name="null">
1626 <context context-type="linenumber">7</context>
1627 </context-group>
1628 </trans-unit>
1629 <trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
1630 <source>Reason...</source>
1631 <target>理由……</target>
1632 <context-group name="null">
1633 <context context-type="linenumber">14</context>
1634 </context-group>
1635 </trans-unit>
1636 <trans-unit id="0e6b8229bd65f93bc8040d0fb598967f220740c7">
1637 <source>
1638 Cancel
1639 </source>
1640 <target>
1641 取消
1642 </target>
1643 <context-group name="null">
1644 <context context-type="linenumber">22</context>
1645 </context-group>
1646 </trans-unit>
1647 <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd">
1648 <source>Submit</source>
1649 <target>遞交</target>
1650 <context-group name="null">
1651 <context context-type="linenumber">27</context>
1652 </context-group>
1653 </trans-unit>
1654 <trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9">
1655 <source>Share</source>
1656 <target>分享</target>
1657 <context-group name="null">
1658 <context context-type="linenumber">72</context>
1659 </context-group>
1660 </trans-unit>
1661 <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
1662 <source>URL</source>
1663 <target>URL</target>
1664 <context-group name="null">
1665 <context context-type="linenumber">12</context>
1666 </context-group>
1667 </trans-unit>
1668 <trans-unit id="d3b15c3bf4a7ea38d6002d2d2c4781642d30e79c">
1669 <source>Embed</source>
1670 <target>嵌入</target>
1671 <context-group name="null">
1672 <context context-type="linenumber">24</context>
1673 </context-group>
1674 </trans-unit>
1675 <trans-unit id="239fe0316cfe91aa6e1e7bf1ef19e3b7772131f8">
1676 <source>
1677 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).
1678 </source>
1679 <target>
1680 這個 URL 不安全(不是 HTTPS),所以嵌入視訊將無法在 HTTPS 網頁上運作(網路瀏覽器會阻擋在 HTTPS 網頁上的不安全 HTTP 請求)。
1681 </target>
1682 <context-group name="null">
1683 <context context-type="linenumber">35</context>
1684 </context-group>
1685 </trans-unit>
1686 <trans-unit id="9ed65ae88f6c982bc44d6fed2796e55f47dbf304">
1687 <source>
1688 The video is being transcoded, it may not work properly.
1689 </source>
1690 <target>
1691 此影片正在轉換編碼,可能無法正確運作。
1692 </target>
1693 <context-group name="null">
1694 <context context-type="linenumber">11</context>
1695 </context-group>
1696 </trans-unit>
1697 <trans-unit id="fbc205ea3d06fa8f65973fa3b490ae172f71c087">
1698 <source>
1699 This video will be published on <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/>
1700 </source>
1701 <target>
1702 此影片將會在 <x id="INTERPOLATION" equiv-text="{{ video.scheduledUpdate.updateAt | date: 'full' }}"/> 發佈
1703 </target>
1704 <context-group name="null">
1705 <context context-type="linenumber">15</context>
1706 </context-group>
1707 </trans-unit>
1708 <trans-unit id="643ab402461b1169eebbe2ed790e12a9a83551aa">
1709 <source>
1710 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> views
1711 </source>
1712 <target>
1713 <x id="INTERPOLATION" equiv-text="{{ video.publishedAt | myFromNow }}"/> - <x id="INTERPOLATION_1" equiv-text="{{ video.views | myNumberFormatter }}"/> 次檢視
1714 </target>
1715 <context-group name="null">
1716 <context context-type="linenumber">26</context>
1717 </context-group>
1718 </trans-unit>
1719 <trans-unit id="5cb397241041f7ad70997806227bafcdf7eb1b33">
1720 <source>Go the channel page</source>
1721 <target>到頻道頁面</target>
1722 <context-group name="null">
1723 <context context-type="linenumber">31</context>
1724 </context-group>
1725 </trans-unit>
1726 <trans-unit id="ccc07df383b7a32be3e2e105faa5488caf261c1c">
1727 <source>By <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></source>
1728 <target>由 <x id="INTERPOLATION" equiv-text="{{ video.by }}"/></target>
1729 <context-group name="null">
1730 <context context-type="linenumber">41</context>
1731 </context-group>
1732 </trans-unit>
1733 <trans-unit id="be73b652c2707f42b5d780d0c7b8fc5ea0b1706c">
1734 <source>Go to the account page</source>
1735 <target>到帳號頁面</target>
1736 <context-group name="null">
1737 <context context-type="linenumber">40</context>
1738 </context-group>
1739 </trans-unit>
1740 <trans-unit id="57075c778cf28b81272df4eb17da944366c98e51">
1741 <source>You can subscribe to this account via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and subscribe there. Subscription as a PeerTube user is being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt;.</source>
1742 <target>您可以透過任何支援 ActivityPub 的互聯實體來訂閱此帳號。例如 Mastodon 或 Pleroma,您可以在搜尋框中輸入 &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; 並在那裡訂閱。以 PeerTube 使用者的身份訂閱正在 &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/470'&gt;#470&lt;/a&gt; 中處理。</target>
1743 <context-group name="null">
1744 <context context-type="linenumber">45</context>
1745 </context-group>
1746 </trans-unit>
1747 <trans-unit id="82b59049f3f89d900c98da9319e156dd513e3ced">
1748 <source>Like this video</source>
1749 <target>喜歡此影片</target>
1750 <context-group name="null">
1751 <context context-type="linenumber">55</context>
1752 </context-group>
1753 </trans-unit>
1754 <trans-unit id="623698f075025b2b2fc2e0c59fd95f4f4662a509">
1755 <source>Dislike this video</source>
1756 <target>不喜歡此影片</target>
1757 <context-group name="null">
1758 <context context-type="linenumber">62</context>
1759 </context-group>
1760 </trans-unit>
1761 <trans-unit id="144fff5c40b85414d59e644d8dee7cfefba925a2">
1762 <source>Download the video</source>
1763 <target>下載影片</target>
1764 <context-group name="null">
1765 <context context-type="linenumber">82</context>
1766 </context-group>
1767 </trans-unit>
1768 <trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
1769 <source>Report</source>
1770 <target>回報</target>
1771 <context-group name="null">
1772 <context context-type="linenumber">89</context>
1773 </context-group>
1774 </trans-unit>
1775 <trans-unit id="2f4894617d9c44010f87473e583bd4604b7d6ecf">
1776 <source>Report this video</source>
1777 <target>回報此影片</target>
1778 <context-group name="null">
1779 <context context-type="linenumber">88</context>
1780 </context-group>
1781 </trans-unit>
1782 <trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
1783 <source>Blacklist</source>
1784 <target>黑名單</target>
1785 <context-group name="null">
1786 <context context-type="linenumber">95</context>
1787 </context-group>
1788 </trans-unit>
1789 <trans-unit id="803c6317abd2dbafcc93226c4e273c62932e3037">
1790 <source>Blacklist this video</source>
1791 <target>將此影片加入黑名單</target>
1792 <context-group name="null">
1793 <context context-type="linenumber">94</context>
1794 </context-group>
1795 </trans-unit>
1796 <trans-unit id="cd27f761b923a5bdb16ba9844da632edd878f1b1">
1797 <source>Update this video</source>
1798 <target>更新此影片</target>
1799 <context-group name="null">
1800 <context context-type="linenumber">100</context>
1801 </context-group>
1802 </trans-unit>
1803 <trans-unit id="3dbfdc68f83d91cb360172eb65578cae94e7cbe5">
1804 <source>Delete this video</source>
1805 <target>刪除此影片</target>
1806 <context-group name="null">
1807 <context context-type="linenumber">106</context>
1808 </context-group>
1809 </trans-unit>
1810 <trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b">
1811 <source>Show more</source>
1812 <target>顯示更多</target>
1813 <context-group name="null">
1814 <context context-type="linenumber">126</context>
1815 </context-group>
1816 </trans-unit>
1817 <trans-unit id="5403a767248e304199592271bba3366d2ca3f903">
1818 <source>Show less</source>
1819 <target>顯示較少</target>
1820 <context-group name="null">
1821 <context context-type="linenumber">132</context>
1822 </context-group>
1823 </trans-unit>
1824 <trans-unit id="7ce8b0d7cc34d4c1ef4a21e990b0a001337bedd1">
1825 <source>
1826 Other videos
1827 </source>
1828 <target>
1829 其他影片
1830 </target>
1831 <context-group name="null">
1832 <context context-type="linenumber">183</context>
1833 </context-group>
1834 </trans-unit>
1835 <trans-unit id="fb779d2b25c4d0ffa7d52c823a240717e8c1fe6c">
1836 <source>Friendly Reminder:</source>
1837 <target>友善提醒:</target>
1838 <context-group name="null">
1839 <context context-type="linenumber">195</context>
1840 </context-group>
1841 </trans-unit>
1842 <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e">
1843 <source>More information</source>
1844 <target>更多資訊</target>
1845 <context-group name="null">
1846 <context context-type="linenumber">200</context>
1847 </context-group>
1848 </trans-unit>
1849 <trans-unit id="bd499ca7913bb5408fd139a4cb4f863852d5f318">
1850 <source>Get more information</source>
1851 <target>取得更多資訊</target>
1852 <context-group name="null">
1853 <context context-type="linenumber">200</context>
1854 </context-group>
1855 </trans-unit>
1856 <trans-unit id="20fc98888baf65b5ba9fe9622dc036fa8dec6a5f">
1857 <source>
1858 OK
1859 </source>
1860 <target>
1861 確定
1862 </target>
1863 <context-group name="null">
1864 <context context-type="linenumber">203</context>
1865 </context-group>
1866 </trans-unit>
1867 <trans-unit id="b5f5df598f2d75640849b2a7744f91e5dbd390e7">
1868 <source>
1869 Comments
1870 </source>
1871 <target>
1872 評論
1873 </target>
1874 <context-group name="null">
1875 <context context-type="linenumber">3</context>
1876 </context-group>
1877 </trans-unit>
1878 <trans-unit id="da8a38f72f92714cf8680560c99982dc651480d5">
1879 <source>You can either comment on the page of your instance where this video is federated with your PeerTube account, or via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type in the search box &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; and find back the video. Direct commenting capabilities are being worked on in &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/224'&gt;#224&lt;/a&gt;.</source>
1880 <target>您可以對此影片使用有與您的 PeerTube 帳號在互聯的實體上評論,或是透過任何支援 ActivityPub 的互聯實體來進行。例如 Mastodon 或 Pleroma,您可以在搜尋欄輸入 &lt;strong&gt;@<x id="INTERPOLATION" equiv-text="{{video.account.name}}"/>@<x id="INTERPOLATION_1" equiv-text="{{video.account.host}}"/>&lt;/strong&gt; 並搜尋影片。直接評論的功能還在 &lt;a href='https://github.com/Chocobozzz/PeerTube/issues/224'&gt;#224&lt;/a&gt; 上繼續努力實現。</target>
1881 <context-group name="null">
1882 <context context-type="linenumber">8</context>
1883 </context-group>
1884 </trans-unit>
1885 <trans-unit id="17810e68b0ba21e62e61eecfaf0a93b2c91033b4">
1886 <source>No comments.</source>
1887 <target>沒有評論。</target>
1888 <context-group name="null">
1889 <context context-type="linenumber">19</context>
1890 </context-group>
1891 </trans-unit>
1892 <trans-unit id="69c081796209e45e26af91152ec9bd0a65ec261e">
1893 <source>View all <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> replies</source>
1894 <target>檢視全部 <x id="INTERPOLATION" equiv-text="{{ comment.totalReplies }}"/> 個回覆</target>
1895 <context-group name="null">
1896 <context context-type="linenumber">56</context>
1897 </context-group>
1898 </trans-unit>
1899 <trans-unit id="b7fccd922d6473725247ed85a9fdf96fe6794828">
1900 <source>
1901 Comments are disabled.
1902 </source>
1903 <target>
1904 評論已停用。
1905 </target>
1906 <context-group name="null">
1907 <context context-type="linenumber">65</context>
1908 </context-group>
1909 </trans-unit>
1910 <trans-unit id="db79255cb8757e9e945ba5f901a2b67e4189016e">
1911 <source>Add comment...</source>
1912 <target>新增評論……</target>
1913 <context-group name="null">
1914 <context context-type="linenumber">6</context>
1915 </context-group>
1916 </trans-unit>
1917 <trans-unit id="26fa50ba8e69b53162b348d98e25f8b76c81343e">
1918 <source>
1919 Post comment
1920 </source>
1921 <target>
1922 張貼評論
1923 </target>
1924 <context-group name="null">
1925 <context context-type="linenumber">17</context>
1926 </context-group>
1927 </trans-unit>
1928 <trans-unit id="a607fab03e11b0e07c1640e11a1b02d7af06b285">
1929 <source>Highlighted comment</source>
1930 <target>已突顯的評論</target>
1931 <context-group name="null">
1932 <context context-type="linenumber">5</context>
1933 </context-group>
1934 </trans-unit>
1935 <trans-unit id="cb23d4d98007aa4d7123837f4c17a671848377d6">
1936 <source>Reply</source>
1937 <target>回覆</target>
1938 <context-group name="null">
1939 <context context-type="linenumber">14</context>
1940 </context-group>
1941 </trans-unit>
1942 <trans-unit id="814d28bf9dcbd3122254e664b446ac8e0442bc08">
1943 <source>Error getting about from server</source>
1944 <target>取得關於伺服器的錯誤</target>
1945 <context-group name="null">
1946 <context context-type="linenumber">1</context>
1947 </context-group>
1948 </trans-unit>
1949 <trans-unit id="37b56526e384f843a15323dc730b484a97b4c968">
1950 <source>No description</source>
1951 <target>沒有描述</target>
1952 <context-group name="null">
1953 <context context-type="linenumber">1</context>
1954 </context-group>
1955 </trans-unit>
1956 <trans-unit id="2f03e577e8f81a9f8be0095f93e1f9376c6eedc9">
1957 <source>Published videos</source>
1958 <target>已發佈的影片</target>
1959 <context-group name="null">
1960 <context context-type="linenumber">1</context>
1961 </context-group>
1962 </trans-unit>
1963 <trans-unit id="369ef5e9c0dd1251abdbf699a5db408bca10777f">
1964 <source>Published <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> videos</source>
1965 <target>已發佈的 <x id="INTERPOLATION" equiv-text="{{totalVideos}}"/> 個影片</target>
1966 <context-group name="null">
1967 <context context-type="linenumber">1</context>
1968 </context-group>
1969 </trans-unit>
1970 <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d">
1971 <source>Error</source>
1972 <target>錯誤</target>
1973 <context-group name="null">
1974 <context context-type="linenumber">1</context>
1975 </context-group>
1976 </trans-unit>
1977 <trans-unit id="27a71a0aee65258179e90ecf0841c0a68f95beed">
1978 <source>You set custom <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>. </source>
1979 <target>您可以設定自訂 <x id="INTERPOLATION" equiv-text="{{customizationsText}}"/>。</target>
1980 <context-group name="null">
1981 <context context-type="linenumber">1</context>
1982 </context-group>
1983 </trans-unit>
1984 <trans-unit id="865bc18d22e223101ede0916967ead0abd515d0e">
1985 <source>This could lead to security issues or bugs if you do not understand it. </source>
1986 <target>這可能會導致安全性問題或臭蟲。若您不了解它。</target>
1987 <context-group name="null">
1988 <context context-type="linenumber">1</context>
1989 </context-group>
1990 </trans-unit>
1991 <trans-unit id="262e18b2efb5912651684a522fc08d77c99972d0">
1992 <source>Are you sure you want to update the configuration?</source>
1993 <target>您確定您想要更新設定嗎?</target>
1994 <context-group name="null">
1995 <context context-type="linenumber">1</context>
1996 </context-group>
1997 </trans-unit>
1998 <trans-unit id="1ae0ab69f5c19d179282c8d882fd2f3c00e29119">
1999 <source>Please type</source>
2000 <target>請輸入</target>
2001 <context-group name="null">
2002 <context context-type="linenumber">1</context>
2003 </context-group>
2004 </trans-unit>
2005 <trans-unit id="75f4bb68ee4c6b282abfd9d8d32be22c6202794d">
2006 <source>to confirm.</source>
2007 <target>以確認。</target>
2008 <context-group name="null">
2009 <context context-type="linenumber">1</context>
2010 </context-group>
2011 </trans-unit>
2012 <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba">
2013 <source>Success</source>
2014 <target>成功</target>
2015 <context-group name="null">
2016 <context context-type="linenumber">1</context>
2017 </context-group>
2018 </trans-unit>
2019 <trans-unit id="b9e64712e3e5c342ce9cd32eec6cd7d6c00f4048">
2020 <source>Configuration updated.</source>
2021 <target>設定已更新。</target>
2022 <context-group name="null">
2023 <context context-type="linenumber">1</context>
2024 </context-group>
2025 </trans-unit>
2026 <trans-unit id="fc5731a28a99b25c62d43333ceebb250d60aff84">
2027 <source><x id="INTERPOLATION" equiv-text="{{host}}"/> is not valid</source>
2028 <target><x id="INTERPOLATION" equiv-text="{{host}}"/> 無效</target>
2029 <context-group name="null">
2030 <context context-type="linenumber">1</context>
2031 </context-group>
2032 </trans-unit>
2033 <trans-unit id="e02f50674f1d96966384dc096beb42d4973997df">
2034 <source>You need to specify hosts to follow.</source>
2035 <target>您必須指定要追蹤的主機。</target>
2036 <context-group name="null">
2037 <context context-type="linenumber">1</context>
2038 </context-group>
2039 </trans-unit>
2040 <trans-unit id="c2a114eb000e7c38e8ad4b1768821bdf6e946d71">
2041 <source>Hosts need to be unique.</source>
2042 <target>主機必須唯一。</target>
2043 <context-group name="null">
2044 <context context-type="linenumber">1</context>
2045 </context-group>
2046 </trans-unit>
2047 <trans-unit id="a6718d6aaf5bcd1692eed48daa61d2bed62c1f50">
2048 <source>If you confirm, you will send a follow request to:<x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/> - </source>
2049 <target>若您確認,您將會傳送追蹤請求給:<x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/> - </target>
2050 <context-group name="null">
2051 <context context-type="linenumber">1</context>
2052 </context-group>
2053 </trans-unit>
2054 <trans-unit id="1266acb081ef0324c4a38ae2d514dd75d8b38409">
2055 <source>Follow new server(s)</source>
2056 <target>追蹤新伺服器</target>
2057 <context-group name="null">
2058 <context context-type="linenumber">1</context>
2059 </context-group>
2060 </trans-unit>
2061 <trans-unit id="950f5111d567e5c0e971f07c26e8c2be1d919a8e">
2062 <source>Follow request(s) sent!</source>
2063 <target>追蹤請求已傳送!</target>
2064 <context-group name="null">
2065 <context context-type="linenumber">1</context>
2066 </context-group>
2067 </trans-unit>
2068 <trans-unit id="5729c34a858c78daa1aa606f62a3665527cf97e6">
2069 <source>Do you really want to unfollow <x id="INTERPOLATION" equiv-text="{{host}}"/>?</source>
2070 <target>您想要取消追蹤 <x id="INTERPOLATION" equiv-text="{{host}}"/> 嗎?</target>
2071 <context-group name="null">
2072 <context context-type="linenumber">1</context>
2073 </context-group>
2074 </trans-unit>
2075 <trans-unit id="a89875525c82ab81ffe32e481a5475b43d0c2902">
2076 <source>Unfollow</source>
2077 <target>取消追蹤</target>
2078 <context-group name="null">
2079 <context context-type="linenumber">1</context>
2080 </context-group>
2081 </trans-unit>
2082 <trans-unit id="fb4e35e2b0ea2abc1f71295a4b34830e57c07bd0">
2083 <source>You are not following <x id="INTERPOLATION" equiv-text="{{host}}"/> anymore.</source>
2084 <target>您無法再追蹤 <x id="INTERPOLATION" equiv-text="{{host}}"/>。</target>
2085 <context-group name="null">
2086 <context context-type="linenumber">1</context>
2087 </context-group>
2088 </trans-unit>
2089 <trans-unit id="f995df052a1dfc675c2a21926420a707d9601936">
2090 <source>Following</source>
2091 <target>正在追蹤</target>
2092 <context-group name="null">
2093 <context context-type="linenumber">1</context>
2094 </context-group>
2095 </trans-unit>
2096 <trans-unit id="d29764bcbaad3ef69b6be92be35bdf25972ce246">
2097 <source>Follow</source>
2098 <target>追蹤</target>
2099 <context-group name="null">
2100 <context context-type="linenumber">1</context>
2101 </context-group>
2102 </trans-unit>
2103 <trans-unit id="9bee670725966ed477b4c33a545c8b5436b0065e">
2104 <source>Followers</source>
2105 <target>追蹤者</target>
2106 <context-group name="null">
2107 <context context-type="linenumber">1</context>
2108 </context-group>
2109 </trans-unit>
2110 <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf">
2111 <source>Unlimited</source>
2112 <target>無限制</target>
2113 <context-group name="null">
2114 <context context-type="linenumber">1</context>
2115 </context-group>
2116 </trans-unit>
2117 <trans-unit id="364463fab6c5714118d6449561a0f8de1cc10bfa">
2118 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> created.</source>
2119 <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已建立。</target>
2120 <context-group name="null">
2121 <context context-type="linenumber">1</context>
2122 </context-group>
2123 </trans-unit>
2124 <trans-unit id="964865a3cd90b4af99902f071644a4b2aede4c32">
2125 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> updated.</source>
2126 <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已更新。</target>
2127 <context-group name="null">
2128 <context context-type="linenumber">1</context>
2129 </context-group>
2130 </trans-unit>
2131 <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f">
2132 <source>Update user</source>
2133 <target>更新使用者</target>
2134 <context-group name="null">
2135 <context context-type="linenumber">1</context>
2136 </context-group>
2137 </trans-unit>
2138 <trans-unit id="911fc197949e47aa5f0541627bc319f59edd9d11">
2139 <source>You cannot delete root.</source>
2140 <target>您無法刪除 root。</target>
2141 <context-group name="null">
2142 <context context-type="linenumber">1</context>
2143 </context-group>
2144 </trans-unit>
2145 <trans-unit id="9ef88654aab4b2df4fa2083f33caa0c5419c1a60">
2146 <source>Do you really want to delete this user?</source>
2147 <target>您真的想要刪除此使用者嗎?</target>
2148 <context-group name="null">
2149 <context context-type="linenumber">1</context>
2150 </context-group>
2151 </trans-unit>
2152 <trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
2153 <source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
2154 <target>使用者 <x id="INTERPOLATION" equiv-text="{{username}}"/> 已刪除。</target>
2155 <context-group name="null">
2156 <context context-type="linenumber">1</context>
2157 </context-group>
2158 </trans-unit>
2159 <trans-unit id="4733ad1d7e63960438c0203b9a64f165b5fc84f2">
2160 <source>Do you really want to remove this video from the blacklist ? It will be available again in the videos list.</source>
2161 <target>您真的想要將這部影片從黑名單中移除嗎?其將會再次可在影片清單中看到。</target>
2162 <context-group name="null">
2163 <context context-type="linenumber">1</context>
2164 </context-group>
2165 </trans-unit>
2166 <trans-unit id="1585babc36806e20e225ac27dbba0e7c7cd09e0f">
2167 <source>Video <x id="INTERPOLATION" equiv-text="{{name}}"/> removed from the blacklist.</source>
2168 <target>影片 <x id="INTERPOLATION" equiv-text="{{name}}"/> 已從黑名單中移除。</target>
2169 <context-group name="null">
2170 <context context-type="linenumber">1</context>
2171 </context-group>
2172 </trans-unit>
2173 <trans-unit id="2db8f1f93a5485c32267762a3bf4da499832e732">
2174 <source>The new password and the confirmed password do not correspond.</source>
2175 <target>新密碼與密碼確認不相符。</target>
2176 <context-group name="null">
2177 <context context-type="linenumber">1</context>
2178 </context-group>
2179 </trans-unit>
2180 <trans-unit id="19508af0dfbc685cbf10cf02061bb5a0f423b6fc">
2181 <source>Password updated.</source>
2182 <target>密碼已更新。</target>
2183 <context-group name="null">
2184 <context context-type="linenumber">1</context>
2185 </context-group>
2186 </trans-unit>
2187 <trans-unit id="db4ff52375f6a25ad0472e92754c8c265ae47c6b">
2188 <source>Profile updated.</source>
2189 <target>設定檔已更新。</target>
2190 <context-group name="null">
2191 <context context-type="linenumber">1</context>
2192 </context-group>
2193 </trans-unit>
2194 <trans-unit id="1e003ad599ef836949b9f4dad3037a58ef3ff8d1">
2195 <source>Avatar changed.</source>
2196 <target>大頭貼已變更。</target>
2197 <context-group name="null">
2198 <context context-type="linenumber">1</context>
2199 </context-group>
2200 </trans-unit>
2201 <trans-unit id="214b802dfd6f544003147a7a68938ec1055c8f32">
2202 <source>Information updated.</source>
2203 <target>資訊已更新。</target>
2204 <context-group name="null">
2205 <context context-type="linenumber">1</context>
2206 </context-group>
2207 </trans-unit>
2208 <trans-unit id="3ef8bf973a9a481a08c6f0aaa875f0259b3ea645">
2209 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> created.</source>
2210 <target>影片頻道 <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> 已更新。</target>
2211 <context-group name="null">
2212 <context context-type="linenumber">1</context>
2213 </context-group>
2214 </trans-unit>
2215 <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795">
2216 <source>Create</source>
2217 <target>建立</target>
2218 <context-group name="null">
2219 <context context-type="linenumber">1</context>
2220 </context-group>
2221 </trans-unit>
2222 <trans-unit id="98ab64f0af924a60a48b40835c1b655bd17c6559">
2223 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> updated.</source>
2224 <target>影片頻道 <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> 已更新。</target>
2225 <context-group name="null">
2226 <context context-type="linenumber">1</context>
2227 </context-group>
2228 </trans-unit>
2229 <trans-unit id="d5adc9efad0469fc3e1503d68c4ec2ff4453a814">
2230 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/>? It will delete all videos uploaded in this channel too.</source>
2231 <target>您真的想要刪除 <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> 嗎?這也會刪除所有上傳到這個頻道的影片。</target>
2232 <context-group name="null">
2233 <context context-type="linenumber">1</context>
2234 </context-group>
2235 </trans-unit>
2236 <trans-unit id="703dee7f3e693f9c77ef17c46f9fa71999609f8e">
2237 <source>Please type the name of the video channel to confirm</source>
2238 <target>請輸入影片頻道的名稱以確認</target>
2239 <context-group name="null">
2240 <context context-type="linenumber">1</context>
2241 </context-group>
2242 </trans-unit>
2243 <trans-unit id="a81a33275b683729ad938b6102e7e34a057537a2">
2244 <source>Video channel <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> deleted.</source>
2245 <target>影片頻道 <x id="INTERPOLATION" equiv-text="{{videoChannelName}}"/> 已刪除。</target>
2246 <context-group name="null">
2247 <context context-type="linenumber">1</context>
2248 </context-group>
2249 </trans-unit>
2250 <trans-unit id="00e16d1f1c5cc936ec0881cd02cbf66aa1b4cddd">
2251 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos?</source>
2252 <target>您真的想要刪除 <x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> 影片嗎?</target>
2253 <context-group name="null">
2254 <context context-type="linenumber">1</context>
2255 </context-group>
2256 </trans-unit>
2257 <trans-unit id="dff7d4574cfaa785cbd4c0a5ffb5befec19a5d83">
2258 <source><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> videos deleted.</source>
2259 <target><x id="INTERPOLATION" equiv-text="{{deleteLength}}"/> 影片已刪除。</target>
2260 <context-group name="null">
2261 <context context-type="linenumber">1</context>
2262 </context-group>
2263 </trans-unit>
2264 <trans-unit id="4ec5852c869b2fb4ae0e564b51278d7be8013fc7">
2265 <source>Do you really want to delete <x id="INTERPOLATION" equiv-text="{{videoName}}"/>?</source>
2266 <target>您真的想要刪除 <x id="INTERPOLATION" equiv-text="{{videoName}}"/> 嗎?</target>
2267 <context-group name="null">
2268 <context context-type="linenumber">1</context>
2269 </context-group>
2270 </trans-unit>
2271 <trans-unit id="d39a0bfa616a9a8473b2e379eefe17d8ed1af118">
2272 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> deleted.</source>
2273 <target>影片 <x id="INTERPOLATION" equiv-text="{{videoName}}"/> 已刪除。</target>
2274 <context-group name="null">
2275 <context context-type="linenumber">1</context>
2276 </context-group>
2277 </trans-unit>
2278 <trans-unit id="dd9f3264feed4935008861c15d81c947124e4ac3">
2279 <source>Published</source>
2280 <target>已發佈</target>
2281 <context-group name="null">
2282 <context context-type="linenumber">1</context>
2283 </context-group>
2284 </trans-unit>
2285 <trans-unit id="8e6d54c4f760d9e90518eef5334211c48c0b71e2">
2286 <source>Publication scheduled on </source>
2287 <target>計畫發佈於 </target>
2288 <context-group name="null">
2289 <context context-type="linenumber">1</context>
2290 </context-group>
2291 </trans-unit>
2292 <trans-unit id="4a7e91ebe1cf184db5f2bfecf9c16ff81c9e2c02">
2293 <source>Waiting transcoding</source>
2294 <target>正在等待轉換編碼</target>
2295 <context-group name="null">
2296 <context context-type="linenumber">1</context>
2297 </context-group>
2298 </trans-unit>
2299 <trans-unit id="21f1c9d5c67346c830aced4f670045fcf0aeb83a">
2300 <source>To transcode</source>
2301 <target>轉換編碼</target>
2302 <context-group name="null">
2303 <context context-type="linenumber">1</context>
2304 </context-group>
2305 </trans-unit>
2306 <trans-unit id="edeaa933b09690523e46977e11064e9c655d77d7">
2307 <source>Cannot retrieve OAuth Client credentials: <x id="INTERPOLATION" equiv-text="{{errorText}}"/>.
2308</source>
2309 <target>無法擷取 OAuth 客戶端憑證:<x id="INTERPOLATION" equiv-text="{{errorText}}"/>。
2310</target>
2311 <context-group name="null">
2312 <context context-type="linenumber">1</context>
2313 </context-group>
2314 </trans-unit>
2315 <trans-unit id="8d9b4f4b69108c3c9aa0f3b0dbde87786ba9b319">
2316 <source>Ensure you have correctly configured PeerTube (config/ directory), in particular the "webserver" section.</source>
2317 <target>確保您已正在設定 PeerTube(設定/目錄),在對應的 "webserver" 小節。</target>
2318 <context-group name="null">
2319 <context context-type="linenumber">1</context>
2320 </context-group>
2321 </trans-unit>
2322 <trans-unit id="e31bbf15d6ba5c7c0f17f89a98029cff0bd40b87">
2323 <source>You need to reconnect.</source>
2324 <target>您需要重新連線。</target>
2325 <context-group name="null">
2326 <context context-type="linenumber">1</context>
2327 </context-group>
2328 </trans-unit>
2329 <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da">
2330 <source>Confirm</source>
2331 <target>確認</target>
2332 <context-group name="null">
2333 <context context-type="linenumber">1</context>
2334 </context-group>
2335 </trans-unit>
2336 <trans-unit id="ccbf0490fb6b60d21e03bb2c9003df0ce1a58752">
2337 <source>Unable to find user id or verification string.</source>
2338 <target>找不到使用者 id 或驗證字串。</target>
2339 <context-group name="null">
2340 <context context-type="linenumber">1</context>
2341 </context-group>
2342 </trans-unit>
2343 <trans-unit id="b0f24b7136e551a0deba831f1525711245b31a26">
2344 <source>Your password has been successfully reset!</source>
2345 <target>您的密碼已成功重設!</target>
2346 <context-group name="null">
2347 <context context-type="linenumber">1</context>
2348 </context-group>
2349 </trans-unit>
2350 <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6">
2351 <source>Today</source>
2352 <target>今天</target>
2353 <context-group name="null">
2354 <context context-type="linenumber">1</context>
2355 </context-group>
2356 </trans-unit>
2357 <trans-unit id="7e892ba15f2c6c17e83510e273b3e10fc32ea016">
2358 <source>Search</source>
2359 <target>搜尋</target>
2360 <context-group name="null">
2361 <context context-type="linenumber">1</context>
2362 </context-group>
2363 </trans-unit>
2364 <trans-unit id="b67c8e57904c67c4566610363b7f82c748d04323">
2365 <source>Instance name is required.</source>
2366 <target>實體名稱必填。</target>
2367 <context-group name="null">
2368 <context context-type="linenumber">1</context>
2369 </context-group>
2370 </trans-unit>
2371 <trans-unit id="10a248adb1ee12830355a04ac3cde2bad2d41d7d">
2372 <source>Short description should not be longer than 250 characters.</source>
2373 <target>不長於 250 個字元的簡短描述。</target>
2374 <context-group name="null">
2375 <context context-type="linenumber">1</context>
2376 </context-group>
2377 </trans-unit>
2378 <trans-unit id="356e63270712273da168072ec0fc78a969919bf1">
2379 <source>Twitter username is required.</source>
2380 <target>Twitter 使用者名稱必填。</target>
2381 <context-group name="null">
2382 <context context-type="linenumber">1</context>
2383 </context-group>
2384 </trans-unit>
2385 <trans-unit id="dbb2ef02020afc05e146855f2e1dd7c9522d49b6">
2386 <source>Previews cache size is required.</source>
2387 <target>預覽快取大小必填。</target>
2388 <context-group name="null">
2389 <context context-type="linenumber">1</context>
2390 </context-group>
2391 </trans-unit>
2392 <trans-unit id="97836c6e698185b4ce357de9d4b2ab3e838f2459">
2393 <source>Previews cache size must be greater than 1.</source>
2394 <target>預覽快取大小必須大於 1。</target>
2395 <context-group name="null">
2396 <context context-type="linenumber">1</context>
2397 </context-group>
2398 </trans-unit>
2399 <trans-unit id="e7393dc4a4aa12d005582eb9e1ddc7e5ca5bebd3">
2400 <source>Previews cache size must be a number.</source>
2401 <target>預覽快取大小必須為數字。</target>
2402 <context-group name="null">
2403 <context context-type="linenumber">1</context>
2404 </context-group>
2405 </trans-unit>
2406 <trans-unit id="2cdd5a8c604ef16c2f9a17ed81d73f4f9509e828">
2407 <source>Signup limit is required.</source>
2408 <target>註冊限制必填。</target>
2409 <context-group name="null">
2410 <context context-type="linenumber">1</context>
2411 </context-group>
2412 </trans-unit>
2413 <trans-unit id="0ca9f7ec55c9896add6e82d2b52e9217e1140cf7">
2414 <source>Signup limit must be greater than 1.</source>
2415 <target>註冊限制必須大於 1。</target>
2416 <context-group name="null">
2417 <context context-type="linenumber">1</context>
2418 </context-group>
2419 </trans-unit>
2420 <trans-unit id="58c2f66ba74f1400914031ef4ed635938e9e8ced">
2421 <source>Signup limit must be a number.</source>
2422 <target>註冊限制必須為數字。</target>
2423 <context-group name="null">
2424 <context context-type="linenumber">1</context>
2425 </context-group>
2426 </trans-unit>
2427 <trans-unit id="1245841647f9b42d3e7554903c1c50bdd80ab021">
2428 <source>Admin email is required.</source>
2429 <target>管理員電子郵件必填。</target>
2430 <context-group name="null">
2431 <context context-type="linenumber">1</context>
2432 </context-group>
2433 </trans-unit>
2434 <trans-unit id="3fd2feb77dfe57fe82573e3cdf996105e2fafc66">
2435 <source>Admin email must be valid.</source>
2436 <target>管理員電子郵件必須有效。</target>
2437 <context-group name="null">
2438 <context context-type="linenumber">1</context>
2439 </context-group>
2440 </trans-unit>
2441 <trans-unit id="f15f2e02b1f6a96553e98ea4a969045d17ec1400">
2442 <source>Transcoding threads is required.</source>
2443 <target>轉換編碼執行緒必填。</target>
2444 <context-group name="null">
2445 <context context-type="linenumber">1</context>
2446 </context-group>
2447 </trans-unit>
2448 <trans-unit id="ba88636d27c1a6a7e1f75ff57ec182b30b851c2e">
2449 <source>Transcoding threads must be greater than 1.</source>
2450 <target>轉換編碼執行緒必須大於 1。</target>
2451 <context-group name="null">
2452 <context context-type="linenumber">1</context>
2453 </context-group>
2454 </trans-unit>
2455 <trans-unit id="5db300f6fba918a35597160183205ede13e8e149">
2456 <source>Username is required.</source>
2457 <target>使用者名稱必填。</target>
2458 <context-group name="null">
2459 <context context-type="linenumber">1</context>
2460 </context-group>
2461 </trans-unit>
2462 <trans-unit id="4eb39d69b74d7a56652ec84fa6826994ee26c0e5">
2463 <source>Password is required.</source>
2464 <target>密碼必填。</target>
2465 <context-group name="null">
2466 <context context-type="linenumber">1</context>
2467 </context-group>
2468 </trans-unit>
2469 <trans-unit id="c90872a06666a51c2957c4b29724e68df5c67154">
2470 <source>Confirmation of the password is required.</source>
2471 <target>確認密碼必填。</target>
2472 <context-group name="null">
2473 <context context-type="linenumber">1</context>
2474 </context-group>
2475 </trans-unit>
2476 <trans-unit id="05ad6b99d9bf7b51968aa0b0b939e8627a329bea">
2477 <source>Username must be at least 3 characters long.</source>
2478 <target>使用者名稱必須至少 3 個字元長。</target>
2479 <context-group name="null">
2480 <context context-type="linenumber">1</context>
2481 </context-group>
2482 </trans-unit>
2483 <trans-unit id="d4b11fd0ddeea39b33f911d3aac1e82799cdaaef">
2484 <source>Username cannot be more than 20 characters long.</source>
2485 <target>使用者名稱不能多於 20 個字元。</target>
2486 <context-group name="null">
2487 <context context-type="linenumber">1</context>
2488 </context-group>
2489 </trans-unit>
2490 <trans-unit id="5acbe0aa7a7157b1f09057a98ba01ab578a303a9">
2491 <source>Username should be only lowercase alphanumeric characters.</source>
2492 <target>使用者名稱應該僅有小寫英數字元。</target>
2493 <context-group name="null">
2494 <context context-type="linenumber">1</context>
2495 </context-group>
2496 </trans-unit>
2497 <trans-unit id="b6f52e19f074f77866fa03fabe1ddd5cdae346f0">
2498 <source>Email is required.</source>
2499 <target>電子郵件必填。</target>
2500 <context-group name="null">
2501 <context context-type="linenumber">1</context>
2502 </context-group>
2503 </trans-unit>
2504 <trans-unit id="bef8a36c3dffff15fb5faf3d20bdbbbc1af824c1">
2505 <source>Email must be valid.</source>
2506 <target>電子郵件必須為有效電子郵件。</target>
2507 <context-group name="null">
2508 <context context-type="linenumber">1</context>
2509 </context-group>
2510 </trans-unit>
2511 <trans-unit id="1fe26e49476ac701885abc59127e96a3760847f0">
2512 <source>Password must be at least 6 characters long.</source>
2513 <target>密碼必須至少 6 個字元長。</target>
2514 <context-group name="null">
2515 <context context-type="linenumber">1</context>
2516 </context-group>
2517 </trans-unit>
2518 <trans-unit id="0a154031f3e66985af96d5f903441cf84f0dc75e">
2519 <source>Password cannot be more than 255 characters long.</source>
2520 <target>密碼不能多於 255 個字元。</target>
2521 <context-group name="null">
2522 <context context-type="linenumber">1</context>
2523 </context-group>
2524 </trans-unit>
2525 <trans-unit id="abede840116d58f04a55d99a6cbd68da8a3e1bbf">
2526 <source>Video quota is required.</source>
2527 <target>影片配額必填。</target>
2528 <context-group name="null">
2529 <context context-type="linenumber">1</context>
2530 </context-group>
2531 </trans-unit>
2532 <trans-unit id="93a6dc1d3aa0d3201c86ef1ec8adf5cf0ada3c80">
2533 <source>Quota must be greater than -1.</source>
2534 <target>配額必須大於 -1。</target>
2535 <context-group name="null">
2536 <context context-type="linenumber">1</context>
2537 </context-group>
2538 </trans-unit>
2539 <trans-unit id="545e77fd5d9526228a2133109447c23225ed9c85">
2540 <source>User role is required.</source>
2541 <target>使用者角色必填。</target>
2542 <context-group name="null">
2543 <context context-type="linenumber">1</context>
2544 </context-group>
2545 </trans-unit>
2546 <trans-unit id="1c417b7aef730d6ef5d62fa8a0a7e25e3a2393e4">
2547 <source>Display name is required.</source>
2548 <target>顯示名稱必填。</target>
2549 <context-group name="null">
2550 <context context-type="linenumber">1</context>
2551 </context-group>
2552 </trans-unit>
2553 <trans-unit id="bdeb1a8e69e137572df795d64120ea85069b7674">
2554 <source>Display name must be at least 3 characters long.</source>
2555 <target>顯示名稱必須至少 3 個字元長。</target>
2556 <context-group name="null">
2557 <context context-type="linenumber">1</context>
2558 </context-group>
2559 </trans-unit>
2560 <trans-unit id="e81bda510399d52f26a44a15c3dbf4d6205d90a9">
2561 <source>Display name cannot be more than 120 characters long.</source>
2562 <target>顯示名稱不能多於 120 個字元。</target>
2563 <context-group name="null">
2564 <context context-type="linenumber">1</context>
2565 </context-group>
2566 </trans-unit>
2567 <trans-unit id="d531c2261dc0c2739bd7cbb2bb175946b7eeb3ae">
2568 <source>Description must be at least 3 characters long.</source>
2569 <target>描述必須至少 3 個字元長。</target>
2570 <context-group name="null">
2571 <context context-type="linenumber">1</context>
2572 </context-group>
2573 </trans-unit>
2574 <trans-unit id="916a6e4fd83ece1dc54c6135eb3b8cd064b4bac3">
2575 <source>Description cannot be more than 250 characters long.</source>
2576 <target>描述不能多於 250 個字元。</target>
2577 <context-group name="null">
2578 <context context-type="linenumber">1</context>
2579 </context-group>
2580 </trans-unit>
2581 <trans-unit id="b3cf1889d2fdd6b15e697c270c9b80772fe2cae6">
2582 <source>Report reason is required.</source>
2583 <target>回報理由必填。</target>
2584 <context-group name="null">
2585 <context context-type="linenumber">1</context>
2586 </context-group>
2587 </trans-unit>
2588 <trans-unit id="993f9f5703d449a1d467243db75253d288a2947e">
2589 <source>Report reason must be at least 2 characters long.</source>
2590 <target>回報理由必須至少 2 個字元長。</target>
2591 <context-group name="null">
2592 <context context-type="linenumber">1</context>
2593 </context-group>
2594 </trans-unit>
2595 <trans-unit id="7de2178ed1036844fb1c3ad8b7899a039fcdcdb9">
2596 <source>Report reason cannot be more than 300 characters long.</source>
2597 <target>回報理由不能多於 300 個字元。</target>
2598 <context-group name="null">
2599 <context context-type="linenumber">1</context>
2600 </context-group>
2601 </trans-unit>
2602 <trans-unit id="fac936be125163a8494f3d7e7f21d65c7e4f1ff6">
2603 <source>Description cannot be more than 500 characters long.</source>
2604 <target>描述不能多於 500 個字元。</target>
2605 <context-group name="null">
2606 <context context-type="linenumber">1</context>
2607 </context-group>
2608 </trans-unit>
2609 <trans-unit id="e7182e21e9566cc81c83f92727461322f71fd69b">
2610 <source>Support text must be at least 3 characters long.</source>
2611 <target>支援文字必須至少 3 個字元長。</target>
2612 <context-group name="null">
2613 <context context-type="linenumber">1</context>
2614 </context-group>
2615 </trans-unit>
2616 <trans-unit id="3fe80c71378e127dda2dda9dbcd66b059d362813">
2617 <source>Support text cannot be more than 500 characters long.</source>
2618 <target>支援文字不能多於 500 個字元。</target>
2619 <context-group name="null">
2620 <context context-type="linenumber">1</context>
2621 </context-group>
2622 </trans-unit>
2623 <trans-unit id="6ca60e0f6dfbc0073b0514bce7d273150b0b9e79">
2624 <source>Comment is required.</source>
2625 <target>評論為必填。</target>
2626 <context-group name="null">
2627 <context context-type="linenumber">1</context>
2628 </context-group>
2629 </trans-unit>
2630 <trans-unit id="f5a94cae76685e72f33541b977efdd7845cb0ed6">
2631 <source>Comment must be at least 2 characters long.</source>
2632 <target>評論必須至少 2 個字元長。</target>
2633 <context-group name="null">
2634 <context context-type="linenumber">1</context>
2635 </context-group>
2636 </trans-unit>
2637 <trans-unit id="7c194080446ee6901fd17a8b8648534ffe98b123">
2638 <source>Comment cannot be more than 3000 characters long.</source>
2639 <target>評論不能多於 3000 個字元。</target>
2640 <context-group name="null">
2641 <context context-type="linenumber">1</context>
2642 </context-group>
2643 </trans-unit>
2644 <trans-unit id="cdc51eaeab88683610a28af8645cf91d136b39e1">
2645 <source>Video name is required.</source>
2646 <target>影片名稱為必填。</target>
2647 <context-group name="null">
2648 <context context-type="linenumber">1</context>
2649 </context-group>
2650 </trans-unit>
2651 <trans-unit id="c27cc734f76efd221663921dd0898ea7c8bcbb5c">
2652 <source>Video name must be at least 3 characters long.</source>
2653 <target>影片名稱必須至少 3 個字元長。</target>
2654 <context-group name="null">
2655 <context context-type="linenumber">1</context>
2656 </context-group>
2657 </trans-unit>
2658 <trans-unit id="0320d0f7f8eec2341e27ca53d7875217a3d99695">
2659 <source>Video name cannot be more than 120 characters long.</source>
2660 <target>影片名稱不能多於 120 個字元長。</target>
2661 <context-group name="null">
2662 <context context-type="linenumber">1</context>
2663 </context-group>
2664 </trans-unit>
2665 <trans-unit id="a627c58cf1849d7d838696e7f36c1bae1a8b31a4">
2666 <source>Video privacy is required.</source>
2667 <target>影片隱私為必填。</target>
2668 <context-group name="null">
2669 <context context-type="linenumber">1</context>
2670 </context-group>
2671 </trans-unit>
2672 <trans-unit id="97afb789c1ab09074495d49aaadb92a1c3e71a16">
2673 <source>Video channel is required.</source>
2674 <target>影片頻道為必填。</target>
2675 <context-group name="null">
2676 <context context-type="linenumber">1</context>
2677 </context-group>
2678 </trans-unit>
2679 <trans-unit id="af5e2d5f3ac817c735fb7ff9ca16322789f66fef">
2680 <source>Video description must be at least 3 characters long.</source>
2681 <target>影片描述必須至少 3 個字元長。</target>
2682 <context-group name="null">
2683 <context context-type="linenumber">1</context>
2684 </context-group>
2685 </trans-unit>
2686 <trans-unit id="ce28a9403c2d7e5da2e59af27118f8b6d109e906">
2687 <source>Video description cannot be more than 10000 characters long.</source>
2688 <target>影片描述不能多於 10000 個字元。</target>
2689 <context-group name="null">
2690 <context context-type="linenumber">1</context>
2691 </context-group>
2692 </trans-unit>
2693 <trans-unit id="f1cffdc2e156716cd9880201d65ba457d11464f8">
2694 <source>A tag should be more than 2 characters long.</source>
2695 <target>標籤應該至少 2 個字元長。</target>
2696 <context-group name="null">
2697 <context context-type="linenumber">1</context>
2698 </context-group>
2699 </trans-unit>
2700 <trans-unit id="34a0811f9a2a7366cc9efcdad52ea59b105326ea">
2701 <source>A tag should be less than 30 characters long.</source>
2702 <target>標籤應該少於 30 個字元。</target>
2703 <context-group name="null">
2704 <context context-type="linenumber">1</context>
2705 </context-group>
2706 </trans-unit>
2707 <trans-unit id="665092574f9af9fec262f8349b67b14192391ae6">
2708 <source>Video support must be at least 3 characters long.</source>
2709 <target>影片支援必須至少 3 個字元長。</target>
2710 <context-group name="null">
2711 <context context-type="linenumber">1</context>
2712 </context-group>
2713 </trans-unit>
2714 <trans-unit id="e61f1c05121fa5effa6ccddf5be6dcf1c822ff4b">
2715 <source>Video support cannot be more than 500 characters long.</source>
2716 <target>影片支援不能多於 500 個字元長。</target>
2717 <context-group name="null">
2718 <context context-type="linenumber">1</context>
2719 </context-group>
2720 </trans-unit>
2721 <trans-unit id="453413bf387dea681958871319bab489dd5e6ec0">
2722 <source>A date is required to schedule video update.</source>
2723 <target>日期為排定影片更新必填。</target>
2724 <context-group name="null">
2725 <context context-type="linenumber">1</context>
2726 </context-group>
2727 </trans-unit>
2728 <trans-unit id="0bf41abaa85526711f7952b4600e4044bc7f04a4">
2729 <source>All unsaved data will be lost, are you sure you want to leave this page?</source>
2730 <target>所有未儲存的資料都將會遺失,您確定您想要離開此頁面嗎?</target>
2731 <context-group name="null">
2732 <context context-type="linenumber">1</context>
2733 </context-group>
2734 </trans-unit>
2735 <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01">
2736 <source>Warning</source>
2737 <target>警告</target>
2738 <context-group name="null">
2739 <context context-type="linenumber">1</context>
2740 </context-group>
2741 </trans-unit>
2742 <trans-unit id="8339364b054610983b7f2334bb807fff7613bddf">
2743 <source>Sunday</source>
2744 <target>星期天</target>
2745 <context-group name="null">
2746 <context context-type="linenumber">1</context>
2747 </context-group>
2748 </trans-unit>
2749 <trans-unit id="a43c57a7cbebf57eb33a2eae5e994c91d9887596">
2750 <source>Monday</source>
2751 <target>星期一</target>
2752 <context-group name="null">
2753 <context context-type="linenumber">1</context>
2754 </context-group>
2755 </trans-unit>
2756 <trans-unit id="48a2a35957ce394eb2c59ae35c99642360af70ee">
2757 <source>Tuesday</source>
2758 <target>星期二</target>
2759 <context-group name="null">
2760 <context context-type="linenumber">1</context>
2761 </context-group>
2762 </trans-unit>
2763 <trans-unit id="b0af441f9ba8b82952b9ec10fb8c62e8fec67df9">
2764 <source>Wednesday</source>
2765 <target>星期三</target>
2766 <context-group name="null">
2767 <context context-type="linenumber">1</context>
2768 </context-group>
2769 </trans-unit>
2770 <trans-unit id="55c583b99c809818ec27df065ccf05357a6ac10b">
2771 <source>Thursday</source>
2772 <target>星期四</target>
2773 <context-group name="null">
2774 <context context-type="linenumber">1</context>
2775 </context-group>
2776 </trans-unit>
2777 <trans-unit id="e91b54925dc5f490753f60f53ef6f8b4609e6215">
2778 <source>Friday</source>
2779 <target>星期五</target>
2780 <context-group name="null">
2781 <context context-type="linenumber">1</context>
2782 </context-group>
2783 </trans-unit>
2784 <trans-unit id="c0d2dd391a3eca8e841a5d0e035cd268280eb68e">
2785 <source>Saturday</source>
2786 <target>星期六</target>
2787 <context-group name="null">
2788 <context context-type="linenumber">1</context>
2789 </context-group>
2790 </trans-unit>
2791 <trans-unit id="6549890cd0d6b59fb0e1aa383b00483a68a55eef">
2792 <source>Sun</source>
2793 <target>Sun</target>
2794 <context-group name="null">
2795 <context context-type="linenumber">1</context>
2796 </context-group>
2797 </trans-unit>
2798 <trans-unit id="3382aa5d7f520e197fb59a4995fe1beffca2d0ff">
2799 <source>Mon</source>
2800 <target>Mon</target>
2801 <context-group name="null">
2802 <context context-type="linenumber">1</context>
2803 </context-group>
2804 </trans-unit>
2805 <trans-unit id="f883ec926274974df0fc46c037cbffd6a863ebc9">
2806 <source>Tue</source>
2807 <target>Tue</target>
2808 <context-group name="null">
2809 <context context-type="linenumber">1</context>
2810 </context-group>
2811 </trans-unit>
2812 <trans-unit id="242b4f4b5651e24f9a9007ef153a57981e4b989d">
2813 <source>Wed</source>
2814 <target>Wed</target>
2815 <context-group name="null">
2816 <context context-type="linenumber">1</context>
2817 </context-group>
2818 </trans-unit>
2819 <trans-unit id="5a2c39d56b8f00a6a4670a63b53caacbda953be6">
2820 <source>Thu</source>
2821 <target>Thu</target>
2822 <context-group name="null">
2823 <context context-type="linenumber">1</context>
2824 </context-group>
2825 </trans-unit>
2826 <trans-unit id="4cdf23d523a0e52e0dec9cd650ffd9bd6952792c">
2827 <source>Fri</source>
2828 <target>Fri</target>
2829 <context-group name="null">
2830 <context context-type="linenumber">1</context>
2831 </context-group>
2832 </trans-unit>
2833 <trans-unit id="1283d165a942d7f4c469ba34f99dbb9e927d0261">
2834 <source>Sat</source>
2835 <target>Sat</target>
2836 <context-group name="null">
2837 <context context-type="linenumber">1</context>
2838 </context-group>
2839 </trans-unit>
2840 <trans-unit id="2fba8448ff13105c57665a9a6ffcfe9615d855dd">
2841 <source>Su</source>
2842 <target>Su</target>
2843 <context-group name="null">
2844 <context context-type="linenumber">1</context>
2845 </context-group>
2846 </trans-unit>
2847 <trans-unit id="388144af7ac7651d2615b9be0e84f43ae71d9fb3">
2848 <source>Mo</source>
2849 <target>Mo</target>
2850 <context-group name="null">
2851 <context context-type="linenumber">1</context>
2852 </context-group>
2853 </trans-unit>
2854 <trans-unit id="d96313e42b5f0751ce2676a31d309b4d322ab462">
2855 <source>Tu</source>
2856 <target>Tu</target>
2857 <context-group name="null">
2858 <context context-type="linenumber">1</context>
2859 </context-group>
2860 </trans-unit>
2861 <trans-unit id="06cc3d39f78c0615b707cef39cd4875599611fef">
2862 <source>We</source>
2863 <target>We</target>
2864 <context-group name="null">
2865 <context context-type="linenumber">1</context>
2866 </context-group>
2867 </trans-unit>
2868 <trans-unit id="790894436cca9d675d59be9a8aafd58acccde2cd">
2869 <source>Th</source>
2870 <target>Th</target>
2871 <context-group name="null">
2872 <context context-type="linenumber">1</context>
2873 </context-group>
2874 </trans-unit>
2875 <trans-unit id="42dfe37169f8471367c31489155229bbe1747ea5">
2876 <source>Fr</source>
2877 <target>Fr</target>
2878 <context-group name="null">
2879 <context context-type="linenumber">1</context>
2880 </context-group>
2881 </trans-unit>
2882 <trans-unit id="1b64ea3e04ceeb512e8974eb0019dee4f211c7a0">
2883 <source>Sa</source>
2884 <target>Sa</target>
2885 <context-group name="null">
2886 <context context-type="linenumber">1</context>
2887 </context-group>
2888 </trans-unit>
2889 <trans-unit id="e7815f1c4a6d3cc157a16407a48865023cc35ec0">
2890 <source>January</source>
2891 <target>一月</target>
2892 <context-group name="null">
2893 <context context-type="linenumber">1</context>
2894 </context-group>
2895 </trans-unit>
2896 <trans-unit id="0393a96b58df82af39a2ec83deec624749e42036">
2897 <source>February</source>
2898 <target>二月</target>
2899 <context-group name="null">
2900 <context context-type="linenumber">1</context>
2901 </context-group>
2902 </trans-unit>
2903 <trans-unit id="ea41ee3743ec5bdbbf863ab793bbdd6e6d9af96e">
2904 <source>March</source>
2905 <target>三月</target>
2906 <context-group name="null">
2907 <context context-type="linenumber">1</context>
2908 </context-group>
2909 </trans-unit>
2910 <trans-unit id="b87ee784d9e93b5557aca9bdc9464dbd4328920a">
2911 <source>April</source>
2912 <target>四月</target>
2913 <context-group name="null">
2914 <context context-type="linenumber">1</context>
2915 </context-group>
2916 </trans-unit>
2917 <trans-unit id="862da1034ac2707cc44123ed963b2f42109b6b3e">
2918 <source>May</source>
2919 <target>五月</target>
2920 <context-group name="null">
2921 <context context-type="linenumber">1</context>
2922 </context-group>
2923 </trans-unit>
2924 <trans-unit id="2f234249d4c3c39e27c0f05d4a6b73a7959caeb2">
2925 <source>June</source>
2926 <target>六月</target>
2927 <context-group name="null">
2928 <context context-type="linenumber">1</context>
2929 </context-group>
2930 </trans-unit>
2931 <trans-unit id="11447f95e83c8de675ab6c492150f88e4d9bd15e">
2932 <source>July</source>
2933 <target>七月</target>
2934 <context-group name="null">
2935 <context context-type="linenumber">1</context>
2936 </context-group>
2937 </trans-unit>
2938 <trans-unit id="ddd9a3d59a8db4e822e54e9473c05b571aca9829">
2939 <source>August</source>
2940 <target>八月</target>
2941 <context-group name="null">
2942 <context context-type="linenumber">1</context>
2943 </context-group>
2944 </trans-unit>
2945 <trans-unit id="e21dc41f9b3fdaf35ab6b2d9e2e5e8a926fb1938">
2946 <source>September</source>
2947 <target>九月</target>
2948 <context-group name="null">
2949 <context context-type="linenumber">1</context>
2950 </context-group>
2951 </trans-unit>
2952 <trans-unit id="71f49c502d13e22079a958a5532afa28dbe98b3b">
2953 <source>October</source>
2954 <target>十月</target>
2955 <context-group name="null">
2956 <context context-type="linenumber">1</context>
2957 </context-group>
2958 </trans-unit>
2959 <trans-unit id="64b5ce921faa5e3d277d6d528ddcfc8c2bfe9f52">
2960 <source>November</source>
2961 <target>十一月</target>
2962 <context-group name="null">
2963 <context context-type="linenumber">1</context>
2964 </context-group>
2965 </trans-unit>
2966 <trans-unit id="2006e2aabb31714ebc684dc382539649f690ed5c">
2967 <source>December</source>
2968 <target>十二月</target>
2969 <context-group name="null">
2970 <context context-type="linenumber">1</context>
2971 </context-group>
2972 </trans-unit>
2973 <trans-unit id="8270e687cfb5624b3f6fbb7991a2e916c96464b7">
2974 <source>Jan</source>
2975 <target>Jan</target>
2976 <context-group name="null">
2977 <context context-type="linenumber">1</context>
2978 </context-group>
2979 </trans-unit>
2980 <trans-unit id="23544170afbb981dd52750b641576841cf5dcf60">
2981 <source>Feb</source>
2982 <target>Feb</target>
2983 <context-group name="null">
2984 <context context-type="linenumber">1</context>
2985 </context-group>
2986 </trans-unit>
2987 <trans-unit id="1f14355742459b7d6a0126a1564e1c18f39f86e7">
2988 <source>Mar</source>
2989 <target>Mar</target>
2990 <context-group name="null">
2991 <context context-type="linenumber">1</context>
2992 </context-group>
2993 </trans-unit>
2994 <trans-unit id="964a5f032bc846d32806a4838580a4f81cf14463">
2995 <source>Apr</source>
2996 <target>Apr</target>
2997 <context-group name="null">
2998 <context context-type="linenumber">1</context>
2999 </context-group>
3000 </trans-unit>
3001 <trans-unit id="8f7274f606f71d9290ed01c5683092d701632d7f">
3002 <source>Jun</source>
3003 <target>Jun</target>
3004 <context-group name="null">
3005 <context context-type="linenumber">1</context>
3006 </context-group>
3007 </trans-unit>
3008 <trans-unit id="7c3d8318d6d8d9920ae0a80350616732c33a3211">
3009 <source>Jul</source>
3010 <target>Jul</target>
3011 <context-group name="null">
3012 <context context-type="linenumber">1</context>
3013 </context-group>
3014 </trans-unit>
3015 <trans-unit id="be1335ffd1c606321e2c020b638dd3c84b434212">
3016 <source>Aug</source>
3017 <target>Aug</target>
3018 <context-group name="null">
3019 <context context-type="linenumber">1</context>
3020 </context-group>
3021 </trans-unit>
3022 <trans-unit id="4f739d03be1c936c58978739c317d91566348204">
3023 <source>Sep</source>
3024 <target>Sep</target>
3025 <context-group name="null">
3026 <context context-type="linenumber">1</context>
3027 </context-group>
3028 </trans-unit>
3029 <trans-unit id="6607cacb987a588530a13de7018d959240d19153">
3030 <source>Oct</source>
3031 <target>Oct</target>
3032 <context-group name="null">
3033 <context context-type="linenumber">1</context>
3034 </context-group>
3035 </trans-unit>
3036 <trans-unit id="e597400ded12a366855615e18fcc8f9ac05b72e0">
3037 <source>Nov</source>
3038 <target>Nov</target>
3039 <context-group name="null">
3040 <context context-type="linenumber">1</context>
3041 </context-group>
3042 </trans-unit>
3043 <trans-unit id="adf2dfa2a9cb490d6a4a74510b7b0846b62d429e">
3044 <source>Dec</source>
3045 <target>Dec</target>
3046 <context-group name="null">
3047 <context context-type="linenumber">1</context>
3048 </context-group>
3049 </trans-unit>
3050 <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
3051 <source>Clear</source>
3052 <target>清除</target>
3053 <context-group name="null">
3054 <context context-type="linenumber">1</context>
3055 </context-group>
3056 </trans-unit>
3057 <trans-unit id="8fb519ba47ea7806beeacdcd44829d85a2aa0cc5">
3058 <source>yy-mm-dd </source>
3059 <target>yy-mm-dd </target>
3060 <context-group name="null">
3061 <context context-type="linenumber">1</context>
3062 </context-group>
3063 </trans-unit>
3064 <trans-unit id="0b2054a863319d2cf59867addd125b6717cae41d">
3065 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> years ago</source>
3066 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 年前</target>
3067 <context-group name="null">
3068 <context context-type="linenumber">1</context>
3069 </context-group>
3070 </trans-unit>
3071 <trans-unit id="e622d3813449fe36371ea258281059306819199d">
3072 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> months ago</source>
3073 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 個月前</target>
3074 <context-group name="null">
3075 <context context-type="linenumber">1</context>
3076 </context-group>
3077 </trans-unit>
3078 <trans-unit id="2f8a5a5f7efb521d7d89dc659ff65dd13cb7b17b">
3079 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> month ago</source>
3080 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 個月前</target>
3081 <context-group name="null">
3082 <context context-type="linenumber">1</context>
3083 </context-group>
3084 </trans-unit>
3085 <trans-unit id="1d1a46543a29096d3c6676be2d561380a0bc94e1">
3086 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> weeks ago</source>
3087 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 週前</target>
3088 <context-group name="null">
3089 <context context-type="linenumber">1</context>
3090 </context-group>
3091 </trans-unit>
3092 <trans-unit id="e1db0b98b6cdf817508195f3649c48475c32ae7e">
3093 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> week ago</source>
3094 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 週前</target>
3095 <context-group name="null">
3096 <context context-type="linenumber">1</context>
3097 </context-group>
3098 </trans-unit>
3099 <trans-unit id="a7654c3ece96e777527606f1c2870d6ee0b180f7">
3100 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> days ago</source>
3101 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 天前</target>
3102 <context-group name="null">
3103 <context context-type="linenumber">1</context>
3104 </context-group>
3105 </trans-unit>
3106 <trans-unit id="5b465235ae55091d32535e23dd180c407f1352d1">
3107 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> day ago</source>
3108 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 天前</target>
3109 <context-group name="null">
3110 <context context-type="linenumber">1</context>
3111 </context-group>
3112 </trans-unit>
3113 <trans-unit id="dc7addf53bd6405a9c746db6dfca665c33679a84">
3114 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hours ago</source>
3115 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 小時前</target>
3116 <context-group name="null">
3117 <context context-type="linenumber">1</context>
3118 </context-group>
3119 </trans-unit>
3120 <trans-unit id="d54a610250ed38efccf0e3afdd0004f6ad83ea8d">
3121 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> hour ago</source>
3122 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 小時前</target>
3123 <context-group name="null">
3124 <context context-type="linenumber">1</context>
3125 </context-group>
3126 </trans-unit>
3127 <trans-unit id="9704e5e3adce178c127ead05f7057d3fb827308a">
3128 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> min ago</source>
3129 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 分鐘前</target>
3130 <context-group name="null">
3131 <context context-type="linenumber">1</context>
3132 </context-group>
3133 </trans-unit>
3134 <trans-unit id="7a158a7555a44ea7eff9fa4988df9aa24d262ceb">
3135 <source><x id="INTERPOLATION" equiv-text="{{interval}}"/> sec ago</source>
3136 <target><x id="INTERPOLATION" equiv-text="{{interval}}"/> 秒前</target>
3137 <context-group name="null">
3138 <context context-type="linenumber">1</context>
3139 </context-group>
3140 </trans-unit>
3141 <trans-unit id="457f161d3ca706b8de263b0cd58e493d54e7d4c5">
3142 <source><x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> compatible that supports:</source>
3143 <target><x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>Markdown<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> 相容支援:</target>
3144 <context-group name="null">
3145 <context context-type="linenumber">1</context>
3146 </context-group>
3147 </trans-unit>
3148 <trans-unit id="ab4426b60f13c00b61d6b714d390dc629f314980">
3149 <source>Emphasis</source>
3150 <target>強調</target>
3151 <context-group name="null">
3152 <context context-type="linenumber">1</context>
3153 </context-group>
3154 </trans-unit>
3155 <trans-unit id="dc60677d5a906e69f38a5cf9da7f2eb03931bea0">
3156 <source>Links</source>
3157 <target>連結</target>
3158 <context-group name="null">
3159 <context context-type="linenumber">1</context>
3160 </context-group>
3161 </trans-unit>
3162 <trans-unit id="80220239e07f36ea8d5f10118dc52ce4b13bc15a">
3163 <source>New lines</source>
3164 <target>新行</target>
3165 <context-group name="null">
3166 <context context-type="linenumber">1</context>
3167 </context-group>
3168 </trans-unit>
3169 <trans-unit id="b15e7bec5c7833d2d9634946ccbed68967b1bee1">
3170 <source>Lists</source>
3171 <target>清單</target>
3172 <context-group name="null">
3173 <context context-type="linenumber">1</context>
3174 </context-group>
3175 </trans-unit>
3176 <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866">
3177 <source>Images</source>
3178 <target>圖片</target>
3179 <context-group name="null">
3180 <context context-type="linenumber">1</context>
3181 </context-group>
3182 </trans-unit>
3183 <trans-unit id="0c0f5bbcd2386018ec057877f9d3c5c2c9880cac">
3184 <source>Request is too large for the server. Please contact you administrator if you want to increase the limit size.</source>
3185 <target>請求對伺服器來說太大。若您想要增加限制大小,請聯絡您的管理員。</target>
3186 <context-group name="null">
3187 <context context-type="linenumber">1</context>
3188 </context-group>
3189 </trans-unit>
3190 <trans-unit id="58546fd4d14b2d9635ce3d28c216ac68587bb25b">
3191 <source>Too many attempts, please try again after <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> minutes.</source>
3192 <target>太多次嘗試,請在 <x id="INTERPOLATION" equiv-text="{{minutesLeft}}"/> 分鐘後再試。</target>
3193 <context-group name="null">
3194 <context context-type="linenumber">1</context>
3195 </context-group>
3196 </trans-unit>
3197 <trans-unit id="ab783a52f2df9ff7a20139cab0da6d0764f3cc5d">
3198 <source>Too many attempts, please try again later.</source>
3199 <target>太多次嘗試,請稍後再試。</target>
3200 <context-group name="null">
3201 <context context-type="linenumber">1</context>
3202 </context-group>
3203 </trans-unit>
3204 <trans-unit id="0f286a597f0053c3578a52e044769c204ee516fc">
3205 <source>Server error. Please retry later.</source>
3206 <target>伺服器錯誤。請稍後重試。</target>
3207 <context-group name="null">
3208 <context context-type="linenumber">1</context>
3209 </context-group>
3210 </trans-unit>
3211 <trans-unit id="20deec13d8d4ff199aa04318818ca44dab0585be">
3212 <source>Registration for <x id="INTERPOLATION" equiv-text="{{username}}"/> complete.</source>
3213 <target>註冊 <x id="INTERPOLATION" equiv-text="{{username}}"/> 完成。</target>
3214 <context-group name="null">
3215 <context context-type="linenumber">1</context>
3216 </context-group>
3217 </trans-unit>
3218 <trans-unit id="7296e9f7cc4956b6d57c541728b0826e76d108ba">
3219 <source>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></source>
3220 <target>~ <x id="INTERPOLATION" equiv-text="{{minutes}}"/> <x id="ICU" equiv-text="{minutes, plural, =1 {...} other {...}}"/></target>
3221 <context-group name="null">
3222 <context context-type="linenumber">1</context>
3223 </context-group>
3224 </trans-unit>
3225 <trans-unit id="cf9ddbb55b25178660e09346209aedc10108aa24">
3226 <source>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</source>
3227 <target>{VAR_PLURAL, plural, =1 {minute} other {minutes} }</target>
3228 <context-group name="null">
3229 <context context-type="linenumber">1</context>
3230 </context-group>
3231 </trans-unit>
3232 <trans-unit id="10ffa5c3dbcee491d66f80d8d4dce3e119a6ec86">
3233 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of full HD videos</source>
3234 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> 的 Full HD 影片</target>
3235 <context-group name="null">
3236 <context context-type="linenumber">1</context>
3237 </context-group>
3238 </trans-unit>
3239 <trans-unit id="344ddae9f45b344e98e7b28cd5e33243982700f8">
3240 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of HD videos</source>
3241 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> 的 HD 影片</target>
3242 <context-group name="null">
3243 <context context-type="linenumber">1</context>
3244 </context-group>
3245 </trans-unit>
3246 <trans-unit id="435c012df6dd990a1ccb7ee73dd79c488bde28b5">
3247 <source><x id="INTERPOLATION" equiv-text="{{seconds}}"/> of average quality videos</source>
3248 <target><x id="INTERPOLATION" equiv-text="{{seconds}}"/> 的平均畫質影片</target>
3249 <context-group name="null">
3250 <context context-type="linenumber">1</context>
3251 </context-group>
3252 </trans-unit>
3253 <trans-unit id="1e876f14d96cdf3b334c080fe795a2e0ab53aa3a">
3254 <source>Your video was uploaded in your account and is private.</source>
3255 <target>您的影片已上傳到您的帳號,且為個人影片。</target>
3256 <context-group name="null">
3257 <context context-type="linenumber">1</context>
3258 </context-group>
3259 </trans-unit>
3260 <trans-unit id="24840228f2826b66252cfcaab9820b1c7e0da264">
3261 <source>But associated data (tags, description...) will be lost, are you sure you want to leave this page?</source>
3262 <target>但相關資料(標籤、描述等)將會遺失,您確定您想要離開此頁面嗎?</target>
3263 <context-group name="null">
3264 <context context-type="linenumber">1</context>
3265 </context-group>
3266 </trans-unit>
3267 <trans-unit id="5af84926d631326e548573ebf0f6dff07845aeb4">
3268 <source>Your video is not uploaded yet, are you sure you want to leave this page?</source>
3269 <target>您的影片尚未上傳,您確定您想要離開此頁面嗎?</target>
3270 <context-group name="null">
3271 <context context-type="linenumber">1</context>
3272 </context-group>
3273 </trans-unit>
3274 <trans-unit id="321e4419a943044e674beb55b8039f42a9761ca5">
3275 <source>Info</source>
3276 <target>資訊</target>
3277 <context-group name="null">
3278 <context context-type="linenumber">1</context>
3279 </context-group>
3280 </trans-unit>
3281 <trans-unit id="c5cb19aeb6447deda40cc1227ceca1359ab955e9">
3282 <source>Upload cancelled</source>
3283 <target>已取消上傳</target>
3284 <context-group name="null">
3285 <context context-type="linenumber">1</context>
3286 </context-group>
3287 </trans-unit>
3288 <trans-unit id="d31d39e8ee9b2f20bffb3468ee062eaa5409c59f">
3289 <source>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 }}"/>)</source>
3290 <target>此影片大小超過了您的影片配額(影片大小:<x id="INTERPOLATION" equiv-text="{{ videoSize }}"/>,已用:<x id="INTERPOLATION_1" equiv-text="{{ videoQuotaUsed }}"/>,配額:<x id="INTERPOLATION_2" equiv-text="{{ videoQuota }}"/>)</target>
3291 <context-group name="null">
3292 <context context-type="linenumber">1</context>
3293 </context-group>
3294 </trans-unit>
3295 <trans-unit id="972fc644f847cf84e4732ec012915c4cdaf865ce">
3296 <source>Video published.</source>
3297 <target>影片已發佈。</target>
3298 <context-group name="null">
3299 <context context-type="linenumber">1</context>
3300 </context-group>
3301 </trans-unit>
3302 <trans-unit id="757e9c083c8f3d578bd74f055cc337c72417e187">
3303 <source>Video updated.</source>
3304 <target>影片已更新。</target>
3305 <context-group name="null">
3306 <context context-type="linenumber">1</context>
3307 </context-group>
3308 </trans-unit>
3309 <trans-unit id="aeb61b334cac080733c3e03766165a346bbf42fd">
3310 <source> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> replies will be deleted too.</source>
3311 <target> <x id="INTERPOLATION" equiv-text="{{totalReplies}}"/> 個回覆也將會被刪除。</target>
3312 <context-group name="null">
3313 <context context-type="linenumber">1</context>
3314 </context-group>
3315 </trans-unit>
3316 <trans-unit id="fa2601e52cbf5725a13d33fe14458823b882ea50">
3317 <source>Video reported.</source>
3318 <target>影片已回報。</target>
3319 <context-group name="null">
3320 <context context-type="linenumber">1</context>
3321 </context-group>
3322 </trans-unit>
3323 <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5">
3324 <source>Copied</source>
3325 <target>已複製</target>
3326 <context-group name="null">
3327 <context context-type="linenumber">1</context>
3328 </context-group>
3329 </trans-unit>
3330 <trans-unit id="23b2c2f4dd69e29c3bff00469e259dcb01de5633">
3331 <source>Do you really want to blacklist this video?</source>
3332 <target>您真的想要將此影片加入黑名單嗎?</target>
3333 <context-group name="null">
3334 <context context-type="linenumber">1</context>
3335 </context-group>
3336 </trans-unit>
3337 <trans-unit id="cafd8ec6020e69f241a107b1cb7081bd9e773d4e">
3338 <source>Video <x id="INTERPOLATION" equiv-text="{{videoName}}"/> had been blacklisted.</source>
3339 <target>影片 <x id="INTERPOLATION" equiv-text="{{videoName}}"/> 已被加入黑名單。</target>
3340 <context-group name="null">
3341 <context context-type="linenumber">1</context>
3342 </context-group>
3343 </trans-unit>
3344 <trans-unit id="f1abd89c9280323209e939fa9c30f6e5cda20c95">
3345 <source>Do you really want to delete this video?</source>
3346 <target>您真的想要刪除此影片嗎?</target>
3347 <context-group name="null">
3348 <context context-type="linenumber">1</context>
3349 </context-group>
3350 </trans-unit>
3351 <trans-unit id="d5a4811e15319ad9354e1b62e9ca0131192b489e">
3352 <source><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> dislikes</source>
3353 <target><x id="INTERPOLATION" equiv-text="{{likesNumber}}"/> likes / <x id="INTERPOLATION_1" equiv-text="{{dislikesNumber}}"/> 個不喜歡</target>
3354 <context-group name="null">
3355 <context context-type="linenumber">1</context>
3356 </context-group>
3357 </trans-unit>
3358 <trans-unit id="ed013c2c29216501c688e9cb5f3a1c9fd9147b71">
3359 <source>This video contains mature or explicit content. Are you sure you want to watch it?</source>
3360 <target>這部影片包含成人或裸露內容。您確定您想要觀看嗎?</target>
3361 <context-group name="null">
3362 <context context-type="linenumber">1</context>
3363 </context-group>
3364 </trans-unit>
3365 <trans-unit id="5ba3d522e4146eefcbd5c222247c1e2423d27cd8">
3366 <source>Mature or explicit content</source>
3367 <target>成人或裸露內容</target>
3368 <context-group name="null">
3369 <context context-type="linenumber">1</context>
3370 </context-group>
3371 </trans-unit>
624 </body> 3372 </body>
625 </file></xliff> \ No newline at end of file 3373 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/iso639_de_DE.xml b/client/src/locale/target/iso639_de_DE.xml
deleted file mode 100644
index 42add6b6c..000000000
--- a/client/src/locale/target/iso639_de_DE.xml
+++ /dev/null
@@ -1,759 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="de-DE">
5 <body>
6 <trans-unit id="Afar">
7 <source>Afar</source>
8 <target>Afar</target>
9 </trans-unit>
10 <trans-unit id="Abkhazian">
11 <source>Abkhazian</source>
12 <target>Abchasisch</target>
13 </trans-unit>
14 <trans-unit id="Afrikaans">
15 <source>Afrikaans</source>
16 <target>Afrikaans</target>
17 </trans-unit>
18 <trans-unit id="Akan">
19 <source>Akan</source>
20 <target>Akan</target>
21 </trans-unit>
22 <trans-unit id="Amharic">
23 <source>Amharic</source>
24 <target>Amharisch</target>
25 </trans-unit>
26 <trans-unit id="Arabic">
27 <source>Arabic</source>
28 <target>Arabisch</target>
29 </trans-unit>
30 <trans-unit id="Aragonese">
31 <source>Aragonese</source>
32 <target>Aragonesisch</target>
33 </trans-unit>
34 <trans-unit id="American Sign Language">
35 <source>American Sign Language</source>
36 <target>Amerikanische Gebärdensprache</target>
37 </trans-unit>
38 <trans-unit id="Assamese">
39 <source>Assamese</source>
40 <target>Assamesisch</target>
41 </trans-unit>
42 <trans-unit id="Avaric">
43 <source>Avaric</source>
44 <target>Awarisch</target>
45 </trans-unit>
46 <trans-unit id="Aymara">
47 <source>Aymara</source>
48 <target>Aymara</target>
49 </trans-unit>
50 <trans-unit id="Azerbaijani">
51 <source>Azerbaijani</source>
52 <target>Aserbeidschanisch</target>
53 </trans-unit>
54 <trans-unit id="Bashkir">
55 <source>Bashkir</source>
56 <target>Baschkirisch</target>
57 </trans-unit>
58 <trans-unit id="Bambara">
59 <source>Bambara</source>
60 <target>Bambara</target>
61 </trans-unit>
62 <trans-unit id="Belarusian">
63 <source>Belarusian</source>
64 <target>Weißrussisch</target>
65 </trans-unit>
66 <trans-unit id="Bengali">
67 <source>Bengali</source>
68 <target>Bengali</target>
69 </trans-unit>
70 <trans-unit id="British Sign Language">
71 <source>British Sign Language</source>
72 <target>Britische Gebärdensprache</target>
73 </trans-unit>
74 <trans-unit id="Bislama">
75 <source>Bislama</source>
76 <target>Beach-la-mar</target>
77 </trans-unit>
78 <trans-unit id="Tibetan">
79 <source>Tibetan</source>
80 <target>Tibetisch</target>
81 </trans-unit>
82 <trans-unit id="Bosnian">
83 <source>Bosnian</source>
84 <target>Bosnisch</target>
85 </trans-unit>
86 <trans-unit id="Breton">
87 <source>Breton</source>
88 <target>Bretonisch</target>
89 </trans-unit>
90 <trans-unit id="Bulgarian">
91 <source>Bulgarian</source>
92 <target>Bulgarisch</target>
93 </trans-unit>
94 <trans-unit id="Brazilian Sign Language">
95 <source>Brazilian Sign Language</source>
96 <target>Brasilianische Gebärdensprache</target>
97 </trans-unit>
98 <trans-unit id="Catalan">
99 <source>Catalan</source>
100 <target>Katalanisch</target>
101 </trans-unit>
102 <trans-unit id="Czech">
103 <source>Czech</source>
104 <target>Tschechisch</target>
105 </trans-unit>
106 <trans-unit id="Chamorro">
107 <source>Chamorro</source>
108 <target>Chamorro</target>
109 </trans-unit>
110 <trans-unit id="Chechen">
111 <source>Chechen</source>
112 <target>Tschetschenisch</target>
113 </trans-unit>
114 <trans-unit id="Chuvash">
115 <source>Chuvash</source>
116 <target>Tschuwaschisch</target>
117 </trans-unit>
118 <trans-unit id="Cornish">
119 <source>Cornish</source>
120 <target>Kornisch</target>
121 </trans-unit>
122 <trans-unit id="Corsican">
123 <source>Corsican</source>
124 <target>Korsisch</target>
125 </trans-unit>
126 <trans-unit id="Cree">
127 <source>Cree</source>
128 <target>Cree</target>
129 </trans-unit>
130 <trans-unit id="Czech Sign Language">
131 <source>Czech Sign Language</source>
132 <target>Tschechische Gebärdensprache</target>
133 </trans-unit>
134 <trans-unit id="Chinese Sign Language">
135 <source>Chinese Sign Language</source>
136 <target>Chinesiche Gebärdensprache</target>
137 </trans-unit>
138 <trans-unit id="Welsh">
139 <source>Welsh</source>
140 <target>Kymrisch</target>
141 </trans-unit>
142 <trans-unit id="Danish">
143 <source>Danish</source>
144 <target>Dänisch</target>
145 </trans-unit>
146 <trans-unit id="German">
147 <source>German</source>
148 <target>Deutsch</target>
149 </trans-unit>
150 <trans-unit id="Dhivehi">
151 <source>Dhivehi</source>
152 <target>Maledivisch</target>
153 </trans-unit>
154 <trans-unit id="Danish Sign Language">
155 <source>Danish Sign Language</source>
156 <target>Dänische Gebärdensprache</target>
157 </trans-unit>
158 <trans-unit id="Dzongkha">
159 <source>Dzongkha</source>
160 <target>Dzongkha</target>
161 </trans-unit>
162 <trans-unit id="Modern Greek (1453-)">
163 <source>Modern Greek (1453-)</source>
164 <target>Neugriechisch</target>
165 </trans-unit>
166 <trans-unit id="English">
167 <source>English</source>
168 <target>Englisch</target>
169 </trans-unit>
170 <trans-unit id="Estonian">
171 <source>Estonian</source>
172 <target>Estnisch</target>
173 </trans-unit>
174 <trans-unit id="Basque">
175 <source>Basque</source>
176 <target>Baskisch</target>
177 </trans-unit>
178 <trans-unit id="Ewe">
179 <source>Ewe</source>
180 <target>Ewe</target>
181 </trans-unit>
182 <trans-unit id="Faroese">
183 <source>Faroese</source>
184 <target>Färöisch</target>
185 </trans-unit>
186 <trans-unit id="Persian">
187 <source>Persian</source>
188 <target>Persisch</target>
189 </trans-unit>
190 <trans-unit id="Fijian">
191 <source>Fijian</source>
192 <target>Fidschi</target>
193 </trans-unit>
194 <trans-unit id="Finnish">
195 <source>Finnish</source>
196 <target>Finnisch</target>
197 </trans-unit>
198 <trans-unit id="French">
199 <source>French</source>
200 <target>Französisch</target>
201 </trans-unit>
202 <trans-unit id="Western Frisian">
203 <source>Western Frisian</source>
204 <target>Friesisch</target>
205 </trans-unit>
206 <trans-unit id="French Sign Language">
207 <source>French Sign Language</source>
208 <target>Französiche Gebärdensprache</target>
209 </trans-unit>
210 <trans-unit id="Fulah">
211 <source>Fulah</source>
212 <target>Ful</target>
213 </trans-unit>
214 <trans-unit id="Scottish Gaelic">
215 <source>Scottish Gaelic</source>
216 <target>Gälisch-Schottisch</target>
217 </trans-unit>
218 <trans-unit id="Irish">
219 <source>Irish</source>
220 <target>Irisch</target>
221 </trans-unit>
222 <trans-unit id="Galician">
223 <source>Galician</source>
224 <target>Galicisch</target>
225 </trans-unit>
226 <trans-unit id="Manx">
227 <source>Manx</source>
228 <target>Manx</target>
229 </trans-unit>
230 <trans-unit id="Guarani">
231 <source>Guarani</source>
232 <target>Guaraní</target>
233 </trans-unit>
234 <trans-unit id="German Sign Language">
235 <source>German Sign Language</source>
236 <target>Deutsche Gebärdensprache</target>
237 </trans-unit>
238 <trans-unit id="Gujarati">
239 <source>Gujarati</source>
240 <target>Gujarati</target>
241 </trans-unit>
242 <trans-unit id="Haitian">
243 <source>Haitian</source>
244 <target>Haïtien (Haiti-Kreolisch)</target>
245 </trans-unit>
246 <trans-unit id="Hausa">
247 <source>Hausa</source>
248 <target>Hausa</target>
249 </trans-unit>
250 <trans-unit id="Serbo-Croatian">
251 <source>Serbo-Croatian</source>
252 <target>Serbokroatisch</target>
253 </trans-unit>
254 <trans-unit id="Hebrew">
255 <source>Hebrew</source>
256 <target>Hebräisch</target>
257 </trans-unit>
258 <trans-unit id="Herero">
259 <source>Herero</source>
260 <target>Otjiherero</target>
261 </trans-unit>
262 <trans-unit id="Hindi">
263 <source>Hindi</source>
264 <target>Hindi</target>
265 </trans-unit>
266 <trans-unit id="Hiri Motu">
267 <source>Hiri Motu</source>
268 <target>Hiri-Motu</target>
269 </trans-unit>
270 <trans-unit id="Croatian">
271 <source>Croatian</source>
272 <target>Kroatisch</target>
273 </trans-unit>
274 <trans-unit id="Hungarian">
275 <source>Hungarian</source>
276 <target>Ungarisch</target>
277 </trans-unit>
278 <trans-unit id="Armenian">
279 <source>Armenian</source>
280 <target>Armenisch</target>
281 </trans-unit>
282 <trans-unit id="Igbo">
283 <source>Igbo</source>
284 <target>Igbo</target>
285 </trans-unit>
286 <trans-unit id="Sichuan Yi">
287 <source>Sichuan Yi</source>
288 <target>Yi</target>
289 </trans-unit>
290 <trans-unit id="Inuktitut">
291 <source>Inuktitut</source>
292 <target>Inuktitut</target>
293 </trans-unit>
294 <trans-unit id="Indonesian">
295 <source>Indonesian</source>
296 <target>Bahasa Indonesia</target>
297 </trans-unit>
298 <trans-unit id="Inupiaq">
299 <source>Inupiaq</source>
300 <target>Inupik</target>
301 </trans-unit>
302 <trans-unit id="Icelandic">
303 <source>Icelandic</source>
304 <target>Isländisch</target>
305 </trans-unit>
306 <trans-unit id="Italian">
307 <source>Italian</source>
308 <target>Italienisch</target>
309 </trans-unit>
310 <trans-unit id="Javanese">
311 <source>Javanese</source>
312 <target>Javanisch</target>
313 </trans-unit>
314 <trans-unit id="Japanese">
315 <source>Japanese</source>
316 <target>Japanisch</target>
317 </trans-unit>
318 <trans-unit id="Japanese Sign Language">
319 <source>Japanese Sign Language</source>
320 <target>Japanische Gebärdensprache</target>
321 </trans-unit>
322 <trans-unit id="Kalaallisut">
323 <source>Kalaallisut</source>
324 <target>Grönländisch</target>
325 </trans-unit>
326 <trans-unit id="Kannada">
327 <source>Kannada</source>
328 <target>Kannada</target>
329 </trans-unit>
330 <trans-unit id="Kashmiri">
331 <source>Kashmiri</source>
332 <target>Kaschmiri</target>
333 </trans-unit>
334 <trans-unit id="Georgian">
335 <source>Georgian</source>
336 <target>Georgisch</target>
337 </trans-unit>
338 <trans-unit id="Kanuri">
339 <source>Kanuri</source>
340 <target>Kanuri</target>
341 </trans-unit>
342 <trans-unit id="Kazakh">
343 <source>Kazakh</source>
344 <target>Kasachisch</target>
345 </trans-unit>
346 <trans-unit id="Khmer">
347 <source>Khmer</source>
348 <target>Kambodschanisch</target>
349 </trans-unit>
350 <trans-unit id="Kikuyu">
351 <source>Kikuyu</source>
352 <target>Kikuyu</target>
353 </trans-unit>
354 <trans-unit id="Kinyarwanda">
355 <source>Kinyarwanda</source>
356 <target>Kinyarwanda</target>
357 </trans-unit>
358 <trans-unit id="Kirghiz">
359 <source>Kirghiz</source>
360 <target>Kirgisisch</target>
361 </trans-unit>
362 <trans-unit id="Komi">
363 <source>Komi</source>
364 <target>Komi</target>
365 </trans-unit>
366 <trans-unit id="Kongo">
367 <source>Kongo</source>
368 <target>Kikongo</target>
369 </trans-unit>
370 <trans-unit id="Korean">
371 <source>Korean</source>
372 <target>Koreanisch</target>
373 </trans-unit>
374 <trans-unit id="Kuanyama">
375 <source>Kuanyama</source>
376 <target>Kuanyama</target>
377 </trans-unit>
378 <trans-unit id="Kurdish">
379 <source>Kurdish</source>
380 <target>Kurdisch</target>
381 </trans-unit>
382 <trans-unit id="Lao">
383 <source>Lao</source>
384 <target>Laotisch</target>
385 </trans-unit>
386 <trans-unit id="Latvian">
387 <source>Latvian</source>
388 <target>Lettisch</target>
389 </trans-unit>
390 <trans-unit id="Limburgan">
391 <source>Limburgan</source>
392 <target>Limburgisch</target>
393 </trans-unit>
394 <trans-unit id="Lingala">
395 <source>Lingala</source>
396 <target>Lingala</target>
397 </trans-unit>
398 <trans-unit id="Lithuanian">
399 <source>Lithuanian</source>
400 <target>Litauisch</target>
401 </trans-unit>
402 <trans-unit id="Luxembourgish">
403 <source>Luxembourgish</source>
404 <target>Luxemburgisch</target>
405 </trans-unit>
406 <trans-unit id="Luba-Katanga">
407 <source>Luba-Katanga</source>
408 <target>Kiluba</target>
409 </trans-unit>
410 <trans-unit id="Ganda">
411 <source>Ganda</source>
412 <target>Luganda</target>
413 </trans-unit>
414 <trans-unit id="Marshallese">
415 <source>Marshallese</source>
416 <target>Marschallesisch</target>
417 </trans-unit>
418 <trans-unit id="Malayalam">
419 <source>Malayalam</source>
420 <target>Malayalam</target>
421 </trans-unit>
422 <trans-unit id="Marathi">
423 <source>Marathi</source>
424 <target>Marathi</target>
425 </trans-unit>
426 <trans-unit id="Macedonian">
427 <source>Macedonian</source>
428 <target>Makedonisch</target>
429 </trans-unit>
430 <trans-unit id="Malagasy">
431 <source>Malagasy</source>
432 <target>Malagassi</target>
433 </trans-unit>
434 <trans-unit id="Maltese">
435 <source>Maltese</source>
436 <target>Maltesisch</target>
437 </trans-unit>
438 <trans-unit id="Mongolian">
439 <source>Mongolian</source>
440 <target>Mongolisch</target>
441 </trans-unit>
442 <trans-unit id="Maori">
443 <source>Maori</source>
444 <target>Māori</target>
445 </trans-unit>
446 <trans-unit id="Malay (macrolanguage)">
447 <source>Malay (macrolanguage)</source>
448 <target>Malaiisch</target>
449 </trans-unit>
450 <trans-unit id="Burmese">
451 <source>Burmese</source>
452 <target>Birmanisch</target>
453 </trans-unit>
454 <trans-unit id="Nauru">
455 <source>Nauru</source>
456 <target>Nauruanisch</target>
457 </trans-unit>
458 <trans-unit id="Navajo">
459 <source>Navajo</source>
460 <target>Navajo</target>
461 </trans-unit>
462 <trans-unit id="South Ndebele">
463 <source>South Ndebele</source>
464 <target>Süd-Ndebele</target>
465 </trans-unit>
466 <trans-unit id="North Ndebele">
467 <source>North Ndebele</source>
468 <target>Nord-Ndebele</target>
469 </trans-unit>
470 <trans-unit id="Ndonga">
471 <source>Ndonga</source>
472 <target>Ndonga</target>
473 </trans-unit>
474 <trans-unit id="Nepali (macrolanguage)">
475 <source>Nepali (macrolanguage)</source>
476 <target>Nepali</target>
477 </trans-unit>
478 <trans-unit id="Dutch">
479 <source>Dutch</source>
480 <target>Niederländisch</target>
481 </trans-unit>
482 <trans-unit id="Norwegian Nynorsk">
483 <source>Norwegian Nynorsk</source>
484 <target>Nynorsk</target>
485 </trans-unit>
486 <trans-unit id="Norwegian Bokmål">
487 <source>Norwegian Bokmål</source>
488 <target>Bokmål</target>
489 </trans-unit>
490 <trans-unit id="Norwegian">
491 <source>Norwegian</source>
492 <target>Norwegisch</target>
493 </trans-unit>
494 <trans-unit id="Nyanja">
495 <source>Nyanja</source>
496 <target>Nyanja-Sprache</target>
497 </trans-unit>
498 <trans-unit id="Occitan (post 1500)">
499 <source>Occitan (post 1500)</source>
500 <target>Okzitanisch</target>
501 </trans-unit>
502 <trans-unit id="Ojibwa">
503 <source>Ojibwa</source>
504 <target>Ojibwa-Sprache</target>
505 </trans-unit>
506 <trans-unit id="Oriya (macrolanguage)">
507 <source>Oriya (macrolanguage)</source>
508 <target>Oriya-Sprache</target>
509 </trans-unit>
510 <trans-unit id="Oromo">
511 <source>Oromo</source>
512 <target>Galla-Sprache</target>
513 </trans-unit>
514 <trans-unit id="Ossetian">
515 <source>Ossetian</source>
516 <target>Ossetisch</target>
517 </trans-unit>
518 <trans-unit id="Panjabi">
519 <source>Panjabi</source>
520 <target>Pandschabi-Sprache</target>
521 </trans-unit>
522 <trans-unit id="Pakistan Sign Language">
523 <source>Pakistan Sign Language</source>
524 <target>Pakistanische Gebärdensprache</target>
525 </trans-unit>
526 <trans-unit id="Polish">
527 <source>Polish</source>
528 <target>Polnisch</target>
529 </trans-unit>
530 <trans-unit id="Portuguese">
531 <source>Portuguese</source>
532 <target>Portugiesisch</target>
533 </trans-unit>
534 <trans-unit id="Pushto">
535 <source>Pushto</source>
536 <target>Paschtu</target>
537 </trans-unit>
538 <trans-unit id="Quechua">
539 <source>Quechua</source>
540 <target>Quechua-Sprache</target>
541 </trans-unit>
542 <trans-unit id="Romansh">
543 <source>Romansh</source>
544 <target>Rätoromanisch</target>
545 </trans-unit>
546 <trans-unit id="Romanian">
547 <source>Romanian</source>
548 <target>Rumänisch</target>
549 </trans-unit>
550 <trans-unit id="Russian Sign Language">
551 <source>Russian Sign Language</source>
552 <target>Russische Gebärdensprache</target>
553 </trans-unit>
554 <trans-unit id="Rundi">
555 <source>Rundi</source>
556 <target>Rundi-Sprache</target>
557 </trans-unit>
558 <trans-unit id="Russian">
559 <source>Russian</source>
560 <target>Russisch</target>
561 </trans-unit>
562 <trans-unit id="Sango">
563 <source>Sango</source>
564 <target>Sango-Sprache</target>
565 </trans-unit>
566 <trans-unit id="Saudi Arabian Sign Language">
567 <source>Saudi Arabian Sign Language</source>
568 <target>Saudi-arabische Gebärdensprache</target>
569 </trans-unit>
570 <trans-unit id="South African Sign Language">
571 <source>South African Sign Language</source>
572 <target>Südafrikanische Gebärdensprache</target>
573 </trans-unit>
574 <trans-unit id="Sinhala">
575 <source>Sinhala</source>
576 <target>Singhalesisch</target>
577 </trans-unit>
578 <trans-unit id="Slovak">
579 <source>Slovak</source>
580 <target>Slowakisch</target>
581 </trans-unit>
582 <trans-unit id="Slovenian">
583 <source>Slovenian</source>
584 <target>Slowenisch</target>
585 </trans-unit>
586 <trans-unit id="Northern Sami">
587 <source>Northern Sami</source>
588 <target>Nordsaamisch</target>
589 </trans-unit>
590 <trans-unit id="Samoan">
591 <source>Samoan</source>
592 <target>Samoanisch</target>
593 </trans-unit>
594 <trans-unit id="Shona">
595 <source>Shona</source>
596 <target>Schona-Sprache</target>
597 </trans-unit>
598 <trans-unit id="Sindhi">
599 <source>Sindhi</source>
600 <target>Sindhi-Sprache</target>
601 </trans-unit>
602 <trans-unit id="Somali">
603 <source>Somali</source>
604 <target>Somali</target>
605 </trans-unit>
606 <trans-unit id="Southern Sotho">
607 <source>Southern Sotho</source>
608 <target>Süd-Sotho-Sprache</target>
609 </trans-unit>
610 <trans-unit id="Spanish">
611 <source>Spanish</source>
612 <target>Spanisch</target>
613 </trans-unit>
614 <trans-unit id="Albanian">
615 <source>Albanian</source>
616 <target>Albanisch</target>
617 </trans-unit>
618 <trans-unit id="Sardinian">
619 <source>Sardinian</source>
620 <target>Sardisch</target>
621 </trans-unit>
622 <trans-unit id="Serbian">
623 <source>Serbian</source>
624 <target>Serbisch</target>
625 </trans-unit>
626 <trans-unit id="Swati">
627 <source>Swati</source>
628 <target>Swasi-Sprache</target>
629 </trans-unit>
630 <trans-unit id="Sundanese">
631 <source>Sundanese</source>
632 <target>Sundanesisch</target>
633 </trans-unit>
634 <trans-unit id="Swahili (macrolanguage)">
635 <source>Swahili (macrolanguage)</source>
636 <target>Swahili</target>
637 </trans-unit>
638 <trans-unit id="Swedish">
639 <source>Swedish</source>
640 <target>Schwedisch</target>
641 </trans-unit>
642 <trans-unit id="Swedish Sign Language">
643 <source>Swedish Sign Language</source>
644 <target>Schwedische Gebärdensprache</target>
645 </trans-unit>
646 <trans-unit id="Tahitian">
647 <source>Tahitian</source>
648 <target>Tahitisch</target>
649 </trans-unit>
650 <trans-unit id="Tamil">
651 <source>Tamil</source>
652 <target>Tamil</target>
653 </trans-unit>
654 <trans-unit id="Tatar">
655 <source>Tatar</source>
656 <target>Tatarisch</target>
657 </trans-unit>
658 <trans-unit id="Telugu">
659 <source>Telugu</source>
660 <target>Telugu-Sprache</target>
661 </trans-unit>
662 <trans-unit id="Tajik">
663 <source>Tajik</source>
664 <target>Tadschikisch</target>
665 </trans-unit>
666 <trans-unit id="Tagalog">
667 <source>Tagalog</source>
668 <target>Tagalog</target>
669 </trans-unit>
670 <trans-unit id="Thai">
671 <source>Thai</source>
672 <target>Thailändisch</target>
673 </trans-unit>
674 <trans-unit id="Tigrinya">
675 <source>Tigrinya</source>
676 <target>Tigrinja-Sprache</target>
677 </trans-unit>
678 <trans-unit id="Tonga (Tonga Islands)">
679 <source>Tonga (Tonga Islands)</source>
680 <target>Tongaisch</target>
681 </trans-unit>
682 <trans-unit id="Tswana">
683 <source>Tswana</source>
684 <target>Tswana-Sprache</target>
685 </trans-unit>
686 <trans-unit id="Tsonga">
687 <source>Tsonga</source>
688 <target>Tsonga-Sprache</target>
689 </trans-unit>
690 <trans-unit id="Turkmen">
691 <source>Turkmen</source>
692 <target>Turkmenisch</target>
693 </trans-unit>
694 <trans-unit id="Turkish">
695 <source>Turkish</source>
696 <target>Türkisch</target>
697 </trans-unit>
698 <trans-unit id="Twi">
699 <source>Twi</source>
700 <target>Twi-Sprache</target>
701 </trans-unit>
702 <trans-unit id="Uighur">
703 <source>Uighur</source>
704 <target>Uigurisch</target>
705 </trans-unit>
706 <trans-unit id="Ukrainian">
707 <source>Ukrainian</source>
708 <target>Ukrainisch</target>
709 </trans-unit>
710 <trans-unit id="Urdu">
711 <source>Urdu</source>
712 <target>Urdu</target>
713 </trans-unit>
714 <trans-unit id="Uzbek">
715 <source>Uzbek</source>
716 <target>Usbekisch</target>
717 </trans-unit>
718 <trans-unit id="Venda">
719 <source>Venda</source>
720 <target>Venda-Sprache</target>
721 </trans-unit>
722 <trans-unit id="Vietnamese">
723 <source>Vietnamese</source>
724 <target>Vietnamesisch</target>
725 </trans-unit>
726 <trans-unit id="Walloon">
727 <source>Walloon</source>
728 <target>Wallonisch</target>
729 </trans-unit>
730 <trans-unit id="Wolof">
731 <source>Wolof</source>
732 <target>Wolof-Sprache</target>
733 </trans-unit>
734 <trans-unit id="Xhosa">
735 <source>Xhosa</source>
736 <target>Xhosa-Sprache</target>
737 </trans-unit>
738 <trans-unit id="Yiddish">
739 <source>Yiddish</source>
740 <target>Jiddisch</target>
741 </trans-unit>
742 <trans-unit id="Yoruba">
743 <source>Yoruba</source>
744 <target>Yoruba-Sprache</target>
745 </trans-unit>
746 <trans-unit id="Zhuang">
747 <source>Zhuang</source>
748 <target>Zhuang</target>
749 </trans-unit>
750 <trans-unit id="Chinese">
751 <source>Chinese</source>
752 <target>Chinesisch</target>
753 </trans-unit>
754 <trans-unit id="Zulu">
755 <source>Zulu</source>
756 <target>Zulu-Sprache</target>
757 </trans-unit>
758 </body>
759 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/iso639_es_ES.xml b/client/src/locale/target/iso639_es_ES.xml
deleted file mode 100644
index 0f7592584..000000000
--- a/client/src/locale/target/iso639_es_ES.xml
+++ /dev/null
@@ -1,295 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="es-ES">
5 <body>
6 <trans-unit id="Afrikaans">
7 <source>Afrikaans</source>
8 <target>Afrikáans</target>
9 </trans-unit>
10 <trans-unit id="Arabic">
11 <source>Arabic</source>
12 <target>Árabe</target>
13 </trans-unit>
14 <trans-unit id="Aragonese">
15 <source>Aragonese</source>
16 <target>Aragonés</target>
17 </trans-unit>
18 <trans-unit id="American Sign Language">
19 <source>American Sign Language</source>
20 <target>Lengua de signos americana</target>
21 </trans-unit>
22 <trans-unit id="Azerbaijani">
23 <source>Azerbaijani</source>
24 <target>Azerí</target>
25 </trans-unit>
26 <trans-unit id="Belarusian">
27 <source>Belarusian</source>
28 <target>Bielorruso</target>
29 </trans-unit>
30 <trans-unit id="Bengali">
31 <source>Bengali</source>
32 <target>Bengalí</target>
33 </trans-unit>
34 <trans-unit id="British Sign Language">
35 <source>British Sign Language</source>
36 <target>Lenga de signos británica</target>
37 </trans-unit>
38 <trans-unit id="Tibetan">
39 <source>Tibetan</source>
40 <target>Tibetano</target>
41 </trans-unit>
42 <trans-unit id="Bosnian">
43 <source>Bosnian</source>
44 <target>Bosnio</target>
45 </trans-unit>
46 <trans-unit id="Breton">
47 <source>Breton</source>
48 <target>Bretón</target>
49 </trans-unit>
50 <trans-unit id="Bulgarian">
51 <source>Bulgarian</source>
52 <target>Búlgaro</target>
53 </trans-unit>
54 <trans-unit id="Brazilian Sign Language">
55 <source>Brazilian Sign Language</source>
56 <target>Lengua de signos brasileña</target>
57 </trans-unit>
58 <trans-unit id="Catalan">
59 <source>Catalan</source>
60 <target>Catalán</target>
61 </trans-unit>
62 <trans-unit id="Czech">
63 <source>Czech</source>
64 <target>Checo</target>
65 </trans-unit>
66 <trans-unit id="Chechen">
67 <source>Chechen</source>
68 <target>Checheno</target>
69 </trans-unit>
70 <trans-unit id="Corsican">
71 <source>Corsican</source>
72 <target>Corso</target>
73 </trans-unit>
74 <trans-unit id="Czech Sign Language">
75 <source>Czech Sign Language</source>
76 <target>Lengua de signos checa</target>
77 </trans-unit>
78 <trans-unit id="Chinese Sign Language">
79 <source>Chinese Sign Language</source>
80 <target>Lengua de signos china</target>
81 </trans-unit>
82 <trans-unit id="Welsh">
83 <source>Welsh</source>
84 <target>Gaélico</target>
85 </trans-unit>
86 <trans-unit id="German">
87 <source>German</source>
88 <target>Alemán</target>
89 </trans-unit>
90 <trans-unit id="Danish Sign Language">
91 <source>Danish Sign Language</source>
92 <target>Lengua de signos danesa</target>
93 </trans-unit>
94 <trans-unit id="Modern Greek (1453-)">
95 <source>Modern Greek (1453-)</source>
96 <target>Griego moderno</target>
97 </trans-unit>
98 <trans-unit id="English">
99 <source>English</source>
100 <target>Inglés</target>
101 </trans-unit>
102 <trans-unit id="Estonian">
103 <source>Estonian</source>
104 <target>Estonio</target>
105 </trans-unit>
106 <trans-unit id="Basque">
107 <source>Basque</source>
108 <target>Euskera</target>
109 </trans-unit>
110 <trans-unit id="Persian">
111 <source>Persian</source>
112 <target>Persa</target>
113 </trans-unit>
114 <trans-unit id="Finnish">
115 <source>Finnish</source>
116 <target>Finés</target>
117 </trans-unit>
118 <trans-unit id="French">
119 <source>French</source>
120 <target>Francés</target>
121 </trans-unit>
122 <trans-unit id="French Sign Language">
123 <source>French Sign Language</source>
124 <target>Lengua de signos francesa</target>
125 </trans-unit>
126 <trans-unit id="Scottish Gaelic">
127 <source>Scottish Gaelic</source>
128 <target>Gaélico escocés</target>
129 </trans-unit>
130 <trans-unit id="Irish">
131 <source>Irish</source>
132 <target>Irlandés</target>
133 </trans-unit>
134 <trans-unit id="Galician">
135 <source>Galician</source>
136 <target>Gallego</target>
137 </trans-unit>
138 <trans-unit id="German Sign Language">
139 <source>German Sign Language</source>
140 <target>Lengua de signos alemana</target>
141 </trans-unit>
142 <trans-unit id="Haitian">
143 <source>Haitian</source>
144 <target>Haitiano</target>
145 </trans-unit>
146 <trans-unit id="Serbo-Croatian">
147 <source>Serbo-Croatian</source>
148 <target>Serbocroata</target>
149 </trans-unit>
150 <trans-unit id="Hebrew">
151 <source>Hebrew</source>
152 <target>Hebreo</target>
153 </trans-unit>
154 <trans-unit id="Hindi">
155 <source>Hindi</source>
156 <target>Hindi</target>
157 </trans-unit>
158 <trans-unit id="Croatian">
159 <source>Croatian</source>
160 <target>Croata</target>
161 </trans-unit>
162 <trans-unit id="Hungarian">
163 <source>Hungarian</source>
164 <target>Húngaro</target>
165 </trans-unit>
166 <trans-unit id="Georgian">
167 <source>Georgian</source>
168 <target>Georgiano</target>
169 </trans-unit>
170 <trans-unit id="Korean">
171 <source>Korean</source>
172 <target>Coreano</target>
173 </trans-unit>
174 <trans-unit id="Kurdish">
175 <source>Kurdish</source>
176 <target>Kurdo</target>
177 </trans-unit>
178 <trans-unit id="Latvian">
179 <source>Latvian</source>
180 <target>Letón</target>
181 </trans-unit>
182 <trans-unit id="Lithuanian">
183 <source>Lithuanian</source>
184 <target>Lituano</target>
185 </trans-unit>
186 <trans-unit id="Luxembourgish">
187 <source>Luxembourgish</source>
188 <target>Luxemburgués</target>
189 </trans-unit>
190 <trans-unit id="Macedonian">
191 <source>Macedonian</source>
192 <target>Macedonio</target>
193 </trans-unit>
194 <trans-unit id="Nepali (macrolanguage)">
195 <source>Nepali (macrolanguage)</source>
196 <target>Nepalí</target>
197 </trans-unit>
198 <trans-unit id="Dutch">
199 <source>Dutch</source>
200 <target>Neerlandés</target>
201 </trans-unit>
202 <trans-unit id="Norwegian">
203 <source>Norwegian</source>
204 <target>Noruego</target>
205 </trans-unit>
206 <trans-unit id="Occitan (post 1500)">
207 <source>Occitan (post 1500)</source>
208 <target>Occitano</target>
209 </trans-unit>
210 <trans-unit id="Ossetian">
211 <source>Ossetian</source>
212 <target>Osetio</target>
213 </trans-unit>
214 <trans-unit id="Pakistan Sign Language">
215 <source>Pakistan Sign Language</source>
216 <target>Lengua de signos pakistaní</target>
217 </trans-unit>
218 <trans-unit id="Polish">
219 <source>Polish</source>
220 <target>Polaco</target>
221 </trans-unit>
222 <trans-unit id="Portuguese">
223 <source>Portuguese</source>
224 <target>Portugués</target>
225 </trans-unit>
226 <trans-unit id="Romansh">
227 <source>Romansh</source>
228 <target>Romanche</target>
229 </trans-unit>
230 <trans-unit id="Romanian">
231 <source>Romanian</source>
232 <target>Rumano</target>
233 </trans-unit>
234 <trans-unit id="Russian Sign Language">
235 <source>Russian Sign Language</source>
236 <target>Lengua de signos rusa</target>
237 </trans-unit>
238 <trans-unit id="Russian">
239 <source>Russian</source>
240 <target>Ruso</target>
241 </trans-unit>
242 <trans-unit id="Somali">
243 <source>Somali</source>
244 <target>Somalí</target>
245 </trans-unit>
246 <trans-unit id="Spanish">
247 <source>Spanish</source>
248 <target>Español</target>
249 </trans-unit>
250 <trans-unit id="Albanian">
251 <source>Albanian</source>
252 <target>Albano</target>
253 </trans-unit>
254 <trans-unit id="Serbian">
255 <source>Serbian</source>
256 <target>Serbio</target>
257 </trans-unit>
258 <trans-unit id="Sundanese">
259 <source>Sundanese</source>
260 <target>Sudanés</target>
261 </trans-unit>
262 <trans-unit id="Swahili (macrolanguage)">
263 <source>Swahili (macrolanguage)</source>
264 <target>Suajili</target>
265 </trans-unit>
266 <trans-unit id="Swedish">
267 <source>Swedish</source>
268 <target>Sueco</target>
269 </trans-unit>
270 <trans-unit id="Swedish Sign Language">
271 <source>Swedish Sign Language</source>
272 <target>Lengua de signos sueca</target>
273 </trans-unit>
274 <trans-unit id="Tahitian">
275 <source>Tahitian</source>
276 <target>Tahitiano</target>
277 </trans-unit>
278 <trans-unit id="Thai">
279 <source>Thai</source>
280 <target>Tailandés</target>
281 </trans-unit>
282 <trans-unit id="Turkish">
283 <source>Turkish</source>
284 <target>Turco</target>
285 </trans-unit>
286 <trans-unit id="Chinese">
287 <source>Chinese</source>
288 <target>Chino</target>
289 </trans-unit>
290 <trans-unit id="Zulu">
291 <source>Zulu</source>
292 <target>Zulú</target>
293 </trans-unit>
294 </body>
295 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/player_de_DE.json b/client/src/locale/target/player_de_DE.json
new file mode 100644
index 000000000..fb1a76ac9
--- /dev/null
+++ b/client/src/locale/target/player_de_DE.json
@@ -0,0 +1 @@
{"Audio Player":"Audio-Player","Video Player":"Video-Player","Play":"Wiedergabe","Pause":"Pause","Replay":"Nochmal","Current Time":"Aktuelle Zeit","Duration":"Länge","Remaining Time":"Verbleibende Zeit","Stream Type":"Streamtyp","LIVE":"Live","Loaded":"Geladen","Progress":"Fortschritt","Progress Bar":"Fortschrittsanzeige","progress bar timing: currentTime={1} duration={2}":"{1} von {2}","Fullscreen":"Vollbildschirm","Non-Fullscreen":"Kein Vollbildschirm","Mute":"Ton aus","Unmute":"Ton ein","Playback Rate":"Wiedergabegeschwindigkeit","Subtitles":"Untertitel","subtitles off":"Untertitel aus","Captions":"Untertitel für Gehörlose und Schwerhörige","captions off":"Untertitel für Gehörlose und Schwerhörige aus","Chapters":"Kapitel","Descriptions":"Beschreibungen","descriptions off":"Beschreibungen aus","Audio Track":"Tonspur","Volume Level":"Lautstärke","You aborted the media playback":"Du hast die Medienwiedergabe abgebrochen.","A network error caused the media download to fail part-way.":"Ein Netzwerkfehler hat das Herunterladen des Videos teilweise verhindert.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Es ist ein Fehler beim Laden aufgetreten. Das kann an einer fehlenden Netzwerk-Verbindung liegen oder daran, dass das Format nicht unterstützt wird.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Die Medienwiedergabe wurde abgebrochen, weil die erhaltenen Daten entweder fehlerhaft sind vom aktuellen Browser nicht unterstützt werden.","No compatible source was found for this media.":"Es konnte keine kompatible Quelle gefunden werden.","The media is encrypted and we do not have the keys to decrypt it.":"Die Daten sind verschlüsselt und es liegen keine Schlüssel dafür vor.","Play Video":"Video abspielen","Close":"Schließen","Close Modal Dialog":"Dialogfenster schließen","Modal Window":"Dialogfenster","This is a modal window":"Dies ist ein Dialogfenster.","This modal can be closed by pressing the Escape key or activating the close button.":"Dieses Dialogfenster kann geschlossen werden, indem man die Escape-Taste drückt oder auf die Schaltfläche zum Schließen des Fenster klickt.",", opens captions settings dialog":", öffnet die Einstellungen für Untertitel für Gehörlose und Schwerhörige",", opens subtitles settings dialog":", öffnet die Einstellungen für Untertitel",", opens descriptions settings dialog":", öffnet die Einstellungen für Beschreibungen",", selected":", ausgewählt","captions settings":"Einstellungen für Untertitel für Gehörlose und Schwerhörige","subtitles settings":"Einstellungen für Untertitel","descriptions settings":"Einstellungen für Beschreibungen","Text":"Text","White":"Weiß","Black":"Schwarz","Red":"Rot","Green":"Grün","Blue":"Blau","Yellow":"Gelb","Magenta":"Magenta","Cyan":"Cyan","Background":"Hintergrund","Window":"Fenster","Transparent":"durchsichtig","Semi-Transparent":"halbdurchsichtig","Opaque":"undurchsichtig","Font Size":"Schriftgröße","Text Edge Style":"Textkantenstil","None":"Nichts","Raised":"Erhöht","Depressed":"Erniedrigt","Uniform":"Gleichmäßig","Dropshadow":"Schlagschatten","Font Family":"Schriftart","Proportional Sans-Serif":"Proportionale Grotesk","Monospace Sans-Serif":"Nichtproportionale Grotesk","Proportional Serif":"Proportionale Serifen-Schrit","Monospace Serif":"Nichtproportionale Serifen-Schrift","Casual":"Gewöhnlich","Script":"Schreibschrift","Small Caps":"Kapitälchen","Reset":"Zurücksetzen","restore all settings to the default values":"Alle Einstellungen auf ihre Standardwerte zurücksetzen","Done":"Fertig","Caption Settings Dialog":"Dialogfenster für Einstellungen für Untertitel für Gehörlose und Schwerhörige","Beginning of dialog window. Escape will cancel and close the window.":"Anfang des Dialogfensters. Mit der Escape-Taste wird das Fenster ohne Speichern geschlossen.","End of dialog window.":"Ende des Dialogfensters.","{1} is loading.":"{1} lädt.","Quality":"Qualität","Auto":"Automatische Wiedergabe","Speed":"Geschwindigkeit","peers":"Peers","Go to the video page":"Zur Video-Seite gehen","Settings":"Einstellungen","Uses P2P, others may know you are watching this video.":"Nutzt Peer-to-Peer-Technologie, daher könnten andere wissen, dass du dieses Video ansiehst.","Copy the video URL":"Video-URL kopieren","Copy the video URL at the current time":"Video-URL an dieser Stelle kopieren","Copy embed code":"Einbettungscode kopieren"} \ No newline at end of file
diff --git a/client/src/locale/target/player_de_DE.xml b/client/src/locale/target/player_de_DE.xml
deleted file mode 100644
index 3c3e48ffb..000000000
--- a/client/src/locale/target/player_de_DE.xml
+++ /dev/null
@@ -1,379 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="de-DE">
5 <body>
6 <trans-unit id="Audio Player">
7 <source>Audio Player</source>
8 <target>Audio-Player</target>
9 </trans-unit>
10 <trans-unit id="Video Player">
11 <source>Video Player</source>
12 <target>Video-Player</target>
13 </trans-unit>
14 <trans-unit id="Play">
15 <source>Play</source>
16 <target>Wiedergabe</target>
17 </trans-unit>
18 <trans-unit id="Pause">
19 <source>Pause</source>
20 <target>Pause</target>
21 </trans-unit>
22 <trans-unit id="Replay">
23 <source>Replay</source>
24 <target>Nochmal</target>
25 </trans-unit>
26 <trans-unit id="Current Time">
27 <source>Current Time</source>
28 <target>Aktuelle Zeit</target>
29 </trans-unit>
30 <trans-unit id="Duration">
31 <source>Duration</source>
32 <target>Länge</target>
33 </trans-unit>
34 <trans-unit id="Remaining Time">
35 <source>Remaining Time</source>
36 <target>Verbleibende Zeit</target>
37 </trans-unit>
38 <trans-unit id="Stream Type">
39 <source>Stream Type</source>
40 <target>Streamtyp</target>
41 </trans-unit>
42 <trans-unit id="LIVE">
43 <source>LIVE</source>
44 <target>Live</target>
45 </trans-unit>
46 <trans-unit id="Loaded">
47 <source>Loaded</source>
48 <target>Geladen</target>
49 </trans-unit>
50 <trans-unit id="Progress">
51 <source>Progress</source>
52 <target>Fortschritt</target>
53 </trans-unit>
54 <trans-unit id="Progress Bar">
55 <source>Progress Bar</source>
56 <target>Fortschrittsanzeige</target>
57 </trans-unit>
58 <trans-unit id="progress bar timing: currentTime={1} duration={2}">
59 <source>{1} of {2}</source>
60 <target>{1} von {2}</target>
61 </trans-unit>
62 <trans-unit id="Fullscreen">
63 <source>Fullscreen</source>
64 <target>Vollbildschirm</target>
65 </trans-unit>
66 <trans-unit id="Non-Fullscreen">
67 <source>Non-Fullscreen</source>
68 <target>Kein Vollbildschirm</target>
69 </trans-unit>
70 <trans-unit id="Mute">
71 <source>Mute</source>
72 <target>Ton aus</target>
73 </trans-unit>
74 <trans-unit id="Unmute">
75 <source>Unmute</source>
76 <target>Ton ein</target>
77 </trans-unit>
78 <trans-unit id="Playback Rate">
79 <source>Playback Rate</source>
80 <target>Wiedergabegeschwindigkeit</target>
81 </trans-unit>
82 <trans-unit id="Subtitles">
83 <source>Subtitles</source>
84 <target>Untertitel</target>
85 </trans-unit>
86 <trans-unit id="subtitles off">
87 <source>subtitles off</source>
88 <target>Untertitel aus</target>
89 </trans-unit>
90 <trans-unit id="Captions">
91 <source>Captions</source>
92 <target>Untertitel für Gehörlose und Schwerhörige</target>
93 </trans-unit>
94 <trans-unit id="captions off">
95 <source>captions off</source>
96 <target>Untertitel für Gehörlose und Schwerhörige aus</target>
97 </trans-unit>
98 <trans-unit id="Chapters">
99 <source>Chapters</source>
100 <target>Kapitel</target>
101 </trans-unit>
102 <trans-unit id="Descriptions">
103 <source>Descriptions</source>
104 <target>Beschreibungen</target>
105 </trans-unit>
106 <trans-unit id="descriptions off">
107 <source>descriptions off</source>
108 <target>Beschreibungen aus</target>
109 </trans-unit>
110 <trans-unit id="Audio Track">
111 <source>Audio Track</source>
112 <target>Tonspur</target>
113 </trans-unit>
114 <trans-unit id="Volume Level">
115 <source>Volume Level</source>
116 <target>Lautstärke</target>
117 </trans-unit>
118 <trans-unit id="You aborted the media playback">
119 <source>You aborted the media playback</source>
120 <target>Du hast die Medienwiedergabe abgebrochen.</target>
121 </trans-unit>
122 <trans-unit id="A network error caused the media download to fail part-way.">
123 <source>A network error caused the media download to fail part-way.</source>
124 <target>Ein Netzwerkfehler hat das Herunterladen des Videos teilweise verhindert.</target>
125 </trans-unit>
126 <trans-unit id="The media could not be loaded, either because the server or network failed or because the format is not supported.">
127 <source>The media could not be loaded, either because the server or network failed or because the format is not supported.</source>
128 <target>Es ist ein Fehler beim Laden aufgetreten. Das kann an einer fehlenden Netzwerk-Verbindung liegen oder daran, dass das Format nicht unterstützt wird.</target>
129 </trans-unit>
130 <trans-unit id="The media playback was aborted due to a corruption problem or because the media used features your browser did not support.">
131 <source>The media playback was aborted due to a corruption problem or because the media used features your browser did not support.</source>
132 <target>Die Medienwiedergabe wurde abgebrochen, weil die erhaltenen Daten entweder fehlerhaft sind vom aktuellen Browser nicht unterstützt werden.</target>
133 </trans-unit>
134 <trans-unit id="No compatible source was found for this media.">
135 <source>No compatible source was found for this media.</source>
136 <target>Es konnte keine kompatible Quelle gefunden werden.</target>
137 </trans-unit>
138 <trans-unit id="The media is encrypted and we do not have the keys to decrypt it.">
139 <source>The media is encrypted and we do not have the keys to decrypt it.</source>
140 <target>Die Daten sind verschlüsselt und es liegen keine Schlüssel dafür vor.</target>
141 </trans-unit>
142 <trans-unit id="Play Video">
143 <source>Play Video</source>
144 <target>Video abspielen</target>
145 </trans-unit>
146 <trans-unit id="Close">
147 <source>Close</source>
148 <target>Schließen</target>
149 </trans-unit>
150 <trans-unit id="Close Modal Dialog">
151 <source>Close Modal Dialog</source>
152 <target>Dialogfenster schließen</target>
153 </trans-unit>
154 <trans-unit id="Modal Window">
155 <source>Modal Window</source>
156 <target>Dialogfenster</target>
157 </trans-unit>
158 <trans-unit id="This is a modal window">
159 <source>This is a modal window</source>
160 <target>Dies ist ein Dialogfenster.</target>
161 </trans-unit>
162 <trans-unit id="This modal can be closed by pressing the Escape key or activating the close button.">
163 <source>This modal can be closed by pressing the Escape key or activating the close button.</source>
164 <target>Dieses Dialogfenster kann geschlossen werden, indem man die Escape-Taste drückt oder auf die Schaltfläche zum Schließen des Fenster klickt.</target>
165 </trans-unit>
166 <trans-unit id=", opens captions settings dialog">
167 <source>, opens captions settings dialog</source>
168 <target>, öffnet die Einstellungen für Untertitel für Gehörlose und Schwerhörige</target>
169 </trans-unit>
170 <trans-unit id=", opens subtitles settings dialog">
171 <source>, opens subtitles settings dialog</source>
172 <target>, öffnet die Einstellungen für Untertitel</target>
173 </trans-unit>
174 <trans-unit id=", opens descriptions settings dialog">
175 <source>, opens descriptions settings dialog</source>
176 <target>, öffnet die Einstellungen für Beschreibungen</target>
177 </trans-unit>
178 <trans-unit id=", selected">
179 <source>, selected</source>
180 <target>, ausgewählt</target>
181 </trans-unit>
182 <trans-unit id="captions settings">
183 <source>captions settings</source>
184 <target>Einstellungen für Untertitel für Gehörlose und Schwerhörige</target>
185 </trans-unit>
186 <trans-unit id="subtitles settings">
187 <source>subititles settings</source>
188 <target>Einstellungen für Untertitel</target>
189 </trans-unit>
190 <trans-unit id="descriptions settings">
191 <source>descriptions settings</source>
192 <target>Einstellungen für Beschreibungen</target>
193 </trans-unit>
194 <trans-unit id="Text">
195 <source>Text</source>
196 <target>Text</target>
197 </trans-unit>
198 <trans-unit id="White">
199 <source>White</source>
200 <target>Weiß</target>
201 </trans-unit>
202 <trans-unit id="Black">
203 <source>Black</source>
204 <target>Schwarz</target>
205 </trans-unit>
206 <trans-unit id="Red">
207 <source>Red</source>
208 <target>Rot</target>
209 </trans-unit>
210 <trans-unit id="Green">
211 <source>Green</source>
212 <target>Grün</target>
213 </trans-unit>
214 <trans-unit id="Blue">
215 <source>Blue</source>
216 <target>Blau</target>
217 </trans-unit>
218 <trans-unit id="Yellow">
219 <source>Yellow</source>
220 <target>Gelb</target>
221 </trans-unit>
222 <trans-unit id="Magenta">
223 <source>Magenta</source>
224 <target>Magenta</target>
225 </trans-unit>
226 <trans-unit id="Cyan">
227 <source>Cyan</source>
228 <target>Cyan</target>
229 </trans-unit>
230 <trans-unit id="Background">
231 <source>Background</source>
232 <target>Hintergrund</target>
233 </trans-unit>
234 <trans-unit id="Window">
235 <source>Window</source>
236 <target>Fenster</target>
237 </trans-unit>
238 <trans-unit id="Transparent">
239 <source>Transparent</source>
240 <target>durchsichtig</target>
241 </trans-unit>
242 <trans-unit id="Semi-Transparent">
243 <source>Semi-Transparent</source>
244 <target>halbdurchsichtig</target>
245 </trans-unit>
246 <trans-unit id="Opaque">
247 <source>Opaque</source>
248 <target>undurchsichtig</target>
249 </trans-unit>
250 <trans-unit id="Font Size">
251 <source>Font Size</source>
252 <target>Schriftgröße</target>
253 </trans-unit>
254 <trans-unit id="Text Edge Style">
255 <source>Text Edge Style</source>
256 <target>Textkantenstil</target>
257 </trans-unit>
258 <trans-unit id="None">
259 <source>None</source>
260 <target>Nichts</target>
261 </trans-unit>
262 <trans-unit id="Raised">
263 <source>Raised</source>
264 <target>Erhöht</target>
265 </trans-unit>
266 <trans-unit id="Depressed">
267 <source>Depressed</source>
268 <target>Erniedrigt</target>
269 </trans-unit>
270 <trans-unit id="Uniform">
271 <source>Uniform</source>
272 <target>Gleichmäßig</target>
273 </trans-unit>
274 <trans-unit id="Dropshadow">
275 <source>Dropshadow</source>
276 <target>Schlagschatten</target>
277 </trans-unit>
278 <trans-unit id="Font Family">
279 <source>Font Family</source>
280 <target>Schriftart</target>
281 </trans-unit>
282 <trans-unit id="Proportional Sans-Serif">
283 <source>Proportional Sans-Serif</source>
284 <target>Proportionale Grotesk</target>
285 </trans-unit>
286 <trans-unit id="Monospace Sans-Serif">
287 <source>Monospace Sans-Serif</source>
288 <target>Nichtproportionale Grotesk</target>
289 </trans-unit>
290 <trans-unit id="Proportional Serif">
291 <source>Proportional Serif</source>
292 <target>Proportionale Serifen-Schrit</target>
293 </trans-unit>
294 <trans-unit id="Monospace Serif">
295 <source>Monospace Serif</source>
296 <target>Nichtproportionale Serifen-Schrift</target>
297 </trans-unit>
298 <trans-unit id="Casual">
299 <source>Casual</source>
300 <target>Gewöhnlich</target>
301 </trans-unit>
302 <trans-unit id="Script">
303 <source>Script</source>
304 <target>Schreibschrift</target>
305 </trans-unit>
306 <trans-unit id="Small Caps">
307 <source>Small Caps</source>
308 <target>Kapitälchen</target>
309 </trans-unit>
310 <trans-unit id="Reset">
311 <source>Reset</source>
312 <target>Zurücksetzen</target>
313 </trans-unit>
314 <trans-unit id="restore all settings to the default values">
315 <source>restore all settings to the default values</source>
316 <target>Alle Einstellungen auf ihre Standardwerte zurücksetzen</target>
317 </trans-unit>
318 <trans-unit id="Done">
319 <source>Done</source>
320 <target>Fertig</target>
321 </trans-unit>
322 <trans-unit id="Caption Settings Dialog">
323 <source>Caption Settings Dialog</source>
324 <target>Dialogfenster für Einstellungen für Untertitel für Gehörlose und Schwerhörige</target>
325 </trans-unit>
326 <trans-unit id="Beginning of dialog window. Escape will cancel and close the window.">
327 <source>Beginning of dialog window. Escape will cancel and close the window.</source>
328 <target>Anfang des Dialogfensters. Mit der Escape-Taste wird das Fenster ohne Speichern geschlossen.</target>
329 </trans-unit>
330 <trans-unit id="End of dialog window.">
331 <source>End of dialog window.</source>
332 <target>Ende des Dialogfensters.</target>
333 </trans-unit>
334 <trans-unit id="{1} is loading.">
335 <source>{1} is loading.</source>
336 <target>{1} lädt.</target>
337 </trans-unit>
338 <trans-unit id="Quality">
339 <source>Quality</source>
340 <target>Qualität</target>
341 </trans-unit>
342 <trans-unit id="Auto">
343 <source>Auto</source>
344 <target>Automatische Wiedergabe</target>
345 </trans-unit>
346 <trans-unit id="Speed">
347 <source>Speed</source>
348 <target>Geschwindigkeit</target>
349 </trans-unit>
350 <trans-unit id="peers">
351 <source>peers</source>
352 <target>Peers</target>
353 </trans-unit>
354 <trans-unit id="Go to the video page">
355 <source>Go to the video page</source>
356 <target>Zur Video-Seite gehen</target>
357 </trans-unit>
358 <trans-unit id="Settings">
359 <source>Settings</source>
360 <target>Einstellungen</target>
361 </trans-unit>
362 <trans-unit id="Uses P2P, others may know you are watching this video.">
363 <source>Uses P2P, others may know you are watching this video.</source>
364 <target>Nutzt Peer-to-Peer-Technologie, daher könnten andere wissen, dass du dieses Video ansiehst.</target>
365 </trans-unit>
366 <trans-unit id="Copy the video URL">
367 <source>Copy the video URL</source>
368 <target>Video-URL kopieren</target>
369 </trans-unit>
370 <trans-unit id="Copy the video URL at the current time">
371 <source>Copy the video URL at the current time</source>
372 <target>Video-URL an dieser Stelle kopieren</target>
373 </trans-unit>
374 <trans-unit id="Copy embed code">
375 <source>Copy embed code</source>
376 <target>Einbettungscode kopieren</target>
377 </trans-unit>
378 </body>
379 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/player_es_ES.json b/client/src/locale/target/player_es_ES.json
new file mode 100644
index 000000000..eb5934a2c
--- /dev/null
+++ b/client/src/locale/target/player_es_ES.json
@@ -0,0 +1 @@
{"Audio Player":"Reproductor de audio","Video Player":"Reproductor de video","Play":"Reproducir","Pause":"Pausar","Replay":"Ver de nuevo","Current Time":"Tiempo actual","Duration":"Duración","Remaining Time":"Tiempo restante","Stream Type":"Tipo de emisión","LIVE":"EN DIRECTO","Loaded":"Cargado","Progress":"Progreso","Progress Bar":"Barra de progreso","progress bar timing: currentTime={1} duration={2}":"{1} de {2}","Fullscreen":"Pantalla completa","Non-Fullscreen":"Salir de pantalla completa","Mute":"Silenciar","Unmute":"Activar sonido","Playback Rate":"Velocidad de reproducción","Subtitles":"Subtitulos","subtitles off":"Subtitulos desactivados","Captions":"Subtítulos","captions off":"Subtítulos desactivados","Chapters":"Capítulos","Descriptions":"Descripción","descriptions off":"Descripciónes desactivadas","Audio Track":"Pista de audio","Volume Level":"Nivel de volumen","You aborted the media playback":"Has cancelado la reproducción del vídeo","A network error caused the media download to fail part-way.":"Un error de red ha causado un fallo parcial en la descarga del vídeo","The media could not be loaded, either because the server or network failed or because the format is not supported.":"El vídeo no pudo ser cargado, bien porque el servidor o la red fallaron, bien porque el formato no está soportado.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"La reproducción del vídeo fue cancelada debido a un problema de corrupción o porque el vídeo requería funcionalidades que tu navegador no soporta.","No compatible source was found for this media.":"No se encontró una fuente compatible para este vídeo","The media is encrypted and we do not have the keys to decrypt it.":"El vídeo está encriptado y no tenemos las claves para desencriptarlo.","Play Video":"Reproducir el video","Close":"Cerrar","Close Modal Dialog":"Cerrar diálogo modal","Modal Window":"Ventana modal","This is a modal window":"Esta es una ventana modal","This modal can be closed by pressing the Escape key or activating the close button.":"Esta ventana modal puede cerrarse pulsando la tecla de Escape o activando el botón de cerrar.",", opens captions settings dialog":", abre el diálogo de configuración de subtítulos",", opens subtitles settings dialog":", abre el diálogo de configuración de subtítulos",", opens descriptions settings dialog":", abre el diálogo de configuración de descripciones",", selected":", seleccionado","captions settings":"configuración de subtítulos","subtitles settings":"configuración de subtítulos","descriptions settings":"configuración de descripciones","Text":"Texto","White":"Blanco","Black":"Negro","Red":"Rojo","Green":"Verde","Blue":"Azul","Yellow":"Amarillo","Magenta":"Magenta","Cyan":"Cian","Background":"Fondo","Window":"Ventana","Transparent":"Transparente","Semi-Transparent":"Semi-transparente","Opaque":"Opaco","Font Size":"Tamaño de letra","Text Edge Style":"Estilo de borde del texto","None":"Ninguno","Raised":"Elevado","Depressed":"Descendido","Uniform":"Uniforme","Dropshadow":"Sombra","Font Family":"Familia tipográfica","Proportional Sans-Serif":"Sans-Serif proporcional","Monospace Sans-Serif":"Sans-Serif monoespacio","Proportional Serif":"Serif proporcional","Monospace Serif":"Serif monoespacio","Casual":"Casual","Script":"Script","Small Caps":"Versales","Reset":"Restablecer","restore all settings to the default values":"restaurar todas las configuraciones a sus valores por defecto","Done":"Hecho","Caption Settings Dialog":"Diálogo de configuración de subtítulos","Beginning of dialog window. Escape will cancel and close the window.":"Comienzo de la ventana de diálogo. Escape cancelará y cerrará la ventana.","End of dialog window.":"Fin de la ventana de diálogo.","{1} is loading.":"{1} está cargando.","Quality":"Calidad","Auto":"Auto","Speed":"Velocidad","peers":"pares","Go to the video page":"Ir a la página del vídeo","Settings":"Configuración","Uses P2P, others may know you are watching this video.":"Utiliza P2P, otros pueden saber que estás viendo este vídeo","Copy the video URL":"Copiar la URL del vídeo","Copy the video URL at the current time":"Copiar la URL del vídeo en el tiempo actual","Copy embed code":"Copiar código de inserción"} \ No newline at end of file
diff --git a/client/src/locale/target/player_es_ES.xml b/client/src/locale/target/player_es_ES.xml
deleted file mode 100644
index 35ab14c49..000000000
--- a/client/src/locale/target/player_es_ES.xml
+++ /dev/null
@@ -1,155 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="es-ES">
5 <body>
6 <trans-unit id="Audio Player">
7 <source>Audio Player</source>
8 <target>Reproductor de audio</target>
9 </trans-unit>
10 <trans-unit id="Video Player">
11 <source>Video Player</source>
12 <target>Reproductor de video</target>
13 </trans-unit>
14 <trans-unit id="Play">
15 <source>Play</source>
16 <target>Reproducir</target>
17 </trans-unit>
18 <trans-unit id="Pause">
19 <source>Pause</source>
20 <target>Pausar</target>
21 </trans-unit>
22 <trans-unit id="Replay">
23 <source>Replay</source>
24 <target>Ver de nuevo</target>
25 </trans-unit>
26 <trans-unit id="Duration">
27 <source>Duration</source>
28 <target>Duración</target>
29 </trans-unit>
30 <trans-unit id="Remaining Time">
31 <source>Remaining Time</source>
32 <target>Tiempo restante</target>
33 </trans-unit>
34 <trans-unit id="LIVE">
35 <source>LIVE</source>
36 <target>EN DIRECTO</target>
37 </trans-unit>
38 <trans-unit id="Loaded">
39 <source>Loaded</source>
40 <target>Cargado</target>
41 </trans-unit>
42 <trans-unit id="Progress">
43 <source>Progress</source>
44 <target>Progreso</target>
45 </trans-unit>
46 <trans-unit id="Progress Bar">
47 <source>Progress Bar</source>
48 <target>Barra de progreso</target>
49 </trans-unit>
50 <trans-unit id="progress bar timing: currentTime={1} duration={2}">
51 <source>{1} of {2}</source>
52 <target>{1} de {2}</target>
53 </trans-unit>
54 <trans-unit id="Fullscreen">
55 <source>Fullscreen</source>
56 <target>Pantalla completa</target>
57 </trans-unit>
58 <trans-unit id="Non-Fullscreen">
59 <source>Non-Fullscreen</source>
60 <target>Salir de pantalla completa</target>
61 </trans-unit>
62 <trans-unit id="Mute">
63 <source>Mute</source>
64 <target>Silenciar</target>
65 </trans-unit>
66 <trans-unit id="Unmute">
67 <source>Unmute</source>
68 <target>Activar sonido</target>
69 </trans-unit>
70 <trans-unit id="Playback Rate">
71 <source>Playback Rate</source>
72 <target>Velocidad de reproducción</target>
73 </trans-unit>
74 <trans-unit id="Subtitles">
75 <source>Subtitles</source>
76 <target>Subtitulos</target>
77 </trans-unit>
78 <trans-unit id="subtitles off">
79 <source>subtitles off</source>
80 <target>Subtitulos desactivados</target>
81 </trans-unit>
82 <trans-unit id="Descriptions">
83 <source>Descriptions</source>
84 <target>Descripción</target>
85 </trans-unit>
86 <trans-unit id="descriptions off">
87 <source>descriptions off</source>
88 <target>Descripciónes desactivadas</target>
89 </trans-unit>
90 <trans-unit id="Audio Track">
91 <source>Audio Track</source>
92 <target>Pista de audio</target>
93 </trans-unit>
94 <trans-unit id="Play Video">
95 <source>Play Video</source>
96 <target>Reproducir el video</target>
97 </trans-unit>
98 <trans-unit id="White">
99 <source>White</source>
100 <target>Blanco</target>
101 </trans-unit>
102 <trans-unit id="Black">
103 <source>Black</source>
104 <target>Negro</target>
105 </trans-unit>
106 <trans-unit id="Red">
107 <source>Red</source>
108 <target>Rojo</target>
109 </trans-unit>
110 <trans-unit id="Green">
111 <source>Green</source>
112 <target>Verde</target>
113 </trans-unit>
114 <trans-unit id="Blue">
115 <source>Blue</source>
116 <target>Azul</target>
117 </trans-unit>
118 <trans-unit id="Yellow">
119 <source>Yellow</source>
120 <target>Amarillo</target>
121 </trans-unit>
122 <trans-unit id="Magenta">
123 <source>Magenta</source>
124 <target>Magenta</target>
125 </trans-unit>
126 <trans-unit id="Cyan">
127 <source>Cyan</source>
128 <target>Cian</target>
129 </trans-unit>
130 <trans-unit id="Transparent">
131 <source>Transparent</source>
132 <target>Transparente</target>
133 </trans-unit>
134 <trans-unit id="Opaque">
135 <source>Opaque</source>
136 <target>Opaco</target>
137 </trans-unit>
138 <trans-unit id="None">
139 <source>None</source>
140 <target>Ninguno</target>
141 </trans-unit>
142 <trans-unit id="Reset">
143 <source>Reset</source>
144 <target>Restablecer</target>
145 </trans-unit>
146 <trans-unit id="Quality">
147 <source>Quality</source>
148 <target>Calidad</target>
149 </trans-unit>
150 <trans-unit id="Speed">
151 <source>Speed</source>
152 <target>Velocidad</target>
153 </trans-unit>
154 </body>
155 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/player_zh_Hans_CN.xml b/client/src/locale/target/player_zh_Hans_CN.xml
index 6e0febd5c..c546a4883 100644
--- a/client/src/locale/target/player_zh_Hans_CN.xml
+++ b/client/src/locale/target/player_zh_Hans_CN.xml
@@ -107,10 +107,18 @@
107 <source>descriptions off</source> 107 <source>descriptions off</source>
108 <target>关闭描述</target> 108 <target>关闭描述</target>
109 </trans-unit> 109 </trans-unit>
110 <trans-unit id="Audio Track">
111 <source>Audio Track</source>
112 <target>音频轨道</target>
113 </trans-unit>
110 <trans-unit id="Volume Level"> 114 <trans-unit id="Volume Level">
111 <source>Volume Level</source> 115 <source>Volume Level</source>
112 <target>音量</target> 116 <target>音量</target>
113 </trans-unit> 117 </trans-unit>
118 <trans-unit id="A network error caused the media download to fail part-way.">
119 <source>A network error caused the media download to fail part-way.</source>
120 <target>网络错误导致媒体下载未能完成。</target>
121 </trans-unit>
114 <trans-unit id="The media could not be loaded, either because the server or network failed or because the format is not supported."> 122 <trans-unit id="The media could not be loaded, either because the server or network failed or because the format is not supported.">
115 <source>The media could not be loaded, either because the server or network failed or because the format is not supported.</source> 123 <source>The media could not be loaded, either because the server or network failed or because the format is not supported.</source>
116 <target>该视频没有被加载网络失败或格式不支持</target> 124 <target>该视频没有被加载网络失败或格式不支持</target>
@@ -143,14 +151,34 @@
143 <source>Modal Window</source> 151 <source>Modal Window</source>
144 <target>模式</target> 152 <target>模式</target>
145 </trans-unit> 153 </trans-unit>
154 <trans-unit id="This is a modal window">
155 <source>This is a modal window</source>
156 <target>这是一个模态窗口</target>
157 </trans-unit>
158 <trans-unit id="This modal can be closed by pressing the Escape key or activating the close button.">
159 <source>This modal can be closed by pressing the Escape key or activating the close button.</source>
160 <target>可通过按下退出(Esc)键或点击关闭按钮来关闭此模态窗口。</target>
161 </trans-unit>
146 <trans-unit id=", opens captions settings dialog"> 162 <trans-unit id=", opens captions settings dialog">
147 <source>, opens captions settings dialog</source> 163 <source>, opens captions settings dialog</source>
148 <target>打开字幕</target> 164 <target>打开字幕</target>
149 </trans-unit> 165 </trans-unit>
166 <trans-unit id=", opens subtitles settings dialog">
167 <source>, opens subtitles settings dialog</source>
168 <target>打开字幕设置对话框</target>
169 </trans-unit>
170 <trans-unit id=", opens descriptions settings dialog">
171 <source>, opens descriptions settings dialog</source>
172 <target>打开描述设置对话框</target>
173 </trans-unit>
150 <trans-unit id=", selected"> 174 <trans-unit id=", selected">
151 <source>, selected</source> 175 <source>, selected</source>
152 <target>选中</target> 176 <target>选中</target>
153 </trans-unit> 177 </trans-unit>
178 <trans-unit id="captions settings">
179 <source>captions settings</source>
180 <target>标题设置</target>
181 </trans-unit>
154 <trans-unit id="subtitles settings"> 182 <trans-unit id="subtitles settings">
155 <source>subititles settings</source> 183 <source>subititles settings</source>
156 <target>字幕设置</target> 184 <target>字幕设置</target>
@@ -247,6 +275,18 @@
247 <source>Font Family</source> 275 <source>Font Family</source>
248 <target>字体系列</target> 276 <target>字体系列</target>
249 </trans-unit> 277 </trans-unit>
278 <trans-unit id="Monospace Sans-Serif">
279 <source>Monospace Sans-Serif</source>
280 <target>等宽无衬线体</target>
281 </trans-unit>
282 <trans-unit id="Proportional Serif">
283 <source>Proportional Serif</source>
284 <target>非等宽有衬线体</target>
285 </trans-unit>
286 <trans-unit id="Monospace Serif">
287 <source>Monospace Serif</source>
288 <target>等宽有衬线体</target>
289 </trans-unit>
250 <trans-unit id="Casual"> 290 <trans-unit id="Casual">
251 <source>Casual</source> 291 <source>Casual</source>
252 <target>临时</target> 292 <target>临时</target>
diff --git a/client/src/locale/target/player_zh_Hant_TW.json b/client/src/locale/target/player_zh_Hant_TW.json
new file mode 100644
index 000000000..f564d80bc
--- /dev/null
+++ b/client/src/locale/target/player_zh_Hant_TW.json
@@ -0,0 +1 @@
{"Audio Player":"音訊播放器","Video Player":"視訊播放器","Play":"播放","Pause":"暫停","Replay":"重播","Current Time":"目前時間","Duration":"長度","Remaining Time":"剩餘時間","Stream Type":"串流類型","LIVE":"直播","Loaded":"已載入","Progress":"進度","Progress Bar":"進度條","progress bar timing: currentTime={1} duration={2}":"{1} 之 {2}","Fullscreen":"全螢幕","Non-Fullscreen":"非全螢幕","Mute":"靜音","Unmute":"取消靜音","Playback Rate":"播放速率","Subtitles":"字幕","subtitles off":"字幕關閉","Captions":"標題","captions off":"標題關閉","Chapters":"章節","Descriptions":"描述","descriptions off":"描述關閉","Audio Track":"音訊軌","Volume Level":"音訊等級","You aborted the media playback":"您中止了媒體播放","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 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.":"找不到此媒體的相容來源。","The media is encrypted and we do not have the keys to decrypt it.":"媒體已加密,我們沒有金鑰可以將其解密。","Play Video":"播放影片","Close":"關閉","Close Modal Dialog":"關閉程式對話框","Modal Window":"程式視窗","This is a modal window":"這是一個程式視窗","This modal can be closed by pressing the Escape key or activating the close button.":"這個程式可以夠過按下 Esc 鍵或啟動關閉按鈕來關閉。",", opens captions settings dialog":",開啟標題設定對話框",", opens subtitles settings dialog":",開啟字幕設定對話框",", opens descriptions settings dialog":",開啟描述設定對話框",", selected":",已選取","captions settings":"標題設定","subtitles settings":"字幕設定","descriptions settings":"描述設定","Text":"文字","White":"白色","Black":"黑色","Red":"紅色","Green":"綠色","Blue":"藍色","Yellow":"黃色","Magenta":"洋紅色","Cyan":"深藍色","Background":"背景","Window":"視窗","Transparent":"透明","Semi-Transparent":"半透明","Opaque":"不透明","Font Size":"字型大小","Text Edge Style":"文字邊緣樣式","None":"無","Raised":"凸起","Depressed":"扁平","Uniform":"均勻","Dropshadow":"陰影效果","Font Family":"字型家族","Proportional Sans-Serif":"比例無襯線","Monospace Sans-Serif":"等寬無襯線","Proportional Serif":"比例襯線","Monospace Serif":"等寬襯線","Casual":"華麗","Script":"手寫","Small Caps":"小型大寫字母","Reset":"重設","restore all settings to the default values":"將所有設定復原為預設值","Done":"完成","Caption Settings Dialog":"標題設定對話框","Beginning of dialog window. Escape will cancel and close the window.":"對話框視窗開始。Esc 將會取消並關閉視窗。","End of dialog window.":"對話框視窗結束。","{1} is loading.":"{1} 正在載入。","Quality":"品質","Auto":"自動","Speed":"速度","peers":"peer","Go to the video page":"到影片頁面","Settings":"設定","Uses P2P, others may know you are watching this video.":"使用 P2P,其他人可能會知道您正在觀看這部影片。","Copy the video URL":"複製影片 URL","Copy the video URL at the current time":"複製目前影片時間的 URL","Copy embed code":"複製嵌入程式碼"} \ No newline at end of file
diff --git a/client/src/locale/target/server_de_DE.json b/client/src/locale/target/server_de_DE.json
new file mode 100644
index 000000000..9cc56967c
--- /dev/null
+++ b/client/src/locale/target/server_de_DE.json
@@ -0,0 +1 @@
{"Music":"Musik","Films":"Filme","Vehicles":"Fahrzeuge","Art":"Kunst","Sports":"Sport","Travels":"Reisen","Gaming":"Spiele","People":"Leute","Comedy":"Komödie","Entertainment":"Unterhaltung","News":"Nachrichten","How To":"How-to","Education":"Bildung","Activism":"Aktivismus","Science & Technology":"Wissenschaft und Technologie","Animals":"Tiere","Kids":"Kinder","Food":"Essen","Attribution":"Namensnennung","Attribution - Share Alike":"Namensnennung - Weitergabe unter gleichen Bedingungen","Attribution - No Derivatives":"Namensnennung - Keine Bearbeitung","Attribution - Non Commercial":"Namensnennung - nicht kommerziell","Attribution - Non Commercial - Share Alike":"Namensnennung - nicht kommerziell, Weitergabe unter gleichen Bedingungen","Attribution - Non Commercial - No Derivatives":"Namensnennung - nicht kommerziell, keine Bearbeitung","Public Domain Dedication":"In Gemeinfreiheit entlassen","Public":"Öffentlich","Unlisted":"Ungelistet","Private":"Privat","Misc":"Verschiedenes","Unknown":"Unbekannt","Afar":"Afar","Abkhazian":"Abchasisch","Afrikaans":"Afrikaans","Akan":"Akan","Amharic":"Amharisch","Arabic":"Arabisch","Aragonese":"Aragonesisch","American Sign Language":"Amerikanische Gebärdensprache","Assamese":"Assamesisch","Avaric":"Awarisch","Aymara":"Aymara","Azerbaijani":"Aserbeidschanisch","Bashkir":"Baschkirisch","Bambara":"Bambara","Belarusian":"Weißrussisch","Bengali":"Bengali","British Sign Language":"Britische Gebärdensprache","Bislama":"Beach-la-mar","Tibetan":"Tibetisch","Bosnian":"Bosnisch","Breton":"Bretonisch","Bulgarian":"Bulgarisch","Brazilian Sign Language":"Brasilianische Gebärdensprache","Catalan":"Katalanisch","Czech":"Tschechisch","Chamorro":"Chamorro","Chechen":"Tschetschenisch","Chuvash":"Tschuwaschisch","Cornish":"Kornisch","Corsican":"Korsisch","Cree":"Cree","Czech Sign Language":"Tschechische Gebärdensprache","Chinese Sign Language":"Chinesiche Gebärdensprache","Welsh":"Kymrisch","Danish":"Dänisch","German":"Deutsch","Dhivehi":"Maledivisch","Danish Sign Language":"Dänische Gebärdensprache","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Neugriechisch","English":"Englisch","Estonian":"Estnisch","Basque":"Baskisch","Ewe":"Ewe","Faroese":"Färöisch","Persian":"Persisch","Fijian":"Fidschi","Finnish":"Finnisch","French":"Französisch","Western Frisian":"Friesisch","French Sign Language":"Französiche Gebärdensprache","Fulah":"Ful","Scottish Gaelic":"Gälisch-Schottisch","Irish":"Irisch","Galician":"Galicisch","Manx":"Manx","Guarani":"Guaraní","German Sign Language":"Deutsche Gebärdensprache","Gujarati":"Gujarati","Haitian":"Haïtien (Haiti-Kreolisch)","Hausa":"Hausa","Serbo-Croatian":"Serbokroatisch","Hebrew":"Hebräisch","Herero":"Otjiherero","Hindi":"Hindi","Hiri Motu":"Hiri-Motu","Croatian":"Kroatisch","Hungarian":"Ungarisch","Armenian":"Armenisch","Igbo":"Igbo","Sichuan Yi":"Yi","Inuktitut":"Inuktitut","Indonesian":"Bahasa Indonesia","Inupiaq":"Inupik","Icelandic":"Isländisch","Italian":"Italienisch","Javanese":"Javanisch","Japanese":"Japanisch","Japanese Sign Language":"Japanische Gebärdensprache","Kalaallisut":"Grönländisch","Kannada":"Kannada","Kashmiri":"Kaschmiri","Georgian":"Georgisch","Kanuri":"Kanuri","Kazakh":"Kasachisch","Khmer":"Kambodschanisch","Kikuyu":"Kikuyu","Kinyarwanda":"Kinyarwanda","Kirghiz":"Kirgisisch","Komi":"Komi","Kongo":"Kikongo","Korean":"Koreanisch","Kuanyama":"Kuanyama","Kurdish":"Kurdisch","Lao":"Laotisch","Latvian":"Lettisch","Limburgan":"Limburgisch","Lingala":"Lingala","Lithuanian":"Litauisch","Luxembourgish":"Luxemburgisch","Luba-Katanga":"Kiluba","Ganda":"Luganda","Marshallese":"Marschallesisch","Malayalam":"Malayalam","Marathi":"Marathi","Macedonian":"Makedonisch","Malagasy":"Malagassi","Maltese":"Maltesisch","Mongolian":"Mongolisch","Maori":"Māori","Malay (macrolanguage)":"Malaiisch","Burmese":"Birmanisch","Nauru":"Nauruanisch","Navajo":"Navajo","South Ndebele":"Süd-Ndebele","North Ndebele":"Nord-Ndebele","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepali","Dutch":"Niederländisch","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Norwegisch","Nyanja":"Nyanja-Sprache","Occitan (post 1500)":"Okzitanisch","Ojibwa":"Ojibwa-Sprache","Oriya (macrolanguage)":"Oriya-Sprache","Oromo":"Galla-Sprache","Ossetian":"Ossetisch","Panjabi":"Pandschabi-Sprache","Pakistan Sign Language":"Pakistanische Gebärdensprache","Polish":"Polnisch","Portuguese":"Portugiesisch","Pushto":"Paschtu","Quechua":"Quechua-Sprache","Romansh":"Rätoromanisch","Romanian":"Rumänisch","Russian Sign Language":"Russische Gebärdensprache","Rundi":"Rundi-Sprache","Russian":"Russisch","Sango":"Sango-Sprache","Saudi Arabian Sign Language":"Saudi-arabische Gebärdensprache","South African Sign Language":"Südafrikanische Gebärdensprache","Sinhala":"Singhalesisch","Slovak":"Slowakisch","Slovenian":"Slowenisch","Northern Sami":"Nordsaamisch","Samoan":"Samoanisch","Shona":"Schona-Sprache","Sindhi":"Sindhi-Sprache","Somali":"Somali","Southern Sotho":"Süd-Sotho-Sprache","Spanish":"Spanisch","Albanian":"Albanisch","Sardinian":"Sardisch","Serbian":"Serbisch","Swati":"Swasi-Sprache","Sundanese":"Sundanesisch","Swahili (macrolanguage)":"Swahili","Swedish":"Schwedisch","Swedish Sign Language":"Schwedische Gebärdensprache","Tahitian":"Tahitisch","Tamil":"Tamil","Tatar":"Tatarisch","Telugu":"Telugu-Sprache","Tajik":"Tadschikisch","Tagalog":"Tagalog","Thai":"Thailändisch","Tigrinya":"Tigrinja-Sprache","Tonga (Tonga Islands)":"Tongaisch","Tswana":"Tswana-Sprache","Tsonga":"Tsonga-Sprache","Turkmen":"Turkmenisch","Turkish":"Türkisch","Twi":"Twi-Sprache","Uighur":"Uigurisch","Ukrainian":"Ukrainisch","Urdu":"Urdu","Uzbek":"Usbekisch","Venda":"Venda-Sprache","Vietnamese":"Vietnamesisch","Walloon":"Wallonisch","Wolof":"Wolof-Sprache","Xhosa":"Xhosa-Sprache","Yiddish":"Jiddisch","Yoruba":"Yoruba-Sprache","Zhuang":"Zhuang","Chinese":"Chinesisch","Zulu":"Zulu-Sprache"} \ No newline at end of file
diff --git a/client/src/locale/target/server_de_DE.xml b/client/src/locale/target/server_de_DE.xml
deleted file mode 100644
index 049a3c505..000000000
--- a/client/src/locale/target/server_de_DE.xml
+++ /dev/null
@@ -1,127 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="de-DE">
5 <body>
6 <trans-unit id="Music">
7 <source>Music</source>
8 <target>Musik</target>
9 </trans-unit>
10 <trans-unit id="Films">
11 <source>Films</source>
12 <target>Filme</target>
13 </trans-unit>
14 <trans-unit id="Vehicles">
15 <source>Vehicles</source>
16 <target>Fahrzeuge</target>
17 </trans-unit>
18 <trans-unit id="Art">
19 <source>Art</source>
20 <target>Kunst</target>
21 </trans-unit>
22 <trans-unit id="Sports">
23 <source>Sports</source>
24 <target>Sport</target>
25 </trans-unit>
26 <trans-unit id="Travels">
27 <source>Travels</source>
28 <target>Reisen</target>
29 </trans-unit>
30 <trans-unit id="Gaming">
31 <source>Gaming</source>
32 <target>Spiele</target>
33 </trans-unit>
34 <trans-unit id="People">
35 <source>People</source>
36 <target>Leute</target>
37 </trans-unit>
38 <trans-unit id="Comedy">
39 <source>Comedy</source>
40 <target>Komödie</target>
41 </trans-unit>
42 <trans-unit id="Entertainment">
43 <source>Entertainment</source>
44 <target>Unterhaltung</target>
45 </trans-unit>
46 <trans-unit id="News">
47 <source>News</source>
48 <target>Nachrichten</target>
49 </trans-unit>
50 <trans-unit id="How To">
51 <source>How To</source>
52 <target>How-to</target>
53 </trans-unit>
54 <trans-unit id="Education">
55 <source>Education</source>
56 <target>Bildung</target>
57 </trans-unit>
58 <trans-unit id="Activism">
59 <source>Activism</source>
60 <target>Aktivismus</target>
61 </trans-unit>
62 <trans-unit id="Science &amp; Technology">
63 <source>Science &amp; Technology</source>
64 <target>Wissenschaft und Technologie</target>
65 </trans-unit>
66 <trans-unit id="Animals">
67 <source>Animals</source>
68 <target>Tiere</target>
69 </trans-unit>
70 <trans-unit id="Kids">
71 <source>Kids</source>
72 <target>Kinder</target>
73 </trans-unit>
74 <trans-unit id="Food">
75 <source>Food</source>
76 <target>Essen</target>
77 </trans-unit>
78 <trans-unit id="Attribution">
79 <source>Attribution</source>
80 <target>Namensnennung</target>
81 </trans-unit>
82 <trans-unit id="Attribution - Share Alike">
83 <source>Attribution - Share Alike</source>
84 <target>Namensnennung - Weitergabe unter gleichen Bedingungen</target>
85 </trans-unit>
86 <trans-unit id="Attribution - No Derivatives">
87 <source>Attribution - No Derivatives</source>
88 <target>Namensnennung - Keine Bearbeitung</target>
89 </trans-unit>
90 <trans-unit id="Attribution - Non Commercial">
91 <source>Attribution - Non Commercial</source>
92 <target>Namensnennung - nicht kommerziell</target>
93 </trans-unit>
94 <trans-unit id="Attribution - Non Commercial - Share Alike">
95 <source>Attribution - Non Commercial - Share Alike</source>
96 <target>Namensnennung - nicht kommerziell, Weitergabe unter gleichen Bedingungen</target>
97 </trans-unit>
98 <trans-unit id="Attribution - Non Commercial - No Derivatives">
99 <source>Attribution - Non Commercial - No Derivatives</source>
100 <target>Namensnennung - nicht kommerziell, keine Bearbeitung</target>
101 </trans-unit>
102 <trans-unit id="Public Domain Dedication">
103 <source>Public Domain Dedication</source>
104 <target>In Gemeinfreiheit entlassen</target>
105 </trans-unit>
106 <trans-unit id="Public">
107 <source>Public</source>
108 <target>Öffentlich</target>
109 </trans-unit>
110 <trans-unit id="Unlisted">
111 <source>Unlisted</source>
112 <target>Ungelistet</target>
113 </trans-unit>
114 <trans-unit id="Private">
115 <source>Private</source>
116 <target>Privat</target>
117 </trans-unit>
118 <trans-unit id="Misc">
119 <source>Misc</source>
120 <target>Verschiedenes</target>
121 </trans-unit>
122 <trans-unit id="Unknown">
123 <source>Unknown</source>
124 <target>Unbekannt</target>
125 </trans-unit>
126 </body>
127 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/server_es_ES.json b/client/src/locale/target/server_es_ES.json
new file mode 100644
index 000000000..716307533
--- /dev/null
+++ b/client/src/locale/target/server_es_ES.json
@@ -0,0 +1 @@
{"Music":"Música","Films":"Películas","Vehicles":"Transporte","Art":"Arte","Sports":"Deportes","Travels":"Viajes","Gaming":"Juegos","People":"Personalidades","Comedy":"Comedia","Entertainment":"Entretenimiento","News":"Noticias","How To":"Tutorial","Education":"Educación","Activism":"Activismo","Science & Technology":"Cienca & Tecnología","Animals":"Animales","Kids":"Niños","Food":"Cocina","Attribution":"Atribución","Attribution - Share Alike":"Atribución - Compartir Igual","Attribution - No Derivatives":"Atribución - No Derivadas","Attribution - Non Commercial":"Atribución - No Comercial","Attribution - Non Commercial - Share Alike":"Atribución - No Comercial - Compartir Igual","Attribution - Non Commercial - No Derivatives":"Atribución - No Comercial - No Derivadas","Public Domain Dedication":"Dominio Público","Public":"Público","Unlisted":"Sin listar","Private":"Privado","Misc":"Miscelánea","Unknown":"Desconocido","Afar":"Afar","Abkhazian":"Abjasio","Afrikaans":"Afrikáans","Akan":"Acano","Amharic":"Amhárico","Arabic":"Árabe","Aragonese":"Aragonés","American Sign Language":"Lengua de signos americana","Assamese":"Asamés","Avaric":"Avar","Aymara":"Aimara","Azerbaijani":"Azerí","Bashkir":"Baskir","Bambara":"Bambara","Belarusian":"Bielorruso","Bengali":"Bengalí","British Sign Language":"Lenga de signos británica","Bislama":"Bislama","Tibetan":"Tibetano","Bosnian":"Bosnio","Breton":"Bretón","Bulgarian":"Búlgaro","Brazilian Sign Language":"Lengua de signos brasileña","Catalan":"Catalán","Czech":"Checo","Chamorro":"Chamorro","Chechen":"Checheno","Chuvash":"Chuvasio","Cornish":"Córnico","Corsican":"Corso","Cree":"Cree","Czech Sign Language":"Lengua de signos checa","Chinese Sign Language":"Lengua de signos china","Welsh":"Gaélico","Danish":"Danés","German":"Alemán","Dhivehi":"Maldivo","Danish Sign Language":"Lengua de signos danesa","Dzongkha":"Dzongkha","Modern Greek (1453-)":"Griego moderno","English":"Inglés","Estonian":"Estonio","Basque":"Euskera","Ewe":"Ewé","Faroese":"Feroés","Persian":"Persa","Fijian":"Fiyiano","Finnish":"Finés","French":"Francés","Western Frisian":"Frisón occidental","French Sign Language":"Lengua de signos francesa","Fulah":"Fula","Scottish Gaelic":"Gaélico escocés","Irish":"Irlandés","Galician":"Gallego","Manx":"Manés","Guarani":"Guaraní","German Sign Language":"Lengua de signos alemana","Gujarati":"Gujaratí","Haitian":"Haitiano","Hausa":"Hausa","Serbo-Croatian":"Serbocroata","Hebrew":"Hebreo","Herero":"Herero","Hindi":"Hindi","Hiri Motu":"Hiri motu","Croatian":"Croata","Hungarian":"Húngaro","Armenian":"Armenio","Igbo":"Igbo","Sichuan Yi":"Nuosu","Inuktitut":"Inuit","Indonesian":"Indonesio","Inupiaq":"Iñupiaq","Icelandic":"Islandés","Italian":"Italiano","Javanese":"Javanés","Japanese":"Japonés","Japanese Sign Language":"Lengua de signos japonesa","Kalaallisut":"Kalaallisut","Kannada":"Canarés","Kashmiri":"Cachemir","Georgian":"Georgiano","Kanuri":"Kanurí","Kazakh":"Kazajo","Khmer":"Camboyano","Kikuyu":"Kikuyú","Kinyarwanda":"Kiñaruanda","Kirghiz":"Kirguís","Komi":"Komi","Kongo":"Kongo","Korean":"Coreano","Kuanyama":"Kuanyama","Kurdish":"Kurdo","Lao":"Lao","Latvian":"Letón","Limburgan":"Limburgués","Lingala":"Lingala","Lithuanian":"Lituano","Luxembourgish":"Luxemburgués","Luba-Katanga":"Luba oriental","Ganda":"Luganda","Marshallese":"Mashalés","Malayalam":"Malabar","Marathi":"Maratí","Macedonian":"Macedonio","Malagasy":"Malgache","Maltese":"Maltés","Mongolian":"Mongol","Maori":"Maorí","Malay (macrolanguage)":"Malayo","Burmese":"Birmano","Nauru":"Nauruano","Navajo":"Navajo","South Ndebele":"Ndebele del sur","North Ndebele":"Ndebele del norte","Ndonga":"Ndonga","Nepali (macrolanguage)":"Nepalí","Dutch":"Neerlandés","Norwegian Nynorsk":"Nynorsk","Norwegian Bokmål":"Bokmål","Norwegian":"Noruego","Nyanja":"Chichewa","Occitan (post 1500)":"Occitano","Ojibwa":"Ojibwa","Oriya (macrolanguage)":"Oriya","Oromo":"Oromo","Ossetian":"Osetio","Panjabi":"Panyabí","Pakistan Sign Language":"Lengua de signos pakistaní","Polish":"Polaco","Portuguese":"Portugués","Pushto":"Pastún","Quechua":"Quechua","Romansh":"Romanche","Romanian":"Rumano","Russian Sign Language":"Lengua de signos rusa","Rundi":"Kirundí","Russian":"Ruso","Sango":"Sango","Saudi Arabian Sign Language":"Lengua de signos saudí","South African Sign Language":"Lengua de signos sudafricana","Sinhala":"Cingalés","Slovak":"Eslovaco","Slovenian":"Esloveno","Northern Sami":"Sami septentrional","Samoan":"Samoano","Shona":"Shona","Sindhi":"Sindi","Somali":"Somalí","Southern Sotho":"Soto meridional","Spanish":"Español","Albanian":"Albano","Sardinian":"Sardo","Serbian":"Serbio","Swati":"Suazi","Sundanese":"Sudanés","Swahili (macrolanguage)":"Suajili","Swedish":"Sueco","Swedish Sign Language":"Lengua de signos sueca","Tahitian":"Tahitiano","Tamil":"Támil","Tatar":"Tártaro","Telugu":"Télugu","Tajik":"Tayiko","Tagalog":"Tagalo","Thai":"Tailandés","Tigrinya":"Tigriña","Tonga (Tonga Islands)":"Tongano","Tswana":"Setsuana","Tsonga":"Tsonga","Turkmen":"Turcomano","Turkish":"Turco","Twi":"Twi","Uighur":"Uigur","Ukrainian":"Ucraniano","Urdu":"Urdu","Uzbek":"Uzbeko","Venda":"Venda","Vietnamese":"Vietnamita","Walloon":"Valón","Wolof":"Wólof","Xhosa":"Xhosa","Yiddish":"Yidis","Yoruba":"Yoruba","Zhuang":"Chuang","Chinese":"Chino","Zulu":"Zulú"} \ No newline at end of file
diff --git a/client/src/locale/target/server_es_ES.xml b/client/src/locale/target/server_es_ES.xml
deleted file mode 100644
index 8dea57abc..000000000
--- a/client/src/locale/target/server_es_ES.xml
+++ /dev/null
@@ -1,127 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
3<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" xmlns:xyz="urn:appInfo:Items" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.1 http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd" version="1.1">
4 <file source-language="en-US" datatype="plaintext" original="" target-language="es-ES">
5 <body>
6 <trans-unit id="Music">
7 <source>Music</source>
8 <target>Música</target>
9 </trans-unit>
10 <trans-unit id="Films">
11 <source>Films</source>
12 <target>Películas</target>
13 </trans-unit>
14 <trans-unit id="Vehicles">
15 <source>Vehicles</source>
16 <target>Transporte</target>
17 </trans-unit>
18 <trans-unit id="Art">
19 <source>Art</source>
20 <target>Arte</target>
21 </trans-unit>
22 <trans-unit id="Sports">
23 <source>Sports</source>
24 <target>Deportes</target>
25 </trans-unit>
26 <trans-unit id="Travels">
27 <source>Travels</source>
28 <target>Viajes</target>
29 </trans-unit>
30 <trans-unit id="Gaming">
31 <source>Gaming</source>
32 <target>Juegos</target>
33 </trans-unit>
34 <trans-unit id="People">
35 <source>People</source>
36 <target>Personalidades</target>
37 </trans-unit>
38 <trans-unit id="Comedy">
39 <source>Comedy</source>
40 <target>Comedia</target>
41 </trans-unit>
42 <trans-unit id="Entertainment">
43 <source>Entertainment</source>
44 <target>Entretenimiento</target>
45 </trans-unit>
46 <trans-unit id="News">
47 <source>News</source>
48 <target>Noticias</target>
49 </trans-unit>
50 <trans-unit id="How To">
51 <source>How To</source>
52 <target>Tutorial</target>
53 </trans-unit>
54 <trans-unit id="Education">
55 <source>Education</source>
56 <target>Educación</target>
57 </trans-unit>
58 <trans-unit id="Activism">
59 <source>Activism</source>
60 <target>Activismo</target>
61 </trans-unit>
62 <trans-unit id="Science &amp; Technology">
63 <source>Science &amp; Technology</source>
64 <target>Cienca &amp; Tecnología</target>
65 </trans-unit>
66 <trans-unit id="Animals">
67 <source>Animals</source>
68 <target>Animales</target>
69 </trans-unit>
70 <trans-unit id="Kids">
71 <source>Kids</source>
72 <target>Niños</target>
73 </trans-unit>
74 <trans-unit id="Food">
75 <source>Food</source>
76 <target>Cocina</target>
77 </trans-unit>
78 <trans-unit id="Attribution">
79 <source>Attribution</source>
80 <target>Atribución</target>
81 </trans-unit>
82 <trans-unit id="Attribution - Share Alike">
83 <source>Attribution - Share Alike</source>
84 <target>Atribución - Compartir Igual</target>
85 </trans-unit>
86 <trans-unit id="Attribution - No Derivatives">
87 <source>Attribution - No Derivatives</source>
88 <target>Atribución - No Derivadas</target>
89 </trans-unit>
90 <trans-unit id="Attribution - Non Commercial">
91 <source>Attribution - Non Commercial</source>
92 <target>Atribución - No Comercial</target>
93 </trans-unit>
94 <trans-unit id="Attribution - Non Commercial - Share Alike">
95 <source>Attribution - Non Commercial - Share Alike</source>
96 <target>Atribución - No Comercial - Compartir Igual</target>
97 </trans-unit>
98 <trans-unit id="Attribution - Non Commercial - No Derivatives">
99 <source>Attribution - Non Commercial - No Derivatives</source>
100 <target>Atribución - No Comercial - No Derivadas</target>
101 </trans-unit>
102 <trans-unit id="Public Domain Dedication">
103 <source>Public Domain Dedication</source>
104 <target>Dominio Público</target>
105 </trans-unit>
106 <trans-unit id="Public">
107 <source>Public</source>
108 <target>Público</target>
109 </trans-unit>
110 <trans-unit id="Unlisted">
111 <source>Unlisted</source>
112 <target>Sin listar</target>
113 </trans-unit>
114 <trans-unit id="Private">
115 <source>Private</source>
116 <target>Privado</target>
117 </trans-unit>
118 <trans-unit id="Misc">
119 <source>Misc</source>
120 <target>Miscelánea</target>
121 </trans-unit>
122 <trans-unit id="Unknown">
123 <source>Unknown</source>
124 <target>Desconocido</target>
125 </trans-unit>
126 </body>
127 </file></xliff> \ No newline at end of file
diff --git a/client/src/locale/target/server_zh_Hant_TW.json b/client/src/locale/target/server_zh_Hant_TW.json
new file mode 100644
index 000000000..bb52ed51c
--- /dev/null
+++ b/client/src/locale/target/server_zh_Hant_TW.json
@@ -0,0 +1 @@
{"Music":"音樂","Films":"電影","Vehicles":"汽車","Art":"藝術","Sports":"運動","Travels":"旅遊","Gaming":"遊戲","People":"大眾","Comedy":"喜劇","Entertainment":"娛樂","News":"新聞","How To":"How To","Education":"教育","Activism":"行動","Science & Technology":"科學與科技","Animals":"動物","Kids":"兒童","Food":"食物","Attribution":"姓名標示","Attribution - Share Alike":"姓名標示 - 相同方式分享","Attribution - No Derivatives":"姓名標示 - 禁止改作","Attribution - Non Commercial":"姓名標示 - 非商業性","Attribution - Non Commercial - Share Alike":"姓名標示 - 非商業性 - 相同方式分享","Attribution - Non Commercial - No Derivatives":"姓名標示 - 非商業性 - 禁止改作","Public Domain Dedication":"公有領域","Public":"公開","Unlisted":"不列出","Private":"私人","Misc":"雜項","Unknown":"未知","Afar":"阿法爾語","Abkhazian":"阿布哈茲語","Afrikaans":"南非語","Akan":"阿寒語","Amharic":"阿姆哈拉語","Arabic":"阿拉伯語","Aragonese":"亞拉岡語","American Sign Language":"美國手語","Assamese":"阿薩姆語","Avaric":"阿瓦爾語","Aymara":"艾馬拉語","Azerbaijani":"亞塞拜然語","Bashkir":"巴什基爾語","Bambara":"班巴拉語","Belarusian":"白俄羅斯語","Bengali":"孟加拉語","British Sign Language":"英國手語","Bislama":"比斯拉馬語","Tibetan":"藏語","Bosnian":"波士尼亞語","Breton":"布列塔尼語","Bulgarian":"保加利亞語","Brazilian Sign Language":"巴西手語","Catalan":"加泰隆尼亞語","Czech":"捷克語","Chamorro":"查莫羅語","Chechen":"車臣語","Chuvash":"楚瓦什語","Cornish":"康瓦爾語","Corsican":"科西嘉語","Cree":"克里語","Czech Sign Language":"捷克手語","Chinese Sign Language":"中國手語","Welsh":"威爾斯語","Danish":"丹麥語","German":"德語","Dhivehi":"迪維西語","Danish Sign Language":"丹麥手語","Dzongkha":"不丹語","Modern Greek (1453-)":"現代希臘語(1453年後)","English":"英語","Estonian":"愛沙尼亞語","Basque":"巴斯克語","Ewe":"埃維語","Faroese":"法羅語","Persian":"波斯語","Fijian":"斐濟語","Finnish":"芬蘭語","French":"法語","Western Frisian":"西菲士蘭語","French Sign Language":"法國手語","Fulah":"富拉語","Scottish Gaelic":"蘇格蘭蓋爾語","Irish":"愛爾蘭語","Galician":"加利西亞語","Manx":"曼島語","Guarani":"瓜拉尼語","German Sign Language":"德國手語","Gujarati":"古吉拉特語","Haitian":"海地語","Hausa":"豪薩語","Serbo-Croatian":"塞爾維亞-克羅埃西亞語","Hebrew":"希伯來語","Herero":"赫雷羅語","Hindi":"印地語","Hiri Motu":"希里摩圖語","Croatian":"克羅埃西亞語","Hungarian":"匈牙利語","Armenian":"亞美尼亞語","Igbo":"伊博語","Sichuan Yi":"彝語北部方言","Inuktitut":"因紐特語","Indonesian":"印尼語","Inupiaq":"因紐皮雅特語","Icelandic":"冰島語","Italian":"義大利語","Javanese":"爪哇語","Japanese":"日語","Japanese Sign Language":"日本手語","Kalaallisut":"格陵蘭語","Kannada":"康納達語","Kashmiri":"喀什米爾語","Georgian":"喬治亞語","Kanuri":"卡努里語","Kazakh":"哈薩克語","Khmer":"高棉語","Kikuyu":"基庫尤語","Kinyarwanda":"盧安達語","Kirghiz":"吉爾吉斯語","Komi":"科米語","Kongo":"剛果語","Korean":"韓語","Kuanyama":"Kuanyama 語","Kurdish":"庫德語","Lao":"寮語","Latvian":"拉脫維亞語","Limburgan":"林堡語","Lingala":"林格拉語","Lithuanian":"立陶宛語","Luxembourgish":"盧森堡語","Luba-Katanga":"盧巴卡丹加語","Ganda":"盧干達語","Marshallese":"馬紹爾語","Malayalam":"馬拉雅拉姆語","Marathi":"馬拉提語","Macedonian":"馬其頓語","Malagasy":"馬拉加斯語","Maltese":"馬爾他語","Mongolian":"蒙古語","Maori":"毛利語","Malay (macrolanguage)":"馬來語","Burmese":"緬甸語","Nauru":"諾魯語","Navajo":"納瓦荷語","South Ndebele":"南恩德貝勒語","North Ndebele":"北恩德貝勒語","Ndonga":"恩敦加語","Nepali (macrolanguage)":"尼泊爾語","Dutch":"荷蘭語","Norwegian Nynorsk":"新挪威語","Norwegian Bokmål":"書面挪威語","Norwegian":"挪威語","Nyanja":"尼揚賈語","Occitan (post 1500)":"奧克語","Ojibwa":"歐及布威語","Oriya (macrolanguage)":"歐利亞語","Oromo":"奧羅莫語","Ossetian":"奧塞提亞語","Panjabi":"旁遮普語","Pakistan Sign Language":"巴基斯坦手語","Polish":"波蘭語","Portuguese":"葡萄牙語","Pushto":"普什圖語","Quechua":"奇楚瓦語","Romansh":"羅曼什語","Romanian":"羅馬尼亞語","Russian Sign Language":"俄羅斯手語","Rundi":"克倫地語","Russian":"俄語","Sango":"桑戈語","Saudi Arabian Sign Language":"沙烏地阿拉伯手語","South African Sign Language":"南非手語","Sinhala":"僧伽羅語","Slovak":"斯洛伐克語","Slovenian":"斯洛維尼亞語","Northern Sami":"北方薩米語","Samoan":"薩摩亞語","Shona":"修納語","Sindhi":"信德語","Somali":"索馬利亞語","Southern Sotho":"塞索托語","Spanish":"西班牙語","Albanian":"阿爾巴尼亞語","Sardinian":"薩丁尼亞語","Serbian":"塞爾維亞語","Swati":"史瓦濟語","Sundanese":"巽他語","Swahili (macrolanguage)":"斯瓦希里語","Swedish":"瑞典語","Swedish Sign Language":"瑞典手語","Tahitian":"大溪地語","Tamil":"坦米爾語","Tatar":"韃靼語","Telugu":"泰盧固語","Tajik":"塔吉克語","Tagalog":"他加祿語","Thai":"泰語","Tigrinya":"提格利尼亞語","Tonga (Tonga Islands)":"東加語","Tswana":"札那語","Tsonga":"宋加語","Turkmen":"土庫曼語","Turkish":"土耳其語","Twi":"契維語","Uighur":"維吾爾語","Ukrainian":"烏克蘭語","Urdu":"烏爾都語","Uzbek":"烏茲別克語","Venda":"文達語","Vietnamese":"越南語","Walloon":"瓦隆語","Wolof":"沃洛夫語","Xhosa":"科薩語","Yiddish":"意第緒語","Yoruba":"約魯巴語","Zhuang":"壯語","Chinese":"漢語","Zulu":"祖魯語"} \ No newline at end of file
diff --git a/client/yarn.lock b/client/yarn.lock
index 5a95f342e..f75d7787c 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -2,28 +2,27 @@
2# yarn lockfile v1 2# yarn lockfile v1
3 3
4 4
5"@angular-devkit/architect@0.6.8": 5"@angular-devkit/architect@0.7.1":
6 version "0.6.8" 6 version "0.7.1"
7 resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.6.8.tgz#977acc605aba45d21b95ca704cc99492e14299dd" 7 resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.7.1.tgz#c1e999f6565e4596d0912ea30c190981f79a9481"
8 dependencies: 8 dependencies:
9 "@angular-devkit/core" "0.6.8" 9 "@angular-devkit/core" "0.7.1"
10 rxjs "^6.0.0" 10 rxjs "^6.0.0"
11 11
12"@angular-devkit/build-angular@~0.6.1": 12"@angular-devkit/build-angular@^0.7.1":
13 version "0.6.8" 13 version "0.7.1"
14 resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.6.8.tgz#ea108509f970efc9cd9087a47894c0164dd2d0c0" 14 resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.7.1.tgz#797d78a5eb7d275cbe2b2bc90ca82285888c5a96"
15 dependencies: 15 dependencies:
16 "@angular-devkit/architect" "0.6.8" 16 "@angular-devkit/architect" "0.7.1"
17 "@angular-devkit/build-optimizer" "0.6.8" 17 "@angular-devkit/build-optimizer" "0.7.1"
18 "@angular-devkit/core" "0.6.8" 18 "@angular-devkit/build-webpack" "0.7.1"
19 "@ngtools/webpack" "6.0.8" 19 "@angular-devkit/core" "0.7.1"
20 "@ngtools/webpack" "6.1.1"
20 ajv "~6.4.0" 21 ajv "~6.4.0"
21 autoprefixer "^8.4.1" 22 autoprefixer "^8.4.1"
22 cache-loader "^1.2.2"
23 chalk "~2.2.2"
24 circular-dependency-plugin "^5.0.2" 23 circular-dependency-plugin "^5.0.2"
25 clean-css "^4.1.11" 24 clean-css "^4.1.11"
26 copy-webpack-plugin "^4.5.1" 25 copy-webpack-plugin "^4.5.2"
27 file-loader "^1.1.11" 26 file-loader "^1.1.11"
28 glob "^7.0.3" 27 glob "^7.0.3"
29 html-webpack-plugin "^3.0.6" 28 html-webpack-plugin "^3.0.6"
@@ -33,8 +32,6 @@
33 less "^3.0.4" 32 less "^3.0.4"
34 less-loader "^4.1.0" 33 less-loader "^4.1.0"
35 license-webpack-plugin "^1.3.1" 34 license-webpack-plugin "^1.3.1"
36 lodash "^4.17.4"
37 memory-fs "^0.4.1"
38 mini-css-extract-plugin "~0.4.0" 35 mini-css-extract-plugin "~0.4.0"
39 minimatch "^3.0.4" 36 minimatch "^3.0.4"
40 opn "^5.1.0" 37 opn "^5.1.0"
@@ -45,10 +42,9 @@
45 postcss-loader "^2.1.5" 42 postcss-loader "^2.1.5"
46 postcss-url "^7.3.2" 43 postcss-url "^7.3.2"
47 raw-loader "^0.5.1" 44 raw-loader "^0.5.1"
48 resolve "^1.5.0"
49 rxjs "^6.0.0" 45 rxjs "^6.0.0"
50 sass-loader "^7.0.1" 46 sass-loader "~6.0.7"
51 silent-error "^1.1.0" 47 source-map-loader "^0.2.3"
52 source-map-support "^0.5.0" 48 source-map-support "^0.5.0"
53 stats-webpack-plugin "^0.6.2" 49 stats-webpack-plugin "^0.6.2"
54 style-loader "^0.21.0" 50 style-loader "^0.21.0"
@@ -57,127 +53,133 @@
57 tree-kill "^1.2.0" 53 tree-kill "^1.2.0"
58 uglifyjs-webpack-plugin "^1.2.5" 54 uglifyjs-webpack-plugin "^1.2.5"
59 url-loader "^1.0.1" 55 url-loader "^1.0.1"
60 webpack "~4.8.1" 56 webpack "~4.9.2"
61 webpack-dev-middleware "^3.1.3" 57 webpack-dev-middleware "^3.1.3"
62 webpack-dev-server "^3.1.4" 58 webpack-dev-server "^3.1.4"
63 webpack-merge "^4.1.2" 59 webpack-merge "^4.1.2"
64 webpack-sources "^1.1.0" 60 webpack-sources "^1.1.0"
65 webpack-subresource-integrity "^1.1.0-rc.4" 61 webpack-subresource-integrity "^1.1.0-rc.4"
66 optionalDependencies: 62 optionalDependencies:
67 node-sass "^4.9.0" 63 node-sass "^4.9.1"
68 64
69"@angular-devkit/build-optimizer@0.6.8": 65"@angular-devkit/build-optimizer@0.7.1":
70 version "0.6.8" 66 version "0.7.1"
71 resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.6.8.tgz#9e18a4f447290d3a8e32df1110aac8b98b80dec2" 67 resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.7.1.tgz#05bb646ab7cc714172fd554bd3e0e1beb7d8becc"
72 dependencies: 68 dependencies:
73 loader-utils "^1.1.0" 69 loader-utils "^1.1.0"
74 source-map "^0.5.6" 70 source-map "^0.5.6"
75 typescript "~2.9.1" 71 typescript "~2.9.1"
76 webpack-sources "^1.1.0" 72 webpack-sources "^1.1.0"
77 73
78"@angular-devkit/core@0.6.8": 74"@angular-devkit/build-webpack@0.7.1":
79 version "0.6.8" 75 version "0.7.1"
80 resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.6.8.tgz#3b09d97bd2588f0091df11921f7ed772431806aa" 76 resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.7.1.tgz#8ad519f598f89214a132207f7f5369cc4b51d18c"
77 dependencies:
78 "@angular-devkit/architect" "0.7.1"
79 "@angular-devkit/core" "0.7.1"
80 rxjs "^6.0.0"
81
82"@angular-devkit/core@0.7.1":
83 version "0.7.1"
84 resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.7.1.tgz#a8c2ef8cca34d6918ebe618317fee5b0ec84a1e9"
81 dependencies: 85 dependencies:
82 ajv "~6.4.0" 86 ajv "~6.4.0"
83 chokidar "^2.0.3" 87 chokidar "^2.0.3"
84 rxjs "^6.0.0" 88 rxjs "^6.0.0"
85 source-map "^0.5.6" 89 source-map "^0.5.6"
86 90
87"@angular-devkit/schematics@0.6.8": 91"@angular-devkit/schematics@0.7.1":
88 version "0.6.8" 92 version "0.7.1"
89 resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.6.8.tgz#6360a0271f1f422862bf932a03b3741e76ac5ff0" 93 resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.7.1.tgz#4b805c66e38f09553ee953e4c81f993432a582fe"
90 dependencies: 94 dependencies:
91 "@angular-devkit/core" "0.6.8" 95 "@angular-devkit/core" "0.7.1"
92 rxjs "^6.0.0" 96 rxjs "^6.0.0"
93 97
94"@angular/animations@~6.0.2": 98"@angular/animations@~6.1.0":
95 version "6.0.9" 99 version "6.1.0"
96 resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-6.0.9.tgz#c077b8d7542117e42365e14f0f030ea9f9a7db78" 100 resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-6.1.0.tgz#498d3a5bbfe4c89b044c1073007913199b9b98b9"
97 dependencies: 101 dependencies:
98 tslib "^1.9.0" 102 tslib "^1.9.0"
99 103
100"@angular/cli@6.0.8": 104"@angular/cli@~6.1.0":
101 version "6.0.8" 105 version "6.1.1"
102 resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.0.8.tgz#65070958b944be30053232c51f8449b7ddd4d92a" 106 resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-6.1.1.tgz#a5d56ad2fbff71bead6b62d0000b1dda4099613d"
103 dependencies: 107 dependencies:
104 "@angular-devkit/architect" "0.6.8" 108 "@angular-devkit/architect" "0.7.1"
105 "@angular-devkit/core" "0.6.8" 109 "@angular-devkit/core" "0.7.1"
106 "@angular-devkit/schematics" "0.6.8" 110 "@angular-devkit/schematics" "0.7.1"
107 "@schematics/angular" "0.6.8" 111 "@schematics/angular" "0.7.1"
108 "@schematics/update" "0.6.8" 112 "@schematics/update" "0.7.1"
109 opn "~5.3.0" 113 opn "^5.3.0"
110 resolve "^1.1.7"
111 rxjs "^6.0.0" 114 rxjs "^6.0.0"
112 semver "^5.1.0" 115 semver "^5.1.0"
113 silent-error "^1.0.0"
114 symbol-observable "^1.2.0" 116 symbol-observable "^1.2.0"
115 yargs-parser "^10.0.0" 117 yargs-parser "^10.0.0"
116 118
117"@angular/common@~6.0.2": 119"@angular/common@~6.1.0":
118 version "6.0.9" 120 version "6.1.0"
119 resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.0.9.tgz#e12fc4ea74cdb9f007af1098d3573c8d5441680a" 121 resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.1.0.tgz#7666c385409cd8d313cc66eade2f8a7410a12256"
120 dependencies: 122 dependencies:
121 tslib "^1.9.0" 123 tslib "^1.9.0"
122 124
123"@angular/compiler-cli@~6.0.2": 125"@angular/compiler-cli@~6.1.0":
124 version "6.0.9" 126 version "6.1.0"
125 resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.0.9.tgz#a4b48b37d8b3dd8d702e034d4f062596d048a8a2" 127 resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.1.0.tgz#8015222a3aa47d8d71a594a6fdbaf08335d1f44c"
126 dependencies: 128 dependencies:
127 chokidar "^1.4.2" 129 chokidar "^1.4.2"
128 minimist "^1.2.0" 130 minimist "^1.2.0"
129 reflect-metadata "^0.1.2" 131 reflect-metadata "^0.1.2"
130 tsickle "^0.29.0" 132 tsickle "^0.30.0"
131 133
132"@angular/compiler@~6.0.2": 134"@angular/compiler@~6.1.0":
133 version "6.0.9" 135 version "6.1.0"
134 resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.0.9.tgz#7d4fbb08f88cbef7cff78e11a9474e8df5516bee" 136 resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.1.0.tgz#b945439fb3cf6a33d297fcb9a08e487f196de901"
135 dependencies: 137 dependencies:
136 tslib "^1.9.0" 138 tslib "^1.9.0"
137 139
138"@angular/core@~6.0.2": 140"@angular/core@~6.1.0":
139 version "6.0.9" 141 version "6.1.0"
140 resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.0.9.tgz#a68cc0f5ddffa535df65f3e798ba2fcd6f6eec1b" 142 resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.1.0.tgz#d591a97c42cb5efd1ece0f1542cb30c7894d3661"
141 dependencies: 143 dependencies:
142 tslib "^1.9.0" 144 tslib "^1.9.0"
143 145
144"@angular/forms@~6.0.2": 146"@angular/forms@~6.1.0":
145 version "6.0.9" 147 version "6.1.0"
146 resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.0.9.tgz#4252626875319f09e03d6b5eb61ea8d274061b8f" 148 resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.1.0.tgz#7e62913b07b67d002ebddf735725d2839a6c3a63"
147 dependencies: 149 dependencies:
148 tslib "^1.9.0" 150 tslib "^1.9.0"
149 151
150"@angular/http@~6.0.2": 152"@angular/http@~6.1.0":
151 version "6.0.9" 153 version "6.1.0"
152 resolved "https://registry.yarnpkg.com/@angular/http/-/http-6.0.9.tgz#199c04cc0085bbeba44b9832ba029848c376d5a9" 154 resolved "https://registry.yarnpkg.com/@angular/http/-/http-6.1.0.tgz#8712f418d5b9f9047c306da95e31465178e1beef"
153 dependencies: 155 dependencies:
154 tslib "^1.9.0" 156 tslib "^1.9.0"
155 157
156"@angular/language-service@^6.0.1": 158"@angular/language-service@~6.1.0":
157 version "6.0.9" 159 version "6.1.0"
158 resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-6.0.9.tgz#46663338185d321dc5cabeed72bec695775a104d" 160 resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-6.1.0.tgz#3c73ee95acb5d1b74319d81b01e02701bbd1f539"
159 161
160"@angular/platform-browser-dynamic@~6.0.2": 162"@angular/platform-browser-dynamic@~6.1.0":
161 version "6.0.9" 163 version "6.1.0"
162 resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.9.tgz#237fff728a518cc8fb89094638ff32c40d310374" 164 resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.0.tgz#b9341c774aacfe7180ceb1bc82c2acb3ab093018"
163 dependencies: 165 dependencies:
164 tslib "^1.9.0" 166 tslib "^1.9.0"
165 167
166"@angular/platform-browser@~6.0.2": 168"@angular/platform-browser@~6.1.0":
167 version "6.0.9" 169 version "6.1.0"
168 resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.0.9.tgz#3f6738046eca03fffdd4558ab3ca75673b6f11d1" 170 resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.1.0.tgz#8beb2feb4f072e925b6fbeb8259887335f4a98be"
169 dependencies: 171 dependencies:
170 tslib "^1.9.0" 172 tslib "^1.9.0"
171 173
172"@angular/router@~6.0.2": 174"@angular/router@~6.1.0":
173 version "6.0.9" 175 version "6.1.0"
174 resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.0.9.tgz#c40572031c7ff2e1dfb5279a8cb508b962a85262" 176 resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.1.0.tgz#84cd28211faa31c53f49a571217603ac32a3cce8"
175 dependencies: 177 dependencies:
176 tslib "^1.9.0" 178 tslib "^1.9.0"
177 179
178"@angular/service-worker@^6.0.1": 180"@angular/service-worker@~6.1.0":
179 version "6.0.9" 181 version "6.1.0"
180 resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-6.0.9.tgz#ea4e0ab65218269c24e0e4de026a7293d764560f" 182 resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-6.1.0.tgz#1072cb8829a1b3285291490f503074ce7170d670"
181 dependencies: 183 dependencies:
182 tslib "^1.9.0" 184 tslib "^1.9.0"
183 185
@@ -185,37 +187,38 @@
185 version "2.1.3" 187 version "2.1.3"
186 resolved "https://registry.yarnpkg.com/@angularclass/hmr/-/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f" 188 resolved "https://registry.yarnpkg.com/@angularclass/hmr/-/hmr-2.1.3.tgz#34e658ed3da37f23b0a200e2da5a89be92bb209f"
187 189
188"@ngtools/webpack@6.0.8": 190"@ngtools/webpack@6.1.1":
189 version "6.0.8" 191 version "6.1.1"
190 resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.0.8.tgz#a05bce526aee9da62bb230a95fba83fee99d0bca" 192 resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-6.1.1.tgz#dcfea287c0c1358f3e123621c65b0e3ccaab5b70"
191 dependencies: 193 dependencies:
192 "@angular-devkit/core" "0.6.8" 194 "@angular-devkit/core" "0.7.1"
195 rxjs "^6.0.0"
193 tree-kill "^1.0.0" 196 tree-kill "^1.0.0"
194 webpack-sources "^1.1.0" 197 webpack-sources "^1.1.0"
195 198
196"@ngx-loading-bar/core@2.1.1", "@ngx-loading-bar/core@^2.0.0": 199"@ngx-loading-bar/core@2.1.2", "@ngx-loading-bar/core@^2.0.0":
197 version "2.1.1" 200 version "2.1.2"
198 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/core/-/core-2.1.1.tgz#e08f6766b5a04d5b1f69f19b9aef9c0e412ecedc" 201 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/core/-/core-2.1.2.tgz#13656d27ece2bc384469899a0624a490f18bedd7"
199 dependencies: 202 dependencies:
200 tslib "^1.7.1" 203 tslib "^1.7.1"
201 204
202"@ngx-loading-bar/http-client@^2.0.0": 205"@ngx-loading-bar/http-client@^2.0.0":
203 version "2.1.1" 206 version "2.1.2"
204 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/http-client/-/http-client-2.1.1.tgz#fc2831af3c20e8b3a5ab5f776812b24e8f837bfa" 207 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/http-client/-/http-client-2.1.2.tgz#49903c93986e874aa7b82f8350e6187595840487"
205 dependencies: 208 dependencies:
206 "@ngx-loading-bar/core" "2.1.1" 209 "@ngx-loading-bar/core" "2.1.2"
207 tslib "^1.7.1" 210 tslib "^1.7.1"
208 211
209"@ngx-loading-bar/router@^2.0.0": 212"@ngx-loading-bar/router@^2.0.0":
210 version "2.1.1" 213 version "2.1.2"
211 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/router/-/router-2.1.1.tgz#5ae2d070b847dd9ddee143aaaaa95713e408c6f1" 214 resolved "https://registry.yarnpkg.com/@ngx-loading-bar/router/-/router-2.1.2.tgz#b1c77c64a2edee41805957bd36f4eccc459d8e3f"
212 dependencies: 215 dependencies:
213 "@ngx-loading-bar/core" "2.1.1" 216 "@ngx-loading-bar/core" "2.1.2"
214 tslib "^1.7.1" 217 tslib "^1.7.1"
215 218
216"@ngx-meta/core@^6.0.0-rc.1": 219"@ngx-meta/core@^6.0.0-rc.1":
217 version "6.0.0-rc.1" 220 version "6.0.0"
218 resolved "https://registry.yarnpkg.com/@ngx-meta/core/-/core-6.0.0-rc.1.tgz#654daa08e4ac66856a7bad95d9be6250c31d18d8" 221 resolved "https://registry.yarnpkg.com/@ngx-meta/core/-/core-6.0.0.tgz#3cdc176e810fbe7b9b2d0d09abc5c8606ec61023"
219 dependencies: 222 dependencies:
220 tslib "~1.9.0" 223 tslib "~1.9.0"
221 224
@@ -227,21 +230,22 @@
227 tslib "^1.9.0" 230 tslib "^1.9.0"
228 yargs "10.0.3" 231 yargs "10.0.3"
229 232
230"@schematics/angular@0.6.8": 233"@schematics/angular@0.7.1":
231 version "0.6.8" 234 version "0.7.1"
232 resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.6.8.tgz#a8d1afc33e77160296b0a8b3d02f0ee4dfe9d1d2" 235 resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.7.1.tgz#29db78d148d3260e9bb545c86a4c6bfbaed9e933"
233 dependencies: 236 dependencies:
234 "@angular-devkit/core" "0.6.8" 237 "@angular-devkit/core" "0.7.1"
235 "@angular-devkit/schematics" "0.6.8" 238 "@angular-devkit/schematics" "0.7.1"
236 typescript ">=2.6.2 <2.8" 239 typescript ">=2.6.2 <2.8"
237 240
238"@schematics/update@0.6.8": 241"@schematics/update@0.7.1":
239 version "0.6.8" 242 version "0.7.1"
240 resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.6.8.tgz#3b4f897dd3b28335acc53a49d9f0dc10ebd934a7" 243 resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.7.1.tgz#56cf82df0bf8f5a0ef75aef94b7a9bc9598d7f51"
241 dependencies: 244 dependencies:
242 "@angular-devkit/core" "0.6.8" 245 "@angular-devkit/core" "0.7.1"
243 "@angular-devkit/schematics" "0.6.8" 246 "@angular-devkit/schematics" "0.7.1"
244 npm-registry-client "^8.5.1" 247 npm-registry-client "^8.5.1"
248 rc "^1.2.8"
245 rxjs "^6.0.0" 249 rxjs "^6.0.0"
246 semver "^5.3.0" 250 semver "^5.3.0"
247 semver-intersect "^1.1.2" 251 semver-intersect "^1.1.2"
@@ -271,14 +275,14 @@
271 resolved "https://registry.yarnpkg.com/@types/jschannel/-/jschannel-1.0.0.tgz#2e25447f661de85e221647076e9d257d9fb76d0c" 275 resolved "https://registry.yarnpkg.com/@types/jschannel/-/jschannel-1.0.0.tgz#2e25447f661de85e221647076e9d257d9fb76d0c"
272 276
273"@types/lodash-es@^4.17.0": 277"@types/lodash-es@^4.17.0":
274 version "4.17.0" 278 version "4.17.1"
275 resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.0.tgz#ed9044d62ee36a93e0650b112701986b1c74c766" 279 resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.1.tgz#56745e5411558362aeca31def918f88f725dd29d"
276 dependencies: 280 dependencies:
277 "@types/lodash" "*" 281 "@types/lodash" "*"
278 282
279"@types/lodash@*": 283"@types/lodash@*":
280 version "4.14.112" 284 version "4.14.115"
281 resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.112.tgz#4a8d8e5716b97a1ac01fe1931ad1e4cba719de5a" 285 resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.115.tgz#54d171b2ce12c058742443b5f6754760f701b8f9"
282 286
283"@types/magnet-uri@*": 287"@types/magnet-uri@*":
284 version "5.1.1" 288 version "5.1.1"
@@ -291,8 +295,8 @@
291 resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.4.tgz#c5f67365916044b342dae8d702724788ba0b5b74" 295 resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.4.tgz#c5f67365916044b342dae8d702724788ba0b5b74"
292 296
293"@types/node@*", "@types/node@^10.5.2": 297"@types/node@*", "@types/node@^10.5.2":
294 version "10.5.2" 298 version "10.5.4"
295 resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.2.tgz#f19f05314d5421fe37e74153254201a7bf00a707" 299 resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.4.tgz#6eccc158504357d1da91434d75e86acde94bb10b"
296 300
297"@types/node@^6.0.46": 301"@types/node@^6.0.46":
298 version "6.0.114" 302 version "6.0.114"
@@ -317,16 +321,16 @@
317 resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" 321 resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5"
318 322
319"@types/sanitize-html@^1.14.0": 323"@types/sanitize-html@^1.14.0":
320 version "1.14.0" 324 version "1.18.0"
321 resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.14.0.tgz#9a03ec58306e24feaa3fbdb8ab593934d53ecb05" 325 resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.18.0.tgz#de5cb560a41308ea8474e93b9d10bbb4050692f5"
322 326
323"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": 327"@types/selenium-webdriver@^3.0.0":
324 version "2.53.43" 328 version "3.0.10"
325 resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz#2de3d718819bc20165754c4a59afb7e9833f6707" 329 resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.10.tgz#e98cc6f05b4b436277671c784ee2f9d05a634f9b"
326 330
327"@types/simple-peer@*": 331"@types/simple-peer@*":
328 version "6.1.4" 332 version "6.1.5"
329 resolved "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.4.tgz#1d1384e1d8dc17b9e7d1673d704febe91ca48191" 333 resolved "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.5.tgz#9353f84cefd052a9684b9a5662c983fc2bcfab41"
330 dependencies: 334 dependencies:
331 "@types/node" "*" 335 "@types/node" "*"
332 336
@@ -343,7 +347,19 @@
343 "@types/parse-torrent" "*" 347 "@types/parse-torrent" "*"
344 "@types/simple-peer" "*" 348 "@types/simple-peer" "*"
345 349
346"@videojs/http-streaming@1.2.1", "@videojs/http-streaming@^1.0.2": 350"@videojs/http-streaming@1.1.0":
351 version "1.1.0"
352 resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-1.1.0.tgz#ae51919491090eacaab525da30bc0c1beede2515"
353 dependencies:
354 aes-decrypter "3.0.0"
355 global "^4.3.0"
356 m3u8-parser "4.2.0"
357 mpd-parser "0.6.1"
358 mux.js "4.4.1"
359 url-toolkit "^2.1.3"
360 video.js "^6.8.0 || ^7.0.0"
361
362"@videojs/http-streaming@1.2.1":
347 version "1.2.1" 363 version "1.2.1"
348 resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-1.2.1.tgz#4a221359952c28b2ded2c612e677369a647cf57d" 364 resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-1.2.1.tgz#4a221359952c28b2ded2c612e677369a647cf57d"
349 dependencies: 365 dependencies:
@@ -644,8 +660,8 @@ acorn@^5.0.0, acorn@^5.3.0, acorn@^5.6.2:
644 resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" 660 resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
645 661
646addr-to-ip-port@^1.0.1, addr-to-ip-port@^1.4.2: 662addr-to-ip-port@^1.0.1, addr-to-ip-port@^1.4.2:
647 version "1.4.3" 663 version "1.5.1"
648 resolved "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.4.3.tgz#5a78cc30b8d328e213ca6d6f99c0380be4a51246" 664 resolved "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz#bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208"
649 665
650addressparser@1.0.1: 666addressparser@1.0.1:
651 version "1.0.1" 667 version "1.0.1"
@@ -663,10 +679,6 @@ adjust-sourcemap-loader@^1.1.0:
663 object-path "^0.9.2" 679 object-path "^0.9.2"
664 regex-parser "^2.2.9" 680 regex-parser "^2.2.9"
665 681
666adm-zip@0.4.4:
667 version "0.4.4"
668 resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736"
669
670adm-zip@^0.4.9: 682adm-zip@^0.4.9:
671 version "0.4.11" 683 version "0.4.11"
672 resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a" 684 resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a"
@@ -773,7 +785,7 @@ ansi-styles@^2.2.1:
773 version "2.2.1" 785 version "2.2.1"
774 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 786 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
775 787
776ansi-styles@^3.1.0, ansi-styles@^3.2.1: 788ansi-styles@^3.2.1:
777 version "3.2.1" 789 version "3.2.1"
778 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 790 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
779 dependencies: 791 dependencies:
@@ -945,7 +957,7 @@ async@1.x, async@^1.4.0, async@^1.5.2:
945 version "1.5.2" 957 version "1.5.2"
946 resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 958 resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
947 959
948async@^2.1.4, async@^2.4.1, async@~2.6.0: 960async@^2.1.4, async@^2.4.1, async@^2.5.0, async@~2.6.0:
949 version "2.6.1" 961 version "2.6.1"
950 resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 962 resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
951 dependencies: 963 dependencies:
@@ -1142,14 +1154,10 @@ binary-extensions@^1.0.0:
1142 version "1.11.0" 1154 version "1.11.0"
1143 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 1155 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
1144 1156
1145binary-search@^1.2.0: 1157binary-search@^1.3.4:
1146 version "1.3.4" 1158 version "1.3.4"
1147 resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz#d15f44ff9226ef309d85247fa0dbfbf659955f56" 1159 resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz#d15f44ff9226ef309d85247fa0dbfbf659955f56"
1148 1160
1149bindings@~1.3.0:
1150 version "1.3.0"
1151 resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
1152
1153bitfield@^2.0.0: 1161bitfield@^2.0.0:
1154 version "2.0.0" 1162 version "2.0.0"
1155 resolved "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz#fbe6767592fe5b4c87ecf1d04126294cc1bfa837" 1163 resolved "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz#fbe6767592fe5b4c87ecf1d04126294cc1bfa837"
@@ -1178,8 +1186,8 @@ bittorrent-dht@^8.0.0, bittorrent-dht@^8.0.1:
1178 simple-sha1 "^2.1.0" 1186 simple-sha1 "^2.1.0"
1179 1187
1180bittorrent-peerid@^1.0.2: 1188bittorrent-peerid@^1.0.2:
1181 version "1.2.0" 1189 version "1.3.0"
1182 resolved "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.2.0.tgz#9f675612f0e6afc6ef3450dfba51ff7238abf371" 1190 resolved "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.0.tgz#a435d3b267c887c586c528b53359845905d7c158"
1183 1191
1184bittorrent-protocol@^2.1.5: 1192bittorrent-protocol@^2.1.5:
1185 version "2.4.2" 1193 version "2.4.2"
@@ -1197,8 +1205,8 @@ bittorrent-protocol@^2.1.5:
1197 xtend "^4.0.0" 1205 xtend "^4.0.0"
1198 1206
1199bittorrent-tracker@^9.0.0: 1207bittorrent-tracker@^9.0.0:
1200 version "9.9.1" 1208 version "9.10.0"
1201 resolved "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.9.1.tgz#a592f9383f027927a87a2704f69583278538e99a" 1209 resolved "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.10.0.tgz#8d9aea670c885411dd0bb9239b1e4944111bf49f"
1202 dependencies: 1210 dependencies:
1203 bencode "^2.0.0" 1211 bencode "^2.0.0"
1204 bittorrent-peerid "^1.0.2" 1212 bittorrent-peerid "^1.0.2"
@@ -1221,17 +1229,11 @@ bittorrent-tracker@^9.0.0:
1221 string2compact "^1.1.1" 1229 string2compact "^1.1.1"
1222 uniq "^1.0.1" 1230 uniq "^1.0.1"
1223 unordered-array-remove "^1.0.2" 1231 unordered-array-remove "^1.0.2"
1224 ws "^5.0.0" 1232 ws "^6.0.0"
1225 xtend "^4.0.0" 1233 xtend "^4.0.0"
1226 optionalDependencies: 1234 optionalDependencies:
1227 bufferutil "^3.0.0" 1235 bufferutil "^4.0.0"
1228 1236 utf-8-validate "^5.0.1"
1229bl@^1.0.0:
1230 version "1.2.2"
1231 resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
1232 dependencies:
1233 readable-stream "^2.3.5"
1234 safe-buffer "^5.1.1"
1235 1237
1236bl@~1.1.2: 1238bl@~1.1.2:
1237 version "1.1.2" 1239 version "1.1.2"
@@ -1434,11 +1436,17 @@ browserslist@^3.2.8:
1434 caniuse-lite "^1.0.30000844" 1436 caniuse-lite "^1.0.30000844"
1435 electron-to-chromium "^1.3.47" 1437 electron-to-chromium "^1.3.47"
1436 1438
1439browserstack@^1.5.1:
1440 version "1.5.1"
1441 resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.1.tgz#e2dfa66ffee940ebad0a07f7e00fd4687c455d66"
1442 dependencies:
1443 https-proxy-agent "^2.2.1"
1444
1437buffer-alloc-unsafe@^1.1.0: 1445buffer-alloc-unsafe@^1.1.0:
1438 version "1.1.0" 1446 version "1.1.0"
1439 resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" 1447 resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
1440 1448
1441buffer-alloc@^1.1.0: 1449buffer-alloc@^1.1.0, buffer-alloc@^1.2.0:
1442 version "1.2.0" 1450 version "1.2.0"
1443 resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" 1451 resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
1444 dependencies: 1452 dependencies:
@@ -1453,9 +1461,9 @@ buffer-fill@^1.0.0:
1453 version "1.0.0" 1461 version "1.0.0"
1454 resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" 1462 resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
1455 1463
1456buffer-from@^1.0.0: 1464buffer-from@^1.0.0, buffer-from@^1.1.0:
1457 version "1.1.0" 1465 version "1.1.1"
1458 resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 1466 resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1459 1467
1460buffer-indexof@^1.0.0: 1468buffer-indexof@^1.0.0:
1461 version "1.1.1" 1469 version "1.1.1"
@@ -1478,19 +1486,17 @@ buffer@^4.3.0:
1478 isarray "^1.0.0" 1486 isarray "^1.0.0"
1479 1487
1480buffer@^5.1.0: 1488buffer@^5.1.0:
1481 version "5.1.0" 1489 version "5.2.0"
1482 resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz#c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe" 1490 resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.0.tgz#53cf98241100099e9eeae20ee6d51d21b16e541e"
1483 dependencies: 1491 dependencies:
1484 base64-js "^1.0.2" 1492 base64-js "^1.0.2"
1485 ieee754 "^1.1.4" 1493 ieee754 "^1.1.4"
1486 1494
1487bufferutil@^3.0.0: 1495bufferutil@^4.0.0:
1488 version "3.0.5" 1496 version "4.0.0"
1489 resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.5.tgz#8abfc3b6da7aca6a13268b3f2482f0c7aa05fffb" 1497 resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.0.tgz#a5078160e443751a4e83b6f4d6d7e26c058326a0"
1490 dependencies: 1498 dependencies:
1491 bindings "~1.3.0" 1499 node-gyp-build "~3.4.0"
1492 nan "~2.10.0"
1493 prebuild-install "~4.0.0"
1494 1500
1495buildmail@4.0.1: 1501buildmail@4.0.1:
1496 version "4.0.1" 1502 version "4.0.1"
@@ -1558,15 +1564,6 @@ cache-chunk-store@^2.0.0:
1558 dependencies: 1564 dependencies:
1559 lru "^3.1.0" 1565 lru "^3.1.0"
1560 1566
1561cache-loader@^1.2.2:
1562 version "1.2.2"
1563 resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5"
1564 dependencies:
1565 loader-utils "^1.1.0"
1566 mkdirp "^0.5.1"
1567 neo-async "^2.5.0"
1568 schema-utils "^0.4.2"
1569
1570callsite@1.0.0: 1567callsite@1.0.0:
1571 version "1.0.0" 1568 version "1.0.0"
1572 resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" 1569 resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
@@ -1638,14 +1635,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4
1638 escape-string-regexp "^1.0.5" 1635 escape-string-regexp "^1.0.5"
1639 supports-color "^5.3.0" 1636 supports-color "^5.3.0"
1640 1637
1641chalk@~2.2.2:
1642 version "2.2.2"
1643 resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.2.tgz#4403f5cf18f35c05f51fbdf152bf588f956cf7cb"
1644 dependencies:
1645 ansi-styles "^3.1.0"
1646 escape-string-regexp "^1.0.5"
1647 supports-color "^4.0.0"
1648
1649chardet@^0.5.0: 1638chardet@^0.5.0:
1650 version "0.5.0" 1639 version "0.5.0"
1651 resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz#fe3ac73c00c3d865ffcc02a0682e2c20b6a06029" 1640 resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.5.0.tgz#fe3ac73c00c3d865ffcc02a0682e2c20b6a06029"
@@ -1828,8 +1817,8 @@ color-name@1.1.1:
1828 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 1817 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
1829 1818
1830colors@*, colors@^1.1.0: 1819colors@*, colors@^1.1.0:
1831 version "1.3.0" 1820 version "1.3.1"
1832 resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" 1821 resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.1.tgz#4accdb89cf2cabc7f982771925e9468784f32f3d"
1833 1822
1834colors@1.1.2: 1823colors@1.1.2:
1835 version "1.1.2" 1824 version "1.1.2"
@@ -1978,7 +1967,7 @@ copy-descriptor@^0.1.0:
1978 version "0.1.1" 1967 version "0.1.1"
1979 resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 1968 resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
1980 1969
1981copy-webpack-plugin@^4.5.1: 1970copy-webpack-plugin@^4.5.2:
1982 version "4.5.2" 1971 version "4.5.2"
1983 resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c" 1972 resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c"
1984 dependencies: 1973 dependencies:
@@ -2045,8 +2034,8 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
2045 sha.js "^2.4.8" 2034 sha.js "^2.4.8"
2046 2035
2047create-torrent@^3.24.5: 2036create-torrent@^3.24.5:
2048 version "3.32.0" 2037 version "3.32.1"
2049 resolved "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.32.0.tgz#f2fb1289cd9eaba5830d596b1d93e97b223457ad" 2038 resolved "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.32.1.tgz#e5a6c423ddc3ccb68e52d51dc6a3aefbab4d6d45"
2050 dependencies: 2039 dependencies:
2051 bencode "^2.0.0" 2040 bencode "^2.0.0"
2052 block-stream2 "^1.0.0" 2041 block-stream2 "^1.0.0"
@@ -2229,6 +2218,12 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
2229 version "1.2.0" 2218 version "1.2.0"
2230 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 2219 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
2231 2220
2221decamelize@^2.0.0:
2222 version "2.0.0"
2223 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7"
2224 dependencies:
2225 xregexp "4.0.0"
2226
2232decode-uri-component@^0.2.0: 2227decode-uri-component@^0.2.0:
2233 version "0.2.0" 2228 version "0.2.0"
2234 resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 2229 resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
@@ -2351,7 +2346,7 @@ detect-indent@^4.0.0:
2351 dependencies: 2346 dependencies:
2352 repeating "^2.0.0" 2347 repeating "^2.0.0"
2353 2348
2354detect-libc@^1.0.2, detect-libc@^1.0.3: 2349detect-libc@^1.0.2:
2355 version "1.0.3" 2350 version "1.0.3"
2356 resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 2351 resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
2357 2352
@@ -2502,10 +2497,11 @@ duplexify@^3.4.2, duplexify@^3.6.0:
2502 stream-shift "^1.0.0" 2497 stream-shift "^1.0.0"
2503 2498
2504ecc-jsbn@~0.1.1: 2499ecc-jsbn@~0.1.1:
2505 version "0.1.1" 2500 version "0.1.2"
2506 resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 2501 resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
2507 dependencies: 2502 dependencies:
2508 jsbn "~0.1.0" 2503 jsbn "~0.1.0"
2504 safer-buffer "^2.1.0"
2509 2505
2510ee-first@1.1.1: 2506ee-first@1.1.1:
2511 version "1.1.1" 2507 version "1.1.1"
@@ -2838,10 +2834,6 @@ expand-range@^1.8.1:
2838 dependencies: 2834 dependencies:
2839 fill-range "^2.1.0" 2835 fill-range "^2.1.0"
2840 2836
2841expand-template@^1.0.2:
2842 version "1.1.1"
2843 resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.1.tgz#981f188c0c3a87d2e28f559bc541426ff94f21dd"
2844
2845express@^4.16.2: 2837express@^4.16.2:
2846 version "4.16.3" 2838 version "4.16.3"
2847 resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 2839 resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
@@ -2891,8 +2883,8 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
2891 is-extendable "^1.0.1" 2883 is-extendable "^1.0.1"
2892 2884
2893extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: 2885extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
2894 version "3.0.1" 2886 version "3.0.2"
2895 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 2887 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
2896 2888
2897external-editor@^3.0.0: 2889external-editor@^3.0.0:
2898 version "3.0.0" 2890 version "3.0.0"
@@ -3087,6 +3079,12 @@ find-up@^2.0.0, find-up@^2.1.0:
3087 dependencies: 3079 dependencies:
3088 locate-path "^2.0.0" 3080 locate-path "^2.0.0"
3089 3081
3082find-up@^3.0.0:
3083 version "3.0.0"
3084 resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
3085 dependencies:
3086 locate-path "^3.0.0"
3087
3090flatten@^1.0.2: 3088flatten@^1.0.2:
3091 version "1.0.2" 3089 version "1.0.2"
3092 resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" 3090 resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
@@ -3206,10 +3204,6 @@ fs-chunk-store@^1.6.2:
3206 run-parallel "^1.1.2" 3204 run-parallel "^1.1.2"
3207 thunky "^1.0.1" 3205 thunky "^1.0.1"
3208 3206
3209fs-constants@^1.0.0:
3210 version "1.0.0"
3211 resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
3212
3213fs-minipass@^1.2.5: 3207fs-minipass@^1.2.5:
3214 version "1.2.5" 3208 version "1.2.5"
3215 resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 3209 resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
@@ -3326,10 +3320,6 @@ getpass@^0.1.1:
3326 dependencies: 3320 dependencies:
3327 assert-plus "^1.0.0" 3321 assert-plus "^1.0.0"
3328 3322
3329github-from-package@0.0.0:
3330 version "0.0.0"
3331 resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
3332
3333glob-base@^0.3.0: 3323glob-base@^0.3.0:
3334 version "0.3.0" 3324 version "0.3.0"
3335 resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 3325 resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@@ -3393,8 +3383,8 @@ glob@^6.0.4:
3393 path-is-absolute "^1.0.0" 3383 path-is-absolute "^1.0.0"
3394 3384
3395global-modules-path@^2.1.0: 3385global-modules-path@^2.1.0:
3396 version "2.1.0" 3386 version "2.3.0"
3397 resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.1.0.tgz#923ec524e8726bb0c1a4ed4b8e21e1ff80c88bbb" 3387 resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc"
3398 3388
3399global@4.3.2, global@^4.3.0, global@^4.3.1, global@^4.3.2, global@~4.3.0: 3389global@4.3.2, global@^4.3.0, global@^4.3.1, global@^4.3.2, global@~4.3.0:
3400 version "4.3.2" 3390 version "4.3.2"
@@ -3523,10 +3513,6 @@ has-flag@^1.0.0:
3523 version "1.0.0" 3513 version "1.0.0"
3524 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 3514 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
3525 3515
3526has-flag@^2.0.0:
3527 version "2.0.0"
3528 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
3529
3530has-flag@^3.0.0: 3516has-flag@^3.0.0:
3531 version "3.0.0" 3517 version "3.0.0"
3532 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 3518 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -3947,14 +3933,14 @@ ip@^1.0.1, ip@^1.1.0, ip@^1.1.2, ip@^1.1.3, ip@^1.1.4, ip@^1.1.5:
3947 version "1.1.5" 3933 version "1.1.5"
3948 resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 3934 resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
3949 3935
3950ipaddr.js@1.6.0: 3936ipaddr.js@1.8.0:
3951 version "1.6.0"
3952 resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
3953
3954"ipaddr.js@>= 0.1.5", ipaddr.js@^1.0.1:
3955 version "1.8.0" 3937 version "1.8.0"
3956 resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 3938 resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
3957 3939
3940"ipaddr.js@>= 0.1.5", ipaddr.js@^1.0.1:
3941 version "1.8.1"
3942 resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
3943
3958is-accessor-descriptor@^0.1.6: 3944is-accessor-descriptor@^0.1.6:
3959 version "0.1.6" 3945 version "0.1.6"
3960 resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 3946 resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
@@ -4348,6 +4334,12 @@ jasmine-core@~2.8.0:
4348 version "2.8.0" 4334 version "2.8.0"
4349 resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" 4335 resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
4350 4336
4337jasmine-diff@^0.1.3:
4338 version "0.1.3"
4339 resolved "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz#93ccc2dcc41028c5ddd4606558074839f2deeaa8"
4340 dependencies:
4341 diff "^3.2.0"
4342
4351jasmine-spec-reporter@^4.2.1: 4343jasmine-spec-reporter@^4.2.1:
4352 version "4.2.1" 4344 version "4.2.1"
4353 resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22" 4345 resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22"
@@ -4524,8 +4516,8 @@ karma-source-map-support@^1.2.0:
4524 source-map-support "^0.5.5" 4516 source-map-support "^0.5.5"
4525 4517
4526karma@^2.0.2: 4518karma@^2.0.2:
4527 version "2.0.4" 4519 version "2.0.5"
4528 resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.4.tgz#b399785f57e9bab1d3c4384db33fef4dec8ae349" 4520 resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.5.tgz#3710c7a2e71b1c439313f283846d88e04e4f918c"
4529 dependencies: 4521 dependencies:
4530 bluebird "^3.3.0" 4522 bluebird "^3.3.0"
4531 body-parser "^1.16.1" 4523 body-parser "^1.16.1"
@@ -4606,8 +4598,8 @@ less-loader@^4.1.0:
4606 pify "^3.0.0" 4598 pify "^3.0.0"
4607 4599
4608less@^3.0.4: 4600less@^3.0.4:
4609 version "3.7.1" 4601 version "3.8.0"
4610 resolved "https://registry.yarnpkg.com/less/-/less-3.7.1.tgz#192e9dcef456ba3181a4e8d78a200f72a75e5c30" 4602 resolved "https://registry.yarnpkg.com/less/-/less-3.8.0.tgz#44785e40c23841c15ba3be741d36bd2775dd0596"
4611 optionalDependencies: 4603 optionalDependencies:
4612 errno "^0.1.1" 4604 errno "^0.1.1"
4613 graceful-fs "^4.1.2" 4605 graceful-fs "^4.1.2"
@@ -4700,7 +4692,7 @@ loader-runner@^2.3.0:
4700 version "2.3.0" 4692 version "2.3.0"
4701 resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" 4693 resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
4702 4694
4703loader-utils@^0.2.16: 4695loader-utils@^0.2.16, loader-utils@~0.2.2:
4704 version "0.2.17" 4696 version "0.2.17"
4705 resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" 4697 resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
4706 dependencies: 4698 dependencies:
@@ -4724,6 +4716,13 @@ locate-path@^2.0.0:
4724 p-locate "^2.0.0" 4716 p-locate "^2.0.0"
4725 path-exists "^3.0.0" 4717 path-exists "^3.0.0"
4726 4718
4719locate-path@^3.0.0:
4720 version "3.0.0"
4721 resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
4722 dependencies:
4723 p-locate "^3.0.0"
4724 path-exists "^3.0.0"
4725
4727lodash-es@^4.17.4: 4726lodash-es@^4.17.4:
4728 version "4.17.10" 4727 version "4.17.10"
4729 resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05" 4728 resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05"
@@ -4933,10 +4932,9 @@ m3u8-parser@4.2.0:
4933 resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-4.2.0.tgz#c8e0785fd17f741f4408b49466889274a9e36447" 4932 resolved "https://registry.yarnpkg.com/m3u8-parser/-/m3u8-parser-4.2.0.tgz#c8e0785fd17f741f4408b49466889274a9e36447"
4934 4933
4935magnet-uri@^5.1.3: 4934magnet-uri@^5.1.3:
4936 version "5.1.8" 4935 version "5.2.3"
4937 resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.1.8.tgz#4df33a3e97629352781fc6d0774c1cf3e9603abc" 4936 resolved "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.3.tgz#4b056679e6f83620b3bf69cdb709d6dce9a9d2f9"
4938 dependencies: 4937 dependencies:
4939 safe-buffer "^5.0.1"
4940 thirty-two "^1.0.1" 4938 thirty-two "^1.0.1"
4941 uniq "^1.0.1" 4939 uniq "^1.0.1"
4942 xtend "^4.0.0" 4940 xtend "^4.0.0"
@@ -5033,7 +5031,7 @@ memory-chunk-store@^1.2.0:
5033 version "1.3.0" 5031 version "1.3.0"
5034 resolved "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz#ae99e7e3b58b52db43d49d94722930d39459d0c4" 5032 resolved "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz#ae99e7e3b58b52db43d49d94722930d39459d0c4"
5035 5033
5036memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: 5034memory-fs@^0.4.0, memory-fs@~0.4.1:
5037 version "0.4.1" 5035 version "0.4.1"
5038 resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 5036 resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
5039 dependencies: 5037 dependencies:
@@ -5235,13 +5233,13 @@ move-concurrently@^1.0.1:
5235 rimraf "^2.5.4" 5233 rimraf "^2.5.4"
5236 run-queue "^1.0.3" 5234 run-queue "^1.0.3"
5237 5235
5238mp4-box-encoding@^1.1.0, mp4-box-encoding@^1.1.1: 5236mp4-box-encoding@^1.1.0, mp4-box-encoding@^1.3.0:
5239 version "1.2.0" 5237 version "1.3.0"
5240 resolved "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.2.0.tgz#1af31abb131fe5e711b4b421cf5b20b13473e4a9" 5238 resolved "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.3.0.tgz#2a6f750947ff68c3a498fd76cd6424c53d995d48"
5241 dependencies: 5239 dependencies:
5242 buffer-alloc "^1.1.0" 5240 buffer-alloc "^1.2.0"
5243 buffer-from "^1.0.0" 5241 buffer-from "^1.1.0"
5244 uint64be "^1.0.1" 5242 uint64be "^2.0.2"
5245 5243
5246mp4-stream@^2.0.0: 5244mp4-stream@^2.0.0:
5247 version "2.0.3" 5245 version "2.0.3"
@@ -5286,11 +5284,15 @@ mute-stream@0.0.7:
5286 version "0.0.7" 5284 version "0.0.7"
5287 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 5285 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
5288 5286
5287mux.js@4.4.1:
5288 version "4.4.1"
5289 resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.4.1.tgz#c9c9a5e7e9f69f1d5670f2cc71c4cefa45aa7aec"
5290
5289mux.js@4.5.0: 5291mux.js@4.5.0:
5290 version "4.5.0" 5292 version "4.5.0"
5291 resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.5.0.tgz#25bcb86c3f024cebbad8e82002f3aae433e23d18" 5293 resolved "https://registry.yarnpkg.com/mux.js/-/mux.js-4.5.0.tgz#25bcb86c3f024cebbad8e82002f3aae433e23d18"
5292 5294
5293nan@^2.10.0, nan@^2.9.2, nan@~2.10.0: 5295nan@^2.10.0, nan@^2.9.2:
5294 version "2.10.0" 5296 version "2.10.0"
5295 resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 5297 resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
5296 5298
@@ -5338,9 +5340,9 @@ next-tick@1:
5338 version "1.0.0" 5340 version "1.0.0"
5339 resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" 5341 resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
5340 5342
5341ng2-material-dropdown@0.10.0: 5343ng2-material-dropdown@0.10.1:
5342 version "0.10.0" 5344 version "0.10.1"
5343 resolved "https://registry.yarnpkg.com/ng2-material-dropdown/-/ng2-material-dropdown-0.10.0.tgz#c524937ac0e9ad833f5dcecd9c98f64aca0519cc" 5345 resolved "https://registry.yarnpkg.com/ng2-material-dropdown/-/ng2-material-dropdown-0.10.1.tgz#0120ce1bbabfb065c62610fe3b572cd09f61b1e1"
5344 dependencies: 5346 dependencies:
5345 tslib "^1.9.0" 5347 tslib "^1.9.0"
5346 5348
@@ -5348,11 +5350,11 @@ ngx-bootstrap@3.0.1:
5348 version "3.0.1" 5350 version "3.0.1"
5349 resolved "https://registry.yarnpkg.com/ngx-bootstrap/-/ngx-bootstrap-3.0.1.tgz#e98d2fc6340f32a9d358cd08e8fda7dcb23bdab3" 5351 resolved "https://registry.yarnpkg.com/ngx-bootstrap/-/ngx-bootstrap-3.0.1.tgz#e98d2fc6340f32a9d358cd08e8fda7dcb23bdab3"
5350 5352
5351ngx-chips@1.9.2: 5353ngx-chips@1.9.3:
5352 version "1.9.2" 5354 version "1.9.3"
5353 resolved "https://registry.yarnpkg.com/ngx-chips/-/ngx-chips-1.9.2.tgz#5082147d8db6f0b97f09e813590b80b7def0ab6a" 5355 resolved "https://registry.yarnpkg.com/ngx-chips/-/ngx-chips-1.9.3.tgz#0ebc13b4868d9cd480478ed93fd56bcc3b68ea66"
5354 dependencies: 5356 dependencies:
5355 ng2-material-dropdown "0.10.0" 5357 ng2-material-dropdown "0.10.1"
5356 tslib "^1.9.0" 5358 tslib "^1.9.0"
5357 5359
5358ngx-clipboard@11.1.1: 5360ngx-clipboard@11.1.1:
@@ -5363,8 +5365,8 @@ ngx-clipboard@11.1.1:
5363 tslib "^1.9.0" 5365 tslib "^1.9.0"
5364 5366
5365ngx-pipes@^2.1.7: 5367ngx-pipes@^2.1.7:
5366 version "2.3.2" 5368 version "2.3.5"
5367 resolved "https://registry.yarnpkg.com/ngx-pipes/-/ngx-pipes-2.3.2.tgz#00081e10a20b01afd4ab418b41a493b570348d70" 5369 resolved "https://registry.yarnpkg.com/ngx-pipes/-/ngx-pipes-2.3.5.tgz#3a5663dcd540d04f1a7997db50b33bf4c2b1f03e"
5368 dependencies: 5370 dependencies:
5369 tslib "^1.9.0" 5371 tslib "^1.9.0"
5370 5372
@@ -5390,12 +5392,6 @@ no-case@^2.2.0:
5390 dependencies: 5392 dependencies:
5391 lower-case "^1.1.1" 5393 lower-case "^1.1.1"
5392 5394
5393node-abi@^2.2.0:
5394 version "2.4.3"
5395 resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.4.3.tgz#43666b7b17e57863e572409edbb82115ac7af28b"
5396 dependencies:
5397 semver "^5.4.1"
5398
5399node-fetch@^1.0.1: 5395node-fetch@^1.0.1:
5400 version "1.7.3" 5396 version "1.7.3"
5401 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 5397 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@@ -5407,6 +5403,10 @@ node-forge@0.7.5:
5407 version "0.7.5" 5403 version "0.7.5"
5408 resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" 5404 resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
5409 5405
5406node-gyp-build@~3.4.0:
5407 version "3.4.0"
5408 resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.4.0.tgz#f8f62507e65f152488b28aac25d04b9d79748cf7"
5409
5410node-gyp@^3.3.1: 5410node-gyp@^3.3.1:
5411 version "3.7.0" 5411 version "3.7.0"
5412 resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.7.0.tgz#789478e8f6c45e277aa014f3e28f958f286f9203" 5412 resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.7.0.tgz#789478e8f6c45e277aa014f3e28f958f286f9203"
@@ -5467,7 +5467,7 @@ node-pre-gyp@^0.10.0:
5467 semver "^5.3.0" 5467 semver "^5.3.0"
5468 tar "^4" 5468 tar "^4"
5469 5469
5470node-sass@^4.1.1, node-sass@^4.9.0: 5470node-sass@^4.1.1, node-sass@^4.9.1:
5471 version "4.9.2" 5471 version "4.9.2"
5472 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437" 5472 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437"
5473 dependencies: 5473 dependencies:
@@ -5544,10 +5544,6 @@ nodemailer@^2.5.0:
5544 nodemailer-smtp-transport "2.7.2" 5544 nodemailer-smtp-transport "2.7.2"
5545 socks "1.1.9" 5545 socks "1.1.9"
5546 5546
5547noop-logger@^0.1.1:
5548 version "0.1.1"
5549 resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
5550
5551"nopt@2 || 3", nopt@3.x: 5547"nopt@2 || 3", nopt@3.x:
5552 version "3.0.6" 5548 version "3.0.6"
5553 resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 5549 resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
@@ -5598,8 +5594,8 @@ npm-font-source-sans-pro@^1.0.2:
5598 validate-npm-package-name "^3.0.0" 5594 validate-npm-package-name "^3.0.0"
5599 5595
5600npm-packlist@^1.1.6: 5596npm-packlist@^1.1.6:
5601 version "1.1.10" 5597 version "1.1.11"
5602 resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" 5598 resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
5603 dependencies: 5599 dependencies:
5604 ignore-walk "^3.0.1" 5600 ignore-walk "^3.0.1"
5605 npm-bundled "^1.0.1" 5601 npm-bundled "^1.0.1"
@@ -5628,7 +5624,7 @@ npm-run-path@^2.0.0:
5628 dependencies: 5624 dependencies:
5629 path-key "^2.0.0" 5625 path-key "^2.0.0"
5630 5626
5631"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2: 5627"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.0, npmlog@^4.0.2:
5632 version "4.1.2" 5628 version "4.1.2"
5633 resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 5629 resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
5634 dependencies: 5630 dependencies:
@@ -5748,7 +5744,7 @@ opener@^1.4.3:
5748 version "1.4.3" 5744 version "1.4.3"
5749 resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" 5745 resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
5750 5746
5751opn@^5.1.0, opn@~5.3.0: 5747opn@^5.1.0, opn@^5.3.0:
5752 version "5.3.0" 5748 version "5.3.0"
5753 resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" 5749 resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c"
5754 dependencies: 5750 dependencies:
@@ -5772,10 +5768,6 @@ optionator@^0.8.1:
5772 type-check "~0.3.2" 5768 type-check "~0.3.2"
5773 wordwrap "~1.0.0" 5769 wordwrap "~1.0.0"
5774 5770
5775options@>=0.0.5:
5776 version "0.0.6"
5777 resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
5778
5779original@>=0.0.5: 5771original@>=0.0.5:
5780 version "1.0.1" 5772 version "1.0.1"
5781 resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" 5773 resolved "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190"
@@ -5786,7 +5778,7 @@ os-browserify@^0.3.0:
5786 version "0.3.0" 5778 version "0.3.0"
5787 resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 5779 resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
5788 5780
5789os-homedir@^1.0.0, os-homedir@^1.0.1: 5781os-homedir@^1.0.0:
5790 version "1.0.2" 5782 version "1.0.2"
5791 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 5783 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
5792 5784
@@ -5825,12 +5817,24 @@ p-limit@^1.0.0, p-limit@^1.1.0:
5825 dependencies: 5817 dependencies:
5826 p-try "^1.0.0" 5818 p-try "^1.0.0"
5827 5819
5820p-limit@^2.0.0:
5821 version "2.0.0"
5822 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
5823 dependencies:
5824 p-try "^2.0.0"
5825
5828p-locate@^2.0.0: 5826p-locate@^2.0.0:
5829 version "2.0.0" 5827 version "2.0.0"
5830 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 5828 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
5831 dependencies: 5829 dependencies:
5832 p-limit "^1.1.0" 5830 p-limit "^1.1.0"
5833 5831
5832p-locate@^3.0.0:
5833 version "3.0.0"
5834 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
5835 dependencies:
5836 p-limit "^2.0.0"
5837
5834p-map@^1.1.1: 5838p-map@^1.1.1:
5835 version "1.2.0" 5839 version "1.2.0"
5836 resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" 5840 resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
@@ -5839,6 +5843,10 @@ p-try@^1.0.0:
5839 version "1.0.0" 5843 version "1.0.0"
5840 resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 5844 resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
5841 5845
5846p-try@^2.0.0:
5847 version "2.0.0"
5848 resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
5849
5842pac-proxy-agent@^2.0.1: 5850pac-proxy-agent@^2.0.1:
5843 version "2.0.2" 5851 version "2.0.2"
5844 resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz#90d9f6730ab0f4d2607dcdcd4d3d641aa26c3896" 5852 resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz#90d9f6730ab0f4d2607dcdcd4d3d641aa26c3896"
@@ -5930,8 +5938,8 @@ parse-numeric-range@^0.0.2:
5930 resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4" 5938 resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4"
5931 5939
5932parse-torrent@^6.0.0: 5940parse-torrent@^6.0.0:
5933 version "6.0.1" 5941 version "6.1.1"
5934 resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.0.1.tgz#d88ad5692aba71b526c1356db18f638e93a635e5" 5942 resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.1.1.tgz#7ebb2709c51b485453478e78cdc0f4b646fefdd9"
5935 dependencies: 5943 dependencies:
5936 bencode "^2.0.0" 5944 bencode "^2.0.0"
5937 blob-to-buffer "^1.2.6" 5945 blob-to-buffer "^1.2.6"
@@ -6175,26 +6183,6 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.14, postcss@^6.0.22, postcss@^6.0.2
6175 source-map "^0.6.1" 6183 source-map "^0.6.1"
6176 supports-color "^5.4.0" 6184 supports-color "^5.4.0"
6177 6185
6178prebuild-install@~4.0.0:
6179 version "4.0.0"
6180 resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-4.0.0.tgz#206ce8106ce5efa4b6cf062fc8a0a7d93c17f3a8"
6181 dependencies:
6182 detect-libc "^1.0.3"
6183 expand-template "^1.0.2"
6184 github-from-package "0.0.0"
6185 minimist "^1.2.0"
6186 mkdirp "^0.5.1"
6187 node-abi "^2.2.0"
6188 noop-logger "^0.1.1"
6189 npmlog "^4.0.1"
6190 os-homedir "^1.0.1"
6191 pump "^2.0.1"
6192 rc "^1.1.6"
6193 simple-get "^2.7.0"
6194 tar-fs "^1.13.0"
6195 tunnel-agent "^0.6.0"
6196 which-pm-runs "^1.0.0"
6197
6198prelude-ls@~1.1.2: 6186prelude-ls@~1.1.2:
6199 version "1.1.2" 6187 version "1.1.2"
6200 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 6188 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -6211,8 +6199,8 @@ pretty-error@^2.0.2:
6211 utila "~0.4" 6199 utila "~0.4"
6212 6200
6213primeng@^6.0.0-rc.1: 6201primeng@^6.0.0-rc.1:
6214 version "6.0.1" 6202 version "6.0.2"
6215 resolved "https://registry.yarnpkg.com/primeng/-/primeng-6.0.1.tgz#51e79189713b4497d6facbcd4e00a49768dbbdce" 6203 resolved "https://registry.yarnpkg.com/primeng/-/primeng-6.0.2.tgz#c26820bf5135be7361b89c46079adb9cd7346270"
6216 6204
6217private@~0.1.5: 6205private@~0.1.5:
6218 version "0.1.8" 6206 version "0.1.8"
@@ -6258,13 +6246,14 @@ prop-types@^15.6.0:
6258 object-assign "^4.1.1" 6246 object-assign "^4.1.1"
6259 6247
6260protractor@^5.3.2: 6248protractor@^5.3.2:
6261 version "5.3.2" 6249 version "5.4.0"
6262 resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.3.2.tgz#b8278f3131d9d52fa1172ed0f7fec03085fbe0ce" 6250 resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.4.0.tgz#e71c9c1f5cf6c5e9bdbcdb71e7f31b17ffd2878f"
6263 dependencies: 6251 dependencies:
6264 "@types/node" "^6.0.46" 6252 "@types/node" "^6.0.46"
6265 "@types/q" "^0.0.32" 6253 "@types/q" "^0.0.32"
6266 "@types/selenium-webdriver" "~2.53.39" 6254 "@types/selenium-webdriver" "^3.0.0"
6267 blocking-proxy "^1.0.0" 6255 blocking-proxy "^1.0.0"
6256 browserstack "^1.5.1"
6268 chalk "^1.1.3" 6257 chalk "^1.1.3"
6269 glob "^7.0.3" 6258 glob "^7.0.3"
6270 jasmine "2.8.0" 6259 jasmine "2.8.0"
@@ -6274,15 +6263,15 @@ protractor@^5.3.2:
6274 saucelabs "^1.5.0" 6263 saucelabs "^1.5.0"
6275 selenium-webdriver "3.6.0" 6264 selenium-webdriver "3.6.0"
6276 source-map-support "~0.4.0" 6265 source-map-support "~0.4.0"
6277 webdriver-js-extender "^1.0.0" 6266 webdriver-js-extender "2.0.0"
6278 webdriver-manager "^12.0.6" 6267 webdriver-manager "^12.0.6"
6279 6268
6280proxy-addr@~2.0.3: 6269proxy-addr@~2.0.3:
6281 version "2.0.3" 6270 version "2.0.4"
6282 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 6271 resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
6283 dependencies: 6272 dependencies:
6284 forwarded "~0.1.2" 6273 forwarded "~0.1.2"
6285 ipaddr.js "1.6.0" 6274 ipaddr.js "1.8.0"
6286 6275
6287proxy-agent@~3.0.0: 6276proxy-agent@~3.0.0:
6288 version "3.0.1" 6277 version "3.0.1"
@@ -6319,13 +6308,6 @@ public-encrypt@^4.0.0:
6319 parse-asn1 "^5.0.0" 6308 parse-asn1 "^5.0.0"
6320 randombytes "^2.0.1" 6309 randombytes "^2.0.1"
6321 6310
6322pump@^1.0.0, pump@^1.0.1:
6323 version "1.0.3"
6324 resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
6325 dependencies:
6326 end-of-stream "^1.1.0"
6327 once "^1.3.1"
6328
6329pump@^2.0.0, pump@^2.0.1: 6311pump@^2.0.0, pump@^2.0.1:
6330 version "2.0.1" 6312 version "2.0.1"
6331 resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 6313 resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
@@ -6497,7 +6479,7 @@ raw-loader@^0.5.1:
6497 version "0.5.1" 6479 version "0.5.1"
6498 resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" 6480 resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
6499 6481
6500rc@^1.1.6, rc@^1.2.7: 6482rc@^1.2.7, rc@^1.2.8:
6501 version "1.2.8" 6483 version "1.2.8"
6502 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 6484 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
6503 dependencies: 6485 dependencies:
@@ -6560,7 +6542,7 @@ read-pkg@^2.0.0:
6560 normalize-package-data "^2.3.2" 6542 normalize-package-data "^2.3.2"
6561 path-type "^2.0.0" 6543 path-type "^2.0.0"
6562 6544
6563"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.2, readable-stream@^2.3.3, readable-stream@^2.3.4, readable-stream@^2.3.5, readable-stream@^2.3.6: 6545"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.3, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.2, readable-stream@^2.3.3, readable-stream@^2.3.4, readable-stream@^2.3.6:
6564 version "2.3.6" 6546 version "2.3.6"
6565 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 6547 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
6566 dependencies: 6548 dependencies:
@@ -6702,8 +6684,8 @@ remove-trailing-separator@^1.0.1:
6702 resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 6684 resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
6703 6685
6704render-media@^3.0.0: 6686render-media@^3.0.0:
6705 version "3.1.0" 6687 version "3.1.2"
6706 resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.1.0.tgz#6bf9e7603fa819afe56c57b6baedd33e60c4acba" 6688 resolved "https://registry.yarnpkg.com/render-media/-/render-media-3.1.2.tgz#de399b207afd88f2e7431aee7f690c39a0ec32bf"
6707 dependencies: 6689 dependencies:
6708 debug "^3.1.0" 6690 debug "^3.1.0"
6709 is-ascii "^1.0.0" 6691 is-ascii "^1.0.0"
@@ -6874,7 +6856,7 @@ resolve@1.1.x:
6874 version "1.1.7" 6856 version "1.1.7"
6875 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 6857 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
6876 6858
6877resolve@^1.1.7, resolve@^1.3.2, resolve@^1.5.0: 6859resolve@^1.1.7, resolve@^1.3.2:
6878 version "1.8.1" 6860 version "1.8.1"
6879 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 6861 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
6880 dependencies: 6862 dependencies:
@@ -6985,7 +6967,7 @@ safe-regex@^1.1.0:
6985 dependencies: 6967 dependencies:
6986 ret "~0.1.10" 6968 ret "~0.1.10"
6987 6969
6988"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: 6970"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0:
6989 version "2.1.2" 6971 version "2.1.2"
6990 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 6972 resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
6991 6973
@@ -7023,6 +7005,16 @@ sass-loader@^7.0.1:
7023 neo-async "^2.5.0" 7005 neo-async "^2.5.0"
7024 pify "^3.0.0" 7006 pify "^3.0.0"
7025 7007
7008sass-loader@~6.0.7:
7009 version "6.0.7"
7010 resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00"
7011 dependencies:
7012 clone-deep "^2.0.1"
7013 loader-utils "^1.0.1"
7014 lodash.tail "^4.1.1"
7015 neo-async "^2.5.0"
7016 pify "^3.0.0"
7017
7026sass-resources-loader@^1.2.1: 7018sass-resources-loader@^1.2.1:
7027 version "1.3.3" 7019 version "1.3.3"
7028 resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-1.3.3.tgz#90f0e614c444f6dfb8f54ce3e1d5f64a18d31537" 7020 resolved "https://registry.yarnpkg.com/sass-resources-loader/-/sass-resources-loader-1.3.3.tgz#90f0e614c444f6dfb8f54ce3e1d5f64a18d31537"
@@ -7042,10 +7034,6 @@ sax@0.5.x:
7042 version "0.5.8" 7034 version "0.5.8"
7043 resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" 7035 resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
7044 7036
7045sax@0.6.x:
7046 version "0.6.1"
7047 resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9"
7048
7049sax@>=0.6.0, sax@^1.2.4: 7037sax@>=0.6.0, sax@^1.2.4:
7050 version "1.2.4" 7038 version "1.2.4"
7051 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 7039 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -7056,7 +7044,7 @@ schema-utils@^0.3.0:
7056 dependencies: 7044 dependencies:
7057 ajv "^5.0.0" 7045 ajv "^5.0.0"
7058 7046
7059schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: 7047schema-utils@^0.4.0, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5:
7060 version "0.4.5" 7048 version "0.4.5"
7061 resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" 7049 resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
7062 dependencies: 7050 dependencies:
@@ -7074,7 +7062,7 @@ select-hose@^2.0.0:
7074 version "2.0.0" 7062 version "2.0.0"
7075 resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" 7063 resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
7076 7064
7077selenium-webdriver@3.6.0: 7065selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1:
7078 version "3.6.0" 7066 version "3.6.0"
7079 resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" 7067 resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc"
7080 dependencies: 7068 dependencies:
@@ -7083,16 +7071,6 @@ selenium-webdriver@3.6.0:
7083 tmp "0.0.30" 7071 tmp "0.0.30"
7084 xml2js "^0.4.17" 7072 xml2js "^0.4.17"
7085 7073
7086selenium-webdriver@^2.53.2:
7087 version "2.53.3"
7088 resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085"
7089 dependencies:
7090 adm-zip "0.4.4"
7091 rimraf "^2.2.8"
7092 tmp "0.0.24"
7093 ws "^1.0.1"
7094 xml2js "0.4.4"
7095
7096selfsigned@^1.9.1: 7074selfsigned@^1.9.1:
7097 version "1.10.3" 7075 version "1.10.3"
7098 resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" 7076 resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823"
@@ -7111,7 +7089,7 @@ semver-intersect@^1.1.2:
7111 dependencies: 7089 dependencies:
7112 semver "^5.0.0" 7090 semver "^5.0.0"
7113 7091
7114"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: 7092"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.0.0, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0:
7115 version "5.5.0" 7093 version "5.5.0"
7116 resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 7094 resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
7117 7095
@@ -7229,17 +7207,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
7229 version "3.0.2" 7207 version "3.0.2"
7230 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 7208 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
7231 7209
7232silent-error@^1.0.0, silent-error@^1.1.0:
7233 version "1.1.0"
7234 resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9"
7235 dependencies:
7236 debug "^2.2.0"
7237
7238simple-concat@^1.0.0: 7210simple-concat@^1.0.0:
7239 version "1.0.0" 7211 version "1.0.0"
7240 resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" 7212 resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
7241 7213
7242simple-get@^2.0.0, simple-get@^2.7.0, simple-get@^2.8.1, simple-get@^3.0.0, simple-get@^3.0.1: 7214simple-get@^2.0.0, simple-get@^2.8.1, simple-get@^3.0.0, simple-get@^3.0.1:
7243 version "2.8.1" 7215 version "2.8.1"
7244 resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" 7216 resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d"
7245 dependencies: 7217 dependencies:
@@ -7264,15 +7236,14 @@ simple-sha1@^2.0.0, simple-sha1@^2.0.8, simple-sha1@^2.1.0:
7264 rusha "^0.8.1" 7236 rusha "^0.8.1"
7265 7237
7266simple-websocket@^7.0.1: 7238simple-websocket@^7.0.1:
7267 version "7.0.2" 7239 version "7.2.0"
7268 resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.0.2.tgz#02d2ebe2f2ad18836e662ddcdc87a5b1741cae29" 7240 resolved "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.2.0.tgz#c3190555d74399372b96b51435f2d8c4b04611df"
7269 dependencies: 7241 dependencies:
7270 debug "^3.1.0" 7242 debug "^3.1.0"
7271 inherits "^2.0.1" 7243 inherits "^2.0.1"
7272 randombytes "^2.0.3" 7244 randombytes "^2.0.3"
7273 readable-stream "^2.0.5" 7245 readable-stream "^2.0.5"
7274 safe-buffer "^5.0.1" 7246 ws "^6.0.0"
7275 ws "^4.0.0"
7276 7247
7277slack-node@~0.2.0: 7248slack-node@~0.2.0:
7278 version "0.2.0" 7249 version "0.2.0"
@@ -7377,9 +7348,9 @@ socket.io@2.0.4:
7377 socket.io-client "2.0.4" 7348 socket.io-client "2.0.4"
7378 socket.io-parser "~3.1.1" 7349 socket.io-parser "~3.1.1"
7379 7350
7380sockjs-client@1.1.4: 7351sockjs-client@1.1.5:
7381 version "1.1.4" 7352 version "1.1.5"
7382 resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" 7353 resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83"
7383 dependencies: 7354 dependencies:
7384 debug "^2.6.6" 7355 debug "^2.6.6"
7385 eventsource "0.1.6" 7356 eventsource "0.1.6"
@@ -7438,6 +7409,14 @@ source-list-map@~0.1.7:
7438 version "0.1.8" 7409 version "0.1.8"
7439 resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" 7410 resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
7440 7411
7412source-map-loader@^0.2.3:
7413 version "0.2.3"
7414 resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521"
7415 dependencies:
7416 async "^2.5.0"
7417 loader-utils "~0.2.2"
7418 source-map "~0.6.1"
7419
7441source-map-resolve@^0.5.0, source-map-resolve@^0.5.1: 7420source-map-resolve@^0.5.0, source-map-resolve@^0.5.1:
7442 version "0.5.2" 7421 version "0.5.2"
7443 resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 7422 resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
@@ -7627,8 +7606,8 @@ stream-browserify@^2.0.1:
7627 readable-stream "^2.0.2" 7606 readable-stream "^2.0.2"
7628 7607
7629stream-each@^1.1.0: 7608stream-each@^1.1.0:
7630 version "1.2.2" 7609 version "1.2.3"
7631 resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" 7610 resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
7632 dependencies: 7611 dependencies:
7633 end-of-stream "^1.1.0" 7612 end-of-stream "^1.1.0"
7634 stream-shift "^1.0.0" 7613 stream-shift "^1.0.0"
@@ -7690,8 +7669,8 @@ string-width@^1.0.1, string-width@^1.0.2:
7690 strip-ansi "^4.0.0" 7669 strip-ansi "^4.0.0"
7691 7670
7692string2compact@^1.1.1, string2compact@^1.2.5: 7671string2compact@^1.1.1, string2compact@^1.2.5:
7693 version "1.2.5" 7672 version "1.3.0"
7694 resolved "https://registry.yarnpkg.com/string2compact/-/string2compact-1.2.5.tgz#4c924b2ce868d06f8b4bd711758f20729a7c773b" 7673 resolved "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz#22d946127b082d1203c51316af60117a337423c3"
7695 dependencies: 7674 dependencies:
7696 addr-to-ip-port "^1.0.1" 7675 addr-to-ip-port "^1.0.1"
7697 ipaddr.js "^1.0.1" 7676 ipaddr.js "^1.0.1"
@@ -7782,12 +7761,6 @@ supports-color@^3.1.0, supports-color@^3.1.2:
7782 dependencies: 7761 dependencies:
7783 has-flag "^1.0.0" 7762 has-flag "^1.0.0"
7784 7763
7785supports-color@^4.0.0:
7786 version "4.5.0"
7787 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
7788 dependencies:
7789 has-flag "^2.0.0"
7790
7791supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: 7764supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
7792 version "5.4.0" 7765 version "5.4.0"
7793 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 7766 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
@@ -7802,27 +7775,6 @@ tapable@^1.0.0:
7802 version "1.0.0" 7775 version "1.0.0"
7803 resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" 7776 resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2"
7804 7777
7805tar-fs@^1.13.0:
7806 version "1.16.3"
7807 resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509"
7808 dependencies:
7809 chownr "^1.0.1"
7810 mkdirp "^0.5.1"
7811 pump "^1.0.0"
7812 tar-stream "^1.1.2"
7813
7814tar-stream@^1.1.2:
7815 version "1.6.1"
7816 resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
7817 dependencies:
7818 bl "^1.0.0"
7819 buffer-alloc "^1.1.0"
7820 end-of-stream "^1.0.0"
7821 fs-constants "^1.0.0"
7822 readable-stream "^2.3.0"
7823 to-buffer "^1.1.0"
7824 xtend "^4.0.0"
7825
7826tar@^2.0.0: 7778tar@^2.0.0:
7827 version "2.2.1" 7779 version "2.2.1"
7828 resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 7780 resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -7880,10 +7832,6 @@ timespan@2.3.x:
7880 version "2.3.0" 7832 version "2.3.0"
7881 resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" 7833 resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929"
7882 7834
7883tmp@0.0.24:
7884 version "0.0.24"
7885 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12"
7886
7887tmp@0.0.30: 7835tmp@0.0.30:
7888 version "0.0.30" 7836 version "0.0.30"
7889 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" 7837 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed"
@@ -7904,10 +7852,6 @@ to-arraybuffer@^1.0.0, to-arraybuffer@^1.0.1:
7904 version "1.0.1" 7852 version "1.0.1"
7905 resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 7853 resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
7906 7854
7907to-buffer@^1.1.0:
7908 version "1.1.1"
7909 resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
7910
7911to-fast-properties@^1.0.3: 7855to-fast-properties@^1.0.3:
7912 version "1.0.3" 7856 version "1.0.3"
7913 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 7857 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
@@ -7985,10 +7929,11 @@ tryer@^1.0.0:
7985 version "1.0.1" 7929 version "1.0.1"
7986 resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" 7930 resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
7987 7931
7988tsickle@^0.29.0: 7932tsickle@^0.30.0:
7989 version "0.29.0" 7933 version "0.30.0"
7990 resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.29.0.tgz#812806554bb46c1aa16eb0fe2a051da95ca8f5a4" 7934 resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.30.0.tgz#7941146ae92933854a8742fa1047606c4536649b"
7991 dependencies: 7935 dependencies:
7936 jasmine-diff "^0.1.3"
7992 minimist "^1.2.0" 7937 minimist "^1.2.0"
7993 mkdirp "^0.5.1" 7938 mkdirp "^0.5.1"
7994 source-map "^0.6.0" 7939 source-map "^0.6.0"
@@ -8038,8 +7983,8 @@ tsml@1.0.1:
8038 resolved "https://registry.yarnpkg.com/tsml/-/tsml-1.0.1.tgz#89f8218b9d9e257f47d7f6b56d01c5a4d2c68fc3" 7983 resolved "https://registry.yarnpkg.com/tsml/-/tsml-1.0.1.tgz#89f8218b9d9e257f47d7f6b56d01c5a4d2c68fc3"
8039 7984
8040tsscmp@~1.0.0: 7985tsscmp@~1.0.0:
8041 version "1.0.5" 7986 version "1.0.6"
8042 resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" 7987 resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
8043 7988
8044tsutils@2.8.0: 7989tsutils@2.8.0:
8045 version "2.8.0" 7990 version "2.8.0"
@@ -8048,8 +7993,8 @@ tsutils@2.8.0:
8048 tslib "^1.7.1" 7993 tslib "^1.7.1"
8049 7994
8050tsutils@^2.27.2: 7995tsutils@^2.27.2:
8051 version "2.28.0" 7996 version "2.29.0"
8052 resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1" 7997 resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
8053 dependencies: 7998 dependencies:
8054 tslib "^1.8.1" 7999 tslib "^1.8.1"
8055 8000
@@ -8094,14 +8039,14 @@ typedarray@^0.0.6:
8094 version "0.0.6" 8039 version "0.0.6"
8095 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 8040 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
8096 8041
8097typescript@2.7, "typescript@>=2.6.2 <2.8": 8042typescript@2.9, typescript@~2.9.1:
8098 version "2.7.2"
8099 resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
8100
8101typescript@~2.9.1:
8102 version "2.9.2" 8043 version "2.9.2"
8103 resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" 8044 resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
8104 8045
8046"typescript@>=2.6.2 <2.8":
8047 version "2.7.2"
8048 resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
8049
8105ua-parser-js@^0.7.18: 8050ua-parser-js@^0.7.18:
8106 version "0.7.18" 8051 version "0.7.18"
8107 resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" 8052 resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
@@ -8118,8 +8063,8 @@ uglify-es@^3.3.4:
8118 source-map "~0.6.1" 8063 source-map "~0.6.1"
8119 8064
8120uglify-js@3.4.x, uglify-js@^3.0.6: 8065uglify-js@3.4.x, uglify-js@^3.0.6:
8121 version "3.4.5" 8066 version "3.4.6"
8122 resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.5.tgz#650889c0766cf0f6fd5346cea09cd212f544be69" 8067 resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.6.tgz#bc546d53f3e02b05d97d0ca5a7abfe0fb0384ddb"
8123 dependencies: 8068 dependencies:
8124 commander "~2.16.0" 8069 commander "~2.16.0"
8125 source-map "~0.6.1" 8070 source-map "~0.6.1"
@@ -8150,13 +8095,11 @@ uglifyjs-webpack-plugin@^1.1.2, uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack
8150 webpack-sources "^1.1.0" 8095 webpack-sources "^1.1.0"
8151 worker-farm "^1.5.2" 8096 worker-farm "^1.5.2"
8152 8097
8153uint64be@^1.0.1: 8098uint64be@^2.0.2:
8154 version "1.0.1" 8099 version "2.0.2"
8155 resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-1.0.1.tgz#1f7154202f2a1b8af353871dda651bf34ce93e95" 8100 resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5"
8156 8101 dependencies:
8157ultron@1.0.x: 8102 buffer-alloc "^1.1.0"
8158 version "1.0.2"
8159 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
8160 8103
8161ultron@~1.1.0: 8104ultron@~1.1.0:
8162 version "1.1.1" 8105 version "1.1.1"
@@ -8243,8 +8186,8 @@ url-loader@^1.0.1:
8243 schema-utils "^0.4.3" 8186 schema-utils "^0.4.3"
8244 8187
8245url-parse@^1.1.8, url-parse@~1.4.0: 8188url-parse@^1.1.8, url-parse@~1.4.0:
8246 version "1.4.1" 8189 version "1.4.3"
8247 resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.1.tgz#4dec9dad3dc8585f862fed461d2e19bbf623df30" 8190 resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15"
8248 dependencies: 8191 dependencies:
8249 querystringify "^2.0.0" 8192 querystringify "^2.0.0"
8250 requires-port "^1.0.0" 8193 requires-port "^1.0.0"
@@ -8291,6 +8234,12 @@ ut_pex@^1.1.1:
8291 inherits "^2.0.1" 8234 inherits "^2.0.1"
8292 string2compact "^1.2.5" 8235 string2compact "^1.2.5"
8293 8236
8237utf-8-validate@^5.0.1:
8238 version "5.0.1"
8239 resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.1.tgz#cef1f9011ba4b216f4d7c6ddf5189d750599ff8b"
8240 dependencies:
8241 node-gyp-build "~3.4.0"
8242
8294util-deprecate@~1.0.1: 8243util-deprecate@~1.0.1:
8295 version "1.0.2" 8244 version "1.0.2"
8296 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 8245 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -8363,7 +8312,7 @@ verror@1.10.0:
8363 core-util-is "1.0.2" 8312 core-util-is "1.0.2"
8364 extsprintf "^1.2.0" 8313 extsprintf "^1.2.0"
8365 8314
8366video.js@7.2.0: 8315video.js@7.2:
8367 version "7.2.0" 8316 version "7.2.0"
8368 resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.2.0.tgz#495ceca46e0858439ba44d76557744b3c52d0323" 8317 resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.2.0.tgz#495ceca46e0858439ba44d76557744b3c52d0323"
8369 dependencies: 8318 dependencies:
@@ -8377,10 +8326,10 @@ video.js@7.2.0:
8377 xhr "2.4.0" 8326 xhr "2.4.0"
8378 8327
8379video.js@^5.19.2, "video.js@^6.8.0 || ^7.0.0", video.js@^7: 8328video.js@^5.19.2, "video.js@^6.8.0 || ^7.0.0", video.js@^7:
8380 version "7.0.5" 8329 version "7.1.0"
8381 resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.0.5.tgz#d4eda7963e869799e6afd26e225523d3781b49b8" 8330 resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.1.0.tgz#93de7ec3396d3edb3fab0ffd4e9d3237e7e068ec"
8382 dependencies: 8331 dependencies:
8383 "@videojs/http-streaming" "^1.0.2" 8332 "@videojs/http-streaming" "1.1.0"
8384 babel-runtime "^6.9.2" 8333 babel-runtime "^6.9.2"
8385 global "4.3.2" 8334 global "4.3.2"
8386 safe-json-parse "4.0.0" 8335 safe-json-parse "4.0.0"
@@ -8416,8 +8365,8 @@ videojs-font@3.0.0:
8416 resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-3.0.0.tgz#90eafddcf26b407448c833523f5ca4ad8d5cc1af" 8365 resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-3.0.0.tgz#90eafddcf26b407448c833523f5ca4ad8d5cc1af"
8417 8366
8418videojs-hotkeys@^0.2.21: 8367videojs-hotkeys@^0.2.21:
8419 version "0.2.21" 8368 version "0.2.22"
8420 resolved "https://registry.yarnpkg.com/videojs-hotkeys/-/videojs-hotkeys-0.2.21.tgz#aa0a0a8484e8a8311ff9f4ba82d0934348566bad" 8369 resolved "https://registry.yarnpkg.com/videojs-hotkeys/-/videojs-hotkeys-0.2.22.tgz#76f917b1a70e7bf9da5f7f8cd33d5a032c0284be"
8421 8370
8422videojs-vtt.js@0.14.1: 8371videojs-vtt.js@0.14.1:
8423 version "0.14.1" 8372 version "0.14.1"
@@ -8426,16 +8375,16 @@ videojs-vtt.js@0.14.1:
8426 global "^4.3.1" 8375 global "^4.3.1"
8427 8376
8428videostream@^2.3.0: 8377videostream@^2.3.0:
8429 version "2.4.3" 8378 version "2.5.1"
8430 resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.4.3.tgz#bdcc252309fa1d4e7077643d2809b822270b5e60" 8379 resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.5.1.tgz#993a8f3efe277e5c8d26a7814ba0c68f79b20688"
8431 dependencies: 8380 dependencies:
8432 binary-search "^1.2.0" 8381 binary-search "^1.3.4"
8433 inherits "^2.0.1" 8382 inherits "^2.0.1"
8434 mediasource "^2.0.0" 8383 mediasource "^2.0.0"
8435 mp4-box-encoding "^1.1.1" 8384 mp4-box-encoding "^1.3.0"
8436 mp4-stream "^2.0.0" 8385 mp4-stream "^2.0.0"
8437 multistream "^2.0.2" 8386 multistream "^2.0.2"
8438 pump "^1.0.1" 8387 pump "^3.0.0"
8439 range-slice-stream "^1.2.0" 8388 range-slice-stream "^1.2.0"
8440 8389
8441vm-browserify@0.0.4: 8390vm-browserify@0.0.4:
@@ -8472,12 +8421,12 @@ webassemblyjs@1.4.3:
8472 "@webassemblyjs/wast-parser" "1.4.3" 8421 "@webassemblyjs/wast-parser" "1.4.3"
8473 long "^3.2.0" 8422 long "^3.2.0"
8474 8423
8475webdriver-js-extender@^1.0.0: 8424webdriver-js-extender@2.0.0:
8476 version "1.0.0" 8425 version "2.0.0"
8477 resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" 8426 resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.0.0.tgz#b27fc1ed1afbf78f0ac57e4c878f31b10e57f146"
8478 dependencies: 8427 dependencies:
8479 "@types/selenium-webdriver" "^2.53.35" 8428 "@types/selenium-webdriver" "^3.0.0"
8480 selenium-webdriver "^2.53.2" 8429 selenium-webdriver "^3.0.1"
8481 8430
8482webdriver-manager@^12.0.6: 8431webdriver-manager@^12.0.6:
8483 version "12.1.0" 8432 version "12.1.0"
@@ -8513,8 +8462,8 @@ webpack-bundle-analyzer@^2.9.1:
8513 ws "^4.0.0" 8462 ws "^4.0.0"
8514 8463
8515webpack-cli@^3.0.8: 8464webpack-cli@^3.0.8:
8516 version "3.0.8" 8465 version "3.1.0"
8517 resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.0.8.tgz#90eddcf04a4bfc31aa8c0edc4c76785bc4f1ccd9" 8466 resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994"
8518 dependencies: 8467 dependencies:
8519 chalk "^2.4.1" 8468 chalk "^2.4.1"
8520 cross-spawn "^6.0.5" 8469 cross-spawn "^6.0.5"
@@ -8526,7 +8475,7 @@ webpack-cli@^3.0.8:
8526 loader-utils "^1.1.0" 8475 loader-utils "^1.1.0"
8527 supports-color "^5.4.0" 8476 supports-color "^5.4.0"
8528 v8-compile-cache "^2.0.0" 8477 v8-compile-cache "^2.0.0"
8529 yargs "^11.1.0" 8478 yargs "^12.0.1"
8530 8479
8531webpack-core@^0.6.8: 8480webpack-core@^0.6.8:
8532 version "0.6.9" 8481 version "0.6.9"
@@ -8548,8 +8497,8 @@ webpack-dev-middleware@3.1.3, webpack-dev-middleware@^3.1.3:
8548 webpack-log "^1.0.1" 8497 webpack-log "^1.0.1"
8549 8498
8550webpack-dev-server@^3.1.4: 8499webpack-dev-server@^3.1.4:
8551 version "3.1.4" 8500 version "3.1.5"
8552 resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz#9a08d13c4addd1e3b6d8ace116e86715094ad5b4" 8501 resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz#87477252e1ac6789303fb8cd3e585fa5d508a401"
8553 dependencies: 8502 dependencies:
8554 ansi-html "0.0.7" 8503 ansi-html "0.0.7"
8555 array-includes "^3.0.3" 8504 array-includes "^3.0.3"
@@ -8572,7 +8521,7 @@ webpack-dev-server@^3.1.4:
8572 selfsigned "^1.9.1" 8521 selfsigned "^1.9.1"
8573 serve-index "^1.7.2" 8522 serve-index "^1.7.2"
8574 sockjs "0.3.19" 8523 sockjs "0.3.19"
8575 sockjs-client "1.1.4" 8524 sockjs-client "1.1.5"
8576 spdy "^3.4.1" 8525 spdy "^3.4.1"
8577 strip-ansi "^3.0.0" 8526 strip-ansi "^3.0.0"
8578 supports-color "^5.1.0" 8527 supports-color "^5.1.0"
@@ -8616,8 +8565,8 @@ webpack-subresource-integrity@^1.1.0-rc.4:
8616 webpack-core "^0.6.8" 8565 webpack-core "^0.6.8"
8617 8566
8618webpack@^4.5.0: 8567webpack@^4.5.0:
8619 version "4.16.1" 8568 version "4.16.3"
8620 resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.1.tgz#2c4b89ea648125c3e67bcca6adf49ce2c14b2d31" 8569 resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.3.tgz#861be3176d81e7e3d71c66c8acc9bba35588b525"
8621 dependencies: 8570 dependencies:
8622 "@webassemblyjs/ast" "1.5.13" 8571 "@webassemblyjs/ast" "1.5.13"
8623 "@webassemblyjs/helper-module-context" "1.5.13" 8572 "@webassemblyjs/helper-module-context" "1.5.13"
@@ -8645,9 +8594,9 @@ webpack@^4.5.0:
8645 watchpack "^1.5.0" 8594 watchpack "^1.5.0"
8646 webpack-sources "^1.0.1" 8595 webpack-sources "^1.0.1"
8647 8596
8648webpack@~4.8.1: 8597webpack@~4.9.2:
8649 version "4.8.3" 8598 version "4.9.2"
8650 resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.8.3.tgz#957c8e80000f9e5cc03d775e78b472d8954f4eeb" 8599 resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.9.2.tgz#d347097cc87c9242527c2e8ee9cdcb90f05856c3"
8651 dependencies: 8600 dependencies:
8652 "@webassemblyjs/ast" "1.4.3" 8601 "@webassemblyjs/ast" "1.4.3"
8653 "@webassemblyjs/wasm-edit" "1.4.3" 8602 "@webassemblyjs/wasm-edit" "1.4.3"
@@ -8659,6 +8608,7 @@ webpack@~4.8.1:
8659 chrome-trace-event "^0.1.1" 8608 chrome-trace-event "^0.1.1"
8660 enhanced-resolve "^4.0.0" 8609 enhanced-resolve "^4.0.0"
8661 eslint-scope "^3.7.1" 8610 eslint-scope "^3.7.1"
8611 json-parse-better-errors "^1.0.2"
8662 loader-runner "^2.3.0" 8612 loader-runner "^2.3.0"
8663 loader-utils "^1.1.0" 8613 loader-utils "^1.1.0"
8664 memory-fs "~0.4.1" 8614 memory-fs "~0.4.1"
@@ -8751,10 +8701,6 @@ which-module@^2.0.0:
8751 version "2.0.0" 8701 version "2.0.0"
8752 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 8702 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
8753 8703
8754which-pm-runs@^1.0.0:
8755 version "1.0.0"
8756 resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
8757
8758which@1, which@^1.1.1, which@^1.2.1, which@^1.2.9: 8704which@1, which@^1.1.1, which@^1.2.1, which@^1.2.9:
8759 version "1.3.1" 8705 version "1.3.1"
8760 resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 8706 resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -8804,13 +8750,6 @@ wrappy@1:
8804 version "1.0.2" 8750 version "1.0.2"
8805 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 8751 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
8806 8752
8807ws@^1.0.1:
8808 version "1.1.5"
8809 resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
8810 dependencies:
8811 options ">=0.0.5"
8812 ultron "1.0.x"
8813
8814ws@^4.0.0: 8753ws@^4.0.0:
8815 version "4.1.0" 8754 version "4.1.0"
8816 resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" 8755 resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
@@ -8818,9 +8757,9 @@ ws@^4.0.0:
8818 async-limiter "~1.0.0" 8757 async-limiter "~1.0.0"
8819 safe-buffer "~5.1.0" 8758 safe-buffer "~5.1.0"
8820 8759
8821ws@^5.0.0: 8760ws@^6.0.0:
8822 version "5.2.2" 8761 version "6.0.0"
8823 resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" 8762 resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35"
8824 dependencies: 8763 dependencies:
8825 async-limiter "~1.0.0" 8764 async-limiter "~1.0.0"
8826 8765
@@ -8841,13 +8780,6 @@ xhr@2.4.0:
8841 parse-headers "^2.0.0" 8780 parse-headers "^2.0.0"
8842 xtend "^4.0.0" 8781 xtend "^4.0.0"
8843 8782
8844xml2js@0.4.4:
8845 version "0.4.4"
8846 resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d"
8847 dependencies:
8848 sax "0.6.x"
8849 xmlbuilder ">=1.0.0"
8850
8851xml2js@^0.4.17: 8783xml2js@^0.4.17:
8852 version "0.4.19" 8784 version "0.4.19"
8853 resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" 8785 resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -8855,10 +8787,6 @@ xml2js@^0.4.17:
8855 sax ">=0.6.0" 8787 sax ">=0.6.0"
8856 xmlbuilder "~9.0.1" 8788 xmlbuilder "~9.0.1"
8857 8789
8858xmlbuilder@>=1.0.0:
8859 version "10.0.0"
8860 resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.0.0.tgz#c64e52f8ae097fe5fd46d1c38adaade071ee1b55"
8861
8862xmlbuilder@~9.0.1: 8790xmlbuilder@~9.0.1:
8863 version "9.0.7" 8791 version "9.0.7"
8864 resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" 8792 resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
@@ -8871,6 +8799,10 @@ xregexp@2.0.0:
8871 version "2.0.0" 8799 version "2.0.0"
8872 resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" 8800 resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
8873 8801
8802xregexp@4.0.0:
8803 version "4.0.0"
8804 resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
8805
8874xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: 8806xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
8875 version "4.0.1" 8807 version "4.0.1"
8876 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 8808 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -8885,7 +8817,7 @@ y18n@^3.2.1:
8885 version "3.2.1" 8817 version "3.2.1"
8886 resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 8818 resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
8887 8819
8888y18n@^4.0.0: 8820"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
8889 version "4.0.0" 8821 version "4.0.0"
8890 resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 8822 resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
8891 8823
@@ -8897,7 +8829,7 @@ yallist@^3.0.0, yallist@^3.0.2:
8897 version "3.0.2" 8829 version "3.0.2"
8898 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 8830 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
8899 8831
8900yargs-parser@^10.0.0: 8832yargs-parser@^10.0.0, yargs-parser@^10.1.0:
8901 version "10.1.0" 8833 version "10.1.0"
8902 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 8834 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
8903 dependencies: 8835 dependencies:
@@ -8961,13 +8893,13 @@ yargs@11.0.0:
8961 y18n "^3.2.1" 8893 y18n "^3.2.1"
8962 yargs-parser "^9.0.2" 8894 yargs-parser "^9.0.2"
8963 8895
8964yargs@^11.1.0: 8896yargs@^12.0.1:
8965 version "11.1.0" 8897 version "12.0.1"
8966 resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" 8898 resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2"
8967 dependencies: 8899 dependencies:
8968 cliui "^4.0.0" 8900 cliui "^4.0.0"
8969 decamelize "^1.1.1" 8901 decamelize "^2.0.0"
8970 find-up "^2.1.0" 8902 find-up "^3.0.0"
8971 get-caller-file "^1.0.1" 8903 get-caller-file "^1.0.1"
8972 os-locale "^2.0.0" 8904 os-locale "^2.0.0"
8973 require-directory "^2.1.1" 8905 require-directory "^2.1.1"
@@ -8975,8 +8907,8 @@ yargs@^11.1.0:
8975 set-blocking "^2.0.0" 8907 set-blocking "^2.0.0"
8976 string-width "^2.0.0" 8908 string-width "^2.0.0"
8977 which-module "^2.0.0" 8909 which-module "^2.0.0"
8978 y18n "^3.2.1" 8910 y18n "^3.2.1 || ^4.0.0"
8979 yargs-parser "^9.0.2" 8911 yargs-parser "^10.1.0"
8980 8912
8981yargs@^7.0.0: 8913yargs@^7.0.0:
8982 version "7.1.0" 8914 version "7.1.0"
diff --git a/config/default.yaml b/config/default.yaml
index bc0530d79..5fa7e5945 100644
--- a/config/default.yaml
+++ b/config/default.yaml
@@ -22,6 +22,8 @@ database:
22 suffix: '_dev' 22 suffix: '_dev'
23 username: 'peertube' 23 username: 'peertube'
24 password: 'peertube' 24 password: 'peertube'
25 pool:
26 max: 5
25 27
26# You can also specify a 'socket' path to a unix socket but first need to 28# You can also specify a 'socket' path to a unix socket but first need to
27# comment out hostname and port 29# comment out hostname and port
@@ -90,6 +92,12 @@ transcoding:
90 720p: false 92 720p: false
91 1080p: false 93 1080p: false
92 94
95import:
96 # Add ability for your users to import remote videos (from YouTube, torrent...)
97 videos:
98 http: # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
99 enabled: false
100
93instance: 101instance:
94 name: 'PeerTube' 102 name: 'PeerTube'
95 short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.' 103 short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
diff --git a/config/production.yaml.example b/config/production.yaml.example
index d347b0ece..635a41e9e 100644
--- a/config/production.yaml.example
+++ b/config/production.yaml.example
@@ -21,6 +21,8 @@ database:
21 suffix: '_prod' 21 suffix: '_prod'
22 username: 'peertube' 22 username: 'peertube'
23 password: 'peertube' 23 password: 'peertube'
24 pool:
25 max: 5
24 26
25# Redis server for short time storage 27# Redis server for short time storage
26# You can also specify a 'socket' path to a unix socket but first need to 28# You can also specify a 'socket' path to a unix socket but first need to
@@ -104,6 +106,12 @@ transcoding:
104 720p: false 106 720p: false
105 1080p: false 107 1080p: false
106 108
109import:
110 # Add ability for your users to import remote videos (from YouTube, torrent...)
111 videos:
112 http: # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
113 enabled: false
114
107# Instance settings 115# Instance settings
108instance: 116instance:
109 name: 'PeerTube' 117 name: 'PeerTube'
diff --git a/config/test.yaml b/config/test.yaml
index ffe736b24..3c51785f2 100644
--- a/config/test.yaml
+++ b/config/test.yaml
@@ -40,5 +40,10 @@ transcoding:
40 720p: true 40 720p: true
41 1080p: true 41 1080p: true
42 42
43import:
44 videos:
45 http:
46 enabled: true
47
43instance: 48instance:
44 default_nsfw_policy: 'display' \ No newline at end of file 49 default_nsfw_policy: 'display' \ No newline at end of file
diff --git a/package.json b/package.json
index ea55c5946..4dbe1717e 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
16 "type": "git", 16 "type": "git",
17 "url": "git://github.com/Chocobozzz/PeerTube.git" 17 "url": "git://github.com/Chocobozzz/PeerTube.git"
18 }, 18 },
19 "typings": "*.d.ts",
19 "scripts": { 20 "scripts": {
20 "e2e": "scripty", 21 "e2e": "scripty",
21 "build": "SCRIPTY_PARALLEL=true scripty", 22 "build": "SCRIPTY_PARALLEL=true scripty",
@@ -91,10 +92,12 @@
91 "cookie-parser": "^1.4.3", 92 "cookie-parser": "^1.4.3",
92 "cors": "^2.8.1", 93 "cors": "^2.8.1",
93 "create-torrent": "^3.24.5", 94 "create-torrent": "^3.24.5",
95 "deep-object-diff": "^1.1.0",
94 "express": "^4.12.4", 96 "express": "^4.12.4",
95 "express-oauth-server": "^2.0.0", 97 "express-oauth-server": "^2.0.0",
96 "express-rate-limit": "^2.11.0", 98 "express-rate-limit": "^2.11.0",
97 "express-validator": "^5.0.0", 99 "express-validator": "^5.0.0",
100 "flat": "^4.1.0",
98 "fluent-ffmpeg": "^2.1.0", 101 "fluent-ffmpeg": "^2.1.0",
99 "helmet": "^3.12.1", 102 "helmet": "^3.12.1",
100 "ipaddr.js": "https://github.com/whitequark/ipaddr.js.git#8e69afeb4053ee32447a101845f860848280eca5", 103 "ipaddr.js": "https://github.com/whitequark/ipaddr.js.git#8e69afeb4053ee32447a101845f860848280eca5",
@@ -130,7 +133,8 @@
130 "validator": "^10.2.0", 133 "validator": "^10.2.0",
131 "webfinger.js": "^2.6.6", 134 "webfinger.js": "^2.6.6",
132 "winston": "3.0.0", 135 "winston": "3.0.0",
133 "ws": "^5.0.0" 136 "ws": "^5.0.0",
137 "youtube-dl": "^1.12.2"
134 }, 138 },
135 "devDependencies": { 139 "devDependencies": {
136 "@types/async": "^2.0.40", 140 "@types/async": "^2.0.40",
@@ -182,8 +186,7 @@
182 "tslint-config-standard": "^7.0.0", 186 "tslint-config-standard": "^7.0.0",
183 "typescript": "^2.5.2", 187 "typescript": "^2.5.2",
184 "webtorrent": "^0.100.0", 188 "webtorrent": "^0.100.0",
185 "xliff": "^3.0.1", 189 "xliff": "^3.0.1"
186 "youtube-dl": "^1.12.2"
187 }, 190 },
188 "scripty": { 191 "scripty": {
189 "silent": true 192 "silent": true
diff --git a/scripts/build/client.sh b/scripts/build/client.sh
index 567a6e5e0..5b70b6045 100755
--- a/scripts/build/client.sh
+++ b/scripts/build/client.sh
@@ -31,7 +31,7 @@ post_build_hook
31# Don't build other languages if --light arg is provided 31# Don't build other languages if --light arg is provided
32if [ -z ${1+x} ] || [ "$1" != "--light" ]; then 32if [ -z ${1+x} ] || [ "$1" != "--light" ]; then
33 # Supported languages 33 # Supported languages
34 languages=("fr_FR" "eu_ES" "ca_ES" "cs_CZ" "eo") 34 languages=("fr_FR" "eu_ES" "ca_ES" "cs_CZ" "eo" "zh_Hant_TW" "de_DE" "es_ES")
35 35
36 for lang in "${languages[@]}"; do 36 for lang in "${languages[@]}"; do
37 # TODO: remove when the project will use runtime translations 37 # TODO: remove when the project will use runtime translations
diff --git a/scripts/i18n/create-custom-files.ts b/scripts/i18n/create-custom-files.ts
index a297fa79c..c4f8411e1 100755
--- a/scripts/i18n/create-custom-files.ts
+++ b/scripts/i18n/create-custom-files.ts
@@ -1,7 +1,14 @@
1import * as jsToXliff12 from 'xliff/jsToXliff12' 1import * as jsToXliff12 from 'xliff/jsToXliff12'
2import { writeFile } from 'fs' 2import { writeFile } from 'fs'
3import { join } from 'path' 3import { join } from 'path'
4import { buildLanguages, VIDEO_CATEGORIES, VIDEO_LICENCES, VIDEO_PRIVACIES } from '../../server/initializers/constants' 4import {
5 buildLanguages,
6 VIDEO_CATEGORIES,
7 VIDEO_IMPORT_STATES,
8 VIDEO_LICENCES,
9 VIDEO_PRIVACIES,
10 VIDEO_STATES
11} from '../../server/initializers/constants'
5import { values } from 'lodash' 12import { values } from 'lodash'
6 13
7type TranslationType = { 14type TranslationType = {
@@ -33,6 +40,8 @@ const serverKeys: any = {}
33values(VIDEO_CATEGORIES) 40values(VIDEO_CATEGORIES)
34 .concat(values(VIDEO_LICENCES)) 41 .concat(values(VIDEO_LICENCES))
35 .concat(values(VIDEO_PRIVACIES)) 42 .concat(values(VIDEO_PRIVACIES))
43 .concat(values(VIDEO_STATES))
44 .concat(values(VIDEO_IMPORT_STATES))
36 .forEach(v => serverKeys[v] = v) 45 .forEach(v => serverKeys[v] = v)
37 46
38// More keys 47// More keys
diff --git a/scripts/release.sh b/scripts/release.sh
index b5fa68f42..4b45c959d 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -25,8 +25,8 @@ if [ -z "$GITHUB_TOKEN" ]; then
25fi 25fi
26 26
27branch=$(git symbolic-ref --short -q HEAD) 27branch=$(git symbolic-ref --short -q HEAD)
28if [ "$branch" != "develop" ]; then 28if [ "$branch" != "develop" ] && [[ "$branch" != feature/* ]]; then
29 echo "Need to be on develop branch." 29 echo "Need to be on develop or release branch."
30 exit -1 30 exit -1
31fi 31fi
32 32
@@ -102,14 +102,14 @@ rm "./client/dist/embed-stats.json"
102 github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$tar_name" --file "$tar_name" 102 github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$tar_name" --file "$tar_name"
103 github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$tar_name.asc" --file "$tar_name.asc" 103 github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$tar_name.asc" --file "$tar_name.asc"
104 104
105 git push origin develop 105 git push origin "$branch"
106 106
107 # Only update master if it is not a pre release 107 # Only update master if it is not a pre release
108 if [ -z "$github_prerelease_option" ]; then 108 if [ -z "$github_prerelease_option" ]; then
109 # Update master branch 109 # Update master branch
110 git checkout master 110 git checkout master
111 git rebase develop 111 git merge "$branch"
112 git push origin master 112 git push origin master
113 git checkout develop 113 git checkout "$branch"
114 fi 114 fi
115) 115)
diff --git a/server.ts b/server.ts
index 0e6f787a6..9094ac943 100644
--- a/server.ts
+++ b/server.ts
@@ -89,6 +89,7 @@ import { Redis } from './server/lib/redis'
89import { BadActorFollowScheduler } from './server/lib/schedulers/bad-actor-follow-scheduler' 89import { BadActorFollowScheduler } from './server/lib/schedulers/bad-actor-follow-scheduler'
90import { RemoveOldJobsScheduler } from './server/lib/schedulers/remove-old-jobs-scheduler' 90import { RemoveOldJobsScheduler } from './server/lib/schedulers/remove-old-jobs-scheduler'
91import { UpdateVideosScheduler } from './server/lib/schedulers/update-videos-scheduler' 91import { UpdateVideosScheduler } from './server/lib/schedulers/update-videos-scheduler'
92import { YoutubeDlUpdateScheduler } from './server/lib/schedulers/youtube-dl-update-scheduler'
92 93
93// ----------- Command line ----------- 94// ----------- Command line -----------
94 95
@@ -151,7 +152,7 @@ app.use(function (err, req, res, next) {
151 error = err.stack || err.message || err 152 error = err.stack || err.message || err
152 } 153 }
153 154
154 logger.error('Error in controller.', { error }) 155 logger.error('Error in controller.', { err: error })
155 return res.status(err.status || 500).end() 156 return res.status(err.status || 500).end()
156}) 157})
157 158
@@ -186,6 +187,7 @@ async function startApplication () {
186 BadActorFollowScheduler.Instance.enable() 187 BadActorFollowScheduler.Instance.enable()
187 RemoveOldJobsScheduler.Instance.enable() 188 RemoveOldJobsScheduler.Instance.enable()
188 UpdateVideosScheduler.Instance.enable() 189 UpdateVideosScheduler.Instance.enable()
190 YoutubeDlUpdateScheduler.Instance.enable()
189 191
190 // Redis initialization 192 // Redis initialization
191 Redis.Instance.init() 193 Redis.Instance.init()
diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts
index 9c1b2818c..950a1498e 100644
--- a/server/controllers/api/config.ts
+++ b/server/controllers/api/config.ts
@@ -9,10 +9,13 @@ import { CONFIG, CONSTRAINTS_FIELDS, reloadConfig } from '../../initializers'
9import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../middlewares' 9import { asyncMiddleware, authenticate, ensureUserHasRight } from '../../middlewares'
10import { customConfigUpdateValidator } from '../../middlewares/validators/config' 10import { customConfigUpdateValidator } from '../../middlewares/validators/config'
11import { ClientHtml } from '../../lib/client-html' 11import { ClientHtml } from '../../lib/client-html'
12import { CustomConfigAuditView, auditLoggerFactory } from '../../helpers/audit-logger'
12 13
13const packageJSON = require('../../../../package.json') 14const packageJSON = require('../../../../package.json')
14const configRouter = express.Router() 15const configRouter = express.Router()
15 16
17const auditLogger = auditLoggerFactory('config')
18
16configRouter.get('/about', getAbout) 19configRouter.get('/about', getAbout)
17configRouter.get('/', 20configRouter.get('/',
18 asyncMiddleware(getConfig) 21 asyncMiddleware(getConfig)
@@ -62,6 +65,13 @@ async function getConfig (req: express.Request, res: express.Response, next: exp
62 transcoding: { 65 transcoding: {
63 enabledResolutions 66 enabledResolutions
64 }, 67 },
68 import: {
69 videos: {
70 http: {
71 enabled: CONFIG.IMPORT.VIDEOS.HTTP.ENABLED
72 }
73 }
74 },
65 avatar: { 75 avatar: {
66 file: { 76 file: {
67 size: { 77 size: {
@@ -119,6 +129,11 @@ async function getCustomConfig (req: express.Request, res: express.Response, nex
119async function deleteCustomConfig (req: express.Request, res: express.Response, next: express.NextFunction) { 129async function deleteCustomConfig (req: express.Request, res: express.Response, next: express.NextFunction) {
120 await unlinkPromise(CONFIG.CUSTOM_FILE) 130 await unlinkPromise(CONFIG.CUSTOM_FILE)
121 131
132 auditLogger.delete(
133 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
134 new CustomConfigAuditView(customConfig())
135 )
136
122 reloadConfig() 137 reloadConfig()
123 ClientHtml.invalidCache() 138 ClientHtml.invalidCache()
124 139
@@ -129,6 +144,7 @@ async function deleteCustomConfig (req: express.Request, res: express.Response,
129 144
130async function updateCustomConfig (req: express.Request, res: express.Response, next: express.NextFunction) { 145async function updateCustomConfig (req: express.Request, res: express.Response, next: express.NextFunction) {
131 const toUpdate: CustomConfig = req.body 146 const toUpdate: CustomConfig = req.body
147 const oldCustomConfigAuditKeys = new CustomConfigAuditView(customConfig())
132 148
133 // Force number conversion 149 // Force number conversion
134 toUpdate.cache.previews.size = parseInt('' + toUpdate.cache.previews.size, 10) 150 toUpdate.cache.previews.size = parseInt('' + toUpdate.cache.previews.size, 10)
@@ -150,6 +166,13 @@ async function updateCustomConfig (req: express.Request, res: express.Response,
150 ClientHtml.invalidCache() 166 ClientHtml.invalidCache()
151 167
152 const data = customConfig() 168 const data = customConfig()
169
170 auditLogger.update(
171 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
172 new CustomConfigAuditView(data),
173 oldCustomConfigAuditKeys
174 )
175
153 return res.json(data).end() 176 return res.json(data).end()
154} 177}
155 178
@@ -209,6 +232,13 @@ function customConfig (): CustomConfig {
209 '720p': CONFIG.TRANSCODING.RESOLUTIONS[ '720p' ], 232 '720p': CONFIG.TRANSCODING.RESOLUTIONS[ '720p' ],
210 '1080p': CONFIG.TRANSCODING.RESOLUTIONS[ '1080p' ] 233 '1080p': CONFIG.TRANSCODING.RESOLUTIONS[ '1080p' ]
211 } 234 }
235 },
236 import: {
237 videos: {
238 http: {
239 enabled: CONFIG.IMPORT.VIDEOS.HTTP.ENABLED
240 }
241 }
212 } 242 }
213 } 243 }
214} 244}
diff --git a/server/controllers/api/users.ts b/server/controllers/api/users.ts
index c80f27a23..879ba3f91 100644
--- a/server/controllers/api/users.ts
+++ b/server/controllers/api/users.ts
@@ -29,7 +29,12 @@ import {
29 usersUpdateValidator, 29 usersUpdateValidator,
30 usersVideoRatingValidator 30 usersVideoRatingValidator
31} from '../../middlewares' 31} from '../../middlewares'
32import { usersAskResetPasswordValidator, usersResetPasswordValidator, videosSortValidator } from '../../middlewares/validators' 32import {
33 usersAskResetPasswordValidator,
34 usersResetPasswordValidator,
35 videoImportsSortValidator,
36 videosSortValidator
37} from '../../middlewares/validators'
33import { AccountVideoRateModel } from '../../models/account/account-video-rate' 38import { AccountVideoRateModel } from '../../models/account/account-video-rate'
34import { UserModel } from '../../models/account/user' 39import { UserModel } from '../../models/account/user'
35import { OAuthTokenModel } from '../../models/oauth/oauth-token' 40import { OAuthTokenModel } from '../../models/oauth/oauth-token'
@@ -39,6 +44,10 @@ import { createReqFiles } from '../../helpers/express-utils'
39import { UserVideoQuota } from '../../../shared/models/users/user-video-quota.model' 44import { UserVideoQuota } from '../../../shared/models/users/user-video-quota.model'
40import { updateAvatarValidator } from '../../middlewares/validators/avatar' 45import { updateAvatarValidator } from '../../middlewares/validators/avatar'
41import { updateActorAvatarFile } from '../../lib/avatar' 46import { updateActorAvatarFile } from '../../lib/avatar'
47import { auditLoggerFactory, UserAuditView } from '../../helpers/audit-logger'
48import { VideoImportModel } from '../../models/video/video-import'
49
50const auditLogger = auditLoggerFactory('users')
42 51
43const reqAvatarFile = createReqFiles([ 'avatarfile' ], IMAGE_MIMETYPE_EXT, { avatarfile: CONFIG.STORAGE.AVATARS_DIR }) 52const reqAvatarFile = createReqFiles([ 'avatarfile' ], IMAGE_MIMETYPE_EXT, { avatarfile: CONFIG.STORAGE.AVATARS_DIR })
44const loginRateLimiter = new RateLimit({ 53const loginRateLimiter = new RateLimit({
@@ -59,6 +68,15 @@ usersRouter.get('/me/video-quota-used',
59 asyncMiddleware(getUserVideoQuotaUsed) 68 asyncMiddleware(getUserVideoQuotaUsed)
60) 69)
61 70
71usersRouter.get('/me/videos/imports',
72 authenticate,
73 paginationValidator,
74 videoImportsSortValidator,
75 setDefaultSort,
76 setDefaultPagination,
77 asyncMiddleware(getUserVideoImports)
78)
79
62usersRouter.get('/me/videos', 80usersRouter.get('/me/videos',
63 authenticate, 81 authenticate,
64 paginationValidator, 82 paginationValidator,
@@ -175,6 +193,18 @@ async function getUserVideos (req: express.Request, res: express.Response, next:
175 return res.json(getFormattedObjects(resultList.data, resultList.total, { additionalAttributes })) 193 return res.json(getFormattedObjects(resultList.data, resultList.total, { additionalAttributes }))
176} 194}
177 195
196async function getUserVideoImports (req: express.Request, res: express.Response, next: express.NextFunction) {
197 const user = res.locals.oauth.token.User as UserModel
198 const resultList = await VideoImportModel.listUserVideoImportsForApi(
199 user.Account.id,
200 req.query.start as number,
201 req.query.count as number,
202 req.query.sort
203 )
204
205 return res.json(getFormattedObjects(resultList.data, resultList.total))
206}
207
178async function createUser (req: express.Request, res: express.Response) { 208async function createUser (req: express.Request, res: express.Response) {
179 const body: UserCreate = req.body 209 const body: UserCreate = req.body
180 const userToCreate = new UserModel({ 210 const userToCreate = new UserModel({
@@ -189,6 +219,7 @@ async function createUser (req: express.Request, res: express.Response) {
189 219
190 const { user, account } = await createUserAccountAndChannel(userToCreate) 220 const { user, account } = await createUserAccountAndChannel(userToCreate)
191 221
222 auditLogger.create(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new UserAuditView(user.toFormattedJSON()))
192 logger.info('User %s with its channel and account created.', body.username) 223 logger.info('User %s with its channel and account created.', body.username)
193 224
194 return res.json({ 225 return res.json({
@@ -205,7 +236,7 @@ async function createUser (req: express.Request, res: express.Response) {
205async function registerUser (req: express.Request, res: express.Response) { 236async function registerUser (req: express.Request, res: express.Response) {
206 const body: UserCreate = req.body 237 const body: UserCreate = req.body
207 238
208 const user = new UserModel({ 239 const userToCreate = new UserModel({
209 username: body.username, 240 username: body.username,
210 password: body.password, 241 password: body.password,
211 email: body.email, 242 email: body.email,
@@ -215,8 +246,9 @@ async function registerUser (req: express.Request, res: express.Response) {
215 videoQuota: CONFIG.USER.VIDEO_QUOTA 246 videoQuota: CONFIG.USER.VIDEO_QUOTA
216 }) 247 })
217 248
218 await createUserAccountAndChannel(user) 249 const { user } = await createUserAccountAndChannel(userToCreate)
219 250
251 auditLogger.create(body.username, new UserAuditView(user.toFormattedJSON()))
220 logger.info('User %s with its channel and account registered.', body.username) 252 logger.info('User %s with its channel and account registered.', body.username)
221 253
222 return res.type('json').status(204).end() 254 return res.type('json').status(204).end()
@@ -269,6 +301,8 @@ async function removeUser (req: express.Request, res: express.Response, next: ex
269 301
270 await user.destroy() 302 await user.destroy()
271 303
304 auditLogger.delete(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new UserAuditView(user.toFormattedJSON()))
305
272 return res.sendStatus(204) 306 return res.sendStatus(204)
273} 307}
274 308
@@ -276,6 +310,7 @@ async function updateMe (req: express.Request, res: express.Response, next: expr
276 const body: UserUpdateMe = req.body 310 const body: UserUpdateMe = req.body
277 311
278 const user: UserModel = res.locals.oauth.token.user 312 const user: UserModel = res.locals.oauth.token.user
313 const oldUserAuditView = new UserAuditView(user.toFormattedJSON())
279 314
280 if (body.password !== undefined) user.password = body.password 315 if (body.password !== undefined) user.password = body.password
281 if (body.email !== undefined) user.email = body.email 316 if (body.email !== undefined) user.email = body.email
@@ -290,6 +325,12 @@ async function updateMe (req: express.Request, res: express.Response, next: expr
290 await user.Account.save({ transaction: t }) 325 await user.Account.save({ transaction: t })
291 326
292 await sendUpdateActor(user.Account, t) 327 await sendUpdateActor(user.Account, t)
328
329 auditLogger.update(
330 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
331 new UserAuditView(user.toFormattedJSON()),
332 oldUserAuditView
333 )
293 }) 334 })
294 335
295 return res.sendStatus(204) 336 return res.sendStatus(204)
@@ -297,10 +338,18 @@ async function updateMe (req: express.Request, res: express.Response, next: expr
297 338
298async function updateMyAvatar (req: express.Request, res: express.Response, next: express.NextFunction) { 339async function updateMyAvatar (req: express.Request, res: express.Response, next: express.NextFunction) {
299 const avatarPhysicalFile = req.files[ 'avatarfile' ][ 0 ] 340 const avatarPhysicalFile = req.files[ 'avatarfile' ][ 0 ]
300 const account = res.locals.oauth.token.user.Account 341 const user: UserModel = res.locals.oauth.token.user
342 const oldUserAuditView = new UserAuditView(user.toFormattedJSON())
343 const account = user.Account
301 344
302 const avatar = await updateActorAvatarFile(avatarPhysicalFile, account.Actor, account) 345 const avatar = await updateActorAvatarFile(avatarPhysicalFile, account.Actor, account)
303 346
347 auditLogger.update(
348 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
349 new UserAuditView(user.toFormattedJSON()),
350 oldUserAuditView
351 )
352
304 return res 353 return res
305 .json({ 354 .json({
306 avatar: avatar.toFormattedJSON() 355 avatar: avatar.toFormattedJSON()
@@ -310,20 +359,27 @@ async function updateMyAvatar (req: express.Request, res: express.Response, next
310 359
311async function updateUser (req: express.Request, res: express.Response, next: express.NextFunction) { 360async function updateUser (req: express.Request, res: express.Response, next: express.NextFunction) {
312 const body: UserUpdate = req.body 361 const body: UserUpdate = req.body
313 const user = res.locals.user as UserModel 362 const userToUpdate = res.locals.user as UserModel
314 const roleChanged = body.role !== undefined && body.role !== user.role 363 const oldUserAuditView = new UserAuditView(userToUpdate.toFormattedJSON())
364 const roleChanged = body.role !== undefined && body.role !== userToUpdate.role
315 365
316 if (body.email !== undefined) user.email = body.email 366 if (body.email !== undefined) userToUpdate.email = body.email
317 if (body.videoQuota !== undefined) user.videoQuota = body.videoQuota 367 if (body.videoQuota !== undefined) userToUpdate.videoQuota = body.videoQuota
318 if (body.role !== undefined) user.role = body.role 368 if (body.role !== undefined) userToUpdate.role = body.role
319 369
320 await user.save() 370 const user = await userToUpdate.save()
321 371
322 // Destroy user token to refresh rights 372 // Destroy user token to refresh rights
323 if (roleChanged) { 373 if (roleChanged) {
324 await OAuthTokenModel.deleteUserToken(user.id) 374 await OAuthTokenModel.deleteUserToken(userToUpdate.id)
325 } 375 }
326 376
377 auditLogger.update(
378 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
379 new UserAuditView(user.toFormattedJSON()),
380 oldUserAuditView
381 )
382
327 // Don't need to send this update to followers, these attributes are not propagated 383 // Don't need to send this update to followers, these attributes are not propagated
328 384
329 return res.sendStatus(204) 385 return res.sendStatus(204)
diff --git a/server/controllers/api/video-channel.ts b/server/controllers/api/video-channel.ts
index 0488ba8f5..3a444547b 100644
--- a/server/controllers/api/video-channel.ts
+++ b/server/controllers/api/video-channel.ts
@@ -27,7 +27,9 @@ import { logger } from '../../helpers/logger'
27import { VideoModel } from '../../models/video/video' 27import { VideoModel } from '../../models/video/video'
28import { updateAvatarValidator } from '../../middlewares/validators/avatar' 28import { updateAvatarValidator } from '../../middlewares/validators/avatar'
29import { updateActorAvatarFile } from '../../lib/avatar' 29import { updateActorAvatarFile } from '../../lib/avatar'
30import { auditLoggerFactory, VideoChannelAuditView } from '../../helpers/audit-logger'
30 31
32const auditLogger = auditLoggerFactory('channels')
31const reqAvatarFile = createReqFiles([ 'avatarfile' ], IMAGE_MIMETYPE_EXT, { avatarfile: CONFIG.STORAGE.AVATARS_DIR }) 33const reqAvatarFile = createReqFiles([ 'avatarfile' ], IMAGE_MIMETYPE_EXT, { avatarfile: CONFIG.STORAGE.AVATARS_DIR })
32 34
33const videoChannelRouter = express.Router() 35const videoChannelRouter = express.Router()
@@ -99,10 +101,17 @@ async function listVideoChannels (req: express.Request, res: express.Response, n
99 101
100async function updateVideoChannelAvatar (req: express.Request, res: express.Response, next: express.NextFunction) { 102async function updateVideoChannelAvatar (req: express.Request, res: express.Response, next: express.NextFunction) {
101 const avatarPhysicalFile = req.files[ 'avatarfile' ][ 0 ] 103 const avatarPhysicalFile = req.files[ 'avatarfile' ][ 0 ]
102 const videoChannel = res.locals.videoChannel 104 const videoChannel = res.locals.videoChannel as VideoChannelModel
105 const oldVideoChannelAuditKeys = new VideoChannelAuditView(videoChannel.toFormattedJSON())
103 106
104 const avatar = await updateActorAvatarFile(avatarPhysicalFile, videoChannel.Actor, videoChannel) 107 const avatar = await updateActorAvatarFile(avatarPhysicalFile, videoChannel.Actor, videoChannel)
105 108
109 auditLogger.update(
110 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
111 new VideoChannelAuditView(videoChannel.toFormattedJSON()),
112 oldVideoChannelAuditKeys
113 )
114
106 return res 115 return res
107 .json({ 116 .json({
108 avatar: avatar.toFormattedJSON() 117 avatar: avatar.toFormattedJSON()
@@ -121,6 +130,10 @@ async function addVideoChannel (req: express.Request, res: express.Response) {
121 setAsyncActorKeys(videoChannelCreated.Actor) 130 setAsyncActorKeys(videoChannelCreated.Actor)
122 .catch(err => logger.error('Cannot set async actor keys for account %s.', videoChannelCreated.Actor.uuid, { err })) 131 .catch(err => logger.error('Cannot set async actor keys for account %s.', videoChannelCreated.Actor.uuid, { err }))
123 132
133 auditLogger.create(
134 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
135 new VideoChannelAuditView(videoChannelCreated.toFormattedJSON())
136 )
124 logger.info('Video channel with uuid %s created.', videoChannelCreated.Actor.uuid) 137 logger.info('Video channel with uuid %s created.', videoChannelCreated.Actor.uuid)
125 138
126 return res.json({ 139 return res.json({
@@ -134,6 +147,7 @@ async function addVideoChannel (req: express.Request, res: express.Response) {
134async function updateVideoChannel (req: express.Request, res: express.Response) { 147async function updateVideoChannel (req: express.Request, res: express.Response) {
135 const videoChannelInstance = res.locals.videoChannel as VideoChannelModel 148 const videoChannelInstance = res.locals.videoChannel as VideoChannelModel
136 const videoChannelFieldsSave = videoChannelInstance.toJSON() 149 const videoChannelFieldsSave = videoChannelInstance.toJSON()
150 const oldVideoChannelAuditKeys = new VideoChannelAuditView(videoChannelInstance.toFormattedJSON())
137 const videoChannelInfoToUpdate = req.body as VideoChannelUpdate 151 const videoChannelInfoToUpdate = req.body as VideoChannelUpdate
138 152
139 try { 153 try {
@@ -148,9 +162,14 @@ async function updateVideoChannel (req: express.Request, res: express.Response)
148 162
149 const videoChannelInstanceUpdated = await videoChannelInstance.save(sequelizeOptions) 163 const videoChannelInstanceUpdated = await videoChannelInstance.save(sequelizeOptions)
150 await sendUpdateActor(videoChannelInstanceUpdated, t) 164 await sendUpdateActor(videoChannelInstanceUpdated, t)
151 })
152 165
153 logger.info('Video channel with name %s and uuid %s updated.', videoChannelInstance.name, videoChannelInstance.Actor.uuid) 166 auditLogger.update(
167 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
168 new VideoChannelAuditView(videoChannelInstanceUpdated.toFormattedJSON()),
169 oldVideoChannelAuditKeys
170 )
171 logger.info('Video channel with name %s and uuid %s updated.', videoChannelInstance.name, videoChannelInstance.Actor.uuid)
172 })
154 } catch (err) { 173 } catch (err) {
155 logger.debug('Cannot update the video channel.', { err }) 174 logger.debug('Cannot update the video channel.', { err })
156 175
@@ -171,6 +190,10 @@ async function removeVideoChannel (req: express.Request, res: express.Response)
171 await sequelizeTypescript.transaction(async t => { 190 await sequelizeTypescript.transaction(async t => {
172 await videoChannelInstance.destroy({ transaction: t }) 191 await videoChannelInstance.destroy({ transaction: t })
173 192
193 auditLogger.delete(
194 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
195 new VideoChannelAuditView(videoChannelInstance.toFormattedJSON())
196 )
174 logger.info('Video channel with name %s and uuid %s deleted.', videoChannelInstance.name, videoChannelInstance.Actor.uuid) 197 logger.info('Video channel with name %s and uuid %s deleted.', videoChannelInstance.name, videoChannelInstance.Actor.uuid)
175 }) 198 })
176 199
diff --git a/server/controllers/api/videos/abuse.ts b/server/controllers/api/videos/abuse.ts
index 3413ae894..7782fc639 100644
--- a/server/controllers/api/videos/abuse.ts
+++ b/server/controllers/api/videos/abuse.ts
@@ -18,7 +18,9 @@ import {
18import { AccountModel } from '../../../models/account/account' 18import { AccountModel } from '../../../models/account/account'
19import { VideoModel } from '../../../models/video/video' 19import { VideoModel } from '../../../models/video/video'
20import { VideoAbuseModel } from '../../../models/video/video-abuse' 20import { VideoAbuseModel } from '../../../models/video/video-abuse'
21import { auditLoggerFactory, VideoAbuseAuditView } from '../../../helpers/audit-logger'
21 22
23const auditLogger = auditLoggerFactory('abuse')
22const abuseVideoRouter = express.Router() 24const abuseVideoRouter = express.Router()
23 25
24abuseVideoRouter.get('/abuse', 26abuseVideoRouter.get('/abuse',
@@ -64,14 +66,16 @@ async function reportVideoAbuse (req: express.Request, res: express.Response) {
64 await sequelizeTypescript.transaction(async t => { 66 await sequelizeTypescript.transaction(async t => {
65 const videoAbuseInstance = await VideoAbuseModel.create(abuseToCreate, { transaction: t }) 67 const videoAbuseInstance = await VideoAbuseModel.create(abuseToCreate, { transaction: t })
66 videoAbuseInstance.Video = videoInstance 68 videoAbuseInstance.Video = videoInstance
69 videoAbuseInstance.Account = reporterAccount
67 70
68 // We send the video abuse to the origin server 71 // We send the video abuse to the origin server
69 if (videoInstance.isOwned() === false) { 72 if (videoInstance.isOwned() === false) {
70 await sendVideoAbuse(reporterAccount.Actor, videoAbuseInstance, videoInstance, t) 73 await sendVideoAbuse(reporterAccount.Actor, videoAbuseInstance, videoInstance, t)
71 } 74 }
72 })
73 75
74 logger.info('Abuse report for video %s created.', videoInstance.name) 76 auditLogger.create(reporterAccount.Actor.getIdentifier(), new VideoAbuseAuditView(videoAbuseInstance.toFormattedJSON()))
77 logger.info('Abuse report for video %s created.', videoInstance.name)
78 })
75 79
76 return res.type('json').status(204).end() 80 return res.type('json').status(204).end()
77} 81}
diff --git a/server/controllers/api/videos/comment.ts b/server/controllers/api/videos/comment.ts
index bbeb0d557..e35247829 100644
--- a/server/controllers/api/videos/comment.ts
+++ b/server/controllers/api/videos/comment.ts
@@ -23,7 +23,9 @@ import {
23} from '../../../middlewares/validators/video-comments' 23} from '../../../middlewares/validators/video-comments'
24import { VideoModel } from '../../../models/video/video' 24import { VideoModel } from '../../../models/video/video'
25import { VideoCommentModel } from '../../../models/video/video-comment' 25import { VideoCommentModel } from '../../../models/video/video-comment'
26import { auditLoggerFactory, CommentAuditView } from '../../../helpers/audit-logger'
26 27
28const auditLogger = auditLoggerFactory('comments')
27const videoCommentRouter = express.Router() 29const videoCommentRouter = express.Router()
28 30
29videoCommentRouter.get('/:videoId/comment-threads', 31videoCommentRouter.get('/:videoId/comment-threads',
@@ -107,6 +109,8 @@ async function addVideoCommentThread (req: express.Request, res: express.Respons
107 }, t) 109 }, t)
108 }) 110 })
109 111
112 auditLogger.create(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new CommentAuditView(comment.toFormattedJSON()))
113
110 return res.json({ 114 return res.json({
111 comment: comment.toFormattedJSON() 115 comment: comment.toFormattedJSON()
112 }).end() 116 }).end()
@@ -124,6 +128,8 @@ async function addVideoCommentReply (req: express.Request, res: express.Response
124 }, t) 128 }, t)
125 }) 129 })
126 130
131 auditLogger.create(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new CommentAuditView(comment.toFormattedJSON()))
132
127 return res.json({ 133 return res.json({
128 comment: comment.toFormattedJSON() 134 comment: comment.toFormattedJSON()
129 }).end() 135 }).end()
@@ -136,6 +142,10 @@ async function removeVideoComment (req: express.Request, res: express.Response)
136 await videoCommentInstance.destroy({ transaction: t }) 142 await videoCommentInstance.destroy({ transaction: t })
137 }) 143 })
138 144
145 auditLogger.delete(
146 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
147 new CommentAuditView(videoCommentInstance.toFormattedJSON())
148 )
139 logger.info('Video comment %d deleted.', videoCommentInstance.id) 149 logger.info('Video comment %d deleted.', videoCommentInstance.id)
140 150
141 return res.type('json').status(204).end() 151 return res.type('json').status(204).end()
diff --git a/server/controllers/api/videos/import.ts b/server/controllers/api/videos/import.ts
new file mode 100644
index 000000000..30a7d816c
--- /dev/null
+++ b/server/controllers/api/videos/import.ts
@@ -0,0 +1,138 @@
1import * as express from 'express'
2import { auditLoggerFactory, VideoImportAuditView } from '../../../helpers/audit-logger'
3import { asyncMiddleware, asyncRetryTransactionMiddleware, authenticate, videoImportAddValidator } from '../../../middlewares'
4import { CONFIG, IMAGE_MIMETYPE_EXT, PREVIEWS_SIZE, sequelizeTypescript, THUMBNAILS_SIZE } from '../../../initializers'
5import { getYoutubeDLInfo, YoutubeDLInfo } from '../../../helpers/youtube-dl'
6import { createReqFiles } from '../../../helpers/express-utils'
7import { logger } from '../../../helpers/logger'
8import { VideoImportCreate, VideoImportState, VideoPrivacy, VideoState } from '../../../../shared'
9import { VideoModel } from '../../../models/video/video'
10import { getVideoActivityPubUrl } from '../../../lib/activitypub'
11import { TagModel } from '../../../models/video/tag'
12import { VideoImportModel } from '../../../models/video/video-import'
13import { JobQueue } from '../../../lib/job-queue/job-queue'
14import { processImage } from '../../../helpers/image-utils'
15import { join } from 'path'
16
17const auditLogger = auditLoggerFactory('video-imports')
18const videoImportsRouter = express.Router()
19
20const reqVideoFileImport = createReqFiles(
21 [ 'thumbnailfile', 'previewfile' ],
22 IMAGE_MIMETYPE_EXT,
23 {
24 thumbnailfile: CONFIG.STORAGE.THUMBNAILS_DIR,
25 previewfile: CONFIG.STORAGE.PREVIEWS_DIR
26 }
27)
28
29videoImportsRouter.post('/imports',
30 authenticate,
31 reqVideoFileImport,
32 asyncMiddleware(videoImportAddValidator),
33 asyncRetryTransactionMiddleware(addVideoImport)
34)
35
36// ---------------------------------------------------------------------------
37
38export {
39 videoImportsRouter
40}
41
42// ---------------------------------------------------------------------------
43
44async function addVideoImport (req: express.Request, res: express.Response) {
45 const body: VideoImportCreate = req.body
46 const targetUrl = body.targetUrl
47
48 let youtubeDLInfo: YoutubeDLInfo
49 try {
50 youtubeDLInfo = await getYoutubeDLInfo(targetUrl)
51 } catch (err) {
52 logger.info('Cannot fetch information from import for URL %s.', targetUrl, { err })
53
54 return res.status(400).json({
55 error: 'Cannot fetch remote information of this URL.'
56 }).end()
57 }
58
59 // Create video DB object
60 const videoData = {
61 name: body.name || youtubeDLInfo.name,
62 remote: false,
63 category: body.category || youtubeDLInfo.category,
64 licence: body.licence || youtubeDLInfo.licence,
65 language: body.language || undefined,
66 commentsEnabled: body.commentsEnabled || true,
67 waitTranscoding: body.waitTranscoding || false,
68 state: VideoState.TO_IMPORT,
69 nsfw: body.nsfw || youtubeDLInfo.nsfw || false,
70 description: body.description || youtubeDLInfo.description,
71 support: body.support || null,
72 privacy: body.privacy || VideoPrivacy.PRIVATE,
73 duration: 0, // duration will be set by the import job
74 channelId: res.locals.videoChannel.id
75 }
76 const video = new VideoModel(videoData)
77 video.url = getVideoActivityPubUrl(video)
78
79 // Process thumbnail file?
80 const thumbnailField = req.files ? req.files['thumbnailfile'] : undefined
81 let downloadThumbnail = true
82 if (thumbnailField) {
83 const thumbnailPhysicalFile = thumbnailField[ 0 ]
84 await processImage(thumbnailPhysicalFile, join(CONFIG.STORAGE.THUMBNAILS_DIR, video.getThumbnailName()), THUMBNAILS_SIZE)
85 downloadThumbnail = false
86 }
87
88 // Process preview file?
89 const previewField = req.files ? req.files['previewfile'] : undefined
90 let downloadPreview = true
91 if (previewField) {
92 const previewPhysicalFile = previewField[0]
93 await processImage(previewPhysicalFile, join(CONFIG.STORAGE.PREVIEWS_DIR, video.getPreviewName()), PREVIEWS_SIZE)
94 downloadPreview = false
95 }
96
97 const videoImport: VideoImportModel = await sequelizeTypescript.transaction(async t => {
98 const sequelizeOptions = { transaction: t }
99
100 // Save video object in database
101 const videoCreated = await video.save(sequelizeOptions)
102 videoCreated.VideoChannel = res.locals.videoChannel
103
104 // Set tags to the video
105 const tags = body.tags ? body.tags : youtubeDLInfo.tags
106 if (tags !== undefined) {
107 const tagInstances = await TagModel.findOrCreateTags(tags, t)
108
109 await videoCreated.$set('Tags', tagInstances, sequelizeOptions)
110 videoCreated.Tags = tagInstances
111 }
112
113 // Create video import object in database
114 const videoImport = await VideoImportModel.create({
115 targetUrl,
116 state: VideoImportState.PENDING,
117 videoId: videoCreated.id
118 }, sequelizeOptions)
119
120 videoImport.Video = videoCreated
121
122 return videoImport
123 })
124
125 // Create job to import the video
126 const payload = {
127 type: 'youtube-dl' as 'youtube-dl',
128 videoImportId: videoImport.id,
129 thumbnailUrl: youtubeDLInfo.thumbnailUrl,
130 downloadThumbnail,
131 downloadPreview
132 }
133 await JobQueue.Instance.createJob({ type: 'video-import', payload })
134
135 auditLogger.create(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new VideoImportAuditView(videoImport.toFormattedJSON()))
136
137 return res.json(videoImport.toFormattedJSON()).end()
138}
diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts
index 101183eab..c9365da08 100644
--- a/server/controllers/api/videos/index.ts
+++ b/server/controllers/api/videos/index.ts
@@ -5,6 +5,7 @@ import { renamePromise } from '../../../helpers/core-utils'
5import { getVideoFileFPS, getVideoFileResolution } from '../../../helpers/ffmpeg-utils' 5import { getVideoFileFPS, getVideoFileResolution } from '../../../helpers/ffmpeg-utils'
6import { processImage } from '../../../helpers/image-utils' 6import { processImage } from '../../../helpers/image-utils'
7import { logger } from '../../../helpers/logger' 7import { logger } from '../../../helpers/logger'
8import { auditLoggerFactory, VideoAuditView } from '../../../helpers/audit-logger'
8import { getFormattedObjects, getServerActor, resetSequelizeInstance } from '../../../helpers/utils' 9import { getFormattedObjects, getServerActor, resetSequelizeInstance } from '../../../helpers/utils'
9import { 10import {
10 CONFIG, 11 CONFIG,
@@ -53,7 +54,9 @@ import { VideoFilter } from '../../../../shared/models/videos/video-query.type'
53import { createReqFiles, buildNSFWFilter } from '../../../helpers/express-utils' 54import { createReqFiles, buildNSFWFilter } from '../../../helpers/express-utils'
54import { ScheduleVideoUpdateModel } from '../../../models/video/schedule-video-update' 55import { ScheduleVideoUpdateModel } from '../../../models/video/schedule-video-update'
55import { videoCaptionsRouter } from './captions' 56import { videoCaptionsRouter } from './captions'
57import { videoImportsRouter } from './import'
56 58
59const auditLogger = auditLoggerFactory('videos')
57const videosRouter = express.Router() 60const videosRouter = express.Router()
58 61
59const reqVideoFileAdd = createReqFiles( 62const reqVideoFileAdd = createReqFiles(
@@ -79,6 +82,7 @@ videosRouter.use('/', blacklistRouter)
79videosRouter.use('/', rateVideoRouter) 82videosRouter.use('/', rateVideoRouter)
80videosRouter.use('/', videoCommentRouter) 83videosRouter.use('/', videoCommentRouter)
81videosRouter.use('/', videoCaptionsRouter) 84videosRouter.use('/', videoCaptionsRouter)
85videosRouter.use('/', videoImportsRouter)
82 86
83videosRouter.get('/categories', listVideoCategories) 87videosRouter.get('/categories', listVideoCategories)
84videosRouter.get('/licences', listVideoLicences) 88videosRouter.get('/licences', listVideoLicences)
@@ -158,7 +162,6 @@ async function addVideo (req: express.Request, res: express.Response) {
158 const videoData = { 162 const videoData = {
159 name: videoInfo.name, 163 name: videoInfo.name,
160 remote: false, 164 remote: false,
161 extname: extname(videoPhysicalFile.filename),
162 category: videoInfo.category, 165 category: videoInfo.category,
163 licence: videoInfo.licence, 166 licence: videoInfo.licence,
164 language: videoInfo.language, 167 language: videoInfo.language,
@@ -247,6 +250,7 @@ async function addVideo (req: express.Request, res: express.Response) {
247 250
248 await federateVideoIfNeeded(video, true, t) 251 await federateVideoIfNeeded(video, true, t)
249 252
253 auditLogger.create(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new VideoAuditView(videoCreated.toFormattedDetailsJSON()))
250 logger.info('Video with name %s and uuid %s created.', videoInfo.name, videoCreated.uuid) 254 logger.info('Video with name %s and uuid %s created.', videoInfo.name, videoCreated.uuid)
251 255
252 return videoCreated 256 return videoCreated
@@ -273,6 +277,7 @@ async function addVideo (req: express.Request, res: express.Response) {
273async function updateVideo (req: express.Request, res: express.Response) { 277async function updateVideo (req: express.Request, res: express.Response) {
274 const videoInstance: VideoModel = res.locals.video 278 const videoInstance: VideoModel = res.locals.video
275 const videoFieldsSave = videoInstance.toJSON() 279 const videoFieldsSave = videoInstance.toJSON()
280 const oldVideoAuditView = new VideoAuditView(videoInstance.toFormattedDetailsJSON())
276 const videoInfoToUpdate: VideoUpdate = req.body 281 const videoInfoToUpdate: VideoUpdate = req.body
277 const wasPrivateVideo = videoInstance.privacy === VideoPrivacy.PRIVATE 282 const wasPrivateVideo = videoInstance.privacy === VideoPrivacy.PRIVATE
278 283
@@ -344,9 +349,14 @@ async function updateVideo (req: express.Request, res: express.Response) {
344 349
345 const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE 350 const isNewVideo = wasPrivateVideo && videoInstanceUpdated.privacy !== VideoPrivacy.PRIVATE
346 await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo, t) 351 await federateVideoIfNeeded(videoInstanceUpdated, isNewVideo, t)
347 })
348 352
349 logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid) 353 auditLogger.update(
354 res.locals.oauth.token.User.Account.Actor.getIdentifier(),
355 new VideoAuditView(videoInstanceUpdated.toFormattedDetailsJSON()),
356 oldVideoAuditView
357 )
358 logger.info('Video with name %s and uuid %s updated.', videoInstance.name, videoInstance.uuid)
359 })
350 } catch (err) { 360 } catch (err) {
351 // Force fields we want to update 361 // Force fields we want to update
352 // If the transaction is retried, sequelize will think the object has not changed 362 // If the transaction is retried, sequelize will think the object has not changed
@@ -423,6 +433,7 @@ async function removeVideo (req: express.Request, res: express.Response) {
423 await videoInstance.destroy({ transaction: t }) 433 await videoInstance.destroy({ transaction: t })
424 }) 434 })
425 435
436 auditLogger.delete(res.locals.oauth.token.User.Account.Actor.getIdentifier(), new VideoAuditView(videoInstance.toFormattedDetailsJSON()))
426 logger.info('Video with name %s and uuid %s deleted.', videoInstance.name, videoInstance.uuid) 437 logger.info('Video with name %s and uuid %s deleted.', videoInstance.name, videoInstance.uuid)
427 438
428 return res.type('json').status(204).end() 439 return res.type('json').status(204).end()
diff --git a/server/helpers/activitypub.ts b/server/helpers/activitypub.ts
index d710f5c97..a9de11fb0 100644
--- a/server/helpers/activitypub.ts
+++ b/server/helpers/activitypub.ts
@@ -24,6 +24,7 @@ function activityPubContextify <T> (data: T) {
24 views: 'http://schema.org/Number', 24 views: 'http://schema.org/Number',
25 stats: 'http://schema.org/Number', 25 stats: 'http://schema.org/Number',
26 size: 'http://schema.org/Number', 26 size: 'http://schema.org/Number',
27 fps: 'http://schema.org/Number',
27 commentsEnabled: 'http://schema.org/Boolean', 28 commentsEnabled: 'http://schema.org/Boolean',
28 waitTranscoding: 'http://schema.org/Boolean', 29 waitTranscoding: 'http://schema.org/Boolean',
29 support: 'http://schema.org/Text' 30 support: 'http://schema.org/Text'
diff --git a/server/helpers/audit-logger.ts b/server/helpers/audit-logger.ts
new file mode 100644
index 000000000..db20df20f
--- /dev/null
+++ b/server/helpers/audit-logger.ts
@@ -0,0 +1,265 @@
1import * as path from 'path'
2import { diff } from 'deep-object-diff'
3import { chain } from 'lodash'
4import * as flatten from 'flat'
5import * as winston from 'winston'
6import { CONFIG } from '../initializers'
7import { jsonLoggerFormat, labelFormatter } from './logger'
8import { VideoDetails, User, VideoChannel, VideoAbuse, VideoImport } from '../../shared'
9import { VideoComment } from '../../shared/models/videos/video-comment.model'
10import { CustomConfig } from '../../shared/models/server/custom-config.model'
11
12enum AUDIT_TYPE {
13 CREATE = 'create',
14 UPDATE = 'update',
15 DELETE = 'delete'
16}
17
18const colors = winston.config.npm.colors
19colors.audit = winston.config.npm.colors.info
20
21winston.addColors(colors)
22
23const auditLogger = winston.createLogger({
24 levels: { audit: 0 },
25 transports: [
26 new winston.transports.File({
27 filename: path.join(CONFIG.STORAGE.LOG_DIR, 'peertube-audit.log'),
28 level: 'audit',
29 maxsize: 5242880,
30 maxFiles: 5,
31 format: winston.format.combine(
32 winston.format.timestamp(),
33 labelFormatter,
34 winston.format.splat(),
35 jsonLoggerFormat
36 )
37 })
38 ],
39 exitOnError: true
40})
41
42function auditLoggerWrapper (domain: string, user: string, action: AUDIT_TYPE, entity: EntityAuditView, oldEntity: EntityAuditView = null) {
43 let entityInfos: object
44 if (action === AUDIT_TYPE.UPDATE && oldEntity) {
45 const oldEntityKeys = oldEntity.toLogKeys()
46 const diffObject = diff(oldEntityKeys, entity.toLogKeys())
47 const diffKeys = Object.entries(diffObject).reduce((newKeys, entry) => {
48 newKeys[`new-${entry[0]}`] = entry[1]
49 return newKeys
50 }, {})
51 entityInfos = { ...oldEntityKeys, ...diffKeys }
52 } else {
53 entityInfos = { ...entity.toLogKeys() }
54 }
55 auditLogger.log('audit', JSON.stringify({
56 user,
57 domain,
58 action,
59 ...entityInfos
60 }))
61}
62
63function auditLoggerFactory (domain: string) {
64 return {
65 create (user: string, entity: EntityAuditView) {
66 auditLoggerWrapper(domain, user, AUDIT_TYPE.CREATE, entity)
67 },
68 update (user: string, entity: EntityAuditView, oldEntity: EntityAuditView) {
69 auditLoggerWrapper(domain, user, AUDIT_TYPE.UPDATE, entity, oldEntity)
70 },
71 delete (user: string, entity: EntityAuditView) {
72 auditLoggerWrapper(domain, user, AUDIT_TYPE.DELETE, entity)
73 }
74 }
75}
76
77abstract class EntityAuditView {
78 constructor (private keysToKeep: Array<string>, private prefix: string, private entityInfos: object) { }
79 toLogKeys (): object {
80 return chain(flatten(this.entityInfos, { delimiter: '-', safe: true }))
81 .pick(this.keysToKeep)
82 .mapKeys((value, key) => `${this.prefix}-${key}`)
83 .value()
84 }
85}
86
87const videoKeysToKeep = [
88 'tags',
89 'uuid',
90 'id',
91 'uuid',
92 'createdAt',
93 'updatedAt',
94 'publishedAt',
95 'category',
96 'licence',
97 'language',
98 'privacy',
99 'description',
100 'duration',
101 'isLocal',
102 'name',
103 'thumbnailPath',
104 'previewPath',
105 'nsfw',
106 'waitTranscoding',
107 'account-id',
108 'account-uuid',
109 'account-name',
110 'channel-id',
111 'channel-uuid',
112 'channel-name',
113 'support',
114 'commentsEnabled'
115]
116class VideoAuditView extends EntityAuditView {
117 constructor (private video: VideoDetails) {
118 super(videoKeysToKeep, 'video', video)
119 }
120}
121
122const videoImportKeysToKeep = [
123 'id',
124 'targetUrl',
125 'video-name'
126]
127class VideoImportAuditView extends EntityAuditView {
128 constructor (private videoImport: VideoImport) {
129 super(videoImportKeysToKeep, 'video-import', videoImport)
130 }
131}
132
133const commentKeysToKeep = [
134 'id',
135 'text',
136 'threadId',
137 'inReplyToCommentId',
138 'videoId',
139 'createdAt',
140 'updatedAt',
141 'totalReplies',
142 'account-id',
143 'account-uuid',
144 'account-name'
145]
146class CommentAuditView extends EntityAuditView {
147 constructor (private comment: VideoComment) {
148 super(commentKeysToKeep, 'comment', comment)
149 }
150}
151
152const userKeysToKeep = [
153 'id',
154 'username',
155 'email',
156 'nsfwPolicy',
157 'autoPlayVideo',
158 'role',
159 'videoQuota',
160 'createdAt',
161 'account-id',
162 'account-uuid',
163 'account-name',
164 'account-followingCount',
165 'account-followersCount',
166 'account-createdAt',
167 'account-updatedAt',
168 'account-avatar-path',
169 'account-avatar-createdAt',
170 'account-avatar-updatedAt',
171 'account-displayName',
172 'account-description',
173 'videoChannels'
174]
175class UserAuditView extends EntityAuditView {
176 constructor (private user: User) {
177 super(userKeysToKeep, 'user', user)
178 }
179}
180
181const channelKeysToKeep = [
182 'id',
183 'uuid',
184 'name',
185 'followingCount',
186 'followersCount',
187 'createdAt',
188 'updatedAt',
189 'avatar-path',
190 'avatar-createdAt',
191 'avatar-updatedAt',
192 'displayName',
193 'description',
194 'support',
195 'isLocal',
196 'ownerAccount-id',
197 'ownerAccount-uuid',
198 'ownerAccount-name',
199 'ownerAccount-displayedName'
200]
201class VideoChannelAuditView extends EntityAuditView {
202 constructor (private channel: VideoChannel) {
203 super(channelKeysToKeep, 'channel', channel)
204 }
205}
206
207const videoAbuseKeysToKeep = [
208 'id',
209 'reason',
210 'reporterAccount',
211 'video-id',
212 'video-name',
213 'video-uuid',
214 'createdAt'
215]
216class VideoAbuseAuditView extends EntityAuditView {
217 constructor (private videoAbuse: VideoAbuse) {
218 super(videoAbuseKeysToKeep, 'abuse', videoAbuse)
219 }
220}
221
222const customConfigKeysToKeep = [
223 'instance-name',
224 'instance-shortDescription',
225 'instance-description',
226 'instance-terms',
227 'instance-defaultClientRoute',
228 'instance-defaultNSFWPolicy',
229 'instance-customizations-javascript',
230 'instance-customizations-css',
231 'services-twitter-username',
232 'services-twitter-whitelisted',
233 'cache-previews-size',
234 'cache-captions-size',
235 'signup-enabled',
236 'signup-limit',
237 'admin-email',
238 'user-videoQuota',
239 'transcoding-enabled',
240 'transcoding-threads',
241 'transcoding-resolutions'
242]
243class CustomConfigAuditView extends EntityAuditView {
244 constructor (customConfig: CustomConfig) {
245 const infos: any = customConfig
246 const resolutionsDict = infos.transcoding.resolutions
247 const resolutionsArray = []
248 Object.entries(resolutionsDict).forEach(([resolution, isEnabled]) => {
249 if (isEnabled) resolutionsArray.push(resolution)
250 })
251 Object.assign({}, infos, { transcoding: { resolutions: resolutionsArray } })
252 super(customConfigKeysToKeep, 'config', infos)
253 }
254}
255
256export {
257 auditLoggerFactory,
258 VideoImportAuditView,
259 VideoChannelAuditView,
260 CommentAuditView,
261 UserAuditView,
262 VideoAuditView,
263 VideoAbuseAuditView,
264 CustomConfigAuditView
265}
diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts
index 2951aef1e..884206aad 100644
--- a/server/helpers/core-utils.ts
+++ b/server/helpers/core-utils.ts
@@ -58,7 +58,7 @@ function escapeHTML (stringParam) {
58 '<': '&lt;', 58 '<': '&lt;',
59 '>': '&gt;', 59 '>': '&gt;',
60 '"': '&quot;', 60 '"': '&quot;',
61 "'": '&#39;', 61 '\'': '&#39;',
62 '/': '&#x2F;', 62 '/': '&#x2F;',
63 '`': '&#x60;', 63 '`': '&#x60;',
64 '=': '&#x3D;' 64 '=': '&#x3D;'
diff --git a/server/helpers/custom-validators/activitypub/videos.ts b/server/helpers/custom-validators/activitypub/videos.ts
index d97bbd2a9..b8075f3c7 100644
--- a/server/helpers/custom-validators/activitypub/videos.ts
+++ b/server/helpers/custom-validators/activitypub/videos.ts
@@ -45,7 +45,7 @@ function isActivityPubVideoDurationValid (value: string) {
45} 45}
46 46
47function sanitizeAndCheckVideoTorrentObject (video: any) { 47function sanitizeAndCheckVideoTorrentObject (video: any) {
48 if (video.type !== 'Video') return false 48 if (!video || video.type !== 'Video') return false
49 49
50 if (!setValidRemoteTags(video)) return false 50 if (!setValidRemoteTags(video)) return false
51 if (!setValidRemoteVideoUrls(video)) return false 51 if (!setValidRemoteVideoUrls(video)) return false
@@ -153,7 +153,8 @@ function isRemoteVideoUrlValid (url: any) {
153 ACTIVITY_PUB.URL_MIME_TYPES.VIDEO.indexOf(url.mimeType) !== -1 && 153 ACTIVITY_PUB.URL_MIME_TYPES.VIDEO.indexOf(url.mimeType) !== -1 &&
154 isActivityPubUrlValid(url.href) && 154 isActivityPubUrlValid(url.href) &&
155 validator.isInt(url.width + '', { min: 0 }) && 155 validator.isInt(url.width + '', { min: 0 }) &&
156 validator.isInt(url.size + '', { min: 0 }) 156 validator.isInt(url.size + '', { min: 0 }) &&
157 (!url.fps || validator.isInt(url.fps + '', { min: 0 }))
157 ) || 158 ) ||
158 ( 159 (
159 ACTIVITY_PUB.URL_MIME_TYPES.TORRENT.indexOf(url.mimeType) !== -1 && 160 ACTIVITY_PUB.URL_MIME_TYPES.TORRENT.indexOf(url.mimeType) !== -1 &&
diff --git a/server/helpers/custom-validators/video-imports.ts b/server/helpers/custom-validators/video-imports.ts
new file mode 100644
index 000000000..d8b9bfaff
--- /dev/null
+++ b/server/helpers/custom-validators/video-imports.ts
@@ -0,0 +1,49 @@
1import 'express-validator'
2import 'multer'
3import * as validator from 'validator'
4import { CONSTRAINTS_FIELDS, VIDEO_IMPORT_STATES } from '../../initializers'
5import { exists } from './misc'
6import * as express from 'express'
7import { VideoChannelModel } from '../../models/video/video-channel'
8import { VideoImportModel } from '../../models/video/video-import'
9
10function isVideoImportTargetUrlValid (url: string) {
11 const isURLOptions = {
12 require_host: true,
13 require_tld: true,
14 require_protocol: true,
15 require_valid_protocol: true,
16 protocols: [ 'http', 'https' ]
17 }
18
19 return exists(url) &&
20 validator.isURL('' + url, isURLOptions) &&
21 validator.isLength('' + url, CONSTRAINTS_FIELDS.VIDEO_IMPORTS.URL)
22}
23
24function isVideoImportStateValid (value: any) {
25 return exists(value) && VIDEO_IMPORT_STATES[ value ] !== undefined
26}
27
28async function isVideoImportExist (id: number, res: express.Response) {
29 const videoImport = await VideoImportModel.loadAndPopulateVideo(id)
30
31 if (!videoImport) {
32 res.status(404)
33 .json({ error: 'Video import not found' })
34 .end()
35
36 return false
37 }
38
39 res.locals.videoImport = videoImport
40 return true
41}
42
43// ---------------------------------------------------------------------------
44
45export {
46 isVideoImportStateValid,
47 isVideoImportTargetUrlValid,
48 isVideoImportExist
49}
diff --git a/server/helpers/ffmpeg-utils.ts b/server/helpers/ffmpeg-utils.ts
index f0623c88b..ced56b82d 100644
--- a/server/helpers/ffmpeg-utils.ts
+++ b/server/helpers/ffmpeg-utils.ts
@@ -1,10 +1,11 @@
1import * as ffmpeg from 'fluent-ffmpeg' 1import * as ffmpeg from 'fluent-ffmpeg'
2import { join } from 'path' 2import { join } from 'path'
3import { VideoResolution } from '../../shared/models/videos' 3import { VideoResolution } from '../../shared/models/videos'
4import { CONFIG, VIDEO_TRANSCODING_FPS } from '../initializers' 4import { CONFIG, VIDEO_TRANSCODING_FPS, FFMPEG_NICE } from '../initializers'
5import { unlinkPromise } from './core-utils' 5import { unlinkPromise } from './core-utils'
6import { processImage } from './image-utils' 6import { processImage } from './image-utils'
7import { logger } from './logger' 7import { logger } from './logger'
8import { checkFFmpegEncoders } from '../initializers/checker'
8 9
9async function getVideoFileResolution (path: string) { 10async function getVideoFileResolution (path: string) {
10 const videoStream = await getVideoFileStream(path) 11 const videoStream = await getVideoFileStream(path)
@@ -55,7 +56,7 @@ async function generateImageFromVideoFile (fromPath: string, folder: string, ima
55 56
56 try { 57 try {
57 await new Promise<string>((res, rej) => { 58 await new Promise<string>((res, rej) => {
58 ffmpeg(fromPath) 59 ffmpeg(fromPath, { niceness: FFMPEG_NICE.THUMBNAIL })
59 .on('error', rej) 60 .on('error', rej)
60 .on('end', () => res(imageName)) 61 .on('end', () => res(imageName))
61 .thumbnail(options) 62 .thumbnail(options)
@@ -83,14 +84,14 @@ type TranscodeOptions = {
83 84
84function transcode (options: TranscodeOptions) { 85function transcode (options: TranscodeOptions) {
85 return new Promise<void>(async (res, rej) => { 86 return new Promise<void>(async (res, rej) => {
86 let command = ffmpeg(options.inputPath) 87 let command = ffmpeg(options.inputPath, { niceness: FFMPEG_NICE.TRANSCODING })
87 .output(options.outputPath) 88 .output(options.outputPath)
88 .videoCodec('libx264') 89 .preset(standard)
89 .outputOption('-threads ' + CONFIG.TRANSCODING.THREADS) 90
90 .outputOption('-movflags faststart') 91 if (CONFIG.TRANSCODING.THREADS > 0) {
91 .outputOption('-b_strategy 1') // NOTE: b-strategy 1 - heuristic algorythm, 16 is optimal B-frames for it 92 // if we don't set any threads ffmpeg will chose automatically
92 .outputOption('-bf 16') // NOTE: Why 16: https://github.com/Chocobozzz/PeerTube/pull/774. b-strategy 2 -> B-frames<16 93 command = command.outputOption('-threads ' + CONFIG.TRANSCODING.THREADS)
93 // .outputOption('-crf 18') 94 }
94 95
95 let fps = await getVideoFileFPS(options.inputPath) 96 let fps = await getVideoFileFPS(options.inputPath)
96 if (options.resolution !== undefined) { 97 if (options.resolution !== undefined) {
@@ -132,7 +133,8 @@ export {
132 getDurationFromVideoFile, 133 getDurationFromVideoFile,
133 generateImageFromVideoFile, 134 generateImageFromVideoFile,
134 transcode, 135 transcode,
135 getVideoFileFPS 136 getVideoFileFPS,
137 audio
136} 138}
137 139
138// --------------------------------------------------------------------------- 140// ---------------------------------------------------------------------------
@@ -149,3 +151,136 @@ function getVideoFileStream (path: string) {
149 }) 151 })
150 }) 152 })
151} 153}
154
155/**
156 * A slightly customised version of the 'veryfast' x264 preset
157 *
158 * The veryfast preset is right in the sweet spot of performance
159 * and quality. Superfast and ultrafast will give you better
160 * performance, but then quality is noticeably worse.
161 */
162function veryfast (_ffmpeg) {
163 _ffmpeg
164 .preset(standard)
165 .outputOption('-preset:v veryfast')
166 .outputOption(['--aq-mode=2', '--aq-strength=1.3'])
167 /*
168 MAIN reference: https://slhck.info/video/2017/03/01/rate-control.html
169 Our target situation is closer to a livestream than a stream,
170 since we want to reduce as much a possible the encoding burden,
171 altough not to the point of a livestream where there is a hard
172 constraint on the frames per second to be encoded.
173
174 why '--aq-mode=2 --aq-strength=1.3' instead of '-profile:v main'?
175 Make up for most of the loss of grain and macroblocking
176 with less computing power.
177 */
178}
179
180/**
181 * A preset optimised for a stillimage audio video
182 */
183function audio (_ffmpeg) {
184 _ffmpeg
185 .preset(veryfast)
186 .outputOption('-tune stillimage')
187}
188
189/**
190 * A toolbox to play with audio
191 */
192namespace audio {
193 export const get = (_ffmpeg, pos: number | string = 0) => {
194 // without position, ffprobe considers the last input only
195 // we make it consider the first input only
196 // if you pass a file path to pos, then ffprobe acts on that file directly
197 return new Promise<{ absolutePath: string, audioStream?: any }>((res, rej) => {
198 _ffmpeg.ffprobe(pos, (err,data) => {
199 if (err) return rej(err)
200
201 if ('streams' in data) {
202 const audioStream = data['streams'].find(stream => stream['codec_type'] === 'audio')
203 if (audioStream) {
204 return res({
205 absolutePath: data.format.filename,
206 audioStream
207 })
208 }
209 }
210 return res({ absolutePath: data.format.filename })
211 })
212 })
213 }
214
215 export namespace bitrate {
216 export const baseKbitrate = 384
217
218 const toBits = (kbits: number): number => { return kbits * 8000 }
219
220 export const aac = (bitrate: number): number => {
221 switch (true) {
222 case bitrate > toBits(baseKbitrate):
223 return baseKbitrate
224 default:
225 return -1 // we interpret it as a signal to copy the audio stream as is
226 }
227 }
228
229 export const mp3 = (bitrate: number): number => {
230 /*
231 a 192kbit/sec mp3 doesn't hold as much information as a 192kbit/sec aac.
232 That's why, when using aac, we can go to lower kbit/sec. The equivalences
233 made here are not made to be accurate, especially with good mp3 encoders.
234 */
235 switch (true) {
236 case bitrate <= toBits(192):
237 return 128
238 case bitrate <= toBits(384):
239 return 256
240 default:
241 return baseKbitrate
242 }
243 }
244 }
245}
246
247/**
248 * Standard profile, with variable bitrate audio and faststart.
249 *
250 * As for the audio, quality '5' is the highest and ensures 96-112kbps/channel
251 * See https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
252 */
253async function standard (_ffmpeg) {
254 let _bitrate = audio.bitrate.baseKbitrate
255 let localFfmpeg = _ffmpeg
256 .format('mp4')
257 .videoCodec('libx264')
258 .outputOption('-level 3.1') // 3.1 is the minimal ressource allocation for our highest supported resolution
259 .outputOption('-b_strategy 1') // NOTE: b-strategy 1 - heuristic algorythm, 16 is optimal B-frames for it
260 .outputOption('-bf 16') // NOTE: Why 16: https://github.com/Chocobozzz/PeerTube/pull/774. b-strategy 2 -> B-frames<16
261 .outputOption('-map_metadata -1') // strip all metadata
262 .outputOption('-movflags faststart')
263 const _audio = await audio.get(localFfmpeg)
264
265 if (!_audio.audioStream) {
266 return localFfmpeg.noAudio()
267 }
268
269 // we try to reduce the ceiling bitrate by making rough correspondances of bitrates
270 // of course this is far from perfect, but it might save some space in the end
271 if (audio.bitrate[_audio.audioStream['codec_name']]) {
272 _bitrate = audio.bitrate[_audio.audioStream['codec_name']](_audio.audioStream['bit_rate'])
273 if (_bitrate === -1) {
274 return localFfmpeg.audioCodec('copy')
275 }
276 }
277
278 // we favor VBR, if a good AAC encoder is available
279 if ((await checkFFmpegEncoders()).get('libfdk_aac')) {
280 return localFfmpeg
281 .audioCodec('libfdk_aac')
282 .audioQuality(5)
283 }
284
285 return localFfmpeg.audioBitrate(_bitrate)
286}
diff --git a/server/helpers/logger.ts b/server/helpers/logger.ts
index 6d369a8fb..480c5b49e 100644
--- a/server/helpers/logger.ts
+++ b/server/helpers/logger.ts
@@ -22,7 +22,7 @@ function loggerReplacer (key: string, value: any) {
22} 22}
23 23
24const consoleLoggerFormat = winston.format.printf(info => { 24const consoleLoggerFormat = winston.format.printf(info => {
25 let additionalInfos = JSON.stringify(info.meta, loggerReplacer, 2) 25 let additionalInfos = JSON.stringify(info.meta || info.err, loggerReplacer, 2)
26 if (additionalInfos === undefined || additionalInfos === '{}') additionalInfos = '' 26 if (additionalInfos === undefined || additionalInfos === '{}') additionalInfos = ''
27 else additionalInfos = ' ' + additionalInfos 27 else additionalInfos = ' ' + additionalInfos
28 28
@@ -96,13 +96,13 @@ const bunyanLogger = {
96 error: bunyanLogFactory('error'), 96 error: bunyanLogFactory('error'),
97 fatal: bunyanLogFactory('error') 97 fatal: bunyanLogFactory('error')
98} 98}
99
100// --------------------------------------------------------------------------- 99// ---------------------------------------------------------------------------
101 100
102export { 101export {
103 timestampFormatter, 102 timestampFormatter,
104 labelFormatter, 103 labelFormatter,
105 consoleLoggerFormat, 104 consoleLoggerFormat,
105 jsonLoggerFormat,
106 logger, 106 logger,
107 bunyanLogger 107 bunyanLogger
108} 108}
diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts
index cfb427570..7abcec5d7 100644
--- a/server/helpers/utils.ts
+++ b/server/helpers/utils.ts
@@ -6,11 +6,35 @@ import { CONFIG } from '../initializers'
6import { UserModel } from '../models/account/user' 6import { UserModel } from '../models/account/user'
7import { ActorModel } from '../models/activitypub/actor' 7import { ActorModel } from '../models/activitypub/actor'
8import { ApplicationModel } from '../models/application/application' 8import { ApplicationModel } from '../models/application/application'
9import { pseudoRandomBytesPromise } from './core-utils' 9import { pseudoRandomBytesPromise, unlinkPromise } from './core-utils'
10import { logger } from './logger' 10import { logger } from './logger'
11import { isArray } from './custom-validators/misc'
11 12
12const isCidr = require('is-cidr') 13const isCidr = require('is-cidr')
13 14
15function cleanUpReqFiles (req: { files: { [ fieldname: string ]: Express.Multer.File[] } | Express.Multer.File[] }) {
16 const files = req.files
17
18 if (!files) return
19
20 if (isArray(files)) {
21 (files as Express.Multer.File[]).forEach(f => deleteFileAsync(f.path))
22 return
23 }
24
25 for (const key of Object.keys(files)) {
26 const file = files[key]
27
28 if (isArray(file)) file.forEach(f => deleteFileAsync(f.path))
29 else deleteFileAsync(file.path)
30 }
31}
32
33function deleteFileAsync (path: string) {
34 unlinkPromise(path)
35 .catch(err => logger.error('Cannot delete the file %s asynchronously.', path, { err }))
36}
37
14async function generateRandomString (size: number) { 38async function generateRandomString (size: number) {
15 const raw = await pseudoRandomBytesPromise(size) 39 const raw = await pseudoRandomBytesPromise(size)
16 40
@@ -162,6 +186,8 @@ type SortType = { sortModel: any, sortValue: string }
162// --------------------------------------------------------------------------- 186// ---------------------------------------------------------------------------
163 187
164export { 188export {
189 cleanUpReqFiles,
190 deleteFileAsync,
165 generateRandomString, 191 generateRandomString,
166 getFormattedObjects, 192 getFormattedObjects,
167 isSignupAllowed, 193 isSignupAllowed,
diff --git a/server/helpers/youtube-dl.ts b/server/helpers/youtube-dl.ts
new file mode 100644
index 000000000..c59ab9de0
--- /dev/null
+++ b/server/helpers/youtube-dl.ts
@@ -0,0 +1,142 @@
1import * as youtubeDL from 'youtube-dl'
2import { truncate } from 'lodash'
3import { CONFIG, CONSTRAINTS_FIELDS, VIDEO_CATEGORIES } from '../initializers'
4import { join } from 'path'
5import * as crypto from 'crypto'
6import { logger } from './logger'
7
8export type YoutubeDLInfo = {
9 name: string
10 description: string
11 category: number
12 licence: number
13 nsfw: boolean
14 tags: string[]
15 thumbnailUrl: string
16}
17
18function getYoutubeDLInfo (url: string): Promise<YoutubeDLInfo> {
19 return new Promise<YoutubeDLInfo>((res, rej) => {
20 const options = [ '-j', '--flat-playlist' ]
21
22 youtubeDL.getInfo(url, options, (err, info) => {
23 if (err) return rej(err)
24
25 const obj = normalizeObject(info)
26
27 return res(buildVideoInfo(obj))
28 })
29 })
30}
31
32function downloadYoutubeDLVideo (url: string) {
33 const hash = crypto.createHash('sha256').update(url).digest('hex')
34 const path = join(CONFIG.STORAGE.VIDEOS_DIR, hash + '-import.mp4')
35
36 logger.info('Importing video %s', url)
37
38 const options = [ '-f', 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best', '-o', path ]
39
40 return new Promise<string>((res, rej) => {
41 youtubeDL.exec(url, options, async (err, output) => {
42 if (err) return rej(err)
43
44 return res(path)
45 })
46 })
47}
48
49// ---------------------------------------------------------------------------
50
51export {
52 downloadYoutubeDLVideo,
53 getYoutubeDLInfo
54}
55
56// ---------------------------------------------------------------------------
57
58function normalizeObject (obj: any) {
59 const newObj: any = {}
60
61 for (const key of Object.keys(obj)) {
62 // Deprecated key
63 if (key === 'resolution') continue
64
65 const value = obj[key]
66
67 if (typeof value === 'string') {
68 newObj[key] = value.normalize()
69 } else {
70 newObj[key] = value
71 }
72 }
73
74 return newObj
75}
76
77function buildVideoInfo (obj: any) {
78 return {
79 name: titleTruncation(obj.title),
80 description: descriptionTruncation(obj.description),
81 category: getCategory(obj.categories),
82 licence: getLicence(obj.license),
83 nsfw: isNSFW(obj),
84 tags: getTags(obj.tags),
85 thumbnailUrl: obj.thumbnail || undefined
86 }
87}
88
89function titleTruncation (title: string) {
90 return truncate(title, {
91 'length': CONSTRAINTS_FIELDS.VIDEOS.NAME.max,
92 'separator': /,? +/,
93 'omission': ' […]'
94 })
95}
96
97function descriptionTruncation (description: string) {
98 if (!description || description.length < CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.min) return undefined
99
100 return truncate(description, {
101 'length': CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max,
102 'separator': /,? +/,
103 'omission': ' […]'
104 })
105}
106
107function isNSFW (info: any) {
108 return info.age_limit && info.age_limit >= 16
109}
110
111function getTags (tags: any) {
112 if (Array.isArray(tags) === false) return []
113
114 return tags
115 .filter(t => t.length < CONSTRAINTS_FIELDS.VIDEOS.TAG.max && t.length > CONSTRAINTS_FIELDS.VIDEOS.TAG.min)
116 .map(t => t.normalize())
117 .slice(0, 5)
118}
119
120function getLicence (licence: string) {
121 if (!licence) return undefined
122
123 if (licence.indexOf('Creative Commons Attribution') !== -1) return 1
124
125 return undefined
126}
127
128function getCategory (categories: string[]) {
129 if (!categories) return undefined
130
131 const categoryString = categories[0]
132 if (!categoryString || typeof categoryString !== 'string') return undefined
133
134 if (categoryString === 'News & Politics') return 11
135
136 for (const key of Object.keys(VIDEO_CATEGORIES)) {
137 const category = VIDEO_CATEGORIES[key]
138 if (categoryString.toLowerCase() === category.toLowerCase()) return parseInt(key, 10)
139 }
140
141 return undefined
142}
diff --git a/server/initializers/checker.ts b/server/initializers/checker.ts
index 52a1aeb50..608123607 100644
--- a/server/initializers/checker.ts
+++ b/server/initializers/checker.ts
@@ -43,7 +43,7 @@ function checkMissedConfig () {
43 const required = [ 'listen.port', 'listen.hostname', 43 const required = [ 'listen.port', 'listen.hostname',
44 'webserver.https', 'webserver.hostname', 'webserver.port', 44 'webserver.https', 'webserver.hostname', 'webserver.port',
45 'trust_proxy', 45 'trust_proxy',
46 'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password', 46 'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password', 'database.pool.max',
47 'smtp.hostname', 'smtp.port', 'smtp.username', 'smtp.password', 'smtp.tls', 'smtp.from_address', 47 'smtp.hostname', 'smtp.port', 'smtp.username', 'smtp.password', 'smtp.tls', 'smtp.from_address',
48 'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache', 48 'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache',
49 'log.level', 49 'log.level',
@@ -51,6 +51,7 @@ function checkMissedConfig () {
51 'cache.previews.size', 'admin.email', 51 'cache.previews.size', 'admin.email',
52 'signup.enabled', 'signup.limit', 'signup.filters.cidr.whitelist', 'signup.filters.cidr.blacklist', 52 'signup.enabled', 'signup.limit', 'signup.filters.cidr.whitelist', 'signup.filters.cidr.blacklist',
53 'transcoding.enabled', 'transcoding.threads', 53 'transcoding.enabled', 'transcoding.threads',
54 'import.videos.http.enabled',
54 'instance.name', 'instance.short_description', 'instance.description', 'instance.terms', 'instance.default_client_route', 55 'instance.name', 'instance.short_description', 'instance.description', 'instance.terms', 'instance.default_client_route',
55 'instance.default_nsfw_policy', 'instance.robots', 56 'instance.default_nsfw_policy', 'instance.robots',
56 'services.twitter.username', 'services.twitter.whitelisted' 57 'services.twitter.username', 'services.twitter.whitelisted'
@@ -84,11 +85,11 @@ function checkMissedConfig () {
84async function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) { 85async function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) {
85 const Ffmpeg = require('fluent-ffmpeg') 86 const Ffmpeg = require('fluent-ffmpeg')
86 const getAvailableCodecsPromise = promisify0(Ffmpeg.getAvailableCodecs) 87 const getAvailableCodecsPromise = promisify0(Ffmpeg.getAvailableCodecs)
87
88 const codecs = await getAvailableCodecsPromise() 88 const codecs = await getAvailableCodecsPromise()
89 const canEncode = [ 'libx264' ]
90
89 if (CONFIG.TRANSCODING.ENABLED === false) return undefined 91 if (CONFIG.TRANSCODING.ENABLED === false) return undefined
90 92
91 const canEncode = [ 'libx264' ]
92 for (const codec of canEncode) { 93 for (const codec of canEncode) {
93 if (codecs[codec] === undefined) { 94 if (codecs[codec] === undefined) {
94 throw new Error('Unknown codec ' + codec + ' in FFmpeg.') 95 throw new Error('Unknown codec ' + codec + ' in FFmpeg.')
@@ -98,6 +99,29 @@ async function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) {
98 throw new Error('Unavailable encode codec ' + codec + ' in FFmpeg') 99 throw new Error('Unavailable encode codec ' + codec + ' in FFmpeg')
99 } 100 }
100 } 101 }
102
103 checkFFmpegEncoders()
104}
105
106// Optional encoders, if present, can be used to improve transcoding
107// Here we ask ffmpeg if it detects their presence on the system, so that we can later use them
108let supportedOptionalEncoders: Map<string, boolean>
109async function checkFFmpegEncoders (): Promise<Map<string, boolean>> {
110 if (supportedOptionalEncoders !== undefined) {
111 return supportedOptionalEncoders
112 }
113
114 const Ffmpeg = require('fluent-ffmpeg')
115 const getAvailableEncodersPromise = promisify0(Ffmpeg.getAvailableEncoders)
116 const encoders = await getAvailableEncodersPromise()
117 const optionalEncoders = [ 'libfdk_aac' ]
118 supportedOptionalEncoders = new Map<string, boolean>()
119
120 for (const encoder of optionalEncoders) {
121 supportedOptionalEncoders.set(encoder,
122 encoders[encoder] !== undefined
123 )
124 }
101} 125}
102 126
103// We get db by param to not import it in this file (import orders) 127// We get db by param to not import it in this file (import orders)
@@ -126,6 +150,7 @@ async function applicationExist () {
126export { 150export {
127 checkConfig, 151 checkConfig,
128 checkFFmpeg, 152 checkFFmpeg,
153 checkFFmpegEncoders,
129 checkMissedConfig, 154 checkMissedConfig,
130 clientsExist, 155 clientsExist,
131 usersExist, 156 usersExist,
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index 3aa979668..069d9b2e8 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -8,6 +8,7 @@ import { VideoPrivacy } from '../../shared/models/videos'
8import { buildPath, isTestInstance, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils' 8import { buildPath, isTestInstance, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils'
9import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' 9import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type'
10import { invert } from 'lodash' 10import { invert } from 'lodash'
11import { VideoImportState } from '../../shared/models/videos/video-import-state.enum'
11 12
12// Use a variable to reload the configuration if we need 13// Use a variable to reload the configuration if we need
13let config: IConfig = require('config') 14let config: IConfig = require('config')
@@ -36,6 +37,7 @@ const SORTABLE_COLUMNS = {
36 VIDEO_ABUSES: [ 'id', 'createdAt' ], 37 VIDEO_ABUSES: [ 'id', 'createdAt' ],
37 VIDEO_CHANNELS: [ 'id', 'name', 'updatedAt', 'createdAt' ], 38 VIDEO_CHANNELS: [ 'id', 'name', 'updatedAt', 'createdAt' ],
38 VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes' ], 39 VIDEOS: [ 'name', 'duration', 'createdAt', 'publishedAt', 'views', 'likes' ],
40 VIDEO_IMPORTS: [ 'createdAt' ],
39 VIDEO_COMMENT_THREADS: [ 'createdAt' ], 41 VIDEO_COMMENT_THREADS: [ 'createdAt' ],
40 BLACKLISTS: [ 'id', 'name', 'duration', 'views', 'likes', 'dislikes', 'uuid', 'createdAt' ], 42 BLACKLISTS: [ 'id', 'name', 'duration', 'views', 'likes', 'dislikes', 'uuid', 'createdAt' ],
41 FOLLOWERS: [ 'createdAt' ], 43 FOLLOWERS: [ 'createdAt' ],
@@ -85,6 +87,7 @@ const JOB_ATTEMPTS: { [ id in JobType ]: number } = {
85 'activitypub-follow': 5, 87 'activitypub-follow': 5,
86 'video-file-import': 1, 88 'video-file-import': 1,
87 'video-file': 1, 89 'video-file': 1,
90 'video-import': 1,
88 'email': 5 91 'email': 5
89} 92}
90const JOB_CONCURRENCY: { [ id in JobType ]: number } = { 93const JOB_CONCURRENCY: { [ id in JobType ]: number } = {
@@ -94,18 +97,29 @@ const JOB_CONCURRENCY: { [ id in JobType ]: number } = {
94 'activitypub-follow': 3, 97 'activitypub-follow': 3,
95 'video-file-import': 1, 98 'video-file-import': 1,
96 'video-file': 1, 99 'video-file': 1,
100 'video-import': 1,
97 'email': 5 101 'email': 5
98} 102}
103const JOB_TTL: { [ id in JobType ]: number } = {
104 'activitypub-http-broadcast': 60000 * 10, // 10 minutes
105 'activitypub-http-unicast': 60000 * 10, // 10 minutes
106 'activitypub-http-fetcher': 60000 * 10, // 10 minutes
107 'activitypub-follow': 60000 * 10, // 10 minutes
108 'video-file-import': 1000 * 3600, // 1 hour
109 'video-file': 1000 * 3600 * 48, // 2 days, transcoding could be long
110 'video-import': 1000 * 3600 * 5, // 5 hours
111 'email': 60000 * 10 // 10 minutes
112}
99const BROADCAST_CONCURRENCY = 10 // How many requests in parallel we do in activitypub-http-broadcast job 113const BROADCAST_CONCURRENCY = 10 // How many requests in parallel we do in activitypub-http-broadcast job
100const JOB_REQUEST_TIMEOUT = 3000 // 3 seconds 114const JOB_REQUEST_TIMEOUT = 3000 // 3 seconds
101const JOB_REQUEST_TTL = 60000 * 10 // 10 minutes
102const JOB_COMPLETED_LIFETIME = 60000 * 60 * 24 * 2 // 2 days 115const JOB_COMPLETED_LIFETIME = 60000 * 60 * 24 * 2 // 2 days
103 116
104// 1 hour 117// 1 hour
105let SCHEDULER_INTERVALS_MS = { 118let SCHEDULER_INTERVALS_MS = {
106 badActorFollow: 60000 * 60, // 1 hour 119 badActorFollow: 60000 * 60, // 1 hour
107 removeOldJobs: 60000 * 60, // 1 hour 120 removeOldJobs: 60000 * 60, // 1 hour
108 updateVideos: 60000 // 1 minute 121 updateVideos: 60000, // 1 minute
122 youtubeDLUpdate: 60000 * 60 * 24 // 1 day
109} 123}
110 124
111// --------------------------------------------------------------------------- 125// ---------------------------------------------------------------------------
@@ -121,7 +135,10 @@ const CONFIG = {
121 HOSTNAME: config.get<string>('database.hostname'), 135 HOSTNAME: config.get<string>('database.hostname'),
122 PORT: config.get<number>('database.port'), 136 PORT: config.get<number>('database.port'),
123 USERNAME: config.get<string>('database.username'), 137 USERNAME: config.get<string>('database.username'),
124 PASSWORD: config.get<string>('database.password') 138 PASSWORD: config.get<string>('database.password'),
139 POOL: {
140 MAX: config.get<number>('database.pool.max')
141 }
125 }, 142 },
126 REDIS: { 143 REDIS: {
127 HOSTNAME: config.has('redis.hostname') ? config.get<string>('redis.hostname') : null, 144 HOSTNAME: config.has('redis.hostname') ? config.get<string>('redis.hostname') : null,
@@ -189,6 +206,13 @@ const CONFIG = {
189 get '1080p' () { return config.get<boolean>('transcoding.resolutions.1080p') } 206 get '1080p' () { return config.get<boolean>('transcoding.resolutions.1080p') }
190 } 207 }
191 }, 208 },
209 IMPORT: {
210 VIDEOS: {
211 HTTP: {
212 get ENABLED () { return config.get<boolean>('import.videos.http.enabled') }
213 }
214 }
215 },
192 CACHE: { 216 CACHE: {
193 PREVIEWS: { 217 PREVIEWS: {
194 get SIZE () { return config.get<number>('cache.previews.size') } 218 get SIZE () { return config.get<number>('cache.previews.size') }
@@ -245,6 +269,9 @@ const CONSTRAINTS_FIELDS = {
245 } 269 }
246 } 270 }
247 }, 271 },
272 VIDEO_IMPORTS: {
273 URL: { min: 3, max: 2000 } // Length
274 },
248 VIDEOS: { 275 VIDEOS: {
249 NAME: { min: 3, max: 120 }, // Length 276 NAME: { min: 3, max: 120 }, // Length
250 LANGUAGE: { min: 1, max: 10 }, // Length 277 LANGUAGE: { min: 1, max: 10 }, // Length
@@ -259,7 +286,7 @@ const CONSTRAINTS_FIELDS = {
259 }, 286 },
260 EXTNAME: [ '.mp4', '.ogv', '.webm' ], 287 EXTNAME: [ '.mp4', '.ogv', '.webm' ],
261 INFO_HASH: { min: 40, max: 40 }, // Length, info hash is 20 bytes length but we represent it in hexadecimal so 20 * 2 288 INFO_HASH: { min: 40, max: 40 }, // Length, info hash is 20 bytes length but we represent it in hexadecimal so 20 * 2
262 DURATION: { min: 1 }, // Number 289 DURATION: { min: 0 }, // Number
263 TAGS: { min: 0, max: 5 }, // Number of total tags 290 TAGS: { min: 0, max: 5 }, // Number of total tags
264 TAG: { min: 2, max: 30 }, // Length 291 TAG: { min: 2, max: 30 }, // Length
265 THUMBNAIL: { min: 2, max: 30 }, 292 THUMBNAIL: { min: 2, max: 30 },
@@ -313,6 +340,11 @@ const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = {
313 DISLIKE: 'dislike' 340 DISLIKE: 'dislike'
314} 341}
315 342
343const FFMPEG_NICE: { [ id: string ]: number } = {
344 THUMBNAIL: 2, // 2 just for don't blocking servers
345 TRANSCODING: 15
346}
347
316const VIDEO_CATEGORIES = { 348const VIDEO_CATEGORIES = {
317 1: 'Music', 349 1: 'Music',
318 2: 'Films', 350 2: 'Films',
@@ -355,7 +387,14 @@ const VIDEO_PRIVACIES = {
355 387
356const VIDEO_STATES = { 388const VIDEO_STATES = {
357 [VideoState.PUBLISHED]: 'Published', 389 [VideoState.PUBLISHED]: 'Published',
358 [VideoState.TO_TRANSCODE]: 'To transcode' 390 [VideoState.TO_TRANSCODE]: 'To transcode',
391 [VideoState.TO_IMPORT]: 'To import'
392}
393
394const VIDEO_IMPORT_STATES = {
395 [VideoImportState.FAILED]: 'Failed',
396 [VideoImportState.PENDING]: 'Pending',
397 [VideoImportState.SUCCESS]: 'Success'
359} 398}
360 399
361const VIDEO_MIMETYPE_EXT = { 400const VIDEO_MIMETYPE_EXT = {
@@ -553,6 +592,7 @@ export {
553 ROUTE_CACHE_LIFETIME, 592 ROUTE_CACHE_LIFETIME,
554 SORTABLE_COLUMNS, 593 SORTABLE_COLUMNS,
555 FEEDS, 594 FEEDS,
595 JOB_TTL,
556 NSFW_POLICY_TYPES, 596 NSFW_POLICY_TYPES,
557 STATIC_MAX_AGE, 597 STATIC_MAX_AGE,
558 STATIC_PATHS, 598 STATIC_PATHS,
@@ -567,8 +607,8 @@ export {
567 VIDEO_RATE_TYPES, 607 VIDEO_RATE_TYPES,
568 VIDEO_MIMETYPE_EXT, 608 VIDEO_MIMETYPE_EXT,
569 VIDEO_TRANSCODING_FPS, 609 VIDEO_TRANSCODING_FPS,
610 FFMPEG_NICE,
570 JOB_REQUEST_TIMEOUT, 611 JOB_REQUEST_TIMEOUT,
571 JOB_REQUEST_TTL,
572 USER_PASSWORD_RESET_LIFETIME, 612 USER_PASSWORD_RESET_LIFETIME,
573 IMAGE_MIMETYPE_EXT, 613 IMAGE_MIMETYPE_EXT,
574 SCHEDULER_INTERVALS_MS, 614 SCHEDULER_INTERVALS_MS,
@@ -576,6 +616,7 @@ export {
576 RATES_LIMIT, 616 RATES_LIMIT,
577 VIDEO_EXT_MIMETYPE, 617 VIDEO_EXT_MIMETYPE,
578 JOB_COMPLETED_LIFETIME, 618 JOB_COMPLETED_LIFETIME,
619 VIDEO_IMPORT_STATES,
579 VIDEO_VIEW_LIFETIME, 620 VIDEO_VIEW_LIFETIME,
580 buildLanguages 621 buildLanguages
581} 622}
diff --git a/server/initializers/database.ts b/server/initializers/database.ts
index 1a9ce5a61..0be752363 100644
--- a/server/initializers/database.ts
+++ b/server/initializers/database.ts
@@ -24,6 +24,7 @@ import { VideoTagModel } from '../models/video/video-tag'
24import { CONFIG } from './constants' 24import { CONFIG } from './constants'
25import { ScheduleVideoUpdateModel } from '../models/video/schedule-video-update' 25import { ScheduleVideoUpdateModel } from '../models/video/schedule-video-update'
26import { VideoCaptionModel } from '../models/video/video-caption' 26import { VideoCaptionModel } from '../models/video/video-caption'
27import { VideoImportModel } from '../models/video/video-import'
27 28
28require('pg').defaults.parseInt8 = true // Avoid BIGINT to be converted to string 29require('pg').defaults.parseInt8 = true // Avoid BIGINT to be converted to string
29 30
@@ -32,6 +33,7 @@ const username = CONFIG.DATABASE.USERNAME
32const password = CONFIG.DATABASE.PASSWORD 33const password = CONFIG.DATABASE.PASSWORD
33const host = CONFIG.DATABASE.HOSTNAME 34const host = CONFIG.DATABASE.HOSTNAME
34const port = CONFIG.DATABASE.PORT 35const port = CONFIG.DATABASE.PORT
36const poolMax = CONFIG.DATABASE.POOL.MAX
35 37
36const sequelizeTypescript = new SequelizeTypescript({ 38const sequelizeTypescript = new SequelizeTypescript({
37 database: dbname, 39 database: dbname,
@@ -40,6 +42,9 @@ const sequelizeTypescript = new SequelizeTypescript({
40 port, 42 port,
41 username, 43 username,
42 password, 44 password,
45 pool: {
46 max: poolMax
47 },
43 benchmark: isTestInstance(), 48 benchmark: isTestInstance(),
44 isolationLevel: SequelizeTypescript.Transaction.ISOLATION_LEVELS.SERIALIZABLE, 49 isolationLevel: SequelizeTypescript.Transaction.ISOLATION_LEVELS.SERIALIZABLE,
45 operatorsAliases: false, 50 operatorsAliases: false,
@@ -77,7 +82,8 @@ async function initDatabaseModels (silent: boolean) {
77 VideoTagModel, 82 VideoTagModel,
78 VideoModel, 83 VideoModel,
79 VideoCommentModel, 84 VideoCommentModel,
80 ScheduleVideoUpdateModel 85 ScheduleVideoUpdateModel,
86 VideoImportModel
81 ]) 87 ])
82 88
83 // Check extensions exist in the database 89 // Check extensions exist in the database
diff --git a/server/lib/activitypub/process/process-update.ts b/server/lib/activitypub/process/process-update.ts
index 62791ff1b..82b661a03 100644
--- a/server/lib/activitypub/process/process-update.ts
+++ b/server/lib/activitypub/process/process-update.ts
@@ -108,7 +108,7 @@ async function processUpdateVideo (actor: ActorModel, activity: ActivityUpdate)
108 await Promise.all(videoFileDestroyTasks) 108 await Promise.all(videoFileDestroyTasks)
109 109
110 const videoFileAttributes = videoFileActivityUrlToDBAttributes(videoInstance, videoObject) 110 const videoFileAttributes = videoFileActivityUrlToDBAttributes(videoInstance, videoObject)
111 const tasks = videoFileAttributes.map(f => VideoFileModel.create(f)) 111 const tasks = videoFileAttributes.map(f => VideoFileModel.create(f, sequelizeOptions))
112 await Promise.all(tasks) 112 await Promise.all(tasks)
113 113
114 // Update Tags 114 // Update Tags
diff --git a/server/lib/activitypub/videos.ts b/server/lib/activitypub/videos.ts
index b3fbf88d0..e2f46bd02 100644
--- a/server/lib/activitypub/videos.ts
+++ b/server/lib/activitypub/videos.ts
@@ -162,7 +162,8 @@ function videoFileActivityUrlToDBAttributes (videoCreated: VideoModel, videoObje
162 infoHash: parsed.infoHash, 162 infoHash: parsed.infoHash,
163 resolution: fileUrl.width, 163 resolution: fileUrl.width,
164 size: fileUrl.size, 164 size: fileUrl.size,
165 videoId: videoCreated.id 165 videoId: videoCreated.id,
166 fps: fileUrl.fps
166 } as VideoFileModel 167 } as VideoFileModel
167 attributes.push(attribute) 168 attributes.push(attribute)
168 } 169 }
diff --git a/server/lib/job-queue/handlers/video-import.ts b/server/lib/job-queue/handlers/video-import.ts
new file mode 100644
index 000000000..cdfe412cc
--- /dev/null
+++ b/server/lib/job-queue/handlers/video-import.ts
@@ -0,0 +1,145 @@
1import * as Bull from 'bull'
2import { logger } from '../../../helpers/logger'
3import { downloadYoutubeDLVideo } from '../../../helpers/youtube-dl'
4import { VideoImportModel } from '../../../models/video/video-import'
5import { VideoImportState } from '../../../../shared/models/videos'
6import { getDurationFromVideoFile, getVideoFileFPS, getVideoFileResolution } from '../../../helpers/ffmpeg-utils'
7import { extname, join } from 'path'
8import { VideoFileModel } from '../../../models/video/video-file'
9import { renamePromise, statPromise, unlinkPromise } from '../../../helpers/core-utils'
10import { CONFIG, sequelizeTypescript } from '../../../initializers'
11import { doRequestAndSaveToFile } from '../../../helpers/requests'
12import { VideoState } from '../../../../shared'
13import { JobQueue } from '../index'
14import { federateVideoIfNeeded } from '../../activitypub'
15import { VideoModel } from '../../../models/video/video'
16
17export type VideoImportPayload = {
18 type: 'youtube-dl'
19 videoImportId: number
20 thumbnailUrl: string
21 downloadThumbnail: boolean
22 downloadPreview: boolean
23}
24
25async function processVideoImport (job: Bull.Job) {
26 const payload = job.data as VideoImportPayload
27 logger.info('Processing video import in job %d.', job.id)
28
29 const videoImport = await VideoImportModel.loadAndPopulateVideo(payload.videoImportId)
30 if (!videoImport || !videoImport.Video) {
31 throw new Error('Cannot import video %s: the video import or video linked to this import does not exist anymore.')
32 }
33
34 let tempVideoPath: string
35 let videoDestFile: string
36 let videoFile: VideoFileModel
37 try {
38 // Download video from youtubeDL
39 tempVideoPath = await downloadYoutubeDLVideo(videoImport.targetUrl)
40
41 // Get information about this video
42 const { videoFileResolution } = await getVideoFileResolution(tempVideoPath)
43 const fps = await getVideoFileFPS(tempVideoPath)
44 const stats = await statPromise(tempVideoPath)
45 const duration = await getDurationFromVideoFile(tempVideoPath)
46
47 // Create video file object in database
48 const videoFileData = {
49 extname: extname(tempVideoPath),
50 resolution: videoFileResolution,
51 size: stats.size,
52 fps,
53 videoId: videoImport.videoId
54 }
55 videoFile = new VideoFileModel(videoFileData)
56 // Import if the import fails, to clean files
57 videoImport.Video.VideoFiles = [ videoFile ]
58
59 // Move file
60 videoDestFile = join(CONFIG.STORAGE.VIDEOS_DIR, videoImport.Video.getVideoFilename(videoFile))
61 await renamePromise(tempVideoPath, videoDestFile)
62 tempVideoPath = null // This path is not used anymore
63
64 // Process thumbnail
65 if (payload.downloadThumbnail) {
66 if (payload.thumbnailUrl) {
67 const destThumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, videoImport.Video.getThumbnailName())
68 await doRequestAndSaveToFile({ method: 'GET', uri: payload.thumbnailUrl }, destThumbnailPath)
69 } else {
70 await videoImport.Video.createThumbnail(videoFile)
71 }
72 }
73
74 // Process preview
75 if (payload.downloadPreview) {
76 if (payload.thumbnailUrl) {
77 const destPreviewPath = join(CONFIG.STORAGE.PREVIEWS_DIR, videoImport.Video.getPreviewName())
78 await doRequestAndSaveToFile({ method: 'GET', uri: payload.thumbnailUrl }, destPreviewPath)
79 } else {
80 await videoImport.Video.createPreview(videoFile)
81 }
82 }
83
84 // Create torrent
85 await videoImport.Video.createTorrentAndSetInfoHash(videoFile)
86
87 const videoImportUpdated: VideoImportModel = await sequelizeTypescript.transaction(async t => {
88 // Refresh video
89 const video = await VideoModel.load(videoImport.videoId, t)
90 if (!video) throw new Error('Video linked to import ' + videoImport.videoId + ' does not exist anymore.')
91 videoImport.Video = video
92
93 const videoFileCreated = await videoFile.save({ transaction: t })
94 video.VideoFiles = [ videoFileCreated ]
95
96 // Update video DB object
97 video.duration = duration
98 video.state = CONFIG.TRANSCODING.ENABLED ? VideoState.TO_TRANSCODE : VideoState.PUBLISHED
99 const videoUpdated = await video.save({ transaction: t })
100
101 // Now we can federate the video (reload from database, we need more attributes)
102 const videoForFederation = await VideoModel.loadByUUIDAndPopulateAccountAndServerAndTags(video.uuid, t)
103 await federateVideoIfNeeded(videoForFederation, true, t)
104
105 // Update video import object
106 videoImport.state = VideoImportState.SUCCESS
107 const videoImportUpdated = await videoImport.save({ transaction: t })
108
109 logger.info('Video %s imported.', videoImport.targetUrl)
110
111 videoImportUpdated.Video = videoUpdated
112 return videoImportUpdated
113 })
114
115 // Create transcoding jobs?
116 if (videoImportUpdated.Video.state === VideoState.TO_TRANSCODE) {
117 // Put uuid because we don't have id auto incremented for now
118 const dataInput = {
119 videoUUID: videoImportUpdated.Video.uuid,
120 isNewVideo: true
121 }
122
123 await JobQueue.Instance.createJob({ type: 'video-file', payload: dataInput })
124 }
125
126 } catch (err) {
127 try {
128 if (tempVideoPath) await unlinkPromise(tempVideoPath)
129 } catch (errUnlink) {
130 logger.warn('Cannot cleanup files after a video import error.', { err: errUnlink })
131 }
132
133 videoImport.error = err.message
134 videoImport.state = VideoImportState.FAILED
135 await videoImport.save()
136
137 throw err
138 }
139}
140
141// ---------------------------------------------------------------------------
142
143export {
144 processVideoImport
145}
diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts
index 8ff0c169e..8a24604e1 100644
--- a/server/lib/job-queue/job-queue.ts
+++ b/server/lib/job-queue/job-queue.ts
@@ -2,13 +2,14 @@ import * as Bull from 'bull'
2import { JobState, JobType } from '../../../shared/models' 2import { JobState, JobType } from '../../../shared/models'
3import { logger } from '../../helpers/logger' 3import { logger } from '../../helpers/logger'
4import { Redis } from '../redis' 4import { Redis } from '../redis'
5import { CONFIG, JOB_ATTEMPTS, JOB_COMPLETED_LIFETIME, JOB_CONCURRENCY, JOB_REQUEST_TTL } from '../../initializers' 5import { CONFIG, JOB_ATTEMPTS, JOB_COMPLETED_LIFETIME, JOB_CONCURRENCY, JOB_TTL } from '../../initializers'
6import { ActivitypubHttpBroadcastPayload, processActivityPubHttpBroadcast } from './handlers/activitypub-http-broadcast' 6import { ActivitypubHttpBroadcastPayload, processActivityPubHttpBroadcast } from './handlers/activitypub-http-broadcast'
7import { ActivitypubHttpFetcherPayload, processActivityPubHttpFetcher } from './handlers/activitypub-http-fetcher' 7import { ActivitypubHttpFetcherPayload, processActivityPubHttpFetcher } from './handlers/activitypub-http-fetcher'
8import { ActivitypubHttpUnicastPayload, processActivityPubHttpUnicast } from './handlers/activitypub-http-unicast' 8import { ActivitypubHttpUnicastPayload, processActivityPubHttpUnicast } from './handlers/activitypub-http-unicast'
9import { EmailPayload, processEmail } from './handlers/email' 9import { EmailPayload, processEmail } from './handlers/email'
10import { processVideoFile, processVideoFileImport, VideoFileImportPayload, VideoFilePayload } from './handlers/video-file' 10import { processVideoFile, processVideoFileImport, VideoFileImportPayload, VideoFilePayload } from './handlers/video-file'
11import { ActivitypubFollowPayload, processActivityPubFollow } from './handlers/activitypub-follow' 11import { ActivitypubFollowPayload, processActivityPubFollow } from './handlers/activitypub-follow'
12import { processVideoImport, VideoImportPayload } from './handlers/video-import'
12 13
13type CreateJobArgument = 14type CreateJobArgument =
14 { type: 'activitypub-http-broadcast', payload: ActivitypubHttpBroadcastPayload } | 15 { type: 'activitypub-http-broadcast', payload: ActivitypubHttpBroadcastPayload } |
@@ -17,7 +18,8 @@ type CreateJobArgument =
17 { type: 'activitypub-follow', payload: ActivitypubFollowPayload } | 18 { type: 'activitypub-follow', payload: ActivitypubFollowPayload } |
18 { type: 'video-file-import', payload: VideoFileImportPayload } | 19 { type: 'video-file-import', payload: VideoFileImportPayload } |
19 { type: 'video-file', payload: VideoFilePayload } | 20 { type: 'video-file', payload: VideoFilePayload } |
20 { type: 'email', payload: EmailPayload } 21 { type: 'email', payload: EmailPayload } |
22 { type: 'video-import', payload: VideoImportPayload }
21 23
22const handlers: { [ id in JobType ]: (job: Bull.Job) => Promise<any>} = { 24const handlers: { [ id in JobType ]: (job: Bull.Job) => Promise<any>} = {
23 'activitypub-http-broadcast': processActivityPubHttpBroadcast, 25 'activitypub-http-broadcast': processActivityPubHttpBroadcast,
@@ -26,7 +28,8 @@ const handlers: { [ id in JobType ]: (job: Bull.Job) => Promise<any>} = {
26 'activitypub-follow': processActivityPubFollow, 28 'activitypub-follow': processActivityPubFollow,
27 'video-file-import': processVideoFileImport, 29 'video-file-import': processVideoFileImport,
28 'video-file': processVideoFile, 30 'video-file': processVideoFile,
29 'email': processEmail 31 'email': processEmail,
32 'video-import': processVideoImport
30} 33}
31 34
32const jobsWithRequestTimeout: { [ id in JobType ]?: boolean } = { 35const jobsWithRequestTimeout: { [ id in JobType ]?: boolean } = {
@@ -43,7 +46,8 @@ const jobTypes: JobType[] = [
43 'activitypub-http-unicast', 46 'activitypub-http-unicast',
44 'email', 47 'email',
45 'video-file', 48 'video-file',
46 'video-file-import' 49 'video-file-import',
50 'video-import'
47] 51]
48 52
49class JobQueue { 53class JobQueue {
@@ -75,7 +79,11 @@ class JobQueue {
75 const handler = handlers[handlerName] 79 const handler = handlers[handlerName]
76 80
77 queue.process(JOB_CONCURRENCY[handlerName], handler) 81 queue.process(JOB_CONCURRENCY[handlerName], handler)
78 .catch(err => logger.error('Cannot execute job queue %s.', handlerName, { err })) 82 .catch(err => logger.error('Error in job queue processor %s.', handlerName, { err }))
83
84 queue.on('failed', (job, err) => {
85 logger.error('Cannot execute job %d in queue %s.', job.id, handlerName, { payload: job.data, err })
86 })
79 87
80 queue.on('error', err => { 88 queue.on('error', err => {
81 logger.error('Error in job queue %s.', handlerName, { err }) 89 logger.error('Error in job queue %s.', handlerName, { err })
@@ -102,11 +110,8 @@ class JobQueue {
102 110
103 const jobArgs: Bull.JobOptions = { 111 const jobArgs: Bull.JobOptions = {
104 backoff: { delay: 60 * 1000, type: 'exponential' }, 112 backoff: { delay: 60 * 1000, type: 'exponential' },
105 attempts: JOB_ATTEMPTS[obj.type] 113 attempts: JOB_ATTEMPTS[obj.type],
106 } 114 timeout: JOB_TTL[obj.type]
107
108 if (jobsWithRequestTimeout[obj.type] === true) {
109 jobArgs.timeout = JOB_REQUEST_TTL
110 } 115 }
111 116
112 return queue.add(obj.payload, jobArgs) 117 return queue.add(obj.payload, jobArgs)
diff --git a/server/lib/schedulers/youtube-dl-update-scheduler.ts b/server/lib/schedulers/youtube-dl-update-scheduler.ts
new file mode 100644
index 000000000..a2d919603
--- /dev/null
+++ b/server/lib/schedulers/youtube-dl-update-scheduler.ts
@@ -0,0 +1,72 @@
1// Thanks: https://github.com/przemyslawpluta/node-youtube-dl/blob/master/lib/downloader.js
2// We rewrote it to avoid sync calls
3
4import { AbstractScheduler } from './abstract-scheduler'
5import { SCHEDULER_INTERVALS_MS } from '../../initializers'
6import { logger } from '../../helpers/logger'
7import * as request from 'request'
8import { createWriteStream, writeFile } from 'fs'
9import { join } from 'path'
10import { root } from '../../helpers/core-utils'
11
12export class YoutubeDlUpdateScheduler extends AbstractScheduler {
13
14 private static instance: AbstractScheduler
15
16 protected schedulerIntervalMs = SCHEDULER_INTERVALS_MS.youtubeDLUpdate
17
18 private constructor () {
19 super()
20 }
21
22 async execute () {
23 const binDirectory = join(root(), 'node_modules', 'youtube-dl', 'bin')
24 const bin = join(binDirectory, 'youtube-dl')
25 const detailsPath = join(binDirectory, 'details')
26 const url = 'https://yt-dl.org/downloads/latest/youtube-dl'
27
28 request.get(url, { followRedirect: false }, (err, res) => {
29 if (err) {
30 logger.error('Cannot update youtube-dl.', { err })
31 return
32 }
33
34 if (res.statusCode !== 302) {
35 logger.error('youtube-dl update error: did not get redirect for the latest version link. Status %d', res.statusCode)
36 return
37 }
38
39 const url = res.headers.location
40 const downloadFile = request.get(url)
41 const newVersion = /yt-dl\.org\/downloads\/(\d{4}\.\d\d\.\d\d(\.\d)?)\/youtube-dl/.exec(url)[1]
42
43 downloadFile.on('response', res => {
44 if (res.statusCode !== 200) {
45 logger.error('Cannot update youtube-dl: new version response is not 200, it\'s %d.', res.statusCode)
46 return
47 }
48
49 downloadFile.pipe(createWriteStream(bin, { mode: 493 }))
50 })
51
52 downloadFile.on('error', err => logger.error('youtube-dl update error.', { err }))
53
54 downloadFile.on('end', () => {
55 const details = JSON.stringify({ version: newVersion, path: bin, exec: 'youtube-dl' })
56 writeFile(detailsPath, details, { encoding: 'utf8' }, err => {
57 if (err) {
58 logger.error('youtube-dl update error: cannot write details.', { err })
59 return
60 }
61
62 logger.info('youtube-dl updated to version %s.', newVersion)
63 })
64 })
65
66 })
67 }
68
69 static get Instance () {
70 return this.instance || (this.instance = new this())
71 }
72}
diff --git a/server/lib/user.ts b/server/lib/user.ts
index ac5f55260..e7a45f5aa 100644
--- a/server/lib/user.ts
+++ b/server/lib/user.ts
@@ -17,6 +17,7 @@ async function createUserAccountAndChannel (userToCreate: UserModel, validateUse
17 17
18 const userCreated = await userToCreate.save(userOptions) 18 const userCreated = await userToCreate.save(userOptions)
19 const accountCreated = await createLocalAccountWithoutKeys(userToCreate.username, userToCreate.id, null, t) 19 const accountCreated = await createLocalAccountWithoutKeys(userToCreate.username, userToCreate.id, null, t)
20 userCreated.Account = accountCreated
20 21
21 const videoChannelDisplayName = `Default ${userCreated.username} channel` 22 const videoChannelDisplayName = `Default ${userCreated.username} channel`
22 const videoChannelInfo = { 23 const videoChannelInfo = {
diff --git a/server/middlewares/validators/avatar.ts b/server/middlewares/validators/avatar.ts
index f346ea92f..5860735c6 100644
--- a/server/middlewares/validators/avatar.ts
+++ b/server/middlewares/validators/avatar.ts
@@ -4,6 +4,7 @@ import { isAvatarFile } from '../../helpers/custom-validators/users'
4import { areValidationErrors } from './utils' 4import { areValidationErrors } from './utils'
5import { CONSTRAINTS_FIELDS } from '../../initializers' 5import { CONSTRAINTS_FIELDS } from '../../initializers'
6import { logger } from '../../helpers/logger' 6import { logger } from '../../helpers/logger'
7import { cleanUpReqFiles } from '../../helpers/utils'
7 8
8const updateAvatarValidator = [ 9const updateAvatarValidator = [
9 body('avatarfile').custom((value, { req }) => isAvatarFile(req.files)).withMessage( 10 body('avatarfile').custom((value, { req }) => isAvatarFile(req.files)).withMessage(
@@ -14,7 +15,7 @@ const updateAvatarValidator = [
14 (req: express.Request, res: express.Response, next: express.NextFunction) => { 15 (req: express.Request, res: express.Response, next: express.NextFunction) => {
15 logger.debug('Checking updateAvatarValidator parameters', { files: req.files }) 16 logger.debug('Checking updateAvatarValidator parameters', { files: req.files })
16 17
17 if (areValidationErrors(req, res)) return 18 if (areValidationErrors(req, res)) return cleanUpReqFiles(req)
18 19
19 return next() 20 return next()
20 } 21 }
diff --git a/server/middlewares/validators/config.ts b/server/middlewares/validators/config.ts
index f58c0676c..9d303eee2 100644
--- a/server/middlewares/validators/config.ts
+++ b/server/middlewares/validators/config.ts
@@ -24,6 +24,7 @@ const customConfigUpdateValidator = [
24 body('transcoding.resolutions.480p').isBoolean().withMessage('Should have a valid transcoding 480p resolution enabled boolean'), 24 body('transcoding.resolutions.480p').isBoolean().withMessage('Should have a valid transcoding 480p resolution enabled boolean'),
25 body('transcoding.resolutions.720p').isBoolean().withMessage('Should have a valid transcoding 720p resolution enabled boolean'), 25 body('transcoding.resolutions.720p').isBoolean().withMessage('Should have a valid transcoding 720p resolution enabled boolean'),
26 body('transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'), 26 body('transcoding.resolutions.1080p').isBoolean().withMessage('Should have a valid transcoding 1080p resolution enabled boolean'),
27 body('import.videos.http.enabled').isBoolean().withMessage('Should have a valid import video http enabled boolean'),
27 28
28 async (req: express.Request, res: express.Response, next: express.NextFunction) => { 29 async (req: express.Request, res: express.Response, next: express.NextFunction) => {
29 logger.debug('Checking customConfigUpdateValidator parameters', { parameters: req.body }) 30 logger.debug('Checking customConfigUpdateValidator parameters', { parameters: req.body })
diff --git a/server/middlewares/validators/index.ts b/server/middlewares/validators/index.ts
index e3f0f5963..c5400c8f5 100644
--- a/server/middlewares/validators/index.ts
+++ b/server/middlewares/validators/index.ts
@@ -11,3 +11,4 @@ export * from './video-blacklist'
11export * from './video-channels' 11export * from './video-channels'
12export * from './webfinger' 12export * from './webfinger'
13export * from './search' 13export * from './search'
14export * from './video-imports'
diff --git a/server/middlewares/validators/sort.ts b/server/middlewares/validators/sort.ts
index 00bde548c..d85611773 100644
--- a/server/middlewares/validators/sort.ts
+++ b/server/middlewares/validators/sort.ts
@@ -8,6 +8,7 @@ const SORTABLE_JOBS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.JOBS)
8const SORTABLE_VIDEO_ABUSES_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_ABUSES) 8const SORTABLE_VIDEO_ABUSES_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_ABUSES)
9const SORTABLE_VIDEOS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEOS) 9const SORTABLE_VIDEOS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEOS)
10const SORTABLE_VIDEOS_SEARCH_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEOS_SEARCH) 10const SORTABLE_VIDEOS_SEARCH_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEOS_SEARCH)
11const SORTABLE_VIDEO_IMPORTS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_IMPORTS)
11const SORTABLE_VIDEO_COMMENT_THREADS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_COMMENT_THREADS) 12const SORTABLE_VIDEO_COMMENT_THREADS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_COMMENT_THREADS)
12const SORTABLE_BLACKLISTS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.BLACKLISTS) 13const SORTABLE_BLACKLISTS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.BLACKLISTS)
13const SORTABLE_VIDEO_CHANNELS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_CHANNELS) 14const SORTABLE_VIDEO_CHANNELS_COLUMNS = createSortableColumns(SORTABLE_COLUMNS.VIDEO_CHANNELS)
@@ -19,6 +20,7 @@ const accountsSortValidator = checkSort(SORTABLE_ACCOUNTS_COLUMNS)
19const jobsSortValidator = checkSort(SORTABLE_JOBS_COLUMNS) 20const jobsSortValidator = checkSort(SORTABLE_JOBS_COLUMNS)
20const videoAbusesSortValidator = checkSort(SORTABLE_VIDEO_ABUSES_COLUMNS) 21const videoAbusesSortValidator = checkSort(SORTABLE_VIDEO_ABUSES_COLUMNS)
21const videosSortValidator = checkSort(SORTABLE_VIDEOS_COLUMNS) 22const videosSortValidator = checkSort(SORTABLE_VIDEOS_COLUMNS)
23const videoImportsSortValidator = checkSort(SORTABLE_VIDEO_IMPORTS_COLUMNS)
22const videosSearchSortValidator = checkSort(SORTABLE_VIDEOS_SEARCH_COLUMNS) 24const videosSearchSortValidator = checkSort(SORTABLE_VIDEOS_SEARCH_COLUMNS)
23const videoCommentThreadsSortValidator = checkSort(SORTABLE_VIDEO_COMMENT_THREADS_COLUMNS) 25const videoCommentThreadsSortValidator = checkSort(SORTABLE_VIDEO_COMMENT_THREADS_COLUMNS)
24const blacklistSortValidator = checkSort(SORTABLE_BLACKLISTS_COLUMNS) 26const blacklistSortValidator = checkSort(SORTABLE_BLACKLISTS_COLUMNS)
@@ -32,6 +34,7 @@ export {
32 usersSortValidator, 34 usersSortValidator,
33 videoAbusesSortValidator, 35 videoAbusesSortValidator,
34 videoChannelsSortValidator, 36 videoChannelsSortValidator,
37 videoImportsSortValidator,
35 videosSearchSortValidator, 38 videosSearchSortValidator,
36 videosSortValidator, 39 videosSortValidator,
37 blacklistSortValidator, 40 blacklistSortValidator,
diff --git a/server/middlewares/validators/video-captions.ts b/server/middlewares/validators/video-captions.ts
index b6d92d380..18d537bc4 100644
--- a/server/middlewares/validators/video-captions.ts
+++ b/server/middlewares/validators/video-captions.ts
@@ -7,6 +7,7 @@ import { CONSTRAINTS_FIELDS } from '../../initializers'
7import { UserRight } from '../../../shared' 7import { UserRight } from '../../../shared'
8import { logger } from '../../helpers/logger' 8import { logger } from '../../helpers/logger'
9import { isVideoCaptionExist, isVideoCaptionFile, isVideoCaptionLanguageValid } from '../../helpers/custom-validators/video-captions' 9import { isVideoCaptionExist, isVideoCaptionFile, isVideoCaptionLanguageValid } from '../../helpers/custom-validators/video-captions'
10import { cleanUpReqFiles } from '../../helpers/utils'
10 11
11const addVideoCaptionValidator = [ 12const addVideoCaptionValidator = [
12 param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid video id'), 13 param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid video id'),
@@ -20,12 +21,12 @@ const addVideoCaptionValidator = [
20 async (req: express.Request, res: express.Response, next: express.NextFunction) => { 21 async (req: express.Request, res: express.Response, next: express.NextFunction) => {
21 logger.debug('Checking addVideoCaption parameters', { parameters: req.body }) 22 logger.debug('Checking addVideoCaption parameters', { parameters: req.body })
22 23
23 if (areValidationErrors(req, res)) return 24 if (areValidationErrors(req, res)) return cleanUpReqFiles(req)
24 if (!await isVideoExist(req.params.videoId, res)) return 25 if (!await isVideoExist(req.params.videoId, res)) return cleanUpReqFiles(req)
25 26
26 // Check if the user who did the request is able to update the video 27 // Check if the user who did the request is able to update the video
27 const user = res.locals.oauth.token.User 28 const user = res.locals.oauth.token.User
28 if (!checkUserCanManageVideo(user, res.locals.video, UserRight.UPDATE_ANY_VIDEO, res)) return 29 if (!checkUserCanManageVideo(user, res.locals.video, UserRight.UPDATE_ANY_VIDEO, res)) return cleanUpReqFiles(req)
29 30
30 return next() 31 return next()
31 } 32 }
diff --git a/server/middlewares/validators/video-channels.ts b/server/middlewares/validators/video-channels.ts
index 7f65f7290..143ce9582 100644
--- a/server/middlewares/validators/video-channels.ts
+++ b/server/middlewares/validators/video-channels.ts
@@ -1,7 +1,7 @@
1import * as express from 'express' 1import * as express from 'express'
2import { body, param } from 'express-validator/check' 2import { body, param } from 'express-validator/check'
3import { UserRight } from '../../../shared' 3import { UserRight } from '../../../shared'
4import { isAccountIdExist, isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts' 4import { isAccountNameWithHostExist } from '../../helpers/custom-validators/accounts'
5import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc' 5import { isIdOrUUIDValid } from '../../helpers/custom-validators/misc'
6import { 6import {
7 isVideoChannelDescriptionValid, 7 isVideoChannelDescriptionValid,
@@ -13,8 +13,6 @@ import { logger } from '../../helpers/logger'
13import { UserModel } from '../../models/account/user' 13import { UserModel } from '../../models/account/user'
14import { VideoChannelModel } from '../../models/video/video-channel' 14import { VideoChannelModel } from '../../models/video/video-channel'
15import { areValidationErrors } from './utils' 15import { areValidationErrors } from './utils'
16import { isAvatarFile } from '../../helpers/custom-validators/users'
17import { CONSTRAINTS_FIELDS } from '../../initializers'
18 16
19const listVideoAccountChannelsValidator = [ 17const listVideoAccountChannelsValidator = [
20 param('accountName').exists().withMessage('Should have a valid account name'), 18 param('accountName').exists().withMessage('Should have a valid account name'),
diff --git a/server/middlewares/validators/video-imports.ts b/server/middlewares/validators/video-imports.ts
new file mode 100644
index 000000000..d806edfa3
--- /dev/null
+++ b/server/middlewares/validators/video-imports.ts
@@ -0,0 +1,47 @@
1import * as express from 'express'
2import { body } from 'express-validator/check'
3import { isIdValid } from '../../helpers/custom-validators/misc'
4import { logger } from '../../helpers/logger'
5import { areValidationErrors } from './utils'
6import { getCommonVideoAttributes } from './videos'
7import { isVideoImportTargetUrlValid } from '../../helpers/custom-validators/video-imports'
8import { cleanUpReqFiles } from '../../helpers/utils'
9import { isVideoChannelOfAccountExist, isVideoNameValid } from '../../helpers/custom-validators/videos'
10import { CONFIG } from '../../initializers/constants'
11
12const videoImportAddValidator = getCommonVideoAttributes().concat([
13 body('targetUrl').custom(isVideoImportTargetUrlValid).withMessage('Should have a valid video import target URL'),
14 body('channelId')
15 .toInt()
16 .custom(isIdValid).withMessage('Should have correct video channel id'),
17 body('name')
18 .optional()
19 .custom(isVideoNameValid).withMessage('Should have a valid name'),
20
21 async (req: express.Request, res: express.Response, next: express.NextFunction) => {
22 logger.debug('Checking videoImportAddValidator parameters', { parameters: req.body })
23
24 const user = res.locals.oauth.token.User
25
26 if (areValidationErrors(req, res)) return cleanUpReqFiles(req)
27
28 if (CONFIG.IMPORT.VIDEOS.HTTP.ENABLED !== true) {
29 cleanUpReqFiles(req)
30 return res.status(409)
31 .json({ error: 'Import is not enabled on this instance.' })
32 .end()
33 }
34
35 if (!await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return cleanUpReqFiles(req)
36
37 return next()
38 }
39])
40
41// ---------------------------------------------------------------------------
42
43export {
44 videoImportAddValidator
45}
46
47// ---------------------------------------------------------------------------
diff --git a/server/middlewares/validators/videos.ts b/server/middlewares/validators/videos.ts
index d9af2aa0a..c812d4677 100644
--- a/server/middlewares/validators/videos.ts
+++ b/server/middlewares/validators/videos.ts
@@ -35,6 +35,7 @@ import { CONSTRAINTS_FIELDS } from '../../initializers'
35import { VideoShareModel } from '../../models/video/video-share' 35import { VideoShareModel } from '../../models/video/video-share'
36import { authenticate } from '../oauth' 36import { authenticate } from '../oauth'
37import { areValidationErrors } from './utils' 37import { areValidationErrors } from './utils'
38import { cleanUpReqFiles } from '../../helpers/utils'
38 39
39const videosAddValidator = getCommonVideoAttributes().concat([ 40const videosAddValidator = getCommonVideoAttributes().concat([
40 body('videofile') 41 body('videofile')
@@ -50,13 +51,13 @@ const videosAddValidator = getCommonVideoAttributes().concat([
50 async (req: express.Request, res: express.Response, next: express.NextFunction) => { 51 async (req: express.Request, res: express.Response, next: express.NextFunction) => {
51 logger.debug('Checking videosAdd parameters', { parameters: req.body, files: req.files }) 52 logger.debug('Checking videosAdd parameters', { parameters: req.body, files: req.files })
52 53
53 if (areValidationErrors(req, res)) return 54 if (areValidationErrors(req, res)) return cleanUpReqFiles(req)
54 if (areErrorsInScheduleUpdate(req, res)) return 55 if (areErrorsInScheduleUpdate(req, res)) return cleanUpReqFiles(req)
55 56
56 const videoFile: Express.Multer.File = req.files['videofile'][0] 57 const videoFile: Express.Multer.File = req.files['videofile'][0]
57 const user = res.locals.oauth.token.User 58 const user = res.locals.oauth.token.User
58 59
59 if (!await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return 60 if (!await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return cleanUpReqFiles(req)
60 61
61 const isAble = await user.isAbleToUploadVideo(videoFile) 62 const isAble = await user.isAbleToUploadVideo(videoFile)
62 if (isAble === false) { 63 if (isAble === false) {
@@ -64,7 +65,7 @@ const videosAddValidator = getCommonVideoAttributes().concat([
64 .json({ error: 'The user video quota is exceeded with this video.' }) 65 .json({ error: 'The user video quota is exceeded with this video.' })
65 .end() 66 .end()
66 67
67 return 68 return cleanUpReqFiles(req)
68 } 69 }
69 70
70 let duration: number 71 let duration: number
@@ -77,7 +78,7 @@ const videosAddValidator = getCommonVideoAttributes().concat([
77 .json({ error: 'Invalid input file.' }) 78 .json({ error: 'Invalid input file.' })
78 .end() 79 .end()
79 80
80 return 81 return cleanUpReqFiles(req)
81 } 82 }
82 83
83 videoFile['duration'] = duration 84 videoFile['duration'] = duration
@@ -99,23 +100,24 @@ const videosUpdateValidator = getCommonVideoAttributes().concat([
99 async (req: express.Request, res: express.Response, next: express.NextFunction) => { 100 async (req: express.Request, res: express.Response, next: express.NextFunction) => {
100 logger.debug('Checking videosUpdate parameters', { parameters: req.body }) 101 logger.debug('Checking videosUpdate parameters', { parameters: req.body })
101 102
102 if (areValidationErrors(req, res)) return 103 if (areValidationErrors(req, res)) return cleanUpReqFiles(req)
103 if (areErrorsInScheduleUpdate(req, res)) return 104 if (areErrorsInScheduleUpdate(req, res)) return cleanUpReqFiles(req)
104 if (!await isVideoExist(req.params.id, res)) return 105 if (!await isVideoExist(req.params.id, res)) return cleanUpReqFiles(req)
105 106
106 const video = res.locals.video 107 const video = res.locals.video
107 108
108 // Check if the user who did the request is able to update the video 109 // Check if the user who did the request is able to update the video
109 const user = res.locals.oauth.token.User 110 const user = res.locals.oauth.token.User
110 if (!checkUserCanManageVideo(user, res.locals.video, UserRight.UPDATE_ANY_VIDEO, res)) return 111 if (!checkUserCanManageVideo(user, res.locals.video, UserRight.UPDATE_ANY_VIDEO, res)) return cleanUpReqFiles(req)
111 112
112 if (video.privacy !== VideoPrivacy.PRIVATE && req.body.privacy === VideoPrivacy.PRIVATE) { 113 if (video.privacy !== VideoPrivacy.PRIVATE && req.body.privacy === VideoPrivacy.PRIVATE) {
114 cleanUpReqFiles(req)
113 return res.status(409) 115 return res.status(409)
114 .json({ error: 'Cannot set "private" a video that was not private.' }) 116 .json({ error: 'Cannot set "private" a video that was not private.' })
115 .end() 117 .end()
116 } 118 }
117 119
118 if (req.body.channelId && !await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return 120 if (req.body.channelId && !await isVideoChannelOfAccountExist(req.body.channelId, user, res)) return cleanUpReqFiles(req)
119 121
120 return next() 122 return next()
121 } 123 }
@@ -221,36 +223,6 @@ const videosShareValidator = [
221 } 223 }
222] 224]
223 225
224// ---------------------------------------------------------------------------
225
226export {
227 videosAddValidator,
228 videosUpdateValidator,
229 videosGetValidator,
230 videosRemoveValidator,
231 videosShareValidator,
232
233 videoAbuseReportValidator,
234
235 videoRateValidator
236}
237
238// ---------------------------------------------------------------------------
239
240function areErrorsInScheduleUpdate (req: express.Request, res: express.Response) {
241 if (req.body.scheduleUpdate) {
242 if (!req.body.scheduleUpdate.updateAt) {
243 res.status(400)
244 .json({ error: 'Schedule update at is mandatory.' })
245 .end()
246
247 return true
248 }
249 }
250
251 return false
252}
253
254function getCommonVideoAttributes () { 226function getCommonVideoAttributes () {
255 return [ 227 return [
256 body('thumbnailfile') 228 body('thumbnailfile')
@@ -317,3 +289,35 @@ function getCommonVideoAttributes () {
317 .custom(isScheduleVideoUpdatePrivacyValid).withMessage('Should have correct schedule update privacy') 289 .custom(isScheduleVideoUpdatePrivacyValid).withMessage('Should have correct schedule update privacy')
318 ] as (ValidationChain | express.Handler)[] 290 ] as (ValidationChain | express.Handler)[]
319} 291}
292
293// ---------------------------------------------------------------------------
294
295export {
296 videosAddValidator,
297 videosUpdateValidator,
298 videosGetValidator,
299 videosRemoveValidator,
300 videosShareValidator,
301
302 videoAbuseReportValidator,
303
304 videoRateValidator,
305
306 getCommonVideoAttributes
307}
308
309// ---------------------------------------------------------------------------
310
311function areErrorsInScheduleUpdate (req: express.Request, res: express.Response) {
312 if (req.body.scheduleUpdate) {
313 if (!req.body.scheduleUpdate.updateAt) {
314 res.status(400)
315 .json({ error: 'Schedule update at is mandatory.' })
316 .end()
317
318 return true
319 }
320 }
321
322 return false
323}
diff --git a/server/models/account/account.ts b/server/models/account/account.ts
index d674d8d22..66f5dcf2e 100644
--- a/server/models/account/account.ts
+++ b/server/models/account/account.ts
@@ -16,7 +16,6 @@ import {
16} from 'sequelize-typescript' 16} from 'sequelize-typescript'
17import { Account } from '../../../shared/models/actors' 17import { Account } from '../../../shared/models/actors'
18import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts' 18import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts'
19import { logger } from '../../helpers/logger'
20import { sendDeleteActor } from '../../lib/activitypub/send' 19import { sendDeleteActor } from '../../lib/activitypub/send'
21import { ActorModel } from '../activitypub/actor' 20import { ActorModel } from '../activitypub/actor'
22import { ApplicationModel } from '../application/application' 21import { ApplicationModel } from '../application/application'
diff --git a/server/models/activitypub/actor.ts b/server/models/activitypub/actor.ts
index 267032e2a..35d7c35e8 100644
--- a/server/models/activitypub/actor.ts
+++ b/server/models/activitypub/actor.ts
@@ -91,6 +91,9 @@ enum ScopeNames {
91 fields: [ 'inboxUrl', 'sharedInboxUrl' ] 91 fields: [ 'inboxUrl', 'sharedInboxUrl' ]
92 }, 92 },
93 { 93 {
94 fields: [ 'sharedInboxUrl' ]
95 },
96 {
94 fields: [ 'serverId' ] 97 fields: [ 'serverId' ]
95 }, 98 },
96 { 99 {
@@ -454,6 +457,10 @@ export class ActorModel extends Model<ActorModel> {
454 return 'acct:' + this.preferredUsername + '@' + this.getHost() 457 return 'acct:' + this.preferredUsername + '@' + this.getHost()
455 } 458 }
456 459
460 getIdentifier () {
461 return this.Server ? `${this.preferredUsername}@${this.Server.host}` : this.preferredUsername
462 }
463
457 getHost () { 464 getHost () {
458 return this.Server ? this.Server.host : CONFIG.WEBSERVER.HOST 465 return this.Server ? this.Server.host : CONFIG.WEBSERVER.HOST
459 } 466 }
diff --git a/server/models/video/video-import.ts b/server/models/video/video-import.ts
new file mode 100644
index 000000000..eca87163d
--- /dev/null
+++ b/server/models/video/video-import.ts
@@ -0,0 +1,175 @@
1import {
2 AfterUpdate,
3 AllowNull,
4 BelongsTo,
5 Column,
6 CreatedAt,
7 DataType,
8 Default,
9 DefaultScope,
10 ForeignKey,
11 Is,
12 Model,
13 Table,
14 UpdatedAt
15} from 'sequelize-typescript'
16import { CONSTRAINTS_FIELDS, VIDEO_IMPORT_STATES } from '../../initializers'
17import { getSort, throwIfNotValid } from '../utils'
18import { VideoModel } from './video'
19import { isVideoImportStateValid, isVideoImportTargetUrlValid } from '../../helpers/custom-validators/video-imports'
20import { VideoImport, VideoImportState } from '../../../shared'
21import { VideoChannelModel } from './video-channel'
22import { AccountModel } from '../account/account'
23import { TagModel } from './tag'
24
25@DefaultScope({
26 include: [
27 {
28 model: () => VideoModel,
29 required: false,
30 include: [
31 {
32 model: () => VideoChannelModel,
33 required: true,
34 include: [
35 {
36 model: () => AccountModel,
37 required: true
38 }
39 ]
40 },
41 {
42 model: () => TagModel
43 }
44 ]
45 }
46 ]
47})
48
49@Table({
50 tableName: 'videoImport',
51 indexes: [
52 {
53 fields: [ 'videoId' ],
54 unique: true
55 }
56 ]
57})
58export class VideoImportModel extends Model<VideoImportModel> {
59 @CreatedAt
60 createdAt: Date
61
62 @UpdatedAt
63 updatedAt: Date
64
65 @AllowNull(false)
66 @Is('VideoImportTargetUrl', value => throwIfNotValid(value, isVideoImportTargetUrlValid, 'targetUrl'))
67 @Column(DataType.STRING(CONSTRAINTS_FIELDS.VIDEO_IMPORTS.URL.max))
68 targetUrl: string
69
70 @AllowNull(false)
71 @Default(null)
72 @Is('VideoImportState', value => throwIfNotValid(value, isVideoImportStateValid, 'state'))
73 @Column
74 state: VideoImportState
75
76 @AllowNull(true)
77 @Default(null)
78 @Column(DataType.TEXT)
79 error: string
80
81 @ForeignKey(() => VideoModel)
82 @Column
83 videoId: number
84
85 @BelongsTo(() => VideoModel, {
86 foreignKey: {
87 allowNull: true
88 },
89 onDelete: 'set null'
90 })
91 Video: VideoModel
92
93 @AfterUpdate
94 static deleteVideoIfFailed (instance: VideoImportModel, options) {
95 if (instance.state === VideoImportState.FAILED) {
96 return instance.Video.destroy({ transaction: options.transaction })
97 }
98
99 return undefined
100 }
101
102 static loadAndPopulateVideo (id: number) {
103 return VideoImportModel.findById(id)
104 }
105
106 static listUserVideoImportsForApi (accountId: number, start: number, count: number, sort: string) {
107 const query = {
108 distinct: true,
109 offset: start,
110 limit: count,
111 order: getSort(sort),
112 include: [
113 {
114 model: VideoModel,
115 required: false,
116 include: [
117 {
118 model: VideoChannelModel,
119 required: true,
120 include: [
121 {
122 model: AccountModel,
123 required: true,
124 where: {
125 id: accountId
126 }
127 }
128 ]
129 },
130 {
131 model: TagModel,
132 required: false
133 }
134 ]
135 }
136 ]
137 }
138
139 return VideoImportModel.unscoped()
140 .findAndCountAll(query)
141 .then(({ rows, count }) => {
142 return {
143 data: rows,
144 total: count
145 }
146 })
147 }
148
149 toFormattedJSON (): VideoImport {
150 const videoFormatOptions = {
151 additionalAttributes: { state: true, waitTranscoding: true, scheduledUpdate: true }
152 }
153 const video = this.Video
154 ? Object.assign(this.Video.toFormattedJSON(videoFormatOptions), {
155 tags: this.Video.Tags.map(t => t.name)
156 })
157 : undefined
158
159 return {
160 id: this.id,
161 targetUrl: this.targetUrl,
162 state: {
163 id: this.state,
164 label: VideoImportModel.getStateLabel(this.state)
165 },
166 error: this.error,
167 updatedAt: this.updatedAt.toISOString(),
168 createdAt: this.createdAt.toISOString(),
169 video
170 }
171 }
172 private static getStateLabel (id: number) {
173 return VIDEO_IMPORT_STATES[id] || 'Unknown'
174 }
175}
diff --git a/server/models/video/video.ts b/server/models/video/video.ts
index a6c4620b2..39fe21007 100644
--- a/server/models/video/video.ts
+++ b/server/models/video/video.ts
@@ -377,7 +377,7 @@ type AvailableForListOptions = {
377 include: [ 377 include: [
378 { 378 {
379 model: () => VideoFileModel.unscoped(), 379 model: () => VideoFileModel.unscoped(),
380 required: true 380 required: false
381 } 381 }
382 ] 382 ]
383 }, 383 },
@@ -957,8 +957,10 @@ export class VideoModel extends Model<VideoModel> {
957 }) 957 })
958 } 958 }
959 959
960 static load (id: number) { 960 static load (id: number, t?: Sequelize.Transaction) {
961 return VideoModel.findById(id) 961 const options = t ? { transaction: t } : undefined
962
963 return VideoModel.findById(id, options)
962 } 964 }
963 965
964 static loadByUrlAndPopulateAccount (url: string, t?: Sequelize.Transaction) { 966 static loadByUrlAndPopulateAccount (url: string, t?: Sequelize.Transaction) {
@@ -1353,7 +1355,8 @@ export class VideoModel extends Model<VideoModel> {
1353 mimeType: VIDEO_EXT_MIMETYPE[file.extname], 1355 mimeType: VIDEO_EXT_MIMETYPE[file.extname],
1354 href: this.getVideoFileUrl(file, baseUrlHttp), 1356 href: this.getVideoFileUrl(file, baseUrlHttp),
1355 width: file.resolution, 1357 width: file.resolution,
1356 size: file.size 1358 size: file.size,
1359 fps: file.fps
1357 }) 1360 })
1358 1361
1359 url.push({ 1362 url.push({
@@ -1569,21 +1572,25 @@ export class VideoModel extends Model<VideoModel> {
1569 removeThumbnail () { 1572 removeThumbnail () {
1570 const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName()) 1573 const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName())
1571 return unlinkPromise(thumbnailPath) 1574 return unlinkPromise(thumbnailPath)
1575 .catch(err => logger.warn('Cannot delete thumbnail %s.', thumbnailPath, { err }))
1572 } 1576 }
1573 1577
1574 removePreview () { 1578 removePreview () {
1575 // Same name than video thumbnail 1579 const previewPath = join(CONFIG.STORAGE.PREVIEWS_DIR + this.getPreviewName())
1576 return unlinkPromise(CONFIG.STORAGE.PREVIEWS_DIR + this.getPreviewName()) 1580 return unlinkPromise(previewPath)
1581 .catch(err => logger.warn('Cannot delete preview %s.', previewPath, { err }))
1577 } 1582 }
1578 1583
1579 removeFile (videoFile: VideoFileModel) { 1584 removeFile (videoFile: VideoFileModel) {
1580 const filePath = join(CONFIG.STORAGE.VIDEOS_DIR, this.getVideoFilename(videoFile)) 1585 const filePath = join(CONFIG.STORAGE.VIDEOS_DIR, this.getVideoFilename(videoFile))
1581 return unlinkPromise(filePath) 1586 return unlinkPromise(filePath)
1587 .catch(err => logger.warn('Cannot delete file %s.', filePath, { err }))
1582 } 1588 }
1583 1589
1584 removeTorrent (videoFile: VideoFileModel) { 1590 removeTorrent (videoFile: VideoFileModel) {
1585 const torrentPath = join(CONFIG.STORAGE.TORRENTS_DIR, this.getTorrentFileName(videoFile)) 1591 const torrentPath = join(CONFIG.STORAGE.TORRENTS_DIR, this.getTorrentFileName(videoFile))
1586 return unlinkPromise(torrentPath) 1592 return unlinkPromise(torrentPath)
1593 .catch(err => logger.warn('Cannot delete torrent %s.', torrentPath, { err }))
1587 } 1594 }
1588 1595
1589 getActivityStreamDuration () { 1596 getActivityStreamDuration () {
diff --git a/server/tests/api/check-params/config.ts b/server/tests/api/check-params/config.ts
index 03855237f..2742e26de 100644
--- a/server/tests/api/check-params/config.ts
+++ b/server/tests/api/check-params/config.ts
@@ -60,6 +60,13 @@ describe('Test config API validators', function () {
60 '720p': false, 60 '720p': false,
61 '1080p': false 61 '1080p': false
62 } 62 }
63 },
64 import: {
65 videos: {
66 http: {
67 enabled: false
68 }
69 }
63 } 70 }
64 } 71 }
65 72
diff --git a/server/tests/api/check-params/index.ts b/server/tests/api/check-params/index.ts
index 820dde889..03fdd5c4e 100644
--- a/server/tests/api/check-params/index.ts
+++ b/server/tests/api/check-params/index.ts
@@ -10,4 +10,5 @@ import './video-captions'
10import './video-channels' 10import './video-channels'
11import './video-comments' 11import './video-comments'
12import './videos' 12import './videos'
13import './video-imports'
13import './search' 14import './search'
diff --git a/server/tests/api/check-params/video-imports.ts b/server/tests/api/check-params/video-imports.ts
new file mode 100644
index 000000000..0ead34a47
--- /dev/null
+++ b/server/tests/api/check-params/video-imports.ts
@@ -0,0 +1,275 @@
1/* tslint:disable:no-unused-expression */
2
3import { omit } from 'lodash'
4import 'mocha'
5import { join } from 'path'
6import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum'
7import {
8 createUser,
9 flushTests,
10 getMyUserInformation,
11 immutableAssign,
12 killallServers,
13 makeGetRequest,
14 makePostBodyRequest,
15 makeUploadRequest,
16 runServer,
17 ServerInfo,
18 setAccessTokensToServers,
19 updateCustomSubConfig,
20 userLogin
21} from '../../utils'
22import { checkBadCountPagination, checkBadSortPagination, checkBadStartPagination } from '../../utils/requests/check-api-params'
23import { getYoutubeVideoUrl } from '../../utils/videos/video-imports'
24
25describe('Test video imports API validator', function () {
26 const path = '/api/v1/videos/imports'
27 let server: ServerInfo
28 let userAccessToken = ''
29 let accountName: string
30 let channelId: number
31 let channelUUID: string
32
33 // ---------------------------------------------------------------
34
35 before(async function () {
36 this.timeout(30000)
37
38 await flushTests()
39
40 server = await runServer(1)
41
42 await setAccessTokensToServers([ server ])
43
44 const username = 'user1'
45 const password = 'my super password'
46 await createUser(server.url, server.accessToken, username, password)
47 userAccessToken = await userLogin(server, { username, password })
48
49 {
50 const res = await getMyUserInformation(server.url, server.accessToken)
51 channelId = res.body.videoChannels[ 0 ].id
52 channelUUID = res.body.videoChannels[ 0 ].uuid
53 accountName = res.body.account.name + '@' + res.body.account.host
54 }
55 })
56
57 describe('When listing my video imports', function () {
58 const myPath = '/api/v1/users/me/videos/imports'
59
60 it('Should fail with a bad start pagination', async function () {
61 await checkBadStartPagination(server.url, myPath, server.accessToken)
62 })
63
64 it('Should fail with a bad count pagination', async function () {
65 await checkBadCountPagination(server.url, myPath, server.accessToken)
66 })
67
68 it('Should fail with an incorrect sort', async function () {
69 await checkBadSortPagination(server.url, myPath, server.accessToken)
70 })
71
72 it('Should success with the correct parameters', async function () {
73 await makeGetRequest({ url: server.url, path: myPath, statusCodeExpected: 200, token: server.accessToken })
74 })
75 })
76
77 describe('When adding a video import', function () {
78 let baseCorrectParams
79
80 before(function () {
81 baseCorrectParams = {
82 targetUrl: getYoutubeVideoUrl(),
83 name: 'my super name',
84 category: 5,
85 licence: 1,
86 language: 'pt',
87 nsfw: false,
88 commentsEnabled: true,
89 waitTranscoding: true,
90 description: 'my super description',
91 support: 'my super support text',
92 tags: [ 'tag1', 'tag2' ],
93 privacy: VideoPrivacy.PUBLIC,
94 channelId: channelId
95 }
96 })
97
98 it('Should fail with nothing', async function () {
99 const fields = {}
100 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
101 })
102
103 it('Should fail without a target url', async function () {
104 const fields = omit(baseCorrectParams, 'targetUrl')
105 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields, statusCodeExpected: 400 })
106 })
107
108 it('Should fail with a bad target url', async function () {
109 const fields = immutableAssign(baseCorrectParams, { targetUrl: 'htt://hello' })
110
111 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
112 })
113
114 it('Should fail with a long name', async function () {
115 const fields = immutableAssign(baseCorrectParams, { name: 'super'.repeat(65) })
116
117 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
118 })
119
120 it('Should fail with a bad category', async function () {
121 const fields = immutableAssign(baseCorrectParams, { category: 125 })
122
123 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
124 })
125
126 it('Should fail with a bad licence', async function () {
127 const fields = immutableAssign(baseCorrectParams, { licence: 125 })
128
129 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
130 })
131
132 it('Should fail with a bad language', async function () {
133 const fields = immutableAssign(baseCorrectParams, { language: 'a'.repeat(15) })
134
135 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
136 })
137
138 it('Should fail with a long description', async function () {
139 const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) })
140
141 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
142 })
143
144 it('Should fail with a long support text', async function () {
145 const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
146
147 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
148 })
149
150 it('Should fail without a channel', async function () {
151 const fields = omit(baseCorrectParams, 'channelId')
152
153 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
154 })
155
156 it('Should fail with a bad channel', async function () {
157 const fields = immutableAssign(baseCorrectParams, { channelId: 545454 })
158
159 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
160 })
161
162 it('Should fail with another user channel', async function () {
163 const user = {
164 username: 'fake',
165 password: 'fake_password'
166 }
167 await createUser(server.url, server.accessToken, user.username, user.password)
168
169 const accessTokenUser = await userLogin(server, user)
170 const res = await getMyUserInformation(server.url, accessTokenUser)
171 const customChannelId = res.body.videoChannels[0].id
172
173 const fields = immutableAssign(baseCorrectParams, { channelId: customChannelId })
174
175 await makePostBodyRequest({ url: server.url, path, token: userAccessToken, fields })
176 })
177
178 it('Should fail with too many tags', async function () {
179 const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6' ] })
180
181 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
182 })
183
184 it('Should fail with a tag length too low', async function () {
185 const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 't' ] })
186
187 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
188 })
189
190 it('Should fail with a tag length too big', async function () {
191 const fields = immutableAssign(baseCorrectParams, { tags: [ 'tag1', 'my_super_tag_too_long_long_long_long_long_long' ] })
192
193 await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
194 })
195
196 it('Should fail with an incorrect thumbnail file', async function () {
197 const fields = baseCorrectParams
198 const attaches = {
199 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png')
200 }
201
202 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
203 })
204
205 it('Should fail with a big thumbnail file', async function () {
206 const fields = baseCorrectParams
207 const attaches = {
208 'thumbnailfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png')
209 }
210
211 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
212 })
213
214 it('Should fail with an incorrect preview file', async function () {
215 const fields = baseCorrectParams
216 const attaches = {
217 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar.png')
218 }
219
220 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
221 })
222
223 it('Should fail with a big preview file', async function () {
224 const fields = baseCorrectParams
225 const attaches = {
226 'previewfile': join(__dirname, '..', '..', 'fixtures', 'avatar-big.png')
227 }
228
229 await makeUploadRequest({ url: server.url, path, token: server.accessToken, fields, attaches })
230 })
231
232 it('Should succeed with the correct parameters', async function () {
233 this.timeout(10000)
234
235 {
236 await makePostBodyRequest({
237 url: server.url,
238 path,
239 token: server.accessToken,
240 fields: baseCorrectParams,
241 statusCodeExpected: 200
242 })
243 }
244 })
245
246 it('Should forbid to import videos', async function () {
247 await updateCustomSubConfig(server.url, server.accessToken, {
248 import: {
249 videos: {
250 http: {
251 enabled: false
252 }
253 }
254 }
255 })
256
257 await makePostBodyRequest({
258 url: server.url,
259 path,
260 token: server.accessToken,
261 fields: baseCorrectParams,
262 statusCodeExpected: 409
263 })
264 })
265 })
266
267 after(async function () {
268 killallServers([ server ])
269
270 // Keep the logs if the test failed
271 if (this['ok']) {
272 await flushTests()
273 }
274 })
275})
diff --git a/server/tests/api/index-slow.ts b/server/tests/api/index-slow.ts
index d987442b3..243c941cb 100644
--- a/server/tests/api/index-slow.ts
+++ b/server/tests/api/index-slow.ts
@@ -1,4 +1,5 @@
1// Order of the tests we want to execute 1// Order of the tests we want to execute
2import './videos/video-channels'
2import './videos/video-transcoder' 3import './videos/video-transcoder'
3import './videos/multiple-servers' 4import './videos/multiple-servers'
4import './server/follows' 5import './server/follows'
@@ -7,3 +8,4 @@ import './videos/video-comments'
7import './users/users-multiple-servers' 8import './users/users-multiple-servers'
8import './server/handle-down' 9import './server/handle-down'
9import './videos/video-schedule-update' 10import './videos/video-schedule-update'
11import './videos/video-imports'
diff --git a/server/tests/api/server/config.ts b/server/tests/api/server/config.ts
index 1782a8623..b65061a5d 100644
--- a/server/tests/api/server/config.ts
+++ b/server/tests/api/server/config.ts
@@ -44,6 +44,7 @@ function checkInitialConfig (data: CustomConfig) {
44 expect(data.transcoding.resolutions['480p']).to.be.true 44 expect(data.transcoding.resolutions['480p']).to.be.true
45 expect(data.transcoding.resolutions['720p']).to.be.true 45 expect(data.transcoding.resolutions['720p']).to.be.true
46 expect(data.transcoding.resolutions['1080p']).to.be.true 46 expect(data.transcoding.resolutions['1080p']).to.be.true
47 expect(data.import.videos.http.enabled).to.be.true
47} 48}
48 49
49function checkUpdatedConfig (data: CustomConfig) { 50function checkUpdatedConfig (data: CustomConfig) {
@@ -70,6 +71,7 @@ function checkUpdatedConfig (data: CustomConfig) {
70 expect(data.transcoding.resolutions['480p']).to.be.true 71 expect(data.transcoding.resolutions['480p']).to.be.true
71 expect(data.transcoding.resolutions['720p']).to.be.false 72 expect(data.transcoding.resolutions['720p']).to.be.false
72 expect(data.transcoding.resolutions['1080p']).to.be.false 73 expect(data.transcoding.resolutions['1080p']).to.be.false
74 expect(data.import.videos.http.enabled).to.be.false
73} 75}
74 76
75describe('Test config', function () { 77describe('Test config', function () {
@@ -160,6 +162,13 @@ describe('Test config', function () {
160 '720p': false, 162 '720p': false,
161 '1080p': false 163 '1080p': false
162 } 164 }
165 },
166 import: {
167 videos: {
168 http: {
169 enabled: false
170 }
171 }
163 } 172 }
164 } 173 }
165 await updateCustomConfig(server.url, server.accessToken, newCustomConfig) 174 await updateCustomConfig(server.url, server.accessToken, newCustomConfig)
diff --git a/server/tests/api/server/follows.ts b/server/tests/api/server/follows.ts
index a19b47509..25c87b4dc 100644
--- a/server/tests/api/server/follows.ts
+++ b/server/tests/api/server/follows.ts
@@ -178,7 +178,7 @@ describe('Test follows', function () {
178 }) 178 })
179 179
180 it('Should upload a video on server 2 and 3 and propagate only the video of server 2', async function () { 180 it('Should upload a video on server 2 and 3 and propagate only the video of server 2', async function () {
181 this.timeout(10000) 181 this.timeout(35000)
182 182
183 await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'server2' }) 183 await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'server2' })
184 await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' }) 184 await uploadVideo(servers[2].url, servers[2].accessToken, { name: 'server3' })
diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts
index fb9722630..18a0d9ce3 100644
--- a/server/tests/api/server/handle-down.ts
+++ b/server/tests/api/server/handle-down.ts
@@ -176,7 +176,7 @@ describe('Test handle downs', function () {
176 }) 176 })
177 177
178 it('Should re-follow server 1', async function () { 178 it('Should re-follow server 1', async function () {
179 this.timeout(15000) 179 this.timeout(35000)
180 180
181 await reRunServer(servers[1]) 181 await reRunServer(servers[1])
182 await reRunServer(servers[2]) 182 await reRunServer(servers[2])
diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts
index cb18898ce..516dc5aba 100644
--- a/server/tests/api/videos/multiple-servers.ts
+++ b/server/tests/api/videos/multiple-servers.ts
@@ -209,19 +209,19 @@ describe('Test multiple servers', function () {
209 files: [ 209 files: [
210 { 210 {
211 resolution: 240, 211 resolution: 240,
212 size: 190000 212 size: 280000
213 }, 213 },
214 { 214 {
215 resolution: 360, 215 resolution: 360,
216 size: 280000 216 size: 370000
217 }, 217 },
218 { 218 {
219 resolution: 480, 219 resolution: 480,
220 size: 390000 220 size: 470000
221 }, 221 },
222 { 222 {
223 resolution: 720, 223 resolution: 720,
224 size: 710000 224 size: 740000
225 } 225 }
226 ], 226 ],
227 thumbnailfile: 'thumbnail', 227 thumbnailfile: 'thumbnail',
@@ -975,19 +975,19 @@ describe('Test multiple servers', function () {
975 files: [ 975 files: [
976 { 976 {
977 resolution: 720, 977 resolution: 720,
978 size: 40315 978 size: 36000
979 }, 979 },
980 { 980 {
981 resolution: 480, 981 resolution: 480,
982 size: 22808 982 size: 21000
983 }, 983 },
984 { 984 {
985 resolution: 360, 985 resolution: 360,
986 size: 18617 986 size: 17000
987 }, 987 },
988 { 988 {
989 resolution: 240, 989 resolution: 240,
990 size: 15217 990 size: 13000
991 } 991 }
992 ] 992 ]
993 } 993 }
diff --git a/server/tests/api/videos/video-imports.ts b/server/tests/api/videos/video-imports.ts
new file mode 100644
index 000000000..f21ade5c3
--- /dev/null
+++ b/server/tests/api/videos/video-imports.ts
@@ -0,0 +1,161 @@
1/* tslint:disable:no-unused-expression */
2
3import * as chai from 'chai'
4import 'mocha'
5import { VideoDetails, VideoPrivacy } from '../../../../shared/models/videos'
6import {
7 doubleFollow,
8 flushAndRunMultipleServers,
9 getMyUserInformation,
10 getMyVideos,
11 getVideo,
12 getVideosList,
13 killallServers,
14 ServerInfo,
15 setAccessTokensToServers
16} from '../../utils'
17import { waitJobs } from '../../utils/server/jobs'
18import { getMyVideoImports, getYoutubeVideoUrl, importVideo } from '../../utils/videos/video-imports'
19
20const expect = chai.expect
21
22describe('Test video imports', function () {
23 let servers: ServerInfo[] = []
24 let channelIdServer1: number
25 let channelIdServer2: number
26
27 async function checkVideoServer1 (url: string, id: number | string) {
28 const res = await getVideo(url, id)
29 const video: VideoDetails = res.body
30
31 expect(video.name).to.equal('small video - youtube')
32 expect(video.category.label).to.equal('News')
33 expect(video.licence.label).to.equal('Attribution')
34 expect(video.language.label).to.equal('Unknown')
35 expect(video.nsfw).to.be.false
36 expect(video.description).to.equal('this is a super description')
37 expect(video.tags).to.deep.equal([ 'tag1', 'tag2' ])
38
39 expect(video.files).to.have.lengthOf(1)
40 }
41
42 async function checkVideoServer2 (url: string, id: number | string) {
43 const res = await getVideo(url, id)
44 const video = res.body
45
46 expect(video.name).to.equal('my super name')
47 expect(video.category.label).to.equal('Entertainment')
48 expect(video.licence.label).to.equal('Public Domain Dedication')
49 expect(video.language.label).to.equal('English')
50 expect(video.nsfw).to.be.false
51 expect(video.description).to.equal('my super description')
52 expect(video.tags).to.deep.equal([ 'supertag1', 'supertag2' ])
53
54 expect(video.files).to.have.lengthOf(1)
55 }
56
57 before(async function () {
58 this.timeout(30000)
59
60 // Run servers
61 servers = await flushAndRunMultipleServers(2)
62
63 await setAccessTokensToServers(servers)
64
65 {
66 const res = await getMyUserInformation(servers[0].url, servers[0].accessToken)
67 channelIdServer1 = res.body.videoChannels[ 0 ].id
68 }
69
70 {
71 const res = await getMyUserInformation(servers[1].url, servers[1].accessToken)
72 channelIdServer2 = res.body.videoChannels[ 0 ].id
73 }
74
75 await doubleFollow(servers[0], servers[1])
76 })
77
78 it('Should import a video on server 1', async function () {
79 this.timeout(60000)
80
81 const attributes = {
82 targetUrl: getYoutubeVideoUrl(),
83 channelId: channelIdServer1,
84 privacy: VideoPrivacy.PUBLIC
85 }
86 const res = await importVideo(servers[0].url, servers[0].accessToken, attributes)
87 expect(res.body.video.name).to.equal('small video - youtube')
88 })
89
90 it('Should list the video to import in my videos on server 1', async function () {
91 const res = await getMyVideos(servers[0].url, servers[0].accessToken, 0, 5)
92
93 expect(res.body.total).to.equal(1)
94
95 const videos = res.body.data
96 expect(videos).to.have.lengthOf(1)
97 expect(videos[0].name).to.equal('small video - youtube')
98 })
99
100 it('Should list the video to import in my imports on server 1', async function () {
101 const res = await getMyVideoImports(servers[0].url, servers[0].accessToken)
102
103 expect(res.body.total).to.equal(1)
104 const videoImports = res.body.data
105 expect(videoImports).to.have.lengthOf(1)
106
107 expect(videoImports[0].targetUrl).to.equal(getYoutubeVideoUrl())
108 expect(videoImports[0].video.name).to.equal('small video - youtube')
109 })
110
111 it('Should have the video listed on the two instances1', async function () {
112 this.timeout(120000)
113
114 await waitJobs(servers)
115
116 for (const server of servers) {
117 const res = await getVideosList(server.url)
118 expect(res.body.total).to.equal(1)
119 expect(res.body.data).to.have.lengthOf(1)
120
121 await checkVideoServer1(server.url, res.body.data[0].uuid)
122 }
123 })
124
125 it('Should import a video on server 2 with some fields', async function () {
126 this.timeout(60000)
127
128 const attributes = {
129 targetUrl: getYoutubeVideoUrl(),
130 channelId: channelIdServer1,
131 privacy: VideoPrivacy.PUBLIC,
132 category: 10,
133 licence: 7,
134 language: 'en',
135 name: 'my super name',
136 description: 'my super description',
137 tags: [ 'supertag1', 'supertag2' ]
138 }
139 const res = await importVideo(servers[1].url, servers[1].accessToken, attributes)
140 expect(res.body.video.name).to.equal('my super name')
141 })
142
143 it('Should have the video listed on the two instances', async function () {
144 this.timeout(120000)
145
146 await waitJobs(servers)
147
148 for (const server of servers) {
149 const res = await getVideosList(server.url)
150 expect(res.body.total).to.equal(2)
151 expect(res.body.data).to.have.lengthOf(2)
152
153 await checkVideoServer2(server.url, res.body.data[0].uuid)
154 await checkVideoServer1(server.url, res.body.data[1].uuid)
155 }
156 })
157
158 after(async function () {
159 killallServers(servers)
160 })
161})
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts
index fe750253e..0f83d4d57 100644
--- a/server/tests/api/videos/video-transcoder.ts
+++ b/server/tests/api/videos/video-transcoder.ts
@@ -2,9 +2,12 @@
2 2
3import * as chai from 'chai' 3import * as chai from 'chai'
4import 'mocha' 4import 'mocha'
5import { omit } from 'lodash'
6import * as ffmpeg from 'fluent-ffmpeg'
5import { VideoDetails, VideoState } from '../../../../shared/models/videos' 7import { VideoDetails, VideoState } from '../../../../shared/models/videos'
6import { getVideoFileFPS } from '../../../helpers/ffmpeg-utils' 8import { getVideoFileFPS, audio } from '../../../helpers/ffmpeg-utils'
7import { 9import {
10 buildAbsoluteFixturePath,
8 doubleFollow, 11 doubleFollow,
9 flushAndRunMultipleServers, 12 flushAndRunMultipleServers,
10 getMyVideos, 13 getMyVideos,
@@ -32,6 +35,8 @@ describe('Test video transcoding', function () {
32 servers = await flushAndRunMultipleServers(2) 35 servers = await flushAndRunMultipleServers(2)
33 36
34 await setAccessTokensToServers(servers) 37 await setAccessTokensToServers(servers)
38
39 await doubleFollow(servers[0], servers[1])
35 }) 40 })
36 41
37 it('Should not transcode video on server 1', async function () { 42 it('Should not transcode video on server 1', async function () {
@@ -46,20 +51,22 @@ describe('Test video transcoding', function () {
46 51
47 await waitJobs(servers) 52 await waitJobs(servers)
48 53
49 const res = await getVideosList(servers[0].url) 54 for (const server of servers) {
50 const video = res.body.data[0] 55 const res = await getVideosList(server.url)
56 const video = res.body.data[ 0 ]
51 57
52 const res2 = await getVideo(servers[0].url, video.id) 58 const res2 = await getVideo(server.url, video.id)
53 const videoDetails = res2.body 59 const videoDetails = res2.body
54 expect(videoDetails.files).to.have.lengthOf(1) 60 expect(videoDetails.files).to.have.lengthOf(1)
55 61
56 const magnetUri = videoDetails.files[0].magnetUri 62 const magnetUri = videoDetails.files[ 0 ].magnetUri
57 expect(magnetUri).to.match(/\.webm/) 63 expect(magnetUri).to.match(/\.webm/)
58 64
59 const torrent = await webtorrentAdd(magnetUri) 65 const torrent = await webtorrentAdd(magnetUri, true)
60 expect(torrent.files).to.be.an('array') 66 expect(torrent.files).to.be.an('array')
61 expect(torrent.files.length).to.equal(1) 67 expect(torrent.files.length).to.equal(1)
62 expect(torrent.files[0].path).match(/\.webm$/) 68 expect(torrent.files[ 0 ].path).match(/\.webm$/)
69 }
63 }) 70 })
64 71
65 it('Should transcode video on server 2', async function () { 72 it('Should transcode video on server 2', async function () {
@@ -74,21 +81,112 @@ describe('Test video transcoding', function () {
74 81
75 await waitJobs(servers) 82 await waitJobs(servers)
76 83
77 const res = await getVideosList(servers[1].url) 84 for (const server of servers) {
85 const res = await getVideosList(server.url)
86
87 const video = res.body.data.find(v => v.name === videoAttributes.name)
88 const res2 = await getVideo(server.url, video.id)
89 const videoDetails = res2.body
90
91 expect(videoDetails.files).to.have.lengthOf(4)
92
93 const magnetUri = videoDetails.files[ 0 ].magnetUri
94 expect(magnetUri).to.match(/\.mp4/)
95
96 const torrent = await webtorrentAdd(magnetUri, true)
97 expect(torrent.files).to.be.an('array')
98 expect(torrent.files.length).to.equal(1)
99 expect(torrent.files[ 0 ].path).match(/\.mp4$/)
100 }
101 })
102
103 it('Should transcode high bit rate mp3 to proper bit rate', async function () {
104 this.timeout(60000)
105
106 const videoAttributes = {
107 name: 'mp3_256k',
108 fixture: 'video_short_mp3_256k.mp4'
109 }
110 await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes)
111
112 await waitJobs(servers)
113
114 for (const server of servers) {
115 const res = await getVideosList(server.url)
116
117 const video = res.body.data.find(v => v.name === videoAttributes.name)
118 const res2 = await getVideo(server.url, video.id)
119 const videoDetails: VideoDetails = res2.body
120
121 expect(videoDetails.files).to.have.lengthOf(4)
122
123 const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
124 const probe = await audio.get(ffmpeg, path)
125
126 if (probe.audioStream) {
127 expect(probe.audioStream[ 'codec_name' ]).to.be.equal('aac')
128 expect(probe.audioStream[ 'bit_rate' ]).to.be.at.most(384 * 8000)
129 } else {
130 this.fail('Could not retrieve the audio stream on ' + probe.absolutePath)
131 }
132 }
133 })
134
135 it('Should transcode video with no audio and have no audio itself', async function () {
136 this.timeout(60000)
137
138 const videoAttributes = {
139 name: 'no_audio',
140 fixture: 'video_short_no_audio.mp4'
141 }
142 await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes)
143
144 await waitJobs(servers)
145
146 for (const server of servers) {
147 const res = await getVideosList(server.url)
148
149 const video = res.body.data.find(v => v.name === videoAttributes.name)
150 const res2 = await getVideo(server.url, video.id)
151 const videoDetails: VideoDetails = res2.body
152
153 expect(videoDetails.files).to.have.lengthOf(4)
154 const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
155 const probe = await audio.get(ffmpeg, path)
156 expect(probe).to.not.have.property('audioStream')
157 }
158 })
159
160 it('Should leave the audio untouched, but properly transcode the video', async function () {
161 this.timeout(60000)
162
163 const videoAttributes = {
164 name: 'untouched_audio',
165 fixture: 'video_short.mp4'
166 }
167 await uploadVideo(servers[1].url, servers[1].accessToken, videoAttributes)
78 168
79 const video = res.body.data[0] 169 await waitJobs(servers)
80 const res2 = await getVideo(servers[1].url, video.id)
81 const videoDetails = res2.body
82 170
83 expect(videoDetails.files).to.have.lengthOf(4) 171 for (const server of servers) {
172 const res = await getVideosList(server.url)
84 173
85 const magnetUri = videoDetails.files[0].magnetUri 174 const video = res.body.data.find(v => v.name === videoAttributes.name)
86 expect(magnetUri).to.match(/\.mp4/) 175 const res2 = await getVideo(server.url, video.id)
176 const videoDetails: VideoDetails = res2.body
87 177
88 const torrent = await webtorrentAdd(magnetUri) 178 expect(videoDetails.files).to.have.lengthOf(4)
89 expect(torrent.files).to.be.an('array') 179 const fixturePath = buildAbsoluteFixturePath(videoAttributes.fixture)
90 expect(torrent.files.length).to.equal(1) 180 const fixtureVideoProbe = await audio.get(ffmpeg, fixturePath)
91 expect(torrent.files[0].path).match(/\.mp4$/) 181 const path = join(root(), 'test2', 'videos', video.uuid + '-240.mp4')
182 const videoProbe = await audio.get(ffmpeg, path)
183 if (videoProbe.audioStream && fixtureVideoProbe.audioStream) {
184 const toOmit = [ 'max_bit_rate', 'duration', 'duration_ts', 'nb_frames', 'start_time', 'start_pts' ]
185 expect(omit(videoProbe.audioStream, toOmit)).to.be.deep.equal(omit(fixtureVideoProbe.audioStream, toOmit))
186 } else {
187 this.fail('Could not retrieve the audio stream on ' + videoProbe.absolutePath)
188 }
189 }
92 }) 190 })
93 191
94 it('Should transcode a 60 FPS video', async function () { 192 it('Should transcode a 60 FPS video', async function () {
@@ -103,38 +201,36 @@ describe('Test video transcoding', function () {
103 201
104 await waitJobs(servers) 202 await waitJobs(servers)
105 203
106 const res = await getVideosList(servers[1].url) 204 for (const server of servers) {
205 const res = await getVideosList(server.url)
206
207 const video = res.body.data.find(v => v.name === videoAttributes.name)
208 const res2 = await getVideo(server.url, video.id)
209 const videoDetails: VideoDetails = res2.body
210
211 expect(videoDetails.files).to.have.lengthOf(4)
212 expect(videoDetails.files[ 0 ].fps).to.be.above(58).and.below(62)
213 expect(videoDetails.files[ 1 ].fps).to.be.below(31)
214 expect(videoDetails.files[ 2 ].fps).to.be.below(31)
215 expect(videoDetails.files[ 3 ].fps).to.be.below(31)
107 216
108 const video = res.body.data[0] 217 for (const resolution of [ '240', '360', '480' ]) {
109 const res2 = await getVideo(servers[1].url, video.id) 218 const path = join(root(), 'test2', 'videos', video.uuid + '-' + resolution + '.mp4')
110 const videoDetails: VideoDetails = res2.body 219 const fps = await getVideoFileFPS(path)
111 220
112 expect(videoDetails.files).to.have.lengthOf(4) 221 expect(fps).to.be.below(31)
113 expect(videoDetails.files[0].fps).to.be.above(58).and.below(62) 222 }
114 expect(videoDetails.files[1].fps).to.be.below(31)
115 expect(videoDetails.files[2].fps).to.be.below(31)
116 expect(videoDetails.files[3].fps).to.be.below(31)
117 223
118 for (const resolution of [ '240', '360', '480' ]) { 224 const path = join(root(), 'test2', 'videos', video.uuid + '-720.mp4')
119 const path = join(root(), 'test2', 'videos', video.uuid + '-' + resolution + '.mp4')
120 const fps = await getVideoFileFPS(path) 225 const fps = await getVideoFileFPS(path)
121 226
122 expect(fps).to.be.below(31) 227 expect(fps).to.be.above(58).and.below(62)
123 } 228 }
124
125 const path = join(root(), 'test2', 'videos', video.uuid + '-720.mp4')
126 const fps = await getVideoFileFPS(path)
127
128 expect(fps).to.be.above(58).and.below(62)
129 }) 229 })
130 230
131 it('Should wait transcoding before publishing the video', async function () { 231 it('Should wait transcoding before publishing the video', async function () {
132 this.timeout(80000) 232 this.timeout(80000)
133 233
134 await doubleFollow(servers[0], servers[1])
135
136 await waitJobs(servers)
137
138 { 234 {
139 // Upload the video, but wait transcoding 235 // Upload the video, but wait transcoding
140 const videoAttributes = { 236 const videoAttributes = {
@@ -154,7 +250,7 @@ describe('Test video transcoding', function () {
154 250
155 // Should have my video 251 // Should have my video
156 const resMyVideos = await getMyVideos(servers[1].url, servers[1].accessToken, 0, 10) 252 const resMyVideos = await getMyVideos(servers[1].url, servers[1].accessToken, 0, 10)
157 const videoToFindInMine = resMyVideos.body.data.find(v => v.name === 'waiting video') 253 const videoToFindInMine = resMyVideos.body.data.find(v => v.name === videoAttributes.name)
158 expect(videoToFindInMine).not.to.be.undefined 254 expect(videoToFindInMine).not.to.be.undefined
159 expect(videoToFindInMine.state.id).to.equal(VideoState.TO_TRANSCODE) 255 expect(videoToFindInMine.state.id).to.equal(VideoState.TO_TRANSCODE)
160 expect(videoToFindInMine.state.label).to.equal('To transcode') 256 expect(videoToFindInMine.state.label).to.equal('To transcode')
@@ -162,7 +258,7 @@ describe('Test video transcoding', function () {
162 258
163 // Should not list this video 259 // Should not list this video
164 const resVideos = await getVideosList(servers[1].url) 260 const resVideos = await getVideosList(servers[1].url)
165 const videoToFindInList = resVideos.body.data.find(v => v.name === 'waiting video') 261 const videoToFindInList = resVideos.body.data.find(v => v.name === videoAttributes.name)
166 expect(videoToFindInList).to.be.undefined 262 expect(videoToFindInList).to.be.undefined
167 263
168 // Server 1 should not have the video yet 264 // Server 1 should not have the video yet
diff --git a/server/tests/client.ts b/server/tests/client.ts
index bcbac86e9..b33a653b1 100644
--- a/server/tests/client.ts
+++ b/server/tests/client.ts
@@ -3,17 +3,21 @@
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5import * as request from 'supertest' 5import * as request from 'supertest'
6const expect = chai.expect
7
8import { 6import {
9 ServerInfo,
10 flushTests, 7 flushTests,
8 getCustomConfig,
9 getVideosList,
10 killallServers,
11 makeHTMLRequest,
11 runServer, 12 runServer,
13 ServerInfo,
12 serverLogin, 14 serverLogin,
13 uploadVideo, 15 updateCustomConfig,
14 getVideosList, updateCustomConfig, getCustomConfig, killallServers, makeHTMLRequest 16 updateCustomSubConfig,
17 uploadVideo
15} from './utils' 18} from './utils'
16import { CustomConfig } from '../../shared/models/server/custom-config.model' 19
20const expect = chai.expect
17 21
18function checkIndexTags (html: string, title: string, description: string, css: string) { 22function checkIndexTags (html: string, title: string, description: string, css: string) {
19 expect(html).to.contain('<title>' + title + '</title>') 23 expect(html).to.contain('<title>' + title + '</title>')
@@ -117,56 +121,20 @@ describe('Test a client controllers', function () {
117 }) 121 })
118 122
119 it('Should update the customized configuration and have the correct index html tags', async function () { 123 it('Should update the customized configuration and have the correct index html tags', async function () {
120 const newCustomConfig: CustomConfig = { 124 await updateCustomSubConfig(server.url, server.accessToken, {
121 instance: { 125 instance: {
122 name: 'PeerTube updated', 126 name: 'PeerTube updated',
123 shortDescription: 'my short description', 127 shortDescription: 'my short description',
124 description: 'my super description', 128 description: 'my super description',
125 terms: 'my super terms', 129 terms: 'my super terms',
126 defaultClientRoute: '/videos/recently-added', 130 defaultClientRoute: '/videos/recently-added',
127 defaultNSFWPolicy: 'blur' as 'blur', 131 defaultNSFWPolicy: 'blur',
128 customizations: { 132 customizations: {
129 javascript: 'alert("coucou")', 133 javascript: 'alert("coucou")',
130 css: 'body { background-color: red; }' 134 css: 'body { background-color: red; }'
131 } 135 }
132 },
133 services: {
134 twitter: {
135 username: '@Kuja',
136 whitelisted: true
137 }
138 },
139 cache: {
140 previews: {
141 size: 2
142 },
143 captions: {
144 size: 3
145 }
146 },
147 signup: {
148 enabled: false,
149 limit: 5
150 },
151 admin: {
152 email: 'superadmin1@example.com'
153 },
154 user: {
155 videoQuota: 5242881
156 },
157 transcoding: {
158 enabled: true,
159 threads: 1,
160 resolutions: {
161 '240p': false,
162 '360p': true,
163 '480p': true,
164 '720p': false,
165 '1080p': false
166 }
167 } 136 }
168 } 137 })
169 await updateCustomConfig(server.url, server.accessToken, newCustomConfig)
170 138
171 const res = await makeHTMLRequest(server.url, '/videos/trending') 139 const res = await makeHTMLRequest(server.url, '/videos/trending')
172 140
diff --git a/server/tests/fixtures/video_short_mp3_256k.mp4 b/server/tests/fixtures/video_short_mp3_256k.mp4
new file mode 100644
index 000000000..4c1c7b45e
--- /dev/null
+++ b/server/tests/fixtures/video_short_mp3_256k.mp4
Binary files differ
diff --git a/server/tests/fixtures/video_short_no_audio.mp4 b/server/tests/fixtures/video_short_no_audio.mp4
new file mode 100644
index 000000000..329d20fba
--- /dev/null
+++ b/server/tests/fixtures/video_short_no_audio.mp4
Binary files differ
diff --git a/server/tests/utils/server/config.ts b/server/tests/utils/server/config.ts
index 57f95a603..e21614282 100644
--- a/server/tests/utils/server/config.ts
+++ b/server/tests/utils/server/config.ts
@@ -44,6 +44,69 @@ function updateCustomConfig (url: string, token: string, newCustomConfig: Custom
44 }) 44 })
45} 45}
46 46
47function updateCustomSubConfig (url: string, token: string, newConfig: any) {
48 const updateParams: CustomConfig = {
49 instance: {
50 name: 'PeerTube updated',
51 shortDescription: 'my short description',
52 description: 'my super description',
53 terms: 'my super terms',
54 defaultClientRoute: '/videos/recently-added',
55 defaultNSFWPolicy: 'blur',
56 customizations: {
57 javascript: 'alert("coucou")',
58 css: 'body { background-color: red; }'
59 }
60 },
61 services: {
62 twitter: {
63 username: '@MySuperUsername',
64 whitelisted: true
65 }
66 },
67 cache: {
68 previews: {
69 size: 2
70 },
71 captions: {
72 size: 3
73 }
74 },
75 signup: {
76 enabled: false,
77 limit: 5
78 },
79 admin: {
80 email: 'superadmin1@example.com'
81 },
82 user: {
83 videoQuota: 5242881
84 },
85 transcoding: {
86 enabled: true,
87 threads: 1,
88 resolutions: {
89 '240p': false,
90 '360p': true,
91 '480p': true,
92 '720p': false,
93 '1080p': false
94 }
95 },
96 import: {
97 videos: {
98 http: {
99 enabled: false
100 }
101 }
102 }
103 }
104
105 Object.assign(updateParams, newConfig)
106
107 return updateCustomConfig(url, token, updateParams)
108}
109
47function deleteCustomConfig (url: string, token: string, statusCodeExpected = 200) { 110function deleteCustomConfig (url: string, token: string, statusCodeExpected = 200) {
48 const path = '/api/v1/config/custom' 111 const path = '/api/v1/config/custom'
49 112
@@ -62,5 +125,6 @@ export {
62 getCustomConfig, 125 getCustomConfig,
63 updateCustomConfig, 126 updateCustomConfig,
64 getAbout, 127 getAbout,
65 deleteCustomConfig 128 deleteCustomConfig,
129 updateCustomSubConfig
66} 130}
diff --git a/server/tests/utils/videos/video-imports.ts b/server/tests/utils/videos/video-imports.ts
new file mode 100644
index 000000000..e0f916990
--- /dev/null
+++ b/server/tests/utils/videos/video-imports.ts
@@ -0,0 +1,37 @@
1import { VideoImportCreate } from '../../../../shared/models/videos'
2import { makeGetRequest, makePostBodyRequest } from '..'
3
4function getYoutubeVideoUrl () {
5 return 'https://youtu.be/msX3jv1XdvM'
6}
7
8function importVideo (url: string, token: string, attributes: VideoImportCreate) {
9 const path = '/api/v1/videos/imports'
10
11 return makePostBodyRequest({
12 url,
13 path,
14 token,
15 fields: attributes,
16 statusCodeExpected: 200
17 })
18}
19
20function getMyVideoImports (url: string, token: string) {
21 const path = '/api/v1/users/me/videos/imports'
22
23 return makeGetRequest({
24 url,
25 path,
26 token,
27 statusCodeExpected: 200
28 })
29}
30
31// ---------------------------------------------------------------------------
32
33export {
34 getYoutubeVideoUrl,
35 importVideo,
36 getMyVideoImports
37}
diff --git a/server/tests/utils/videos/videos.ts b/server/tests/utils/videos/videos.ts
index 8c49eb02b..b280cccda 100644
--- a/server/tests/utils/videos/videos.ts
+++ b/server/tests/utils/videos/videos.ts
@@ -522,7 +522,9 @@ async function completeVideoCheck (
522 522
523 const minSize = attributeFile.size - ((10 * attributeFile.size) / 100) 523 const minSize = attributeFile.size - ((10 * attributeFile.size) / 100)
524 const maxSize = attributeFile.size + ((10 * attributeFile.size) / 100) 524 const maxSize = attributeFile.size + ((10 * attributeFile.size) / 100)
525 expect(file.size).to.be.above(minSize).and.below(maxSize) 525 expect(file.size,
526 'File size for resolution ' + file.resolution.label + ' outside confidence interval (' + minSize + '> size <' + maxSize + ')')
527 .to.be.above(minSize).and.below(maxSize)
526 528
527 { 529 {
528 await testImage(url, attributes.thumbnailfile || attributes.fixture, videoDetails.thumbnailPath) 530 await testImage(url, attributes.thumbnailfile || attributes.fixture, videoDetails.thumbnailPath)
diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts
index 3127d0565..5b2b3adae 100644
--- a/shared/models/activitypub/objects/common-objects.ts
+++ b/shared/models/activitypub/objects/common-objects.ts
@@ -22,7 +22,9 @@ export interface ActivityUrlObject {
22 mimeType: 'video/mp4' | 'video/webm' | 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet' 22 mimeType: 'video/mp4' | 'video/webm' | 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
23 href: string 23 href: string
24 width: number 24 width: number
25
25 size?: number 26 size?: number
27 fps?: number
26} 28}
27 29
28export interface ActivityPubAttributedTo { 30export interface ActivityPubAttributedTo {
diff --git a/shared/models/i18n/i18n.ts b/shared/models/i18n/i18n.ts
index 3f2ca4eaf..baf3fa0f4 100644
--- a/shared/models/i18n/i18n.ts
+++ b/shared/models/i18n/i18n.ts
@@ -6,7 +6,10 @@ export const I18N_LOCALES = {
6 'eu-ES': 'euskara', 6 'eu-ES': 'euskara',
7 'ca-ES': 'català', 7 'ca-ES': 'català',
8 'cs-CZ': 'čeština', 8 'cs-CZ': 'čeština',
9 'eo': 'Esperanto' 9 'eo': 'Esperanto',
10 'de-DE': 'Deutsch',
11 'es-ES': 'español',
12 'zh-Hant-TW': '中文 (繁體, 台灣)'
10 // 'pl-PL': 'polski' 13 // 'pl-PL': 'polski'
11} 14}
12 15
@@ -15,7 +18,9 @@ const I18N_LOCALE_ALIAS = {
15 'fr': 'fr-FR', 18 'fr': 'fr-FR',
16 'eu': 'eu-ES', 19 'eu': 'eu-ES',
17 'ca': 'ca-ES', 20 'ca': 'ca-ES',
18 'cs': 'cs-CZ' 21 'cs': 'cs-CZ',
22 'de': 'de-DE',
23 'es': 'es-ES'
19 // 'pl': 'pl-PL' 24 // 'pl': 'pl-PL'
20} 25}
21 26
@@ -56,5 +61,5 @@ export function getShortLocale (locale: string) {
56export function buildFileLocale (locale: string) { 61export function buildFileLocale (locale: string) {
57 const completeLocale = getCompleteLocale(locale) 62 const completeLocale = getCompleteLocale(locale)
58 63
59 return completeLocale.replace('-', '_') 64 return completeLocale.replace(/-/g, '_')
60} 65}
diff --git a/shared/models/server/custom-config.model.ts b/shared/models/server/custom-config.model.ts
index 9c4718e43..46320435d 100644
--- a/shared/models/server/custom-config.model.ts
+++ b/shared/models/server/custom-config.model.ts
@@ -55,4 +55,12 @@ export interface CustomConfig {
55 '1080p': boolean 55 '1080p': boolean
56 } 56 }
57 } 57 }
58
59 import: {
60 videos: {
61 http: {
62 enabled: boolean
63 }
64 }
65 }
58} 66}
diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts
index a38a8aa3b..2565479f6 100644
--- a/shared/models/server/job.model.ts
+++ b/shared/models/server/job.model.ts
@@ -6,7 +6,8 @@ export type JobType = 'activitypub-http-unicast' |
6 'activitypub-follow' | 6 'activitypub-follow' |
7 'video-file-import' | 7 'video-file-import' |
8 'video-file' | 8 'video-file' |
9 'email' 9 'email' |
10 'video-import'
10 11
11export interface Job { 12export interface Job {
12 id: number 13 id: number
diff --git a/shared/models/server/server-config.model.ts b/shared/models/server/server-config.model.ts
index 217d142cd..2cafedbbc 100644
--- a/shared/models/server/server-config.model.ts
+++ b/shared/models/server/server-config.model.ts
@@ -23,6 +23,14 @@ export interface ServerConfig {
23 enabledResolutions: number[] 23 enabledResolutions: number[]
24 } 24 }
25 25
26 import: {
27 videos: {
28 http: {
29 enabled: boolean
30 }
31 }
32 }
33
26 avatar: { 34 avatar: {
27 file: { 35 file: {
28 size: { 36 size: {
diff --git a/shared/models/videos/index.ts b/shared/models/videos/index.ts
index cb9669772..17cf8be24 100644
--- a/shared/models/videos/index.ts
+++ b/shared/models/videos/index.ts
@@ -15,4 +15,7 @@ export * from './video-update.model'
15export * from './video.model' 15export * from './video.model'
16export * from './video-state.enum' 16export * from './video-state.enum'
17export * from './video-caption-update.model' 17export * from './video-caption-update.model'
18export * from './video-import-create.model'
19export * from './video-import-state.enum'
20export * from './video-import.model'
18export { VideoConstant } from './video-constant.model' 21export { VideoConstant } from './video-constant.model'
diff --git a/shared/models/videos/video-import-create.model.ts b/shared/models/videos/video-import-create.model.ts
new file mode 100644
index 000000000..65d142c2b
--- /dev/null
+++ b/shared/models/videos/video-import-create.model.ts
@@ -0,0 +1,6 @@
1import { VideoUpdate } from './video-update.model'
2
3export interface VideoImportCreate extends VideoUpdate {
4 targetUrl: string
5 channelId: number // Required
6}
diff --git a/shared/models/videos/video-import-state.enum.ts b/shared/models/videos/video-import-state.enum.ts
new file mode 100644
index 000000000..b178fbf3a
--- /dev/null
+++ b/shared/models/videos/video-import-state.enum.ts
@@ -0,0 +1,5 @@
1export enum VideoImportState {
2 PENDING = 1,
3 SUCCESS = 2,
4 FAILED = 3
5}
diff --git a/shared/models/videos/video-import.model.ts b/shared/models/videos/video-import.model.ts
new file mode 100644
index 000000000..a5c582c67
--- /dev/null
+++ b/shared/models/videos/video-import.model.ts
@@ -0,0 +1,14 @@
1import { Video } from './video.model'
2import { VideoConstant } from './video-constant.model'
3import { VideoImportState } from './video-import-state.enum'
4
5export interface VideoImport {
6 id: number
7 targetUrl: string
8 createdAt: string
9 updatedAt: string
10 state: VideoConstant<VideoImportState>
11 error?: string
12
13 video?: Video & { tags: string[] }
14}
diff --git a/shared/models/videos/video-state.enum.ts b/shared/models/videos/video-state.enum.ts
index 625aefae1..a50e14e4b 100644
--- a/shared/models/videos/video-state.enum.ts
+++ b/shared/models/videos/video-state.enum.ts
@@ -1,4 +1,5 @@
1export enum VideoState { 1export enum VideoState {
2 PUBLISHED = 1, 2 PUBLISHED = 1,
3 TO_TRANSCODE = 2 3 TO_TRANSCODE = 2,
4 TO_IMPORT = 3
4} 5}
diff --git a/tsconfig.json b/tsconfig.json
index 4254010e7..7633465b2 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -20,6 +20,7 @@
20 ] 20 ]
21 }, 21 },
22 "exclude": [ 22 "exclude": [
23 "client/node_modules",
23 "node_modules", 24 "node_modules",
24 "dist", 25 "dist",
25 "storage", 26 "storage",
diff --git a/yarn.lock b/yarn.lock
index 5124992db..ec261e025 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1773,6 +1773,10 @@ deep-is@~0.1.3:
1773 version "0.1.3" 1773 version "0.1.3"
1774 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1774 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1775 1775
1776deep-object-diff@^1.1.0:
1777 version "1.1.0"
1778 resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a"
1779
1776defaults@^1.0.3: 1780defaults@^1.0.3:
1777 version "1.0.3" 1781 version "1.0.3"
1778 resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" 1782 resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@@ -2573,6 +2577,12 @@ flat-cache@^1.2.1:
2573 graceful-fs "^4.1.2" 2577 graceful-fs "^4.1.2"
2574 write "^0.2.1" 2578 write "^0.2.1"
2575 2579
2580flat@^4.1.0:
2581 version "4.1.0"
2582 resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
2583 dependencies:
2584 is-buffer "~2.0.3"
2585
2576flatten@^1.0.2: 2586flatten@^1.0.2:
2577 version "1.0.2" 2587 version "1.0.2"
2578 resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" 2588 resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
@@ -3593,6 +3603,10 @@ is-buffer@^1.1.5, is-buffer@~1.1.1:
3593 version "1.1.6" 3603 version "1.1.6"
3594 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 3604 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
3595 3605
3606is-buffer@~2.0.3:
3607 version "2.0.3"
3608 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
3609
3596is-builtin-module@^1.0.0: 3610is-builtin-module@^1.0.0:
3597 version "1.0.0" 3611 version "1.0.0"
3598 resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 3612 resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"