diff --git a/code/controllers/CMSMain.php b/code/controllers/CMSMain.php index 913e7247..fe67be2e 100644 --- a/code/controllers/CMSMain.php +++ b/code/controllers/CMSMain.php @@ -871,7 +871,16 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr * @uses LeftAndMainExtension->augmentNewSiteTreeItem() */ public function getNewItem($id, $setID = true) { + $parentClass = $this->stat('tree_class'); list($dummy, $className, $parentID, $suffix) = array_pad(explode('-',$id),4,null); + + if(!is_subclass_of($className, $parentClass) && strcasecmp($className, $parentClass) != 0) { + $response = Security::permissionFailure($this); + if (!$response) { + $response = $this->response; + } + throw new SS_HTTPResponse_Exception($response); + } $newItem = new $className(); diff --git a/code/model/SiteTree.php b/code/model/SiteTree.php index a9d86895..f539ac94 100644 --- a/code/model/SiteTree.php +++ b/code/model/SiteTree.php @@ -1643,9 +1643,10 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid return min($votes); } + $segment = Convert::raw2sql($this->URLSegment); $existingPage = DataObject::get_one( 'SiteTree', - "\"SiteTree\".\"URLSegment\" = '$this->URLSegment' $IDFilter $parentFilter" + "\"SiteTree\".\"URLSegment\" = '$segment' $IDFilter $parentFilter" ); return !($existingPage); diff --git a/javascript/lang/ar.js b/javascript/lang/ar.js new file mode 100644 index 00000000..277a6b22 --- /dev/null +++ b/javascript/lang/ar.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/ar.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('ar', { + "CMSMAIN.ALERTCLASSNAME": "سيتم تحديث نوع الصفحة بعد حفظ الصفحة", + "CMSMain.RollbackToVersion": "هل تريد حقاً الرجوع إلى النسخة #%s من هذه الصفحة؟", + "CMSMAIN.CANTADDCHILDREN": "لا يمكنك إضافة التوابع إلى العقدة المحددة", + "CMSMAIN.PUBLISHINGPAGES": "جاري نشر الصفحات...", + "CMSMAIN.SELECTMOREPAGES": "لقد قمت باختيار عدد %s من الصفحات.\n\nهل تريد حقاً تنفيذ هذا الإجراء؟", + "CMSMAIN.SAVING": "جاري الحذف...", + "CMSMAIN.ERRORDELETINGPAGES": "خطأ أثناء حذف الصفحات", + "URLSEGMENT.Edit": "تحرير", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "يجب عليك حفظ إحدى الصفحات قبل إضافة أطفال تحته", + "CMSMAIN.PUBLISHING": "جاري النشر...", + "CMSMAIN.URLSEGMENTVALIDATION": "يمكن تكوين عناوين URL من أحرف وأرقام وواصلات فقط.", + "URLSEGMENT.Cancel": "إلغاء", + "Tree.ShowAsList": "أعرض التوابع في شكل قائمة", + "CMSMAIN.ERRORREVERTING": "خطأ أثناء العودة إلى المحتوى المباشر", + "Tree.ThisPageOnly": "هذه الصفحة فقط", + "CMSMain.ConfirmRestoreFromLive": "هل ترغب حقًا في نسخ المحتوى المنشور على مسودة الموقع؟", + "CMSMAIN.ERRORPUBLISHING": "خطأ في الصحات المنشورة", + "CMSMAIN.ERRORADDINGPAGE": "حدث خطأ في إضافة صفحة", + "AssetTableField.REALLYDELETE": "هل تريد حقًا حذف الملفات المعلّمة؟", + "CMSMAIN.RESTORING": "جاري الاستعادة...", + "AssetTableField.MOVING": "تم نقل %s من الملفات", + "Tree.EditPage": "تحرير", + "URLSEGMENT.OK": "موافق", + "CMSMAIN.ERRORUNFILTER": "شجرة غير مصفّاة", + "CMSMAIN.FILTEREDTREE": "شجرة مصفّاة فقط لإظهار الصفحات التي تم تغييرها", + "AssetAdmin.ConfirmDelete": "هل تريد حقًا حذف هذا المجلد وكل ما يحتويه من ملفات؟", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "هل تريد حقًا حذف مجلدات %s؟", + "CMSMAIN.AddSearchCriteria": "إضافة معيار", + "Tree.Duplicate": "تكرار", + "Tree.ThisPageAndSubpages": "هذه الصفحة وصفحات فرعية", + "WidgetAreaEditor.TOOMANY": "عفواً، لقد وصلت للحد الأقصى لعدد التطبيقات المصغرة في هذه المنطقة", + "CMSMAIN.DELETINGPAGES": "جاري حذف الصفحات...", + "Folder.Name": "اسم المجلد", + "CMSMAIN.REALLYDELETEPAGES": "هل ترغب حقًا في حذف الصفحات %s المعلّمة؟", + "CMSMAIN.SELECTONEPAGE": "يرجى تحديد صفحة واحدة على الأقل.", + "Tree.AddSubPage": "أضف صفحة جديدة هنا", + "CMSMAIN.ERRORFILTERPAGES": "لا يمكن تصنيف المسار الشجري حتى يُظهر الصفحات التي تم تغييرها فقط
%s" +}); +} \ No newline at end of file diff --git a/javascript/lang/es.js b/javascript/lang/es.js new file mode 100644 index 00000000..e735550c --- /dev/null +++ b/javascript/lang/es.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/es.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('es', { + "CMSMAIN.ALERTCLASSNAME": "El tipo de página será actualizado luego de guardar la página", + "CMSMain.RollbackToVersion": "¿Realmente quieres volver a la versión #%s de esta página?", + "CMSMAIN.CANTADDCHILDREN": "No puedes agregar hijos al nodo seleccionado", + "CMSMAIN.PUBLISHINGPAGES": "Publicando páginas...", + "CMSMAIN.SELECTMOREPAGES": "Tienes %s páginas seleccionadas\n\n¿Realmente quieres realizar esta acción?", + "CMSMAIN.SAVING": "guardando...", + "CMSMAIN.ERRORDELETINGPAGES": "Error eliminando páginas", + "URLSEGMENT.Edit": "Editar", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Tienes que guardar la página antes de agregarle hijos", + "CMSMAIN.PUBLISHING": "Publicando...", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs sólo pueden ser creadas con letras, dígitos y guiones.", + "URLSEGMENT.Cancel": "Cancelar", + "Tree.ShowAsList": "Mostrar hijos como lista", + "CMSMAIN.ERRORREVERTING": "Error al revertir al contenido real", + "Tree.ThisPageOnly": "Sólo en esta página", + "CMSMain.ConfirmRestoreFromLive": "¿Realmente quieres copiar el contenido publicado al borrador del sitio?", + "CMSMAIN.ERRORPUBLISHING": "Error al publicar páginas", + "CMSMAIN.ERRORADDINGPAGE": "Error al agregar página", + "AssetTableField.REALLYDELETE": "¿Realmente quieres eliminar los archivos marcados?", + "CMSMAIN.RESTORING": "Restaurando...", + "AssetTableField.MOVING": "Moviendo %s archivo(s)", + "Tree.EditPage": "Editar", + "URLSEGMENT.OK": "Ok", + "CMSMAIN.ERRORUNFILTER": "Árbol sin filtrar", + "CMSMAIN.FILTEREDTREE": "Árbol filtrado para mostrar sólo las páginas cambiadas", + "AssetAdmin.ConfirmDelete": "¿Realmente quieres eliminar esta carpeta y todo su contenido?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "¿Realmente quieres eliminar la carpeta %s?", + "CMSMAIN.AddSearchCriteria": "Agregar criterio", + "Tree.Duplicate": "Duplicar", + "Tree.ThisPageAndSubpages": "Esta página y subpáginas", + "WidgetAreaEditor.TOOMANY": "Lo sentimos, has llegado al máximo número de widgets en esta área", + "CMSMAIN.DELETINGPAGES": "Borrando páginas...", + "Folder.Name": "Nombre de la carpeta", + "CMSMAIN.REALLYDELETEPAGES": "¿Realmente quieres borrar las %s páginas marcadas?", + "CMSMAIN.SELECTONEPAGE": "Por favor, seleccione al menos 1 página.", + "Tree.AddSubPage": "Agregar nueva página aquí", + "CMSMAIN.ERRORFILTERPAGES": "No se pudo filtrar el árbol para solo mostrar las páginas modificadas
%s" +}); +} \ No newline at end of file diff --git a/javascript/lang/fi.js b/javascript/lang/fi.js new file mode 100644 index 00000000..5cfd8ba4 --- /dev/null +++ b/javascript/lang/fi.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/fi.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('fi', { + "CMSMAIN.ALERTCLASSNAME": "Sivutyyppi päivitetään sivun tallennuksen jälkeen", + "CMSMain.RollbackToVersion": "Haluatko varmasti palauttaa #%s version tästä sivusta?", + "CMSMAIN.CANTADDCHILDREN": "Et voi lisätä alasivuja tähän solmuun", + "CMSMAIN.PUBLISHINGPAGES": "Julkaistaan sivuja...", + "CMSMAIN.SELECTMOREPAGES": "Sinulla on %s sivua valittuna.\n\nHaluatko varmasti tehdä tämän toiminnon?", + "CMSMAIN.SAVING": "tallennetaan...", + "CMSMAIN.ERRORDELETINGPAGES": "Tapahtui virhe poistettaessa sivuja", + "URLSEGMENT.Edit": "Muokkaa", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Sinun on tallennettava sivu, ennen kuin voi lisätä alasivuja", + "CMSMAIN.PUBLISHING": "Julkaistaan...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-osoitteet voivat muodostua vain kirjaimista, numeroista tai yhdysmerkeistä.", + "URLSEGMENT.Cancel": "Peruuta", + "Tree.ShowAsList": "Näytä alasivut listana", + "CMSMAIN.ERRORREVERTING": "Tapahtui virhe paluussa julkaistuun sisältöön", + "Tree.ThisPageOnly": "Vain tämä sivu", + "CMSMain.ConfirmRestoreFromLive": "Haluatko varmasti kopioida julkaistua sisältöä vedossivustolle?", + "CMSMAIN.ERRORPUBLISHING": "Tapahtui virhe julkaistaessa sivuja", + "CMSMAIN.ERRORADDINGPAGE": "Virhe lisättäessä sivua", + "AssetTableField.REALLYDELETE": "Haluatko varmasti poistaa merkityt tiedostot?", + "CMSMAIN.RESTORING": "Palautetaan...", + "AssetTableField.MOVING": "Siirretään %s tiedosto(a)", + "Tree.EditPage": "Muokkaa", + "URLSEGMENT.OK": "OK", + "CMSMAIN.ERRORUNFILTER": "Suodattamaton hakemistopuu", + "CMSMAIN.FILTEREDTREE": "Suodatettu puu, joka näyttää vain muuttuneet sivut", + "AssetAdmin.ConfirmDelete": "Haluatko varmasti poistaa tämän kansion ja kaikki tiedostot sen sisällä?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Haluatko varmasti poistaa %s kansion/kansiota?", + "CMSMAIN.AddSearchCriteria": "Lisää kriteeri", + "Tree.Duplicate": "Monista", + "Tree.ThisPageAndSubpages": "Tämä sivu ja alasivut", + "WidgetAreaEditor.TOOMANY": "Pahoittelut, olet lisännyt sallitun maksimi määrän vimpaimia tälle alueelle.", + "CMSMAIN.DELETINGPAGES": "Poistetaan sivuja...", + "Folder.Name": "Kansion nimi", + "CMSMAIN.REALLYDELETEPAGES": "Haluatko varmasti poistaa %s kpl merkittyjä sivuja?", + "CMSMAIN.SELECTONEPAGE": "Valitse vähintään 1 sivu.", + "Tree.AddSubPage": "Lisää uusi sivu tähän", + "CMSMAIN.ERRORFILTERPAGES": "Ei voitu suodattaa hakemistopuuta näyttämään vain muuttuneet sivut
%s" +}); +} \ No newline at end of file diff --git a/javascript/lang/pl.js b/javascript/lang/pl.js index 38f1a89b..5866f65d 100644 --- a/javascript/lang/pl.js +++ b/javascript/lang/pl.js @@ -16,9 +16,9 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { "CMSMAIN.PUBLISHING": "Publikacja...", "CMSMAIN.URLSEGMENTVALIDATION": "Adres URL może składać się tylko z liter, cyfr i łączników.", "URLSEGMENT.Cancel": "Anuluj", - "Tree.ShowAsList": "Show children as list", + "Tree.ShowAsList": "Pokaż dzieci jako listę", "CMSMAIN.ERRORREVERTING": "Błąd podczas powrotu do opublikowanej strony", - "Tree.ThisPageOnly": "This page only", + "Tree.ThisPageOnly": "Tylko tę stronę", "CMSMain.ConfirmRestoreFromLive": "Czy na pewno skopiować opublikowaną treść do strony roboczej?", "CMSMAIN.ERRORPUBLISHING": "Błąd podczas publikacji stron", "CMSMAIN.ERRORADDINGPAGE": "Błąd przy dodawaniu strony", @@ -32,8 +32,8 @@ if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { "AssetAdmin.ConfirmDelete": "Czy na pewno usunąć ten folder i wszystkie pliki w nim zawarte?", "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Czy na pewno usunąć %s folderów?", "CMSMAIN.AddSearchCriteria": "Dodaj kryteria", - "Tree.Duplicate": "Duplicate", - "Tree.ThisPageAndSubpages": "This page and subpages", + "Tree.Duplicate": "Powiel", + "Tree.ThisPageAndSubpages": "Ta strona i podstrony", "WidgetAreaEditor.TOOMANY": "Przepraszam, ale osiągnięto maksymalną ilość widgetów w tym obszarze", "CMSMAIN.DELETINGPAGES": "Usuwanie stron...", "Folder.Name": "Nazwa folderu", diff --git a/javascript/lang/ro.js b/javascript/lang/ro.js new file mode 100644 index 00000000..ccd2508c --- /dev/null +++ b/javascript/lang/ro.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/ro.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('ro', { + "CMSMAIN.ALERTCLASSNAME": "Tipul de pagină va fi actualizat după ce pagina este salvată", + "CMSMain.RollbackToVersion": "Doriţi revenirea la versiunea #%s a acestei pagini?", + "CMSMAIN.CANTADDCHILDREN": "La nodul selectat nu pot fi adăugaţi fii", + "CMSMAIN.PUBLISHINGPAGES": "Public pagini...", + "CMSMAIN.SELECTMOREPAGES": "Aţi selectat %s pagini.\n\nConfirmaţi executarea acestei acţiuni?", + "CMSMAIN.SAVING": "salvez...", + "CMSMAIN.ERRORDELETINGPAGES": "Eroare la ştergerea paginilor", + "URLSEGMENT.Edit": "Editare", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Trebuie să salvați o pagină înainte de a adăuga copii sub aceasta", + "CMSMAIN.PUBLISHING": "Public...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-uri pot conţine doar litere, cifre și cratime.", + "URLSEGMENT.Cancel": "Renunţare", + "Tree.ShowAsList": "Afişare fii în format listă", + "CMSMAIN.ERRORREVERTING": "Eroare la restaurarea conţinutului live", + "Tree.ThisPageOnly": "Doar această pagină", + "CMSMain.ConfirmRestoreFromLive": "Doriţi copierea conținutul publicat pe site-ul ciornă (draft)?", + "CMSMAIN.ERRORPUBLISHING": "Eroare publicare pagini", + "CMSMAIN.ERRORADDINGPAGE": "Eroare la adăugare pagină", + "AssetTableField.REALLYDELETE": "Doriţi ştergerea tuturor fișierele marcate?", + "CMSMAIN.RESTORING": "Refac...", + "AssetTableField.MOVING": "Mutare %s fişier(e)", + "Tree.EditPage": "Editare", + "URLSEGMENT.OK": "OK", + "CMSMAIN.ERRORUNFILTER": "Arbore fără filtru", + "CMSMAIN.FILTEREDTREE": "Filtrare arbore pentru a afișa numai paginile modificate", + "AssetAdmin.ConfirmDelete": "Doriţi ştergerea acestui dosar precum şi a tuturor fişierelor conţinute?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Doriţi să ștergeţi cele %s dosare?", + "CMSMAIN.AddSearchCriteria": "Adăugare criterii", + "Tree.Duplicate": "Copie", + "Tree.ThisPageAndSubpages": "Această pagină cu subpagini", + "WidgetAreaEditor.TOOMANY": "Ne pare rău, ați atins numărul maxim de widget-uri din această arie", + "CMSMAIN.DELETINGPAGES": "Şterg pagini...", + "Folder.Name": "Nume dosar", + "CMSMAIN.REALLYDELETEPAGES": "Doriţi ştergerea celor %s pagini marcate?", + "CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin 1 pagină.", + "Tree.AddSubPage": "Adăugaţi o nouă pagină aici", + "CMSMAIN.ERRORFILTERPAGES": "Nu s-a putut filtra structura arborescentă pentru a afișa numai paginile modificate
% s" +}); +} \ No newline at end of file diff --git a/javascript/lang/ru.js b/javascript/lang/ru.js new file mode 100644 index 00000000..e5f9b37e --- /dev/null +++ b/javascript/lang/ru.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/ru.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('ru', { + "CMSMAIN.ALERTCLASSNAME": "Тип страницы будет изменён после её сохранения.", + "CMSMain.RollbackToVersion": "Вы действительно хотите восстановить версию #%s этой страницы?", + "CMSMAIN.CANTADDCHILDREN": "Невозможно добавить вложенную страницу для этой страницы", + "CMSMAIN.PUBLISHINGPAGES": "Публикация страниц...", + "CMSMAIN.SELECTMOREPAGES": "Выбрано страниц: %s.\n\nВы действительно хотите выполнить выбранное действие?", + "CMSMAIN.SAVING": "сохранение...", + "CMSMAIN.ERRORDELETINGPAGES": "Ошибка при удалении страниц", + "URLSEGMENT.Edit": "Изменить", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Необходимо сохранить страницу, прежде чем добавлять вложенные страницы", + "CMSMAIN.PUBLISHING": "Публикация...", + "CMSMAIN.URLSEGMENTVALIDATION": "Адрес может состоять только из букв, цифр и дефисов.", + "URLSEGMENT.Cancel": "Отмена", + "Tree.ShowAsList": "Показать страницы в виде списка", + "CMSMAIN.ERRORREVERTING": "Ошибка при получении содержимого", + "Tree.ThisPageOnly": "Только этой страницы", + "CMSMain.ConfirmRestoreFromLive": "Вы действительно хотите скопировать опубликованное содержимое на черновой сайт?", + "CMSMAIN.ERRORPUBLISHING": "Ошибка при публикации страниц", + "CMSMAIN.ERRORADDINGPAGE": "Ошибка при добавлении страницы", + "AssetTableField.REALLYDELETE": "Вы действительно хотите удалить отмеченные файлы?", + "CMSMAIN.RESTORING": "Восстановление...", + "AssetTableField.MOVING": "Перемещение файлов (%s шт.)", + "Tree.EditPage": "Редактировать", + "URLSEGMENT.OK": "ОК", + "CMSMAIN.ERRORUNFILTER": "Неотфильтрованное дерево", + "CMSMAIN.FILTEREDTREE": "Отфильтрованное дерево изменённых страниц", + "AssetAdmin.ConfirmDelete": "Вы действительно хотите удалить эту директорию и все файлы в ней?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Вы действительно хотите удалить директории (%s шт.)?", + "CMSMAIN.AddSearchCriteria": "Добавить условие", + "Tree.Duplicate": "Создать копию", + "Tree.ThisPageAndSubpages": "Вместе с вложенными страницами", + "WidgetAreaEditor.TOOMANY": "Достигнуто максимальное число виджетов в этом разделе.", + "CMSMAIN.DELETINGPAGES": "Удаление страниц...", + "Folder.Name": "Имя директории", + "CMSMAIN.REALLYDELETEPAGES": "Вы действительно хотите удалить выбранные страницы (%s шт.)?", + "CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.", + "Tree.AddSubPage": "Добавить новую страницу", + "CMSMAIN.ERRORFILTERPAGES": "Невозможно отфильтровать дерево для отображения только изменённых страниц
%s" +}); +} \ No newline at end of file diff --git a/javascript/lang/sr.js b/javascript/lang/sr.js new file mode 100644 index 00000000..768b222f --- /dev/null +++ b/javascript/lang/sr.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/sr.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('sr', { + "CMSMAIN.ALERTCLASSNAME": "Тип странице ће бити ажуриран након што сачувате страницу", + "CMSMain.RollbackToVersion": "Да ли заиста желите да се вратите на верзију #%s ове странице?", + "CMSMAIN.CANTADDCHILDREN": "Не можете додати дете изабраном чвору", + "CMSMAIN.PUBLISHINGPAGES": "Објављивање страница...", + "CMSMAIN.SELECTMOREPAGES": "Изабрали сте %s страницâ.\n\nДа ли заиста желите да извршите ову акцију?", + "CMSMAIN.SAVING": "снима се...", + "CMSMAIN.ERRORDELETINGPAGES": "Грешка при брисању страница", + "URLSEGMENT.Edit": "Измени", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Морате снимити страницу пре него што јој можете додати подстранице", + "CMSMAIN.PUBLISHING": "Објављивање...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-ови могу садржати само слова, бројеве и повлаке.", + "URLSEGMENT.Cancel": "Одустани", + "Tree.ShowAsList": "Прикажу децу у виду листе", + "CMSMAIN.ERRORREVERTING": "Грешка при враћању на живи садржај", + "Tree.ThisPageOnly": "Само ова страница", + "CMSMain.ConfirmRestoreFromLive": "Да ли заиста желите да копирате објављени садржај у нацрт сајта?", + "CMSMAIN.ERRORPUBLISHING": "Грешка при објављивању страница", + "CMSMAIN.ERRORADDINGPAGE": "Грешка при додавању странице", + "AssetTableField.REALLYDELETE": "Да ли заиста желите да избришете означене датотеке?", + "CMSMAIN.RESTORING": "Обнављање...", + "AssetTableField.MOVING": "Премештање %s датотеке(а)", + "Tree.EditPage": "Измени", + "URLSEGMENT.OK": "У реду", + "CMSMAIN.ERRORUNFILTER": "Нефилтрирано стабло", + "CMSMAIN.FILTEREDTREE": "Филтрирано стабло да приказује само измењене странице", + "AssetAdmin.ConfirmDelete": "Да ли заиста желите да избришете ову фасциклу и све датотеке садржане у њој?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Да ли заиста желите да се избришете %s фасцикле?", + "CMSMAIN.AddSearchCriteria": "Додај критеријум", + "Tree.Duplicate": "Дуплирај/копирај", + "Tree.ThisPageAndSubpages": "Ова страница и подстранице", + "WidgetAreaEditor.TOOMANY": "Извињавамо се, досегнули сте максималан број виџета у овој области", + "CMSMAIN.DELETINGPAGES": "Брисање страница...", + "Folder.Name": "Име фасцикле", + "CMSMAIN.REALLYDELETEPAGES": "Да ли заиста желите да избришете %s означених страница?", + "CMSMAIN.SELECTONEPAGE": "Молимо Вас да изаберете бар 1 страницу.", + "Tree.AddSubPage": "Додај нову страницу овде", + "CMSMAIN.ERRORFILTERPAGES": "Дрво се не може филтрирати да прикаже само измењене странице
%s" +}); +} \ No newline at end of file diff --git a/javascript/lang/src/ar.js b/javascript/lang/src/ar.js new file mode 100644 index 00000000..03f8ec6c --- /dev/null +++ b/javascript/lang/src/ar.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "سيتم تحديث نوع الصفحة بعد حفظ الصفحة", + "CMSMain.RollbackToVersion": "هل تريد حقاً الرجوع إلى النسخة #%s من هذه الصفحة؟", + "CMSMAIN.CANTADDCHILDREN": "لا يمكنك إضافة التوابع إلى العقدة المحددة", + "CMSMAIN.PUBLISHINGPAGES": "جاري نشر الصفحات...", + "CMSMAIN.SELECTMOREPAGES": "لقد قمت باختيار عدد %s من الصفحات.\n\nهل تريد حقاً تنفيذ هذا الإجراء؟", + "CMSMAIN.SAVING": "جاري الحذف...", + "CMSMAIN.ERRORDELETINGPAGES": "خطأ أثناء حذف الصفحات", + "URLSEGMENT.Edit": "تحرير", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "يجب عليك حفظ إحدى الصفحات قبل إضافة أطفال تحته", + "CMSMAIN.PUBLISHING": "جاري النشر...", + "CMSMAIN.URLSEGMENTVALIDATION": "يمكن تكوين عناوين URL من أحرف وأرقام وواصلات فقط.", + "URLSEGMENT.Cancel": "إلغاء", + "Tree.ShowAsList": "أعرض التوابع في شكل قائمة", + "CMSMAIN.ERRORREVERTING": "خطأ أثناء العودة إلى المحتوى المباشر", + "Tree.ThisPageOnly": "هذه الصفحة فقط", + "CMSMain.ConfirmRestoreFromLive": "هل ترغب حقًا في نسخ المحتوى المنشور على مسودة الموقع؟", + "CMSMAIN.ERRORPUBLISHING": "خطأ في الصحات المنشورة", + "CMSMAIN.ERRORADDINGPAGE": "حدث خطأ في إضافة صفحة", + "AssetTableField.REALLYDELETE": "هل تريد حقًا حذف الملفات المعلّمة؟", + "CMSMAIN.RESTORING": "جاري الاستعادة...", + "AssetTableField.MOVING": "تم نقل %s من الملفات", + "Tree.EditPage": "تحرير", + "URLSEGMENT.OK": "موافق", + "CMSMAIN.ERRORUNFILTER": "شجرة غير مصفّاة", + "CMSMAIN.FILTEREDTREE": "شجرة مصفّاة فقط لإظهار الصفحات التي تم تغييرها", + "AssetAdmin.ConfirmDelete": "هل تريد حقًا حذف هذا المجلد وكل ما يحتويه من ملفات؟", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "هل تريد حقًا حذف مجلدات %s؟", + "CMSMAIN.AddSearchCriteria": "إضافة معيار", + "Tree.Duplicate": "تكرار", + "Tree.ThisPageAndSubpages": "هذه الصفحة وصفحات فرعية", + "WidgetAreaEditor.TOOMANY": "عفواً، لقد وصلت للحد الأقصى لعدد التطبيقات المصغرة في هذه المنطقة", + "CMSMAIN.DELETINGPAGES": "جاري حذف الصفحات...", + "Folder.Name": "اسم المجلد", + "CMSMAIN.REALLYDELETEPAGES": "هل ترغب حقًا في حذف الصفحات %s المعلّمة؟", + "CMSMAIN.SELECTONEPAGE": "يرجى تحديد صفحة واحدة على الأقل.", + "Tree.AddSubPage": "أضف صفحة جديدة هنا", + "CMSMAIN.ERRORFILTERPAGES": "لا يمكن تصنيف المسار الشجري حتى يُظهر الصفحات التي تم تغييرها فقط
%s" +} \ No newline at end of file diff --git a/javascript/lang/src/es.js b/javascript/lang/src/es.js new file mode 100644 index 00000000..44f7988c --- /dev/null +++ b/javascript/lang/src/es.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "El tipo de página será actualizado luego de guardar la página", + "CMSMain.RollbackToVersion": "¿Realmente quieres volver a la versión #%s de esta página?", + "CMSMAIN.CANTADDCHILDREN": "No puedes agregar hijos al nodo seleccionado", + "CMSMAIN.PUBLISHINGPAGES": "Publicando páginas...", + "CMSMAIN.SELECTMOREPAGES": "Tienes %s páginas seleccionadas\n\n¿Realmente quieres realizar esta acción?", + "CMSMAIN.SAVING": "guardando...", + "CMSMAIN.ERRORDELETINGPAGES": "Error eliminando páginas", + "URLSEGMENT.Edit": "Editar", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Tienes que guardar la página antes de agregarle hijos", + "CMSMAIN.PUBLISHING": "Publicando...", + "CMSMAIN.URLSEGMENTVALIDATION": "URLs sólo pueden ser creadas con letras, dígitos y guiones.", + "URLSEGMENT.Cancel": "Cancelar", + "Tree.ShowAsList": "Mostrar hijos como lista", + "CMSMAIN.ERRORREVERTING": "Error al revertir al contenido real", + "Tree.ThisPageOnly": "Sólo en esta página", + "CMSMain.ConfirmRestoreFromLive": "¿Realmente quieres copiar el contenido publicado al borrador del sitio?", + "CMSMAIN.ERRORPUBLISHING": "Error al publicar páginas", + "CMSMAIN.ERRORADDINGPAGE": "Error al agregar página", + "AssetTableField.REALLYDELETE": "¿Realmente quieres eliminar los archivos marcados?", + "CMSMAIN.RESTORING": "Restaurando...", + "AssetTableField.MOVING": "Moviendo %s archivo(s)", + "Tree.EditPage": "Editar", + "URLSEGMENT.OK": "Ok", + "CMSMAIN.ERRORUNFILTER": "Árbol sin filtrar", + "CMSMAIN.FILTEREDTREE": "Árbol filtrado para mostrar sólo las páginas cambiadas", + "AssetAdmin.ConfirmDelete": "¿Realmente quieres eliminar esta carpeta y todo su contenido?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "¿Realmente quieres eliminar la carpeta %s?", + "CMSMAIN.AddSearchCriteria": "Agregar criterio", + "Tree.Duplicate": "Duplicar", + "Tree.ThisPageAndSubpages": "Esta página y subpáginas", + "WidgetAreaEditor.TOOMANY": "Lo sentimos, has llegado al máximo número de widgets en esta área", + "CMSMAIN.DELETINGPAGES": "Borrando páginas...", + "Folder.Name": "Nombre de la carpeta", + "CMSMAIN.REALLYDELETEPAGES": "¿Realmente quieres borrar las %s páginas marcadas?", + "CMSMAIN.SELECTONEPAGE": "Por favor, seleccione al menos 1 página.", + "Tree.AddSubPage": "Agregar nueva página aquí", + "CMSMAIN.ERRORFILTERPAGES": "No se pudo filtrar el árbol para solo mostrar las páginas modificadas
%s" +} \ No newline at end of file diff --git a/javascript/lang/src/fi.js b/javascript/lang/src/fi.js new file mode 100644 index 00000000..9830b1b4 --- /dev/null +++ b/javascript/lang/src/fi.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "Sivutyyppi päivitetään sivun tallennuksen jälkeen", + "CMSMain.RollbackToVersion": "Haluatko varmasti palauttaa #%s version tästä sivusta?", + "CMSMAIN.CANTADDCHILDREN": "Et voi lisätä alasivuja tähän solmuun", + "CMSMAIN.PUBLISHINGPAGES": "Julkaistaan sivuja...", + "CMSMAIN.SELECTMOREPAGES": "Sinulla on %s sivua valittuna.\n\nHaluatko varmasti tehdä tämän toiminnon?", + "CMSMAIN.SAVING": "tallennetaan...", + "CMSMAIN.ERRORDELETINGPAGES": "Tapahtui virhe poistettaessa sivuja", + "URLSEGMENT.Edit": "Muokkaa", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Sinun on tallennettava sivu, ennen kuin voi lisätä alasivuja", + "CMSMAIN.PUBLISHING": "Julkaistaan...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-osoitteet voivat muodostua vain kirjaimista, numeroista tai yhdysmerkeistä.", + "URLSEGMENT.Cancel": "Peruuta", + "Tree.ShowAsList": "Näytä alasivut listana", + "CMSMAIN.ERRORREVERTING": "Tapahtui virhe paluussa julkaistuun sisältöön", + "Tree.ThisPageOnly": "Vain tämä sivu", + "CMSMain.ConfirmRestoreFromLive": "Haluatko varmasti kopioida julkaistua sisältöä vedossivustolle?", + "CMSMAIN.ERRORPUBLISHING": "Tapahtui virhe julkaistaessa sivuja", + "CMSMAIN.ERRORADDINGPAGE": "Virhe lisättäessä sivua", + "AssetTableField.REALLYDELETE": "Haluatko varmasti poistaa merkityt tiedostot?", + "CMSMAIN.RESTORING": "Palautetaan...", + "AssetTableField.MOVING": "Siirretään %s tiedosto(a)", + "Tree.EditPage": "Muokkaa", + "URLSEGMENT.OK": "OK", + "CMSMAIN.ERRORUNFILTER": "Suodattamaton hakemistopuu", + "CMSMAIN.FILTEREDTREE": "Suodatettu puu, joka näyttää vain muuttuneet sivut", + "AssetAdmin.ConfirmDelete": "Haluatko varmasti poistaa tämän kansion ja kaikki tiedostot sen sisällä?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Haluatko varmasti poistaa %s kansion/kansiota?", + "CMSMAIN.AddSearchCriteria": "Lisää kriteeri", + "Tree.Duplicate": "Monista", + "Tree.ThisPageAndSubpages": "Tämä sivu ja alasivut", + "WidgetAreaEditor.TOOMANY": "Pahoittelut, olet lisännyt sallitun maksimi määrän vimpaimia tälle alueelle.", + "CMSMAIN.DELETINGPAGES": "Poistetaan sivuja...", + "Folder.Name": "Kansion nimi", + "CMSMAIN.REALLYDELETEPAGES": "Haluatko varmasti poistaa %s kpl merkittyjä sivuja?", + "CMSMAIN.SELECTONEPAGE": "Valitse vähintään 1 sivu.", + "Tree.AddSubPage": "Lisää uusi sivu tähän", + "CMSMAIN.ERRORFILTERPAGES": "Ei voitu suodattaa hakemistopuuta näyttämään vain muuttuneet sivut
%s" +} \ No newline at end of file diff --git a/javascript/lang/src/ro.js b/javascript/lang/src/ro.js new file mode 100644 index 00000000..196e0fc4 --- /dev/null +++ b/javascript/lang/src/ro.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "Tipul de pagină va fi actualizat după ce pagina este salvată", + "CMSMain.RollbackToVersion": "Doriţi revenirea la versiunea #%s a acestei pagini?", + "CMSMAIN.CANTADDCHILDREN": "La nodul selectat nu pot fi adăugaţi fii", + "CMSMAIN.PUBLISHINGPAGES": "Public pagini...", + "CMSMAIN.SELECTMOREPAGES": "Aţi selectat %s pagini.\n\nConfirmaţi executarea acestei acţiuni?", + "CMSMAIN.SAVING": "salvez...", + "CMSMAIN.ERRORDELETINGPAGES": "Eroare la ştergerea paginilor", + "URLSEGMENT.Edit": "Editare", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Trebuie să salvați o pagină înainte de a adăuga copii sub aceasta", + "CMSMAIN.PUBLISHING": "Public...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-uri pot conţine doar litere, cifre și cratime.", + "URLSEGMENT.Cancel": "Renunţare", + "Tree.ShowAsList": "Afişare fii în format listă", + "CMSMAIN.ERRORREVERTING": "Eroare la restaurarea conţinutului live", + "Tree.ThisPageOnly": "Doar această pagină", + "CMSMain.ConfirmRestoreFromLive": "Doriţi copierea conținutul publicat pe site-ul ciornă (draft)?", + "CMSMAIN.ERRORPUBLISHING": "Eroare publicare pagini", + "CMSMAIN.ERRORADDINGPAGE": "Eroare la adăugare pagină", + "AssetTableField.REALLYDELETE": "Doriţi ştergerea tuturor fișierele marcate?", + "CMSMAIN.RESTORING": "Refac...", + "AssetTableField.MOVING": "Mutare %s fişier(e)", + "Tree.EditPage": "Editare", + "URLSEGMENT.OK": "OK", + "CMSMAIN.ERRORUNFILTER": "Arbore fără filtru", + "CMSMAIN.FILTEREDTREE": "Filtrare arbore pentru a afișa numai paginile modificate", + "AssetAdmin.ConfirmDelete": "Doriţi ştergerea acestui dosar precum şi a tuturor fişierelor conţinute?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Doriţi să ștergeţi cele %s dosare?", + "CMSMAIN.AddSearchCriteria": "Adăugare criterii", + "Tree.Duplicate": "Copie", + "Tree.ThisPageAndSubpages": "Această pagină cu subpagini", + "WidgetAreaEditor.TOOMANY": "Ne pare rău, ați atins numărul maxim de widget-uri din această arie", + "CMSMAIN.DELETINGPAGES": "Şterg pagini...", + "Folder.Name": "Nume dosar", + "CMSMAIN.REALLYDELETEPAGES": "Doriţi ştergerea celor %s pagini marcate?", + "CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin 1 pagină.", + "Tree.AddSubPage": "Adăugaţi o nouă pagină aici", + "CMSMAIN.ERRORFILTERPAGES": "Nu s-a putut filtra structura arborescentă pentru a afișa numai paginile modificate
% s" +} \ No newline at end of file diff --git a/javascript/lang/src/ru.js b/javascript/lang/src/ru.js new file mode 100644 index 00000000..82cc7b69 --- /dev/null +++ b/javascript/lang/src/ru.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "Тип страницы будет изменён после её сохранения.", + "CMSMain.RollbackToVersion": "Вы действительно хотите восстановить версию #%s этой страницы?", + "CMSMAIN.CANTADDCHILDREN": "Невозможно добавить вложенную страницу для этой страницы", + "CMSMAIN.PUBLISHINGPAGES": "Публикация страниц...", + "CMSMAIN.SELECTMOREPAGES": "Выбрано страниц: %s.\n\nВы действительно хотите выполнить выбранное действие?", + "CMSMAIN.SAVING": "сохранение...", + "CMSMAIN.ERRORDELETINGPAGES": "Ошибка при удалении страниц", + "URLSEGMENT.Edit": "Изменить", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Необходимо сохранить страницу, прежде чем добавлять вложенные страницы", + "CMSMAIN.PUBLISHING": "Публикация...", + "CMSMAIN.URLSEGMENTVALIDATION": "Адрес может состоять только из букв, цифр и дефисов.", + "URLSEGMENT.Cancel": "Отмена", + "Tree.ShowAsList": "Показать страницы в виде списка", + "CMSMAIN.ERRORREVERTING": "Ошибка при получении содержимого", + "Tree.ThisPageOnly": "Только этой страницы", + "CMSMain.ConfirmRestoreFromLive": "Вы действительно хотите скопировать опубликованное содержимое на черновой сайт?", + "CMSMAIN.ERRORPUBLISHING": "Ошибка при публикации страниц", + "CMSMAIN.ERRORADDINGPAGE": "Ошибка при добавлении страницы", + "AssetTableField.REALLYDELETE": "Вы действительно хотите удалить отмеченные файлы?", + "CMSMAIN.RESTORING": "Восстановление...", + "AssetTableField.MOVING": "Перемещение файлов (%s шт.)", + "Tree.EditPage": "Редактировать", + "URLSEGMENT.OK": "ОК", + "CMSMAIN.ERRORUNFILTER": "Неотфильтрованное дерево", + "CMSMAIN.FILTEREDTREE": "Отфильтрованное дерево изменённых страниц", + "AssetAdmin.ConfirmDelete": "Вы действительно хотите удалить эту директорию и все файлы в ней?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Вы действительно хотите удалить директории (%s шт.)?", + "CMSMAIN.AddSearchCriteria": "Добавить условие", + "Tree.Duplicate": "Создать копию", + "Tree.ThisPageAndSubpages": "Вместе с вложенными страницами", + "WidgetAreaEditor.TOOMANY": "Достигнуто максимальное число виджетов в этом разделе.", + "CMSMAIN.DELETINGPAGES": "Удаление страниц...", + "Folder.Name": "Имя директории", + "CMSMAIN.REALLYDELETEPAGES": "Вы действительно хотите удалить выбранные страницы (%s шт.)?", + "CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.", + "Tree.AddSubPage": "Добавить новую страницу", + "CMSMAIN.ERRORFILTERPAGES": "Невозможно отфильтровать дерево для отображения только изменённых страниц
%s" +} \ No newline at end of file diff --git a/javascript/lang/src/sr.js b/javascript/lang/src/sr.js new file mode 100644 index 00000000..1d4ce223 --- /dev/null +++ b/javascript/lang/src/sr.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "Тип странице ће бити ажуриран након што сачувате страницу", + "CMSMain.RollbackToVersion": "Да ли заиста желите да се вратите на верзију #%s ове странице?", + "CMSMAIN.CANTADDCHILDREN": "Не можете додати дете изабраном чвору", + "CMSMAIN.PUBLISHINGPAGES": "Објављивање страница...", + "CMSMAIN.SELECTMOREPAGES": "Изабрали сте %s страницâ.\n\nДа ли заиста желите да извршите ову акцију?", + "CMSMAIN.SAVING": "снима се...", + "CMSMAIN.ERRORDELETINGPAGES": "Грешка при брисању страница", + "URLSEGMENT.Edit": "Измени", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "Морате снимити страницу пре него што јој можете додати подстранице", + "CMSMAIN.PUBLISHING": "Објављивање...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL-ови могу садржати само слова, бројеве и повлаке.", + "URLSEGMENT.Cancel": "Одустани", + "Tree.ShowAsList": "Прикажу децу у виду листе", + "CMSMAIN.ERRORREVERTING": "Грешка при враћању на живи садржај", + "Tree.ThisPageOnly": "Само ова страница", + "CMSMain.ConfirmRestoreFromLive": "Да ли заиста желите да копирате објављени садржај у нацрт сајта?", + "CMSMAIN.ERRORPUBLISHING": "Грешка при објављивању страница", + "CMSMAIN.ERRORADDINGPAGE": "Грешка при додавању странице", + "AssetTableField.REALLYDELETE": "Да ли заиста желите да избришете означене датотеке?", + "CMSMAIN.RESTORING": "Обнављање...", + "AssetTableField.MOVING": "Премештање %s датотеке(а)", + "Tree.EditPage": "Измени", + "URLSEGMENT.OK": "У реду", + "CMSMAIN.ERRORUNFILTER": "Нефилтрирано стабло", + "CMSMAIN.FILTEREDTREE": "Филтрирано стабло да приказује само измењене странице", + "AssetAdmin.ConfirmDelete": "Да ли заиста желите да избришете ову фасциклу и све датотеке садржане у њој?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "Да ли заиста желите да се избришете %s фасцикле?", + "CMSMAIN.AddSearchCriteria": "Додај критеријум", + "Tree.Duplicate": "Дуплирај/копирај", + "Tree.ThisPageAndSubpages": "Ова страница и подстранице", + "WidgetAreaEditor.TOOMANY": "Извињавамо се, досегнули сте максималан број виџета у овој области", + "CMSMAIN.DELETINGPAGES": "Брисање страница...", + "Folder.Name": "Име фасцикле", + "CMSMAIN.REALLYDELETEPAGES": "Да ли заиста желите да избришете %s означених страница?", + "CMSMAIN.SELECTONEPAGE": "Молимо Вас да изаберете бар 1 страницу.", + "Tree.AddSubPage": "Додај нову страницу овде", + "CMSMAIN.ERRORFILTERPAGES": "Дрво се не може филтрирати да прикаже само измењене странице
%s" +} \ No newline at end of file diff --git a/javascript/lang/src/zh.js b/javascript/lang/src/zh.js new file mode 100644 index 00000000..41c925a4 --- /dev/null +++ b/javascript/lang/src/zh.js @@ -0,0 +1,39 @@ +{ + "CMSMAIN.ALERTCLASSNAME": "将在页面保存后上传页面类型", + "CMSMain.RollbackToVersion": "是否确定回滚至该页面的第 #%s 版?", + "CMSMAIN.CANTADDCHILDREN": "您无法将儿童添加至所选节点", + "CMSMAIN.PUBLISHINGPAGES": "正在发布页面...", + "CMSMAIN.SELECTMOREPAGES": "您选择了 %s 个页面。\n\n是否确定执行该操作?", + "CMSMAIN.SAVING": "正在保存...", + "CMSMAIN.ERRORDELETINGPAGES": "删除页面时出错", + "URLSEGMENT.Edit": "编辑", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "将儿童添加在下面之前,您必须保存一个页面", + "CMSMAIN.PUBLISHING": "正在发布...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL 仅能由字母、数字和连字符组成。", + "URLSEGMENT.Cancel": "取消", + "Tree.ShowAsList": "将儿童显示为列表", + "CMSMAIN.ERRORREVERTING": "返回至实时内容的错误", + "Tree.ThisPageOnly": "仅该页", + "CMSMain.ConfirmRestoreFromLive": "是否确定将已发布内容复制到草稿站?", + "CMSMAIN.ERRORPUBLISHING": "错误发布页面", + "CMSMAIN.ERRORADDINGPAGE": "错误添加页面", + "AssetTableField.REALLYDELETE": "是否确定删除标记的文件?", + "CMSMAIN.RESTORING": "正在恢复...", + "AssetTableField.MOVING": "正在移动 %s 文件", + "Tree.EditPage": "编辑", + "URLSEGMENT.OK": "确定", + "CMSMAIN.ERRORUNFILTER": "未经过滤的树形结构", + "CMSMAIN.FILTEREDTREE": "已对树形结构进行过滤,进而可以仅显示更改过的页面", + "AssetAdmin.ConfirmDelete": "是否确定删除该文件夹以及所有包含的文件?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "是否确定删除 %s 个文件夹?", + "CMSMAIN.AddSearchCriteria": "添加标准", + "Tree.Duplicate": "复制", + "Tree.ThisPageAndSubpages": "本页和子页面", + "WidgetAreaEditor.TOOMANY": "对不起,该区域的小工具数量已经达到最大数量", + "CMSMAIN.DELETINGPAGES": "正在删除页面...", + "Folder.Name": "文件夹名称", + "CMSMAIN.REALLYDELETEPAGES": "是否确定删除 %s 标记的页面?", + "CMSMAIN.SELECTONEPAGE": "请至少选择 1 个页面。", + "Tree.AddSubPage": "在此添加新页面", + "CMSMAIN.ERRORFILTERPAGES": "无法过滤树形结构,以便仅显示已更改页面
%s" +} \ No newline at end of file diff --git a/javascript/lang/zh.js b/javascript/lang/zh.js new file mode 100644 index 00000000..9c5d5a3c --- /dev/null +++ b/javascript/lang/zh.js @@ -0,0 +1,45 @@ +// This file was generated by GenerateJavaScriptI18nTask from javascript/lang/src/zh.js. +// See https://github.com/silverstripe/silverstripe-buildtools for details +if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') { + if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined'); +} else { + ss.i18n.addDictionary('zh', { + "CMSMAIN.ALERTCLASSNAME": "将在页面保存后上传页面类型", + "CMSMain.RollbackToVersion": "是否确定回滚至该页面的第 #%s 版?", + "CMSMAIN.CANTADDCHILDREN": "您无法将儿童添加至所选节点", + "CMSMAIN.PUBLISHINGPAGES": "正在发布页面...", + "CMSMAIN.SELECTMOREPAGES": "您选择了 %s 个页面。\n\n是否确定执行该操作?", + "CMSMAIN.SAVING": "正在保存...", + "CMSMAIN.ERRORDELETINGPAGES": "删除页面时出错", + "URLSEGMENT.Edit": "编辑", + "CMSMAIN.WARNINGSAVEPAGESBEFOREADDING": "将儿童添加在下面之前,您必须保存一个页面", + "CMSMAIN.PUBLISHING": "正在发布...", + "CMSMAIN.URLSEGMENTVALIDATION": "URL 仅能由字母、数字和连字符组成。", + "URLSEGMENT.Cancel": "取消", + "Tree.ShowAsList": "将儿童显示为列表", + "CMSMAIN.ERRORREVERTING": "返回至实时内容的错误", + "Tree.ThisPageOnly": "仅该页", + "CMSMain.ConfirmRestoreFromLive": "是否确定将已发布内容复制到草稿站?", + "CMSMAIN.ERRORPUBLISHING": "错误发布页面", + "CMSMAIN.ERRORADDINGPAGE": "错误添加页面", + "AssetTableField.REALLYDELETE": "是否确定删除标记的文件?", + "CMSMAIN.RESTORING": "正在恢复...", + "AssetTableField.MOVING": "正在移动 %s 文件", + "Tree.EditPage": "编辑", + "URLSEGMENT.OK": "确定", + "CMSMAIN.ERRORUNFILTER": "未经过滤的树形结构", + "CMSMAIN.FILTEREDTREE": "已对树形结构进行过滤,进而可以仅显示更改过的页面", + "AssetAdmin.ConfirmDelete": "是否确定删除该文件夹以及所有包含的文件?", + "AssetAdmin.BATCHACTIONSDELETECONFIRM": "是否确定删除 %s 个文件夹?", + "CMSMAIN.AddSearchCriteria": "添加标准", + "Tree.Duplicate": "复制", + "Tree.ThisPageAndSubpages": "本页和子页面", + "WidgetAreaEditor.TOOMANY": "对不起,该区域的小工具数量已经达到最大数量", + "CMSMAIN.DELETINGPAGES": "正在删除页面...", + "Folder.Name": "文件夹名称", + "CMSMAIN.REALLYDELETEPAGES": "是否确定删除 %s 标记的页面?", + "CMSMAIN.SELECTONEPAGE": "请至少选择 1 个页面。", + "Tree.AddSubPage": "在此添加新页面", + "CMSMAIN.ERRORFILTERPAGES": "无法过滤树形结构,以便仅显示已更改页面
%s" +}); +} \ No newline at end of file diff --git a/lang/fi.yml b/lang/fi.yml index 63fa44fb..576ede5b 100644 --- a/lang/fi.yml +++ b/lang/fi.yml @@ -251,7 +251,7 @@ fi: VIRTUALPAGEWARNING: 'Ole hyvä ja valitse linkitetty sivu ja tallenna se ensin, jotta tämän sivun julkaiseminen olisi mahdollista' VIRTUALPAGEWARNINGSETTINGS: 'Ole hyvä ja valitse linkitetty sivu sisältö kentästä, jotta julkaisu on mahdollista' SearchForm: - GO: Siirry + GO: Suorita SEARCH: Haku SearchResults: 'Hakutulokset' SideReport: diff --git a/lang/ru.yml b/lang/ru.yml index 652602ea..fb87a053 100644 --- a/lang/ru.yml +++ b/lang/ru.yml @@ -5,6 +5,7 @@ ru: AppCategoryArchive: Архив AppCategoryAudio: Аудио AppCategoryDocument: Документ + AppCategoryFlash: Flash AppCategoryImage: Изображение AppCategoryVideo: Видео BackToFolder: 'Вернуться к папке' @@ -44,6 +45,7 @@ ru: ColumnDateLastModified: 'Дата последнего изменения' ColumnDateLastPublished: 'Дата последней публикации' ColumnProblemType: 'Вид проблемы' + ColumnURL: URL HasBrokenFile: 'содержит поврежденный файл' HasBrokenLink: 'содержит нерабочую ссылку' HasBrokenLinkAndFile: 'содержит нерабочую ссылку и поврежденный файл' @@ -81,6 +83,7 @@ ru: DESCREMOVED: 'и {count} страниц нижнего уровня' DUPLICATED: 'Копия ''{title}'' создана' DUPLICATEDWITHCHILDREN: 'Копия ''{title}'' и дочерних элементов создана' + EMAIL: Email EditTree: 'Редактировать дерево' ListFiltered: 'Отфильтрованный список.' NEWPAGE: 'Новая {pagetype}' @@ -158,9 +161,11 @@ ru: ContentController: ARCHIVEDSITE: 'Версия для просмотра' ARCHIVEDSITEFROM: 'Архив сайта от' + CMS: CMS DRAFT: Черновик DRAFTSITE: 'Черновой сайт' DRAFT_SITE_ACCESS_RESTRICTION: 'Для просмотра чернового или архивного содержимого вам необходимо войти в систему со своим именем пользователя и паролем. Щелкните здесь, чтобы вернуться на опубликованный сайт.' + Email: Email INSTALL_SUCCESS: 'Инсталляция прошла успешно!' InstallFilesDeleted: 'Инсталляционные файлы были успешно удалены.' InstallSecurityWarning: 'Если вы не планируете в ближайшее время переустанавливать CMS, по соображениям безопасности рекомендуется удалить инсталляционные файлы (для этого требуются права доступа администратора ‒ см. выше). Теперь веб-серверу необходим доступ для записи только к папке "assets"; все остальные папки можно защитить от записи. Щелкните здесь, чтобы удалить инсталляционные файлы.' @@ -313,6 +318,7 @@ ru: DEPENDENT_NOTE: 'С этой страницей связаны следующие зависимые страницы (сюда относятся виртуальные страницы, страницы перенаправления и страницы со ссылками на контент).' DESCRIPTION: 'Обычная страница' DependtPageColumnLinkType: 'Тип ссылки' + DependtPageColumnURL: URL EDITANYONE: 'Все, у кого есть доступ к системе (CMS)' EDITHEADER: 'Кто может редактировать эту страницу?' EDITONLYTHESE: 'Только эти пользователи (выберите из списка)' diff --git a/tests/controller/CMSMainTest.php b/tests/controller/CMSMainTest.php index c2acf523..644cc858 100644 --- a/tests/controller/CMSMainTest.php +++ b/tests/controller/CMSMainTest.php @@ -328,6 +328,27 @@ class CMSMainTest extends FunctionalTest { $this->session()->inst_set('loggedInAs', null); } + + public function testGetNewItem() { + $controller = new CMSMain(); + $id = 'new-Page-0'; + + // Test success + $page = $controller->getNewItem($id, false); + + $this->assertEquals($page->Title, 'New Page'); + $this->assertNotEquals($page->Sort, 0); + $this->assertInstanceOf('Page', $page); + + // Test failure + try { + $id = 'new-Member-0'; + $member = $controller->getNewItem($id, false); + $this->fail('Should not be able to create a Member object'); + } catch(SS_HTTPResponse_Exception $e) { + $this->assertEquals($controller->getResponse()->getStatusCode(), 302); + } + } } class CMSMainTest_ClassA extends Page implements TestOnly { @@ -344,4 +365,4 @@ class CMSMainTest_NotRoot extends Page implements TestOnly { class CMSMainTest_HiddenClass extends Page implements TestOnly, HiddenClass { -} \ No newline at end of file +}