Compare commits
56 Commits
36934ed56f
...
6286ca90b9
Author | SHA1 | Date | |
---|---|---|---|
6286ca90b9 | |||
a4bf37d534 | |||
|
a37438bdaf | ||
|
9b01d8ed09 | ||
|
5d3a0288d4 | ||
|
3a0138b70d | ||
|
0d3cb9957e | ||
|
60531dc502 | ||
|
1f7028703f | ||
|
35b802f580 | ||
|
d113b4cabe | ||
|
d2027b7fe2 | ||
|
e0d356eb35 | ||
|
437dcdb09c | ||
|
46acb4a186 | ||
|
d6b90b87c0 | ||
|
bf9c51d80e | ||
|
7c90d40f42 | ||
|
1459a7c51b | ||
|
ec8c66d490 | ||
|
6ebcacdd41 | ||
|
940d7b630d | ||
|
575ea7cdd3 | ||
|
629a01e55e | ||
|
195c56b5ec | ||
|
11ae5f8e5a | ||
|
4c23e17dfe | ||
|
c511484511 | ||
|
76a25326e8 | ||
|
c51245501c | ||
|
6156429e31 | ||
|
eb50ef5524 | ||
|
950643ac1d | ||
|
577eec6fa4 | ||
|
2e011a8022 | ||
|
7b91684e47 | ||
|
0477f7e656 | ||
|
b354ac2895 | ||
|
c6340a289c | ||
|
903c291e2c | ||
|
afbece60ab | ||
|
79893c5cea | ||
|
d217836bc8 | ||
|
fee56c383d | ||
|
b871d873c6 | ||
|
1e97193030 | ||
|
bb992e29a6 | ||
|
6836138fc1 | ||
|
77ec284ade | ||
|
3f0f6e4d3b | ||
|
8a481ecb0e | ||
|
e1195c18d8 | ||
|
ce8ec5cee4 | ||
|
1aa406cae8 | ||
|
1bb6f6fc41 | ||
|
b2f8595198 |
9
.github/dependabot.yml
vendored
9
.github/dependabot.yml
vendored
@ -9,7 +9,16 @@ updates:
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
|
||||
groups:
|
||||
minor-and-patch:
|
||||
applies-to: version-updates
|
||||
update-types:
|
||||
- "patch"
|
||||
- "minor"
|
||||
|
||||
versioning-strategy: increase
|
||||
|
||||
ignore:
|
||||
- dependency-name: typescript
|
||||
versions:
|
||||
|
34
.github/workflows/gh-build.yml
vendored
Normal file
34
.github/workflows/gh-build.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
# SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
|
||||
#
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
name: github build and lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
types: [assigned, opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: false # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20.x'
|
||||
|
||||
- name: Install build dependencies
|
||||
run: sudo apt update && sudo apt install wget reuse -y
|
||||
|
||||
- name: Build
|
||||
run: npm install
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
@ -1,10 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## 12.0.0 (Not Released Yet)
|
||||
|
||||
TODO Before releasing:
|
||||
* update ConverseJS with latest merges (there are currently some known bugs).
|
||||
* as the Prosody version changes, check these stress test https://github.com/JohnXLivingston/livechat-perf-test/tree/main/tests/33-prosody-gc and apply the correct gc parameter. Also see https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/300
|
||||
## 12.0.0
|
||||
|
||||
### Importante Notes
|
||||
|
||||
@ -19,6 +15,7 @@ If you use the "system Prosody", you should update to Prosody 0.12.4, and Lua 5.
|
||||
* #516: new option for the moderation bot: forbid duplicate messages.
|
||||
* #517: new option for the moderation bot: forbid messages with too many special characters.
|
||||
* #518: moderators can send announcements and highlighted messages.
|
||||
* #610: compatibility with PeerTube v7
|
||||
|
||||
### Minor changes and fixes
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
/* See Peertube sub-menu-h1 mixin */
|
||||
font-size: 1.3rem;
|
||||
border-bottom: 2px solid var(--greyBackgroundColor);
|
||||
border-bottom: 2px solid var(--bg-secondary-400, var(--greyBackgroundColor));
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
@ -42,45 +42,49 @@
|
||||
|
||||
input[type="submit"],
|
||||
button[type="submit"] {
|
||||
// Peertube orange-button mixin
|
||||
&,
|
||||
&:active,
|
||||
&.active,
|
||||
&:focus {
|
||||
color: #fff;
|
||||
background-color: var(--mainColor);
|
||||
color: var(--on-primary, #fff);
|
||||
background-color: var(--primary, var(--mainColor));
|
||||
border: 1px solid var(--primary, var(--mainColor));
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background-color: var(--mainHoverColor);
|
||||
color: var(--on-primary, #fff);
|
||||
background-color: var(--primary-400, var(--mainHoverColor));
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
color: #fff;
|
||||
background-color: var(--inputBorderColor);
|
||||
&[disabled] {
|
||||
pointer-events: none;
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="reset"],
|
||||
button[type="reset"] {
|
||||
// Peertube grey-button mixin
|
||||
background-color: var(--greyBackgroundColor);
|
||||
color: var(--greyForegroundColor);
|
||||
color: var(--fg, var(--mainForegroundColor));
|
||||
background-color: transparent;
|
||||
border: 1px solid var(--bg-secondary-500, var(--inputBorderColor)) !important;
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&.active,
|
||||
&:focus,
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
color: var(--greyForegroundColor);
|
||||
background-color: var(--greySecondaryBackgroundColor);
|
||||
&:focus-visible {
|
||||
color: var(--fg, var(--mainForegroundColor));
|
||||
background-color: var(--bg-secondary-500, var(--inputBorderColor));
|
||||
border-color: var(--bg-secondary-500, var(--inputBorderColor));
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
&:hover {
|
||||
color: var(--fg, var(--mainForegroundColor));
|
||||
background-color: var(--bg-secondary-450, var(--inputBorderColor));
|
||||
}
|
||||
|
||||
&[disabled] {
|
||||
pointer-events: none;
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ $small-view: 800px;
|
||||
|
||||
/* See Peertube sub-menu-h1 mixin */
|
||||
font-size: 1.3rem;
|
||||
border-bottom: 2px solid var(--greyBackgroundColor);
|
||||
border-bottom: 2px solid var(--bg-secondary-400, var(--greyBackgroundColor));
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ $small-view: 800px;
|
||||
&.peertube-plugin-livechat-configuration-channel {
|
||||
.peertube-plugin-livechat-configuration-channel-info {
|
||||
/* stylelint-disable-next-line value-keyword-case */
|
||||
color: var(--mainForegroundColor);
|
||||
color: var(--fg, var(--mainForegroundColor));
|
||||
|
||||
span:first-child {
|
||||
/* See Peertube .video-channel-display-name */
|
||||
@ -48,7 +48,7 @@ $small-view: 800px;
|
||||
h2 {
|
||||
// See Peertube settings-big-title mixin
|
||||
text-transform: uppercase;
|
||||
color: var(--mainColor);
|
||||
color: var(--primary, var(--mainColor));
|
||||
font-weight: variables.$font-bold;
|
||||
font-size: 1rem;
|
||||
margin-bottom: 10px;
|
||||
@ -82,35 +82,35 @@ $small-view: 800px;
|
||||
&:active,
|
||||
&:focus {
|
||||
color: #fff;
|
||||
background-color: var(--mainColor);
|
||||
background-color: var(--primary, var(--mainColor));
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background-color: var(--mainHoverColor);
|
||||
background-color: var(--fg-400, var(--mainHoverColor));
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
color: #fff;
|
||||
background-color: var(--inputBorderColor);
|
||||
background-color: var(--input-border-color, var(--inputBorderColor));
|
||||
}
|
||||
}
|
||||
|
||||
input[type="reset"],
|
||||
button[type="reset"] {
|
||||
// Peertube grey-button mixin
|
||||
background-color: var(--greyBackgroundColor);
|
||||
color: var(--greyForegroundColor);
|
||||
background-color: var(--bg-secondary-400, var(--greyBackgroundColor));
|
||||
color: var(--fg-400, var(--greyForegroundColor));
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus,
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
color: var(--greyForegroundColor);
|
||||
background-color: var(--greySecondaryBackgroundColor);
|
||||
color: var(--fg-400, var(--greyForegroundColor));
|
||||
background-color: var(--bg-secondary-300, var(--greySecondaryBackgroundColor));
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
@ -178,7 +178,7 @@ $small-view: 800px;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
/* stylelint-disable-next-line value-keyword-case */
|
||||
color: var(--mainForegroundColor);
|
||||
color: var(--fg, var(--mainForegroundColor));
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
|
@ -56,7 +56,7 @@ livechat-share-chat {
|
||||
&.livechat-shareurl-suboptions-disabled {
|
||||
label {
|
||||
/* stylelint-disable-next-line custom-property-pattern */
|
||||
color: var(--greyForegroundColor);
|
||||
color: var(--fg-400, var(--greyForegroundColor));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,9 +15,9 @@ livechat-spinner,
|
||||
height: 48px;
|
||||
margin: 20px;
|
||||
/* stylelint-disable-next-line custom-property-pattern */
|
||||
border: 5px solid var(--greyBackgroundColor) !important; // !important is required for it to work in ConverseJS
|
||||
border: 5px solid var(--bg-secondary-400, var(--greyBackgroundColor)) !important; // !important is required for it to work in ConverseJS
|
||||
/* stylelint-disable-next-line custom-property-pattern */
|
||||
border-bottom-color: var(--mainColor) !important; // !important is required for it to work in ConverseJS
|
||||
border-bottom-color: var(--primary, var(--mainColor)) !important; // !important is required for it to work in ConverseJS
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
|
@ -51,14 +51,14 @@ livechat-tags-input {
|
||||
transition-duration: 0.3s;
|
||||
|
||||
@supports (scrollbar-width: auto) {
|
||||
scrollbar-color: var(--greyForegroundColor) transparent;
|
||||
scrollbar-color: var(--fg-400, var(--greyForegroundColor)) transparent;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
}
|
||||
|
||||
.livechat-tags-container,
|
||||
.livechat-tags-searched {
|
||||
border-bottom: 1px dashed var(--greyForegroundColor);
|
||||
border-bottom: 1px dashed var(--fg-400, var(--greyForegroundColor));
|
||||
|
||||
&.livechat-empty {
|
||||
height: 0;
|
||||
@ -104,7 +104,7 @@ livechat-tags-input {
|
||||
text-align: center;
|
||||
font-size: 10px;
|
||||
margin-left: var(--tag-padding-horizontal);
|
||||
color: var(--mainColor);
|
||||
color: var(--primary, var(--mainColor));
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
cursor: pointer;
|
||||
@ -118,19 +118,19 @@ livechat-tags-input {
|
||||
&:active,
|
||||
&:focus {
|
||||
color: #fff;
|
||||
background-color: var(--mainColor);
|
||||
background-color: var(--primary, var(--mainColor));
|
||||
|
||||
.livechat-tag-close {
|
||||
color: var(--mainColor);
|
||||
color: var(--primary, var(--mainColor));
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background-color: var(--mainHoverColor);
|
||||
background-color: var(--fg-400, var(--mainHoverColor));
|
||||
|
||||
.livechat-tag-close {
|
||||
color: var(--mainHoverColor);
|
||||
color: var(--fg-400, var(--mainHoverColor));
|
||||
}
|
||||
}
|
||||
|
||||
@ -138,10 +138,10 @@ livechat-tags-input {
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
color: #fff;
|
||||
background-color: var(--inputBorderColor);
|
||||
background-color: var(--input-border-color, var(--inputBorderColor));
|
||||
|
||||
.livechat-tag-close {
|
||||
color: var(--inputBorderColor);
|
||||
color: var(--input-border-color, var(--inputBorderColor));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ table.peertube-plugin-livechat-prosody-list-rooms tr:nth-child(even) {
|
||||
|
||||
table.peertube-plugin-livechat-prosody-list-rooms th {
|
||||
/* stylelint-disable-next-line custom-property-pattern */
|
||||
background-color: var(--mainHoverColor);
|
||||
background-color: var(--fg-400, var(--mainHoverColor));
|
||||
border: 1px solid black;
|
||||
/* stylelint-disable-next-line custom-property-pattern */
|
||||
color: var(--mainBackgroundColor);
|
||||
|
@ -54,7 +54,7 @@ $bs-green: #39cc0b;
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
color: #fff;
|
||||
background-color: var(--inputBorderColor);
|
||||
background-color: var(--input-border-color, var(--inputBorderColor));
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ $bs-green: #39cc0b;
|
||||
&:active,
|
||||
&:focus {
|
||||
color: #fff;
|
||||
background-color: var(--mainColor);
|
||||
background-color: var(--primary, var(--mainColor));
|
||||
}
|
||||
|
||||
&:focus,
|
||||
@ -77,13 +77,13 @@ $bs-green: #39cc0b;
|
||||
|
||||
&:hover {
|
||||
color: #fff;
|
||||
background-color: var(--mainHoverColor);
|
||||
background-color: var(--fg-400, var(--mainHoverColor));
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
color: #fff;
|
||||
background-color: var(--inputBorderColor);
|
||||
background-color: var(--input-border-color, var(--inputBorderColor));
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
text-align: center;
|
||||
|
||||
tr {
|
||||
border: 1px var(--greyBackgroundColor) solid;
|
||||
border: 1px var(--bg-secondary-400, var(--greyBackgroundColor)) solid;
|
||||
}
|
||||
|
||||
td,
|
||||
@ -34,6 +34,6 @@
|
||||
}
|
||||
|
||||
tbody tr:nth-child(odd) {
|
||||
background-color: var(--greySecondaryBackgroundColor);
|
||||
background-color: var(--bg-secondary-300, var(--greySecondaryBackgroundColor));
|
||||
}
|
||||
}
|
||||
|
@ -143,7 +143,7 @@ function register (clientOptions: RegisterClientOptions): void {
|
||||
lastActivityEl.textContent = date.toLocaleDateString() + ' ' + date.toLocaleTimeString()
|
||||
}
|
||||
const promoteButton = document.createElement('a')
|
||||
promoteButton.classList.add('orange-button', 'peertube-button-link')
|
||||
promoteButton.classList.add('primary-button', 'orange-button', 'peertube-button-link')
|
||||
promoteButton.style.margin = '5px'
|
||||
promoteButton.onclick = async () => {
|
||||
await fetch(
|
||||
|
@ -103,7 +103,7 @@ export class AdminFirewallElement extends LivechatElement {
|
||||
|
||||
public readonly getInputValidationClass = (propertyName: string): Record<string, boolean> => {
|
||||
const validationErrorTypes: ValidationErrorType[] | undefined =
|
||||
this.validationError?.properties[`${propertyName}`]
|
||||
this.validationError?.properties[propertyName]
|
||||
return validationErrorTypes ? (validationErrorTypes.length ? { 'is-invalid': true } : { 'is-valid': true }) : {}
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ export class AdminFirewallElement extends LivechatElement {
|
||||
propertyName: string): TemplateResult | typeof nothing => {
|
||||
const errorMessages: TemplateResult[] = []
|
||||
const validationErrorTypes: ValidationErrorType[] | undefined =
|
||||
this.validationError?.properties[`${propertyName}`] ?? undefined
|
||||
this.validationError?.properties[propertyName] ?? undefined
|
||||
|
||||
// FIXME: this code is duplicated in dymamic table form
|
||||
if (validationErrorTypes && validationErrorTypes.length !== 0) {
|
||||
|
@ -115,7 +115,7 @@ export class ChannelConfigurationElement extends LivechatElement {
|
||||
|
||||
public readonly getInputValidationClass = (propertyName: string): Record<string, boolean> => {
|
||||
const validationErrorTypes: ValidationErrorType[] | undefined =
|
||||
this.validationError?.properties[`${propertyName}`]
|
||||
this.validationError?.properties[propertyName]
|
||||
return validationErrorTypes ? (validationErrorTypes.length ? { 'is-invalid': true } : { 'is-valid': true }) : {}
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ export class ChannelConfigurationElement extends LivechatElement {
|
||||
propertyName: string): TemplateResult | typeof nothing => {
|
||||
const errorMessages: TemplateResult[] = []
|
||||
const validationErrorTypes: ValidationErrorType[] | undefined =
|
||||
this.validationError?.properties[`${propertyName}`] ?? undefined
|
||||
this.validationError?.properties[propertyName] ?? undefined
|
||||
|
||||
// FIXME: this code is duplicated in dymamic table form
|
||||
if (validationErrorTypes && validationErrorTypes.length !== 0) {
|
||||
|
@ -66,15 +66,16 @@ async function registerConfiguration (clientOptions: RegisterClientOptions): Pro
|
||||
for (const link of links) {
|
||||
if (typeof link !== 'object') { continue }
|
||||
if (!('key' in link)) { continue }
|
||||
if (link.key !== 'in-my-library') { continue }
|
||||
myLibraryLinks = link
|
||||
break
|
||||
if (link.key === 'in-my-library' || link.key === 'my-video-space') {
|
||||
myLibraryLinks = link
|
||||
break
|
||||
}
|
||||
}
|
||||
if (!myLibraryLinks) { return links }
|
||||
if (!Array.isArray(myLibraryLinks.links)) { return links }
|
||||
|
||||
const label = await peertubeHelpers.translate(LOC_MENU_CONFIGURATION_LABEL)
|
||||
myLibraryLinks.links.push({
|
||||
myLibraryLinks.links.unshift({
|
||||
label,
|
||||
shortLabel: label,
|
||||
path: '/p/livechat/configuration',
|
||||
|
@ -38,7 +38,7 @@ export class HelpButtonElement extends LivechatElement {
|
||||
href="${this.url.href}"
|
||||
target=_blank
|
||||
title="${this.buttonTitle}"
|
||||
class="orange-button peertube-button-link"
|
||||
class="primary-button orange-button peertube-button-link"
|
||||
>${unsafeHTML(helpButtonSVG())}</a>`
|
||||
})
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ type displayButtonOptions = displayButtonOptionsCallback | displayButtonOptionsH
|
||||
function displayButton (dbo: displayButtonOptions): void {
|
||||
const button = document.createElement('a')
|
||||
button.classList.add(
|
||||
'orange-button', 'peertube-button-link',
|
||||
'primary-button', 'orange-button', 'peertube-button-link',
|
||||
'peertube-plugin-livechat-button',
|
||||
'peertube-plugin-livechat-button-' + dbo.name
|
||||
)
|
||||
|
@ -24,18 +24,41 @@ function computeAutoColors (): AutoColors | null {
|
||||
const buttonStyles = window.getComputedStyle(button)
|
||||
|
||||
const autocolors: AutoColors = {
|
||||
mainForeground: styles.getPropertyValue('--mainForegroundColor').trim(),
|
||||
mainBackground: styles.getPropertyValue('--mainBackgroundColor').trim(),
|
||||
greyForeground: styles.getPropertyValue('--greyForegroundColor').trim(),
|
||||
greyBackground: styles.getPropertyValue('--greyBackgroundColor').trim(),
|
||||
menuForeground: styles.getPropertyValue('--menuForegroundColor').trim(),
|
||||
menuBackground: styles.getPropertyValue('--menuBackgroundColor').trim(),
|
||||
inputForeground: styles.getPropertyValue('--inputForegroundColor').trim(),
|
||||
inputBackground: styles.getPropertyValue('--inputBackgroundColor').trim(),
|
||||
buttonForeground: buttonStyles.color.trim(),
|
||||
buttonBackground: styles.getPropertyValue('--mainColor').trim(),
|
||||
link: styles.getPropertyValue('--mainForegroundColor').trim(),
|
||||
linkHover: styles.getPropertyValue('--mainForegroundColor').trim()
|
||||
mainForeground: styles.getPropertyValue('--fg').trim() ||
|
||||
styles.getPropertyValue('--mainForegroundColor').trim(),
|
||||
|
||||
mainBackground: styles.getPropertyValue('--bg').trim() ||
|
||||
styles.getPropertyValue('--mainBackgroundColor').trim(),
|
||||
|
||||
greyForeground: styles.getPropertyValue('--fg-300').trim() ||
|
||||
styles.getPropertyValue('--greyForegroundColor').trim(),
|
||||
|
||||
greyBackground: styles.getPropertyValue('--bg-secondary-300').trim() ||
|
||||
styles.getPropertyValue('--greyBackgroundColor').trim(),
|
||||
|
||||
menuForeground: styles.getPropertyValue('--fg').trim() ||
|
||||
styles.getPropertyValue('--menuForegroundColor').trim(),
|
||||
|
||||
menuBackground: styles.getPropertyValue('--bg-secondary-400').trim() ||
|
||||
styles.getPropertyValue('--menuBackgroundColor').trim(),
|
||||
|
||||
inputForeground: styles.getPropertyValue('--input-fg').trim() ||
|
||||
styles.getPropertyValue('--inputForegroundColor').trim(),
|
||||
|
||||
inputBackground: styles.getPropertyValue('--input-bg').trim() ||
|
||||
styles.getPropertyValue('--inputBackgroundColor').trim(),
|
||||
|
||||
buttonForeground: styles.getPropertyValue('--on-primary').trim() ||
|
||||
buttonStyles.color.trim(),
|
||||
|
||||
buttonBackground: styles.getPropertyValue('--primary').trim() ||
|
||||
styles.getPropertyValue('--mainColor').trim(),
|
||||
|
||||
link: styles.getPropertyValue('--fg').trim() ||
|
||||
styles.getPropertyValue('--mainForegroundColor').trim(),
|
||||
|
||||
linkHover: styles.getPropertyValue('--fg-400').trim() ||
|
||||
styles.getPropertyValue('--mainForegroundColor').trim()
|
||||
}
|
||||
const autoColorsTest = areAutoColorsValid(autocolors)
|
||||
if (autoColorsTest !== true) {
|
||||
|
@ -20,6 +20,8 @@ CONVERSE_REPO="https://github.com/conversejs/converse.js.git"
|
||||
# You can eventually set CONVERSE_COMMIT to a specific commit ID, if you want to apply some patches.
|
||||
# 2024-09-17: using Converse upstream (v11 WIP).
|
||||
CONVERSE_COMMIT="07dc6f4f5da5890b02a46a8a2f2d0498649786bc"
|
||||
# 2024-12-03: using Converse upstream (v11 WIP).
|
||||
CONVERSE_COMMIT="8f32df723e3aa392db02326dc6a3279c9497b6fb"
|
||||
|
||||
# It is possible to use another repository, if we want some customization that are not upstream (yet):
|
||||
# CONVERSE_VERSION="livechat"
|
||||
|
@ -22,7 +22,7 @@ body.livechat-iframe {
|
||||
}
|
||||
|
||||
#conversejs .livechat-mini-muc-bar-buttons {
|
||||
a.orange-button {
|
||||
a.primary-button {
|
||||
// force these colors...
|
||||
color: var(--peertube-button-foreground);
|
||||
background-color: var(--peertube-button-background);
|
||||
|
@ -71,6 +71,14 @@ export default tseslint.config(
|
||||
'@typescript-eslint/class-methods-use-this': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/no-magic-numbers': 'off',
|
||||
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off', // FIXME: comes with eslint-config-love 84 update, and should be used.
|
||||
'@typescript-eslint/no-unsafe-return': 'off', // FIXME: comes with eslint-config-love 84 update, and should be used.
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off', // FIXME: comes with eslint-config-love 84 update, and should be used.
|
||||
'@typescript-eslint/no-unsafe-call': 'off', // FIXME: comes with eslint-config-love 84 update, and should be used.
|
||||
|
||||
'@typescript-eslint/no-unnecessary-condition': 'off', // FIXME: comes with eslint-config-love 84 update, but seems buggy (false positive).
|
||||
|
||||
'max-len': [
|
||||
'error',
|
||||
{
|
||||
|
548
languages/cs.yml
548
languages/cs.yml
@ -0,0 +1,548 @@
|
||||
open_chat_new_window: Otevřít chat v novém okně
|
||||
open_chat: Otevřít chat
|
||||
close_chat: Zavřít chat
|
||||
use_current_theme_color: Použít aktuální barvy motivu
|
||||
not_found: Nenalezeno
|
||||
video: Video
|
||||
web: Web
|
||||
important_note_title: <h3>Důležité poznámky</h3>
|
||||
chat: Chat
|
||||
last_activity: Poslední aktivita
|
||||
use_chat: Použití chatu
|
||||
use_chat_help: Pokud je to povoleno, vedle videa se zobrazí chat.
|
||||
share_chat_link: Sdílet odkaz na chat
|
||||
read_only: Pouze pro čtení
|
||||
link_copied: Odkaz zkopírován
|
||||
error: Chyba
|
||||
chat_terms_label: Podmínky a pravidla
|
||||
show_scrollbarr: Zobrazit posuvník
|
||||
transparent_background: Průhledné pozadí (pro integraci streamu, například s OBS)
|
||||
copy: Kopírovat
|
||||
copied: Zkopírováno
|
||||
open: Otevřít
|
||||
generate_iframe: Vytvoření iframe pro vložení chatu do webové stránky
|
||||
chat_for_live_stream: 'Chat pro živý stream:'
|
||||
room_name: Název místnosti
|
||||
room_description: Popis místnosti
|
||||
connect_using_xmpp: Připojení pomocí XMPP
|
||||
connect_using_xmpp_help: K místnosti se můžete připojit pomocí externího účtu XMPP
|
||||
a svého oblíbeného klienta XMPP.
|
||||
important_note_text: "Dokumentaci pluginu naleznete zde:\n<a href=\"https://livingston.frama.io/peertube-plugin-livechat/\"\
|
||||
\ target=\"_blank\">\n Dokumentace k zásuvnému modulu Peertube Livechat\n</a>.\n"
|
||||
diagnostic: "Než požádáte o pomoc, použijte prosím diagnostický nástroj:\n<a class=\"\
|
||||
peertube-plugin-livechat-launch-diagnostic\">Spustit diagnostiku</a>\n(pokud toto
|
||||
tlačítko neotevře nové okno, zkuste stránku obnovit).\n"
|
||||
chat_title: <h3>Chat</h3>
|
||||
online_help: Online nápověda
|
||||
tips_for_streamers: "Tipy pro streamery: Chcete-li například vložit chat do svého
|
||||
videostreamu pomocí OBS, \nvygenerujte odkaz pouze pro čtení a použijte jej jako
|
||||
zdroj v prohlížeči.\n"
|
||||
channel: Kanál
|
||||
external_auth_custom_oidc_button_label_label: Popisek pro tlačítko připojení
|
||||
external_auth_custom_oidc_label: Použití poskytovatele služby OpenID Connect
|
||||
external_auth_custom_oidc_discovery_url_label: Discovery URL
|
||||
auto_display_label: Automatické otevření chatu
|
||||
converse_theme_option_peertube: Motiv Peertube
|
||||
converse_theme_option_cyberpunk: Motiv ConverseJS Cyberpunk
|
||||
external_auth_oidc_client_id_label: Client ID
|
||||
external_auth_oidc_client_secret_label: Client secret
|
||||
external_auth_google_oidc_label: Použít Google
|
||||
external_auth_oidc_redirect_uris_info_description: "<strong>URI zpětného volání/přesměrování:</strong>\n
|
||||
Pokud chcete nakonfigurovat URI autorizovaného přesměrování na externí aplikaci,
|
||||
přidejte tuto adresu URL:\n"
|
||||
all_lives_description: Pokud je zaškrtnuto, bude chat povolen pro všechny živé přenosy.
|
||||
per_live_video_description: Pokud je zaškrtnuto, budou mít všechna živá videa ve svých
|
||||
vlastnostech zaškrtávací políčko pro povolení webového chatu.
|
||||
all_non_lives_description: Pokud je zaškrtnuto, bude chat povolen pro všechna videa,
|
||||
která nejsou živá.
|
||||
avatar_set_option_legacy: Starší avatary Sepia (ty, které byly součástí předchozích
|
||||
verzí zásuvného modulu)
|
||||
chat_behaviour_description: <h3>Chování na chatu</h3>
|
||||
auto_display_description: Při sledování videa se automaticky otevře okno chatu.
|
||||
share_url_option_owner: Zobrazit majiteli videa
|
||||
share_url_option_everyone: Zobrazit pro každého
|
||||
all_lives_label: Aktivace chatu pro všechny živé přenosy
|
||||
no_anonymous_description: "Pokud je zaškrtnuto, anonymní uživatelé Peertube chat neuvidí.\n
|
||||
Tato funkce je stále experimentální.\nPokud jste ji povolili, důrazně doporučujeme
|
||||
zaškrtnout také možnost \"Nezveřejňovat informace o chatu\".\nV opačném případě
|
||||
by se některé nástroje třetích stran mohly pokusit chat otevřít a chovat se nepředvídatelně.\n"
|
||||
theming_advanced_description: <h3>Témata</h3>
|
||||
converse_theme_option_default: Výchozí motiv ConverseJS
|
||||
avatar_set_option_none: Žádné
|
||||
converse_theme_label: Motiv ConverseJS
|
||||
converse_theme_description: Vyberte si motiv converseJS, který chcete použít.
|
||||
videos_list_label: Aktivovat chat pro tato videa
|
||||
avatar_set_option_fenec: Fenek (maskot Mobilizon)
|
||||
list_rooms_description: "<a class=\"peertube-plugin-livechat-prosody-list-rooms-btn\"\
|
||||
>Seznam místností</a>\n"
|
||||
room_type_label: Typ místnosti
|
||||
list_rooms_label: Seznam stávajících místností
|
||||
federation_dont_publish_remotely_description: "Zaškrtnutím tohoto nastavení vaše instance
|
||||
nebude publikovat informace o chatu na fediverse.\nVzdálené instance Peertube nebudou
|
||||
vědět, že se jedná o chatovací místnosti spojené s vašimi videi.<br>\n<b>Upozornění</b>:
|
||||
pokud jste již chatovali, je možné, že informace již byly zveřejněny.\nNež bude
|
||||
zveřejnění informací zrušeno, budete muset počkat na další aktualizaci videa.\n
|
||||
Pokud toto nastavení zakážete, budete muset počkat, až budou videa aktualizována,
|
||||
než budou informace\nznovu zveřejněno. K této aktualizaci dojde mimo jiné, když
|
||||
se živý přenos obnoví nebo zastaví.<br>\n<b>Upozornění</b>: toto nastavení ovlivňuje
|
||||
pouze zveřejňování informací prostřednictvím protokolu ActivityPub.\nNezabrání vzdálené
|
||||
aplikaci, aby jinak zjistila přítomnost chatů a pokusila se k ní připojit.\n"
|
||||
external_auth_custom_oidc_title: <h4>Připojení OpenID</h4>
|
||||
avatar_set_option_sepia: Sépie (maskot Peertube)
|
||||
avatar_set_option_abstract: Abstrakt
|
||||
external_auth_description: "<h3>Externí ověřování</h3>\nPro uživatele, kteří nemají
|
||||
účet na Peertube, můžete povolit různé režimy ověřování na základě poskytovatelů
|
||||
vzdáleného ověřování.\n"
|
||||
external_auth_custom_oidc_button_label_description: Tento popisek se zobrazí uživatelům
|
||||
jako popisek tlačítka pro ověření u tohoto poskytovatele OIDC.
|
||||
share_url_option_nobody: Zobrazit pro nikoho
|
||||
share_url_option_owner_moderators: Zobrazit pro majitele videa a moderátory instance
|
||||
per_live_video_label: Uživatelé si mohou aktivovat chat pro své živé přenosy
|
||||
federation_no_remote_chat_label: Nezobrazovat vzdálené chaty
|
||||
federation_no_remote_chat_description: "Pokud toto nastavení zaškrtnete, vaše instance
|
||||
nebude nikdy zobrazovat chaty ze vzdálených videí.\n"
|
||||
external_auth_facebook_oidc_label: Použít Facebook
|
||||
open_blank_label: Zobrazit tlačítko "otevřít v novém okně"
|
||||
open_blank_description: K dispozici bude tlačítko pro otevření webového chatu v novém
|
||||
okně.
|
||||
per_live_video_warning_description: "<span class=\"peertube-plugin-livechat-warning\"\
|
||||
>\n Povolili jste nastavení «Uživatelé mohou aktivovat chat pro svůj živé přenosy».\n
|
||||
S nastavením «Aktivovat chat pro všechny živé přenosy» je redundantní.\n</span>\n"
|
||||
all_non_lives_label: Aktivace chatu pro všechny neživé přenosy
|
||||
videos_list_description: "Videa UUID, pro která chceme webový chat.\nMohou to být
|
||||
neživá videa. Jeden na řádek. <br />\nMůžete přidávat komentáře: vše za znakem #
|
||||
bude odstraněno a prázdné řádky budou ignorovány.<br />\nNepřidávejte soukromá videa,
|
||||
UUID budou odeslána do frontendu.\n"
|
||||
avatar_set_label: Sada Avatarů
|
||||
avatar_set_description: "Můžete si vybrat z několika různých sad výchozích avatarů,
|
||||
které budou použity pro uživatele chatu.\nPodívejte se prosím na dokumentaci:\n
|
||||
<a href=\"https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/settings/\"\
|
||||
\ target=\"_blank\">Nastavení</a>.\n"
|
||||
external_auth_facebook_oidc_description: "Povolením této funkce se přidá tlačítko
|
||||
\"přihlásit se pomocí Facebooku\".\nMusíte nakonfigurovat aplikaci Facebook OAuth.\n"
|
||||
share_url_label: Zobrazení tlačítka "sdílet odkaz na chat"
|
||||
share_url_description: K dispozici bude tlačítko pro sdílení url adresy chatu (lze
|
||||
použít například pro integraci OBS).
|
||||
no_anonymous_label: Skrytí chatu pro anonymní uživatele
|
||||
auto_ban_anonymous_ip_label: Zakázat IP adresu anonymního uživatele, když je uživatel
|
||||
vykázán z chatovací místnosti
|
||||
auto_ban_anonymous_ip_description: "Povolením této možnosti bude při každém zákazu
|
||||
anonymního uživatele v chatovací místnosti jeho IP adresa rovněž zakázána na chatovacím
|
||||
serveru.\nUpozornění: Pokud je vaše instance otevřená pro registraci, může kterýkoli
|
||||
uživatel vytvořit místnost v pasti, pozvat uživatele, aby se k ní připojili, a automaticky
|
||||
zakázat všechny IP adresy anonymních uživatelů.\nSeznam zakázaných IP se neukládá,
|
||||
vymaže se při restartu serveru nebo při změně nastavení některého zásuvného modulu.\n
|
||||
Zakázané IP jsou zaznamenány v logovacích souborech serveru Prosody, takže správci
|
||||
serveru mohou případně použít některé externí nástroje (jako fail2ban) pro širší
|
||||
zakázání IP.\n"
|
||||
avatar_set_option_cat: Kočky
|
||||
avatar_set_option_bird: Ptáci
|
||||
chat_terms_description: "Tyto podmínky se zobrazí všem uživatelům, když se připojí
|
||||
k chatovacím místnostem.\nStreameři mohou také nastavit podmínky pro své kanály,
|
||||
které se zobrazí hned po těchto globálních podmínkách.\n"
|
||||
external_auth_custom_oidc_description: "Můžete nakonfigurovat externího poskytovatele
|
||||
OpenID Connect, který by mohl být použit k přihlášení do chatu.\nPodívejte se prosím
|
||||
na dokumentaci:\n<a href=\"https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/settings/\"\
|
||||
\ target=\"_blank\">Nastavení</a>.\n"
|
||||
federation_dont_publish_remotely_label: Nezveřejňujte informace z chatu
|
||||
room_type_description: Zde si můžete vybrat, zda chcete mít pro každé video samostatnou
|
||||
místnost, nebo zda je chcete seskupit podle kanálů.
|
||||
room_type_option_video: Každé video má vlastní webchatovou místnost
|
||||
room_type_option_channel: Místnosti webového chatu jsou seskupeny podle kanálů
|
||||
federation_description: "<h3>Federace</h3>\nNásledující nastavení se týkají federace
|
||||
s jinými instancemi Peertube,\na dalšími fediverzními softwary.\n"
|
||||
external_auth_google_oidc_description: "Povolením této funkce se přidá tlačítko \"\
|
||||
Přihlásit se pomocí Google\".\nMusíte nakonfigurovat aplikaci Google OAuth.\n"
|
||||
prosody_muc_log_by_default_description: "Pokud je zaškrtnuto, obsah místnosti se ve
|
||||
výchozím nastavení uloží.\nKaždý uživatel, který se připojí k místnosti, uvidí,
|
||||
co bylo napsáno před jeho připojením.<br>\nVezměte prosím na vědomí, že je vždy
|
||||
možné obsah zapnout/vypnout.\narchivaci pro konkrétní místnost úpravou jejích vlastností.\n"
|
||||
disable_websocket_label: Zakázat Websocket
|
||||
prosody_port_label: Prosody port
|
||||
autocolors_label: Automatická detekce barev
|
||||
autocolors_description: "Pokus o automatickou detekci barev podle aktuálního motivu
|
||||
uživatele.<br>\nPokud je toto nastavení povoleno, \nzásuvný modul se pokusí automaticky
|
||||
detekovat barvy, které se použijí v tématu chatu.<br>\nPokud to pro některé téma
|
||||
Peertube nefunguje správně, můžete tuto možnost zakázat.\nChybu můžete nahlásit
|
||||
na oficiálním <a href=\"https://github.com/JohnXLivingston/peertube-plugin-livechat/issues\"\
|
||||
\ target=\"_blank\">\nsledovači problémů\n</a>. Nezapomeňte uvést, který motiv nefunguje.\n"
|
||||
disable_websocket_description: "S Peertube >= 5.0.0, tento plugin se snaží používat
|
||||
Websocket připojení pro chatování.\nPokud je prohlížeč nebo připojení uživatele
|
||||
nekompatibilní, prohlížeč automaticky přejde zpět na protokol BOSH.\n<br>\nVe výjimečných
|
||||
případech však může dojít k selhání. Například pokud máte před Peertube reverzní
|
||||
proxy server, který nepovoluje \nWebsocket připojení pro zásuvné moduly.\nV takovém
|
||||
případě můžete zaškrtnutím tohoto nastavení zakázat připojení Websocket.\n"
|
||||
prosody_muc_log_by_default_label: Obsah přihlašovacích místností ve výchozím nastavení
|
||||
prosody_muc_expiration_label: Vypršení platnosti protokolů místností
|
||||
system_prosody_label: Použití systému Prosody
|
||||
help_builtin_prosody_description: "Tento zásuvný modul používá k obsluze chatovacích
|
||||
místností server XMPP Prosody.<br>\nTento zásuvný modul je dodáván s obrazem aplikace
|
||||
Prosody, který se používá ke spuštění služby.\n"
|
||||
prosody_peertube_uri_label: URL Peertube pro volání API
|
||||
chat_style_description: "Další styly, které mají být přidány do atributu stylu iframe.
|
||||
<br>\nPříklad: height:400px;\n"
|
||||
system_prosody_description: "Upozornění: toto nastavení nezkoušejte, pokud si nejste
|
||||
jisti, co děláte.<br>\nZaškrtnutím tohoto nastavení bude váš Peertube používat server
|
||||
Prosody, který je dodáván s vaším systémem,\n a ne vestavěný AppImage.<br>\nToto
|
||||
nastavení použijte pouze v případě, že se setkáte s problémy s vestavěným serverem
|
||||
Prosody.\n"
|
||||
prosody_port_description: "Port, který bude používat server Prosody.<br>\nZměňte jej,
|
||||
pokud je tento port na vašem serveru již používán.<br>\nTento port můžete na svém
|
||||
firewallu zavřít, nebude k němu přístup z vnějšího světa.<br>\nPoznámka: toto se
|
||||
může v blízké budoucnosti změnit, protože se plánuje přidání funkce pro aktivaci
|
||||
připojení zvenčí.\n"
|
||||
prosody_advanced_description: <h3>Pokročilé nastavení serveru chatu</h3>
|
||||
help_builtin_prosody_label: Prosody server
|
||||
prosody_peertube_uri_description: "Pokud nevíte, co děláte, nechte prosím toto nastavení
|
||||
prázdné.<br>\nV některých vzácných případech nemůže Prosody volat rozhraní API Peertube
|
||||
z jeho veřejného URI.\nToto pole můžete použít k přizpůsobení URI Peertube pro moduly
|
||||
Prosody\n(například pomocí „http://localhost:9000“ nebo „http://127.0.0.1:9000“).\n"
|
||||
chat_style_label: Atribut stylu iframe webového chatu
|
||||
prosody_room_allow_s2s_label: Povolení připojení k místnosti pomocí externích účtů
|
||||
XMPP
|
||||
prosody_muc_expiration_description: "Zde můžete zvolit, jak dlouho bude obsah chatovací
|
||||
místnosti na serveru uchováván. Hodnota může být:\n<ul>\n<li><b>60</b>: obsah bude
|
||||
uložen po dobu 60 <b>sekund</b>. Hodnotu 60 můžete nahradit libovolnou celočíselnou
|
||||
hodnotou.</li>\n<li><b>1d</b>: obsah bude uložen po dobu 1 <b>dne</b>. Hodnotu 1
|
||||
můžete nahradit libovolnou celočíselnou hodnotou.</li>\n<li><b>1w</b>: obsah bude
|
||||
uložen na 1 <b>týden</b>. Hodnotu 1 můžete nahradit libovolnou celočíselnou hodnotou.</li>\n
|
||||
<li><b>1m</b>: obsah bude uložen na 1 <b>měsíc</b>. 1 můžete nahradit libovolnou
|
||||
celočíselnou hodnotou.</li>\n<li><b>1y</b>: obsah bude uložen po dobu 1 <b>roku</b>.
|
||||
1 můžete nahradit libovolnou celočíselnou hodnotou.</li>\n<li><b>nikdy</b>: obsah
|
||||
nikdy nevyprší a bude uchováván navždy.</li>\n</ul>\n"
|
||||
prosody_c2s_label: Povolení připojení klienta k serveru
|
||||
prosody_c2s_port_label: Port klienta Prosody na server
|
||||
prosody_c2s_interfaces_label: Síťová rozhraní mezi klientem a serverem
|
||||
prosody_s2s_port_label: Server Prosody na port serveru
|
||||
prosody_s2s_interfaces_label: Síťová rozhraní mezi servery
|
||||
prosody_c2s_description: "Povolení připojení klientů XMPP k vestavěnému serveru Prosody.<br>\n
|
||||
Pouze tato volba umožňuje připojení pouze klientům localhost.\n"
|
||||
prosody_s2s_interfaces_description: "Síťová rozhraní, na kterých se má naslouchat
|
||||
pro připojení serveru k serveru.<br>\nSeznam IP adres pro naslouchání, oddělených
|
||||
čárkami (mezery budou odstraněny).<br>\nMůžete použít „*“ pro naslouchání na všech
|
||||
rozhraních IPv4 a „::“ pro všechna rozhraní IPv6.<br>\nPříklady:\n<ul>\nPříklady:
|
||||
<li>*, ::</li>\n<li>*</li>\n<li>127.0.0.1, ::1</li>\n<li>172.18.0.42</li>\n</ul>\n"
|
||||
prosody_certificates_dir_description: "Pokud je toto pole prázdné, zásuvný modul bude
|
||||
generovat a používat certifikáty podepsané vlastním podpisem.<br>\nPokud chcete
|
||||
použít jiné certifikáty, stačí zde zadat složku, kde je \nProsody najde. Poznámka:
|
||||
uživatel „peertube“ musí mít k této složce přístup pro čtení.\n"
|
||||
prosody_c2s_port_description: "Port, který bude používat modul c2s integrovaného serveru
|
||||
Prosody.<br>\nKlienti XMPP budou pro připojení používat tento port.<br>\nZměňte
|
||||
jej, pokud je tento port na vašem serveru již používán.<br>\nTento port můžete prozatím
|
||||
nechat na svém firewallu zavřený, nebude k němu přístup z vnějšího světa.<br>\n
|
||||
Poznámka: to se může v blízké budoucnosti změnit, protože se plánuje přidání funkce
|
||||
pro aktivaci připojení zvenčí.\n"
|
||||
prosody_certificates_dir_label: Složka certifikátů
|
||||
prosody_room_allow_s2s_description: "Povolením této možnosti se bude možné připojit
|
||||
k místnostem pomocí externích účtů XMPP a klientů XMPP.<br>\n<span class=„peertube-plugin-livechat-warning“>\n
|
||||
<b>Upozornění</b>, povolení této možnosti může vyžadovat další konfiguraci serveru
|
||||
a DNS.\n</span>\nPodívejte se prosím do dokumentace:\n<a href=„https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/advanced/xmpp_clients/“
|
||||
target=„_blank“>.\nPovolení externího připojení k účtu XMPP.\n</a>\n"
|
||||
prosody_s2s_port_description: "Port, který bude použit pro připojení XMPP s2s (server
|
||||
to server).<br>\nMěli byste použít standardní port 5269.\nV opačném případě byste
|
||||
měli <a href=„https://prosody.im/doc/s2s“>\nnastavit konkrétní záznam DNS\n</a>.\n"
|
||||
prosody_components_list_label: Externí komponenty
|
||||
prosody_c2s_interfaces_description: "Síťová rozhraní, na kterých bude naslouchat připojení
|
||||
klienta k serveru.<br>\nToto nastavení je určeno pro pokročilé uživatele. Toto nastavení
|
||||
neměňte, pokud plně nerozumíte tomu, co znamená.<br>\nSeznam IP adres k poslechu,
|
||||
oddělené čárkou (mezery budou odstraněny).<br>\nMůžete použít «*» pro poslech na
|
||||
všech rozhraních IPv4 a «::» pro všechna IPv6.<br>\nPříklady:\n<ul>\n <li>*, ::</li>\n
|
||||
<li>*</li>\n <li>127.0.0.1, ::1</li>\n <li>127.0.0.1, ::1, 172.18.0.42</li>\n</ul>\n"
|
||||
prosody_components_label: Povolit vlastní externí součásti Prosody
|
||||
prosody_components_interfaces_description: "Síťová rozhraní pro naslouchání připojení
|
||||
externích komponent.<br>\nSeznam IP adres k poslechu, oddělené čárkou (mezery budou
|
||||
odstraněny).<br>\nMůžete použít «*» pro poslech na všech rozhraních IPv4 a «::»
|
||||
pro všechna IPv6.<br>\nPříklady:\n<ul>\n <li>*, ::</li>\n <li>*</li>\n <li>127.0.0.1,
|
||||
::1</li>\n <li>172.18.0.42</li>\n</ul>\n"
|
||||
prosody_components_interfaces_label: Síťová rozhraní externích komponent Prosody
|
||||
prosody_components_port_description: "Port, který budou komponenty XMPP používat pro
|
||||
připojení k serveru Prosody.<br>\nZměňte jej, pokud se tento port již na vašem serveru
|
||||
používá.<br>\nPokud nepovolíte přístup jiným rozhraním než localhost, můžete tento
|
||||
port ponechat na vašem firewallu uzavřený.\n"
|
||||
prosody_components_description: "Povolte použití externích komponent XMPP.<br>\nTato
|
||||
možnost sama o sobě umožňuje připojení pouze z localhost.\nMusíte nastavit naslouchací
|
||||
rozhraní a otevřít port na vašem firewallu, abyste jej zpřístupnili ze vzdálených
|
||||
serverů.<br>\nTuto funkci lze například použít k připojení některých robotů k chatovacím
|
||||
místnostem.\n"
|
||||
prosody_components_port_label: Port pro externí komponenty Prosody
|
||||
prosody_components_list_description: "Externí komponenty, které je třeba deklarovat:\n
|
||||
<ul>\n <li>Jedna na řádek.</li>\n <li>Použijte formát «název_komponenty:tajné_komponenty»
|
||||
(mezery budou oříznuty).</li>\n <li>Můžete přidávat komentáře: vše za znakem # bude
|
||||
odstraněno a prázdné řádky budou ignorovány.</li>\n <li>Název může obsahovat pouze
|
||||
latinské alfanumerické znaky a tečky.</li>\n <li>\n Pokud název obsahuje pouze alfanumerické
|
||||
znaky, bude doplněn o doménu XMPP.\n Například „most“ se změní na „most.vaše_doména.tld“.\n
|
||||
Můžete také zadat úplný název domény, ale musíte se ujistit, že jste správně nakonfigurovali
|
||||
DNS.\n </li>\n <li>V tajné přístupové frázi používejte pouze alfanumerické znaky
|
||||
(použijte alespoň 15 znaků).</li>\n</ul>\n"
|
||||
livechat_configuration_desc: Zde můžete nakonfigurovat některé pokročilé možnosti
|
||||
pro chatovací místnosti přidružené k živým přenosům.
|
||||
save: Uložit
|
||||
cancel: Zrušit
|
||||
disable_channel_configuration_label: Zakázat pokročilou konfiguraci kanálu a chatbota
|
||||
successfully_saved: Úspěšně uloženo
|
||||
menu_configuration_label: Chatovací místnosti
|
||||
configuration_description: "<h3>Pokročilá konfigurace kanálu</h3>\nNásledující nastavení
|
||||
se týkají pokročilých možností kanálu:\nuživatelé budou moci přidat některá přizpůsobení
|
||||
na svých kanálech,\naktivovat moderačního bota, ...\n"
|
||||
livechat_configuration_title: Konfigurace vašich chatovacích místností
|
||||
experimental_warning: "<b class=\"peertube-plugin-livechat-experimental\">Experimentální
|
||||
funkce:</b> tato funkce je stále experimentální.\n"
|
||||
livechat_configuration_please_select: Vyberte prosím níže jeden z vašich kanálů a
|
||||
nastavte jeho možnosti chatování.
|
||||
livechat_configuration_channel_retractation_reason_label: Důvod
|
||||
livechat_configuration_channel_retractation_reason_desc: Důvod zobrazení kromě smazaných
|
||||
zpráv
|
||||
livechat_configuration_applytomoderators_label: Také moderovat zprávy od moderátorů
|
||||
livechat_configuration_applytomoderators_desc: "Ve výchozím nastavení se tato funkce
|
||||
na zprávy moderátora nevztahuje.\nZaškrtnutím této možnosti budou zprávy od moderátorů
|
||||
rovněž odstraněny.\n"
|
||||
livechat_configuration_channel_forbidden_words_label_label: Štítek
|
||||
livechat_configuration_channel_forbidden_words_desc: "Můžete nastavit některá slova,
|
||||
která bude bot automaticky moderovat (zprávy obsahující tato slova budou okamžitě
|
||||
odstraněny).\nMůžete také přidat volitelný důvod, který se zobrazí na místě smazaných
|
||||
zpráv.\nNa stránce s dokumentací je uvedeno několik příkladů.\n"
|
||||
livechat_configuration_channel_forbidden_words_label_desc: Označení tohoto pravidla
|
||||
pro zakázaná slova
|
||||
livechat_configuration_channel_quote_label: Časovač
|
||||
livechat_configuration_channel_quote_desc2: "Jedna zpráva na řádek.\nPokud je zpráv
|
||||
více, vybere se jedna náhodně každých X minut.\n"
|
||||
livechat_configuration_channel_quote_delay_label: Odeslat každých X minut
|
||||
livechat_configuration_channel_quote_delay_desc: "Bot bude zprávu odesílat každých
|
||||
X minut.\n"
|
||||
livechat_configuration_channel_desc: Zde můžete nastavit některé možnosti pro tento
|
||||
kanál (zásady moderování, ...).
|
||||
livechat_configuration_channel_title: Možnosti kanálů
|
||||
livechat_configuration_channel_enable_bot_label: Povolení moderačního bota
|
||||
livechat_configuration_channel_bot_options_title: Možnosti moderačního bota
|
||||
livechat_configuration_channel_forbidden_words_label: Zakázaná slova nebo výrazy
|
||||
livechat_configuration_channel_forbidden_words_desc2: "Jedno slovo nebo výraz na řádek.
|
||||
Pokud na jeden řádek vložíte více slov, budou se porovnávat pouze zprávy obsahující
|
||||
celou sekvenci.\n"
|
||||
livechat_configuration_channel_forbidden_words_regexp_desc: Zaškrtnutím této možnosti
|
||||
můžete použít regulární výrazy.
|
||||
livechat_configuration_channel_forbidden_words_regexp_label: Považujte za regulární
|
||||
výrazy
|
||||
livechat_configuration_channel_quote_desc: "Můžete nakonfigurovat několik časovačů,
|
||||
které budou odesílat zprávy v pravidelných intervalech.\nTyto zprávy bude bot odesílat
|
||||
každých X minut.\nMůžete například nastavit, aby bot odesílal každých 5 minut nějaké
|
||||
informace o sponzorování.\n"
|
||||
livechat_configuration_channel_quote_label2: Zprávy
|
||||
livechat_configuration_channel_slow_mode_desc: "Výchozí hodnota pomalého režimu:\n
|
||||
<ul>\n<li>0: pomalý režim vypnut</li>\n<li>Jakékoli kladné celé číslo: uživatelé
|
||||
mohou odeslat zprávu každých X sekund (moderátoři nejsou omezeni)</li>\n</ul>\n"
|
||||
livechat_configuration_channel_forbidden_words_comments_desc: "Můžete sem přidat komentář
|
||||
k tomuto pravidlu, abyste si pamatovali, jak a proč jste ho vytvořili.\nTyto komentáře
|
||||
jsou čistě orientační a nemají žádný vliv na chování bota.\n"
|
||||
livechat_configuration_channel_slow_mode_label: Pomalý režim
|
||||
livechat_configuration_channel_forbidden_words_comments_label: Komentáře
|
||||
livechat_configuration_channel_command_message_desc: Zpráva k odeslání.
|
||||
livechat_configuration_channel_command_message_label: Zpráva
|
||||
livechat_configuration_channel_command_cmd_desc: "Příkaz bez počátečního \"!\". Například
|
||||
\"help\", \"sponzor\", ...\n"
|
||||
livechat_configuration_channel_for_more_info: "Další informace o konfiguraci této
|
||||
funkce naleznete v dokumentaci kliknutím na tlačítko nápovědy.\n"
|
||||
livechat_configuration_channel_command_cmd_label: Příkaz
|
||||
share_chat_dock_tips: "Můžete si vygenerovat odkaz, který otevře chat na celé stránce,
|
||||
přihlášený pomocí účtu Peertube.\nToho lze využít například k tomu, abyste měli
|
||||
v OBS webový dok, takže můžete chat číst a komunikovat s ním přímo z OBS.\nTento
|
||||
odkaz nikomu nesdělujte, protože by mu umožnil připojit se jako vy.\nNíže naleznete
|
||||
seznam již vygenerovaných autentizačních tokenů.\nMůžete si vytvořit nový nebo zrušit
|
||||
jakýkoli předchozí token.\nUpozorňujeme, že tyto tokeny nemají žádné datum platnosti.\n"
|
||||
tasks: Úkoly
|
||||
task_list_create: 'Vytvořit nový seznam úkolů:'
|
||||
task_create: Vytvořit nový úkol
|
||||
task_name: Název úkolu
|
||||
task_description: Popis
|
||||
slow_mode_info: Je povolen pomalý režim, uživatelé mohou odeslat zprávu každých %1$s
|
||||
sekund.
|
||||
task_delete_confirm: Opravdu chcete tento úkol odstranit?
|
||||
invalid_value_wrong_type: Hodnota je nesprávného typu.
|
||||
livechat_configuration_channel_banned_jids_label: Zakázaní uživatelé a vzory
|
||||
livechat_configuration_channel_bot_nickname: Přezdívka Bota
|
||||
invalid_value_missing: Tato hodnota je vyžadována.
|
||||
validation_error: Při ověřování došlo k chybě.
|
||||
too_many_entries: Příliš mnoho položek
|
||||
login_using_external_account: Přihlášení pomocí externího účtu
|
||||
login_remote_peertube_url: URL adresa vaší instance Peertube
|
||||
login_remote_peertube: 'Přihlaste se pomocí účtu na jiné instanci Peertube:'
|
||||
login_remote_peertube_video_not_found: Toto video není na této instanci Peertube k
|
||||
dispozici.
|
||||
login_remote_peertube_searching: Hledání videa na Peertube instanci...
|
||||
login_remote_peertube_url_invalid: Neplatná URL adresa Peertube.
|
||||
login_remote_peertube_no_livechat: Zásuvný modul livechat není v této instanci Peertube
|
||||
nainstalován.
|
||||
login_remote_peertube_video_not_found_try_anyway: V některých případech lze video
|
||||
načíst i po připojení ke vzdálené instanci.
|
||||
login_remote_peertube_video_not_found_try_anyway_button: Přesto zkuste otevřít video
|
||||
na instanci Peertube
|
||||
login_external_auth_alert_message: Ověření se nezdařilo
|
||||
task_list_create_error: Chyba při ukládání seznamu úkolů
|
||||
task_list_name: Název seznamu úkolů
|
||||
task_delete: Smazat úkol
|
||||
task_list_pick_title: Vyberte seznam úkolů
|
||||
token_label: Štítek
|
||||
token_password: Token s heslem
|
||||
token_date: Datum
|
||||
token_action_create: Vytvořit nový token
|
||||
token_action_revoke: Odvolání tokenu
|
||||
invalid_value_file_too_big: 'Velikost souboru je příliš velká (maximální velikost:
|
||||
%s).'
|
||||
task_list_pick_message: "Po výběru seznamu úkolů se vytvoří nový úkol.\nChcete-li
|
||||
úkol zobrazit, otevřete aplikaci úkolů pomocí horního menu.\nVíce informací naleznete
|
||||
v dokumentaci k zásuvnému modulu livechat.\n"
|
||||
invalid_value_wrong_format: Hodnota je v nesprávném formátu.
|
||||
livechat_emojis_file: Soubor
|
||||
action_import_emojis_info: Pokud jsou importovaná data v pořádku, nezapomeňte formulář
|
||||
uložit.
|
||||
token_action_revoke_confirm: Opravdu chcete tento token odvolat?
|
||||
auth_description: "<h3>Autentifikace</h3>\n"
|
||||
livechat_token_disabled_label: Zakázat tokeny livechatu
|
||||
invalid_value_not_in_range: Hodnota není v povoleném rozsahu.
|
||||
invalid_value_duplicate: Duplicitní hodnota
|
||||
task_list_delete: Smazat seznam úkolů
|
||||
task_list_delete_confirm: Opravdu chcete tento seznam úkolů smazat?
|
||||
task_list_pick_empty: Zatím neexistuje žádný seznam úkolů, nejprve si ho vytvořte
|
||||
promote: Staňte se moderátorem
|
||||
livechat_configuration_channel_emojis_title: Emotikony kanálu
|
||||
livechat_configuration_channel_emojis_desc: "Pro svůj kanál můžete nakonfigurovat
|
||||
vlastní emotikony.\nTyto emotikony budou k dispozici ve výběru emotikonů.\nUživatelé
|
||||
je mohou používat také pomocí jejich krátkého názvu (například napsáním \":shortname:\"\
|
||||
).\n"
|
||||
livechat_emojis_shortname: Zkrácený název
|
||||
livechat_emojis_shortname_desc: "V chatu můžete používat emotikony pomocí \":shortname:\"\
|
||||
.\nKrátký název může začínat a/nebo končit dvojtečkou (:) a může obsahovat pouze
|
||||
alfanumerické znaky, podtržítka a pomlčky.\nDůrazně doporučujeme začínat je dvojtečkou,
|
||||
aby uživatelé mohli používat automatické doplňování (zadáním \":\" a následným stisknutím
|
||||
klávesy TAB).\n"
|
||||
livechat_emojis_file_desc: "Soubor emotikonů.\n"
|
||||
action_import: Import
|
||||
action_add_entry: Přidat položku
|
||||
action_remove_entry: Odebrat tuto položku
|
||||
action_remove_entry_confirm: Opravdu chcete tuto položku odstranit?
|
||||
loading_error: Při načítání dat došlo k chybě.
|
||||
share_chat_embed: Vložit
|
||||
share_chat_peertube_tips: Tento odkaz otevře chat v rozhraní Peertube.
|
||||
share_chat_dock: Dock
|
||||
token_default_label: Token generovaný z webového rozhraní
|
||||
login_remote_peertube_video_open_failed: 'Váš prohlížeč zablokoval otevření ve vzdálené
|
||||
instanci, zkuste prosím otevřít tento odkaz ručně:'
|
||||
invalid_value_too_long: Hodnota je příliš dlouhá
|
||||
action_export: Export
|
||||
invalid_value: Neplatná hodnota.
|
||||
chatroom_not_accessible: Tato chatovací místnost neexistuje nebo k ní nemáte přístup.
|
||||
prosody_firewall_configuration_help: "Zde můžete konfigurovat modul Prosody <a href=\"\
|
||||
https://modules.prosody.im/mod_firewall\" target=\"_blank\">mod_firewall</a>.\n
|
||||
Níže můžete vytvořit více konfiguračních souborů a měnit jejich pořadí.\nNeváhejte
|
||||
se o své konfigurace podělit s komunitou (například přidáním příkladů do dokumentace
|
||||
zásuvného modulu).\n"
|
||||
livechat_configuration_channel_anonymize_moderation_desc: "Anonymizovat výchozí hodnotu
|
||||
moderačních akcí pro nové místnosti.\nPokud je tato možnost povolena, budou moderátorské
|
||||
akce anonymizovány, aby se zabránilo prozrazení toho, kdo banuje/vyhazuje/... obyvatele.\n"
|
||||
prosody_firewall_description: "Na serveru Prosody můžete povolit <a href=\"https://modules.prosody.im/mod_firewall\"\
|
||||
\ target=\"_blank\">mod_firewall</a>.\nDalší informace naleznete <a href=\"https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/mod_firewall/\"\
|
||||
\ target=\"_blank\">v dokumentaci</a>.\n"
|
||||
muted_anonymous_message: Zprávy mohou posílat pouze registrovaní uživatelé.
|
||||
livechat_configuration_channel_mute_anonymous_label: Ztlumit anonymní uživatele
|
||||
moderation_delay: Zpoždění moderování
|
||||
livechat_configuration_channel_moderation_delay_desc: "Výchozí hodnota zpoždění moderování:\n
|
||||
<ul>\n<li>0: zpoždění moderace vypnuto</li>\n<li>Ljakékoli kladné celé číslo: zprávy
|
||||
budou pro účastníky, kteří nejsou moderátory, zpožděny o X sekund, což moderátorům
|
||||
umožní smazat zprávu dříve, než si ji přečte kterýkoli uživatel.</li>\n</ul>\n"
|
||||
emoji_only_info: Pokud je povolen režim pouze emoji, můžete ve zprávách používat pouze
|
||||
emoji.
|
||||
emoji_only_mode_title: Režim pouze pro emoji
|
||||
emoji_only_mode_desc_1: "V chatovacích místnostech můžete povolit režim \"Pouze emoji\"\
|
||||
.\nKdyž je tento režim povolen, mohou účastníci posílat pouze emoji (standardní
|
||||
nebo vlastní emoji kanálu).\nModerátorů se toto omezení netýká.\n"
|
||||
livechat_configuration_channel_anonymize_moderation_label: Anonymizovat moderátorské
|
||||
akce
|
||||
moderator_notes: Moderátorské poznámky
|
||||
moderator_notes_create_error: Chyba při ukládání poznámky
|
||||
moderator_note_create: Vytvoření nové poznámky
|
||||
moderator_note_description: Popis
|
||||
moderator_note_delete: Smazat poznámku
|
||||
moderator_note_filters: Vyhledávací filtry
|
||||
moderator_note_original_nick: Přezdívka účastníka v době vytvoření poznámky
|
||||
livechat_configuration_channel_command_desc: "Bota můžete nakonfigurovat tak, aby
|
||||
reagoval na příkazy.\nPříkaz je zpráva začínající znakem \"!\", například \"!help\"\
|
||||
, která vyvolá příkaz \"help\".\n"
|
||||
new_poll: Vytvoření nové ankety
|
||||
poll: Anketa
|
||||
poll_title: Nová anketa
|
||||
poll_vote_instructions: 'Chcete-li hlasovat, klikněte na svou volbu nebo pošlete zprávu
|
||||
s vykřičníkem a číslem volby (příklad: !1).'
|
||||
poll_vote_instructions_xmpp: 'Pro hlasování pošlete zprávu s vykřičníkem, za kterou
|
||||
následuje číslo vaší volby. Příklad: !1'
|
||||
poll_choice_invalid: Tato volba není platná.
|
||||
poll_is_over: Tato anketa je nyní u konce.
|
||||
poll_anonymous_vote_ok: Váš hlas je zohledněn. Hlasy jsou anonymní, nebudou zobrazeny
|
||||
ostatním účastníkům.
|
||||
poll_vote_ok: Váš hlas byl vzat v úvahu, počítadla budou za chvíli aktualizována.
|
||||
livechat_configuration_channel_terms_desc: "Můžete nakonfigurovat zprávu \"podmínky\"\
|
||||
, která se zobrazí uživatelům, kteří se připojí k vašim chatovacím místnostem.\n"
|
||||
search_occupant_message: Vyhledat všechny zprávy
|
||||
message_search: Hledání zpráv
|
||||
message_search_original_nick: Přezdívka účastníka v době odeslání zprávy
|
||||
prosody_firewall_label: Povolit mod_firewall Prosody
|
||||
prosody_firewall_configure_button: "<a class=\"peertube-button-link orange-button\"\
|
||||
\ href=\"/p/livechat/admin/firewall\" target=\"_blank\">Konfigurace mod_firewall</a>\n"
|
||||
prosody_firewall_configuration: Konfigurace mod_firewall Prosody
|
||||
prosody_firewall_disabled_warning: "Varování: mod_firewall je zakázán v nastavení
|
||||
<a href=\"/admin/plugins/show/peertube-plugin-livechat\" target=\"_blank\">pluginu</a>,
|
||||
pokud chcete, aby byla tato konfigurace zohledněna, musíte ji povolit.\n"
|
||||
prosody_firewall_file_enabled: Povoleno
|
||||
prosody_firewall_name: Název
|
||||
prosody_firewall_name_desc: "Může obsahovat pouze: alfanumerické znaky, podtržítka
|
||||
a pomlčky.\nSkripty se načítají v abecedním pořadí.\n"
|
||||
prosody_firewall_content: Obsah souboru
|
||||
livechat_configuration_channel_command_label: Příkaz Bota
|
||||
livechat_token_disabled_description: "Uživatelé mohou generovat dlouhodobé tokeny
|
||||
pro připojení k chatu.\nTyto tokeny lze například použít k zahrnutí chatu do webových
|
||||
doků OBS.\nDalší informace najdete v <a href=\"https://livingston.frama.io/peertube-plugin-livechat/documentation/user/obs\"\
|
||||
\ target=\"_blank\">dokumentaci</a>.\nTuto funkci můžete zakázat zaškrtnutím tohoto
|
||||
nastavení.\n"
|
||||
livechat_configuration_channel_mute_anonymous_desc: "Výchozí hodnota pro nové chatovací
|
||||
místnosti.\nU stávajících chatovacích místností můžete tuto funkci změnit ve formuláři
|
||||
pro konfiguraci místnosti.\nKdyž je tato funkce povolena, anonymní uživatelé mohou
|
||||
chat pouze číst, nikoli však odesílat zprávy.\n"
|
||||
livechat_configuration_channel_terms_label: Podmínky chatu kanálu
|
||||
poll_instructions: Vyplněním a odesláním tohoto formuláře vytvoříte novou anketu.
|
||||
Tím se ukončí a nahradí všechny stávající ankety.
|
||||
poll_question: Otázka
|
||||
poll_duration: Doba trvání ankety (v minutách)
|
||||
moderator_note_delete_confirm: Opravdu chcete tuto poznámku smazat?
|
||||
moderator_note_create_for_participant: Vytvořit novou poznámku
|
||||
moderator_note_search_for_participant: Hledání poznámek
|
||||
emoji_only_mode_desc_2: "Tento režim může být užitečný například:\n<ul>\n<li> Abyste
|
||||
zabránili spamu nebo urážlivým zprávám, když zde nejste, abyste je moderovali.</li>\n
|
||||
<li>Když je příliš mnoho hovořících účastníků a vy už nemůžete správně moderovat.</li>\n\
|
||||
</ul>\n"
|
||||
emoji_only_mode_desc_3: "Chcete-li tento režim povolit nebo zakázat, můžete použít
|
||||
konfigurační formulář místnosti.\nPokud jej chcete povolit pro všechny své chatovací
|
||||
místnosti najednou, můžete použít tlačítko níže.\n"
|
||||
emoji_only_enable_all_rooms: Povolení režimu pouze emoji ve všech chatovacích místnostech
|
||||
kanálu
|
||||
livechat_configuration_channel_special_chars_label: Zákaz speciálních znaků
|
||||
livechat_configuration_channel_special_chars_desc: "Pokud tuto možnost povolíte, moderátor
|
||||
bude automaticky mazat zprávy obsahující více než X speciálních znaků.\nSpeciální
|
||||
znaky jsou ty, které nepatří do jedné z těchto kategorií: písmena, číslice, interpunkční
|
||||
znaménka, symboly měn, emotikony.\n"
|
||||
livechat_configuration_channel_special_chars_tolerance_label: Tolerance
|
||||
livechat_configuration_channel_special_chars_tolerance_desc: Počet speciálních znaků,
|
||||
které lze ve zprávě přijmout, aniž by došlo k jejímu vymazání.
|
||||
feature_comes_with: Tato funkce je součástí pluginu livechat verze X.X.X.
|
||||
livechat_configuration_channel_no_duplicate_label: Žádné duplicitní zprávy
|
||||
livechat_configuration_channel_no_duplicate_desc: "Povolením této možnosti bude moderovací
|
||||
robot automaticky upravovat duplicitní zprávy.\nTo znamená, že pokud uživatel odešle
|
||||
stejnou zprávu dvakrát během X sekund, druhá zpráva bude odstraněna.\n"
|
||||
livechat_configuration_channel_no_duplicate_delay_label: Časový interval
|
||||
livechat_configuration_channel_no_duplicate_delay_desc: "Interval v sekundách, během
|
||||
kterého uživatel nemůže znovu odeslat stejnou zprávu.\n"
|
||||
announcements_message_type: Typ zprávy
|
||||
announcements_message_type_standard: Standardní
|
||||
announcements_message_type_announcement: Oznámení
|
||||
announcements_message_type_highlight: Zvýrazněná
|
||||
announcements_message_type_warning: Upozornění
|
||||
poll_anonymous_results: Anonymní výsledky
|
||||
poll_choice_n: 'Možnost {{N}}:'
|
||||
poll_end: 'Anketa končí v:'
|
@ -31,3 +31,4 @@ important_note_title: <h3>Ohar garrantzitsuak</h3>
|
||||
important_note_text: "Osagarriaren dokumentazioa aurki dezakezu hemen:\n<a href=\"\
|
||||
https://livingston.frama.io/peertube-plugin-livechat/\" target=\"_blank\">\n Peertube
|
||||
Plugin Livechat-en dokumentazioa\n</a>.\n"
|
||||
chat: Txata
|
||||
|
@ -121,3 +121,9 @@ diagnostic: "Przed zwróceniem się o pomoc, skorzystaj z narzędzia diagnostycz
|
||||
federation_no_remote_chat_label: Nie wyświetlaj zdalnych czatów
|
||||
federation_description: "<h3>Federacja</h3>\nPoniższe ustawienia dotyczą federacji
|
||||
z innymi instancjami Peertube,\ni innym oprogramowaniem fediwersum.\n"
|
||||
room_type_option_video: Każdy film ma swój własny pokój rozmowy
|
||||
room_type_description: Możesz tutaj wybrać oddzielne pokoje dla każdego filmu lub
|
||||
pogrupować je według kanałów.
|
||||
room_type_option_channel: Pokoje rozmów internetowych są pogrupowane według kanałów
|
||||
auto_display_label: Automatycznie otwórz rozmowę
|
||||
auto_display_description: Podczas oglądania filmu okno rozmów otworzy się automatycznie.
|
||||
|
1871
package-lock.json
generated
1871
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "peertube-plugin-livechat",
|
||||
"description": "PeerTube plugin livechat: create chat rooms for your Peertube lives! Comes with many features: federation, moderation tools, chat bot, chat persistence, OBS integration, ...",
|
||||
"version": "11.0.1",
|
||||
"version": "12.0.0",
|
||||
"license": "AGPL-3.0",
|
||||
"author": {
|
||||
"name": "John Livingston",
|
||||
@ -38,42 +38,42 @@
|
||||
"xmppjs-chat-bot": "^0.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.10.0",
|
||||
"@eslint/js": "^9.16.0",
|
||||
"@lit-labs/motion": "^1.0.7",
|
||||
"@lit/context": "^1.1.2",
|
||||
"@lit/context": "^1.1.3",
|
||||
"@lit/task": "^1.0.1",
|
||||
"@peertube/feed": "^5.1.3",
|
||||
"@peertube/peertube-types": "^5.2.0",
|
||||
"@stylistic/eslint-plugin": "^2.8.0",
|
||||
"@stylistic/eslint-plugin": "^2.11.0",
|
||||
"@tsconfig/node16": "^16.1.3",
|
||||
"@types/async": "^3.2.24",
|
||||
"@types/escape-html": "^1.0.4",
|
||||
"@types/eslint__js": "^8.42.3",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/express": "^5.0.0",
|
||||
"@types/got": "^9.6.12",
|
||||
"@types/http-proxy": "^1.17.15",
|
||||
"@types/node": "^16.18.108",
|
||||
"@types/node": "^16.18.121",
|
||||
"@types/winston": "^2.4.4",
|
||||
"@types/xmpp__jid": "^1.3.5",
|
||||
"@typescript-eslint/parser": "^8.4.0",
|
||||
"commander": "^12.1.0",
|
||||
"esbuild": "^0.23.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-love": "^66.0.0",
|
||||
"esbuild": "^0.24.0",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-love": "^84.1.1",
|
||||
"eslint-plugin-lit": "^1.15.0",
|
||||
"globals": "^15.9.0",
|
||||
"lit": "^3.2.0",
|
||||
"globals": "^15.13.0",
|
||||
"lit": "^3.2.1",
|
||||
"lit-analyzer": "^2.0.3",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"sass": "^1.78.0",
|
||||
"sass": "^1.81.1",
|
||||
"sharp": "^0.33.5",
|
||||
"stylelint": "^16.9.0",
|
||||
"stylelint": "^16.11.0",
|
||||
"stylelint-config-recommended-scss": "^14.1.0",
|
||||
"stylelint-config-standard-scss": "^13.1.0",
|
||||
"svgo": "^3.3.2",
|
||||
"typescript": "^5.5.4",
|
||||
"typescript-eslint": "^8.5.0",
|
||||
"yaml": "^2.5.1"
|
||||
"typescript-eslint": "^8.17.0",
|
||||
"yaml": "^2.6.1"
|
||||
},
|
||||
"engine": {
|
||||
"peertube": ">=5.2.0"
|
||||
|
@ -757,6 +757,7 @@ class ExternalAuthOIDC {
|
||||
* @throws Error
|
||||
* @returns the singleton
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
||||
public static singleton (singletonType: ExternalAuthOIDCType | string): ExternalAuthOIDC {
|
||||
if (!singletons) {
|
||||
throw new Error('ExternalAuthOIDC singletons are not initialized yet')
|
||||
|
@ -307,6 +307,7 @@ async function _store (options: RegisterServerOptions, filePath: string, content
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
||||
async function _get (options: RegisterServerOptions, filePath: string): Promise<any | null> {
|
||||
const logger = options.peertubeHelpers.logger
|
||||
try {
|
||||
|
@ -13,7 +13,12 @@ async function initRouters (options: RegisterServerOptions): Promise<void> {
|
||||
const { getRouter } = options
|
||||
|
||||
const router = getRouter()
|
||||
router.get('/ping', (req: Request, res: Response, _next: NextFunction) => res.json({ message: 'pong' }))
|
||||
router.get(
|
||||
'/ping',
|
||||
(req: Request, res: Response, _next: NextFunction) => {
|
||||
res.json({ message: 'pong' })
|
||||
}
|
||||
)
|
||||
|
||||
router.use('/webchat', await initWebchatRouter(options))
|
||||
router.use('/settings', await initSettingsRouter(options))
|
||||
|
@ -142,6 +142,7 @@ async function initWebchatRouter (options: RegisterServerOptionsV5): Promise<Rou
|
||||
res.status(200)
|
||||
res.type('html')
|
||||
res.send(page)
|
||||
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
|
||||
} catch (err: LivechatError | any) {
|
||||
const code = err.livechatError?.code ?? 500
|
||||
const additionnalMessage: string = escapeHTML(err.livechatError?.message as string ?? '')
|
||||
|
@ -7,131 +7,154 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: peertube-plugin-livechat-documentation VERSION\n"
|
||||
"POT-Creation-Date: 2024-09-12 12:53+0200\n"
|
||||
"PO-Revision-Date: 2023-07-17 10:52+0000\n"
|
||||
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
||||
"Language-Team: Czech <https://weblate.framasoft.org/projects/peertube-livechat/peertube-plugin-livechat-documentation/cs/>\n"
|
||||
"PO-Revision-Date: 2024-11-26 23:02+0000\n"
|
||||
"Last-Translator: Jiří Podhorecký <j.podhorecky@gmail.com>\n"
|
||||
"Language-Team: Czech <https://weblate.framasoft.org/projects/"
|
||||
"peertube-livechat/peertube-plugin-livechat-documentation/cs/>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.18.2\n"
|
||||
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 5.8.4\n"
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: description
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
#, no-wrap
|
||||
msgid "Contact the author"
|
||||
msgstr ""
|
||||
msgstr "Kontakt na autora"
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: title
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
#, no-wrap
|
||||
msgid "Contact me"
|
||||
msgstr ""
|
||||
msgstr "Kontaktujte mě"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
msgid "If you have any question, or if you want to talk about this plugin, you can join this XMPP room with any Jabber client: [plugin-livechat-support@room.im.yiny.org](xmpp:plugin-livechat-support@room.im.yiny.org?join)."
|
||||
msgstr ""
|
||||
"Máte-li jakékoli dotazy nebo chcete-li si o tomto zásuvném modulu promluvit, "
|
||||
"můžete se připojit k této místnosti XMPP pomocí libovolného klienta Jabber: "
|
||||
"[plugin-livechat-support@room.im.yiny.org](xmpp:plugin-livechat-support@room."
|
||||
"im.yiny.org?join)."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
msgid "If you want to support the project financially, you can contact me by mail at git.[at].john-livingston.fr, or check my [Liberapay profile](https://liberapay.com/JohnLivingston/)."
|
||||
msgstr ""
|
||||
"Pokud chcete projekt finančně podpořit, můžete mě kontaktovat na e-mailové "
|
||||
"adrese git.[at].john-livingston.fr nebo se podívejte na můj [Liberapay "
|
||||
"profil](https://liberapay.com/JohnLivingston/)."
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: description
|
||||
#: support/documentation/content/en/contributing/codeofconduct/_index.md
|
||||
#, no-wrap
|
||||
msgid "Contributor Covenant Code of Conduct"
|
||||
msgstr ""
|
||||
msgstr "Kodex chování smluvních partnerů"
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: title
|
||||
#: support/documentation/content/en/contributing/codeofconduct/_index.md
|
||||
#, no-wrap
|
||||
msgid "Code of Conduct"
|
||||
msgstr ""
|
||||
msgstr "Kodex chování"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/codeofconduct/_index.md
|
||||
msgid "This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html). Translations are available at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement by mail at git.[at].john-livingston.fr."
|
||||
msgstr ""
|
||||
"Tento kodex chování je převzat z dokumentu [Contributor Covenant](https://www"
|
||||
".contributor-covenant.org), verze 2.1, který je k dispozici na adrese "
|
||||
"[https://www.contributor-covenant.org/version/2/1/code_of_conduct."
|
||||
"html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html)"
|
||||
". Překlady jsou k dispozici na adrese [https://www.contributor-covenant.org/"
|
||||
"translations](https://www.contributor-covenant.org/translations). Případy "
|
||||
"urážlivého, obtěžujícího nebo jinak nepřijatelného chování lze hlásit "
|
||||
"vedoucím komunity odpovědným za jejich prosazování na e-mailovou adresu "
|
||||
"git.[at].john-livingston.fr."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Develop"
|
||||
msgstr ""
|
||||
msgstr "Vývoj"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Always talk about features you want to develop by creating/finding and commenting the issue tackling your problem before you start working on it, and inform the community that you begin coding by claiming the issue."
|
||||
msgstr ""
|
||||
"Vždy mluvte o funkcích, které chcete vyvinout, tím, že vytvoříte/najdete a "
|
||||
"okomentujete problém, který řeší váš problém, než na něm začnete pracovat, a "
|
||||
"informujte komunitu o tom, že začínáte kódovat tím, že problém prohlásíte za "
|
||||
"problém."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Pull Request must be done on the `main` branch."
|
||||
msgstr ""
|
||||
msgstr "Žádost o stažení musí být provedena na větvi `main`."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Until march 2023, contribution were made on the `develop` branch. This procedure is now deprecated."
|
||||
msgstr ""
|
||||
"Do března 2023 byly příspěvky prováděny na větvi `develop`. Tento postup je "
|
||||
"nyní zastaralý."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Prerequisite for building this plugin"
|
||||
msgstr ""
|
||||
msgstr "Předpoklad pro vytvoření tohoto zásuvného modulu"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "It is highly recommended to be familiar with following concepts:"
|
||||
msgstr ""
|
||||
msgstr "Doporučujeme seznámit se s následujícími pojmy:"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Git"
|
||||
msgstr ""
|
||||
msgstr "Git"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "NodeJS"
|
||||
msgstr ""
|
||||
msgstr "NodeJS"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "NPM"
|
||||
msgstr ""
|
||||
msgstr "NPM"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Typescript"
|
||||
msgstr ""
|
||||
msgstr "Typescript"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "To build the plugin, you must have following packages:"
|
||||
msgstr ""
|
||||
msgstr "Pro sestavení pluginu musíte mít následující balíčky:"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`git`"
|
||||
msgstr ""
|
||||
msgstr "`git`"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`npm` (>=8.x)"
|
||||
msgstr ""
|
||||
msgstr "`npm` (>=8.x)"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`nodejs` (>=14.x)"
|
||||
msgstr ""
|
||||
msgstr "`nodejs` (>=14.x)"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`build-essential`"
|
||||
msgstr ""
|
||||
msgstr "`build-essential`"
|
||||
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
@ -146,17 +169,22 @@ msgstr ""
|
||||
#. type: Bullet: '* '
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`reuse`"
|
||||
msgstr ""
|
||||
msgstr "`reuse`"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Please note that this plugin needs an AppImage for the Prosody XMPP server. This AppImage is provided by the [Prosody AppImage](https://github.com/JohnXLivingston/prosody-appimage) sideproject. The `build-prosody.sh` script download binaries attached to this remote repository, and checks that their sha256 hashsum are correct."
|
||||
msgstr ""
|
||||
"Upozorňujeme, že tento zásuvný modul potřebuje pro server Prosody XMPP "
|
||||
"obrázek aplikace. Tento AppImage poskytuje vedlejší projekt [Prosody "
|
||||
"AppImage](https://github.com/JohnXLivingston/prosody-appimage). Skript "
|
||||
"`build-prosody.sh` stáhne binární soubory připojené k tomuto vzdálenému "
|
||||
"úložišti a zkontroluje, zda je jejich hashsum sha256 správný."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Clone the repository, buid the plugin, and create your feature branch:"
|
||||
msgstr ""
|
||||
msgstr "Klonujte úložiště, vytvořte zásuvný modul a vytvořte větev kódu:"
|
||||
|
||||
#. type: Fenced code block (bash)
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
@ -182,26 +210,61 @@ msgid ""
|
||||
"git push --set-upstream me my_development\n"
|
||||
"# Then go to your github repository with your web browser to propose the Pull Request (see additional instructions below)\n"
|
||||
msgstr ""
|
||||
"# Klonování úložiště. Nezapomeňte na --recursive pro klonování podmodulů.\n"
|
||||
"git clone https://github.com/JohnXLivingston/peertube-plugin-livechat.git --"
|
||||
"recursive\n"
|
||||
"\n"
|
||||
"cd peertube-plugin-livechat\n"
|
||||
"\n"
|
||||
"# Nainstalujte závislosti NPM a poprvé sestavte modul:\n"
|
||||
"Npm install\n"
|
||||
"\n"
|
||||
"# Sestavte zásuvný modul po úpravě:\n"
|
||||
"npm run build\n"
|
||||
"\n"
|
||||
"# Pokud máte fork z repozitáře, přidejte jej jako vzdálený (příklad):\n"
|
||||
"git remote add me git@github.com:MY_GITHUB_ACCOUNT/peertube-plugin-livechat."
|
||||
"git\n"
|
||||
"\n"
|
||||
"# Vytvořte místní větev pro svůj vývoj a zkontrolujteji (příklad):\n"
|
||||
"git checkout my_development # Poznámka: pokud je přidružena nějaká "
|
||||
"záležitost, použijte jako název větve fix_1234 (kde 1234 je číslo issue).\n"
|
||||
"# Chcete-li navrhnout své úpravy, odešlete svou větev do úložiště (příklad):"
|
||||
"\n"
|
||||
"git push --set-upstream me my_development\n"
|
||||
"# Poté přejděte do svého úložiště github pomocí webového prohlížeče a "
|
||||
"navrhněte žádost o stažení (viz další pokyny níže).\n"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Once you are ready to show your code to ask for feedback, submit a *draft* Pull Request. Once you are ready for a code review before merge, submit a Pull Request. In any case, please link your PR to the issues it solves by using the GitHub syntax: \"fixes #issue_number\"."
|
||||
msgstr ""
|
||||
"Jakmile jste připraveni ukázat svůj kód a požádat o zpětnou vazbu, odešlete "
|
||||
"*návrh* žádosti o stažení. Jakmile jste připraveni na kontrolu kódu před "
|
||||
"sloučením, odešlete žádost o stažení. V každém případě prosíme o propojení "
|
||||
"vašeho PR s problémy, které řeší, pomocí syntaxe GitHubu: \"fixes #"
|
||||
"issue_number\"."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "The front-end code is in the `client` folder, the back-end code in `server`. There are some shared code in `shared` folder."
|
||||
msgstr ""
|
||||
"Kód front-endu je ve složce `client`, kód back-endu ve složce `server`. Ve "
|
||||
"složce `shared` je několik sdílených kódů."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "For general instructions (developping plugins, building, installation, ...), please refer to the [Peertube documentation](https://docs.joinpeertube.org/contribute-plugins?id=write-a-plugintheme)."
|
||||
msgstr ""
|
||||
"Obecné pokyny (vývoj zásuvných modulů, sestavení, instalace, ...) naleznete "
|
||||
"v dokumentaci [Peertube](https://docs.joinpeertube.org/contribute-"
|
||||
"plugins?id=write-a-plugintheme)."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "You can build the plugin with extra debug features simply by using:"
|
||||
msgstr ""
|
||||
"Zásuvný modul můžete sestavit s dalšími funkcemi ladění jednoduše pomocí:"
|
||||
|
||||
#. type: Fenced code block (bash)
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
@ -213,75 +276,112 @@ msgstr ""
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "This plugin is [REUSE](https://reuse.software/) compliant: it uses SPDX headers to identify licensing information of its source code. More information on the [REUSE](https://reuse.software/) website. You can use the [reuse](https://reuse.readthedocs.io/en/stable/readme.html#) command line tool to help you update headers. The `npm run lint` command will use the `reuse` command to check compliance. Don't forget to add your copyright information in SPDX headers when you modify some code."
|
||||
msgstr ""
|
||||
"Tento zásuvný modul je v souladu s [REUSE](https://reuse.software/): používá "
|
||||
"hlavičky SPDX k identifikaci licenčních informací svého zdrojového kódu. "
|
||||
"Více informací naleznete na webových stránkách [REUSE](https://reuse."
|
||||
"software/). K aktualizaci hlaviček můžete použít nástroj příkazového řádku "
|
||||
"[reuse](https://reuse.readthedocs.io/en/stable/readme.html#). Příkaz `npm "
|
||||
"run lint` použije ke kontrole shody příkaz `reuse`. Nezapomeňte do hlaviček "
|
||||
"SPDX přidat informace o autorských právech, když upravujete nějaký kód."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "ESBuild vs Typescript"
|
||||
msgstr ""
|
||||
msgstr "ESBuild vs Typescript"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "This plugin uses ESBuild for frontend code generation, as the official `peertube-plugin-quickstart` plugin. ESBuild can handle Typescript, but does not check types (see [ESBuild documentation](https://esbuild.github.io/content-types/#typescript)). That's why we first compile Typescript with the `-noEmit` option, just to check types (`check:client:ts` in package.json file). Then, if everything is okay, we run ESBuild to generate the compiled javascript."
|
||||
msgstr ""
|
||||
"Tento zásuvný modul používá ESBuild pro generování frontend kódu, stejně "
|
||||
"jako oficiální zásuvný modul `peertube-plugin-quickstart`. ESBuild si "
|
||||
"poradí s Typescriptem, ale nekontroluje typy (viz [dokumentace "
|
||||
"ESBuild](https://esbuild.github.io/content-types/#typescript)). Proto "
|
||||
"nejprve zkompilujeme Typescript s volbou `-noEmit`, jen abychom "
|
||||
"zkontrolovali typy (`check:client:ts` v souboru package.json). Pokud je vše "
|
||||
"v pořádku, spustíme ESBuild a vygenerujeme zkompilovaný javascript."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Debug Mode"
|
||||
msgstr ""
|
||||
msgstr "Režim ladění"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "There is a debug mode for this plugin, that shorten some delay. For example, some log files will rotate every two minutes, instead of once per day. This permit to test more easily certain actions, for which it could normally take hours or days to wait."
|
||||
msgstr ""
|
||||
"Pro tento zásuvný modul existuje režim ladění, který zkracuje určité "
|
||||
"zpoždění. Například některé soubory protokolu se budou otáčet každé dvě "
|
||||
"minuty místo jednou denně. To umožňuje snadněji testovat některé akce, na "
|
||||
"které by se normálně čekalo hodiny nebo dny."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "To enable this mode, you juste have to create the `/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/debug_mode` file (replacing `/var/www/peertube/storage/` by the correct path on your installation)."
|
||||
msgstr ""
|
||||
"Pro zapnutí tohoto režimu stačí vytvořit soubor `/var/www/peertube/storage/"
|
||||
"plugins/data/peertube-plugin-livechat/debug_mode` (nahradit `/var/www/"
|
||||
"peertube/storage/` správnou cestou ve vaší instalaci)."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "The simple existence of this file is sufficient to trigger the debug mode. To make sure it's taken into account, you can restart your Peertube instance."
|
||||
msgstr ""
|
||||
"Ke spuštění režimu ladění stačí pouhá existence tohoto souboru. Chcete-li "
|
||||
"se ujistit, že je brán v úvahu, můžete restartovat instanci Peertube."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "This file can contain some JSON to enable more advanced options. To have a list of existing parameters, check `server/lib/debug.ts`. Restart Peertube after each content modification."
|
||||
msgstr ""
|
||||
"Tento soubor může obsahovat některé JSON, které umožňují pokročilejší "
|
||||
"možnosti. Seznam existujících parametrů naleznete v souboru `server/lib/"
|
||||
"debug.ts`. Po každé úpravě obsahu restartujte Peertube."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Don't enable this mode on a production server, neither on a public server. This could cause security issues."
|
||||
msgstr ""
|
||||
"Tento režim nepovolujte na produkčním serveru, ani na veřejném serveru. "
|
||||
"Mohlo by to způsobit bezpečnostní problémy."
|
||||
|
||||
#. type: Title ###
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Restart Prosody"
|
||||
msgstr ""
|
||||
msgstr "Restart Prosody"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "When debug mode is enabled, you can restart Prosody using this API call: `http://your_instance.tld/plugins/livechat/router/api/restart_prosody`. This call don't need any authentificaiton. It can be done from a command line, for example using `curl http://your_instance.tld/plugins/livechat/router/api/restart_prosody`."
|
||||
msgstr ""
|
||||
"Když je povolen režim ladění, můžete pomocí tohoto volání API restartovat "
|
||||
"aplikaci Prosody: `http://your_instance.tld/plugins/livechat/router/api/"
|
||||
"restart_prosody`. Toto volání nepotřebuje žádné ověření. Lze jej provést z "
|
||||
"příkazového řádku, například pomocí příkazu `curl http://your_instance.tld/"
|
||||
"plugins/livechat/router/api/restart_prosody`."
|
||||
|
||||
#. type: Title ###
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Prosody debugger"
|
||||
msgstr ""
|
||||
msgstr "Prosody debugger"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "It is possible to connect the Prosody AppImage to a remote debugger using [MobDebug](https://luarocks.org/modules/paulclinger/mobdebug)."
|
||||
msgstr ""
|
||||
"Prosody AppImage je možné připojit ke vzdálenému debuggeru pomocí "
|
||||
"[MobDebug](https://luarocks.org/modules/paulclinger/mobdebug)."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "To do so, you have to setup MobDebug in a folder that can be accessed by the `peertube` user. Then, add this in the `debub_mode` file:"
|
||||
msgstr ""
|
||||
"Chcete-li tak učinit, musíte nastavit MobDebug ve složce, ke které má "
|
||||
"přístup uživatel `peertube`. Pak to přidejte do souboru `debub_mode`:"
|
||||
|
||||
#. type: Fenced code block (json)
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
@ -295,63 +395,93 @@ msgid ""
|
||||
" }\n"
|
||||
"}\n"
|
||||
msgstr ""
|
||||
"{\n"
|
||||
" \"debug_prosody\": {\n"
|
||||
" \"debugger_path\": \"/the_path_to_mobdebug/src\",\n"
|
||||
" \"host\": \"localhost\",\n"
|
||||
" \"port\": \"8172\"\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "`host` and `port` are optional. `debugger_path` must point to the folder where the `MobDebug` `.lua` file is."
|
||||
msgstr ""
|
||||
"`host` a `port` jsou volitelné. `debugger_path` musí ukazovat na složku, kde "
|
||||
"je soubor `.lua` `MobDebug`."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Restart Peertube."
|
||||
msgstr ""
|
||||
msgstr "Restartujte Peertube."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Start your debugger server."
|
||||
msgstr ""
|
||||
msgstr "Spusťte svůj ladicí server."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "For Prosody to connect to the debugger, call the API `http://your_instance.tld/plugins/livechat/router/api/restart_prosody?debugger=true`. This call does not need any authentication. It can be done from a command line, for example with `curl http://your_instance.tld/plugins/livechat/router/api/restart_prosody?debugger=true`. You can even configure your debug server to launch this request automatically."
|
||||
msgstr ""
|
||||
"Aby se Prosody připojil k debuggeru, zavolejte API `http://your_instance.tld/"
|
||||
"plugins/livechat/router/api/restart_prosody?debugger=true`. Tento hovor "
|
||||
"nevyžaduje žádné ověření. Lze to provést z příkazového řádku, například "
|
||||
"pomocí `curl http://your_instance.tld/plugins/livechat/router/api/"
|
||||
"restart_prosody?debugger=true`. Můžete dokonce nakonfigurovat svůj ladicí "
|
||||
"server tak, aby tento požadavek spouštěl automaticky."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Prosody will then restart, connecting to the debugger."
|
||||
msgstr ""
|
||||
msgstr "Prosody se poté restartuje a připojí se k debuggeru."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Quick dev environment using Docker"
|
||||
msgstr ""
|
||||
msgstr "Rychlé vývojářské prostředí pomocí Dockeru"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "There is a tutorial, in french, on the [Peertube forum](https://framacolibri.org/t/tutoriel-creer-un-environnement-de-developpement-de-plugin-peertube-rapidement-en-utilisant-docker-et-qui-permet-de-tester-la-federation/17631) that explains how to quickly build a dev env using Docker."
|
||||
msgstr ""
|
||||
"Na [fóru Peertube] je výukový program ve francouzštině (https://framacolibri."
|
||||
"org/t/tutoriel-creer-un-environnement-de-developpement-de-plugin-peertube-"
|
||||
"rapidement-en-utilisant-docker -et-qui-permet-de-tester-la-federation/17631)"
|
||||
", který vysvětluje, jak rychle vytvořit prostředí pro vývojáře pomocí Docker."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "A repo was made out of it, check out [pt-plugin-dev](https://codeberg.org/mose/pt-plugin-dev)."
|
||||
msgstr ""
|
||||
"Bylo z toho vytvořeno repo, podívejte se na [pt-plugin-dev](https://codeberg."
|
||||
"org/mose/pt-plugin-dev)."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "Note: for an unknown reason, Prosody can't resolve containers DNS address when using the lua-unbound library. There is a dirty hack in the plugin: just create a `/data/plugins/data/peertube-plugin-livechat/no_lua_unbound` file in your docker-volumes, then restart containers."
|
||||
msgstr ""
|
||||
"Poznámka: Z neznámého důvodu nemůže Prosody rozlišit adresy DNS kontejnerů "
|
||||
"při použití knihovny lua-unbound. V pluginu je špinavý hack: stačí vytvořit "
|
||||
"soubor `/data/plugins/data/peertube-plugin-livechat/no_lua_unbound` ve vašem "
|
||||
"docker-volume a restartovat kontejnery."
|
||||
|
||||
#. type: Title ##
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
#, no-wrap
|
||||
msgid "Quickly rebuild and install the plugin"
|
||||
msgstr ""
|
||||
msgstr "Rychle znovu sestavte a nainstalujte plugin"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
msgid "When you do modification, you don't have to always rebuild the full project, and reinstall the plugin on your dev environment. You can build only the modified part (for example, if you only modified client files: `npm run build:client`). Check the `package.json` files for available build scripts."
|
||||
msgstr ""
|
||||
"Když provádíte úpravy, nemusíte vždy znovu sestavovat celý projekt a znovu "
|
||||
"instalovat plugin do vašeho vývojového prostředí. Můžete sestavit pouze "
|
||||
"upravenou součást (pokud jste například upravili pouze soubory klienta: `npm "
|
||||
"spustit build:client`). V souborech `package.json` vyhledejte dostupné "
|
||||
"skripty sestavení."
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contributing/develop/_index.md
|
||||
|
@ -7,27 +7,29 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: peertube-plugin-livechat-documentation VERSION\n"
|
||||
"POT-Creation-Date: 2024-09-12 12:53+0200\n"
|
||||
"PO-Revision-Date: 2023-07-17 10:53+0000\n"
|
||||
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
||||
"Language-Team: Ukrainian <https://weblate.framasoft.org/projects/peertube-livechat/peertube-plugin-livechat-documentation/uk/>\n"
|
||||
"PO-Revision-Date: 2024-10-13 09:25+0000\n"
|
||||
"Last-Translator: Ihor Hordiichuk <igor_ck@outlook.com>\n"
|
||||
"Language-Team: Ukrainian <https://weblate.framasoft.org/projects/"
|
||||
"peertube-livechat/peertube-plugin-livechat-documentation/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.18.2\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 5.7.2\n"
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: description
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
#, no-wrap
|
||||
msgid "Contact the author"
|
||||
msgstr ""
|
||||
msgstr "Зв'язатися з автором"
|
||||
|
||||
#. type: Yaml Front Matter Hash Value: title
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
#, no-wrap
|
||||
msgid "Contact me"
|
||||
msgstr ""
|
||||
msgstr "Зв'язатися зі мною"
|
||||
|
||||
#. type: Plain text
|
||||
#: support/documentation/content/en/contact/_index.md
|
||||
|
Loading…
x
Reference in New Issue
Block a user