diff --git a/.tx/config b/.tx/config index 33b14f5b..3a59f85e 100644 --- a/.tx/config +++ b/.tx/config @@ -1,14 +1,15 @@ [main] host = https://www.transifex.com -[silverstripe-campaign-admin.master] +[o:silverstripe:p:silverstripe-campaign-admin:r:master] file_filter = lang/.yml source_file = lang/en.yml source_lang = en -type = YML +type = YML -[silverstripe-campaign-admin.master-js] +[o:silverstripe:p:silverstripe-campaign-admin:r:master-js] file_filter = client/lang/src/.json source_file = client/lang/src/en.json source_lang = en -type = KEYVALUEJSON +type = KEYVALUEJSON + diff --git a/client/lang/bg.js b/client/lang/bg.js index 1ab53e22..3643894c 100644 --- a/client/lang/bg.js +++ b/client/lang/bg.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/bg.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/bg.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/cs.js b/client/lang/cs.js index 9d5492b8..be0d69d3 100644 --- a/client/lang/cs.js +++ b/client/lang/cs.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/cs.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/cs.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/da.js b/client/lang/da.js index 43caedde..3d3e6e37 100644 --- a/client/lang/da.js +++ b/client/lang/da.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/da.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/da.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/de.js b/client/lang/de.js index 03c85c98..1f5707ee 100644 --- a/client/lang/de.js +++ b/client/lang/de.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/de.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/de.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/en.js b/client/lang/en.js index 75744a80..6efeb0cc 100644 --- a/client/lang/en.js +++ b/client/lang/en.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/en.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/en.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/eo.js b/client/lang/eo.js index 3bfb72a7..c980de8c 100644 --- a/client/lang/eo.js +++ b/client/lang/eo.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/eo.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/eo.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/es.js b/client/lang/es.js index 2cbf043e..988bb6a0 100644 --- a/client/lang/es.js +++ b/client/lang/es.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/es.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/es.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/fa_IR.js b/client/lang/fa_IR.js index 02727c22..a73f2589 100644 --- a/client/lang/fa_IR.js +++ b/client/lang/fa_IR.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/fa_IR.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/fa_IR.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/fi.js b/client/lang/fi.js index e7d9b22a..fba7747d 100644 --- a/client/lang/fi.js +++ b/client/lang/fi.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/fi.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/fi.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/fi_FI.js b/client/lang/fi_FI.js index 859ccb76..3c49de16 100644 --- a/client/lang/fi_FI.js +++ b/client/lang/fi_FI.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/fi_FI.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/fi_FI.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/fr.js b/client/lang/fr.js index c8ce42fd..a6b6f7f6 100644 --- a/client/lang/fr.js +++ b/client/lang/fr.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/fr.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/fr.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/hr.js b/client/lang/hr.js index a6a2db1a..83fae55d 100644 --- a/client/lang/hr.js +++ b/client/lang/hr.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/hr.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/hr.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/id.js b/client/lang/id.js index a56bbf8d..0e953d15 100644 --- a/client/lang/id.js +++ b/client/lang/id.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/id.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/id.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/id_ID.js b/client/lang/id_ID.js index b7ae3000..a869f09a 100644 --- a/client/lang/id_ID.js +++ b/client/lang/id_ID.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/id_ID.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/id_ID.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/it.js b/client/lang/it.js index d18fc8dd..13d5655d 100644 --- a/client/lang/it.js +++ b/client/lang/it.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/it.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/it.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/ja.js b/client/lang/ja.js index 63c4a253..32d7414f 100644 --- a/client/lang/ja.js +++ b/client/lang/ja.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/ja.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/ja.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/lt.js b/client/lang/lt.js index ad959382..d9df6ee8 100644 --- a/client/lang/lt.js +++ b/client/lang/lt.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/lt.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/lt.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/mi.js b/client/lang/mi.js index 35dc5c55..fec63640 100644 --- a/client/lang/mi.js +++ b/client/lang/mi.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/mi.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/mi.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/nb.js b/client/lang/nb.js index 7162bea7..18b94d16 100644 --- a/client/lang/nb.js +++ b/client/lang/nb.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/nb.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/nb.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/nl.js b/client/lang/nl.js index 1ae5122f..4d170f8d 100644 --- a/client/lang/nl.js +++ b/client/lang/nl.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/nl.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/nl.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/nl_NL.js b/client/lang/nl_NL.js index aa99150a..d58a26c0 100644 --- a/client/lang/nl_NL.js +++ b/client/lang/nl_NL.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/nl_NL.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/nl_NL.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/pl.js b/client/lang/pl.js index c75a8336..67e4a920 100644 --- a/client/lang/pl.js +++ b/client/lang/pl.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/pl.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/pl.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/ro.js b/client/lang/ro.js index 56c800fc..9c82b280 100644 --- a/client/lang/ro.js +++ b/client/lang/ro.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/ro.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/ro.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/ru.js b/client/lang/ru.js index be22cbb3..6e22ef05 100644 --- a/client/lang/ru.js +++ b/client/lang/ru.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/ru.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/ru.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sk.js b/client/lang/sk.js index 41482acf..c6290fdb 100644 --- a/client/lang/sk.js +++ b/client/lang/sk.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sk.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sk.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sl.js b/client/lang/sl.js index f4db8842..06a198b3 100644 --- a/client/lang/sl.js +++ b/client/lang/sl.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sl.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sl.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sl_SI.js b/client/lang/sl_SI.js index d0dd5b64..e1360173 100644 --- a/client/lang/sl_SI.js +++ b/client/lang/sl_SI.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sl_SI.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sl_SI.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sr.js b/client/lang/sr.js index 6c966b88..c041694e 100644 --- a/client/lang/sr.js +++ b/client/lang/sr.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sr.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sr.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sr@latin.js b/client/lang/sr@latin.js index d474404d..73e2960d 100644 --- a/client/lang/sr@latin.js +++ b/client/lang/sr@latin.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sr@latin.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sr@latin.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sr_RS.js b/client/lang/sr_RS.js index 110de1ac..29b8e800 100644 --- a/client/lang/sr_RS.js +++ b/client/lang/sr_RS.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sr_RS.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sr_RS.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sr_RS@latin.js b/client/lang/sr_RS@latin.js index d24eb21e..c903dbe3 100644 --- a/client/lang/sr_RS@latin.js +++ b/client/lang/sr_RS@latin.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sr_RS@latin.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sr_RS@latin.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/sv.js b/client/lang/sv.js index 04e57c6f..0c99b3bd 100644 --- a/client/lang/sv.js +++ b/client/lang/sv.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/sv.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/sv.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/client/lang/zh.js b/client/lang/zh.js index c6f52220..ec54570c 100644 --- a/client/lang/zh.js +++ b/client/lang/zh.js @@ -1,5 +1,5 @@ -// This file was generated by silverstripe/cow from client/lang/src/zh.json. -// See https://github.com/silverstripe/cow for details +// This file was generated by silverstripe/tx-translator from client/lang/src/zh.json. +// See https://github.com/silverstripe/silverstripe-tx-translator for details if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') { if (typeof(console) !== 'undefined') { // eslint-disable-line no-console console.error('Class ss.i18n not defined'); // eslint-disable-line no-console diff --git a/lang/bg.yml b/lang/bg.yml index decb00e9..eacbc5a4 100644 --- a/lang/bg.yml +++ b/lang/bg.yml @@ -17,3 +17,6 @@ bg: ERROR_DUPLICATE_NAME: 'Името "{Name}" вече съществува' MENUTITLE: Кампании SAVEDUP: Записана. + SAVEDERROR: Грешка. + CampaignAdmin: + php.SilverStripe\CampaignAdmin\CampaignAdminSAVE: Запис diff --git a/lang/ru.yml b/lang/ru.yml index 6e757c1a..6eeb54c3 100644 --- a/lang/ru.yml +++ b/lang/ru.yml @@ -16,3 +16,5 @@ ru: CANCEL: Отмена MENUTITLE: Кампании SAVEDUP: Сохранено. + CampaignAdmin: + php.SilverStripe\CampaignAdmin\CampaignAdminSAVE: Сохранить