Add French translation,improve German translation,add support for video captions,add support for video thumbnails
This commit is contained in:
parent
068546b84e
commit
61213b5628
|
@ -9,7 +9,7 @@ A webclient for Mastodon and Pleroma which looks like Twitter
|
||||||
Follow our Mastodon account and never miss an important update: [@halcyon@social.csswg.org](https://social.csswg.org/@halcyon)
|
Follow our Mastodon account and never miss an important update: [@halcyon@social.csswg.org](https://social.csswg.org/@halcyon)
|
||||||
|
|
||||||
## Instances
|
## Instances
|
||||||
We moved our instances list to a wiki page: https://notabug.org/halcyon-suite/halcyon/wiki/Instances
|
We moved our instances list to our webpage: https://www.halcyon.social/instances.php
|
||||||
|
|
||||||
## Translate
|
## Translate
|
||||||
[Help us translating Halcyon into many languages](https://translate.zanata.org/project/view/halcyon)
|
[Help us translating Halcyon into many languages](https://translate.zanata.org/project/view/halcyon)
|
||||||
|
@ -26,6 +26,7 @@ We moved our instances list to a wiki page: https://notabug.org/halcyon-suite/ha
|
||||||
or read our new documentation pages to install it manually: https://www.halcyon.social/documentation.php?page=install
|
or read our new documentation pages to install it manually: https://www.halcyon.social/documentation.php?page=install
|
||||||
|
|
||||||
## Blog
|
## Blog
|
||||||
|
- Release of Version 2.2.5 - Add French translation,improve German translation,add support for video captions,add support for video thumbnails
|
||||||
- Release of Version 2.2.4 - Easily switch between pictures in overlay,show pictures in full height in timeline,duplicated threads removed,many smaller bugfixes
|
- Release of Version 2.2.4 - Easily switch between pictures in overlay,show pictures in full height in timeline,duplicated threads removed,many smaller bugfixes
|
||||||
- Release of Version 2.2.3 - Fixed login with Pleroma,fixed compatibility with Pawoo (older Mastodon),added support for prefers-color-scheme,some more fixes
|
- Release of Version 2.2.3 - Fixed login with Pleroma,fixed compatibility with Pawoo (older Mastodon),added support for prefers-color-scheme,some more fixes
|
||||||
- Our new information website [halcyon.social](https://www.halcyon.social) came online
|
- Our new information website [halcyon.social](https://www.halcyon.social) came online
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,3 +7,4 @@ pl_PL.UTF-8 UTF-8
|
||||||
gl_ES.UTF-8 UTF-8
|
gl_ES.UTF-8 UTF-8
|
||||||
it_IT.UTF-8 UTF-8
|
it_IT.UTF-8 UTF-8
|
||||||
cs_CZ.UTF-8 UTF-8
|
cs_CZ.UTF-8 UTF-8
|
||||||
|
fr_FR.UTF-8 UTF-8
|
||||||
|
|
Binary file not shown.
|
@ -1,14 +1,15 @@
|
||||||
# Niklas Poslovski <ni.pos@yandex.com>, 2018. #zanata
|
# Niklas Poslovski <ni.pos@yandex.com>, 2018. #zanata
|
||||||
|
# Niklas Poslovski <ni.pos@yandex.com>, 2019. #zanata
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-09-30 09:53+0000\n"
|
"POT-Creation-Date: 2019-01-19 16:33+0000\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"PO-Revision-Date: 2018-10-14 09:41+0000\n"
|
"PO-Revision-Date: 2019-03-05 12:45+0000\n"
|
||||||
"Last-Translator: Niklas Poslovski <ni.pos@yandex.com>\n"
|
"Last-Translator: Thiemo Tiziani <thiemo.tiziani@dev-wiki.de>\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"X-Generator: Zanata 4.6.2\n"
|
"X-Generator: Zanata 4.6.2\n"
|
||||||
|
@ -32,11 +33,14 @@ msgstr "Koreanisch"
|
||||||
msgid "Language_pl_PL"
|
msgid "Language_pl_PL"
|
||||||
msgstr "Polnisch"
|
msgstr "Polnisch"
|
||||||
|
|
||||||
|
msgid "Language_gl_ES"
|
||||||
|
msgstr "Galizisch (Spanien)"
|
||||||
|
|
||||||
msgid "Language_pt_BR"
|
msgid "Language_pt_BR"
|
||||||
msgstr "Portugiesisch (Brasilien)"
|
msgstr "Portugiesisch (Brasilien)"
|
||||||
|
|
||||||
msgid "Language_gl_ES"
|
msgid "Language_it_IT"
|
||||||
msgstr "Galizisch (Spanien)"
|
msgstr "Italienisch"
|
||||||
|
|
||||||
msgid "Sensitive content"
|
msgid "Sensitive content"
|
||||||
msgstr "Sensitiver Inhalt"
|
msgstr "Sensitiver Inhalt"
|
||||||
|
@ -258,7 +262,7 @@ msgid "Blank for default"
|
||||||
msgstr "Leer lassen für Standardeinstellung"
|
msgstr "Leer lassen für Standardeinstellung"
|
||||||
|
|
||||||
msgid "FOLLOWING"
|
msgid "FOLLOWING"
|
||||||
msgstr "FOLGE"
|
msgstr "FOLGE ICH"
|
||||||
|
|
||||||
msgid "Interesting accounts of devs"
|
msgid "Interesting accounts of devs"
|
||||||
msgstr "Interessante Accounts von Entwickler_innen"
|
msgstr "Interessante Accounts von Entwickler_innen"
|
||||||
|
@ -594,7 +598,7 @@ msgid "Remove"
|
||||||
msgstr "Entfernen"
|
msgstr "Entfernen"
|
||||||
|
|
||||||
msgid "Add to list"
|
msgid "Add to list"
|
||||||
msgstr "Liste hinzufügen"
|
msgstr "Zur Liste hinzufügen"
|
||||||
|
|
||||||
msgid "Are you sure that you want to mute this user?"
|
msgid "Are you sure that you want to mute this user?"
|
||||||
msgstr "Bist du sicher, dass du den Nutzer stummschalten möchtest?"
|
msgstr "Bist du sicher, dass du den Nutzer stummschalten möchtest?"
|
||||||
|
@ -651,3 +655,201 @@ msgstr "Frage"
|
||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
msgid "Autocomplete enabled"
|
||||||
|
msgstr "Autovervollständigung aktiviert"
|
||||||
|
|
||||||
|
msgid "Autocomplete disabled"
|
||||||
|
msgstr "Autovervollständigung deaktiviert"
|
||||||
|
|
||||||
|
msgid "Changed custom profile field"
|
||||||
|
msgstr "Profil-Metadaten aktualisiert"
|
||||||
|
|
||||||
|
msgid "Notifications when tab is closed enabled"
|
||||||
|
msgstr "Desktopbenachrichtigungen bei geschlossenem Tab aktiviert"
|
||||||
|
|
||||||
|
msgid "Notifications when tab is closed disabled"
|
||||||
|
msgstr "Desktopbenachrichtigungen bei geschlossenem Tab deaktiviert"
|
||||||
|
|
||||||
|
msgid "Toots of bots shown"
|
||||||
|
msgstr "Toots von Bots gezeigt"
|
||||||
|
|
||||||
|
msgid "Toots of bots hidden"
|
||||||
|
msgstr "Toots von Bots verborgen"
|
||||||
|
|
||||||
|
msgid "Filter created"
|
||||||
|
msgstr "Filter erstellt"
|
||||||
|
|
||||||
|
msgid "Gif animations enabled"
|
||||||
|
msgstr "Gif Animationen aktiviert"
|
||||||
|
|
||||||
|
msgid "Gif animations disabled"
|
||||||
|
msgstr "Gif Animationen deaktiviert"
|
||||||
|
|
||||||
|
msgid "Video player enabled"
|
||||||
|
msgstr "Videoplayer aktiviert"
|
||||||
|
|
||||||
|
msgid "Video player disabled"
|
||||||
|
msgstr "Videoplayer deaktiviert"
|
||||||
|
|
||||||
|
msgid "Audio player enabled"
|
||||||
|
msgstr "Audioplayer aktiviert"
|
||||||
|
|
||||||
|
msgid "Audio player disabled"
|
||||||
|
msgstr "Audioplayer deaktiviert"
|
||||||
|
|
||||||
|
msgid "PeerTube embeds enabled"
|
||||||
|
msgstr "PeerTube Einbettungen aktiviert"
|
||||||
|
|
||||||
|
msgid "PeerTube embeds disabled"
|
||||||
|
msgstr "PeerTube Einbettungen deaktiviert"
|
||||||
|
|
||||||
|
msgid "YouPlay embeds enabled"
|
||||||
|
msgstr "YouPlay Einbettungen aktiviert"
|
||||||
|
|
||||||
|
msgid "YouPlay embeds disabled"
|
||||||
|
msgstr "YouPlay Einbettungen deaktiviert"
|
||||||
|
|
||||||
|
msgid "Invidio.us embeds enabled"
|
||||||
|
msgstr "Invidio.us Einbettungen aktiviert"
|
||||||
|
|
||||||
|
msgid "Invidio.us embeds disabled"
|
||||||
|
msgstr "Invidio.us Einbettungen deaktiviert"
|
||||||
|
|
||||||
|
msgid "Vimeo embeds enabled"
|
||||||
|
msgstr "Vimeo Einbettungen aktiviert"
|
||||||
|
|
||||||
|
msgid "Vimeo embeds disabled"
|
||||||
|
msgstr "Vimeo Einbettungen deaktiviert"
|
||||||
|
|
||||||
|
msgid "Thread"
|
||||||
|
msgstr "Thema"
|
||||||
|
|
||||||
|
msgid "Never"
|
||||||
|
msgstr "Niemals"
|
||||||
|
|
||||||
|
msgid "Don't change"
|
||||||
|
msgstr "Nichts ändern"
|
||||||
|
|
||||||
|
msgid "Filter updated"
|
||||||
|
msgstr "Filter aktualisiert"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to delete this filter?"
|
||||||
|
msgstr "Bist du sicher, dass du diesen Filter löschen willst?"
|
||||||
|
|
||||||
|
msgid "Your filter has been deleted"
|
||||||
|
msgstr "Dein Filter wurde gelöscht"
|
||||||
|
|
||||||
|
msgid "Toot to"
|
||||||
|
msgstr "Toot an"
|
||||||
|
|
||||||
|
msgid "Administrated by"
|
||||||
|
msgstr "Administriert von"
|
||||||
|
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Mitglieder"
|
||||||
|
|
||||||
|
msgid "Connections"
|
||||||
|
msgstr "Verbindungen"
|
||||||
|
|
||||||
|
msgid "Notifications when tab closed"
|
||||||
|
msgstr "Desktopbenachrichtigungen bei geschlossenem Tab"
|
||||||
|
|
||||||
|
msgid "Filter settings"
|
||||||
|
msgstr "Filter Einstellungen"
|
||||||
|
|
||||||
|
msgid "Show toots of bots"
|
||||||
|
msgstr "Zeige Toots von Bots"
|
||||||
|
|
||||||
|
msgid "Add new filter"
|
||||||
|
msgstr "Filter hinzufügen"
|
||||||
|
|
||||||
|
msgid "Create a filter"
|
||||||
|
msgstr "Erstelle neuen Filter"
|
||||||
|
|
||||||
|
msgid "Word or phrase to filter"
|
||||||
|
msgstr "Wort oder Satz zum Filter"
|
||||||
|
|
||||||
|
msgid "Filter in the following timelines"
|
||||||
|
msgstr "Filtern von folgenden Zeitleisten"
|
||||||
|
|
||||||
|
msgid "Expires in"
|
||||||
|
msgstr "Läuft aus in"
|
||||||
|
|
||||||
|
msgid "Autocomplete in compose field"
|
||||||
|
msgstr "Autovervollständigung im Textfeld"
|
||||||
|
|
||||||
|
msgid "Media settings"
|
||||||
|
msgstr "Medieneinstellungen"
|
||||||
|
|
||||||
|
msgid "Play animated GIFs"
|
||||||
|
msgstr "Animierte GIF's abspielen"
|
||||||
|
|
||||||
|
msgid "Enable video player"
|
||||||
|
msgstr "Aktiviere Videoplayer"
|
||||||
|
|
||||||
|
msgid "Enable audio player"
|
||||||
|
msgstr "Aktiviere Audioplayer"
|
||||||
|
|
||||||
|
msgid "Embed PeerTube videos"
|
||||||
|
msgstr "Einbetten von PeerTube Videos"
|
||||||
|
|
||||||
|
msgid "Embed YouTube using YouPlay"
|
||||||
|
msgstr "Einbetten von Youtube Videos via YouPlay"
|
||||||
|
|
||||||
|
msgid "Embed YouTube using Invidio.us"
|
||||||
|
msgstr "Einbetten von YouTube Videos via Invidio.us"
|
||||||
|
|
||||||
|
msgid "Embed Vimeo using YouPlay"
|
||||||
|
msgstr "Einbetten von Vimeo Videos via YouPlay"
|
||||||
|
|
||||||
|
msgid "Custom profile fields"
|
||||||
|
msgstr "Profil Metadaten"
|
||||||
|
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Name"
|
||||||
|
|
||||||
|
msgid "Value"
|
||||||
|
msgstr "Wert"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To verify that the links in your custom fields really belong to you, you can "
|
||||||
|
"add the link below to your website. The link text can be changed to whatever "
|
||||||
|
"you want."
|
||||||
|
msgstr ""
|
||||||
|
"Um zu überprüfen, ob die Links in deinem Profil Metadaten wirklich dir "
|
||||||
|
"gehören, kannst du den Link unten zu deiner Webseite hinzufügen. Den Link "
|
||||||
|
"Text kannst du beliebig verändern."
|
||||||
|
|
||||||
|
msgid "Message"
|
||||||
|
msgstr "Nachricht"
|
||||||
|
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filter"
|
||||||
|
|
||||||
|
msgid "minutes"
|
||||||
|
msgstr "Minuten"
|
||||||
|
|
||||||
|
msgid "hour"
|
||||||
|
msgstr "Stunde"
|
||||||
|
|
||||||
|
msgid "hours"
|
||||||
|
msgstr "Stunden"
|
||||||
|
|
||||||
|
msgid "day"
|
||||||
|
msgstr "Tag"
|
||||||
|
|
||||||
|
msgid "week"
|
||||||
|
msgstr "Woche"
|
||||||
|
|
||||||
|
msgid "Filter posts irreversible"
|
||||||
|
msgstr "Beiträge unumkehrbar Filtern"
|
||||||
|
|
||||||
|
msgid "Whole word"
|
||||||
|
msgstr "Ganze Wörter"
|
||||||
|
|
||||||
|
msgid "FILTERS"
|
||||||
|
msgstr "FILTER"
|
||||||
|
|
||||||
|
msgid "MEDIA"
|
||||||
|
msgstr "MEDIEN"
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,853 @@
|
||||||
|
# Niklas Poslovski <ni.pos@yandex.com>, 2019. #zanata
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-01-19 16:33+0000\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"PO-Revision-Date: 2019-03-07 02:05+0000\n"
|
||||||
|
"Last-Translator: Shika <shikayachan@laposte.net>\n"
|
||||||
|
"Language-Team: French\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"X-Generator: Zanata 4.6.2\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||||
|
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Langue"
|
||||||
|
|
||||||
|
msgid "Language_en_US"
|
||||||
|
msgstr "English (US)"
|
||||||
|
|
||||||
|
msgid "Language_de_DE"
|
||||||
|
msgstr "German"
|
||||||
|
|
||||||
|
msgid "Language_ja_JP"
|
||||||
|
msgstr "Japanese"
|
||||||
|
|
||||||
|
msgid "Language_ko_KR"
|
||||||
|
msgstr "Korean"
|
||||||
|
|
||||||
|
msgid "Language_pl_PL"
|
||||||
|
msgstr "Polish"
|
||||||
|
|
||||||
|
msgid "Language_gl_ES"
|
||||||
|
msgstr "Galician"
|
||||||
|
|
||||||
|
msgid "Language_pt_BR"
|
||||||
|
msgstr "Portuguese (Brazil)"
|
||||||
|
|
||||||
|
msgid "Language_it_IT"
|
||||||
|
msgstr "Italian"
|
||||||
|
|
||||||
|
msgid "Sensitive content"
|
||||||
|
msgstr "Contenu sensible"
|
||||||
|
|
||||||
|
msgid "Click to view"
|
||||||
|
msgstr "Cliquer pour voir"
|
||||||
|
|
||||||
|
msgid "SHOW MORE"
|
||||||
|
msgstr "Déplier"
|
||||||
|
|
||||||
|
msgid "SHOW LESS"
|
||||||
|
msgstr "Replier"
|
||||||
|
|
||||||
|
msgid "Public"
|
||||||
|
msgstr "Public"
|
||||||
|
|
||||||
|
msgid "Unlisted"
|
||||||
|
msgstr "Non Listé"
|
||||||
|
|
||||||
|
msgid "Followers-only"
|
||||||
|
msgstr "Abonné·e·s uniquement"
|
||||||
|
|
||||||
|
msgid "Direct"
|
||||||
|
msgstr "Direct"
|
||||||
|
|
||||||
|
msgid "Delete Toot"
|
||||||
|
msgstr "Supprimer le Toot"
|
||||||
|
|
||||||
|
msgid "Unpin Toot"
|
||||||
|
msgstr "Détacher le Toot"
|
||||||
|
|
||||||
|
msgid "Pin Toot"
|
||||||
|
msgstr "Épingler le Toot"
|
||||||
|
|
||||||
|
msgid "Mute"
|
||||||
|
msgstr "Masquer"
|
||||||
|
|
||||||
|
msgid "Block"
|
||||||
|
msgstr "Bloquer"
|
||||||
|
|
||||||
|
msgid "Report this Toot"
|
||||||
|
msgstr "Signaler ce Toot"
|
||||||
|
|
||||||
|
msgid "Copy link to Toot"
|
||||||
|
msgstr "Copier le lien vers le Toot"
|
||||||
|
|
||||||
|
msgid "View original"
|
||||||
|
msgstr "Voir l'original"
|
||||||
|
|
||||||
|
msgid "Boosted"
|
||||||
|
msgstr "Boosté"
|
||||||
|
|
||||||
|
msgid "Pinned Toot"
|
||||||
|
msgstr "Toot épinglé"
|
||||||
|
|
||||||
|
msgid "favourited Your Toot"
|
||||||
|
msgstr "a ajouté votre toot à ses favoris"
|
||||||
|
|
||||||
|
msgid "boosted Your Toot"
|
||||||
|
msgstr "a boosté votre toot"
|
||||||
|
|
||||||
|
msgid "followed you"
|
||||||
|
msgstr "vous suit"
|
||||||
|
|
||||||
|
msgid "Follow"
|
||||||
|
msgstr "Suivre"
|
||||||
|
|
||||||
|
msgid "Toot your reply"
|
||||||
|
msgstr "Répondre"
|
||||||
|
|
||||||
|
msgid "Reply"
|
||||||
|
msgstr "Répondre"
|
||||||
|
|
||||||
|
msgid "Content warning"
|
||||||
|
msgstr "Avertissement"
|
||||||
|
|
||||||
|
msgid "Jan"
|
||||||
|
msgstr "Jan"
|
||||||
|
|
||||||
|
msgid "Feb"
|
||||||
|
msgstr "Fev"
|
||||||
|
|
||||||
|
msgid "Mar"
|
||||||
|
msgstr "Mar"
|
||||||
|
|
||||||
|
msgid "Apr"
|
||||||
|
msgstr "Avr"
|
||||||
|
|
||||||
|
msgid "May"
|
||||||
|
msgstr "Mai"
|
||||||
|
|
||||||
|
msgid "Jun"
|
||||||
|
msgstr "Jun"
|
||||||
|
|
||||||
|
msgid "Jul"
|
||||||
|
msgstr "Jul"
|
||||||
|
|
||||||
|
msgid "Aug"
|
||||||
|
msgstr "Aou"
|
||||||
|
|
||||||
|
msgid "Sep"
|
||||||
|
msgstr "Sep"
|
||||||
|
|
||||||
|
msgid "Oct"
|
||||||
|
msgstr "Oct"
|
||||||
|
|
||||||
|
msgid "Nov"
|
||||||
|
msgstr "Nov"
|
||||||
|
|
||||||
|
msgid "Dec"
|
||||||
|
msgstr "Dec"
|
||||||
|
|
||||||
|
msgid "Changed setting to"
|
||||||
|
msgstr "A changé les paramètres pour"
|
||||||
|
|
||||||
|
msgid "Mark as NSFW by default enabled"
|
||||||
|
msgstr "Marquer comme NSFW par défaut activé"
|
||||||
|
|
||||||
|
msgid "Mark as NSFW by default disabled"
|
||||||
|
msgstr "Marquer comme NSFW par défaut desactivé"
|
||||||
|
|
||||||
|
msgid "Who to follow enabled"
|
||||||
|
msgstr "Qui Suivre activé"
|
||||||
|
|
||||||
|
msgid "Who to follow disabled"
|
||||||
|
msgstr "Qui Suivre desactivé"
|
||||||
|
|
||||||
|
msgid "Changed about me setting"
|
||||||
|
msgstr "a changé le paramètre A Propos de moi"
|
||||||
|
|
||||||
|
msgid "Uploaded new avatar"
|
||||||
|
msgstr "a mis à jour son avatar"
|
||||||
|
|
||||||
|
msgid "Uploaded new header"
|
||||||
|
msgstr "a mis à jour son En-tête"
|
||||||
|
|
||||||
|
msgid "Account locked"
|
||||||
|
msgstr "Compte verrouillé"
|
||||||
|
|
||||||
|
msgid "Account unlocked"
|
||||||
|
msgstr "Compte déverrouillé"
|
||||||
|
|
||||||
|
msgid "Link previews enabled"
|
||||||
|
msgstr "Aperçu des liens activé"
|
||||||
|
|
||||||
|
msgid "Link previews disabled"
|
||||||
|
msgstr "Aperçu des liens desactivé"
|
||||||
|
|
||||||
|
msgid "You didn't allow notifications"
|
||||||
|
msgstr "Vous n'autorisez pas les notifications"
|
||||||
|
|
||||||
|
msgid "Desktop notifications enabled"
|
||||||
|
msgstr "Notification du bureau activé"
|
||||||
|
|
||||||
|
msgid "Desktop notifications disabled"
|
||||||
|
msgstr "Notification du bureau desactivé"
|
||||||
|
|
||||||
|
msgid "Replies shown"
|
||||||
|
msgstr "Réponses affichées"
|
||||||
|
|
||||||
|
msgid "Replies hidden"
|
||||||
|
msgstr "Réponses cachées"
|
||||||
|
|
||||||
|
msgid "CW content shown"
|
||||||
|
msgstr "Avertissements affichés"
|
||||||
|
|
||||||
|
msgid "CW content hidden"
|
||||||
|
msgstr "Avertissements cachés"
|
||||||
|
|
||||||
|
msgid "NSFW content shown"
|
||||||
|
msgstr "Contenu NSFW affichés"
|
||||||
|
|
||||||
|
msgid "NSFW content hidden"
|
||||||
|
msgstr "Contenu NSFW caché"
|
||||||
|
|
||||||
|
msgid "Reply to"
|
||||||
|
msgstr "Répondre"
|
||||||
|
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "Signaler"
|
||||||
|
|
||||||
|
msgid "Report a Toot of"
|
||||||
|
msgstr "Signaler ce Toot"
|
||||||
|
|
||||||
|
msgid "What's happening?"
|
||||||
|
msgstr "Quoi de neuf ?"
|
||||||
|
|
||||||
|
msgid "Toot"
|
||||||
|
msgstr "Toot"
|
||||||
|
|
||||||
|
msgid "Compose new Toot"
|
||||||
|
msgstr "Composer un nouveau Toot"
|
||||||
|
|
||||||
|
msgid "Please describe what the problem with the Toot is."
|
||||||
|
msgstr "Veuillez décrire le problème avec le Toot"
|
||||||
|
|
||||||
|
msgid "TOOTS"
|
||||||
|
msgstr "TOOTS"
|
||||||
|
|
||||||
|
msgid "PEOPLE"
|
||||||
|
msgstr "PERSONNES"
|
||||||
|
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Paramètres"
|
||||||
|
|
||||||
|
msgid "GENERAL"
|
||||||
|
msgstr "GÉNÉRAL "
|
||||||
|
|
||||||
|
msgid "PROFILE"
|
||||||
|
msgstr "PROFIL"
|
||||||
|
|
||||||
|
msgid "APPEARANCE"
|
||||||
|
msgstr "APPARENCE"
|
||||||
|
|
||||||
|
msgid "Change instance"
|
||||||
|
msgstr "Changer d'instance"
|
||||||
|
|
||||||
|
msgid "Blank for default"
|
||||||
|
msgstr "Blanc par défaut"
|
||||||
|
|
||||||
|
msgid "FOLLOWING"
|
||||||
|
msgstr "SUIVIT"
|
||||||
|
|
||||||
|
msgid "Interesting accounts of devs"
|
||||||
|
msgstr "Comptes de devs intéressants"
|
||||||
|
|
||||||
|
msgid "Halcyon for"
|
||||||
|
msgstr "Halcyon pour"
|
||||||
|
|
||||||
|
msgid "About"
|
||||||
|
msgstr "À propos"
|
||||||
|
|
||||||
|
msgid "Terms"
|
||||||
|
msgstr "Conditions générales d'utilisation"
|
||||||
|
|
||||||
|
msgid "Apps"
|
||||||
|
msgstr "Applications"
|
||||||
|
|
||||||
|
msgid "Source code"
|
||||||
|
msgstr "Code source"
|
||||||
|
|
||||||
|
msgid "Other instances"
|
||||||
|
msgstr "Autres instances"
|
||||||
|
|
||||||
|
msgid "Privacy policy"
|
||||||
|
msgstr "Politique de confidentialité"
|
||||||
|
|
||||||
|
msgid "Version"
|
||||||
|
msgstr "Version"
|
||||||
|
|
||||||
|
msgid "Who to follow"
|
||||||
|
msgstr "Qui Suivre"
|
||||||
|
|
||||||
|
msgid "Enable who to follow"
|
||||||
|
msgstr "Activer Qui Suivre"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Halcyon needs to connect to an external server to get a list of users which "
|
||||||
|
"have similar interests as you. If you want to use this feature, please opt-"
|
||||||
|
"in."
|
||||||
|
msgstr ""
|
||||||
|
"Halcyon a besoin de se connecter à un serveur extérieur pour avoir une liste "
|
||||||
|
"d'utilisateur·ice·s qui ont des intérêts commun avec vous. Si vous voulez "
|
||||||
|
"utiliser cette fonction, engagez vous."
|
||||||
|
|
||||||
|
msgid "MORE"
|
||||||
|
msgstr "PLUS"
|
||||||
|
|
||||||
|
msgid "FOLLOWERS"
|
||||||
|
msgstr "ABONNÉ·E·S"
|
||||||
|
|
||||||
|
msgid "Following"
|
||||||
|
msgstr "Suivit"
|
||||||
|
|
||||||
|
msgid "You'll no longer receive notifications from this user"
|
||||||
|
msgstr "Vous ne recevrez plus de notifications de cet·te utilisateur·ice."
|
||||||
|
|
||||||
|
msgid "Unmuted this user"
|
||||||
|
msgstr "Démasquer cet·te utilisateur·ice"
|
||||||
|
|
||||||
|
msgid "This user has been blocked"
|
||||||
|
msgstr "Cet·te utilisateur·ice a été bloqué"
|
||||||
|
|
||||||
|
msgid "Unblocked this user"
|
||||||
|
msgstr "Débloquer cet·te utilisateur·ice"
|
||||||
|
|
||||||
|
msgid "Your Toot has been deleted"
|
||||||
|
msgstr "Votre Toot a été supprimé"
|
||||||
|
|
||||||
|
msgid "Your Toot has been pinned"
|
||||||
|
msgstr "Votre Toot a été épinglé"
|
||||||
|
|
||||||
|
msgid "Your Toot has been unpinned"
|
||||||
|
msgstr "Votre Toot a été détaché"
|
||||||
|
|
||||||
|
msgid "Edit profile"
|
||||||
|
msgstr "Editer le profil"
|
||||||
|
|
||||||
|
msgid "FAVOURITES"
|
||||||
|
msgstr "FAVORIS"
|
||||||
|
|
||||||
|
msgid "Show"
|
||||||
|
msgstr "Afficher"
|
||||||
|
|
||||||
|
msgid "Blocking"
|
||||||
|
msgstr "Blocage"
|
||||||
|
|
||||||
|
msgid "Muting"
|
||||||
|
msgstr "Masquage"
|
||||||
|
|
||||||
|
msgid "Requested"
|
||||||
|
msgstr "Demandé"
|
||||||
|
|
||||||
|
msgid "Photos and toots"
|
||||||
|
msgstr "Photos et toots"
|
||||||
|
|
||||||
|
msgid "favourited your toot"
|
||||||
|
msgstr "a ajouté votre toot à ses favoris"
|
||||||
|
|
||||||
|
msgid "boosted your toot"
|
||||||
|
msgstr "a boosté votre toot"
|
||||||
|
|
||||||
|
msgid "mentioned you"
|
||||||
|
msgstr "vous a mentionné"
|
||||||
|
|
||||||
|
msgid "Your Toot was posted!"
|
||||||
|
msgstr "Votre Toot a été posté"
|
||||||
|
|
||||||
|
msgid "News"
|
||||||
|
msgstr "Nouvelles"
|
||||||
|
|
||||||
|
msgid "Source"
|
||||||
|
msgstr "Source"
|
||||||
|
|
||||||
|
msgid "Privacy"
|
||||||
|
msgstr "Confidentialité"
|
||||||
|
|
||||||
|
msgid "Imprint"
|
||||||
|
msgstr "Impression"
|
||||||
|
|
||||||
|
msgid "Contact"
|
||||||
|
msgstr "Contact"
|
||||||
|
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Se connecter"
|
||||||
|
|
||||||
|
msgid "Login to Halcyon"
|
||||||
|
msgstr "Se connecter à Halcyon "
|
||||||
|
|
||||||
|
msgid "create an account"
|
||||||
|
msgstr "créer un compte"
|
||||||
|
|
||||||
|
msgid "or"
|
||||||
|
msgstr "ou"
|
||||||
|
|
||||||
|
msgid "I agree with the"
|
||||||
|
msgstr "Je suis d'accord avec le"
|
||||||
|
|
||||||
|
msgid "What is Halcyon"
|
||||||
|
msgstr "Qu'est-ce que Halcyon "
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"which aims to recreate the simple and beautiful user interface of Twitter "
|
||||||
|
"while keeping all advantages of decentral networks in focus."
|
||||||
|
msgstr ""
|
||||||
|
"qui a pour but de recréer l'interface utilisateur simple et magnifique de "
|
||||||
|
"Twitter, tout en gardant les avantages des réseaux décentralisés."
|
||||||
|
|
||||||
|
msgid "Halcyon is a webclient for"
|
||||||
|
msgstr "Halcyon est un client web pour"
|
||||||
|
|
||||||
|
msgid "Contact / Feedback"
|
||||||
|
msgstr "Contact / Réactions"
|
||||||
|
|
||||||
|
msgid "Use my contact form"
|
||||||
|
msgstr "Utiliser mon Formulaire de contact"
|
||||||
|
|
||||||
|
msgid "Help us"
|
||||||
|
msgstr "Nous aider"
|
||||||
|
|
||||||
|
msgid "Halcyon Terms of Use"
|
||||||
|
msgstr "Conditions d'utilisation de Halcyon "
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This terms of use agreement is for the users of web service Halcyon for "
|
||||||
|
"Mastodon and Pleroma (Halcyon for short) hosted at"
|
||||||
|
msgstr ""
|
||||||
|
"Ces Conditions générales d'utilisation sont pour les utilisateur·ice·s de "
|
||||||
|
"Halcyon pour Mastodon et Pleroma (Halcyon pour faire court) hébergé à"
|
||||||
|
|
||||||
|
msgid "Your Reply was posted!"
|
||||||
|
msgstr "Votre Réponse a été posté"
|
||||||
|
|
||||||
|
msgid "Toot reported successfully!"
|
||||||
|
msgstr "Votre Toot a été signalé avec succès !"
|
||||||
|
|
||||||
|
msgid "Link successfully copied!"
|
||||||
|
msgstr "Le lien a été copiée avec succès !"
|
||||||
|
|
||||||
|
msgid "Home"
|
||||||
|
msgstr "Accueil"
|
||||||
|
|
||||||
|
msgid "Local"
|
||||||
|
msgstr "Local"
|
||||||
|
|
||||||
|
msgid "Federated"
|
||||||
|
msgstr "Fédéré"
|
||||||
|
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Notifications"
|
||||||
|
|
||||||
|
msgid "Search Mastodon"
|
||||||
|
msgstr "Chercher dans Mastodon"
|
||||||
|
|
||||||
|
msgid "View profile"
|
||||||
|
msgstr "Consulter le profil"
|
||||||
|
|
||||||
|
msgid "Log out"
|
||||||
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
|
msgid "All"
|
||||||
|
msgstr "Tout"
|
||||||
|
|
||||||
|
msgid "new notitification"
|
||||||
|
msgstr "nouvelle notification"
|
||||||
|
|
||||||
|
msgid "Show all NSFW content"
|
||||||
|
msgstr "Afficher tout le contenu NSFW"
|
||||||
|
|
||||||
|
msgid "Show all CW content"
|
||||||
|
msgstr "Afficher tous les Avertissements"
|
||||||
|
|
||||||
|
msgid "Show replies"
|
||||||
|
msgstr "Afficher les réponses"
|
||||||
|
|
||||||
|
msgid "Desktop notifications"
|
||||||
|
msgstr "Notification du bureau"
|
||||||
|
|
||||||
|
msgid "Enable link previews"
|
||||||
|
msgstr "Activer l'aperçu des liens"
|
||||||
|
|
||||||
|
msgid "Auto update"
|
||||||
|
msgstr "Mise à jour automatique"
|
||||||
|
|
||||||
|
msgid "Manual update"
|
||||||
|
msgstr "Mise à jour manuelle"
|
||||||
|
|
||||||
|
msgid "Appearance settings"
|
||||||
|
msgstr "Paramètres d'apparences"
|
||||||
|
|
||||||
|
msgid "New posts streaming"
|
||||||
|
msgstr "New posts streaming"
|
||||||
|
|
||||||
|
msgid "replies"
|
||||||
|
msgstr "Réponses"
|
||||||
|
|
||||||
|
msgid "General settings"
|
||||||
|
msgstr "Paramètres généraux"
|
||||||
|
|
||||||
|
msgid "Default post privacy"
|
||||||
|
msgstr "Confidentialité des posts par défaut"
|
||||||
|
|
||||||
|
msgid "Mark as NSFW by default"
|
||||||
|
msgstr "Marquer comme NSFW par défaut"
|
||||||
|
|
||||||
|
msgid "Media"
|
||||||
|
msgstr "Média"
|
||||||
|
|
||||||
|
msgid "FOLLOWS YOU"
|
||||||
|
msgstr "Vous suit"
|
||||||
|
|
||||||
|
msgid "Local instance"
|
||||||
|
msgstr "Instance Locale"
|
||||||
|
|
||||||
|
msgid "Hashtag search filter"
|
||||||
|
msgstr "Filtre de recherche pour Hashtag"
|
||||||
|
|
||||||
|
msgid "All instances"
|
||||||
|
msgstr "Toutes les instances"
|
||||||
|
|
||||||
|
msgid "Local only"
|
||||||
|
msgstr "Local Seulement"
|
||||||
|
|
||||||
|
msgid "Lock account"
|
||||||
|
msgstr "Verouiller le compte"
|
||||||
|
|
||||||
|
msgid "Header"
|
||||||
|
msgstr "En-tête"
|
||||||
|
|
||||||
|
msgid "Avatar"
|
||||||
|
msgstr "Avatar"
|
||||||
|
|
||||||
|
msgid "About me"
|
||||||
|
msgstr "À propos"
|
||||||
|
|
||||||
|
msgid "Display name"
|
||||||
|
msgstr "Nom Affiché"
|
||||||
|
|
||||||
|
msgid "Profile settings"
|
||||||
|
msgstr "Paramètres du profil "
|
||||||
|
|
||||||
|
msgid "Toots"
|
||||||
|
msgstr "Toots"
|
||||||
|
|
||||||
|
msgid "Favourites"
|
||||||
|
msgstr "Favoris"
|
||||||
|
|
||||||
|
msgid "New favourite"
|
||||||
|
msgstr "Nouveau Favori"
|
||||||
|
|
||||||
|
msgid "New boost"
|
||||||
|
msgstr "Nouveau boost"
|
||||||
|
|
||||||
|
msgid "New follower"
|
||||||
|
msgstr "Nouvel abonné·e·s"
|
||||||
|
|
||||||
|
msgid "New mention"
|
||||||
|
msgstr "Nouvelle mention"
|
||||||
|
|
||||||
|
msgid "Dark theme enabled"
|
||||||
|
msgstr "Thème sombre activé"
|
||||||
|
|
||||||
|
msgid "Dark theme disabled"
|
||||||
|
msgstr "Thème sombre desactivé"
|
||||||
|
|
||||||
|
msgid "Only on top"
|
||||||
|
msgstr "Seulement au dessus"
|
||||||
|
|
||||||
|
msgid "Enable dark theme"
|
||||||
|
msgstr "Activer le thème sombre"
|
||||||
|
|
||||||
|
msgid "Please enter the new name for this list."
|
||||||
|
msgstr "Entrez le nouveau nom de cette liste"
|
||||||
|
|
||||||
|
msgid "The name of your list can't be empty!"
|
||||||
|
msgstr "Le nom de cette liste ne peut pas être vide !"
|
||||||
|
|
||||||
|
msgid "Your list has been renamed"
|
||||||
|
msgstr "Votre liste a été renommée"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to delete this list?"
|
||||||
|
msgstr "Êtes-vous sur·e que vous voulez supprimer cette liste ?"
|
||||||
|
|
||||||
|
msgid "Your list has been deleted"
|
||||||
|
msgstr "Votre liste a été supprimée"
|
||||||
|
|
||||||
|
msgid "Please enter the name of your new list."
|
||||||
|
msgstr "Entrez le nom de votre nouvelle liste"
|
||||||
|
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Ajouter"
|
||||||
|
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Supprimer"
|
||||||
|
|
||||||
|
msgid "Add to list"
|
||||||
|
msgstr "Ajouter à la liste"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to mute this user?"
|
||||||
|
msgstr "Êtes-vous certain de vouloir masquer cet·te utilisateur·ice ?"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to block this user?"
|
||||||
|
msgstr "Êtes-vous certain de vouloir bloquer cet·te utilisateur·ice ?"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to delete this toot?"
|
||||||
|
msgstr "Êtes-vous certain de vouloir supprimer ce toot ?"
|
||||||
|
|
||||||
|
msgid "Added this account to the list"
|
||||||
|
msgstr "Ce compte a été ajouté à votre liste"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"You need to follow this user to add him/her to the list. Do you want to do "
|
||||||
|
"that now?"
|
||||||
|
msgstr ""
|
||||||
|
"Vous devez suivre cet·te utilisateur·ice pour l'ajouter à la liste. Voulez "
|
||||||
|
"vous le faire maintenant ?"
|
||||||
|
|
||||||
|
msgid "You successfully followed this user."
|
||||||
|
msgstr "Vous suivez cet·te utilisateur·ice"
|
||||||
|
|
||||||
|
msgid "Removed this account from the list"
|
||||||
|
msgstr "Ce compte a été supprimé de votre liste"
|
||||||
|
|
||||||
|
msgid "Joined at"
|
||||||
|
msgstr "Rejoins"
|
||||||
|
|
||||||
|
msgid "Direct messages"
|
||||||
|
msgstr "Messages Directs"
|
||||||
|
|
||||||
|
msgid "Lists"
|
||||||
|
msgstr "Listes"
|
||||||
|
|
||||||
|
msgid "Open public profile"
|
||||||
|
msgstr "Ouvrir le Profil Utilisateur"
|
||||||
|
|
||||||
|
msgid "My Lists"
|
||||||
|
msgstr "Mes listes"
|
||||||
|
|
||||||
|
msgid "Confirmation"
|
||||||
|
msgstr "Confirmation"
|
||||||
|
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr "Oui"
|
||||||
|
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Annuler"
|
||||||
|
|
||||||
|
msgid "Prompt"
|
||||||
|
msgstr "Demander"
|
||||||
|
|
||||||
|
msgid "Ok"
|
||||||
|
msgstr "Ok"
|
||||||
|
|
||||||
|
msgid "Autocomplete enabled"
|
||||||
|
msgstr "Complétion automatique activé"
|
||||||
|
|
||||||
|
msgid "Autocomplete disabled"
|
||||||
|
msgstr "Complétion automatique désactivé"
|
||||||
|
|
||||||
|
msgid "Changed custom profile field"
|
||||||
|
msgstr "Changer le champ personnalisé"
|
||||||
|
|
||||||
|
msgid "Notifications when tab is closed enabled"
|
||||||
|
msgstr "Notification quand l'onglet est fermé activé"
|
||||||
|
|
||||||
|
msgid "Notifications when tab is closed disabled"
|
||||||
|
msgstr "Notification quand l'onglet est fermé désactivé"
|
||||||
|
|
||||||
|
msgid "Toots of bots shown"
|
||||||
|
msgstr "Toots des bots affichés"
|
||||||
|
|
||||||
|
msgid "Toots of bots hidden"
|
||||||
|
msgstr "Toots des bots cachés"
|
||||||
|
|
||||||
|
msgid "Filter created"
|
||||||
|
msgstr "Filtre créé"
|
||||||
|
|
||||||
|
msgid "Gif animations enabled"
|
||||||
|
msgstr "Animations GIF activées"
|
||||||
|
|
||||||
|
msgid "Gif animations disabled"
|
||||||
|
msgstr "Animations GIF desactivées"
|
||||||
|
|
||||||
|
msgid "Video player enabled"
|
||||||
|
msgstr "Lanceur de vidéos activé"
|
||||||
|
|
||||||
|
msgid "Video player disabled"
|
||||||
|
msgstr "Lanceur de vidéos desactivé"
|
||||||
|
|
||||||
|
msgid "Audio player enabled"
|
||||||
|
msgstr "Lanceur de sons activé"
|
||||||
|
|
||||||
|
msgid "Audio player disabled"
|
||||||
|
msgstr "Lanceur de sons desactivé"
|
||||||
|
|
||||||
|
msgid "PeerTube embeds enabled"
|
||||||
|
msgstr "Ancrage Peertube activé"
|
||||||
|
|
||||||
|
msgid "PeerTube embeds disabled"
|
||||||
|
msgstr "Ancrage Peertube desactivé"
|
||||||
|
|
||||||
|
msgid "YouPlay embeds enabled"
|
||||||
|
msgstr "Ancrage YouPlay activé"
|
||||||
|
|
||||||
|
msgid "YouPlay embeds disabled"
|
||||||
|
msgstr "Ancrage YouPlay desactivé"
|
||||||
|
|
||||||
|
msgid "Invidio.us embeds enabled"
|
||||||
|
msgstr "Ancrage Invidio.us activé"
|
||||||
|
|
||||||
|
msgid "Invidio.us embeds disabled"
|
||||||
|
msgstr "Ancrage Invidio.us desactivé"
|
||||||
|
|
||||||
|
msgid "Vimeo embeds enabled"
|
||||||
|
msgstr "Ancrage Vimeo activé"
|
||||||
|
|
||||||
|
msgid "Vimeo embeds disabled"
|
||||||
|
msgstr "Ancrage Vimeo desactivé"
|
||||||
|
|
||||||
|
msgid "Thread"
|
||||||
|
msgstr "Discussion"
|
||||||
|
|
||||||
|
msgid "Never"
|
||||||
|
msgstr "Jamais"
|
||||||
|
|
||||||
|
msgid "Don't change"
|
||||||
|
msgstr "Ne pas modifier"
|
||||||
|
|
||||||
|
msgid "Filter updated"
|
||||||
|
msgstr "Filtre mis à jour"
|
||||||
|
|
||||||
|
msgid "Are you sure that you want to delete this filter?"
|
||||||
|
msgstr "Êtes-vous certain de vouloir supprimer ce filtre ?"
|
||||||
|
|
||||||
|
msgid "Your filter has been deleted"
|
||||||
|
msgstr "Votre filtre a été supprimée"
|
||||||
|
|
||||||
|
msgid "Toot to"
|
||||||
|
msgstr "Tooter à"
|
||||||
|
|
||||||
|
msgid "Administrated by"
|
||||||
|
msgstr "Administré par"
|
||||||
|
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Utilisateur·ice"
|
||||||
|
|
||||||
|
msgid "Connections"
|
||||||
|
msgstr "Connections"
|
||||||
|
|
||||||
|
msgid "Notifications when tab closed"
|
||||||
|
msgstr "Notifications quand l'onglet est fermé"
|
||||||
|
|
||||||
|
msgid "Filter settings"
|
||||||
|
msgstr "Paramètres de Filtres"
|
||||||
|
|
||||||
|
msgid "Show toots of bots"
|
||||||
|
msgstr "Afficher les Toots des bots"
|
||||||
|
|
||||||
|
msgid "Add new filter"
|
||||||
|
msgstr "Créer un nouveau filtre"
|
||||||
|
|
||||||
|
msgid "Create a filter"
|
||||||
|
msgstr "Créer un filtre"
|
||||||
|
|
||||||
|
msgid "Word or phrase to filter"
|
||||||
|
msgstr "Mot ou phrase à filtrer"
|
||||||
|
|
||||||
|
msgid "Filter in the following timelines"
|
||||||
|
msgstr "Filtrer dans les fils suivis"
|
||||||
|
|
||||||
|
msgid "Expires in"
|
||||||
|
msgstr "Expire dans"
|
||||||
|
|
||||||
|
msgid "Autocomplete in compose field"
|
||||||
|
msgstr "Complétion automatique dans le champ"
|
||||||
|
|
||||||
|
msgid "Media settings"
|
||||||
|
msgstr "Paramètre des Médias"
|
||||||
|
|
||||||
|
msgid "Play animated GIFs"
|
||||||
|
msgstr "Jouer les Animations GIFs"
|
||||||
|
|
||||||
|
msgid "Enable video player"
|
||||||
|
msgstr "Activer le Lanceur de Vidéo"
|
||||||
|
|
||||||
|
msgid "Enable audio player"
|
||||||
|
msgstr "Activer le Lanceur de Son"
|
||||||
|
|
||||||
|
msgid "Embed PeerTube videos"
|
||||||
|
msgstr "Ancrer les vidéos PeerTube"
|
||||||
|
|
||||||
|
msgid "Embed YouTube using YouPlay"
|
||||||
|
msgstr "Ancrer YouTube utilisant YouPlay"
|
||||||
|
|
||||||
|
msgid "Embed YouTube using Invidio.us"
|
||||||
|
msgstr "Ancrer YouTube utilisant Invidio.us"
|
||||||
|
|
||||||
|
msgid "Embed Vimeo using YouPlay"
|
||||||
|
msgstr "Ancrer Vimeo utilisant YouPlay"
|
||||||
|
|
||||||
|
msgid "Custom profile fields"
|
||||||
|
msgstr "Personnaliser les champs du profil"
|
||||||
|
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Nom"
|
||||||
|
|
||||||
|
msgid "Value"
|
||||||
|
msgstr "Valeur"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To verify that the links in your custom fields really belong to you, you can "
|
||||||
|
"add the link below to your website. The link text can be changed to whatever "
|
||||||
|
"you want."
|
||||||
|
msgstr ""
|
||||||
|
"Pour vérifier que le lien dans vos champs personnalisé vous appartient "
|
||||||
|
"vraiment, vous pouvez ajouter ce lien à votre website. Le lien peut être "
|
||||||
|
"changé quand vous voulez."
|
||||||
|
|
||||||
|
msgid "Message"
|
||||||
|
msgstr "Message"
|
||||||
|
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filtre"
|
||||||
|
|
||||||
|
msgid "minutes"
|
||||||
|
msgstr "minutes"
|
||||||
|
|
||||||
|
msgid "hour"
|
||||||
|
msgstr "heure"
|
||||||
|
|
||||||
|
msgid "hours"
|
||||||
|
msgstr "heures"
|
||||||
|
|
||||||
|
msgid "day"
|
||||||
|
msgstr "jour"
|
||||||
|
|
||||||
|
msgid "week"
|
||||||
|
msgstr "semaine"
|
||||||
|
|
||||||
|
msgid "Filter posts irreversible"
|
||||||
|
msgstr "Filtre des posts irréversibles"
|
||||||
|
|
||||||
|
msgid "Whole word"
|
||||||
|
msgstr "Mot entier"
|
||||||
|
|
||||||
|
msgid "FILTERS"
|
||||||
|
msgstr "FILTRES"
|
||||||
|
|
||||||
|
msgid "MEDIA"
|
||||||
|
msgstr "MÉDIA"
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
function curlGet($url) {
|
||||||
|
if(in_array('curl', get_loaded_extensions())){
|
||||||
|
$appSettings = parse_ini_file('../config/config.ini',true);
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0');
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||||
|
if($appSettings["Proxy"]["type"]) {
|
||||||
|
curl_setopt($ch, CURLOPT_PROXY, $appSettings["Proxy"]["type"]."://".$appSettings["Proxy"]["domain"].":".$appSettings["Proxy"]["port"]);
|
||||||
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $appSettings["Proxy"]["username"].":".$appSettings["Proxy"]["password"]);
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
header("Content-type: image/jpeg");
|
||||||
|
echo curlGet($_GET["url"]);
|
||||||
|
?>
|
|
@ -19,7 +19,12 @@ $vdata = vimeo(htmlspecialchars($_GET["id"]));
|
||||||
if($vdata) {
|
if($vdata) {
|
||||||
$vlink = $vdata["dl"];
|
$vlink = $vdata["dl"];
|
||||||
?>
|
?>
|
||||||
<video class="video-js vjs-default-skin" controls id="player" poster="<?=$vdata["info"]["Thumbnail"]?>" title="<?=$vdata["info"]["Title"]?>" style="width:100%;height:100%">
|
<video class="video-js vjs-default-skin" controls id="player" poster="image.php?url=<?=urlencode($vdata["info"]["Thumbnail"])?>" title="<?=$vdata["info"]["Title"]?>" style="width:100%;height:100%">
|
||||||
|
<?php
|
||||||
|
for($i=0;$i<count($vdata["info"]["Captions"]);$i++) {
|
||||||
|
echo "<track kind='captions' label='".$vdata["info"]["Captions"][$i]["title"]."' src='vimeocaption.php?url=".urlencode($vdata["info"]["Captions"][$i]["url"])."'>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
Your browser does not support the video tag.
|
Your browser does not support the video tag.
|
||||||
</video>
|
</video>
|
||||||
<script>
|
<script>
|
||||||
|
@ -29,7 +34,7 @@ for($i=0;$i<count($vlink);$i++) {
|
||||||
echo "{src:'".$vlink[$i]["url"]."',label:'".$vlink[$i]["type"]."',audio:true},";
|
echo "{src:'".$vlink[$i]["url"]."',label:'".$vlink[$i]["type"]."',audio:true},";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
]});
|
],thumbnails:JSON.parse('<?=json_encode($vdata["info"]["Thumbs"])?>')});
|
||||||
</script>
|
</script>
|
||||||
<?php } else { ?>
|
<?php } else { ?>
|
||||||
Sorry, there was an error while trying to load your video.
|
Sorry, there was an error while trying to load your video.
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
function curlGet($url) {
|
||||||
|
if(in_array('curl', get_loaded_extensions())){
|
||||||
|
$appSettings = parse_ini_file('../config/config.ini',true);
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0');
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||||
|
if($appSettings["Proxy"]["type"]) {
|
||||||
|
curl_setopt($ch, CURLOPT_PROXY, $appSettings["Proxy"]["type"]."://".$appSettings["Proxy"]["domain"].":".$appSettings["Proxy"]["port"]);
|
||||||
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $appSettings["Proxy"]["username"].":".$appSettings["Proxy"]["password"]);
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
echo str_replace("<i>","",str_replace("</i>","",curlGet("http://vimeo.com".$_GET["url"])));
|
||||||
|
?>
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
ini_set("display_errors","1");
|
||||||
|
error_reporting(E_ALL);
|
||||||
function curl_load($url) {
|
function curl_load($url) {
|
||||||
if(in_array('curl', get_loaded_extensions())){
|
if(in_array('curl', get_loaded_extensions())){
|
||||||
$appSettings = parse_ini_file('../config/config.ini',true);
|
$appSettings = parse_ini_file('../config/config.ini',true);
|
||||||
|
@ -25,10 +27,29 @@ $start = substr($data, strlen('config_url":"'));
|
||||||
$stop = stripos($start, ',');
|
$stop = stripos($start, ',');
|
||||||
$str = substr($start, 0, $stop);
|
$str = substr($start, 0, $stop);
|
||||||
$data = json_decode(curl_load(rtrim(str_replace("\\", "", $str), '"')));
|
$data = json_decode(curl_load(rtrim(str_replace("\\", "", $str), '"')));
|
||||||
|
$captions = array();
|
||||||
|
if(isset($data->request->text_tracks)) {
|
||||||
|
for($i=0;$i<count($data->request->text_tracks);$i++) {
|
||||||
|
$caption = array();
|
||||||
|
$caption["title"] = $data->request->text_tracks[$i]->label;
|
||||||
|
$caption["lang"] = $data->request->text_tracks[$i]->lang;
|
||||||
|
$caption["url"] = $data->request->text_tracks[$i]->url;
|
||||||
|
array_push($captions,$caption);
|
||||||
|
}
|
||||||
|
}
|
||||||
$info = array();
|
$info = array();
|
||||||
$info["info"] = array();
|
$info["info"] = array();
|
||||||
$info["info"]["Title"] = $data->video->title;
|
$info["info"]["Title"] = $data->video->title;
|
||||||
$info["info"]["Thumbnail"] = $data->video->thumbs->base;
|
$info["info"]["Thumbnail"] = $data->video->thumbs->base;
|
||||||
|
$info["info"]["Captions"] = $captions;
|
||||||
|
$info["info"]["Thumbs"] = array();
|
||||||
|
$info["info"]["Thumbs"]["src"] = "image.php?url=".urlencode($data->request->thumb_preview->url);
|
||||||
|
$info["info"]["Thumbs"]["width"] = $data->request->thumb_preview->width;
|
||||||
|
$info["info"]["Thumbs"]["height"] = $data->request->thumb_preview->height;
|
||||||
|
$info["info"]["Thumbs"]["fwidth"] = $data->request->thumb_preview->frame_width;
|
||||||
|
$info["info"]["Thumbs"]["fheight"] = $data->request->thumb_preview->frame_height;
|
||||||
|
$info["info"]["Thumbs"]["fcount"] = $data->request->thumb_preview->frames;
|
||||||
|
$info["info"]["Thumbs"]["row"] = $data->request->thumb_preview->columns;
|
||||||
$info["dl"] = array();
|
$info["dl"] = array();
|
||||||
for($i=0;$i<count($data->request->files->progressive);$i++) {
|
for($i=0;$i<count($data->request->files->progressive);$i++) {
|
||||||
$xinfo = array();
|
$xinfo = array();
|
||||||
|
|
|
@ -20,7 +20,12 @@ $vdata = $ytclass->getDownloadLinks(htmlspecialchars($_GET["id"]));
|
||||||
if($vdata) {
|
if($vdata) {
|
||||||
$vlink = $vdata["dl"];
|
$vlink = $vdata["dl"];
|
||||||
?>
|
?>
|
||||||
<video class="video-js vjs-default-skin" controls id="player" poster="<?=$vdata["info"]["Thumbnail"]?>" title="<?=$vdata["info"]["Title"]?>" style="width:100%;height:100%">
|
<video class="video-js vjs-default-skin" controls id="player" poster="image.php?url=<?=urlencode($vdata["info"]["Thumbnail"])?>" title="<?=$vdata["info"]["Title"]?>" style="width:100%;height:100%">
|
||||||
|
<?php
|
||||||
|
for($i=0;$i<count($vdata["info"]["Captions"]);$i++) {
|
||||||
|
echo "<track kind='captions' label='".$vdata["info"]["Captions"][$i]["title"]."' src='ytcaption.php?lang=".$vdata["info"]["Captions"][$i]["lang"]."&url=".urlencode($vdata["info"]["Captions"][$i]["url"])."'>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
Your browser does not support the video tag.
|
Your browser does not support the video tag.
|
||||||
</video>
|
</video>
|
||||||
<script>
|
<script>
|
||||||
|
@ -41,7 +46,7 @@ for($i=0;$i<count($vlink);$i++) {
|
||||||
if(strstr($vlink[$i]["type"],"(Audio Only)")) echo "'".$vlink[$i]["url"]."',";
|
if(strstr($vlink[$i]["type"],"(Audio Only)")) echo "'".$vlink[$i]["url"]."',";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
]});
|
],thumbnails:JSON.parse('<?=json_encode($vdata["info"]["Thumbs"])?>')});
|
||||||
</script>
|
</script>
|
||||||
<?php } else { ?>
|
<?php } else { ?>
|
||||||
Sorry, there was an error while trying to load your video.
|
Sorry, there was an error while trying to load your video.
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
function curlGet($url) {
|
||||||
|
if(in_array('curl', get_loaded_extensions())){
|
||||||
|
$appSettings = parse_ini_file('../config/config.ini',true);
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0');
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||||
|
if($appSettings["Proxy"]["type"]) {
|
||||||
|
curl_setopt($ch, CURLOPT_PROXY, $appSettings["Proxy"]["type"]."://".$appSettings["Proxy"]["domain"].":".$appSettings["Proxy"]["port"]);
|
||||||
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $appSettings["Proxy"]["username"].":".$appSettings["Proxy"]["password"]);
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
function timevtt($gtime) {
|
||||||
|
if(strlen(date("H",intval($gtime))-1) == 1) $hour = "0".intval(date("H",intval($gtime))-1);
|
||||||
|
else $hour = intval(date("H",intval($gtime))-1);
|
||||||
|
if(strlen(explode(".",$gtime)[1]) == 3) return $hour.":".date("i:s",intval($gtime)).".".explode(".",$gtime)[1];
|
||||||
|
if(strlen(explode(".",$gtime)[1]) == 2) return $hour.":".date("i:s",intval($gtime)).".".explode(".",$gtime)[1]."0";
|
||||||
|
if(strlen(explode(".",$gtime)[1]) == 1) return $hour.":".date("i:s",intval($gtime)).".".explode(".",$gtime)[1]."00";
|
||||||
|
if(strlen(explode(".",$gtime)[1]) == 0) return $hour.":".date("i:s",intval($gtime)).".".explode(".",$gtime)[1]."000";
|
||||||
|
}
|
||||||
|
$caption = new SimpleXMLElement(curlGet($_GET["url"]));
|
||||||
|
echo "WEBVTT\n";
|
||||||
|
echo "Kind: captions\n";
|
||||||
|
echo "Language: ".$_GET["lang"]."\n\n";
|
||||||
|
for($i=0;$i<count($caption->text);$i++) {
|
||||||
|
if($i == count($caption->text)-1) {
|
||||||
|
if(strlen(explode(".",$caption->text[$i]["start"])[1]+explode(".",$caption->text[$i]["dur"])[1]) == 3) $endtime = array(explode(".",$caption->text[$i]["start"])[0]+explode(".",$caption->text[$i]["dur"])[0],explode(".",$caption->text[$i]["start"])[1]+explode(".",$caption->text[$i]["dur"])[1]);
|
||||||
|
else $endtime = array(explode(".",$caption->text[$i]["start"])[0]+explode(".",$caption->text[$i]["dur"])[0]+1,explode(".",$caption->text[$i]["start"])[1]+explode(".",$caption->text[$i]["dur"])[1]);
|
||||||
|
echo timevtt($caption->text[$i]["start"])." --> ".timevtt(implode(".",$endtime))."\n";
|
||||||
|
}
|
||||||
|
else echo timevtt($caption->text[$i]["start"])." --> ".timevtt($caption->text[$i+1]["start"])."\n";
|
||||||
|
echo preg_replace('/<font color="#[a-fA-F0-9]{6}">/',"",str_replace("</font>","",$caption->text[$i]))."\n\n";
|
||||||
|
}
|
||||||
|
?>
|
|
@ -4,11 +4,22 @@ private $cache_dir;
|
||||||
private $cookie_dir;
|
private $cookie_dir;
|
||||||
private $itag_info = array(
|
private $itag_info = array(
|
||||||
// Full Video
|
// Full Video
|
||||||
|
5 => "FLV[400x240]",
|
||||||
|
6 => "FLV[450x270]",
|
||||||
|
17 => "3GP[176x144]",
|
||||||
18 => "MP4[640x360]",
|
18 => "MP4[640x360]",
|
||||||
22 => "HD MP4[1280x720]",
|
22 => "HD MP4[1280x720]",
|
||||||
|
34 => "FLV[640x360]",
|
||||||
|
35 => "FLV[854x480]",
|
||||||
36 => "3GP[320x180]",
|
36 => "3GP[320x180]",
|
||||||
|
37 => "MP4[1920x1080]",
|
||||||
|
38 => "MP4[4096x3072]",
|
||||||
43 => "WEBM[640x360]",
|
43 => "WEBM[640x360]",
|
||||||
17 => "3GP[176x144]",
|
44 => "WEBM[854x480]",
|
||||||
|
45 => "WEBM[1280x720]",
|
||||||
|
46 => "WEBM[1920x1080]",
|
||||||
|
59 => "MP4[854x480]",
|
||||||
|
78 => "MP4[854x480]",
|
||||||
// DASH videos
|
// DASH videos
|
||||||
137 => "(Video Only) MP4[1920x1080]",
|
137 => "(Video Only) MP4[1920x1080]",
|
||||||
248 => "(Video Only) WEBM[1920x1080]",
|
248 => "(Video Only) WEBM[1920x1080]",
|
||||||
|
@ -28,14 +39,25 @@ private $itag_info = array(
|
||||||
249 => "(Audio Only) WEBM[50Kbps]",
|
249 => "(Audio Only) WEBM[50Kbps]",
|
||||||
250 => "(Audio Only) WEBM[70Kbps]",
|
250 => "(Audio Only) WEBM[70Kbps]",
|
||||||
251 => "(Audio Only) WEBM[160Kbps]"
|
251 => "(Audio Only) WEBM[160Kbps]"
|
||||||
);
|
);
|
||||||
private $itag_ext = array(
|
private $itag_ext = array(
|
||||||
// Full Video
|
// Full Video
|
||||||
|
5 => ".flv",
|
||||||
|
6 => ".flv",
|
||||||
|
17 => ".3gp",
|
||||||
18 => ".mp4",
|
18 => ".mp4",
|
||||||
22 => ".mp4",
|
22 => ".mp4",
|
||||||
|
34 => ".flv",
|
||||||
|
35 => ".flv",
|
||||||
36 => ".3gp",
|
36 => ".3gp",
|
||||||
|
37 => ".mp4",
|
||||||
|
38 => ".mp4",
|
||||||
43 => ".webm",
|
43 => ".webm",
|
||||||
17 => ".3gp",
|
44 => ".webm",
|
||||||
|
45 => ".webm",
|
||||||
|
46 => ".webm",
|
||||||
|
59 => ".mp4",
|
||||||
|
78 => ".mp4",
|
||||||
// DASH videos
|
// DASH videos
|
||||||
137 => ".mp4",
|
137 => ".mp4",
|
||||||
248 => ".webm",
|
248 => ".webm",
|
||||||
|
@ -90,12 +112,34 @@ break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isset($videoData['status']) && $videoData['status'] !== 'fail') {
|
if(isset($videoData['status']) && $videoData['status'] !== 'fail') {
|
||||||
|
$playerData = json_decode($videoData["player_response"]);
|
||||||
|
$captions = array();
|
||||||
|
for($i=0;$i<count($playerData->captions->playerCaptionsTracklistRenderer->captionTracks);$i++) {
|
||||||
|
$caption = array();
|
||||||
|
$caption["title"] = $playerData->captions->playerCaptionsTracklistRenderer->captionTracks[$i]->name->simpleText;
|
||||||
|
$caption["lang"] = $playerData->captions->playerCaptionsTracklistRenderer->captionTracks[$i]->languageCode;
|
||||||
|
$caption["url"] = $playerData->captions->playerCaptionsTracklistRenderer->captionTracks[$i]->baseUrl;
|
||||||
|
array_push($captions,$caption);
|
||||||
|
}
|
||||||
|
$thumbinfo = $playerData->storyboards->playerStoryboardSpecRenderer->spec;
|
||||||
|
$thumbparts = explode("|",$thumbinfo);
|
||||||
|
$thumbnum = count($thumbparts)-1;
|
||||||
|
$thumbdata = explode("#",$thumbparts[$thumbnum]);
|
||||||
$vInfo['Title'] = $videoData['title'];
|
$vInfo['Title'] = $videoData['title'];
|
||||||
$vInfo['ChannelName'] = $videoData['author'];
|
$vInfo['ChannelName'] = $videoData['author'];
|
||||||
$vInfo['ChannelId'] = $videoData['ucid'];
|
$vInfo['ChannelId'] = $videoData['ucid'];
|
||||||
$vInfo['Thumbnail'] = str_replace('default', 'maxresdefault', $videoData['thumbnail_url']);
|
$vInfo['Thumbnail'] = str_replace('default', 'maxresdefault', $videoData['thumbnail_url']);
|
||||||
$vInfo['Duration'] = $videoData['length_seconds'];
|
$vInfo['Duration'] = $videoData['length_seconds'];
|
||||||
//$vInfo['Rating'] = $videoData['avg_rating'];
|
$vInfo['Rating'] = $playerData->videoDetails->averageRating;
|
||||||
|
$vInfo['Captions'] = $captions;
|
||||||
|
$vInfo['Thumbs'] = array();
|
||||||
|
$vInfo['Thumbs']["src"] = "ytthumbs.php?data=".urlencode($thumbinfo);
|
||||||
|
$vInfo['Thumbs']["width"] = $thumbdata[0]*$thumbdata[3];
|
||||||
|
$vInfo['Thumbs']["height"] = $thumbdata[1]*ceil($thumbdata[2]/$thumbdata[3]);
|
||||||
|
$vInfo['Thumbs']["fwidth"] = $thumbdata[0];
|
||||||
|
$vInfo['Thumbs']["fheight"] = $thumbdata[1];
|
||||||
|
$vInfo['Thumbs']["fcount"] = $thumbdata[2];
|
||||||
|
$vInfo['Thumbs']["row"] = $thumbdata[3];
|
||||||
}
|
}
|
||||||
if (isset($videoData['url_encoded_fmt_stream_map']) && isset($videoData['adaptive_fmts'])) {
|
if (isset($videoData['url_encoded_fmt_stream_map']) && isset($videoData['adaptive_fmts'])) {
|
||||||
$draft1 = explode(',',$videoData['url_encoded_fmt_stream_map']);
|
$draft1 = explode(',',$videoData['url_encoded_fmt_stream_map']);
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
function curlGet($url) {
|
||||||
|
if(in_array('curl', get_loaded_extensions())){
|
||||||
|
$appSettings = parse_ini_file('../config/config.ini',true);
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0');
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
//curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||||
|
if($appSettings["Proxy"]["type"]) {
|
||||||
|
curl_setopt($ch, CURLOPT_PROXY, $appSettings["Proxy"]["type"]."://".$appSettings["Proxy"]["domain"].":".$appSettings["Proxy"]["port"]);
|
||||||
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $appSettings["Proxy"]["username"].":".$appSettings["Proxy"]["password"]);
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
header("Content-type: image/jpeg");
|
||||||
|
$thumbparts = explode("|",$_GET["data"]);
|
||||||
|
$i = count($thumbparts)-1;
|
||||||
|
$thumbdata = explode("#",$thumbparts[$i]);
|
||||||
|
$base_url = $thumbparts[0];
|
||||||
|
$thumbs = imagecreatetruecolor($thumbdata[0]*$thumbdata[3],$thumbdata[1]*ceil($thumbdata[2]/$thumbdata[3]));
|
||||||
|
for($j=0;$j<ceil($thumbdata[2]/($thumbdata[3]*$thumbdata[4]));$j++) {
|
||||||
|
$link = str_replace('$L',$i-1,$base_url)."&";
|
||||||
|
$link = str_replace('$N',$thumbdata[6],$link);
|
||||||
|
$link = str_replace('$M',$j,$link)."sigh=".$thumbdata[7];
|
||||||
|
$thumb = imagecreatefromstring(curlGet($link));
|
||||||
|
imagecopy($thumbs,$thumb,0,$j*$thumbdata[1]*$thumbdata[4],0,0,$thumbdata[0]*$thumbdata[3],$thumbdata[1]*$thumbdata[4]);
|
||||||
|
}
|
||||||
|
imagejpeg($thumbs);
|
||||||
|
?>
|
|
@ -1 +1 @@
|
||||||
2.2.4
|
2.2.5
|
||||||
|
|
Loading…
Reference in New Issue