Merge branch 'release/1.4.0' into develop

pull/2073/head
Chocobozzz 2019-08-22 14:46:47 +02:00
commit d5c8932a60
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
26 changed files with 10054 additions and 64 deletions

View File

@ -9,7 +9,6 @@
.section {
@include miniature-rows;
overflow: visible; // For the subscribe dropdown
padding-top: 0 !important;
.section-title {

View File

@ -11,6 +11,7 @@ import { AuthService } from '@app/core'
import { VideoService } from '@app/shared/video/video.service'
import { VideoSortField } from '@app/shared/video/sort-field.type'
import { ComponentPagination, hasMoreItems } from '@app/shared/rest/component-pagination.model'
import { ScreenService } from '@app/shared/misc/screen.service'
@Component({
selector: 'my-account-video-channels',
@ -42,7 +43,8 @@ export class AccountVideoChannelsComponent implements OnInit, OnDestroy {
private authService: AuthService,
private accountService: AccountService,
private videoChannelService: VideoChannelService,
private videoService: VideoService
private videoService: VideoService,
private screenService: ScreenService
) { }
get user () {
@ -83,7 +85,10 @@ export class AccountVideoChannelsComponent implements OnInit, OnDestroy {
}
getVideosOf (videoChannel: VideoChannel) {
return this.videos[ videoChannel.id ]
const numberOfVideos = this.screenService.getNumberOfAvailableMiniatures()
// 2 rows
return this.videos[ videoChannel.id ].slice(0, numberOfVideos * 2)
}
onNearOfBottom () {

View File

@ -22,8 +22,22 @@ export class ScreenService {
return 'ontouchstart' in window || navigator.msMaxTouchPoints
}
getNumberOfAvailableMiniatures () {
const screenWidth = this.getWindowInnerWidth()
let numberOfVideos = 1
if (screenWidth > 1850) numberOfVideos = 6
else if (screenWidth > 1600) numberOfVideos = 5
else if (screenWidth > 1370) numberOfVideos = 4
else if (screenWidth > 1100) numberOfVideos = 3
else if (screenWidth > 850) numberOfVideos = 2
return numberOfVideos
}
// Cache window inner width, because it's an expensive call
private getWindowInnerWidth () {
getWindowInnerWidth () {
if (this.cacheWindowInnerWidthExpired()) this.refreshWindowInnerWidth()
return this.windowInnerWidth

View File

@ -12,6 +12,7 @@ type PlaylistSummary = {
inPlaylist: boolean
displayName: string
playlistElementId?: number
startTimestamp?: number
stopTimestamp?: number
}
@ -37,8 +38,6 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
}
displayOptions = false
private playlistElementId: number
constructor (
protected formValidatorService: FormValidatorService,
private authService: AuthService,
@ -95,11 +94,10 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
id: playlist.id,
displayName: playlist.displayName,
inPlaylist: !!existingPlaylist,
playlistElementId: existingPlaylist ? existingPlaylist.playlistElementId : undefined,
startTimestamp: existingPlaylist ? existingPlaylist.startTimestamp : undefined,
stopTimestamp: existingPlaylist ? existingPlaylist.stopTimestamp : undefined
})
this.playlistElementId = existingPlaylist ? existingPlaylist.playlistElementId : undefined
}
this.cd.markForCheck()
@ -181,14 +179,15 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
}
private removeVideoFromPlaylist (playlist: PlaylistSummary) {
if (!this.playlistElementId) return
if (!playlist.playlistElementId) return
this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, this.playlistElementId)
this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, playlist.playlistElementId)
.subscribe(
() => {
this.notifier.success(this.i18n('Video removed from {{name}}', { name: playlist.displayName }))
playlist.inPlaylist = false
playlist.playlistElementId = undefined
},
err => {
@ -209,8 +208,9 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
this.videoPlaylistService.addVideoInPlaylist(playlist.id, body)
.subscribe(
() => {
res => {
playlist.inPlaylist = true
playlist.playlistElementId = res.videoPlaylistElement.id
playlist.startTimestamp = body.startTimestamp
playlist.stopTimestamp = body.stopTimestamp

View File

@ -113,11 +113,10 @@ export class VideoPlaylistService {
}
addVideoInPlaylist (playlistId: number, body: VideoPlaylistElementCreate) {
return this.authHttp.post(VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos', body)
.pipe(
map(this.restExtractor.extractDataBool),
catchError(err => this.restExtractor.handleError(err))
)
const url = VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos'
return this.authHttp.post<{ videoPlaylistElement: { id: number } }>(url, body)
.pipe(catchError(err => this.restExtractor.handleError(err)))
}
updateVideoOfPlaylist (playlistId: number, playlistElementId: number, body: VideoPlaylistElementUpdate) {

View File

@ -7,7 +7,8 @@
<a routerLink="/search" [queryParams]="{ categoryOneOf: [ object.category.id ] }">{{ object.category.label }}</a>
</div>
<my-video-miniature *ngFor="let video of object.videos" [video]="video" [user]="user" [displayVideoActions]="false"></my-video-miniature>
<my-video-miniature *ngFor="let video of buildVideos(object.videos)" [video]="video" [user]="user" [displayVideoActions]="false">
</my-video-miniature>
</div>
<div class="section" *ngFor="let object of overview.tags">
@ -15,7 +16,8 @@
<a routerLink="/search" [queryParams]="{ tagsOneOf: [ object.tag ] }">#{{ object.tag }}</a>
</div>
<my-video-miniature *ngFor="let video of object.videos" [video]="video" [user]="user" [displayVideoActions]="false"></my-video-miniature>
<my-video-miniature *ngFor="let video of buildVideos(object.videos)" [video]="video" [user]="user" [displayVideoActions]="false">
</my-video-miniature>
</div>
<div class="section channel" *ngFor="let object of overview.channels">
@ -27,7 +29,8 @@
</a>
</div>
<my-video-miniature *ngFor="let video of object.videos" [video]="video" [user]="user" [displayVideoActions]="false"></my-video-miniature>
<my-video-miniature *ngFor="let video of buildVideos(object.videos)" [video]="video" [user]="user" [displayVideoActions]="false">
</my-video-miniature>
</div>
</div>

View File

@ -4,6 +4,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill'
import { VideosOverview } from '@app/shared/overview/videos-overview.model'
import { OverviewService } from '@app/shared/overview'
import { Video } from '@app/shared/video/video.model'
import { ScreenService } from '@app/shared/misc/screen.service'
@Component({
selector: 'my-video-overview',
@ -22,7 +23,8 @@ export class VideoOverviewComponent implements OnInit {
private i18n: I18n,
private notifier: Notifier,
private authService: AuthService,
private overviewService: OverviewService
private overviewService: OverviewService,
private screenService: ScreenService
) { }
get user () {
@ -53,4 +55,10 @@ export class VideoOverviewComponent implements OnInit {
buildVideoChannelAvatarUrl (object: { videos: Video[] }) {
return object.videos[0].videoChannelAvatarUrl
}
buildVideos (videos: Video[]) {
const numberOfVideos = this.screenService.getNumberOfAvailableMiniatures()
return videos.slice(0, numberOfVideos * 2)
}
}

View File

@ -7367,6 +7367,13 @@ When you will upload a video in this channel, the video support field will be au
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="2cd6194ce733174d2e542c65c46d730581f70b81" datatype="html">
<source>Go to the discover videos page</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
</body>
</file>
</xliff>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,912 @@
<?xml version="1.0" encoding="utf-8"?>
<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
<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">
<file source-language="en-US" datatype="plaintext" original="" target-language="sl-SI">
<body>
<trans-unit id="ngb.alert.close">
<source>Close</source>
<target>Zapri</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.carousel.previous">
<source>Previous</source>
<target>Nazaj</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.carousel.next">
<source>Next</source>
<target>Naprej</target>
<context-group name="null">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.previous-month">
<source>Previous month</source>
<target>Prejšnji mesec</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.next-month">
<source>Next month</source>
<target>Naslednji mesec</target>
<context-group name="null">
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.select-month">
<source>Select month</source>
<target>Izberite mesec</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.select-year">
<source>Select year</source>
<target>Izberite leto</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.first-aria">
<source>First</source>
<target>Začetek</target>
<context-group name="null">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.previous-aria">
<source>Previous</source>
<target>Nazaj</target>
<context-group name="null">
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.next-aria">
<source>Next</source>
<target>Naprej</target>
<context-group name="null">
<context context-type="linenumber">41</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.last-aria">
<source>Last</source>
<target>Konec</target>
<context-group name="null">
<context context-type="linenumber">49</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.progressbar.value">
<source><x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>%</source>
<target><x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>%</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.HH">
<source>HH</source>
<target>HH</target>
<context-group name="null">
<context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.hours">
<source>Hours</source>
<target>ur</target>
<context-group name="null">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.MM">
<source>MM</source>
<target>MM</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.minutes">
<source>Minutes</source>
<target>minut</target>
<context-group name="null">
<context context-type="linenumber">35</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.SS">
<source>SS</source>
<target>SS</target>
<context-group name="null">
<context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.seconds">
<source>Seconds</source>
<target>sekund</target>
<context-group name="null">
<context context-type="linenumber">56</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.PM">
<source><x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/></target>
<context-group name="null">
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.AM">
<source><x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/></target>
<context-group name="null">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.toast.close-aria">
<source>Close</source>
<target>Zapri</target>
<context-group name="null">
<context context-type="linenumber">8</context>
</context-group>
</trans-unit>
<trans-unit id="f3e63578c50546530daf6050d2ba6f8226040f2c">
<source>You don't have notifications.</source>
<target>Nimate obvestil.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ade81bccd385c84f16f0e3862c1da3106bc3914b">
<source>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> published a <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>new video<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> je objavil/a <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>nov videoposnetek<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="dfb1edb72e1fa8ae9a87f58a57d8fe488e337715">
<source>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> commented your video <x id="START_LINK_1" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> je oddal/a komentar na vašem videoposnetku <x id="START_LINK_1" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
<trans-unit id="ebdf8d0e51333447680d6ac8b6a3166066a852d1">
<source>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> mentioned you on <x id="START_LINK_1" ctype="x-a" equiv-text="&lt;a&gt;"/>video <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.comment.account.displayName }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> vas je omenil/a v <x id="START_LINK_1" ctype="x-a" equiv-text="&lt;a&gt;"/>video <x id="INTERPOLATION_1" equiv-text="{{ notification.comment.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">98</context>
</context-group>
</trans-unit>
<trans-unit id="b2b638f4333842009c258a23e59dbe4160d1e566">
<source>Save to</source>
<target>Shrani v</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="24813b8a3e45f0b57136c18d003027262cfe2d1f">
<source>Options</source>
<target>Nastavitve</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="85e5d1de15d23cde43c530e3740a2a61aed24c2d">
<source>Start at</source>
<target>Začni ob</target>
<context-group name="null">
<context context-type="linenumber">61</context>
</context-group>
</trans-unit>
<trans-unit id="4d20563f7e338a1d09eb756054564ccf7c6a30ef">
<source>Stop at</source>
<target>Ustavi ob</target>
<context-group name="null">
<context context-type="linenumber">112</context>
</context-group>
</trans-unit>
<trans-unit id="70a67e04629f6d412db0a12d51820b480788d795">
<source>Create</source>
<target>Ustvari</target>
<context-group name="null">
<context context-type="linenumber">74</context>
</context-group>
</trans-unit>
<trans-unit id="da44efc7b658c318651866454d258bbbe57ff21c">
<source>
Cancel
</source>
<target>
Prekliči
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
<trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
<source>Report video</source>
<target>Prijavi videoposnetek</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
<source>Reason...</source>
<target>Razlog...</target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="fb8aad312b72bbb7e5a1e2cc0b55fae8962bf0fb">
<source>
Cancel
</source>
<target>
Prekliči
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
<trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd">
<source>Submit</source>
<target>Pošlji</target>
<context-group name="null">
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="4b3963c6d0863118fe9e9e33447d12be3c2db081">
<source>Unlisted</source><target>Unlisted</target><context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="ddd8a4986d2d1717a274a5a0fbed04988a819e69">
<source>Private</source>
<target>Zasebno</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="6aec8cb024acc333218d72f279caa8ea623bb628">
<source><x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target><x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> ogledi</target>
<context-group name="null">
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="fb8ccb136ab0ad1ff1dfbce739198be16a814f87">
<source>
Sensitive
</source>
<target>
Občutljivo
</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="99dea2d567d6e6d610d97608c3850ddb76df9a9a">
<source>{VAR_PLURAL, plural, =0 {No videos} =1 {1 video} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videos} }</source>
<target>{VAR_PLURAL, plural, =0 {Ni videoposnetkov} =1 {1 videoposnetek} other {<x id="INTERPOLATION" equiv-text="{{ playlist.videosLength }}"/> videoposnetkov} }</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="4999ffd919bb9af482aa4c53badd6cd654468582">
<source>
<x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/>
</source>
<target>
<x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/>
</target>
<context-group name="null">
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="a3550f6ce98d90d2947fe062530629dc2d3923b4">
<source>Updated <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/></source>
<target>Posodobljeno <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/></target>
<context-group name="null">
<context context-type="linenumber">29</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>Shrani</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="b9dee3108a18796bd69c6be316c8fb985b58fb8e">
<source>Delete from <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/></source>
<target>Izbriši iz <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/></target>
<context-group name="null">
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
<source>No results.</source>
<target>Ni rezultatov.</target>
<context-group name="null">
<context context-type="linenumber">20</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Delete</source>
<target>Izbriši</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Truncated preview</source>
<target>Skrajšan predogled</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="f82f53a2544638939a8ba93c0fb1b0a4419c3196">
<source>Complete preview</source>
<target>Popoln predogled</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="9c71feb04c2beab559f79c41c6127815fb9c1a6f">
<source>Get help</source>
<target>Najdi pomoč</target>
<context-group name="null">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
<source>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>
Subscribe
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</source>
<target>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>
Naroči se
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
<source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
<target>Naroči se z računom na <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
<context-group name="null">
<context context-type="linenumber">39</context>
</context-group>
</trans-unit>
<trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
<source>Subscribe with your local account</source>
<target>Naroči se z lokalnim računom</target>
<context-group name="null">
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
<trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
<source>Subscribe with a Mastodon account:</source>
<target>Naroči se z Mastodon računom:</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
<source>Subscribe via RSS</source>
<target>Naroči se na RSS vir</target>
<context-group name="null">
<context context-type="linenumber">49</context>
</context-group>
</trans-unit>
<trans-unit id="319933e1af77ca2e35b75a5e9270a3c90e83dd4b">
<source>You can subscribe to the channel via any ActivityPub-capable fediverse instance. For instance with Mastodon or Pleroma you can type the channel URL in the search box and subscribe there.</source>
<target>Na kanal se lahko naročite is katerega koli Fediverse strežnika, ki uporablja ActivityPub. V Mastodonu in Pleromi se lahko na primer naročite tako, da v iskalnik vtipkate URL kanala.</target>
<context-group name="null">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7">
<source>Cancel</source>
<target>Prekliči</target>
<context-group name="null">
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="c078d4901a5fac169665947cc7a6108b94dd80c7">
<source><x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/></target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
</source>
<target>
Prijava
</target>
<context-group name="null">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
<trans-unit id="ae3cb52bf2dee3101ee654812b5d16e8665a9453">
<source>Request new verification email.</source>
<target>Naroči novo potrditveno e-sporočilo</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="51ef29329faccb28d94369897068897d1b3d0478">
<source>Username or email address</source>
<target>Uporabniško ime ali e-poštni naslov</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="76e1f485e6ead4c84b606f46d413878881d66ad3">
<source>User registration is not allowed on this instance, but you can register on many others!</source>
<target>Registracija na tem strežniku ni dovoljena, lahko pa račun ustvarite na mnogo drugih.</target>
<context-group name="null">
<context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407">
<source>Password</source>
<target>Geslo</target>
<context-group name="null">
<context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
<source>I forgot my password</source>
<target>Pozabil sem svoje geslo</target>
<context-group name="null">
<context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9">
<source>Login</source>
<target>Prijava</target>
<context-group name="null">
<context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="d2eb6c5d41f70d4b8c0937e7e19e196143b47681">
<source>Forgot your password</source>
<target>Ste pozabili geslo?</target>
<context-group name="null">
<context context-type="linenumber">57</context>
</context-group>
</trans-unit>
<trans-unit id="244aae9346da82b0922506c2d2581373a15641cc">
<source>Email</source>
<target>E-poštni naslov</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529">
<source>Email address</source>
<target>E-poštni naslov</target>
<context-group name="null">
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="78be69e4d26b3b654c49962839d8545e61bf8b55">
<source>Send me an email to reset my password</source>
<target>Pošlji me e-sporočilo za ponastavitev gesla</target>
<context-group name="null">
<context context-type="linenumber">81</context>
</context-group>
</trans-unit>
<trans-unit id="2ba14c37f3b23553b2602c5e535d0ff4916f24aa">
<source>
Reset my password
</source>
<target>
Ponastavi moje geslo
</target>
<context-group name="null">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
<trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8">
<source>Confirm password</source>
<target>Potrdite geslo</target>
<context-group name="null">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="3652e5c6e33165264d5271d06cc04ab7123b6df1">
<source>Confirmed password</source>
<target>Potrditev gesla</target>
<context-group name="null">
<context context-type="linenumber">21</context>
</context-group>
</trans-unit>
<trans-unit id="8bdf8db5eeeaef83184b489b80c1557b516fb3c3">
<source>Reset my password</source>
<target>Ponastavi moje geslo</target>
<context-group name="null">
<context context-type="linenumber">29</context>
</context-group>
</trans-unit>
<trans-unit id="9167c6d3c4c3b74373cf1e90997e4966844ded1a">
<source><x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> results</source>
<target><x id="INTERPOLATION" equiv-text="{{ pagination.totalItems | myNumberFormatter }}"/> rezultati</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="4c3960fb1d9b07d1db3b5bda3ee40019211830dc">
<source>
for <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</source>
<target>
za <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/><x id="INTERPOLATION" equiv-text="{{ currentSearch }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="7c603b9ed878097782e2b8908f662e2344b46061">
<source>
Filters
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</source>
<target>
Filtri
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/><x id="INTERPOLATION" equiv-text="{{ numberOfFilters() }}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="3fdc751b264ca9998e1542fcf5794e274cd56344">
<source>Log out</source>
<target>Odjava</target>
<context-group name="null">
<context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="d207cc1965ec0c29e594e0e9917f39bfc276ed87">
<source>Create an account</source>
<target>Ustvari račun</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="a52dae09be10ca3a65da918533ced3d3f4992238">
<source>Videos</source>
<target>Videoposnetki</target>
<context-group name="null">
<context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="b6b7986bc3721ac483baf20bc9a320529075c807">
<source>Trending</source>
<target>Popularno</target>
<context-group name="null">
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="8d20c5f5dd30acbe71316544dab774393fd9c3c1">
<source>Recently added</source>
<target>Nedavno dodano</target>
<context-group name="null">
<context context-type="linenumber">76</context>
</context-group>
</trans-unit>
<trans-unit id="eadc17c3df80143992e2d9028dead3199ae6d79d">
<source>Local</source>
<target>Lokalno</target>
<context-group name="null">
<context context-type="linenumber">81</context>
</context-group>
</trans-unit>
<trans-unit id="ac0f81713a84217c9bd1d9bb460245d8190b073f">
<source>More</source>
<target>Več</target>
<context-group name="null">
<context context-type="linenumber">86</context>
</context-group>
</trans-unit>
<trans-unit id="b7648e7aced164498aa843b5c4e8f2f1c36a7919">
<source>Administration</source>
<target>Administracija</target>
<context-group name="null">
<context context-type="linenumber">90</context>
</context-group>
</trans-unit>
<trans-unit id="4752e5e33da1c3396d3248eb8fef59bca5d00cb3">
<source>Show keyboard shortcuts</source>
<target>Bljižnjice na tipkovnici</target>
<context-group name="null">
<context context-type="linenumber">106</context>
</context-group>
</trans-unit>
<trans-unit id="2dc8a0a3763cd5c456c84630fc335398c9b86771">
<source>View your notifications</source>
<target>Obvestila</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="8bcabdf6b16cad0313a86c7e940c5e3ad7f9f8ab">
<source>Notifications</source>
<target>Obvestila</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="341e026e3f317aa3164916cc63a059c961a78b81">
<source>Update your notification preferences</source>
<target>Posodobi obveščevalne nastavitve</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="3d1b5c9cd76948c04fdb7bb3fe51b6c1242c1bd5">
<source>See all your notifications</source>
<target>Vsa obvestila</target>
<context-group name="null">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
<trans-unit id="8aa58cf00d949c509df91c621ab38131df0a7599">
<source>Search...</source>
<target>Iskanje...</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="5d43539fc358c3a548b9d487be821db73e2702ff">
<source>Sort</source>
<target>Razvrsti</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="98acac685fc4b2d35e5d0cf3cd224d247a756c3e">
<source>Published date</source>
<target>Datum objave</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="e9866754251f6f45c42710a3de01da5d79c6ae91">
<source>After...</source>
<target>Po...</target>
<context-group name="null">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
<trans-unit id="46c36269a23f9105124bbdd58f8c91833b92e565">
<source>Before...</source>
<target>Pred...</target>
<context-group name="null">
<context context-type="linenumber">37</context>
</context-group>
</trans-unit>
<trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2">
<source>Duration</source>
<target>Trajanje</target>
<context-group name="null">
<context context-type="linenumber">45</context>
</context-group>
</trans-unit>
<trans-unit id="dc67060f94f0f2b58549f54a5c07925dffd20238">
<source>Display sensitive content</source>
<target>Prikaži občutljivo vsebino</target>
<context-group name="null">
<context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952">
<source>Yes</source>
<target>Da</target>
<context-group name="null">
<context context-type="linenumber">58</context>
</context-group>
</trans-unit>
<trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd">
<source>No</source>
<target>Ne</target>
<context-group name="null">
<context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="607de17c2a755f65775881c19e276e7c933bcf94">
<source>Category</source>
<target>Kategorija</target>
<context-group name="null">
<context context-type="linenumber">164</context>
</context-group>
</trans-unit>
<trans-unit id="78d6d3ea26777cd0dad8ddbf9b314151678da46c">
<source>Licence</source>
<target>Dovoljenje</target>
<context-group name="null">
<context context-type="linenumber">173</context>
</context-group>
</trans-unit>
<trans-unit id="fe46ccaae902ce974e2441abe752399288298619">
<source>Language</source>
<target>Jezik</target>
<context-group name="null">
<context context-type="linenumber">182</context>
</context-group>
</trans-unit>
<trans-unit id="5ca707824ab93066c7d9b44e1b8bf216725c2c22">
<source>Filter</source>
<target>Filtriraj</target>
<context-group name="null">
<context context-type="linenumber">115</context>
</context-group>
</trans-unit>
<trans-unit id="c7742322b1d3dbc921362058d1747c7ec2adbec7">
<source>Basic info</source>
<target>Osnovni podatki</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="0b365218ce1ae736f9066fd3d47278cc8f3ed1d0">
<source>Enable download</source>
<target>Dovoli prenos</target>
<context-group name="null">
<context context-type="linenumber">235</context>
</context-group>
</trans-unit>
<trans-unit id="d91da0abc638c05e52adea253d0813f3584da4b1">
<source>Advanced settings</source>
<target>Napredne nastavitve</target>
<context-group name="null">
<context context-type="linenumber">186</context>
</context-group>
</trans-unit>
<trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6">
<source>URL</source>
<target>URL</target>
<context-group name="null">
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36">
<source>Import</source>
<target>Uvozi</target>
<context-group name="null">
<context context-type="linenumber">162</context>
</context-group>
</trans-unit>
<trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb">
<source>Update</source>
<target>Posodobi</target>
<context-group name="null">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="5d6a58637313a6b2375e3af59534f788c8f8657d">
<source>Video background image</source>
<target>Ozadje videoposnetka</target>
<context-group name="null">
<context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="223aae0477f79f0bc4436c1c57619415f04cbbb3">
<source>Publish</source>
<target>Objavi</target>
<context-group name="null">
<context context-type="linenumber">86</context>
</context-group>
</trans-unit>
<trans-unit id="1b518e7f8c067fa55ea797bb1b35b4a2d31dccbc">
<source>Or</source>
<target>Ali</target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="4faf57baebf0fb754a91af0c39521a30cbb1def3">
<source>Upload a file</source>
<target>Naloži datoteko</target>
<context-group name="null">
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="752c401d7dcd708944eef60e411187f71d882340">
<source>Import with torrent</source>
<target>Uvozi iz torrenta</target>
<context-group name="null">
<context context-type="linenumber">24</context>
</context-group>
</trans-unit>
<trans-unit id="2335f0bd17c63d835b50cfbbcea6c459cb1314c0">
<source>
Update <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
</source>
<target>
Posodobi <x id="INTERPOLATION" equiv-text="{{ video?.name }}"/>
</target>
<context-group name="null">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
<trans-unit id="5b94148c16fa19e3db89972d11e93f790a73a054">
<source>Trending for the last 24 hours</source>
<target>Popularno v zadnjih 24 urah.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="6e9cb0b3b38312870471954abec8690170429a4e">
<source>Trending videos are those totalizing the greatest number of views during the last 24 hours</source>
<target>Popularni videoposnetki so tisti, ki so v zadnjih 24 urah prejeli največ ogledov.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="6da9ddede61711ecfeaa94fc61a6b7bb844ab3df">
<source>Trending for the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days</source>
<target>Popularno v zadnjih <x id="INTERPOLATION" equiv-text="{{days}}"/> dneh</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="caa0a70f34df9b60a71ed0ad6c82de7b07c0c509">
<source>Trending videos are those totalizing the greatest number of views during the last <x id="INTERPOLATION" equiv-text="{{days}}"/> days</source>
<target>Popularni videoposnetki so tisti, ki so v zadnjih <x id="INTERPOLATION" equiv-text="{{days}}"/> dneh prejeli največ ogledov.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
</body>
</file></xliff>

View File

@ -512,7 +512,7 @@
</trans-unit>
<trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
<source>Display name</source>
<target>Visa namn</target>
<target>Visningsnamn</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
@ -3654,14 +3654,14 @@ Det verkar som du inte är på en HTTPS-server. Din webbserver behöver ha TLS a
</trans-unit>
<trans-unit id="2fb6d9783b2c3ce93df9cee3542cda87aa60a808">
<source>instance default</source>
<target>instansen standard</target>
<target>Instansens standard</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="2aad0303b66062ca5fb031b72df15b2cbce6e35d">
<source>peertube default</source>
<target>peertubes standard</target>
<target>PeerTubes standard</target>
<context-group name="null">
<context context-type="linenumber">8</context>
</context-group>
@ -5904,21 +5904,21 @@ När du laddar upp en video i den här kanalen kommer supportfältet automatiskt
</trans-unit>
<trans-unit id="02e0243b60007368f87dc01e083f232dd025096d">
<source>Last 7 days</source>
<target>Senaste 7 dagarna</target>
<target>Senaste veckan</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8">
<source>Last 30 days</source>
<target>Senaste 30 dagarna</target>
<target>Senaste månaden</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="a77b663fd9b94c38bc9c6493a51b5f3acacb9bca">
<source>Last 365 days</source>
<target>Senaste 365 dagarna</target>
<target>Senaste året</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>

View File

@ -0,0 +1,827 @@
<?xml version="1.0" encoding="utf-8"?>
<!--XLIFF document generated by Zanata. Visit http://zanata.org for more infomation.-->
<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">
<file source-language="en-US" datatype="plaintext" original="" target-language="th-TH">
<body>
<trans-unit id="ngb.alert.close">
<source>Close</source>
<target>ปิด</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.carousel.previous">
<source>Previous</source>
<target>ก่อนหน้า</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.carousel.next">
<source>Next</source>
<target>ถัดไป</target>
<context-group name="null">
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.previous-month">
<source>Previous month</source>
<target>เดือนก่อนหน้า</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.next-month">
<source>Next month</source>
<target>เดือนถัดไป</target>
<context-group name="null">
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.select-month">
<source>Select month</source>
<target>เลือกเดือน</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.datepicker.select-year">
<source>Select year</source>
<target>เลือกปี</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.first">
<source>««</source>
<target>««</target>
<context-group name="null">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.previous">
<source>«</source>
<target>«</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.next">
<source>»</source>
<target>»</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.last">
<source>»»</source>
<target>»»</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.first-aria">
<source>First</source>
<target>หน้าแรก</target>
<context-group name="null">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.previous-aria">
<source>Previous</source>
<target>ก่อนหน้า</target>
<context-group name="null">
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.next-aria">
<source>Next</source>
<target>ถัดไป</target>
<context-group name="null">
<context context-type="linenumber">41</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.pagination.last-aria">
<source>Last</source>
<target>หน้าสุดท้าย</target>
<context-group name="null">
<context context-type="linenumber">49</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.progressbar.value">
<source><x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>%</source>
<target><x id="INTERPOLATION" equiv-text="{{getPercentValue()}}"/>%</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.increment-hours">
<source>Increment hours</source>
<target>เพิ่มชั่วโมง</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.HH">
<source>HH</source>
<target>ชช</target>
<context-group name="null">
<context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.hours">
<source>Hours</source>
<target>ชั่วโมง</target>
<context-group name="null">
<context context-type="linenumber">14</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.decrement-hours">
<source>Decrement hours</source>
<target>ลดชั่วโมง</target>
<context-group name="null">
<context context-type="linenumber">21</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.increment-minutes">
<source>Increment minutes</source>
<target>เพิ่มนาที</target>
<context-group name="null">
<context context-type="linenumber">30</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.MM">
<source>MM</source>
<target>นน</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.minutes">
<source>Minutes</source>
<target>นาที</target>
<context-group name="null">
<context context-type="linenumber">35</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.decrement-minutes">
<source>Decrement minutes</source>
<target>ลดนาที</target>
<context-group name="null">
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.increment-seconds">
<source>Increment seconds</source>
<target>เพิ่มวินาที</target>
<context-group name="null">
<context context-type="linenumber">51</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.SS">
<source>SS</source>
<target>วว</target>
<context-group name="null">
<context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.seconds">
<source>Seconds</source>
<target>วินาที</target>
<context-group name="null">
<context context-type="linenumber">56</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.decrement-seconds">
<source>Decrement seconds</source>
<target>ลดวินาที</target>
<context-group name="null">
<context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.PM">
<source><x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ i18n.getAfternoonPeriod() }}"/></target>
<context-group name="null">
<context context-type="linenumber">71</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.AM">
<source><x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ i18n.getMorningPeriod() }}"/></target>
<context-group name="null">
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.toast.close-aria">
<source>Close</source>
<target>ปิด</target>
<context-group name="null">
<context context-type="linenumber">8</context>
</context-group>
</trans-unit>
<trans-unit id="f3e63578c50546530daf6050d2ba6f8226040f2c">
<source>You don't have notifications.</source>
<target>คุณไม่มีการแจ้งเตือน</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ade81bccd385c84f16f0e3862c1da3106bc3914b">
<source>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> published a <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>new video<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="TAG_IMG" ctype="image" equiv-text="&lt;img/&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ notification.video.channel.displayName }}"/> ได้เผยแพร่<x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/>วิดีโอใหม่<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/>
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="ba93de990947141c5582ce8ccc3c6f74f7fd35a6">
<source>
<x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;my-global-icon&gt;"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;/my-global-icon&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
Your video <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> has been unblacklisted
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;my-global-icon&gt;"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;/my-global-icon&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
วิดีโอ <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> ของคุณได้ถูกนำออกจากบัญชีดำแล้ว
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="b7923e220607db3b4039adc2ebf114825f6cc7f0">
<source>
<x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;my-global-icon&gt;"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;/my-global-icon&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
Your video <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> has been blacklisted
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</source>
<target>
<x id="START_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;my-global-icon&gt;"/><x id="CLOSE_TAG_MY-GLOBAL-ICON" ctype="x-my-global-icon" equiv-text="&lt;/my-global-icon&gt;"/>
<x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div&gt;"/>
วิดีโอ <x id="START_LINK" ctype="x-a" equiv-text="&lt;a&gt;"/><x id="INTERPOLATION" equiv-text="{{ notification.videoBlacklist.video.name }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> ของคุณได้ถูกขึ้นบัญชีดำแล้ว
<x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="b2b638f4333842009c258a23e59dbe4160d1e566">
<source>Save to</source>
<target>บันทึกที่</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="24813b8a3e45f0b57136c18d003027262cfe2d1f">
<source>Options</source>
<target>ตัวเลือก</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="85e5d1de15d23cde43c530e3740a2a61aed24c2d">
<source>Start at</source>
<target>เริ่มต้นที่</target>
<context-group name="null">
<context context-type="linenumber">61</context>
</context-group>
</trans-unit>
<trans-unit id="4d20563f7e338a1d09eb756054564ccf7c6a30ef">
<source>Stop at</source>
<target>จบที่</target>
<context-group name="null">
<context context-type="linenumber">112</context>
</context-group>
</trans-unit>
<trans-unit id="bc155f9fc3be3f32083f19b2c77d4ad3b696d9b9">
<source>Display name</source>
<target>ชื่อที่แสดง</target>
<context-group name="null">
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="70a67e04629f6d412db0a12d51820b480788d795">
<source>Create</source>
<target>สร้าง</target>
<context-group name="null">
<context context-type="linenumber">74</context>
</context-group>
</trans-unit>
<trans-unit id="9aafb2a928664aa7a9375fd37c533f0375f8b611">
<source>Download video</source>
<target>ดาวน์โหลดวิดีโอ</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="8d6a41c2703bed3edfc76e1df0b1ca203404c17c">
<source>Direct download</source>
<target>ดาวน์โหลดตรง</target>
<context-group name="null">
<context context-type="linenumber">27</context>
</context-group>
</trans-unit>
<trans-unit id="ac3a02ecd20f41278f1ef7c03f45c1117b4b796d">
<source>Torrent (.torrent file)</source>
<target>Torrent (ไฟล์ .torrent)</target>
<context-group name="null">
<context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="da44efc7b658c318651866454d258bbbe57ff21c">
<source>
Cancel
</source>
<target>
ยกเลิก
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
<trans-unit id="dc75033a5238fdc4f462212c847a45ba8018a3fd">
<source>Download</source>
<target>ดาวน์โหลด</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="11749f4fc0aa1b5e37f38575e4d4e3b1b7e0e96b">
<source>Report video</source>
<target>รายงานวิดีโอ</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="827b1376aa35c7a7de90f7724d6a51ccfa20c908">
<source>
Your report will be sent to moderators of <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>.
<x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;ng-container&gt;"/> It will be forwarded to origin instance <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/> too.<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;/ng-container&gt;"/>
</source>
<target>
รายงานของคุณจะถูกส่งไปยังผู้ดูแลระบบของ <x id="INTERPOLATION" equiv-text="{{ currentHost }}"/>
<x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;ng-container&gt;"/> รายงานนี้จะถูกส่งต่อไปยังระบบต้นทาง <x id="INTERPOLATION_1" equiv-text="{{ originHost }}"/> เช่นกัน<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;/ng-container&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="bb44873ad8d4c5dbad0ac2a6a50e0ceee9119125">
<source>Reason...</source>
<target>เหตุผล...</target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="fb8aad312b72bbb7e5a1e2cc0b55fae8962bf0fb">
<source>
Cancel
</source>
<target>
ยกเลิก
</target>
<context-group name="null">
<context context-type="linenumber">47</context>
</context-group>
</trans-unit>
<trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd">
<source>Submit</source>
<target>ส่ง</target>
<context-group name="null">
<context context-type="linenumber">52</context>
</context-group>
</trans-unit>
<trans-unit id="f672385c803647b063687d3c912e2ce5738b51c8">
<source>Blacklist video</source>
<target>เพิ่มวิดีโอเข้าบัญชีดำ</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="9849bf6a9e45a9a91d13a419afbb5176f9b2367d">
<source>Unfederate the video (ask for its deletion from the remote instances)</source>
<target>ขอให้ระบบอื่นลบวิดีโอนี้</target>
<context-group name="null">
<context context-type="linenumber">21</context>
</context-group>
</trans-unit>
<trans-unit id="4b3963c6d0863118fe9e9e33447d12be3c2db081">
<source>Unlisted</source>
<target>ไม่เปิดเผย</target>
<context-group name="null">
<context context-type="linenumber">6</context>
</context-group>
</trans-unit>
<trans-unit id="ddd8a4986d2d1717a274a5a0fbed04988a819e69">
<source>Private</source>
<target>ส่วนตัว</target>
<context-group name="null">
<context context-type="linenumber">7</context>
</context-group>
</trans-unit>
<trans-unit id="6aec8cb024acc333218d72f279caa8ea623bb628">
<source><x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> views</source>
<target>รับชม <x id="INTERPOLATION" equiv-text="{{ video.views | myNumberFormatter }}"/> ครั้ง</target>
<context-group name="null">
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="4a806761798181e907e28ed1af053d466526800d">
<source>Blacklisted</source>
<target>ขึ้นบัญชีดำแล้ว</target>
<context-group name="null">
<context context-type="linenumber">39</context>
</context-group>
</trans-unit>
<trans-unit id="fb8ccb136ab0ad1ff1dfbce739198be16a814f87">
<source>
Sensitive
</source>
<target>
มีเนื้อหาไม่เหมาะสม
</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="4999ffd919bb9af482aa4c53badd6cd654468582">
<source>
<x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/>
</source>
<target>
<x id="INTERPOLATION" equiv-text="{{ playlist.videoChannelBy }}"/>
</target>
<context-group name="null">
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="a3550f6ce98d90d2947fe062530629dc2d3923b4">
<source>Updated <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/></source>
<target>อัพเดทเมื่อ <x id="INTERPOLATION" equiv-text="{{ playlist.updatedAt | myFromNow }}"/></target>
<context-group name="null">
<context context-type="linenumber">29</context>
</context-group>
</trans-unit>
<trans-unit id="2edccfda908b57c073dc0811eaa58818de2be2dc">
<source>Edit starts/stops at</source>
<target>แก้ไขช่วงเวลาเริ่ม/จบ</target>
<context-group name="null">
<context context-type="linenumber">33</context>
</context-group>
</trans-unit>
<trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe">
<source>Save</source>
<target>บันทึก</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="b9dee3108a18796bd69c6be316c8fb985b58fb8e">
<source>Delete from <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/></source>
<target>ลบออกจาก <x id="INTERPOLATION" equiv-text="{{ playlist?.displayName }}"/></target>
<context-group name="null">
<context context-type="linenumber">69</context>
</context-group>
</trans-unit>
<trans-unit id="c31161d1661884f54fbc5635aad5ce8d4803897e">
<source>No results.</source>
<target>ไม่มีผลลัพธ์</target>
<context-group name="null">
<context context-type="linenumber">20</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7">
<source>Delete</source>
<target>ลบ</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c">
<source>Edit</source>
<target>แก้ไข</target>
<context-group name="null">
<context context-type="linenumber">63</context>
</context-group>
</trans-unit>
<trans-unit id="961a134583d6256df39fbc520d020ebc48e3128d">
<source>Truncated preview</source>
<target>ตัวอย่างสั้น</target>
<context-group name="null">
<context context-type="linenumber">9</context>
</context-group>
</trans-unit>
<trans-unit id="f82f53a2544638939a8ba93c0fb1b0a4419c3196">
<source>Complete preview</source>
<target>ตัวอย่างเต็ม</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="9c71feb04c2beab559f79c41c6127815fb9c1a6f">
<source>Get help</source>
<target>ขอความช่วยเหลือ</target>
<context-group name="null">
<context context-type="linenumber">19</context>
</context-group>
</trans-unit>
<trans-unit id="450025269732888db1f04cfe6033843110ab65ee">
<source>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>
Subscribe
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</source>
<target>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>
ติดตาม
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>
<x id="INTERPOLATION" equiv-text="{{ videoChannel.followersCount | myNumberFormatter }}"/>
<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="c374edf3b9228d3df6d761bdc8a289e7df0096e8">
<source>
Unsubscribe
</source>
<target>
เลิกติดตาม
</target>
<context-group name="null">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
<trans-unit id="9b3287f52c239cad05ec98391553e5052ba1aa66">
<source>Using an ActivityPub account</source>
<target>ผ่านบัญชี ActivityPub</target>
<context-group name="null">
<context context-type="linenumber">36</context>
</context-group>
</trans-unit>
<trans-unit id="60251958d9e05c8cc00abf9645bb0026ebbe4dc3">
<source>Subscribe with an account on <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></source>
<target>ติดตามด้วยบัญชีบน <x id="INTERPOLATION" equiv-text="{{ videoChannel.host }}"/></target>
<context-group name="null">
<context context-type="linenumber">39</context>
</context-group>
</trans-unit>
<trans-unit id="e7adf422424a61b71465d183f9d44bf956482ef0">
<source>Subscribe with your local account</source>
<target>ติดตามด้วยบัญชีของเว็บไซต์นี้</target>
<context-group name="null">
<context context-type="linenumber">40</context>
</context-group>
</trans-unit>
<trans-unit id="5047522cc670b1f4a288bce07f9b1c5061e913ed">
<source>Subscribe with a Mastodon account:</source>
<target>ติดตามด้วยบัญชี Mastodon:</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="d8758664cadd6452256ca25ca0c7259074f427c1">
<source>Using a syndication feed</source>
<target>ผ่านฟีด</target>
<context-group name="null">
<context context-type="linenumber">48</context>
</context-group>
</trans-unit>
<trans-unit id="d5e5bc7d213694fc0414a76f0ff3085bae44268a">
<source>Subscribe via RSS</source>
<target>ติดตามผ่าน RSS</target>
<context-group name="null">
<context context-type="linenumber">49</context>
</context-group>
</trans-unit>
<trans-unit id="4913054c95f5ba14c351ab1b787f7abac97bfdd3">
<source>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>Remote subscribe<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>Remote interact<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</source>
<target>
<x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span&gt;"/>ติดตามผ่านระบบอื่น<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
<x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="&lt;span&gt;"/>โต้ตอบผ่านระบบอื่น<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="2350869d835dfca2643c32e0ef1f5e35dc64f64b">
<source>Default NSFW/sensitive videos policy (can be redefined by the users)</source>
<target>นโยบายวิดีโอที่ไม่เหมาะสม (สามารถเปลี่ยนโดยผู้ใช้)</target>
<context-group name="null">
<context context-type="linenumber">5</context>
</context-group>
</trans-unit>
<trans-unit id="15f046007e4fca2e8477966745e2ec4e3e81bc3b">
<source>Video quota</source>
<target>ปริมาณวิดีโอที่สามารถอัพโหลดได้</target>
<context-group name="null">
<context context-type="linenumber">56</context>
</context-group>
</trans-unit>
<trans-unit id="9270dfd4606fb45a991fe7716e640b6efa28ba85">
<source>
Unlimited <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;ng-container&gt;"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> per day)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;/ng-container&gt;"/>
</source>
<target>
ไม่จำกัด <x id="START_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;ng-container&gt;"/>(<x id="INTERPOLATION" equiv-text="{{ dailyUserVideoQuota | bytes: 0 }}"/> ต่อวัน)<x id="CLOSE_TAG_NG-CONTAINER" ctype="x-ng-container" equiv-text="&lt;/ng-container&gt;"/>
</target>
<context-group name="null">
<context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="6a323f80f9d90a32db8ce52cc82075938c3c36f0">
<source>Ban</source>
<target>แบน</target>
<context-group name="null">
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="f21428bd564d1cacdbc737f87a8def2e2ad42251">
<source>
A banned user will no longer be able to login.
</source>
<target>
ผู้ใช้ที่ถูกแบนจะไม่สามารถเข้าสู่ระบบได้อีก
</target>
<context-group name="null">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7">
<source>Cancel</source>
<target>ยกเลิก</target>
<context-group name="null">
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="35fdca47605de8113a0db7f587f7c099abec8020">
<source>Ban this user</source>
<target>แบนผู้ใช้นี้</target>
<context-group name="null">
<context context-type="linenumber">26</context>
</context-group>
</trans-unit>
<trans-unit id="c078d4901a5fac169665947cc7a6108b94dd80c7">
<source><x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{ menuEntry.label }}"/></target>
<context-group name="null">
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="b4f8ab29acafa8172b27571fd682d482c1ff7798">
<source>(extensions: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, max size: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</source>
<target>(ส่วนขยาย: <x id="INTERPOLATION" equiv-text="{{ allowedExtensionsMessage }}"/>, ขนาดสูงสุด: <x id="INTERPOLATION_1" equiv-text="{{ maxVideoImageSize | bytes }}"/>)</target>
<context-group name="null">
<context context-type="linenumber">12</context>
</context-group>
</trans-unit>
<trans-unit id="12910217fdcdbca64bee06f511639b653d5428ea">
<source>
Login
</source>
<target>
เข้าสู่ระบบ
</target>
<context-group name="null">
<context context-type="linenumber">2</context>
</context-group>
</trans-unit>
<trans-unit id="ae3cb52bf2dee3101ee654812b5d16e8665a9453">
<source>Request new verification email.</source>
<target>ขออีเมล์ยืนยันตัวตนใหม่</target>
<context-group name="null">
<context context-type="linenumber">16</context>
</context-group>
</trans-unit>
<trans-unit id="e08a77594f3d89311cdf6da5090044270909c194">
<source>User</source>
<target>ผู้ใช้</target>
<context-group name="null">
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="51ef29329faccb28d94369897068897d1b3d0478">
<source>Username or email address</source>
<target>ชื่อผู้ใช้หรือที่อยู่อีเมล</target>
<context-group name="null">
<context context-type="linenumber">15</context>
</context-group>
</trans-unit>
<trans-unit id="02c4360c2d956e74ed6bb1f71e86812af0e19b87">
<source>
or create an account
</source>
<target>
หรือสร้างบัญชีใหม่
</target>
<context-group name="null">
<context context-type="linenumber">18</context>
</context-group>
</trans-unit>
<trans-unit id="d6290381021b16febc426d3e3a52dda83991ce0b">
<source>
or create an account on another instance
</source>
<target>
หรือสร้างบัญชีใหม่บนระบบอื่น
</target>
<context-group name="null">
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="76e1f485e6ead4c84b606f46d413878881d66ad3">
<source>User registration is not allowed on this instance, but you can register on many others!</source>
<target>ระบบนี้ไม่อนุญาตให้สร้างบัญชีใหม่ แต่คุณสามารถสร้างบัญชีใหม่บนระบบอื่นได้!</target>
<context-group name="null">
<context context-type="linenumber">28</context>
</context-group>
</trans-unit>
<trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407">
<source>Password</source>
<target>รหัสผ่าน</target>
<context-group name="null">
<context context-type="linenumber">54</context>
</context-group>
</trans-unit>
<trans-unit id="b87e81682959464211443afc3e23c506865d2eda">
<source>I forgot my password</source>
<target>ฉันลืมรหัสผ่าน</target>
<context-group name="null">
<context context-type="linenumber">44</context>
</context-group>
</trans-unit>
<trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9">
<source>Login</source>
<target>เข้าสู่ระบบ</target>
<context-group name="null">
<context context-type="linenumber">32</context>
</context-group>
</trans-unit>
<trans-unit id="d2eb6c5d41f70d4b8c0937e7e19e196143b47681">
<source>Forgot your password</source>
<target>ลืมรหัสผ่าน</target>
<context-group name="null">
<context context-type="linenumber">57</context>
</context-group>
</trans-unit>
<trans-unit id="f876804a6725f7b950c8e4c56ca596206856e6a2">
<source>
We are sorry, you cannot recover you password because your instance administrator did not configure the PeerTube email system.
</source>
<target>
ขออภัย คุณไม่สามารถกู้คืนรหัสผ่านได้เนื่องจากผู้ดูแลระบบนี้ไม่ได้ตั้งค่าระบบอีเมล PeerTube
</target>
<context-group name="null">
<context context-type="linenumber">64</context>
</context-group>
</trans-unit>
<trans-unit id="244aae9346da82b0922506c2d2581373a15641cc">
<source>Email</source>
<target>อีเมล</target>
<context-group name="null">
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529">
<source>Email address</source>
<target>ที่อยู่อีเมล</target>
<context-group name="null">
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="78be69e4d26b3b654c49962839d8545e61bf8b55">
<source>Send me an email to reset my password</source>
<target>ส่งอีเมลเพื่อรีเซ็ทรหัสผ่าน</target>
<context-group name="null">
<context context-type="linenumber">81</context>
</context-group>
</trans-unit>
</body>
</file></xliff>

View File

@ -1485,6 +1485,300 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="8339364b054610983b7f2334bb807fff7613bddf">
<source>Sunday</source>
<target>Chủ Nhật</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="a43c57a7cbebf57eb33a2eae5e994c91d9887596">
<source>Monday</source>
<target>Thứ Hai</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="48a2a35957ce394eb2c59ae35c99642360af70ee">
<source>Tuesday</source>
<target>Thứ Ba</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="b0af441f9ba8b82952b9ec10fb8c62e8fec67df9">
<source>Wednesday</source>
<target>Thứ Tư</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="55c583b99c809818ec27df065ccf05357a6ac10b">
<source>Thursday</source>
<target>Thứ Năm</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="e91b54925dc5f490753f60f53ef6f8b4609e6215">
<source>Friday</source>
<target>Thứ Sáu</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="c0d2dd391a3eca8e841a5d0e035cd268280eb68e">
<source>Saturday</source>
<target>Thứ Bảy</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="6549890cd0d6b59fb0e1aa383b00483a68a55eef">
<source>Sun</source>
<target>CN</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="3382aa5d7f520e197fb59a4995fe1beffca2d0ff">
<source>Mon</source>
<target>T2</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="f883ec926274974df0fc46c037cbffd6a863ebc9">
<source>Tue</source>
<target>T3</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="242b4f4b5651e24f9a9007ef153a57981e4b989d">
<source>Wed</source>
<target>T4</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="5a2c39d56b8f00a6a4670a63b53caacbda953be6">
<source>Thu</source>
<target>T5</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="4cdf23d523a0e52e0dec9cd650ffd9bd6952792c">
<source>Fri</source>
<target>T6</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="1283d165a942d7f4c469ba34f99dbb9e927d0261">
<source>Sat</source>
<target>T7</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="2fba8448ff13105c57665a9a6ffcfe9615d855dd">
<source>Su</source>
<target>CN</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="388144af7ac7651d2615b9be0e84f43ae71d9fb3">
<source>Mo</source>
<target>T2</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="d96313e42b5f0751ce2676a31d309b4d322ab462">
<source>Tu</source>
<target>T3</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="06cc3d39f78c0615b707cef39cd4875599611fef">
<source>We</source>
<target>T4</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="790894436cca9d675d59be9a8aafd58acccde2cd">
<source>Th</source>
<target>T5</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="42dfe37169f8471367c31489155229bbe1747ea5">
<source>Fr</source>
<target>T6</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="1b64ea3e04ceeb512e8974eb0019dee4f211c7a0">
<source>Sa</source>
<target>T7</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="e7815f1c4a6d3cc157a16407a48865023cc35ec0">
<source>January</source>
<target>Tháng Một</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="0393a96b58df82af39a2ec83deec624749e42036">
<source>February</source>
<target>Tháng Hai</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ea41ee3743ec5bdbbf863ab793bbdd6e6d9af96e">
<source>March</source>
<target>Tháng Ba</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="b87ee784d9e93b5557aca9bdc9464dbd4328920a">
<source>April</source>
<target>Tháng Tư</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="862da1034ac2707cc44123ed963b2f42109b6b3e">
<source>May</source>
<target>Tháng Năm</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="2f234249d4c3c39e27c0f05d4a6b73a7959caeb2">
<source>June</source>
<target>Tháng Sáu</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="11447f95e83c8de675ab6c492150f88e4d9bd15e">
<source>July</source>
<target>Tháng Bảy</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ddd9a3d59a8db4e822e54e9473c05b571aca9829">
<source>August</source>
<target>Tháng Tám</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="e21dc41f9b3fdaf35ab6b2d9e2e5e8a926fb1938">
<source>September</source>
<target>Tháng Chín</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="71f49c502d13e22079a958a5532afa28dbe98b3b">
<source>October</source>
<target>Tháng Mười</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="64b5ce921faa5e3d277d6d528ddcfc8c2bfe9f52">
<source>November</source>
<target>Tháng Mười Một</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="2006e2aabb31714ebc684dc382539649f690ed5c">
<source>December</source>
<target>Tháng Mười Hai</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="8270e687cfb5624b3f6fbb7991a2e916c96464b7">
<source>Jan</source>
<target>Tg1</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="23544170afbb981dd52750b641576841cf5dcf60">
<source>Feb</source>
<target>Tg2</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="1f14355742459b7d6a0126a1564e1c18f39f86e7">
<source>Mar</source>
<target>Tg3</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="964a5f032bc846d32806a4838580a4f81cf14463">
<source>Apr</source>
<target>Tg4</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="8f7274f606f71d9290ed01c5683092d701632d7f">
<source>Jun</source>
<target>Tg6</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="7c3d8318d6d8d9920ae0a80350616732c33a3211">
<source>Jul</source>
<target>Tg7</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="1e89bd0d46ef7d90b5f98b24f83afc312c6ef105">
<source>Displayed</source>
<target>Đã hiện</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="87ca23d62c168409ed040dae83dd8717cae3f08c">
<source>User registration allowed</source>
<target>Cho phép người dùng đăng kí</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="a0fdb831d4557925dbaa4f8aff7e5035f7506411">
<source>Transcode your videos in multiple resolutions</source>
<target>Chuyển mã video của bạn thành nhiều độ phân giải</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="4e231a74ad4739e7b0606e8e66d5a656f5855a5a">
<source>Torrent import</source>
<target>Nhập torrent</target>
@ -1569,6 +1863,20 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="ad07d34d4aadfe03c964cec02ca1d3a921e6b603">
<source>If you remove this user, you will not be able to create another with the same username!</source>
<target>Nếu xoá người dùng này, bạn sẽ không thể tạo tài khoản mới có cùng tên đăng nhập!</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="28220fae6799ab98ef6b41af449aa9680082357a">
<source>User <x id="INTERPOLATION" equiv-text="{{username}}"/> deleted.</source>
<target>Đã xoá người dùng <x id="INTERPOLATION" equiv-text="{{username}}"/>.</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="33a6319f765848a22a155cef9f1d8e645202e249">
<source>Account <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/> muted.</source>
<target>Đã tắt tiếng tài khoản <x id="INTERPOLATION" equiv-text="{{nameWithHost}}"/>.</target>
@ -1702,6 +2010,13 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="007ab5fa2aae8a7372307d3fc45a2dbcb11ffd61">
<source>Blacklist</source>
<target>Danh sách đen</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="f72992030f134408b675152c397f9d0ec00f3b2a">
<source>Report</source>
<target>Báo cáo</target>
@ -1723,6 +2038,13 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="4a7e91ebe1cf184db5f2bfecf9c16ff81c9e2c02">
<source>Waiting transcoding</source>
<target>Đang chờ chuyển mã</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="289fe8342e8b7df689c75026a24a60fd7f5e9392">
<source>To import</source><target>To import</target><context-group name="null">
<context context-type="linenumber">1</context>
@ -1756,6 +2078,13 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="24840228f2826b66252cfcaab9820b1c7e0da264">
<source>But associated data (tags, description...) will be lost, are you sure you want to leave this page?</source>
<target>Nhưng các dữ liệu liên quan (thẻ, mô tả,...) sẽ bị mất. Bạn có chắc muốn rời khỏi trang không?</target>
<context-group name="null">
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="5af84926d631326e548573ebf0f6dff07845aeb4">
<source>Your video is not uploaded yet, are you sure you want to leave this page?</source>
<target>Video của bạn vẫn chưa được tải lên, bạn có chắc muốn rời trang?</target>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
{"Audio Player":"Audiosoitin","Video Player":"Videosoitin","Play":"Toista","Pause":"Keskeytä","Replay":"Uudelleen toista","Current Time":"Nykyinen aika","Duration":"Kesto","Remaining Time":"Jäljellä oleva aika","Stream Type":"Suoratoistotyyppi","LIVE":"SUORA","Loaded":"Ladattu","Progress":"Edistyminen","Progress Bar":"Edistymispalkki","progress bar timing: currentTime={1} duration={2}":"{1}/{2}","Fullscreen":"Koko näyttö","Non-Fullscreen":"Poistu koko ruudun tilasta","Mute":"Mykistä","Unmute":"Poista mykistys","Playback Rate":"Toistonopeus","Subtitles":"Tekstitykset","subtitles off":"Tekstitykset pois päältä","Captions":"Merkinnät","captions off":"Merkinnät pois päältä","Chapters":"Jaksot","Descriptions":"Kuvaukset","descriptions off":"Kuvaukset pois päältä","Audio Track":"Ääniraita","Volume Level":"Äänenvoimakkuus","You aborted the media playback":"Keskeytit median toiston","A network error caused the media download to fail part-way.":"Verkkovirhe aiheutti osittain ladatun median epäonnistumisen.","The media could not be loaded, either because the server or network failed or because the format is not supported.":"Mediaa ei voida ladata, koska tapahtui palvelin- tai verkkovirhe tai formaattia ei tueta.","The media playback was aborted due to a corruption problem or because the media used features your browser did not support.":"Median toisto peruttiin korruptio-ongelman takia, tai koska media käyttää ominaisuuksia mitä selaimesi ei tue.","No compatible source was found for this media.":"Yhteensopivaa lähdettä ei löytynyt medialle.","The media is encrypted and we do not have the keys to decrypt it.":"Media on salattu, eikä meillä ole avaimia avataksesi sitä.","Play Video":"Toista video","Close":"Sulje","Close Modal Dialog":"Sulje valintaikkuna","Modal Window":"Valintaikkuna","This is a modal window":"Tämä on valintaikkuna","This modal can be closed by pressing the Escape key or activating the close button.":"Tämän valintaikkunan voi sulkea painamalla Escape-näppäintä, tai aktivoimalla sulkemispainikkeen.",", opens captions settings dialog":", avaa merkintöjen asetusvalikon",", opens subtitles settings dialog":", avaa tekstityksien asetusvalikon",", opens descriptions settings dialog":", avaa kuvauksien asetusvalikon",", selected":", valittu","captions settings":"merkintöjen asetukset","subtitles settings":"tekstityksien asetukset","descriptions settings":"kuvauksien asetukset","Text":"Teksti","White":"Valkoinen","Black":"Musta","Red":"Punainen","Green":"Vihreä","Blue":"Sininen","Yellow":"Keltainen","Magenta":"Purppura","Cyan":"Syaani","Background":"Tausta","Window":"Ikkuna","Transparent":"Läpinäkyvä","Semi-Transparent":"Osittain läpinäkyvä","Opaque":"Himmeä","Font Size":"Fonttikoko","Text Edge Style":"Tekstin reunan tyyli","None":"Ei mitään","Raised":"Nostettu","Depressed":"Painostunut","Uniform":"Yhtenäinen","Dropshadow":"Varjostus","Font Family":"Kirjasinperhe","Proportional Sans-Serif":"Suhteellinen Sans-Serif","Monospace Sans-Serif":"Monospace Sans-Serif","Proportional Serif":"Suhteellinen Sans-Serif","Monospace Serif":"Monospace Serif","Casual":"Rento","Script":"Kirjoitus","Small Caps":"Pienet kirjaisimet","Reset":"Nollaa","restore all settings to the default values":"Palauta kaikki asetukset oletusarvoihin","Done":"Valmis","Caption Settings Dialog":"Merkinnät asetusvalintaikkuna","Beginning of dialog window. Escape will cancel and close the window.":"Valintaikkunan alku. Escape-näppäin peruuttaa ja sulkee ikkunan.","End of dialog window.":"Valintaikkunan loppu.","{1} is loading.":"{1} latautuu.","Quality":"Laatu","Auto":"Automaattinen","Speed":"Nopeus","Subtitles/CC":"Tekstitykset","peers":"katsojaa","peer":"katsoja","Go to the video page":"Mene videon sivulle","Settings":"Asetukset","Uses P2P, others may know you are watching this video.":"Käyttää vertaisverkkoa, muut saattavat tietää katsovasi tätä videota.","Copy the video URL":"Kopioi videon URL-osoite","Copy the video URL at the current time":"Kopioi videon URL-osoite nykyisestä kohdasta","Copy embed code":"Kopioi upotuskoodi","Copy magnet URI":"Kopioi Magnet-linkki","Total downloaded: ":"Ladattu yhteensä: ","Total uploaded: ":"Jaettu yhteensä: "}

View File

@ -1 +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.":"开始对话弹窗。离开会取消并关闭弹窗。","End of dialog window.":"结束对话弹窗","{1} is loading.":"正在加载 {1}。","Quality":"画质","Auto":"自动","Speed":"速度","Subtitles/CC":"字幕","peers":"个来源","Go to the video page":"进入视频页面","Settings":"设置","Uses P2P, others may know you are watching this video.":"使用 P2P 时,其他人将能够知道您正在观看此视频。","Copy the video URL":"复制视频网址","Copy the video URL at the current time":"复制当前时间的视频网址","Copy embed code":"复制嵌入代码"}
{"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.":"开始对话弹窗。离开会取消并关闭弹窗。","End of dialog window.":"结束对话弹窗","{1} is loading.":"正在加载 {1}。","Quality":"画质","Auto":"自动","Speed":"速度","Subtitles/CC":"字幕","peers":"个来源","peer":"对等网络用户","Go to the video page":"进入视频页面","Settings":"设置","Uses P2P, others may know you are watching this video.":"使用 P2P 时,其他人将能够知道您正在观看此视频。","Copy the video URL":"复制视频网址","Copy the video URL at the current time":"复制当前时间的视频网址","Copy embed code":"复制嵌入代码","Copy magnet URI":"复制磁力链","Total downloaded: ":"总下载数:","Total uploaded: ":"总上传数:"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -140,9 +140,6 @@ $play-overlay-width: 18px;
}
@mixin miniature-rows {
max-height: 540px; // 2 rows max
overflow: hidden;
&:first-child {
padding-top: 30px;

View File

@ -41,7 +41,10 @@ if [ -z ${1+x} ] || [ "$1" != "--light" ]; then
languages=("fr_FR")
else
# Supported languages
languages=("nl_NL" "gd" "el_GR" "es_ES" "oc" "pt_BR" "pt_PT" "sv_SE" "pl_PL" "ru_RU" "zh_Hans_CN" "zh_Hant_TW" "fr_FR" "ja_JP" "eu_ES" "ca_ES" "cs_CZ" "eo" "de_DE" "it_IT")
languages=(
"fi_FI" "nl_NL" "gd" "el_GR" "es_ES" "oc" "pt_BR" "pt_PT" "sv_SE" "pl_PL" "ru_RU" "zh_Hans_CN" "zh_Hant_TW"
"fr_FR" "ja_JP" "eu_ES" "ca_ES" "cs_CZ" "eo" "de_DE" "it_IT"
)
fi
for lang in "${languages[@]}"; do

View File

@ -200,7 +200,7 @@ export class VideosRedundancyScheduler extends AbstractScheduler {
const tmpPath = await downloadWebTorrentVideo({ magnetUri }, VIDEO_IMPORT_TIMEOUT)
const destPath = join(CONFIG.STORAGE.REDUNDANCY_DIR, video.getVideoFilename(file))
await move(tmpPath, destPath)
await move(tmpPath, destPath, { overwrite: true })
const createdModel: MVideoRedundancyFileVideo = await VideoRedundancyModel.create({
expiresOn: this.buildNewExpiration(redundancy.minLifetime),

View File

@ -7,8 +7,8 @@ const baseDirectives = Object.assign({},
connectSrc: ['*', 'data:'],
mediaSrc: ["'self'", 'https:', 'blob:'],
fontSrc: ["'self'", 'data:'],
imgSrc: ["'self'", 'data:'],
scriptSrc: ["'self' 'unsafe-inline' 'unsafe-eval'"],
imgSrc: ["'self'", 'data:', 'blob:'],
scriptSrc: ["'self' 'unsafe-inline' 'unsafe-eval'", 'blob:'],
styleSrc: ["'self' 'unsafe-inline'"],
objectSrc: ["'none'"], // only define to allow plugins, else let defaultSrc 'none' block it
formAction: ["'self'"],

View File

@ -39,7 +39,9 @@ const usersAddValidator = [
body('email').isEmail().withMessage('Should have a valid email'),
body('videoQuota').custom(isUserVideoQuotaValid).withMessage('Should have a valid user quota'),
body('videoQuotaDaily').custom(isUserVideoQuotaDailyValid).withMessage('Should have a valid daily user quota'),
body('role').custom(isUserRoleValid).withMessage('Should have a valid role'),
body('role')
.customSanitizer(toIntOrNull)
.custom(isUserRoleValid).withMessage('Should have a valid role'),
body('adminFlags').optional().custom(isUserAdminFlagsValid).withMessage('Should have a valid admin flags'),
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
@ -51,7 +53,7 @@ const usersAddValidator = [
const authUser = res.locals.oauth.token.User
if (authUser.role !== UserRole.ADMINISTRATOR && req.body.role !== UserRole.USER) {
return res.status(403)
.json({ error: 'You can only create users (and not administrators or moderators' })
.json({ error: 'You can only create users (and not administrators or moderators)' })
}
return next()
@ -161,7 +163,10 @@ const usersUpdateValidator = [
body('emailVerified').optional().isBoolean().withMessage('Should have a valid email verified attribute'),
body('videoQuota').optional().custom(isUserVideoQuotaValid).withMessage('Should have a valid user quota'),
body('videoQuotaDaily').optional().custom(isUserVideoQuotaDailyValid).withMessage('Should have a valid daily user quota'),
body('role').optional().custom(isUserRoleValid).withMessage('Should have a valid role'),
body('role')
.optional()
.customSanitizer(toIntOrNull)
.custom(isUserRoleValid).withMessage('Should have a valid role'),
body('adminFlags').optional().custom(isUserAdminFlagsValid).withMessage('Should have a valid admin flags'),
async (req: express.Request, res: express.Response, next: express.NextFunction) => {

View File

@ -20,6 +20,7 @@ export const I18N_LOCALES = {
'pt-PT': 'Português (Portugal)',
'sv-SE': 'svenska',
'pl-PL': 'Polski',
'fi-FI': 'suomi',
'ru-RU': 'русский',
'zh-Hans-CN': '简体中文(中国)'
}
@ -33,6 +34,7 @@ const I18N_LOCALE_ALIAS = {
'de': 'de-DE',
'es': 'es-ES',
'pt': 'pt-PT',
'fi': 'fi-FI',
'sv': 'sv-SE',
'pl': 'pl-PL',
'ru': 'ru-RU',