Updated installation, language files are automatically installed

This commit is contained in:
markseu 2018-09-06 16:23:19 +02:00
parent 54b4f78a75
commit f0571e8004
8 changed files with 211 additions and 592 deletions

Binary file not shown.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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
public function processCommand() {
$statusCode = 0;
if ($this->yellow->config->get("installationMode")) {
$statusCode = $this->processCommandInstallationMode();
} elseif ($this->isSoftwarePending()) {
$statusCode = $this->processCommandInstallationPending();
}
return $statusCode;
}
// 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($args) {
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->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->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;
$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 = 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);
}
}
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();
}
$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;
}