mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit f0571e8004ea6ae833878a77ff40a475b7cd466f
parent 54b4f78a75ca114a26316ec0f92aa58a4b984a97
Author: markseu <mark2011@mayberg.se>
Date:   Thu,  6 Sep 2018 16:23:19 +0200

Updated installation, language files are automatically installed

Diffstat:
Asystem/plugins/installation-blog.zip | 0
Asystem/plugins/installation-language.zip | 0
Asystem/plugins/installation-wiki.zip | 0
Dsystem/plugins/language-de.txt | 156-------------------------------------------------------------------------------
Dsystem/plugins/language-en.txt | 156-------------------------------------------------------------------------------
Dsystem/plugins/language-fr.txt | 156-------------------------------------------------------------------------------
Dsystem/plugins/language.php | 10----------
Dsystem/plugins/update-blog.installation | 0
Dsystem/plugins/update-wiki.installation | 0
Msystem/plugins/update.php | 317+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
10 files changed, 207 insertions(+), 588 deletions(-)

diff --git a/system/plugins/installation-blog.zip b/system/plugins/installation-blog.zip Binary files differ. diff --git a/system/plugins/installation-language.zip b/system/plugins/installation-language.zip Binary files differ. diff --git a/system/plugins/installation-wiki.zip b/system/plugins/installation-wiki.zip Binary files differ. diff --git a/system/plugins/language-de.txt b/system/plugins/language-de.txt @@ -1,156 +0,0 @@ -# Datenstrom Yellow language - -Language: de -LanguageDescription: Deutsch -LanguageTranslator: David Fehrmann -LanguageVersion: 0.7.13 - -BlogBy: von -BlogTag: Tags: -BlogMore: Lies mehr… -ContactName: Name: -ContactEmail: E-Mail: -ContactMessage: Nachricht: -ContactConsent: Ich stimme zu, dass diese Webseite meine Nachricht speichert. -ContactButton: Nachricht absenden -ContactStatusNone: Sag Hallo! Dein Feedback ist sehr willkommen. -ContactStatusIncomplete: Bitte alle Felder ausfüllen. -ContactStatusInvalid: Bitte eine gültige E-Mail angeben. -ContactStatusDone: Nachricht wurde versandt. Vielen Dank! -ContactStatusError: Nachricht konnte nicht versandt werden, versuche es später erneut! -DatePast: heute, gestern, vor @x Tagen, vor 1 Monat, vor @x Monaten, vor 1 Jahr, vor @x Jahren -DateFuture: bald, morgen, in @x Tagen, in 1 Monat, in @x Monaten, in 1 Jahr, in @x Jahren -DateMonths: Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember -DateWeekdays: Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag -DateWeekstart: Montag -DateFormatShort: F Y -DateFormatMedium: d.m.Y -DateFormatLong: d.m.Y H:i -EditInstallationTitle: Hallo -EditInstallationFeature: Was willst du machen? -EditInstallationHomePage: Deine Webseite funktioniert!\n\n[edit - Du kannst diese Seite bearbeiten] oder einen Texteditor benutzen. -EditInstallationAboutPage: Diese Webseite ist erstellt mit [Datenstrom Yellow](https://datenstrom.se/de/yellow/). [edit - Anmelden]. -EditLoginTitle: Willkommen -EditLoginEmail: E-Mail: -EditLoginPassword: Kennwort: -EditLoginForgot: Kennwort vergessen? -EditLoginSignup: Benutzerkonto erstellen? -EditLoginButton: Anmelden -EditSignupTitle: Benutzerkonto erstellen -EditSignupName: Name: -EditSignupEmail: E-Mail: -EditSignupPassword: Kennwort: -EditSignupConsent: Ich stimme zu, dass diese Webseite meine persönlichen Daten speichert. -EditSignupButton: Erstellen -EditSignupStatusNone: Hier kannst du ein neues Benutzerkonto erstellen. -EditSignupStatusIncomplete: Bitte alle Felder ausfüllen. -EditSignupStatusInvalid: Bitte eine gültige E-Mail angeben. -EditSignupStatusWeak: Bitte ein anderes Kennwort angeben. -EditSignupStatusNext: Benutzerkonto wird erstellt, bitte überprüfe deine E-Mails. -EditForgotTitle: Kennwort vergessen -EditForgotEmail: E-Mail: -EditForgotStatusNone: Kein Problem, du kannst ein neues Kennwort erstellen. -EditForgotStatusInvalid: Bitte eine gültige E-Mail angeben. -EditForgotStatusNext: Benutzerkonto wird wiederhergestellt, bitte überprüfe deine E-Mails. -EditRecoverTitle: Kennwort vergessen -EditRecoverPassword: Kennwort: -EditRecoverStatusPassword: Bitte ein neues Kennwort angeben. -EditRecoverStatusWeak: Bitte ein anderes Kennwort angeben. -EditSettingsTitle: Einstellungen -EditSettingsQuit: Du kannst dein Benutzerkonto jederzeit löschen. -EditSettingsMore: Mehr… -EditSettingsStatusInvalid: Bitte eine gültige E-Mail angeben. -EditSettingsStatusTaken: Bitte eine andere E-Mail angeben. -EditSettingsStatusWeak: Bitte ein anderes Kennwort angeben. -EditSettingsStatusNext: Benutzerkonto wird geändert, bitte überprüfe deine E-Mails. -EditQuitTitle: Benutzerkonto löschen -EditQuitStatusNone: Bitte gib deinen Namen zur Bestätigung ein. -EditQuitStatusMismatch: Bitte gib einen anderen Namen ein. -EditQuitStatusNext: Benutzerkonto wird gelöscht, bitte überprüfe deine E-Mails. -EditConfirmSubject: Benutzerkonto bestätigen -EditConfirmMessage: Hallo @usershort,\n\nbitte bestätige dein Benutzerkonto. Klicke auf den folgenden Link. -EditConfirmStatusDone: Benutzerkonto wurde bestätigt und wartet auf Genehmigung. Vielen Dank! -EditApproveSubject: Benutzerkonto genehmigen -EditApproveMessage: Hallo @usershort,\n\nbitte genehmige ein neues Benutzerkonto für @useraccount. Klicke auf den folgenden Link. -EditApproveStatusDone: Benutzerkonto wurde genehmigt. Vielen Dank! -EditReactivateSubject: Benutzerkonto reaktivieren -EditReactivateMessage: Hallo @usershort,\n\nbitte reaktiviere dein Benutzerkonto. Es gab zu viele fehlgeschlagene Anmeldeversuche. Klicke auf den folgenden Link. -EditReactivateStatusDone: Benutzerkonto wurde reaktiviert. Vielen Dank! -EditRecoverSubject: Benutzerkonto wiederherstellen -EditRecoverMessage: Hallo @usershort,\n\nbitte bestätige, dass du dein Kennwort vergessen hast. Klicke auf den folgenden Link. -EditRecoverStatusDone: Benutzerkonto wurde wiederhergestellt. Vielen Dank! -EditVerifySubject: Benutzerkonto bestätigen -EditVerifyMessage: Hallo @usershort,\n\nbitte bestätige eine neue E-Mail für dein Benutzerkonto. Klicke auf den folgenden Link. -EditVerifyStatusDone: Benutzerkonto wurde bestätigt. Vielen Dank! -EditChangeSubject: Benutzerkonto ändern -EditChangeMessage: Hallo @usershort,\n\nbitte bestätige, dass du dein Benutzerkonto ändern möchtest. Klicke auf den folgenden Link. -EditChangeStatusDone: Benutzerkonto wurde geändert. Vielen Dank! -EditRemoveSubject: Benutzerkonto löschen -EditRemoveMessage: Hallo @usershort,\n\nbitte bestätige, dass du dein Benutzerkonto löschen möchtest. Klicke auf den folgenden Link. -EditRemoveStatusDone: Benutzerkonto wurde gelöscht. Vielen Dank! -EditWelcomeSubject: Willkommen -EditWelcomeMessage: Hallo @usershort,\n\ndein Benutzerkonto wurde erstellt. Viel Spass beim Bearbeiten der Webseite. -EditGoodbyeSubject: Auf Wiedersehen -EditGoodbyeMessage: Hallo @usershort,\n\ndein Benutzerkonto wurde gelöscht. Mach's gut. -EditVersionTitle: Über diese Webseite -EditVersionStatusNone: Datenstrom Yellow ist für Menschen die Webseiten machen. -EditVersionStatusCheck: Nach Aktualisierung suchen… -EditVersionStatusDone: Deine Webseite ist auf dem neusten Stand. -EditVersionStatusWarning: Aktualisierung verfügbar, bitte aktualisiere deine Webseite. -EditVersionStatusUpdates: Aktualisierung verfügbar, jetzt aktualisieren. -EditVersionUpdateForce: Aktualisierung erzwingen -EditVersionUpdateModified: @software wurde modifiziert -EditUploadProgress: [Datei hochladen…] -EditOkButton: Ok -EditCancelButton: Abbruch -EditCreateButton: Erzeugen -EditEditButton: Speichern -EditDeleteButton: Löschen -EditEdit: Seite bearbeiten -EditCreate: + -EditDelete: - -EditToolbarPreview: Vorschau -EditToolbarFormat: Format -EditToolbarHeading: Überschrift -EditToolbarH1: Überschrift 1 -EditToolbarH2: Überschrift 2 -EditToolbarH3: Überschrift 3 -EditToolbarParagraph: Normaler Text -EditToolbarPre: Quellcode -EditToolbarQuote: Zitat -EditToolbarBold: Fettschrift -EditToolbarItalic: Kursiv -EditToolbarStrikethrough: Durchgestrichen -EditToolbarCode: Code -EditToolbarList: Liste -EditToolbarUl: • Unsortierte Liste -EditToolbarOl: 1. Sortierte Liste -EditToolbarTl: ✓ Aufgabenliste -EditToolbarLink: Link -EditToolbarFile: Datei -EditToolbarEmojiawesome: Emoji -EditToolbarFontawesome: Symbol -EditToolbarDraft: Entwurf -EditToolbarUndo: Rückgängig -EditToolbarRedo: Wiederholen -EditToolbarMarkdown: Markdown -EditToolbarHelp: Hilfe -EditUserHelp: Hilfe -EditUserLogout: Abmelden -PagePrevious: ← Zurück: @title -PageNext: Weiter: @title → -PaginationPrevious: ← Zurück -PaginationNext: Weiter → -SearchResultsNone: Bitte einen Suchbegriff eingeben. -SearchResultsEmpty: Keine Treffer für diese Suchanfrage. -SearchSpecialChanges: Letzte Änderungen -SearchButton: Suchen -TimeFormatShort: H:i -TimeFormatMedium: H:i:s -TimeFormatLong: H:i:s T -WikiTag: Tags: -WikiSpecialPages: Alle Seiten -WikiSpecialChanges: Letzte Änderungen -YellowUrl: https://datenstrom.se/de/yellow/ -YellowHelpUrl: https://developers.datenstrom.se/de/help/ -YellowMarkdownUrl: https://developers.datenstrom.se/de/help/markdown-cheat-sheet diff --git a/system/plugins/language-en.txt b/system/plugins/language-en.txt @@ -1,156 +0,0 @@ -# Datenstrom Yellow language - -Language: en -LanguageDescription: English -LanguageTranslator: Mark Seuffert -LanguageVersion: 0.7.13 - -BlogBy: by -BlogTag: Tags: -BlogMore: Read more… -ContactName: Name: -ContactEmail: Email: -ContactMessage: Message: -ContactConsent: I consent that this website stores my message. -ContactButton: Send message -ContactStatusNone: Say hello. Your feedback is very welcome. -ContactStatusIncomplete: Please fill out all fields. -ContactStatusInvalid: Please enter a valid email. -ContactStatusDone: You have sent an email. Thank you! -ContactStatusError: Email could not be sent, please try again later! -DatePast: today, yesterday, @x days ago, 1 month ago, @x months ago, 1 year ago, @x years ago -DateFuture: soon, tomorrow, in @x days, in 1 month, in @x months, in 1 year, in @x years -DateMonths: January, February, March, April, May, June, July, August, September, October, November, December -DateWeekdays: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday -DateWeekstart: Monday -DateFormatShort: F Y -DateFormatMedium: Y-m-d -DateFormatLong: Y-m-d H:i -EditInstallationTitle: Hello -EditInstallationFeature: What do you want to make? -EditInstallationHomePage: Your website works!\n\n[edit - You can edit this page] or use your text editor. -EditInstallationAboutPage: This website is made with [Datenstrom Yellow](https://datenstrom.se/yellow/). [edit - Log in]. -EditLoginTitle: Welcome -EditLoginEmail: Email: -EditLoginPassword: Password: -EditLoginForgot: Forgot your password? -EditLoginSignup: Create user account? -EditLoginButton: Log in -EditSignupTitle: Create user account -EditSignupName: Name: -EditSignupEmail: Email: -EditSignupPassword: Password: -EditSignupConsent: I consent that this website stores my personal data. -EditSignupButton: Create -EditSignupStatusNone: Here you can create a new user account. -EditSignupStatusIncomplete: Please fill out all fields. -EditSignupStatusInvalid: Please enter a valid email. -EditSignupStatusWeak: Please enter a different password. -EditSignupStatusNext: User account will be created, please check your emails. -EditForgotTitle: Forgot your password -EditForgotEmail: Email: -EditForgotStatusNone: No problem, you can create a new password. -EditForgotStatusInvalid: Please enter a valid email. -EditForgotStatusNext: User account will be recovered, please check your emails. -EditRecoverTitle: Forgot your password -EditRecoverPassword: Password: -EditRecoverStatusPassword: Please enter a new password. -EditRecoverStatusWeak: Please enter a different password. -EditSettingsTitle: Settings -EditSettingsQuit: You can delete your user account anytime. -EditSettingsMore: More… -EditSettingsStatusInvalid: Please enter a valid email. -EditSettingsStatusTaken: Please enter a different email. -EditSettingsStatusWeak: Please enter a different password. -EditSettingsStatusNext: User account will be changed, please check your emails. -EditQuitTitle: Delete user account -EditQuitStatusNone: Please enter your name to confirm. -EditQuitStatusMismatch: Please enter a different name. -EditQuitStatusNext: User account will be deleted, please check your emails. -EditConfirmSubject: Confirm user account -EditConfirmMessage: Hi @usershort,\n\nplease confirm your user account. Click the following link. -EditConfirmStatusDone: User account confirmed and waiting for approval. Thank you! -EditApproveSubject: Approve user account -EditApproveMessage: Hi @usershort,\n\nplease approve a new user account for @useraccount. Click the following link. -EditApproveStatusDone: User account approved. Thank you! -EditReactivateSubject: Reactivate user account -EditReactivateMessage: Hi @usershort,\n\nplease reactivate your user account. There were too many failed login attempts. Click the following link. -EditReactivateStatusDone: User account reactivated. Thank you! -EditRecoverSubject: Recover user account -EditRecoverMessage: Hi @usershort,\n\nplease confirm that you forgot your password. Click the following link. -EditRecoverStatusDone: User account recovered. Thank you! -EditVerifySubject: Confirm user account -EditVerifyMessage: Hi @usershort,\n\nplease confirm a new email for your user account. Click the following link. -EditVerifyStatusDone: User account confirmed. Thank you! -EditChangeSubject: Change user account -EditChangeMessage: Hi @usershort,\n\nplease confirm that you want to change your user account. Click the following link. -EditChangeStatusDone: User account changed. Thank you! -EditRemoveSubject: Delete user account -EditRemoveMessage: Hi @usershort,\n\nplease confirm that you want to delete your user account. Click the following link. -EditRemoveStatusDone: User account deleted. Thank you! -EditWelcomeSubject: Welcome -EditWelcomeMessage: Hi @usershort,\n\nyour user account has been created. Have fun editing the website. -EditGoodbyeSubject: Goodbye -EditGoodbyeMessage: Hi @usershort,\n\nyour user account has been deleted. Take care. -EditVersionTitle: About this website -EditVersionStatusNone: Datenstrom Yellow is for people who make websites. -EditVersionStatusCheck: Checking for updates… -EditVersionStatusDone: Your website is up to date. -EditVersionStatusWarning: Updates available, please update your website. -EditVersionStatusUpdates: Updates available, update now. -EditVersionUpdateForce: Force update -EditVersionUpdateModified: @software has been modified -EditUploadProgress: [Uploading file…] -EditOkButton: Ok -EditCancelButton: Cancel -EditCreateButton: Create -EditEditButton: Save -EditDeleteButton: Delete -EditEdit: Edit page -EditCreate: + -EditDelete: - -EditToolbarPreview: Preview -EditToolbarFormat: Format -EditToolbarHeading: Heading -EditToolbarH1: Heading 1 -EditToolbarH2: Heading 2 -EditToolbarH3: Heading 3 -EditToolbarParagraph: Normal text -EditToolbarPre: Source code -EditToolbarQuote: Quote -EditToolbarBold: Bold -EditToolbarItalic: Italic -EditToolbarStrikethrough: Strikethrough -EditToolbarCode: Code -EditToolbarList: List -EditToolbarUl: • Unordered list -EditToolbarOl: 1. Ordered list -EditToolbarTl: ✓ Task list -EditToolbarLink: Link -EditToolbarFile: File -EditToolbarEmojiawesome: Emoji -EditToolbarFontawesome: Icon -EditToolbarDraft: Draft -EditToolbarUndo: Undo -EditToolbarRedo: Redo -EditToolbarMarkdown: Markdown -EditToolbarHelp: Help -EditUserHelp: Help -EditUserLogout: Logout -PagePrevious: ← Previous: @title -PageNext: Next: @title → -PaginationPrevious: ← Previous -PaginationNext: Next → -SearchResultsNone: Enter a search term. -SearchResultsEmpty: No results found. -SearchSpecialChanges: Recent changes -SearchButton: Search -TimeFormatShort: H:i -TimeFormatMedium: H:i:s -TimeFormatLong: H:i:s T -WikiTag: Tags: -WikiSpecialPages: All pages -WikiSpecialChanges: Recent changes -YellowUrl: https://datenstrom.se/yellow/ -YellowHelpUrl: https://developers.datenstrom.se/help/ -YellowMarkdownUrl: https://developers.datenstrom.se/help/markdown-cheat-sheet diff --git a/system/plugins/language-fr.txt b/system/plugins/language-fr.txt @@ -1,156 +0,0 @@ -# Datenstrom Yellow language - -Language: fr -LanguageDescription: Français -LanguageTranslator: Juh Nibreh -LanguageVersion: 0.7.13 - -BlogBy: par -BlogTag: Tags: -BlogMore: Lire la suite… -ContactName: Nom: -ContactEmail: Email: -ContactMessage: Message: -ContactConsent: Je consens que ce site stocke mon message. -ContactButton: Envoyer le message -ContactStatusNone: Dites bonjour! Vos commentaires sont les bienvenus. -ContactStatusIncomplete: S'il vous plaît, veuillez remplir tous les champs. -ContactStatusInvalid: S'il vous plaît, veuillez entrer une adresse email valide. -ContactStatusDone: Votre message a bien été envoyé. Merci! -ContactStatusError: Votre message n'a pas pu être envoyé, réessayez plus tard s'il vous plaît! -DatePast: aujourd'hui, hier, il y a @x jours, il ya 1 mois, il y a @x mois, il y a 1 an, il y a @x ans -DateFuture: bientôt, demain, dans @x jours, en 1 mois, dans @x mois, en 1 an, dans @x ans -DateMonths: janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre -DateWeekdays: lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche -DateWeekstart: lundi -DateFormatShort: F Y -DateFormatMedium: d/m/Y -DateFormatLong: d/m/Y H:i -EditInstallationTitle: Bonjour -EditInstallationFeature: Que voulez-vous faire? -EditInstallationHomePage: Votre site web fonctionne!\n\n[edit - Vous pouvez modifier cette page] ou utiliser un éditeur de texte. -EditInstallationAboutPage: Ce site web est fait avec [Datenstrom Yellow](https://datenstrom.se/fr/yellow/). [edit - Se connecter]. -EditLoginTitle: Bienvenue -EditLoginEmail: Email: -EditLoginPassword: Mot de passe: -EditLoginForgot: Mot de passe oublié? -EditLoginSignup: Créer un compte utilisateur? -EditLoginButton: Se connecter -EditSignupTitle: Créer un compte utilisateur -EditSignupName: Nom: -EditSignupEmail: Email: -EditSignupPassword: Mot de passe: -EditSignupConsent: Je consens que ce site web stocke mes données personnelles. -EditSignupButton: Créer -EditSignupStatusNone: Ici, vous pouvez créer un nouveau compte utilisateur. -EditSignupStatusIncomplete: Veuillez remplir tous les champs. -EditSignupStatusInvalid: S'il vous plaît, veuillez entrer une adresse email valide. -EditSignupStatusWeak: S'il vous plaît, choisissez un mot de passe différent. -EditSignupStatusNext: Votre compte a été créé, vérifiez vos emails. -EditForgotTitle: Mot de passe oublié -EditForgotEmail: Email: -EditForgotStatusNone: Pas de problème, vous pouvez créer un nouveau mot de passe. -EditForgotStatusInvalid: S'il vous plaît, veuillez entrer une adresse email valide. -EditForgotStatusNext: Votre compte est à nouveau disponible, vérifiez vos emails. -EditRecoverTitle: Mot de passe oublié -EditRecoverPassword: Mot de passe: -EditRecoverStatusPassword: S'il vous plaît, choisissez un nouveau mot de passe. -EditRecoverStatusWeak: S'il vous plaît, choisissez un mot de passe différent. -EditSettingsTitle: Paramètres -EditSettingsQuit: Vous pouvez supprimer votre compte d'utilisateur. -EditSettingsMore: Plus… -EditSettingsStatusInvalid: S'il vous plaît, veuillez entrer une adresse email valide. -EditSettingsStatusTaken: S'il vous plaît, veuillez entrer une adresse email différent. -EditSettingsStatusWeak: S'il vous plaît, choisissez un mot de passe différent. -EditSettingsStatusNext: Votre compte a été changé, vérifiez vos emails. -EditQuitTitle: Supprimer le compte d'utilisateur -EditQuitStatusNone: S'il vous plaît entrez votre nom pour confirmer. -EditQuitStatusMismatch: S'il vous plaît entrer un nom différent. -EditQuitStatusNext: Votre compte sera supprimé, vérifier vos emails. -EditConfirmSubject: Confirmation d'un compte utilisateur -EditConfirmMessage: Bonjour @usershort,\n\nveuillez confirmer votre compte utilisateur. Cliquez sur le lien suivant. -EditConfirmStatusDone: Votre compte utilisateur est confirmé et en attente d'approbation. Merci! -EditApproveSubject: Approuver un nouvel utilisateur -EditApproveMessage: Bonjour @usershort,\n\nveuillez approuver la création d'un nouveau compte utilisateur pour @useraccount. Cliquez sur le lien suivant. -EditApproveStatusDone: Compte utilisateur approuvé. Merci! -EditReactivateSubject: Réactivation d'un compte utilisateur -EditReactivateMessage: Bonjour @usershort,\n\nveuillez réactivér votre compte utilisateur. Il y a eu trop de tentatives de connexion échouées. Cliquez sur le lien suivant. -EditReactivateStatusDone: Compte d'utilisateur réactivé. Merci! -EditRecoverSubject: Restauration d'un compte utilisateur -EditRecoverMessage: Bonjour @usershort,\n\nveuillez confirmer que vous avez oublié votre mot de passe. Cliquez sur le lien suivant. -EditRecoverStatusDone: Compte utilisateur restauré. Merci! -EditVerifySubject: Confirmation d'un compte utilisateur -EditVerifyMessage: Bonjour @usershort,\n\nveuillez confirmer une nouvelle adresse email pour votre compte utilisateur. Cliquez sur le lien suivant. -EditVerifyStatusDone: Votre compte utilisateur est confirmé. Merci! -EditChangeSubject: Changement d'un compte utilisateur -EditChangeMessage: Bonjour @usershort,\n\nveuillez confirmer que vous souhaitez modifier votre compte utilisateur. Cliquez sur le lien suivant. -EditChangeStatusDone: Compte utilisateur changé. Merci! -EditRemoveSubject: Supprimer le compte d'utilisateur -EditRemoveMessage: Bonjour @usershort,\n\nveuillez confirmer que vous souhaitez supprimer votre compte d'utilisateur. Cliquez sur le lien suivant. -EditRemoveStatusDone: Compte d'utilisateur supprimé. Merci! -EditWelcomeSubject: Bienvenue -EditWelcomeMessage: Bonjour @usershort,\n\nvotre compte utilisateur a bien été créé. Amusez-vous bien en éditant le site web. -EditGoodbyeSubject: Au revoir -EditGoodbyeMessage: Bonjour @usershort,\n\nvotre compte utilisateur a bien été supprimé. Prends soin. -EditVersionTitle: A propos de ce site -EditVersionStatusNone: Datenstrom Yellow est fait pour les gens qui font des sites web. -EditVersionStatusCheck: Vérification des mises à jour… -EditVersionStatusDone: Votre site web est à jour. -EditVersionStatusWarning: Mises à jour disponibles, veuillez mettre à jour votre site web. -EditVersionStatusUpdates: Mises à jour disponibles, mettre à jour maintenant. -EditVersionUpdateForce: Forcer mise à jour -EditVersionUpdateModified: @software a été modifié -EditUploadProgress: [Téléchargement du fichier…] -EditOkButton: Ok -EditCancelButton: Annuler -EditCreateButton: Créer -EditEditButton: Sauvegarder -EditDeleteButton: Supprimer -EditEdit: Éditer page -EditCreate: + -EditDelete: - -EditToolbarPreview: Aperçu -EditToolbarFormat: Format -EditToolbarHeading: Titre -EditToolbarH1: Titre 1 -EditToolbarH2: Titre 2 -EditToolbarH3: Titre 3 -EditToolbarParagraph: Texte normal -EditToolbarPre: Code source -EditToolbarQuote: Citation -EditToolbarBold: Gras -EditToolbarItalic: Italique -EditToolbarStrikethrough: Barré -EditToolbarCode: Code -EditToolbarList: Liste -EditToolbarUl: • Liste non ordonnée -EditToolbarOl: 1. Liste commandée -EditToolbarTl: ✓ Liste des tâches -EditToolbarLink: Lien -EditToolbarFile: Fichier -EditToolbarEmojiawesome: Emoji -EditToolbarFontawesome: Icone -EditToolbarDraft: Brouillon -EditToolbarUndo: Annuler -EditToolbarRedo: Refaire -EditToolbarMarkdown: Markdown -EditToolbarHelp: Aide -EditUserHelp: Aide -EditUserLogout: Déconnexion -PagePrevious: ← Précédent: @title -PageNext: Suivant: @title → -PaginationPrevious: ← Précédent -PaginationNext: Suivant → -SearchResultsNone: Entrez un mot dans le champ de recherche. -SearchResultsEmpty: Pas de résultats. -SearchSpecialChanges: Changements récents -SearchButton: Rechercher -TimeFormatShort: H:i -TimeFormatMedium: H:i:s -TimeFormatLong: H:i:s T -WikiTag: Tags: -WikiSpecialPages: Toutes les pages -WikiSpecialChanges: Changements récents -YellowUrl: https://datenstrom.se/fr/yellow/ -YellowHelpUrl: https://developers.datenstrom.se/fr/help/ -YellowMarkdownUrl: https://developers.datenstrom.se/fr/help/markdown-cheat-sheet diff --git a/system/plugins/language.php b/system/plugins/language.php @@ -1,10 +0,0 @@ -<?php -// Language plugin, https://github.com/datenstrom/yellow-plugins/tree/master/language -// Copyright (c) 2013-2018 Datenstrom, https://datenstrom.se -// This file may be used and distributed under the terms of the public license. - -class YellowLanguage { - const VERSION = "0.7.13"; -} - -$yellow->plugins->register("language", "YellowLanguage", YellowLanguage::VERSION); diff --git a/system/plugins/update-blog.installation b/system/plugins/update-blog.installation Binary files differ. diff --git a/system/plugins/update-wiki.installation b/system/plugins/update-wiki.installation Binary files differ. diff --git a/system/plugins/update.php b/system/plugins/update.php @@ -4,7 +4,7 @@ // This file may be used and distributed under the terms of the public license. class YellowUpdate { - const VERSION = "0.7.19"; + const VERSION = "0.7.20"; public $yellow; //access to API public $updates; //number of updates @@ -44,24 +44,21 @@ class YellowUpdate { // Handle request public function onRequest($scheme, $address, $base, $location, $fileName) { - $statusCode = 0; - if ($this->yellow->config->get("installationMode")) { - $statusCode = $this->processRequestInstallationMode($scheme, $address, $base, $location, $fileName); - } else { - $statusCode = $this->processRequestInstallationPending($scheme, $address, $base, $location, $fileName); - } - return $statusCode; + return $this->processRequest($scheme, $address, $base, $location, $fileName); } // Handle command public function onCommand($args) { - list($command) = $args; - switch ($command) { - case "clean": $statusCode = $this->cleanCommand($args); break; - case "install": $statusCode = $this->installCommand($args); break; - case "uninstall": $statusCode = $this->uninstallCommand($args); break; - case "update": $statusCode = $this->updateCommand($args); break; - default: $statusCode = $this->processCommandInstallationPending($args); break; + $statusCode = $this->processCommand(); + if ($statusCode==0) { + list($command) = $args; + switch ($command) { + case "clean": $statusCode = $this->processCommandClean($args); break; + case "install": $statusCode = $this->processCommandInstall($args); break; + case "uninstall": $statusCode = $this->processCommandUninstall($args); break; + case "update": $statusCode = $this->processCommandUpdate($args); break; + default: $statusCode = 0; break; + } } return $statusCode; } @@ -74,8 +71,8 @@ class YellowUpdate { return $help; } - // Clean downloads - public function cleanCommand($args) { + // Process command to clean downloads + public function processCommandClean($args) { $statusCode = 0; list($command, $path) = $args; if ($path=="all") { @@ -89,8 +86,8 @@ class YellowUpdate { return $statusCode; } - // Install feature - public function installCommand($args) { + // Process command to install website features + public function processCommandInstall($args) { list($command, $features) = $this->getCommandFeatures($args); if (!empty($features)) { $this->updates = 0; @@ -106,8 +103,8 @@ class YellowUpdate { return $statusCode; } - // Uninstall feature - public function uninstallCommand($args) { + // Process command to uninstall website features + public function processCommandUninstall($args) { list($command, $features) = $this->getCommandFeatures($args); if (!empty($features)) { $this->updates = 0; @@ -122,8 +119,8 @@ class YellowUpdate { return $statusCode; } - // Update website - public function updateCommand($args) { + // Process command to update website + public function processCommandUpdate($args) { list($command, $features, $force) = $this->getCommandFeatures($args); list($statusCode, $data) = $this->getUpdateInformation($features, $force); if ($statusCode!=200 || !empty($data)) { @@ -307,7 +304,7 @@ class YellowUpdate { preg_match("/^\s*(.*?)\s*:\s*(.*?)\s*$/", $line, $matches); if (!empty($matches[1]) && !empty($matches[2])) { list($dummy, $entry) = explode("/", $matches[1], 2); - list($fileName, $flags) = explode(",", $matches[2], 2); + list($fileName) = explode(",", $matches[2], 2); if ($dummy[0]!="Y") $fileName = $matches[1]; //TODO: remove later, converts old file format if (is_file($fileName)) { $lastPublished = filemtime($fileName); @@ -440,35 +437,96 @@ class YellowUpdate { return $statusCode; } - // Update installation features - public function updateInstallationFeatures($feature) { + // Update installation language, install best languages + public function updateInstallationLanguage() { + $statusCode = 200; + $path = $this->yellow->config->get("pluginDir")."installation-language.zip"; + if (is_file($path)) { + $zip = new ZipArchive(); + if ($zip->open($path)===true) { + if (defined("DEBUG") && DEBUG>=2) echo "YellowUpdate::updateInstallationLanguage file:$path<br/>\n"; + $languages = $this->getInstallationLanguages("en, de, fr"); + if (preg_match("#^(.*\/).*?$#", $zip->getNameIndex(0), $matches)) $pathBase = $matches[1]; + $fileData = $zip->getFromName($pathBase.$this->yellow->config->get("updateInformationFile")); + foreach ($this->yellow->toolbox->getTextLines($fileData) as $line) { + preg_match("/^\s*(.*?)\s*:\s*(.*?)\s*$/", $line, $matches); + if (!empty($matches[1]) && !empty($matches[2]) && strposu($matches[1], "/")) { + list($dummy, $entry) = explode("/", $matches[1], 2); + if (preg_match("/^language-(.*)\.txt$/", $entry, $tokens) && !is_null($languages[$tokens[1]])) { + $languages[$tokens[1]] = $entry; + } + } + } + $languages = array_slice(array_filter($languages, "strlen"), 0, 3); + foreach ($this->yellow->toolbox->getTextLines($fileData) as $line) { + preg_match("/^\s*(.*?)\s*:\s*(.*?)\s*$/", $line, $matches); + if (lcfirst($matches[1])=="plugin" || lcfirst($matches[1])=="theme") $software = $matches[2]; + if (lcfirst($matches[1])=="published") $modified = strtotime($matches[2]); + if (!empty($matches[1]) && !empty($matches[2]) && strposu($matches[1], "/")) { + list($dummy, $entry) = explode("/", $matches[1], 2); + list($fileName) = explode(",", $matches[2], 2); + $fileData = $zip->getFromName($pathBase.$entry); + if (preg_match("/^language.php$/", $entry)) { + $statusCode = $this->updateSoftwareFile($fileName, $fileData, $modified, 0, 0, "create,update", false, $software); + } + if (preg_match("/^language-(.*)\.txt$/", $entry, $tokens) && !is_null($languages[$tokens[1]])) { + $statusCode = $this->updateSoftwareFile($fileName, $fileData, $modified, 0, 0, "create,update", false, $software); + } + } + } + $zip->close(); + if ($statusCode==200) { + $this->yellow->text->load($this->yellow->config->get("pluginDir").$this->yellow->config->get("languageFile"), ""); + } + if ($statusCode==200 && !$this->yellow->toolbox->deleteFile($path)) { + $statusCode = 500; + $this->yellow->page->error($statusCode, "Can't delete file '$path'!"); + } + } else { + $statusCode = 500; + $this->yellow->page->error(500, "Can't open file '$path'!"); + } + } + return $statusCode; + } + + // Update installation feature, install requested feature + public function updateInstallationFeature($feature) { $statusCode = 200; $path = $this->yellow->config->get("pluginDir"); - $regex = "/^.*\.installation$/"; - foreach ($this->yellow->toolbox->getDirectoryEntries($path, $regex, true, false) as $entry) { - if (preg_match("/^(.*?)-(.*?)\./", basename($entry), $matches)) { - if (strtoloweru($matches[2])==strtoloweru($feature)) { + foreach ($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false) as $entry) { + if (preg_match("/^installation-(.*?)\./", basename($entry), $matches)) { + if (strtoloweru($matches[1])==strtoloweru($feature)) { $statusCode = max($statusCode, $this->updateSoftwareArchive($entry)); break; } } } if ($statusCode==200) { - foreach ($this->yellow->toolbox->getDirectoryEntries($path, $regex, true, false) as $entry) { - $this->yellow->toolbox->deleteFile($entry); + foreach ($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false) as $entry) { + if (preg_match("/^installation-(.*?)\./", basename($entry), $matches)) { + if (!$this->yellow->toolbox->deleteFile($entry)) { + $statusCode = 500; + $this->yellow->page->error($statusCode, "Can't delete file '$entry'!"); + } + } } } return $statusCode; } - // Update installation page + // Update installation page, convert into requested language public function updateInstallationPage($fileName, $name, $language) { $statusCode = 200; if ($language!="en") { - $fileData = strreplaceu("\r\n", "\n", $this->yellow->toolbox->readFile($fileName)); + $titleOld = "Title: ".$this->yellow->text->getText("editInstallation{$name}Title", "en"); + $titleNew = "Title: ".$this->yellow->text->getText("editInstallation{$name}Title", $language); $rawDataOld = strreplaceu("\\n", "\n", $this->yellow->text->getText("editInstallation{$name}Page", "en")); $rawDataNew = strreplaceu("\\n", "\n", $this->yellow->text->getText("editInstallation{$name}Page", $language)); - if (!$this->yellow->toolbox->createFile($fileName, strreplaceu($rawDataOld, $rawDataNew, $fileData))) { + $fileData = strreplaceu("\r\n", "\n", $this->yellow->toolbox->readFile($fileName)); + $fileData = strreplaceu($titleOld, $titleNew, $fileData); + $fileData = strreplaceu($rawDataOld, $rawDataNew, $fileData); + if (!$this->yellow->toolbox->createFile($fileName, $fileData)) { $statusCode = 500; $this->yellow->page->error($statusCode, "Can't write file '$fileName'!"); } @@ -486,6 +544,7 @@ class YellowUpdate { } ++$this->updates; } + if ($statusCode==200) $statusCode = $this->updateSoftwareNotification("YellowUpdate"); return $statusCode; } @@ -504,87 +563,111 @@ class YellowUpdate { } return $statusCode; } - - // Process command to install pending software - public function processCommandInstallationPending($args) { + + // Process command + public function processCommand() { $statusCode = 0; - if ($this->isSoftwarePending()) { - $statusCode = $this->updateSoftware(); - if ($statusCode!=200) echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n"; - echo "Yellow has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n"; + if ($this->yellow->config->get("installationMode")) { + $statusCode = $this->processCommandInstallationMode(); + } elseif ($this->isSoftwarePending()) { + $statusCode = $this->processCommandInstallationPending(); } return $statusCode; } - // Process request to install pending software - public function processRequestInstallationPending($scheme, $address, $base, $location, $fileName) { + // Process command to install website + public function processCommandInstallationMode() { + $statusCode = $this->updateInstallationLanguage(); + if ($statusCode==200) $statusCode = $this->updateInstallationFeature("none"); + if ($statusCode!=200) echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n"; + echo "Yellow has ".($statusCode!=200 ? "not " : "")."been installed: Please run command again\n"; + return $statusCode; + } + + // Process command to install pending software + public function processCommandInstallationPending() { + $statusCode = $this->updateSoftware(); + if ($statusCode!=200) echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n"; + echo "Yellow has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n"; + return $statusCode; + } + + // Process request + public function processRequest($scheme, $address, $base, $location, $fileName) { $statusCode = 0; - if ($this->yellow->lookup->isContentFile($fileName) && !$this->yellow->isCommandLine() && $this->isSoftwarePending()) { - $statusCode = $this->updateSoftware(); - if ($statusCode==200) { - $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); - $statusCode = $this->yellow->sendStatus(303, $location); + if ($this->yellow->lookup->isContentFile($fileName) && !$this->yellow->isCommandLine()) { + if ($this->yellow->config->get("installationMode")) { + $statusCode = $this->processRequestInstallationMode($scheme, $address, $base, $location, $fileName); + } elseif ($this->isSoftwarePending()) { + $statusCode = $this->processRequestInstallationPending($scheme, $address, $base, $location, $fileName); } } return $statusCode; } - + // Process request to install website public function processRequestInstallationMode($scheme, $address, $base, $location, $fileName) { $statusCode = 0; - if ($this->yellow->lookup->isContentFile($fileName) && !$this->yellow->isCommandLine()) { - $this->yellow->pages->pages["root/"] = array(); - $this->yellow->page = new YellowPage($this->yellow); - $this->yellow->page->setRequestInformation($scheme, $address, $base, $location, $fileName); - $this->yellow->page->parseData($this->getRawDataInstallation(), false, 404); - $this->yellow->page->parserSafeMode = false; - $this->yellow->page->parseContent(); - $name = trim(preg_replace("/[^\pL\d\-\. ]/u", "-", $_REQUEST["name"])); - $email = trim($_REQUEST["email"]); - $password = trim($_REQUEST["password"]); - $language = trim($_REQUEST["language"]); - $feature = trim($_REQUEST["feature"]); - $status = trim($_REQUEST["status"]); - if ($status=="install") { - $serverVersion = $this->yellow->toolbox->getServerVersion(true); - $status = $this->checkServerRewrite($scheme, $address, $base, $location, $fileName) ? "ok" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Rewrite module not working on $serverVersion web server!"); - } - if ($status=="ok") { - if (!empty($email) && !empty($password) && $this->yellow->plugins->isExisting("edit")) { - $fileNameUser = $this->yellow->config->get("configDir").$this->yellow->config->get("editUserFile"); - $status = $this->yellow->plugins->get("edit")->users->save($fileNameUser, $email, $password, $name, $language) ? "ok" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameUser'!"); - } - } - if ($status=="ok") { - if (!empty($feature)) { - $status = $this->updateInstallationFeatures($feature)==200 ? "ok" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Can't install feature '$feature'!"); - } - } - if ($status=="ok") { - $fileNameHome = $this->yellow->lookup->findFileFromLocation("/"); - $status = $this->updateInstallationPage($fileNameHome, "Home", $language)==200 ? "ok" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameHome'!"); - } - if ($status=="ok") { - $fileNameAbout = $this->yellow->lookup->findFileFromLocation("/about/"); - $status = $this->updateInstallationPage($fileNameAbout, "About", $language)==200 ? "ok" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameAbout'!"); - } - if ($status=="ok") { - if ($this->yellow->config->get("sitename")=="Yellow") $_REQUEST["sitename"] = $name; - $fileNameConfig = $this->yellow->config->get("configDir").$this->yellow->config->get("configFile"); - $status = $this->yellow->config->save($fileNameConfig, $this->getConfigData()) ? "done" : "error"; - if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameConfig'!"); - } - if ($status=="done") { - $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); - $statusCode = $this->yellow->sendStatus(303, $location); - } else { - $statusCode = $this->yellow->sendPage(); - } + $name = trim(preg_replace("/[^\pL\d\-\. ]/u", "-", $_REQUEST["name"])); + $email = trim($_REQUEST["email"]); + $password = trim($_REQUEST["password"]); + $language = trim($_REQUEST["language"]); + $feature = trim($_REQUEST["feature"]); + $status = trim($_REQUEST["status"]); + $this->yellow->pages->pages["root/"] = array(); + $this->yellow->page = new YellowPage($this->yellow); + $statusCode = $this->updateInstallationLanguage(); + $this->yellow->page->setRequestInformation($scheme, $address, $base, $location, $fileName); + $this->yellow->page->parseData($this->getRawDataInstallation(), false, $statusCode, $this->yellow->page->get("pageError")); + if ($status=="install") { + $serverVersion = $this->yellow->toolbox->getServerVersion(true); + $status = $this->checkServerRewrite($scheme, $address, $base, $location, $fileName) ? "ok" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Rewrite module not working on $serverVersion web server!"); + } + if ($status=="ok") { + if (!empty($email) && !empty($password) && $this->yellow->plugins->isExisting("edit")) { + $fileNameUser = $this->yellow->config->get("configDir").$this->yellow->config->get("editUserFile"); + $status = $this->yellow->plugins->get("edit")->users->save($fileNameUser, $email, $password, $name, $language) ? "ok" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameUser'!"); + } + } + if ($status=="ok") { + if (!empty($feature)) { + $status = $this->updateInstallationFeature($feature)==200 ? "ok" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Can't install feature '$feature'!"); + } + } + if ($status=="ok") { + $fileNameHome = $this->yellow->lookup->findFileFromLocation("/"); + $status = $this->updateInstallationPage($fileNameHome, "Home", $language)==200 ? "ok" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameHome'!"); + } + if ($status=="ok") { + $fileNameAbout = $this->yellow->lookup->findFileFromLocation("/about/"); + $status = $this->updateInstallationPage($fileNameAbout, "About", $language)==200 ? "ok" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameAbout'!"); + } + if ($status=="ok") { + if ($this->yellow->config->get("sitename")=="Yellow") $_REQUEST["sitename"] = $name; + $fileNameConfig = $this->yellow->config->get("configDir").$this->yellow->config->get("configFile"); + $status = $this->yellow->config->save($fileNameConfig, $this->getConfigData()) ? "done" : "error"; + if ($status=="error") $this->yellow->page->error(500, "Can't write file '$fileNameConfig'!"); + } + if ($status=="done") { + $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); + $statusCode = $this->yellow->sendStatus(303, $location); + } else { + $statusCode = $this->yellow->sendPage(); + } + return $statusCode; + } + + // Process request to install pending software + public function processRequestInstallationPending($scheme, $address, $base, $location, $fileName) { + $statusCode = $this->updateSoftware(); + if ($statusCode==200) { + $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); + $statusCode = $this->yellow->sendStatus(303, $location); } return $statusCode; } @@ -651,14 +734,28 @@ class YellowUpdate { $data["installationMode"] = "0"; return $data; } - + + // Return installation languages + public function getInstallationLanguages($languagesDefault) { + $data = array(); + if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) { + foreach (preg_split("/\s*,\s*/", $_SERVER["HTTP_ACCEPT_LANGUAGE"]) as $string) { + list($language) = explode(";", $string); + if (!empty($language)) $data[$language] = ""; + } + } + foreach (preg_split("/\s*,\s*/", $languagesDefault) as $language) { + if (!empty($language)) $data[$language] = ""; + } + return $data; + } + // Return installation features public function getInstallationFeatures() { $data = array("website"); $path = $this->yellow->config->get("pluginDir"); - $regex = "/^.*\.installation$/"; - foreach ($this->yellow->toolbox->getDirectoryEntries($path, $regex, true, false, false) as $entry) { - if (preg_match("/^(.*?)-(.*?)\./", $entry, $matches)) array_push($data, $matches[2]); + foreach ($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false, false) as $entry) { + if (preg_match("/^installation-(.*?)\./", $entry, $matches) && $matches[1]!="language") array_push($data, $matches[1]); } return $data; } @@ -701,7 +798,7 @@ class YellowUpdate { preg_match("/^\s*(.*?)\s*:\s*(.*?)\s*$/", $line, $matches); if (!empty($matches[1]) && !empty($matches[2])) { list($software) = explode("/", $matches[1]); - list($fileName, $flags) = explode(",", $matches[2], 2); + list($fileName) = explode(",", $matches[2], 2); if (!is_null($data[$software])) $data[$software] .= ","; $data[$software] .= $fileName; } @@ -784,9 +881,9 @@ class YellowUpdate { // Check if software pending public function isSoftwarePending() { $path = $this->yellow->config->get("pluginDir"); - $foundPlugins = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false))>0; + $foundPlugins = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", false, false))>0; $path = $this->yellow->config->get("themeDir"); - $foundThemes = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false))>0; + $foundThemes = count($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", false, false))>0; return $foundPlugins || $foundThemes; }