1
0
mirror of https://github.com/typemill/typemill.git synced 2025-01-17 13:28:19 +01:00

update to version136

This commit is contained in:
severoiuliano@gmail.com 2020-04-30 17:19:16 +02:00
parent 29f213f1f2
commit b4f2cc9950
20 changed files with 363 additions and 168 deletions

View File

@ -52,9 +52,32 @@ class SetupController extends Controller
$setuperrors = empty($systemcheck) ? false : 'Some system requirements for Typemill are missing.';
$systemcheck = empty($systemcheck) ? false : $systemcheck;
return $this->render($response, 'auth/setup.twig', array( 'messages' => $setuperrors, 'systemcheck' => $systemcheck ));
# Get the translated strings
$labels = $this->getSetupLabels();
return $this->render($response, 'auth/setup.twig', array( 'messages' => $setuperrors, 'systemcheck' => $systemcheck, 'labels' => $labels ));
}
public function getSetupLabels()
{
# 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';
# At least in the setup phase noon there should be no plugins and the theme should be typemill
$labels = \Typemill\Settings::getLanguageLabels($lang,'typemill',[]);
return $labels;
}
public function create($request, $response, $args)
{
if($request->isPost())
@ -98,7 +121,10 @@ class SetupController extends Controller
{
/* store updated settings */
\Typemill\Settings::updateSettings(array('welcome' => false));
# Get the translated strings
$labels = $this->getSetupLabels();
return $this->render($response, 'auth/welcome.twig', array());
return $this->render($response, 'auth/welcome.twig', array( 'labels' => $labels ));
}
}

View File

@ -16,22 +16,66 @@ class TwigLanguageExtension extends \Twig_Extension
public function getFilters()
{
return [
new \Twig_SimpleFilter('__', [$this,'translate'] )
new \Twig_SimpleFilter('__', [$this,'translate'] ),
new \Twig_SimpleFilter('ta', [$this,'translate_array'] )
];
}
public function getFunctions()
{
return [
new \Twig_SimpleFunction('__', array($this, 'translate' ))
new \Twig_SimpleFunction('__', array($this, 'translate' )),
new \Twig_SimpleFunction('ta', [$this,'translate_array'] )
];
}
public function translate_array( $label )
{
/* In reality the function does not Translate an Array but a string, temporarily transformed into an array.
* I saw a filter/function with this name in Grav.
* Example:
$label -> placeholder="Add Label for Start-Button" value="Start"
after explode:
{
[0]=> string(13) " placeholder="
[1]=> string(26) "Add Label for Start-Button"
[2]=> string(7) " value="
[3]=> string(5) "Start"
[4]=> string(0) ""
}
*/
$translated_label = '';
$items = explode('"',$label);
foreach($items as $item){
// skip empty string
if(!empty($item)){
$pos = strpos($item, '=');
//skip string containing equal sign
if ($pos === false) {
// translate with previous function in this class
$translated = $this->translate($item);
// add the translated string
$translated_label .= '"'.$translated.'"';
} else {
// adds the string containing the equal sign
$translated_label .= $item;
}
}
}
return $translated_label;
}
public function translate( $label )
{
// replaces spaces, dots and dash with underscores
// replaces spaces, dots, comma and dash with underscores
$string = str_replace(" ", "_", $label);
$string = str_replace(".", "_", $string);
$string = str_replace(",", "_", $string);
$string = str_replace("-", "_", $string);
// transforms to uppercase

View File

@ -41,7 +41,12 @@ class Settings
# i18n
# load the strings of the set language
$language = $settings['language'];
$settings['labels'] = self::getLanguageLabels($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'];
@ -98,7 +103,7 @@ class Settings
# i18n
public static function getLanguageLabels($language)
public static function getLanguageLabels($language, $theme, $plugins)
{
# if not present, set the English language
if( empty($language) )
@ -106,23 +111,36 @@ class Settings
$language = 'en';
}
# load the strings of the set language
# loads the system strings of the set language
$yaml = new Models\WriteYaml();
$labels = $yaml->getYaml('settings/languages', $language.'.yaml');
return $labels;
}
$system_labels = $yaml->getYaml('system/author/languages', $language.'.yaml');
public static function getVuejsLabels($language)
{
if( empty($language) ){
$language = 'en';
# 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');
}
// load the strings of the set language
$yaml = new Models\WriteYaml();
$labels = $yaml->getYaml('settings/languages', 'vuejs-'.$language.'.yaml');
# 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);
}
}
# Combines arrays of system languages, themes and plugins
$labels = array_merge($system_labels, $theme_labels, $plugins_labels);
return $labels;
}
@ -138,12 +156,30 @@ 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();
# create initial settings file with only setup false
if($yaml->updateYaml('settings', 'settings.yaml', array('setup' => false)))
if($yaml->updateYaml('settings', 'settings.yaml', array('setup' => false, 'language' => $language)))
{
return true;
}

View File

@ -1,5 +1,5 @@
{% extends 'layouts/layoutAuth.twig' %}
{% block title %}Setup{% endblock %}
{% block title %}{{ labels['SETUP'] ? labels['SETUP'] : 'Setup' }}{% endblock %}
{% block content %}
@ -19,21 +19,21 @@
<fieldset class="auth">
<div class="formElement{{ errors.username ? ' errors' : '' }}">
<label for="username">Username <abbr title="required">*</abbr></label>
<label for="username">{{ labels['USERNAME'] ? labels['USERNAME'] : 'Username' }} <abbr title="{{ labels['REQUIRED'] ? labels['REQUIRED'] : 'required' }}">*</abbr></label>
<input type="text" name="username" value="{{ old.username }}" required>
{% if errors.username %}
<span class="error">{{ errors.username | first }}</span>
{% endif %}
</div>
<div class="formElement{{ errors.email ? ' errors' : '' }}">
<label for="email">E-Mail <abbr title="required">*</abbr></label>
<label for="email">{{ labels['E_MAIL'] ? labels['E_MAIL'] : 'E-Mail' }} <abbr title="{{ labels['REQUIRED'] ? labels['REQUIRED'] : 'required' }}">*</abbr></label>
<input type="text" name="email" value="{{ old.email }}" required>
{% if errors.email %}
<span class="error">{{ errors.email | first }}</span>
{% endif %}
</div>
<div class="formElement{{ errors.password ? ' errors' : '' }}">
<label for="password">Password <abbr title="required">*</abbr></label>
<label for="password">{{ labels['PASSWORD'] ? labels['PASSWORD'] : 'Password' }} <abbr title="{{ labels['REQUIRED'] ? labels['REQUIRED'] : 'required' }}">*</abbr></label>
<input type="password" name="password" required autocomplete="off">
{% if errors.password %}
<span class="error">{{ errors.password | first }}</span>
@ -41,7 +41,7 @@
</div>
</fieldset>
<input type="submit" value="Create User" />
<input type="submit" value="{{ labels['CREATE_USER'] ? labels['CREATE_USER'] : 'Create User' }}" />
{{ csrf_field() | raw }}
</form>

View File

