Merge branch 'develop' into builder-ui

This commit is contained in:
alekseybobkov 2015-07-07 21:40:33 -07:00
commit aafb6014e1
31 changed files with 21471 additions and 593 deletions

View File

@ -1,7 +1,8 @@
* **Build 27x** (2015-06-xx)
* **Build 275** (2015-07-04)
- List columns now support specifying a `default` option used when the value would otherwise be null.
- Implement a custom autoloader for plugins that use composer. Now only one instance of composer is used, all packages are now added to a global pool to prevent double loading and the load order is respected.
- The method signature of `Model::save()` has been fixed to match Eloquent.
- Added new security config option `cms.enableCsrfProtection`.
* **Build 272** (2015-06-27)
- Protected images and their thumbnails are now supported in the back-end.

View File

@ -250,4 +250,16 @@ return [
'defaultMask' => ['file' => null, 'folder' => null],
/*
|--------------------------------------------------------------------------
| Cross Site Request Forgery (CSRF) Protection
|--------------------------------------------------------------------------
|
| If the CSRF protection is enabled, all "postback" requests are checked
| for a valid security token.
|
*/
'enableCsrfProtection' => false,
];

View File

@ -2663,8 +2663,10 @@ this.escape()
$(document).off('focusin.bs.modal')
this.$element.removeClass('in').attr('aria-hidden',true).off('click.dismiss.bs.modal')
$.support.transition&&this.$element.hasClass('fade')?this.$element.one($.support.transition.end,$.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal()}
Modal.prototype.enforceFocus=function(){$(document).off('focusin.bs.modal').on('focusin.bs.modal',$.proxy(function(e){if(this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.focus()}},this))}
Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on('keyup.dismiss.bs.modal',$.proxy(function(e){e.which==27&&this.hide()},this))}else if(!this.isShown){this.$element.off('keyup.dismiss.bs.modal')}}
Modal.prototype.enforceFocus=function(){$(document).off('focusin.bs.modal').on('focusin.bs.modal',$.proxy(function(e){if($(e.target).hasClass('select2-search__field')){return}
if(this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.focus()}},this))}
Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on('keyup.dismiss.bs.modal',$.proxy(function(e){e.which==27&&this.hide()},this))}
else if(!this.isShown){this.$element.off('keyup.dismiss.bs.modal')}}
Modal.prototype.hideModal=function(){var that=this
this.$element.hide()
this.backdrop(function(){that.removeBackdrop()
@ -2679,8 +2681,10 @@ this.options.backdrop=='static'?this.$element[0].focus.call(this.$element[0]):th
if(doAnimate)this.$backdrop[0].offsetWidth
this.$backdrop.addClass('in')
if(!callback)return
doAnimate?this.$backdrop.one($.support.transition.end,callback).emulateTransitionEnd(150):callback()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass('in')
$.support.transition&&this.$element.hasClass('fade')?this.$backdrop.one($.support.transition.end,callback).emulateTransitionEnd(150):callback()}else if(callback){callback()}}
doAnimate?this.$backdrop.one($.support.transition.end,callback).emulateTransitionEnd(150):callback()}
else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass('in')
$.support.transition&&this.$element.hasClass('fade')?this.$backdrop.one($.support.transition.end,callback).emulateTransitionEnd(150):callback()}
else if(callback){callback()}}
var old=$.fn.modal
$.fn.modal=function(option,_relatedTarget){return this.each(function(){var $this=$(this)
var data=$this.data('bs.modal')
@ -2715,9 +2719,11 @@ self.isOpen=false
self.setBackdrop(false)})
this.$modal.on('hidden.bs.modal',function(){self.triggerEvent('hidden.oc.popup')
self.$container.remove()
self.$el.data('oc.popup',null)})
self.$el.data('oc.popup',null)
$(document.body).removeClass('modal-open')})
this.$modal.on('show.bs.modal',function(){self.isOpen=true
self.setBackdrop(true)})
self.setBackdrop(true)
$(document.body).addClass('modal-open')})
this.$modal.on('shown.bs.modal',function(){self.triggerEvent('shown.oc.popup')})
this.$modal.on('close.oc.popup',function(){self.hide()
return false})

View File

