Merge branch 'develop' of github.com:octobercms/october into develop
This commit is contained in:
commit
012d5a4d1c
12
CHANGELOG.md
12
CHANGELOG.md
|
|
@ -1,3 +1,15 @@
|
|||
* **Build 14x** (2014-08-xx)
|
||||
- Components and variables can now be accessed in the page code section via `$this->foo` in addition to `$this['foo']`.
|
||||
- AJAX handlers in the CMS can now invoke the page cycle without rendering the page using `$this->pageCycle()`.
|
||||
|
||||
* **Build 139** (2014-08-18)
|
||||
- List widget has been refactored to improve efficiency.
|
||||
- Added new list column type `nameFrom` (take name from X attribute) as an alternative to `select`.
|
||||
|
||||
* **Build 137** (2014-08-14)
|
||||
- Lists now support Filters (see Backend > Lists docs).
|
||||
- Numerous hard coded phrases converted to localized strings.
|
||||
|
||||
* **Build 132** (2014-08-03)
|
||||
- New system logging pages: Event log, Request log and Access log.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Ajax Popup plugin
|
||||
*
|
||||
*
|
||||
* Data attributes:
|
||||
* - data-control="popup" - enables the ajax popup plugin
|
||||
* - data-ajax="popup-content.htm" - ajax content to load
|
||||
|
|
@ -99,14 +99,18 @@
|
|||
this.$el.request(this.options.handler, {
|
||||
data: this.options.extraData,
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
self.setContent(data.result)
|
||||
$(window).trigger('ajaxUpdateComplete', [this, data, textStatus, jqXHR])
|
||||
self.triggerEvent('popupComplete')
|
||||
this.success(data, textStatus, jqXHR).done(function(){
|
||||
self.setContent(data.result)
|
||||
$(window).trigger('ajaxUpdateComplete', [this, data, textStatus, jqXHR])
|
||||
self.triggerEvent('popupComplete')
|
||||
})
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
alert(jqXHR.responseText.length ? jqXHR.responseText : jqXHR.statusText)
|
||||
self.hide()
|
||||
self.triggerEvent('popupError')
|
||||
this.error(jqXHR, textStatus, errorThrown).done(function(){
|
||||
alert(jqXHR.responseText.length ? jqXHR.responseText : jqXHR.statusText)
|
||||
self.hide()
|
||||
self.triggerEvent('popupError')
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -168,7 +172,7 @@
|
|||
this.$backdrop = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Popup.prototype.setLoading = function(val) {
|
||||
if (!this.$backdrop)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ class FormController extends ControllerBehavior
|
|||
$this->controller->formAfterSave($model);
|
||||
$this->controller->formAfterCreate($model);
|
||||
|
||||
Flash::success($this->getLang('create[flash-save]', 'backend::lang.form.create_success'));
|
||||
Flash::success($this->getLang('create[flashSave]', 'backend::lang.form.create_success'));
|
||||
|
||||
if ($redirect = $this->makeRedirect('create', $model))
|
||||
return $redirect;
|
||||
|
|
@ -207,7 +207,7 @@ class FormController extends ControllerBehavior
|
|||
$this->controller->formAfterSave($model);
|
||||
$this->controller->formAfterUpdate($model);
|
||||
|
||||
Flash::success($this->getLang('update[flash-save]', 'backend::lang.form.update_success'));
|
||||
Flash::success($this->getLang('update[flashSave]', 'backend::lang.form.update_success'));
|
||||
|
||||
if ($redirect = $this->makeRedirect('update', $model))
|
||||
return $redirect;
|
||||
|
|
@ -228,7 +228,7 @@ class FormController extends ControllerBehavior
|
|||
|
||||
$this->controller->formAfterDelete($model);
|
||||
|
||||
Flash::success($this->getLang('update[flash-delete]', 'backend::lang.form.delete_success'));
|
||||
Flash::success($this->getLang('update[flashDelete]', 'backend::lang.form.delete_success'));
|
||||
|
||||
if ($redirect = $this->makeRedirect('delete', $model))
|
||||
return $redirect;
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@ class Controller extends Extendable
|
|||
|
||||
/**
|
||||
* Invokes the current controller action without rendering a view,
|
||||
* used by AJAX handler who may rely on the logic inside the action.
|
||||
* used by AJAX handler that may rely on the logic inside the action.
|
||||
*/
|
||||
public function pageAction()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -41,7 +41,14 @@ class ListColumn
|
|||
public $sortable = true;
|
||||
|
||||
/**
|
||||
* @var string Custom SQL for selecting this record value.
|
||||
* @var string Model attribute to use for the display value, this will
|
||||
* override any $sqlSelect definition.
|
||||
*/
|
||||
public $nameFrom;
|
||||
|
||||
/**
|
||||
* @var string Custom SQL for selecting this record display value,
|
||||
* the @ symbol is replaced with the table name.
|
||||
*/
|
||||
public $sqlSelect;
|
||||
|
||||
|
|
@ -103,6 +110,7 @@ class ListColumn
|
|||
if (isset($config['searchable'])) $this->searchable = $config['searchable'];
|
||||
if (isset($config['sortable'])) $this->sortable = $config['sortable'];
|
||||
if (isset($config['invisible'])) $this->invisible = $config['invisible'];
|
||||
if (isset($config['nameFrom'])) $this->nameFrom = $config['nameFrom'];
|
||||
if (isset($config['select'])) $this->sqlSelect = $config['select'];
|
||||
if (isset($config['relation'])) $this->relation = $config['relation'];
|
||||
if (isset($config['format'])) $this->format = $config['format'];
|
||||
|
|
|
|||
|
|
@ -55,13 +55,13 @@ class EditorPreferences extends Controller
|
|||
$this->vars['language'] = 'css';
|
||||
$this->vars['margin'] = 0;
|
||||
|
||||
$this->getClassExtension('Backend.Behaviors.FormController')->update();
|
||||
$this->asExtension('FormController')->update();
|
||||
$this->pageTitle = Lang::get('backend::lang.editor.menu_label');
|
||||
}
|
||||
|
||||
public function index_onSave()
|
||||
{
|
||||
return $this->getClassExtension('Backend.Behaviors.FormController')->update_onSave();
|
||||
return $this->asExtension('FormController')->update_onSave();
|
||||
}
|
||||
|
||||
public function formFindModelObject()
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class Users extends Controller
|
|||
if ($context != 'myaccount' && $recordId == $this->user->id)
|
||||
return Redirect::to(Backend::url('backend/users/myaccount'));
|
||||
|
||||
return $this->getClassExtension('Backend.Behaviors.FormController')->update($recordId, $context);
|
||||
return $this->asExtension('FormController')->update($recordId, $context);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -68,7 +68,7 @@ class Users extends Controller
|
|||
*/
|
||||
public function myaccount_onSave()
|
||||
{
|
||||
$result = $this->getClassExtension('Backend.Behaviors.FormController')->update_onSave($this->user->id, 'myaccount');
|
||||
$result = $this->asExtension('FormController')->update_onSave($this->user->id, 'myaccount');
|
||||
|
||||
/*
|
||||
* If the password or login name has been updated, reauthenticate the user
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ return [
|
|||
'menu_label' => 'Dashboard',
|
||||
'widget_label' => 'Widget',
|
||||
'widget_width' => 'Width',
|
||||
'full_width' => 'full width',
|
||||
'add_widget' => 'Add widget',
|
||||
'widget_inspector_title' => 'Widget configuration',
|
||||
'widget_inspector_description' => 'Configure the report widget',
|
||||
|
|
@ -119,15 +120,13 @@ return [
|
|||
'setup_title' => 'List Setup',
|
||||
'setup_help' => 'Use checkboxes to select columns you want to see in the list. You can change position of columns by dragging them up or down.',
|
||||
'records_per_page' => 'Records per page',
|
||||
'records_per_page_help' => 'Select the number of records per page to display. Please note that high number of records on a single page can reduce performance.',
|
||||
'apply_changes' => 'Apply changes',
|
||||
'cancel' => 'Cancel'
|
||||
'records_per_page_help' => 'Select the number of records per page to display. Please note that high number of records on a single page can reduce performance.'
|
||||
],
|
||||
'fileupload' => [
|
||||
'attachment' => 'Attachment',
|
||||
'help' => 'Add a title and description for this attachment.',
|
||||
'title_label' => 'Title',
|
||||
'description_label' => 'Description'
|
||||
'attachment' => 'Attachment',
|
||||
'help' => 'Add a title and description for this attachment.',
|
||||
'title_label' => 'Title',
|
||||
'description_label' => 'Description'
|
||||
],
|
||||
'form' => [
|
||||
'create_title' => "New :name",
|
||||
|
|
@ -163,6 +162,7 @@ return [
|
|||
'select' => 'Select',
|
||||
'select_all' => 'all',
|
||||
'select_none' => 'none',
|
||||
'select_placeholder' => 'please select',
|
||||
'insert_row' => 'Insert Row',
|
||||
'delete_row' => 'Delete Row'
|
||||
],
|
||||
|
|
|
|||
|
|
@ -113,9 +113,7 @@ return [
|
|||
'setup_title' => 'Configura elenco',
|
||||
'setup_help' => 'Utilizza le checkbox per selezionare le colonne che vuoi visualizzare nell\'elenco. Puoi cambiare la posizione delle colonne trascinandole verso l\'alto o il basso.',
|
||||
'records_per_page' => 'Record per pagina',
|
||||
'records_per_page_help' => 'Seleziona il numero di record da visualizzare su ogni pagina. Ricorda che un numero elevato di record in una singola pagina può ridurre le prestazioni.',
|
||||
'apply_changes' => 'Applica modifiche',
|
||||
'cancel' => 'Annulla'
|
||||
'records_per_page_help' => 'Seleziona il numero di record da visualizzare su ogni pagina. Ricorda che un numero elevato di record in una singola pagina può ridurre le prestazioni.'
|
||||
],
|
||||
'form' => [
|
||||
'create_title' => "Nuovo :name",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ return [
|
|||
'access_denied' => [
|
||||
'label' => "Toegang geweigerd",
|
||||
'help' => "Je hebt niet de benodigde rechten om deze pagina te bekijken.",
|
||||
'cms_link' => "Ga naar CMS backend",
|
||||
'cms_link' => "Ga naar CMS",
|
||||
],
|
||||
],
|
||||
'partial' => [
|
||||
|
|
@ -25,18 +25,18 @@ return [
|
|||
'login' => 'Inloggen',
|
||||
'reset' => 'Wissen',
|
||||
'restore' => 'Herstellen',
|
||||
'login_placeholder' => 'gebruikersnaam',
|
||||
'password_placeholder' => 'wachtwoord',
|
||||
'login_placeholder' => 'Gebruikersnaam',
|
||||
'password_placeholder' => 'Wachtwoord',
|
||||
'forgot_password' => "Wachtwoord vergeten?",
|
||||
'enter_email' => "Vul het e-mailadres in",
|
||||
'enter_login' => "Vul de gebruikersnaam in",
|
||||
'email_placeholder' => "e-mail",
|
||||
'enter_email' => "Vul jouw e-mailadres in",
|
||||
'enter_login' => "Vul jouw gebruikersnaam in",
|
||||
'email_placeholder' => "E-mailadres",
|
||||
'enter_new_password' => "Vul een nieuw wachtwoord in",
|
||||
'password_reset' => "Herstel Wachtwoord",
|
||||
'password_reset' => "Herstel wachtwoord",
|
||||
'restore_success' => "Een e-mail met instructies om het wachtwoord te herstellen is verzonden naar jouw e-mailadres.",
|
||||
'restore_error' => "Een gebruiker met de gebruikersnaam ':login' is niet gevonden",
|
||||
'reset_success' => "Het wachtwoord is succesvol hersteld. Je kan nu inloggen",
|
||||
'reset_error' => "Ongeldige wachtwoordherstelinformatie aangeboden. Probeer overnieuw!",
|
||||
'reset_success' => "Het wachtwoord is succesvol hersteld. Je kunt nu inloggen",
|
||||
'reset_error' => "Ongeldige herstelinformatie aangeboden. Probeer het opnieuw!",
|
||||
'reset_fail' => "Het is niet mogelijk het wachtwoord te herstellen!",
|
||||
'apply' => 'Toepassen',
|
||||
'cancel' => 'Annuleren',
|
||||
|
|
@ -45,36 +45,59 @@ return [
|
|||
],
|
||||
'dashboard' => [
|
||||
'menu_label' => 'Overzicht',
|
||||
'widget_label' => 'Widget',
|
||||
'widget_width' => 'Breedte',
|
||||
'full_width' => 'Volledige breedte',
|
||||
'add_widget' => 'Widget toevoegen',
|
||||
'widget_inspector_title' => 'Widget configuratie',
|
||||
'widget_inspector_description' => 'Configureer de rapportage widget',
|
||||
'widget_columns_label' => 'Breedte :columns',
|
||||
'widget_columns_description' => 'De widget breedte, een getal tussen 1 en 10.',
|
||||
'widget_columns_error' => 'Voer een getal tussen 1 en 10 in als widget breedte.',
|
||||
'columns' => '{1} kolom|[2,Inf] kolommen',
|
||||
'widget_new_row_label' => 'Forceer nieuwe rij',
|
||||
'widget_new_row_description' => 'Plaats de widget in een nieuwe rij.',
|
||||
'widget_title_label' => 'Widget titel',
|
||||
'widget_title_error' => 'Een widget title is verplicht.',
|
||||
'status' => [
|
||||
'widget_title_default' => 'Systeem status',
|
||||
'online' => 'online',
|
||||
'update_available' => '{0} updates beschikbaar!|{1} update beschikbaar!|[2,Inf] updates beschikbaar!',
|
||||
]
|
||||
],
|
||||
'user' => [
|
||||
'name' => 'Beheerder',
|
||||
'menu_label' => 'Beheerders',
|
||||
'list_title' => 'Beheer Beheerders',
|
||||
'new' => 'Nieuwe Beheerder',
|
||||
'menu_description' => 'Beheer beheerders, groepen en rechten.',
|
||||
'list_title' => 'Beheer beheerders',
|
||||
'new' => 'Nieuwe beheerder',
|
||||
'login' => "Gebruikersnaam",
|
||||
'first_name' => "Voornaam",
|
||||
'last_name' => "Achternaam",
|
||||
'full_name' => "Volledige Naam",
|
||||
'email' => "E-mail",
|
||||
'full_name' => "Volledige naam",
|
||||
'email' => "E-mailadres",
|
||||
'groups' => "Groepen",
|
||||
'groups_comment' => "Voeg de gebruiker eventueel toe aan gebruikersgroepen.",
|
||||
'groups_comment' => "Selecteer de groepen waar deze gebruiker bij hoort.",
|
||||
'avatar' => "Avatar",
|
||||
'password' => "Wachtwoord",
|
||||
'password_confirmation' => "Bevestig Wachtwoord",
|
||||
'superuser' => "Speciale Gebruiker",
|
||||
'password_confirmation' => "Bevestig wachtwoord",
|
||||
'superuser' => "Supergebruiker",
|
||||
'superuser_comment' => "Vink deze optie aan om de gebruiker volledige rechten tot het systeem te geven.",
|
||||
'send_invite' => 'Stuur uitnodiging per e-mail',
|
||||
'send_invite_comment' => 'Vink deze optie aan om de gebruiker een uitnodiging per e-mail te sturen',
|
||||
'delete_confirm' => 'Weet je zeker dat je deze beheerder wilt verwijderen?',
|
||||
'return' => 'Terug naar beheerdersoverzicht',
|
||||
'return' => 'Terug naar het beheerdersoverzicht',
|
||||
'allow' => 'Toestaat',
|
||||
'inherit' => 'Overerven',
|
||||
'deny' => 'Weigeren',
|
||||
'group' => [
|
||||
'name' => 'Groep',
|
||||
'name_field' => 'Naam',
|
||||
'menu_label' => 'Groepen',
|
||||
'list_title' => 'Beheer Groepen',
|
||||
'new' => 'Nieuwe Beheerdersgroep',
|
||||
'list_title' => 'Beheer groepen',
|
||||
'new' => 'Nieuwe beheerdersgroep',
|
||||
'delete_confirm' => 'Weet je zeker dat je deze beheerdersgroep wilt verwijderen?',
|
||||
'return' => 'Terug naar groepenoverzicht',
|
||||
'return' => 'Terug naar het groepenoverzicht',
|
||||
],
|
||||
'preferences' => [
|
||||
'not_authenticated' => 'Er is geen geauthenticeerde gebruiker om gegevens voor te laden of op te slaan.'
|
||||
|
|
@ -85,14 +108,28 @@ return [
|
|||
'search_prompt' => 'Zoeken...',
|
||||
'no_records' => 'Er zijn geen resultaten gevonden.',
|
||||
'missing_model' => 'Geen model opgegeven voor het gedrag (behavior) van de lijst gebruikt in :class.',
|
||||
'missing_column' => 'Er zijn geen kolommen voor :columns opgegeven.',
|
||||
'missing_columns' => 'Er zijn geen kolommen opgegeven voor de lijst in :class.',
|
||||
'missing_column' => 'Er zijn geen kolomdefinities voor :columns.',
|
||||
'missing_columns' => 'De gebruikte lijst in :class heeft geen kolommen gedefineerd.',
|
||||
'missing_definition' => "Het gedrag (behavior) van de lijst bevat geen kolom voor ':field'.",
|
||||
'behavior_not_ready' => 'Gedrag (behavior) van de lijst is niet geladen. Controleer of makeLists() in de controller is aangeroepen.',
|
||||
'invalid_column_datetime' => "Column value ':column' is not a DateTime object, are you missing a \$dates reference in the Model?",
|
||||
'invalid_column_datetime' => "De waarde van kolom ':column' is geen DateTime object, mist er een \$dates referentie in het Model?",
|
||||
'pagination' => 'Getoonde resultaten: :from-:to van :total',
|
||||
'prev_page' => 'Vorige pagina',
|
||||
'next_page' => 'Volgende pagina',
|
||||
'loading' => 'Laden...',
|
||||
'setup_title' => 'Lijst instellingen',
|
||||
'setup_help' => 'Selecteer door middel van vinkjes de kolommen welke je in de lijst wilt zien. Je kunt de volgorde van kolommen veranderen door ze omhoog of omlaag te slepen.',
|
||||
'records_per_page' => 'Resultaten per pagina',
|
||||
'records_per_page_help' => 'Selecteer het aantal resultaten dat per pagina getoond moet worden. Let op: een hoog getal kan voor prestatieproblemen zorgen.'
|
||||
],
|
||||
'fileupload' => [
|
||||
'attachment' => 'Bijlage',
|
||||
'help' => 'Voeg een titel en omschrijving toe aan deze bijlage.',
|
||||
'title_label' => 'Titel',
|
||||
'description_label' => 'Omschrijving'
|
||||
],
|
||||
'form' => [
|
||||
'create_title' => "Maak :name",
|
||||
'create_title' => "Nieuwe :name",
|
||||
'update_title' => "Bewerk :name",
|
||||
'preview_title' => "Bekijk :name",
|
||||
'create_success' => ':name is succesvol aangemaakt',
|
||||
|
|
@ -113,6 +150,7 @@ return [
|
|||
'undefined_tab' => 'Overig',
|
||||
'field_off' => 'Uit',
|
||||
'field_on' => 'Aan',
|
||||
'add' => 'Toevoegen',
|
||||
'apply' => 'Toepassen',
|
||||
'cancel' => 'Annuleren',
|
||||
'close' => 'Sluiten',
|
||||
|
|
@ -120,14 +158,26 @@ return [
|
|||
'or' => 'of',
|
||||
'confirm_tab_close' => 'Weet je zeker dat je dit tabblad wilt sluiten? Niet opgeslagen wijzigingen gaan verloren.',
|
||||
'behavior_not_ready' => 'Gedrag (behavior) van het formulier is niet geladen. Controleer of initForm() in de controller is aangeroepen.',
|
||||
'preview_no_files_message' => 'Bestanden zijn niet geüploadet',
|
||||
'select' => 'Selecteer',
|
||||
'select_all' => 'alles',
|
||||
'select_none' => 'niets',
|
||||
'select_placeholder' => 'selecteer',
|
||||
'insert_row' => 'Rij invoegen',
|
||||
'delete_row' => 'Rij verwijderen'
|
||||
],
|
||||
'relation' => [
|
||||
'missing_definition' => "Het gedrag (behavior) van de relatie bevat geen kolom voor ':field'.",
|
||||
'missing_model' => "Geen model opgegeven voor het gedrag (behavior) van relatie gebruikt in :class.",
|
||||
'invalid_action_single' => "Deze actie kan niet worden uitgevoerd op een enkele (singular) relatie.",
|
||||
'invalid_action_multi' => "Deze actie kan niet worden uitgevoerd op meerdere (multiple) relatie.",
|
||||
'help' => "Klik op een item om toe te voegen",
|
||||
'related_data' => "Gerelateerde :name data",
|
||||
'add' => "Toevoegen",
|
||||
'add_name' => ":name Toevoegen",
|
||||
'add_selected' => "Selectie toevoegen",
|
||||
'add_a_new' => "Nieuwe :name toevoegen",
|
||||
'cancel' => "Annuleer",
|
||||
'add_name' => ":name toevoegen",
|
||||
'create' => "Maken",
|
||||
'create_name' => "Maak :name",
|
||||
'update' => "Update",
|
||||
|
|
@ -136,6 +186,7 @@ return [
|
|||
'remove_name' => "Verwijder :name",
|
||||
'delete' => "Wissen",
|
||||
'delete_name' => "Wis :name",
|
||||
'delete_confirm' => "Weet je het zeker?",
|
||||
],
|
||||
'model' => [
|
||||
'name' => "Model",
|
||||
|
|
@ -143,25 +194,54 @@ return [
|
|||
'missing_id' => "Record ID van het model is niet opgegeven.",
|
||||
'missing_relation' => "Model ':class' bevat geen definitie voor ':relation'.",
|
||||
'invalid_class' => "Model :model gebruikt in :class is ongeldig. Het moet de \Model klasse erven (inherit).",
|
||||
'mass_assignment_failed' => "Mass assignment failed for Model attribute ':attribute'.",
|
||||
'mass_assignment_failed' => "Massa toewijzing voor Model attribute ':attribute' mislukt.",
|
||||
],
|
||||
'warnings' => [
|
||||
'tips' => 'Systeem configuratie tips',
|
||||
'tips_description' => 'Er zijn fouten opgetreden in uw systeem. Los deze problemen op om uw systeem goed te configureren.',
|
||||
'tips_description' => 'Er zijn problemen gevonden waar je aandacht aan moet besteden om uw systeem goed te configureren.',
|
||||
'permissions' => 'De map :name of de submapen zijn niet schrijfbaar voor PHP. Zet de bijhorende rechten voor de webserver in deze map.',
|
||||
'extension' => 'De PHP extensie :name is niet geinstalleerd. Installeer deze versie en activeer de extensie.'
|
||||
'extension' => 'De PHP extensie :name is niet geïnstalleerd. Installeer deze bibliotheek en activeer de extensie.'
|
||||
],
|
||||
'editor' => [
|
||||
'menu_label' => 'Bewerker instellingen',
|
||||
'menu_description' => 'Beheer code bewerker instellingen.',
|
||||
'font_size' => 'Lettertype grootte',
|
||||
'tab_size' => 'Tab positie',
|
||||
'menu_description' => 'Beheer bewerker instellingen, zoals lettergrootte en kleurschema.',
|
||||
'font_size' => 'Lettergrootte',
|
||||
'tab_size' => 'Tab grootte',
|
||||
'use_hard_tabs' => 'Inspringen met tabs',
|
||||
'code_folding' => 'Code invouwing',
|
||||
'word_wrap' => 'Tekstterugloop',
|
||||
'highlight_active_line' => 'Markeer actieve lijnen',
|
||||
'show_invisibles' => 'Toon verborgen karakters',
|
||||
'show_gutter' => 'Toon regelnummers',
|
||||
'show_gutter' => 'Toon "goot"',
|
||||
'theme' => 'Kleurschema',
|
||||
],
|
||||
];
|
||||
'tooltips' => [
|
||||
'preview_website' => 'Voorvertoning website'
|
||||
],
|
||||
'mysettings' => [
|
||||
'menu_label' => 'Mijn instellingen',
|
||||
'menu_description' => 'Instellingen gerelateerd aan jouw beheeraccount',
|
||||
],
|
||||
'myaccount' => [
|
||||
'menu_label' => 'Mijn account',
|
||||
'menu_description' => 'Werk accountinstellingen zoals naam, e-mailadres en wachtwoord bij.',
|
||||
'menu_keywords' => 'security login'
|
||||
],
|
||||
'backend_preferences' => [
|
||||
'menu_label' => 'CMS voorkeuren',
|
||||
'menu_description' => 'Beheer taalvoorkeur en de weergave van het CMS.',
|
||||
'locale' => 'Taal',
|
||||
'locale_comment' => 'Selecteer jouw gewenste taal.',
|
||||
],
|
||||
'access_log' => [
|
||||
'hint' => 'Dit logboek toont een lijst met succesvolle inlogpogingen door beheerders. Registraties blijven :days dagen bewaard..',
|
||||
'menu_label' => 'Toegangslogboek',
|
||||
'menu_description' => 'Bekijk een lijst met succesvolle inlogpogingen van gebruikers.',
|
||||
'created_at' => 'Datum & tijd',
|
||||
'login' => 'Gebruikersnaam',
|
||||
'ip_address' => 'IP-adres',
|
||||
'first_name' => 'Voornaam',
|
||||
'last_name' => 'Achternaam',
|
||||
'email' => 'E-mailadres',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,227 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'field' => [
|
||||
'invalid_type' => 'Tipul campului folosit este invalid - :type.',
|
||||
'options_method_not_exists' => 'Clasa model :model trebuie sa defineasca o metoda :method() returnand optiuni pentru campul ":field".',
|
||||
],
|
||||
'widget' => [
|
||||
'not_registered' => "Un nume de clasa de widget ':name' nu a fost inregistrat",
|
||||
'not_bound' => "Un widget cu numele de clasa ':name' nu a fost mapat la controller",
|
||||
],
|
||||
'page' => [
|
||||
'untitled' => "Fara titlu",
|
||||
'access_denied' => [
|
||||
'label' => "Acces restrictionat",
|
||||
'help' => "Nu aveti permisiuni pentru a vizualiza aceasta pagina.",
|
||||
'cms_link' => "Inapoi in panoul de administrare",
|
||||
],
|
||||
],
|
||||
'partial' => [
|
||||
'not_found' => "Partialul ':name' nu a fost gasit.",
|
||||
],
|
||||
'account' => [
|
||||
'sign_out' => 'Deconectare',
|
||||
'login' => 'Login',
|
||||
'reset' => 'Resetare',
|
||||
'restore' => 'Restaurare',
|
||||
'login_placeholder' => 'login',
|
||||
'password_placeholder' => 'password',
|
||||
'forgot_password' => "Ati uitat parola?",
|
||||
'enter_email' => "Introduceti email",
|
||||
'enter_login' => "Introduceti login",
|
||||
'email_placeholder' => "email",
|
||||
'enter_new_password' => "Introduceti o noua parola",
|
||||
'password_reset' => "Resetare parola",
|
||||
'restore_success' => "Un mesaj a fost trimis catre adresa de email cu instructiuni pentru resetarea parolei.",
|
||||
'restore_error' => "Utilizatorul ':login' nu a fost gasit in sistem.",
|
||||
'reset_success' => "Parola a fost resetata cu succes. Va puteti conecta.",
|
||||
'reset_error' => "Date invalide pentru resetarea parolei. Va rugam incercati din nou!",
|
||||
'reset_fail' => "Eroare la resetarea parolei!",
|
||||
'apply' => 'Aplicare',
|
||||
'cancel' => 'Anulare',
|
||||
'delete' => 'Stergere',
|
||||
'ok' => 'OK',
|
||||
],
|
||||
'dashboard' => [
|
||||
'menu_label' => 'Dashboard',
|
||||
'widget_label' => 'Widget',
|
||||
'widget_width' => 'Latime',
|
||||
'add_widget' => 'Adauga widget',
|
||||
'widget_inspector_title' => 'Configurare widget',
|
||||
'widget_inspector_description' => 'Configurare raport widget',
|
||||
'widget_columns_label' => 'Latime :columns',
|
||||
'widget_columns_description' => 'Latime widget, un numar intre 1 si 10.',
|
||||
'widget_columns_error' => 'Va rugam sa introduceti latimea widget-ului ca un numar intre 1 si 10.',
|
||||
'columns' => '{1} coloana|[2,Inf] coloane',
|
||||
'widget_new_row_label' => 'Forteaza rand nou',
|
||||
'widget_new_row_description' => 'Amplasare widget pe un rand nou.',
|
||||
'widget_title_label' => 'Titlu widget',
|
||||
'widget_title_error' => 'Titlul widget-ului este necesar.',
|
||||
'status' => [
|
||||
'widget_title_default' => 'Status sistem',
|
||||
'online' => 'online',
|
||||
'update_available' => '{0} actualizari disponibile!|{1} actualizare disponibila!|[2,Inf] actualizari disponibile!',
|
||||
]
|
||||
],
|
||||
'user' => [
|
||||
'name' => 'Administrator',
|
||||
'menu_label' => 'Administratori',
|
||||
'menu_description' => 'Gestionare administratori, grupuri si permisiuni.',
|
||||
'list_title' => 'Gestionare Administratori',
|
||||
'new' => 'Administrator nou',
|
||||
'login' => "Login",
|
||||
'first_name' => "Prenume",
|
||||
'last_name' => "Nume",
|
||||
'full_name' => "Nume complet",
|
||||
'email' => "Email",
|
||||
'groups' => "Grupuri",
|
||||
'groups_comment' => "Specificati grupurile aferente acestei persoane.",
|
||||
'avatar' => "Avatar",
|
||||
'password' => "Parola",
|
||||
'password_confirmation' => "Confirmare Parola",
|
||||
'superuser' => "Super Utilizator",
|
||||
'superuser_comment' => "Bifati aceasta bifa pentru a permite acestei persoane sa aiba acces deplin.",
|
||||
'send_invite' => 'Trimitere invitatie prin email',
|
||||
'send_invite_comment' => 'Folositi aceasta bifa pentru a trimite o invitatie prin email catre utilizator',
|
||||
'delete_confirm' => 'Sunteti sigur(a) ca vreti sa stergeti acest administrator?',
|
||||
'return' => 'Intoarcere la lista de administratori',
|
||||
'group' => [
|
||||
'name' => 'Grup',
|
||||
'name_field' => 'Nume',
|
||||
'menu_label' => 'Grupuri',
|
||||
'list_title' => 'Gestionare Grupuri',
|
||||
'new' => 'Grup Nou de Administratori',
|
||||
'delete_confirm' => 'Sunteti sigur(a) ca vreti sa stergeti acest grup de administratori?',
|
||||
'return' => 'Intoarcere la lista de grupuri',
|
||||
],
|
||||
'preferences' => [
|
||||
'not_authenticated' => 'Nu exista niciun utilizator autentificat pentru care sa se incarce sau salveze preferinte.'
|
||||
]
|
||||
],
|
||||
'list' => [
|
||||
'default_title' => 'Lista',
|
||||
'search_prompt' => 'Cautare...',
|
||||
'no_records' => 'Nu exista inregistari pentru aceasta fereastra.',
|
||||
'missing_model' => 'Lista folosita in clasa :class nu are un model definit.',
|
||||
'missing_column' => 'Nu exista denifitii pentru coloana :columns.',
|
||||
'missing_columns' => 'Lista folosita in clasa :class nu are coloane definite.',
|
||||
'missing_definition' => "Lista nu contine o coloana pentru campul ':field'.",
|
||||
'behavior_not_ready' => 'Setarile initiale ale listei nu au fost definite, verificati existenta functiei makeLists() in controller.',
|
||||
'invalid_column_datetime' => "Valoarea coloanei ':column' nu este un obiect de tip DateTime, verificati existenta unei referinte \$dates in Model?",
|
||||
'pagination' => 'Afisare inregistrari: :from-:to din :total',
|
||||
'setup_title' => 'Setare lista',
|
||||
'setup_help' => 'Folositi bife pentru a selecta coloanele pe care doriti sa le vedeti in lista. Puteti modifica pozitia coloanelor glisandu-le in sus sau in jos.',
|
||||
'records_per_page' => 'Inregistari pe pagina',
|
||||
'records_per_page_help' => 'Selectati numarul de inregistari care sa fie afisat pe pagina. Sa tineti cont de faptul ca un numar mare de inregistari pe o singura pagina poate sa reduca performanta.',
|
||||
'apply_changes' => 'Aplicare schimbari',
|
||||
'cancel' => 'Anulare'
|
||||
],
|
||||
'form' => [
|
||||
'create_title' => "Nou :name",
|
||||
'update_title' => "Editare :name",
|
||||
'preview_title' => "Previzualizare :name",
|
||||
'create_success' => ':name a fost creat cu succes',
|
||||
'update_success' => ':name a fost actualizat cu succes',
|
||||
'delete_success' => ':name a fost sters cu succes',
|
||||
'missing_id' => "ID-ul inregistrarii formularului nu a fost specificat.",
|
||||
'missing_model' => 'Formularul folosit in clasa :class nu are un model definit.',
|
||||
'missing_definition' => "Formularul nu contine un camp pentru campul ':field'.",
|
||||
'not_found' => 'Inregistrarea formularului cu ID-ul :id nu a putut fi gasita.',
|
||||
'create' => 'Creare',
|
||||
'create_and_close' => 'Creare si inchidere',
|
||||
'creating' => 'Se creeaza...',
|
||||
'save' => 'Salvare',
|
||||
'save_and_close' => 'Salvare si inchidere',
|
||||
'saving' => 'Se salveaza...',
|
||||
'delete' => 'Stergere',
|
||||
'deleting' => 'Se sterge...',
|
||||
'undefined_tab' => 'Altele',
|
||||
'field_off' => 'Dezactivat',
|
||||
'field_on' => 'Activat',
|
||||
'add' => 'Adaugare',
|
||||
'apply' => 'Aplicare',
|
||||
'cancel' => 'Anulare',
|
||||
'close' => 'Inchidere',
|
||||
'ok' => 'OK',
|
||||
'or' => 'sau',
|
||||
'confirm_tab_close' => 'Sunteti sigur(a) ca doriti sa inchideti acest tab? Modificarile nesalvate vor fi pierdute.',
|
||||
'behavior_not_ready' => 'Setarile initiale ale formularului nu au fost definite, verificati existenta functiei initForm() in controller.',
|
||||
'preview_no_files_message' => 'Fisierele nu au fost incarcate',
|
||||
'select' => 'Selectare',
|
||||
'select_all' => 'toate',
|
||||
'select_none' => 'niciunul',
|
||||
],
|
||||
'relation' => [
|
||||
'missing_definition' => "Relatia nu contine definitii pentru campul ':field'.",
|
||||
'missing_model' => "Relatia folosita in clasa :class nu are un model definit.",
|
||||
'invalid_action_single' => "Aceasta actiune nu poate fi realizata pentru o relatie singulara.",
|
||||
'invalid_action_multi' => "Aceasta actiune nu poate fi realizata pentru o relatie multipla.",
|
||||
'add' => "Adaugare",
|
||||
'add_name' => "Adaugare :name",
|
||||
'create' => "Creare",
|
||||
'create_name' => "Creare :name",
|
||||
'update' => "Actualizare",
|
||||
'update_name' => "Actualizare :name",
|
||||
'remove' => "Inlaturare",
|
||||
'remove_name' => "Inlaturare :name",
|
||||
'delete' => "Stergere",
|
||||
'delete_name' => "Stergere :name",
|
||||
],
|
||||
'model' => [
|
||||
'name' => "Model",
|
||||
'not_found' => "Modelul ':class' cu ID-ul :id nu a putut fi gasit",
|
||||
'missing_id' => "Nu exista niciun ID specificat pentru care sa se realizeze cautarea inregistrarii modelului.",
|
||||
'missing_relation' => "Modelul ':class' nu contine o definitie pentru relatia ':relation'.",
|
||||
'invalid_class' => "Modelul :model folosit in clasa :class nu este valid, trebuie sa mosteneasca clasa \Model.",
|
||||
'mass_assignment_failed' => "Atribuirea in masa a esuat pentru atributul modelului ':attribute'.",
|
||||
],
|
||||
'warnings' => [
|
||||
'tips' => 'Sfaturi pentru configurarea sistemului',
|
||||
'tips_description' => 'Exista anumite conditii care necesita atentie pentru a configura sistemul corect.',
|
||||
'permissions' => 'Directorul :name si subdirectoarele sale nu au permisiuni de scriere pentru PHP. Va rugam sa setati permisiunile corespunzatoare pentru acest director.',
|
||||
'extension' => 'Libraria PHP :name nu este instalata. Va rugam sa instalati aceasta librarie si apoi sa activati extensia.'
|
||||
],
|
||||
'editor' => [
|
||||
'menu_label' => 'Preferinte Editor Cod',
|
||||
'menu_description' => 'Personalizati preferintele editorului de cod, preferinte precum dimensiunea fontului si culorile folosite.',
|
||||
'font_size' => 'Dimensiune font',
|
||||
'tab_size' => 'Lungime tab',
|
||||
'use_hard_tabs' => 'Indentare folosind tab-uri',
|
||||
'code_folding' => 'Code folding',
|
||||
'word_wrap' => 'Word wrap',
|
||||
'highlight_active_line' => 'Evidentiere linie activa',
|
||||
'show_invisibles' => 'Arata caractere invizibile',
|
||||
'show_gutter' => 'Afiseaza panou',
|
||||
'theme' => 'Schema culori',
|
||||
],
|
||||
'tooltips' => [
|
||||
'preview_website' => 'Previzualizare site'
|
||||
],
|
||||
'mysettings' => [
|
||||
'menu_label' => 'Setarile mele',
|
||||
'menu_description' => 'Setarile in legatura cu contul de administrare',
|
||||
],
|
||||
'myaccount' => [
|
||||
'menu_label' => 'Contul meu',
|
||||
'menu_description' => 'Actualizati datele contului, precum nume, adresa de email si parola.',
|
||||
'menu_keywords' => 'securitate login'
|
||||
],
|
||||
'backend_preferences' => [
|
||||
'menu_label' => 'Preferinte administrare',
|
||||
'menu_description' => 'Gestionati preferinte limba si setari aspect panou de administrare.',
|
||||
'locale' => 'Limba',
|
||||
'locale_comment' => 'Selectati limba dorita.',
|
||||
],
|
||||
'access_log' => [
|
||||
'hint' => 'Acest jurnal afiseaza o lista de conectari reusite, realizate de catre administratori. Inregistrarile sunt pastrate pentru un numar total de :days zile.',
|
||||
'menu_label' => 'Jurnal acces',
|
||||
'menu_description' => 'Vizualizati o lista de conectari reusite, realizate de catre administratori.',
|
||||
'created_at' => 'Data & Ora',
|
||||
'login' => 'Login',
|
||||
'ip_address' => 'Adresa IP',
|
||||
'first_name' => 'Prenume',
|
||||
'last_name' => 'Nume',
|
||||
'email' => 'Email',
|
||||
],
|
||||
];
|
||||
|
|
@ -47,7 +47,23 @@ return [
|
|||
'menu_label' => 'Панель управления',
|
||||
'widget_label' => 'Виджет',
|
||||
'widget_width' => 'Ширина',
|
||||
'full_width' => 'полная ширина',
|
||||
'add_widget' => 'Добавить виджет',
|
||||
'widget_inspector_title' => 'Конфигурации виджета',
|
||||
'widget_inspector_description' => 'Настройка отображения виджета',
|
||||
'widget_columns_label' => 'Ширина :columns',
|
||||
'widget_columns_description' => 'Ширина виджета может варьироваться от 1 до 10.',
|
||||
'widget_columns_error' => 'Пожалуйста, выберите ширину виджета.',
|
||||
'columns' => '{1} колонка|[2,4] колонки|[5,Inf] колонок',
|
||||
'widget_new_row_label' => 'Новая строка',
|
||||
'widget_new_row_description' => 'Поставить виджет с новой строки.',
|
||||
'widget_title_label' => 'Заголовок',
|
||||
'widget_title_error' => 'Заголовок виджета обязателен.',
|
||||
'status' => [
|
||||
'widget_title_default' => 'Статус системы',
|
||||
'online' => 'Онлайн',
|
||||
'update_available' => '{0} нет новый обновлений!|{1} доступно новое обновление!|[2,Inf] доступны новые обновления!',
|
||||
]
|
||||
],
|
||||
'user' => [
|
||||
'name' => 'Администратора',
|
||||
|
|
@ -71,6 +87,9 @@ return [
|
|||
'send_invite_comment' => 'Используйте эту опцию, чтобы отправить приглашение пользователю по электронной почте',
|
||||
'delete_confirm' => 'Вы действительно хотите удалить этого администратора?',
|
||||
'return' => 'Вернуться к списку администраторов',
|
||||
'allow' => 'Разрешить',
|
||||
'inherit' => 'Наследовать',
|
||||
'deny' => 'Запретить',
|
||||
'group' => [
|
||||
'name' => 'Группы',
|
||||
'name_field' => 'Название',
|
||||
|
|
@ -94,6 +113,20 @@ return [
|
|||
'missing_definition' => "Поведение списка не содержит столбец для ':field'.",
|
||||
'behavior_not_ready' => 'Поведение списка не было инициализировано, проверьте вызов makeLists() в вашем контроллере.',
|
||||
'invalid_column_datetime' => "Значение столбца ':column' не является объектом DateTime. Отсутствует \$dates ссылка в модели?",
|
||||
'pagination' => 'Отображено записей: :from-:to из :total',
|
||||
'prev_page' => 'Предыдущая страница',
|
||||
'next_page' => 'Следующая страница',
|
||||
'loading' => 'Загрузка...',
|
||||
'setup_title' => 'Настройка списка',
|
||||
'setup_help' => 'Используйте флажки для выбора колонок, которые вы хотите видеть в списке. Вы можете изменить положение столбцов, перетаскивая их вверх или вниз.',
|
||||
'records_per_page' => 'Записей на странице',
|
||||
'records_per_page_help' => 'Выберите количество записей на странице для отображения. Обратите внимание, что большое количество записей на одной странице может привести к снижению производительности.'
|
||||
],
|
||||
'fileupload' => [
|
||||
'attachment' => 'Приложение',
|
||||
'help' => 'Добавьте заголовок и описание для этого вложения.',
|
||||
'title_label' => 'Название',
|
||||
'description_label' => 'Описание'
|
||||
],
|
||||
'form' => [
|
||||
'create_title' => "Создание :name",
|
||||
|
|
@ -129,14 +162,22 @@ return [
|
|||
'select' => 'Выбрать',
|
||||
'select_all' => 'все',
|
||||
'select_none' => 'ничего',
|
||||
'select_placeholder' => 'Пожалуйста, выберите',
|
||||
'insert_row' => 'Вставить строку',
|
||||
'delete_row' => 'Удалить строку'
|
||||
],
|
||||
'relation' => [
|
||||
'missing_definition' => "Поведение отношения не содержит определения для ':field'.",
|
||||
'missing_model' => "Для поведения отношения, используемого в :class не определена модель.",
|
||||
'invalid_action_single' => "Это действие не может быть выполнено для особого отношения.",
|
||||
'invalid_action_multi' => "Это действие не может быть выполнено для множественных отношений.",
|
||||
'help' => "Нажмите на элемент, который нужно добавить",
|
||||
'related_data' => "Связанные :name данные",
|
||||
'add' => "Добавить",
|
||||
'add_name' => "Добавление :name",
|
||||
'add_selected' => "Добавить выбранные",
|
||||
'add_a_new' => "Добавить новый :name",
|
||||
'cancel' => "Отмена",
|
||||
'add_name' => "Добавить :name",
|
||||
'create' => "Создать",
|
||||
'create_name' => "Создание :name",
|
||||
'update' => "Update",
|
||||
|
|
@ -145,6 +186,7 @@ return [
|
|||
'remove_name' => "Удаление :name",
|
||||
'delete' => "Удалить",
|
||||
'delete_name' => "Удаление :name",
|
||||
'delete_confirm' => "Вы уверены?",
|
||||
],
|
||||
'model' => [
|
||||
'name' => "Модель",
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class BackendPreferences extends Model
|
|||
'de' => [Lang::get('system::lang.locale.de'), 'flag-de'],
|
||||
'fr' => [Lang::get('system::lang.locale.fr'), 'flag-fr'],
|
||||
'it' => [Lang::get('system::lang.locale.it'), 'flag-it'],
|
||||
'ro' => [Lang::get('system::lang.locale.ro'), 'flag-ro'],
|
||||
];
|
||||
|
||||
// Sort the locales alphabetically
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class Form extends WidgetBase
|
|||
/**
|
||||
* @var array Collection of all fields used in this form.
|
||||
*/
|
||||
protected $allFields = [];
|
||||
protected $fields = [];
|
||||
|
||||
/**
|
||||
* @var array Collection of all form widgets used in this form.
|
||||
|
|
@ -179,10 +179,10 @@ class Form extends WidgetBase
|
|||
public function renderField($field, $options = [])
|
||||
{
|
||||
if (is_string($field)) {
|
||||
if (!isset($this->allFields[$field]))
|
||||
if (!isset($this->fields[$field]))
|
||||
throw new ApplicationException(Lang::get('backend::lang.form.missing_definition', compact('field')));
|
||||
|
||||
$field = $this->allFields[$field];
|
||||
$field = $this->fields[$field];
|
||||
}
|
||||
|
||||
if (!isset($options['useContainer'])) $options['useContainer'] = true;
|
||||
|
|
@ -241,7 +241,7 @@ class Form extends WidgetBase
|
|||
$this->model->fill($data);
|
||||
$this->data = (object) array_merge((array) $this->data, (array) $data);
|
||||
|
||||
foreach ($this->allFields as $field)
|
||||
foreach ($this->fields as $field)
|
||||
$field->value = $this->getFieldValue($field);
|
||||
|
||||
return $data;
|
||||
|
|
@ -274,10 +274,10 @@ class Form extends WidgetBase
|
|||
if (($updateFields = post('fields')) && is_array($updateFields)) {
|
||||
|
||||
foreach ($updateFields as $field) {
|
||||
if (!isset($this->allFields[$field]))
|
||||
if (!isset($this->fields[$field]))
|
||||
continue;
|
||||
|
||||
$fieldObject = $this->allFields[$field];
|
||||
$fieldObject = $this->fields[$field];
|
||||
$result['#' . $fieldObject->getId('group')] = $this->makePartial('field', ['field' => $fieldObject]);
|
||||
}
|
||||
}
|
||||
|
|
@ -357,7 +357,7 @@ class Form extends WidgetBase
|
|||
/*
|
||||
* Bind all form widgets to controller
|
||||
*/
|
||||
foreach ($this->allFields as $field) {
|
||||
foreach ($this->fields as $field) {
|
||||
if ($field->type != 'widget')
|
||||
continue;
|
||||
|
||||
|
|
@ -413,7 +413,7 @@ class Form extends WidgetBase
|
|||
continue;
|
||||
}
|
||||
|
||||
$this->allFields[$name] = $fieldObj;
|
||||
$this->fields[$name] = $fieldObj;
|
||||
|
||||
switch (strtolower($addToArea)) {
|
||||
case 'primary':
|
||||
|
|
@ -589,7 +589,7 @@ class Form extends WidgetBase
|
|||
*/
|
||||
public function getFields()
|
||||
{
|
||||
return $this->allFields;
|
||||
return $this->fields;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -599,7 +599,7 @@ class Form extends WidgetBase
|
|||
*/
|
||||
public function getField($field)
|
||||
{
|
||||
return $this->allFields[$field];
|
||||
return $this->fields[$field];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -621,10 +621,10 @@ class Form extends WidgetBase
|
|||
public function getFieldValue($field)
|
||||
{
|
||||
if (is_string($field)) {
|
||||
if (!isset($this->allFields[$field]))
|
||||
if (!isset($this->fields[$field]))
|
||||
throw new ApplicationException(Lang::get('backend::lang.form.missing_definition', compact('field')));
|
||||
|
||||
$field = $this->allFields[$field];
|
||||
$field = $this->fields[$field];
|
||||
}
|
||||
|
||||
$columnName = $field->columnName;
|
||||
|
|
@ -694,7 +694,7 @@ class Form extends WidgetBase
|
|||
* Boolean fields (checkbox, switch) won't be present value FALSE
|
||||
* Number fields should be converted to integers
|
||||
*/
|
||||
foreach ($this->allFields as $field) {
|
||||
foreach ($this->fields as $field) {
|
||||
|
||||
if (!in_array($field->type, ['switch', 'checkbox', 'number']))
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class Lists extends WidgetBase
|
|||
protected $visibleColumns;
|
||||
|
||||
/**
|
||||
* @var array All available columns.
|
||||
* @var array Collection of all list columns used in this list.
|
||||
*/
|
||||
protected $columns;
|
||||
|
||||
|
|
@ -265,9 +265,10 @@ class Lists extends WidgetBase
|
|||
protected function prepareModel()
|
||||
{
|
||||
$query = $this->model->newQuery();
|
||||
$selects = [$this->model->getTable().'.*'];
|
||||
$tables = ['base'=>$this->model->getTable()];
|
||||
$primaryTable = $this->model->getTable();
|
||||
$selects = [$primaryTable.'.*'];
|
||||
$joins = [];
|
||||
$withs = [];
|
||||
|
||||
/*
|
||||
* Extensibility
|
||||
|
|
@ -276,70 +277,134 @@ class Lists extends WidgetBase
|
|||
$this->fireEvent('list.extendQueryBefore', [$query]);
|
||||
|
||||
/*
|
||||
* Related custom selects, must come first
|
||||
* Prepare searchable column names
|
||||
*/
|
||||
foreach ($this->getVisibleListColumns() as $column) {
|
||||
if (!isset($column->relation) || !isset($column->sqlSelect))
|
||||
continue;
|
||||
$primarySearchable = [];
|
||||
$relationSearchable = [];
|
||||
|
||||
if (!$this->model->hasRelation($column->relation))
|
||||
throw new ApplicationException(Lang::get('backend::lang.model.missing_relation', ['class'=>get_class($this->model), 'relation'=>$column->relation]));
|
||||
$columnsToSearch = [];
|
||||
if (!empty($this->searchTerm) && ($searchableColumns = $this->getSearchableColumns())) {
|
||||
foreach ($searchableColumns as $column) {
|
||||
/*
|
||||
* Related
|
||||
*/
|
||||
if ($this->isColumnRelated($column)) {
|
||||
$table = $this->model->makeRelation($column->relation)->getTable();
|
||||
$columnName = isset($column->sqlSelect)
|
||||
? DbDongle::raw($this->parseTableName($column->sqlSelect, $table))
|
||||
: $table . '.' . $column->nameFrom;
|
||||
|
||||
$alias = Db::getQueryGrammar()->wrap($column->columnName);
|
||||
$table = $this->model->makeRelation($column->relation)->getTable();
|
||||
$relationType = $this->model->getRelationType($column->relation);
|
||||
$sqlSelect = $this->parseTableName($column->sqlSelect, $table);
|
||||
$relationSearchable[$column->relation][] = $columnName;
|
||||
}
|
||||
/*
|
||||
* Primary
|
||||
*/
|
||||
else {
|
||||
$columnName = isset($column->sqlSelect)
|
||||
? DbDongle::raw($this->parseTableName($column->sqlSelect, $primaryTable))
|
||||
: $primaryTable . '.' . $column->columnName;
|
||||
|
||||
if (in_array($relationType, ['hasMany', 'belongsToMany', 'morphToMany', 'morphedByMany', 'morphMany', 'attachMany', 'hasManyThrough']))
|
||||
$selects[] = DbDongle::raw("group_concat(" . $sqlSelect . " separator ', ') as ". $alias);
|
||||
else
|
||||
$selects[] = DbDongle::raw($sqlSelect . ' as '. $alias);
|
||||
|
||||
$joins[] = $column->relation;
|
||||
$tables[$column->relation] = $table;
|
||||
$primarySearchable[] = $columnName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($joins)
|
||||
$query->joinWith(array_unique($joins), false);
|
||||
/*
|
||||
* Prepare related eager loads (withs) and custom selects (joins)
|
||||
*/
|
||||
foreach ($this->getVisibleListColumns() as $column) {
|
||||
|
||||
if (!$this->isColumnRelated($column) || (!isset($column->sqlSelect) && !isset($column->nameFrom)))
|
||||
continue;
|
||||
|
||||
if (isset($column->nameFrom))
|
||||
$withs[] = $column->relation;
|
||||
|
||||
$joins[] = $column->relation;
|
||||
}
|
||||
|
||||
/*
|
||||
* Include any relation constraints
|
||||
*/
|
||||
if ($joins) {
|
||||
foreach (array_unique($joins) as $join) {
|
||||
/*
|
||||
* Apply a supplied search term for relation columns and
|
||||
* constrain the query only if there is something to search for
|
||||
*/
|
||||
$columnsToSearch = array_get($relationSearchable, $join, []);
|
||||
|
||||
if (count($columnsToSearch) > 0) {
|
||||
$query->whereHas($join, function($_query) use ($columnsToSearch) {
|
||||
$_query->searchWhere($this->searchTerm, $columnsToSearch);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Add eager loads to the query
|
||||
*/
|
||||
if ($withs) {
|
||||
$query->with(array_unique($withs));
|
||||
}
|
||||
|
||||
/*
|
||||
* Custom select queries
|
||||
*/
|
||||
foreach ($this->getVisibleListColumns() as $column) {
|
||||
if (!isset($column->sqlSelect) || isset($column->relation))
|
||||
if (!isset($column->sqlSelect))
|
||||
continue;
|
||||
|
||||
$alias = Db::getQueryGrammar()->wrap($column->columnName);
|
||||
$sqlSelect = $this->parseTableName($column->sqlSelect, $tables['base']);
|
||||
$selects[] = DbDongle::raw($sqlSelect . ' as '. $alias);
|
||||
|
||||
/*
|
||||
* Relation column
|
||||
*/
|
||||
if (isset($column->relation)) {
|
||||
$table = $this->model->makeRelation($column->relation)->getTable();
|
||||
$relationType = $this->model->getRelationType($column->relation);
|
||||
$sqlSelect = $this->parseTableName($column->sqlSelect, $table);
|
||||
|
||||
/*
|
||||
* Manipulate a count query for the sub query
|
||||
*/
|
||||
$relationObj = $this->model->{$column->relation}();
|
||||
$countQuery = $relationObj->getRelationCountQuery($relationObj->getRelated()->newQuery(), $query);
|
||||
|
||||
$joinSql = $this->isColumnRelated($column, true)
|
||||
? DbDongle::raw("group_concat(" . $sqlSelect . " separator ', ')")
|
||||
: DbDongle::raw($sqlSelect);
|
||||
|
||||
$joinSql = $countQuery->select($joinSql)->toSql();
|
||||
|
||||
$selects[] = Db::raw("(".$joinSql.") as ".$alias);
|
||||
}
|
||||
/*
|
||||
* Primary column
|
||||
*/
|
||||
else {
|
||||
$sqlSelect = $this->parseTableName($column->sqlSelect, $primaryTable);
|
||||
$selects[] = DbDongle::raw($sqlSelect . ' as '. $alias);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle a supplied search term
|
||||
* Apply a supplied search term for primary columns
|
||||
*/
|
||||
if (!empty($this->searchTerm) && ($searchableColumns = $this->getSearchableColumns())) {
|
||||
$query->orWhere(function($innerQuery) use ($searchableColumns, $tables) {
|
||||
$columnsToSearch = [];
|
||||
foreach ($searchableColumns as $column) {
|
||||
|
||||
if (isset($column->sqlSelect)) {
|
||||
$table = (isset($column->relation)) ? $tables[$column->relation] : 'base';
|
||||
$columnName = DbDongle::raw($this->parseTableName($column->sqlSelect, $table));
|
||||
}
|
||||
else
|
||||
$columnName = $tables['base'] . '.' . $column->columnName;
|
||||
|
||||
$columnsToSearch[] = $columnName;
|
||||
}
|
||||
|
||||
$innerQuery->searchWhere($this->searchTerm, $columnsToSearch);
|
||||
if (count($primarySearchable) > 0) {
|
||||
$query->orWhere(function($innerQuery) use ($primarySearchable) {
|
||||
$innerQuery->searchWhere($this->searchTerm, $primarySearchable);
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle sorting
|
||||
* Apply sorting
|
||||
*/
|
||||
if ($sortColumn = $this->getSortColumn()) {
|
||||
if (($column = array_get($this->columns, $sortColumn)) && $column->sqlSelect)
|
||||
$sortColumn = $column->sqlSelect;
|
||||
|
||||
$query->orderBy($sortColumn, $this->sortDirection);
|
||||
}
|
||||
|
||||
|
|
@ -350,15 +415,17 @@ class Lists extends WidgetBase
|
|||
$callback($query);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add custom selects
|
||||
*/
|
||||
$query->select($selects);
|
||||
|
||||
/*
|
||||
* Extensibility
|
||||
*/
|
||||
Event::fire('backend.list.extendQuery', [$this, $query]);
|
||||
$this->fireEvent('list.extendQuery', [$query]);
|
||||
|
||||
// Grouping due to the joinWith() call
|
||||
$query->select($selects);
|
||||
$query->groupBy($this->model->getQualifiedKeyName());
|
||||
return $query;
|
||||
}
|
||||
|
||||
|
|
@ -414,12 +481,31 @@ class Lists extends WidgetBase
|
|||
return Html::attributes(['onclick' => $recordOnClick]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the registered columns for the instance.
|
||||
* @return array
|
||||
*/
|
||||
public function getColumns()
|
||||
{
|
||||
return $this->columns ?: $this->defineListColumns();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specified column object
|
||||
* @param string $column
|
||||
* @return mixed
|
||||
*/
|
||||
public function getColumn($column)
|
||||
{
|
||||
return $this->columns[$column];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list columns that are visible by list settings or default
|
||||
*/
|
||||
protected function getVisibleListColumns()
|
||||
{
|
||||
$definitions = $this->getListColumns();
|
||||
$definitions = $this->defineListColumns();
|
||||
$columns = [];
|
||||
|
||||
/*
|
||||
|
|
@ -457,7 +543,7 @@ class Lists extends WidgetBase
|
|||
/**
|
||||
* Builds an array of list columns with keys as the column name and values as a ListColumn object.
|
||||
*/
|
||||
protected function getListColumns()
|
||||
protected function defineListColumns()
|
||||
{
|
||||
if (!isset($this->config->columns) || !is_array($this->config->columns) || !count($this->config->columns))
|
||||
throw new ApplicationException(Lang::get('backend::lang.list.missing_columns', ['class'=>get_class($this->controller)]));
|
||||
|
|
@ -555,16 +641,33 @@ class Lists extends WidgetBase
|
|||
*/
|
||||
public function getColumnValue($record, $column)
|
||||
{
|
||||
|
||||
$columnName = $column->columnName;
|
||||
|
||||
/*
|
||||
* If the column is a relation, it will be a custom select,
|
||||
* Handle taking name from model attribute.
|
||||
*/
|
||||
if ($column->nameFrom) {
|
||||
if (!array_key_exists($columnName, $record->getRelations()))
|
||||
$value = null;
|
||||
elseif ($this->isColumnRelated($column, true))
|
||||
$value = implode(', ', $record->{$columnName}->lists($column->nameFrom));
|
||||
elseif ($this->isColumnRelated($column))
|
||||
$value = $record->{$columnName}->{$column->nameFrom};
|
||||
else
|
||||
$value = $record->{$column->nameFrom};
|
||||
}
|
||||
/*
|
||||
* Otherwise, if the column is a relation, it will be a custom select,
|
||||
* so prevent the Model from attempting to load the relation
|
||||
* if the value is NULL.
|
||||
*/
|
||||
$columnName = $column->columnName;
|
||||
if ($record->hasRelation($columnName) && array_key_exists($columnName, $record->attributes))
|
||||
$value = $record->attributes[$columnName];
|
||||
else
|
||||
$value = $record->{$columnName};
|
||||
else {
|
||||
if ($record->hasRelation($columnName) && array_key_exists($columnName, $record->attributes))
|
||||
$value = $record->attributes[$columnName];
|
||||
else
|
||||
$value = $record->{$columnName};
|
||||
}
|
||||
|
||||
if (method_exists($this, 'eval'. studly_case($column->type) .'TypeValue'))
|
||||
$value = $this->{'eval'. studly_case($column->type) .'TypeValue'}($record, $column, $value);
|
||||
|
|
@ -613,6 +716,9 @@ class Lists extends WidgetBase
|
|||
{
|
||||
return $this->controller->makePartial($column->path ?: $column->columnName, [
|
||||
'listColumn' => $column,
|
||||
'listRecord' => $record,
|
||||
'listValue' => $value,
|
||||
'column' => $column,
|
||||
'record' => $record,
|
||||
'value' => $value
|
||||
]);
|
||||
|
|
@ -738,7 +844,7 @@ class Lists extends WidgetBase
|
|||
*/
|
||||
protected function getSearchableColumns()
|
||||
{
|
||||
$columns = $this->columns ?: $this->getListColumns();
|
||||
$columns = $this->getColumns();
|
||||
$searchable = [];
|
||||
|
||||
foreach ($columns as $column) {
|
||||
|
|
@ -848,7 +954,7 @@ class Lists extends WidgetBase
|
|||
if ($this->sortableColumns !== null)
|
||||
return $this->sortableColumns;
|
||||
|
||||
$columns = $this->columns ?: $this->getListColumns();
|
||||
$columns = $this->getColumns();
|
||||
$sortable = [];
|
||||
|
||||
foreach ($columns as $column) {
|
||||
|
|
@ -912,12 +1018,12 @@ class Lists extends WidgetBase
|
|||
/*
|
||||
* Force all columns invisible
|
||||
*/
|
||||
$allColumns = $this->getListColumns();
|
||||
foreach ($allColumns as $column) {
|
||||
$columns = $this->defineListColumns();
|
||||
foreach ($columns as $column) {
|
||||
$column->invisible = true;
|
||||
}
|
||||
|
||||
return array_merge($allColumns, $this->getVisibleListColumns());
|
||||
return array_merge($columns, $this->getVisibleListColumns());
|
||||
}
|
||||
|
||||
//
|
||||
|
|
@ -962,4 +1068,38 @@ class Lists extends WidgetBase
|
|||
return $this->onRefresh();
|
||||
}
|
||||
|
||||
//
|
||||
// Helpers
|
||||
//
|
||||
|
||||
/**
|
||||
* Check if column refers to a relation of the model
|
||||
* @param ListColumn $column List column object
|
||||
* @param boolean $multi If set, returns true only if the relation is a "multiple relation type"
|
||||
* @return boolean
|
||||
*/
|
||||
protected function isColumnRelated($column, $multi = false)
|
||||
{
|
||||
if (!isset($column->relation))
|
||||
return false;
|
||||
|
||||
if (!$this->model->hasRelation($column->relation))
|
||||
throw new ApplicationException(Lang::get('backend::lang.model.missing_relation', ['class'=>get_class($this->model), 'relation'=>$column->relation]));
|
||||
|
||||
if (!$multi)
|
||||
return true;
|
||||
|
||||
$relationType = $this->model->getRelationType($column->relation);
|
||||
|
||||
return in_array($relationType, [
|
||||
'hasMany',
|
||||
'belongsToMany',
|
||||
'morphToMany',
|
||||
'morphedByMany',
|
||||
'morphMany',
|
||||
'attachMany',
|
||||
'hasManyThrough'
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ class ReportContainer extends WidgetBase
|
|||
{
|
||||
$sizes = [];
|
||||
for ($i = 1; $i <= 10; $i++)
|
||||
$sizes[$i] = $i < 10 ? $i : $i.' (full width)';
|
||||
$sizes[$i] = $i < 10 ? $i : $i.' (' . Lang::get('backend::lang.dashboard.full_width') . ')';
|
||||
|
||||
$this->vars['sizes'] = $sizes;
|
||||
$this->vars['widgets'] = WidgetManager::instance()->listReportWidgets();
|
||||
|
|
|
|||
|
|
@ -1,2 +1,9 @@
|
|||
<!-- Partial -->
|
||||
<?= $this->controller->makePartial($field->path ?: $field->columnName) ?>
|
||||
<?= $this->controller->makePartial($field->path ?: $field->columnName, [
|
||||
'formModel' => $formModel,
|
||||
'formField' => $field,
|
||||
'formValue' => $field->value,
|
||||
'model' => $formModel,
|
||||
'field' => $field,
|
||||
'value' => $field->value
|
||||
]) ?>
|
||||
|
|
@ -54,13 +54,13 @@
|
|||
data-request="<?= $this->getEventHandler('onApplySetup') ?>"
|
||||
data-dismiss="popup"
|
||||
data-stripe-load-indicator>
|
||||
<?= e(trans('backend::lang.list.apply_changes')) ?>
|
||||
<?= e(trans('backend::lang.form.apply')) ?>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="popup">
|
||||
<?= e(trans('backend::lang.list.cancel')) ?>
|
||||
<?= e(trans('backend::lang.form.cancel')) ?>
|
||||
</button>
|
||||
</div>
|
||||
<?= Form::close() ?>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label><?= e(trans('backend::lang.dashboard.widget_label')) ?></label>
|
||||
<select class="form-control custom-select" name="className" data-placeholder="please select">
|
||||
<select class="form-control custom-select" name="className" data-placeholder="<?= e(trans('backend::lang.form.select_placeholder')) ?>">
|
||||
<option></option>
|
||||
<?php foreach ($widgets as $className => $widgetInfo):?>
|
||||
<option value="<?= e($className) ?>"><?= isset($widgetInfo['label']) ? e(trans($widgetInfo['label'])) : $className ?></option>
|
||||
|
|
|
|||
|
|
@ -107,13 +107,21 @@ class CodeBase extends Extendable implements ArrayAccess
|
|||
|
||||
/**
|
||||
* This object is referenced as $this->page in Cms\Classes\ComponentBase,
|
||||
* so to avoid $this->page->page this method will proxy there.
|
||||
* so to avoid $this->page->page this method will proxy there. This is also
|
||||
* used as a helper for accessing controller variables/components easier
|
||||
* in the page code, eg. $this->foo instead of $this['foo']
|
||||
* @param string $name
|
||||
* @return void
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
return $this->page->{$name};
|
||||
if (($value = $this->page->{$name}) !== null)
|
||||
return $value;
|
||||
|
||||
if (array_key_exists($name, $this->controller->vars))
|
||||
return $this[$name];
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -195,6 +195,15 @@ class Controller extends BaseController
|
|||
$this->pageObj->onInit();
|
||||
CmsException::unmask();
|
||||
|
||||
/*
|
||||
* Extensibility
|
||||
*/
|
||||
if ($event = $this->fireEvent('page.init', [$url, $page], true))
|
||||
return $event;
|
||||
|
||||
if ($event = Event::fire('cms.page.init', [$this, $url, $page], true))
|
||||
return $event;
|
||||
|
||||
/*
|
||||
* Execute AJAX event
|
||||
*/
|
||||
|
|
@ -255,7 +264,10 @@ class Controller extends BaseController
|
|||
{
|
||||
$this->loader = new TwigLoader();
|
||||
|
||||
$options = ['auto_reload' => true];
|
||||
$options = [
|
||||
'auto_reload' => true,
|
||||
'debug' => Config::get('app.debug', false),
|
||||
];
|
||||
if (!Config::get('cms.twigNoCache'))
|
||||
$options['cache'] = storage_path().'/twig';
|
||||
|
||||
|
|
@ -481,6 +493,15 @@ class Controller extends BaseController
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes the current page cycle without rendering the page,
|
||||
* used by AJAX handler that may rely on the logic inside the action.
|
||||
*/
|
||||
public function pageCycle()
|
||||
{
|
||||
return $this->execPageCycle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the page life cycle.
|
||||
* Creates an object from the PHP sections of the page and
|
||||
|
|
@ -548,7 +569,18 @@ class Controller extends BaseController
|
|||
*/
|
||||
public function renderPage()
|
||||
{
|
||||
return $this->pageContents;
|
||||
$contents = $this->pageContents;
|
||||
|
||||
/*
|
||||
* Extensibility
|
||||
*/
|
||||
if ($event = $this->fireEvent('page.render', [$contents], true))
|
||||
return $event;
|
||||
|
||||
if ($event = Event::fire('cms.page.render', [$this, $contents], true))
|
||||
return $event;
|
||||
|
||||
return $contents;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class Page extends CmsCompoundObject
|
|||
{
|
||||
protected $settingsValidationRules = [
|
||||
'title' => 'required',
|
||||
'url' => ['required', 'regex:/^\/[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i']
|
||||
'url' => ['required', 'regex:/^\/[a-z0-9\/\:_\-\*\[\]\+\?\|\.]*$/i']
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ class Router
|
|||
/*
|
||||
* Find the page by URL and cache the route
|
||||
*/
|
||||
|
||||
if (!$fileName) {
|
||||
$router = $this->getRouterObject();
|
||||
|
||||
|
|
@ -105,9 +104,8 @@ class Router
|
|||
}
|
||||
|
||||
/*
|
||||
* Return the page
|
||||
* Return the page
|
||||
*/
|
||||
|
||||
if ($fileName) {
|
||||
if (($page = Page::loadCached($this->theme, $fileName)) === null) {
|
||||
/*
|
||||
|
|
@ -232,6 +230,16 @@ class Router
|
|||
Cache::forget($this->getCacheKey('cms-url-list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current routing parameters.
|
||||
* @param array $parameters
|
||||
* @return array
|
||||
*/
|
||||
public function setParameters(array $parameters)
|
||||
{
|
||||
$this->parameters = $parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current routing parameters.
|
||||
* @return array
|
||||
|
|
|
|||
|
|
@ -162,15 +162,15 @@ class Index extends Controller
|
|||
/*
|
||||
* Extensibility
|
||||
*/
|
||||
Event::fire('cms.template.save', [$this, $type]);
|
||||
$this->fireEvent('cms.template.save', [$type]);
|
||||
Event::fire('cms.template.save', [$this, $template, $type]);
|
||||
$this->fireEvent('template.save', [$template, $type]);
|
||||
|
||||
Flash::success(Lang::get('cms::lang.template.saved'));
|
||||
|
||||
$result = [
|
||||
'templatePath' => $template->fileName,
|
||||
'templatePath' => $template->fileName,
|
||||
'templateMtime' => $template->mtime,
|
||||
'tabTitle' => $this->getTabTitle($type, $template)
|
||||
'tabTitle' => $this->getTabTitle($type, $template)
|
||||
];
|
||||
|
||||
if ($type == 'page') {
|
||||
|
|
@ -235,7 +235,7 @@ class Index extends Controller
|
|||
* Extensibility
|
||||
*/
|
||||
Event::fire('cms.template.delete', [$this, $type]);
|
||||
$this->fireEvent('cms.template.delete', [$type]);
|
||||
$this->fireEvent('template.delete', [$type]);
|
||||
|
||||
return [
|
||||
'deleted' => $deleted,
|
||||
|
|
@ -256,7 +256,7 @@ class Index extends Controller
|
|||
* Extensibility
|
||||
*/
|
||||
Event::fire('cms.template.delete', [$this, $type]);
|
||||
$this->fireEvent('cms.template.delete', [$type]);
|
||||
$this->fireEvent('template.delete', [$type]);
|
||||
}
|
||||
|
||||
public function onGetTemplateList()
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ return [
|
|||
'menu_label' => 'Seiten',
|
||||
'no_list_records' => 'Keine Seiten gefunden',
|
||||
'new' => 'Neue Seite',
|
||||
'invalid_url' => 'Ungültiges URL-Format. Die URL muss mit einem Slash beginnen und darf nur Ziffern, lateinische Zeichen und die folgenden Symbole beinhalten: _-[]:?|/+*',
|
||||
'invalid_url' => 'Ungültiges URL-Format. Die URL muss mit einem Slash beginnen und darf nur Ziffern, lateinische Zeichen und die folgenden Symbole beinhalten: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Wollen Sie die ausgewählten Seiten wirklich löschen?',
|
||||
'delete_confirm_single' => 'Wollen Sie diese Seite wirklich löschen?',
|
||||
'no_layout' => '-- Kein Layout --'
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ return [
|
|||
'menu_label' => 'Pages',
|
||||
'no_list_records' => 'No pages found',
|
||||
'new' => 'New page',
|
||||
'invalid_url' => 'Invalid URL format. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: _-[]:?|/+*',
|
||||
'invalid_url' => 'Invalid URL format. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Do you really want to delete selected pages?',
|
||||
'delete_confirm_single' => 'Do you really want delete this page?',
|
||||
'no_layout' => '-- no layout --'
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ return [
|
|||
'menu_label' => 'Pages',
|
||||
'no_list_records' => 'Aucune page trouvée',
|
||||
'new' => 'Nouvelle page',
|
||||
'invalid_url' => 'Format d\'URL invalide. L\'URL doit commencer par un / et peut contenit des chiffres, des lettres et les symboles suivants: _-[]:?|/+*',
|
||||
'invalid_url' => 'Format d\'URL invalide. L\'URL doit commencer par un / et peut contenit des chiffres, des lettres et les symboles suivants: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Voulez-vous vraiment supprimer les pages sélectionnées ?',
|
||||
'delete_confirm_single' => 'Voulez-vous vraiment supprimer cette page ?',
|
||||
'no_layout' => '-- aucun layout --'
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ return [
|
|||
'menu_label' => 'Pagine',
|
||||
'no_list_records' => 'Pagine non trovate',
|
||||
'new' => 'Nuova pagina',
|
||||
'invalid_url' => 'Formato URL non valido. L\'URL deve iniziare con una barra e può contenere numeri, lettere e i seguenti simboli: _-[]:?|/+*',
|
||||
'invalid_url' => 'Formato URL non valido. L\'URL deve iniziare con una barra e può contenere numeri, lettere e i seguenti simboli: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Sei sicuro di voler eliminare le pagine selezionate?',
|
||||
'delete_confirm_single' => 'Sei sicuro di voler eliminare questa pagina?',
|
||||
'no_layout' => '-- nessun layout --'
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ return [
|
|||
'menu_label' => 'ページ',
|
||||
'no_list_records' => 'ページが見つかりません',
|
||||
'new' => '新ページ',
|
||||
'invalid_url' => '正しくないURL形式。URLはスラッシュ(/)で始まり、数字、ラテン文字、_-[]:?|/+*で構成します。',
|
||||
'invalid_url' => '正しくないURL形式。URLはスラッシュ(/)で始まり、数字、ラテン文字、._-[]:?|/+*で構成します。',
|
||||
'delete_confirm_multiple' => '指定した全ページを本当に削除しますか?',
|
||||
'delete_confirm_single' => '本当にこのページを削除しますか?',
|
||||
'no_layout' => '-- レイアウト無し --'
|
||||
|
|
|
|||
|
|
@ -5,27 +5,33 @@ return [
|
|||
'invalid_file' => 'Ongeldige bestandsnaam: :name. Bestandsnamen mogen enkel bestaan uit letters, cijfers, underscores, streepjes en punten. Voorbeelden van correcte bestandsnamen: pagina.htm, pagina, map/pagina',
|
||||
'invalid_property' => 'Parameter ":name" kan niet worden gewijzigd',
|
||||
'file_already_exists' => 'Bestand ":name" bestaat al.',
|
||||
'error_saving' => 'Bestand opslaan mislukt: ":name".',
|
||||
'error_creating_directory' => 'Map aanmaken mislukt: ":name"',
|
||||
'error_saving' => 'Bestand opslaan mislukt: ":name". Controleer de schrijfrechten.',
|
||||
'error_creating_directory' => 'Map aanmaken mislukt: ":name". Controleer de schrijfrechten.',
|
||||
'invalid_file_extension'=>'Ongeldige bestandsextensie: :invalid. Toegestane extensies zijn: :allowed.',
|
||||
'error_deleting' => 'Fout bij het verwijderen van template: ":name".',
|
||||
'error_deleting' => 'Fout bij het verwijderen van template: ":name". Controleer de schrijfrechten.',
|
||||
'delete_success' => 'Templates zijn succesvol verwijderd: :count.',
|
||||
'file_name_required' => 'Het invullen van een bestandsnaam is verplicht.'
|
||||
],
|
||||
'theme' => [
|
||||
'active' => [
|
||||
'not_set' => "Er is geen actief thema geselecteerd.",
|
||||
'not_found' => "Het actieve thema is niet gevonden.",
|
||||
],
|
||||
'edit' => [
|
||||
'not_set' => "Er is geen thema ingesteld om te kunnen bewerken.",
|
||||
'not_found' => "Het te bewerken thema is niet gevonden.",
|
||||
'not_match' => "Het object dat je probeert te openen behoort niet tot het te bewerken thema. Herlaad de pagina."
|
||||
]
|
||||
],
|
||||
'settings_menu' => 'Front-end thema',
|
||||
'settings_menu_description' => 'Bekijk de lijst met geïnstalleerde themas en selecteer een beschikbaar thema.',
|
||||
'find_more_themes' => 'Vind meer thema\'s op de OctoberCMS thema marktplaats.',
|
||||
'activate_button' => 'Activeer',
|
||||
'active_button' => 'Activeer',
|
||||
],
|
||||
'page' => [
|
||||
'not_found' => [
|
||||
'label' => "Pagina niet gevonden",
|
||||
'help' => "De opgevraagde pagina bestaat niet.",
|
||||
'help' => "De opgevraagde pagina kan niet worden gevonden.",
|
||||
],
|
||||
'custom_error' => [
|
||||
'label' => "Paginafout",
|
||||
|
|
@ -34,7 +40,7 @@ return [
|
|||
'menu_label' => 'Pagina\'s',
|
||||
'no_list_records' => 'Geen pagina\'s gevonden',
|
||||
'new' => 'Nieuwe pagina',
|
||||
'invalid_url' => 'Ongeldig URL formaat. De URL moet beginnen met een schuine streep en mag enkel bestaan uit letters, cijfers en de volgende tekens: _-[]:?|/+*',
|
||||
'invalid_url' => 'Ongeldig URL formaat. De URL moet beginnen met een schuine streep en mag enkel bestaan uit letters, cijfers en de volgende tekens: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Weet je zeker dat je de geselecteerde pagina\'s wilt verwijderen?',
|
||||
'delete_confirm_single' => 'Weet je zeker dat je deze pagina wilt verwijderen?',
|
||||
'no_layout' => '-- geen layout --'
|
||||
|
|
@ -88,11 +94,15 @@ return [
|
|||
'description' => 'Omschrijving',
|
||||
'preview' => 'Voorbeeld',
|
||||
'meta' => 'Meta',
|
||||
'meta_title' => 'Meta Titel',
|
||||
'meta_description' => 'Meta Omschrijving',
|
||||
'meta_title' => 'Meta titel',
|
||||
'meta_description' => 'Meta omschrijving',
|
||||
'markup' => 'Opmaak',
|
||||
'code' => 'Code',
|
||||
'content' => 'Content',
|
||||
'hidden' => 'Verborgen',
|
||||
'hidden_comment' => 'Verborgen pagina zijn alleen toegankelijk voor ingelogde gebruikers.',
|
||||
'enter_fullscreen' => 'Volledig scherm starten',
|
||||
'exit_fullscreen' => 'Volledig scherm afsluiten',
|
||||
],
|
||||
'asset' => [
|
||||
'menu_label' => "Middelen",
|
||||
|
|
@ -101,9 +111,12 @@ return [
|
|||
'upload_files' => 'Bestand(en) uploaden',
|
||||
'create_file' => 'Nieuw bestand',
|
||||
'create_directory' => 'Nieuwe map',
|
||||
'directory_popup_title' => 'Nieuwe map',
|
||||
'directory_name' => 'Mapnaam',
|
||||
'rename' => 'Hernoemen',
|
||||
'delete' => 'Verwijderen',
|
||||
'move' => 'Verplaatsen',
|
||||
'select' => 'Selecteren',
|
||||
'new' => 'Nieuw bestand',
|
||||
'rename_popup_title' => 'Hernoemen',
|
||||
'rename_new_name' => 'Nieuwe naam',
|
||||
|
|
@ -116,7 +129,7 @@ return [
|
|||
'already_exists' => 'Bestand of map met deze naam bestaat al',
|
||||
'error_renaming' => 'Fout bij hernoemen van bestand of map',
|
||||
'name_cant_be_empty' => 'De naam mag niet leeg zijn',
|
||||
'too_large' => 'Het geüploade bestand is te groot. De maximaal toegestane bestandsgrootte is :max_size',
|
||||
'too_large' => 'Het geüploadete bestand is te groot. De maximaal toegestane bestandsgrootte is :max_size',
|
||||
'type_not_allowed' => 'Enkel de volgende bestandstypen zijn toegestaand: :allowed_types',
|
||||
'file_not_valid' => 'Bestand is ongeldig',
|
||||
'error_uploading_file' => 'Fout tijdens uploaden bestand ":name": :error',
|
||||
|
|
@ -135,7 +148,7 @@ return [
|
|||
'component' => [
|
||||
'menu_label' => "Componenten",
|
||||
'unnamed' => "Naamloos",
|
||||
'no_description' => "Geen beschrijviging opgegeven",
|
||||
'no_description' => "Geen beschrijving opgegeven",
|
||||
'alias' => "Alias",
|
||||
'alias_description' => "Een unieke naam voor dit component voor gebruik in de code van een pagina of layout.",
|
||||
'validation_message' => "Een alias voor het component is verplicht en mag alleen bestaan uit letters, cijfers en underscores. De alias moet beginnen met een letter.",
|
||||
|
|
@ -148,5 +161,13 @@ return [
|
|||
'invalid_type' => "Onbekend type template.",
|
||||
'not_found' => "De opgevraagde template is niet gevonden.",
|
||||
'saved'=> "De template is succesvol opgeslagen."
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_content' => 'Beheer inhoud',
|
||||
'manage_assets' => 'Beheer middelen',
|
||||
'manage_pages' => 'Beheer pagina\'s',
|
||||
'manage_layouts' => 'Beheer layouts',
|
||||
'manage_partials' => 'Beheer sjablonen',
|
||||
'manage_themes' => 'Beheer thema\'s'
|
||||
]
|
||||
];
|
||||
|
|
@ -33,7 +33,7 @@ return [
|
|||
],
|
||||
'menu_label' => 'Páginas',
|
||||
'no_list_records' => 'Nenhuma página foi encontradas',
|
||||
'invalid_url' => 'Formato de URL inválido. O URL deve começar com o símbolo de barra e pode conter dígitos, letras latinas e os seguintes símbolos: _-[]:?|/+*',
|
||||
'invalid_url' => 'Formato de URL inválido. O URL deve começar com o símbolo de barra e pode conter dígitos, letras latinas e os seguintes símbolos: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Você realmente quer excluir as páginas selecionadas?',
|
||||
'delete_confirm_single' => 'Você realmente quer excluir esta página?',
|
||||
'no_layout' => '-- sem layout --'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,170 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'cms_object' => [
|
||||
'invalid_file' => 'Nume de fisier invalid: :name. Numele de fisiere pot sa contina doar caractere alfanumerice, linii si puncte. Unele exemple de nume de fisiere corecte: pagina_1.htm, pagina-2, subdirector/pagina',
|
||||
'invalid_property' => 'Proprietatea ":name" nu poate fi setata',
|
||||
'file_already_exists' => 'Fisierul ":name" deja exista.',
|
||||
'error_saving' => 'Eroare la salvarea fisierului ":name". Verificati permisiunile de scriere.',
|
||||
'error_creating_directory' => 'Eroare la crearea directorului :name. Verificati permisiunile de scriere.',
|
||||
'invalid_file_extension'=>'Extensie de fisier invalida: :invalid. Extensiile permise sunt: :allowed.',
|
||||
'error_deleting' => 'Eroare la stergerea fisierului sablon ":name". Verificati permisiunile de scriere.',
|
||||
'delete_success' => 'Sabloanele au fost sterse cu succes, in total: :count.',
|
||||
'file_name_required' => 'Campul nume fisier este necesar.'
|
||||
],
|
||||
'theme' => [
|
||||
'active' => [
|
||||
'not_set' => "Tema activa nu este setata.",
|
||||
'not_found' => "Tema activa nu a fost gasita.",
|
||||
],
|
||||
'edit' => [
|
||||
'not_set' => "Tema de editare nu este setata.",
|
||||
'not_found' => "Tema de editare nu a fost gasita.",
|
||||
'not_match' => "Obiectul pe care incercati sa-l accesati nu apartine temei care este in curs de editare. Va rugam reincarcati pagina."
|
||||
],
|
||||
'settings_menu' => 'Tema Front-end',
|
||||
'settings_menu_description' => 'Previzualizati lista de teme instalate si selectati o tema activa.',
|
||||
'find_more_themes' => 'Gasiti mai multe teme in "Piata OctoberCMS".',
|
||||
'activate_button' => 'Activare',
|
||||
'active_button' => 'Activare',
|
||||
],
|
||||
'page' => [
|
||||
'not_found' => [
|
||||
'label' => "Pagina negasita",
|
||||
'help' => "Pagina cautata nu a putut fi gasita.",
|
||||
],
|
||||
'custom_error' => [
|
||||
'label' => "Eroare pagina",
|
||||
'help' => "Ne cerem scuze, dar a aparut o problema si pagina nu poate fi afisata.",
|
||||
],
|
||||
'menu_label' => 'Pagini',
|
||||
'no_list_records' => 'Nu au fost gasite pagini',
|
||||
'new' => 'Pagina noua',
|
||||
'invalid_url' => 'Format URL invalid. URL-ul ar trebui sa inceapa cu un slash ( / ) si poate sa contina cifre, caractere latine si urmatoarele simboluri: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Vreti sa stergeti paginile selectate?',
|
||||
'delete_confirm_single' => 'Vreti sa stergeti aceasta pagina?',
|
||||
'no_layout' => '-- fara macheta --'
|
||||
],
|
||||
'layout' => [
|
||||
'not_found' => "Macheta ':name' nu a fost gasita",
|
||||
'menu_label' => 'Machete',
|
||||
'no_list_records' => 'Nu au fost gasite machete',
|
||||
'new' => 'Macheta noua',
|
||||
'delete_confirm_multiple' => 'Vreti sa stergeti machetele selectate?',
|
||||
'delete_confirm_single' => 'Vreti sa stergeti macheta selectata?'
|
||||
],
|
||||
'partial' => [
|
||||
'invalid_name' => "Nume invalid pentru componenta partiala: :name.",
|
||||
'not_found' => "Componenta partiala ':name' nu a fost gasita.",
|
||||
'menu_label' => 'Componente partiale',
|
||||
'no_list_records' => 'Nu au fost gasite componente partiale',
|
||||
'delete_confirm_multiple' => 'Vreti sa stergeti componentele partiale selectate?',
|
||||
'delete_confirm_single' => 'Vreti sa stergeti aceasta componenta partiala?',
|
||||
'new' => 'Componenta partiala noua'
|
||||
],
|
||||
'content' => [
|
||||
'not_found' => "Fisierul de continut ':name' nu a fost gasit.",
|
||||
'menu_label' => 'Continut',
|
||||
'no_list_records' => 'Nu au fost gasite fisiere de continut',
|
||||
'delete_confirm_multiple' => 'Vreti sa stergeti fisierele si directoarele cu continut?',
|
||||
'delete_confirm_single' => 'Vreti sa stergeti acest fisier cu continut?',
|
||||
'new' => 'Fisier nou cu continut'
|
||||
],
|
||||
'ajax_handler' => [
|
||||
'invalid_name' => "Nume Functie AJAX invalid: :name.",
|
||||
'not_found' => "Functia AJAX ':name' nu a fost gasita.",
|
||||
],
|
||||
'combiner' => [
|
||||
'not_found' => "Fisierul compus ':name' nu a fost gasit.",
|
||||
],
|
||||
'cms' => [
|
||||
'menu_label' => "CMS"
|
||||
],
|
||||
'sidebar' => [
|
||||
'add' => 'Adaugare',
|
||||
'search' => 'Cautare...'
|
||||
],
|
||||
'editor' => [
|
||||
'settings' => 'Setari',
|
||||
'title' => 'Titlu',
|
||||
'new_title' => 'Titlu de pagina noua',
|
||||
'url' => 'URL',
|
||||
'filename' => 'Nume fisier',
|
||||
'layout' => 'Macheta',
|
||||
'description' => 'Descriere',
|
||||
'preview' => 'Previzualizare',
|
||||
'meta' => 'Meta',
|
||||
'meta_title' => 'Titlu Meta',
|
||||
'meta_description' => 'Descriere Meta',
|
||||
'markup' => 'Markup',
|
||||
'code' => 'Cod',
|
||||
'content' => 'Continut',
|
||||
'hidden' => 'Ascuns',
|
||||
'hidden_comment' => 'Fisierele ascunse sunt vizibile doar administratorilor logati in sistem',
|
||||
'enter_fullscreen' => 'Intrare in mod ecran complet',
|
||||
'exit_fullscreen' => 'Iesire din mod ecran complet'
|
||||
],
|
||||
'asset' => [
|
||||
'menu_label' => "Fisiere design",
|
||||
'drop_down_add_title' => 'Adaure...',
|
||||
'drop_down_operation_title' => 'Actiune...',
|
||||
'upload_files' => 'Incarcare fisier(e)',
|
||||
'create_file' => 'Creare fisier',
|
||||
'create_directory' => 'Creare director',
|
||||
'rename' => 'Redenumire',
|
||||
'delete' => 'Stergere',
|
||||
'move' => 'Mutare',
|
||||
'new' => 'Fisier nou',
|
||||
'rename_popup_title' => 'Redenumire',
|
||||
'rename_new_name' => 'Nume nou',
|
||||
'invalid_path' => 'Calea poate sa contina doar cifre, caractere latine, spatii si urmatoarele simboluri: ._-/',
|
||||
'error_deleting_file' => 'Eroare la stergerea fisierului :name.',
|
||||
'error_deleting_dir_not_empty' => 'Eroare la stergerea directorului :name. Directorul nu este gol.',
|
||||
'error_deleting_dir' => 'Eroare la stergerea fisierului :name.',
|
||||
'invalid_name' => 'Numele poate sa contina doar cifre, caractere latine si urmatoarele simboluri: ._-',
|
||||
'original_not_found' => 'Fisierul sau directorul original nu a fost gasit',
|
||||
'already_exists' => 'Fisierul sau directorul cu acest nume exista deja',
|
||||
'error_renaming' => 'Eroare la redenumirea fisierului sau directorului',
|
||||
'name_cant_be_empty' => 'Numele nu poate fi gol',
|
||||
'too_large' => 'Fisierul incarcat este prea mare. Dimensiunea maxima permisa este: :max_size',
|
||||
'type_not_allowed' => 'Doar urmatoarele tipuri de fisiere sunt permise: :allowed_types',
|
||||
'file_not_valid' => 'Fisierul nu este valid',
|
||||
'error_uploading_file' => 'Eroare la incarcarea fisierului ":name", eroare: :error',
|
||||
'move_please_select' => 'selectati',
|
||||
'move_destination' => 'Director destinatie',
|
||||
'move_popup_title' => 'Mutare fisiere',
|
||||
'move_button' => 'Mutare',
|
||||
'selected_files_not_found' => 'Fisierele selectate nu au fost gasite',
|
||||
'select_destination_dir' => 'Selectati un director pentru destinatie',
|
||||
'destination_not_found' => 'Directorul destinatie nu a fost gasit',
|
||||
'error_moving_file' => 'Eroare la mutarea fisierului :file',
|
||||
'error_moving_directory' => 'Eroare la mutarea directorului :dir',
|
||||
'error_deleting_directory' => 'Eroare la stergerea directorului original :dir',
|
||||
'path' => 'Cale'
|
||||
],
|
||||
'component' => [
|
||||
'menu_label' => "Componente",
|
||||
'unnamed' => "Fara nume",
|
||||
'no_description' => "Nicio descriere furnizata",
|
||||
'alias' => "Alias",
|
||||
'alias_description' => "Numele unic dat acestei componente atunci cand este folosita intr-o pagina sau intr-o macheta.",
|
||||
'validation_message' => "Aliasul componentei este necesar si poate sa contina doar caractere latine, cifre si caractere underscore. Denumirile are trebui sa inceapa cu un caracter latin.",
|
||||
'invalid_request' => "Sablonul nu a putut fi salvat din cauza datelor invalide ale componentei.",
|
||||
'no_records' => 'Nicio componenta nu a fost gasita',
|
||||
'not_found' => "Componenta ':name' nu a fost gasita.",
|
||||
'method_not_found' => "Componenta ':name' nu contine nicio metoda ':method'.",
|
||||
],
|
||||
'template' => [
|
||||
'invalid_type' => "Tip de sablon necunoscut.",
|
||||
'not_found' => "Sablonul solicitat nu a fost gasit.",
|
||||
'saved'=> "Sablonul a fost salvat cu succes."
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_content' => 'Gestioneaza continut',
|
||||
'manage_assets' => 'Gestioneaza fisiere design',
|
||||
'manage_pages' => 'Gestioneaza pagini',
|
||||
'manage_layouts' => 'Gestioneaza machete',
|
||||
'manage_partials' => 'Gestioneaza componente partiale',
|
||||
'manage_themes' => 'Gestioneaza teme'
|
||||
]
|
||||
];
|
||||
|
|
@ -40,7 +40,7 @@ return [
|
|||
'menu_label' => 'Страницы',
|
||||
'no_list_records' => 'Страницы не найдены',
|
||||
'new' => 'Новая страница',
|
||||
'invalid_url' => 'Неверный формат адреса. Адрес страницы должен начинаться со знака / и может содержать цифры, латинские буквы, и следующие знаки: _-[]:?|/+*',
|
||||
'invalid_url' => 'Неверный формат адреса. Адрес страницы должен начинаться со знака / и может содержать цифры, латинские буквы, и следующие знаки: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Вы действительно хотите удалить выделенные страницы?',
|
||||
'delete_confirm_single' => 'Вы действительно хотите удалить эту страницу?',
|
||||
'no_layout' => '-- без шаблона --'
|
||||
|
|
@ -100,7 +100,9 @@ return [
|
|||
'code' => 'Код',
|
||||
'content' => 'Содержание',
|
||||
'hidden' => 'Скрытая страница',
|
||||
'hidden_comment' => 'Скрытые страницы доступны только для вошедших в систему пользователей.'
|
||||
'hidden_comment' => 'Скрытые страницы доступны только для вошедших в систему пользователей.',
|
||||
'enter_fullscreen' => 'Войти в полноэкранный режим',
|
||||
'exit_fullscreen' => 'Выйти из полноэкранного режима'
|
||||
],
|
||||
'asset' => [
|
||||
'menu_label' => "Ресурсы",
|
||||
|
|
@ -109,9 +111,12 @@ return [
|
|||
'upload_files' => 'Загрузить файл(ы)',
|
||||
'create_file' => 'Создать файл',
|
||||
'create_directory' => 'Создать директорию',
|
||||
'directory_popup_title' => 'Новая директория',
|
||||
'directory_name' => 'Имя директории',
|
||||
'rename' => 'Переименовать',
|
||||
'delete' => 'Удалить',
|
||||
'move' => 'Переместить',
|
||||
'select' => 'Выбрать',
|
||||
'new' => 'Новый файл',
|
||||
'rename_popup_title' => 'Переименовать',
|
||||
'rename_new_name' => 'Новое имя',
|
||||
|
|
@ -156,5 +161,13 @@ return [
|
|||
'invalid_type' => "Неизвестный тип шаблона.",
|
||||
'not_found' => "Запрошенный шаблон не найден.",
|
||||
'saved'=> "Шаблон был успешно сохранен."
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_content' => 'Управление контентом',
|
||||
'manage_assets' => 'Управление файлами',
|
||||
'manage_pages' => 'Управление страницами',
|
||||
'manage_layouts' => 'Управление шаблонами',
|
||||
'manage_partials' => 'Управление фрагментами',
|
||||
'manage_themes' => 'Управление темами'
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ return [
|
|||
'menu_label' => 'Sidor',
|
||||
'no_list_records' => 'Inga sidor funna',
|
||||
'new' => 'Ny sida',
|
||||
'invalid_url' => 'Felaktigt URL-format. URLen skall starta med ett / och kan innehålla siffror, bokstäver och följande tecken: _-[]:?|/+*',
|
||||
'invalid_url' => 'Felaktigt URL-format. URLen skall starta med ett / och kan innehålla siffror, bokstäver och följande tecken: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Vill du verkligen radera markerade sidor?',
|
||||
'delete_confirm_single' => 'Vill du verkligen radera denna sida?',
|
||||
'no_layout' => '-- ingen layout --'
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ return [
|
|||
'menu_label' => 'Sayfalar',
|
||||
'no_list_records' => 'Hiç sayfa yok.',
|
||||
'new' => 'Sayfa oluştur',
|
||||
'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: _-[]:?|/+*',
|
||||
'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: ._-[]:?|/+*',
|
||||
'delete_confirm_multiple' => 'Seçili sayfaları silmek istediğinize emin misiniz?',
|
||||
'delete_confirm_single' => 'Bu sayfayı silmek istediğinize emin misiniz?',
|
||||
'no_layout' => '-- şablon yok --'
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class MailTemplates extends Controller
|
|||
/* @todo Remove line if year >= 2015 */ if (!\System\Models\MailLayout::whereCode('default')->count()) { \Eloquent::unguard(); with(new \System\Database\Seeds\SeedSetupMailLayouts)->run(); }
|
||||
|
||||
MailTemplate::syncAll();
|
||||
$this->getClassExtension('Backend.Behaviors.ListController')->index();
|
||||
$this->asExtension('ListController')->index();
|
||||
$this->bodyClass = 'compact-container';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class RequestLogs extends Controller
|
|||
public function onEmptyLog()
|
||||
{
|
||||
RequestLog::truncate();
|
||||
Flash::success(Lang::get('system::lang.event_log.empty_success'));
|
||||
Flash::success(Lang::get('system::lang.request_log.empty_success'));
|
||||
return $this->listRefresh();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class Updates extends Controller
|
|||
$this->vars['project_id'] = Parameters::get('system::project.id');
|
||||
$this->vars['project_name'] = Parameters::get('system::project.name');
|
||||
$this->vars['project_owner'] = Parameters::get('system::project.owner');
|
||||
return $this->getClassExtension('Backend.Behaviors.ListController')->index();
|
||||
return $this->asExtension('ListController')->index();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -69,7 +69,7 @@ class Updates extends Controller
|
|||
{
|
||||
$this->pageTitle = Lang::get('system::lang.plugins.manage');
|
||||
PluginManager::instance()->clearDisabledCache();
|
||||
return $this->getClassExtension('Backend.Behaviors.ListController')->index();
|
||||
return $this->asExtension('ListController')->index();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ recordUrl: system/requestlogs/preview/:id
|
|||
noRecordsMessage: backend::lang.list.no_records
|
||||
recordsPerPage: 30
|
||||
showSetup: true
|
||||
defaultSort:
|
||||
column: count
|
||||
direction: desc
|
||||
|
||||
toolbar:
|
||||
buttons: list_toolbar
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ return [
|
|||
'ru' => 'Russian',
|
||||
'fr' => 'French',
|
||||
'it' => 'Italian',
|
||||
'ro' => 'Romana',
|
||||
],
|
||||
'directory' => [
|
||||
'create_fail' => "Cannot create directory: :name",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,20 @@
|
|||
return [
|
||||
'app' => [
|
||||
'name' => 'October CMS',
|
||||
'motto' => 'Getting back to basics',
|
||||
'motto' => 'Terug naar de basis',
|
||||
],
|
||||
'locale' => [
|
||||
'en' => 'Engels',
|
||||
'nl' => 'Nederlands',
|
||||
'ja' => 'Japans',
|
||||
'se' => 'Zweeds',
|
||||
'tr' => 'Turks',
|
||||
'br' => 'Braziliaans Portugees',
|
||||
'de' => 'Duits',
|
||||
'ru' => 'Russisch',
|
||||
'fr' => 'Frans',
|
||||
'it' => 'Italiaans',
|
||||
'ro' => 'Roemeens',
|
||||
],
|
||||
'directory' => [
|
||||
'create_fail' => "Map aanmaken mislukt: :name",
|
||||
|
|
@ -14,26 +27,58 @@ return [
|
|||
'system' => [
|
||||
'name' => 'Systeem',
|
||||
'menu_label' => 'Systeem',
|
||||
'categories' => [
|
||||
'cms' => 'CMS',
|
||||
'misc' => 'Misc',
|
||||
'logs' => 'Logboeken',
|
||||
'mail' => 'E-mail',
|
||||
'shop' => 'Winkel',
|
||||
'team' => 'Team',
|
||||
'users' => 'Gebruikers',
|
||||
'system' => 'Systeem',
|
||||
'social' => 'Sociaal',
|
||||
'events' => 'Events',
|
||||
'customers' => 'Klanten',
|
||||
'my_settings' => 'Mijn instellingen',
|
||||
],
|
||||
],
|
||||
'plugin' => [
|
||||
'unnamed' => 'Naamloze plugin',
|
||||
'name' => [
|
||||
'label' => 'Plugin Naam',
|
||||
'help' => 'Gebruik bij het invoeren van de naam de unieke code van de plugin. Voorbeeld: RainLab.Blog',
|
||||
'label' => 'Plugin naam',
|
||||
'help' => 'Gebruik bij het invoeren van de naam de unieke code van de plugin. Bijvoorbeeld: RainLab.Blog',
|
||||
],
|
||||
],
|
||||
'plugins' => [
|
||||
'manage' => 'Beheer plugins',
|
||||
'enable_or_disable' => 'In- of uitschakelen',
|
||||
'enable_or_disable_title' => 'Schakel plugins in of uit',
|
||||
'remove' => 'Verwijder',
|
||||
'refresh' => 'Ververs',
|
||||
'disabled_label' => 'Uitschakelen',
|
||||
'disabled_help' => 'Plugins welke uitschakelt zijn worden genegeerd door de applicatie.',
|
||||
'selected_amount' => 'Geselecteerde plugins: :amount',
|
||||
'remove_confirm' => 'Weet je het zeker?',
|
||||
'remove_success' => "Gekozen plugins succesvol verwijderd uit het systeem.",
|
||||
'refresh_confirm' => 'Weet je het zeker?',
|
||||
'refresh_success' => "Gekozen plugins succesvol ververst in het systeem.",
|
||||
'disable_confirm' => 'Weet je het zeker?',
|
||||
'disable_success' => "Gekozen plugins succesvol uitgeschakeld.",
|
||||
'enable_success' => "Gekozen plugins succesvol ingeschakeld.",
|
||||
'unknown_plugin' => "Plugin is verwijderd van het bestandssysteem.",
|
||||
],
|
||||
'project' => [
|
||||
'name' => 'Project',
|
||||
'owner_label' => 'Eigenaar',
|
||||
'attach' => 'Project Koppelen',
|
||||
'detach' => 'Project Ontkoppelen',
|
||||
'attach' => 'Project koppelen',
|
||||
'detach' => 'Project ontkoppelen',
|
||||
'none' => 'Geen',
|
||||
'id' => [
|
||||
'label' => 'Project ID',
|
||||
'help' => 'Hoe vind je jouw Project ID',
|
||||
'help' => 'Hoe achterhaal je jouw Project ID',
|
||||
'missing' => 'Voer een Project ID in.',
|
||||
],
|
||||
'detach_confirm' => 'Are you sure you want to detach this project?',
|
||||
'detach_confirm' => 'Weet je zeker dat je dit project wilt ontkoppelen?',
|
||||
'unbind_success' => 'Project is succesvol ontkoppeld.',
|
||||
],
|
||||
'settings' => [
|
||||
|
|
@ -41,37 +86,63 @@ return [
|
|||
'missing_model' => 'De instellingenpagina mist de definitie van een Model.',
|
||||
'update_success' => 'Instellingen voor :name zijn succesvol bijgewerkt.',
|
||||
'return' => 'Terug naar systeeminstellingen',
|
||||
'search' => 'Zoeken',
|
||||
],
|
||||
'email' => [
|
||||
'menu_label' => 'E-mailinstellingen',
|
||||
'menu_description' => 'Beheer e-mailinstellingen.',
|
||||
'general' => 'Algemeen',
|
||||
'method' => 'Email Methode',
|
||||
'sender_name' => 'Naam Afzender',
|
||||
'sender_email' => 'E-mailadres Afzender',
|
||||
'method' => 'E-mail methode',
|
||||
'sender_name' => 'Naam afzender',
|
||||
'sender_email' => 'E-mailadres afzender',
|
||||
'smtp' => 'SMTP',
|
||||
'smtp_address' => 'SMTP Adres',
|
||||
'smtp_address' => 'SMTP adres',
|
||||
'smtp_authorization' => 'SMTP authenticatie vereist',
|
||||
'smtp_authorization_comment' => 'Vink deze optie aan indien de SMTP server authenticatie vereist.',
|
||||
'smtp_username' => 'Gebruikersnaam',
|
||||
'smtp_password' => 'Wachtwoord',
|
||||
'smtp_port' => 'SMTP Poort',
|
||||
'smtp_port' => 'SMTP poort',
|
||||
'smtp_ssl' => 'SSL verbinding vereist',
|
||||
'sendmail' => 'Sendmail',
|
||||
'sendmail_path' => 'Pad naar Sendmail',
|
||||
'sendmail_path_comment' => 'Geef hier het volledige pad op naar de Sendmail-applicatie.',
|
||||
],
|
||||
'mail_templates' => [
|
||||
'menu_label' => 'E-mail templates',
|
||||
'menu_description' => 'Modify the mail templates that are sent to users and administrators, manage email layouts.',
|
||||
'new_template' => 'Nieuwe template',
|
||||
'new_layout' => 'Nieuwe layout',
|
||||
'template' => 'Template',
|
||||
'templates' => 'Templates',
|
||||
'menu_layouts_label' => 'E-mail layouts',
|
||||
'layout' => 'Layout',
|
||||
'layouts' => 'Layouts',
|
||||
'name' => 'Naam',
|
||||
'name_comment' => 'Unieke naam welke gebruikt wordt om naar deze template te refereren',
|
||||
'code' => 'Code',
|
||||
'code_comment' => 'Unieke code welke gebruikt wordt om naar deze template te refereren',
|
||||
'subject' => 'Onderwerp',
|
||||
'subject_comment' => 'E-mail onderwerp',
|
||||
'description' => 'Omschrijving',
|
||||
'content_html' => 'HTML',
|
||||
'content_css' => 'CSS',
|
||||
'content_text' => 'Platte tekst',
|
||||
'test_send' => 'Stuur testbericht',
|
||||
'test_success' => 'Het testbericht is succesvol verzonden.',
|
||||
'return' => 'Terug naar templatelijst'
|
||||
],
|
||||
'install' => [
|
||||
'project_label' => 'Koppel aan Project',
|
||||
'plugin_label' => 'Installeer Plugin',
|
||||
'project_label' => 'Koppel aan project',
|
||||
'plugin_label' => 'Installeer plugin',
|
||||
'missing_plugin_name' => 'Voer een naam van een plugin in om deze te installeren.',
|
||||
'install_completing' => 'Afronden installatieproces',
|
||||
'install_completing' => 'Bezig met het afronden van het installatieproces',
|
||||
'install_success' => 'De plugin is succesvol geïnstalleerd.',
|
||||
],
|
||||
'updates' => [
|
||||
'title' => 'Beheer Updates',
|
||||
'title' => 'Beheer updates',
|
||||
'name' => 'Applicatie-update',
|
||||
'menu_label' => 'Updates',
|
||||
'menu_description' => 'Update het systeem, beheer en installeer plugins en thema\'s.',
|
||||
'check_label' => 'Controleer op updates',
|
||||
'retry_label' => 'Probeer nogmaals',
|
||||
'plugin_name' => 'Naam',
|
||||
|
|
@ -82,13 +153,17 @@ return [
|
|||
'core_build_old' => 'Huidige build :build',
|
||||
'core_build_new' => 'Build :build',
|
||||
'core_build_new_help' => 'De meest recente versie is beschikbaar.',
|
||||
'core_downloading' => 'Applicatiebestanden downloaden',
|
||||
'core_extracting' => 'Applicatiebestanden uitpakken',
|
||||
'plugin_downloading' => 'Plugin downloaden: :name',
|
||||
'plugin_extracting' => 'Uitpakken plugin: :name',
|
||||
'core_downloading' => 'Applicatiebestanden aan het downloaden',
|
||||
'core_extracting' => 'Applicatiebestanden aan het uitpakken',
|
||||
'plugin_downloading' => 'Plugin aan het downloaden: :name',
|
||||
'plugin_extracting' => 'Uitpakken aan het plugin: :name',
|
||||
'plugin_version_none' => 'Nieuwe plugin',
|
||||
'plugin_version_old' => 'Huidig v:version',
|
||||
'plugin_version_new' => 'v:version',
|
||||
'theme_label' => 'Thema',
|
||||
'theme_new_install' => 'Nieuwe thema-installatie.',
|
||||
'theme_downloading' => 'Thema aan het downloaden: :name',
|
||||
'theme_extracting' => 'Thema aan het uitpakken: :name',
|
||||
'update_label' => 'Applicatie bijwerken',
|
||||
'update_completing' => 'Afronden updateproces',
|
||||
'update_loading' => 'Beschikbare updates laden...',
|
||||
|
|
@ -113,13 +188,49 @@ return [
|
|||
'file_corrupt' => 'Door server aangeboden bestand is corrupt.',
|
||||
],
|
||||
'behavior' => [
|
||||
'missing_property' => 'Klasse :class moet variabele $:property bevatten gebruikt door het gedag (behavior) :behavior.',
|
||||
'missing_property' => 'Klasse :class moet variabele $:property bevatten welke gebruikt wordt door het gedrag (behavior) :behavior.',
|
||||
],
|
||||
'config' => [
|
||||
'not_found' => 'Kan het configuratiebestand :file gedefinieerd door :file niet vinden.',
|
||||
'not_found' => 'Kan het configuratiebestand :file gedefinieerd voor :location niet vinden.',
|
||||
'required' => 'Configuratie gebruikt in :location moet de waarde :property toewijzen.',
|
||||
],
|
||||
'zip' => [
|
||||
'extract_failed' => "Kan het corebestand ':file' niet uitpakken.",
|
||||
],
|
||||
'event_log' => [
|
||||
'hint' => 'Dit logboek toont een lijst met potentiële fouten zoals exceptions of debuginformatie, welke voorkomen in de applicatie.',
|
||||
'menu_label' => 'Gebeurtenissenlogboek',
|
||||
'menu_description' => 'Bekijk systeemberichten met de geregistreerde tijd en detail.',
|
||||
'empty_link' => 'Gebeurtenissenlogboek legen',
|
||||
'empty_loading' => 'Bezig met het gebeurtenissenlogboek legen...',
|
||||
'empty_success' => 'Het gebeurtenissenlogboek legen is gelukt.',
|
||||
'return_link' => 'Terug naar gebeurtenissenlogboek',
|
||||
'id' => 'ID',
|
||||
'id_label' => 'Gebeurtenis ID',
|
||||
'created_at' => 'Datum & tijd',
|
||||
'message' => 'Bericht',
|
||||
'level' => 'Level',
|
||||
],
|
||||
'request_log' => [
|
||||
'hint' => 'Dit logboek toont een lijst met pagina aanvragen welke mogelijk aandacht vereisen. Bijvoorbeeld: Een bezoeker opent een CMS pagina welke niet gevonden kan worden, een aantekening wordt gemaakt met statuscode 404.',
|
||||
'menu_label' => 'Aanvragenlogboek',
|
||||
'menu_description' => 'Bekijk foutieve of doorverwezen aanvragen zoals \'Pagina niet gevonden (404)\'.',
|
||||
'empty_link' => 'Aanvragenlogboek legen',
|
||||
'empty_loading' => 'Bezig met het aanvragenlogboek legen...',
|
||||
'empty_success' => 'Het aanvragenlogboek legen is gelukt.',
|
||||
'return_link' => 'Terug naar het aanvragenlogboek',
|
||||
'id' => 'ID',
|
||||
'id_label' => 'Log ID',
|
||||
'count' => 'Aantal',
|
||||
'referer' => 'Verwijzingen',
|
||||
'url' => 'URL',
|
||||
'status_code' => 'Status',
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_system_settings' => 'Beheer systeeminstellingen',
|
||||
'manage_software_updates' => 'Beheer applicatie updates',
|
||||
'manage_mail_templates' => 'Beheer e-mailtemplates',
|
||||
'manage_other_administrators' => 'Beheer mede-beheerders',
|
||||
'view_the_dashboard' => 'Bekijk het dashboard'
|
||||
]
|
||||
];
|
||||
|
|
@ -41,8 +41,8 @@ return array(
|
|||
"ip" => "Het IP-adres van :attribute is ongeldig.",
|
||||
"max" => array(
|
||||
"numeric" => "De waarde van :attribute mag niet hoger zijn dan :max.",
|
||||
"file" => "De bestandsgrootte van :attribute mag niet hoger zijn dan :max kilobytes.",
|
||||
"string" => "Het aantal tekens van :attribute mag niet hoger zijn dan :max tekens.",
|
||||
"file" => "De bestandsgrootte van :attribute mag niet groter zijn dan :max kilobytes.",
|
||||
"string" => "Het aantal tekens van :attribute mag niet groter zijn dan :max tekens.",
|
||||
"array" => "Het veld :attribute mag niet meer dan :max objecten bevatten.",
|
||||
),
|
||||
"mimes" => "Het bestand van :attribute mag enkel zijn van het type: :values.",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,232 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'app' => [
|
||||
'name' => 'October CMS',
|
||||
'motto' => 'Intoarcerea la elementele de baza',
|
||||
],
|
||||
'locale' => [
|
||||
'en' => 'Engleza',
|
||||
'nl' => 'Olandeza',
|
||||
'ja' => 'Japoneza',
|
||||
'sv' => 'Suedeza',
|
||||
'tr' => 'Turca',
|
||||
'br' => 'Portugheza (Brazilia)',
|
||||
'de' => 'Germana',
|
||||
'ru' => 'Rusa',
|
||||
'fr' => 'Franceza',
|
||||
'ro' => 'Romana'
|
||||
],
|
||||
'directory' => [
|
||||
'create_fail' => "Nu se poate crea directorul: :name",
|
||||
],
|
||||
'file' => [
|
||||
'create_fail' => "Nu se poate crea fisierul: :name",
|
||||
],
|
||||
'system' => [
|
||||
'name' => 'Sistem',
|
||||
'menu_label' => 'Sistem',
|
||||
'categories' => [
|
||||
'cms' => 'CMS',
|
||||
'misc' => 'Altele',
|
||||
'logs' => 'Jurnal',
|
||||
'mail' => 'Mail',
|
||||
'shop' => 'Magazin',
|
||||
'team' => 'Echipa',
|
||||
'users' => 'Utilizatori',
|
||||
'system' => 'Sistem',
|
||||
'social' => 'Social',
|
||||
'events' => 'Evenimente',
|
||||
'customers' => 'Clienti',
|
||||
'my_settings' => 'Setarile mele',
|
||||
],
|
||||
],
|
||||
'plugin' => [
|
||||
'unnamed' => 'Plugin fara nume',
|
||||
'name' => [
|
||||
'label' => 'Nume Plugin',
|
||||
'help' => 'Denumiti plugin-ul dupa codul sau unic. De exemplu, RainLab.Blog',
|
||||
],
|
||||
],
|
||||
'plugins' => [
|
||||
'manage' => 'Gestionare plugin-uri',
|
||||
'enable_or_disable' => 'Activare sau dezactivare',
|
||||
'enable_or_disable_title' => 'Activare sau dezactivare plugin-uri',
|
||||
'remove' => 'Inlaturare',
|
||||
'refresh' => 'Reimprospatare',
|
||||
'disabled_label' => 'Dezactivat',
|
||||
'disabled_help' => 'Plugin-urile care sunt dezactivate sunt ignorate de catre aplicatie.',
|
||||
'selected_amount' => 'Plugin-uri selectate: :amount',
|
||||
'remove_success' => "Plugin-urile respective au fost inlaturate cu succes din sistem.",
|
||||
'refresh_success' => "Plugin-urile respective au fost actualizate cu succes.",
|
||||
'disable_success' => "Plugin-urile respective au fost dezactivate cu succes.",
|
||||
'enable_success' => "Plugin-urile respective au fost activate cu succes.",
|
||||
'unknown_plugin' => "Plugin-ul a fost inlaturat din sistemul de fisiere.",
|
||||
],
|
||||
'project' => [
|
||||
'name' => 'Proiect',
|
||||
'owner_label' => 'Proprietar',
|
||||
'attach' => 'Atasare Proiect',
|
||||
'detach' => 'Detasare Proiect',
|
||||
'none' => 'Niciunul',
|
||||
'id' => [
|
||||
'label' => 'ID Proiect',
|
||||
'help' => 'Cum sa gasiti ID-ul Proiectului',
|
||||
'missing' => 'Va rugam sa specificati un ID de Proiect.',
|
||||
],
|
||||
'detach_confirm' => 'Sunteti sigur(a) ca doriti sa detasati acest proiect?',
|
||||
'unbind_success' => 'Proiectul a fost detasat cu succes.',
|
||||
],
|
||||
'settings' => [
|
||||
'menu_label' => 'Setari',
|
||||
'missing_model' => 'Paginii de setari ii lipseste o definitie de Model.',
|
||||
'update_success' => 'Setarile pentru :name au fost actualizate cu succes.',
|
||||
'return' => 'Intoarcere la setarile sistemului.',
|
||||
'search' => 'Cautare'
|
||||
],
|
||||
'mail' => [
|
||||
'menu_label' => 'Configuratie Email',
|
||||
'menu_description' => 'Administrare configuratie email.',
|
||||
'general' => 'General',
|
||||
'method' => 'Metoda trimitere email',
|
||||
'sender_name' => 'Nume expeditor',
|
||||
'sender_email' => 'Email expeditor',
|
||||
'smtp' => 'SMTP',
|
||||
'smtp_address' => 'Adresa SMTP',
|
||||
'smtp_authorization' => 'Autorizatie SMTP necesara',
|
||||
'smtp_authorization_comment' => 'Utilizati aceasta bifa daca serverul SMTP necesita autorizatie.',
|
||||
'smtp_username' => 'Utilizator',
|
||||
'smtp_password' => 'Parola',
|
||||
'smtp_port' => 'Port SMTP',
|
||||
'smtp_ssl' => 'Conexiune SSL necesara',
|
||||
'sendmail' => 'Sendmail',
|
||||
'sendmail_path' => 'Cale catre Sendmail',
|
||||
'sendmail_path_comment' => 'Va rugam sa specificati calea catre programul sendmail.',
|
||||
],
|
||||
'mail_templates' => [
|
||||
'menu_label' => 'Sabloane email',
|
||||
'menu_description' => 'Modificati sabloanele de email care sunt trimise catre utilizatori si administratori, administrati aspectul email-urilor.',
|
||||
'new_template' => 'Sablon nou',
|
||||
'new_layout' => 'Macheta noua',
|
||||
'template' => 'Sablon',
|
||||
'templates' => 'Sabloane',
|
||||
'menu_layouts_label' => 'Machete email',
|
||||
'layout' => 'Macheta',
|
||||
'layouts' => 'Machete',
|
||||
'name' => 'Nume',
|
||||
'name_comment' => 'Nume unic folosit ca referinta la acest sablon',
|
||||
'code' => 'Cod',
|
||||
'code_comment' => 'Cod unic folosit ca referinta la acest sablon',
|
||||
'subject' => 'Subiect',
|
||||
'subject_comment' => 'Subiect mesaj Email',
|
||||
'description' => 'Descriere',
|
||||
'content_html' => 'HTML',
|
||||
'content_css' => 'CSS',
|
||||
'content_text' => 'Text simplu',
|
||||
'test_send' => 'Trimitere mesaj de test',
|
||||
'test_success' => 'Mesajul de test a fost trimis cu succes.',
|
||||
'return' => 'Intoarcere la lista de sabloane'
|
||||
],
|
||||
'install' => [
|
||||
'project_label' => 'Atasare la Proiect',
|
||||
'plugin_label' => 'Instalare Plugin',
|
||||
'missing_plugin_name' => 'Va rugam sa specificati un nume de Plugin pentru instalare.',
|
||||
'install_completing' => 'Se finalizeaza procesul de instalare',
|
||||
'install_success' => 'Acest plugin a fost instalat cu succes.',
|
||||
],
|
||||
'updates' => [
|
||||
'title' => 'Gestioneaza Actualizari',
|
||||
'name' => 'Actualizare Software',
|
||||
'menu_label' => 'Actualizari',
|
||||
'menu_description' => 'Actualizati sistemul, gestionati si instalati plugin-uri si teme.',
|
||||
'check_label' => 'Cauta actualizari disponibile',
|
||||
'retry_label' => 'Incercati din nou',
|
||||
'plugin_name' => 'Nume',
|
||||
'plugin_description' => 'Descriere',
|
||||
'plugin_version' => 'Versiune',
|
||||
'plugin_author' => 'Autor',
|
||||
'core_build' => 'Versiune curenta',
|
||||
'core_build_old' => 'Versiune curenta :build',
|
||||
'core_build_new' => 'Versiune :build',
|
||||
'core_build_new_help' => 'Ultima versiune este disponibila.',
|
||||
'core_downloading' => 'Se descarca fisierele aplicatiei',
|
||||
'core_extracting' => 'Se dezarhiveaza fisierele aplicatiei',
|
||||
'plugin_downloading' => 'Se descarca plugin-ul: :name',
|
||||
'plugin_extracting' => 'Se dezarhiveaza plugin-ul: :name',
|
||||
'plugin_version_none' => 'Plugin nou',
|
||||
'plugin_version_old' => 'Versiune v:version',
|
||||
'plugin_version_new' => 'v:version',
|
||||
'theme_label' => 'Tema',
|
||||
'theme_new_install' => 'Instalare tema noua.',
|
||||
'theme_downloading' => 'Se descarca tema: :name',
|
||||
'theme_extracting' => 'Se dezarhiveaza tema: :name',
|
||||
'update_label' => 'Actualizare software',
|
||||
'update_completing' => 'Se finalizeaza procesul de actualizare',
|
||||
'update_loading' => 'Se incarca actualizarile disponibile...',
|
||||
'update_success' => 'Procesul de actualizare a fost finalizat cu succes.',
|
||||
'update_failed_label' => 'Actualizarea a esuat',
|
||||
'force_label' => 'Forteaza actualizarea',
|
||||
'found' => [
|
||||
'label' => 'Au fost gasite noi actualizari!',
|
||||
'help' => 'Apasati pe "Actualizare software" pentru a incepe procesul de actualizare.',
|
||||
],
|
||||
'none' => [
|
||||
'label' => 'Nu exista actualizari',
|
||||
'help' => 'Nu au fost gasite actualizari disponibile.',
|
||||
],
|
||||
],
|
||||
'server' => [
|
||||
'connect_error' => 'Eroare la conectarea la server.',
|
||||
'response_not_found' => 'Serverul de actualizari nu a putut fi contactat.',
|
||||
'response_invalid' => 'Raspuns invalid de la server.',
|
||||
'response_empty' => 'Raspuns gol de la server.',
|
||||
'file_error' => 'Serverul a esuat sa livreze pachetul software.',
|
||||
'file_corrupt' => 'Fisierul de pe server este corupt.',
|
||||
],
|
||||
'behavior' => [
|
||||
'missing_property' => 'Clasa :class trebuie sa defineasca proprietatea $:property folosita pentru caracteristica :behavior.',
|
||||
],
|
||||
'config' => [
|
||||
'not_found' => 'Nu a fost gasit fisierul de configurare :file definit pentru :location.',
|
||||
'required' => "Configuratia folosita in :location trebuie sa furnizeze o valoare ':property'.",
|
||||
],
|
||||
'zip' => [
|
||||
'extract_failed' => "Nu s-a putut extrage fisierul de baza ':file'.",
|
||||
],
|
||||
'event_log' => [
|
||||
'hint' => 'Acest jurnal afiseaza o lista de erori potentiale in aplicatie, cum ar fi exceptii sau informatie pentru depanare.',
|
||||
'menu_label' => 'Jurnal evenimente',
|
||||
'menu_description' => 'Vizualizati mesajele jurnalului de sistem cu inregistrarile de timp si detaliile aferente.',
|
||||
'empty_link' => 'Golire jurnal de evenimente',
|
||||
'empty_loading' => 'Se goleste jurnalul de evenimente...',
|
||||
'empty_success' => 'Jurnalul de evenimente a fost golit cu succes.',
|
||||
'return_link' => 'Intoarcere la jurnalul de evenimente',
|
||||
'id' => 'ID',
|
||||
'id_label' => 'ID eveniment',
|
||||
'created_at' => 'Data & Ora',
|
||||
'message' => 'Mesaj',
|
||||
'level' => 'Nivel',
|
||||
],
|
||||
'request_log' => [
|
||||
'hint' => 'Acest jurnal afiseaza o lista de cereri efectuate de browser care pot sa necesite atentie. De exemplu, daca un vizitator deschide o pagina in CMS care nu poate fi gasita, o inregistrare va fi creata cu un cod de status 404.',
|
||||
'menu_label' => 'Jurnal cereri',
|
||||
'menu_description' => 'Vizualizare cereri esuate sau redirectate, precum Pagini care nu au fost gasite (404).',
|
||||
'empty_link' => 'Golire jurnal de cereri',
|
||||
'empty_loading' => 'Se goleste jurnalul de cereri...',
|
||||
'empty_success' => 'Jurnalul cu cereri a fost golit cu succes.',
|
||||
'return_link' => 'Intoarcere la jurnal de cereri',
|
||||
'id' => 'ID',
|
||||
'id_label' => 'ID Jurnal',
|
||||
'count' => 'Contor',
|
||||
'referer' => 'Refereri',
|
||||
'url' => 'URL',
|
||||
'status_code' => 'Status',
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_system_settings' => 'Gestioneaza setarile sistemului',
|
||||
'manage_software_updates' => 'Gestioneaza actualizarile software',
|
||||
'manage_mail_templates' => 'Gestioneaza sabloanele de email',
|
||||
'manage_other_administrators' => 'Gestioneaza alti administratori',
|
||||
'view_the_dashboard' => 'Vizualizare panou de control'
|
||||
]
|
||||
];
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| such as the size rules. Feel free to tweak each of these messages.
|
||||
|
|
||||
*/
|
||||
|
||||
"accepted" => "Atributul :attribute trebuie sa fie acceptat.",
|
||||
"active_url" => "Atributul :attribute nu este un URL valid.",
|
||||
"after" => "Atributul :attribute trebuie sa fie o data dupa data de :date.",
|
||||
"alpha" => "Atributul :attribute poate sa contina doar litere.",
|
||||
"alpha_dash" => "Atributul :attribute poate sa contina doar litere, numere, si liniute.",
|
||||
"alpha_num" => "Atributul :attribute poate sa contina doar litere si numere.",
|
||||
"array" => "Atributul :attribute trebuie sa fie de tip array.",
|
||||
"before" => "Atributul :attribute trebuie sa fie o data inainte de data de :date.",
|
||||
"between" => array(
|
||||
"numeric" => "Atributul :attribute trebuie sa fie intre :min - :max.",
|
||||
"file" => "Atributul :attribute trebuie sa fie intre :min - :max kilobytes.",
|
||||
"string" => "Atributul :attribute trebuie sa fie intre :min - :max caractere.",
|
||||
"array" => "Atributul :attribute trebuie sa aiba intre :min - :max elemente.",
|
||||
),
|
||||
"confirmed" => "Atributul :attribute de confirmare nu se potriveste.",
|
||||
"date" => "Atributul :attribute nu este o data valida.",
|
||||
"date_format" => "Atributul :attribute nu se potriveste cu formatul :format.",
|
||||
"different" => "Atributele :attribute si :other trebuie sa fie diferite.",
|
||||
"digits" => "Atributul :attribute trebuie sa aiba :digits cifre.",
|
||||
"digits_between" => "Atributul :attribute trebuie sa fie intre :min si :max cifre.",
|
||||
"email" => "Formatul atributului :attribute este invalid.",
|
||||
"exists" => "Atributul selectat :attribute este invalid.",
|
||||
"image" => "Atributul :attribute trebuie sa fie o imagine.",
|
||||
"in" => "Atributul selectat :attribute este invalid.",
|
||||
"integer" => "Atributul :attribute trebuie sa fie un numar.",
|
||||
"ip" => "Atributul :attribute trebuie sa fie o adresa IP valida.",
|
||||
"max" => array(
|
||||
"numeric" => "Atributul :attribute nu poate fi mai mare de :max.",
|
||||
"file" => "Atributul :attribute nu poate fi mai mare de :max kilobytes.",
|
||||
"string" => "Atributul :attribute nu poate fi mai mare de :max caractere.",
|
||||
"array" => "Atributul :attribute nu poate avea mai mult de :max elemente.",
|
||||
),
|
||||
"mimes" => "Atributul :attribute trebuie sa fie un fisier de tipul: :values.",
|
||||
"min" => array(
|
||||
"numeric" => "Atributul :attribute trebuie sa aiba cel putin :min caractere",
|
||||
"file" => "Atributul :attribute trebuie sa aiba cel putin :min kilobytes.",
|
||||
"string" => "Atributul :attribute trebuie sa aiba cel putin :min caractere.",
|
||||
"array" => "Atributul :attribute trebuie sa aiba cel putin :min elemente.",
|
||||
),
|
||||
"not_in" => "Atributul selectat :attribute este invalid.",
|
||||
"numeric" => "Atributul :attribute trebuie sa fie un numar.",
|
||||
"regex" => "Formatul atributului :attribute este invalid.",
|
||||
"required" => "Campul atributului :attribute este necesar.",
|
||||
"required_if" => "Campul atributului :attribute este necesar cand atributul :other are valoarea :value.",
|
||||
"required_with" => "Campul atributului :attribute este necesar cand valorea :values este prezenta.",
|
||||
"required_without" => "Campul atributului :attribute este necesar cand valoarea :values nu este prezenta.",
|
||||
"same" => "Atributele :attribute si :other trebuie sa corespunda.",
|
||||
"size" => array(
|
||||
"numeric" => "Atributul :attribute trebuie sa aiba dimensiunea :size.",
|
||||
"file" => "Atributul :attribute trebuie sa aiba dimensiunea :size kilobytes.",
|
||||
"string" => "Atributul :attribute trebuie sa aiba :size caractere.",
|
||||
"array" => "Atributul :attribute trebuie sa contina :size elemente.",
|
||||
),
|
||||
"unique" => "Atributul :attribute exista deja.",
|
||||
"url" => "Formatul atributului :attribute este invalid.",
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => array(),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => array(),
|
||||
|
||||
);
|
||||
|
|
@ -15,6 +15,8 @@ return [
|
|||
'de' => 'German',
|
||||
'ru' => 'Russian',
|
||||
'fr' => 'French',
|
||||
'it' => 'Italian',
|
||||
'ro' => 'Romana',
|
||||
],
|
||||
'directory' => [
|
||||
'create_fail' => "Невозможно создать директорию: :name",
|
||||
|
|
@ -25,6 +27,20 @@ return [
|
|||
'system' => [
|
||||
'name' => 'Система',
|
||||
'menu_label' => 'Система',
|
||||
'categories' => [
|
||||
'cms' => 'CMS',
|
||||
'misc' => 'Разное',
|
||||
'logs' => 'Логи',
|
||||
'mail' => 'Почта',
|
||||
'shop' => 'Магазин',
|
||||
'team' => 'Команда',
|
||||
'users' => 'Пользователи',
|
||||
'system' => 'Система',
|
||||
'social' => 'Социальное',
|
||||
'events' => 'События',
|
||||
'customers' => 'Клиентское',
|
||||
'my_settings' => 'Мои настройки',
|
||||
],
|
||||
],
|
||||
'plugin' => [
|
||||
'unnamed' => 'Безымянный плагин',
|
||||
|
|
@ -42,8 +58,11 @@ return [
|
|||
'disabled_label' => 'Отключить',
|
||||
'disabled_help' => 'Отключенные плагины будут игнорироваться.',
|
||||
'selected_amount' => 'Выбрано плагинов: :amount',
|
||||
'remove_confirm' => 'Вы уверены?',
|
||||
'remove_success' => "Выбранные плагины успешно удалены.",
|
||||
'refresh_confirm' => 'Вы уверены?',
|
||||
'refresh_success' => "Выбранные плагины успешно обновлены.",
|
||||
'disable_confirm' => 'Вы уверены?',
|
||||
'disable_success' => "Плагин успешно отключен.",
|
||||
'enable_success' => "Плагин успешно включен.",
|
||||
'unknown_plugin' => "Плагин был удален из файловой системы.",
|
||||
|
|
@ -207,4 +226,11 @@ return [
|
|||
'url' => 'Адрес',
|
||||
'status_code' => 'Статус',
|
||||
],
|
||||
'permissions' => [
|
||||
'manage_system_settings' => 'Настройка системных параметров',
|
||||
'manage_software_updates' => 'Управлять обновлениями',
|
||||
'manage_mail_templates' => 'Управление почтовыми шаблонами',
|
||||
'manage_other_administrators' => 'Управление другими администраторами',
|
||||
'view_the_dashboard' => 'Просмотр приборной панели'
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -38,13 +38,21 @@ trait AssetMaker
|
|||
if ($type != null) $type = strtolower($type);
|
||||
$result = null;
|
||||
$reserved = ['build'];
|
||||
$pathCache = [];
|
||||
|
||||
if ($type == null || $type == 'css'){
|
||||
foreach ($this->assets['css'] as $asset) {
|
||||
|
||||
/*
|
||||
* Prevent duplicates
|
||||
*/
|
||||
$path = $this->getAssetEntryBuildPath($asset);
|
||||
if (isset($pathCache[$path])) continue;
|
||||
$pathCache[$path] = true;
|
||||
|
||||
$attributes = HTML::attributes(array_merge([
|
||||
'rel' => 'stylesheet',
|
||||
'href' => $this->getAssetEntryBuildPath($asset)
|
||||
'href' => $path
|
||||
],
|
||||
array_except($asset['attributes'], $reserved)
|
||||
));
|
||||
|
|
@ -56,9 +64,16 @@ trait AssetMaker
|
|||
if ($type == null || $type == 'rss'){
|
||||
foreach ($this->assets['rss'] as $asset) {
|
||||
|
||||
/*
|
||||
* Prevent duplicates
|
||||
*/
|
||||
$path = $this->getAssetEntryBuildPath($asset);
|
||||
if (isset($pathCache[$path])) continue;
|
||||
$pathCache[$path] = true;
|
||||
|
||||
$attributes = HTML::attributes(array_merge([
|
||||
'rel' => 'alternate',
|
||||
'href' => $this->getAssetEntryBuildPath($asset),
|
||||
'href' => $path,
|
||||
'title' => 'RSS',
|
||||
'type' => 'application/rss+xml'
|
||||
],
|
||||
|
|
@ -72,8 +87,15 @@ trait AssetMaker
|
|||
if ($type == null || $type == 'js') {
|
||||
foreach ($this->assets['js'] as $asset) {
|
||||
|
||||
/*
|
||||
* Prevent duplicates
|
||||
*/
|
||||
$path = $this->getAssetEntryBuildPath($asset);
|
||||
if (isset($pathCache[$path])) continue;
|
||||
$pathCache[$path] = true;
|
||||
|
||||
$attributes = HTML::attributes(array_merge([
|
||||
'src' => $this->getAssetEntryBuildPath($asset)
|
||||
'src' => $path
|
||||
],
|
||||
array_except($asset['attributes'], $reserved)
|
||||
));
|
||||
|
|
|
|||
Loading…
Reference in New Issue