translations integrated, hero images, image classes
BIN
media/live/altdruck.png
Normal file
After Width: | Height: | Size: 563 KiB |
BIN
media/live/ivan-bandura-cnsuw8uth-e-unsplash.jpeg
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
media/live/knowledge.jpeg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
media/original/altdruck.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
media/original/ivan-bandura-cnsuw8uth-e-unsplash.jpeg
Normal file
After Width: | Height: | Size: 879 KiB |
BIN
media/original/knowledge.jpeg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
media/thumbs/altdruck.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
media/thumbs/ivan-bandura-cnsuw8uth-e-unsplash.jpeg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
media/thumbs/knowledge.jpeg
Normal file
After Width: | Height: | Size: 4.3 KiB |
@ -86,6 +86,7 @@ class PageController extends Controller
|
||||
{
|
||||
$home = true;
|
||||
$item = Folder::getItemForUrl($navigation, $uri->getBasePath(), $uri->getBasePath());
|
||||
$urlRel = $uri->getBasePath();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -26,7 +26,7 @@ class SettingsController extends Controller
|
||||
$locale = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2) : 'en';
|
||||
$users = $user->getUsers();
|
||||
$route = $request->getAttribute('route');
|
||||
|
||||
|
||||
return $this->render($response, 'settings/system.twig', array('settings' => $settings, 'copyright' => $copyright, 'languages' => $languages, 'locale' => $locale, 'formats' => $defaultSettings['formats'] ,'users' => $users, 'route' => $route->getName() ));
|
||||
}
|
||||
|
||||
@ -62,6 +62,7 @@ class SettingsController extends Controller
|
||||
'copyright' => $newSettings['copyright'],
|
||||
'year' => $newSettings['year'],
|
||||
'language' => $newSettings['language'],
|
||||
'langattr' => $newSettings['langattr'],
|
||||
'editor' => $newSettings['editor'],
|
||||
'formats' => $newSettings['formats'],
|
||||
'headlineanchors' => isset($newSettings['headlineanchors']) ? $newSettings['headlineanchors'] : null,
|
||||
|
@ -321,6 +321,28 @@ class ParsedownExtension extends \ParsedownExtra
|
||||
|
||||
return $Element;
|
||||
}
|
||||
|
||||
protected function paragraph($Line)
|
||||
{
|
||||
$paragraph = array(
|
||||
'type' => 'Paragraph',
|
||||
'element' => array(
|
||||
'name' => 'p',
|
||||
'handler' => array(
|
||||
'function' => 'lineElements',
|
||||
'argument' => $Line['text'],
|
||||
'destination' => 'elements',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
if(isset($Line['text'][1]) && $Line['text'][0] == '!' && $Line['text'][1] == '[')
|
||||
{
|
||||
$paragraph['element']['attributes']['class'] = 'p-image';
|
||||
}
|
||||
return $paragraph;
|
||||
}
|
||||
|
||||
|
||||
# Inline Math
|
||||
# check https://github.com/BenjaminHoegh/ParsedownMath
|
||||
|
@ -205,6 +205,7 @@ class Validation
|
||||
$v->rule('regex', 'author', '/^[\pL_ \-]*$/u');
|
||||
$v->rule('integer', 'year');
|
||||
$v->rule('length', 'year', 4);
|
||||
$v->rule('length', 'langattr', 2);
|
||||
$v->rule('in', 'editor', ['raw', 'visual']);
|
||||
$v->rule('values_allowed', 'formats', $formats);
|
||||
$v->rule('in', 'copyright', $copyright);
|
||||
|
@ -38,15 +38,21 @@ class Settings
|
||||
}
|
||||
}
|
||||
|
||||
# i18n
|
||||
# load the strings of the set language
|
||||
$language = $settings['language'];
|
||||
$theme = $settings['theme'];
|
||||
$plugins = [];
|
||||
if(isset($settings['plugins'])){
|
||||
$plugins = $settings['plugins'];
|
||||
}
|
||||
$settings['labels'] = self::getLanguageLabels($language, $theme, $plugins);
|
||||
# let us load translations only for admin area to improve performance for frontend
|
||||
$uri = $_SERVER[REQUEST_URI];
|
||||
if(isset($uri) && (strpos($uri,'/tm/') !== false OR strpos($uri,'/setup') !== false))
|
||||
{
|
||||
# i18n
|
||||
# load the strings of the set language
|
||||
$language = $settings['language'];
|
||||
$theme = $settings['theme'];
|
||||
$plugins = [];
|
||||
if(isset($settings['plugins']))
|
||||
{
|
||||
$plugins = $settings['plugins'];
|
||||
}
|
||||
$settings['labels'] = self::getLanguageLabels($language, $theme, $plugins);
|
||||
}
|
||||
|
||||
# We know the used theme now so create the theme path
|
||||
$settings['themePath'] = $settings['rootPath'] . $settings['themeFolder'] . DIRECTORY_SEPARATOR . $settings['theme'];
|
||||
@ -72,6 +78,7 @@ class Settings
|
||||
'author' => 'Unknown',
|
||||
'copyright' => 'Copyright',
|
||||
'language' => 'en',
|
||||
'langattr' => 'en',
|
||||
'startpage' => true,
|
||||
'rootPath' => $rootPath,
|
||||
'themeFolder' => 'themes',
|
||||
@ -85,7 +92,7 @@ class Settings
|
||||
'contentFolder' => 'content',
|
||||
'cache' => true,
|
||||
'cachePath' => $rootPath . 'cache',
|
||||
'version' => '1.3.5',
|
||||
'version' => '1.3.6',
|
||||
'setup' => true,
|
||||
'welcome' => true,
|
||||
'images' => ['live' => ['width' => 820], 'thumbs' => ['width' => 250, 'height' => 150]],
|
||||
@ -113,37 +120,61 @@ class Settings
|
||||
|
||||
# loads the system strings of the set language
|
||||
$yaml = new Models\WriteYaml();
|
||||
$system_labels = $yaml->getYaml('system/author/languages', $language.'.yaml');
|
||||
$system_labels = $yaml->getYaml('system' . DIRECTORY_SEPARATOR . 'author' . DIRECTORY_SEPARATOR . 'languages', $language . '.yaml');
|
||||
|
||||
# loads the theme strings of the set language
|
||||
$theme_labels = [];
|
||||
$theme_language_folder = 'themes/'.$theme.'/languages';
|
||||
if (file_exists($theme_language_folder)) {
|
||||
$theme_labels = $yaml->getYaml($theme_language_folder, $language.'.yaml');
|
||||
}
|
||||
# loads the theme strings of the set language
|
||||
$theme_labels = [];
|
||||
$theme_language_folder = 'themes' . DIRECTORY_SEPARATOR . $theme . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR;
|
||||
$theme_language_file = $language . '.yaml';
|
||||
if (file_exists($theme_language_folder . $theme_language_file))
|
||||
{
|
||||
$theme_labels = $yaml->getYaml($theme_language_folder, $theme_language_file);
|
||||
}
|
||||
|
||||
# loads the plugins strings of the set language
|
||||
$plugins_labels = [];
|
||||
if(!empty($plugins)){
|
||||
$plugin_labels = [];
|
||||
foreach($plugins as $name => $value){
|
||||
$plugin_language_folder = 'plugins/'.$name.'/languages';
|
||||
if (file_exists($theme_language_folder)) {
|
||||
$plugin_labels[$name] = $yaml->getYaml($plugin_language_folder, $language.'.yaml');
|
||||
}
|
||||
}
|
||||
$plugins_labels = [];
|
||||
foreach($plugin_labels as $key => $value){
|
||||
$plugins_labels = array_merge($plugins_labels, $value);
|
||||
}
|
||||
}
|
||||
# loads the plugins strings of the set language
|
||||
$plugins_labels = [];
|
||||
if(!empty($plugins))
|
||||
{
|
||||
$plugin_labels = [];
|
||||
foreach($plugins as $name => $value)
|
||||
{
|
||||
$plugin_language_folder = 'plugins' . DIRECTORY_SEPARATOR . $name . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR;
|
||||
$plugin_language_file = $language . '.yaml';
|
||||
|
||||
# Combines arrays of system languages, themes and plugins
|
||||
$labels = array_merge($system_labels, $theme_labels, $plugins_labels);
|
||||
if (file_exists($plugin_language_folder . $plugin_language_file))
|
||||
{
|
||||
$plugin_labels[$name] = $yaml->getYaml($plugin_language_folder, $plugin_language_file);
|
||||
}
|
||||
}
|
||||
foreach($plugin_labels as $key => $value)
|
||||
{
|
||||
$plugins_labels = array_merge($plugins_labels, $value);
|
||||
}
|
||||
}
|
||||
|
||||
# Combines arrays of system languages, themes and plugins
|
||||
$labels = array_merge($system_labels, $theme_labels, $plugins_labels);
|
||||
|
||||
return $labels;
|
||||
}
|
||||
|
||||
public function whichLanguage()
|
||||
{
|
||||
# Check which languages are available
|
||||
$langs = [];
|
||||
$path = __DIR__ . '/author/languages/*.yaml';
|
||||
|
||||
foreach (glob($path) as $filename)
|
||||
{
|
||||
$langs[] = basename($filename,'.yaml');
|
||||
}
|
||||
|
||||
# Detect browser language
|
||||
$accept_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||
$lang = in_array($accept_lang, $langs) ? $accept_lang : 'en';
|
||||
|
||||
return $lang;
|
||||
}
|
||||
|
||||
public static function getObjectSettings($objectType, $objectName)
|
||||
{
|
||||
@ -155,28 +186,12 @@ class Settings
|
||||
|
||||
return $objectSettings;
|
||||
}
|
||||
|
||||
public function whichLanguage()
|
||||
{
|
||||
# Check which languages are available
|
||||
$langs = [];
|
||||
$path = __DIR__ . '/author/languages/*.yaml';
|
||||
foreach (glob($path) as $filename) {
|
||||
$langs[] = basename($filename,'.yaml');
|
||||
}
|
||||
|
||||
# Detect browser language
|
||||
$accept_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
||||
$lang = in_array($accept_lang, $langs) ? $accept_lang : 'en';
|
||||
|
||||
return $lang;
|
||||
}
|
||||
|
||||
public static function createSettings()
|
||||
{
|
||||
$yaml = new Models\WriteYaml();
|
||||
|
||||
$language = self::whichLanguage();
|
||||
$language = self::whichLanguage();
|
||||
|
||||
# create initial settings file with only setup false
|
||||
if($yaml->updateYaml('settings', 'settings.yaml', array('setup' => false, 'language' => $language)))
|
||||
@ -198,6 +213,7 @@ class Settings
|
||||
'title' => true,
|
||||
'copyright' => true,
|
||||
'language' => true,
|
||||
'langattr' => true,
|
||||
'startpage' => true,
|
||||
'author' => true,
|
||||
'year' => true,
|
||||
|
@ -1,101 +1,209 @@
|
||||
# Deutsch
|
||||
# English
|
||||
ACCOUNT: Account
|
||||
ACTIVE: Aktiv
|
||||
ACTUAL_PASSWORD: Actuelles Passwort
|
||||
ADD_FILE: + Datei
|
||||
ACTUAL_PASSWORD: Aktuelles Passwort
|
||||
ADD: hinzufügen
|
||||
ADD_CONTENT_BLOCK: + Inhalts-Block
|
||||
ADD_DEFINITION: + Definition
|
||||
ADD_FILE: + Seite
|
||||
ADD_FOLDER: + Ordner
|
||||
ADD_FOLDER_TO_BASE_LEVEL: add folder to base level
|
||||
ADD_ITEM: add item
|
||||
ADD_FOLDER_TO_BASE_LEVEL: + Ordner in Basis-Ebene
|
||||
ADD_ITEM: + Element
|
||||
ADD_LEFT_COLUMN: + Linke Spalte
|
||||
ADD_RIGHT_COLUMN: + Rechte Spalte
|
||||
ADD_ROW_ABOVE: + Reihe oberhalb
|
||||
ADD_ROW_BELOW: + Reihe unterhalb
|
||||
ALL_USERS: Alle Nutzer
|
||||
ALT_TEXT: Alt-Text
|
||||
AUTHOR: Autor
|
||||
BACK_TO_STARTPAGE: Zur Startseite
|
||||
BY: Von
|
||||
CODE: code
|
||||
CONTENT: Inhalte
|
||||
BACK_TO_STARTPAGE: Zurück zur Startseite
|
||||
BOLD: fett
|
||||
BOTTOM: Unten
|
||||
BROWSE: WÄHLEN
|
||||
BULLET_LIST: Auflistung
|
||||
BY: von
|
||||
CANCEL: abbrechen
|
||||
CAPTION: Bild-Unterschrift
|
||||
CELL: Zelle
|
||||
CENTER: Mitte
|
||||
CHECK: prüfen
|
||||
CHOOSE_FILE: Datei wählen
|
||||
CLASS: Class
|
||||
CLOSE_LIBRARY: Medialib schließen
|
||||
CODE: Code
|
||||
COG: Einstellungen
|
||||
CONTENT: Inhalt
|
||||
COPYRIGHT: Copyright
|
||||
CREATE_NEW_USER: Neuen Nutzer erstellen
|
||||
CREATE_USER: Nutzer erstellen
|
||||
DEFINITION: Definition
|
||||
DELETE: Löschen
|
||||
CREATED_AT__READ_ONLY_: Erstellt am (nur lesen)
|
||||
CREATED_AT__READONLY_: Erstellt am (nur lesen)
|
||||
CREATE_NEW_USER: + Neuen Nutzer
|
||||
CREATE_USER: + Nutzer
|
||||
CROSS: Kreuz
|
||||
CUSTOM_CSS: Eigenes CSS
|
||||
DEFINITION: Definitions-Liste
|
||||
DEFINITION_LIST: Definitions-Liste
|
||||
DELETE_CLOSE: löschen
|
||||
DELETE_COLUMN: Spalte löschen
|
||||
DELETE_CONTENT_BLOCK: Inhaltsblock löschen
|
||||
DELETE: löschen
|
||||
DELETE_PAGE: Seite löschen
|
||||
DELETE_ROW: Reihe löschen
|
||||
DELETE_USER: Nutzer löschen
|
||||
DESCRIPTION: Beschreibung
|
||||
DISCARD_CHANGES: Änderungen verwerfen
|
||||
DISCARD: Verwerfen
|
||||
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Soll der Nutzer wirklich gelöscht werden?
|
||||
DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Soll die Seite wirklich gelöscht werden?
|
||||
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Sollen die Änderungen verworfen und der Inhalt zurück auf die Live-Version gesetzt werden?
|
||||
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Sollen die Änderungen wirklich verworfen und der Inhalt auf den Live-Zustand zurückgesetzt werden?
|
||||
DRAFT: Entwurf
|
||||
EDIT: bearbeiten
|
||||
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: Bild hochladen
|
||||
DUTCH__FLEMISH: Dänisch, Flämisch
|
||||
EDIT: editieren
|
||||
EDIT_USER: Nutzer bearbeiten
|
||||
E_G_: z.B.
|
||||
E_MAIL: E-Mail
|
||||
ENGLISH: Englisch
|
||||
EXTERNAL_LINK: externer Link
|
||||
FAVICON: Favicon
|
||||
FILE: Datei
|
||||
FILES: Dateien
|
||||
FIRST_NAME: Vorname
|
||||
FOLDER: Ordner
|
||||
FORGOT_PASSWORD: Passwort vergessen
|
||||
FORMAT: Format
|
||||
GENERAL_PRESENTATION: Generelle Darstellung
|
||||
GERMAN: Deutsch
|
||||
GOOGLE_SITEMAP: Google Sitemap
|
||||
HEAD: Kopf
|
||||
HEADLINE_ANCHORS: Überschriften-Anker
|
||||
HEADLINE: Überschrift
|
||||
HIDE: Verbergen
|
||||
HIDE_PAGE_FROM_NAVIGATION: Seite in Navigation verbergen
|
||||
HOME: Home
|
||||
HOMEPAGE: Homepage
|
||||
HR: hr
|
||||
HORIZONTAL_LINE: Horizontale Linie
|
||||
HR: Horizontale Linie
|
||||
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Wenn leer wird die Beschreibung vom Inhalt extrahiert.
|
||||
IMAGE: Bild
|
||||
LANGUAGE: Sprache
|
||||
LAST_NAME: Nachname
|
||||
IMAGES: Bilder
|
||||
ITALIAN: Italienisch
|
||||
ITALIC: kursiv
|
||||
LANGUAGE: Language
|
||||
LANGUAGE_ADMIN: Sprache (Admin-UI)
|
||||
LANGUAGE_ATTR: Sprach-Attribut (website)
|
||||
LAST_MODIFIED_LIVE__READONLY_: Live zuletzt geändert (nur lesen)
|
||||
LAST_NAME: Zuname
|
||||
LEFT: Links
|
||||
LICENCE: Lizenz
|
||||
LINK: Link
|
||||
LINK_TO_VIDEO: Link zum Video
|
||||
LOGIN: Anmelden
|
||||
LOGO: Logo
|
||||
LOGOUT: Abmelden
|
||||
MANUAL_DATE: Manuelles Datum
|
||||
MARKDOWN: Markdown
|
||||
MENU: Übersicht
|
||||
META_TITLE: Meta Titel
|
||||
MENU: Menü
|
||||
META_DESCRIPTION: Meta description
|
||||
META: Meta
|
||||
META_TITLE: Meta title
|
||||
MISSING_REQUIREMENTS: Fehlende Anforderungen
|
||||
MOVE_VERTICAL: vertikal verschieben
|
||||
NAVIGATION_TITLE: Navigationstitel
|
||||
NEW_PASSWORD: Neues Passwort
|
||||
NO_DESCRIPTION: Keine Beschreibung
|
||||
NONE: Keine
|
||||
NO_PREVIEW: Keine Vorschau
|
||||
NO_SETTINGS: Keine Einstellungen
|
||||
NOT_EDITABLE: Nicht editierbar
|
||||
OLIST: Aufzählung
|
||||
NUMBERED_LIST: Aufzählung
|
||||
OLIST: olist
|
||||
ONLINE: online
|
||||
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Nur die folgenden Sonderzeichen sind erlaubt:
|
||||
PARAGRAPH: Absatz
|
||||
PASSWORD: Passwort
|
||||
PLEASE_CONFIRM: Bitte bestätigen
|
||||
PLEASE_CORRECT_THE_ERRORS_ABOVE: Bitte korrigiere die Fehler oben
|
||||
PLUGINS: Plugins
|
||||
PLUGIN_STORE: Plugin Seite
|
||||
PUBLISH: Veröffentlichen
|
||||
PLUGIN_STORE: Plugin Store
|
||||
POWER_OFF: Energie aus
|
||||
PUBLISH: Publizieren
|
||||
QUOTE: Zitat
|
||||
RAW_CONTENT_EDITOR: Purer Inhalts-Editor
|
||||
RAW_MARKDOWN_EDITOR: Purer Markdown-Editor
|
||||
RAW_MODE: Pur-Modus
|
||||
RAW: pur
|
||||
QUOTES: Zitate
|
||||
RAW_CONTENT_EDITOR: Raw Content Editor
|
||||
RAW_MARKDOWN_EDITOR: Raw Markdown Editor
|
||||
RAW_MODE: Raw Modus
|
||||
RAW: raw
|
||||
READONLY: Nur lesend
|
||||
REMEMBER_TO_BOOKMARK_THIS_PAGE: Denk daran die Seite zu bookmarken
|
||||
REQUIRED: Erforderlich
|
||||
REMEMBER_TO_BOOKMARK_THIS_PAGE: Bookmark nicht vergessen
|
||||
REQUIRED: erforderlich
|
||||
RIGHT: Recht
|
||||
ROLE: Rolle
|
||||
RUSSIAN: Russisch
|
||||
SAVE_ALL_SETTINGS: Alle Einstellungen speichern
|
||||
SAVE: Speichern
|
||||
SAVED_SUCCESSFULLY: Erfolgreich gespeichert
|
||||
SAVE: speichern
|
||||
SAVE_THEME: Theme speichern
|
||||
SELECT_FROM_MEDIALIB: Aus Medialib wählen
|
||||
SETTINGS_ARE_STORED: Einstellungen sind gespeichert
|
||||
SETTINGS: Einstellungen
|
||||
SETUP: Einrichtung
|
||||
STANDARD_EDITOR_MODE: Standard-Editor Modus
|
||||
SETUP: Setup
|
||||
SHOW_ANCHORS_NEXT_TO_HEADLINES: Anker neben Überschrift anzeigen
|
||||
STANDARD_EDITOR_MODE: Standard Editor-Modus
|
||||
START: Start
|
||||
SYSTEM: System
|
||||
TABLE_OF_CONTENTS: Inhaltsverzeichnis
|
||||
TABLE: Tabelle
|
||||
TAKEN_FROM_YOUR_USER_ACCOUNT_IF_SET_: Vom Nutzer-Account genommen falls vorhanden.
|
||||
TERM: Bedingung
|
||||
TEXT_FILE: Text-Datei
|
||||
THE_FORMAT_BUTTONS: Die Formatierungs-Buttons
|
||||
THEMES: Themes
|
||||
THEME_STORE: Theme Seite
|
||||
THEME_STORE: Theme Store
|
||||
TITLE: Titel
|
||||
TOC: Inhaltsverzeichnis
|
||||
ULIST: Auflistung
|
||||
TOC: IHV
|
||||
TOP: Oben
|
||||
TYPEMILL_DESCRIPTION: The standard theme for Typemill. Responsive, minimal and without any dependencies. It uses the system fonts Calibri and Helvetica. No JavaScript is used.
|
||||
ULIST: ulist
|
||||
UNKNOWN: Unbekannt
|
||||
UPDATE_USER: Nutzer aktualisieren
|
||||
USE_2_TO_40_CHARACTERS: Verwende 2 bis 40 Anschläge.
|
||||
USE_A_VALID_YEAR: Verwende ein gültiges Jahr
|
||||
UPLOAD_FILE: Datei hochladen
|
||||
UPLOAD: hochladen
|
||||
USE_2_TO_20_CHARACTERS: 2 bis 20 Anschläge erlaubt.
|
||||
USE_2_TO_40_CHARACTERS: 2 to 40 Anschläge erlaubt.
|
||||
USE_A_VALID_LANGUAGE_ATTRIBUTE: Gültiges Language Attribut erforderlich.
|
||||
USE_A_VALID_YEAR: Gültiges Jahr erforderlich.
|
||||
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Wird alternativ zum manuellen Datum genutzt.
|
||||
USERNAME: Nutzername
|
||||
USERS: Nutzer
|
||||
USER: Nutzer
|
||||
VIDEO: Video
|
||||
VIEW_SITE: Seite ansehen
|
||||
VIEW_SITE: Zur Webseite
|
||||
VISUAL_CONTENT_EDITOR: Visueller Inhalts-Editor
|
||||
VISUAL_EDITOR: Visueller Editor
|
||||
VISUAL_MARKDOWN_EDITOR: Visueller Markdown Editor
|
||||
VISUAL_MODE: visueller Modus
|
||||
VISUAL: visuell
|
||||
WAIT: warte
|
||||
WEBSITE_TITLE: Webseiten-Titel
|
||||
WEBSITE_TITLE: WebseitenTitel
|
||||
WEB: Web
|
||||
WRITING: Schreiben
|
||||
YEAR: Jahr
|
||||
YEAR: Jahr
|
||||
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: Du kannst das CSS des Themes hier überschreiben.
|
||||
|
||||
SW_SETUP_WELCOME: Setup Willkommen
|
||||
SW_HURRA: Hurra
|
||||
SW_YOUR_ACCOUNT: Dein Account wurde erstellt und du bist jetzt angemeldet.
|
||||
SW_NEXT_STOP: Nächster Schritt:
|
||||
SW_VISIT: Besuche die Autorenoberfläche und richte die Seite ein. Du kannst das System konfigurieren, Themes auswählen and Plugins hinzufügen.
|
||||
SW_GET_HELP: Hilfe erhalten:
|
||||
SW_IF_YOU_HAVE: Wenn du Fragen hast, lies bitte die
|
||||
SW_DOCS: Dokumentation
|
||||
SW_OR_OPEN: oder öffne ein neues Issue
|
||||
SW_CODED: Entwickelt mit
|
||||
SW_BY: von der
|
||||
SW_COMMUNITY: Community
|
||||
SW_TRENDSCHAU: Trendschau Digital
|
||||
SW_CONFIGURE: Richte deine Seite ein.
|
||||
SW_GIVE_YOUR_NEW: Gib deiner neuen Seite einen Namen, füge Autoren hinzu und wähle ein Copyright.
|
||||
SW_CHOOSE_A_THEME: Richte ein Theme für deine Webseite ein.
|
||||
SW_ADD_NEW_FEATURE: Füge mit Plugins neue Funktionen hinzu.
|
||||
|
@ -90,6 +90,8 @@ IMAGES: Images
|
||||
ITALIAN: Italian
|
||||
ITALIC: italic
|
||||
LANGUAGE: Language
|
||||
LANGUAGE_ADMIN: Language (admin-ui)
|
||||
LANGUAGE_ATTR: Language Attribute (website)
|
||||
LAST_MODIFIED_LIVE__READONLY_: Last modified live (readonly)
|
||||
LAST_NAME: Last Name
|
||||
LEFT: Left
|
||||
@ -169,6 +171,7 @@ UPLOAD_FILE: Upload a file
|
||||
UPLOAD: upload
|
||||
USE_2_TO_20_CHARACTERS: Use 2 to 20 characters.
|
||||
USE_2_TO_40_CHARACTERS: Use 2 to 40 characters.
|
||||
USE_A_VALID_LANGUAGE_ATTRIBUTE: Use a valid language attribute
|
||||
USE_A_VALID_YEAR: Use a valid year
|
||||
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Used as fallback when no manual date is set.
|
||||
USERNAME: Username
|
||||
|
@ -90,6 +90,8 @@ IMAGES: Immagini
|
||||
ITALIAN: Italiano
|
||||
ITALIC: corsivo
|
||||
LANGUAGE: Lingua
|
||||
LANGUAGE_ADMIN: Lingua (admin-ui)
|
||||
LANGUAGE_ATTR: Language Attribute (website)
|
||||
LAST_MODIFIED_LIVE__READONLY_: Ultima modifica (sola lettura)
|
||||
LAST_NAME: Cognome
|
||||
LEFT: Sinistra
|
||||
@ -169,6 +171,7 @@ UPLOAD: carica
|
||||
UPLOAD_FILE: Carica un file
|
||||
USE_2_TO_20_CHARACTERS: Usa da 2 a 20 caratteri.
|
||||
USE_2_TO_40_CHARACTERS: Usa da 2 a 40 caratteri.
|
||||
USE_A_VALID_LANGUAGE_ATTRIBUTE: Use a valid language attribute
|
||||
USE_A_VALID_YEAR: Usa un anno valido
|
||||
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Utilizzato come ripiego quando non è impostata alcuna data manuale.
|
||||
USERNAME: Nome utente
|
||||
|
@ -73,6 +73,8 @@ IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Indien niet ingevuld,
|
||||
IMAGE: Afbeelding
|
||||
ITALIC: cursief
|
||||
LANGUAGE: Taal
|
||||
LANGUAGE_ADMIN: Taal (admin-ui)
|
||||
LANGUAGE_ATTR: Language Attribute (website)
|
||||
LAST_MODIFIED_LIVE__READONLY_: Laatst gewijzigd live (alleen-lezen)
|
||||
LAST_NAME: achternaam
|
||||
LEFT: Links
|
||||
@ -142,6 +144,7 @@ ULIST: ulist
|
||||
UNKNOWN: onbekend
|
||||
UPDATE_USER: Gebruiker bijwerken
|
||||
USE_2_TO_40_CHARACTERS: gebruik 2 tot 40 tekens.
|
||||
USE_A_VALID_LANGUAGE_ATTRIBUTE: Use a valid language attribute
|
||||
USE_A_VALID_YEAR: Gebruik een geldig jaar
|
||||
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Gebruikt als fallback als er geen handmatige datum is ingesteld.
|
||||
USER: Gebruiker
|
||||
|
@ -81,6 +81,8 @@ IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Если не зап
|
||||
IMAGE: Изображение
|
||||
ITALIC: Наклонный
|
||||
LANGUAGE: Язык
|
||||
LANGUAGE_ADMIN: Язык (admin-ui)
|
||||
LANGUAGE_ATTR: Language Attribute (website)
|
||||
LAST_MODIFIED_LIVE__READONLY_: Последнее изменение (только просмотр)
|
||||
LAST_NAME: Фамилия
|
||||
LEFT: Слева
|
||||
@ -153,6 +155,7 @@ UPDATE_USER: Обновить данные профиля
|
||||
UPLOAD: загрузить
|
||||
UPLOAD_FILE: Загрузить файл
|
||||
USE_2_TO_40_CHARACTERS: Используйте от 2 до 40 символов.
|
||||
USE_A_VALID_LANGUAGE_ATTRIBUTE: Use a valid language attribute
|
||||
USE_A_VALID_YEAR: Используйте правильный формат для указания года
|
||||
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Используется как запасной вариант, когда дата не установлена в ручную.
|
||||
USERNAME: Имя пользователя
|
||||
|
@ -9,11 +9,6 @@
|
||||
|
||||
<textarea id="{{ itemName }}[{{ field.name }}]" name="{{ itemName }}[{{ field.name }}]"{{field.getAttributeValues() }}{{ field.getAttributes() }}>{{ field.getContent() }}</textarea>
|
||||
|
||||
{% elseif field.type == 'image' %}
|
||||
<div class="imageupload dropbox">
|
||||
<input id="{{itemName}}[{{ field.name }}]" class="input-file" name="{{itemName}}[{{ field.name }}]" type="file" accept="image/*"{{ field.getAttributeValues() }}{{ field.getAttributes() }}>
|
||||
<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> upload an image</p>
|
||||
</div>
|
||||
{% elseif field.type == 'paragraph' %}
|
||||
|
||||
{{ markdown(field.getContent()) }}
|
||||
|
@ -51,7 +51,7 @@
|
||||
<span class="error">{{ errors.settings.year | first }}</span>
|
||||
{% endif %}
|
||||
</div><div class="medium{{ errors.settings.language ? ' error' : '' }}">
|
||||
<label for="settings[language]">{{ __('Language') }}</label>
|
||||
<label for="settings[language]">{{ __('Language_admin') }}</label>
|
||||
<select name="settings[language]" id="language">
|
||||
{% for key,lang in languages %}
|
||||
<option value="{{ key }}"{% if (key == old.settings.language or key == mylang) %} selected{% endif %}>{{ __(lang) }}</option>
|
||||
@ -60,6 +60,12 @@
|
||||
{% if errors.settings.language %}
|
||||
<span class="error">{{ errors.settings.language | first }}</span>
|
||||
{% endif %}
|
||||
</div><div class="medium{{ errors.settings.langattr ? ' error' : '' }}">
|
||||
<label for="langattr">{{ __('Language_attr') }}</label>
|
||||
<input type="text" name="settings[langattr]" id="langattr" value="{{ old.settings.langattr ? old.settings.langattr : settings.langattr }}" pattern="[a-z]{2}" title="{{ __('Use a valid language attribute') }}, {{ __('e.g.') }} en" />
|
||||
{% if errors.settings.langattr %}
|
||||
<span class="error">{{ errors.settings.langattr | first }}</span>
|
||||
{% endif %}
|
||||
</div><div class="medium">
|
||||
<label for="settings[sitemap]">{{ __('Google Sitemap') }} <small>({{ __('Readonly') }})</small></label>
|
||||
<input type="text" name="settings[sitemap]" id="sitemap" readonly value="{{ base_url }}/cache/sitemap.xml" />
|
||||
|
@ -387,6 +387,21 @@ button.play-video::after {
|
||||
article .gitlink{
|
||||
float: right;
|
||||
}
|
||||
.herocontainer{
|
||||
position: relative;
|
||||
margin: -30px -90px 0px;
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.heroimage{
|
||||
width: 100%;
|
||||
}
|
||||
.herocontainer .breadcrumb{
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
left: 10%;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
/************************
|
||||
* PAGING / BREADCRUMB *
|
||||
|
@ -4,7 +4,21 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include '/partials/breadcrumb.twig' %}
|
||||
{% if metatabs.meta.heroimage %}
|
||||
|
||||
<div class="herocontainer">
|
||||
|
||||
<img class="heroimage" src="{{ metatabs.meta.heroimage }}" alt="{{ metatabs.meta.heroimagealt }}"/>
|
||||
|
||||
{% include '/partials/breadcrumb.twig' %}
|
||||
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
{% include '/partials/breadcrumb.twig' %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if item.elementType == 'file' %}
|
||||
|
||||
|
33
themes/typemill/languages/de.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
# English
|
||||
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Spezielles Start-Design aktivieren
|
||||
ADD_LABEL_FOR_START_BUTTON: Label für Start-Button
|
||||
ADD_NAME_FOR_CHAPTER: Name für Kapitel
|
||||
AUTHOR_INTRO: Präfix für Autorenname
|
||||
CHAPTER: Kapitel
|
||||
COUNT_CHAPTERS_IN_NAVIGATION?: Kapitel in Navigation nummerieren?
|
||||
DIFFERENT_DESIGN_FOR_STARTPAGE: Alternatives Design für Startseite
|
||||
FACEBOOK: Facebook
|
||||
GITHUB: GitHub
|
||||
LABEL_FOR_CHAPTER: Label für Kapitel
|
||||
LABEL_FOR_START_BUTTON: Label für Start-Button
|
||||
LAST_MODIFIED_FORMAT: Format für zuletzt geändert
|
||||
LAST_MODIFIED: Zuletzt geändert
|
||||
LAST_MODIFIED_TEXT: Text für zuletzt geändert
|
||||
LAST_UPDATED: Zuletzt geändert
|
||||
LINKEDIN: Linkedin
|
||||
LINK_TO_GIT_REPOSITORY: Link zum Git-Repository
|
||||
LOGO_ON_STARTPAGE: Logo auf Startseite anzeigen?
|
||||
MAIL: E-Mail
|
||||
PLEASE_ADD_THE_BASE_URL_TO_THE_TEXT_REPOSITORY_E_G__ON_GITHUB_: Bitte füge die Basis-URL zum Git-Repository ein, zum Beispiel von github.
|
||||
POSITION_OF_AUTHOR: Position des Autorennamens
|
||||
POSITION_OF_GIT_EDIT_LINK: Position des Git Editier-Links
|
||||
POSITION_OF_MODIFIED_TEXT: Position des Texts für zuletzt geändert
|
||||
POSITION_OF_SHARE_BUTTONS: Position der Share-Buttons
|
||||
SELECT_SHARE_BUTTONS: Wähle Share-Buttons aus
|
||||
SHARE: Teilen
|
||||
SHOW_CHAPTER_NUMBERS: Kapitel nummerieren
|
||||
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Logo anstelle des Titels anzeigen.
|
||||
THE_STANDARD_THEME_FOR_TYPEMILL__RESPONSIVE__MINIMAL_AND_WITHOUT_ANY_DEPENDENCIES__IT_USES_THE_SYSTEM_FONTS_CALIBRI_AND_HELVETICA__NO_JAVASCRIPT_IS_USED_: 'Das Standard-Theme für Typemill. Minimal, responsiv und ohne Abhängigkeiten. kein JavaScript erforderlich. Gut für Dokumentationen und text-fokussierte Webseiten.'
|
||||
TWITTER: Twitter
|
||||
WHATSAPP: WhatsApp
|
||||
XING: Xing
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ settings.language }}">
|
||||
<html lang="{{ settings.langattr|default('en') }}">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ settings.language }}">
|
||||
<html lang="{{ settings.langattr|default('en') }}">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: Typemill Theme
|
||||
version: 1.2.4
|
||||
version: 1.2.5
|
||||
description: The standard theme for Typemill. Responsive, minimal and without any dependencies. It uses the system fonts Calibri and Helvetica. No JavaScript is used.
|
||||
author: Sebastian Schürmanns
|
||||
homepage: https://typemill.net
|
||||
@ -27,10 +27,6 @@ forms:
|
||||
label: Different Design for Startpage
|
||||
checkboxlabel: Activate Special Startpage-Design
|
||||
|
||||
test:
|
||||
type: image
|
||||
label: Image test
|
||||
|
||||
coverlogo:
|
||||
type: checkbox
|
||||
label: Logo on startpage
|
||||
|