@ -580,9 +580,11 @@ class RelationController extends ControllerBehavior
$widget = $this->makeWidget('Backend\Widgets\Lists', $config);
$widget->bindEvent('list.extendQuery', function ($query) {
$this->controller->relationExtendQuery($query, $this->field);
$this->relationObject->setQuery($query);
if ($sessionKey = $this->relationGetSessionKey()) {
$sessionKey = $this->deferredBinding ? $this->relationGetSessionKey() : null;
if ($sessionKey) {
$this->relationObject->withDeferred($sessionKey);
}
elseif ($this->model->exists) {

View File

@ -6,6 +6,7 @@ use Lang;
use View;
use Flash;
use Event;
use Config;
use Request;
use Backend;
use Session;
@ -34,9 +35,9 @@ use Illuminate\Http\RedirectResponse;
*/
class Controller extends Extendable
{
use \System\Traits\ViewMaker;
use \System\Traits\AssetMaker;
use \System\Traits\ConfigMaker;
use \System\Traits\ViewMaker;
use \Backend\Traits\WidgetMaker;
use \October\Rain\Support\Traits\Emitter;
@ -118,11 +119,6 @@ class Controller extends Extendable
*/
protected $statusCode = 200;
/**
* @var bool Determine if submission requests use CSRF protection.
*/
public $useSecurityToken = true;
/**
* Constructor.
*/
@ -176,7 +172,7 @@ class Controller extends Extendable
/*
* Check security token.
*/
if ($this->useSecurityToken && !$this->verifyCsrfToken()) {
if (!$this->verifyCsrfToken()) {
return Response::make(Lang::get('backend::lang.page.invalid_token.label'), 403);
}
@ -629,11 +625,16 @@ class Controller extends Extendable
/**
* Checks the request data / headers for a valid CSRF token.
* Returns false if a valid token is not found.
* Returns false if a valid token is not found. Override this
* method to disable the check.
* @return bool
*/
protected function verifyCsrfToken()
{
if (!Config::get('cms.enableCsrfProtection')) {
return true;
}
if (in_array(Request::method(), ['HEAD', 'GET', 'OPTIONS'])) {
return true;
}

View File

@ -1,3 +1,8 @@
<div data-control="toolbar">
<a href="<?= Backend::url('backend/usergroups/create') ?>" class="btn btn-primary oc-icon-plus"><?= e(trans('backend::lang.user.group.new')) ?></a>
<a href="<?= Backend::url('backend/users') ?>" class="btn btn-default oc-icon-chevron-left">
<?= e(trans('backend::lang.user.return')) ?>
</a>
<a href="<?= Backend::url('backend/usergroups/create') ?>" class="btn btn-primary oc-icon-plus">
<?= e(trans('backend::lang.user.group.new')) ?>
</a>
</div>

View File

@ -1,6 +1,10 @@
<div data-control="toolbar">
<a href="<?= Backend::url('backend/users/create') ?>" class="btn btn-primary oc-icon-plus"><?= e(trans('backend::lang.user.new')) ?></a>
<a href="<?= Backend::url('backend/usergroups') ?>" class="btn btn-default oc-icon-group"><?= e(trans('backend::lang.user.group.list_title')) ?></a>
<a href="<?= Backend::url('backend/users/create') ?>" class="btn btn-primary oc-icon-plus">
<?= e(trans('backend::lang.user.new')) ?>
</a>
<a href="<?= Backend::url('backend/usergroups') ?>" class="btn btn-default oc-icon-group">
<?= e(trans('backend::lang.user.group.list_title')) ?>
</a>
<?php /* @todo
<div class="btn-group">
<button

View File

@ -26,10 +26,10 @@ class SeedSetupAdmin extends Seeder
public function run()
{
$group = UserGroup::create([
'name' => 'Admins',
'code' => 'admins',
'description' => 'Default group for administrators',
'is_new_user_default' => true
'name' => 'Owners',
'code' => 'owners',
'description' => 'Default group for website owners.',
'is_new_user_default' => false
]);
$user = User::create([

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1818,17 +1818,8 @@ this.$box.css('top',toolbarHeight+'px')}}}}}(jQuery));(function($){'use strict';
var Figure=function(redactor){this.redactor=redactor
this.toolbar={}
this.init()}
Figure.prototype={control:{up:{classSuffix:'arrow-up'},down:{classSuffix:'arrow-down'},'|':{classSuffix:'divider'},remove:{classSuffix:'delete'}},controlGroup:['up','down','remove'],init:function(){this.observeCaptions()
this.observeToolbars()
this.observeKeyboard()},observeCaptions:function(){this.redactor.$editor.on('click.figure','figcaption:empty, cite:empty',$.proxy(function(event){$(event.target).prepend('<br />')
this.redactor.caret.setEnd(event.target)
event.stopPropagation()},this))
$(window).on('click',$.proxy(this.cleanCaptions,this))
this.redactor.$editor.on('blur.figure',$.proxy(this.cleanCaptions,this))
this.redactor.$editor.closest('form').one('submit',$.proxy(this.clearCaptions,this))
this.redactor.$editor.on('keydown.figure',$.proxy(function(event){var current=this.redactor.selection.getCurrent(),isEmpty=!current.length,isCaptionNode=!!$(current).closest('figcaption, cite').length,isDeleteKey=$.inArray(event.keyCode,[this.redactor.keyCode.BACKSPACE,this.redactor.keyCode.DELETE])>=0
if(isEmpty&&isDeleteKey&&isCaptionNode){event.preventDefault()}},this))},cleanCaptions:function(){this.redactor.$editor.find('figcaption, cite').filter(function(){return $(this).text()==''}).empty()},clearCaptions:function(){this.redactor.$editor.find('figcaption, cite').filter(function(){return $(this).text()==''}).remove()
if(this.redactor.opts.visual){this.redactor.code.sync()}},showToolbar:function(event){var $figure=$(event.currentTarget),type=$figure.data('type')||'default',$toolbar=this.getToolbar(type).data('figure',$figure).prependTo($figure).show()
Figure.prototype={control:{up:{classSuffix:'arrow-up'},down:{classSuffix:'arrow-down'},'|':{classSuffix:'divider'},remove:{classSuffix:'delete'}},controlGroup:['up','down','remove'],init:function(){this.observeToolbars()
this.observeKeyboard()},showToolbar:function(event){var $figure=$(event.currentTarget),type=$figure.data('type')||'default',$toolbar=this.getToolbar(type).data('figure',$figure).prependTo($figure).show()
if(this.redactor[type]&&this.redactor[type].onShow){this.redactor[type].onShow($figure,$toolbar)}},hideToolbar:function(event){$(event.currentTarget).find('.oc-figure-controls').appendTo(this.redactor.$box).hide()},observeToolbars:function(){this.redactor.$editor.on('mousedown.figure','.oc-figure-controls',$.proxy(function(event){event.preventDefault()
this.current=this.redactor.selection.getCurrent()},this))
this.redactor.$editor.on('click.figure','.oc-figure-controls span, .oc-figure-controls a',$.proxy(function(event){event.stopPropagation()
@ -1872,7 +1863,6 @@ break}
this.redactor.code.sync()},observeKeyboard:function(){var redactor=this.redactor
redactor.$editor.on('keydown.figure',function(event){var currentNode=redactor.selection.getBlock()
if(event.keyCode===8&&!redactor.caret.getOffset(currentNode)&&currentNode.previousSibling&&currentNode.previousSibling.nodeName==='FIGURE'){event.preventDefault()}})},destroy:function(){this.redactor.$editor.off('.figure')
$(window).off('click',$.proxy(this.cleanCaptions,this))
for(var type in this.toolbar){this.toolbar[type].find('span').off('.figure')}
this.redactor=null
this.toolbar=null}}
@ -2006,7 +1996,7 @@ return
if(this.$el.hasClass('stretch')){var height=$toolbar.outerHeight(true)
$editor.css('top',height+1)
$codeEditor.css('top',height)}}
RichEditor.prototype.sanityCheckContent=function(){var safeElements='p, h1, h2, h3, h4, h5, pre, figure';if(!this.$editor.children(':last-child').is(safeElements)){this.$editor.append('<p><br></p>')}
RichEditor.prototype.sanityCheckContent=function(){var safeElements='p, h1, h2, h3, h4, h5, pre, figure, ol, ul';if(!this.$editor.children(':last-child').is(safeElements)){this.$editor.append('<p><br></p>')}
if(!this.$editor.children(':first-child').is(safeElements)){this.$editor.prepend('<p><br></p>')}
this.$textarea.trigger('sanitize.oc.richeditor',[this.$editor])}
RichEditor.prototype.syncBefore=function(html){var container={html:html}

View File

@ -20,61 +20,10 @@
controlGroup: ['up', 'down', 'remove'],
init: function () {
this.observeCaptions()
this.observeToolbars()
this.observeKeyboard()
},
observeCaptions: function () {
/*
* Adding a line-break to empty captions and citations on click will place the cursor in the expected place
*/
this.redactor.$editor.on('click.figure', 'figcaption:empty, cite:empty', $.proxy(function (event) {
$(event.target).prepend('<br />')
this.redactor.caret.setEnd(event.target)
event.stopPropagation()
}, this))
/*
* Remove generated line-breaks empty figcaptions
*/
$(window).on('click', $.proxy(this.cleanCaptions, this))
this.redactor.$editor.on('blur.figure', $.proxy(this.cleanCaptions, this))
this.redactor.$editor.closest('form').one('submit', $.proxy(this.clearCaptions, this))
/*
* Prevent user from removing captions or citations with delete/backspace keys
*/
this.redactor.$editor.on('keydown.figure', $.proxy(function (event) {
var current = this.redactor.selection.getCurrent(),
isEmpty = !current.length,
isCaptionNode = !!$(current).closest('figcaption, cite').length,
isDeleteKey = $.inArray(event.keyCode, [this.redactor.keyCode.BACKSPACE, this.redactor.keyCode.DELETE]) >= 0
if (isEmpty && isDeleteKey && isCaptionNode) {
event.preventDefault()
}
}, this))
},
cleanCaptions: function () {
this.redactor.$editor.find('figcaption, cite').filter(function () {
return $(this).text() == ''
}).empty()
},
clearCaptions: function () {
this.redactor.$editor.find('figcaption, cite').filter(function () {
return $(this).text() == ''
}).remove()
if (this.redactor.opts.visual) {
this.redactor.code.sync()
}
},
showToolbar: function (event) {
var $figure = $(event.currentTarget),
type = $figure.data('type') || 'default',
@ -285,11 +234,11 @@
* Delete key
*/
if (
event.keyCode === 8
&& !redactor.caret.getOffset(currentNode)
&& currentNode.previousSibling
&& currentNode.previousSibling.nodeName === 'FIGURE'
) {
event.keyCode === 8
&& !redactor.caret.getOffset(currentNode)
&& currentNode.previousSibling
&& currentNode.previousSibling.nodeName === 'FIGURE'
) {
event.preventDefault()
}
})
@ -297,7 +246,6 @@
destroy: function() {
this.redactor.$editor.off('.figure')
$(window).off('click', $.proxy(this.cleanCaptions, this))
for (var type in this.toolbar) {
this.toolbar[type].find('span').off('.figure')

View File

@ -168,8 +168,8 @@
}
RichEditor.prototype.sanityCheckContent = function() {
// First and last elements should always be paragraphs or pre
var safeElements = 'p, h1, h2, h3, h4, h5, pre, figure';
// First and last elements should always be paragraphs, lists or pre
var safeElements = 'p, h1, h2, h3, h4, h5, pre, figure, ol, ul';
if (!this.$editor.children(':last-child').is(safeElements)) {
this.$editor.append('<p><br></p>')

View File

@ -95,7 +95,7 @@ return [
'send_invite' => 'Send invitation by email',
'send_invite_comment' => 'Sends a welcome message containing login and password information.',
'delete_confirm' => 'Do you really want to delete this administrator?',
'return' => 'Return to the administrator list',
'return' => 'Return to admin list',
'allow' => 'Allow',
'inherit' => 'Inherit',
'deny' => 'Deny',
@ -108,9 +108,9 @@ return [
'code_comment' => 'Enter a unique code if you want to access it with the API.',
'menu_label' => 'Groups',
'list_title' => 'Manage Groups',
'new' => 'New Administrator Group',
'new' => 'New Group',
'delete_confirm' => 'Do you really want to delete this administrator group?',
'return' => 'Return to the group list',
'return' => 'Return to group list',
'users_count' => 'Users'
],
'preferences' => [

View File

@ -107,6 +107,7 @@ return [
'new' => 'Ajouter un groupe dadministrateur',
'delete_confirm' => 'Confirmer la suppression de ce groupe dadministrateurs ?',
'return' => 'Retour à la liste des groupes',
'users_count' => 'Utilisateurs'
],
'preferences' => [
'not_authenticated' => 'Il ny a aucun utilisateur identifié pour lequel il est possible de charger ou modifier les préférences.'

View File

@ -5,12 +5,12 @@ return [
'title' => 'Adminisztrációs oldal'
],
'field' => [
'invalid_type' => 'A használt mezőtípus érvénytelen :type.',
'invalid_type' => 'A(z) :type mezőtípus érvénytelen.',
'options_method_not_exists' => "A(z) :model modellosztálynak egy :method() metódus visszaadandó beállításait kell definiálnia a(z) ':field' űrlapmező számára."
],
'widget' => [
'not_registered' => "Egy ':name' widgetosztálynév regisztrálása nem történt meg",
'not_bound' => "Egy ':name' osztálynevű widget kötése nem történt meg a vezérlővel"
'not_registered' => "A(z) ':name' widget osztálynév regisztrálása nem történt meg.",
'not_bound' => "A(z) ':name' osztálynevű widget kötése nem történt meg a vezérlővel."
],
'page' => [
'untitled' => 'Névtelen',
@ -18,6 +18,9 @@ return [
'label' => 'Hozzáférés megtagadva',
'help' => 'Ön nem rendelkezik a szükséges engedélyekkel ennek a lapnak a megtekintéséhez.',
'cms_link' => 'Vissza a látogatói oldalra'
],
'invalid_token' => [
'label' => 'Érvénytelen a biztonsági kód.'
]
],
'partial' => [
@ -28,7 +31,7 @@ return [
'login' => 'Belép',
'reset' => 'Alaphelyzet',
'restore' => 'Visszaállítás',
'login_placeholder' => 'bejelentkezési név',
'login_placeholder' => 'felhasználónév',
'password_placeholder' => 'jelszó',
'forgot_password' => 'Elfelejtette a jelszavát?',
'enter_email' => 'Adja meg az e-mail címét',
@ -36,8 +39,8 @@ return [
'email_placeholder' => 'e-mail cím',
'enter_new_password' => 'Adjon meg egy új jelszót',
'password_reset' => 'Új jelszó kiadása',
'restore_success' => 'A jelszó visszaállítási utasításokat tartalmazó e-mail elküldésre került az e-mail címére.',
'restore_error' => "Nem található felhasználó a ':login' értékű bejelentkezési névvel",
'restore_success' => 'A visszaállítással kapcsolatos utasításokat tartalmazó levél elküldésre került az e-mail címére.',
'restore_error' => "Nem található a(z) ':login' nevű felhasználó.",
'reset_success' => 'A jelszó átállítása sikerült. Most már bejelentkezhet.',
'reset_error' => 'A megadott jelszó átállítási adatok érvénytelenek. Próbálja újra!',
'reset_fail' => 'Nem állítható vissza a jelszava!',
@ -55,8 +58,8 @@ return [
'widget_inspector_title' => 'Widget konfiguráció',
'widget_inspector_description' => 'A jelentés widget konfigurálása',
'widget_columns_label' => 'Szélesség :columns',
'widget_columns_description' => 'A widget szélessége, egy 1 és 10 közti szám.',
'widget_columns_error' => 'Adja meg a widget szélességét egy 1 és 10 közti számként.',
'widget_columns_description' => 'A widget szélessége, egy 1 és 10 közötti szám.',
'widget_columns_error' => 'Adja meg a widget szélességét egy 1 és 10 közötti számként.',
'columns' => '{1} oszlop|[2,Inf] oszlop',
'widget_new_row_label' => 'Új sor kényszerítése',
'widget_new_row_description' => 'A widget új sorba helyezése.',
@ -75,7 +78,7 @@ return [
'menu_description' => 'A felhasználók, a csoportok és az engedélyek kezelése.',
'list_title' => 'Adminisztrátorok kezelése',
'new' => 'Új adminisztrátor',
'login' => 'Bejelentkezési név',
'login' => 'Felhasználónév',
'first_name' => 'Keresztnév',
'last_name' => 'Vezetéknév',
'full_name' => 'Teljes név',
@ -86,12 +89,13 @@ return [
'password' => 'Jelszó',
'password_confirmation' => 'Jelszó megerősítése',
'permissions' => 'Engedélyek',
'account' => 'Fiók',
'superuser' => 'Szuperadmin',
'superuser_comment' => 'Korlátlan hozzáférés a teljes admin felülethez.',
'send_invite' => 'Meghívó küldése e-mailben',
'send_invite_comment' => 'A fentebb megadott adatokat tartalmazza.',
'delete_confirm' => 'Valóban törölni akarja ezt az adminisztrátort?',
'return' => 'Vissza az adminisztrátorok listájához',
'return' => 'Vissza az adminisztrátor listához',
'allow' => 'Engedélyezés',
'inherit' => 'Öröklés',
'deny' => 'Tiltás',
@ -99,14 +103,15 @@ return [
'name' => 'Csoport',
'name_field' => 'Név',
'description_field' => 'Leírás',
'is_new_user_default_field' => 'Az új webhelygazdák hozzáadása alapértelmezésként ehhez a csoporthoz',
'is_new_user_default_field' => 'Az új adminisztrátorok hozzáadása alapértelmezésként ehhez a csoporthoz.',
'code_field' => 'Kód',
'code_comment' => 'Adjon meg egy egyedi kódot, ha az API-val kíván hozzáférni.',
'menu_label' => 'Csoportok',
'list_title' => 'Csoportok kezelése',
'new' => 'Új adminisztrátori csoport',
'delete_confirm' => 'Valóban törölni akarja ezt a adminisztrátori csoportot?',
'return' => 'Vissza a csoport listához'
'return' => 'Vissza a csoport listához',
'users_count' => 'Felhasználók'
],
'preferences' => [
'not_authenticated' => 'Nincs olyan hitelesített felhasználó, aki számára betölthetők vagy menthetők a beállítások.'
@ -116,11 +121,11 @@ return [
'default_title' => 'Lista',
'search_prompt' => 'Keresés...',
'no_records' => 'Nincs megjeleníthető tartalom.',
'missing_model' => 'Nincs modell definiálva a(z) :class osztályban használt listaviselkedéshez.',
'missing_model' => 'Nincs modell definiálva a(z) :class osztályban használt lista viselkedéshez.',
'missing_column' => 'Nincsenek oszlopdefiníciók a(z) :columns oszlopok számára.',
'missing_columns' => 'A(z) :class osztályban használt listának nincsenek definiált listaoszlopai.',
'missing_definition' => "A listaviselkedés nem tartalmaz oszlopot a(z) ':field' mező számára.",
'behavior_not_ready' => 'Nem történt meg a listaviselkedés inicializálása, ellenőrizze, hogy meghívta-e a(z) makeLists() függvényt a vezérlőben.',
'missing_definition' => "A lista viselkedés nem tartalmaz oszlopot a(z) ':field' mező számára.",
'behavior_not_ready' => 'Nem történt meg a lista viselkedés inicializálása és ellenőrizze, hogy meghívta-e a(z) makeLists() függvényt a vezérlőben.',
'invalid_column_datetime' => "A(z) ':column' oszlopérték nem DateTime objektum, hiányzik egy \$dates hivatkozás a Modellben?",
'pagination' => 'Megjelenített elemek: :from-:to / :total',
'prev_page' => 'Előző lap',
@ -137,9 +142,15 @@ return [
],
'fileupload' => [
'attachment' => 'Csatolmány',
'help' => 'Adja meg a csatolmány címét és leírását.',
'help' => 'Adja meg a csatolmány címét és a leírását.',
'title_label' => 'Cím',
'description_label' => 'Leírás'
'description_label' => 'Leírás',
'default_prompt' => 'Hozza ide a fájlt vagy kattintson erre: %s',
'attachment_url' => 'Csatolmány webcíme',
'upload_file' => 'Fájl feltöltése',
'upload_error' => 'Feltöltési hiba',
'remove_confirm' => 'Biztos benne?',
'remove_file' => 'Fájl eltávolítása'
],
'form' => [
'create_title' => 'Új :name',
@ -148,10 +159,10 @@ return [
'create_success' => 'A(z) :name létrehozása sikerült',
'update_success' => 'A(z) :name módosítása sikerült',
'delete_success' => 'A(z) :name törlése sikerült',
'missing_id' => 'Nincs megadva az űrlaprekord azonosítója.',
'missing_model' => 'A(z) :class osztályban használt űrlapviselkedésnek nincs definiált modellje.',
'missing_definition' => "Az űrlapviselkedés nem tartalmaz mezőt a(z) ':field' mezőhöz.",
'not_found' => 'A(z) :id azonosítójú űrlaprekord nem található.',
'missing_id' => 'Nincs megadva az űrlap rekord azonosítója.',
'missing_model' => 'A(z) :class osztályban használt űrlap viselkedésnek nincs definiált modellje.',
'missing_definition' => "Az űrlap viselkedés nem tartalmaz mezőt a(z) ':field' mezőhöz.",
'not_found' => 'A(z) :id azonosítójú űrlap rekord nem található.',
'action_confirm' => 'Biztos benne?',
'create' => 'Létrehozás',
'create_and_close' => 'Létrehozás és bezárás',
@ -179,8 +190,9 @@ return [
'ok' => 'OK',
'or' => 'vagy',
'confirm_tab_close' => 'Valóban be akarja zárni a fület? El fognak veszni a nem mentett módosítások.',
'behavior_not_ready' => 'Nem történt meg az űrlapviselkedés inicializálása, ellenőrizze, hogy meghívta-e az initForm() függvényt a vezérlőben.',
'preview_no_files_message' => 'A fájlok nincsenek feltöltve',
'behavior_not_ready' => 'Nem történt meg az űrlap viselkedésének inicializálása. Ellenőrizze, hogy meghívta-e az initForm() függvényt a vezérlőben.',
'preview_no_files_message' => 'Nincsennek feltöltve fájlok.',
'preview_no_record_message' => 'Egy mező sincs kiválasztva.',
'select' => 'Válasszon',
'select_all' => 'mind',
'select_none' => 'egyik sem',
@ -191,9 +203,9 @@ return [
'concurrency_file_changed_description' => 'Az Ön által szerkesztett fájlt már egy máik felhasználó módosította. Vagy újratöltheti a fájlt és elveszti a változtatásait, vagy felülírja a fájlt.'
],
'relation' => [
'missing_config' => "A relációviselkedésnek nincs semmilyen konfigurációja a következőhöz: ':config'.",
'missing_definition' => "A relációviselkedés nem tartalmazza a(z) ':field' mező definícióját.",
'missing_model' => 'A(z) :class osztályban használt relációviselkedésnek nincs definiált modellje.',
'missing_config' => "A reláció viselkedésnek nincs semmilyen konfigurációja a következőhöz: ':config'.",
'missing_definition' => "A reláció viselkedés nem tartalmazza a(z) ':field' mező definícióját.",
'missing_model' => 'A(z) :class osztályban használt reláció viselkedésnek nincs definiált modellje.',
'invalid_action_single' => 'Ez a művelet nem hajtható végre egyetlen kapcsolaton.',
'invalid_action_multi' => 'Ez a művelet nem hajtható végre több kapcsolaton.',
'help' => 'Kattintson egy elemre a hozzáadásához',
@ -225,18 +237,18 @@ return [
],
'model' => [
'name' => 'Modell',
'not_found' => "Nem található :id azonosítójú ':class' modell",
'not_found' => "Nem található :id azonosítójú ':class' modell.",
'missing_id' => 'Nincs azonosító megadva a modellrekord kereséséhez.',
'missing_relation' => "A(z) ':class' modell nem tartalmaz definíciót a(z) ':relation' reláció számára.",
'missing_method' => "A(z) ':class' modell nem tartalmaz ':method' metódust.",
'invalid_class' => "A(z) :class osztályban használt :model modell nem érvényes, örökölnie kell a \Model osztályt.",
'mass_assignment_failed' => "A tömeges hozzárendelés a(z) ':attribute' modellattribútumhoz nem sikerült."
'mass_assignment_failed' => "A tömeges hozzárendelés a(z) ':attribute' modell attribútumhoz nem sikerült."
],
'warnings' => [
'tips' => 'Rendszer konfigurációs tippek',
'tips_description' => 'Olyan problémák vannak, melyekre figyeljen oda a rendszer megfelelő konfigurálása érdekében.',
'permissions' => 'A(z) :name könyvtár vagy alkönyvtárai a PHP számára nem írhatóak. Adjon megfelelő engedélyeket a webkiszolgálónak erre a könyvtárra.',
'extension' => 'A(z) :name PHP-kiterjesztés nincs telepítve. Telepítse ezt a függvénytárat, és aktiválja a kiterjesztést.'
'extension' => 'A(z) :name PHP kiterjesztés nincs telepítve. Telepítse ezt a függvénytárat és aktiválja a kiterjesztést.'
],
'editor' => [
'menu_label' => 'Kódszerkesztő',
@ -252,7 +264,7 @@ return [
'theme' => 'Színséma'
],
'tooltips' => [
'preview_website' => 'A webhely megtekintése'
'preview_website' => 'Weboldal megtekintése'
],
'mysettings' => [
'menu_label' => 'Beállításaim',
@ -289,10 +301,10 @@ return [
],
'access_log' => [
'hint' => 'Ez a napló a felhasználók sikeres bejelentkezési kísérleteit listázza ki. A bejegyzéseket :days napig őrzi meg a rendszer.',
'menu_label' => 'Hozzáférési napló',
'menu_label' => 'Hozzáférésnapló',
'menu_description' => 'A felhasználók sikeres bejelentkezéseinek megtekintése.',
'created_at' => 'Dátum és idő',
'login' => 'Bejelentkezési név',
'login' => 'Felhasználónév',
'ip_address' => 'IP cím',
'first_name' => 'Keresztnév',
'last_name' => 'Vezetéknév',

View File

@ -18,6 +18,9 @@ return [
'label' => 'Piekļuve liegta',
'help' => "Jums nav piekļuves tiesību, lai skatītu šo lapu.",
'cms_link' => 'Atgriezties back-end'
],
'invalid_token' => [
'label' => 'Nederīga drošības atslēga'
]
],
'partial' => [
@ -25,7 +28,7 @@ return [
],
'account' => [
'sign_out' => 'Izrakstīties',
'login' => 'Pierakstīties',
'login' => 'Login',
'reset' => 'Atiestatīt',
'restore' => 'Atjaunot',
'login_placeholder' => 'vārds',
@ -86,6 +89,7 @@ return [
'password' => 'Parole',
'password_confirmation' => 'Apstiprināt Paroli',
'permissions' => 'Tiesības',
'account' => 'Konts',
'superuser' => 'Super Lietotājs',
'superuser_comment' => 'Atķeksējiet šo aili, lai atļautu šai personai neierobežotu piekļuvi.',
'send_invite' => 'Nosūtīt uzaicinājumu pa Epastu',
@ -107,6 +111,7 @@ return [
'new' => 'Jauna Administrātoru Grupa',
'delete_confirm' => 'Vai tiešām vēlaties dzēst šo administrātoru grupu?',
'return' => 'Atgriezties grupu sarakstā',
'users_count' => 'Lietotāji'
],
'preferences' => [
'not_authenticated' => 'Nav autentificēts lietotājs, kuram ielādēt vai saglabāt iestatījumus.'
@ -140,6 +145,12 @@ return [
'help' => 'Pievienojiet virsrakstu un aprakstu šim pielikumam.',
'title_label' => 'Vrisraksts',
'description_label' => 'Apraksts'
'default_prompt' => 'Uzklikšķiniet uz %s vai nesiet failu šeit',
'attachment_url' => 'Pielikuma URL',
'upload_file' => 'Augšupielādēt failu',
'upload_error' => 'Augšupielādes kļūda',
'remove_confirm' => 'Vai esat pārliecināts?',
'remove_file' => 'Noņemt failu'
],
'form' => [
'create_title' => 'Jauns :name',
@ -168,8 +179,8 @@ return [
'resetting' => 'Atiestatam',
'resetting_name' => 'Atiestatam :name',
'undefined_tab' => 'Izvēles',
'field_off' => 'Atspējots',
'field_on' => 'Iespējots',
'field_off' => 'Izsl.',
'field_on' => 'Iesl.',
'add' => 'Pievienot',
'apply' => 'Apstiprināt',
'cancel' => 'Atcelt',
@ -181,6 +192,7 @@ return [
'confirm_tab_close' => 'Vai tiešām vēlaties aizvērt šo cilni? Nesaglabātās izmaiņas būs zudušas.',
'behavior_not_ready' => 'Forma nav tikusi inicializēta, pārbaudiet vai izsaucāt initForm() savā kontrolierī.',
'preview_no_files_message' => 'Faili nav augšupielādēti',
'preview_no_record_message' => 'Nav izvēlētu ierakstu.',
'select' => 'Izvēlēties',
'select_all' => 'visus',
'select_none' => 'nevienu',
@ -299,6 +311,6 @@ return [
'email' => 'Epasts'
],
'filter' => [
'all' => 'visi',
],
'all' => 'visi'
]
];

View File

@ -3,7 +3,7 @@
?>
<!-- Dropdown -->
<?php if ($this->previewMode): ?>
<div class="form-control"><?= (isset($fieldOptions[$field->value])) ? e($fieldOptions[$field->value]) : '' ?></div>
<div class="form-control"><?= (isset($fieldOptions[$field->value])) ? e(trans($fieldOptions[$field->value])) : '' ?></div>
<?php else: ?>
<select
id="<?= $field->getId() ?>"
@ -25,4 +25,4 @@
</option>
<?php endforeach ?>
</select>
<?php endif?>
<?php endif?>

View File

@ -38,7 +38,7 @@
<p class="help-block">
<?= e(trans('backend::lang.list.records_per_page_help')) ?>
</p>
<select class="form-control custom-select" name="records_per_page">
<select class="form-control custom-select select-no-search" name="records_per_page">
<?php foreach ($perPageOptions as $optionValue): ?>
<option value="<?= $optionValue ?>" <?= $optionValue == $recordsPerPage ? 'selected="selected"' : '' ?>><?= $optionValue ?></option>
<?php endforeach ?>

View File

@ -100,6 +100,7 @@
padding-bottom: 39px;
}
.field-mediafinder.style-image-single .find-object .icon-container {
display: block;
border: 1px solid #f6f8f9;
background: rgba(255, 255, 255, 0.5);
}
@ -125,7 +126,7 @@
display: none;
}
.field-mediafinder.style-image-single.is-populated .find-object {
display: inline-block;
display: block;
}
.field-mediafinder.style-file-single {
background-color: #ffffff;

View File

@ -12,6 +12,7 @@
padding-bottom: 39px;
.icon-container {
display: block;
border: 1px solid #f6f8f9;
background: rgba(255,255,255,.5);
@ -39,7 +40,7 @@
display: none;
}
.find-object {
display: inline-block;
display: block;
}
}

View File

@ -2,156 +2,300 @@
return [
'cms_object' => [
'invalid_file' => 'Nom de fichier invalide: :name. Les noms de fichiers ne peuvent contenir que des caractères alphanumériques, des underscores, des tirets et des points. Quelques exemples de noms de fichier valides: page.htm, page, subdirectory/page',
'invalid_property' => 'L\'attribut ":name" ne peut pas être défini',
'invalid_file' => 'Nom de fichier invalide : :name. Les noms de fichiers ne peuvent contenir que des caractères alphanumériques, des tiret bas, des tirets et des points. Voir ces exemples de noms de fichiers valides : page.htm, page, subdirectory/page',
'invalid_property' => 'Lattribut ":name" ne peut pas être défini',
'file_already_exists' => 'Le fichier ":name" existe déjà.',
'error_saving' => 'Erreur lors de l\'enregistrement du fichier ":name".',
'error_saving' => 'Erreur lors de lenregistrement du fichier ":name".',
'error_creating_directory' => 'Erreur lors de la création du répertoire :name',
'invalid_file_extension' => 'Extension de fichier invalide: :invalid. Les extensions autorisées sont: :allowed.',
'error_deleting' => 'Erreur lors de la suppression du template ":name".',
'delete_success' => 'Les templates ont été supprimés avec succès: :count.',
'invalid_file_extension' => 'Extension de fichier invalide : :invalid. Les extensions autorisées sont : :allowed.',
'error_deleting' => 'Erreur lors de la suppression du modèle ":name".',
'delete_success' => 'Les modèles ont été supprimés avec succès : :count.',
'file_name_required' => 'Le nom du fichier est requis.'
],
'theme' => [
'not_found_name' => 'Le thème ":name" na pas été trouvé.',
'active' => [
'not_set' => "Aucun thème activé.",
'not_found' => "Thème activé introuvable.",
'not_set' => 'Aucun thème nest activé.',
'not_found' => 'Le thème activé est introuvable.',
],
'edit' => [
'not_set' => "Le thème d'édition n'est pas activé.",
'not_found' => "Thème d'édition introuvable.",
'not_match' => "L'objet auquel vous essayez d'accéder n'appartient pas au thème en cours d'édition. Veuillez recharger la page."
'not_set' => 'Le thème de rédaction nest pas activé.',
'not_found' => 'Le thème de rédaction est introuvable.',
'not_match' => 'Lobjet actuellement ouvert nappartient pas au thème en cours de modification. Merci de recharger la page.'
],
'settings_menu' => 'Front-end theme',
'settings_menu' => 'Frontal du thème',
'settings_menu_description' => 'Aperçu des thèmes installés et sélection du thème actif.',
'find_more_themes' => 'Trouvez plus de thèmes sur le marketplace de OctoberCMS.',
'default_tab' => 'Propriétés',
'name_label' => 'Nom',
'name_create_placeholder' => 'Nom du nouveau thème',
'author_label' => 'Auteur',
'author_placeholder' => 'Nom de la personne ou de la compagnie',
'description_label' => 'Description',
'description_placeholder' => 'Description du thème',
'homepage_label' => 'Page daccueil',
'homepage_placeholder' => 'Adresse URL du site Web',
'code_label' => 'Code',
'code_placeholder' => 'Un nom de code unique pour la distribution de ce thème',
'dir_name_label' => 'Nom du répertoire',
'dir_name_create_label' => 'Le répertoire de destination du thème',
'theme_label' => 'Thème',
'theme_title' => 'Thèmes',
'activate_button' => 'Activer',
'active_button' => 'Activer',
'customize_theme' => 'Personnaliser le thème',
'customize_button' => 'Personnaliser',
'duplicate_button' => 'Dupliquer',
'duplicate_title' => 'Dupliquer le thème',
'duplicate_theme_success' => 'Duplication réalisée avec succès !',
'manage_button' => 'Gérer',
'manage_title' => 'Gérer le thème',
'edit_properties_title' => 'Thème',
'edit_properties_button' => 'Modifier les propriétés',
'save_properties' => 'Sauvegarder les propriétés',
'import_button' => 'Importer',
'import_title' => 'Importer le thème',
'import_theme_success' => 'Thème importé avec succès !',
'import_uploaded_file' => 'Fichier archive du thème',
'import_overwrite_label' => 'Écraser les fichiers existants',
'import_overwrite_comment' => 'Décocher cette case pour importer uniquement les nouveaux fichiers',
'import_folders_label' => 'Répertoires',
'import_folders_comment' => 'Sélectionner les répertoires du thème à importer',
'export_button' => 'Exporter',
'export_title' => 'Exporter le thème',
'export_folders_label' => 'Répertoire',
'export_folders_comment' => 'Sélectionner les répertoires du thème à exporter',
'delete_button' => 'Supprimer',
'delete_confirm' => 'Confirmer la suppression de ce thème ? Cette action est irréversible !',
'delete_active_theme_failed' => 'Impossible de supprimer le thème actif, merci dactiver une autre thème au préalable.',
'delete_theme_success' => 'Thème supprimé avec succès !',
'create_title' => 'Créer un thème',
'create_button' => 'Créer',
'create_new_blank_theme' => 'Créer un nouveau thème vierge',
'create_theme_success' => 'Thème créé avec succès !',
'create_theme_required_name' => 'Saisir un nom pour ce thème.',
'new_directory_name_label' => 'Répertoire du thème',
'new_directory_name_comment' => 'Indiquer un nouveau nom de répertoire pour le thème en dupliqué.',
'dir_name_invalid' => 'Le nom doit contenir uniquement des chiffres, des symboles latins et les symboles suivants : _-',
'dir_name_taken' => 'Le nom du répertoire indiqué existe déjà.',
'find_more_themes' => 'Trouver davantage de thèmes sur le site du CMS October.',
'saving' => 'Sauvegarder le thème…',
'return' => 'Retourner à la liste des thèmes',
],
'maintenance' => [
'settings_menu' => 'Maintenance',
'settings_menu_description' => 'Paramètres de la page de maintenance et ses options.',
'is_enabled' => 'Activer la maintenance',
'is_enabled_comment' => 'Si activé, les visiteurs du site Web verront la page choisie ci-dessous.'
],
'page' => [
'not_found_name' => 'La page ":name" est introuvable',
'not_found' => [
'label' => "Page introuvable",
'help' => "La page demandée est introuvable.",
'label' => 'La page est introuvable',
'help' => 'La page demandée est introuvable.',
],
'custom_error' => [
'label' => "Erreur sur la page",
'help' => "Nous sommes désolés, un problème est survenu et la page ne peut être affichée.",
'label' => 'Erreur sur la page',
'help' => 'Nous sommes désolés, un problème est survenu et la page ne peut être affichée.',
],
'menu_label' => 'Pages',
'no_list_records' => 'Aucune page trouvée',
'unsaved_label' => 'Page(s) non sauvegardée(s)',
'no_list_records' => 'Aucune page na été 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: ._-[]:?|/+*^$',
'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 --'
'invalid_url' => 'Format dadresse URL invalide. Ladresse URL doit commencer par un / et peut contenir des chiffres, des lettres et les symboles suivants : ._-[]:?|/+*^$',
'delete_confirm_multiple' => 'Confirmer la suppression des pages sélectionnées ?',
'delete_confirm_single' => 'Confirmer la suppression de cette page ?',
'no_layout' => '-- aucune maquette --'
],
'layout' => [
'not_found_name' => "Le layout ':name' est introuvable",
'menu_label' => 'Layouts',
'no_list_records' => 'Aucun layout trouvé',
'new' => 'Nouveau layout',
'delete_confirm_multiple' => 'Voulez-vous vraiment supprimer les layouts sélectionnés ?',
'delete_confirm_single' => 'Voulez-vous vraiment supprimer ce layout ?'
'not_found_name' => 'La maquette ":name" est introuvable',
'menu_label' => 'Maquettes',
'unsaved_label' => 'Maquette(s) non sauvegardée(s)',
'no_list_records' => 'Aucune maquette na été trouvée',
'new' => 'Nouvelle maquette',
'delete_confirm_multiple' => 'Confirmer la suppression des maquettes sélectionnées ?',
'delete_confirm_single' => 'Confirmer la suppression de cette maquette ?'
],
'partial' => [
'not_found_name' => "Le partial ':name' est introuvable.",
'invalid_name' => "nom de partial invalide: :name.",
'menu_label' => 'Partials',
'no_list_records' => 'Aucun partial trouvé',
'delete_confirm_multiple' => 'Voulez-vous vraiment supprimer les partials sélectionnés ?',
'delete_confirm_single' => 'Voulez-vous vraiment supprimer ce partial ?',
'new' => 'Nouveau partial'
'not_found_name' => 'Le modèle partiel ":name" est introuvable.',
'invalid_name' => 'Nom du modèle partiel invalide : :name.',
'menu_label' => ' Modèles partiels',
'unsaved_label' => 'Modèle(s) partiel(s) non sauvegardé(s)',
'no_list_records' => 'Aucun modèle partiel na été trouvé',
'delete_confirm_multiple' => 'Confirmer la suppression des modèles partiels sélectionnés ?',
'delete_confirm_single' => 'Confirmer la suppression de ce modèle partiel ?',
'new' => 'Nouveau modèle partiel'
],
'content' => [
'not_found_name' => "Le fichier de contenu ':name' est introuvable.",
'not_found_name' => 'Le fichier de contenu ":name" est introuvable.',
'menu_label' => 'Contenu',
'no_list_records' => 'Aucun fichier de contenu trouvé',
'delete_confirm_multiple' => 'Voulez-vous vraiment supprimer les fichiers de contenu ou répertoires sélectionnés ?',
'delete_confirm_single' => 'Voulez-vous vraiment supprimer ce fichier de contenu ?',
'unsaved_label' => 'Contenu non sauvegardé',
'no_list_records' => 'Aucun fichier de contenu na été trouvé',
'delete_confirm_multiple' => 'Confirmer la suppression des fichiers de contenu ou répertoires sélectionnés ?',
'delete_confirm_single' => 'Confirmer la suppression de ce fichier de contenu ?',
'new' => 'Nouveau fichier de contenu'
],
'ajax_handler' => [
'invalid_name' => "Nom de gestionnaire AJAX invalide: :name.",
'not_found' => "Le gestionnaire AJAX ':name' est introuvable.",
'invalid_name' => 'Nom du gestionnaire AJAX invalide : :name.',
'not_found' => 'Le gestionnaire AJAX ":name" est introuvable.',
],
'cms' => [
'menu_label' => "CMS"
'menu_label' => 'CMS'
],
'sidebar' => [
'add' => 'Ajouter',
'search' => 'Rechercher...'
'search' => 'Rechercher'
],
'editor' => [
'settings' => 'Configuration',
'title' => 'Titre',
'new_title' => 'Nouveau titre de page',
'url' => 'URL',
'filename' => 'Nom de fichier',
'layout' => 'Layout',
'new_title' => 'Nouveau titre de la page',
'url' => 'Adresse URL',
'filename' => 'Nom du fichier',
'layout' => 'Maquette',
'description' => 'Description',
'preview' => 'Aperçu',
'meta' => 'Meta',
'meta_title' => 'Meta Titre',
'meta_description' => 'Meta Description',
'markup' => 'Markup',
'markup' => 'Balisage',
'code' => 'Code',
'content' => 'Contenu',
'hidden' => 'Caché',
'hidden_comment' => 'Les pages cachées sont seulement accessibles par les administrateurs connectés.'
'hidden_comment' => 'Les pages cachées sont seulement accessibles aux administrateurs connectés.',
'enter_fullscreen' => 'Activer le mode plein écran',
'exit_fullscreen' => 'Annuler le mode plein écran'
],
'asset' => [
'menu_label' => "Assets",
'drop_down_add_title' => 'Ajouter...',
'drop_down_operation_title' => 'Action...',
'upload_files' => 'Uploader un fichier',
'menu_label' => 'Assets',
'unsaved_label' => 'Asset(s) non sauvegardé(s)',
'drop_down_add_title' => 'Ajouter…',
'drop_down_operation_title' => 'Action…',
'upload_files' => 'Télécharger un fichier',
'create_file' => 'Créer un fichier',
'create_directory' => 'Créer un répertoire',
'directory_popup_title' => 'Nouveau répertoire',
'directory_name' => 'Nom du répertoire',
'rename' => 'Renommer',
'delete' => 'Supprimer',
'move' => 'Déplacer',
'select' => 'Sélectionner',
'new' => 'Nouveau fichier',
'rename_popup_title' => 'Renommer',
'rename_new_name' => 'Nouveau nom',
'invalid_path' => 'Le chemin ne peut contenir que des chiffres, des lettres, des espaces et les symboles suivants: ._-/',
'invalid_path' => 'Le chemin doit contenir uniquement des chiffres, des lettres, des espaces et les symboles suivants : ._-/',
'error_deleting_file' => 'Erreur lors de la suppression du fichier :name.',
'error_deleting_dir_not_empty' => 'Erreur lors de la suppression du répertoire :name. Le répertoire n\'est pas vide.',
'error_deleting_dir_not_empty' => 'Erreur lors de la suppression du répertoire :name. Le répertoire nest pas vide.',
'error_deleting_dir' => 'Erreur lors de la suppression du répertoire :name.',
'invalid_name' => 'Le nom ne peut contenir que des chiffres, des lettres, des espaces et les symboles suivants: ._-',
'original_not_found' => 'Le fichier original ou le répertoire est introuvable',
'invalid_name' => 'Le nom doit contenir uniquement des chiffres, des lettres, des espaces et les symboles suivants : ._-',
'original_not_found' => 'Le fichier original ou son répertoire est introuvable',
'already_exists' => 'Un fichier ou un répertoire avec le même nom existe déjà',
'error_renaming' => 'Erreur lors du renommage du fichier ou du répertoire',
'error_renaming' => 'Erreur pour renommer le fichier ou le répertoire',
'name_cant_be_empty' => 'Le nom ne peut être vide',
'too_large' => 'Le fichier uploadé est trop grand. La taille maximum autorisée est :max_size',
'type_not_allowed' => 'Seuls les types de fichier suivants sont autorisés: :allowed_types',
'too_large' => 'Le fichier téléchargé est trop grand. La taille maximum autorisée est de :max_size',
'type_not_allowed' => 'Les types de fichiers autorisés sont les suivants : :allowed_types',
'file_not_valid' => 'Fichier invalide',
'error_uploading_file' => 'Erreur lors de l\'upload du fichier ":name": :error',
'move_please_select' => 'veuillez sélectionner',
'error_uploading_file' => 'Erreur lors du téléchargement du fichier ":name" : :error',
'move_please_select' => 'Faire une sélection',
'move_destination' => 'Répertoire de destination',
'move_popup_title' => 'Déplacer les assets',
'move_button' => 'Déplacer',
'selected_files_not_found' => 'Fichiers sélectionnés introuvables',
'selected_files_not_found' => 'Les fichiers sélectionnés sont introuvables',
'select_destination_dir' => 'Veuillez sélectionner un répertoire de destination',
'destination_not_found' => 'Le répertoire de destination est introuvable',
'error_moving_file' => 'Erreur lors du déplacement du fichier :file',
'error_moving_directory' => 'Erreur lors du déplacement du répertoire :dir',
'error_deleting_directory' => 'Erreur lors de la suppression du répertoire d\'origine :dir',
'error_deleting_directory' => 'Erreur lors de la suppression du répertoire dorigine :dir',
'path' => 'Chemin'
],
'component' => [
'menu_label' => "Composants",
'unnamed' => "Sans nom",
'no_description' => "Aucune description fournie",
'alias' => "Alias",
'alias_description' => "Un nom unique donné lors de l\'utilisation du composant sur une page ou un layout.",
'validation_message' => "Les alias de composant sont requis et ne peuvent contenit que des symboles latins, des chiffres et des underscores. Les alias devraient commencer par un symbole latin.",
'invalid_request' => "Le template ne peut être enregistré à cause de données invalides d'un composant.",
'no_records' => 'Aucun composant trouvé',
'not_found' => "Le composant ':name' est introuvable.",
'method_not_found' => "Le composant ':name' ne contient pas de méthode ':method'.",
'menu_label' => 'Composants',
'unnamed' => 'Sans nom',
'no_description' => 'Aucune description na été fournie',
'alias' => 'Alias',
'alias_description' => 'Nom unique fourni lors de lutilisation du composant sur une page ou une maquette.',
'validation_message' => 'Les alias du composant sont requis et ne peuvent contenir uniquement des symboles latins, des chiffres et des tirets bas. Les alias doivent commencer par un symbole latin.',
'invalid_request' => 'Le modèle ne peut être enregistré puisque les données dun composant sont invalides.',
'no_records' => 'Aucun composant na été trouvé',
'not_found' => 'Le composant ":name" est introuvable.',
'method_not_found' => 'Le composant ":name" ne contient pas de méthode ":method".',
],
'template' => [
'invalid_type' => "Type de template inconnu.",
'not_found' => "Le template demandé est introuvable.",
'saved'=> "Le template demandé a été sauvegardé avec succès."
'invalid_type' => 'Type de modèle inconnu.',
'not_found' => 'Le modèle demandé est introuvable.',
'saved'=> 'Le modèle demandé a été sauvegardé avec succès.'
],
'permissions' => [
'name' => 'CMS',
'manage_content' => 'Gérer le contenu',
'manage_assets' => 'Gérer les assets',
'manage_pages' => 'Gérer les pages',
'manage_layouts' => 'Gérer les maquettes',
'manage_partials' => 'Gérer les modèles partiels',
'manage_themes' => 'Gérer les thèmes',
'manage_media' => 'Gérer les médias'
],
'mediafinder' => [
'default_prompt' => 'Cliquer su le bouton %s pour trouver un média'
],
'media' => [
'invalid_path' => "Le chemin du fichier indiqué est invalide : ':path'.",
'menu_label' => 'Média',
'upload' => 'Télécharger',
'move' => 'Déplacer',
'delete' => 'Supprimer',
'add_folder' => 'Ajouter un répertoire',
'search' => 'Rechercher',
'display' => 'Affichage',
'filter_everything' => 'Tout',
'filter_images' => 'Images',
'filter_video' => 'Vidéo',
'filter_audio' => 'Audio',
'filter_documents' => 'Documents',
'library' => 'Librairie',
'folder_size_items' => 'Articles(s)',
'size' => 'Taille',
'title' => 'Titre',
'last_modified' => 'Dernière modification',
'public_url' => 'Adresse URL publique',
'click_here' => 'Cliquer ici',
'thumbnail_error' => 'Erreur durant la création de la miniature.',
'return_to_parent' => 'Retourner au répertoire parent',
'return_to_parent_label' => 'Monter…',
'nothing_selected' => 'Aucun sélection.',
'multiple_selected' => 'Plusieurs articles sélectionnés.',
'uploading_file_num' => 'Téléchargement de :number fichier(s)…',
'uploading_complete' => 'Téléchargement complet',
'order_by' => 'Trier par',
'search' => 'Rechercher',
'folder' => 'Répertoire',
'no_files_found' => 'Aucun fichier trouvé.',
'delete_empty' => 'Sélectionner les articles à supprimer.',
'delete_confirm' => 'Confirmer la suppression de ces articles ?',
'error_renaming_file' => 'Erreur pour renommer larticle.',
'new_folder_title' => 'Nouveau répertoire',
'folder_name' => 'Nom du répertoire',
'error_creating_folder' => 'Erreur durant la création du répertoire',
'folder_or_file_exist' => 'Un répertoire ou un fichier portant ce nom existe déjà.',
'move_empty' => 'Sélectionner les articles à déplacer.',
'move_popup_title' => 'Déplacer des fichiers ou répertoires',
'move_destination' => 'Répertoire de destination',
'please_select_move_dest' => 'Sélectionner un répertoire de destination.',
'move_dest_src_match' => 'Sélectionner un autre répertoire de destination.',
'empty_library' => 'La librairie multimédia est vide. Pour commencer, télécharger des fichiers ou répertoires.',
'insert' => 'Insérer',
'crop_and_insert' => 'Copier / coller',
'select_single_image' => 'Sélectionner une seule image.',
'selection_not_image' => 'Larticle sélectionné nest pas une image.',
'restore' => 'Annuler tous les changements',
'resize' => 'Redimensionner…',
'selection_mode_normal' => 'Normal',
'selection_mode_fixed_ratio' => 'Rapport fixe',
'selection_mode_fixed_size' => 'Taille fixe',
'height' => 'Hauteur',
'width' => 'Largeur',
'selection_mode' => 'Mode de sélection',
'resize_image' => 'Redimensionner limage',
'image_size' => 'Taille de limage :',
'selected_size' => 'Sélectionnée :'
]
];
];

View File

@ -33,7 +33,7 @@ return [
'description_label' => 'Leírás',
'description_placeholder' => 'A téma ismertetője',
'homepage_label' => 'Weboldal',
'homepage_placeholder' => 'A honlap URL címe',
'homepage_placeholder' => 'A honlap webcíme',
'code_label' => 'Kód',
'code_placeholder' => 'Egyedi azonosító ehhez a témához',
'dir_name_label' => 'Könyvtár',
@ -101,7 +101,7 @@ return [
'unsaved_label' => 'Nem mentett lap(ok)',
'no_list_records' => 'Nem találhatóak lapok',
'new' => 'Új lap',
'invalid_url' => 'Érvénytelen az URL cím formátuma. Az URL címnek perjellel kell kezdődnie, és számokat, latin betűket, valamint a következő karaktereket tartalmazhatja: ._-[]:?|/+*',
'invalid_url' => 'Érvénytelen a webcím formátuma. A webcímnek perjellel kell kezdődnie, és számokat, latin betűket, valamint a következő karaktereket tartalmazhatja: ._-[]:?|/+*',
'delete_confirm_multiple' => 'Valóban törölni akarja a kijelölt lapokat?',
'delete_confirm_single' => 'Valóban törölni akarja ezt a lapot?',
'no_layout' => '-- nincs elrendezés --'
@ -149,7 +149,7 @@ return [
'settings' => 'Beállítások',
'title' => 'Cím',
'new_title' => 'Új lap címe',
'url' => 'URL cím',
'url' => 'Webcím',
'filename' => 'Fájlnév',
'layout' => 'Elrendezés',
'description' => 'Leírás',
@ -187,24 +187,24 @@ return [
'error_deleting_dir_not_empty' => 'Hiba a(z) :name könyvtár törlésekor. A könyvtár nem üres.',
'error_deleting_dir' => 'Hiba a(z) :name fájl törlésekor.',
'invalid_name' => 'A név csak számokat, latin betűket, szóközöket és a következő szimbólumokat tartalmazhatja: ._-',
'original_not_found' => 'Nem található az eredeti fájl vagy könyvtár',
'already_exists' => 'Már létezik ilyen nevű fájl vagy könyvtár',
'error_renaming' => 'Hiba a fájl vagy a könyvtár átnevezésekor',
'name_cant_be_empty' => 'A név nem lehet üres',
'original_not_found' => 'Nem található az eredeti fájl vagy könyvtár.',
'already_exists' => 'Már létezik ilyen nevű fájl vagy könyvtár.',
'error_renaming' => 'Hiba a fájl vagy a könyvtár átnevezésekor.',
'name_cant_be_empty' => 'A név nem lehet üres.',
'too_large' => 'A feltöltött fájl túl nagy. A maximálisan engedélyezett fájlméret :max_size',
'type_not_allowed' => 'Csak a következő fájltípusok engedélyezettek: :allowed_types',
'file_not_valid' => 'A fájl nem érvényes',
'file_not_valid' => 'A fájl nem érvényes.',
'error_uploading_file' => "Hiba a(z) ':name' fájl feltöltésekor: :error",
'move_please_select' => 'válasszon',
'move_destination' => 'Célkönyvtár',
'move_popup_title' => 'Fájl(ok) áthelyezése',
'move_button' => 'Áthelyezés',
'selected_files_not_found' => 'A kijelölt fájlok nem találhatók',
'select_destination_dir' => 'Válasszon egy célkönyvtárat',
'destination_not_found' => 'A célkönyvtár nem található',
'error_moving_file' => 'Hiba a(z) :file fájl áthelyezésekor',
'error_moving_directory' => 'Hiba a(z) :dir könyvtár áthelyezésekor',
'error_deleting_directory' => 'Hiba a(z) :dir eredeti könyvtár áthelyezésekor',
'selected_files_not_found' => 'A kijelölt fájlok nem találhatók.',
'select_destination_dir' => 'Válasszon egy célkönyvtárat.',
'destination_not_found' => 'A célkönyvtár nem található.',
'error_moving_file' => 'Hiba a(z) :file fájl áthelyezésekor.',
'error_moving_directory' => 'Hiba a(z) :dir könyvtár áthelyezésekor.',
'error_deleting_directory' => 'Hiba a(z) :dir eredeti könyvtár áthelyezésekor.',
'path' => 'Elérési út'
],
'component' => [
@ -214,7 +214,7 @@ return [
'alias' => 'Alias',
'alias_description' => 'Ennek a komponensnek a lap vagy az elrendezés kódjában való használatkor adott egyedi név.',
'validation_message' => 'A komponens aliasok kötelezőek, és csak latin szimbólumokat, számokat, valamint aláhúzásjeleket tartalmazhatnak. Az aliasoknak latin szimbólummal kell kezdődniük.',
'invalid_request' => 'A sablon érvénytelen komponensadatok miatt nem menthető.',
'invalid_request' => 'A sablon érvénytelen komponens adatok miatt nem menthető.',
'no_records' => 'Nem találhatók komponensek',
'not_found' => "A(z) ':name' komponens nem található.",
'method_not_found' => "A(z) ':name' komponens nem tartalmaz egy ':method' metódust."
@ -222,7 +222,7 @@ return [
'template' => [
'invalid_type' => 'Ismeretlen sablontípus.',
'not_found' => 'A kért sablon nem található.',
'saved'=> 'A sablon mentése sikerült.'
'saved' => 'A módosítások sikeresen mentésre kerültek.'
],
'permissions' => [
'name' => 'Testreszabás',
@ -231,7 +231,11 @@ return [
'manage_pages' => 'Lapok kezelése',
'manage_layouts' => 'Elrendezések kezelése',
'manage_partials' => 'Részlapok kezelése',
'manage_themes' => 'Témák kezelése'
'manage_themes' => 'Témák kezelése',
'manage_media' => 'Fájlok kezelése'
],
'mediafinder' => [
'default_prompt' => 'Kattintson a(z) %s gombra új média fájl kereséséhez.'
],
'media' => [
'invalid_path' => "Érvénytelen elérési útvonal: ':path'",

View File

@ -25,6 +25,7 @@ return [
],
'settings_menu' => 'Front-end tēma',
'settings_menu_description' => 'Priekšskatiet instalētās tēmas un izvēlieties aktīvo tēmu.',
'default_tab' => 'Rekvizīti',
'name_label' => 'Nosaukums',
'name_create_placeholder' => 'Jaunas tēmas nosaukums',
'author_label' => 'Autors',
@ -38,8 +39,10 @@ return [
'dir_name_label' => 'Direktorijas nosaukums',
'dir_name_create_label' => 'Tēmas mērķdirektorija',
'theme_label' => 'Tēma',
'theme_title' => 'Tēmas',
'activate_button' => 'Aktivizēt',
'active_button' => 'Aktivizēt',
'customize_theme' => 'Pielāgot tēmu',
'customize_button' => 'Pielāgot',
'duplicate_button' => 'Dublēt',
'duplicate_title' => 'Dublēt tēmu',
@ -75,6 +78,7 @@ return [
'dir_name_invalid' => 'Nosaukums drīkst saturēt tikai skaitļus, Latīņu burtus un sekojošos simbolus: _-',
'dir_name_taken' => 'Izvēlētā tēmas mape jau pastāv.',
'find_more_themes' => 'Atrodast vairāk tēmas',
'saving' => 'Saglabājam tēmu...',
'return' => 'Atgriezties tēmu sarakstā',
],
'maintenance' => [
@ -218,7 +222,7 @@ return [
'template' => [
'invalid_type' => 'Nezināms veidnes tips.',
'not_found' => 'Pieprasītā veidne nav atrasta.',
'saved'=> 'Veidne tika veiksmīgi saglabāta.'
'saved'=> 'Fails tika veiksmīgi saglabāts.'
],
'permissions' => [
'name' => 'Cms',
@ -228,6 +232,10 @@ return [
'manage_layouts' => 'Pārvaldīt izkārtojumus',
'manage_partials' => 'Pārvaldīt daļas',
'manage_themes' => 'Pārvaldīt tēmas'
'manage_media' => 'Pārvaldīt multividi'
],
'mediafinder' => [
'default_prompt' => 'Klikšķiniet uz %s pogas, lai atrastu multividi'
],
'media' => [
'invalid_path' => "Norādīts nederīgs ceļš līdz failam: ':path'.",

View File

@ -61,11 +61,13 @@
self.triggerEvent('hidden.oc.popup')
self.$container.remove()
self.$el.data('oc.popup', null)
$(document.body).removeClass('modal-open')
})
this.$modal.on('show.bs.modal', function(){
self.isOpen = true
self.setBackdrop(true)
$(document.body).addClass('modal-open')
})
this.$modal.on('shown.bs.modal', function(){

View File

@ -8,236 +8,244 @@
+function ($) {
'use strict';
'use strict';
// MODAL CLASS DEFINITION
// ======================
// MODAL CLASS DEFINITION
// ======================
var Modal = function (element, options) {
this.options = options
this.$element = $(element)
this.$backdrop =
this.isShown = null
var Modal = function (element, options) {
this.options = options
this.$element = $(element)
this.$backdrop =
this.isShown = null
if (this.options.remote) {
this.$element
.find('.modal-content')
.load(this.options.remote, $.proxy(function () {
this.$element.trigger('loaded.bs.modal')
}, this))
}
}
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
show: true
}
Modal.prototype.toggle = function (_relatedTarget) {
return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
var that = this
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
this.$element.trigger(e)
if (this.isShown || e.isDefaultPrevented()) return
this.isShown = true
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
that.$element.appendTo(document.body) // don't move modals dom position
}
that.$element
.show()
.scrollTop(0)
if (transition) {
that.$element[0].offsetWidth // force reflow
}
that.$element
.addClass('in')
.attr('aria-hidden', false)
that.enforceFocus()
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e)
})
.emulateTransitionEnd(300) :
that.$element.focus().trigger(e)
})
}
Modal.prototype.hide = function (e) {
if (e) e.preventDefault()
e = $.Event('hide.bs.modal')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
this.escape()
$(document).off('focusin.bs.modal')
this.$element
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
.one($.support.transition.end, $.proxy(this.hideModal, this))
.emulateTransitionEnd(300) :
this.hideModal()
}
Modal.prototype.enforceFocus = function () {
$(document)
.off('focusin.bs.modal') // guard against infinite focus loop
.on('focusin.bs.modal', $.proxy(function (e) {
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
this.$element.focus()
if (this.options.remote) {
this.$element
.find('.modal-content')
.load(this.options.remote, $.proxy(function () {
this.$element.trigger('loaded.bs.modal')
}, this))
}
}, this))
}
Modal.prototype.escape = function () {
if (this.isShown && this.options.keyboard) {
this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
e.which == 27 && this.hide()
}, this))
} else if (!this.isShown) {
this.$element.off('keyup.dismiss.bs.modal')
}
}
Modal.prototype.hideModal = function () {
var that = this
this.$element.hide()
this.backdrop(function () {
that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
Modal.prototype.removeBackdrop = function () {
this.$backdrop && this.$backdrop.remove()
this.$backdrop = null
}
Modal.prototype.backdrop = function (callback) {
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus.call(this.$element[0])
: this.hide.call(this)
}, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
this.$backdrop.addClass('in')
if (!callback) return
doAnimate ?
this.$backdrop
.one($.support.transition.end, callback)
.emulateTransitionEnd(150) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
.one($.support.transition.end, callback)
.emulateTransitionEnd(150) :
callback()
} else if (callback) {
callback()
Modal.DEFAULTS = {
backdrop: true,
keyboard: true,
show: true
}
Modal.prototype.toggle = function (_relatedTarget) {
return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
}
Modal.prototype.show = function (_relatedTarget) {
var that = this
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
this.$element.trigger(e)
if (this.isShown || e.isDefaultPrevented()) return
this.isShown = true
this.escape()
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
that.$element.appendTo(document.body) // don't move modals dom position
}
that.$element
.show()
.scrollTop(0)
if (transition) {
that.$element[0].offsetWidth // force reflow
}
that.$element
.addClass('in')
.attr('aria-hidden', false)
that.enforceFocus()
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition
? that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e)
})
.emulateTransitionEnd(300)
: that.$element.focus().trigger(e)
})
}
Modal.prototype.hide = function (e) {
if (e) e.preventDefault()
e = $.Event('hide.bs.modal')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
this.escape()
$(document).off('focusin.bs.modal')
this.$element
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade')
? this.$element
.one($.support.transition.end, $.proxy(this.hideModal, this))
.emulateTransitionEnd(300)
: this.hideModal()
}
Modal.prototype.enforceFocus = function () {
$(document)
.off('focusin.bs.modal') // Guard against infinite focus loop
.on('focusin.bs.modal', $.proxy(function (e) {
if ($(e.target).hasClass('select2-search__field')) {
return // Allow select2 to be focused
}
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
this.$element.focus()
}
}, this))
}
Modal.prototype.escape = function () {
if (this.isShown && this.options.keyboard) {
this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
e.which == 27 && this.hide()
}, this))
}
else if (!this.isShown) {
this.$element.off('keyup.dismiss.bs.modal')
}
}
Modal.prototype.hideModal = function () {
var that = this
this.$element.hide()
this.backdrop(function () {
that.removeBackdrop()
that.$element.trigger('hidden.bs.modal')
})
}
Modal.prototype.removeBackdrop = function () {
this.$backdrop && this.$backdrop.remove()
this.$backdrop = null
}
Modal.prototype.backdrop = function (callback) {
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus.call(this.$element[0])
: this.hide.call(this)
}, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
this.$backdrop.addClass('in')
if (!callback) return
doAnimate ?
this.$backdrop
.one($.support.transition.end, callback)
.emulateTransitionEnd(150) :
callback()
}
else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
$.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
.one($.support.transition.end, callback)
.emulateTransitionEnd(150) :
callback()
}
else if (callback) {
callback()
}
}
}
// MODAL PLUGIN DEFINITION
// =======================
// MODAL PLUGIN DEFINITION
// =======================
var old = $.fn.modal
var old = $.fn.modal
$.fn.modal = function (option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
$.fn.modal = function (option, _relatedTarget) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.modal')
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option](_relatedTarget)
else if (options.show) data.show(_relatedTarget)
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option](_relatedTarget)
else if (options.show) data.show(_relatedTarget)
})
}
$.fn.modal.Constructor = Modal
// MODAL NO CONFLICT
// =================
$.fn.modal.noConflict = function () {
$.fn.modal = old
return this
}
// MODAL DATA-API
// ==============
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
$target
.modal(option, this)
.one('hide', function () {
$this.is(':visible') && $this.focus()
})
})
}
$.fn.modal.Constructor = Modal
// MODAL NO CONFLICT
// =================
$.fn.modal.noConflict = function () {
$.fn.modal = old
return this
}
// MODAL DATA-API
// ==============
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
if ($this.is('a')) e.preventDefault()
$target
.modal(option, this)
.one('hide', function () {
$this.is(':visible') && $this.focus()
})
})
$(document)
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
// NB: This doesn't fire when called by $.popup for some reason
$(document)
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
}(jQuery);

View File

@ -35,7 +35,7 @@
<button
type="button"
class="btn btn-primary"
onclick="retryUpdate()">
onclick="$.oc.updateProcess.retryUpdate()">
<?= e(trans('system::lang.updates.retry_label')) ?>
</button>
<button
@ -48,11 +48,9 @@
</script>
<script>
$('#executePopup').on('popupComplete', function(){
$('#executePopup').on('popupComplete', function() {
$.oc.updateProcess.execute(<?= json_encode($updateSteps) ?>)
})
</script>
<?php else: ?>

View File

@ -3,20 +3,30 @@
return [
'app' => [
'name' => 'October CMS',
'tagline' => 'Getting back to basics',
'tagline' => 'Retourner à lessentiel',
],
'locale' => [
'en' => 'Anglais',
'nl' => 'Néerlandais',
'ja' => 'Japonais',
'se' => 'Suédois',
'tr' => 'Turque',
'de' => 'Allemand',
'ru' => 'Russe',
'es' => 'Espangol',
'es-ar' => 'Espagnol (Argentine)',
'fa' => 'Persan',
'fr' => 'Français',
'hu' => 'Hongrois',
'id' => 'Indonésien',
'it' => 'Italien',
'ja' => 'Japonais',
'lv' => 'Letton',
'nb-no' => 'Norvégien (Bokmål)',
'nl' => 'Néerlandais',
'pl' => 'Polonais',
'pt-br' => 'Portugais-Brésilien',
'fa' => 'Persian',
'nb-no' => 'Norvégien (Bokmål)'
'ro' => 'Roumain',
'ru' => 'Russe',
'se' => 'Suédois',
'sk' => 'Slovaque (Slovaquie)',
'tr' => 'Turque',
'zh-cn' => 'Chinois (Chine)'
],
'directory' => [
'create_fail' => "Impossible de créer le répertoire : :name",
@ -25,7 +35,7 @@ return [
'create_fail' => "Impossible de créer le fichier : :name",
],
'combiner' => [
'not_found' => "Le fichier combiner ':name' est introuvable.",
'not_found' => "Le fichier combinateur ':name' est introuvable.",
],
'system' => [
'name' => 'Système',
@ -33,18 +43,33 @@ return [
'categories' => [
'cms' => 'CMS',
'misc' => 'Divers',
'logs' => 'Logs',
'mail' => 'Email',
'logs' => 'Journaux',
'mail' => 'E-mail',
'shop' => 'Boutique',
'team' => 'Equipe',
'team' => 'Équipe',
'users' => 'Utilisateurs',
'system' => 'Système',
'social' => 'Social',
'events' => 'Evénement',
'events' => 'Évènements',
'customers' => 'Clients',
'my_settings' => 'Mes réglages',
]
],
'theme' => [
'unnamed' => 'Thème sans nom',
'name' => [
'label' => 'Nom du thème',
'help' => 'Nommer le thème en usant dun code unique. Pour exemple, RainLab.Vanilla'
],
],
'themes' => [
'install' => 'Installer des thèmes',
'search' => 'Recherche des thème à installer…',
'installed' => 'Thèmes installés',
'no_themes' => 'Il ny a aucun thème installé depuis le site du CMS October.',
'recommended' => 'Recommandé',
'remove_confirm' => 'Confirmer la suppression de ce thème ?'
],
'plugin' => [
'unnamed' => 'Plugin sans nom',
'name' => [
@ -56,15 +81,25 @@ return [
'manage' => 'Gérer les plugins',
'enable_or_disable' => 'Activer ou désactiver',
'enable_or_disable_title' => 'Activer ou désactiver les plugins',
'install' => 'Installer des plugins',
'install_products' => 'Installer des produits',
'search' => 'Recherche des plugins à installer…',
'installed' => 'Plugins installés',
'no_plugins' => 'Il ny a aucun plugin installé depuis le site du CMS October.',
'recommended' => 'Recommandé',
'remove' => 'Supprimer',
'refresh' => 'Actualiser',
'disabled_label' => 'Désactivé',
'disabled_help' => 'Les plugins désactivés sont ignoré par l\'application.',
'selected_amount' => 'Plugins selectionés : :amount',
'disabled_help' => 'Les plugins désactivés sont ignorés par lapplication.',
'selected_amount' => 'Plugins sélectionnés : :amount',
'remove_confirm' => 'Confirmer la suppression de ce plugin ?',
'remove_success' => "Les plugins ont été supprimés avec succès.",
'refresh_confirm' => 'Confirmer ?',
'refresh_success' => "Les plugins ont été actualisés avec succès.",
'disable_confirm' => 'Confirmer ?',
'disable_success' => "Les plugins ont été désactivés avec succès.",
'enable_success' => "Les plugins ont correctement été activés avec succès.",
'enable_success' => "Les plugins ont été activés avec succès.",
'unknown_plugin' => 'Le plugin a été supprimé avec succès.'
],
'project' => [
'name' => 'Projet',
@ -74,67 +109,82 @@ return [
'none' => 'Aucun',
'id' => [
'label' => 'Projet ID',
'help' => 'Comment trouver votre project ID',
'missing' => 'Spécifier un ID de project.',
'help' => 'Comment trouver lID de son projet',
'missing' => 'Spécifier un ID de projet.',
],
'detach_confirm' => 'Êtes-vous sûr de vouloir detacher ce projet?',
'unbind_success' => 'Le projet a été detaché avec succès.',
'detach_confirm' => 'Confirmer le détachement de ce projet ?',
'unbind_success' => 'Le projet a été détaché avec succès.',
],
'settings' => [
'menu_label' => 'Réglages',
'missing_model' => 'La page de réglages nécéssite une définition de modèle.',
'update_success' => 'Les réglages pour :name ont étés correctement mis à jour.',
'return' => 'Retourner a la page des reglages système',
'not_found' => 'Les paramètres spécifiés sont introuvables.',
'missing_model' => 'La page de réglages nécessite une définition de modèle.',
'update_success' => 'Les réglages pour :name ont étés mis à jour avec succès.',
'return' => 'Retourner à la page des réglages du système',
'search' => 'Rechercher'
],
'mail' => [
'menu_label' => 'Configuration des emails',
'menu_description' => 'Gérer la configuration des emails.',
'general' => 'Generale',
'method' => 'Méthode d\'envoi',
'sender_name' => 'Nom de l\'expéditeur',
'sender_email' => 'Email de l\'expéditeur',
'log_file' => 'Journal du fichier',
'menu_label' => 'Configuration des adresses e-mails',
'menu_description' => 'Gérer la configuration des adresses e-mails.',
'general' => 'Générale',
'method' => 'Méthode denvoi',
'sender_name' => 'Nom de lexpéditeur',
'sender_email' => 'Adresse e-mail de lexpéditeur',
'php_mail' => 'Fonction mail de PHP',
'smtp' => 'SMTP',
'smtp_address' => 'Adresse SMTP',
'smtp_authorization' => 'Authentification SMTP requise',
'smtp_authorization_comment' => 'Cochez cette case si votre serveur SMTP nécéssite une authentification.',
'smtp_authorization_comment' => 'Cocher cette case si le serveur SMTP nécessite une authentification.',
'smtp_username' => 'Identifiant',
'smtp_password' => 'Mot de passe',
'smtp_port' => 'Port SMTP',
'smtp_ssl' => 'Connection SSL requise',
'smtp_ssl' => 'Connexion SSL requise',
'sendmail' => 'Sendmail',
'sendmail_path' => 'Chemin vers Sendmail',
'sendmail_path_comment' => 'Spécifiez le chemin du programme sendmail.',
'sendmail_path_comment' => 'Saisir le chemin du programme Sendmail.',
'mailgun' => 'Mailgun',
'mailgun_domain' => 'Domaine Mailgun',
'mailgun_domain_comment' => 'Saisir le nom de domaine Mailgun.',
'mailgun_secret' => 'Clé secrète Mailgun',
'mailgun_secret_comment' => 'Saisir la clé de lAPI Mailgun.',
'mandrill' => 'Mandrill',
'mandrill_secret' => 'Clé secrète Mandrill',
'mandrill_secret_comment' => 'Saisir la clé de lAPI Mandrill.',
'drivers_hint_header' => 'Les drivers ne sont pas installés',
'drivers_hint_content' => 'Cette méthode denvoi de-mails nécessite que le plugin ":plugin" soit installé avant de pouvoir envoyer des e-mails.'
],
'mail_templates' => [
'menu_label' => 'Modèles des emails',
'menu_description' => 'Gérer les modèles et layouts des emails envoyés par l\'administration.',
'menu_label' => 'Modèles des adresses e-mails',
'menu_description' => 'Gérer les modèles et maquettes des adresses e-mails envoyées par ladministration.',
'new_template' => 'Nouveau modèle',
'new_layout' => 'Nouveau Layout',
'new_layout' => 'Nouvelle maquette',
'template' => 'Modèle',
'templates' => 'Modèles',
'menu_layouts_label' => 'Layouts des emails',
'layout' => 'Layout',
'layouts' => 'Layouts',
'menu_layouts_label' => 'Maquettes des adresses e-mails',
'layout' => 'Maquette',
'layouts' => 'Maquettes',
'name' => 'Nom',
'name_comment' => 'Nom unique utilisé pour identifier ce modèle',
'code' => 'Code',
'code_comment' => 'Code unique utilisé pour identifier ce modèle',
'subject' => 'Sujet',
'subject_comment' => 'Sujet de l\'Email',
'subject_comment' => 'Sujet de le-mail',
'description' => 'Description',
'content_html' => 'HTML',
'content_css' => 'CSS',
'content_text' => 'Plaintext',
'content_text' => 'Texte brut',
'test_send' => 'Envoyer un message de test',
'test_success' => 'Le message de test a été envoyé avec succès.',
'return' => 'Retour à la liste des modèles.'
],
'install' => [
'project_label' => 'Attacher un project',
'project_label' => 'Attacher un projet',
'plugin_label' => 'Installer un plugin',
'missing_plugin_name' => 'Merci de spécifier le nom d\'un Plugin à installer.',
'install_completing' => 'Fin du processus d\'installation',
'theme_label' => 'Installer un thème',
'missing_plugin_name' => 'Saisir le nom dun plugin à installer.',
'missing_theme_name' => 'Saisir le nom dun thème à installer.',
'install_completing' => 'Fin du processus dinstallation',
'install_success' => 'Le plugin a été installé avec succès.',
],
'updates' => [
@ -152,8 +202,11 @@ return [
'core_build_old' => 'Version actuelle :build',
'core_build_new' => 'Version :build',
'core_build_new_help' => 'Une nouvelle version est disponible.',
'core_downloading' => 'Téléchargement des fichiers de l\'application',
'core_extracting' => 'Décompression des fichiers de l\'application',
'core_downloading' => 'Téléchargement des fichiers de lapplication',
'core_extracting' => 'Décompression des fichiers de lapplication',
'plugins' => 'Plugins',
'themes' => 'Thèmes',
'disabled' => 'Désactivé',
'plugin_downloading' => 'Téléchargement du plugin : :name',
'plugin_extracting' => 'Décompression du plugin : :name',
'plugin_version_none' => 'Nouveau plugin',
@ -165,64 +218,75 @@ return [
'theme_extracting' => 'Décompression du thème : :name',
'update_label' => 'Mettre à jour',
'update_completing' => 'Finalisation du processus de mise à jour',
'update_loading' => 'Chargement des mises à jour disponibles...',
'update_loading' => 'Chargement des mises à jour disponibles',
'update_success' => 'Mise à jour terminée avec succès.',
'update_failed_label' => 'Echec de la mise à jour',
'update_failed_label' => 'Échec de la mise à jour',
'force_label' => 'Forcer la mise à jour',
'found' => [
'label' => 'Nouvelle mise à jour disponible!',
'help' => 'Cliquez sur Mettre à jour pour démarrer le processus.',
'label' => 'Nouvelle mise à jour disponible !',
'help' => 'Cliquer sur « Mettre à jour » pour démarrer le processus.',
],
'none' => [
'label' => 'Aucune mise à jour disponible.',
'help' => 'Aucune donnée de mise à jour applicable trouvée.',
'label' => 'Aucune mise à jour nest disponible.',
'help' => 'Aucune nouvelle mise à jour na été trouvée.',
],
],
'server' => [
'connect_error' => 'Erreur lors de la connection au serveur.',
'response_not_found' => 'La mise à jour du serveur n\'a pas été trouvé.',
'connect_error' => 'Erreur lors de la connexion au serveur.',
'response_not_found' => 'La mise à jour du serveur na pas été trouvée.',
'response_invalid' => 'Réponse invalide du serveur.',
'response_empty' => 'Réponse vide du serveur',
'file_error' => 'Erreur du serveur lorsqu\'il tenta de délivrer le paquet.',
'file_corrupt' => 'Le fichier venant du serveur est corrompu.',
'file_error' => 'Erreur du serveur lors de la transmission du paquet.',
'file_corrupt' => 'Le fichier provenant du serveur est corrompu.',
],
'behavior' => [
'missing_property' => 'Class :class must define property $:property used by :behavior behavior.',
'missing_property' => 'La classe :class doit définir la propriété $:property utilisée par le fonctionnement :behavior.',
],
'config' => [
'not_found' => 'Unable to find configuration file :file defined for :location.',
'required' => "Configuration used in :location must supply a value ':property'.",
'not_found' => 'Impossible de trouver le fichier de configuration :file défini dans :location.',
'required' => "La configuration utilisée dans :location doit fournir une valeur ':property'.",
],
'zip' => [
'extract_failed' => "Impossible de décompresser le fichier ':file'.",
],
'event_log' => [
'hint' => 'Ce journal affiche une liste des erreurs potentielles dans l\'application, telle que des exceptions et des informations de déboggage.',
'menu_label' => 'Journal des événements',
'menu_description' => 'Affiche les événements du système avec la date et details.',
'empty_link' => 'Vider le journal des événements',
'empty_loading' => 'Vidage du journal des évènements...',
'empty_success' => 'Le journal des évènement a été vidé avec succès.',
'return_link' => 'Retour au journal des événements',
'hint' => 'Ce journal affiche une liste des erreurs potentielles dans lapplication, telles que les exceptions et les informations de débogage.',
'menu_label' => 'Journal des évènements',
'menu_description' => 'Affiche les évènements du système comprenant la date et les détails.',
'empty_link' => 'Purger le journal des évènements',
'empty_loading' => 'Purge du journal des évènements…',
'empty_success' => 'Le journal des évènements a été purgé avec succès.',
'return_link' => 'Retour au journal des évènements',
'id' => 'ID',
'id_label' => 'événement ID',
'id_label' => 'ID de lévènement',
'created_at' => 'Date & heure',
'message' => 'Message',
'level' => 'Level',
'level' => 'Niveau',
],
'request_log' => [
'hint' => 'Ce journal affiche une liste de requêtes potentiellement suspectes. par exemple, si un visiteur ouvre une page de CMS introuvable, une ligne avec le status code 404 est alors crée.',
'hint' => 'Ce journal affiche une liste de requêtes potentiellement suspectes. par exemple, si un visiteur ouvre une page introuvable du CMS, une ligne avec le statut code 404 est alors créée.',
'menu_label' => 'Journal des requêtes',
'menu_description' => 'Affiche les requêtes erronées ou redirigées, comme les erreurs 404.',
'empty_link' => 'Vider le journal des requêtes',
'empty_loading' => 'Vidage du journal des requêtes...',
'empty_success' => 'Le journal des requêtes a été vidé avec succès.',
'empty_link' => 'Purger le journal des requêtes',
'empty_loading' => 'Purge du journal des requêtes…',
'empty_success' => 'Le journal des requêtes a été purgé avec succès.',
'return_link' => 'Retour au journal des requêtes',
'id' => 'ID',
'id_label' => 'Log ID',
'id_label' => 'ID du journal',
'count' => 'Compteur',
'referer' => 'Référer',
'url' => 'URL',
'referer' => 'Référents',
'url' => 'Adresse URL',
'status_code' => 'Statut',
],
];
'permissions' => [
'name' => 'Système',
'manage_system_settings' => 'Gérer les paramètres du système',
'manage_software_updates' => 'Gérer les mises à jour du logiciel',
'access_logs' => 'Voir les journaux système',
'manage_mail_templates' => 'Gérer les modèles des e-mails',
'manage_mail_settings' => 'Gérer les paramètres e-mail',
'manage_other_administrators' => 'Gérer les autres paramètres administrateur',
'view_the_dashboard' => 'Voir le tableau de bord',
'manage_branding' => 'Personnaliser linterface dadministration'
]
];

View File

@ -13,61 +13,61 @@ return array(
|
*/
"accepted" => "Le :attribute doit être accepté.",
"active_url" => "Le :attribute n'est pas une URL valide.",
"after" => "Le :attribute doit être une date après le :date.",
"alpha" => "Le :attribute ne peut contenir que des lettres.",
"alpha_dash" => "Le :attribute ne peut contenir que des lettres, des chiffres et des tirets.",
"alpha_num" => "Le :attribute ne peut contenir que des lettres et des chiffres.",
"array" => "Le :attribute doit être un groupe.",
"before" => "Le :attribute doit être une date avant le :date.",
"accepted" => 'Le :attribute doit être accepté.',
"active_url" => 'Le :attribute nest pas une URL valide.',
"after" => 'Le :attribute doit être une date après le :date.',
"alpha" => 'Le :attribute ne peut contenir que des lettres.',
"alpha_dash" => 'Le :attribute ne peut contenir que des lettres, des chiffres et des tirets.',
"alpha_num" => 'Le :attribute ne peut contenir que des lettres et des chiffres.',
"array" => 'Le :attribute doit être un groupe.',
"before" => 'Le :attribute doit être une date avant le :date.',
"between" => array(
"numeric" => "Le :attribute doit être compris entre :min - :max.",
"file" => "Le :attribute doit être compris entre :min - :max kilobytes.",
"string" => "Le :attribute doit être compris entre :min - :max caractères.",
"array" => "Le :attribute doit être compris entre :min - :max objets.",
"numeric" => 'Le :attribute doit être compris entre :min - :max.',
"file" => 'Le :attribute doit être compris entre :min - :max kilooctets.',
"string" => 'Le :attribute doit être compris entre :min - :max caractères.',
"array" => 'Le :attribute doit être compris entre :min - :max objets.',
),
"confirmed" => "Le :attribute de confirmation ne correspond pas.",
"date" => "Le :attribute n'est pas une date valide.",
"date_format" => "Le :attribute ne correspond pas au format :format.",
"different" => "Le :attribute et :other doivent être différents.",
"digits" => "Le :attribute doit être de :digits chiffres.",
"digits_between" => "Le :attribute doit être compris entre :min et :max chiffres.",
"email" => "Le format de l':attribute n'est pas valide.",
"exists" => "Le :attribute sélectionné n'est pas valide.",
"image" => "Le :attribute doit être une image.",
"in" => "Le :attribute sélectionné n'est pas valide.",
"integer" => "Le :attribute doit être un entier.",
"ip" => "Le :attribute doit être une adresse IP valide.",
"confirmed" => 'Le :attribute de confirmation ne correspond pas.',
"date" => 'Le :attribute nest pas une date valide.',
"date_format" => 'Le :attribute ne correspond pas au format :format.',
"different" => 'Le :attribute et :other doivent être différents.',
"digits" => 'Le :attribute doit être de :digits chiffres.',
"digits_between" => 'Le :attribute doit être compris entre :min et :max chiffres.',
"email" => 'Le format de l:attribute nest pas valide.',
"exists" => 'Le :attribute sélectionné nest pas valide.',
"image" => 'Le :attribute doit être une image.',
"in" => 'Le :attribute sélectionné nest pas valide.',
"integer" => 'Le :attribute doit être un entier.',
"ip" => 'Le :attribute doit être une adresse IP valide.',
"max" => array(
"numeric" => "Le :attribute ne peut pas être supérieure à :max.",
"file" => "Le :attribute ne peut pas être supérieure à :max kilobytes.",
"string" => "Le :attribute ne peut pas être supérieure à :max caractères.",
"array" => "Le :attribute ne peut pas être supérieure à :max objets.",
"numeric" => 'Le :attribute ne peut pas être supérieure à :max.',
"file" => 'Le :attribute ne peut pas être supérieure à :max kilooctets.',
"string" => 'Le :attribute ne peut pas être supérieure à :max caractères.',
"array" => 'Le :attribute ne peut pas être supérieure à :max objets.',
),
"mimes" => "Le :attribute doit être un fichier de type: :values.",
"mimes" => 'Le :attribute doit être un fichier de type: :values.',
"min" => array(
"numeric" => "Le :attribute doit être au minimum de :min.",
"file" => "Le :attribute doit être au minimum de :min kilobytes.",
"string" => "Le :attribute doit être au minimum de :min caractères.",
"array" => "Le :attribute doit être au minimum de :min objets.",
"numeric" => 'Le :attribute doit être au minimum de :min.',
"file" => 'Le :attribute doit être au minimum de :min kilooctets.',
"string" => 'Le :attribute doit être au minimum de :min caractères.',
"array" => 'Le :attribute doit être au minimum de :min objets.',
),
"not_in" => "Le :attribute sélectionné n'est pas valide.",
"numeric" => "Le :attribute doit être un nombre.",
"regex" => "Le format de l':attribute n'est pas valide.",
"required" => "Le champ: :attribute est obligatoire.",
"required_if" => "Le champ: :attribute est obligatoire quand :other est :value.",
"required_with" => "Le champ: :attribute est obligatoire quand :values est présent.",
"required_without" => "Le champ: :attribute est obligatoire quand :values est absent.",
"same" => "Le :attribute et :other doivent correspondre.",
"not_in" => 'Le :attribute sélectionné nest pas valide.',
"numeric" => 'Le :attribute doit être un nombre.',
"regex" => 'Le format de l:attribute nest pas valide.',
"required" => 'Le champ: :attribute est obligatoire.',
"required_if" => 'Le champ: :attribute est obligatoire quand :other est :value.',
"required_with" => 'Le champ: :attribute est obligatoire quand :values est présent.',
"required_without" => 'Le champ: :attribute est obligatoire quand :values est absent.',
"same" => 'Le :attribute et :other doivent correspondre.',
"size" => array(
"numeric" => "Le :attribute doit être de :size.",
"file" => "Le :attribute doit être de :size kilobytes.",
"string" => "Le :attribute doit être de :size caractères.",
"array" => "Le :attribute doit contenir :size objets.",
"numeric" => 'Le :attribute doit être de :size.',
"file" => 'Le :attribute doit être de :size kilooctets.',
"string" => 'Le :attribute doit être de :size caractères.',
"array" => 'Le :attribute doit contenir :size objets.',
),
"unique" => "Le :attribute a déjà été pris.",
"url" => "Le format de l':attribute n'est pas valide.",
"unique" => 'Le :attribute a déjà été pris.',
"url" => 'Le format de l:attribute nest pas valide.',
/*
|--------------------------------------------------------------------------
@ -95,4 +95,4 @@ return array(
'attributes' => array(),
);
);

View File

@ -16,6 +16,7 @@ return [
'id' => 'Indonéz',
'it' => 'Olasz',
'ja' => 'Japán',
'lv' => 'Litván',
'nb-no' => 'Norvég',
'nl' => 'Holland',
'pl' => 'Lengyel',
@ -92,7 +93,7 @@ return [
'disabled_help' => 'A letiltott bővítményeket az alkalmazás figyelmen kívül hagyja.',
'selected_amount' => 'Kijelölt bővítmények: :amount',
'remove_confirm' => 'Valóban törölni akarja a kijelölt bővítményeket?',
'remove_success' => 'A bővítmények sikeresen eltávolításra kerültek',
'remove_success' => 'A bővítmények sikeresen eltávolításra kerültek.',
'refresh_confirm' => 'Valóban frissíteni akarja a kijelölt bővítményeket?',
'refresh_success' => 'A bővítmények sikeresen frissítésre kerültek.',
'disable_confirm' => 'Valóban tiltani akarja a kijelölt bővítményeket?',
@ -108,7 +109,7 @@ return [
'none' => 'Nincs',
'id' => [
'label' => 'Projektazonosító',
'help' => 'Hogyan található meg a projektazonosító',
'help' => 'Hogyan található meg a projektazonosító.',
'missing' => 'Adjon meg egy használandó projektazonosítót.'
],
'detach_confirm' => 'Biztosan le akarja választani ezt a projektet?',
@ -162,9 +163,9 @@ return [
'layout' => 'Elrendezés',
'layouts' => 'Elrendezések',
'name' => 'Név',
'name_comment' => 'Erre a sablonra való hivatkozásként használt egyedi név',
'name_comment' => 'Erre a sablonra való hivatkozásként használt egyedi név.',
'code' => 'Kód',
'code_comment' => 'Erre a sablonra való hivatkozásként használt egyedi kód',
'code_comment' => 'Erre a sablonra való hivatkozásként használt egyedi kód.',
'subject' => 'Tárgy',
'subject_comment' => 'Az e-mail üzenet tárgya',
'description' => 'Leírás',
@ -195,9 +196,9 @@ return [
'plugin_description' => 'Leírás',
'plugin_version' => 'Verzió',
'plugin_author' => 'Fejlesztő',
'core_build' => 'Jelenlegi verzió',
'core_build' => 'Verzió',
'core_build_old' => 'Jelenlegi verzió: :build',
'core_build_new' => 'Verzió: :build',
'core_build_new' => 'Új verzió: :build',
'core_build_new_help' => 'Elérhető a legújabb hivatalos kiadás.',
'core_downloading' => 'Alkalmazás fájlok letöltése...',
'core_extracting' => 'Alkalmazás fájlok kicsomagolása...',
@ -253,9 +254,9 @@ return [
'empty_link' => 'Eseménynapló kiürítése',
'empty_loading' => 'Az eseménynapló kiürítése...',
'empty_success' => 'Az eseménynapló kiürítése sikerült.',
'return_link' => 'Vissza az eseménynaplóhoz',
'return_link' => 'Vissza az eseménynapló listához',
'id' => 'Azonosító',
'id_label' => 'Eseményazonosító',
'id_label' => 'Esemény azonosító',
'created_at' => 'Dátum és idő',
'message' => 'Üzenet',
'level' => 'Szint'
@ -267,12 +268,12 @@ return [
'empty_link' => 'Kérelemnapló kiürítése',
'empty_loading' => 'A kérelemnapló kiürítése...',
'empty_success' => 'A kérelemnapló kiürítése megtörtént.',
'return_link' => 'Vissza a kérelemnaplóhoz',
'return_link' => 'Vissza a kérelemnapló listához',
'id' => 'Azonosító',
'id_label' => 'Napló azonosító',
'count' => 'Számláló',
'referer' => 'Hivatkozók',
'url' => 'URL cím',
'url' => 'Webcím',
'status_code' => 'Állapot'
],
'permissions' => [

View File

@ -46,6 +46,7 @@ return array(
"array" => ":attribute nedrīkst pārsniegt :max objektus.",
),
"mimes" => ":attribute jabūt failam ar tipu: :values.",
"extensions" => ":attribute jābūt ar paplašinājumu: :values.",
"min" => array(
"numeric" => ":attribute jābūt vismaz :min.",
"file" => ":attribute jabūt vismaz :min kilobaitiem.",