@ -1,6 +1,6 @@
{% extends 'layouts/layoutAuth.twig' %}
{% block title %}Setup Welcome{% endblock %}
{% block title %}{{ labels['SW_SETUP_WELCOME'] ? labels['SW_SETUP_WELCOME'] : 'Setup Welcome' }}{% endblock %}
{% block content %}
@ -8,37 +8,37 @@
<div class="medium">
<div class="welcomeIntro">
<h1>Hurra!</h1>
<p>Your account has been created and you are logged in now.</p>
<p><strong>Next step:</strong> Visit the author panel and setup your new website. You can configure the system, choose themes and add plugins.</p>
<p><strong>Get help:</strong> If you have any questions, please read the <a target="_blank" href="https://typemill.net/typemill"><i class="icon-link-ext"></i> docs</a> or open a new issue on <a target="_blank" href="https://github.com/typemill/typemill"><i class="icon-link-ext"></i> github</a>.</p>
<p>Coded with <span style="font-size: 1.4em;color:#e0474c; margin:0px 3px">&#9829;</span> by the <a target="_blank" href="https://github.com/typemill/typemill">community</a> & <a target="_blank" href="https://trendschau.net/typemill-development"><i class="icon-link-ext"></i> Trendschau Digital</a>.</p>
<h1>{{ labels['SW_HURRA'] ? labels['SW_HURRA'] : 'Hurra' }}!</h1>
<p>{{ labels['SW_YOUR_ACCOUNT'] ? labels['SW_YOUR_ACCOUNT'] : 'Your account has been created and you are logged in now.'}}</p>
<p><strong>{{ labels['SW_NEXT_STOP'] ? labels['SW_NEXT_STOP'] : 'Next step:' }}</strong> {{ labels['SW_VISIT'] ? labels['SW_VISIT'] : 'Visit the author panel and setup your new website. You can configure the system, choose themes and add plugins.' }}</p>
<p><strong>{{ labels['SW_GET_HELP'] ? labels['SW_GET_HELP'] : 'Get help:' }}</strong> {{ labels['SW_IF_YOU_HAVE'] ? labels['SW_IF_YOU_HAVE'] : 'If you have any questions, please read the' }} <a target="_blank" href="https://typemill.net/typemill"><i class="icon-link-ext"></i> {{ labels['SW_DOCS'] ? labels['SW_DOCS'] : 'docs' }}</a> {{ labels['SW_OR_OPEN'] ? labels['SW_OR_OPEN'] : 'or open a new issue on' }} <a target="_blank" href="https://github.com/typemill/typemill"><i class="icon-link-ext"></i> {{ labels['GITHUB'] ? labels['GITHUB'] : 'github' }}</a>.</p>
<p>{{ labels['SW_CODED'] ? labels['SW_CODED'] : 'Coded with' }} <span style="font-size: 1.4em;color:#e0474c; margin:0px 3px">&#9829;</span> {{ labels['SW_BY'] ? labels['SW_BY'] : 'by the' }} <a target="_blank" href="https://github.com/typemill/typemill">{{ labels['SW_COMMUNITY'] ? labels['SW_COMMUNITY'] : 'community' }}</a> & <a target="_blank" href="https://trendschau.net/typemill-development"><i class="icon-link-ext"></i> {{ labels['SW_TRENDSCHAU'] ? labels['SW_TRENDSCHAU'] : 'Trendschau Digital' }}</a>.</p>
</div>
<a class="button" href="{{ path_for('settings.show') }}">Configure your website</a>
<a class="button" href="{{ path_for('settings.show') }}">{{ labels['SW_CONFIGURE'] ? labels['SW_CONFIGURE'] : 'Configure your website' }}</a>
</div>
<div class="small">
<div class="welcomeCard">
<a href="{{ path_for('settings.show') }}">
<div class="welcomeInner">
<h3>System</h3>
<p>Give your new website a name, add the author and choose a copyright.</p>
<h3>{{ labels['SYSTEM'] ? labels['SYSTEM'] : 'System' }}</h3>
<p>{{ labels['SW_GIVE_YOUR_NEW'] ? labels['SW_GIVE_YOUR_NEW'] : 'Give your new website a name, add the author and choose a copyright.' }}</p>
</div>
</a>
</div>
<div class="welcomeCard">
<a href="{{ path_for('themes.show') }}">
<div class="welcomeInner">
<h3>Themes</h3>
<p>Choose a theme for your website and configure the theme details.</p>
<h3>{{ labels['THEMES'] ? labels['THEMES'] : 'Themes' }}</h3>
<p>{{ labels['SW_CHOOSE_A_THEME'] ? labels['SW_CHOOSE_A_THEME'] : 'Choose a theme for your website and configure the theme details.' }}</p>
</div>
</a>
</div>
<div class="welcomeCard">
<a href="{{ path_for('plugins.show') }}">
<div class="welcomeInner">
<h3>Plugins</h3>
<p>Add new features to your website with plugins and configure them.</p>
<h3>{{ labels['PLUGINS'] ? labels['PLUGINS'] : 'Plugins' }}</h3>
<p>{{ labels['SW_ADD_NEW_FEATURE'] ? labels['SW_ADD_NEW_FEATURE'] : 'Add new features to your website with plugins and configure them.' }}</p>
</div>
</a>
</div>

View File

