diff --git a/.htaccess b/.htaccess index e14522250..c783fea3b 100644 --- a/.htaccess +++ b/.htaccess @@ -5,6 +5,12 @@ RewriteEngine On + ## + ## You may need to uncomment the following line for some hosting environments, + ## if you have installed to a subdirectory, enter the name here also. + ## + # RewriteBase / + ## ## Handle resource requests ## diff --git a/README.md b/README.md index 5caab8032..d771c64e7 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Please follow the following guides and code standards: ### Foundation library -The CMS uses [Laravel](http://four.laravel.com) as a foundation PHP framework. +The CMS uses [Laravel](http://laravel.com) as a foundation PHP framework. ### Contact @@ -29,3 +29,7 @@ You can communicate with us using the following mediums: * [Follow us on Twitter](http://twitter.com/octobercms) for announcements and updates. * [Follow us on Facebook](http://facebook.com/octobercms) for announcements and updates. * [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/?nick=Octonaut|?#october) to chat with us. + +### License + +The OctoberCMS platform is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). diff --git a/modules/backend/behaviors/FormController.php b/modules/backend/behaviors/FormController.php index 73f8bce48..22c6f1da3 100644 --- a/modules/backend/behaviors/FormController.php +++ b/modules/backend/behaviors/FormController.php @@ -79,11 +79,11 @@ class FormController extends ControllerBehavior */ $this->formWidget = $this->makeWidget('Backend\Widgets\Form', $config); - $this->formWidget->bind('form.extendFieldsBefore', function($host) { + $this->formWidget->bindEvent('form.extendFieldsBefore', function($host) { $this->controller->formExtendFieldsBefore($host); }); - $this->formWidget->bind('form.extendFields', function($host) { + $this->formWidget->bindEvent('form.extendFields', function($host) { $this->controller->formExtendFields($host); }); diff --git a/modules/backend/behaviors/ListController.php b/modules/backend/behaviors/ListController.php index d2d19e80e..ef93ddf20 100644 --- a/modules/backend/behaviors/ListController.php +++ b/modules/backend/behaviors/ListController.php @@ -128,23 +128,23 @@ class ListController extends ControllerBehavior /* * Extensibility helpers */ - $widget->bind('list.extendQueryBefore', function($host, $query) use ($definition) { + $widget->bindEvent('list.extendQueryBefore', function($host, $query) use ($definition) { $this->controller->listExtendQueryBefore($query, $definition); }); - $widget->bind('list.extendQuery', function($host, $query) use ($definition) { + $widget->bindEvent('list.extendQuery', function($host, $query) use ($definition) { $this->controller->listExtendQuery($query, $definition); }); - $widget->bind('list.injectRowClass', function($host, $record) use ($definition) { + $widget->bindEvent('list.injectRowClass', function($host, $record) use ($definition) { return $this->controller->listInjectRowClass($record, $definition); }); - $widget->bind('list.overrideColumnValue', function($host, $record, $column, $value) use ($definition) { + $widget->bindEvent('list.overrideColumnValue', function($host, $record, $column, $value) use ($definition) { return $this->controller->listOverrideColumnValue($record, $column->columnName, $definition); }); - $widget->bind('list.overrideHeaderValue', function($host, $column, $value) use ($definition) { + $widget->bindEvent('list.overrideHeaderValue', function($host, $column, $value) use ($definition) { return $this->controller->listOverrideHeaderValue($column->columnName, $definition); }); @@ -162,7 +162,7 @@ class ListController extends ControllerBehavior * Link the Search Widget to the List Widget */ if ($searchWidget = $toolbarWidget->getSearchWidget()) { - $searchWidget->bind('search.submit', function() use ($widget, $searchWidget) { + $searchWidget->bindEvent('search.submit', function() use ($widget, $searchWidget) { $widget->setSearchTerm($searchWidget->getActiveTerm()); return $widget->onRender(); }); diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 4f441618e..e36e2c8ad 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -498,7 +498,7 @@ class RelationController extends ControllerBehavior $config->showCheckboxes = true; $widget = $this->makeWidget('Backend\Widgets\Lists', $config); - $widget->bind('list.extendQueryBefore', function($host, $query) { + $widget->bindEvent('list.extendQueryBefore', function($host, $query) { $this->relationObject->setQuery($query); $this->relationObject->addConstraints(); }); @@ -572,7 +572,7 @@ class RelationController extends ControllerBehavior * Exclude exisiting relationships */ if ($this->manageMode == 'pivot' || $this->manageMode == 'list') { - $widget->bind('list.extendQueryBefore', function($host, $query) { + $widget->bindEvent('list.extendQueryBefore', function($host, $query) { /* * Where not in the current list of related records diff --git a/modules/backend/controllers/groups/_list_toolbar.htm b/modules/backend/controllers/groups/_list_toolbar.htm index adf5fa8e7..5a25508df 100644 --- a/modules/backend/controllers/groups/_list_toolbar.htm +++ b/modules/backend/controllers/groups/_list_toolbar.htm @@ -1,3 +1,3 @@
diff --git a/modules/backend/controllers/groups/create.htm b/modules/backend/controllers/groups/create.htm index 96b5a6141..5f9bd728a 100644 --- a/modules/backend/controllers/groups/create.htm +++ b/modules/backend/controllers/groups/create.htm @@ -1,7 +1,7 @@= e(trans('backend::lang.user.group.return')) ?>
\ No newline at end of file diff --git a/modules/backend/controllers/groups/index.htm b/modules/backend/controllers/groups/index.htm index 04b0f32ae..c3dccaf27 100644 --- a/modules/backend/controllers/groups/index.htm +++ b/modules/backend/controllers/groups/index.htm @@ -1,8 +1,8 @@ - + = $this->listRender() ?> diff --git a/modules/backend/controllers/groups/update.htm b/modules/backend/controllers/groups/update.htm index 63126567d..2e42cf76e 100644 --- a/modules/backend/controllers/groups/update.htm +++ b/modules/backend/controllers/groups/update.htm @@ -1,7 +1,7 @@= e(trans('backend::lang.user.group.return')) ?>
\ No newline at end of file diff --git a/modules/backend/controllers/users/_list_toolbar.htm b/modules/backend/controllers/users/_list_toolbar.htm index ab2166728..3563ce7ed 100644 --- a/modules/backend/controllers/users/_list_toolbar.htm +++ b/modules/backend/controllers/users/_list_toolbar.htm @@ -1,6 +1,6 @@Return to the administrator list
+= e(trans('backend::lang.user.return')) ?>
\ No newline at end of file diff --git a/modules/backend/controllers/users/mysettings.htm b/modules/backend/controllers/users/mysettings.htm index 15d42c366..157c5edd2 100644 --- a/modules/backend/controllers/users/mysettings.htm +++ b/modules/backend/controllers/users/mysettings.htm @@ -1,6 +1,6 @@Return to the administrator list
+= e(trans('backend::lang.user.return')) ?>
\ No newline at end of file diff --git a/modules/backend/controllers/users/update.htm b/modules/backend/controllers/users/update.htm index 5d082b9f0..7a0281ae2 100644 --- a/modules/backend/controllers/users/update.htm +++ b/modules/backend/controllers/users/update.htm @@ -1,6 +1,6 @@Return to the administrator list
+= e(trans('backend::lang.user.return')) ?>
\ No newline at end of file diff --git a/modules/backend/database/migrations/2014_01_04_000005_Db_Backend_User_Preferences.php b/modules/backend/database/migrations/2014_01_04_000005_Db_Backend_User_Preferences.php index 397bead9b..b1884195c 100644 --- a/modules/backend/database/migrations/2014_01_04_000005_Db_Backend_User_Preferences.php +++ b/modules/backend/database/migrations/2014_01_04_000005_Db_Backend_User_Preferences.php @@ -16,7 +16,7 @@ class DbBackendUserPreferences extends Migration $table->string('group'); $table->string('item'); $table->text('value')->nullable(); - $table->index(['user_id', 'namespace', 'group', 'item'], 'key_index'); + $table->index(['user_id', 'namespace', 'group', 'item'], 'user_item_index'); }); } diff --git a/modules/backend/lang/de/lang.php b/modules/backend/lang/de/lang.php new file mode 100644 index 000000000..f0bf2e628 --- /dev/null +++ b/modules/backend/lang/de/lang.php @@ -0,0 +1,139 @@ + [ + 'invalid_type' => 'Ungültiger Feldtyp :type.', + 'options_method_not_exists' => 'Die Model-Klasse :model muss eine Methode :method() mit Rückgabe der Werte von ":field" besitzen.', + ], + 'widget' => [ + 'not_registered' => "Ein Widget namens ':name' wurde nicht registriert", + 'not_bound' => "Ein Widget mit dem Klassennamen ':name' wurde nicht mit dem Controller verbunden", + ], + 'page' => [ + 'untitled' => "Unbenannt", + ], + 'partial' => [ + 'not_found' => "Das Partial ':name' wurde nicht gefunden.", + ], + 'account' => [ + 'sign_out' => 'Abmelden', + 'login' => 'Anmelden', + 'reset' => 'Zurücksetzen', + 'restore' => 'Wiederherstellen', + 'login_placeholder' => 'Benutzername', + 'password_placeholder' => 'Passwort', + 'forgot_password' => "Passwort vergessen?", + 'enter_email' => "Bitte E-Mail-Adresse eingeben", + 'enter_login' => "Bitte Benutzernamen eingeben", + 'email_placeholder' => "E-Mail", + 'enter_new_password' => "Bitte ein neues Passwort eingeben", + 'password_reset' => "Passwort zurücksetzen", + 'restore_success' => "Eine E-Mail mit weiteren Anweisungen zum Zurücksetzen Ihres Passworts wurde an Sie versandt", + 'restore_error' => "Ein Benutzer mit dem Namen ':login' wurde nicht gefunden", + 'reset_success' => "Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.", + 'reset_error' => "Konnte Passwort nicht zurücksetzen. Bitte erneut versuchen!", + 'reset_fail' => "Passwort-Zurücksetzung nicht möglich!", + 'apply' => 'Anwenden', + 'cancel' => 'Abbrechen', + 'delete' => 'Löschen', + 'ok' => 'OK', + ], + 'dashboard' => [ + 'menu_label' => 'Dashboard', + ], + 'user' => [ + 'name' => 'Administrator', + 'menu_label' => 'Administratoren', + 'list_title' => 'Administratoren verwalten', + 'new' => 'New Administrator', + 'login' => "Anmelden", + 'first_name' => "Vorname", + 'last_name' => "Nachname", + 'full_name' => "Kompletter Name", + 'email' => "E-Mail", + 'groups' => "Gruppen", + 'groups_comment' => "Geben Sie hier die Gruppenzugehörigkeit an", + 'avatar' => "Avatar", + 'password' => "Passwort", + 'password_confirmation' => "Passwort bestätigen", + 'superuser' => "Super User", + 'superuser_comment' => "Bestätigen Sie hier, um dem Nutzer Vollzugriff zu geben", + 'send_invite' => 'Einladung per E-Mail versenden', + 'send_invite_comment' => 'Hier bestätigen, dass eine Einladung per E-Mail erfolgt', + 'delete_confirm' => 'Do you really want to delete this administrator?', + 'return' => 'Return to the administrator list', + 'group' => [ + 'name' => 'Gruppe', + 'name_field' => 'Name', + 'menu_label' => 'Gruppen', + 'list_title' => 'Gruppen verwalten', + 'new' => 'New Administrator Group', + 'delete_confirm' => 'Do you really want to delete this administrator group?', + 'return' => 'Return to the group list', + ], + 'preferences' => [ + 'not_authenticated' => 'Zum Speichern oder Anzeigen dieser Einstellungen liegt kein Nutzerkonto vor' + ] + ], + 'list' => [ + 'default_title' => 'Auflisten', + 'search_prompt' => 'Suchen...', + 'no_records' => 'Keine Ergebnisse für diese Ansicht gefunden', + 'missing_model' => 'In :class benutztes Lisstenverhalten hat kein Model definiert.', + 'missing_column' => 'Keine Spaltendefinition für :columns.', + 'missing_columns' => 'In :class benutzte Liste behinhaltet keine Spalten', + 'missing_definition' => "Der Liste fehlt eine Spalte für ':field'.", + 'behavior_not_ready' => 'Listenverhalten kann nicht initialisiert werden, überprüfen Sie den Aufruf von makeLists() in Ihrem Controller.', + ], + 'form' => [ + 'create_title' => "Neuer :name", + 'update_title' => "Bearbeite :name", + 'preview_title' => "Vorschau für :name", + 'create_success' => ':name wurde erfolgreich erzeugt', + 'update_success' => ':name wurde erfolgreich aktualisiert', + 'delete_success' => ':name wurde erfolgreich gelöscht', + 'missing_id' => "Formulardatensatz-ID (Form record ID) fehlt.", + 'missing_model' => 'In :class genutztes Formularverhalten (behaviour) hat kein definiertes Model', + 'missing_definition' => "Formverhalten fehlt ein Feld für ':field'.", + 'not_found' => 'Formulareintrag mit der ID :id kann nicht gefunden werden.', + 'create' => 'Create', + 'create_and_close' => 'Create and close', + 'creating' => 'Creating...', + 'save' => 'Speichern', + 'save_and_close' => 'Speichern und schließen', + 'saving' => 'Wird gespeichert...', + 'delete' => 'Löschen', + 'deleting' => 'Deleting...', + 'undefined_tab' => 'Divers', + 'field_off' => 'Aus', + 'field_on' => 'An', + 'apply' => 'Anwenden', + 'cancel' => 'Abbrechen', + 'close' => 'Schließen', + 'ok' => 'OK', + 'or' => 'or', + 'confirm_tab_close' => 'Wollen Sie den Tab wirklich schließen? Ungespeicherte Änderungen gehen verloren.', + 'behavior_not_ready' => 'Formularverhalten kann nicht initialisiert werden, überprüfen Sie den Aufruf von makeLists() in Ihrem Controller.', + ], + 'relation' => [ + 'missing_definition' => "Verhalten (behaviour) der Verbindung umfasst keine Definition für ':field'.", + 'missing_model' => "Verhalten (behaviour) der Verbindung, die in :class benutzt wird, hat kein definiertes Model", + 'invalid_action_single' => "Dieser Vorgang kann nicht auf eine Einwege-Verbindung (singular) angewendet werden.", + 'invalid_action_multi' => "Dieser Vorgang kann nicht auf eine Mehrwege-Verbindung (multiple) angewendet werden.", + 'add' => "Hinzufügen", + 'add_name' => ":name hinzufügen", + 'create' => "Erstellen", + 'create_name' => "Erstelle :name", + 'remove' => "Entfernen", + 'remove_name' => ":name entfernen", + 'delete' => "Löschen", + 'delete_name' => ":name löschen", + ], + 'model' => [ + 'name' => "Model", + 'not_found' => "Model ':class' mit ID :id konnte nicht gefunden werden", + 'missing_id' => "Für diesen Model-Datensatz ist keine ID angegeben", + 'missing_relation' => "Model ':class' hat keine definierte Verbindung ':relation'.", + 'invalid_class' => "In :class benutztes Model :model ist ungültig, da es von der Klasse \Model abgeleitet sein muss (inherit).", + ], +]; \ No newline at end of file diff --git a/modules/backend/lang/en/lang.php b/modules/backend/lang/en/lang.php index 7f1fef0ef..c206c881d 100644 --- a/modules/backend/lang/en/lang.php +++ b/modules/backend/lang/en/lang.php @@ -45,6 +45,7 @@ return [ 'name' => 'Administrator', 'menu_label' => 'Administrators', 'list_title' => 'Manage Administrators', + 'new' => 'New Administrator', 'login' => "Login", 'first_name' => "First Name", 'last_name' => "Last Name", @@ -59,11 +60,16 @@ return [ 'superuser_comment' => "Check this box to allow this person to access all areas.", 'send_invite' => 'Send invitation by email', 'send_invite_comment' => 'Use this checkbox to send an invitation to the user by email', + 'delete_confirm' => 'Do you really want to delete this administrator?', + 'return' => 'Return to the administrator list', 'group' => [ 'name' => 'Group', 'name_field' => 'Name', 'menu_label' => 'Groups', 'list_title' => 'Manage Groups', + 'new' => 'New Administrator Group', + 'delete_confirm' => 'Do you really want to delete this administrator group?', + 'return' => 'Return to the group list', ], 'preferences' => [ 'not_authenticated' => 'There is no an authenticated user to load or save preferences for.' @@ -90,17 +96,22 @@ return [ 'missing_model' => 'Form behavior used in :class does not have a model defined.', 'missing_definition' => "Form behavior does not contain a field for ':field'.", 'not_found' => 'Form record with an ID of :id could not be found.', + 'create' => 'Create', + 'create_and_close' => 'Create and close', + 'creating' => 'Creating...', 'save' => 'Save', 'save_and_close' => 'Save and close', 'saving' => 'Saving...', + 'delete' => 'Delete', + 'deleting' => 'Deleting...', 'undefined_tab' => 'Misc', 'field_off' => 'Off', 'field_on' => 'On', 'apply' => 'Apply', 'cancel' => 'Cancel', 'close' => 'Close', - 'delete' => 'Delete', 'ok' => 'OK', + 'or' => 'or', 'confirm_tab_close' => 'Do you really want to close the tab? Unsaved changes will be lost.', 'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.', ], diff --git a/modules/backend/lang/nl/lang.php b/modules/backend/lang/nl/lang.php index 5ef91b7ef..569f86262 100644 --- a/modules/backend/lang/nl/lang.php +++ b/modules/backend/lang/nl/lang.php @@ -44,7 +44,8 @@ return [ 'user' => [ 'name' => 'Beheerder', 'menu_label' => 'Beheerders', - 'list_title' => 'Beheerders beheren', + 'list_title' => 'Beheer Beheerders', + 'new' => 'Nieuwe Beheerder', 'login' => "Gebruikersnaam", 'first_name' => "Voornaam", 'last_name' => "Achternaam", @@ -59,11 +60,16 @@ return [ 'superuser_comment' => "Vink deze optie aan om de gebruiker volledige rechten tot het systeem te geven.", 'send_invite' => 'Stuur uitnodiging per e-mail', 'send_invite_comment' => 'Vink deze optie aan om de gebruiker een uitnodiging per e-mail te sturen', + 'delete_confirm' => 'Weet je zeker dat je deze beheerder wilt verwijderen?', + 'return' => 'Terug naar beheerdersoverzicht', 'group' => [ 'name' => 'Groep', 'name_field' => 'Naam', 'menu_label' => 'Groepen', 'list_title' => 'Beheer Groepen', + 'new' => 'Nieuwe Beheerdersgroep', + 'delete_confirm' => 'Weet je zeker dat je deze beheerdersgroep wilt verwijderen?', + 'return' => 'Terug naar groepenoverzicht', ], 'preferences' => [ 'not_authenticated' => 'Er is geen geauthenticeerde gebruiker om gegevens voor te laden of op te slaan.' @@ -90,17 +96,22 @@ return [ 'missing_model' => 'Geen model opgegeven voor het gedrag (behavior) van het formulier gebruikt in :class.', 'missing_definition' => "Het gedrag (behavior) van het formulier bevat geen kolom voor ':field'.", 'not_found' => 'Het formulier met record ID :id is niet gevonden.', + 'create' => 'Maken', + 'create_and_close' => 'Maken en sluiten', + 'creating' => 'Maken...', 'save' => 'Opslaan', 'save_and_close' => 'Opslaan en sluiten', 'saving' => 'Opslaan...', + 'delete' => 'Verwijderen', + 'deleting' => 'Verwijderen...', 'undefined_tab' => 'Overig', 'field_off' => 'Uit', 'field_on' => 'Aan', 'apply' => 'Toepassen', 'cancel' => 'Annuleren', 'close' => 'Sluiten', - 'delete' => 'Verwijderen', 'ok' => 'OK', + 'or' => 'of', 'confirm_tab_close' => 'Weet je zeker dat je dit tabblad wilt sluiten? Niet opgeslagen wijzigingen gaan verloren.', 'behavior_not_ready' => 'Gedrag (behavior) van het formulier is niet geladen. Controleer of initForm() in de controller is aangeroepen.', ], diff --git a/modules/backend/lang/ru/lang.php b/modules/backend/lang/ru/lang.php index 3c628b851..7c8f2bb73 100644 --- a/modules/backend/lang/ru/lang.php +++ b/modules/backend/lang/ru/lang.php @@ -45,6 +45,7 @@ return [ 'name' => 'Администратор', 'menu_label' => 'Администраторы', 'list_title' => 'Manage Administrators', + 'new' => 'New Administrator', 'login' => "Login", 'first_name' => "First Name", 'last_name' => "Last Name", @@ -59,11 +60,16 @@ return [ 'superuser_comment' => "Check this box to allow this person to access all areas.", 'send_invite' => 'Send invitation by email', 'send_invite_comment' => 'Use this checkbox to send an invitation to the user by email', + 'delete_confirm' => 'Do you really want to delete this administrator?', + 'return' => 'Return to the administrator list', 'group' => [ 'name' => 'Group', 'name_field' => 'Name', 'menu_label' => 'Groups', 'list_title' => 'Manage Groups', + 'new' => 'New Administrator Group', + 'delete_confirm' => 'Do you really want to delete this administrator group?', + 'return' => 'Return to the group list', ], 'preferences' => [ 'not_authenticated' => 'Невозможно загрузить или сохранить настройки для неавторизованного пользователя.', @@ -90,17 +96,22 @@ return [ 'missing_model' => 'Form used in :class does not have a model defined.', 'missing_definition' => "Form behavior does not contain a field for ':field'.", 'not_found' => 'Form record with an ID of :id could not be found.', + 'create' => 'Create', + 'create_and_close' => 'Create and close', + 'creating' => 'Creating...', 'save' => 'Сохранить', 'save_and_close' => 'Сохранить и закрыть', 'saving' => 'Сохранение...', + 'delete' => 'Delete', + 'deleting' => 'Deleting...', 'undefined_tab' => 'Misc', 'field_off' => 'Off', 'field_on' => 'On', 'apply' => 'Apply', 'cancel' => 'Cancel', 'close' => 'Close', - 'delete' => 'Delete', 'ok' => 'OK', + 'or' => 'or', 'confirm_tab_close' => 'Закрыть закладку? Несохраненные изменения будут потеряны.', 'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.', ], diff --git a/modules/backend/lang/sv/lang.php b/modules/backend/lang/sv/lang.php new file mode 100644 index 000000000..d242b6c75 --- /dev/null +++ b/modules/backend/lang/sv/lang.php @@ -0,0 +1,139 @@ + [ + 'invalid_type' => 'Felaktig fälttyp använd :type.', + 'options_method_not_exists' => 'Modelklassen :model måste definera en metod :method() som returnerar villkor för formfältet ":field"', + ], + 'widget' => [ + 'not_registered' => "En widget med klassnamnet ':name' har ej blivit registrerad", + 'not_bound' => "En widget med klassnamnet ':name' saknas i controllern", + ], + 'page' => [ + 'untitled' => "Ej namngiven", + ], + 'partial' => [ + 'not_found' => "En partial med namn ':name' kunde ej hittas", + ], + 'account' => [ + 'sign_out' => 'Logga ut', + 'login' => 'Logga in', + 'reset' => 'Nollställ', + 'restore' => 'Återställ', + 'login_placeholder' => 'användarnamn', + 'password_placeholder' => 'lösenord', + 'forgot_password' => "Glömt ditt lösenord?", + 'enter_email' => "Ange din epost-adress", + 'enter_login' => "Ange ditt användarnamn", + 'email_placeholder' => "epost", + 'enter_new_password' => "Välj ett nytt lösenord", + 'password_reset' => "Återställ lösenord", + 'restore_success' => "Ett meddelande har sänts till din epost-adress med instruktioner om hur du återställer ditt lösenord", + 'restore_error' => "En användare med användarnamnet ':login' kunde ej hittas", + 'reset_success' => "Ditt lösenord har blivit återställt. Du kan nu logga in", + 'reset_error' => "Felaktig data för lösenordsåterställning. Var vänlig prova igen", + 'reset_fail' => "Det gick tyvärr inte att nollställa ditt lösenord", + 'apply' => 'Spara', + 'cancel' => 'Avbryt', + 'delete' => 'Radera', + 'ok' => 'OK', + ], + 'dashboard' => [ + 'menu_label' => 'Kontrollpanelen', + ], + 'user' => [ + 'name' => 'Administratör', + 'menu_label' => 'Administratörer', + 'list_title' => 'Hantera administratörer', + 'new' => 'New Administrator', + 'login' => "Logga in", + 'first_name' => "Förnamn", + 'last_name' => "Efternamn", + 'full_name' => "Fullständigt namn", + 'email' => "E-post", + 'groups' => "Grupper", + 'groups_comment' => "Välj vilken grupp denna person hör till", + 'avatar' => "Avatar", + 'password' => "Lösenord", + 'password_confirmation' => "Bekräfta lösenord", + 'superuser' => "Superanvändare", + 'superuser_comment' => "Markera denna checkbox för att ge denna person tillgång till alla områden", + 'send_invite' => 'Inbjudan är sänd via e-post', + 'send_invite_comment' => 'Markera denna checkbox för att skicka en inbjudan till användaren via e-post', + 'delete_confirm' => 'Do you really want to delete this administrator?', + 'return' => 'Return to the administrator list', + 'group' => [ + 'name' => 'Grupp', + 'name_field' => 'Namn', + 'menu_label' => 'Grupper', + 'list_title' => 'Hantera grupper', + 'new' => 'New Administrator Group', + 'delete_confirm' => 'Do you really want to delete this administrator group?', + 'return' => 'Return to the group list', + ], + 'preferences' => [ + 'not_authenticated' => 'Det finns ingen autentiserad användare att ladda eller spara inställningar för', + ] + ], + 'list' => [ + 'default_title' => 'Lista', + 'search_prompt' => 'Sök...', + 'no_records' => 'Det finns inga träffar för denna vy', + 'missing_model' => 'List-egenskapen i :class har ingen modell definerad', + 'missing_column' => 'Det finns inga kolumndefinitioner för :columns', + 'missing_columns' => 'Listan som används i :class har inga listkolumner definerade', + 'missing_definition' => "Listegenskapen saknar en kolumn för ':field'", + 'behavior_not_ready' => 'Listegenskapen har inte blivit initierad, kontrollera att du har anropat makeLists() i din controller', + ], + 'form' => [ + 'create_title' => "Ny :name", + 'update_title' => "Redigera :name", + 'preview_title' => "Förhandsgranska :name", + 'create_success' => ':name är nu skapad', + 'update_success' => ':name har blivit uppdaterad', + 'delete_success' => ':name kunde ej raderas', + 'missing_id' => "Record ID för formuläret har ej blivit specificerat", + 'missing_model' => 'Formuläregenskapen som används i :class har ingen modell definierad', + 'missing_definition' => "Formuläregenskapen saknar ett fält för ':field'", + 'not_found' => 'Record ID :id för formuläret kunde ej hittas', + 'create' => 'Create', + 'create_and_close' => 'Create and close', + 'creating' => 'Creating...', + 'save' => 'Spara', + 'save_and_close' => 'Spara och stäng', + 'saving' => 'Sparar...', + 'delete' => 'Radera', + 'deleting' => 'Deleting...', + 'undefined_tab' => 'Övrigt', + 'field_off' => 'Av', + 'field_on' => 'På', + 'apply' => 'Spara', + 'cancel' => 'Avbryt', + 'close' => 'Stäng', + 'ok' => 'OK', + 'or' => 'or', + 'confirm_tab_close' => 'Vill du verkligen stänga fliken? Ej sparade ändringar kommer gå förlorade', + 'behavior_not_ready' => 'Formuläregenskap har ej blivit initierad, kontrollera att du anropat initForm() i din controller', + ], + 'relation' => [ + 'missing_definition' => "Relationen saknar en definintion för ':field'", + 'missing_model' => "Relationen som används i :class har ingen modell definierad", + 'invalid_action_single' => "Den här åtgärden kan inte appliceras på en enskild relation", + 'invalid_action_multi' => "Denna åtgärd kan inte appliceras på flera relationer", + 'add' => "Lägg till", + 'add_name' => "Lägg till :name", + 'create' => "Skapa", + 'create_name' => "Skapa :name", + 'remove' => "Ta bort", + 'remove_name' => "Ta bort :name", + 'delete' => "Radera", + 'delete_name' => "Radera :name", + ], + 'model' => [ + 'name' => "Modell", + 'not_found' => "Modellen ':class' med ID :id kunde ej hittas", + 'missing_id' => "Det finns inget ID anviget för modellen", + 'missing_relation' => "Modellen ':class' saknar en definition för ':relation'", + 'invalid_class' => "Modellen :model i klass :class är ej giltig. Den måste ärva från \Model-klassen", + ], +]; \ No newline at end of file diff --git a/modules/backend/lang/tr/lang.php b/modules/backend/lang/tr/lang.php new file mode 100644 index 000000000..abca3ae54 --- /dev/null +++ b/modules/backend/lang/tr/lang.php @@ -0,0 +1,139 @@ + [ + 'invalid_type' => 'Invalid field type used :type.', + 'options_method_not_exists' => 'The model class :model must define a method :method() returning options for the ":field" form field.', + ], + 'widget' => [ + 'not_registered' => "A widget class name ':name' has not been registered", + 'not_bound' => "A widget with class name ':name' has not been bound to the controller", + ], + 'page' => [ + 'untitled' => "Başlıksız", + ], + 'partial' => [ + 'not_found' => "':name' bölümü bulunamadı.", + ], + 'account' => [ + 'sign_out' => 'Çıkış', + 'login' => 'Giriş', + 'reset' => 'Sıfırla', + 'restore' => 'Geri yükle', + 'login_placeholder' => 'kullanıcı adı', + 'password_placeholder' => 'parola', + 'forgot_password' => "Parolanızı mı unuttunuz?", + 'enter_email' => "Email adresinizi girin", + 'enter_login' => "Kullanıcı adınızı girin", + 'email_placeholder' => "email", + 'enter_new_password' => "Yeni Parolanızı girin", + 'password_reset' => "Parola Sıfırla", + 'restore_success' => "Email adresinize parolanızı nasıl sıfırlayacağınıza dair bilgiler gönderilmiştir.", + 'restore_error' => "':login' kullanıcı adı bulunamadı.", + 'reset_success' => "Parolanız başarıyla sıfırlandı. Giriş yapabilirsiniz.", + 'reset_error' => "Hatalı giriş yaptınız. Lütfen tekrar deneyin!", + 'reset_fail' => "Parolanız sıfırlanamıyor!", + 'apply' => 'Onayla', + 'cancel' => 'İptal', + 'delete' => 'Sil', + 'ok' => 'OK', + ], + 'dashboard' => [ + 'menu_label' => 'Pano', + ], + 'user' => [ + 'name' => 'Yönetici', + 'menu_label' => 'Yöneticiler', + 'list_title' => 'Yöneticileri Yönet', + 'new' => 'New Administrator', + 'login' => "Kullanıcı Adı", + 'first_name' => "Adı", + 'last_name' => "Soyadı", + 'full_name' => "Tam Adı", + 'email' => "Email", + 'groups' => "Gruplar", + 'groups_comment' => "Kullanıcının hangi gruba bağlı olduğunu belirleyin.", + 'avatar' => "Avatar", + 'password' => "Parola", + 'password_confirmation' => "Parola Onayı", + 'superuser' => "Süper Kullanıcı", + 'superuser_comment' => "Kullanıcıya her alanda yetki vermek için burayı işaretleyin.", + 'send_invite' => 'Email ile davet gönder', + 'send_invite_comment' => 'Kullanıcının email adresine davet göndermek için burayı işaretleyin', + 'delete_confirm' => 'Do you really want to delete this administrator?', + 'return' => 'Return to the administrator list', + 'group' => [ + 'name' => 'Grup', + 'name_field' => 'Adı', + 'menu_label' => 'Gruplar', + 'list_title' => 'Grupları Yönet', + 'new' => 'New Administrator Group', + 'delete_confirm' => 'Do you really want to delete this administrator group?', + 'return' => 'Return to the group list', + ], + 'preferences' => [ + 'not_authenticated' => 'There is no an authenticated user to load or save preferences for.' + ] + ], + 'list' => [ + 'default_title' => 'Liste', + 'search_prompt' => 'Arama...', + 'no_records' => 'There are no records in this view.', + 'missing_model' => 'List behavior used in :class does not have a model defined.', + 'missing_column' => 'There are no column definitions for :columns.', + 'missing_columns' => 'List used in :class has no list columns defined.', + 'missing_definition' => "List behavior does not contain a column for ':field'.", + 'behavior_not_ready' => 'List behavior has not been initialized, check that you have called makeLists() in your controller.', + ], + 'form' => [ + 'create_title' => ":name Oluştur", + 'update_title' => ":name Düzenle", + 'preview_title' => ":name Görüntüle", + 'create_success' => ':name başarıyla oluşturuldu', + 'update_success' => ':name başarıyla güncellendi', + 'delete_success' => ':name başarıyla silindi', + 'missing_id' => "Form record ID has not been specified.", + 'missing_model' => 'Form behavior used in :class does not have a model defined.', + 'missing_definition' => "Form behavior does not contain a field for ':field'.", + 'not_found' => 'Form record with an ID of :id could not be found.', + 'create' => 'Create', + 'create_and_close' => 'Create and close', + 'creating' => 'Creating...', + 'save' => 'Kaydet', + 'save_and_close' => 'Kaydet ve kapat', + 'saving' => 'Kaydediliyor...', + 'delete' => 'Sil', + 'deleting' => 'Deleting...', + 'undefined_tab' => 'Diğer', + 'field_off' => 'Kapalı', + 'field_on' => 'Açık', + 'apply' => 'Kabul', + 'cancel' => 'İptal', + 'close' => 'Kapat', + 'ok' => 'OK', + 'or' => 'or', + 'confirm_tab_close' => 'Bu sekmeyi kapatmak istediğinize gerçekten emin misiniz? Kaydedilmemiş değişiklikleri kaybedeceksiniz.', + 'behavior_not_ready' => 'Form behavior has not been initialized, check that you have called initForm() in your controller.', + ], + 'relation' => [ + 'missing_definition' => "Relation behavior does not contain a definition for ':field'.", + 'missing_model' => "Relation behavior used in :class does not have a model defined.", + 'invalid_action_single' => "This action cannot be performed on a singular relationship.", + 'invalid_action_multi' => "This action cannot be performed on a multiple relationship.", + 'add' => "Ekle", + 'add_name' => ":name Ekle", + 'create' => "Oluştur", + 'create_name' => ":name Oluştur", + 'remove' => "Kaldır", + 'remove_name' => ":name Kaldır", + 'delete' => "Sil", + 'delete_name' => ":name Sil", + ], + 'model' => [ + 'name' => "Model", + 'not_found' => "Model ':class' with an ID of :id could not be found", + 'missing_id' => "There is no ID specified for looking up the model record.", + 'missing_relation' => "Model ':class' does not contain a definition for ':relation'.", + 'invalid_class' => "Model :model used in :class is not valid, it must inherit the \Model class.", + ], +]; \ No newline at end of file diff --git a/modules/backend/widgets/Form.php b/modules/backend/widgets/Form.php index 43c6ea7b1..ec6848472 100644 --- a/modules/backend/widgets/Form.php +++ b/modules/backend/widgets/Form.php @@ -218,7 +218,7 @@ class Form extends WidgetBase * Extensibility */ Event::fire('backend.form.extendFieldsBefore', [$this]); - $this->trigger('form.extendFieldsBefore', $this); + $this->fireEvent('form.extendFieldsBefore', $this); /* * Outside fields @@ -248,7 +248,7 @@ class Form extends WidgetBase * Extensibility */ Event::fire('backend.form.extendFields', [$this]); - $this->trigger('form.extendFields', $this); + $this->fireEvent('form.extendFields', $this); /* * Convert automatic spanned fields diff --git a/modules/backend/widgets/Lists.php b/modules/backend/widgets/Lists.php index 9de52f232..15984df04 100644 --- a/modules/backend/widgets/Lists.php +++ b/modules/backend/widgets/Lists.php @@ -259,7 +259,7 @@ class Lists extends WidgetBase * Extensibility */ Event::fire('backend.list.extendQueryBefore', [$this, $query]); - $this->trigger('list.extendQueryBefore', $this, $query); + $this->fireEvent('list.extendQueryBefore', [$this, $query]); /* * Related custom selects, must come first @@ -274,7 +274,18 @@ class Lists extends WidgetBase $alias = Db::getQueryGrammar()->wrap($column->columnName); $table = $this->model->makeRelation($column->relation)->getTable(); $sqlSelect = $this->parseTableName($column->sqlSelect, $table); - $selects[] = Db::raw("group_concat(" . $sqlSelect . " separator ', ') as ". $alias); + + switch (Db::getDefaultConnection()) { + default: + case 'mysql': + $selects[] = Db::raw("group_concat(" . $sqlSelect . " separator ', ') as ". $alias); + break; + + case 'sqlite': + $selects[] = Db::raw("group_concat(" . $sqlSelect . ", ', ') as ". $alias); + break; + } + $joins[] = $column->relation; $tables[$column->relation] = $table; } @@ -331,7 +342,7 @@ class Lists extends WidgetBase * Extensibility */ Event::fire('backend.list.extendQuery', [$this, $query]); - $this->trigger('list.extendQuery', $this, $query); + $this->fireEvent('list.extendQuery', [$this, $query]); // Grouping due to the joinWith() call $query->select($selects); @@ -514,11 +525,11 @@ class Lists extends WidgetBase /* * Extensibility */ - if (($response = Event::fire('backend.list.overrideHeaderValue', [$this, $column, $value])) && is_array($response)) - $value = array_pop($response); + if ($response = Event::fire('backend.list.overrideHeaderValue', [$this, $column, $value], true)) + $value = $response; - if (($response = $this->trigger('list.overrideHeaderValue', $this, $column, $value)) && is_array($response)) - $value = array_pop($response); + if ($response = $this->fireEvent('list.overrideHeaderValue', [$this, $column, $value], true)) + $value = $response; return $value; } @@ -536,11 +547,11 @@ class Lists extends WidgetBase /* * Extensibility */ - if (($response = Event::fire('backend.list.overrideColumnValue', [$this, $record, $column, $value])) && is_array($response)) - $value = array_pop($response); + if ($response = Event::fire('backend.list.overrideColumnValue', [$this, $record, $column, $value], true)) + $value = $response; - if (($response = $this->trigger('list.overrideColumnValue', $this, $record, $column, $value)) && is_array($response)) - $value = array_pop($response); + if ($response = $this->fireEvent('list.overrideColumnValue', [$this, $record, $column, $value], true)) + $value = $response; return $value; } @@ -557,11 +568,11 @@ class Lists extends WidgetBase /* * Extensibility */ - if (($response = Event::fire('backend.list.injectRowClass', [$this, $record])) && is_array($response)) - $value = array_pop($response); + if ($response = Event::fire('backend.list.injectRowClass', [$this, $record], true)) + $value = $response; - if (($response = $this->trigger('list.injectRowClass', $this, $record)) && is_array($response)) - $value = array_pop($response); + if ($response = $this->fireEvent('list.injectRowClass', [$this, $record], true)) + $value = $response; return $value; } diff --git a/modules/backend/widgets/Search.php b/modules/backend/widgets/Search.php index 8832fb805..1cf2dca6e 100644 --- a/modules/backend/widgets/Search.php +++ b/modules/backend/widgets/Search.php @@ -90,7 +90,7 @@ class Search extends WidgetBase * Trigger class event, merge results as viewable array */ $params = func_get_args(); - $result = $this->trigger('search.submit', $params); + $result = $this->fireEvent('search.submit', [$params]); return Util::arrayMerge($result); } diff --git a/modules/backend/widgets/form/partials/_field_text.htm b/modules/backend/widgets/form/partials/_field_text.htm index 1e2a94ba8..04d8aefe6 100644 --- a/modules/backend/widgets/form/partials/_field_text.htm +++ b/modules/backend/widgets/form/partials/_field_text.htm @@ -7,7 +7,7 @@ name="= $field->getName() ?>" id="= $field->getId() ?>" value="= e($field->value) ?>" - placeholder="= e($field->placeholder) ?>" + placeholder="= e(trans($field->placeholder)) ?>" class="form-control" autocomplete="off" maxlength="255" diff --git a/modules/backend/widgets/form/partials/_field_textarea.htm b/modules/backend/widgets/form/partials/_field_textarea.htm index 6535a36d7..40cbf4815 100644 --- a/modules/backend/widgets/form/partials/_field_textarea.htm +++ b/modules/backend/widgets/form/partials/_field_textarea.htm @@ -7,6 +7,6 @@ id="= $field->getId() ?>" autocomplete="off" class="form-control field-textarea size-= $field->size ?>" - placeholder="= $field->placeholder ?>" + placeholder="= e(trans($field->placeholder)) ?>" = HTML::attributes($field->attributes) ?>>= e($field->value) ?> \ No newline at end of file diff --git a/modules/backend/widgets/form/partials/_form_tabs.htm b/modules/backend/widgets/form/partials/_form_tabs.htm index 0e12bf53c..0ff0eda25 100644 --- a/modules/backend/widgets/form/partials/_form_tabs.htm +++ b/modules/backend/widgets/form/partials/_form_tabs.htm @@ -5,7 +5,7 @@