diff --git a/modules/backend/assets/js/october.inspector.js b/modules/backend/assets/js/october.inspector.js index 2e96d2670..a238e1bf0 100644 --- a/modules/backend/assets/js/october.inspector.js +++ b/modules/backend/assets/js/october.inspector.js @@ -815,11 +815,15 @@ } InspectorEditorString.prototype.validate = function() { + var val = $.trim($(this.selector).val()) + + if (this.fieldDef.required && val.length === 0) + return this.fieldDef.validationMessage || 'Required fields were left blank.' + if (this.fieldDef.validationPattern === undefined) return - var val = $.trim($(this.selector).val()), - re = new RegExp(this.fieldDef.validationPattern, 'm') + var re = new RegExp(this.fieldDef.validationPattern, 'm') if (!val.match(re)) return this.fieldDef.validationMessage @@ -1118,4 +1122,4 @@ return false }) -}(window.jQuery); \ No newline at end of file +}(window.jQuery); diff --git a/modules/backend/lang/tr/lang.php b/modules/backend/lang/tr/lang.php index ccc657d75..61941c662 100644 --- a/modules/backend/lang/tr/lang.php +++ b/modules/backend/lang/tr/lang.php @@ -2,19 +2,19 @@ return [ 'field' => [ - '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.', + 'invalid_type' => 'Geçersiz field tipi :type.', + 'options_method_not_exists' => ':model Model\'i ":field" formuna geri dönüş için bir :method() metod tanımlamalıdır.', ], '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", + 'not_registered' => "':name' isimli widget sınıfı sistemde kayıtlı değil", + 'not_bound' => "':name' isimli widget sınıfı controllerda tanımlanmamış", ], 'page' => [ 'untitled' => "Başlıksız", 'access_denied' => [ 'label' => "Giriş engellendi", 'help' => "Bu sayfayı görüntülemek için gerekli izinlere sahip değilsiniz.", - 'cms_link' => "CMS uç git", + 'cms_link' => "Ana sayfaya dön", ], ], 'partial' => [ @@ -41,7 +41,7 @@ return [ 'apply' => 'Onayla', 'cancel' => 'İptal', 'delete' => 'Sil', - 'ok' => 'OK', + 'ok' => 'Tamam', ], 'dashboard' => [ 'menu_label' => 'Pano', @@ -50,7 +50,7 @@ return [ 'name' => 'Yönetici', 'menu_label' => 'Yöneticiler', 'list_title' => 'Yöneticileri Yönet', - 'new' => 'New Administrator', + 'new' => 'Yeni Yönetici', 'login' => "Kullanıcı Adı", 'first_name' => "Adı", 'last_name' => "Soyadı", @@ -65,31 +65,31 @@ return [ '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', + 'delete_confirm' => 'Bu yöneticiyi gerçekten silmek istiyor musunuz?', + 'return' => 'Yöneticiler listesine dön', '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', + 'new' => 'Yeni Yönetici Grubu', + 'delete_confirm' => 'Bu yönetici grubunu gerçekten silmek istiyor musunuz?', + 'return' => 'Grup listesine dön', ], 'preferences' => [ - 'not_authenticated' => 'There is no an authenticated user to load or save preferences for.' + 'not_authenticated' => 'Ayarları görüntülemek veya düzenlemek için yetkili bir kullanıcı yok.' ] ], '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.', - 'invalid_column_datetime' => "Column value ':column' is not a DateTime object, are you missing a \$dates reference in the Model?", + 'no_records' => 'Bu alan için görüntülenecek kayıt yok.', + 'missing_model' => ':class da kullanılan liste için model değeri tanımlanmamış.', + 'missing_column' => ':columns için sütun değeri tanımlanmamış.', + 'missing_columns' => ':class da kullanılan liste için sütun değeri tanımlanmamış.', + 'missing_definition' => "Liste ':field' için bir sütun değeri içermiyor.", + 'behavior_not_ready' => 'Liste oluşturulamadı, controller da makeLists() metodunu kontrol edin.', + 'invalid_column_datetime' => "':column' için sütun değeri DateTime nesnesi değil, Model kısmında \$dates referansını unutmuş olabilir misiniz?", ], 'form' => [ 'create_title' => ":name Oluştur", @@ -98,40 +98,40 @@ return [ '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...', + 'missing_id' => "Form kayıt ID'si belirtilmedi.", + 'missing_model' => ':class da kullanılan form için model değeri tanımlanmamış.', + 'missing_definition' => "Form ':field' için bir sütun değeri içermiyor.", + 'not_found' => 'ID\'si :id olan Form bulunamadı.', + 'create' => 'Oluştur', + 'create_and_close' => 'Oluştur ve Kapat', + 'creating' => 'Oluşturuluyor...', 'save' => 'Kaydet', - 'save_and_close' => 'Kaydet ve kapat', + 'save_and_close' => 'Kaydet ve Kapat', 'saving' => 'Kaydediliyor...', 'delete' => 'Sil', - 'deleting' => 'Deleting...', + 'deleting' => 'Siliniyor...', 'undefined_tab' => 'Diğer', 'field_off' => 'Kapalı', 'field_on' => 'Açık', 'apply' => 'Kabul', 'cancel' => 'İptal', 'close' => 'Kapat', - 'ok' => 'OK', - 'or' => 'or', + 'ok' => 'Tamam', + 'or' => 'veya', '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.', + 'behavior_not_ready' => 'Form oluşturulamadı, controller da initForm() metodunu kontrol edin.', ], '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.", + 'missing_definition' => "İlişki ':field' için bir sütun değeri içermiyor.", + 'missing_model' => ":class da kullanılan ilişki için model değeri tanımlanmamış.", + 'invalid_action_single' => "Bu işlem tekli ilişkilendirme için kullanılamaz.", + 'invalid_action_multi' => "Bu işlem çoklu ilişkilendirme için kullanılamaz.", 'add' => "Ekle", 'add_name' => ":name Ekle", 'create' => "Oluştur", 'create_name' => ":name Oluştur", - 'update' => "Update", - 'update_name' => "Update :name", + 'update' => "Güncelle", + 'update_name' => ":name Güncelle", 'remove' => "Kaldır", 'remove_name' => ":name Kaldır", 'delete' => "Sil", @@ -139,29 +139,29 @@ return [ ], '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.", - 'mass_assignment_failed' => "Mass assignment failed for Model attribute ':attribute'.", + 'not_found' => "ID'si :id olan ':class' Model bulunamadı.", + 'missing_id' => "Aranılan model için ID belirtilmedi.", + 'missing_relation' => "':class' Model'i ':relation' ilişkisi için tanımlanmamış.", + 'invalid_class' => ":class da tanımlanan :model Model'i geçerli değil, \Model sınıfını extend almalı.", + 'mass_assignment_failed' => "':attribute' Model değeri için toplu atama başarısız.", ], 'warnings' => [ - 'tips' => 'System configuration tips', - 'tips_description' => 'There are issues you need to pay attention to in order to configure the system properly.', - 'permissions' => 'Directory :name or its subdirectories is not writable for PHP. Please set corresponding permissions for the webserver on this directory.', - 'extension' => 'The PHP extension :name is not installed. Please install this library and activate the extension.' + 'tips' => 'Sistem ayar ipuçları', + 'tips_description' => 'Sistemin düzgün çalışabilmesi için dikkat etmeniz gereken sorunlar var.', + 'permissions' => ':name dizini ve alt dizinleri PHP tarafından yazılabilir değil. Lütfen bu dizindeki webserver için gerekli yazma izinlerini verin.', + 'extension' => ':name PHP eklentisi sistemde yüklü değil. Lütfen kütüphaneyi kurun ve eklentiyi aktifleştirin.' ], 'editor' => [ - 'menu_label' => 'Editor Configuration', - 'menu_description' => 'Manage editor configuration.', - 'font_size' => 'Font size', - 'tab_size' => 'Tab size', - 'use_hard_tabs' => 'Indent using tabs', - 'code_folding' => 'Code folding', - 'word_wrap' => 'Word wrap', - 'highlight_active_line' => 'Highlight active line', - 'show_invisibles' => 'Show invisible characters', - 'show_gutter' => 'Show gutter', - 'theme' => 'Color scheme', + 'menu_label' => 'Editör ayarları', + 'menu_description' => 'Editör ayarlarını düzenle.', + 'font_size' => 'Font büyüklüğü', + 'tab_size' => 'Tab genişliği', + 'use_hard_tabs' => 'Tab girintisi', + 'code_folding' => 'Kod katlama (Alt satıra inme)', + 'word_wrap' => 'Uzun kelimeleri yeni satırda gösterme', + 'highlight_active_line' => 'Aktif satırı vurgula', + 'show_invisibles' => 'Gizli karakterleri göster', + 'show_gutter' => 'Gutteri göster', + 'theme' => 'Renk şeması', ], ]; diff --git a/modules/cms/lang/tr/lang.php b/modules/cms/lang/tr/lang.php index e0041624b..d65e6cfb7 100644 --- a/modules/cms/lang/tr/lang.php +++ b/modules/cms/lang/tr/lang.php @@ -2,11 +2,11 @@ return [ 'cms_object' => [ - 'invalid_file' => 'Hatalı dosya adı: :name. File names can contain only alphanumeric symbols, underscores, dashes and dots. Bazı doğru dosya adı örnekleri: page.htm, page, subdirectory/page', - 'invalid_property' => 'The property ":name" cannot be set', + 'invalid_file' => 'Hatalı dosya adı: :name. Dosya isimleri sadece alfanümerik semboller, alt çizgiler, tire ve nokta içerebilir. Bazı doğru dosya adı örnekleri: sayfa.htm, sayfa, altdizin/sayfa', + 'invalid_property' => '":name" özelliği ayarlanamadı', 'file_already_exists' => '":name" isimli dosya mevcut.', - 'error_saving' => '":name" kaydedilirken hatayla karşılaşıldı.', - 'error_creating_directory' => ':name klasörü oluşturulurken hatayla karşılaşıldı', + 'error_saving' => '":name" kaydedilirken hatayla oluştu.', + 'error_creating_directory' => ':name klasörü oluşturulurken hata oluştu', 'invalid_file_extension'=>'Hatalı dosya uzantısı: :invalid. İzin verilen uzantılar: :allowed.', 'error_deleting' => '":name" şablon dosyası silinirken hatayla karşılaşıldı.', 'delete_success' => ':count şablon başarıyla silindi.', @@ -14,12 +14,12 @@ return [ ], 'theme' => [ 'active' => [ - 'not_set' => "The active theme is not set.", + 'not_set' => "Aktif tema belirtilmedi.", ], 'edit' => [ - 'not_set' => "The edit theme is not set.", - 'not_found' => "The edit theme is not found.", - 'not_match' => "The object you're trying to access doesn't belong to the theme being edited. Please reload the page." + 'not_set' => "Düzenlenecek tema belirtilmedi.", + 'not_found' => "Düzenlenecek tema bulunamadı.", + 'not_match' => "Ulaşmaya çalıştığınız nesne düzenlenecek temaya ait değil. Lütfen sayfayı yenileyin." ] ], 'page' => [ @@ -34,7 +34,7 @@ return [ 'menu_label' => 'Sayfalar', 'no_list_records' => 'Hiç sayfa yok.', 'new' => 'Sayfa oluştur', - 'invalid_url' => 'Hata URL formatı. The URL should start with the forward slash symbol and can contain digits, Latin letters and the following symbols: ._-[]:?|/+*^$', + 'invalid_url' => 'Hatalı URL formatı. URL eğik çizgi ile başlamalı ve sayı, Latin harfleri ve aşağıdaki sembolleri içerebilir: ._-[]:?|/+*^$', 'delete_confirm_multiple' => 'Seçili sayfaları silmek istediğinize emin misiniz?', 'delete_confirm_single' => 'Bu sayfayı silmek istediğinize emin misiniz?', 'no_layout' => '-- şablon yok --' @@ -72,24 +72,24 @@ return [ 'menu_label' => "CMS" ], 'sidebar' => [ - 'add' => 'Add', - 'search' => 'Search...' + 'add' => 'Ekle', + 'search' => 'Ara...' ], 'editor' => [ - 'settings' => 'Settings', - 'title' => 'Title', - 'new_title' => 'New page title', + 'settings' => 'Ayarlar', + 'title' => 'Başlık', + 'new_title' => 'Yeni sayfa başlığı', 'url' => 'URL', - 'filename' => 'File Name', - 'layout' => 'Layout', - 'description' => 'Description', - 'preview' => 'Preview', + 'filename' => 'Dosya Adı', + 'layout' => 'Düzen', + 'description' => 'Tanım', + 'preview' => 'Önizleme', 'meta' => 'Meta', - 'meta_title' => 'Meta Title', - 'meta_description' => 'Meta Description', - 'markup' => 'Markup', - 'code' => 'Code', - 'content' => 'Content', + 'meta_title' => 'Meta Başlık', + 'meta_description' => 'Meta Tanım', + 'markup' => 'Biçimlendirme', + 'code' => 'Kod', + 'content' => 'İçerik', ], 'asset' => [ 'menu_label' => "Dosyalar", @@ -104,14 +104,14 @@ return [ 'new' => 'Yeni dosya', 'rename_popup_title' => 'Yeniden isimlendir', 'rename_new_name' => 'Yeni isim', - 'invalid_path' => 'Path can contain only digits, Latin letters, spaces and the following symbols: ._-/', + 'invalid_path' => 'Yol sadece sayı, Latin harfleri, boşluk ve şu sembolleri içerebilir: ._-/', 'error_deleting_file' => ':name dosyası silinirken hatayla karşılaşıldı.', - 'error_deleting_dir_not_empty' => 'Error deleting directory :name. The directory is not empty.', + 'error_deleting_dir_not_empty' => ':name klasörü silinemedi. Klasör boş değil.', 'error_deleting_dir' => ':name dosyası silinirken hatayla karşılaşıldı.', - 'invalid_name' => 'Name can contain only digits, Latin letters, spaces and the following symbols: ._-', - 'original_not_found' => 'Original file or directory not found', - 'already_exists' => 'File or directory with this name already exists', - 'error_renaming' => 'Error renaming the file or directory', + 'invalid_name' => 'İsim sadece sayı, Latin harfleri, boşluk ve şu sembolleri içerebilir: ._-', + 'original_not_found' => 'Orjinal dosya veya dizin bulunamadı', + 'already_exists' => 'Bu isimde dosya veya dizin zaten var', + 'error_renaming' => 'Dosya veya dizin ismi düzenlenemedi', 'name_cant_be_empty' => 'İsim alanı boş bırakılamaz.', 'too_large' => 'Yüklenen dosya çok büyük. İzin verilen maksimum boyut :max_size', 'type_not_allowed' => 'İzin verilen dosya tipleri: :allowed_types', @@ -119,7 +119,7 @@ return [ 'error_uploading_file' => '":name" yüklenirken hatayla karşılaşıldı: :error', 'move_please_select' => 'lütfen seçiniz', 'move_destination' => 'Hedef klasör', - 'move_popup_title' => 'Assets taşı', + 'move_popup_title' => 'Assets\'i taşı', 'move_button' => 'Taşı', 'selected_files_not_found' => 'Seçilen dosyalar bulunamadı.', 'select_destination_dir' => 'Lütfen hedef klasör seçiniz', @@ -134,9 +134,9 @@ return [ 'unnamed' => "İsimsiz", 'no_description' => "Açıklama girilmedi.", 'alias' => "Takma ad", - 'alias_description' => "A unique name given to this component when using it in the page or layout code.", - 'validation_message' => "Component aliases are required and can contain only Latin symbols, digits, and underscores. The aliases should start with a Latin symbol.", - 'invalid_request' => "Şablon hatalı bileşen verisi olduğu için kaydedilemedi.", + 'alias_description' => "Bu bileşen için benzersiz bir isim. Sayfa veya şablonda kullanırken bu isim gerekecektir.", + 'validation_message' => "Bileşen isimleri gerkelidir ve sadece Latin semboller, sayılar, ve alt çizgi içerebilir. Bileşen ismi ayrıca Latin harfle başlamalı.", + 'invalid_request' => "Şablonda hatalı bileşen verisi olduğu için kaydedilemedi.", 'no_records' => 'Bileşen bulunamadı.', 'not_found' => "':name' isimli bileşen bulunamadı.", 'method_not_found' => "':name' isimli bileşen ':method'unu içermiyor.", diff --git a/modules/cms/widgets/ComponentList.php b/modules/cms/widgets/ComponentList.php index 9124a286e..341353678 100644 --- a/modules/cms/widgets/ComponentList.php +++ b/modules/cms/widgets/ComponentList.php @@ -112,6 +112,11 @@ class ComponentList extends WidgetBase $className = $componentInfo->className; $alias = $componentInfo->alias; $component = new $className(); + + if ($component->isHidden) { + continue; + } + $componentDetails = $component->componentDetails(); $component->alias = '--alias--'; diff --git a/modules/system/controllers/Updates.php b/modules/system/controllers/Updates.php index 5e35602c0..55d6d48a4 100644 --- a/modules/system/controllers/Updates.php +++ b/modules/system/controllers/Updates.php @@ -52,6 +52,7 @@ class Updates extends Controller $this->vars['projectId'] = Parameters::get('system::project.id'); $this->vars['projectName'] = Parameters::get('system::project.name'); $this->vars['projectOwner'] = Parameters::get('system::project.owner'); + $this->vars['pluginsCount'] = PluginVersion::count(); return $this->asExtension('ListController')->index(); } diff --git a/modules/system/controllers/updates/index.htm b/modules/system/controllers/updates/index.htm index 33c932846..9f871980c 100644 --- a/modules/system/controllers/updates/index.htm +++ b/modules/system/controllers/updates/index.htm @@ -30,6 +30,10 @@
= $coreBuild ?>
+= $pluginsCount ?>
+