@ -949,14 +949,14 @@ const tableComponent = Vue.component('table-component', {
'<div class="actionline" @click="addbelowrow(value)">{{ \'add row below\'|translate }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ \'delete row\'|translate }}</div>' +
'</div>' +
'{{ value }}</th>' +
'{{ value|translate }}</th>' +
'<td v-if="rowindex > 1" v-for="(value,colindex) in row" :contenteditable="colindex !== 0 ? true : false" @click="switchrowbar(value)" @blur="updatedata($event,colindex,rowindex)" :class="colindex !== 0 ? editable : noteditable">' +
'<div v-if="colindex === 0 && rowbar === value" class="rowaction">' +
'<div class="actionline" @click="addaboverow(value)">{{ \'add row above\'|translate }}</div>' +
'<div class="actionline" @click="addbelowrow(value)">{{ \'add row below\'|translate }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ \'delete row\'|translate }}</div>' +
'</div>' +
'{{ value }}</td>' +
'{{ value|translate }}</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
@ -1244,7 +1244,7 @@ const imageComponent = Vue.component('image-component', {
'<input type="file" name="image" accept="image/*" class="input-file" @change="onFileChange( $event )" /> ' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ \'drag a picture or click to select\'|translate }}</p>' +
'</div>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-image baseline"><use xlink:href="#icon-image"></use></svg> select from medialib</button>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-image baseline"><use xlink:href="#icon-image"></use></svg> {{ \'select from medialib\'|translate }}</button>' +
'<transition name="fade-editor">' +
'<div v-if="showmedialib" class="modalWindow">' +
'<medialib parentcomponent="images"></medialib>' +
@ -1536,7 +1536,7 @@ const fileComponent = Vue.component('file-component', {
'<input type="file" accept="*" name="file" class="input-file" @change="onFileChange( $event )" /> ' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ \'upload file\'|translate }}</p>' +
'</div>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-paperclip baseline"><use xlink:href="#icon-paperclip"></use></svg> select from medialib</button>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-paperclip baseline"><use xlink:href="#icon-paperclip"></use></svg> {{ \'select from medialib\'|translate }}</button>' +
'<transition name="fade-editor">' +
'<div v-if="showmedialib" class="modalWindow">' +
'<medialib parentcomponent="files"></medialib>' +
@ -1729,8 +1729,8 @@ const medialib = Vue.component('medialib', {
'<div class="w-100 relative">' +
'<div><input v-model="search" class="w-100 border-box pa2 mb3 br0 ba b--light-silver"><svg class="icon icon-search absolute top-1 right-1 pa1 gray"><use xlink:href="#icon-search"></use></svg></div>' +
'</div>' +
'<button @click.prevent="showImages()" class="link br0 ba ph3 pv2 mv2 mr1" :class="isImagesActive()">Images</button>' +
'<button @click.prevent="showFiles()" class="link br0 ba ph3 pv2 mv2 ml1" :class="isFilesActive()">Files</button>' +
'<button @click.prevent="showImages()" class="link br0 ba ph3 pv2 mv2 mr1" :class="isImagesActive()">{{ \'Images\'|translate }}</button>' +
'<button @click.prevent="showFiles()" class="link br0 ba ph3 pv2 mv2 ml1" :class="isFilesActive()">{{ \'Files\'|translate }}</button>' +
'</div>' +
'<div class="w-70 dib v-top center">' +
'<div v-if="errors" class="w-95 mv3 white bg-tm-red tc f5 lh-copy pa3">{{errors}}</div>' +

View File

@ -2,7 +2,7 @@ const FormBus = new Vue();
Vue.filter('translate', function (value) {
if (!value) return ''
transvalue = value.replace(/[ ]/g,"_").replace(/[.]/g, "_").replace(/[-]/g, "_").replace(/[,]/g,"_").replace(/[(]/g,"_").replace(/[)]/g,"_").toUpperCase()
transvalue = value.replace(/[ ]/g,"_").replace(/[.]/g, "_").replace(/[,]/g, "_").replace(/[-]/g, "_").replace(/[,]/g,"_").replace(/[(]/g,"_").replace(/[)]/g,"_").toUpperCase()
translated_string = labels[transvalue]
if(!translated_string || translated_string.length === 0){
return value

View File

@ -1,6 +1,5 @@
# English
ACCOUNT: Account
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activate Special Startpage-Design
ACTIVE: Active
ACTUAL_PASSWORD: Actual Password
ADD: add
@ -17,7 +16,6 @@ ADD_ROW_BELOW: add row below
ALL_USERS: All users
ALT_TEXT: Alt-Text
AUTHOR: Author
AUTHOR_INTRO: Author Intro
BACK_TO_STARTPAGE: back to startpage
BOLD: bold
BOTTOM: Bottom
@ -37,7 +35,6 @@ COG: cog
CONTENT: Content
CONTENT: Content
COPYRIGHT: Copyright
COUNT_CHAPTERS_IN_NAVIGATION?: Count chapters in navigation?
CREATED_AT__READ_ONLY_: Created at (readonly)
CREATED_AT__READONLY_: Created at (read only)
CREATE_NEW_USER: Create New User
@ -54,7 +51,6 @@ DELETE_PAGE: Delete page
DELETE_ROW: delete row
DELETE_USER: Delete User
DESCRIPTION: description
DIFFERENT_DESIGN_FOR_STARTPAGE: Different Design for Startpage
DISCARD_CHANGES: Discard Changes
DISCARD: Discard
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Do you really want to delete the user
@ -62,19 +58,25 @@ DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Do you really want to delete this page?
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Do you want to discard your changes and set the content back to the live version?
DRAFT: Draft
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: upload an image
DUTCH__FLEMISH: Dutch, Flemish
EDIT: edit
EDIT_USER: Edit User
E_G_: e.g.
E_MAIL: E-Mail
ENGLISH: English
EXTERNAL_LINK: external-link
FACEBOOK: Facebook
FAVICON: Favicon
FILE: File
FILES: Files
FIRST_NAME: First Name
FOLDER: folder
FORGOT_PASSWORD: Forgot password
FORMAT: Format
GITHUB: GitHub
GENERAL_PRESENTATION: General Presentation
GERMAN: German
GOOGLE_SITEMAP: Google Sitemap
HEAD: Head
HEADLINE_ANCHORS: Headline Anchors
HEADLINE: Headline
HIDE: Hide
HIDE_PAGE_FROM_NAVIGATION: Hide page from navigation
@ -84,25 +86,19 @@ HORIZONTAL_LINE: Horizontal Line
HR: hr
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: If not filled, the description is extracted from content.
IMAGE: Image
IMAGES: Images
ITALIAN: Italian
ITALIC: italic
LABEL_FOR_CHAPTER: Label for Chapter
LABEL_FOR_START_BUTTON: Label for Start Button
LANGUAGE: Language
LAST_MODIFIED_FORMAT: Last Modified Format
LAST_MODIFIED: Last Modified
LAST_MODIFIED_LIVE__READONLY_: Last modified live (readonly)
LAST_MODIFIED_TEXT: Last Modified Text
LAST_NAME: Last Name
LEFT: Left
LICENCE: Licence
LINKEDIN: Linkedin
LINK: Link
LINK_TO_GIT_REPOSITORY: Link to git repository
LINK_TO_VIDEO: Link to video
LOGIN: Login
LOGO_ON_STARTPAGE: Logo on startpage
LOGO: Logo
LOGOUT: Logout
MAIL: Mail
MANUAL_DATE: Manual date
MARKDOWN: markdown
MENU: Menu
@ -114,11 +110,13 @@ MOVE_VERTICAL: move vertical
NAVIGATION_TITLE: Navigation Title
NEW_PASSWORD: New Password
NO_DESCRIPTION: No description
NONE: None
NO_PREVIEW: No Preview
NO_SETTINGS: No Settings
NOT_EDITABLE: not editable
NUMBERED_LIST: Numbered List
OLIST: olist
ONLINE: online
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Only the following special characters are allowed:
PARAGRAPH: Paragraph
PASSWORD: Password
@ -126,10 +124,6 @@ PLEASE_CONFIRM: Please confirm
PLEASE_CORRECT_THE_ERRORS_ABOVE: Please correct the errors above
PLUGINS: Plugins
PLUGIN_STORE: Plugin Store
POSITION_OF_AUTHOR: Position of Author
POSITION_OF_GIT_EDIT_LINK: Position of Git Edit Link
POSITION_OF_MODIFIED_TEXT: Position of Modified Text
POSITION_OF_SHARE_BUTTONS: Position of Share-Buttons
POWER_OFF: power-off
PUBLISH: Publish
QUOTE: Quote
@ -143,17 +137,16 @@ REMEMBER_TO_BOOKMARK_THIS_PAGE: Remember to bookmark this page
REQUIRED: Required
RIGHT: Right
ROLE: Role
RUSSIAN: Russian
SAVE_ALL_SETTINGS: Save All Settings
SAVED_SUCCESSFULLY: Saved successfully
SAVE: Save
SAVE_THEME: Save Theme
SELECT_SHARE_BUTTONS: Select Share Buttons
SETTINGS: Settings
SELECT_FROM_MEDIALIB: select from medialib
SETTINGS_ARE_STORED: Settings are stored
SETTINGS: Settings
SETUP: Setup
SHARE: Share
SHOW_CHAPTER_NUMBERS: Show Chapter Numbers
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Show logo instead of title on startpage
SHOW_ANCHORS_NEXT_TO_HEADLINES: Show anchors next to headlines
STANDARD_EDITOR_MODE: Standard Editor Mode
START: Start
SYSTEM: System
@ -168,13 +161,13 @@ THEME_STORE: Theme Store
TITLE: Title
TOC: toc
TOP: Top
TWITTER: Twitter
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: Unknown
UPDATE_USER: Update User
UPLOAD: upload
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_YEAR: Use a valid year
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Used as fallback when no manual date is set.
@ -191,8 +184,24 @@ VISUAL: visual
WAIT: wait
WEBSITE_TITLE: Website Title
WEB: Web
WHATSAPP: WhatsApp
WRITING: Writing
XING: Xing
YEAR: Year
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: You can overwrite the theme-css with your own css here.
SW_SETUP_WELCOME: Setup Welcome
SW_HURRA: Hurra
SW_YOUR_ACCOUNT: Your account has been created and you are logged in now.
SW_NEXT_STOP: Next step:
SW_VISIT: Visit the author panel and setup your new website. You can configure the system, choose themes and add plugins.
SW_GET_HELP: Get help:
SW_IF_YOU_HAVE: If you have any questions, please read the
SW_DOCS: docs
SW_OR_OPEN: or open a new issue on
SW_CODED: Coded with
SW_BY: by the
SW_COMMUNITY: community
SW_TRENDSCHAU: Trendschau Digital
SW_CONFIGURE: Configure your website
SW_GIVE_YOUR_NEW: Give your new website a name, add the author and choose a copyright.
SW_CHOOSE_A_THEME: Choose a theme for your website and configure the theme details.
SW_ADD_NEW_FEATURE: Add new features to your website with plugins and configure them.

View File

@ -1,6 +1,5 @@
# Italiano
ACCOUNT: Utenza
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Attiva il disegno speciale della pagina iniziale
ACTIVE: Attivo
ACTUAL_PASSWORD: Parola d'ordine corrente
ADD: aggiungi
@ -17,7 +16,6 @@ ADD_ROW_BELOW: aggiungi la riga sotto
ALL_USERS: Tutti gli utenti
ALT_TEXT: Testo alternativo
AUTHOR: Autore
AUTHOR_INTRO: Introduzione dell'autore
BACK_TO_STARTPAGE: torna alla pagina iniziale
BOLD: grassetto
BOTTOM: Sotto
@ -31,12 +29,12 @@ CENTER: Centro
CHECK: controllo
CHOOSE_FILE: Scegli il file
CLASS: Classe
CLOSE_LIBRARY: Chiudi libreria
CODE: Codice
COG: ingranaggio
CONTENT: Contenuto
CONTENT: Contenuto
COPYRIGHT: Diritti d'autore
COUNT_CHAPTERS_IN_NAVIGATION?: Contare i capitoli nella navigazione?
CREATED_AT__READ_ONLY_: Creato il (sola lettura)
CREATED_AT__READONLY_: Creato il (sola lettura)
CREATE_NEW_USER: Crea nuovo utente
@ -53,7 +51,6 @@ DELETE_PAGE: Elimina pagina
DELETE_ROW: elimina riga
DELETE_USER: Elimina utente
DESCRIPTION: descrizione
DIFFERENT_DESIGN_FOR_STARTPAGE: Disegno diverso per la pagina iniziale
DISCARD_CHANGES: Non salvare le modifiche
DISCARD: Scarta
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Vuoi veramente eliminare l'utente
@ -61,19 +58,25 @@ DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Vuoi veramente cancellare questa pagina?
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Vuoi annullare le modifiche e ripristinare i contenuti alla versione precedente?
DRAFT: Bozza
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: trascina un'immagine o fai clic per selezionare
DUTCH__FLEMISH: Olandese, Fiammingo
EDIT: modifica
EDIT_USER: Modifica utente
E_G_: per es.:
E_MAIL: Posta elettronica
ENGLISH: Inglese
EXTERNAL_LINK: collegamento esterno
FACEBOOK: Facebook
File: File
FAVICON: Favicon
FILE: Archivio
FILES: Archivi
FIRST_NAME: Nome
FOLDER: cartella
FORGOT_PASSWORD: Parola d'ordine dimenticata
FORMAT: Format
GITHUB: GitHub
GENERAL_PRESENTATION: Presentazione generale
GERMAN: Tedesco
GOOGLE_SITEMAP: Sitemap di Google
HEAD: Intestazione
HEADLINE_ANCHORS: Ancoraggi del titolo
HEADLINE: Titolo
HIDE: Nascondi
HIDE_PAGE_FROM_NAVIGATION: Nasconde la pagina dalla navigazione
@ -83,41 +86,37 @@ HORIZONTAL_LINE: Linea orizzontale
HR: Linea orizzontale
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Se non compilato, la descrizione viene estratta dal contenuto.
IMAGE: Immagine
IMAGES: Immagini
ITALIAN: Italiano
ITALIC: corsivo
LABEL_FOR_CHAPTER: Etichetta per capitolo
LABEL_FOR_START_BUTTON: Etichetta per il pulsante Comincia
LANGUAGE: Lingua
LAST_MODIFIED_FORMAT: Ultimo formato modificato
LAST_MODIFIED_LIVE__READONLY_: Ultima modifica (sola lettura)
LAST_MODIFIED_TEXT: Ultimo testo modificato
LAST_MODIFIED: Ultima modifica
LAST_NAME: Cognome
LEFT: Sinistra
LICENCE: Licenza
LINK: Collegamento
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Collegamento al deposito git
LINK_TO_VIDEO: Collega al video
LOGIN: Accesso
LOGO_ON_STARTPAGE: Logo sulla pagina iniziale
LOGOUT: Disconnessione
MAIL: Mail
LOGO: Logo
LOGOUT: Esci
MANUAL_DATE: Data manuale
MARKDOWN: Markdown
MENU: Menu
META_DESCRIPTION: Descrizione
META_TITLE: Titolo
META: Metadati
META_TITLE: Titolo
MISSING_REQUIREMENTS: Requisiti mancanti
MOVE_VERTICAL: spostare in verticale
NAVIGATION_TITLE: Titolo di navigazione
NEW_PASSWORD: Nuova parola d'ordine
NO_DESCRIPTION: Nessuna descrizione
NONE: Nessuna
NO_PREVIEW: Nessuna anteprima
NO_SETTINGS: Nessuna impostazione
NOT_EDITABLE: non modificabile
NUMBERED_LIST: Elenco numerato
OLIST: Elenchi ordinati
ONLINE: in linea
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Sono ammessi solo i seguenti caratteri speciali:
PARAGRAPH: Paragrafo
PASSWORD: Parola d'ordine
@ -125,10 +124,6 @@ PLEASE_CONFIRM: Per favore conferma
PLEASE_CORRECT_THE_ERRORS_ABOVE: Si prega di correggere gli errori sopra
PLUGINS: Plugin
PLUGIN_STORE: Deposito plugin
POSITION_OF_AUTHOR: Posizione dell'autore
POSITION_OF_GIT_EDIT_LINK: Posizione del collegamento modifica Git
POSITION_OF_MODIFIED_TEXT: Posizione del testo modificato
POSITION_OF_SHARE_BUTTONS: Posizione dei pulsanti di condivisione
POWER_OFF: spegni
PUBLISH: Pubblica
QUOTE: Citazione
@ -142,17 +137,16 @@ REMEMBER_TO_BOOKMARK_THIS_PAGE: Ricorda di aggiungere questa pagina ai segnalibr
REQUIRED: Richiesto
RIGHT: Destra
ROLE: Ruolo
RUSSIAN: Russo
SAVE_ALL_SETTINGS: Salva tutte le impostazioni
SAVED_SUCCESSFULLY: Salvato con successo
SAVE: Salva
SAVE_THEME: Salva tema
SELECT_SHARE_BUTTONS: Seleziona i pulsanti pulsanti di condivisione
SETTINGS: Impostazioni
SELECT_FROM_MEDIALIB: seleziona da medialib
SETTINGS_ARE_STORED: Le impostazioni sono memorizzate
SETTINGS: Impostazioni
SETUP: Configurazione
SHARE: Condividere
SHOW_CHAPTER_NUMBERS: Mostra i numeri dei capitoli
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Mostra logo invece del titolo sulla pagina iniziale
SHOW_ANCHORS_NEXT_TO_HEADLINES: Mostra le ancore accanto ai titoli
STANDARD_EDITOR_MODE: Modalità editore standard
START: Comincia
SYSTEM: Sistema
@ -167,12 +161,13 @@ THEME_STORE: Deposito temi
TITLE: Titolo
TOC: Sommario
TOP: Sopra
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Il tema standard per Typemill. Reattivo, minimo e senza dipendenze. Utilizza i caratteri di sistema Calibri ed Helvetica. Non viene utilizzato JavaScript.
ULIST: Elenchi non ordinati
UNKNOWN: Ignoto
UPDATE_USER: Aggiorna utente
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_YEAR: Usa un anno valido
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Utilizzato come ripiego quando non è impostata alcuna data manuale.
@ -189,8 +184,24 @@ VISUAL: visivo
WAIT: aspetta
WEBSITE_TITLE: Titolo del sito
WEB: Sito
WHATSAPP: WhatsApp
WRITING: Scrittura
XING: Xing
YEAR: Anno
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: È possibile sovrascrivere il css del tema con il proprio CSS qui.
SW_SETUP_WELCOME: Benvenuto all'installazione
SW_HURRA: Evviva
SW_YOUR_ACCOUNT: Il tuo account è stato creato e ora sei connesso.
SW_NEXT_STOP: Prossimo passo:
SW_VISIT: Visita il pannello autore e configura il tuo nuovo sito. Puoi configurare il sistema, scegliere i temi e aggiungere plugin.
SW_GET_HELP: Chiedi aiuto:
SW_IF_YOU_HAVE: In caso di domande, si prega di leggere la
SW_DOCS: documentazione
SW_OR_OPEN: o aprire un nuovo problema su
SW_CODED: Codificato con
SW_BY: dalla
SW_COMMUNITY: comunità
SW_TRENDSCHAU: Trendschau Digital
SW_CONFIGURE: Configura il tuo sito
SW_GIVE_YOUR_NEW: Dai un nome al tuo nuovo sito, aggiungi l'autore e scegli un diritto d'autore.
SW_CHOOSE_A_THEME: Scegli un tema per il tuo sito e configura i dettagli del tema.
SW_ADD_NEW_FEATURE: Aggiungi nuove funzionalità al tuo sito mediante plugin e configurali.

View File

@ -1,6 +1,5 @@
# Dutch
ACCOUNT: Account
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activeer speciaal startpagina-ontwerp
ACTIVE: Actief
ACTUAL_PASSWORD: Actueel wachtwoord
ADD_CONTENT_BLOCK: inhoudblok toevoegen
@ -17,7 +16,6 @@ ADD: toevoegen
ALL_USERS: Alle gebruikers
ALT_TEXT: Alt-tekst
AUTHOR: Auteur
AUTHOR_INTRO: Auteur Intro
BACK_TO_STARTPAGE: terug naar startpagina
BOLD: vetgedrukt
BOTTOM: bodem
@ -33,7 +31,6 @@ CODE: Code
COG: tandwiel
CONTENT: Inhoud
COPYRIGHT: Auteursrecht
COUNT_CHAPTERS_IN_NAVIGATION?: Hoofdstukken tellen in navigatie?
CREATED_AT__READ_ONLY_: Gemaakt om (alleen lezen)
CREATED_AT__READONLY_: Gemaakt om (alleen lezen)
CREATE_NEW_USER: Nieuwe gebruiker maken
@ -49,7 +46,6 @@ DELETE_ROW: rij verwijderen
DELETE_USER: Gebruiker verwijderen
DELETE: verwijderen
DESCRIPTION: omschrijving
DIFFERENT_DESIGN_FOR_STARTPAGE: ander ontwerp voor startpagina
DISCARD_CHANGES: Wijzigingen negeren
DISCARD: weggooien
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Wilt u de gebruiker echt verwijderen
@ -62,12 +58,10 @@ EDIT_USER: Gebruiker bewerken
E_G_: bijv.
E_MAIL: e-mail
EXTERNAL_LINK: externe link
FACEBOOK: Facebook
FIRST_NAME: Voornaam
FOLDER: map
FORGOT_PASSWORD: Wachtwoord vergeten
FORMAT: Formaat
GITHUB: GitHub
HEAD: Kop
HEADLINE: Kop
HOME: home
@ -78,23 +72,15 @@ HR: hr
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Indien niet ingevuld, wordt de beschrijving uit de inhoud gehaald.
IMAGE: Afbeelding
ITALIC: cursief
LABEL_FOR_CHAPTER: Label voor hoofdstuk
LABEL_FOR_START_BUTTON: label voor startknop
LANGUAGE: Taal
LAST_MODIFIED_FORMAT: Laatst gewijzigd formaat
LAST_MODIFIED: Laatst gewijzigd
LAST_MODIFIED_LIVE__READONLY_: Laatst gewijzigd live (alleen-lezen)
LAST_MODIFIED_TEXT: Laatst gewijzigde tekst
LAST_NAME: achternaam
LEFT: Links
LICENCE: Licentie
LINKEDIN: Linkedin
LINK: Link
LINK_TO_GIT_REPOSITORY: Link naar git repository
LINK_TO_VIDEO: Link naar video
LOGIN: Inloggen
LOGOUT: Uitloggen
MAIL: Mail
MANUAL_DATE: Handmatige datum
MARKDOWN: Markdown
MENU: Menu
@ -118,10 +104,6 @@ PLEASE_CONFIRM: bevestig alstublieft
PLEASE_CORRECT_THE_ERRORS_ABOVE: Corrigeer bovenstaande fouten
PLUGINS: plug-ins
PLUGIN_STORE: Plugin Store
POSITION_OF_AUTHOR: Positie van auteur
POSITION_OF_GIT_EDIT_LINK: Positie van Git Link bewerken
POSITION_OF_MODIFIED_TEXT: Positie van gemodificeerde tekst
POSITION_OF_SHARE_BUTTONS: Positie van Share-knoppen
POWER_OFF: power-off
PUBLISH: Publiceren
QUOTE: Citeren
@ -139,11 +121,8 @@ SAVE_ALL_SETTINGS: sla alle instellingen op
SAVED_SUCCESSFULLY: succesvol opgeslagen
SAVE: Opslaan
SAVE_THEME: Thema opslaan
SELECT_SHARE_BUTTONS: Selecteer Share-knoppen
SETTINGS: Instellingen
SETUP: Setup
SHARE: deel
SHOW_CHAPTER_NUMBERS: hoofdstuknummers tonen
STANDARD_EDITOR_MODE: Standaardeditormodus
START: Start
SYSTEM: Systeem
@ -158,7 +137,6 @@ THEME_STORE: Theme Store
TITLE: Titel
TOC: toc
TOP: Top
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Het standaardthema voor typemill. Responsief, minimaal en zonder afhankelijkheden. Het gebruikt de systeemlettertypen Calibri en Helvetica. Er is geen JavaScript gebruikt.
ULIST: ulist
UNKNOWN: onbekend
@ -179,7 +157,5 @@ VISUEEL: visueel
WAIT: wacht
WEBSITE_TITLE: Titel van de website
WEB: Web
WHATSAPP: Whatsapp
WRITING: schrijven
XING: Xing
YEAR: Jaar

View File

@ -1,7 +1,6 @@
# Russian
#Translation: Paul (https://paul.bid) paulbid@protonmail.com
ACCOUNT: Аккаунт
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Активировать особый дизайн для Главной страницы
ACTIVE: Активный
ACTUAL_PASSWORD: Текущий пароль
ADD: добавить
@ -18,7 +17,6 @@ ADD_ROW_BELOW: добавить строку ниже
ALL_USERS: Все пользователи
ALT_TEXT: Альтернативный текст
AUTHOR: Автор
AUTHOR_INTRO: Напись перед указанием автора
BACK_TO_STARTPAGE: назад на страртовую страницу
BOLD: Полужирный
BOTTOM: Внизу
@ -38,7 +36,6 @@ COG: cog
CONTENT: Редактор
CONTENT: Контент
COPYRIGHT: Копирайт
COUNT_CHAPTERS_IN_NAVIGATION?: Нумеровать разделы в панели навигации?
CREATED_AT__READ_ONLY_: Создано в (только просмотр)
CREATED_AT__READONLY_: Создано в (только просмотр)
CREATE_NEW_USER: Создание нового пользователя
@ -55,7 +52,6 @@ DELETE_PAGE: Удалить страницу
DELETE_ROW: удалить строку
DELETE_USER: Удалить пользователя
DESCRIPTION: описание
DIFFERENT_DESIGN_FOR_STARTPAGE: Особый дизайн для Главной страницы
DISCARD_CHANGES: Сбросить изменения
DISCARD: Сбросить
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Вы действительно хотите удалить пользователя?
@ -68,13 +64,11 @@ EDIT_USER: Редактирование профиля
E_G_: например
E_MAIL: Email
EXTERNAL_LINK: внешняя ссылка
FACEBOOK: Facebook
FILE: Файл
FIRST_NAME: Имя
FOLDER: раздел
FORGOT_PASSWORD: Забыл пароль
FORMAT: Формат
GITHUB: GitHub
HEAD: Заголовок
HEADLINE: Заголовок
HIDE: Скрыть
@ -86,24 +80,15 @@ HR: Горизонтальная линия
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Если не заполнено, описание генерируется из содержимого.
IMAGE: Изображение
ITALIC: Наклонный
LABEL_FOR_CHAPTER: Надпись обозначающая раздел
LABEL_FOR_START_BUTTON: Надпись на кнопке «Начать»
LANGUAGE: Язык
LAST_MODIFIED_FORMAT: Формат даты последнего изменения
LAST_MODIFIED: Последние изменения
LAST_MODIFIED_LIVE__READONLY_: Последнее изменение (только просмотр)
LAST_MODIFIED_TEXT: Текст перед указанием даты последнего изменения
LAST_NAME: Фамилия
LEFT: Слева
LICENCE: Лицензия
LINKEDIN: LinkedIn
LINK: Ссылка
LINK_TO_GIT_REPOSITORY: Ссылка на git репозиторий
LINK_TO_VIDEO: Ссылка на видео
LOGIN: Войти
LOGO_ON_STARTPAGE: Логотип на Стартовой странице
LOGOUT: Выйти
MAIL: Почта
MANUAL_DATE: Выбор даты вручную
MARKDOWN: Markdown
MENU: Меню
@ -127,10 +112,6 @@ PLEASE_CONFIRM: Пожалуйста подтвердите
PLEASE_CORRECT_THE_ERRORS_ABOVE: Пожалуйста, исправьте ошибки выше
PLUGINS: Плагины
PLUGIN_STORE: Магазин Плагинов
POSITION_OF_AUTHOR: Место для отображения авторства
POSITION_OF_GIT_EDIT_LINK: Позиция Git-ссылки на редактирование
POSITION_OF_MODIFIED_TEXT: Позиция надписи о последнем изменении
POSITION_OF_SHARE_BUTTONS: Позиция кнопок «поделиться»
POWER_OFF: выключить
PUBLISH: Опубликовать
QUOTE: Цитата
@ -148,13 +129,9 @@ SAVE_ALL_SETTINGS: Сохранить все настройки
SAVED_SUCCESSFULLY: Успешно сохранено
SAVE: Сохранить
SAVE_THEME: Сохранить настройки Темы
SELECT_SHARE_BUTTONS: Выберите кнопки нужные «поделиться»
SETTINGS: Настройки
SETTINGS_ARE_STORED: Настройки сохранены
SETUP: Установка
SHARE: Поделиться
SHOW_CHAPTER_NUMBERS: Отображать нумерацию разделов
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Показывать логотип вместо названия на Стартовой странице
STANDARD_EDITOR_MODE: Стандартный режим редактора
START: Начать
SYSTEM: Система
@ -169,7 +146,6 @@ THEME_STORE: Магазин Тем
TITLE: Название
TOC: Оглавление
TOP: Наверху
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Стандартная тема для Typemill. Отзывчивая, минималистичная и без каких-либо зависимостей. Используются системные шрифты Calibri и Helvetica. JavaScript не используется.
ULIST: Маркированный список
UNKNOWN: Неизвестен
@ -192,8 +168,6 @@ VISUAL: визуально
WAIT: подождите
WEBSITE_TITLE: Название сайта
WEB: Сайт
WHATSAPP: WhatsApp
WRITING: Написание
XING: Xing
YEAR: Год
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: Вы можете изменить CSS стиль Темы на свой собственный CSS здесь.

View File

@ -2,7 +2,7 @@
<label for="{{ itemName }}[{{ field.name }}]">{{ __( field.getLabel() ) }}
{% if field.getAttribute('required') %}<strong><abbr title="{{ __('required') }}">*</abbr></strong>{% endif %}
{% if field.help %}<div class="help">?<span class="tooltip">{{field.help|slice(0,100)}}</span></div>{% endif %}
{% if field.help %}<div class="help">?<span class="tooltip">{{__(field.help|slice(0,100))}}</span></div>{% endif %}
</label>
{% if field.type == 'textarea' %}
@ -63,7 +63,7 @@
{% else %}
<input id="{{itemName}}[{{ field.name }}]" name="{{itemName}}[{{ field.name }}]" type="{{ field.type }}"{{ field.getAttributeValues() }}{{ field.getAttributes() }}>
<input id="{{itemName}}[{{ field.name }}]" name="{{itemName}}[{{ field.name }}]" type="{{ field.type }}"{{ field.getAttributeValues()|ta }}{{ field.getAttributes() }}>
{% endif %}

View File

@ -31,12 +31,12 @@
<div id="{{ pluginName }}" class="fc-plugin-version update-banner">{{ plugin.version ? plugin.version : __('Unknown') }}</div>
<div class="cardDescPlugin">
<p>{{ plugin.description ? plugin.description : __('No description') }}</p>
<p>{{ plugin.description ? __(plugin.description) : __('No description') }}</p>
<ul class="cardInfo">
<li>{{ plugin.version ? plugin.version : __('Unknown') }}</li><li>
{{ plugin.licence ? plugin.licence : __('Unkown') }}</li><li>
by {{ plugin.author ? plugin.author : __('Unknown') }}</li>{% if plugin.homepage %}<li>
{{ __('by') }} {{ plugin.author ? plugin.author : __('Unknown') }}</li>{% if plugin.homepage %}<li>
<a href="{{ plugin.homepage}}" target="blank">{{ __('Web') }}</a></li>{% endif %}
</ul>
</div>

View File

@ -24,13 +24,13 @@
<div class="medium{{ errors.settings.title ? ' error' : '' }}">
<label for="settings[title]">{{ __('Website Title') }} *</label>
<input type="text" name="settings[title]" id="title" pattern=".{2,20}" required title="Use 2 to 20 characters." value="{{ old.settings.title ? old.settings.title : settings.title }}" />
<input type="text" name="settings[title]" id="title" pattern=".{2,20}" required title="{{ __('Use 2 to 20 characters') }}" value="{{ old.settings.title ? old.settings.title : settings.title }}" />
{% if errors.settings.title %}
<span class="error">{{ errors.settings.title | first }}</span>
{% endif %}
</div><div class="medium{{ errors.settings.author ? ' error' : '' }}">
<label for="settings[author]">{{ __('Author') }}</label>
<input type="text" name="settings[author]" id="author" pattern="[^()/><\]\{\}\?\$@#!*%§=[\\\x22;:|]{2,40}" value="{{ old.settings.author ? old.settings.author : settings.author }}" title="{{ __('Use 2 to 40 characters') }} {{ __('Only the following special characters are allowed') }} a,b a.b a-b a_b a&b a+b" />
<input type="text" name="settings[author]" id="author" pattern="[^()/><\]\{\}\?\$@#!*%§=[\\\x22;:|]{2,40}" value="{{ old.settings.author ? old.settings.author : __(settings.author) }}" title="{{ __('Use 2 to 40 characters') }} {{ __('Only the following special characters are allowed') }} a,b a.b a-b a_b a&b a+b" />
{% if errors.settings.author %}
<span class="error">{{ errors.settings.author | first }}</span>
{% endif %}
@ -38,7 +38,7 @@
<label for="settings[copyright]">{{ __('Copyright') }}/{{ __('Licence') }}</label>
<select name="settings[copyright]" id="copyright">
{% for copy in copyright %}
<option value="{{ copy }}"{% if copy == old.settings.copyright or copy == mycopy %} selected{% endif %}>{{ copy }}</option>
<option value="{{ copy }}"{% if copy == old.settings.copyright or copy == mycopy %} selected{% endif %}>{{ __(copy) }}</option>
{% endfor %}
</select>
{% if errors.settings.copyright %}
@ -54,14 +54,14 @@
<label for="settings[language]">{{ __('Language') }}</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>
<option value="{{ key }}"{% if (key == old.settings.language or key == mylang) %} selected{% endif %}>{{ __(lang) }}</option>
{% endfor %}
</select>
{% if errors.settings.language %}
<span class="error">{{ errors.settings.language | first }}</span>
{% endif %}
</div><div class="medium">
<label for="settings[sitemap]">Google Sitemap <small>({{ __('Readonly') }})</small></label>
<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" />
</div>
<hr>
@ -69,7 +69,7 @@
<h2>{{ __('General Presentation') }}</h2>
</header>
<div class="medium{{ errors.settings.logo ? ' error' : '' }}">
<label for="settings[logo]">Logo <small>(jpg,jpeg,png,svg)</small></label>
<label for="settings[logo]">{{ __('Logo') }} <small>(jpg,jpeg,png,svg)</small></label>
<div class="flex fileinput">
<button class="deletefilebutton w-10 bg-tm-gray bn hover-bg-tm-red hover-white">x</button>
<input class="deletefileinput" name="settings[deletelogo]" type="hidden" value="NULL" />
@ -83,7 +83,7 @@
<span class="error">{{ errors.settings.logo | first }}</span>
{% endif %}
</div><div class="medium{{ errors.settings.favicon ? ' error' : '' }}">
<label for="settings[favicon]">Favicon <small>(png)</small></label>
<label for="settings[favicon]">{{ __('Favicon') }} <small>(png)</small></label>
<div class="flex fileinput">
<button class="deletefilebutton w-10 bg-tm-gray bn hover-bg-tm-red hover-white">x</button>
<input class="deletefileinput" name="settings[deletefav]" type="hidden" value="NULL" />

View File

@ -32,7 +32,7 @@
<div class="cardDescription">
<h2>{{ themeName }}</h2>
<p>{{ theme.description }}</p>
<p>{{ __(theme.description) }}</p>
<ul class="cardInfo">
<li>{{ theme.version ? theme.version : __('Unknown') }}</li><li>
{{ theme.licence ? theme.licence : __('Unkown') }}</li><li>

View File

@ -0,0 +1,33 @@
# English
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activate Special Startpage-Design
ADD_LABEL_FOR_START_BUTTON: Add Label for Start-Button
ADD_NAME_FOR_CHAPTER: Add Name for Chapter
AUTHOR_INTRO: Author Intro
CHAPTER: Chapter
COUNT_CHAPTERS_IN_NAVIGATION?: Count chapters in navigation?
DIFFERENT_DESIGN_FOR_STARTPAGE: Different Design for Startpage
FACEBOOK: Facebook
GITHUB: GitHub
LABEL_FOR_CHAPTER: Label for Chapter
LABEL_FOR_START_BUTTON: Label for Start Button
LAST_MODIFIED_FORMAT: Last Modified Format
LAST_MODIFIED: Last Modified
LAST_MODIFIED_TEXT: Last Modified Text
LAST_UPDATED: Last Updated
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Link to git repository
LOGO_ON_STARTPAGE: Logo on startpage
MAIL: Mail
PLEASE_ADD_THE_BASE_URL_TO_THE_TEXT_REPOSITORY_E_G__ON_GITHUB_: Please add the base url to the text repository e.g. on github.
POSITION_OF_AUTHOR: Position of Author
POSITION_OF_GIT_EDIT_LINK: Position of Git Edit Link
POSITION_OF_MODIFIED_TEXT: Position of Modified Text
POSITION_OF_SHARE_BUTTONS: Position of Share-Buttons
SELECT_SHARE_BUTTONS: Select Share Buttons
SHARE: Share
SHOW_CHAPTER_NUMBERS: Show Chapter Numbers
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Show logo instead of title on startpage
THE_STANDARD_THEME_FOR_TYPEMILL__RESPONSIVE__MINIMAL_AND_WITHOUT_ANY_DEPENDENCIES__IT_USES_THE_SYSTEM_FONTS_CALIBRI_AND_HELVETICA__NO_JAVASCRIPT_IS_USED_: 'The standard theme for Typemill. Responsive, minimal and without any dependencies. It uses the system fonts Calibri and Helvetica. No JavaScript is used.'
TWITTER: Twitter
WHATSAPP: WhatsApp
XING: Xing

View File

@ -0,0 +1,33 @@
# Italiano
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Attiva il disegno speciale della pagina iniziale
ADD_LABEL_FOR_START_BUTTON: Aggiungi etichetta per pulsante di avvio
ADD_NAME_FOR_CHAPTER: Aggiungi nome per capitolo
AUTHOR_INTRO: Introduzione dell'autore
CHAPTER: Capitolo
COUNT_CHAPTERS_IN_NAVIGATION?: Contare i capitoli nella navigazione?
DIFFERENT_DESIGN_FOR_STARTPAGE: Disegno diverso per la pagina iniziale
FACEBOOK: Facebook
GITHUB: GitHub
LABEL_FOR_CHAPTER: Etichetta per capitolo
LABEL_FOR_START_BUTTON: Etichetta per il pulsante Comincia
LAST_MODIFIED_FORMAT: Ultimo formato modificato
LAST_MODIFIED_TEXT: Ultimo testo modificato
LAST_MODIFIED: Ultima modifica
LAST_UPDATED: Ultimo aggiornamento
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Collegamento al deposito git
LOGO_ON_STARTPAGE: Logo sulla pagina iniziale
MAIL: Mail
PLEASE_ADD_THE_BASE_URL_TO_THE_TEXT_REPOSITORY_E_G__ON_GITHUB_: Aggiungi l'URL di base al deposito di testo, ad es. su github.
POSITION_OF_AUTHOR: Posizione dell'autore
POSITION_OF_GIT_EDIT_LINK: Posizione del collegamento modifica Git
POSITION_OF_MODIFIED_TEXT: Posizione del testo modificato
POSITION_OF_SHARE_BUTTONS: Posizione dei pulsanti di condivisione
SELECT_SHARE_BUTTONS: Seleziona i pulsanti pulsanti di condivisione
SHARE: Condividere
SHOW_CHAPTER_NUMBERS: Mostra i numeri dei capitoli
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Mostra logo invece del titolo sulla pagina iniziale
THE_STANDARD_THEME_FOR_TYPEMILL__RESPONSIVE__MINIMAL_AND_WITHOUT_ANY_DEPENDENCIES__IT_USES_THE_SYSTEM_FONTS_CALIBRI_AND_HELVETICA__NO_JAVASCRIPT_IS_USED_: 'Il tema standard per Typemill. Reattivo, minimo e senza dipendenze. Utilizza i caratteri di sistema Calibri ed Helvetica. Non viene utilizzato JavaScript.'
TWITTER: Twitter
WHATSAPP: WhatsApp
XING: Xing

View File

@ -0,0 +1,25 @@
# Dutch
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activeer speciaal startpagina-ontwerp
AUTHOR_INTRO: Auteur Intro
COUNT_CHAPTERS_IN_NAVIGATION?: Hoofdstukken tellen in navigatie?
DIFFERENT_DESIGN_FOR_STARTPAGE: ander ontwerp voor startpagina
FACEBOOK: Facebook
GITHUB: GitHub
LABEL_FOR_CHAPTER: Label voor hoofdstuk
LABEL_FOR_START_BUTTON: label voor startknop
LAST_MODIFIED_FORMAT: Laatst gewijzigd formaat
LAST_MODIFIED: Laatst gewijzigd
LAST_MODIFIED_TEXT: Laatst gewijzigde tekst
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Link naar git repository
MAIL: Mail
POSITION_OF_AUTHOR: Positie van auteur
POSITION_OF_GIT_EDIT_LINK: Positie van Git Link bewerken
POSITION_OF_MODIFIED_TEXT: Positie van gemodificeerde tekst
POSITION_OF_SHARE_BUTTONS: Positie van Share-knoppen
SELECT_SHARE_BUTTONS: Selecteer Share-knoppen
SHARE: deel
SHOW_CHAPTER_NUMBERS: hoofdstuknummers tonen
TWITTER: Twitter
WHATSAPP: Whatsapp
XING: Xing

View File

@ -0,0 +1,28 @@
# Russian
#Translation: Paul (https://paul.bid) paulbid@protonmail.com
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Активировать особый дизайн для Главной страницы
AUTHOR_INTRO: Напись перед указанием автора
COUNT_CHAPTERS_IN_NAVIGATION?: Нумеровать разделы в панели навигации?
DIFFERENT_DESIGN_FOR_STARTPAGE: Особый дизайн для Главной страницы
FACEBOOK: Facebook
GITHUB: GitHub
LABEL_FOR_CHAPTER: Надпись обозначающая раздел
LABEL_FOR_START_BUTTON: Надпись на кнопке «Начать»
LAST_MODIFIED_FORMAT: Формат даты последнего изменения
LAST_MODIFIED: Последние изменения
LAST_MODIFIED_TEXT: Текст перед указанием даты последнего изменения
LINKEDIN: LinkedIn
LINK_TO_GIT_REPOSITORY: Ссылка на git репозиторий
LOGO_ON_STARTPAGE: Логотип на Стартовой странице
MAIL: Почта
POSITION_OF_AUTHOR: Место для отображения авторства
POSITION_OF_GIT_EDIT_LINK: Позиция Git-ссылки на редактирование
POSITION_OF_MODIFIED_TEXT: Позиция надписи о последнем изменении
POSITION_OF_SHARE_BUTTONS: Позиция кнопок «поделиться»
SELECT_SHARE_BUTTONS: Выберите кнопки нужные «поделиться»
SHARE: Поделиться
SHOW_CHAPTER_NUMBERS: Отображать нумерацию разделов
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Показывать логотип вместо названия на Стартовой странице
TWITTER: Twitter
WHATSAPP: WhatsApp
XING: Xing