Verified Commit 4dcee676 authored by Luc Didry's avatar Luc Didry

[i18n] Pillar generator internationalization

parent d099d5f6
Pipeline #132225 passed with stages
in 41 seconds
......@@ -58,3 +58,9 @@ Use <https://fiat-tux.frama.io/hat-softwares/salt/peertube> to create the needed
```
salt-ssh my_server state.sls peertube
```
## Translating
If you want to translate the pillar generator in your language, you can do it on <https://trad.framasoft.org/iteration/view/salt/peertube>.
Please, read its [homepage](https://trad.framasoft.org/) to know how to do it.
If you want to add a non-listed language on zanata, please create an issue on <https://framagit.org/fiat-tux/hat-softwares/salt/peertube/issues>.
.DS_Store
node_modules
/dist
po/*po
.zanata-cache/
# local env files
.env.local
......@@ -19,3 +21,4 @@ yarn-error.log*
*.njsproj
*.sln
*.sw?
push-locales:
node ./node_modules/i18next-conv/bin/index.js -l en -s public/locales/en.json -t po/peertube.pot
zanata-cli -q -B push
pull-locales:
zanata-cli -q -B pull --min-doc-percent 40
for i in po/*.po; do \
lang=$$(basename $$i | sed -e 's/\.po$$//'); \
node ./node_modules/i18next-conv/bin/index.js --skipUntranslated -l $$lang -s $$i -t public/locales/$$lang.json; \
done
stats-locales:
zanata-cli -q stats
......@@ -8,11 +8,16 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"@panter/vue-i18next": "^0.15.0",
"axios": "^0.18.0",
"bulma": "^0.7.4",
"bulma-extensions": "^6.2.5",
"core-js": "^2.6.5",
"filesize": "^4.1.2",
"i18next": "^15.1.0",
"i18next-browser-languagedetector": "^3.0.1",
"i18next-fetch-backend": "^2.2.0",
"iso-639": "^0.2.2",
"js-yaml": "^3.13.1",
"vue": "^2.6.10"
},
......@@ -23,6 +28,7 @@
"babel-eslint": "^10.0.1",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"i18next-conv": "^9.0.0",
"node-sass": "^4.12.0",
"sass-loader": "^7.1.0",
"vue-template-compiler": "^2.5.21"
......
msgid ""
msgstr ""
"Project-Id-Version: i18next-conv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"POT-Creation-Date: 2019-05-03T16:18:03.707Z\n"
"PO-Revision-Date: 2019-05-03T16:18:03.707Z\n"
"Language: en\n"
msgid "PeerTube pillar generator"
msgstr "PeerTube pillar generator"
msgid "Created by {{- opentag}}Luc Didry{{- endtag}}"
msgstr "Created by {{- opentag}}Luc Didry{{- endtag}}"
msgid "Source"
msgstr "Source"
msgid "unlimited"
msgstr "unlimited"
msgid "Your instance"
msgstr "Your instance"
msgid "Language"
msgstr "Language"
msgid ""
"Web address of your PeerTube instance (without {{- opentag}}http(s)://{{- "
"endtag}})"
msgstr ""
"Web address of your PeerTube instance (without {{- opentag}}http(s)://{{- "
"endtag}})"
msgid "Name of your instance"
msgstr "Name of your instance"
msgid "Short description of your instance"
msgstr "Short description of your instance"
msgid ""
"Long description of your instance (support {{- opentag}}Markdown{{- "
"endtag}})"
msgstr ""
"Long description of your instance (support {{- opentag}}Markdown{{- "
"endtag}})"
msgid "Terms of use (support {{- opentag}}Markdown{{- endtag}})"
msgstr "Terms of use (support {{- opentag}}Markdown{{- endtag}})"
msgid "Homepage"
msgstr "Homepage"
msgid "Video overview"
msgstr "Video overview"
msgid "Trending videos"
msgstr "Trending videos"
msgid "Recently added videos"
msgstr "Recently added videos"
msgid "Local videos"
msgstr "Local videos"
msgid ""
"Policy for displaying explicit videos (pornography, violent content…) on "
"pages listing videos (\"Overview\", \"Trend\", \"Recently added\", "
"\"Local\" pages)"
msgstr ""
"Policy for displaying explicit videos (pornography, violent content…) on "
"pages listing videos (\"Overview\", \"Trend\", \"Recently added\", "
"\"Local\" pages)"
msgid "Do not list explicit videos"
msgstr "Do not list explicit videos"
msgid "List but blur the thumbnails"
msgstr "List but blur the thumbnails"
msgid "Normally list explicit videos"
msgstr "Normally list explicit videos"
msgid "Setting up email sending"
msgstr "Setting up email sending"
msgid "Use the email daemon of your PeerTube server"
msgstr "Use the email daemon of your PeerTube server"
msgid "Email sending server"
msgstr "Email sending server"
msgid "Port"
msgstr "Port"
msgid "Username"
msgstr "Username"
msgid "Password"
msgstr "Password"
msgid "Use TLS?"
msgstr "Use TLS?"
msgid "Disable StartTLS?"
msgstr "Disable StartTLS?"
msgid "Path to the file of the certification authority"
msgstr "Path to the file of the certification authority"
msgid "Email sender address"
msgstr "Email sender address"
msgid "Searching for videos"
msgstr "Searching for videos"
msgid ""
"Allows to search for videos or accounts by their URL, which may be on "
"instances that are not federated with yours."
msgstr ""
"Allows to search for videos or accounts by their URL, which may be on "
"instances that are not federated with yours."
msgid ""
"When this feature is enabled, those who benefit from this feature will be "
"able to \"escape\" from the instances followed by yours. This means that "
"they will be able to follow channels, read videos or list videos of these "
"instances not followed by yours."
msgstr ""
"When this feature is enabled, those who benefit from this feature will be "
"able to \"escape\" from the instances followed by yours. This means that "
"they will be able to follow channels, read videos or list videos of these "
"instances not followed by yours."
msgid "Allow this for registered users?"
msgstr "Allow this for registered users?"
msgid "Allow this for anonymous visitors?"
msgstr "Allow this for anonymous visitors?"
msgid "Number of days on which trending videos will be calculated"
msgstr "Number of days on which trending videos will be calculated"
msgid "Contact form"
msgstr "Contact form"
msgid "Activate contact form? {{- opentag}}recommended{{- endtag}}"
msgstr "Activate contact form? {{- opentag}}recommended{{- endtag}}"
msgid "Registrations"
msgstr "Registrations"
msgid "Open registrations?"
msgstr "Open registrations?"
msgid ""
"Maximum number of accounts (when this number is reached, registrations are "
"disabled. For an unlimited number of accounts, put {{- "
"opentag}}-1{{{{-endtag}})"
msgstr ""
"Maximum number of accounts (when this number is reached, registrations are "
"disabled. For an unlimited number of accounts, put {{- "
"opentag}}-1{{{{-endtag}})"
msgid ""
"Checking the email address? (requires a configured and functional mail "
"server) {{- opentag}}recommended{{- endtag}}"
msgstr ""
"Checking the email address? (requires a configured and functional mail "
"server) {{- opentag}}recommended{{- endtag}}"
msgid "Disk quotas"
msgstr "Disk quotas"
msgid ""
"Default disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- "
"endtag}})"
msgstr ""
"Default disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- "
"endtag}})"
msgid ""
"Default daily disk quota per user (for an unlimited quota, put {{- "
"opentag}}-1{{- endtag}})"
msgstr ""
"Default daily disk quota per user (for an unlimited quota, put {{- "
"opentag}}-1{{- endtag}})"
msgid "Transcoding (videos re-encoding)"
msgstr "Transcoding (videos re-encoding)"
msgid "Activate transcoding? {{- opentag}}recommended{{- endtag}}"
msgstr "Activate transcoding? {{- opentag}}recommended{{- endtag}}"
msgid ""
"Allow additional extensions? This allows your users to upload.mkv, mov… "
"files instead of just .mp4 files. {{- opentag}}recommended{{- endtag}}"
msgstr ""
"Allow additional extensions? This allows your users to upload.mkv, mov… "
"files instead of just .mp4 files. {{- opentag}}recommended{{- endtag}}"
msgid "How many CPU threads should be allocated to transcoding?"
msgstr "How many CPU threads should be allocated to transcoding?"
msgid ""
"Transcoding in several qualities lower than the quality of the original "
"video allows visitors with low bit rates to enjoy the video smoothly."
msgstr ""
"Transcoding in several qualities lower than the quality of the original "
"video allows visitors with low bit rates to enjoy the video smoothly."
msgid "Transcode in {{quality}}p quality? {{- opentag}}recommended{{- endtag}}"
msgstr "Transcode in {{quality}}p quality? {{- opentag}}recommended{{- endtag}}"
msgid "Importing external videos"
msgstr "Importing external videos"
msgid "Allow your users to import remote videos (from YouTube, from torrent…)?"
msgstr "Allow your users to import remote videos (from YouTube, from torrent…)?"
msgid ""
"Allow for videos accessible in HTTP or any site supported by {{- "
"opentag}}youtube-dl{{- endtag}}?"
msgstr ""
"Allow for videos accessible in HTTP or any site supported by {{- "
"opentag}}youtube-dl{{- endtag}}?"
msgid "Allow via torrent (via URI magnet or torrent file)?"
msgstr "Allow via torrent (via URI magnet or torrent file)?"
msgid ""
"Apticron is a program that runs daily on your server and notifies you by "
"email if package updates are available."
msgstr ""
"Apticron is a program that runs daily on your server and notifies you by "
"email if package updates are available."
msgid "Install apticron? {{- opentag}}recommended{{- endtag}}"
msgstr "Install apticron? {{- opentag}}recommended{{- endtag}}"
msgid ""
"Recipient for apticron’s emails ({{- opentag}}root{{- endtag}} is ok if you "
"configured a real address in {{- opentag}}/etc/aliases{{- endtag}}"
msgstr ""
"Recipient for apticron’s emails ({{- opentag}}root{{- endtag}} is ok if you "
"configured a real address in {{- opentag}}/etc/aliases{{- endtag}}"
msgid "Download configuration"
msgstr "Download configuration"
msgid "Reset"
msgstr "Reset"
\ No newline at end of file
{
"PeerTube pillar generator": "PeerTube pillar generator",
"Created by {{- opentag}}Luc Didry{{- endtag}}": "Created by {{- opentag}}Luc Didry{{- endtag}}",
"Source": "Source",
"unlimited": "unlimited",
"Your instance": "Your instance",
"Language": "Language",
"Web address of your PeerTube instance (without {{- opentag}}http(s)://{{- endtag}})": "Web address of your PeerTube instance (without {{- opentag}}http(s)://{{- endtag}})",
"Name of your instance": "Name of your instance",
"Short description of your instance": "Short description of your instance",
"Long description of your instance (support {{- opentag}}Markdown{{- endtag}})": "Long description of your instance (support {{- opentag}}Markdown{{- endtag}})",
"Terms of use (support {{- opentag}}Markdown{{- endtag}})": "Terms of use (support {{- opentag}}Markdown{{- endtag}})",
"Homepage": "Homepage",
"Video overview": "Video overview",
"Trending videos": "Trending videos",
"Recently added videos": "Recently added videos",
"Local videos": "Local videos",
"Policy for displaying explicit videos (pornography, violent content…) on pages listing videos (\"Overview\", \"Trend\", \"Recently added\", \"Local\" pages)": "Policy for displaying explicit videos (pornography, violent content…) on pages listing videos (\"Overview\", \"Trend\", \"Recently added\", \"Local\" pages)",
"Do not list explicit videos": "Do not list explicit videos",
"List but blur the thumbnails": "List but blur the thumbnails",
"Normally list explicit videos": "Normally list explicit videos",
"Setting up email sending": "Setting up email sending",
"Use the email daemon of your PeerTube server": "Use the email daemon of your PeerTube server",
"Email sending server": "Email sending server",
"Port": "Port",
"Username": "Username",
"Password": "Password",
"Use TLS?": "Use TLS?",
"Disable StartTLS?": "Disable StartTLS?",
"Path to the file of the certification authority": "Path to the file of the certification authority",
"Email sender address": "Email sender address",
"Searching for videos": "Searching for videos",
"Allows to search for videos or accounts by their URL, which may be on instances that are not federated with yours.": "Allows to search for videos or accounts by their URL, which may be on instances that are not federated with yours.",
"When this feature is enabled, those who benefit from this feature will be able to \"escape\" from the instances followed by yours. This means that they will be able to follow channels, read videos or list videos of these instances not followed by yours.": "When this feature is enabled, those who benefit from this feature will be able to \"escape\" from the instances followed by yours. This means that they will be able to follow channels, read videos or list videos of these instances not followed by yours.",
"Allow this for registered users?": "Allow this for registered users?",
"Allow this for anonymous visitors?": "Allow this for anonymous visitors?",
"Number of days on which trending videos will be calculated": "Number of days on which trending videos will be calculated",
"Contact form": "Contact form",
"Activate contact form? {{- opentag}}recommended{{- endtag}}": "Activate contact form? {{- opentag}}recommended{{- endtag}}",
"Registrations": "Registrations",
"Open registrations?": "Open registrations?",
"Maximum number of accounts (when this number is reached, registrations are disabled. For an unlimited number of accounts, put {{- opentag}}-1{{{{-endtag}})": "Maximum number of accounts (when this number is reached, registrations are disabled. For an unlimited number of accounts, put {{- opentag}}-1{{{{-endtag}})",
"Checking the email address? (requires a configured and functional mail server) {{- opentag}}recommended{{- endtag}}": "Checking the email address? (requires a configured and functional mail server) {{- opentag}}recommended{{- endtag}}",
"Disk quotas": "Disk quotas",
"Default disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})": "Default disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})",
"Default daily disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})": "Default daily disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})",
"Transcoding (videos re-encoding)": "Transcoding (videos re-encoding)",
"Activate transcoding? {{- opentag}}recommended{{- endtag}}": "Activate transcoding? {{- opentag}}recommended{{- endtag}}",
"Allow additional extensions? This allows your users to upload.mkv, mov… files instead of just .mp4 files. {{- opentag}}recommended{{- endtag}}": "Allow additional extensions? This allows your users to upload.mkv, mov… files instead of just .mp4 files. {{- opentag}}recommended{{- endtag}}",
"How many CPU threads should be allocated to transcoding?": "How many CPU threads should be allocated to transcoding?",
"Transcoding in several qualities lower than the quality of the original video allows visitors with low bit rates to enjoy the video smoothly.": "Transcoding in several qualities lower than the quality of the original video allows visitors with low bit rates to enjoy the video smoothly.",
"Transcode in {{quality}}p quality? {{- opentag}}recommended{{- endtag}}": "Transcode in {{quality}}p quality? {{- opentag}}recommended{{- endtag}}",
"Importing external videos": "Importing external videos",
"Allow your users to import remote videos (from YouTube, from torrent…)?": "Allow your users to import remote videos (from YouTube, from torrent…)?",
"Allow for videos accessible in HTTP or any site supported by {{- opentag}}youtube-dl{{- endtag}}?": "Allow for videos accessible in HTTP or any site supported by {{- opentag}}youtube-dl{{- endtag}}?",
"Allow via torrent (via URI magnet or torrent file)?": "Allow via torrent (via URI magnet or torrent file)?",
"Apticron is a program that runs daily on your server and notifies you by email if package updates are available.": "Apticron is a program that runs daily on your server and notifies you by email if package updates are available.",
"Install apticron? {{- opentag}}recommended{{- endtag}}": "Install apticron? {{- opentag}}recommended{{- endtag}}",
"Recipient for apticron’s emails ({{- opentag}}root{{- endtag}} is ok if you configured a real address in {{- opentag}}/etc/aliases{{- endtag}}": "Recipient for apticron’s emails ({{- opentag}}root{{- endtag}} is ok if you configured a real address in {{- opentag}}/etc/aliases{{- endtag}}",
"Download configuration": "Download configuration",
"Reset": "Reset"
}
\ No newline at end of file
{
"PeerTube pillar generator": "Générateur de pillar pour PeerTube",
"Created by {{- opentag}}Luc Didry{{- endtag}}": "Créé par {{- opentag}}Luc Didry{{- endtag}}",
"Source": "Source",
"unlimited": "illimité",
"Your instance": "Votre instance",
"Language": "Langage",
"Web address of your PeerTube instance (without {{- opentag}}http(s)://{{- endtag}})": "Adresse web de votre instance PeerTube (sans {{- opentag}}http(s)://{{- endtag}})",
"Name of your instance": "Nom de votre instance",
"Short description of your instance": "Courte description de votre instance",
"Long description of your instance (support {{- opentag}}Markdown{{- endtag}})": "Description étendue de votre instance ({{- opentag}}Markdown{{- endtag}} supporté)",
"Terms of use (support {{- opentag}}Markdown{{- endtag}})": "Conditions d’utilisation ({{- opentag}}Markdown{{- endtag}} supporté)",
"Homepage": "Page d’accueil",
"Video overview": "Vue d’ensemble des vidéos",
"Trending videos": "Vidéos tendances",
"Recently added videos": "Vidéos récemment ajoutées",
"Local videos": "Vidéos locales",
"Policy for displaying explicit videos (pornography, violent content…) on pages listing videos (\"Overview\", \"Trend\", \"Recently added\", \"Local\" pages)": "Politique d’affichage des vidéos explicites (pornographie, contenu violent…) sur les pages listant les vidéos (pages « Vue d’ensemble », « Tendance », « Récemment ajoutées », « Locales »)",
"Do not list explicit videos": "Ne pas lister les vidéos explicites",
"List but blur the thumbnails": "Lister mais flouter les miniatures",
"Normally list explicit videos": "Lister normalement les vidéos explicites",
"Setting up email sending": "Paramètrage de l’envoi de courriels",
"Use the email daemon of your PeerTube server": "Utiliser le dæmon de courriel de votre serveur PeerTube",
"Email sending server": "Serveur d’envoi de courriel",
"Port": "Port",
"Username": "Identifiant",
"Password": "Mot de passe",
"Use TLS?": "Utiliser TLS ?",
"Disable StartTLS?": "Désactiver StartTLS ?",
"Path to the file of the certification authority": "Chemin du fichier de l’autorité de certification",
"Email sender address": "Adresse d’expéditeur des courriels",
"Searching for videos": "Recherche de vidéos",
"Allows to search for videos or accounts by their URL, which may be on instances that are not federated with yours.": "Permet de rechercher des vidéos ou des comptes par leur URL, qui peuvent être sur des instances non fédérées avec la vôtre.",
"When this feature is enabled, those who benefit from this feature will be able to \"escape\" from the instances followed by yours. This means that they will be able to follow channels, read videos or list videos of these instances not followed by yours.": "Lorsque cette fonctionnalité est activée, ceux qui bénéficient de cette fonctionnalité pourront « s’échapper » des instances suivies par la vôtre. Cela veut dire qu’ils pourront suivre des chaînes, lire des vidéos ou lister des vidéos de ces instances non suivies par la vôtre.",
"Allow this for registered users?": "Autoriser ceci pour les utilisateurs inscrits sur votre instance ?",
"Allow this for anonymous visitors?": "Autoriser ceci pour les visiteurs anonymes ?",
"Number of days on which trending videos will be calculated": "Nombre de jours sur lesquels les vidéos tendances seront calculées",
"Contact form": "Formulaire de contact",
"Activate contact form? {{- opentag}}recommended{{- endtag}}": "Activer le formulaire de contact ? {{- opentag}}recommandé{{- endtag}}",
"Registrations": "Inscriptions",
"Open registrations?": "Ouvrir les inscriptions ?",
"Maximum number of accounts (when this number is reached, registrations are disabled. For an unlimited number of accounts, put {{- opentag}}-1{{{{-endtag}})": "Nombre maximum de comptes (lorsque ce nombre est atteint, les inscriptions sont désactivées. Pour un nombre illimité de comptes, mettre {{- opentag}}-1{{- endtag}})",
"Checking the email address? (requires a configured and functional mail server) {{- opentag}}recommended{{- endtag}}": "Vérification de l’adresse de courriel ? (nécessite un serveur de courriel configuré et fonctionnel) {{- opentag}}recommandé{{- endtag}}",
"Disk quotas": "Quotas disque",
"Default disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})": "Quota disque par utilisateur par défaut (pour un quota illimité, mettre {{- opentag}}-1{{- endtag}})",
"Default daily disk quota per user (for an unlimited quota, put {{- opentag}}-1{{- endtag}})": "Quota disque quotidien par utilisateur par défaut (pour un quota illimité, mettre {{- opentag}}-1{{- endtag}})",
"Transcoding (videos re-encoding)": "Transcodage (réencodage des vidéos)",
"Activate transcoding? {{- opentag}}recommended{{- endtag}}": "Activer le transcodage ? {{- opentag}}recommandé{{- endtag}}",
"Allow additional extensions? This allows your users to upload.mkv, mov… files instead of just .mp4 files. {{- opentag}}recommended{{- endtag}}": "Autoriser les extensions additionnelles ? Cela permet à vos utilisateurs de téléverser des fichiers .mkv, mov… au lieu d’uniquement des fichiers .mp4. {{- opentag}}recommandé{{- endtag}}",
"How many CPU threads should be allocated to transcoding?": "Combien de <em>threads</em> CPU faut-il allouer au transcodage ?",
"Transcoding in several qualities lower than the quality of the original video allows visitors with low bit rates to enjoy the video smoothly.": "Transcoder en plusieurs qualités inférieures à la qualité de la vidéo d’origine permet aux visiteurs ayant un débit faible de profiter de la vidéo sans à-coups.",
"Transcode in {{quality}}p quality? {{- opentag}}recommended{{- endtag}}": "Transcoder en qualité {{quality}}p ? {{- opentag}}recommandé{{- endtag}}",
"Importing external videos": "Import de vidéos externes",
"Allow your users to import remote videos (from YouTube, from torrent…)?": "Permettre à vos utilisateurs d’importer des vidéos distantes (de YouTube, en torrent…) ?",
"Allow for videos accessible in HTTP or any site supported by {{- opentag}}youtube-dl{{- endtag}}?": "Permettre pour les vidéos accessibles en HTTP ou tout site supporté par {{- opentag}}youtube-dl{{- endtag}} ?",
"Allow via torrent (via URI magnet or torrent file)?": "Permettre via torrent (via URI magnet ou fichier torrent) ?",
"Apticron is a program that runs daily on your server and notifies you by email if package updates are available.": "Apticron est un programme lancé quotidiennement sur votre serveur et qui vous informe par courriel si des mises à jour de paquets sont disponibles.",
"Install apticron? {{- opentag}}recommended{{- endtag}}": "Installer apticron ? {{- opentag}}recommandé{{- endtag}}",
"Recipient for apticron’s emails ({{- opentag}}root{{- endtag}} is ok if you configured a real address in {{- opentag}}/etc/aliases{{- endtag}}": "Destinataire des courriels d’apticron ({{- opentag}}root{{- endtag}} peut convenir si vous avez configuré une véritable adresse dans {{- opentag}}/etc/aliases{{- endtag}})",
"Download configuration": "Télécharger la configuration",
"Reset": "Réinitialiser"
}
\ No newline at end of file
<template>
<section class="container content" id="app">
<h1 class="h1">Peertube pillar generator</h1>
<h1 class="h1 has-text-centered">
{{ $t('PeerTube pillar generator', {foo: 'bar'}) }}
</h1>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label for="lang" class="label">
{{ $t('Language') }}
</label>
</div>
<div class="field-body">
<div class="select">
<select id="lang" v-model="$i18n.i18next.language" v-on:change="changeLang">
<option v-for="lang in filteredLangs" v-bind:key="lang" :value="lang">{{ nativeName(lang) }}</option>
</select>
</div>
</div>
</div>
<Form/>
<footer class="has-text-centered is-size-7">
Créé par <a href="https://fiat-tux.fr" target="_blank" rel="noreferrer">Luc Didry</a>
<a href="https://framagit.org/fiat-tux/hat-softwares/salt-peertube" target="_blank" rel="noreferrer">Source</a>
<span v-html="$t('Created by {{- opentag}}Luc Didry{{- endtag}}', { opentag: fiatTuxUrl })"></span>
<a href="https://framagit.org/fiat-tux/hat-softwares/salt-peertube" target="_blank" rel="noreferrer">{{ $t('Source') }}</a>
</footer>
</section>
</template>
<script>
import Form from './components/Form.vue'
let iso_639_1 = require('iso-639').iso_639_1
export default {
name: 'app',
components: {
Form
}
name: 'app',
components: {
Form
},
data() {
return {
fiatTuxUrl: '<a href="https://fiat-tux.fr" target="_blank" rel="noreferrer">',
}
},
methods: {
nativeName: function(code) {
return this.capitalizeFirstLetter(iso_639_1[code].nativeName);
},
changeLang: function(event) {
this.$i18n.i18next.changeLanguage(event.target.value);
},
capitalizeFirstLetter: function(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
},
computed: {
filteredLangs: function() {
let langs = this.$i18n.i18next.options.whitelist
let index = langs.indexOf('cimode')
if (index === -1)
return langs
langs.splice(index, 1)
return langs
}
}
}
</script>
......
import Vue from 'vue'
import App from './App.vue'
import i18next from 'i18next';
import VueI18Next from '@panter/vue-i18next';
import Fetch from 'i18next-fetch-backend';
import LanguageDetector from 'i18next-browser-languagedetector';
Vue.use(VueI18Next);
i18next
.use(Fetch)
.use(LanguageDetector)
.init({
fallbackLng: 'en',
whitelist: [
'en',
'fr'
],
keySeparator: '•',
nsSeparator: 'Ŏ',
lowerCaseLng: true,
interpolation: {
defaultVariables: {
endtag: '</a>'
}
},
backend: {
loadPath: 'locales/{{lng}}.json'
}
})
const i18n = new VueI18Next(i18next);
Vue.config.productionTip = false
new Vue({
render: h => h(App),
render: h => h(App),
i18n: i18n
}).$mount('#app')
......@@ -627,7 +627,7 @@
core-js "^2.6.5"
regenerator-runtime "^0.13.2"
"@babel/runtime@^7.0.0":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.1":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.4.tgz#dc2e34982eb236803aa27a07fea6857af1b9171d"
integrity sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==
......@@ -689,6 +689,13 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@panter/vue-i18next@^0.15.0":
version "0.15.0"
resolved "https://registry.yarnpkg.com/@panter/vue-i18next/-/vue-i18next-0.15.0.tgz#e80ec712f090f199647d2cf67d20b752a3b4cff4"
integrity sha512-Np9/N2lgprP12adE+ZiNtq2zV1mjGN3+LKLI18UpL/dwKeHBIiikbYs+MT7L95XhPGCKJZpOI9pw6/lpakgZaQ==
dependencies:
deepmerge "^2.0.0"
"@soda/friendly-errors-webpack-plugin@^1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d"
......@@ -2677,6 +2684,11 @@ deepmerge@^1.5.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
deepmerge@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
......@@ -2958,6 +2970,13 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
encoding@^0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
dependencies:
iconv-lite "~0.4.13"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
......@@ -3801,6 +3820,15 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
gettext-parser@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-3.1.1.tgz#f2455f7cc402087a0ee5289fcca204702b7fe240"
integrity sha512-vNhWcqXEtZPs5Ft1ReA34g7ByWotpcOIeJvXVy2jF3/G2U9v6W0wG4Z4hXzcU8R//jArqkgHcVCGgGqa4vxVlQ==
dependencies:
encoding "^0.1.12"
readable-stream "^3.2.0"
safe-buffer "^5.1.2"
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
......@@ -4154,6 +4182,35 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
i18next-browser-languagedetector@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-3.0.1.tgz#a47c43176e8412c91e808afb7c6eb5367649aa8e"
integrity sha512-WFjPLNPWl62uu07AHY2g+KsC9qz0tyMq+OZEB/H7N58YKL/JLiCz9U709gaR20Mule/Ppn+uyfVx5REJJjn1HA==
i18next-conv@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/i18next-conv/-/i18next-conv-9.0.0.tgz#af10bc11676eaafc1e8087c1f49208aada6fb8d0"
integrity sha512-PMc4M6N6os2RXFVCmbEsWBFzt7K3UTMGnv3pRbOT3wymPpaO6sOGEaCQU2longLNvC1r3O7kVP4dtjI0zWW3Gg==
dependencies:
bluebird "^3.5.3"
chalk "^2.4.2"
commander "^2.19.0"
gettext-parser "^3.1.0"
mkdirp "^0.5.1"
node-gettext "^2.0.0"
i18next-fetch-backend@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/i18next-fetch-backend/-/i18next-fetch-backend-2.2.0.tgz#39ff6578596e0122e80692e04d7897ee373607d6"
integrity sha512-HodOCr4fezjMgJwWnOR/JUotdbM1onXdnB6Y+XDgDpXX58SkZXcyz6VmmUGc/8XMxFzq3162Qs2vO+SlO4TCFw==
i18next@^15.1.0:
version "15.1.0"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-15.1.0.tgz#4c2749a8158a6bf7b67da129b61c60e2d60e0d72"
integrity sha512-7cCrVn/BcoSOGJwTilAjGgWWzUDg4scTLX1sIBMWq6QjYYBrT+ChSAvmgVyQxkHinaIcswC04XK6l15RxM4Dkg==
dependencies:
"@babel/runtime" "^7.3.1"
iconv-lite@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
......@@ -4161,7 +4218,7 @@ iconv-lite@0.4.23:
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
......@@ -4647,6 +4704,11 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
iso-639@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/iso-639/-/iso-639-0.2.2.tgz#8ad382e5f77e8aead9fa2697d1e279e417af9156"
integrity sha1-itOC5fd+iurZ+iaX0eJ55BevkVY=
isobject@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
......@@ -4939,6 +5001,11 @@ lodash.defaultsdeep@^4.6.0:
resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz#bec1024f85b1bd96cbea405b23c14ad6443a6f81"
integrity sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=
lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.kebabcase@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
......@@ -5419,6 +5486,13 @@ node-forge@0.7.5:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
node-gettext@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/node-gettext/-/node-gettext-2.0.0.tgz#f1dc1237cdc546f51593da340304b8beba5b8525"
integrity sha1-8dwSN83FRvUVk9o0AwS4vrpbhSU=
dependencies:
lodash.get "^4.4.2"
node-gyp@^3.8.0:
version "3.8.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
......@@ -6678,7 +6752,7 @@ read-pkg@^5.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.0.6, readable-stream@^3.1.1:
readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9"
integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config xmlns="http://zanata.org/namespace/config/">
<url>https://trad.framasoft.org/</url>
<project>salt</project>
<project-type>gettext</project-type>
<project-version>peertube</project-version>
<src-dir>po</src-dir>
<trans-dir>po</trans-dir>
</config>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment