# Vietnamese translations for peertube-plugin-livechat-documentation package # Copyright (C) 2023 Free Software Foundation, Inc. # This file is distributed under the same license as the peertube-plugin-livechat-documentation package. # Automatically generated, 2023. # msgid "" msgstr "" "Project-Id-Version: peertube-plugin-livechat-documentation VERSION\n" "POT-Creation-Date: 2023-07-17 13:25+0200\n" "PO-Revision-Date: 2023-07-17 10:53+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.18.2\n" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/contact/_index.md #, no-wrap msgid "Contact the author" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/contact/_index.md #, no-wrap msgid "Contact me" msgstr "" #. type: Plain text #: support/documentation/content/en/contact/_index.md #, no-wrap 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).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contact/_index.md #, no-wrap 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/).\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/contributing/codeofconduct/_index.md #, no-wrap msgid "Contributor Covenant Code of Conduct" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/contributing/codeofconduct/_index.md #, no-wrap msgid "Code of Conduct" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/codeofconduct/_index.md #, no-wrap 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).\n" "Translations are available at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).\n" "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.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Develop" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "Always talk about features you want to develop by creating/finding and commenting the issue tackling your problem\n" "before you start working on it, and inform the community that you begin coding by claiming the issue.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Pull Request must be done on the `main` branch.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Until march 2023, contribution were made on the `develop` branch. This procedure is now deprecated.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Prerequisite for building this plugin" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "It is highly recommended to be familiar with following concepts:\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Git\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "NodeJS\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "NPM\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Typescript\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "To build the plugin, you must have following packages:\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`git`\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`npm` (>=8.x)\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`nodejs` (>=14.x)\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`build-essential`\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "The plugin needs to build an AppImage for the Prosody XMPP server.\n" "It appears that the way this AppImage is build requires `apt` and `dpkg` commands.\n" "So it will only work \"out of the box\" on Debian-like systems.\n" "If you are using another Linux distribution, you can try to install `apt` and `dpkg` manually.\n" "See for example this [Github issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/200).\n" "We will provide another solution as soon as possible.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Building this AppImage also requires following packages:\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`python3-venv`\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`squashfs-tools`\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "These dependencies were tested on a Debian Bullseye.\n" "If there is some dependencies issues on your UNIX/Linux system, please open an issue on Github.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Clone the repository, buid the plugin, and create your feature branch:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "# Clone the repository. Dont forget the --recursive to clone submodules.\n" "git clone https://github.com/JohnXLivingston/peertube-plugin-livechat.git --recursive\n" "\n" "# Install NPM dependencies and build the module for the first time:\n" "npm install\n" "\n" "# Build the plugin after a modification:\n" "npm run build\n" "\n" "# If you have a fork from the repository, add it as remote (example):\n" "git remote add me git@github.com:MY_GITHUB_ACCOUNT/peertube-plugin-livechat.git\n" "\n" "# Create a local branch for you developments, and checkout it (example):\n" "git checkout my_development # Note: if an issue is associated, use fix_1234 as your branch name (where 1234 is the issue's number)\n" "# To propose your modifications, push your branch to your repository (example):\n" "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 "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "Once you are ready to show your code to ask for feedback, submit a *draft* Pull Request.\n" "Once you are ready for a code review before merge, submit a Pull Request.\n" "In any case, please link your PR to the issues it solves by using the GitHub syntax: \"fixes #issue_number\".\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "The front-end code is in the `client` folder, the back-end code in `server`. There are some shared code in `shared` folder.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "For general instructions (developping plugins, building, installation, ...), please refer to the [Peertube documentation](https://docs.joinpeertube.org/contribute-plugins?id=write-a-plugintheme).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "You can build the plugin with extra debug features simply by using:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "NODE_ENV=dev npm run build\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "ESBuild vs Typescript" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "This plugin uses ESBuild for frontend code generation, as the official `peertube-plugin-quickstart` plugin.\n" "ESBuild can handle Typescript, but does not check types (see [ESBuild documentation](https://esbuild.github.io/content-types/#typescript)).\n" "That's why we first compile Typescript with the `-noEmit` option, just to check types (`check:client:ts` in package.json file).\n" "Then, if everything is okay, we run ESBuild to generate the compiled javascript.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Debug Mode" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "There is a debug mode for this plugin, that shorten some delay.\n" "For example, some log files will rotate every two minutes, instead of once per day.\n" "This permit to test more easily certain actions, for which it could normally take hours or days to wait.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap 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).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "The simple existence of this file is sufficient to trigger the debug mode.\n" "To make sure it's taken into account, you can restart your Peertube instance.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "This file can contain some JSON to enable more advanced options.\n" "To have a list of existing parameters, check `server/lib/debug.ts`.\n" "Restart Peertube after each content modification.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "Don't enable this mode on a production server, neither on a public server.\n" "This could cause security issues.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Restart Prosody" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "When debug mode is enabled, you can restart Prosody using this API call: `http://your_instance.tld/plugins/livechat/router/api/restart_prosody`.\n" "This call don't need any authentificaiton.\n" "It can be done from a command line, for example using `curl http://your_instance.tld/plugins/livechat/router/api/restart_prosody`.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Prosody debugger" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "It is possible to connect the Prosody AppImage to a remote debugger using [MobDebug](https://luarocks.org/modules/paulclinger/mobdebug).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "To do so, you have to setup MobDebug in a folder that can be accessed by the `peertube` user.\n" "Then, add this in the `debub_mode` file:\n" msgstr "" #. type: Fenced code block (json) #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "{\n" " \"debug_prosody\": {\n" " \"debugger_path\": \"/the_path_to_mobdebug/src\",\n" " \"host\": \"localhost\",\n" " \"port\": \"8172\"\n" " }\n" "}\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "`host` and `port` are optional. `debugger_path` must point to the folder where the `MobDebug` `.lua` file is.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Restart Peertube.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Start your debugger server.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "For Prosody to connect to the debugger, call the API `http://your_instance.tld/plugins/livechat/router/api/restart_prosody?debugger=true`.\n" "This call does not need any authentication.\n" "It can be done from a command line, for example with `curl http://your_instance.tld/plugins/livechat/router/api/restart_prosody?debugger=true`.\n" "You can even configure your debug server to launch this request automatically.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Prosody will then restart, connecting to the debugger.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "Quick dev environment using Docker" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap 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.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "A repo was made out of it, check out [pt-plugin-dev](https://codeberg.org/mose/pt-plugin-dev).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/develop/_index.md #, no-wrap msgid "" "Note: for an unknown reason, Prosody can't resolve containers DNS address when using the lua-unbound library.\n" "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.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Document the plugin, or translate the documentation." msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/contributing/document/_index.md #: support/documentation/content/en/documentation/_index.md #, no-wrap msgid "Documentation" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "General information" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Always inform the community before working (by creating a new issue, or commenting an existing one).\n" "This is to avoid that two persons are working on the same thing, and prevent conflicts.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Documentation work has to be merged in the `main` branch.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "The documentation source code is in the `support/documentation/content` folder.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "The documentation is generated using [Hugo](https://gohugo.io/).\n" "You have to install it on your computer if you want to preview your work.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "The used theme is [hugo-theme-learn](https://learn.netlify.app/).\n" "You should read its documentation before starting editing the documentation.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "When a new plugin version is released, or when documentation is updated, plugin maintainers will merge the `main` branch to the `documentation` branch.\n" "This will trigger github and gitlab pipelines, and update published documentation.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Translations" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "The principal language is english (`en` code).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "The `support/documentation/content/en` folder contains only english documentation files.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Documentation is translated using Weblate (see the [translation documentation](/peertube-plugin-livechat/contributing/translate/)).\n" "To do so, we use the [po4a tool](https://po4a.org/), as we will se later in this page.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Add a new language" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "In the `support/documentation/config.toml` file, please copy and modify the `[Languages.fr]` section.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "If the translations are not complete, it does not matter, english will be used for missing strings.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Preview" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "To preview your modifications, just run:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "hugo serve -s support/documentation/\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Then open your browser on the address [http://localhost:1313/peertube-plugin-livechat/](http://localhost:1313/peertube-plugin-livechat/).\n" "This page will automatically refresh on each modification.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Update localization files and generate documentation translations" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "For now, you only have the english version.\n" "To update documentation strings, and generate translations, you have to run the `doc-translate.sh` script.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "To do so, make sure you have `po4a` (version >= 0.66) installed on your computer.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Some linux distro (like Debian Bullseye for example) have too old version of `po4a`.\n" "Please make sure to install a compatible version.\n" "If you are using Debian Bullseye for example, you can download the Bookworm po4a.deb file from [https://packages.debian.org](https://packages.debian.org/bookworm/all/po4a/download), and install it manually.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "To handle translations, just do:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "npm run doc:translate\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "You can then preview the result using `hugo serve -s support/documentation/`, and using the language selector.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Write documentation" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Just edit the english files in `support/documentation/content/en`.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Then, before commiting, always run `npm run doc:translate`, so that changes in english files can be propagated to the `support/documentation/po/livechat.en.pot` file.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "You can use the `livechat_label` short code to use application strings.\n" "See here: [Documentation translation](/peertube-plugin-livechat/contributing/translate/#documentation-translation).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "It is possible to prevent a file from beeing translating, using `livechatnotranslation: true` in the Yaml Font Matter section.\n" "See here: [Documentation translation](/peertube-plugin-livechat/contributing/translate/#documentation-translation).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Please use the `livechatnotranslation` option for technical documentation.\n" "We don't want technical documentation to be translated, to avoid issues because of a wrong translation.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "" "Avoid adding line breaks in middle of a sentence.\n" "But add a line break after each sentence in a paragraph.\n" "This is to facilitate the work for translators: so then can easily check that they don't miss a sentence when translating a parapraph.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "What if I can't use hugo and/or po4a?" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Just edit english markdown files, and specify that you can't build translations when you make your Pull Request.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Publication" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/document/_index.md #, no-wrap msgid "Publishing the documentation is automatic, as soon as the changes are merged into the `documentation` branch.\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/contributing/feedback/_index.md #, no-wrap msgid "Give your feedback" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/feedback/_index.md #, no-wrap msgid "" "You don't need to know how to code to start contributing to this plugin!\n" "Other contributions are very valuable too, among which: you can test the software and report bugs, you can give feedback, features that you are interested in, user interface, design, ...\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/contributing/_index.md #, no-wrap msgid "Contributing" msgstr "" #. type: Plain text #: support/documentation/content/en/contributing/_index.md #, no-wrap msgid "Interested in contributing? Awesome!\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Plugin Credits" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Credits" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "[package.json](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/package.json), [COPYRIGHT](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/COPYRIGHT.md) and [LICENSE](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/LICENSE) files contain the license information for this software and its dependencies.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "The plugin is maintained by [John Livingston](https://www.john-livingston.fr/).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "" "Thanks to David Revoy for his work on Peertube's mascot, [Sepia](https://www.davidrevoy.com/index.php?tag/peertube).\n" "The character design is under CC-By licence, and the SVG files used to create some logo and avatars in this plugin are GPLv3.0.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Thanks to [Framasoft](https://framasoft.org) for making [Peertube](https://joinpeertube.org/) possible, for the financial support, and for hosting the project translations on their [Weblate instance](https://weblate.framasoft.org).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Thanks to [ritimo](https://www.ritimo.org/) for the financial support.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Thanks to [Code Lutin](https://www.codelutin.com/) and [Rétribution Copie Publique](https://copiepublique.fr/) for the financial support.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/credits/_index.md #, no-wrap msgid "Thanks to [NlNet](https://nlnet.nl/) and the [NGI0 Entrust fund](https://nlnet.nl/entrust/) for the financial support.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/admin/advanced/_index.md #, no-wrap msgid "Some advanced features" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/admin/advanced/_index.md #, no-wrap msgid "Advanced usage" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/admin/advanced/matterbridge.md #, no-wrap msgid "Using Matterbridge to bridge with other chats" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/admin/advanced/matterbridge.md #, no-wrap msgid "Using Matterbridge" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/matterbridge.md #, no-wrap msgid "Here is a tutorial to use Matterbridge with the plugin: \n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Allow connections using XMPP clients" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "XMPP clients" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "This chat module is based on the XMPP protocol, also known as Jabber.\n" "It is therefore possible to connect to the chats using [XMPP client software](https://en.wikipedia.org/wiki/XMPP#Clients).\n" "This can for example be useful to facilitate moderation operations.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "For the user documentation associated with these features, please refer to the [user documentation page](/peertube-plugin-livechat/documentation/user/xmpp_clients/).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Enabling these features requires configuration changes on the server, and on the DNS records.\n" "It is not possible to configure this only from the Peertube interface, and it requires some basic system some basic system admin skills.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "Login to your Peertube account" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "This feature is not yet available, and will come in a future version of the plugin.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "Connection using an external XMPP account" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "To enable this feature, you will need to set up your server and DNS records, so that XMPP clients can find and access the\n" "[Prosody server](https://prosody.im) that this plugin uses internally.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Plugin settings" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Start by going to the livechat plugin settings of your instance, then enable the setting \"Enable connection to room using external XMPP accounts\".\n" "By checking this settings, new settings appear below.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "First of all, the \"Prosody server to server port\" field.\n" "This one defaults to 5269, which is the standard port for this service.\n" "You can however change to another port, if this is already in use on your server.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Next, the field \"Server to server network interfaces\" field allows you to specify which network interfaces the server should listen on.\n" "The default value \"*, ::\" indicates to listen on all IP addresses.\n" "You can change these values, if you wish to listen on only certain IP addresses.\n" "The syntax is explained next to the setting.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "For the \"Certificate folder\" setting, you can leave it empty.\n" "In this case, the plugin will automatically generate self-signed certificates.\n" "Some XMPP servers may refuse to connect, depending on their configuration.\n" "In this case, you can indicate here a path on the server, in which you must place certificates to be used by the module.\n" "It is up to you to generate and renew them.\n" "See bellow for more information.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Firewall" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "You must open the configured port (5269 by default) on your firewall.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "If you are using Docker for your Peertube, you need to modify the `docker-compose.yml` file to open port 5269 of the `peertube` container,\n" "so that the outer world can connect to it.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "DNS" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "You need to add a [DNS record](https://prosody.im/doc/dns) allowing remote servers to find the \"room.your_instance.tld\" component.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "The easiest way to do this is to add an SRV record for the \"room\" [subdomain](https://prosody.im/doc/dns#subdomains):\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "record name: _xmpp-server._tcp.room.your_instance.tld. (replace «your_instance.tld» by your instance uri)\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "TTL: 3600\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "class: IN\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "SRV: 0\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "priority: 0\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "weight: 5\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "port: 5269 (adapt if your changed the default port)\n" msgstr "" #. type: Bullet: '* ' #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "target: your_instance.tld. (replace by your instance uri)\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Be careful to keep the dot after \"your_instance.tld\".\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Using the `dig` command to check your record, you should get a result similar to this:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "$ dig +short _xmpp-server._tcp.room.videos.john-livingston.fr. SRV\n" "0 5 5269 videos.john-livingston.fr.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "If you are **not using the standard `5269` port**, you must also add a SRV record for `_xmpp-server._tcp.your_instance.tld.` (same as above, just without the `room.` prefix).\n" "Of course, you can also add this record if you use the standard port. It will also work.\n" msgstr "" #. type: Title ### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Using trusted certificates" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "The self-signed certificates that this plugin uses by default can be rejected by some XMPP servers, for security reasons.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "It is possible to use certificates validated by a certification authority.\n" "However, this requires advanced system administration knowledge.\n" "Indeed, due to the multitude of possible use cases, it is impossible to document all situations here.\n" "This documentation will therefore only explain the goal to be reached, and give an example which will only be suitable for a \"basic\" situation (manual installation of Peertube, using letsencrypt).\n" "If you are in another situation (Docker installation, certificates signed by another authority, etc...), you will have to adapt this approach by yourself.\n" msgstr "" #. type: Title #### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Basic principle" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "It is up to you to generate valid certificates for domains `your_instance.tld` and `room.your_instance.tld`.\n" "You can use any [method supported by Prosody](https://prosody.im/doc/certificates).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "You must then place these certificates in a folder that will be accessible to the `peertube` user, and specify this folder in the plugin setting \"Certificate folder\".\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "If you want to use the ProsodyCtl utility to import certificates, this utility is available (once Peertube is started) using the following command (adapting the path to your Peertube data folder, and replacing \"xxx\" with the arguments you wish to pass to\n" "prosodyctl): `sudo -u peertube /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl xxx`\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "The plugin will check once a day to see if any files have been modified in this folder, and reload Prosody if necessary.\n" msgstr "" #. type: Title #### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Method for the simple case" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "We assume here that your Peertube installation is \"classic\" (no use of Docker), and that the certificates are generated by letsencrypt, using the certbot tool.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "First of all, we'll have to create a certificate for the subdomain `room.your_instance.tld` : this is the uri of the MUC (XMPP chat rooms) component.\n" "Even if the connections are made on `your_instance.tld`, we will need a valid certificate for this subdomain.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "So start by setting up a DNS entry for `room.your_instance.tld`, which points to your server.\n" "You can use a CNAME entry (or an A entry and a AAAA entry).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Next, we'll use nginx (already installed for your Peertube) to generate the certbot certificate.\n" "We will create a new site. In the file `/etc/nginx/site-available/room.peertube`, add:\n" msgstr "" #. type: Fenced code block (nginx) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "server {\n" " listen 80;\n" " listen [::]:80;\n" " server_name room.your_instance.tld;\n" "\n" " location /.well-known/acme-challenge/ {\n" " default_type \"text/plain\";\n" " root /var/www/certbot;\n" " }\n" " location / { return 301 https://your_instance.tld; }\n" "}\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Then enable the site:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "ln -s /etc/nginx/sites-available/room.peertube /etc/nginx/sites-enabled/\n" "systemc reload nginx\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Then we prepare the folder in which we will later import the certificates.\n" "We assume here that you already have the plugin active. We will create the following folder (if it doesn't already exist), with the user `peertube` to make sure there are no permissions issues:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "sudo -u peertube mkdir /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/certs\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Now you have to configure this folder in the plugin settings, for the parameter \"Certificate folders\".\n" "It's important to do this now, otherwise the certificate import script will put the certificates in the wrong folder.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "We will configure certbot to import the generated certificates into the Prosody folder.\n" "We can use the ProsodyCtl utility packaged in the plugin.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Note: for it to be available, the plugin must have been started at least once.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "We will create a file `/etc/letsencrypt/renewal-hooks/deploy/prosody.sh` containing:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "#!/bin/sh\n" "/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n" " --root \\\n" " --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n" " cert import \\\n" " room.your_instance.tld your_instance.tld /etc/letsencrypt/live\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Then we ask to generate the certificate:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "certbot -d room.videos.john-livingston.fr\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "If certbot offers you several methods to generate the certificate, choose \"nginx\".\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Normally you should now find the certificates in the configured folder.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Note: the first time you do this, you will have to reload Prosody. The easiest way to do this is to restart Peertube.\n" msgstr "" #. type: Title #### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Method for the Docker case" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "This method works with the officially supported [Docker guide](https://docs.joinpeertube.org/install/docker) from PeerTube.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "First, ensure you create a DNS entry for `room.your_instance.tld`, which points to your server.\n" "You can use a CNAME entry (or an A entry and a AAAA entry).\n" "This is necessary for Let's Encrypt to validate the domain for certificate generation.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Enter the directory where your `docker-compose.yml` file exists.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Open a shell in the certbot container:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "docker exec -it certbot /bin/sh\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Run certbot:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "certbot\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "You will be presented with a series of prompts. Enter `2` for the authentication type:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "How would you like to authenticate with the ACME CA?\n" "Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Enter the domain name `room.your_instance.tld`:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Please enter the domain name(s) you would like on your certificate (comma and/or space separated) (Enter 'c' to cancel): room.your_instance.tld\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Enter the directory where the PeerTube webserver serves requests for Let's Encrypt, `/var/www/certbot`:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Input the webroot for : (Enter 'c' to cancel): /var/www/certbot\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "You should see output like the following:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Successfully received certificate.\n" "Certificate is saved at: /etc/letsencrypt/live/room.your_instance.tld/fullchain.pem\n" "Key is saved at: /etc/letsencrypt/live/room.your_instance.tld/privkey.pem\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Run the below command inside the certbot container to give read access to the new certs and private keys to the peertube group.\n" "*Note*: This will also make the files readable to the group with id 999 on the host system.\n" "Check the groups on your system to assess this as a risk before running this command.\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "chown -R root:999 /etc/letsencrypt/live; \\\n" "chmod 750 /etc/letsencrypt/live; \\\n" "chown -R root:999 /etc/letsencrypt/archive; \\\n" "chmod 750 /etc/letsencrypt/archive; \\\n" "find /etc/letsencrypt/ -name 'privkey*' -exec chmod 0640 {} \\;\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Exit the certbot container:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "exit\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Modify your `docker-compose.yml` file, changing the `entrypoint` line under the `certbot` service to the following.\n" "This is the same as the above, but to be automatically executed after every certificate renewal.\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid " entrypoint: /bin/sh -c \"trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot; chown -R root:999 /etc/letsencrypt/live; chmod 750 /etc/letsencrypt/live; chown -R root:999 /etc/letsencrypt/archive; chmod 750 /etc/letsencrypt/archive; find /etc/letsencrypt/ -name 'privkey*' -exec chmod 0640 {} +; sleep 12h & wait $${!}; done;\"\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "Continuing to modify `docker-compose.yml`, add the certbot certificate volume into the peertube container.\n" "It should look something like this:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" " volumes:\n" " - ./docker-volume/certbot/conf:/etc/letsencrypt\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Restart your services:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "docker-compose down; docker-comopse up -d\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "In the livechat plugin settings from your PeerTube administration settings, set the certificate directory to the following:\n" msgstr "" #. type: Fenced code block (text) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "/etc/letsencrypt/live\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Save the plugin settings and verify Prosody can see the certificates:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "" "docker-compose exec -u peertube \\\n" " peertube \\\n" " /data/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun \\\n" " prosodyctl \\\n" " --config /data/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n" " check certs\n" msgstr "" #. type: Title ### #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "Troubleshooting" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md #, no-wrap msgid "If you can't make it work, you can use the diagnostic tool (there is a button on top of the plugin settings page), and take a close look on the «Prosody check» section.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/admin/_index.md #, no-wrap msgid "Plugin Peertube Livechat administration" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/admin/_index.md #, no-wrap msgid "Admin documentation" msgstr "" #. type: Yaml Front Matter Hash Value: description #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Plugin Peertube Livechat settings" msgstr "" #. type: Yaml Front Matter Hash Value: title #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Settings" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "This section describes the plugin settings page.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "When pressing the «List rooms» button, all existing chatrooms will be listed.\n" "You can then find them and moderated them.\n" msgstr "" #. type: Title ## #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Federation" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Following settings concern the federation with other Peertube instances, and other fediverse softwares.\n" msgstr "" #. type: Title ## #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Chat behaviour" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "This feature enables a «share chat link» modal. With this modal, you can generate URLs to join the chat.\n" "The chat can be customized (readonly mode, use the current theme, ...).\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "You can for example generate a readonly URL and use it in OBS to integrate the chat in your live stream!\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "This settings allows you to choose who can access this modal.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "The video owner will be able to activate web chats.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "Note: for now this feature simply hide the chat.\n" "In a future release, the chat will be replaced by a message saying «please log in to [...]».\n" "See [v5.7.0 Release Notes](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/CHANGELOG.md#570) for more information.\n" msgstr "" #. type: Title ## #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Theming" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "You can choose which theme to use for ConverseJS:\n" msgstr "" #. type: Bullet: '- ' #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Peertube theme: this is a special theme, made especially for peertube's integration.\n" msgstr "" #. type: Bullet: '- ' #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Default ConverseJS theme: this is the default ConverseJS theme.\n" msgstr "" #. type: Bullet: '- ' #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "ConverseJS concord theme: this is a theme provided by ConverseJS.\n" msgstr "" #. type: Title ## #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "Chat server advanced settings" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "The plugin comes with an AppImage that is used to run the [Prosody XMPP server](https://prosody.im).\n" "If this AppImage is not working, you can fallback to the Prosody that is packaged for your server. Just install the `prosody` package.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "This settings should only be used if the plugin is broken, and waiting for a patch.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "This setting enable XMPP clients to connect to the built-in Prosody server.\n" "For now, this option **only allows connections from localhost clients**.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "As example, this option can allow an instance of Matterbridge (once it could use anonymous login) *on the same machine* to bridge your chat with another services like a Matrix room.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "" "This settings enable XMPP external components to connect to the server.\n" "For now, this option **only allows connections from localhost components**.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "This feature could be used to connect bridges or bots.\n" msgstr "" #. type: Plain text #: build/documentation/pot_in/documentation/admin/settings.md #, no-wrap msgid "More informations on Prosody external components [here](https://prosody.im/doc/components).\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/_index.md #, no-wrap msgid "Plugin documentation" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "For now, the plugin only works out of the box for x86_64 and arm64 CPU architecture. Here are some instructions for other CPU architectures." msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "Known issues: CPU Compatibility" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "The Prosody AppImage included in the plugin will only work on x86_64 and arm64 CPU.\n" "It is not compatible with other CPU architectures.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "To use the plugin, you will have to manually install Prosody on your server\n" "(see below).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "Note: the plugin requires Prosody >= 0.12.0.\n" "If you are using an older version, Chat Federation could be broken, and it could have some unexpected behaviour.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "Once it is done, you have to check `Use system Prosody` in the plugin settings.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "On non-docker Peertube installation" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "For standard installation, you just have to install the official `prosody` package for your linux distribution.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "For example, on Debian/Ubuntu:\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "sudo apt install prosody\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "You can then disable the service that starts automatically when you install Prosody (the plugin will launch a Prosody process, there is no need for the service to run).\n" "For example, on Debian/Ubuntu (and other Systemd based linux distributions):\n" msgstr "" #. type: Fenced code block (bash) #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "sudo systemctl disable prosody && sudo systemctl stop prosody\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "Warning: do not disable Prosody if it is used for another service on your server, like for example Jitsi.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "Docker" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "You will have to generate a Peertube image that includes Prosody in the same container that Peertube.\n" "I know this is not the standard way to do this with Docker, but keep in mind it is a temporary workaround.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "To generate and use such an image, please refer to the Docker documentation.\n" "The Docker file to generate the image should be:\n" msgstr "" #. type: Fenced code block (Docker) #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "FROM chocobozzz/peertube:production-bullseye\n" "\n" "RUN apt -y update && apt install -y prosody && apt -y clean\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "Yunohost" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "You have to disable `metronome` (the XMPP server provided by Yunohost), and install `prosody`.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "This is already done by the Yunohost Peertube application, as it was required for the plugin before the v6.0.0.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/cpu_compatibility.md #, no-wrap msgid "" "But it may be removed in a near feature (to avoid drawbacks of this method).\n" "I have to discuss with Yunohost team, to decide how we can do to minimize drawbacks, and maximize compatibility.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/installation/_index.md #, no-wrap msgid "Plugin peertube-plugin-livechat installation guide" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/installation/_index.md #, no-wrap msgid "Installation guide" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/_index.md #: support/documentation/content/en/_index.md #, no-wrap msgid "Before updating to a major release, please read the release notes and breaking changes list : [CHANGELOG](https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/CHANGELOG.md).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/_index.md #, no-wrap msgid "To install or update the plugin, **just use the Peertube web admin interface**.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/_index.md #, no-wrap msgid "Here are some other more specific instructions:\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "Important notes when upgrading for an older version." msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "Upgrade from version older than 6.0.0" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "IMPORTANT NOTE" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "Since version v6.0.0, this plugin does not need any Prosody installation.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "If you were using this plugin before this version, and if you had installed Prosody manually, you can safely uninstall Prosody.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/installation/upgrade_before_6.0.0.md #, no-wrap msgid "If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official Peertube image.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/user/_index.md #, no-wrap msgid "Plugin peertube-plugin-livechat user documentation" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/user/_index.md #, no-wrap msgid "User documentation" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "Plugin peertube-plugin-livechat moderation" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "Moderation" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "" "You can access room settings and moderation tools by opening the chat in a new window,\n" "and using the dropdown menu at the top right.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "You can list all existing chatrooms: in the plugin settings screen, there is a button «List rooms».\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "You can delete old rooms: join the room, and use the menu on the top to destroy the room.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "Notes" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "" "All instance moderators and admins will be owner of created chat rooms.\n" "If the video is local (not from a remote Peertube), the video owner will be admin in the chat room.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/moderation.md #, no-wrap msgid "" "You can use [ConverseJS moderation commands](https://conversejs.org/docs/html/features.html#moderating-chatrooms) to moderate the room.\n" "When you open the chat room in full screen, there will also be a menu with dedicated commands on the top right.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "Documentation to stream the chat content using OBS." msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "OBS" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "OBS Overlay" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "If you are using OBS for streaming, you can easily include the chat in your stream.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" "You can use the «share chat link» feature to generate an URL to your chat.\n" "The button should be near the chat if you are the video owner (unless it was desactivated by your server admins).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" "Check the «readonly» checkbox in the modal.\n" "Then use this link as a «web browser source» in OBS.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" "You can use the «Transparent background» to have a transparent background in OBS.\n" "If you want to customize the background transparency, you can add this CSS in your OBS browser source's settings:\n" msgstr "" #. type: Fenced code block (css) #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" ":root {\n" " --livechat-transparent: rgba(255 255 255 / 90%) !important;\n" "}\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" "Note: you can customize colors. This is undocumented yet, but you can try this:\n" "in the modal, check «use curent theme colors», then you can try to manually change color values in the URL.\n" "You must use valid CSS color values, and they must be properly URL encoded.\n" msgstr "" #. type: Title ## #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "Mixing multiple chats in your live stream" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/obs.md #, no-wrap msgid "" "You can use the [social_stream browser extension](https://github.com/steveseguin/social_stream#readme) to mix multiple chat source (from Peertube, Twitch, Youtube, Facebook, ...) and include their contents in your live stream.\n" "The compatibility with this plugin was added in recent versions.\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "Connect to chat using a XMPP client" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "XMPP Clients" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "This chat plugin relies on the XMPP protocol (also known as Jabber).\n" "It is therefore possible to connect to the chats using\n" "[XMPP client software](https://en.wikipedia.org/wiki/XMPP#Clients).\n" "This can be useful for example to facilitate moderation operations.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "The features described on this page must be enabled and configured by\n" "your Peertube instance's administrators. You may therefore not have access to them.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "If this feature is enabled on your instance, you can connect to Peertube\n" "chats using any XMPP account.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "To get the address of the room you want to join, you can use the \"share chat\"\n" "button that is located above the chat:\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "![Share button](/peertube-plugin-livechat/images/share_button.png?classes=shadow,border&height=200px)\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "By default, the share button is only visible to the owner of the video,\n" "and the admins/moderators of the instance.\n" "However, admins can decide to display this button for everyone.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "Then, choose \"Connect using XMPP\":\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "![Share XMPP](/peertube-plugin-livechat/images/share_xmpp_dialog.png?classes=shadow,border&height=200px)\n" msgstr "" #. type: Plain text #: support/documentation/content/en/documentation/user/xmpp_clients.md #, no-wrap msgid "" "Then you just have to click on \"open\" or copy/paste the address of the chat room into your XMPP client\n" "(using the \"join a room\" feature).\n" msgstr "" #. type: Title # #: support/documentation/content/en/_index.md #, no-wrap msgid "PeerTube plugin livechat" msgstr "" #. type: Plain text #: support/documentation/content/en/_index.md #: support/documentation/content/en/intro/_index.md #, no-wrap msgid "" "You can use the language selector in the left menu to view this documentation in different languages.\n" "Some translations are missing or incomplete. In this case, you'll see the English version of the text.\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/intro/_index.md #, no-wrap msgid "Introduction" msgstr "" #. type: Plain text #: support/documentation/content/en/intro/_index.md #, no-wrap msgid "This [Peertube](https://joinpeertube.org/) plugin is meant to provide chat system for Peertube videos.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/intro/_index.md #, no-wrap msgid "" "| | |\n" "|---|---|\n" "| ![Chat screenshot](/peertube-plugin-livechat/images/chat.png?classes=shadow,border&height=200px) | ![Fullscreen chat screenshot](/peertube-plugin-livechat/images/fullscreen.png?classes=shadow,border&height=200px) |\n" msgstr "" #. type: Plain text #: support/documentation/content/en/intro/_index.md #, no-wrap msgid "See a [demo](https://www.yiny.org/w/399a8d13-d4cf-4ef2-b843-98530a8ccbae).\n" msgstr "" #. type: Yaml Front Matter Hash Value: description #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "Bug tracking / New features requests" msgstr "" #. type: Yaml Front Matter Hash Value: title #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "Bug tracking & new features" msgstr "" #. type: Plain text #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "If you have new feature requests, bugs, or difficulties to setup the plugin, you can use the [Github issue tracker](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues). If possible, try using english or french.\n" msgstr "" #. type: Plain text #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "To have a glimpse to the roadmap for upcoming features, please refer to:\n" msgstr "" #. type: Bullet: '- ' #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "this [github project](https://github.com/users/JohnXLivingston/projects/1).\n" msgstr "" #. type: Bullet: '- ' #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "the [milestones on github](https://github.com/JohnXLivingston/peertube-plugin-livechat/milestones).\n" msgstr "" #. type: Plain text #: support/documentation/content/en/issues/_index.md #, no-wrap msgid "If you are a webdesigner or a ConverseJS/Prosody/XMPP expert, and want to help improve this plugin, you are welcome.\n" msgstr ""