diff --git a/admin/client/lang/cs.js b/admin/client/lang/cs.js index 549862629..4c5ea8678 100644 --- a/admin/client/lang/cs.js +++ b/admin/client/lang/cs.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Vybráno {num} stránek.\n\nSkutečně chcete obnovit?\n\nPodstránky archivovaných stránek budou obnoveny do nejvzšší úrovně, pokud tyto stránky budou také obnoveny.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Máte vybráno {num} stránek.\n\nSkutečně je chcete nezveřejnit?", "CMSMAIN.SELECTONEPAGE": "Prosím, vyberte nejméně 1 stránku", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Určitě chcete opustit navigaci z této stránky?\n\nUPOZORNĚNÍ: Vaše změny nebyly uloženy.\n\nStlačte OK pro pokračovat, nebo Cancel, zůstanete na této stránce.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORNĚNÍ: Vaše změny nebyly uloženy.", "LeftAndMain.PAGEWASDELETED": "Tato stránka byla smazána. Pro editaci stránky, vyberte ji vlevo.", diff --git a/admin/client/lang/de.js b/admin/client/lang/de.js index d56897514..8af3c5e58 100644 --- a/admin/client/lang/de.js +++ b/admin/client/lang/de.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\\n\\nWollen Sie diese wirklich wiederherstellen?\\n\\nUnterseiten von archivierten Seiten werden auf der Root-Ebene wiederhergestellt, es sei denn, diese Seiten werden ebenfalls wiederhergestellt.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie wirklich die Veröffentlichung zurücknehmen?", "CMSMAIN.SELECTONEPAGE": "Bitte mindestens eine Seite auswählen", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.", "LeftAndMain.PAGEWASDELETED": "Diese Seite wurde gelöscht.", diff --git a/admin/client/lang/eo.js b/admin/client/lang/eo.js index 11bbd9888..d0e2ceb5c 100644 --- a/admin/client/lang/eo.js +++ b/admin/client/lang/eo.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Vi elektis {num} paĝo(j)n.\n\nĈu vi vere volas restaŭri al stadio?\n\nIdoj de enarĥivigitaj paĝoj estos restaŭritaj al la radika nivelo, escepte se tiuj paĝoj ankaŭ estos restaŭritaj.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Vi elektis {num} paĝo(j)n.\n\nĈi vi vere volas malpublikigi?", "CMSMAIN.SELECTONEPAGE": "Bonvole elektu almenaŭ 1 paĝon.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Ĉu vi vere volas navigi for de ĉi tiu paĝo?\n\nAVERTO: Viaj ŝanĝoj ne estas konservitaj.\n\nPremu je Akcepti por daŭrigi, aŭ Nuligi por resti ĉe la aktuala paĝo.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "AVERTO: Viaj ŝanĝoj ne estas konservitaj.", "LeftAndMain.PAGEWASDELETED": "Ĉi tiu paĝo estas forigita. Por redakti paĝon, elektu ĝin maldekstre.", diff --git a/admin/client/lang/es.js b/admin/client/lang/es.js index e19a69426..66aaf41e6 100644 --- a/admin/client/lang/es.js +++ b/admin/client/lang/es.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Ud tiene {num} páginas seleccionadas.\n\n¿Está seguro de querer restaurar estas páginas?\n\nLos hijos de las páginas archivadas serán restauradas al nivel raíz a no ser que esas páginas también sean restauradas.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Ud tiene {num} página(s) seleccionada(s).\n\n¿Realmente la(s) quiere retirar de publicación?", "CMSMAIN.SELECTONEPAGE": "Por favor, seleccione al menos una página", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "¿Estás seguro que quieres navegar fuera de esta página?⏎\n⏎\nADVERTENCIA: Tus cambios no han sido guardados.⏎\n⏎\nPresionar OK para continuar o Cancelar para continuar en la página actual", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ADVERTENCIA: Tus cambios no han sido guardados.", "LeftAndMain.PAGEWASDELETED": "Esta página fue eliminada. Para editar una página, seleccionarla desde la izquierda", diff --git a/admin/client/lang/fa_IR.js b/admin/client/lang/fa_IR.js index dc71f08fd..f8c16225a 100644 --- a/admin/client/lang/fa_IR.js +++ b/admin/client/lang/fa_IR.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "شما {num} صفحه را انتخاب کرده‌اید.\n\nآیا واقعاً می‌خواهید انتشار آن‌ها را لغو نمایید", "CMSMAIN.SELECTONEPAGE": "لطفاً حداقل ۱ صفحه را انتخاب نمایید.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "This page was deleted. To edit a page, select it from the left.", diff --git a/admin/client/lang/fi.js b/admin/client/lang/fi.js index b51848ae1..e28cb2ad0 100644 --- a/admin/client/lang/fi.js +++ b/admin/client/lang/fi.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Sinulla on {num} sivu(a) valittuna.\n\nHaluatko varmasti palauttaa sivut?\n\nArkistoitujen sivujen alasivut palautetaan juuritasolle, jos niitä sivuja ei palauteta.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Sinulla on {num} sivu(a) valittuna.\n\nHaluatko varmasti poistaa julkaisusta?", "CMSMAIN.SELECTONEPAGE": "Valitse vähintään yksi sivu", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Haluatko varmasti poistua tältä sivulta?\n\nVAROITUS: Muutoksiasi ei ole tallennettu.\n\nPaina OK jatkaaksesi, tai Peruuta pysyäksesi nykyisellä sivulla.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "VAROITUS: Muutoksiasi ei ole tallennettu.", "LeftAndMain.PAGEWASDELETED": "Sivu on poistettu. Valitse sivu muokattavaksesi vasemmalta.", diff --git a/admin/client/lang/fr.js b/admin/client/lang/fr.js index 7b1ad2da7..a50020e8c 100644 --- a/admin/client/lang/fr.js +++ b/admin/client/lang/fr.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Etes-vous sûr de vouloir quitter cette page ?\n\nATTENTION: Vos changements n'ont pas été sauvegardés.\n\nCliquez sur OK pour continuer, ou sur Annuler pour rester sur la page actuelle.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "Cette page a été supprimée. Pour éditer cette page, veuillez la sélectionner à gauche.", diff --git a/admin/client/lang/id.js b/admin/client/lang/id.js index cd72d7120..ee4ebc568 100644 --- a/admin/client/lang/id.js +++ b/admin/client/lang/id.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Anda ingin tinggalkan laman ini?\n\nPERINGATAN: Perubahan tidak akan disimpan.\n\nTekan OK untuk lanjut, atau Batal untuk tetap di laman ini.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "PERINGATAN: Perubahan tidak akan disimpan.", "LeftAndMain.PAGEWASDELETED": "Laman sudah terhapus. Untuk mengedit, pilih pada sisi kiri.", diff --git a/admin/client/lang/id_ID.js b/admin/client/lang/id_ID.js index 35bdd884a..27ce4fd4b 100644 --- a/admin/client/lang/id_ID.js +++ b/admin/client/lang/id_ID.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Anda ingin tinggalkan laman ini?\n\nPERINGATAN: Perubahan tidak akan disimpan.\n\nTekan OK untuk lanjut, atau Batal untuk tetap di laman ini.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "PERINGATAN: Perubahan tidak akan disimpan.", "LeftAndMain.PAGEWASDELETED": "Laman sudah terhapus. Untuk mengedit, pilih pada sisi kiri.", diff --git a/admin/client/lang/it.js b/admin/client/lang/it.js index fbe9c888b..aeb3053a3 100644 --- a/admin/client/lang/it.js +++ b/admin/client/lang/it.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Hai selezionato {num} pagina(e).\n\nSei sicuri di volerle ripristinare?\n\nI figli delle pagine archiviate saranno ripristinati nel primo livello, a meno anche i genitori non vengano ripristinati.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Hai {num} pagine selezionate.\n\nVuoi veramente nasconderle?", "CMSMAIN.SELECTONEPAGE": "Per favore selezionare almeno una pagina", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Siete sicuri di voler uscire da questa pagina?\n\nATTENZIONE: I vostri cambiamenti non sono stati salvati.\n\nCliccare OK per continuare, o su Annulla per rimanere sulla pagina corrente.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ATTENZIONE: le tue modifiche non sono state salvate.", "LeftAndMain.PAGEWASDELETED": "Questa pagina è stata eliminata. Per modificare questa pagine, selezionarla a sinistra.", diff --git a/admin/client/lang/ja.js b/admin/client/lang/ja.js index a9259396c..0b79a2b33 100644 --- a/admin/client/lang/ja.js +++ b/admin/client/lang/ja.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "このページから移動しても良いですか?\n\n警告: あなたの変更は保存されていません.\n\n続行するにはOKを押してください.キャンセルをクリックするとこのページにとどまります.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "警告: あなたの変更は保存されていません.", "LeftAndMain.PAGEWASDELETED": "このページは削除されました.ページを編集するには,左から選択してください.", diff --git a/admin/client/lang/lt.js b/admin/client/lang/lt.js index 49118490e..2f2367e9c 100644 --- a/admin/client/lang/lt.js +++ b/admin/client/lang/lt.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Pažymėjote {num} puslapius(-į).\n\nAr tikrai norite atstatyti?\n\nPuslapiai, esantys po suarchyvuotais puslapiais, bus atstatyti aukščiausiame lygyje, nebent šie puslapiai irgi bus atstatyti.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Pažymėjote {num} puslapius(-į).\n\nAr tikrai norite nebepublikuoti?", "CMSMAIN.SELECTONEPAGE": "Prašome pasirinkti bent vieną puslapį", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Ar tikrai norite išeiti iš šio puslapio?\n\nDĖMESIO: Jūsų pakeitimai neišsaugoti.\n\nNorėdami tęsti, spauskite OK, jeigu norite likti, spauskite Cancel.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "DĖMESIO: Jūsų pakeitimai neišsaugoti.", "LeftAndMain.PAGEWASDELETED": "Šis puslapis ištrintas. Norėdami redaguoti puslapį, pasirinkite jį kairėje.", diff --git a/admin/client/lang/mi.js b/admin/client/lang/mi.js index c4707eae1..6c0160877 100644 --- a/admin/client/lang/mi.js +++ b/admin/client/lang/mi.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Kei te hiahia whakatere atu i tēnei whārangi?\n\nWHAKATŪPATO: Kāore anō ō huringa kia tiakina.\n\nPēhi AE kia haere tonu, Whakakore rānei kia noho i te whārangi onāianei.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WHAKATŪPATO: Kāore anō ō huringa kia tiakina.", "LeftAndMain.PAGEWASDELETED": "I mukua tēnei whārangi. Hei whakatika i tētahi whārangi, tīpakohia i te taha mauī.", diff --git a/admin/client/lang/nb.js b/admin/client/lang/nb.js index 3f204427c..daa768a5f 100644 --- a/admin/client/lang/nb.js +++ b/admin/client/lang/nb.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Er du sikker på at du vil forlate denne siden?\n\nADVARSEL: Endringene din har ikke blitt lagret.\n\nTrykk OK for å fortsette eller Avbryt for å holde deg på samme side.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ADVARSEL: Endringene dine har ikke blitt lagret.", "LeftAndMain.PAGEWASDELETED": "Denne siden ble slettet. For å redigere en side, velg den fra listen til venstre.", diff --git a/admin/client/lang/nl.js b/admin/client/lang/nl.js index 4de8d39b8..53852372a 100644 --- a/admin/client/lang/nl.js +++ b/admin/client/lang/nl.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Je hebt {num} pagina(s) geselecteerd.\n\nWeet je zeker dat je de pagina(s) wilt herstellen? Onderliggende pagina's worden naar het top level hersteld, tenzij deze pagina's ook worden hersteld.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Je hebt {num} pagina(s) geselecteerd.\n\nWeet je zeker dat je de publicatie wilt intrekken?", "CMSMAIN.SELECTONEPAGE": "Selecteer minstens 1 pagina.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Weet u zeker dat u deze pagina wilt verlaten?\nWAARSCHUWING: Uw veranderingen zijn niet opgeslagen.\n\nKies OK om te verlaten, of Cancel om op de huidige pagina te blijven.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WAARSCHUWING: Uw veranderingen zijn niet opgeslagen", "LeftAndMain.PAGEWASDELETED": "Deze pagina is verwijderd. Om een pagina aan te passen, selecteer deze aan de linkerkant.", diff --git a/admin/client/lang/pl.js b/admin/client/lang/pl.js index e4701f6b0..9fdae1b56 100644 --- a/admin/client/lang/pl.js +++ b/admin/client/lang/pl.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Czy na pewno chcesz kontynuować nawigację poza tą stronę?\n\nUWAGA: Twoje zmiany nie zostały zapisane.\n\nWciśnij OK aby kontynuować, wciśnij Anuluj aby pozostać na tej stronie.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UWAGA: Twoje zmiany nie zostały zapisane.", "LeftAndMain.PAGEWASDELETED": "Ta strona została usunięta. Wybierz stronę z listy aby rozpocząć edycję.", diff --git a/admin/client/lang/ro.js b/admin/client/lang/ro.js index ca0f2b16c..7dd765a1b 100644 --- a/admin/client/lang/ro.js +++ b/admin/client/lang/ro.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Aveti {num} pagina(i) selectate.\n\nDoriti sa le nenublicati", "CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin o pagină.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Sunteți sigur că doriți să părăsiți pagina?\n\nAVERTISMENT: Modificările nu au fost salvate.\n\nApăsați OK pentru a continua, sau Anulați pentru a rămâne pe pagina curentă.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "AVERTISMENT: Modificările nu au fost salvate.", "LeftAndMain.PAGEWASDELETED": "Această pagină a fost ștearsă. Pentru a edita pagina, selectați-o din stânga.", diff --git a/admin/client/lang/ru.js b/admin/client/lang/ru.js index 82d16c63b..fab33c30e 100644 --- a/admin/client/lang/ru.js +++ b/admin/client/lang/ru.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены", "LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.", diff --git a/admin/client/lang/sk.js b/admin/client/lang/sk.js index 2498cd99a..1287a0345 100644 --- a/admin/client/lang/sk.js +++ b/admin/client/lang/sk.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Vybrali ste {num} stránok.\n\nSkutočne chcete obnoviť?\n\nPodstránky archivovaných stránok budú obnovené do najvyššej úrovne, pokiaľ tieto stránky budú tiež obnovené.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Máte vybratých {num} stránok.\n\nSkutočne ich chcete nezverejniť?", "CMSMAIN.SELECTONEPAGE": "Prosím, vyberte najmenej 1 stránku", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Určite chcete opustiť navigáciu z tejto stránky?\n\nUPOZORNENIE: Vaše zmeny neboli uložené.\n\nStlačte OK pre pokračovať, alebo Cancel, ostanete na teto stránke.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORNENIE: Vaše zmeny neboli uložené.", "LeftAndMain.PAGEWASDELETED": "Táto stránka bola zmazaná. Pre editáciu stránky, vyberte ju vľavo.", diff --git a/admin/client/lang/sl.js b/admin/client/lang/sl.js index 32148aef7..cec375642 100644 --- a/admin/client/lang/sl.js +++ b/admin/client/lang/sl.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Res želite zapusitit stran?\n\nOPOZORILO: spremembe niso bile shranjene\n\nKliknite OK za nadaljevanje ali Prekliči, da ostanete na trenutni strani.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "OPOZORILO: spremembe niso bile shranjene.", "LeftAndMain.PAGEWASDELETED": "Stran je bila izbrisana. Za urejanje izberite stran na levi.", diff --git a/admin/client/lang/sr.js b/admin/client/lang/sr.js index 817e19c0f..9e79ab0b7 100644 --- a/admin/client/lang/sr.js +++ b/admin/client/lang/sr.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Да ли сте сигурни да желите да одете са ове странице?\n\nУПОЗОРЕЊЕ: Ваше измене још нису сачуване.\n\nПритисните У реду за наставак или Одустани да би сте остали на овој страници.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "УПОЗОРЕЊЕ: Ваше измене нису сачуване.", "LeftAndMain.PAGEWASDELETED": "Ова страница је избрисана. Да би изменили страницу, изаберите је са леве стране.", diff --git a/admin/client/lang/sr@latin.js b/admin/client/lang/sr@latin.js index b250a9d1e..06de6a028 100644 --- a/admin/client/lang/sr@latin.js +++ b/admin/client/lang/sr@latin.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Da li ste sigurni da želite da odete sa ove stranice?\n\nUPOZORENjE: Vaše izmene još nisu sačuvane.\n\nPritisnite U redu za nastavak ili Odustani da bi ste ostali na ovoj stranici.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENjE: Vaše izmene nisu sačuvane.", "LeftAndMain.PAGEWASDELETED": "Ova stranica je izbrisana. Da bi izmenili stranicu, izaberite je sa leve strane.", diff --git a/admin/client/lang/sr_RS.js b/admin/client/lang/sr_RS.js index e8768c7f6..f82124d0d 100644 --- a/admin/client/lang/sr_RS.js +++ b/admin/client/lang/sr_RS.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Да ли сте сигурни да желите да одете са ове странице?\n\nУПОЗОРЕЊЕ: Ваше измене још нису сачуване.\n\nПритисните У реду за наставак или Одустани да би сте остали на овој страници.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "УПОЗОРЕЊЕ: Ваше измене нису сачуване.", "LeftAndMain.PAGEWASDELETED": "Ова страница је избрисана. Да би изменили страницу, изаберите је са леве стране.", diff --git a/admin/client/lang/sr_RS@latin.js b/admin/client/lang/sr_RS@latin.js index bee76806c..6f4686158 100644 --- a/admin/client/lang/sr_RS@latin.js +++ b/admin/client/lang/sr_RS@latin.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Da li ste sigurni da želite da odete sa ove stranice?\n\nUPOZORENjE: Vaše izmene još nisu sačuvane.\n\nPritisnite U redu za nastavak ili Odustani da bi ste ostali na ovoj stranici.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENjE: Vaše izmene nisu sačuvane.", "LeftAndMain.PAGEWASDELETED": "Ova stranica je izbrisana. Da bi izmenili stranicu, izaberite je sa leve strane.", diff --git a/admin/client/lang/src/cs.js b/admin/client/lang/src/cs.js index 8694d14f7..3a731f420 100644 --- a/admin/client/lang/src/cs.js +++ b/admin/client/lang/src/cs.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Vybráno {num} stránek.\n\nSkutečně chcete obnovit?\n\nPodstránky archivovaných stránek budou obnoveny do nejvzšší úrovně, pokud tyto stránky budou také obnoveny.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Máte vybráno {num} stránek.\n\nSkutečně je chcete nezveřejnit?", "CMSMAIN.SELECTONEPAGE": "Prosím, vyberte nejméně 1 stránku", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Určitě chcete opustit navigaci z této stránky?\n\nUPOZORNĚNÍ: Vaše změny nebyly uloženy.\n\nStlačte OK pro pokračovat, nebo Cancel, zůstanete na této stránce.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORNĚNÍ: Vaše změny nebyly uloženy.", "LeftAndMain.PAGEWASDELETED": "Tato stránka byla smazána. Pro editaci stránky, vyberte ji vlevo.", diff --git a/admin/client/lang/src/de.js b/admin/client/lang/src/de.js index 9add8ae01..3260156c5 100644 --- a/admin/client/lang/src/de.js +++ b/admin/client/lang/src/de.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\\n\\nWollen Sie diese wirklich wiederherstellen?\\n\\nUnterseiten von archivierten Seiten werden auf der Root-Ebene wiederhergestellt, es sei denn, diese Seiten werden ebenfalls wiederhergestellt.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Sie haben {num} Seite(n) ausgewählt.\n\nWollen Sie wirklich die Veröffentlichung zurücknehmen?", "CMSMAIN.SELECTONEPAGE": "Bitte mindestens eine Seite auswählen", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Sind Sie sicher, dass Sie die Seite verlassen möchten?\n\nWARNUNG: Ihre Änderungen werden nicht gespeichert.\n\nDrücken Sie \"OK\" um fortzufahren, oder \"Abbrechen\" um auf dieser Seite zu bleiben.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNUNG: Ihre Änderungen wurden nicht gespeichert.", "LeftAndMain.PAGEWASDELETED": "Diese Seite wurde gelöscht.", diff --git a/admin/client/lang/src/eo.js b/admin/client/lang/src/eo.js index c5797be68..48fb3e08d 100644 --- a/admin/client/lang/src/eo.js +++ b/admin/client/lang/src/eo.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Vi elektis {num} paĝo(j)n.\n\nĈu vi vere volas restaŭri al stadio?\n\nIdoj de enarĥivigitaj paĝoj estos restaŭritaj al la radika nivelo, escepte se tiuj paĝoj ankaŭ estos restaŭritaj.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Vi elektis {num} paĝo(j)n.\n\nĈi vi vere volas malpublikigi?", "CMSMAIN.SELECTONEPAGE": "Bonvole elektu almenaŭ 1 paĝon.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Ĉu vi vere volas navigi for de ĉi tiu paĝo?\n\nAVERTO: Viaj ŝanĝoj ne estas konservitaj.\n\nPremu je Akcepti por daŭrigi, aŭ Nuligi por resti ĉe la aktuala paĝo.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "AVERTO: Viaj ŝanĝoj ne estas konservitaj.", "LeftAndMain.PAGEWASDELETED": "Ĉi tiu paĝo estas forigita. Por redakti paĝon, elektu ĝin maldekstre.", diff --git a/admin/client/lang/src/es.js b/admin/client/lang/src/es.js index d78077eaf..879e8b2d5 100644 --- a/admin/client/lang/src/es.js +++ b/admin/client/lang/src/es.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Ud tiene {num} páginas seleccionadas.\n\n¿Está seguro de querer restaurar estas páginas?\n\nLos hijos de las páginas archivadas serán restauradas al nivel raíz a no ser que esas páginas también sean restauradas.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Ud tiene {num} página(s) seleccionada(s).\n\n¿Realmente la(s) quiere retirar de publicación?", "CMSMAIN.SELECTONEPAGE": "Por favor, seleccione al menos una página", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "¿Estás seguro que quieres navegar fuera de esta página?⏎\n⏎\nADVERTENCIA: Tus cambios no han sido guardados.⏎\n⏎\nPresionar OK para continuar o Cancelar para continuar en la página actual", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ADVERTENCIA: Tus cambios no han sido guardados.", "LeftAndMain.PAGEWASDELETED": "Esta página fue eliminada. Para editar una página, seleccionarla desde la izquierda", diff --git a/admin/client/lang/src/fa_IR.js b/admin/client/lang/src/fa_IR.js index f8d552aba..1fa5d18c5 100644 --- a/admin/client/lang/src/fa_IR.js +++ b/admin/client/lang/src/fa_IR.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "شما {num} صفحه را انتخاب کرده‌اید.\n\nآیا واقعاً می‌خواهید انتشار آن‌ها را لغو نمایید", "CMSMAIN.SELECTONEPAGE": "لطفاً حداقل ۱ صفحه را انتخاب نمایید.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Are you sure you want to navigate away from this page?\n\nWARNING: Your changes have not been saved.\n\nPress OK to continue, or Cancel to stay on the current page.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "This page was deleted. To edit a page, select it from the left.", diff --git a/admin/client/lang/src/fi.js b/admin/client/lang/src/fi.js index 949e8c864..77ebb6fbb 100644 --- a/admin/client/lang/src/fi.js +++ b/admin/client/lang/src/fi.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Sinulla on {num} sivu(a) valittuna.\n\nHaluatko varmasti palauttaa sivut?\n\nArkistoitujen sivujen alasivut palautetaan juuritasolle, jos niitä sivuja ei palauteta.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Sinulla on {num} sivu(a) valittuna.\n\nHaluatko varmasti poistaa julkaisusta?", "CMSMAIN.SELECTONEPAGE": "Valitse vähintään yksi sivu", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Haluatko varmasti poistua tältä sivulta?\n\nVAROITUS: Muutoksiasi ei ole tallennettu.\n\nPaina OK jatkaaksesi, tai Peruuta pysyäksesi nykyisellä sivulla.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "VAROITUS: Muutoksiasi ei ole tallennettu.", "LeftAndMain.PAGEWASDELETED": "Sivu on poistettu. Valitse sivu muokattavaksesi vasemmalta.", diff --git a/admin/client/lang/src/fr.js b/admin/client/lang/src/fr.js index 98597d56a..452aaf9bb 100644 --- a/admin/client/lang/src/fr.js +++ b/admin/client/lang/src/fr.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Etes-vous sûr de vouloir quitter cette page ?\n\nATTENTION: Vos changements n'ont pas été sauvegardés.\n\nCliquez sur OK pour continuer, ou sur Annuler pour rester sur la page actuelle.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "Cette page a été supprimée. Pour éditer cette page, veuillez la sélectionner à gauche.", diff --git a/admin/client/lang/src/id.js b/admin/client/lang/src/id.js index ef92cf668..51f27b5fc 100644 --- a/admin/client/lang/src/id.js +++ b/admin/client/lang/src/id.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Anda ingin tinggalkan laman ini?\n\nPERINGATAN: Perubahan tidak akan disimpan.\n\nTekan OK untuk lanjut, atau Batal untuk tetap di laman ini.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "PERINGATAN: Perubahan tidak akan disimpan.", "LeftAndMain.PAGEWASDELETED": "Laman sudah terhapus. Untuk mengedit, pilih pada sisi kiri.", diff --git a/admin/client/lang/src/id_ID.js b/admin/client/lang/src/id_ID.js index ef92cf668..51f27b5fc 100644 --- a/admin/client/lang/src/id_ID.js +++ b/admin/client/lang/src/id_ID.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Anda ingin tinggalkan laman ini?\n\nPERINGATAN: Perubahan tidak akan disimpan.\n\nTekan OK untuk lanjut, atau Batal untuk tetap di laman ini.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "PERINGATAN: Perubahan tidak akan disimpan.", "LeftAndMain.PAGEWASDELETED": "Laman sudah terhapus. Untuk mengedit, pilih pada sisi kiri.", diff --git a/admin/client/lang/src/it.js b/admin/client/lang/src/it.js index be6b05a3c..9ae0eb964 100644 --- a/admin/client/lang/src/it.js +++ b/admin/client/lang/src/it.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Hai selezionato {num} pagina(e).\n\nSei sicuri di volerle ripristinare?\n\nI figli delle pagine archiviate saranno ripristinati nel primo livello, a meno anche i genitori non vengano ripristinati.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Hai {num} pagine selezionate.\n\nVuoi veramente nasconderle?", "CMSMAIN.SELECTONEPAGE": "Per favore selezionare almeno una pagina", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Siete sicuri di voler uscire da questa pagina?\n\nATTENZIONE: I vostri cambiamenti non sono stati salvati.\n\nCliccare OK per continuare, o su Annulla per rimanere sulla pagina corrente.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ATTENZIONE: le tue modifiche non sono state salvate.", "LeftAndMain.PAGEWASDELETED": "Questa pagina è stata eliminata. Per modificare questa pagine, selezionarla a sinistra.", diff --git a/admin/client/lang/src/ja.js b/admin/client/lang/src/ja.js index dfc93d59d..54a27d62e 100644 --- a/admin/client/lang/src/ja.js +++ b/admin/client/lang/src/ja.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "このページから移動しても良いですか?\n\n警告: あなたの変更は保存されていません.\n\n続行するにはOKを押してください.キャンセルをクリックするとこのページにとどまります.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "警告: あなたの変更は保存されていません.", "LeftAndMain.PAGEWASDELETED": "このページは削除されました.ページを編集するには,左から選択してください.", diff --git a/admin/client/lang/src/lt.js b/admin/client/lang/src/lt.js index d7e356f57..415b62a80 100644 --- a/admin/client/lang/src/lt.js +++ b/admin/client/lang/src/lt.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Pažymėjote {num} puslapius(-į).\n\nAr tikrai norite atstatyti?\n\nPuslapiai, esantys po suarchyvuotais puslapiais, bus atstatyti aukščiausiame lygyje, nebent šie puslapiai irgi bus atstatyti.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Pažymėjote {num} puslapius(-į).\n\nAr tikrai norite nebepublikuoti?", "CMSMAIN.SELECTONEPAGE": "Prašome pasirinkti bent vieną puslapį", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Ar tikrai norite išeiti iš šio puslapio?\n\nDĖMESIO: Jūsų pakeitimai neišsaugoti.\n\nNorėdami tęsti, spauskite OK, jeigu norite likti, spauskite Cancel.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "DĖMESIO: Jūsų pakeitimai neišsaugoti.", "LeftAndMain.PAGEWASDELETED": "Šis puslapis ištrintas. Norėdami redaguoti puslapį, pasirinkite jį kairėje.", diff --git a/admin/client/lang/src/mi.js b/admin/client/lang/src/mi.js index bed134714..88a353b75 100644 --- a/admin/client/lang/src/mi.js +++ b/admin/client/lang/src/mi.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Kei te hiahia whakatere atu i tēnei whārangi?\n\nWHAKATŪPATO: Kāore anō ō huringa kia tiakina.\n\nPēhi AE kia haere tonu, Whakakore rānei kia noho i te whārangi onāianei.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WHAKATŪPATO: Kāore anō ō huringa kia tiakina.", "LeftAndMain.PAGEWASDELETED": "I mukua tēnei whārangi. Hei whakatika i tētahi whārangi, tīpakohia i te taha mauī.", diff --git a/admin/client/lang/src/nb.js b/admin/client/lang/src/nb.js index 4faedf6de..755c71aa6 100644 --- a/admin/client/lang/src/nb.js +++ b/admin/client/lang/src/nb.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Er du sikker på at du vil forlate denne siden?\n\nADVARSEL: Endringene din har ikke blitt lagret.\n\nTrykk OK for å fortsette eller Avbryt for å holde deg på samme side.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ADVARSEL: Endringene dine har ikke blitt lagret.", "LeftAndMain.PAGEWASDELETED": "Denne siden ble slettet. For å redigere en side, velg den fra listen til venstre.", diff --git a/admin/client/lang/src/nl.js b/admin/client/lang/src/nl.js index 0384c05bd..f33b772e7 100644 --- a/admin/client/lang/src/nl.js +++ b/admin/client/lang/src/nl.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Je hebt {num} pagina(s) geselecteerd.\n\nWeet je zeker dat je de pagina(s) wilt herstellen? Onderliggende pagina's worden naar het top level hersteld, tenzij deze pagina's ook worden hersteld.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Je hebt {num} pagina(s) geselecteerd.\n\nWeet je zeker dat je de publicatie wilt intrekken?", "CMSMAIN.SELECTONEPAGE": "Selecteer minstens 1 pagina.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Weet u zeker dat u deze pagina wilt verlaten?\nWAARSCHUWING: Uw veranderingen zijn niet opgeslagen.\n\nKies OK om te verlaten, of Cancel om op de huidige pagina te blijven.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WAARSCHUWING: Uw veranderingen zijn niet opgeslagen", "LeftAndMain.PAGEWASDELETED": "Deze pagina is verwijderd. Om een pagina aan te passen, selecteer deze aan de linkerkant.", diff --git a/admin/client/lang/src/pl.js b/admin/client/lang/src/pl.js index 7c935271a..89f39af27 100644 --- a/admin/client/lang/src/pl.js +++ b/admin/client/lang/src/pl.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Czy na pewno chcesz kontynuować nawigację poza tą stronę?\n\nUWAGA: Twoje zmiany nie zostały zapisane.\n\nWciśnij OK aby kontynuować, wciśnij Anuluj aby pozostać na tej stronie.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UWAGA: Twoje zmiany nie zostały zapisane.", "LeftAndMain.PAGEWASDELETED": "Ta strona została usunięta. Wybierz stronę z listy aby rozpocząć edycję.", diff --git a/admin/client/lang/src/ro.js b/admin/client/lang/src/ro.js index c62023b43..959353d9f 100644 --- a/admin/client/lang/src/ro.js +++ b/admin/client/lang/src/ro.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Aveti {num} pagina(i) selectate.\n\nDoriti sa le nenublicati", "CMSMAIN.SELECTONEPAGE": "Vă rugăm să selectaţi cel puțin o pagină.", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Sunteți sigur că doriți să părăsiți pagina?\n\nAVERTISMENT: Modificările nu au fost salvate.\n\nApăsați OK pentru a continua, sau Anulați pentru a rămâne pe pagina curentă.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "AVERTISMENT: Modificările nu au fost salvate.", "LeftAndMain.PAGEWASDELETED": "Această pagină a fost ștearsă. Pentru a edita pagina, selectați-o din stânga.", diff --git a/admin/client/lang/src/ru.js b/admin/client/lang/src/ru.js index 7ebe2ad9a..48d176240 100644 --- a/admin/client/lang/src/ru.js +++ b/admin/client/lang/src/ru.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены", "LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.", diff --git a/admin/client/lang/src/sk.js b/admin/client/lang/src/sk.js index 383295924..34deb6a3b 100644 --- a/admin/client/lang/src/sk.js +++ b/admin/client/lang/src/sk.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Vybrali ste {num} stránok.\n\nSkutočne chcete obnoviť?\n\nPodstránky archivovaných stránok budú obnovené do najvyššej úrovne, pokiaľ tieto stránky budú tiež obnovené.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Máte vybratých {num} stránok.\n\nSkutočne ich chcete nezverejniť?", "CMSMAIN.SELECTONEPAGE": "Prosím, vyberte najmenej 1 stránku", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Určite chcete opustiť navigáciu z tejto stránky?\n\nUPOZORNENIE: Vaše zmeny neboli uložené.\n\nStlačte OK pre pokračovať, alebo Cancel, ostanete na teto stránke.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORNENIE: Vaše zmeny neboli uložené.", "LeftAndMain.PAGEWASDELETED": "Táto stránka bola zmazaná. Pre editáciu stránky, vyberte ju vľavo.", diff --git a/admin/client/lang/src/sl.js b/admin/client/lang/src/sl.js index c9abe56c1..0d7d53a56 100644 --- a/admin/client/lang/src/sl.js +++ b/admin/client/lang/src/sl.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Res želite zapusitit stran?\n\nOPOZORILO: spremembe niso bile shranjene\n\nKliknite OK za nadaljevanje ali Prekliči, da ostanete na trenutni strani.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "OPOZORILO: spremembe niso bile shranjene.", "LeftAndMain.PAGEWASDELETED": "Stran je bila izbrisana. Za urejanje izberite stran na levi.", diff --git a/admin/client/lang/src/sr.js b/admin/client/lang/src/sr.js index da5e6a084..3b4cf2bab 100644 --- a/admin/client/lang/src/sr.js +++ b/admin/client/lang/src/sr.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Да ли сте сигурни да желите да одете са ове странице?\n\nУПОЗОРЕЊЕ: Ваше измене још нису сачуване.\n\nПритисните У реду за наставак или Одустани да би сте остали на овој страници.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "УПОЗОРЕЊЕ: Ваше измене нису сачуване.", "LeftAndMain.PAGEWASDELETED": "Ова страница је избрисана. Да би изменили страницу, изаберите је са леве стране.", diff --git a/admin/client/lang/src/sr@latin.js b/admin/client/lang/src/sr@latin.js index edaa11a5c..61ee9dadf 100644 --- a/admin/client/lang/src/sr@latin.js +++ b/admin/client/lang/src/sr@latin.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Da li ste sigurni da želite da odete sa ove stranice?\n\nUPOZORENjE: Vaše izmene još nisu sačuvane.\n\nPritisnite U redu za nastavak ili Odustani da bi ste ostali na ovoj stranici.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENjE: Vaše izmene nisu sačuvane.", "LeftAndMain.PAGEWASDELETED": "Ova stranica je izbrisana. Da bi izmenili stranicu, izaberite je sa leve strane.", diff --git a/admin/client/lang/src/sr_RS.js b/admin/client/lang/src/sr_RS.js index da5e6a084..3b4cf2bab 100644 --- a/admin/client/lang/src/sr_RS.js +++ b/admin/client/lang/src/sr_RS.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Да ли сте сигурни да желите да одете са ове странице?\n\nУПОЗОРЕЊЕ: Ваше измене још нису сачуване.\n\nПритисните У реду за наставак или Одустани да би сте остали на овој страници.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "УПОЗОРЕЊЕ: Ваше измене нису сачуване.", "LeftAndMain.PAGEWASDELETED": "Ова страница је избрисана. Да би изменили страницу, изаберите је са леве стране.", diff --git a/admin/client/lang/src/sr_RS@latin.js b/admin/client/lang/src/sr_RS@latin.js index edaa11a5c..61ee9dadf 100644 --- a/admin/client/lang/src/sr_RS@latin.js +++ b/admin/client/lang/src/sr_RS@latin.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to unpublish", "CMSMAIN.SELECTONEPAGE": "Please select at least one page", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Da li ste sigurni da želite da odete sa ove stranice?\n\nUPOZORENjE: Vaše izmene još nisu sačuvane.\n\nPritisnite U redu za nastavak ili Odustani da bi ste ostali na ovoj stranici.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENjE: Vaše izmene nisu sačuvane.", "LeftAndMain.PAGEWASDELETED": "Ova stranica je izbrisana. Da bi izmenili stranicu, izaberite je sa leve strane.", diff --git a/admin/client/lang/src/sv.js b/admin/client/lang/src/sv.js index c90ccc673..4bfe6e118 100644 --- a/admin/client/lang/src/sv.js +++ b/admin/client/lang/src/sv.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "Du har {num} sida/sidor valda. \n\nVill du verkligen återställa till ett tidigare skede?\n\nUndersidor till arkiverade sidor kommer att återställas till rotnivå , såvida dessa sidor också återställs .", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Du har valt {num} sida/sidor\n\nVill du verkligen avpublicera", "CMSMAIN.SELECTONEPAGE": "Var vänlig och välj minst en sida", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Är du säker på att du vill lämna denna sida?\n\nVARNING: Dina ändringar har inte sparats.\n\nTryck OK för att lämna sidan eller Avbryt för att stanna på aktuell sida.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "Sidan raderades. För att redigera en sida, välj den i menyn till vänster.", diff --git a/admin/client/lang/src/zh.js b/admin/client/lang/src/zh.js index 97880da30..a6a223d49 100644 --- a/admin/client/lang/src/zh.js +++ b/admin/client/lang/src/zh.js @@ -6,6 +6,11 @@ "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "您已选了{num}个页面。\n\n是否确定要取消发布", "CMSMAIN.SELECTONEPAGE": "请至少选择一个页面", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "您确定要离开此页面?\n警告:您所做的更改尚未保存。\n请按“确定”继续,或“取消”留在当前页面。\n", "LeftAndMain.CONFIRMUNSAVEDSHORT": "警告:您所做的更改尚未保存。", "LeftAndMain.PAGEWASDELETED": "该页面已被删除。若要编辑一个页面,请在左边选择。", diff --git a/admin/client/lang/sv.js b/admin/client/lang/sv.js index c14e33741..edad1fd3a 100644 --- a/admin/client/lang/sv.js +++ b/admin/client/lang/sv.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "Du har {num} sida/sidor valda. \n\nVill du verkligen återställa till ett tidigare skede?\n\nUndersidor till arkiverade sidor kommer att återställas till rotnivå , såvida dessa sidor också återställs .", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Du har valt {num} sida/sidor\n\nVill du verkligen avpublicera", "CMSMAIN.SELECTONEPAGE": "Var vänlig och välj minst en sida", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "Är du säker på att du vill lämna denna sida?\n\nVARNING: Dina ändringar har inte sparats.\n\nTryck OK för att lämna sidan eller Avbryt för att stanna på aktuell sida.", "LeftAndMain.CONFIRMUNSAVEDSHORT": "WARNING: Your changes have not been saved.", "LeftAndMain.PAGEWASDELETED": "Sidan raderades. För att redigera en sida, välj den i menyn till vänster.", diff --git a/admin/client/lang/zh.js b/admin/client/lang/zh.js index 8df1d0286..0b1ccb015 100644 --- a/admin/client/lang/zh.js +++ b/admin/client/lang/zh.js @@ -13,6 +13,11 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { "CMSMAIN.BATCH_RESTORE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to restore to stage?\n\nChildren of archived pages will be restored to the root level, unless those pages are also being restored.", "CMSMAIN.BATCH_UNPUBLISH_PROMPT": "您已选了{num}个页面。\n\n是否确定要取消发布", "CMSMAIN.SELECTONEPAGE": "请至少选择一个页面", + "Campaigns.ADDCAMPAIGN": "Add campaign", + "Campaigns.ITEM_SUMMARY_PLURAL": "%s items", + "Campaigns.ITEM_SUMMARY_SINGULAR": "%s item", + "Campaigns.PUBLISHCAMPAIGN": "Publish campaign", + "Campaigns.REVERTCAMPAIGN": "Revert", "LeftAndMain.CONFIRMUNSAVED": "您确定要离开此页面?\n警告:您所做的更改尚未保存。\n请按“确定”继续,或“取消”留在当前页面。\n", "LeftAndMain.CONFIRMUNSAVEDSHORT": "警告:您所做的更改尚未保存。", "LeftAndMain.PAGEWASDELETED": "该页面已被删除。若要编辑一个页面,请在左边选择。", diff --git a/api/RSSFeed.php b/api/RSSFeed.php index 26483d429..adc418499 100644 --- a/api/RSSFeed.php +++ b/api/RSSFeed.php @@ -152,7 +152,7 @@ class RSSFeed extends ViewableData { if(isset($this->entries)) { foreach($this->entries as $entry) { $output->push( - new RSSFeed_Entry($entry, $this->titleField, $this->descriptionField, $this->authorField)); + RSSFeed_Entry::create($entry, $this->titleField, $this->descriptionField, $this->authorField)); } } return $output; @@ -187,7 +187,11 @@ class RSSFeed extends ViewableData { } /** - * Output the feed to the browser + * Output the feed to the browser. + * + * TODO: Pass $response object to ->outputToBrowser() to loosen dependence on global state for easier testing/prototyping so dev can inject custom SS_HTTPResponse instance. + * + * @return HTMLText */ public function outputToBrowser() { $prevState = Config::inst()->get('SSViewer', 'source_file_comments'); diff --git a/core/manifest/ClassManifest.php b/core/manifest/ClassManifest.php index ad3b78578..eb49e5207 100644 --- a/core/manifest/ClassManifest.php +++ b/core/manifest/ClassManifest.php @@ -519,8 +519,7 @@ class SS_ClassManifest { // files will have changed and TokenisedRegularExpression is quite // slow. A combination of the file name and file contents hash are used, // since just using the datetime lead to problems with upgrading. - $file = file_get_contents($pathname); - $key = preg_replace('/[^a-zA-Z0-9_]/', '_', $basename) . '_' . md5($file); + $key = preg_replace('/[^a-zA-Z0-9_]/', '_', $basename) . '_' . md5_file($pathname); $valid = false; if ($data = $this->cache->load($key)) { @@ -542,7 +541,7 @@ class SS_ClassManifest { } if (!$valid) { - $tokens = token_get_all($file); + $tokens = token_get_all(file_get_contents($pathname)); $classes = self::get_namespaced_class_parser()->findAll($tokens); $traits = self::get_trait_parser()->findAll($tokens); diff --git a/docs/en/02_Developer_Guides/00_Model/01_Data_Model_and_ORM.md b/docs/en/02_Developer_Guides/00_Model/01_Data_Model_and_ORM.md index ee7889703..17104026c 100644 --- a/docs/en/02_Developer_Guides/00_Model/01_Data_Model_and_ORM.md +++ b/docs/en/02_Developer_Guides/00_Model/01_Data_Model_and_ORM.md @@ -150,7 +150,7 @@ shortcuts and methods for fetching, sorting and filtering data from our database $players = Player::get(); // returns a `DataList` containing all the `Player` objects. - $player = Player::get()->byId(2); + $player = Player::get()->byID(2); // returns a single `Player` object instance that has the ID of 2. echo $player->ID; diff --git a/docs/en/02_Developer_Guides/00_Model/06_SearchFilters.md b/docs/en/02_Developer_Guides/00_Model/06_SearchFilters.md index e0b1f9b4c..bb7f5784f 100644 --- a/docs/en/02_Developer_Guides/00_Model/06_SearchFilters.md +++ b/docs/en/02_Developer_Guides/00_Model/06_SearchFilters.md @@ -19,13 +19,13 @@ An example of a `SearchFilter` in use: :::php // fetch any player that starts with a S $players = Player::get()->filter(array( - 'FirstName:StartsWith' => 'S' + 'FirstName:StartsWith' => 'S', 'PlayerNumber:GreaterThan' => '10' )); // to fetch any player that's name contains the letter 'z' $players = Player::get()->filterAny(array( - 'FirstName:PartialMatch' => 'z' + 'FirstName:PartialMatch' => 'z', 'LastName:PartialMatch' => 'z' )); @@ -50,4 +50,4 @@ The following is a query which will return everyone whose first name starts with ## API Documentation -* [api:SearchFilter] \ No newline at end of file +* [api:SearchFilter] diff --git a/docs/en/04_Changelogs/rc/3.4.0-rc1.md b/docs/en/04_Changelogs/rc/3.4.0-rc1.md new file mode 100644 index 000000000..59a8544ec --- /dev/null +++ b/docs/en/04_Changelogs/rc/3.4.0-rc1.md @@ -0,0 +1,89 @@ +# 3.4.0-rc1 + +## Upgrading notes + +Upgrading from 3.3 to 3.4 shouldn't require any code changes. + +Note that if you are upgrading from 3.1, you should review the [3.2 upgrade notes](3.2.0). + +### Other changes to be aware of + +These changes are unlikely to affect your upgrade, but we've noted them just in case you had unusual project code that +was affected by these: + + * When FormFields are rendered, leading & trailing whitespace is now stripped. The resulting HTML for form fields is + the same for the default fields, but if you have a custom form field that is relying on trailing whitespace being + outputted. + * DataObject::isChanged() now defaults to only checking database fields. If you rely on this method + for checking changes to non-db field properties, use getChangedFields() instead. + +### Error handling + +Up until 3.4.0 error responses handled by SilverStripe have normally returned HTTP 200. The correct http response +code can be turned on by setting `Debug.friendly_error_httpcode` config to true. This option will be removed in +4.0 and fixed to always on. + + + :::yaml + --- + Name: mydebug + --- + Debug: + friendly_error_httpcode: true + + + + + +## Change Log + +### API Changes + + * 2016-05-18 [c55777c](https://github.com/silverstripe/silverstripe-installer/commit/c55777c9af3c257c755b9a82871866410968df82) Enable friendly error HTTP code by default for new projects (Damian Mooyman) + * 2016-05-18 [757cfae](https://github.com/silverstripe/silverstripe-framework/commit/757cfae90cdef590202f0cbcdf67e180df484a1b) Enable Debug.friendly_error_httpcode to correctly set HTTP status code for errors (Damian Mooyman) + * 2016-05-12 [7041c59](https://github.com/silverstripe/silverstripe-framework/commit/7041c5945c247c1e104507bfe5751d24543aa38c) Enable requirements to persist between flushes (Damian Mooyman) + * 2016-04-19 [43b0052](https://github.com/silverstripe/silverstripe-framework/commit/43b00520feba68e71b8ec70336cd7923113ffcb0) Remove artifact datalist overrides from UnsavedRelationList (Damian Mooyman) + * 2016-03-07 [634e86f](https://github.com/silverstripe/silverstripe-framework/commit/634e86f949e0ced1eb5e14c9bb7ec43ecc52652c) Include File.ParentID in fulltext search results (Damian Mooyman) + * 2015-12-13 [62f183d](https://github.com/silverstripe/silverstripe-framework/commit/62f183d03792c1bd1e0e2e385ca587b94de08d83) before/afterExtend now support parameters passed by reference (Damian Mooyman) + * 2015-11-25 [3842971](https://github.com/silverstripe/silverstripe-framework/commit/384297150a97c84bac05870b77ea7a736b20f553) refactor LeftAndMain_Menu.ss into individually overridable components (Damian Mooyman) + * 2015-08-28 [f6fe142](https://github.com/silverstripe/silverstripe-framework/commit/f6fe1427c286fa5fc58b83cd10d84bf5930889e2) Making ArrayList (and others) more consistent with DataList (Daniel Hensby) + +### Features and Enhancements + + * 2016-03-27 [1e7281a](https://github.com/silverstripe/silverstripe-framework/commit/1e7281a2ba70b6281e6e72070e2fdb559b406c98) Add onBeforeRender() hook to GridField (Loz Calver) + * 2016-03-15 [2923787](https://github.com/silverstripe/silverstripe-framework/commit/292378735251afe221f77c097095c859dc49caf5) consistent file icons (Jonathon Menz) + * 2016-02-23 [375bbf9](https://github.com/silverstripe/silverstripe-framework/commit/375bbf954e0b1d24e6119edec267608a8d0ec85c) and fix for issue #3186 (Tyler Kidd) + * 2016-02-22 [01c8d38](https://github.com/silverstripe/silverstripe-framework/commit/01c8d388854466642b6fcc624d6b35b39e44bf7a) Passing $tmpFile to extension. (Taras Yemtsov) + * 2015-12-22 [c9ba0e4](https://github.com/silverstripe/silverstripe-framework/commit/c9ba0e48fc927557b34faec5c672a80709ad0632) Add ViewableData::setFailover() to refresh detected methods when changing failover (Loz Calver) + +### Bugfixes + + * 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman) + * 2016-05-17 [8ed25ae](https://github.com/silverstripe/silverstripe-framework/commit/8ed25ae4829c03e51bf63c35b2bbff8fa078d324) Fix DataObject::isChanged() detecting non saveable changes (#5545) (Damian Mooyman) + * 2016-05-17 [8947bb0](https://github.com/silverstripe/silverstripe-framework/commit/8947bb0245c2be23f9ec3ad1d2dcd6b554182f4f) Fix filtersOnId ignoring `WHERE "ID" IN ()` (#5546) (Damian Mooyman) + * 2016-05-17 [829f59e](https://github.com/silverstripe/silverstripe-framework/commit/829f59e4437b0a99ab06889784f713d1f9a456f0) Fix link dialog box layout in CMS (Damian Mooyman) + * 2016-05-16 [79d0590](https://github.com/silverstripe/silverstripe-framework/commit/79d05906286698e7cf7274703088a47c54b106f2) Fix singleton('DBLocale') (Damian Mooyman) + * 2016-05-13 [4d1ddf0](https://github.com/silverstripe/silverstripe-framework/commit/4d1ddf0e62c7565a9650ebcef9dd51bbd6d9a83c) Prevent session hijackers from resetting a user password (Damian Mooyman) + * 2016-05-10 [3738d88](https://github.com/silverstripe/silverstripe-framework/commit/3738d888e0fbce48e0d88735edd3455a116937b5) Empty FROM clause (Daniel Hensby) + * 2016-05-10 [d1df67d](https://github.com/silverstripe/silverstripe-framework/commit/d1df67d3089a51c0db63fbaed869738453bee482) SQLSelect count methods now cast to int (fixes #5498) (Loz Calver) + * 2016-05-05 [cc7a2ae](https://github.com/silverstripe/silverstripe-installer/commit/cc7a2aeb1e03f3f8db67a1ca547280b05dd9372a) Add framework/admin tests (#118) (Daniel Hensby) + * 2016-05-02 [096f30e](https://github.com/silverstripe/silverstripe-framework/commit/096f30ebe5ff6446a399abc92813a6ff2d02e04e) Fix GridFieldAddExistingAutocompleter (Damian Mooyman) + * 2016-04-28 [6934083](https://github.com/silverstripe/silverstripe-framework/commit/693408330bdd235b92690912ad36ba8adbebdbef) for #5410 to help focus errors occurring on tabs within GridField controlled DataObjects (et al). (Patrick Nelson) + * 2016-04-21 [fa5b8b8](https://github.com/silverstripe/silverstripe-framework/commit/fa5b8b8fb13661490fd518777305c5e3dd22309b) Fix error when modals are displayed (Damian Mooyman) + * 2016-04-21 [b4f466f](https://github.com/silverstripe/silverstripe-cms/commit/b4f466f5e10cde3d691280258cd4920c58f0ab65) Correct framework/module dependencies for cms (Damian Mooyman) + * 2016-04-21 [ae268ae](https://github.com/silverstripe/silverstripe-framework/commit/ae268ae4df11a59d9bdf941f1ae9789461fa7d75) #5363 Add .JSON option for templates (Robbie Averill) + * 2016-03-29 [7907d20](https://github.com/silverstripe/silverstripe-framework/commit/7907d20da7af4c2945fa2ced2963eb938bee4f3c) changing all cases of filesize spelling to file size (Tim Kung) + * 2016-03-17 [96c586b](https://github.com/silverstripe/silverstripe-framework/commit/96c586b39d8c06d439e67a2a6df33ada97fe8dd1) only output $CleartextPassword if it has a value (Christopher Darling) + * 2016-02-12 [a34f17f](https://github.com/silverstripe/silverstripe-framework/commit/a34f17f83970f4bfb04e6c80188ca36a29125dd2) for #5028: Ensure empty YML configs don't break when merging them in (i.e. make sure it's traversable before foreach'ing over it). (Patrick Nelson) + * 2016-01-26 [b1b403c](https://github.com/silverstripe/silverstripe-cms/commit/b1b403cd089ee2fcb6ed28d62fa3e81f00a18f4d) Borders on CMS Actions (Daniel Hensby) + * 2016-01-26 [c5fc9dd](https://github.com/silverstripe/silverstripe-framework/commit/c5fc9dd65003788c8dcf9ebf64065be9ec468b1d) CMS actions alignment (Daniel Hensby) + * 2016-01-12 [a7110be](https://github.com/silverstripe/silverstripe-framework/commit/a7110bef703db749ebfea6da1e9d10c310e0624a) OptionsetField uses aria-required (Torleif West) + * 2016-01-11 [122784b](https://github.com/silverstripe/silverstripe-framework/commit/122784b1cb93c5892f1f02cd50cc79297177ea19) OptionsetField input has required #4901 (torleif) + * 2016-01-11 [288c8a8](https://github.com/silverstripe/silverstripe-framework/commit/288c8a8b272af85cf1b62d82b5633e16bbf44d15) OptionsetField returns valid HTML #4901 (torleif) + * 2016-01-06 [bf6337c](https://github.com/silverstripe/silverstripe-cms/commit/bf6337c59a291124985a4ea6b490c304193d7b25) Changes needed to respond to whitespace changes. (Sam Minnee) + * 2016-01-06 [4aa5053](https://github.com/silverstripe/silverstripe-framework/commit/4aa50534d566722df81bfac8efd2c3db7ed92596) Fixes needed to adapt to whitespace changes. (Sam Minnee) + * 2015-12-22 [24660af](https://github.com/silverstripe/silverstripe-framework/commit/24660afabd7ddcaf87aa859df396862cecea2ef8) Parameters passed to includes overwrite all scopes (fixes #2617) (Loz Calver) + * 2015-11-04 [fb43e59](https://github.com/silverstripe/silverstripe-cms/commit/fb43e59b0024ee5dea3b64447d1075ec151ac11c) Setting hide_ancestor=true causes a random page type to be hidden (Loz Calver) + * 2015-10-07 [7a81372](https://github.com/silverstripe/silverstripe-framework/commit/7a813722946d3c25afecba682c3ad41c01c3992c) castingHelper failed to find many_many_extraFields data (fixes #4661) (Loz Calver) + * 2015-08-04 [e94c0fa](https://github.com/silverstripe/silverstripe-framework/commit/e94c0fa221a65fdac1a6604b839901e438592093) extraClass() method to match parent method (Florian Thoma) + * 2014-10-29 [61a9b2a](https://github.com/silverstripe/silverstripe-framework/commit/61a9b2a41a7ad6f4b47f65d4badb9e583469fda1) GridFieldPaginator now prevents viewing pages with no results (fixes #3192) (Loz Calver) diff --git a/lang/af.yml b/lang/af.yml index fe7934ba5..53f909051 100644 --- a/lang/af.yml +++ b/lang/af.yml @@ -107,7 +107,6 @@ af: IcoType: 'Ikoon prentjie' JpgType: 'JPEG prentjie - werk goed vir fotos' Mp3Type: 'MP3 klank lêer' - NOFILESIZE: 'Lêergrootte is nul grepe.' NOVALIDUPLOAD: 'Lêer is nie geld vir oplaai nie' Name: Naam PLURALNAME: Lêers diff --git a/lang/az.yml b/lang/az.yml index e201ba1d5..4ce9c0aed 100644 --- a/lang/az.yml +++ b/lang/az.yml @@ -57,7 +57,6 @@ az: File: Content: Məzmun Filename: Faylın adı - NOFILESIZE: 'Faylın ölçüsü sıfır baytdır' NOVALIDUPLOAD: 'Fayl yükləmək üçün yararlı deyil' Name: Ad PLURALNAME: Fayllar diff --git a/lang/bs.yml b/lang/bs.yml index c01308bcb..80ed3f228 100644 --- a/lang/bs.yml +++ b/lang/bs.yml @@ -63,8 +63,6 @@ bs: TODAY: danas DropdownField: CHOOSE: (Izaberite) - File: - NOFILESIZE: 'Veličina datoteke je nula bajta.' ForgotPasswordEmail_ss: HELLO: Pozdrav TEXT1: 'Ovo je Vaš' diff --git a/lang/ca.yml b/lang/ca.yml index 619f7f23b..d6729900d 100644 --- a/lang/ca.yml +++ b/lang/ca.yml @@ -66,7 +66,6 @@ ca: File: Content: Contingut Filename: Nom del fitxer - NOFILESIZE: 'La mida del fitxer és de zero bytes.' Name: Nom PLURALNAME: Fitxers SINGULARNAME: Fitxer diff --git a/lang/en.yml b/lang/en.yml index d4a83ea81..775375139 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -140,6 +140,9 @@ en: ConfirmedPasswordField: ATLEAST: 'Passwords must be at least {min} characters long.' BETWEEN: 'Passwords must be {min} to {max} characters long.' + CURRENT_PASSWORD_ERROR: 'The current password you have entered is not correct.' + CURRENT_PASSWORD_MISSING: 'You must enter your current password.' + LOGGED_IN_ERROR: 'You must be logged in to change your password.' MAXIMUM: 'Passwords must be at most {max} characters long.' SHOWONCLICKTITLE: 'Change Password' ContentController: @@ -448,9 +451,11 @@ en: CANTEDIT: 'You don''t have permission to do that' CONFIRMNEWPASSWORD: 'Confirm New Password' CONFIRMPASSWORD: 'Confirm Password' + CURRENT_PASSWORD: 'Current Password' DATEFORMAT: 'Date format' DefaultAdminFirstname: 'Default Admin' DefaultDateTime: default + EDIT_PASSWORD: 'New Password' EMAIL: Email EMPTYNEWPASSWORD: 'The new password can''t be empty, please try again' ENTEREMAIL: 'Please enter an email address to get a password reset link.' diff --git a/lang/es_AR.yml b/lang/es_AR.yml index 60d1aafe0..b8b3d95ad 100644 --- a/lang/es_AR.yml +++ b/lang/es_AR.yml @@ -69,7 +69,6 @@ es_AR: File: Content: Contenido Filename: Nombre de Archivo - NOFILESIZE: 'El tamaño del fichero es de cero bytes.' NOVALIDUPLOAD: 'El archivo no es una subida válida' Name: Nombre PLURALNAME: Archivos diff --git a/lang/es_MX.yml b/lang/es_MX.yml index 3480eaa3d..1517077b0 100644 --- a/lang/es_MX.yml +++ b/lang/es_MX.yml @@ -93,7 +93,6 @@ es_MX: File: Content: Contenido Filename: Nombre del archivo - NOFILESIZE: 'El tamaño del archivo es 0 bits' NOVALIDUPLOAD: 'No es un archivo válido' Name: Nombre PLURALNAME: Archivos diff --git a/lang/gl_ES.yml b/lang/gl_ES.yml index 31f41922d..ad26aacda 100644 --- a/lang/gl_ES.yml +++ b/lang/gl_ES.yml @@ -74,7 +74,6 @@ gl_ES: File: Content: Contido Filename: Nome ficheiro - NOFILESIZE: 'O tamaño do ficheiro é cero bytes.' NOVALIDUPLOAD: 'Ficheiro non válido para subir' Name: Nome PLURALNAME: Ficheiros diff --git a/lang/is.yml b/lang/is.yml index f28c20af5..7b4edeb93 100644 --- a/lang/is.yml +++ b/lang/is.yml @@ -58,7 +58,6 @@ is: File: Content: Efni Filename: Skráarnafn - NOFILESIZE: 'Skrárstærðin eru núll bæti.' NOVALIDUPLOAD: 'Það er ekki hægt að sækja þessa skrá' Name: Nafn PLURALNAME: Skrár diff --git a/lang/lv.yml b/lang/lv.yml index 30f4df114..52d3aeec4 100644 --- a/lang/lv.yml +++ b/lang/lv.yml @@ -60,7 +60,6 @@ lv: File: Content: Saturs Filename: Faila nosaukums - NOFILESIZE: 'Faila izmērs ir nulle baiti.' NOVALIDUPLOAD: 'Augšupielādei nederīgs fails' Name: Nosaukms PLURALNAME: Faili diff --git a/lang/ms.yml b/lang/ms.yml index cb9e9d71e..86cbc4025 100644 --- a/lang/ms.yml +++ b/lang/ms.yml @@ -26,7 +26,6 @@ ms: DropdownField: CHOOSE: (Pilih) File: - NOFILESIZE: 'Saiz fail bersamaan sifar bait.' PLURALNAME: Fail-fail SINGULARNAME: Fail Form: diff --git a/lang/pt.yml b/lang/pt.yml index 04c7f00b4..fb5af74dc 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -63,7 +63,6 @@ pt: Content: Conteúdo Filename: Nome do ficheiro HtlType: 'Ficheiro HTML' - NOFILESIZE: 'O tamanho do ficheiro é de 0 bytes.' NOVALIDUPLOAD: 'O carregamento do ficheiro é válido' Name: Nome PLURALNAME: Ficheiros diff --git a/lang/pt_BR.yml b/lang/pt_BR.yml index 79eab3440..e8ed6f183 100644 --- a/lang/pt_BR.yml +++ b/lang/pt_BR.yml @@ -65,7 +65,6 @@ pt_BR: File: Content: Conteudo Filename: Nome do Arquivo - NOFILESIZE: 'O tamanho do arquivo é zero bytes.' Name: Nome PLURALNAME: Arquivos SINGULARNAME: Arquivo diff --git a/lang/th.yml b/lang/th.yml index 212d27f59..f1106d31e 100644 --- a/lang/th.yml +++ b/lang/th.yml @@ -90,7 +90,6 @@ th: JsType: 'ไฟล์จาวาสคริปต์' Mp3Type: 'ไฟล์เสียง MP3' MpgType: 'ไฟล์วีดีโอ MPEG' - NOFILESIZE: 'ขนาดไฟล์มีขนาดเป็นศูนย์' Name: ชื่อ PLURALNAME: ไฟล์ PdfType: 'ไฟล์ Adobe Acrobat PDF' diff --git a/lang/tr.yml b/lang/tr.yml index 459a25cab..149872eb1 100644 --- a/lang/tr.yml +++ b/lang/tr.yml @@ -81,7 +81,6 @@ tr: File: Content: İçerik Filename: Dosya adı - NOFILESIZE: 'Dosya boyutu sıfır (0) bayt.' Name: Ad PLURALNAME: Dosyalar SINGULARNAME: Dosya diff --git a/model/DataObject.php b/model/DataObject.php index e4207fe0e..045965ade 100644 --- a/model/DataObject.php +++ b/model/DataObject.php @@ -1909,6 +1909,13 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity $extraFields = $this->manyManyExtraFieldsForComponent($componentName) ?: array(); /** @var ManyManyList $result */ $result = ManyManyList::create($componentClass, $table, $componentField, $parentField, $extraFields); + + + // Store component data in query meta-data + $result = $result->alterDataQuery(function($query) use ($extraFields) { + $query->setQueryParam('Component.ExtraFields', $extraFields); + }); + if($this->model) { $result->setDataModel($this->model); } @@ -2712,11 +2719,25 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity return $this; } + /** + * {@inheritdoc} + */ public function castingHelper($field) { - // Allows db to act as implicit casting override - if($fieldSpec = $this->db($field)) { + if ($fieldSpec = $this->db($field)) { return $fieldSpec; } + + // many_many_extraFields aren't presented by db(), so we check if the source query params + // provide us with meta-data for a many_many relation we can inspect for extra fields. + $queryParams = $this->getSourceQueryParams(); + if (!empty($queryParams['Component.ExtraFields'])) { + $extraFields = $queryParams['Component.ExtraFields']; + + if (isset($extraFields[$field])) { + return $extraFields[$field]; + } + } + return parent::castingHelper($field); } diff --git a/model/FieldType/DBDate.php b/model/FieldType/DBDate.php index 11b716eb3..9130ff23d 100644 --- a/model/FieldType/DBDate.php +++ b/model/FieldType/DBDate.php @@ -31,6 +31,13 @@ use Exception; */ class DBDate extends DBField { + /** + * @config + * @see SS_DateTime::nice_format + * @see Time::nice_format + */ + private static $nice_format = 'd/m/Y'; + public function setValue($value, $record = null, $markChanged = true) { if($value === false || $value === null || (is_string($value) && !strlen($value))) { // don't try to evaluate empty values with strtotime() below, as it returns "1970-01-01" when it should be @@ -70,10 +77,10 @@ class DBDate extends DBField { } /** - * Returns the date in the format dd/mm/yy - */ + * Returns the date in the format specified by the config value nice_format, or dd/mm/yy by default + */ public function Nice() { - if($this->value) return $this->Format('d/m/Y'); + if($this->value) return $this->Format($this->config()->nice_format); } /** diff --git a/model/FieldType/DBDatetime.php b/model/FieldType/DBDatetime.php index c6716867a..8e029f3b8 100644 --- a/model/FieldType/DBDatetime.php +++ b/model/FieldType/DBDatetime.php @@ -36,6 +36,13 @@ use DateTime; */ class DBDatetime extends DBDate implements TemplateGlobalProvider { + /** + * @config + * @see Date::nice_format + * @see Time::nice_format + */ + private static $nice_format = 'd/m/Y g:ia'; + public function setValue($value, $record = null, $markChanged = true) { if($value === false || $value === null || (is_string($value) && !strlen($value))) { // don't try to evaluate empty values with strtotime() below, as it returns "1970-01-01" when it should be @@ -65,11 +72,12 @@ class DBDatetime extends DBDate implements TemplateGlobalProvider { } /** - * Returns the date and time (in 12-hour format) using the format string 'd/m/Y g:ia' e.g. '31/01/2014 2:23pm'. + * Returns the date and time in the format specified by the config value nice_format, or 'd/m/Y g:ia' + * by default (e.g. '31/01/2014 2:23pm'). * @return string Formatted date and time. */ public function Nice() { - if($this->value) return $this->Format('d/m/Y g:ia'); + if($this->value) return $this->Format($this->config()->nice_format); } /** diff --git a/model/FieldType/DBTime.php b/model/FieldType/DBTime.php index 3a278a6da..5c1374034 100644 --- a/model/FieldType/DBTime.php +++ b/model/FieldType/DBTime.php @@ -25,6 +25,13 @@ use TimeField; */ class DBTime extends DBField { + /** + * @config + * @see Date::nice_format + * @see SS_DateTime::nice_format + */ + private static $nice_format = 'g:ia'; + public function setValue($value, $record = null, $markChanged = true) { if($value) { if(preg_match( '/(\d{1,2})[:.](\d{2})([a|A|p|P|][m|M])/', $value, $match )) $this->TwelveHour( $match ); @@ -35,13 +42,13 @@ class DBTime extends DBField { } /** - * Return a user friendly format for time - * in a 12 hour format. + * Returns the time in the format specified by the config value nice_format, or 12 hour format by default + * e.g. "3:15pm" * - * @return string Time in 12 hour format + * @return string */ public function Nice() { - if($this->value) return date('g:ia', strtotime($this->value)); + if($this->value) return $this->Format($this->config()->nice_format); } /** diff --git a/model/Hierarchy.php b/model/Hierarchy.php index c3e10ae17..f4ded65e0 100644 --- a/model/Hierarchy.php +++ b/model/Hierarchy.php @@ -41,6 +41,32 @@ class Hierarchy extends DataExtension { */ private static $node_threshold_leaf = 250; + /** + * A list of classnames to exclude from display in both the CMS and front end + * displays. ->Children() and ->AllChildren affected. + * Especially useful for big sets of pages like listings + * If you use this, and still need the classes to be editable + * then add a model admin for the class + * Note: Does not filter subclasses (non-inheriting) + * + * @var array + * @config + */ + private static $hide_from_hierarchy = array(); + + /** + * A list of classnames to exclude from display in the page tree views of the CMS, + * unlike $hide_from_hierarchy above which effects both CMS and front end. + * Especially useful for big sets of pages like listings + * If you use this, and still need the classes to be editable + * then add a model admin for the class + * Note: Does not filter subclasses (non-inheriting) + * + * @var array + * @config + */ + private static $hide_from_cms_tree = array(); + public static function get_extra_config($class, $extension, $args) { return array( 'has_one' => array('Parent' => $class) @@ -643,6 +669,18 @@ class Hierarchy extends DataExtension { return $this->_cache_numChildren; } + /** + * Checks if we're on a controller where we should filter. ie. Are we loading the SiteTree? + * + * @return bool + */ + public function showingCMSTree() { + if (!Controller::has_curr()) return false; + $controller = Controller::curr(); + return $controller instanceof LeftAndMain + && in_array($controller->getAction(), array("treeview", "listview", "getsubtree")); + } + /** * Return children in the stage site. * @@ -652,9 +690,17 @@ class Hierarchy extends DataExtension { */ public function stageChildren($showAll = false) { $baseClass = ClassInfo::baseDataClass($this->owner->class); + $hide_from_hierarchy = $this->owner->config()->hide_from_hierarchy; + $hide_from_cms_tree = $this->owner->config()->hide_from_cms_tree; $staged = $baseClass::get() - ->filter('ParentID', (int)$this->owner->ID) - ->exclude('ID', (int)$this->owner->ID); + ->filter('ParentID', (int)$this->owner->ID) + ->exclude('ID', (int)$this->owner->ID); + if ($hide_from_hierarchy) { + $staged = $staged->exclude('ClassName', $hide_from_hierarchy); + } + if ($hide_from_cms_tree && $this->showingCMSTree()) { + $staged = $staged->exclude('ClassName', $hide_from_cms_tree); + } if (!$showAll && $this->owner->db('ShowInMenus')) { $staged = $staged->filter('ShowInMenus', 1); } @@ -677,6 +723,8 @@ class Hierarchy extends DataExtension { } $baseClass = ClassInfo::baseDataClass($this->owner->class); + $hide_from_hierarchy = $this->owner->config()->hide_from_hierarchy; + $hide_from_cms_tree = $this->owner->config()->hide_from_cms_tree; $children = $baseClass::get() ->filter('ParentID', (int)$this->owner->ID) ->exclude('ID', (int)$this->owner->ID) @@ -684,8 +732,13 @@ class Hierarchy extends DataExtension { 'Versioned.mode' => $onlyDeletedFromStage ? 'stage_unique' : 'stage', 'Versioned.stage' => 'Live' )); - - if(!$showAll) $children = $children->filter('ShowInMenus', 1); + if ($hide_from_hierarchy) { + $children = $children->exclude('ClassName', $hide_from_hierarchy); + } + if ($hide_from_cms_tree && $this->showingCMSTree()) { + $children = $children->exclude('ClassName', $hide_from_cms_tree); + } + if(!$showAll && $this->owner->db('ShowInMenus')) $children = $children->filter('ShowInMenus', 1); return $children; } diff --git a/security/Member.php b/security/Member.php index 4377c10bf..f046756f6 100644 --- a/security/Member.php +++ b/security/Member.php @@ -553,6 +553,11 @@ class Member extends DataObject implements TemplateGlobalProvider { if(strpos(Cookie::get('alc_enc'), ':') && Cookie::get('alc_device') && !Session::get("loggedInAs")) { list($uid, $token) = explode(':', Cookie::get('alc_enc'), 2); + + if (!$uid || !$token) { + return; + } + $deviceID = Cookie::get('alc_device'); $member = Member::get()->byId($uid); diff --git a/tests/model/DBDateTest.php b/tests/model/DBDateTest.php index 8ec10ed39..0002e82f4 100644 --- a/tests/model/DBDateTest.php +++ b/tests/model/DBDateTest.php @@ -63,6 +63,10 @@ class DBDateTest extends SapphireTest { $this->assertEquals('04/03/2003', DBField::create_field('Date', '04-03-2003')->Nice(), "Date->Nice() works with DD/MM/YYYY format" ); + + $date = DBField::create_field('Date', '2003-03-04'); + Config::inst()->update('SilverStripe\Model\FieldType\DBDate', 'nice_format', 'd F Y'); + $this->assertEquals('04 March 2003', $date->Nice()); } public function testNiceUS(){ diff --git a/tests/model/DataObjectTest.php b/tests/model/DataObjectTest.php index 97e843975..3baa2df86 100644 --- a/tests/model/DataObjectTest.php +++ b/tests/model/DataObjectTest.php @@ -955,6 +955,16 @@ class DataObjectTest extends SapphireTest { $this->assertEmpty($fields); } + public function testCastingHelper() { + $team = $this->objFromFixture('DataObjectTest_Team', 'team1'); + + $this->assertEquals('Varchar', $team->castingHelper('Title'), 'db field wasn\'t casted correctly'); + $this->assertEquals('HTMLVarchar', $team->castingHelper('DatabaseField'), 'db field wasn\'t casted correctly'); + + $sponsor = $team->Sponsors()->first(); + $this->assertEquals('Int', $sponsor->castingHelper('SponsorFee'), 'many_many_extraFields not casted correctly'); + } + public function testSummaryFieldsCustomLabels() { $team = $this->objFromFixture('DataObjectTest_Team', 'team1'); $summaryFields = $team->summaryFields(); diff --git a/tests/model/HierarchyTest.php b/tests/model/HierarchyTest.php index 6117cce8d..01941d154 100644 --- a/tests/model/HierarchyTest.php +++ b/tests/model/HierarchyTest.php @@ -5,11 +5,13 @@ class HierarchyTest extends SapphireTest { protected static $fixture_file = 'HierarchyTest.yml'; protected $requiredExtensions = array( - 'HierarchyTest_Object' => array('Hierarchy', 'Versioned') + 'HierarchyTest_Object' => array('Hierarchy', 'Versioned'), + 'HierarchyHideTest_Object' => array('Hierarchy', 'Versioned'), ); protected $extraDataObjects = array( - 'HierarchyTest_Object' + 'HierarchyTest_Object', + 'HierarchyHideTest_Object' ); /** @@ -482,6 +484,35 @@ class HierarchyTest extends SapphireTest { $this->assertEquals('unexpanded jstree-closed closed', $nodeClass, 'obj2 should have children in the sitetree'); } + public function testNoHideFromHeirarchy() { + $obj4 = $this->objFromFixture('HierarchyHideTest_Object', 'obj4'); + $obj4->publish("Stage", "Live"); + + foreach($obj4->stageChildren() as $child) { + $child->publish("Stage", "Live"); + } + $this->assertEquals($obj4->stageChildren()->Count(), 2); + $this->assertEquals($obj4->liveChildren()->Count(), 2); + } + + public function testHideFromHeirarchy() { + HierarchyHideTest_Object::config()->hide_from_hierarchy = array('HierarchyHideTest_SubObject'); + $obj4 = $this->objFromFixture('HierarchyHideTest_Object', 'obj4'); + $obj4->publish("Stage", "Live"); + + // load without using stage children otherwise it'll bbe filtered before it's publish + // we need to publish all of them, and expect liveChildren to return some. + $children = HierarchyHideTest_Object::get() + ->filter('ParentID', (int)$obj4->ID) + ->exclude('ID', (int)$obj4->ID); + + foreach($children as $child) { + $child->publish("Stage", "Live"); + } + $this->assertEquals($obj4->stageChildren()->Count(), 1); + $this->assertEquals($obj4->liveChildren()->Count(), 1); + } + /** * @param String $html [description] * @param array $nodes Breadcrumb path as array @@ -543,3 +574,22 @@ class HierarchyTest_Object extends DataObject implements TestOnly { return $this->markingClasses(); } } + +class HierarchyHideTest_Object extends DataObject implements TestOnly { + private static $db = array( + 'Title' => 'Varchar' + ); + + private static $extensions = array( + 'Hierarchy', + "Versioned('Stage', 'Live')", + ); + + public function cmstreeclasses() { + return $this->markingClasses(); + } +} + +class HierarchyHideTest_SubObject extends HierarchyHideTest_Object { + +} diff --git a/tests/model/HierarchyTest.yml b/tests/model/HierarchyTest.yml index 23993c3d0..614a803dc 100644 --- a/tests/model/HierarchyTest.yml +++ b/tests/model/HierarchyTest.yml @@ -32,3 +32,15 @@ HierarchyTest_Object: obj3ab: Parent: =>HierarchyTest_Object.obj3a Title: Obj 3ab + +HierarchyHideTest_Object: + obj4: + Title: Obj 4 + obj4a: + Parent: =>HierarchyHideTest_Object.obj4 + Title: Obj 4a + +HierarchyHideTest_SubObject: + obj4b: + Parent: =>HierarchyHideTest_Object.obj4 + Title: Obj 4b diff --git a/tests/model/TimeTest.php b/tests/model/TimeTest.php new file mode 100644 index 000000000..ff67038dd --- /dev/null +++ b/tests/model/TimeTest.php @@ -0,0 +1,19 @@ +assertEquals('5:15pm', $time->Nice()); + + Config::inst()->update('SilverStripe\Model\FieldType\DBTime', 'nice_format', 'H:i:s'); + $this->assertEquals('17:15:55', $time->Nice()); + } + +}